12599210498948731647672106072782283505702514647015079800819751121552996765139594837293965624362550941543102560356156652593990240406137372284591103042693552469606426166250009774745265654803068671854055186892458725167641993737096950983827831613991551293136953661839474634485765703031190958959847411059811629070535908164780114735213254847712978802422085820532579725266622026690056656081994715628176405060664826773572670419486207621442965694205079319172441480920448232840127470321964282081201905714188996459998317503801888689594202055922021154729973848802607363697417887792157984675099539630078260959624203483238660139857363433909737126527995991969968377913168168154428850279651529278107679714002040605674803938561251718357006907984996341976291474044834540269715476228513178020643878047649322579052898467085805286258130005429388560720609747223040631357234936458406575916916916727060124402896700001069081035313852902700415084232336239889386496782194149838027072957176812879001445746227147702348357151905506722084818485009287239209282646606717174247753709737030012742918094054425696592075036357570375189603707473993461014490145157635960471111973845299132965726258904860978856180138677383615773009865983660805975756012787121486856242684556411651558179353228015896291299445004012084254141601575258416298814230973582153060405772425383645325335659551172522855795622772403665628468759015430667535190854845118181752042912412337809631725213575411418114661273660457830360574402651309607096816400688818565723100900842845260864140595033690030791869935569133518342856938262554313558973544502333028531493224551341219554578211965008339577142668506332841961968651210925578955885089968619015467004389687866554530985450576376503600894330651035693577753724954843682137031716216218349580935620872600962678518341834565223974454000447602177889420818380278666530653266326186411600740074747547355852770168950206375413223232969424370174234349161769060072385390222768112977741387207982343039103162854645208311112254682835318304706133509962996445533176594892140511655701885058163377590259584598049542071162429490576805263439895630988409486763457284597918921017669484572485203669942687124101217752777129173164203840634909211658342720961771514093995247275502565412069568839797390390503283375386656354367809315086212227096396854740102722937553501106226207425048107640266578918892733990559108087812393964457811599167981885750617262691783203340901304190770727178294964571676007190205761952153152463863673213027383187903669558934250623625706579967117913543123735636030762433940938027808477164788989025290657428920778378231770868998907264609607150820659106986462371166018854708077164228284038386367665419587251062673265886635040876410319525385833853885760877283954893064374389798078358344491391903395471320680820789089909131084864106470477955708458988574848587272284371841200735447944731521287944073647503423467231749861256967123497954181692526525498381000981011778294993697050401103004806315713402625786014024766248360368191652629827685288013466937510911228515764875914753482517795806733863738829372918270740878258080531275399760057190853405085475806044214250997208002457396885383919946099671195502690165387968195603485138116556598204146209493463790579858456294410572579528120095491493350022958607475059227442420693600224526789537696336777576420743840960718400649235412598773170021287475791240357548857708109419314944268676717439487233248511095872910843847907798603919808443272568443177768557928311165779859916093169919662619865944385754924210135514376676013370968129266672422081213356211731481057220004193640248076837721407820186328246454164398395713266972580231148063010911093931406495070908905524088747299737598150870518233878180349197513536657687113295354768500645212289336840859093472665163929891513843472917269916799344584254162057132103966395449120612414451514574576162347478888166743276523271347651697724877390170213972551914620380258489116289669176868884009698080931118816143267002965414925822275810784847519151766681454837897668571505231660146881659012718803207153976130495524344131359735629054967066207866164935124752482384590083770413898191125988761812621373879454655021733729466784274530954227228315078212482918634558980025347703235460142960397682047279365773390360207429173331207188909953906301347565970558897053905492638781640056867832363614951608985873428218109398596201773364544709121700646427452981988823661184080151307598375484358033708729062231027700170315873081106176366199526233934818228973128866202333070507621710600273512974690616085717522616919103130892764633945413625007629850086909370597041737186429868123444408209676259937004189062807931489467624679051041368390876768502579129617306398159488001829077113514511729654142416118765393247865734447512343372138281283579607917397783119775268773178174152958337606750898231893690707893139485884833518839947940444557907569254052915739619528370593485368229295719302722408193384151700721472024797244927398260180967934934389032988679305899950047566385038266603769211675986816645807884290347853281506044327857778196463616432157341737747679098237608191545570296248468170783375298220247360393083093921967997613823110590788562039296490165518339464243675691067676258308543144177272868590843440474432299222334977573441155601053573666792898621665445680414834504327947950029102598264387635288287429827029947348534928015579895563238333338613321446503134945430899835077992254741671682053680930517384430835117979247428263451362843681835301280787808314506827496110786461506228257486817336979660958114396301353863090493388039443478812720303888177620931770593954843331616745146292854230885604489588289841212314948676444312094187495682345272490318341468786373207844264071017542124413993402984355429486331350813846975081952115872285463305989771209337239431874000772087469504458146196574010105841274466893191273671042630181253434009675099001720064190385129144997388641344594426510688980424033326588772819290631931821896783000369970082043705064122093796928778301915770256538150873752315567667549022068743627063555303651377784539410929088979002359703083327331095002443220600970007913990248586974074406472930462701186510245842511966419164384672125458891334281336013288850922410658592719142852841941731694854214577345072286104898970294416249289009199839086798128894816339903223400676945375314802999223114483873793863355098613219221130021830196552212646972332971758275369240005702595604303104320147508875010310876638777828601388824016075632516928822398135214604207599690806034485948694358442163537236096994831132375522051242883268953135782077686762064455972299512510041934755457681729615185799296208897808238941747397476975167911425806066944660156513727701512724263877574170962868968880356112469314775414226179372329175015896296812708063285416794232870521482720786422584731444627882485066386238547530327638879717884054938468966242815607049119530481116353086088197104229527264206895296328530529862391174469354738279712636008010459897548056900111895919676139954411193959268076920633851213716623999004402410466306395344166643160118632236200776036485221553613343448121195118870464386796297935201261242912125801741607291799146026491247565544871323185348416353883044592292272886683732248821607372579700293571171541628982732441348667039989774074966895265562838712032224708826829391961288115418195045391770230625235486498674482751871747543785494492645520017975932544191482850011997957293650677248692310340424256816480172095639228020180149169639274863525511372318257531777983471211809986640185371508281462005687457179719115878286906343103113341463941234341571745148839873270234479675716609825780669368401303276488909894146702383188926909296409681173156999367510533170374588781664224790393602284358703351871687048710425640011461149700547500360434470031315753757636886899992909011782795897018882297405914569439353200600041958536848150642804222247946114211440740118123895716663460943749580623897235818289371422292180613433997775667490697847344671807094034882624872814582680992109133408456940868822519834818787946626773500250344814346049018322704046094544775418797876521481040810353333032821811004899085395409145309354460860452902158633445907051355837873674270395131243227278066948150210643864122951287830002114021424228045754322308046102432236531894190898307534011171390556591568590854810018967371473530510505162383371947700278998911673431856861426055373737732152745616630208147518132892142321600662825982054410881628910621983091040768049113065788619219101270952813380091465186444837833617350951731329033014294618114787736092242754371956921788201361921124286012968609088076921278215108494474885357033638567682131373164380757738576590710517926603896432581015353467897109571964965839009517797858601248884701552412052077641832406655698109718333480732943894966776556821347483036899825597495364731494931101662011288750242133933809892995928905563474696162000121404072736392977039161579898419901935982160148993169290982005062644830022221609049950505547920550944770397159859333059833010999120255252513001862087973821950770648742931755282911179035852580216921263212524013985331743930314414435188103476540729470890280968531979651902130607886448496965849851073274456169994324736025915999554700853843592322017046578592265040104335950892083873570123954244061112387766582648702625914175756408700393371825117706294888671454013842051095215141422000352385194268302178986643025416946410861814748480201621565564743071073092589826166878189176538654567065093649254033971817361700698790089198306080743635769865772364407749491771749675451517912443492744198525765199130220410895174797860470490190286620426962447911085426513182934705436749892135982405203372068243591431291320755592959105005987800021309284792202745929961172499131206685593242953258969534878884583457303539602237358239461752895220275463352304775041967987192200726646708474618678256745692697095641501358471201797933472732787074096757875581559091242762524583021848103212558329449715240798593660153366818323442956136100119802136342408107061691137145238907402196830860941494969797811594468111308130658094831852742246430759431174953599721711293567764200673738154412441868584192707708357341267919926546159364712315931284464242794740680382680200331053797563348223478509719120675932212589740979813021878412900357093469563118397457105484440977388371215985573585426088283175557057482232697765161258971632679846795929798911424333410170944220153961256808962729915124021336535293659817144732847345527282714576141279472750001565238793223349159917005822621835934144433422600304506228367694594496597174997410827085403511882525284480063950902473935240397478809247769421624231925593612836535028264614892695786791437965107168899367070242273037928095375480830105737724180068828691547380357144807318400906713827297581019547824977921680420748991931938853542618326257617257618477167598866401794953864837136939691007155965059338957379270560780603995997987982325471470579898860107566182363564861760040482533725609870095161020972237366515149583615460528507894244513481845176170997422841437001536972132055259010242589789191015376549941728979253863484279870698805991008564515317222724596722975350771850649960218189652461229398744739293240127750050504015938115750095087831095681887710764114544104356139650318416995101179848620731076583400270867917183952881024975027671524705077804157949874111000691358685343890601794319566417497292868854187627582292889154427629410775329482587148642335492386200623810589061424835550421464938428045396861656235850948264414384057011139088358792431298751384778256224020044362873574912314036968178388439039764682095206240379080061990431174333087145538326665844175453014131084989326834514657369882323522403092153961224126972038338729343908830021341801609947887626955350062979237808251042890945618834650051753332569505278203533312738042947815727556447623158280185655411253107610084692918706040253247715931428830852880349341424065910990686144636990677377882887698761321812872495796013171573481803200596538350518252843254637415147054554444626792129794793672072045205679278383048868049510892437058343757808193579718981091255525950013509070281506363455264089891310897770023819970842474594307138521807627099000537042234076433065602809809604671786842490235134153043395708135219989071799726428682761736549805241584025331916942707851739238073131067759481433379136350008511081142249257752746119895895391626662893120277201755536977524784966370962429188036905489438985905106494723608999926954830947255791629405156053795841354480993288408227172095963639265800547332947858145066094083542244956822426191878024234549248133928997140906151509338075063823347186173123735820650418363550359530526153144763961313196503703451153618913857886481600034847174224020498946003999479988617079888359830085306507690588771367317072014456845312134506132999502958262665410478710078761857222231411265961803090584865768188745782652482084232966954377026435300892043452353417169845968446352737063667583742233731707995032236776104046333624219554112637069350968203937254929474097100677118908606907574072306127672115957838653031476204810789860814233861856151785208590631055833282967883773619689438892339430828240776659736669361904444825915631361299312474082610971813471849183614475287137522068064330334126959470522400344049786192868051300265128341733384349900179237695548328893599094685606343890029815683432988171808874425980265391160768739505806608912181734439365070109086968481845672312566886847189079685804198359192809055313079134928897247953198409477775368486518009490861123139051231752980089485104776167627534220543686752030129797293664693001119943647680781288571781321743649132636155585372959431418098180254133140798331317357138905722155009379998858581758389128661962925022378192914736594721317472197056557243476468130900995414228274476822461185477636115130513019359222755703964760134984031005367451591659075281654592585865098779992036405547813973237791848576598189159062239739187760661425383848166388349924884340633197751071300203643280194173035258571997688175945587950450322916235065353848639171988784706759129026889198379827335697417428246167394669428691223063922419263377267576814116898466795823217213549538954638106780717129817496027881667902807443516401862872222507745037521275275130670678690445690386720306020979257774409879851723536911618240196720733416873078721451574243142669862816302585474193518726755256820581015176283408441092792072724380145421204095856720433742590726527303066289471187144043486782710874399820437688464536481534173668949444083384966450135079953133111242140438085330678839298312760213979276101681075404352278214302377007508157256914233714724387336549408991660461256424353168341243321225751182331494784865946184980170785652807247678273199042143559122583592551869250412803611483510118019074317054291655748342296680634865401516918880680863816998595218308030024842739876030472425944363044274776478355923779410306636068460776520373207361046815142687499529211371543578161511764230703458424693029996006981715661631907974415145050566986510589950698234576414018233147654765127591930795482381313321100207147282105954827715351191820635077248493249195904885024407925570639483649039417828647871628548922750470401129333929315842862571403299007119681230699569692205491303018738689496596766327327224865489723780963603530437103131569459290575154679981348018006748435531173833444981452210149145489667635771057359963923691717815270679567158461829456920249201043374325213899859737250786909666110641949856053532210640169158662065879547127393658606618502909355281256425432080980543686270083336712493028984014916078235586299761024798898735889345016654712641999376345941226044625789102111192399085285149503574316880905731469883555253908924582375834179664181259914186406591570774833160401854330670125657617080248785423339656803601035256441730068654353883632821362246350765070356108950387276222462047798320501616864900163950844843054115086695474933882722981837778890619420140162077082218962141496071677608140742345747824203584110026151049913923263473239031117384777782389558968184535891399462269103707509870955302593598465768042165339905614780856359739073414603847530587133224135131758746038145417382910411245202124177775244421138332713573731916031290178661147416904895129119025446078557203540271704212942969108611183553038073944212229384382450667406515043252563873594678764540560227241236178048833782981796875791448578342830412627030903829866700081187273914582689036786469094722587966065245745705259862125102119645825587473770432588222498563322419573020796062357605114301162872482526420197924368330116722776896712609623948593811713257546850040557380884620590136994559795789788964203721849037085654351593510207224277721248352522605590038847817628279316262500780383645461334915328817791884378929119362079653624530326581986009332486247419521930437684921191190026637944837855348467297492448862633845945634136198787344891045274949743297687046720827858820017022475309170910052148335659521961641520901467746538640956497695599543467664617981881156066652144852311952083791991600973966059828733642198575336608954347986170653183280067577341118310856427124295242291117664833486596047828013677648148347524979932629062863703495875345613968936572041524874571778784217411003379780891999482534464655701694934325338208984071002187901189554254153168293605190320914711317634155323854968748879972190093125425692573307986305883803974394482446257343327222644190335578128151223370632311380767943705751965463165146663591002310572907163056982475440375268224292005711822375038892269546120573372023900483131923293042171141570068592544822445180079313059826212983862508812350357427380652679271454056189392888786145865703446716642382763016055164390976278167245531442221615504650016525686643602465527482947015884804418317688539259359608527970331973926886101960522026606768335851368285345420689650934484731843259035999188207602066066158398701924387554164506683027548910554292909180444265049267029519357637258997385869401867028301351654126280272695290776732924358573234639222782623428045699414711001041230100139714839760648871259401306860877625959359813450074507446670379379868480419077511252596366969692115188729898141534443085769134675941594518159361068311329300706090138310185322316867920898936958127135202733365562472688431694581581875917753840891141230358993557246626115855505452083889384698432065237908098439356806598756108591592379597280016624761814314478245391850514932986951220944765339109311843395560328856611344834071865259679858482347625363562473744535012996021269503848221934494404939452181652825329045393082854666650701030326698466801236598985389350122441169427200716944603578870866784692961894542668788942878217954090076215204324619021756322882018654111702126194092143605950243746864102511214129166819584119571574553438625340550597863748151318254324619540820603635493000979198982935316600680058408576042060311484127104474385666372855181341254563387821304670626407574192805709028270394419139635328501139890966756746324691569537533497541738432702849879030330195904867204228965549493778870589152272972456503690367589723210058675655636844209832452191764903959115508127360760728858618394667479584576427977545949098165686484482062090078205871364089611531290488329682489133680530423334888169728005417759685507494434350920881560521501942743366350211404202334911120492338202800760210233071072895175560125605662983725955151701999844092311002116056132708752604317377412695215616526727034163032528687923169610738351352888662947990040240929250673331739991224917729019172862208308103167854374965460001875341698701758553767764415275924539005719910231502564012311951969239838946616785992435954785402607319922870589803283981062500189726560634490531341977035901672895800886916541964290865481395513969408502413017892147111037078336728903185732414300869517027594901081213198152956909630196164210869381001038730125792845497733245798470253186282428211733604835584115066046316949887008301733291673274402326896074305176139136229470418124998811605606883751198844078626184231948694975423822417197519407410313531698727381283325604198093244041526378136492558228032092125334006003011581453776000470139124997214831252915304424274553193896075696422030574478231316451450591544609726994167876923729558516481255688534761741906746557627734542163500195899530804155513088886788021222564759052317379850623658675882232736844529784094358588189867074649006479621250423287811781086628659002183269873228464753874417153587386832445340794158881024502901139479872307554939367129684390194790567308159986053808439106834962198445930570158500104855896853037343627107973803041042995094242214661722646825871734530606253855560457904872818444411806031130008622518267074044843237221267324263533729706655200314487145026000198186146430031678689480909226049630076260388063303756180580461185573285688513334553041190571691913351567569759659894722189773251853055166502036511552206503667826334501876198188249868760183569645020814965081932839426192066395354078501332531507809953358688392844649426861698402823206021473331219147886238215068308238215723490527619376772041443974174059577817033779571895595022576309678831084708400892747359992894318600272803823936275847686827799536239844322288670406828695040238271050307757850421779765345640576951199560438079169048858811109587260044352517212067610146135353470984286246265927600127638851233734155619861060118507796185850300312726843485468731429106473186423444111099028099529258036900216862294992345590490551678129174372229106194018108869446950059541225714888840057528205073335674204464303809917708716431962947376730050796311768450486169697800950694568213038447394994109208866145099326699774338847257746335784022243914529885236524762902165511409573430817327456396597451439003540035183589724061708504150560152241071725577511129302230450839893012627803801406306449570059165627129299343057450289930190335848962171123854647510468663950309046428564298845012463361998535422946892481554725475791472820708272256801605250118095886708342976629820630430311659763164169169941787594478718631379061939845481316889467170974420751380873732223565483005613376900844291697630626233019161961167421488517527724882505203359837069830820157936411476546809763264563657194104497316807839055844037403745440685562179094344854649841719009292542472418788179517562713554409227493679363999752669120924876847420048925414910297545472281198693515261935836110631656444126072384344215985751710459289793415986366072150524177833943049727543383927231680215696083444489751413002127830287878966688760279352465055324991996197633559906959770792732804765869900204211797678298954301527580108711982629214679650718851842332312975570702621090048060439697747568078026772045070953693522979471125905794312176461609199343841028546614107591473927466215692037026990754678617454007379971661180391303422546758784832818910017623754246859095508395414318441897532343434453681969682779717991101109817530892333544096425137482434569242877683015640569049018397523560789445375608707901708392813249341290737287413922628545244222444120911751551154554991973265901242408028913960708567525527893230928421976098113204289178794779765408620669310246858328697543151417816849460970484851301977243222681132990812639573146059893840968997096203591358881855184343440318678682269107069901945763222050027586969429651598295532751093700266570540827314509316081285159126887218591222525065652856854766264807201201153683659975308942530813591439430779260048027065878914444106774565708586931774572196811776755536026208875638150205813128715316939468084821539253144432170318251364612957022309153173046018183967687158403884720649248991436289964053675881455391240701586299085182812384222972592316487584472274886166895358979829939482158789407954736558630410442092990801864117353034680401837904700685594684578344146860141018793159414439597828221246664603628798407322070249999171004869331990915365210071098792764704593240319924525503198521685377705358938971717211624369946054457406961973834454643853852153844906831517426882675696656929604561385637388518932786356070354015290217274340666329235693331064682213196879914481892217802806146907351013955290695254788619357298546994397854921967372495915695364031884828215640883913350377019884492909954800757239035475711775809662494550695301977642123415536491636510986316708571729471743241302252293197163421422981298643730160603964365963088632886142439775513856821635662504988918835624052684956671171353814486786712632005067201405136357014688351088928674548492211683017084655681455218108646852170276378913301415088541981213045946317469344247713082176104888795837801323292090280788061288949527032317592385929260162436422664997947498927662367389965075619221705272244546294138347606511823190852503926956532001187237201820515612272060407372461301576385708299660243050524661676208401623184857677794215780762863358129148422483983589073351413860004876582573873037485063817644492388450601782264284441406775970787145275295231316749067067937441082284258100322181119604650600405879121614878003355557121872423687759028899068871693837596172951170490065302300581040454762222101030877775975721988176642382180697418447148753905310954656512664269494611691451201378505620305255042029118345214467236666173333124675676439902095740668149024600997265439813887402223191393265215889253479293432660874746082243006324966670616322958893816826926364913002344811271973043899254874884871958375970568640440353687853244012973399058069674214494268124300157384958611532530225040287523355223673259942667496199448417866189602777910976946942179465765957895246779456419195595104072137968446936773360591188004287428072070803130591346517413882986292562774851250976541406609405643316579112659108894893436514289846004140459625190726561966134242115676120673206024450841991808241848210160262071966868716677466653287899570506891616484893149106208617030506242701294208248978069166015156347034104063506553063426899740612901015836104506385066008626640440703477286276977924105738066527404195633057677104423406429936281131134123621113759442146727164274447944394662225589677223030446146242176395081222346842796631363069913994618784190321352556658153717636358405604769152765052206875221217354138367361134353083478311351617136666400909587671034393785288700802518218811675941660704635157590698140100380497807521687193293438305442568386549542199836361014300804984254708996173744941417460560362169700176469952456110465898384330451211763810474059378127466887375549978706767238157305796502688377808081967973858458724405017378715967968470982269569428814524502390237514443595580423138588929669557428234233887884435602689453545671141145878669184877759498509966489712765186874899281339042882796702277614866602354482068193664565655740594013892386601046024758161931538737541837936073249676290534207711352300803329485335129582321886057408296762835053313018737970411397086642931952318848197384503336365971911415229046603807705190425873708984249409549913278147002805630966091338253881911415005353182898415849539824475296498693902820849818324244780573476109761709157698138760198470860332944468184913909325955572453044951471585617108652890763769367219547804659744480214780748534767907928575555987704942395761817792983584081241282097436394703300170000699473072643598248426909615683249482063073070657384651169517787026963553007490097096473588778396911475560006959691472513298281037068566635465939777071039692690904249481554946556963934183504752139008853363249568957578470643999152680143693730299446893013676813794474668631266639966732558523481146262436197671687756162255291558187081727632606662843764052425973768450595851225266572146523043197213036119336287229556799655850574173873897407437193360134650578743989193548177223940047277425759886131921003621236458900771795761721953178108159973153095106612121494859452372452950507030702672136338546940577049659855462173759131191418289076944303028324718003030563146754089340392056161009762531609417244444086031039132384765821110947030982667015110268597008132843330656756626723868610308740220873026338403735410545945598307676889096803884000103611244820152249062278541384973705777257042039994756583215204087663319667147639077959730707536684360578122747446674624542473157712462197614234504653660732722993117051175558627400987724987940281222525551211190657187436894464520300325613989836186728494225170471392363242947743953145720322324338480216172040257795570136169517330116889481871427485077368786197911099416803196888338378404346329006196679330732963823905579876472729002551240190269808422469757980757982096097615624548802653565011840208347449539821067825935324796563247852776428465415110935869660091822036381800259530720734479304447114270933909171236196240915769570896774668479335191253289280458694970210295239851280392424450274678937528338368200942509622559042124552442447430480842771696200705018496467690229475183632229031243057267836143984657135447252761535632582421493618658757299206561594280709134731837097532025432084854850373702241757513006580620631064215877869510099408447614385179548426659057991476531295672295512953367423987244879380965668381564102277576558281283485861730608105849093900596178693362133850543853085506618830698850265528443856610186962212293324624216432526857702995719907030947653761571712132350611212246030690518235492758349034846325928018652223085965556298078322055671672537330838650435842360614020333261496033386956755975031934539418533339920422700347775570207222580842422824427454502537588195100509979975521362728074575667297691849251125950006558113030822483152930143013369811785415277532727877739231914381441192623653010444937598948667312576697838951300315135323833316085353318179801114587717317067991073219177871283662455968197719602636473225675332655210354362550076243263486809496519940293269616231275770425007126026112410136277400973840132955630072226244966852454890050638130151368185147333072310573376069316491049233122110515929162481364476900774642592546202159443251430814721729792023555756972220408051746041273692227122886730275830305358361614828322359178752865698305063114460304394408328738303265808988159841320468008003819204380188772897026345262021950214411396211182781476929299328275893931770241926725207277215314087962416075130592415870917116021186603627849503972351377636730004284659589486481987496595606630432025108546492793730667994675265884006210341433380192658853557567521182570968926611746915873879948413962732259283154555192502067484985997291709206913633591477436901430440040125385476341644883209450220856944698189798384318669259163314136493188719153651716882735191154056972551379001831833771408472572793764660629607818911303600931296528711986308747857089216626457828039615616204108664159789480300674968133567025618857790476357160663040208381740281010316072182109986856394775549636960748346470700423031524335852083028689083620099392098424553877231656470015189310935382548105626109365313306970562486024928994747625689296545312235726551947438756533197802418068664073884878099303683770945691568881806951937038899948592775319170647394575248063790067554806862555998206487522087976144067652393737401391598231148202761692566675652100936802322340300736605526968781405741625168797598509591660561985383907096053244982084155503224278655346659536910942905680675086643408896990361470856918791493799075808897531634061481469174283507841924139816422997207947995762821580490180831175922633048274998570654417826559114553999744105790080388570993067265147887097718001118666163460248794613603957905250390388057153056395693136165474764198786467698337254984491363841796210509786766590607637226835147246821304569787244122870884050187607774197201376943237770342620845171041001855238760259306060825414205234894320071195393060358168533093196060118485367029942225139742106343786007374785145280465054997218202022555934421739408191973445960519900304303610521090669943975140261001776947301207175432211485111069765809590122888792353766373795547571625149395021744161602371772955713843806540588894313363295339075448694786608617359144731473282392825375952327193110283376215908379368796669661827411991494267740927535263525967690380502895123597217820566572689939284093906007907697863242720783066717662357243916497320753909378831968891572091156564729768606021167726748625853797192724387944526212552793922501561851023803189652471661632017533218819655982183299390437583828259242531731345509815742839997345098632442031661775420991707110806510882986571393732412557527867583936405466829879888010149482725977748477797334147510866850697164238112930273512111435919734524536822237454703849939963373932541958805316525364851211021234982529641826213971993449757595531968339713775308161626021158431581446066694598759365830694241917625142255268674124515988582345385075192839018353682609999813777898378361685479550737580315438190118100975186425369119461046962253020065965179048954785549034296769594433973301223784291170879860429592957288687985644307260381696758307260876179777572537993629814507490407205743927621453409127017186193650811647792586949300401645876032854746344813364705746393022352422512777598438817611816555830172248653134459410660603781719508828584317430453569476668279238741592355395806569731704372791653203669675117988712152965390617929255285359362427067227816242431394172071439349864377641287027230593320239306135047302986665525138301659415877447783631137751906794212416824896826153731681272977181586125073947618199011502563133077396012596751302501096144055346091987427953272719541494816569744453385608405507757411798354656226028949256323537656276774173449079700829168215063905047520541968667379000921493270082850223041522120499839563741641199697712145308584080802645785115114394622602412496792163042603783142960320860746469341179486678538701852382794410575573080650011828084776684637814851487320881563155037769965650930390318014471362331513651642328890086322160537054716918030684950460127000042162614317092155379711096959512519231861790004910897702281561192028552498596864856380160724650708822157371816441122880496753546425418783182455981563213485968101963275465120474350037267497032862461102703569646001096892005980397943114753731035799242963371447453668152873670620538681896194942928189551144977281850923506948974753578001414735909838787780026752619288812769155902818341718580489054113566832292951963776535556686825313765801808044813158725141257838019906102700282975846865611541124576767351856764150578028922383628150906873509192348714808194679896182567195925793217738782289803872044549409208157396720029583282513774529063759416488058350174989929893616421849686520961619165287422096339128687016320881359482101069656024688881796601156814179623117679301920409652433075605180108236218205696711994049917328543013453875112322172686990899493924967368638846395509641514884344986179382440278196277913302346335131590800101921500616759484658008706573285562885318841891929287330185920240059551435614950729898897787431851641213020445737365577252417656265957909581810778945399664923391561554178445834687018648760904592663469323477084393512239109738264910210411869899291051618190774817109445067461347827090082447723363351016286562115277090150251639949107135822807340206857465052762837816945860548180937542765122776859062684137493976724448941922003100813704077836128890448099115780739670713720115022918218985042179386753970240590086239786475622693767931084574318573305445443836287131099008236049214698382371872166700718690454562619506319764339582669091651596116570784395646086686456952636538929038512456309023347926764355151198577518272849584580033001540056367338774303007024379141086299709215064863862389253693877472672016014885638287331826558026561483366533484555388035412220550552929819596263181998644191440423035640019506516391716412099893468210401712018394566470118876553679200512061366704593639916677485412628937944202449699616229447630073659494648937248252623452190928262173792272762702804213336267335214425100974794605905115817201204815659128192142443404464502098840069727083496025958873394077098571977199012722725534232724380887096811253894630592452805084876917583934765576452961041412968899017951118299938299239858667833333725263734528646526672360969483108491449113169901847818627707620220449822110571066017646649894952600113371856994634648840359300566350374844997731619442878489398267921510546918310940208860794432091209919430951091971841992243160632931942686309218669843614240092487113474168592303237646142241265920048341918128300045914237431660593547928754476813602078001907604331449829659343257561488794807833438929275155159322931347018276740267593757847874876945885114915251276696491423910669793088636264481367190365464307204987210020152834336331610422401125207257131287487504802238240741646894880132018260018770797518617236821243675176807530422189119975884585898568951636072676256700274378653237097797843682307090535321036506282201437980429778771758044280557745583621641253149700618383007193931898436973879709918109380772449257024457119525177028221202136817417324000487997402881621372283881156548010824345971549773805044296166037338615266190082257284410570169944073313206224316290659323969809285880580128550109709228379166314222177239704586507343846194479945494075225068482455462214672159986560107012533941916421646939215919941323901170989345811891237434240944387574111829508614108156832331215678353672484875123144577113774240422757863533333148496006261772171756396501316110282073054847530340816221852503545006890113211024189853122915057164567861593929908261300617534270766627847419948972296271275914155443139927038058432577616249261934175110638951504591291200853917271461512009141221705119287719979415986616785869999277584286520140797663892921829463467912075382584828707055402069492739423232150795253533899695499144960376375708158874583157060288995831119815676101923262184131111023555222537698235369670896969600062060032087042273331058798752933393042506455371570222984974831847222056921727469490574227445756071981725542135490629518665558789053891848104052338389113799529275751456547520397778612106720479461102954059851152975032092287123902767928766340623813049517629806151493245246632863910666922009487742644295745566483150062906595280641856286343593548295437056519383885055297011228822389145348454004827089715866931289435941156127853049722015748724958568799619721825827921017627468600017258417703177945097454297447186707281956286495540725613084859962697775409618138869431461460894011736757584196360162188835686347183497873294102453169783456164858583130979082720407378697990548790143718957926557380660189818303385855013931644074087054644671126996734956548531741529468270580014761711497386920850313986080079319947046862283708455118498027600381112655468982206895904957295441135610108611493055580481417527522656843207230082638829073263237102665435275298869229968349158234009940792371225692209628130404624133962526298654893228504422219191789579128269489492705245500650416627340883533794850826096368537532813599467732149531210701655746691076220927745611780326737089886288044028858718383445551236234968595836460877732890496377442321475548940432586071033616036280397409415792517003127022028801570352085687728535401802249572527989904938721724176612519431864945600446686518008180830004033225198784793708351081344984586196281089807079816673065544257126342000780533697574218406011689652816742272269833873103939350356842327535861335984175792745781593134589486206382945166060546731381134480701261428845754794570288343314118289769942177253636645361206248444515974846766157597510895734566924108699421010399540150269914035755624695672752458640481401478434892284090047955869858323597612760899598955337180941025423311850422574888597939482055734615765812386980826552894618630563918951838143931196047913240041701871773150185906472384786706113820245956156157917977887032494259204198642045327280031436370586206047686001877726441171690909769763893833663012678428407461858904347572513530155221370317071474263222243167426366689722239992828245412394244288769109077705186188067819790744419713186156238219924387014383601003689258349283104717540160616995517586652510023260065085206210636218519180870394026660068829774909855357152554758241318184259136713875939494642831888515191441025794598095424786280322249242412037034029565468827973827313359193986686450123697747906655478386619655164204051901745999920604330431863844990962628100766228992195655120196250082851030599567242833480502028602205086361426679681271455695871654854028929587470052467632992703448427166068927149993722658271606356527029111722210230143214669607469391980264338016738922561845525707212109278789781559650239978657812954565138032412931022663850057573731955346205832895976772639892001438572340687299089499778004613052880758795855155479802201685933804306636482987124144777232584798474185204658655105531957928461345653032223721719379260521027990391712160177020896682029671234149763030653493598801474460583373349723299249468027110889426941225174174606092818243108808896477239287161759915474673092419496184098960612559544254441314307305927209683314890211248530024592501393750556955243837122026481431218303905076357615185322073615219380044150552110822078693568536710584124066196227965852998970170495088995802529574877993682148204497811268038315610976093410460029942570144047210379833153793802994193418899940512970018987856070020697740924996900533729707520572464906456509974508926493933816198950177502016892518883721433399132427663103255400728044692644914880656835499599632803329473383811630585105482167401014682620446177155340378824260380543839049743939191113899592450829178588461024910722508789748139964595462151795461755402541004128481183650614715513927852647855033693945114909949696797083077627168989955186256272398041704512468276987088914440454131333975949325154691258799173954316247184844089960367210419906792938928657550010289926868855259062810394143628933859903346456247849002927954678083050824907635933980878562251713602142175799696602869537983302133693733992122245252430480546637462670828132332463316016935253502933472792619145037989596099086922227325243380480123243083209452149421440648194707032778537043995912103468350812559537963001091351159907521878642724741437860359192071128890831521204420670301892369380301042216157132346729671234682248330823751127205481393203102902596313401875286734375090343602985331778951512394712969644460075428239384535846995698932354455907663293416953808129345313136075260862627832900120920542566132091821094101930280080800886948301763615290194975984501449348994208571652153702835621500712515788342924102497278753979094415699249205607709709590164818972458317510780172397260073198421281012667718296459665693890342275749421192517271102249982302478713238463163669365680369886212478538781674998865923948822950725377497871524261434254060207005412806897358381558820395506609593286560237129284084418511953457280302717820122962676212134491891899171425144950579144303669547318299239354637256194928703209735125726456926947290883057323342140723109863736492437499899351932191321348480261892207479009098333705781975199245830539693158425248766700267684390939734505154366253179319180772107822160059557294597754564092334162692133053566087984665769039783574404321154058613840401157041086896391826406748519631637540438566874112153797023328449957657328359367638208600450398590307107882016206877163517722127747210161756902190995943049140067658471198151166505994761639889374746786098828636483192415157054062121426657766784720858071120772634507714407910428993628964549409761575147901461020227475239033483028774034452732543469677959720938956580697279039984902698231818106261645818939963456074384017230240910657862996791601736724902095995124650353705066470152059315308582636906442579429688708196696100398384595776996719848605018217301954701327570831319938973071317248361537532884367590712164491736963273404245647630766726397628166847870286437413330131939811053245229872709186551619986131410658435652803404027729153726757522669242169366699859894606996359538738904603482640528647759782057997769424166259068004047208097719796373032973853920034349564305272549047889197090850817785640425575845614437643300631899907961990737921380826256793480974194124916261177863628717547675622138494213844237104707146489080335854170637173662052182450219888176629937119986962160830984618943927498175212364013389426373952823437236786456094277328740866377101617939519259659783239699898687351040066733395748058349456422085231092266484392312027509482081889075425806677593394527816830192890254197146826360120620702373485866774897579872119338297733778609822548917211230028214829835673735921347955448277173775429709346018147207011451351790587763207609817467909479243837038855272897808078775534264915318987770063828223634952071159705486636784320017126197756328169043169773838617327042603873339277160738225748583060085675544950220308739890158399044080126953222887164220126701016046697927591184781941389541983043990010753094492004668058042112394038504889670558319136691487449156548502022861178931187331485747795078282648832844665512062181828475433551699815363386629025186826942959748501140743540762885062687100033865536023070459512681824320574344303189107019053167867095227989963467925224227893637756139195122014078329793964969308335384179858419252581867618825705974099359709531067637280004245223261328202109255944276651871284264336881766997075939622890972939563255472722777365895510827289053551846543648879811322549461958213703103513098930642546269916205191110202571806794466787997611222372730226868391177475410985152017426444598514097384814848601959711205516875336013528660331960391669214358298538030437749305745655120318361361890708758867260223827183379573717049517885341977187034537482301191204603078144929653236993496459252712719052364208436513130332245617158280248287096280832186621199457637777515730953137109270103275940088032627568400117287106350646451431006534559142616554552010491644235834466626392252420344301779490051963848785146148328704328232982608374275882019474119013053791282668286992062336591520646767277335753599262469025736341866597748534303585967632602585000844853556900571371055471322827110001114197705031077932239035971554102944629258679373563438888947446836705544677825275303470157208086729480017465350673184766831796899705911624654475462550276189981498812197931667873035801227318646143702498991728455635821009583014802812255514480746076427252367732959340790006403871665915658783996695258891134511055535551037551022544704777326073613187108493217031183770792760715644719478565487436639761291341146929402371306208934610295811499282013347407909064731126239421839458032651959925502408759497944379705366777892486402746223927327665096566950534700084600141426472819857415942302638852576180618725315422503478395903881359383999396829749128113319163703388258084606583285808707190666743270172731529772158811487177360611676162174427055372479047110932297465199298410788755970293057289351364124907045527074995942039304113081196359156458262155273276071476233117128491411951447140664278868718132182010713430095111077997305897180745051331276450450588989383479909216800511210039468773035219313826425924427300229719629271248278772852742436716296333224294057072871616740201134258620709186620425378912599478715822141746961560314057905215005240812994417939918093081543050763839319140814352178829750024136704202297664906058647342960468787135491166674649821284906384935077270194046428188493521332894220597903487560581150109493675805068118286185817207177378366087831465058232074690080223591429816988608894969554494124410057433809300856085337789286093381358213616716825980787102179396351854837548590501305583870868649755698813078017214106007516365070946387063845555709130396141055082137596521483335910398692945575555005716191994573441029707606707831191503359600525352236812156137643392424590741864065801341288730887246579834628989005349229299865772731940826288145558973386882622037048530607397133830894063803146787453906255422393440081163352035901770096396013242163727934460809656180148063246302667398572411915506179230951140751016666634300425141495598156355369129163117407404013731831195347657224817078891038837135169650088179608975379486019882996761187752063025701079737507940225668905057835913575800264924654388943786931911478433605586268945098885810471015707890945300197394388657613736656508188650046184980281735527016721482778347006528512863531821584506491854994004560947089994580759327734666444073169316096860699761842042466336695977550328302463933245299566858155967800807478471908336162072059766391973491844365577828650634823672733928908665973466549730912277118852734641393413469929838893504477274251980010674188079947039400509925585383790933708521708452293677756373983379437422500392686698864049610260334349381298980242268112435534063337463633735894203006869628690723761268484890364202855916438304400761283397559228378779947671334284048152123467953862637339859740504909625682956946291311813724686367762107997890688851769820572492313147829520472499030235848800063718125950630365790723153312343989091364412457785253809644344496169102683939104764710955129965386062196308620707470505639566042634449909636134173633354080227112744602770837534077002304981956205555603031621703544287246263935240916559288990804508199559384483641262117623402628539976908406951801319523862579245725283647557893793980352834505466919318978995863638953918192502826295784138942410146535372336923360713207435247196623737660278142637916730571064250732844332812441103241640398276307819310323698341441216728403267577894984421324963607226065697265807730421113276961579312443529986309165186486898279334474483270049727179534238522839256409111137264873451016010050043979031865808076167899326790979991426086284924500520842293298308664520719142289991022159295850272095341248737806083140495046616222464270445974127388760179089573614260341813133918793617865204029806806353745538128585461071215991784477199363016117921778343017173886524707704291368007418449201099725121029551551690293321031630343080388711622782084821741675065899839113281981003452157552886385690872354355232226319719590471336768006333621457608815494758673845775649140918937066428487609870089548589405595084959825774285726336081246596278625995801911120411150192083658835248671561243110504456865975537350214943310831667872839610627074201963870762930111790670455070167597221556852688050673274634472505056518936242764804604676201907173585744143417156809656931172727951817325941127500390167653781974220709207228821957173548731037835427739924047574086453713349896292535405247291307729412097026581789640247149079784143024988509851277690559418788367012051147115225227796828377202919410829543805908902726115771375890500676421036442843635676281807196520758024031123485061422651419301926125259309089001192967843547787833273832518626526670775784918028349511824599133542091361373072976818541443181048850947420353228209199425250228880208697252559337929614920885225538055181435937065331038999338200339084200768497293603888981046592060240604333317930317651175007158738187264050153363188752871641172146571731299076339495933697763962702591853770882854071157888475019090662904643936146489690273078787362004149590529021528960168450314134586534284342401880022281462562155866012163672369211805295828792351226721924137985911571542089239648681663371763096536987468558019262875280431017182429524599059774198478675448759294688411531222702828230292761088995502387321265883917129886352199096692049614424366766861984497343517915499290091561840355355457097016791195852126499106887253467847183590213467183785462025625132702428221037314604273704578387532514822763373881129749428041311940813568612444436107076886935645653148305318431162102427103912502801373729599453772697735204481252988082784771259623750716720849710007887015406957722341377473492268218154836843762295951814742723797930906084361023320043905639407933394380849789085294785846831512492383720296981390720268231102853369918796753000328917407907766696006946342619262698517287939972249956514933837466768243224004590849497000892175102626862146275141440504861349654595743325576779005338375257552503821499875225552461572668675644481667456714752178359935448263524546219879043632803489307720567957193395820738486923198949801615729856548273897767988314841321623495552633965881629784345515839281644908373125327692871102769540486208034102992617022047721304620678104870317973082778646793727367031684570300825672982294223616419760764954073533813262129031229208912786310316779437029921650337831684249370750398549689618924453560894284393388123371931453501441848473753789223312146363070096567870489652059568318941713936490537067180357005181424065264509559566662590619053604133446461103056917349210870084122107764520338680282755384953135686545556394583858656608750759511098426093000329381832438532808013941371024020114959060349336491472115333910033301597562673003466899835727371373260812039669599803379198714402277315754571917433323678213446423738484322179574065949836692015318807449464189618685606940547265137198534166313668944451294681642656376762811774613723992958839918508923228050047562303665232740596118584735216307002301356817646271517096369796557141148260717772534977801081379249650706658727849991645977370991040890388972063649646162939419407706145738320492725028253943566407920914829354977119272337250130055561020151293297160273439547304068790014800562758884415992947954609200935495596594642748031792878640452374699412037170593816354059998890591028740875886964283110812595986903946959298152465871910029323795633246152480145536013626266959816896584956411940812833672523223454989334995072307314930172397481722823291308495071237145869246565339002584310468578331824214142474863574943624741566073774323183120201587303100699110909829377850604051538110095628029478442067734149555531694309696308019156132997782522644603180147196178356761628429017045692504641621034515147010109200528301956599191301280139903781377801975975647803628276448542471198664857266762261427584601303549438352464915655506391950302465941267532875445031227879713749803229215857341135464230491108004433838442233586362527493271433358626056587352252793377379844358031725490268133323490513137908539967982098483902481590503126599491286992732778768145938123024920671377632488818100638920042854923949741840461634797389815587166983178411625168513516636738683581592738588589738250747943299374384999279554225091959036697615407846210042426576557462670933543833698130291193259814436230118792348401045014410835998227102463106689831924734011083702073869460446317856469649283944057462005768290850942526459606473376983442476057179907858203160431942311764946757871020557675070723429979987114706400313270706445032076919890658062380721738109926344812171773541582687780202353090405551096677365361890031403171725488591507342719486732944697222021668673495128150224106250596357771123643432463562033492256890515961894785032597650599894575205935831640203158012269314876569898945657738152700863243168531665704081997643329716547094572001408021876485869637111140066044345219808359825148545930391526835061952361433512440337665603923916098096589882388629076479039787372016128069267990535269328643519358889437313694919757526664038518425844286708775173916429973537962146353050958303495043910250927046631559681526019955824370318195403826664855080174723911767391770350833445707583966545091641651987641419739627203570923360663011529145924768365134896538735321785345161194547450546785791921032739913815153671305785939622647389248348715522636518849781538877823446426461109614924344572448432692482082762049135803426559432565643554174074951501678802529669058872816505881592439172125759193583720169963149597857601388041357159937822767954083485089835049906920487791544437987416704710714521668682931227721825776605755447712604912310045925128745345520707288073638918083656422659503158975582273993239845417989344738884038000273623578963454454380888067689078301313265212554995426601480731804984608610872332923398770654732660977530055269157458958674803816907567556465419462268443334994097721503852517868174054717914087210789542687873906961167164830531285816024585687398065617209659035106488123294652020514861371327129032012363722878193754979292289183924723171661947459786982309633913051708383463650984072547804778808877417340712968974156928587323528732526429540681050922180188602730928697437417369279611283578869179097987796979909015216121097632027253578816415428222736994788375579298339314961493188476435606979611142238571382786312288506479646381658590899781453986152693634587287955740558479918479606355786183197960164134454767552940333108921933284377067510108704683415173263928991184154358851766557475705773496969324933409314963563873418758398670723746126648110703663054787445429292482619985167497245316996495256058883222075743082948910437460469800884541301622987477540253805916546322371999872052916572557176496703208526339074686633413596449558112066780334675366220691954507005582246474944613729238512599657740525353495858346860576883894648425210469655814736056658898097909555133804855704569302951721703443237713799305866114689427818957109695851454484547021697349767374567250675841143675583705182797127388374567888347767334058619831832889228235472567028291682511186736070134303270827601490924593573684978817222614649183844829920716442305049744889650680949834804777798828969229906021947412520483448242805578114217058445022927841982088217364355467698418493083322401534721335366678039439820979763217264085186370189557397769079648928206744743642965668187538772038459993733791067019661261726546610570841392602517882847880933005125297336481316252089074427243955984475786542784522172663605874964311994799836070615503403663846253005881495336269087907640991824558590616081311760016198826111204959111416098215136571815405481269703202559187794964271685842381860036048202852077661571238039868467292766757861674500950403481159824692713912995420026342656867470914593139859659275935711966574340395013072133160850745901583376716579206062774619550790091559217287409496449635160625465001547624055332527016746641663239251110539684025173133865958096757222009850351063652241345873065983674862934512887025292763562305312798979348180276039379072298345820830809425806013842348072774545597738752181787784979307719244836810510794270450870121724944083955705515951618815940203752419768446646443176499958016905816932152225141001526681423957447590621665634810651427120002267014470039727746759508227112832740245485815493849687270199052406584529921723816797103552021110781014386012791296064939431897499104254866919146243234256003710533312070511785053257734956756433261097663782252970649120824893313837419929710508216916801445884997347966322947876932422743492544851773639675447370923360183218887431496190397438184708620737718392294711676702520450036542934921984815591420174118927405075255570019942552231199501508452334052643284089370095418514524056960378037893796172201987668896619574821090948232011982474133046268334437894262344186347929948903052186216293427181921708002051673214863662149816779550832812084816805510399292825945187220498791622531744320178396086551000590121260383353814375685781521713512087272147915034611445839097509344720893863906155744291315278855998299185403378753885845183730964903481330627212857992853105703621938952844181527126024021626719398733290458386941747435005745866916508924816481175627980862832327126893190089454237861415517838991064823242043133927120636054631601340821470627655737477577616731603351799112079476283632232041250293978698694994291108513173877047505022144363235980559119392091326442648104896238510114892549848832324833129018358139699229102371090890580256246645040678430587051990115563792857817654174504862254711167071720321867051539704509651240896897699901901832027639622888148470348762218755910145725023987640277398793637909083800243338927791624322637905529152697456727295659647967824180790776088003774896784115208599489812120465784472928391612102282770736207217734812549126733165828210724234279134956303453907408123208207752774087550775200506926568596992520284191954988719219225728815362325686015886493238401871175206247804121007629713494068140236446093777481915643749875088092571142992861070581714833422749937224279890101884169572434926233764050902977560203618087823492529345974288847590425650781051849656814020680315891117101995140696416791364610903911808610549365244105405415731372120959551292751083312466271959371071512221980318210931981034606159383688401907722992891497988250524196853730635473098272673172585836466142362682173875870956077267852400920223426754719318699804272760981353482117041358105769386393866262408935411594194316254420228085227990811765489243440331708743980159729058067128209577624734204685842080136288555414219688013304108848337676080983230997749310829421914734367140252686904359607229751489874194678915516904435116886968413388498600278837567888067199335902509453051011044532498922122452811040798069037085126683491058240484848978155072504356257740876882328376973010507183332736554085067762600421528297730627622253837565769722664559190141395552794320618266271082035798784299709263287449328135182447152456164074238718240847131373384491907321714169610808416847979063616910134177300851749627567548844204670159015713555276223028263993427366445790961103622242133553963288304711153787196612719173445273213229879197320981519063581190442645489205117426836503226785846859011251955147490064839964556677461280321582925052600737606450405800764195525878696751883932500691593890733569431415733063685913719917072698854626568227046869069905319720012954491509408253533453010812737728460342946843837702110086848860337644119705193705557253867552950049424182209357800909541620992726602506229780115073984731524930894795456400263054457455430724518680154118071614551875435858530208860052976810302382601463287076368201685423950391438127068731053790173918135839875102956942245376813240809370342863201225799605507334480789031785249886958770286085350488667478794052510153406265134468565359143749857046523871442958624748440644982807399255478633534372603055257850680195620015141344953172285259181085407020154633457019167819752785744547717052103213481332845557447207456144477748343174943921823023826996901063029909682375639516217793698768365098334550206165694760696953650381350588529250394799231200983343046408571990302023495344645247131577554490780911931463146148694048705820346596276139691890595999831322358061533600153210198149746868910051045334327557608500067279457959870521009870321285687728611632845557590513328379952445403623573326902950475785843567766564232718892246495015584822115692224108740723014253663928184115734548127295192048909127370524533428557387513673716456256278500515777990258313234576335570698537376551656285233111057188398641775154945831178119101329007384734801098194807613968081610860769917723423527238878554025112828330466871141269992163118712122423080615840783456235618060995446373714935070288922964475318093067946556128974970901710230234954290299129047967774485987484153469858188260317056099317021527136923640713469250554217066280946608530078305440836383575225178861742966334985379697100468914697961659052761885370590582593635062938026432438511420279448130863980942909922972296351254370370580371148858495695138313953281080887040526964906917575157693487602525839505662556881124355313477350339535225072358843813388622290971248680522914438779377167786602359514035000629819168308423234928764745918303294164624503234524994520109475839392231568496059997598960557980743176538316855769375359752659672392543390697859618629793618222006461060575879326792718650816959116662413308158608663124044717513070449461964488764077022032350875537259589979778204591713180352693088827223263821578006307262602321241795603355664026675551423124972810509482123895351000972339801105436191066603134576928092592798393495581857220418343706602254009013423906080672671609697477226957267488691077526578397681921477571274895466090120521005691226471166992099432230889887237320056181996272337894925764222960552765773684893845461649959803558166264754961633854207958138508783244804925119494780524920340915503482988227795250983814155549783889766815739548959318264897260089825270877564720415110081263082182945707544725384676282591118148037808518086631535604515578996481453872318072812343849019841636449807517566066926898330605620736843103481942551657045038239246926777710482178395808141682259725744066055392231598120542788611472001369589663500233285074844821733393719255283714111010220310005143575538151567766951022470787065270700470627789788058483239662867322367984294632197544074444204009179203484550213303457999719235500463326841310021538664333468667001988678094233512232543539426850956265621185206425484519893043157787806488379295548676697936791038774373360508083483677523757029415263183221607755201088976343684710834343728880585478338476046909583149799510657792690957607763251684662047460256873598165900950311307607488313758293762445501311187009928754054030044706312120527052109367449813522788505027694809252213177919793028033228992775679899429026090456452007086057379248071439668181949262881803262813696129152497768335373391776376374019652078655865246864572767981206331508710100561860144820470057314067867220010052655434667346394214955011354929130939132519992801024737908523189965591255547147552726671116253485802296733278644197338836011955281279340402436894694208915143333226980631517472049735239018333385333781664196782788545406304870554610324777046752934046921744287535653932954913260688735474801326516774455647895881467650902769380535036149890204105417617317691942436619511902420949589758271393631528317080983025960841348258160585070420418890554314137781546070579674978941962574391137346772000099536103846377421092072000449386153877650017124586417802447090849678643904500338734741023203401583145420478175090825454802400268252104510706203018721454227478872769278084542555488851811456866594018694950702545454444410876984756211439454591750985534136908107220794702568865084453971294381939262074191272668966770138336983982961639191393523575753431874288079732840371481187328967777927366228829654297277974446126782871980246778103269976313451938071978815072193990689651784568315832619513299653939072240691872320911892445143761071073618139166596602688465423635316918062276749228102469848835237671816027186101117878955575523841608746219140680218169350482223956675422570665579899917862015337947205624867175504608601064714743112249950632413472585814676658158876775738021996461074381540195382548169839072901333575839784116742976826134296749686070816636720157238211489356415671695311504889256087540679496138643802280149830363012951506552882766774920337219153884463492343111356781667814906634464205205194541653756525290030953065241229795824654570581745921225321090101694553228642321889310579674851066225864350041687859456250186743810933292704825184158047293690405305574601178201948496117631501490402653297516631020622456033444258303211606418418238965357743138495104366503329106115842288297397167380905069044165676559125191521688389281293171444169855480098929582379184856272728849593280158212574174996550547198523871998398200805729004118939858849995506992050457865830242164015337006405703938270115632033598816528398956911595544067117839443914393138909310210672842972260841916485852015502079879094173551256423159924815076602566552217138730806168841631893993988634816471313218254560099930381836962188943124652479294833955173512263540746095588185317948101884288229178241206409452930014828533753358286063616819928806532738231217695973544757093057253292555816738460000553052128281678815770928912152390020416234210626265470249534898299012838804068395461428805356436290466341680622000949110771491780039934008058694714679339382108094642331935044045380862771304082194151969274893622019950961575568413299396820147971154417942298381634830840706247779918153668609806360410941568767376096798495074694439021033758784684340265174783893059417258072629646566841802085155047016285099294932403964333795177664538640130509905910146135741943284382504702365785819708584068239325052641584110986693687674335785767626285459602449416994039666669679312752758952526622350545863625145925537510021583593444889445935184682533130186405207093509941426580681336847166048920410536336497043532908517249707246551282189456282204772129947370040549931542927957305665872725297478380821298318703901775850740937298600764735206101582102004885065344835988918278787058749242036811184104931036643271352085890606698484104646476669478221072048807855470396391116689840188175363697029750613502874973750969041406976794234312315813507870856941436215378090823582331926279599293844638905756546756991776941924529046895078554372501581984000351108030787174164351517176542139013903307035375580680015622824798617922902766818739437795803829866488743151716081907826981857888209541112571880638049978889624859351045900900821837178266550501082660666912740754429882441624362228079493451300326553384559377268387609541541377228214724955208377008883478730553338256136928404161213305669973041015835573894294196042824091830509199910550259439421231496763346586974146857400586266963278848851410372455006109942883328241191982567042311837321768322655683962652925079616426318177965441924654186632162464432385725394759177822768874186921338405832160812579459731511377694822946667450103472815078629285996807656343285443143916136575341498730231573020409235489350005059174946407233170692952832848643698786582176086393766133326358611192305834180749817645524884864799705861612268265035226190887714541940126319631023738075503729221003963552195295029658756870625220203868962009329325273640593129515518820966660765921061438499090011552583329703095959935495018701596343490036129186451222156663871348135909966737331412613963794393983579000059058113931188839390754802630220508180187972644443399395897267648365938470698080436647096767985830245996802356697406056465000970037469931445096698017613106923590325678934893888930794980753783360610593351868466341725883264146258650224238937223388549969560260692043888626262174661035953204581338209869204034234963261697200155664453129818072622078302126626054576342186781461785692852999271248383752955801057814220204414279607654172968913501872624307587419340206359079470848300914972010842080277956071243329953101477621312007349808848388912940009546570704216638769423985754816621773017708734805760407225145196229231805322664602987848323089211824608484138381611595569714043940760125585001077450166188151612854837165180251399176969541132310649782621368077421482753810612551940464307461957471629549907599374333368666744033133371535185735315466163511545432064197068264834247929160802199172677913426393121306084815679299121457876913892096856122372615857472047280810254246068629460389137996066673315871118520504861304633363125367573737282341024410331930161500329100044240705753547806949798954649340819453873879661567380845111301940331051653709007697263182347021175287863670469570890073497496557619331740933727262307052929710924801066432437742349857856015247941131511169182553460697028375857619438002800931037588168408739410223165674741919231920597045807993352880232537233442046692745970057996489404294553628107909313235045985465405703912897199400652999466463518408748542057013266121697036534433923319612395100654522887137176491431952548449223552976176851381225248452150260382277041550099945992947823830281007825780240657012303189578048397026865061022055299554943469561246248154237452300901521905158164161528537242983977249875835267362582550756163221377076594148552422406552159887349908795075769678677857290608770631883869715066232058494090816396656588612475941983272660840739197087192356127356341256351100367882769369260947001212979567561444833986077010129170073375972091883015637055867504476772626707027820667300249202878344886975183974338879565783076547642715918704591622710865205486443083926701183984535788732342612056379901331080128531031112139200244068800849055524622291971682493452667068046900411584063084626395680872451216901914498826338647163168907124182944778316298609596079131947400841755116597956364182799680513277540382671274231949923107038927627690670093758694772132634088364238926407399956276629548013127207233604203762536522396340174808973384996327127125737232905185857780133585358609869500447346160434089870154436302579230420710420981445656612133544844522748221455290868354181961672258048287898608345839034058390970272941326092326980255010017849359385201544813361727580854328371845890773256853707527454296978429661719895632930403897508279803971952815933320694328448115667415839528726768985218690535405234547534435703971157826904416374095231355227203528812518767887833111414947965016101678935405789369822863920067736532384134398034986505031945294312921806481466759264792412015702055443815749638991497872427478443143922099266167446406819053042482379526123652711912780386104807128267031029574262702902924871046810351874649481117502881524243442835771030700316202703627429801184112426554677977982580696022021202894610718791334368598367286336970820302861396744642807787020849905500288136678820550220084682613439901539153167190977993828483045483328102715085117554479297312929257956643668676887759921323096986282743292661961884689456532821379585698608144132216420224786687454675488073928859324290739818352385448830194258059961396588399338356057745469562055491349572059842215915129726283760499345084066033938142305390974894046946132380250677395140151730910800221906048674901029962886658961584531528954522938787113955096063438965941594199317545640357472273381627270061117872380556790685584817762354747340682912135584948768118715579082592744855703753544122540779621169526912041409616277219230687309106968320421099852784691686910596300734178101696546015854273134229602617841232278487042987950515391549405655323894853957390547956358222056485077817788409786548640688853726497484224858608260686460764121334972918818306367111585657786575463869379865109271805811467483311395393651005870697633706741988336336318576699775040357330119613604528817581064995363519941113809839657227609714178880676540993850405129646224600619557762485722885977346285804004716862217585802534381896931129325917088464734467100225685821725387281192114621887097869234096762276279453033744573409335189766812510560687531511628718365144139238514087488949374360230461256953910450242237423579047208887336761054037649539533204491424646526302510599536475141786284362299682198212592972488884328262750173389416802167841920994510807593351417651296302094843353395762752804247598003337504866202969959467707310142810341159541382129604747932082798149993057908817568666693833485747029458761648013868903986696576133616645498226612497410851951152669591194486699940261215508682910239546415962959508916415926800007595918807498588107436064457420881347735711276487670977107731245876888516873544542481596430055861348713005588587993396079227041478172151709135201732447785317131708007660300374167370881836656957327661469881050345351193514563274451102271337334433422240060959873633847078606443263567405054891716540330623357662568894213504466745334479458036196105172103554410652377021997030597534163261078514537205199755116694867895858518297910804769295837040408035022907083970224989808978598893518343637538713125348190212250167262740082178733636070173926767334454326017113186383580674795833265158233228288453341319527863937066897596457767844093390866866885870093309367707676271311573808214099680161134213689272594271017251100943048252992306008234312387992039067508120461729126279670288664283078445126720224047491518907285504247607904752475122736075280642007461836301969469371235419085603072154139555534609360601884914194690412488054118768659604331427526094087329153827592021413110334411203134745885532352887401053305232902443762891570355173262791502245820623458207814703580090557184708158415980907033564921424706778731126281279310128581484982102672288155121018797293754624982466594571708138519750646581081883478127718071924950738604076854025821385620658247150747934567232024862239595563140537627479558926774588019578025314299238178647821245713749436130838515090645290400409028420841988299979418950813144655909713287253580172711276645047871016428942704052216803620342556390357898501483111195395340818987215105868317041789436557085719383465378911061735439296650746838689567182910546676425663635611355461469169140499238465504564132327629939230058026639376682794822206817688948962733770361109787384140085305337295936532171027316933312663469246665085937266186447993532416366514399199113766636492311993980088025496521102011310104059684818883782384259501470680097563174385472982232356920279830181449959460496745194119474629967432286214455359082226290777209832700372464532521796179038246945536557579718573087593586566344286505238711406377695003956705143701236133907101188995240000861819455861244602272915852159332137105254739846880383086024364864704195142222470506670022860781622427050235401834027751017552988838646153065328041118780856081784529611256475445258478166844545534808461935164744248730609182258453959824345091920428326241142911977899004642643174557782021544553760128391928485660500500140955512599688462560953483928112053919788929519485394900697668749424195820457984206504905986830602894917864353138480223800564523211513626595810884260678840071487232444445806432794389004879783507832103741945144023226004383915316595864834528454182869609657789758761100824277766839901695726489366609018702889840422130648479752155275009608756292242981843435682816369316593217859642774027447732060323468920458767219379902876305857563521636611068030215783017242787941818785886717728462512966493787929409420721543564917117197093065713791936483377027110600789996971651557903444703518814820166211621653686622379221596718382391077409583758435211754774611247170238536548941919893713038711314428384622852829122279636684696467204524348720570043212368537981207351199419136618559213080792019543627044841354956945698582203068270685001415763649502299525236810469032937086549374709745224495310254319681613019754613683070587698036601494391628656909563841351346258179046817311670004718477028558460166058903989785276475192798043596531458357063743413025633670901501639363524793037649129783448476651428991366296191928654327718487622684832444573133338480410526543168328361823398000899487722847065517767105162298138873095338737541059274056908161027036337728512469073578546924819363777602615722660737220263044917165281981234267811312161483924341797743929191497314864756608116588815934808993428390685874373015638431183895452474426958003235936886128450085791806076074656953624972953365088930226846805486655719804951488831477185574584752906892036641461355428049332666872517681001188495779368563520511625379571478439081699112450174234644653865288481094514142191905321201866768749666833250880614796802925631159427214952416165415325402947467960187734988949215977019962921750683298555087594715907426487677575543492762030128722165616324585200689194945430567087974644855287047123366154525152537762241901935973338309700945483019923004137090474722006793413550155839791664757876690159274071255432035396155196947280260050810948318336762973270573318528789129019230700948517386087656305942477305151819295429685309794323175531773592011637544002050315271921753691866076507439341264511698118506737629351109434954221181789963512181927534872512479917824998309161686124500989539674763016280821354079958241746125483332996802266307363392964069270631491390252653605764288092902427208192903444822857161137401725879388584892414500270750846228283798430527293166230758259978907388252033343191158881145673469526361855113710113555506178031782013546795608881444769025025112754151737994597390373518255618055651133664524845874649296618771306345020461665577061600902706696151419166282052003797131066108256034379935984008274348456674859476818786684194114438363951852979234479769530985400064598328329582498810091358534614271537540870861155091097863532439571421424478727827211179673923373994232103929104367350647205779786131535591876069346584461072578939275368435331056954858435795017011288861164481456972718809911482038598944512754551709723277770638845168111487869243867974455939458331218550600990619451085005492859203561729492887650141409057706250454191039762115463795954403735648753943097568151075668608885651834765945403925379185458786725879982317626389449422520615091510804533677300489540768521711564230453509689029238959166607698346956088516503013042537650671212550307106200035927759894005109992307719305322690139053088427048130036696167139286862505187756663004346019742472424720977550540518916590732758314758792616572441681784823198471582254680115189534391095224172857902071823691551514513604462258034786143491486539678101029799029712769180392023267483223567297777483249583727884759175590072742579004400907675408900578968978127029512368188138489035384891847951098334425667967558124069305438224894872926289460527561061558314406300050592420207883410222405458539770296942263988959039673688771195748687971110513305205841962761526037027137971554709095090167047208770960409329650070425774671112008050047061618784849038731002804966471093796816534263129030940906613961785505741701594930863850210342110663725837686180195194308316849626698457248492497987073054410915984812977463395197617987624134572392531541094148294898824243051421866150204597096123756305496320632745567966116382925205967621991587763585472945703469059515002486140921917910183751753326540112248833806774261991366744155484255939475891806744326332066432353935453370690244982774420466700155722499983567813110031263579063712686799341495966792442034808872738430968785511703292095495975216523104374968046974548737243952584027737052431953798900860017401009421913073377161976586113284910682883414888327224799489934381754183040773700330294889983036649388257408400453059148880301182368774458071088488727096673140221091192775098697636099933908738231843455549636733776353783117289707051538717588530527859700226795796472095244855782904387921624814421083022058428368348566570769666693587155104032946967231377290133770147551939152658473607079338340641525072035432555626473381672485630826369389983363820079619117023740806791794326989658933366515601918550761241980108488941437681428613042889026870139613900883296186894562799301446261084084776783885080368574963246606592740161020794055002158399956426224990608048578989243919605601731354073357798198571262387412080574001085673876216216357083561225358504933114045229385300733124239215139762006698201323311583063479323310626991577407286868117426145621183033935528865730704125668792318950762982421355446835069639914339715827360969647691613811329634086712718318571787111305841280253847296334542798624844943560672370413191870095254450265459363108761887755813117868135132040986858877204817953964996865337882944130513282025014741361802130325833683637230710665262359378067369656320140029148497385085769723366239576157626976307972205903098232597849618083299837135061787984953534134917532698367109645888913452811985134368878176532423751989442029918065614962023773886775539020860020782914287730355259610638447536496316886998483659743105455813943858571373905307078682130079952098973707451675931595151463811100989140148483743272642617802980299499460306803434946263284682374729304568573910335829093425283051171617088182334996735184866476695595424106920190661971064466622793623632847352006897022267143082682988917189115111141082295930272818570546346860861335544058614885146695747132162542402959135721173446134974435481882529599069090029358964641490465512837575967328340199218694157819634338263225522892015071350251964076831588928281467822930942643124852926244896329132907978642955629783039294016317075986323174774448555853653089534477613349749773465029527413998793929669763093155132679520066157873833739043613895450084562212433367443035513189306372707057567835477834220031783413577884373828083421701190276278786604757326527109733221195933962093644408562512541255736365017434712331436085602135959342744970503507529940486648373068582024648875528661695075778073809513600086188791394812873160389031792066017258899149152587836143534827161169483384834310470550427894973283432958968073345596872240630603485367837472289180621957506119441262409349811141412550819104677321591033025249600556175463876014486729957716917013427068275133471817515427079611776438545127805565239127139422848401252735121872368042275919048634351296782591036924713813620206814727464717384748165767713223251511485780404111653101135900555644330400891769277692527910748791019696037417170419634857218827132068763342390206238271012152813833846147171217302107202438567573331452417624381345719259345919268544133022781964027315822783864747273742760756146683735361949010252094121576182256959318077468003159088996518415660718790588620979694037080381042623495585881981144973956388314320581366530614401547774623851870268906378950086896084316618821791820958290470675758438906740254823674235962876203796604163342920214881621917803511669232616654713839550435294324305695569003832348530958073160455827451829558061179862753406816951311160851575053962460817896358409087173730121394795475560101858083759695424725370272903298122094260125648545152700904202526837289601789726389534536301495852486983137012744683068133873114812987187609504848022634210832644338583966837041280250543818180219995999976969018456478771941295034603322063120186878509581812946339754064301479944680429544561822353027566480423798255750480668624989004549131464153499506854153214707273165844844040693047552168905869388769622716421716616510161708554531914142664454554641054643535981922922696231587215112780742930587476907579789450848357683339884964051496262491978517278342357061719176202579089560043552195091341944950515941138364233768581935592535901923005540281525329630934036011297124433381492384676236038918375793927521827224484461908306150587954412045123922644768095053050416666596720741591611879986836406098381535880933363903142587047549176889060224436747640088519867879078497507587438849096729145276129935316550557481511494653380813953087980011334632442525689381683769785705270278770031963727915696329225389171568676450391379413105614061273957827097513685784828283877086442837144101606370940807888663759282972796264561401040789604267947931095756711829786359165990550958328178178495320532496743373693552892121781888257025819130446894079060380436413174654603500649267470059268993904488359420370473609557505102959042633032083342385856715319896900240361240406149369824299438711746792510113025313402915905966696073919046168697337570575639919753814001118590636093127374294708597745505870835363824302184657776889535814518318482677660693939931288234860367040706358955189955696603926552944589156793762171352425897286249245026365903180272509512293443570703828344266268914586070197231102635649438387032376486118614613321700822268285278576556514019540759698806136885385256296895820634104369846058912808027331333211393949120938032265643058569915380548819605127141889500134121343131945812210639039155506212940833891688110864146805719916011343458871596787554979186106033487026331869132218930931928719234305984490272874176900945676098448816062762705828117016290654903031546083176333245956584073998922518395372773277399382752395374353818146731134641210430717696087624768830264624095647296987750187251304571647896667980981106178224911846517596384399285081144395473568294805458063727633959611835213923710909482497363745184189892888290265669299268142241016401082067229647930981083783903434063956543939121020335957774959770074230231435326621459348851801176204552292986214267505825582849943436249149933686533953153401824294913373481733540582055999373447325616100314104285260640906269875935249382136974827572157257375608790243777823653859765872768201806246724436809773958091513037845709243067177451030276562736233749578944773203137531955822939845154944343217472770991681966330474718457319951714318424765671107561982039311510432426196167066338366274547942569665309771747925805234970294404617237165251928652255748119099172077923374454263928972213755208569715467301863455749138585605380171504988308479255827663135346997299518282820937893787633410049203803192993519251021038887313565649851686644399374054497646300335646421877364073195239017308044346603915288169971970479546215351456737883061025140600970242116921034335179113682179759086700446209902509018444829362055653016062558030168104950230888065142290872747237556320351729751453412520097413296457739657710512194649708976316835430540598436384387050426882906485354882694683731703309499000820284226506177722364567089753619212185654540931595597817092675903733026941397688578048452626811514995157291744202609958145259318731819422727274842380069218011961725464677803974703520677786316277837054711738450772700147738320545673513592854004818755481551471606287934533399384214330919365918505729089408649262849096228538214421029291727098654723559521445261000912420356514266565096935627080145025165446534785087683528426726196237636628458496012875656315952471301445293104275782462306746445131900682707300435350986822496975623213110069562388989178103814217641814733971356924426133414013403408408682037473092874949938979659267324621473703543621464594162121702604411094687384237557661382313628160971667544961097774687190295398338007991298708327362703313776685225782537171851274852238669617036292469909774067897330032481089788933864980217500231086936991354779564166999059376619802555711020101844317351512115358036830611461713385835478912188405057355042930726381851868466832124169998681525506919275678070277967595048845304413608811920930522091676386380902313791437012987399746787513840171041275706423916386020836907758924760617188931760208613275654070638729695998325154724105981847355795453152820194397187190378040533388657455463308194566064561437117240352959917863752951733528088311558001094491605360174060460870417687562076958987959491941353231817309093970864072834644304573224552035142870584843573463557272316042815600790214441988519610346300025558090891529891577710307890323485157829447905062065884824962892877496486309010945133158421557042449546494274906619113026573796192532049739403175203502070988699441051917556555744079447548643529621130425812210141190590028269031322989409228732168773847678970525741113368862660073801962008275552534701605666951696562478500981085042119425842879197158898179695246297367859464065410880812682730380803330215207272900090541645747353813285659406515970569468942006645045224532380906065195830680799194594685360199902989379972702240158091150166098182995919740006461912236911196978357819294355652792832688622529956826884353193719445720282186205269352463398787460638622114634468652955302044731661914140832983996904931768289466227753760104507199799268599270320436026448587616096504062850443706944450544616022476863058688278376796025834409586673981266161227979990956075218842862471817477340826664002961384849564916744076255434914273224697285780340291335619224949185237510388655584051127908779228383577295448284502525380494490661295420839158615528167249603998000617003017915863761358498513903386164988232448799326513749019543288020418336881125546877385435925335915679551561766516910950700408436297853235793315584890385797444975863021514362665271917912960184183346389336518432383999885422324811798726465173143849351765352077116541776093548617614567884393533813079391959595363664261768459623393073573090632033776168400768915380629764456867621703346752986605370994589161572230048154952198702411448816325485425163495103726802022452397115318862765375059674570937295431341164867579721372042300848492825940728136691613624491066222399662708062482757961802928896174159336754634323804483898312062969727292950641378102087266750494528223010746678460920322929448829632654411099765801111399999685674129183534987217737566916160945197328388518331227168202270456419628201554925817188955062094530578189853559956073832828021031895406889863228440014135120216936945272481024006255558296541596719130410875507902003892915624266510938044478694974341109085550747934327249243509109908175282573606562454748198558284404239812717561105422686188981624018319768463853444226099622902881972260674075570013605887594687886382981096296437809910115646145651438988058414591229501291181997084184295660032378370377928256822963465894983792259361002918247789041482166967983965575215923810141528897580319988153853420872873975739322216569666654195699293201685844657906448514779212459713501334862162266867432635758811675115278102573068345791524666516697221001594164558809198634533309577395147528359170301751558999072442749581270738608985355344268748880794072075303624616374539913874273053928567446373217229140122523992392147672340110969625368954445373525554683351405565875660664226225534939841798447549249828009448220181421576179718734372559840969954038438328873315564980365775701298692738208094047377535656194501292998452537924059370551320000880438576408066994602021308973230047998896655525851754387416059216687515378886760931018400925044532915153233491603428360178952149700643567311610417911107812791088917576769201478379193554679607387283763841662450173091993238403969220525787892863238250284952783700825688277170251695157034908056872289635053592136314701560964961506358294790233880677649041986104865591890463830580092062096717594806523108694658491527103918725120756353815892810272118708813732412392873260716421845091425459177169404789779616181131388165018729298803792968389753525506824358109421605315913186766998770298632804819847130531843182826436689386245014932993044562727008253248211574553293805288689318241031130348862544357662609451720937653270496606700908703127531188317830118938757538984354866408278724748147813360882776993086253980285985511668826004358476472424378995940775926404765029464356938401301907732942508804349732773881007663562140517283045143756015570065288218448088562238829295664649361423313519589539231849117419440023158657051102129476557263479750328966979346243973445733429065626625871495052333702487029487087499243651155218673014428951506289066653646161329580769446939838387692308531307500248926040955087114581167958736610857804550756379791491110485000345708369727488326600736768027404252815436088122427859311971044531289760403281312592404776707004327814366702176157339986419907652282046784440581527926202075074716632156510831771989242342680054783474436628622346828265105639193895721900576404117130388592124514278686118428633636316033755181633546208776932811445281251565941698165986134863986720318349006798406161018332654429431799061345031172880969749222177762592267806205267405912831606745511894628415910802235250000493608023948318552786145757665026083414845916921256674937357693373000961404660085184519617247177484767457912277249617609035258461242329362653645958537254899370468123199071256307203826000370616776877378317621013055264383842012207505087892374721495984688924141107153146148405239387439419779012948246401246851009070197260987992102726850016593606767785583686589459156007967802743628667829952658517419250840056631561028290802201475439631522670908294452332233055439369691767739473754520135097296315103966493841176187283498894421109311131892826618288448524506488133250121921715829369619234406343338625952451342495587132820396753421555466137834483850921143172893794215879575716067814710966290715921813105824653515190654283377521983365661500963306741706538304224587073300637988195171249574732698870968505412805211584144858903307065947221691629596721030023774431490351436832560678040779067864248401800890668192104410973396136153507098475236147832178902168403370276427549493722191087685824506417835100799183345958481857285396512593096818883644626059697978631631130541559767600854119828824722511265016115249762291650154632177909176618467943980420364357517531112584951941351636370281673082084570216843582948740860970199698008410805046334740388580597114458044305471053288883152756552889927056594198034173122973214762211596683581628998402370336737502000691879593616440115594086421839189981535063766890050517523134149313875772019847360701225921822848215510304460267388698977087380700764752200100048855759610441943235366200474408840949010429619235472455998043793384632402374585566396005527206862157960761129898530040564820267685338397422117038977743603366773254088882773123588178266951314740303565295373343252965228205156844778910120420697948321456715720219454535436101533491407057711336305846504947984618887532973530429087555133977933901223065234713643498519335471143986987046337545528062725946820910282556348484067337514037453905721585434123471664913220690361641559750583831680770853899998372936197746959561486031065721977477853292903220858820927069824260968357899296589047275823058132923252368760783814839840411765051291034682566365725864661642144977649443713988628458351719708002526011944046827728229263420851488489502894455743883663301544767953319536852841029330741878687266879203659036785080014034917207606822571038357053741944912519859035396328815404623646900546090994535855574764799218692019805147627193575563426924853757969505980607234252097454497081302057854014618590905433159945716515822054528569362286653416333603906119046119600116195076985790655867086706517067243010208763987381766124746365393799363174929165432008534042356000060550546771617456535794537143182216994654906515173108676365833397616046048164304365849678277407228428459753655246866115104796452764296130339161421511103271983747195042643758230369981015173997172936556611393500752814970562637875261056150753482030170268104351482692262780105957366153186479389929635668014276704567945485779870059435562993161665558948707485401273256573488121231867483618998644155835313963035062921714441907329384995611564995961014624991515800379510462327393367729251921159002696449488676528268714468541604231211460270082812637195470487396232529056503867369008229748018428216602269324263419939974436159921486651675094449450066365280402724524121515363074509992354600734867355204006498360525350243732431833895970095729667141597748096443655875333706056092310540992814269821930933720880884875603135843757688988335886004305168295652850494312855026915225671645639698773650204133845696553050231352583095808129494872015248183087814732100394601417413752506843851924372842153386482735015288634428612478498603430023325941619299040661873030284991599383201961446802731690861019712497551865589703682786603921903100154588758712122207690043133900489191100915622043553402180368337386298192916520872559444352422502096715660625598317150342214547908397128203827579927452926928470977866856854800050788524861888427971714186379160393022396307847618458793841464110591258352921404682207633598765060808428074749535804793791553726204015249380585861033801425805794372311737194798894995674170548874036854358354306253141011912007666942063553520685149650163689861841211784738425726929618093099272447082539251504345900397086511936388304400710830876260674482476364351098231426635730956729959835976759920154004798000498234507094694287133067039657191515410254923400752698657453492118784497002611146759640338645533507313053186543099655915136552933052009592318929354795264481620334495222993440908821356080958060200225205349273513468137609690151966257037686012443669729137985938435397010437329753687974233614919571097438362053686191499093834161853780998544632348459639412718151497086002448472797004736583982081652785221519564494241141637878423712337485206164086054327224889888575862289669705405248747618664139092275011576637950984307986573782789647826367986146854255952133737078390255035053569446338284835695019642947318338509798135095592686617311337692460312356350922997965938923336690040968450087396771448785307710344715719348676156943125953972279005361559988012572569018563801531146145623149181573547684459195915885335358708049313281963243719999782421859475640715972777226270901602930712930779701859304223397438774379074107175117784390027432813014214953587085231539457439226466146465233626855110579525053102728267698399602645535181020449979431871959506573381057419426916011164244535259119009783161599652622291439015997343226359572584813809984828715861770678342840956524370049334433119325971511135991696431353228950959409463600694839035342186681223915245997928628086136251003043048415662228501816100448449130323804327365941066112220259556169033094051535694642361960818384329309753960133937496266395041748934745362388087315325892329280389181429511977063098853749534767694759473549345888442250349098798073819205709945529154901091868217135822560363660031569682942993300635909169815818764802053771371061773319164515739404559405681305506031491966999513189211038869323279084577305736624628927864929451891010190362119973558367672693456276479056242544835336090824548673156518525604371524849199315048747863533057631497530455225697738845606764606385621162113786144513146410080422684146475511340013693612464623165854389238894250958449876920822588891114948146668134742424197564648047569335579271331214104214768591960833546652851581833846439416429265371011498072430279912551453029181831720669704768593979243205035156382113909246732654580149668024741771856681409287611422871136007212776771303584147511085821244648998560502311577228737446385848286129915917462494204778772405303280004217674292088748932632654508726597234745977036235569418965256773904045962119622131753833429687122197779965923408596105625320113323751604401851596574808188445224183648752960891108014532023396970751154164907669565710686616264381964284744187305559144403568389903893699714969789689554113170887612574794985384639820419410377067552065772219992735281714391165407021660476436034929086133294904280501742944846526835606123559931241004768631557412894596253277033529544676403378754548969529136461287358786779551364933292926878581338113771902717841025128502115040058473406236453904804572613687168158828404110824652490499302699105112616855676218727350890353997052969804779810706745907199172391629330199914939227485559565223256079861124282365630623817551832380466405058179924383073286470514339304053180519421990384465649227414970421140549633608839748773316022709593651592953729750146506570494648104405615906353854580501361093563508070162787721369246298505043896295907159136093738537500335301091838755753156793283755740094916882266907080763187537832079118103506942865661147821862752290852873187646527431100506562690715328048788743017268103767061981302941437783696599213283827315990856322792558810534278067567834360943109733905696292231727749362283985550020565040061394351434260714045493459197886816758536018580480331890834090537314770275415918285545858269541069612187323918673049064604669975123017631752444350044074017458421898833944197624228954292847133295158707853203952504052466421917703194298442565298107479569470031205005497711891725975100181172587301182701295353005893036942468099191799948154596877072736329455557956772291052704678118713785285237400303960278841543821151298955080341071743778535263844112528428427588370852066792716694634734137355291885355688337896051428723763995295650039418898702042776394745377364434995299329498781339489021579152904758408903624678023291005857811309505698355922868463725046237779184060859699000657151014424449037016509147627423359787459477825639643121548627371197743443347090639421927889889990849365690355547145909624646962757557734772342485782232778341137939959459607307143369785491835855376653334422501961982095630144778115737193122772338614862992176051269917996473495391492043873689205678124255865112410908512879910005305595007956774230834432279744563755619256391369512042891268376685452403569169243817880481915237924262766916834487836976934075654983666808659329170214683727789783760738396493452826284898724700162973375795824842359138371968066324741002869535674141467343901366814685782333486841916129952201325569598716410571759868977083618222091231586818622461655594911406379961918422279041566388933911970083311346268991665025806258133757002078045854499502727245630769500278561785487607965151055018534138633444793067555559692598885244974697224399522150421533193968966694637519754136971553627909931378458136032940115470646699604352210575185824943519098542245471014458865978473721433655861553298332155636001800793357560882043571169463021024575805236507802070901199196630204614932637999751991228740227217159354936607465783439995903243305615027887015494159413504935304291676297137795934178969344903105434182812349572723353130287802561852232989940691765787511218285672355233619410490251054617630410589929130220331760609497411911980576877649722436847903643460912841312906338830582778099736730048312051304086815246995058540671121954447643063502153294380919146394371763528917241776362873705029650321510164125177619416466211632088149053555320079944807361198493320655237931435256909004254310930689713594881720381658055159865698997821830975760588319051001927187104589562474271418952639032587787258716927770501760591286607088533918143331870195858859019662363039302847804941560665771323354600569745735299363646778786586200365975851397713216017133397510232017271616451660181568227677066923774367105493901134910097744597239756345152451114563191048285051699934266234685734271076053959132763829693601770673677885686720785904481546373383913094015831038906609598159633552231741723958301620841778840685735953477413072313374107500972702392335916502337886660925329509370638038456292061149740136695148831817215639021835545025210322752448731775756775793964029722523022799620130297240311996381360319456377631973161946944630677422332287405492552739109363933806472196646292109721782613777502437741126121888537170633217096765049894334753523327576590084652393131732841104139154152912217768473658675375242572911712212654741677563418499324008272357962030084344686796080233035303641449024066065852868596986441028881625039422950257138023975619698421449713984374189787000897666613771639529079467972837315546086957501974101200917867067810677273728616083167845760863680335317789509593059491562850410383199029905487572871956032817431235906841515428447121077657409091637267669148507443867674855495292727510573624409324699831612955888683614607110733709160060188836133284246193178191821692579910221020764438606305791606286250348945359712987770973910681776225857092356231816901267908178649600727698908994424255351582609301595962889269925131853631778754004270334271609574458966507439578587444950298328084108117439957975344239646572709780936545340306543984863505597489843881329970422384470367466685648806245010327673165213476229724022702656115911863857552007024502478610176105395532940335342915346660903027837681664396879947208799803733810986843181909145369825455059741897327582787143825669582584982040600035508482893046673710640996799197539129520350548934329589032575751017035595014225487491085146181557084150815230038515156545445858485628402325101578777040589343108823919995531383745282289450989065635658205401825374395873171713301775795722850551531541742162666323933896816994850129885710659423801387231742889087631552547683909747254408762001472031019254722415848822603423055478877466430937162952551079489101353193998041583473355675898818072310337529792513740024363863800231030442554976029612797680075890098945981026038445837964045633500513924152318532542308944418185823133045165265655411760846228792093926700479933722658747342712609161042178688004278985049300496646266721914122215499809862854867989553085276481173667359592251129813489037979528391819722698728389562224804398803854925703486997451473173712570530364975736799767141298759182672381239113745126403144962333483342569679167470536838580227250861232506940111234187780198016838279583301971660175308072526410579759505685924985740307314574622540965283795587138652893075318923202129799452746427647744798861861786818519271306811327185462265486802242169111275987386816908633182787667647587068161338865043399847174794997335589929339032329563890251064866268425439487058275439660860191360604077783620372042806679404312395041365101793292894913219247933939106334021490137061255721702867428756123395214071849607756014201044698216711574702660505395561456661233670316470085708587851310609270144130778144309992739285159239254226172888273635524006077940781076330725000486967512633611338532399298784002630445720295973840933551536253083677651326966154114438609661757701559267779671446471311018967854265688900293352664103525288076554386150412943495179538415523576454324835977345892712447570914073087112307707850878725751760945532199554498569843588242261887714659987053512822924769330405837686588134354455769498462676033341101579426739146935913931754424498762767734598908593097547687596210026207521967791547905358126060512144860887860808644268302963525926915766189159866440089846505711486948877933931015323547261515312629637284603038116309006687586881073252686461494951677434672911465177742076106984624901054302320402570917374225160472334825135068405754502741570120025349952880889355490587504225054999686810032815204796156084665822323546273136181806616819262040986135410447128688642719865178037883113472767121921327629395734958070866830219980548741094728436572682129550588887187560255157161753007586948012278412563205311441728693529234911106655814063792316177516028819423723538666499191087075217968704267660109777622466347460671468305251993564049518630647891423917098135512856936835578977404747876921160033471307080461710278943750568939928117807406129952453526177453912572792168244212113262418078919327901572360862333751305042989056580107668613238188215950003934102399811965615146423064678187599874474333313272055784640177349098362867447881309192288712727362444065031261053130522145014891000465903774840243304010599754664279564475706805510229152746202728297386783933031773301269940675611806344838005741825244589298148680632161124756716853942191211378278512105381845889893888578546280408517245953856126374123151229152591062974317737624119518674012796177028670052551720075754412211837147853085809074401503039493215058003191527599294521913161441925534521918350863066006046026914955277868593571264397018928511360955649127766326746867294216944871050588449574599669109157126834917094347679308361538149619794042334892639048150174978488591867083454540172128457481428621101990757615320196607572737869773911880070568540406339204808467616329194809013059819825054384478003006746429385225313114851543176176424333065009756096539376898955047014599226352040311472220040839912913533111652174213789897818367463162502913113842805991379971532646122211413387306853095997053016967395613292149816890177598759006474789027322487955928594032857738866365800939185923039417944632915806709401501019586590047714051926784060732080923837836199628416213092047795523156131467409639192620772158600034623986205960177056699122329019199021569447722176327247800864027239388343516730025812200642783533600617143871603065172370681610323709946384756200811564511169099902669393287636752573419544490325557883882271703210278357999266470007414678664489690133475839547644474474072439711382286251205654683675971835732798458104723041666598381985216339967782231254950224280445428985928898213507725413752016577204802201618294308905424668656335713426785037422762292154070071351709409245433016068615305868612307003321170732538643922894023651341450722738104473663971497543458564637090394646497555563862231139962882117869711917071563816166242335911852173918270808678731777112103352702889994750374781779595744434669130523142436416547816315716695430180152453468184936502715301700594219739344862418328834911013101271222699343886027802349697995493835575363204717316340949286548500183100919569624664204630460937031115681235183233693551939080723649778617655698456286176700025901281023025158978096627160060290342273543690523219224245194797516711396564002060163689726039229222691082320599835963285211694129985235072571256804811167100493148321424713117407943556454820111866208866225694512849338508423415937787067800604022767752482553978111025125681595299879202915912792751803247413486466144609967898368746065627322177219648298023329005427855105973200608357364162680508677205303010304109927978508182087323363613279886993396584655912152178696617256659951048829941817073504709078093762498936407833048074103283580316950007971070581598053275226030100394350956686968642173590590923042777567744840101563587359311471930544262075898243414472351229205325638803567827339727898452335162204825300603548963515308869029495252490142022555412645591847061626931881001562649054795236873837500829429254217971382535077855087289522815879298213171274565762307438702645758994074362077183725188357925015508495701538365432609773509983366699636228423453564290400802996596157939446347750320418224790391704401707915525409235747020270399117567316439862694255591081127352080544098907150631453200974390572496123194657396482506066480028477336568958471991225517844892243289801681612858009172507398110808725450561299370601841946221030820547816050489522488084459323267040759067497024914153197914949062232885230533619004996284013560434492695489836317204714813417671357947307870328055778715702715778348968498017274617280155436856677116298906151028419537996890743487934314271776113827118092583724419316579533098458873930839633123483273576060597711108661839499975271717697957754004936782458274536570372894213934989186369415329386785141808900195322807122979666776962547565764874841738932908421713784725488253134921950968967747097334109200405776209216269140681637609352196923755691118047147130583788752605999161244094728216434717062728138368086123734603006972272610972011164672494616750731860235047052208150563119170626530980521625439997445917150250567377203376575184804597069021051789447705344981205459953903470945862839247750155955978880950358740586246227092793082365218453811648515285921400383973483204373370323862431302242051437232082732088716301721691440625797601300524058461453489127341854532119531553121245903869504416100601606331601635784860389539584163541880290289117325358897112080095651378237104558465118666761318984129203432781557663331802700840299600185978160032969225032316909207035441808351003013337549490485198213878117634666971344768842980394412157176384150408479754939127953361264626568600495187249145100751655861274630013263854936611444180601687898322662757833251697657620820206441984947656625487293299090986418698171663921583240358083889232990993700520547385544169129854275714651150755573664158749697636585014294688786396477116162634657257647491464589566901316113810296920657610803204469352952274303961115971856539693140398987530582647160597934440839520114199014517067696863439166062557615022275847523168404362058575384566545932578088937211566724505344982853741148714704021680170856199121340198759297553412448807061897277766661010836018526239248550081789929567500013932000141990311056316872174817263393644074288128480813247965145576381040164991843696269682072511748581214457863395394144756253703989600083028055878371362211056712353217943102882057567331369483148114027592055173007594749314233544937931379695047493747363498219693454865026269757973075859499154677239080313183008695867879350742318312930035000162559101869698087840414886882631516295273233760707290043335679059733471234385385778698904078588829186902776322792772617354506560603446610445357028793721627189632340853130709995638795287730084568602225426610161751638215689279143150452707224963789597173770279006509370576291547600051081537927065677505733876246510787874882794638828223145230331879072111626839892380739508136939157135809538035230013106256319416698727973291896846840276375164456192381228514995011533651068791693702792343213092505589896542682883089855636559652456751461943395431480242626813346101436610373065986065188173059265899512692220581148019437629262984242685101965400515627262414120863929052120059085546219473468599751001248694448143543508322982846516561826360559251386236971072458350963300128196347250613983235946797845737571251064641847763452463657063186005663616033046875047071167529109790544757773967594117282292738560777733107950395666611215083753608892657413184758384997808219356194017117706024078500068635366921085634514697878747370777705255988025313887932167638513691147368989561975638029418541784527341571402872977625267334954677932092996934925972402917307286183385650427159789074036348977990012880991943461852538954011729033246422823246920562496332013309344041523612099579509371870418309707837053068688575201294449694028757783503673065566857652303622561150174294210042527793279409515091273473716637053256787376079159249497400672125179018404841948631046259520571942253295938834042096048109902979084696481648693253360422289771150773041197344929690341636540706650227732238808864191993785533094193011980682094399448355744036830708297303444084794636373111092637124712620727188688717936355002820318572654257098292879279892365454203657406367991252351166413855922601261370772543534152975140573326785182883556704974661914458085414231949036203430375378448624139360484984076159607128893057543184302881817078196600336958049562839145857683895671086904480377752084596067317029519438525903164665430835973607555190674610043556275805858341194230445856493780051695418137406426702190916581766062689617912989317763230023636109300066987881120221751323722409089702042101778763985245512234142653268748256540664227123261005742401028344120234497376247099298261428984076441023883410092441627669490668983502328524226677527507471041273925288297791738778803136558159881999869939436196732582351029075587255358413057057474716334164358493327984463223198981096830387881844454190075630244026685126069678192285249797323143427853393030660005737079046351420180521766509059671403798786244194986432324169344411898346633838205909699215080945678963709692698991576039401278662878541933696327698247309019179846028196368104997191945158957707703273013189248931673942685930496765582864029045293667880691770056714327345223889041941102332675108500025415942409972265974320070134220824178622817826051420003333979166733952445901549701335447450831632580711551901488408237480280157027920524014963852279936551090244750287135509781558316203628675938874777425303437038266195244931830808894837323683792638455849914145578320780635141064695874899737057349124223444043307735892867740141558233740918466896003480712432041157993591849586580461445544973681658836051352376417373659586355077117420308809942488554049592193032351420380896424441453861418869433503042285121281623330584761617094738176581567328356683393703234574685851344073443749210049077468986514452225068421085083611690267382180171757059344497830209981863550804672254806393549530665887000643148684006637603363141863018810661285443936132149339876462284339126410313365934511190450531490443663661977262949789122465288997155994531847410421938589627199662059903918174228036330378828971653128780652793213185149512202644639681247100064713196780471377740700465160698400718980302087815220574137272393946057406717165649897978122527677555578729750313302774967730024605198269359798633179844186611544135057747087356635785992593697876961797154835128004312841988330236902658564466697299248605551062023673184081077768925596367848628410868306293929912391376063778657346401535249718634859195175853979140364599208321510566421400333972077997464272423939856672561285417751046874741641040093407264366024345326707418113199862761431060852633189487948756498858826697861673153605247886865589761533289397795732442213172264757075203680315739291621242211344194266213455872747466657670968296309916763453470744354338747001846667397757986942772327510567457380996092577386734979030034501367286714693501602942467594902374439292091776782505931869884525585442614421221222437411991529960509629318405806021808725265549105364995413819126571528706020761222087041399989220990338649277867014737525548540849692685336538035294117297352436155604476028869226100975548013821648761615357989397189940401233305774327713762781993540902852200239051050168544784213002313104663598949446439566346458256216008179735523815565018307638196713856359511405258583337899481261492002741031730296815514565977803938959375828936467425813072296067396588059904642067629665011770919897458997301068179040820326513993875333890045456319267560462160474892686439434678634312308683586020226290776486353988203949036860445782327515816039188562729792617463164723607185791939386138956607134866235754717037522810378422901752933080203039876634421762976512613675255131055585040983390546161828883325802305186022736927733954380571716655655872416049369624301649353766999830741677759511987992581619735571989896315725452807220776916416713942341591460400968173526201994350783326821983003456849735315822754456301474277474863175548374877979542090663923005307712259063806808352001802446253785604803107385305810168441034898340883595283072456851605508921534396913191384883568126338282906633670522426940711133520765411959656609559380052724078918552344961965463354701746348905655986595704104979678213916431879021920198973601039207425475197650739781570403689510935223687848344295696956708752600197237894859120552806039140312002565757137760090289220202813272022702346084757814665644562727416044098960097357276336599731477966548495493105780990925630338894461576686542196648073299789204845096590898682676723448000604604500653130521940412678930518625262998349440705107733334004955460926657961526470589287201019367941522788404091502007232435425937502046163017653516078759785409259077575984293813523748401700733846665916167556535536071578461499105778120851513871745756342830734372124620684105435477927761802116600671180535278055811577553034188071718183172267162395288194176373655787017593296736790158373932426421351931251742134898800292472420329479745205325602013984160676142184117070645201095348295079806217036142653495500464460202799569742642048522551396614748334199407240526443209306822425783184991841046895752544642980009166327493373493864057129641574703906214948443043058804500522770490049284356628549379758138562302953384897603815772433647486182509545760235440425244138278753277902320223800915551358921997321355137603862099559590850256253984785680155644152006297873340845507404113146810782194739078740040966562408603186438023304774801241474583488651997928279185517900281585775406996333465557592369313362685739767803714174907480604982766359861079974393034478765961666669884052752669855523697747257232766615820393335784745768054655288143129176972779631156814380857633332561863965452606547354073269133303421752644823028489821823128001336896396932975728171430945079874962244673670295746005877322133240770813430756093316312658645327073357490676981747131349598719484295662733323475339367889137422112430077157950546273230906429946384165352398846958380674113576349807701323496293807621985892341743041688418478362895829066345548990838236292323678137387448924929079345858803366460581304192031685382598552426496074572383216214070605476945813426145439073362462172808484517355617924819080939504547062014061619875183579316658765407310640855314554992063798516961596732804752998630311303880819815167237797973036083515418355533242101711536776866547665352827585553932993949133677284725654071310609234469089727661540459688837966222607695917940814653876700218670583457064569655386847331721296681761216951586571964985794256199750609778691266040130265891693164224260909312745154469705922095226374645976897749391692406143841789524389443154938246926841340386729975996078268744147112782424857468841388606146610013749821525772226988911139814301113744764902269660150999050881894373683090965800149313221947582788706261499165005900215806878962896236580170835278649957685808574203768135076133187863597343206886132683266058506351980562658237913145944283457267939602803562390409251136749747559429896043819601742849730835483979826346533444193782953077873565308841079454185011564864475216998650731181787520431127780392274403365223726545956998812548051335546760756200867000708062377886085663769157578203641223202661534686334435266639156247000920711039086668768893550557124648402145366783911373152395107431767653494353830130192471852727619757610845438082927694494191620502613585020196635624477788382051472638616033190483029167684386071790740374264037869580092463712048774689404343860144259309981602926243615362546123035127671402785471587169182150282753719415116341454535598978417849158353214187896573710176919894172723322821573142050179151950550455531907849076728161357157273903338417588374361421444207980780112991886115005132569815189989632885549950998929601969073790185790247717777224281032265704058575464722016093303073017503455086276935537523351719364534541449083616819642876820107127738236021587710757871845581723770948156210235024818507023153269012509068223931090536841750696914769287863764455323629304071343264719782047248262970865760928624352905067897407271619203653326321698179139696016778632236782982941981811047043050121141062207698961446438869232669748062177345155485500894009493087791004139133739083345712394422800952016704253463989473476612481621672803231455355312185657500064010824190463256535678055605508813348773546479332356738882883219211453295075049193624696959925822515268861600632934026315486033241347327659640015931028451904377824564856251987721257979859944285251478680047789697571347871961107307806581897868241198995478458649488611253979551348643985209188093676692185341393232213934694299481745417062727152403605314006860900259861912458556110446207617053865330243439134170070931570661376708496142604734597238903035474628983098808116570199738156653831810905967223129248067935280488036715321321284784902794874436221073361974534090813059182331836952515218976347923632642901247475194974512172517311120659079509911992932517646097114254805448754020324107717675897207510064276349112856186634628573984744530211134243850197259855352606484110358786451297909895062887001185404566786824168751678202734149083838904346669274249347801855127690369792344040837855665963673410604076666625201819298044692130523862431159594291749663639744140384382952680425470925129942373772117096278399298323834576893471277042986217434320485392919525562017252201194634425236735334939675346216845751565072296115599573893981768186633153114459426727002103616972145022567333231294249428875704357126489562912348715785783829562139333103178712554534213798322836087336592593116639170018668728171173240603607526204925469080252077726189986158195498082944086706972560792557628805197342692630121196668674035010259806867755764510125568423511741385719759524371793922834291465141339586838982500073106800575415554803385725838973702725637745970323092468857425986009052646228529129199043297917465788391998679293007351929550751709215804033611623371171477576071143937117132592745882272547232081417718394849341037713042933405781450615032149702839364252957138453930708337739303181372953057246911863224692712159190201083276123205206883656879234576534759397053717035821529380243290997389305084181342019811839661027233128538854183135528803693557749336249566086346311811643535676190761448214501526736806435671852017984549150484244847108493031087446126121093761579855169433119831483750064263538291149267365159686910431211927965210276967145427612310169335496281859438036105889586049733302848291837555157892327504158098115239770791635026394451979461993834629618026751321043710123823707810232881391310242664794850072901030850225005996891401709077747041829171564861736159826897127734712586074248076866892151388848412795538171945577860105183436829160139018735059928224948522028789529544147665500597883973667736351695051461893902196590903874773434581973023430705498287614410408189428946362443816428594008899751083286624319509746557198118082513313738537971677742920235827326023562167999596854885564249874449723890259809537205840766342123194822649411737632898737093874657297288324099538891283061674596008940150522294493672034523591771756712016521431553392341051397325193259675304207419608958315850006786377525304698690728599009024572281208701886504342751291229424566603794105351152418745760272713031458820903012015756003800428094582658952431285084138298689042345763382971522500910853061599856880475895061425265093687591378569989264922004698184670236163411001424515522203721701333084907247565017978146304801648876907500339223197702141603539977635055932326102928785587093862684141851158750847001230821502135522693996456348727186421015171882242416644406027145814293422086584136643246671236757232138592127480634376413380218937565101563163993254951530906619493044509233988900905294063888854793105807498192297300513796150642029109560311078724763461788351630259926449384076878634949110652097098564627189316700110190932031486241200259406294589367803108137413276953480130102297157719163261992261896903193640884601469298024615993958898549294188582974871934021711078085316561342875643438395272447832862958758512703717667272975378029614266286941326630315728807937559848751411720191780687131537514028564050070797651955206657712732428577789251932230809202360686764280039588417634657179804804536797065959881218841183909472684038633244731898486069121584364853291394884664261071812209174924404711303014450898416211477319940925130542341098855470789933688082260678495266061835608062180010825963464522534026872082092777836351908613884773698435325313528559766471770722712005634893944498584083046317851158642157030835597823223133927813658420053942255934643333249559567538517456716174997833245386701106751658731363643163109183721836434214365201289205509292635338421123101347138254431204885100143508593157476829986534359587883699727084572386456058583717976965663091995232996104212832694577835271031645634728321018620908896388829441964770636911213133075710224480449809653319377609356965882146665478784301725768677657995926932060606793394901681591442008739456970451420839527339447988033990315794819695189881892239612276859461269327238729863125362029995635106518514019359761170375358716926493659966009597706352160588467639448811754026023006220519478811320598432242434814086858262698895837427740827038859372401340444325690265943367487505844013228497003338785191345455073793416493529830651429628893774771745083935282418932629650414652540173535520442953260013137557371079620042823045309865392360780812575161996917177204219819637083673187639772929471536941609729972056387909188772999288269441656819365780067936764599493098253246802195874754315470198894185365296880858208383167010242450939558473276685245470675291282059675852930018246989131054364656107848567959291659049354029447759363688663350768077274437557184357017804200594890197667634473773935438654516040845349684686298588644346126787393885305874433246107316502236612466087678941173375198610168511494311850547101112048011631874739909746245582997466110211556620497230689518008208592279359891446276697071613224245239278093690574834441328471254561114193639934720917824944197878665834936812752370252376522974127668753543602277651485775349101921902528434876742862371715681151862270052284140877739513359355210214178328194226837014079659475234639078172290351059974538826939880895436498345210740571420658345897653414645628307537602427447893345266948312796794302442729978023387225960714919344563145592384904665508714668130932552155848529568108897250678157529444097269286450202038575017056436328178983911795127875933424669554139062614062314811394419377312607805264813424343521875828287204512484014060961819368660339279016079113177044790399061262307876057865124949715647445607011679333664455150800695947247759012135319587651445419294658275303620828040930184590807362620462191452343402000316434967996253453102357268323652960998290958973504855583291649360020175732590691405468721393445888311335721341072976325363809386170038956858548871356511967157490505204493572131896656436228869262549934044335019972958004260149386869790938727544581851482843309117951348234379898319388977327823670204393366277008171686094875981965561425775770369719426790534319326442240586663670346354749554767956323278030403439844641370266704788032150652457813550394445527246784359807284179826835958137220659442249413016276208377287541058852590090584232385671899159641224748173703157920805421535623578754035106283515439610306377329522051700234724779595609955734209173624983831073375833994810196710405488737517191076077682573314585817026227676845132427610628006120849715700617555285126300505513616229210733524893935750647681039716858493984816023504868526840426481574804621093681273004944943048606310966501676978102351162102169515452290082285780686061501793811684384148455503082603060998891890567533859831159986345476469863187867417979797411111615652662121832259085997345146942987440310867422943310156724292836578004487465454401895444656923070664069781213675633417308704014799706435806363942934756750423117361626627605714351661069801034026888863448966077562106472478961588970738334165872980305817528760633537891451164171323528048587017372291846124900622356439184229682162960909866188511147470899760653215894038773773192723347373546906863538889807158150586556134849130962071216733201935796331006772930545326639040189992077601623120261249552760686459540027326352826081980779690726987200366271353215656471569486541189089618927141178183764509923054861882231977871055493688159305668057574834979484845031816739525671177639846868896512319429843047983520799158834809306276330275482963416096479936662001389201330633591308202944218206743212940391975630081669108961852991912315187180479663289266213338574974821369973971118943517114071984574218293736095541818341437047932527371584624902269123309730865180935426184475960813546892269804809488040944599589550715212917637823355434759735025402345758130763220440055835939292692332558902907107653764758817792464936528002209878921559053878028549881684868594395163486002166947400488900376649482500547275401472525123568385866417970196921092155508886616672785348166151050133231862506689421955940688477047770189932890023042614133622037586902310886983133343576343918916316035910656072592867918418619297475389060387038090038737597609217913779372971486591224114206407902936145818702998658924978713078999495172339746439144691885790421463401500476715688757348134179809404821215736959452905302982415748605500264141269613214896050034923363489716500505347196960392411977038691554536036010571088719383672895644127641373610569799912241452965730417378043459250312449125254009337224206344556107839145380991166359610310611838865409723280391481956022613271617907183770738558350720177481927145834809318687078640648971077379859007436122114581522366978134633598305938402505096544270096945902915146472172090333220568545045372463563636993839908088477368062601536301645155427238280196509345106941703450791564707587261180088238912805000088639328174091544773859383646072875871063844114043887949667707695376791496972612879039633560712807972436020534866986839939639129781942929463753940180178590780019583393882110715169543153882078743560503896596486194721541680727480820972692040438980058839070399203533016811381618691785605176359782025494511419264899244369829935887997601107063281925663086624368297254887281129984196793551173123762540374187016335761421596851501538382750049483053820239451973040463974439538436253713259292584654336109451269244690142058402143045988787409332441062579598655644293967717981722915288344988745571584710601378943641725645753086332013448789511647398129925718295389524476829313661200078875461831019108705621894281116873539090456281117664139328715179925011529300438168495058222461591574912111393288522966640589567024157318236850864017644470951648163277352882468837409632644999972454831166934188432506912007650616588200923470742493014481399148533723012399202096984752733460225175825745444056254477400758512949948278134786679708703664871583820137010583870902931621170286556383681156576817397075801415991853728365441667507716145765486783532706698435346209477637624929983554425239586316034016743745624894580221259762170863451456800173436660992370061471990305988167099141628833901002783949857218799768678107461801284724555618621117528547215058968560257788234410189796265023101626285569458197804701459186358553065764875807596252999537686879200654309324657621171474087180814499820292913856499943547770792079304787468601925611943602299957657943869935786882682659518893563504338335221955357639255376061832698617493668798221196262237569208707658302514445928368282995084104263658197965610646759149934094818010058747863445520372627186619406834725826187520610626195177087102971966670635213269555027525756987240390339584154574890352848328655358288889733129993851175590440328084066479358314453489889575585642374752024568351785509158105305227278737964389952226549913719251859153035709138428419637930384779772862740737550178612682162704251793706505253907035637500742036798835510040589408797350029758525035151243472299093170044493465335369814911184004578704432184413788574946278910796131255202219499481234042174053535680709351824938989271329445105845784740989581526993193124950365709460320775286154327591548317089678886883393156225269813223120350778701874947043131368973381404518126311358652109515743943468696350747317003672179138624059799651753659022048878736495294249615727150597476153145814708292172661861676765955623361625703712124069232248678999629771722094168839622518363263015270248687765019790953373152040119616891429256628918299188577083423693963556628638954183505109930131579782543258959821456479281098883522123795032045105664395117633415172329020820470986782256131975756650478044312016056895373444299129111058673934262620366051432401221379435179919870206452249245156800762628507276064879300936613327942142144675677677887677202099569648358392209099539272396924604056437785274357689542761547351964718210198665574130622743931470096723126355920572512358641533684892721001097145196908517496006813357359739095600389482260902405325851378919309736580395834699714292372058891071297458651306944833628678691814202936200834268846834253496706853500762731978462901247983136399699427565562331794778422526723218999962756582832618325809213487458403354111632475287274432073175893069167292419188259420058935592441992902521799940068073297202098439336206222525742286451580311674424913922407695290195508066766183146026971483281586894405962989458500562316747954883718908524057547597470722369146428439740977927853724521252217969159093683162047426534625810100123623633388796837645496351824590588974109791182878651918405337981251149062038711454355547663222632634984526085919821301923283388678609918961031993406279545614027405323613528693338442439257384602441070389699240760560913244992582630403375661905388017199502552419933720535651272709324319818567355925808427848259924576249570368626933041251871078708806925801767230937779188450199572000617595313405232871089199967079135730109689808085221069973092781833501179785873883168901411850840892688008582045618466803844868685870874255982033061940284198784951387511759216788362525667920095751024154279064468188993103745770679813854592914836347830217183771777212646153627994732490639269065737568790249904109682440633748698071270452436520933363233074242233326540544595631659968873078796104300416710680385768050016348060762502402255092527681456297313483401130367889396175349126554303054899412486853323042302785672316896453427641421006498906449090602132741543937984814784733390929632352683503418778908523810764265428690718751817388441718743205396595499326524861172137621854173785961169264357927862048379329095934747084817127908464644957028004311743112880086215416238552802242336333248679001900271194450276922902096478846522937550555167294150392053760759921685493282876764229934203420674779862751142969046740101002110079798505878817105735492914798804217014799791922110450689791377323529953484270184208313887070532229106732224638960117157805770073249463610397143435219696368663718861751864702729985119462599083884771617313711141306996378413990496997040802909510869184021142472386250451856024363197734104345653877697327933557757057944654633200655513719091354516236254751106755803282450153253940046456644989471128212656343475208591525934372537340073855277832618597240023594742719498674368094016808476978253708558096730772584886758608567804857285186371873484806342139482411995265658121046907920485775546421429464051338497957550873505463783127895090089498013152676282530828323531370327457877737536084440810052088442537811613067630001944913486776235756170985074926974511081728554540960620978161029264324758854601559572590995801060132960826244879177973465575330785712478671176244866446351280103149443643346208438892388283160085796241402058058303049794840753501233157969083113436268235284762390365464832791099246857736480644098481730586975987541106875985527727605304261673958800596647382718518524107135610297094008820185679387728802613551259782201462860998956336010697137729387587358892911344752535543171893413916785203101157960029791575253109445390303502245700213262506052877752974955074901179124907912643680056928771722923542563683352099582085762948174665681035385182134790651824684759592690426599385606306986886490180652268303499930943300248107715834282192102726425685938919192524747220471943930029639707733615228529460130437266457961089580400710651279677907262883220049773705048573022266734609728165433348851769188703955275187622736598492443428645218506268664447561356439075717941159262097453126767234863694169480773660838461652342468283979894747784041721571919350414723315163934104201151982824989887601229972142456886122859963625579704403988764136900853734387976424841575068775635783973670353161568835679362074212699612478062541414599390929386200877007754812696086664110167241889804033264865329970285926322674844698588057473225130450710148959737129267548002157028563127425715887260822778868677136753483072786230246841868646401649491281998246477899390526402994358895326664837158783422184709243148534729557661281169513239938142151962860397369058132714339726934534742043608495879071521266462100092575243376157281991613106089699761488531531769436862563781334068855264301236909729286974704300151185547737297142042961420993293975776954258454439091391125512412495371218124384936413107958890732275519352433872749699366132529951539946917714624861991518987494545944054754228568390690128969681280520578133089447093527790520876723662846137863229768259056672549562952152222695201093064532905333688961213696213518289128926382639565190081823913951814436906695484281896348891554736943282900461128914353803705364566419398538529419306098489820098622622169067882037975287070768028381547533318796105588140609036028867791735462200654446830817501473817828571448445028647631359010205350884891949367969096042777328360109682037391339512340731219810964218304006714808249315897864119101726424917449363971157594794280991149116712150879698512198910871582377931389112535401859287789636034511680444663376002071564545349802467940169061325114043424142876297536974735825327002113029438898162832461568810415128805014461605393289523124149313794064190516207991598472137706273535113142997220918183929712255719562172096165137632580981818122367100230922638064246932799660027936251109086283073949925262097700204372144661427837798540268840379967552950400640605966685866568779113039348917708898272373375683051281123702415433172147213727214812555598733092450514835714625327731962031924163220822067098688417496561449698777659468156885014730753957515599250998120118409386837880738587167569728988527519429169980971241713536607402170708807071545095079987837790762132038430312368770116239306228668978316683424673171093931456814175684791937084740276683373535297668042730299864027690482190138970526987379683864745569165318041571655420338518345373467442774567418978284756775260373605501703442575984048484259769612225096947157402161140516812005619446897566716135831236838682159148601204947063547987797430237263613423640144710219316797521520228607690529295246050061804354590020106819641923109140585152840534530791223980474782913853884031077806440184834011385314638901410995701262392496046311969907369664202832566099543930211696404934475774254233140998970923180884702333183923513578856413151804920005898919536059605906853383184830933808180347565973476715945160594680036239631830092118310929202864629987951394586929125419382200639975058170623180628097751836787901716344175476930866386279551705205188591254397183259171207345799142538456338300198326706598322834387312180911443032118988415331064377963454361157123020849332155911936601695902341033036115622526001656785199237797912199806852859053948077965291021844782335355272049084269515145257457826181228467808461768748080065454704363520180295373564000625927949635473003099532869606272217211161488278911817069214198723684480000075517943024220683024039740130375147110615857832669594917146605097677969347204891742783874045202110089295987857410780256714031235103725913032064388511101755150806043858333612465216274980863243356820099883511247488774788577455785732257157957793414860791401318837399297550796045183420522408823692683765647496088243548673240074978886091060960796076604124093026069607118574473740144729259546656012019630878461160083574641378376213815642292389967250776182778630776536064872160458089884939089844475036946496495586897035389616181517149138093660719131233916700897912441435393752722666813444117537091896510600635922904443656844728737794674935083825873945623681546622942741903200919227310904052823110042776250921206379696529537606116648567960801829693277491156609782373738764537023077519924000701079409501757844035930321091233488924105025224081057403276881534066442066061281880117301912013161950063676484058953334105332327241272914996421719152319195860512414533930587189630955844948724763102422345167731014801964501264117417052163376885793900717179642550130944568725808336188922741973522551309861595466844752219569437927967989768703809413962550659229021662593461164881881654888508465206246420344108101154130599651471045488674627060256861226212386367511952202096470289989657512184278410547020051911173419043142456528628337091223524280992071403022960239138267450721624334283258160402012248948652556840747237760443728853794428856854488381145728011044429458743915178679003254462733311883540820307280702223591179110139465681176961946383420747713756864319473187620430347735031487800750815513244268787517206024941938998780919302457437560609187947554112053162690995434535307953112879920847524519279854702624203804310043152632786914421485057737509003902116589875581730886058862952031377134713153813429556916490180100531098822879278083239472576557008919035936068130026462099648050858971210689054297000486962745890911828041194287743305933189050726429722657214429613231718792067203048170000982265233394203683371131467169610200476819057392407887148787005118573066040474996847988435607694520397703274849152052004284002302058024363695977983804212270128440738889127787815262911081153306060436183484675615206240716970898993426446004013578007247246659466308685099254821290210019078518540153006783613187778821461100740134526891043301861702134760583277788464603216706094011634325252207281506288225960912448249899086673479072955709830730980222992076451347379622678452565872583078298420239642465214427486357375160733889302878467982482092417209287717906753929482768450488216229480194364258461096914148618687959875613171483627601373428530599101745061740542003837516321589989954586475892892001772355687974870937077307698339000414738158839206135031117685911539580997765599482982530501711325471957103831183509262885431658261246194194083283744449958441458589998440676209546187528983173592783878615314449188115215168076097237769815887403980381818089146033359989339394523897717824358973621739683365035774442015643504411699542852100846431044581640224680697634230202926112567987739915533022226256987007559360416083133285607919714293438552026756130553806802078297112736643466396827399522883390166259591482494061511855655506742234175850397202469676208925783092756962422045769087280327480257707468841790034527195663697925941090950972263069048598298795598356913888349061398065681421480867107398177730468076646163724361995583397111925414558376364710350776219759052608573233474016831859123548116083298105334815572389226873755943490681940277593825550014132958042137306153194791101308978215029274264637127375666526544676217862545990144056194853188899371085469018383492374559612227641344163379345855247083931541945065443337070033244132907638734848722896310450617297759547176273675405408921755146174363132032418891190726364614531593543168214260823359775611540446477501691327993444432090935170351283588038057862493758451441061321299850524063039905252345155575038640368361385708031596943462026629933727330270946217539536705722352324337489896128133113239599444479924865229665496848241839700857621812525192357501397117297969772015852033535058074527092920866635377020709522777358450626764162950795766088410785543288052044984403387979963197196922029722218482910201388711049541432913459652391281294951139407911015488135484175132046759392301868593900456763609203993570725867601724396520256912733117854766210168054507663141772383746604506623643083621728282692523535655929848520117619957121226728821651694813495358539332826120632255655106160276894190616528255640041786683156602481954857805092458482078597358277527577759567345596149473194383840718028351454701080223747238319665777705323420839563464673425485087270415745269221499798801920447356664285451559506245765153063228209340118615260907539763214393895749523247249417508833425937575243018437091700580696336399302532786779032161523272450738950172720754640888373275008140577610583017879023093328451270830012633387096403676684937650594827725618333750376911266086197814850663660225827425475899554569912929282207538685923545320375287111028652507266096769293202343706185610279392344399931917865500934942869935207583691634719238231458999560929949772894861395627830418801486387389387846051984333562505007096472526650569003980697387577211413701673689108758765413319237053287772404335838693672366297196779258156456524007098980216310903713824148239950858535140724242894969742865459307191114313857222317473247012861941059651276908931176234461379400363929366232379839291785168769054266993187578204288119854573680938831674001688564950444946742009378670584417619677329889929824347765643902532356652200765514754090320912330935364512012391762621056269909168894111781288741295338886140060947097404227265850014455287748284806275689700416608416170137814120087897764337852307061335731207694765419305970617673481379015196910751931341848081966977213492338534292260007169732855884050504368184932533522246556664974181838515754127920897763554337320479698253951792396183726714561706989770586037895665967726700238902962052928275734980863605972758044223742100993426163383943560059656841269998429289018919984251196941519366519395181233043658637524177047149050601454397784442297461100223007660403347185095377220747943562218449384540025024320523375204346639388782267342103769595021946618050990029359720526327233740623231019383744827590317076521455374407061522625093241108725783143941800425091823297662791263836769301758344186769781025565052768508522360291830360579582046596334122478552796827092833529264974673290994526482051878988516897377872334161642571496463451456239491061012124556257264677699894370576262073187600713680141188886554493556444171648644279345637091249318927782314386255638518076488673958834239224450066492428461981715300621145199640162223836546632934844604587371776385853983768332028143128271634313742374475370040812227251399193498222023439465354424523007444906130732041431255135898938575454963285194344002307152023130611353594080085995978302696071536976890640752760490010480345077892070433542313011701949558900103259087329101645781171108880386936860219064666834290163022025574375156955203676058609562861429727209731244393836338296155054451612687986208002958588577742553210471230298031227152300941917520638210506319145251923857056566704030044926590450508384949695245520888566144815420502771962642132967215330313774446443218077307440673907329929384100209189611798767788947090273933786818635643015692015409036359996580101503498650134298487193311279905385041330259167184960389657244502556775205701114549948865290982050531610227078485877334467031998048351467223734337281349306749788202349969442611057767429872417416719078828320836979130114892801801617603868128455281828565241387325918954605503262859548466047367555832667249117875537452463237513040701794191530869104280676453553632483859439597911406908380389143103568313755989985461955241453881455464860779504125312448807340822300525630766025074292210628997782378544951838081123975207112960248361024388196400018284258083253457715987097746142750299595249233224848114571842274025158264034484581233726042350404332840174941661818514373395646109209796044038744214859432418083384288244405796431054638846751432210567287581001977039346444068239489955223190614628063377967967648334520667606602478611953195167609487630525652802923543976323116219101982271611968088389067595854604732005278476522822501312777604730134695269825364226397703812506446236480048313971758824868091010108236624606415171481950125513026352178665108640392343425842372676125723666497000449921920968108747173765865145610793493346946373020522334010207904161099660607892630598130136241461349897146525043890072418230369013865075826785211549235324770370391606241920274934433691098017170493607951175312205103539803497369718363910056637859762535285409874453947364613367554486168785383627033886173001484489244558603724254162909805425245198092106432341668976013483767885514176401526506982768216003158534504599749029888036530021168398872847909796872363608735616990957909304780044413109056204407898931932362850711579929882808467580756373670076444644593871995174381022109819095788125446084771376636150751819969571547399750913480384743210147890966819218993643657635164157495202445542768245695425475906108273666886218749054590745904455615716059275487096758882701521348091830857022192762427536382973215171603260091754152079999812690631539691606716000897144095679700978079809683377460598180929349894353938890276791369978897855950543256058486452027585324348683942554606126765711760129129061694725728820812513734862620974889758640256167658068210680269978924907582868959089721428887530596754914321491408962904565146744447136754833898588341971483391687528637423245832702898591162005444579967431353083069395508808744918886939330762650951161700248279426625152426204950668034577149942590357313013663511408780216451093168038661770891212885927184084004712009987683781430955901591127115366939347128915491042887037588025795528035335167892033338892388137772229875209255361675994972960126335180719264496108916204038431371313427354668211076618564507533439650925545893918002830882849321614085094795493994205998213584497466089587872609250000531039659322798467417064408091211330216978069724069880315295568469934601548223432230856191629149546908666146312499743326241944196231221613638819975471482021315022293361966590132849551067246508889327743188539350596172042368002451448007233227918382998396441280116824546996564672815050508639767298071320249452955759425249017792624024368876118044569067590589763902676739742147294641457710563217313403527535524515645564124882249793174135308380635931594328712315753520809139119831203038042364567764782951593509287369884755842487622591258983990289059750116179346148552578333308700632483346595030457442695634827522849654362831808072285466630980518847315902844332988685201016844164416558718967462381179634843642859504956280092666244343242188597284944762614412683307316038802887295567765305261911228709902847705716675139898144789242694691259429495192000499611091510047968268677123052701299236152126412357464551073675811429212664889669039941347105740727875725810576875660840039063424660776905276229266063192192623907391806304772937330038580556464228470516968168785452153333716661712419412202301521115588305526709794037910976926463574426230805548577176182210783850622814095296806781499347586250465858304213929472637900098641826660381711001975641333920124112081648129657966989759703824062797756471279404336077165392075283232022997883583813473242007048470864616108847372151774223535597276951036030012201596530348992826092152137371339259628516326340952926426258336873260230277678773600762373323758038191802664631843526009698279588634016089523796341691694071830684880952440548140912261781266406105671042500859245529119828960590935176317868284380247317127519932708247410364980897019763013326917173078566758118259655438452891056687769082746421317938303644809114255782809789150286280011716493446099282165559761155889726725298349140826198733218456878644811950963508307249723137226706449284539452810977539804094094332138119970948398175044569054885553412527092068777779995929847547809184472849495214407022182772748298005941586100714101904061451082272165674452336415119174157751015032268886842148173856246940416381339407788732580593579222043920493495783202872981379103579492327514475439880939901632812180588153557245195740436080495043186305081808181607877563747785036890466797094266590122733951610392705278069523808955600303511168320657153458832087258997223255658263461177680699821530147903693987996952677748294754024053110643100768654514103523198804247631901114810863156627663624782961685140477329526800016598643329519293058818934799901641939426794129767423663423921013165134636761820303751538988677810580801297088923547726991387965878001394361893683667011508561656712517086682652289095881823145775527404041257444670648604745644856278714226042945867623993134071114329895695977834558780753334042169632575377193949157704733940859467832751351137343994716663916208308264734841574095398627958728563224900059361559254597566862849111078319724715796183692523182120318459836463177309158142309113339500773444603402481617656581951041995008145058471428689486617024650763628490630589967471414345311343025682975812095265086852121081371410975766301817590089407708748289985244530490725179667313488513633052018643403382511502131442546024493029836359293016159348411252376549238456781240021427368102871014642573291915590976371019003655124564332561040758626213727089806955139616533643424986235147670373231637097848732657028489568339082532353645151745417909886042501198090325915906078750691740506911336129781799430892194677424050882316294174677682850126731638782252468077064990112032026524798901873771955666946546283518401784561532910882777147749047603857705642973027649666040659932097465510371837740856553637215130066874563987772247384293085171110144504825472290055614400006650605851543880664893444648532249730327231815150597156932674705002298640517434484417927383872584409141803802731752192423407080989005069949260444645036201340537647439784635270295557237420750095880455900103551005789187240154884094295115292561935894334624325077161031379901110629456111707729279356077163741564265161139991453625211343924632422608707010127971190671273313961566302587362471521138033970246996680889532269715610876556458592892209733753959186124373750147497962155793414691946608401370050835818130152783754296183448489801833185142902159392365181730502741661152135553778079090414768432046022137049796314117659848759615134069395011344983975827928427010289731884067705612444905734002720921820816614523696580710875747562892856956348225109306745131510662386287889218015997130244648860630287017343639388848478806201560458999543499782145625557623643913250885824641672734676276086940432051762894440485937232806153131511742540431069894942339004228810486739586121972538193510871958279921465859637282233137168115422510098836292206659374567578694787910798469601869684205506071471790942575661539174545878276801515010689867405154264654917004088714383950000569336491648353889545590727232899024893538618854221085192903873668017550621032820985545918157237616964281946278119378934423239234561022337868693776288142208501708823943374751013249423330219146080588016000240961607168298467089704833365031451767269085767019059863119782271727400098741297323380566215952291457179430424253699984462966397212373136770249065184339447691536789658449421858984140369028188650911279981269490783053987546602159354616943795500096052653415349662918402385947518461547268563258293600070386752952127073462294806075622669451205698717203149081917507487453159003036213011754658543829294706242612362376845064492611899440068536364277017084163857153246545303518649398015915744629175382112800870527907585044667982941278291588347839640708497416302499375416812899993213214024640177104318692824615130461580490003249508580906408828834276783889652223183026744291982384380757413120070254285478933345320645843743807492127393175864112326713960159456477626437878232632426456729610939831347035788665601624427948187699191477865253919488191578376674678766398550332150658577250886991037074774548908502446981931048976645040181433372461154280299361802601852984194946552612262745669153931583098394328705725784100199537072762783332791548185310583669391675843295670523920433447473440427060789290155915382829975720384392354917449757821503044081315721041806895214299457174453190984837465953466844148385056014903235734772249624877558950299399039733334343294828034503688947483664788487685213163353970255512399337897951649655375900170978571356530958623159951186812393637272395978867344033419226168975780106511044972706625543475719283252218870239454836048586111781672855766803827933734794020004567168002327539129272527293963990947656959299429066718056945878273295373131593196700121912296940292430219228531283632708802330300267379096451176121322277273922825535355371458025050047001128066745397693640083780371657877897738727115720421045907413012191210080304712793831304734315410348234718993171597230990681175913907720715309400457940819150749825817929072466885202585747633185784233909817464633074168977525704061657990715337361745942136932345411137755171838870705443534643580015070234530874236415488548421638714000385198006965443984301135803303822663186750889676139101721386614158321023845121232379720707264496792891115904805839928497973770831083486104040573469083057811493369721292359919911765588475230912857457049070979612353002099339604943949639910129081497193707050285480407106112898553837756614462644503521618049890593214008483853194618915733916224253611024116948867415015631008674115431701752189149115919353024872562139825073420115254477480397831386065177876951535802639406293701412247904658933146923377536571976332070924389205515914982260274685784981057092031147266123256257676363502081157938752695492894497097256601105776818067935170722699592211913090873722794751490116545452002587531274680887990985189420146517313818133860515528798231406951705708953973561876194763111929291824125933688979741311220057417958567621752289021316149293571794844211254862186343325740917813268476514593063646379359837896550567953231185561744467290806524119549934664684422640930078678779789244697990115944016675678056639468720572105280805828645697615031102522275329622601906240380925328502464852484172130838763716642131518776163847915904696857911399198081483392188046059416161976387877482288952752285920012178934881618292964663576068095131432944005286871330336752908703061214212680157623502012989567186518977511235579143730797210393961426974201855154337556105421373640995095062605080325803328956533868398351673134441565890104898674097807652688370613358221048118664188618844143244124933897783434254243306674524754702604802584321951390456249775951778696230499546403340956825474334164545464773008159450466051814083178046866710658047810106801111693323803442346411229272735502291994672937782130940151057510039252813481098721585670442984949239978688931858965001365369116903584940021169240060933730283506785047640164798943094487851740981183274438168499618954896861040153740372694849597404110649917010183021901075789628762160942787377967460732953588739381951888300887107854329430057985197515406378524634132168386473229601454331789369076203551286071998269362402792241616456080870100222605755662101612503656252215410840529530614837127536746050688466702517451581187481855951728947343452067913388275018044308708825198831637683213386715110268049043193867300524332583157331739094970689443611723356159681304441341592678887664609447100379941959526916940443352339204914293994221668771541272526477814064970041301077207386994810926278991835110901280174724183110585334937345174667632122527687089840146234839777579420032156293468132105236998639705705792990536795447545920786398964047043266754140297772662357655368362247906607248169522570281230965636658333664150903915152744792473097638662672717775199665584864363095035808567747171184436199798083085381059115346715949822468784989151439742694327647093750865386037518188710045782255108762379758755325008951652700353602997435210918512425936040682192583610317599788648664546505816178563513440197471488162243094512428303956269622234257703668022952992529038347129365613185982182340079174185697787896838069053025193341347928004222637265196827810882705015254840564253784579141943390093357530714606221664286640865523293305175127717922019061794752885981977604257003382117708662260105829862336294956302386624345138272624882472159718420903036208378520660211992829891021479928619591548796433168916740911180846327756619108125930548758735106471808966014563222992946461393467452962988910141564141407300373769931003358202855491961017550434307473284431936505162847687480717809409158631148732804770995885385864221471585631818486004490433971135864744303998155249663250161493238689325708074902193896116209670314458262663616550501723809454125657409617269135348888307815524653673550874968561749368543405499425995898495348477243510556744319878330738406407254883799511432271025339816800709320597652369100066871720252990156424765206707518908039507532166569523114458235354446073879251303449049246820667470611125189748303554894171374101760670531020115669365806023916954054341603489518208616628944813533055962062945541753875470534959934080411534784053008049350762164228665913292264719904880955597383378341245777621628353161673758579706657047778316508635216221817660073995161418921982360731958702533841841384381459750799277813968861454059662254919306184468752149799738210686315631818194165782442907097855210482606733657369598021924364267865923971254704174087625438475545224800290758256863252594568845775989393372588347787152043339796323442172299384040135971125054584824587606284200469632653980631410211993178102287208264389310748348172219608066442826329338491494885441306529415836315742425560316945341387049225518479504424287592990642078018753654749839440689453836104671732026079850560146602731816932574575493273048574645624455190735164940324370906069311126322473651688997006435197332049762870514863283374655864642130944380876964765630292112722527570957086745789985089030550915247392926356869062404866139003400937239861499595638924234950389937580759613347911807303158275571909449623059143552832865861381494328360649986549350837630981266927517427955607059559146654980770136433513438770823935305975025566702210083342534415119827512561410059118785219843451367679418407027339525225752154693153454409797674228409745989645304747271884366854826439680866394677049208259986847382434689208633509975244902149565998207257745002825812513766017689492146831790584624381000312756241577774578864341201989945744225564968086984777510458398995387154558687216670018749403731086089542737008791534421826850386537310263007749869619119452888804008555804759215993751051814840396378254839436710493574302541153272331876666774567947306850179370336686984255514706125736979695984408160952908878061202540498987693202176457647599551950342252608329146768230929696824657165981865065339276807498050703152277374823980171852472128613909019159838392969256440712481698805921653529991645494488347869731802531842832828123222493599238378840247142773395750159965991597373914380796718251472416815938455023662773365807770994924980728848954657335887403146112711246712008580820011877811476861916743341841295330729376473625175370146128718961389326783469354564454299209914429711997285237809723994961340189108755765103025653611059399428586086007132118911922832533245186310751409577790225525566778509754526791912268277346386533845185676329944648833746443440195122456836213963799197214749363534791060073937338997546005337916829258648248168950445877023919185806345290538676927808728543910005713476084828116748492954849869424023115428925798361617433508311652624629183712669614080193696394385769731634280410962734322418401323991255201034118251798472644401824533882147026804660770292566256431297146878423141364419083240897514636630036191220177096450655122104826535290438826182915055953477010418589849903895288224776743882609674737671158202580257429481930508854492915414570021902000273652360401844752471802947178902731190423964341867785706967839117737707445591793053888431578621479082375359914330008907853713678678029675164066643041684530057173510208472263952854384380243561176566345638677330472698498751619688347140391619266872812558461966690565794810131309213002566556375588201881097508224167759280038477387580916598639170931622971837581417583800737122301250128886524332071026880006392379108640761273724790720613425550016249512751015705713725725017803644374386161336190636824976871774170453806137228533958713241558218712517129167099005314348274294300186538889817195983706658052820430605629243676325336417695325068498490206454143981860068200713067216436057671207055771058822935238928812485571264539567046567959713736705518865340024791025066342601834235320120582947801876249614986284016284969279461576015810559860304601622699792762142585571597780350393476190998591754128287325392266902088675313889727854697805083318909586415298703344464259110089650002685581655533489545936302961437562071795747518702634744294772683830117923529944715407810234280969788190382118882120513630945479661080449145843477350643641893537349544889625080934460281493265519810545946480186378297594303583174720695351141370140512863183991409703474006823565810607213831503563104562817411147255948251364939218723707859563522225152528636707887161949982815809282826714422399576649753927468717679795735157230064910738875192037442314272982048859217455165900087537937039216502196936860774183774795948189034142292928999120359254484404392535830257476723105783210722772797045005729357504337211711240690063664602055632392191249158971143207665036282620508768224374092062679627381646457061951653162952191752468914548618666237950982892981729902557045122798214337971330477906397680659229543399270808054594393329673895537063152422774001358312842167361110698005411704608613444998820923877071673626465591144546384546161410908430830020023594951042035603059070091417113031150510630270129594284266909917204235724667421847251991481113951864184936614418283546631662772620363932694329275925200138189995721865345953612664908576310684658949270818547772232170484469246591729855778673154671485551393401713491821014109558035659032964651509448754647843682967437497417513223335812264842627232070535585386772682962206620917857332150787424861435500263491719110633776468777976196063671237341663914334785139629597057454067518589156426629219383251852111261745161885933867511555696878777224573612253976369129150785081367699117354902605393949178939660177380946842593817725610262253287054753765221078328666835389901132322957677975906049637048189089820080239953437035537194771346368875749538348737560882752725184600358103234935935064659750208296009842811030661146189723988536427981433011585142568227857056828850046876683273618003352172955843486076507474157323626797165145767971833971810936280818149400403340686692015956546841599941550828582075738120505016660318650408915058693442788607079895478793997857696620774029141084614649430205689927963027496267035988414245232051057977319044504941391168271553551751234078055323383096599714757465464302068124939925912955992490912674044425264562816960482218343833947418920541321914258723507273978443462206280296084813563509246509239939514948493560575431277568639154301762316579950546645668302593956558685340376491318866091714114231703235557468060729744406070302511181790374311375924675436374675989121952133830243723938573990408307921252048458999769985387445411255824072188744472063136888982887030845297141810929497210340636664164182356126307321811737353166537282974458646945807150232909360678640189177692131922387698603473424857778737517339447745477149262372479682409848175840654713266498743130159564241089584817918981088760723219613244160680073569710417211249155438166907444086430412864438976502043452628744195482028685664025264640063763405060096023322553985877602037825755897350449672553384937532594746529095510029903446645842566172555499169022164107697326424480486480033475928875259147866464436404001080400982216616056322599483348527892514708737439082142454423787434863379131038674567000643694369224254412888827998518395237147141750601269860568010010562413058561156413336205564691969639574846540430673750093136195822445153068565968099287268621484558032509832346879669503848531221351832499168960168914982371147744155277192271875785670632258243688358470839187939185860813639055816010419173390969999134063310964856517491927526211765802053319376540368917421958643895275944367467842885503001105269504742538796994200623666117978911609507238191152031249902208756614839985442605999667724711744441648713642881403074211623405118808247024908230527172367465121984800470638455617303917606283125188237299361842219139566590450610165532263264565817551168046480029438785759200964681846887267320665884873611179958952912003996351738901496747871102716116199300252525919050181290696528369613818251128866412843677586769632301881387551590099105050699682153390093563764705129776222879294665000432778856868337045608844279353775432303174419488065585038234730786554304680315736069923089973090361260493396108023103485766131073880515627244592785889704126243240036840373484502203158011040670407496620455833680247821253344290256915165551465665935424358946401625006684447568416349391755051498749237947341045536445209436794885910076270372992695809173311005526567697642262460580373765491863692786436280569881180512271255699075636778174397444754867748165926533816188491418840641597433112253306000959678372796477014597720182797799009400884155169871167533244156267259814546692872527011080736376272107960896985738241226680799388736349185282735983459373405656666915518432821809454381295369065127712976528735772816670113403678030396916111653980937128555389923011791224446705495195392754242868290077290313089304431540630520272660498553920010686260349013909588251029961327841856488777815197710607184643670212183540525134870896272810775038890843616699909649891249730909441101613249801811100113319869972839242367189401525690327798268290883347737779026029189044744451201330426975649447868667967795883925721554353412608746502539730318886799876934506776913144085508008399360939864059198786278413067667757883564774721831160734548516297915617499324721017160509054180375092885638338355030439286004238918430208272891475465778261444185761322612131309170782838790615204038565065316756910344918936158528321781926960742699838686558896170284772458701753951362395355598351896252068302487992729632473949507586914589193849216244515368097018837215095855058529202003600175965668652682245350340994651723270517766290817495833359366621387126668575318493830255870277849082959078780878281601813095905498336426328819581194597645362741555210890083430357866083198024875913251165673013282312939449662984652319520193070709776115658256935395382631781909108773827407582586826705558497540734651555171263254783605133913937618216631715312456869217811992662525954935211452402134324137244485970799529542602898580229439512861058475296449661539256430353600986958224836244301551063799460266437593792612413861141371158586338897389898009863755046370944158143296118783151926636135969679813225575451793302123148226049655832007596747199491731766595940740853013138975513341898222312584888817411350801306371237101315117551189125546356238186057861370816525633015415536199382196367180858884370786935057172889589484547484750835249281351974189230277078368737237046135907187529478079035764208930025048620337536232746252893662315046040769765070728216167818937131722605688124748498309594290442210761018812332257936674388324530943060112259527369263407784337397018560347712477520640738155596808874390855153305936207543828130684715776024903940418150917563455623613325242546892662550772919628475015497116588742862583447070761403589749321789528632445350497788997541759072066752402114337268343349906285372637678442171124025315045620889916933864770778806579197006655075008807143929461377069173889800027928131221155276331315941697059843195190289943903877870219888561305193670552993736970820639498167538358228264426720829088796618161366267935525992720011785674321780306368263058692145406211896477975227694170987578577909249388128058338304602477743947549048788936681017105473642470354899347387267247426310073131055317007508084195744937528781280849837050840554835017784221103446331848210719118252386654152468038645091504734937510988018491047604794157084215007001131096884035948729888614126172348974308151810078384489320112898125396694023573676722641366841110327486684878729170226815053574501171524579674055638582195868039945744987111749665173862341417048430183679015801598684517488355787524126064039880231491012025075437968117648396984549760077791375382161635236413494521222876097200263312289075049154950963793473777944949669753381425236365535681819726567481145632004909207119659898833913324890313431720085494792260888108803314453740276130986918281871014970304392998706343962970356803311853667294053495624767040647580096100459151411780238855185769542145195695275038356598122223313440716016302179978143629177094045903685601108587466541836136469247393507336832191927941702862584493088900776004662756457246063947717616388857918645521389601872666851076792368544493379328183200036412953379612175461572720958961423509741627411632652933317733496857082773116786236104076042236833223975606914313501317111414172764482404646623614307059435592315954819333307147648046412165839617900787393934745096277496712786742607314795104255310393577283593901529920773670890407456474123331933276387514166024349490432520196531047330338228336839945474562450741128792896230629850439824427507455804894731411524250745674962871537025225459103060900784691095351756263437843079019790004818619119523294435866768855094665478379665344142636901094466134979441088890546621631914074940524947058756618130315081236374797438854191818191981007759939684985678443702363109867303101276316172273466159632180390563352254683014655101328971068876792762177132805171540827588030583784357605309526181577493394594042621781668712238621222116080121611199117418850701403512396115855419818430275518470386477268246039687860818689347355339756819208938305274673638143565787496165659137050725500510957916418159371871856644938803163244326968502050803855584737848903723643370521147249738776540941350539025145399216236000360267270065724418369769520699255989250995335964820778384158196241943413421426996621059189758344993629060231264543429990111545425225807290163301527626889457413421114603579048056514521575304520178650052597448256645856795885713552284836307935976105089137367927259658916062647851437678040653807509018551492105475182314894310835839261816551638443761963807231557635011697719570729257806975560193965013009137317605815043675124669148954457801481794799908687448151538243276153831117773660609491799900653881557663744424585119163536796592470455518830911347429007325941063869528071935319407994120296181455760533039011536931329988596272141809514654277507791107379381922440478178452038606084123175996978949199323202644114055507744884699665835729508490343892038595657637924270456593078987950540151702317545431723188338698324711024265023705107373845150199866892257712238248272712178276051574111888100594641980055736878493512916701193300373446940200003231596057991497388437289769760775136202851459619516259025174116368893296674092625835399766841274607248995766371036178754234211286303765255477288764173829262821676700287269669028214310986288419503744352623610624629669974818852125640863664230590476415956427371189386864039231841799773822715098608171964282903667034349070385991880428744164055916410254140977767084295969569254496385160475687219755289554481840396287285999618095574226145034677774794093151272101005115312068731075908021326578306084529620969337165247018790946415410622505558493787280601554541048476104263363910045843384852173663634767951386882464659086405033749250322980918947908712591913174337921188444459042067936563748284622953842639765326094454437648446733771806439730173138703726316522070067263098893207969688318801834827320688747796848975484485704869893214768655143293016545039077048543625118224539668827790619391701723013828776811523876482233052241815139266243129898619804299589703460311014467371863950663720169173229287126243931299346358466900526453369669018419343508305454818247675924854196005710989459787351343129933456435843375319136462993145117621651147754937632716591650695769482728799439840510229919773971684265939912124288208786090333888160892818714219796793866063178327249758460168184737354917682819144154175690247683924338259723722998175512192068662932106936562942026953173297804585158456771551479255398022267394462408068076482737854032241703642338903894773394474325334330227070593701398198058662053337818838214781211317339056332223507351474876605369447816471969808264406188730775438675873493444771047233497357868903935545275798312031411353298261078510949343699150889338193519994506936399291565480698969184880372879764702436044514282833563661924420618408671856134891232242768454069057095805960376205885784184680762260614021959080465734359757759068722482516423544251012574403249884794836546389124457786928069949497395023428469609485385457035701121106995649158262430685487980399304740289463855579814391903228631001544973093028425382520927268512135971127682665340678110818656104228663412151470961203444101876234964275460307847373083444345166205005762518280278872822021076154427944373576195158217551545594119494586611775656189551015881578991373971755192995372623183518234346448722117294115388219410971277066502219943903285418090753359789501741136764301702444708932705412004851815822860594496867938341160470734457702229439070383148261990748320961785019602947498501993017048455817944720599326928474081254337908632855472500827303577296354554576448005950499072790622386986980701245205031428018685042374463234203197561856721552372130728621896186693917613739437717378245760346927478492295023865420377605561673709000425862265737094582942895729732098060510468368971484132028023728358771768610620988551449087528609250959960727295112496609631913938758802990579878474530979907415814173981891612524473161012067566456737088700418955970604894233390830588775477852216223012415366418231547779481721424607893164837842860622426999634687914446303860325942831342957216424964633000774732586555837176832452714969091995129610971209054701909389789543237619344334215949005422795925058009597573069776284061674418114919344730110366650374694057381285141711650771876710924738311128886707722854892251850056391371008895076924825884392410418017083960257513265188209015471072028162959321620929551758375953757805309661086620594800328652090317649764236537656269304659166666567879733750358695884652652333439179942193254903196026243633040275045687231646140695544213320197200133723051443960207926413175738385228796091432838103548282433027442072340773273928573793594288630751411953636170617055357640172384810993660895696078719979581648001872066811069613207593045667962185452673572233028893122087857871205870932341211426416198844342671008483801455625434958448779462724334705721311882050704970537107228701691826169068188773515178483279860271352451276234755535070888588115521425820700132984760820328371990312259433369418833677789292698916775950193837763655144397652407889722691172391254265439053642530540401564792303335345055637925038262132675162869088259870556674444394322726097042943849051204178581528239974297326793119920447637610007037819279530776132947706604135464695310413146001074563758801341075349811777288844579734711064308303169038492540127913666756739055257808359418961274788761829955678807381330842163806242822224339365053455114732037714282967653859900157621039745764402121587531712875459782576477177281257115192779900107848894710384005331247834322488760165322063319487135403853190116715360355134613169627082344886855632586600352941192095676450544603734804059508967095229055558510841648499006197579988656457140329240866469052404799705602823297359352660760955976845155791797015611337593912319305683076725492295485936881815415583083624003827279916904063993279586179149195267738716140142618378625199249948508943209827477709220145732940237913727532878196256303334057315740558083221407149225427751331576215520664494232374332607625856012258983697556684817210529114445958186755604247714513441599468512650751960679535704567918634494547053485374689694127836610202724837239340748133746646659386347744898724503750919457309396710230335610211510712892376393836384327881047245968193695170248753352978054577761305349144947980169112987006204566170377259071822618487579573964508300453327963606050059832616990508654348754894909641531743109388444919805605090170414745146302444508420668370971505658890344870415513102298721964162276560532383923083286447576087304689044083960430165079377103434885938433548326051798693520174750737133024487432417149679417031762302534312381986417909947082696355792132338415405073172449686474753104700462817268469205338213561189751231245237133257058689735156829840492689857948142128106005837442342986962507026583543947701244310454142376478057757220858808294373962129182108833064788997851663603964599740260830515447529823503674442689436223080830439690188899633932907859291428819354201672865835786650878514284637010289842858554022149706809023295774363763636386038003278084800775530558587504372538948802071919106305897130574107094321902990942780309641392907289765334855157573380468692626192368830851624147995582368659282966262853490361874152912772845910697942403949458953887859512606385415383903969288021097846576684898882738566452540809137800405360777284657813825515653888142439419523363416737581392745552093678056871003669216275447597200052914648134489384766491338768375950954261354564236313648635200381906673088899547097638234948266986037688040646766834876305387464948383403832664600535331664023049132866543571842716384952493938007807704523285248459563889179286503016257833382448772475042042472369263820523758597861352618239302032798006216617046470429306641955767163117843969938267424871751982301094069627161222031976766528182184099313360739161482862647911049919513168747223594714432207641357221303500539213701842629959313795259928857340420684829173274416096666733958390730882538057870145197564071434086151665576865975087821932345644109088651569459199842921162721325044240414679197340071027493757170864289561395801171153805960839024671181855701720127585784470929411793067391685913892260487475901391620591052131997618663809262965096762491893575576487504001362627888756784880782540828963544844808124896353551611382694960845004817238448972647088544672130696893639564889284089356125708318874942359131563376052977810098904949737061532929078883521567530238849220639958767408443580786561617766565475130959973706009909003718446343195235648075938444175222686935979931071506326503315908341521247495369505304533731284223766873571373366646717329593472140103973158089741484111403369353236427646601297149668116709111783789759748232241303140113342427027857600837507526354947510722267772408874612356077770346742248567932837174331416717538212361291817353408598066731274423981960583173378892231523598804286664529966150641850268787647035747692977852678690153010876023187649615774444810834331998173026725508030385687999111715125988710494488436253712741800997732077673551567584367016987712211447805063556088385120758288515733985588025515660749503854159497858400603736095894486310619807902282928938980999967032883811322494867768198615541857978545479455487643968172669084482371139142440984227464603821814311468516624650560575251104770124214088548096161297487937753448014494643723611085560757182839905694708687233009098832244446516533352851056687702493138437335684822664313814341765648193661988025744411827270210055233524682216755330505685395408847734620981677980847911914162518141071016538433921195266810069808328229054366468548907316531276245658677755361864175592258641760775276092881874869625254007938162919340700768200956196389922867353946025985775210011637447739772979401704871561930008437366116242987887145362169392869485583861449742932010993994721820190630184496570217936145811317055773102366544051045509244174833619033563602167361660042340706340775395705416944445194627836418049145383528743498761970732571863821555851374066779209599027071914377591139572804747411603840571625879130686706340096966414069290145044796662330297598449999974596836110322549445223677791203842945358419115960392055285329395240176108730920232038227994211142331766232573140272307168106106307661657561228895138748318839347431063825602429023219047849271244433532713311470798692983473168362002111025152569689146384684587033715966600635301414272439059773065153623058361268387818486653814191810785109964141397281873373040010128234652359794267407510860687559019483959872972407856912078091157447491589838483988671046119539323307524141647832764563020817335525396521426979058081987910937137224559873952624787197448530309883940185493544686816936086348700277199033102074370324807459315591774694143239495849740505725204444871847927034681845764165997859204142657522275168863049875665411505889129592021272777161426746333507310749168522141542634527807563304940864968164982908092608989898206469623083666202316769416632787236569091763423728246571604989511875545858684044413276976373303915636709408699232102558329800398010851696524046784523823622916746849891083777412787152960683998877644409520798792749737741277788633528721606899295063730579797492772667121438593548304079677719745369451070199183652630977425196961809785872749493636622917630346460768228886492377304231948229119081962060775256598222597255622993154700791575605156755361671047361280342038266772995870317316746167131131193749005574442996166443832852907987761384259866350992193337489418217952851476823678864094758193962919292155675354861368714764508127964775986185126989737492295524541159573002863243342518913303407965601689398064298928528094404257253007421306828064081404723355629822434685154069584175953786379673686746624243176337537922894280404625128032895637930948213956253959562679577975100247372210869176804557296781494851506111994901095020764934830655858485791971792628277576307012505886537953758917118587231812646877698858062254556606856032747617925321582886165235721626948046398959861248120507076046872021990737345837550099214339939167462785202899966443175918738133439216711185589658060217491905254022495056813456742857043107171285524425447420557013403511496159147680470625806830235023328444276635883447450715293839700748777591508641371056271228833525661618587219039416306671675134578624703746666889717322635518452942500010828190513347447533845872656034320069649286132036581292509974339035874630129527382107616976789262583340886920967324249332544901877853697839172296236816146833365364753468930533827380052299935690486785668056293169646000515324762275783011520808673889837828005344344920892119097649477952191139834641700478017284803558863036418747638330947591517046922627228099513137719572397629009098670769208394174959623265085543969658208094559721708619976554949009828307725574529012005785341863652347297434072911469559908636891906143347995046313690568738626034922753202041141247978864785229321234145522077914577189166888993932612719850514297554692324198198901647522277086237999559173273214543529941723579668266138872550802886146270155842887745772404478395513648843966503251535377435445100438006863356158906902118976311629286640913318732479772505328214466808463166197081958867920749859523858853801531797044586372032195043213192412346364023647117143707114035974310479569439011599043994348082130562860503437269228601990140425195354466704770395248264467938149975236862059708679607147954723038098527855627408695257720268132967351872695638239020335116213886986874808232108418855274143124828696750757293430795394845180182869173844700232862096868980478089755024444908465828310351002411950414102914689764860808351202988526521653595623986484170245972588826130071009991181145785296568258722369907470358330524238068061845865694096508111055642651725807464133380171310367363094674499626384957562216665707392828623001989064505793157711946696039024447277019982264157116911531180182156291570760879773977536663610637993043356561531810279253481690014646849650440071283752461712835404613069185190783283459645081579226243077407111213305415066883570802603730126161809012304846918864827759457524099782590100452633115828704814666530029893853200499943578833480541466994674079114576031967482046827210071766872021579602908983744687944123154180098871078825230805928839755820904464910089022606860555375981529499970384719956599993750174897808468504119153333387797602707647260995330122784614148362284912138422255266329017228833193768514218351776200428516451165827267631220752404824925047054132067586480127983543960092650295148653002185325222670473374974699040486226962051248878712779527585795299054149834145831869696341248461710551408023892148027980029504037226811223371905289640475802497492946611530490970625636092071880044369769655362034380414168439622270668260498684222088237464334158111378551457228360127188261893151558509206477050683151645360652613871382241144736684678444977125123767108390849712068130019681643546246777745552043165135584112456369504400837968711988504462485158960094474710367332956428389134132273730374176015415175850172173204594435883132194318935826503012514609226274128887934341879900539489496226932979118140453888393522953859643258832351138891533781802503242465691457419377051107903806108037653430492746704493892634551818605915095552793608605079724199942349693486924906082670176504678185401868476818180173274643036442478814032282828977784246815863807876422030736733475031231273819096965363286147833804222891647220343668773672993636797966222496428977670714918148190930378826594767866457666419018012360734535235134928889912951628734497140372789046763375741132789368602012302943444191386461537155130559211953213402159455839710888094892922535718228661187742811567378678851580527561719868440767791327304949794690547391753739119155684142762347485936162444863005818809748021717984820585898752386594408044520876662199103266374842769385749293636699105225868554166951939264967372096198862988162295446820769296212268356528678139195785876242039628661426944067296770415403371617565125557436021533210598041876372112438498311084230935427894760296631356892934986566411493719083947259072817323686938412840359724507075010179878931154436026202492683199010666242882606954315373477597235330022029666662688672930321731094240578200528033836115388488855719108639573738636035494102558328530440593844621821448906647663640471094086549732714769016883548809988127813891747943402360517120325685480091488412714618353059998713303610971709368592611659170760196206526519735157694339549211561538604397500348598727752960913676139704323931997817034310510003348204854652341321239153935943675505557210308685101038488272188749061448419131921375656122184331479229107574415203909379670463908103580728517897232030553611074343774436927803974262532969681352767684485347868976043224478063768718407686188970350997064506303491292266943728257002205406542942700274187673850852935881548884365946812820758924525606255414954425110746709489474519246762447569315295457932859665093241348423416311846097420885491235471309403764997231799139999060678038784049323867084516689941407919487022019265570556559111362369607685971821686848492047894345695007443098985634007688222210167608077791715467364595672336499910449943078769160939789844065551017474800354793257387151074366281265773358199801342290770616313229862456577490618431419494630156638393548901122759727671061608928395624747723895157830774283875941769755706553184774232870868395604575983646365783662457703245631539329595376656102443083123246251696369307606339154509029359394001073308011062611221766228595501421884948445534836029474080111094446804504789082990200156863452380211382861335639660922571169126327382396917859862350517071202471178368536517495476122645047824941731300107260672019588288505804808202623193151917043552037956740520468482938294136220977795322392653029193072125087690804089083139279844002969031832007637533535139707742166001174996824248289410595350130333915443566833670031680745700440660058030573581266986062228347812141707318831206276536281509398342673525246085959318039988895329291073278291905710469732035851750972594638892009989342767938075740788856123207820523013657388939048883291769278610166557613110132834384245007130729547009877629439282027113301477805077222084916273847387982716061936871328331786950728854437172439055736645417039537570861916103605704237150749503887070897072402187053695787913388073689054491169029340396304133866337667288475266447429398216747166662361538459576700703340781603463855911007712397846540397820064740185902924336626254162045881663379257353978231948775206407487635719262480731021666051541220285742162467987241672559179251628377865324931590927540775181623562354539610100167756853859229589389082842359078474334688051310677931929553505400722217017874352113903610905349136443824843821107254726604834844579696943734786078970780427578861657373583137873613456041035786165680880833167422052459587445402037533456507460843957258686837232324108513464034723206813859669764932676397765383183809214340789630275047089036944219874046400445674430823161251177389461948725508204639574843820595278709675700983373119107176261265067994355146672556038506544483604350903996102103724103082592823964557088962183028396332500961160029903158457581498616739562917270957918395098078063793766908103664226079806955298200093081518035201038227533600610081189113229920988632793902859278057822319998859032683413006467303768119038032968081459329870915492417508536803727006139609650125577661183608409992692746711943445938957964491641741800071591053066230468738685684267107505755923962123334239437837971336184047239162238019390635922025168010358081087771445876901798771063015941348134032422751261020853870404329070845214523447211111641178458360513764018745863061147309626146462684247157068263157075054358049843222069785067335851206931387656750022138913543123290387716199362410351017118484901986585937511471218731855044224441230413017624079599934252695576707946849594326190129778403434413449256022531429934211905283924726828118012915218139452744754076497993821843228448356243408711814606625389141035085087002883411735067563523320620291408575810725513477240909559304908812356950170893278558306270345889389017285139000751635134493300995786885028310068879221467896679621377074625392806625656118436226786813988809620619036934503437527602894946938822590764940905940602351780598647470612738271423018776362429703164725872988218564416090811167456620241558098093074929600888379468062201138689805267602146892290162864641929017536224969235066929028507461820980467024679851547589228369639679945067683226959851499521914529728530802154368302580528651436205992630612433374359614774779437807436767418065982181842771685435267401734759833441093241855886526119945841469109734891166787649739755202605902960518752097821065124598086330483729266614892347764656180268600439319207441350893724273554030732038746390530306529105757679221725044742874363080058496761655820161377551130559726960747540378891314803515881996300699403220142802173978068869796250740788855727289784040056960126865595867129779921820820402317146987788017377749651185738197139619473568808338094589536331993417036891843694963493622788232495918925298545028165524263526884940390321446116020887468143320440950535210299262148477000101769139178020362933662296124503523508092468542156396221270095932865235717769527413870482963786052560517276560717384192968205424027712009120954682093075911822004360706113029253969228306010986533743013217262185128724905461558440746079330858433800512730153924751351851020080581504921502797605171577003278315975101432217865694181191780433712893237649148903741491719357570109749654055020906185313910460461187743995705392045685308137129903284729203830226225156923275049433109154278821538701077667194365218350243361564490712434316098345470735204523805091623182111991935058587646127300061050272643676832812142298270760876040041362290402826920081297269113314579771742459217188360299670020718038288791004650157165553481968155408491598156653584307897964022340542736105756930578402476684783592633863440356281759246742213424568501109124376002883418796651818207032444286345094388291676672531212949134585908206623112385097926081656549767442382339044450803228832691313394071412409059028192453227846832935424678774417178132349020819573267153511651650436670816104342306722350384989957252748674082952348861682721771007851033232894030816543391218619655642637221935132423224999562755558582406175317664610840126196458323733148758697479378627118529153619433064459991959922078778373868416605327597150864768501948338106278230318351573684477595143285050322546816463706924194749461746353088540638737056040228901136180893646993634740818145846360656735882998159423137167388263300274000892915129422852231583905103066795129458132499981656190279407047352941014280673731704350879853368793622054391631102594780322541101615524608659525487855205595262286000339093737472476729639439970958869033943442032789676759205603070065372491053443614754897986572219128583450787700626178679035293569036412551262595720718826110257932899074399213967561322524708848122722443666027065680605557722537662264335296383856029135021773896996251014158155294528875130873865263110018602384285952667211336559803407088167910703794979140942428494351791483395322296823473784214152062404248538003400052467289324193729403075311310058431666883557118864815360312577850856420370584784251856870481140029509785220853410673895331181995767522806144053807170930056414898536003537476330030804523655205650261119393366152894793956656605084384706865556891581898652821588939505195350541978040830619422787582514576067521923705863950208708364815866954896011361166559622714477296317063507806172503862362732466170605185628627440851119661511392655209001530316416276240744441081432789900514229830893095965933160558545613700522292564874866740835240802352904964185030850800153460273169232411322039291611472906261083554090053744736660255863192428916709485187346360816751789157643696251320189076355548910120518509860379928790272559999142693780283986854836760291473637652186705522670220268715486946170704824708647605407114140978977452910544616818495168788784829994966980013767907310924769596793273917605731262364164733981810262581855361731279494024270621853786218995733141894247617861862963175954088063770657315959705851670942333575810005629003256581306101609472895047994124222718926037584117205788047533616474522244624908370265552571080359933297348781652390948597730399819828718836220974403932069058015906571843114325292664609309549562220031432654188208212808838628369821618571252321489115361066467337880537420157527600907225365944954632869871698781906724054448559776045550077336158738946926947564901469460899684495223954738954069580222889054335584595555036565087387773856110043894427337146620474552213689736015445277163175882942310218728004344607868400038799229372114152699648324516788019844706911151178951335206493894257259139295134459539815461734126111938981999305269453993891218925811952527920831516796739159452588062431069647028753417786255964343772110401697722867994092719882262601782836068687866053438824458587665385411663452329082358602257380685954281192433088279755840013054159365348991537766661677386763371226125485046859205831923587657967153486772828955195316943540437585476580633377261805227038635259195820341783553490755329528325100983060830078270872048257157793286008279599613475999306257458847322690943696034483054778785448948058459635043016136168077010971170735657765927116223783585307061656658673005322915984040556386903525293475455629368061199424911001763481031977731730264748985866385938304005436939156596090719570704502162530656684359530406719827217284694082864866054478620468155948326998922746983783999339255295271900616375588717615671114596513313795297263215897106337881219706119476831814986179752614134479533163999210180123916363677465433808985587173854370793421146185030048318344760568387676319305545912706744167985826151921795679605550168813389750811316834047769868652531463993307536294201813695335402672332755509749838087480555361272125754110596580296949408334684879556289658294159633587707620190706529585901168513991223894801956547034373097715438118094497086731275516646971145872904899193087532177860422327080645526014169174517111543679422028739932766369263891142801755137083233525643182156662429523653826129640996020598709382685305755374774375146099715686337230663791879299238665949952384965524068345708437526069681401372006979641115223658139175021805080457575191219808540800220067607302188444961800804046025745590548188557085459073737923991658933402328024918255978881468676034969603135178706048198035057349418163259961607891501710925677617438599236718390471152640059530049085603452085522244627801584541292792156471851572290952044530090060720518974728754149860153112550954574942590703931125725298610227289409022400018159791423251702799691160010414733735173536424883386703845321197547175130436713181476330979209794806480100896669258836661509017286283383780243162355315388234021406599911083759826735950534553372986480391618124720038202085556169929879279233177130983401813359324418595755104864859615560390422901998981832867375594188857364210942161611214455943839005528384939030025894409407122336060214140286877560120355292588173095509192147757490334613103409803013988784819893662516690129222862906718200310482010128157402757404436476412205044411921028925054585254666300537258728382351972013382445281155102906317140037284029014574459981412930993297557936508965163541688946995179532457495724109357868926170249657285636098425440883105425028473922548701712570806355777781036908596363181242477810323922988247591607710069099044249436495272379792948725495972911704396263094384629042825330638450165118106823241555816977756716195701063369710619243245226925653942618706833293587717888186842970465807597030940697099168508632702532697826993036445101729980098151385526748392118488077146836204431172597660728052796509342773791899346008716479339653755970624563425213900282524251261852008594008116650979350571949713422026621428589523361830318818711360803126152900803906419176413536316146296706632709743086590164201626965814335163000234360764698137216545264485633650010074868101342843460844874501670669993625624808813695925584417001985397322065555494256433709379289188331420653119093852708099107842888977279256814146286912528398055951918614496072457319737182947911371184100201378684429222757928360703188607547440384309304066919658880209865124011797975084961184580003848921251679706860888818463529028841878090226950418931980434877654650391758508763291649623077087205984807633837953382823324592134281846527141164213948093711849872330229033486428922009923423991399642437480519216878699471792474859077465233015729613289600352074421740658579698579938575294383960409503202055426868221912889947247622207665037226095061919809310508736888271145539098546616441134797397727156239040453320857368846325217335666668585737778344341805066035163251854745716688439714361984556746092675314793450202909923606059920121378176621107987950552166441106536920390721800095389757267224777653048739931513779767363910557231875283194402404656536199230547896596453354963723236463450207603290308585026483434804615186684147560511167040262901753377811920488084753444741190519803856205080858237162323708204043557933869940123025064193606679184382879618797001056073868799847583124074213810978290860927610524105458778328325018133830961055292474991903028263422973387298138101396076664304573987830486323626674677104514304190788544563603438765748916637484501364296529476020064365213204332237661113494889004066890453939723735894443232662740005248508330442736646286278916201579055682464392621862930393832080526482546291358293511337471180958067658454154263703578716707682194102660912958281413646003055894570953080509398324221351953636228402974555387492170015428259114635546533439172018065412602110452149737129167431606407431431008563895846145267124791888404692051603819517328066287158282117480434706034162249097982046633351997474671068091078421713620448217950518365488362363981290208230279958467569439885374510433348514539150937779316534073605105251028606924700120029280580219581286489361478755501798214669379823561795351074187586147593400482270611900722568866805437663296238327068484676644171054526627656621434530079552930124146396622857875847272735646362477496161150730001546768618363849337657749223298569858883845405460901039633729425048139882326666014381703689502961334244831559482252913496730758211880969080326629032769772715612273646429132144953361429384739440910650338394001330934493717352295532984292170766806397898369324671072188198484799563047720894521612343696202442193342004135309120982359301160751444849499032917061157538462431914959866717996508496438792271122725583531881233538925491268045008218579243225591847719823417692417910730606580449287560257970896707670033507547194384802177745249777365428673268886454678557750482102279802824856605494451942375507876567718471232288730358222593061800295618875389580024715545989432675827854567381675136801203271264371819850438682285302167594503744681726561036617470723202566622016290886443884200816702661371681792990587585961798371233029588508749421909156758792510944159348084181763353170965406715084458075167551731251106104549013569115032159866931562344098978877412091818409483538445657253947618609763226524458962700075182074911416195860236907459107171048779072933259208613730065093558170488229549768776496007999779007155268925614327493040606130036796762421835904461272910374123979749060556998710950219846696283757902607047269129378347664440397666063059919951690286026288566565036266572086728258908128552392498116581196156191931177460145475583782158160990267775961842392154985079844059065599347368628467610615349426955018597469788618062730929314165263089131177080713784779858645172027271996717417212546178004074911206976936340258221981621679290533756227583919279563025617319023321789681341524595138473734143267134017332840920236505709079921430301905089306208849292738732576128339999311745973108567969277388753864901498806780601904649126260884491174995389159347716559826603635058619982222996347235274573129072534023128768648609932927276947548894596058623007475994309281858542123184947270008184624528227948771824070675588298493905245668421218341152041114812870789796229881610517656360488681290619742985605214776615724104647352823664809058230802174747980263243730803464695653369272480154840126706677823721657887624110022944314542274545230956368001261086042134329008091252483753816865049996409225951873013802478763364971496373429001591970760702663430938372881537824946008343850140122168110506331447352493438331550940839053625051638723802843780392511942983704666093538585240338243444294201193653558438962811434148657188160468487892546437123738590067899892648423989545308319878170125002901077149609058669025795169606843681147912144759782643153163374788298573311014567528829937083852476499355591340140600092609429122697577282835945463826959448517692796457234197040949503654516169236954468664982348023282152082727639566423356510735919569163129993941701542576709266251478541148496311233380252914837115906964160799326387895787160448146546754041608988158988281129316683669682063355716028516325352580187221402181185423917860355105209533355613433982057183920769893566602700496028648987963261128979990239673800471718228681179864454955006180183439849329568684758997254470133712169416472562438744698608917833307300079741743012821824286158452384269606976403702833655044456749996232533783577712603761547719899154060397382650735232921445396679801880965925546781182114514825230594085356705273283954592814361049446547243550110063654149891226839770523336474656510334546749113191062905703537488996924454536832777973002354728040815414713357809896597854722631962563286512015737363828883202637846238859828137925251090640904297503155015302615488398165105510191316863221320175965598488309130327920287639056796455515484487707527614367109507765037373736500611784623417541021456135449449362973024794467133796909845113597691032228185625770022290818638161465402183331043378897546688665874487739467106943206687741275558966585150848109199843650866155717126299929282184753564545724756239341197430936098651369622009898417391258757824478380797633872758656819842009159732196059840285094082824361663028646958052924332780333206105274709200629253725516928614700200839612196275250475083706509588464410401606083371430828303852813608916901498268893562170859408431388418069472842018991897223711957228263632738774533960201054429461413135017070067481669178478466745131452733018412822772110750102698264759526813590530261887107678738222888029829243270055376704005775615226850709582747060769369260264756800123884285624140986074841577907359717115927681452258634352125320287870453125959776554149981272305050573345544006272840277634351494555220567060010585633183568699072828760843510149832655735430561878858485536907321423573818536198087471867448281485035687419422288279928540338122501653863210022222655428448048849803505225293985512856416975958587797237926484559699331087441018252915519540277255371854862117407893409584515078954540483180823281902850513253141926765565881508384774437073891456563592980560462071949496744237454569713856664907624085578558242949082592651540348115810549723098543195485750713848380216516474028333058293116113630600837363502056931876556949563196065666825093945147515864867842948730814806105566390124633240966465314668936872554558971936918526456774125152140462092553711346722102048198175017513787439171055418351786166512437974344912913740292009089385812738004577220817886425058715904311184023869514403739921814396907312931764548040895145657675177811188497944129630984525945182228872017308431389081612789557695299815669772692317454791063731734935606700129695061653941662992745165139700861583647407017182072407635936083379006616989556256574531906105433942909208862063981218593679852851263435562777101054164697157875948452523879043875893201160630185082215906818454355867424119764212671160228159626004360644127437023176980212973300932972553515052060405196743637619731154960848879326547002644039281335620827453192309650168354508888834164964110252526433150063551549159435306252391882971727404708652829251029866784991076907990080862110223354494531504675228689724177748419519668492104651184484599480693533546680530467267066910747129708508006202542818286472518170678065714624159560682057092719386328431002810984092524486399785676906010382159327567714051323052605438502576944268030444399409722059986411863542866414660954354894767263193305695033930063559024289251286079423983525584036999963779125395970652347895817386160506720091792481800637425443934475492990650429023060869444500435152469047643936446722906481442282641217352392648105789270581862827121177971000063376441504468761391331400260000667826917798701964688990342239006836039868616819801016260772017894490849278892036954788606929871371420051770500940805569810438063681567803131587632159145452595984876081121100324327830568214437660867971567161344674911290863666120501596447301991033815824805838645405541694826074357299284060228079751912832062861348740050957792009968931152023291328110839494930221010112625989771568325694349408484286128623519685178523804106151431311867881600095164690092593012655460337061904547238914823038638863503814484229387058988149208194134345900573683665515937188237154394588493472221095715589315332119210211348852203565944027435572685129676078009322233108615636191685149903144625964391800961155393867565933506745006570890577507948617139853762463906508439353427999294193094797629009510170443756311902416125936091945617535172412531116499050059307778829849252578333762632533911881018775078802270181848577851117115031472774055643824273917754836141480709693707590198480794584198189555924590132493010221239640611635728235581982554453834442371955091089135949887156274468874870369485944341758201311926309391627124268687359376059731148594170445587725080313309944235120061949094193196861691327140037651170235494148792194984737314420461112585628459994497348881390160911164327458413519838514559445312521376198457842377628403454591258793417329296289972243162149534066897155345677998982661813356507904409840926854729901387929802799269110189005848915622239368386837811884922540463286211622423185663110757288526811332468705859431370242284670527858485641881342300427635466419089009593846514952587095531799482958871414435942600591976095167093500464141784083006306618481158819939949598359500752588704395171108715244643724318437142948250198730882404073299215962887665082156640245198170574169455124031799170725726446716445584876931840324661193419797166772146470079757372092939368196626552482541875237920548228831552253803668624059352158216588958948203058087950764375759838925547031288233390747576132318420660047427437028382006408453136772025276513597432316251528591157944464067738266405795864661604900161950733730377109678911288686723194758163046939302211624120298373442391722750693212455581722807598292784812180425453929641685145202329098891083783954750310124985727110421530991380562604895213010973760800481542833847737280457890847068463724547830799914004637548929056123972449779748192186651114299135717237467323262293020322316593891829369022409911083909777766000062067826309180673639521512586021169886033797855745738212347299198806123808442549166646310088467940810095883384255170176731134057804853315139188436108750972256411382807092248080162961463953113268222711276045512193893583875102397585845406759098978658472090557187185153144437211992334166369417927608386324535063613393911624727215378796021981725420290141011975365091548015176504604943044717132151870012575489474711659797185240521938959800043013563199097755682741022043396086627853040894507752279926880927867957171398127419228687240608457087572516058968908248024257384663742647443235821231262243656156518795443625081997405845498486860377786667796138673964085709974667188631697384969154420553162047052920637817640155404854504839666248103502340152480220661202974551216902261828217035629624981275976740878862008726378506130162702403798752674497015096735482828483290420743421882251147157345158387718282551166697773317325997456909515391222949297818105298992627982521004800778750334488983670780323123012949143248051741443120935829461114804650204364283123264602958589810179432674408062316101265398056378815102588928711791898874347213512096780078641020292382782754661446530871376158168418794941367441558466242548259410688597082595599645851648862264361485499045031157111303449995226022353792481124675806889206273201276419657662631235733367482843492989839790115770453513914128798098642848008353975155515739761270617872838170661099291614142806269970940811270823563187281321036279172903197700997995533815509248607096669483991890034261876394640589750662255925062293601245001460928830267750120962929607315501513748054503298633843197804028287233415794629250071484917484275584805003528520282157132514689847398659149864314594748489997769971426046799561299883269694720088165415776128400088630646978149056818052734408617102482495798975564814483076753905445553209837391984658963361345684905581812217790659000720754917205334311798351374440792786642560935863886259750176872542881251614296809873281204884453885444101992882457351438882898750602492926263490497109735652965524977877889740444517142908157165467047349634106961383788783696086105702660266407099783165420818505695391871975616680286111304641110922983994265288567572694519839979448912252563511381586080918695302825138070053874768295887666379954425114765156828321574518925737803984558644966034565793853061242484376531139025437702543302792468192927143681533180088077229463350257729281775550107568084884937165303168476710903771635235071867961807915404360279067650314244268956806499162740980117112170433723463216195528655186942832713090350443994527626361967767850430361734076842868138196642070925323004278657677935515493711002761965512114814595992080947574423331672009691994106064715431408438169624326084595057256123085442925492731611825407107146840224888581578302573294913415117187166845536776075097043163455540032504045196555175433860428074160460041883599493599651278391194789920074203139464901217565599836327156201955630257085920158803337259473519048667100053980858921485788587020611074317930387789633564220910884277759230280536658366116617932605510932171143988603402927877387008515754667301730363742407075558861557207504693092848371973230129070725690760658237092945604741745663676346623385033604184263807936882317307803584162664617776038771989857728453373706001560504791781568998521240096561080733745532672238547816778590909888592706751641669817525140939085884678502435967495125210108929956232978407650434171610737202981885471807138492303522258298062717605309035705328799958784213274382121490729850334218692575311238002601472829879151622403145973948168160993303233835562830195981401616876805225076667036070326474297704064331419129394182604059134876072901505539854818737080408511710188135152796356252140816670704346106498902455782230261401709619663296326285235817449558523457960006604062702615579989804000631187053756861831980306233910483640535039303085301888220804977448278049122261258982751689505603629989212778140358517637000373117563704333902375628338088222259240967179636728033945175300558867775215164127414618247028003862264185740524541466756486674976131845460652125328339088129985973451463363517424086263638576889385637011024572778416279438537864160648330719792993681532864202578348876118185485820575385952577682754413246819944773644927095921151968974492151105445338922353817437955125897862132171793517414519893255411073891751236158461854308522331672819729141868911270031525026838015815743875570459959674572086194025765073328453557214855383542627864410782773525953247926867928468413288257076958918842492925564582744549678325143001176132580679659060682625171036228853779187855639398586962766003470637891791737558799458750215971472434207007413794419729696804539095329195495137436637298629803591882105155127128451597567313706761344295025824470345719940702877964402772304384004267806346202516977231168012118858649718903731141290630202037682294413335957027271589228338246415687378526532416799896838661838394182069429266600435140751517625972027005197020825336309531752367276683625094445272630479832069547019370502662766661993809190175395782898597440009409563764132963879338206409317858386964373504310696276904840730208511842351329145899875905329609873929022824613520466894513109594939025260538562788453660342526309813846893691958199716056878306761803973399842281979653667448807198891461152533171734419066949978818099790777346809698594731411250773606643149983404537225094889768441742066936514124691165311994768152151372474157523728105747052191093596743476568722213060631909705147838657306636750648203242303057430576979050769170033340040541684630652126568568018366272511021169328866708681737527710825606787873126686494080960733679122081228121257399736493038551585846313900896158914279254063865151788734299495725778165629492484514192221561967216431367879557305594818845258934485448419830410385767503775897203207180427702146788439555696452120424649610214682602627195968818651808351861857087351978301705563262707626300946996012563329989634113255112531846965126050487725837814060418262648183647431151724940806829404042518625061316983339728673360237242929444945252102061067155649025437691095569805463760364242289271287492874830104194263729371365539614385932783142059826074308064564039230305187635090643562845311067905425850751418488818647225819216632474145364583438485042258959410301448390975738162110277545076037607841164215137186590932049937989455979098514349158835672711964233197731814664777288897566316000225309559993628313329610613394334612586901487739760376716814455983738544306954676121786478016784820768502355607265745306313687759838073541913308798817222853578645556626545346093990012039417020417631658975934245132917207756142308806138610349309395607339758044142100030638635232524230559572898432171178011204274322778101906921796187494111245805672812956662248166980057490675958365580167758897480541859105806738731295520140142326392580931119096664589228631441271569799425590638736361422648614140153784083423894049387470499894716432541946733011267532863631342511153322236674226212390961598017496313915716496439408704306341845473689156887158102793925787811554289832572514599848350244615972429233756183476044621308597362710367414170568442449040901117228570020972449612940902826409633160474798069332216457600990800897447935752089894805477105026127761408336580642804255297684863407125802847700058545605233757949287736432391863233351336380837463526023660181533974039006341567948598182231646582905740149204617642304922605920693394280848807009167314388444685695754238189199984312614843636440680859963348079676147331404677164055722107336301376069876937056831771784490171100215071778017150900430092212984088353536224392388456161176737124136263105551247491027365080897458222645472106583787454143115487222370795673547490410037425223120333529989587927292071011419644286708614847476188011090507561987995391160036886469538224397360595304399946074751811191366020896780849944421189232766986380801826463396511923060328657457617306466607791059506323866262821883265154693980464264432635816506680276528362549426365220226379441811094962194812156163816977937516019888120168022419497274610533113231846476130844834701842735796319118012099467418737155643469448844225940222232005600505542973016794170043823745124506478971653948281258590162819556951920230006658761530307352006690919637791883791142387857351018299384996207794936352916115689892438240693888703894498331076607870699042898221625313548316393457157346368534968477800242102087216127445220203307161686362377066418666591890667172403201867577731116047305538024167262086578122007650172995953618270213075412040646526902514565638057532110044181230472601152185708317132225809136400844615156247948003195160447994969576737026634749346436731490676664229564308127898262293307641002593693409949243791269944445485939250544455535623766923848470878536484862015728695556500029590866851031360060525706158117896113263614784634329988065972823023357259925657762851084618676430218481541177839341310103369078230417649802719275867715295136211396925185708447906224523755689800904987036431590828156496189143037413670092368441967549954888789439269102274659049340245765680948070655961091478351940447136862926963568812811135574485885343225808503900775146266634584950525965143948349695493358997075553143819409496963469961819329076408625854927066780106694286256649058623808609356877783976312327060006164430296944365675520194904972453939583678125211145311833925085515625125659826408945284386125712349111325113987712001129453967170050144905851824588717222050253652443809374002272008506488770926729268644875736793455714156544222533630890073360216430703093179746679387803916725194510694500640941903630244858160400068209876326191296843694811556337621145458526012623484368734806268576490079054226543639633769495418099416608695896104948251548528185075797470124297515661225772340645759431463918240022182583094599215346365419055624013972178723026906684242942980043997528685093144977789921424095124143301935977515325992593303762784995450089230127466301061382704938506076889661558063121876412253492724522990769204015322665833198323541369861297850162940190853541201459083843787370756618790441495451839342468525036009199765661984888498217530950107449481753119798967467626184068082218808288727486547343207770624614361005804009854478383505519876407586279720742551370596499480572713239509163960993205347313843722244475921188288013704264891275233532457959500732368679498153668614824387401201331186210080894472987355880500981550179257139747568581329469455176739083586684373331749027738054801714830831116715020054285047340976700092332725338234943144296870228238362662329737963893153897727080795999937760057279713202369097118982512618387104622233006207417405717155858555966532874882403083611063831999194845363209915344628071110778415255532534685004773186445413097838046016881657346681473253171345163780653669990856594082006427946879077928320695059917186439249681872579663548064902424163756013168078978061710759834631132681576637608888158188619316926738033023366555483853485089044782949955040984888362943666324637337814513604911573145301362152968728265496791566689581865620824930404460297810686282557200998871055981276971133094114013981266884415734036980004088157887418729429034764914223891431982166278508198726353731512077542719599007010920891407128652212872443611658033937759991588949148376602641067968345297147313209409082189329212261847935782074669708442383461971591134495755844684608103230992608265526292709218481030227919584851690479126388574978371742657610644990218345379627395367470889354378619644451388885235351498144117840036715617437913866669174440279793579023358151679549883027519540264643124861687339456518497139405300017836915403884778077147392648445003607899323080514612631011090126820873327692045880050400682356978757451275394403772333882671451826851820863675912988604979415367025347197270415242561396224207650828795131045690376449274456005470141307669148957929879681708126260388400699129866099362726011724596697769582871349763216926594699039296184561993048868925610337957835689353360912559938797103976469995436054126015545079227429596773961425553049137648789200775639220682846778082218542579363393762974705480266950772942728863136349592304201824968570384162436189738905007188247492740652428535235168673870543880510140241398452340376163105280545860845381449864287905067448395395689741458549648241444649805271622594816386017280656411030613637723627258704401792992499196368640597223995739989050060700850418138285848941450454964704961929997295887572854619250625802824394158954672326019422676021202610628165269712755076820522504510246993621616575639084251339971652807596245435123177214312102739455475596300421693106382572238192146557195760010600852300517609567839124716797740746596580038535248275546410075871637481084956709456278106128938101364407951168147975260259173975889715039204746421735670361056223365579105629738955286782208953311739473839619452328736848304996992624600528494283653900040093371424013066700241941233276531650778782323157321441210320654063116749295998628730630024849534491254935633834495102459595629008473376967873978052106385091806843824371415231857268743478331975413506895308551448532820018610351516986450269741057002581331346835962226175506054785969063376988869069857695474681886972591326231915754983625095998186490522877519737774110834873229704892682535287041504228969596665809135890458485579675100516337056297652509311312188345010013907315293861966482728840471150016492064278718883239022945321411323779662417182711234644752623137733173896948107136218354272414130866942682867586818272329499890096649615972427272962448620681115760804147042706019773969900972844951789151037474046134018115741162949565747332848225683705820951150136265912619450164803452993559128404595038421224478635863443888722797666406464795605533512879612921776278029361611532737108706086986342566369389524640038907618747137738398172533033299383260896703162122842974779848142775609688388874050550930404019824267854465720551235657090267914785230046350421434885697459585685165652450406799863851751782188905003933511988871822292647057841207205044406768684458458276555890723522005959868906621502434698828020412390462763697789643473566856421159937383042145495915276720434980756620588073638511238821215547935087325769501393774347330956630190844108696076632706910895126279510561553415373104086244990733498943814238411725906194254879739331349603325587159193278929700822341673842940266185216662547973301929234299021649825888068193203021667692418742810323116643747140786193494009722546264352177432959468780798470267385316895613919616108280736110265562284273158404054047238668032370394564996208631227564422812188328453816762674868128567198303667878187350544100555172531452023122781256599807556878773025989812261128116766086790528298369406382064753797850214892666930771076826098306052052874282104352555218937763086226535937099171018397827960964808216496513075389956262623512188162414633993553745747621345987155661486871461130697071220142361142540979977197242585853873231786821332774473637810750729172043897953309489929470471288261101494132137980990530631556958297434372481878514170003972995324142028617561085287823195711770829609287696399657418859933787656497757219336741402180731458280704980930809673851804879350115093822473704402525990588743143107727148866664224172760757103417576389199171400553738750660168486974995431534677986115517176294985409602363555044722005368787011650608231942476158844437977764683699808419001078663611171261490618223410177126250482144034943451170567883857836870323499841292455839098757992937728401173135225977707462982548037907055175263293917903755563995482238392828232420129337173395219721537911892988754466860483589818368004696965114507197051990512392879515388553042741988686203710232000506183149237189857115474961013695797634951247016761107555301602139321512433799408673447343035644228661636676649000989529230923224382236457090941980152168169613203643412528808820360628367801851777909047928439188895886691193167330367164669824972965524908391908167946830335100608040393096094441954329842867427898018888944464215166798114085549134378456130159245115150254483848578796668487714371281980224683838138888025168846974166826272135700341489707976755932208957814163434330074005189243483093309165471867763805199209568251551179643039749092339017910640168556501426513245141582326113270394884154093027340548380439947893095943317048436886304347674978313120701202688709878911943820912256752557393017218514736967510430926906834355795716634276716678809767322830076701145354164754576411381995910026157539931739112139207380394013910299975903156610367845378246356562750706448794893454555773747073805506903870878076929891987204225737013459112461775298561867975508569032495946439063443762507071462556830718800196382130625403296648250377676013374040942210049066380693899711333658049064052298288949841599549182700715505344705671400939660162252473315685618231085847060739815548063072194739563194670768734245253498561070248631619989143154115024412055427493927963744630274906988218885072692572275552254971456466903563048786740807638993858756957414077762051871225428981460885576825225223370367329721380525785326202842011934239344852048421247166493896629191600251879481851718511995034609734405897419344323379138858181337688727201438919969356009591991085930079998695272742568635799485613442449790202787586777587105540936915273038026661396052321226009206521834683989148096946940745254173546758544599523404718938013185967635773256072285802864059872814524071693828763469564412511577223208648837574714522032450823428072872007746086901345523461865213345180944238996350410816817537826014037626938361208696886886826346829384691284118675718858527763370755975295364864897721454737662783697352885434709293564391199829247041235532315460848303954330078694905709477483454031566329575555459586073290597104993791435347275590762539813025118820521181199924796653797601396110733413238042425396985140243454002942144172459638344035787822368554043321685573885900972526054246219983728904677723590252374874288488490043167131157032560286953620861696255403683671915382563879089853663805508112574810692750799601844050434017631321378754901086926885261214337849342065073085212497753992077907264394668921418943299437622296324214023373097290914045666358298582714094848911279718488489541810772412618968209481984159746220558981397276174616865427485454312941068814418470193516082002164330914543312806965101530603755254310789730197422241983143095698535615626845053143411695183905395498095291332600273906359692588196456349554197433737260482449202076286116954994081984123095711784493159146695786151379552954442852708211947695036455004425619542492517509926691638642962140387303231451621118447422050573879370868812023052518519105725286320284534837514919295629785789029465696241363917368996534156463213203568888039583538237374553579381065247036630692361153952830541284492719450262632254184077996242710038750148893536700569678277384599439197963127726590669870073042860003388485466858029569218035535240889119315873918509942917079387421504212778946588324157703838151678411623681276306501627179696729922416159058955205751398258515029866342799237308558772320987282628210811742478167118226017829883456940116437594622617032175495228299064002247659267871416941596850373102937724403388001097535889999435404038133810205790015019423865807152248777119053410375319747443666929687540847087153672220745849120061413822763312975190408496644929083879917617955792264320845970127449503108409513288638375018755812428727721210379686283896270205447825933198307653246617240022622585727073104560761319993477646662482414278453802582925628246352851365152363524658307878060868343359793526963312116178170697621284563956582921589745902861671842749352031006377754676923351155611684791992406798252102752749938671947254486963427278468549856955020215012555736014351115114100794736776297763369521836907647788957487304569028630206227062672501156626896168102857105235976579055884062946273877297801746672295970264322905409254280794422039964021551196434317978680359685762011785630277125942824891598793268816208944667858765473427441586065262209946522229754422244920433808612937529122945438664643308817655266445733945949552241877306632684233263601197681632555149774575988907031913868620868489013297907738852668979546421557277565325331068405619662461309930522869986331334186591039976711992553794631326372964375482354946088077624237359120407089067687061547187398592909750509272871932122315096055277287765681403444115733309321680019970740861584419113927079469534583462686817671375809347134134168058953058931438378990829541747279426832266554982895495851106020172128489309776086293348245854192063043913640416312670929729674891923474511765225163784074168898694884665778520994358516886108163607284274884891818288274633234424034433054813412496244808558060662777482703011470875503214488907136485407248777048233066952128012524411490005265160727822820915960448477945078735183267722521283862201472993987517099078536621870693687099278211866761722901221551753384109161430247377622996571964526439569152262437863297961585228827863071194851817447625674623192675182197123725692601125122642804644629489286155242289371662588761607152866073573084186579058760687780225335203318220117631798643935521551297008546869885085800317846294496778545325903063920605233114605998180900310171974882587643524547106091418948949671113614331193924481612177267276552213281645002182677322152164619027056339663184585631334467969506573582487571204612546558841963193531696271805850139005422922004421245302778948434238834185157057762999667206121580629548287642920177019370540868086892831858128449314550204066413025131241031151923694233355942720400924988817044118931815736721764768782577502775223892195998060055839606702828866079707757195053941699377885012589388912366083350930808183249985630031505240151135037524431990733501389382810518854919817150897017379616075465121914288461022860014870341428115560880784279609674807003360210461107677164279024420054521635162250769245080849304479609330340246292036711414402362859679095805717782741863348062055008256975804910789375354989976813683055486288607865776647926547150791718115499530928794735873738423743516949367844411928311725979985150292740650659651065961142287743979202493912767743070371569682217458187155442917032382315970572499741274282026048042687751634281082793383582949954323610836559536244740094565144007970721050282542951073579392057506287252505786800180867463561523056862546985902347683131380511595659945792514233960968249420002513982062363241135563129916967411475464665695417517656559756516384411029372518291453239987050124620887676326183231396274260273156843320166602746556676254846046623428520720157716171441842469341838482565514818680360547669755420020925673281535699432786869881432490419244004434198820452811054887714824942886666812803318572082897780853291216843043253683848661933032032703326905590020937703138286001469401549031091701189987806732100152389030401090080362086255872690808925064685347723907419318347178076418324289107330185303929811791514817241622268350492831251918473749866301204184811214835963384155960083573300132501328351430697080079908421771859714781024006757928855319129416341514311941539841913606921821920621291657521349134381925968743820793726268253487826971470330931141953966815430749772465799148398241455792274280943038369876055739829429321252644915338953033230688994529514994268900060745709111679072304471316383086624046681244265726954849462779020575707561327827910753986782224566858657946818520868762314432370323363056636165922430035642032084932485976997535716036507809167241996158900819680184016023293446758523821510162294125472863264925050677527194409207039239790309591704130336767219479741853017348478247293175108492605883700747716929276773329095241572900597738892918452631405243505976860828080074968772371803431730987939906904564746650299802390513328920715732148172654721176313418419934636238273552778760146869435443801493185940861187851969892635105103249830988951647110461003633765990058327808220161226594568678785165427147007881513656850537334198963562538764864998206414152229128959510157638892945594713707506758177788519963294279862540443571311818165644338247373850882325999816096071646454513428728685631935275664492335526727496453385533377528973097527555952476442648738225393587975540649047708343948310636702845746974434008193006869809398966660745106622973722885416815760532097800396363675973966711266375986006308976759022665964227707951085323870883366048087424534896407216387559724752030875516545068378446940606322542635799125426998839799742145741930512962125812482615590696293626689234580649253928170518090890478456450943705583340166765630071873405100982135789096834100064836196294243702150806033930601627882626800197786760099078936541237537662578898509026806840023054947845509132889427742671980551020209518884845543457334634459864780675070589515287744526052400093280434561276048290342882060316157041111584631204495855956619644699876172969257583221471149643875478205124002186980423105515305031679578656935506349820698283154190450680976929429049959409747366926459713336629105100378946368964510528458663977682537324804278274299374069942820439430008416881955626227390641379530988318395253219795799057787391821970467813040308151603139566567543304624032496664443563710027071174777093987292001744274820253833655241348318011675295497025691864954395630241994830750019188570214140809142274554717217529359064081137665303878893597502252987953617938126317894385042854027785799077366458424649590157311126055024841358102215563283074252343912193491932413353275340978344331676457587702020749197280271497724783802974505042091112306259535494211327967059964315331608716192607057685259305525104030855164349972072931787881933565534244666064318460674164160716494131159464085384475246898830759279517756536274379713133743133656682017662546610882309793177238563631247359196960753251111068067099678026599240560224519036103862328140581585451732453074123802500337524167466364299883173761491667422853213549194239466408810717703790128368693878660958848262739940611107273099914593256117248372905206889555146287964946643242593854351370027688998344467954903711458669213475410791602665929210973740607934734895197858504170184494940157115407538494134918783178091672876520533926103641758349716079314081635021999240623326232480949102642424502402555072130743804090574702635148310146986610569534675165246804620338857542302084609664384367407753864117180971771598011624871409346814980976008804811397422015112808384020847204470752189767919831786285030833826059774453911563057782936590781870086461049712121400505372419047015705734205077092770473024836940163564881526749596161063052077205031866256702863243204741149302073183347726186539931221390751741556848486403398873486061671276781061953592053193765756199533115608741631182417693174224316335438839418844971938420406150513505514261307393028436053539129703707186339997668290278200322501083845619759132763923978229722172481401265620534208671800130959493288273159595064597965400648112673090868878221666071051042264158631815113524865437815554352731763409337796364497308812647035230043409981504857977290764323727573608993669492769941514069321798443431993923424102670481894685464517909614211797068277892253700955033145313025241020586729972152704102048878516711905662969797479472843153268914520049047977249958565598168343817549095436282069944712099740142764471086616687594945331302629470409608535915192349544222656275943360963238728709547442542048332361584395512091124385189830410947374744234872824718649347214396122485008699886739752039394953424271520109437649378527367580812623687142062824338094652161842236010324143702311647803084385613596998962245169498649301183827356458433961952769002379554085317850164176563508422659378960926944712359466809520366913350434209643249922927371248834614900903487362981684748394149458267869020592299758563506569091631265151772908419785191214416110435456708955207315771457389694576741611341198549310254977614179616207952645035656996040043654414665457221046422764637660373252026527034670820584797675291793282644568248943432966971479752051455588611859196539750664613376510692196565845658749769903470447671128536783639156304777861711366235658425971031200372463967319757987817412066648329610754503029631403177327605828338982894204195026136514687843379571874733324919997780028210832576931906565611666894145219376953030063217661977805405909699082228230777047089860572023144806457225917653540613668191897230336715390006794978643397986175462389924104063855680034663728026765841859503987154578286648594793510672677509721113279289899655417548160281520068776123872806326231014949586798499003470521640125973239973696675968943850564546321106323816786979216250421337769478798789940291934156498814023376785744455329834405861327418457465327145814273196592484890315290310915081638030918072540079335373465573341726457067125857767393373854571248308059801323261552324067379548755027436618191484913199755982422459516053076610254278202409896541768145354919039298322048001797076939348953622775942147424660275507625771589695792960390051967300404948827447517046069573682003929057479696360101045060253211899199553631389306800490106020076758801423990677611401382206021096994936857894934862156611839671381298561886486184340492959937959457075412556011495561235966793568701790802124991009060764819054042206290763990023210068594440485386069009796873823069935503224177194783177435228073467340332466451170753704087701889538264598465315842565944015168819763414854656578767791363532849716690798545197523589057295550346850599485410381026580605427659853804824078075911106088031100642862736944551563581475102499937607606309313153379032189305376978450502688126099484656192280680999359674730483189747601537018121510433650489773554970398747962491568778713596388465373981494970002532742467855649522060374075197315733406914110572981533548993746934833450461006975515560628231238487031827808531359982069523313951438363763855301966163800791435106044623865605644259939443805788137438435170923434212121199861711911812180170831374843058177244413726609359837250475143955742239860106182713136164844359716785857055846217823300396605269083236849505691582422281850466634404142523074178985489842592835614987315945338373400848706889733652010922602770845055825571558641614453095484858828086878890790833953911576645065737442077027963759150895692934494722543382236855932268400228295961958796586256036268648647622509670406460585351464342593494392947406617638384854308154423254467835035466111413137021904194228631634400887751951055166883809753152307565190561813648746809217431595362255974234592011453837561031150324236240281082931684167701032713775417614385600313792396381021342821969263023542252859008961860273788935959964332189610284351218656948533240004067742273770305574981862500514727972929816791907164544006161997651057187009833733314817753685645026833707491312166163466171638831771784162894645891685048835611032955840546377493216584643044484274709269052940230591091561849370469289131882780348736826426108717041190011106724394174530429436844783012553125841890282060583026166414650891282625895195347587371631393846489817052217275066077792557531982545999015976215754578872461318981684701468107405372244656177969744322479739954764948653108063328047064562330084706676091861499491005264370336978698383729891828429763768048736425103491701759068987985870885339549997460722264050615173899916848920512885663757027794811063945434038049461779068085857114684355617471291650029617291427410425613528616776084921880372164780428079371988727608850198677270348441895065021291838895691485752723761414287163647910649009441711667482099834594921644323387138367128066521342367906356454479392544920469930493525013621551246165117953293015326319006980890389782827733509184948659581166050498257250851312662994369184307305568408805078615114634506253387982146750818974954345745926105311695370117148786063699794418087277026315303435855898482240313466558846817969587824619144146630070267607631137112024779095304679243732311818247760410433064481128547421741860172512490495453190085564529577292374123741039682910737765638464338956229892847841835705988255718681695326212766882256695581684390679460901986592069811993655088995131962472628159791294279908329438941847367946597972002616749154656493849251982441541235653082337353387862524228474756164919497645916074613890831925720084407280113617162960933433051572629163751276157821014929258314219757927956388782530954692143614438454855346077664148004808443921462983603304436228411317446223964615858190183295666276943765376751417569253922958601098581237413318617315101843350153473606463505183229318671899500840599431302210917714748474580190151105931903919874877303992986496622358135203314001241235931637413592770278340151603398176571304395243131034932835350432706472080933903370222872156133318397738953624114092873448849743568327465019359741997736304277758530094112380995374918335944406547061206579424303672647407548563933931375384543474977388088741624736235261269644752976180310871845691500203066399443595652327651963917978368858400728973009692548757471209286034868962580946105647796362398114685079834356097936985630241227006143936350951273527315895531297577808068597126269147765540105314202963890297131852005990547711658512261333371277864844905145185158799413772428537827379247948821729900931807378482371751902063256917359208661193444842300564168940389059138628074003372586253694566885944073449980630682443211835057556358014136388781213903171729346526623419209848002181184337466814968855546524740338007162802928464751616742612694414336295186784893122289098265798384100478469104987657983760819670959321092239432414659615149331714751321753315214655331212822939293812243582060944674378047353546082131624004829097864400759956220076048028654251798810815394194331033958675141567147038454081523543322300992552494282253632129046418028755765823420196262484463101506190876497069093377624863301541140084166999809666763052311801036105673583290379462415004001244647641959940061551130750849094517463636531872536081451156348595272812672798101256618568401709015972035321739393526534472349858113311638684699552376691089999470151508346541252334954296538197397615061634555510040302179041292261238336747594952802055171838241183712995560129411970538400493482054939430243448561912453655035780340710682788864448275051991877836392251692350632949253819031181835657896924360505860108991375194414312584637134824583363427119636129433101037475252743199576346056796804391084691818824991507470093642272744736680595989136285498347069387332738409926834858080827267517141152782833304028534298130974252883632027360860112177981436999228612031107504434538426075393869560077456820604832422869462504541824708552720124312979341358431533273529253773040306285766460412678284446408959855849494765149149733119273471441662665520013269802705382374117025427595958732877484539545275551752701454341348876266214612269124089945689691625789363922608539383948952343432141969396859759444399628167701151528280696130362626045545552351105158537937781833370768846279633688248516275704829138777216915028431460526641475046754940109303969622113154189402126244938857034894789625117671633515586668495013361790267189838799682271271191934505229149109392900241467696098218574129842970949078475505956252828163996546377323873267879215150280764032993671582224014496271578322320184264923226421188304282896875558650814614458966259081158576127274346048509375107911834231995454393224012715476955036273037324439545945188726681583260528678049597838329135033218892932233517216515606403026726825153322421833734797410742813381966591439435911543704671663854376478702860305073023363434764406256974623502030178183642455992955767171735902956356393062530938385642000446263541162909391979179735715629721751052907307925892744935106535711043739654717676259129358007216894015037046478269625749498812048876705511688597490151656615278613374674310756051428699460310039435141843071832633123043443198707087364963437583063816793431594927623688617963511875102327859770469541968100871106467125321863324549496490437264429851728868248604593467067865150858086319622789223879860401077264277862837394951655666106029800675919067133765377215794971507499452062948680085060153919057625064121520176154475210528726657429286409966307920610110042276567298705408373103337976742678289191762962187858200949941526764490679757338864887883268248768466871976734399015308275362904563414524772943677738272649213890737112477478752798986261029539398367984748130334754276070337413478225384382448843681502168407101214342313652438946251434722193262726233381328858022178172774873923527242132961050246612619982883216206571946452283022071749278081997038046502365523052408375813143946000992941654973323031806534976235155948422239692022384313100818337932132499660182416895261163804603881737596905460715138626624539976310696900820758745900394429586055050943394491017783494004576309665072282185693143409937261576846849710121158494197253078339262361319359923267021965993273701758582436195581494557492242319793970356126696871245459080664206971767341093800485551861440482464378730776494874930489448759321428798269971605281487314880262175270546624162087414307680242582022580754356618723698360287708461320430910492238856016941131092740467575160568516616971007126780908332196115509715147238504290162113374288767360172271520439486177100963676473607539260728879463496378029034136237272280256880566948120401921826268345435938235596918714360419799344881191165254931548524434920109445835995427239330512011131881482253078143758378710562871178996750689758145476174582464352569665946304670644374253163096660286350993407849477767400072723063244427197926509804565081115034771816702548588918690172958013794834527222324681834907174182103218710342552153653853518039004785051353766366272704871066051459811750703161875306504597540517477913934141051613571726113482474884473260850402074015528138169003820090312941758218094499049398453607906369627890371298471496434077374538688666056878372447987109241732315354392402371351766291117752301814478857334111735508593818563024338603632286618927418231084245529753655510533757870353464883502422349669300421034389419740495625358424072899316464045042560080893736258229808806525045426652032929093500006601254158454187448871432612649693913288114716191508543864782657646063857506300486128134515885915399691308464406656870399613797581723919579523191296305517944609079795793834009274252010882195671379642930617235468681925469319697388895319486783209547912326301854702546233481775838189446696137300772501742719016561394901446316890106547884811157266857481352263772187288013715588858962209691817033546332726926259596757269696963430422189390337614861176569021966502487211863838835684702258068747713604539488850779197045510165420193969945251597524196013045664360597873468347306929573102422716518485937996883750008359638371693216304997177765466132159928025384931476855400979237760788373459240822965058792620435831540894195932275997696450499330428054714013618927153729963770407742315886863188341310295642935870144480100096906107633826668150575363890268966198757253132028105258744417163340030347340765173790791187203741481001883055170937241795014845765150341293507781118549805430514527627742792840553964730788812795548356606965801751088219629731560603663801356019904058299882118910149188588697645061455605021572232836851137277862193924342172758200477379965094180724324229475738677233987493598045269044746492277799976316232123038441989622038785205284147981906949549712942506670156427223341174520844950655789099801003990216811611422242224891629501555184589433674231776933890003747251062932702279625387617972926713566109250497129323608947771063745876196071989883454016364888689750476179020888120581389959058481099779407739770090862190731252822553349416442067153459357666511296791824092707867808090934626042476300688284566912919457918568529785732614791513229512584809209988154120487963442352657820835272107533923153866068974155080161693035728265922608450937106762379780544358860482580548863871368718741083969019320149506678608725880615775869907029965916545464311898851907378740369618887652061400553012770316352913545942290890243089173793261714490841336976047355515356279716020016140425675795481378708836117939453244994278237546163066543320588831433282365352312371318962806050260787749178118213614399263700720439346669594787246660201250117085590957277911953598438262011179733564603420000894991177196738898454666370174616611291850167920943172321323116186418869934992720136431660030128520203910515218067945653898750137861974514352269130890762987398660659076518815529580349463437538407165409465682237227305887784520770020819276024250183014517926859443273787634854028247621738435217767255106912184322466693272931383024599207960718681662675466717011480775650035204064618153868717179277820560306684180268560909316631131136409769080772875399669133450208117010887699407268882169425087060393100601836246894233286659495272643510617899355996774308453510288787673980614925774792975324511662860894628202670488372389249356027290502410866730572779366720065369221600481964272431217473860639196919985750544336522277044274211701966308337537547929532924073313970966912020464667304625968319749486611862874147165976474537470336006782186113099205664408926316904476005084222622201554819424781268676853573999782220974054501966688010048843489999071627435137773744705854420800716979423043365869090876559288292557235646268621033011388138324359906538446070465308156094668696415323547805785914631002247791574754381513743733236938282697514255421309279574439258382542320589336635279499085966590760012016374349989480624653290663380801217314972006914893819225749297200887696939984235544734764321554295355610498360162820840483225721617040960705794178038248669346834454796075131541650923274150755045842952298294234261362247313870818333786154783479741216059368145325505671590366640848405049432122521919067182625491698716989627226394412391999707988092799647948675961745017751850321997210698853226259079965269900560664606976520807536943251878700484903984894184593783647687312238247791918353803146068734853211657219777695632837452545248298634358753792221141136897116590785797147001547207961636716707344004764786519297945861579802954180666218099414059125673966414351589333056783259105104123039456972263403336008312416990398569140498450538354450946836064835066844217011815138572252279205168138417873421857588855483369675049881120761152835079502821948917638631421038107750582920544140930295584605878667470647111108988248250962990238446774800919199860589891431176154768111106287843108494840762010654940186478575367440961817585317500272431089781659115739235492406793937677009267986787515375767445189381624685931901120192314105927824348078522793449472037935161842711862191891279283007458086386399164835866306077602483319687863572392295103476258811033607754005214214771923302459534708124544389121165498257395839673869532830594431608341907173515523807325996149755681969504297390614011103848275425357409768497682769447972292696835320164817642030428838612611932867301257229704814940183994076480060610489903191317715866665846121097580922471802073353187601496388597884304123409815101690404887337518247648777990335597847605330378195106244458547529689675729454252583488871174630307348023259493750406651229026423794145792885583087730827848090500563544914408886448502550080208137024757593153607393932288524038155342269050335488710813662166542797180318913567129786005523323823569655202592941016699597128618618597480557576954480293263525595496758164508371500757873681787259663035670775834377905818744863756258872418017415188628341861025076267842549735536348562878326005521525664237462553488503034461411247241444171458335444589045074712589716676554257149934883533437665330410839189186441809087599999927720759657461640993051886480935200274702915318214375936136417109841251205807517521136650290201624602110228156269708560301376369304416062980943716025978413317361017411133218604591213339092619318704192548621092481682253769286140132867859182480531594155484365380053881700821287663393281767789546880210346321939524444362143910640099912722380504316121192445821886560963352211062913146868921444904049895593865305540767048201741957275610924016291736844702210613980006815881760041483418223826656466874030077255176174029707104922896902275272641132500049381994562450918059394004995296664950465315747952567017529683666620068629644640209767307036306264993439360665158605438909242330189397720977344769668810699843045695030765608560421083007099118687848979903083691794342295913520699762616282283132391846261568030931187257864097811142014070799659616085355341932349757582571010660723895117157064765074729747419095542838211956768120860851450860948201173252905495147096325010139895702401509030840223365041568346010102770810660651132379907508461281468042435346572318442869643860412051019159267237594937461028294287569429622923139287650429222753136062988987541863672446743778722509088693093815314868425209764497529910729642107390660100691317404411531645807237375085719867827896077879927110425845521018982830019294919299591549359394935897711820630730503684054010148806523350520663139098591831211315560218610994276284459769029571026055425233503517328537695659384401146433480273038815741082957729953086713178458886814443055296089443414025165568519659870205836369880318256522372172963561184603895068986780147741587996557852320826082312024498311761195874940829021641637116168842541857863937702788303449156396654650928028711715201033613619655061707240064399090868951352981285619689999603258733651950118716013840009184681518753051565056816876744538750390061695467265312283227597436891927935114670856587148896103045302201602888579400364231823916989200957558943645226545432362148891374878640285931548841970996492603686320760319587857427284326341145031172387013202012649857541729567151125375408462682218204612919440886789075234198682902925968603956885712673361698312489666773417610783534361618860500510358347813287729078707861742887261227993995989035491679370893466692094757321365450344669821696062126273276270594174206070018418695554621251580845285988853872712560252790944488681116006398691505110305105587256215366973019470291294183351061362537678614535853581782699499160071437126729570391893622894284792201448732063833406301670159827297144516952759888467120126331968378201740483233887191728963309750798689313580726155697497725988984234355669631526320351961840829896089189201550993531613089370191275452349418674395285575217211681994442941418454842044615938752459611838887513344245261118029300492124913128380737277730709710918018627892847137278638057410965483338082005257211743458826150753368082806540777981219543974073597006408374565943973526223200793225804350788205028152389233857173070170417486560620505793976246716134494287531161919156145153222494525254695407415820694941668818375626732478908910781185135967872266920330803028906172278419304501919844840098638384710213169120091313940757081378843963120250759060733514846168801613029210101296349956426477257622284694879401379969716848691814900515147294754955563590506883724718929347955952204871241187482395241622101320183797487434603472808795495887693223772335158154878014303065241431236434374492952690521962789336801029993403920157433665005252007822455716892512865649972248079021911679915850657700481102371750994699578432085234681701141391270086644947242996099104340015341647705043795566449696436176329299786439499682067842592946089025609174304259730774705666198846678121841448460269448083145380063181076461128951426029794986135043021476761788390252074941621342034104638592356027216686246788034607631855271404295368826992263408772448575024134056322655121584170436762728866339563792315573537480277827762366964571884356744426104481000056371551997429756098765860220829384622982224795418560540892452426330078954305961122266154270217994440342435970066023765617870061199550695388754911823312313237959989931960880873415268117257750095502741811347311290840224863838186499561695784898322489239026777020222626354324429180296292690334453325535651929930262277519012580762536328238256913695142126280481225620047126539297210943430881469759660791766964810584551525267899791005434717204275790545988931688968122449047161915479067019800625378114431211293458610726338351373838872095627045462795520813958403834484253142102964854533105190112742613993405025888759556103243899849294092419833014741310560383304282327740653041758851765922327427573553550427508879479314854747253484646871592568412151361891195737700854990863648955462822960601285235727717327852627919732782659210497282648568354665977340815332768421418430136634221668793011251538722740878484073846163140956217453361442373192040017048953887220448859892294773032127044384309943958035698361533777224648107813798343053822946895799827337002821911662705951237316554977580002849819413347112070828338120840412274025552366526588745797532627050883787509775478614068636333622322494067582823782631855515377817712959966864397439907920394658390614411628044658797588286593870458512222007227431234447975278701484262586140895259405995434096415696680429107876839894032378934206237059335139036830147036617706813046278618902506277760879410777076876023849160269828153947777394480916715233006486540705205609408407386886411528613474179174576556336053280148072330568060093686411868185778333289493450419616147381242563587938114920602115593700046337614407051850758286771094676608816026719887182498414262904480319930679787838134259729042396665659072018326497620254172580255677562768090146165192332874621995843306368872873777995226763531997646391865429455395557892553940978406021989644262246135551667932382543038979454295920962282232629992488683550751709498734369910393538781186629880678933571572622229641040404715707613283746980735454047384579197543309331880691294131240425367478435396772305267272773862161085435240122076563910952436791794180601997074278861582207558951671182715995755112268110438250535635824368957316652449659006400692608737979297465994241886218521044707414206846532116885126184218525324580456051609485908590820194525452920122334117042885458102925710623943769844886302233657149692543168907016128914332746625911480202435602482775369633985459199894893666845093832529364145278402256580516014299372161001601903525083776477131988718058828506954457021275637220430806013238065596104303002270435514412411518010244481436362731343090579663751679193601065663247779156738730749381371447510193894134930265958829286325677165714774116409509354546925379260804398028415252628322882583447064953456582234636863738747809556602830863432067357618256973921472731811051432113338315600474545669292194060392158872550125178017603206805467904532938358367435529804993465075980752821959218166598049436620056784859907999631501562619019175141292468086628098375871567879777372700905464201422558621698260817061577188454256165337590197072969896525405326434727652996934176312525699198539971133160665547912190120628301251938274541322288948052468729632799950168308662952351708582410207167144730833529602940571918719077183174955673221014924245740290311532392167740928332202391782400717931051670700181494704526897700019088234865644779949571891570814452072210956501644923812875469653657912981486976552472273872659001149963264877762817594447761351796859286051454725484745881911611662493906538084080140720118100809237150129940481151129759907289587496401923674512622034696808384523578554255448329631700104920663073095768415295672542476842049608589064895701868222715902739203008830768348271218836705545546573436111178933752085510344276624322640462033890832619902584052117598450302936397980023183368885485032741162699819476235493378617577379297219609853077345721096347091493420882272135247418124503395303837363709655288358209538991042628317122959850715223161580040004996204930968575414569105056805392099306859596115629137776222147171772224999900760726453652980294034979314496397206178984002400993876661642675561053002837914809126345969029173734730206091960127337581611673586959845493558098145923698954676193674915392720586986747202227243262651157267099597691664995739514942005639322428549583872786246995490590212698749474008977628423745820614311452449565888788979201300480495679453635005148213827213684418690947652552192208158939198221792465362446244594340867998931432907783861261460211833075407036847326537294244992605384039395610538212181987426774273337968653960475062028336058100638244797676910439134376907036698462425455419873569909573005412927369170327824115209830422882156404226828022173322350849491294648265512823877661875084231099220693654424633083513347455919025961641210810393216656448302380914559033265109067977091517207402363609530767100034325840458684839852674572822256649309379526773906916044490363297830322048484234617456916227129719904896760744930594371206297514795598967387746476802873485633399689891480207547023335588571359592647168053028809675400794041545229520284793805258821440810788895150310340435522801245583244006615251991586509835154973793197668763640297001310530353342740542894482680512506514788360364808533768191587281532738707897634741719114204229535069623013972525329579124109499322870591703848368261447993602025414305198924505455055189270151832698796304775982486615686511969487564024342286493599601936611809163967784445701704558975535205240223636781055254465575171650763100214410796595813585303794866794884221497240656596199501744584127618666900036162026711004158165466054005396374748895581057790162080449568967752306107928107998316536702252805922644619131934507435015503748791264550373809917794252479669085405156689712854801544613251428643256819124628759381250322342802252572579105414777996861677841108036291345820596271828247135316031419144068973292467193675404350590476158714950377638677085274648646446568728656088919901060634488251169462058477677463994825853064184065530480588037027894193536436143120317304077080183323309795075158026858851905873532976088067810018813934081113253707329402484931588280541514446604927784298646266837731914905468533192051004637115952212068375214735999119117791094833874397824376878819942374639890893098157922405651934187455345427461999325764905112801100139419729862877880120696724990197933994797922028149770186391856953461272106026061841714224254304443628746588371403616191072738495270400311431646144867372649094258964003536485376348010423416874378928509179149978171042757186800633009930376231059087509668427004779008403579948294628876731264105493759685011099138603478663555144377608624468582445256536286668075140944354129066550371563507774284097338214254830991975484396456218909843045345236753734494048170089961014693924208239220372671891286279572990014008690943759339325524118897482963245560982426669845018056767209199804152774757148432233930979776552145920125611967520821028051935798867023822375322171315533899015514292880478307901147435216755530839932069320981931246884650870443328314584641947677906741342958376611913017153041951855238100035483368354744320912372509777977702896763621528472267698327669809110199164959165456753334665795155671439444261654235590473852578675262928041530955140268097123055604001698994156045297792085131933445563398745675722684036139267286728592301894003972016059795904059228498144752764598639363864729479243832010300635883109262903388908708747036328218194506047819078965321393917893722418190317661466648258212609169147073315864172166476584609261383021201909607360258970653701631802607416751942725490425733908811613144472142176220094686090390739762372270186657294751888203612239633720964311954365863109294307549743626490813194770675695751606470568450193554447631313040392589577929924206199723587556416156177649873020530076312166574334827373241323344361427537038280810495958620280247838318718330241989243301010813241298268492934041062755941949186189518202531761762447711391687865466186193803135636395654461928317463603518552194792760872745114434832246888997633278280624168053350526182501907970503864212444674806896911042510579184443604914259150948996641396887295114145485325665875060715643901987417949080078401465302588962178194949644871613601614315503453291117029837520798425644974596946166449855241676221739841502345161101980228821727835390923635757178159150682304549964078942784230777668650019208272823836357959077371468764859503757586009891552105438934574297908556009125452851961816806843041261000289343476956253919256525526136607709593204247679901517026852641729398860458466180844559366903654346922913476381780868244755950167842338965502247087989155022126509306459691170769563462385982451092520755134140494712811700059666317651025015708205616164449991184243503665917943683313929439174807678377049730713049381624264235150458701912890950458314034148577391207231166783937650052021325242441841866080309965266823775555011851041761261743811218309115581744208322516954939234378611510918476498404839431011887425389243033766169364424795956384423625043824556595809497852748057004751012667172382389270231212879869830076320082252012489099404644332645939893803006565420570195377037513826669365295250293039290536438571154457974337448641718721476266759837741274273007476779872351149230453272897058785137223313883115192002298074375964445918140916848189512635013779821762477673162579092625325204869310250853265746337553499193933331591497430473805485429639629228068108642126833525260984166795058981025645741127330067130690115800279114250005658155413145725164633108927431256787132738780980386024051169560964701919039106484673837548417823839758958091775255131116446612011127120460496035536998083340775034375969747873406268985231252870978809978702618455308298495966356183967023365416901737119820166755979712812921525410234890519806021489626658797185165549996681385935470454170199837150276088384198064209585512753958764954208372638723116441077321664121592351572243326507997882743393868870626333749861706363733825100109967042333068736602047617351587774225335125098091397906083554770546903815104289995121044022727106063619784437584000694869369364252892614186612670661792645493276675361701198148127581827904403650354694011176171029985922136549375359682737082793680695138816250131271926705228618196588752351330617203851627514473509556438508815086124692473121672825974235118730544453475221223639805380639568015428213622698849697538568667383553004014725331124548333197393422132248179081095191237828211459046572986577297413526900247036906221360163549494724208042045881467425746398675709593883646224591097382169608014288413355723301275985905905608667407275929150618244396843618072362547500136897913263070857986382111594952874906541899773167477309618036657295128217864891814937267591951723837819977704003645122376711353106054490942353462524035641588459602079773639327404565321244774605826422711828028945311100760233188906436630340245649048080536687532608487288433424061745000027471016397450778100077263630255992903997333204181529641248303269020564472291043450461261537672250549583225509510962102202278195051363030300193440339417696260239868038521760850481573195163785970189286398405012420352505668928987260029689309705239267999789505641278339319192834017437532196344286126854111607988378997056151871152502448696655050135239821403391992772674832670619934800764038920099969744119871340253052040228290223264226678840371340577460430444363280175415051871480136563651585412689766508168707812910535733956503621649400370095635779056245662668158012749222782465371161206073968439226089441312127086492423520084377229999342759687266062761655688759951803037983460748059482847824982301321218714355585988633360373295349244435957661264668220026338659158856831415665972549024565900226926097555249882277431486542420567117779554421224945515119527383184759908868233639059006051703452250601974107186517562063459529237484216860500742335146664093374459597311367472942825379725205437993772126546187541395206049290754608125401003822503169965766615431661000499948980365456330780807110186075701126169528970270650143171601884564923960895431071570270875225410712457120569464828979159046318825722683177579173258477380121447999400787291830106572078852389845438514775531961838529456028232172870878916848498504971513887029269767440194583209399866932802685399637819957589092941180736892227151073846001988487854021841409668392528789890381989954478734634753363506957115378349691182394514083794065742420596696202345340970939143813117101262896098896234836969443122365134626945061205664692528990614558325892683639250530851588294167640059379159172481616161528022510510314897929142287984531358614994769124807534233220371186876822386946267016797103508025175900984919133175157149418474545047574575457995900097603618411951965113626601619543625930874044573339123721049395543787316043145697215199584887945983279913141074443871375180417835382179489089324120094497012431388130348863146718372437622942788736545064536739958828876860084737367855080284894271421181243777027662767352553308979412464211407999021222342096999046508322714784582221388693297299151412316877151706654721857179397642566009888719650875264285127946077835796232421929210429638738169788853239775440762009952266020236785032548244890232475111267594178310898064736454491020169938244951736680618600110998620757897328573827934478603000101646567719739406807206928648690734458295654198466424213843627098078438297585305198606243848545932336485764030867942216017016533923081664775341815982691823288204975591012338755477068690635009555677204359696604790267852647028564813861965350913443885146007008005564300005625134743546073530229538376298860080397295916941356625717524190195406253933066881053491779183405990028854340663708841899705829481323171879679302863203583780629792522406764233505190586196837469741576513718609315218824941697989702621996844074394408727742444443575808044579863308239281340974647178594552837544891903586943272892756745255292839081955052910129887311919096878732281024126734599403713555877006291061915221657771758507128949634844199180314467303936218088721847762123343524796602344425294935405877860475082114544268971237826870232724234345796121131641639941523588293324838383054801692315626478489433892323626048143594803233121667699529318373963380243558260143696446406491082213785696280391225205691136257566486122964142823875979978811097191185182986381470859312532116930106686146852056485337936725621061655331446517392432768454924488147877020564620689919307675031970988586522558496479862259918498158191490907787231437439377029961941664555824928989036431291044943834907745909720046810801926044084443624350774014322524514798294581821830505757757227535903590519164439637880154695549184580214946151240784547602474465994040757216894850940302767433291080322392237227993482160126630545459926921709690950775649766164804527978783682376060154611887871699230413157628454363925091635761203278133446594405550231600823950311572538826446126201284946541594292935312729050053107026128627546425915756181916957420615559253647657264509875306091398727691237512074106572571614698487566848723967945097063311479574876491752441914936409718018633905171642145051622229197575533442894603953510049469177376617120982969264073581994304047639075932895772736273013405932523179504944302343064514407306032995214148552937343514870886806192993361220432045182683360046085345856517884671904571649674193612859808171908892526284506641653226460141201861691367737749460794155220565109629641027724739126650049577654882652770157892851109790605343307559307958137274300211367371891487522388251771021661092046184770212101245607233455136671900297354651236746553958766593545794499158262709059410411710426268496267337256102276303546539107453955124436222029100388394245390451564743303250423278472320918492561930821218977053345142204000786559164525238909102395775197190456933971801427963867760765526021347428419922203265678411472444648323286115290761168465939563247892405127760594254267571256717478279921382658089290984024312205338244731903239790524355320400062859231019465781577445795665004238401875634748994979077820362010553637470961708606735100490901951177647701217031252593107518615529634261209518564586067491286593022135003927366462188173097778347169063738380742576859822175039916989027455887892464051001975429906700605242386645114888869040092331801570939167386251672232203914673752075368182431213895218196346724727941389741886167382376902779948349053629955098138677934042418866370785555590636755268406299455143425397461984225209730826803930683926220803525000805016916362640215539425481378110640213610482141973801899744282004866740881655731254587891767444697675210881154084185393343356081026448024054341714785176813237343519623976413183441008309172880551882083440730130644512479836042192239105511918886877239854963836124152397963650575399864817283088532257618156592613251174851855482679761666455350479167917706010910004734214792707970787223594180078024524650037776879862586437495941310082618791097269817872567070374179118663809766694529505187237520333571552743518303062811504770475430877927163064645641143630464517271607061099163706592647069054536416414356207701980640669727791071498756744842449233722070379960611098343342480632258962922893144664968496792541159322736925143656085814427772402785805181503126555300691454790221021048926544486667848613574220979432007302603408163853641665880215411272883214811594472714490649250920196594850912778865964851910521760548081696065937059310110261984348627949737908919325758159058149258902748943578431040009874203155621920333396601577776938441680350009293529613606967937848621642183629068075741688668678082490737308886262997136985689938554981909776703262249798900953890627448683107504604550832122217932387323361001248916638086875922803351193967972328049590360217208977522679095484723095813243268383340718144203692829596575475216985072755635090888130208218699123505001435354689862375164574221015493798995317724900905675557854238653326124518341133443489143392511923218422399669338134971967491120077919629781954721515175144004743258511386459496682671103631279289669971949992323981068321372747623612591813672417698347166282070191629174133224755356195415648910986679477582861385907868293376948591373526342843210082800720391172290262743211353100329598476430605441532853929320995047973599911931085374064573646812779978259898787053854908515368358878071325277007291524247940609476558351003709714764965078421035487346413115347946099171116722315375520538723249472768286749844712572977115181019236034869652954370122842208487341880368017243635881160633570602336053230463742627709733084932769005361619319699540464037262976102780047908243580671395305782094378091444598601903091468560338540013067339078971457399796244312974707617134362392980489381685077071553117989004358579584642124892206712604022912315316425424323993518998103561778884752494278541199515756200735178403209777383069844763661589586084066705330501902604833976426901290563018994764496925863979292867141901649135917513841002751291322556477217469655104771030692463632977496714444262532433073253751079792342522293199066080699982513839344620106185557845552993166038702036957662429652634571095094348196518715801237338280092320775356853091061089205509741550772346595000587786604648950576456375647749735860407538644368526220495495438842311505783790651800884725963421700228578235394712238374210963877234869623238463216070198751197569425333340629951347090895001718057200868392030834990175892319261141550259946888508162106501400432903394490125684240502192027661936593974266769296750804689205174516533020553944596556513719847298433060539150113505646851259341535282216424359903828287012485254126548957486407238397311396947340683382666210105767379368294704739880291282963145644106363984944668300650454371318786499358356880259226129391540411991793486168602942090216553750664130424241675139006964094501158358529977796568544291892244650231182174442696116992782734012672606955068473538015668724814147384817176933746248803022152830812747526048395488066471099479356658282680152255033329660660375785432203759749343380919216929681859904313515852956791681371329917833699019765661333778130578996786568981792797809903913085665012972611128674752556675137617157610812036305644103252944321648768023812876251651487783495163772982304876724832776690527111692508968476392029932119605880075370264362578389695494141647857229114001639619227124032237814424002388825107708751234501358427418470112577825964495036172730942042451798268912833450908704920067399407229145484477675412227151734571558290383513228962725260964057802039347122397342463240480965874777302014007498553933290926208779765782362410973067688248480341527104067256387272779078017988714236621135310431065478819778688121015185044063470829022271824843899372349209540419032999748408030560910546625709511849643770443567962637992579571164081863108238153930685816517099964603494008013715636534372120298225401849790293593441760750784422556098153002785444458237548463639688272549196444913478941850650688659623938076484815368764945481926232814818613649501822691484982769018710325072678516034081310598034884893569531527579263474622792619265033801360007882571972679448252745154410522470269266896306996032132292534352870302264042995642178368031667457122763210097427738998816837197255817968744101479771019331526626526930948098002442345737356617756613484594993553871158507485110213867695752311336366596103030118521558923232782784611513584047151268462500324836473996859761029056038518034349591875337073361895369793798350724929000830906842296949163399718632001359279953108553429787455534946180786173031341464804709274373223887866580279240682029226049638961080683014011905738198382786194414569199299586582483080855020682321116065961471993546702417164304564050450715129853667040343610040320596843928775806381903448143591014054727101474508524962633523509021064471967449860423464535105524054899483279022100565437726588151488830700295724484788638837833432856693542071379025303909315412505903396034993361108182988982872246535806286667788092875249260395243529100656199439737246234465367622314929015088778045990788234021013285305558926441788213139664243433904943096445085484546758947442621530739906895678056797026746875684606342337469685511200583683704857117250679114002665146980349939818536132900400088541107658726323389335227557533506436979378493863038084697526977178860646603430518515240900537180610559241862406846421808083756491334485891656582453426685009369821354387068398818857325230518394530782983468513073193346115357647582114038143550597134001809479783378401694336580047689709196100758552576442837177930390188457942257268010580586459256376870334337056908796051845505869452681902996494263587956211557731519390792675964639022367681235727550831720809981441824105076203430282504676076615579483400183366132343529902287520685326545291269823436651591896597630160538681176288303351426430330675690707330223798176565862144631604645630208334432824700848411017651943233046741746063535450008959831375323880793197756482654531233436055360395205821459812591036198754298056443110874048702544555562954006562613300592273966890733987650532346347878938405417090866999961455169229892864771161902446050424729401241831566177219771932667932155564656536762782713519575108570747439899893698281941133147608887363510778600912486796836560881312823939511764792164400701141096127221661120509012406703457781842916781160533875054446696335378266175932219020270222331911486348226292365847103830341960791642964315514478712814279885279599661938599146547987908774763610605462818297771035585842917992240320785595907466785872607277426280829428491219908016938201337875529195300891131192379495825024164623408095070764251486329762481949906841957543339812398455164691710350126851740992802437837629754371079258786770517876382656632231864254254437345137256447935416214388764933609869458104414531615650779310910295903505422489147893960331598346105929188250233686572952142695931226032085098200279904508018233189113546672490532986431084962463861039325632591538990308615837286978599774472822343749097911054833929988191117882455632030248784622224278106067853831551271073664394859807671886707467076056290130727164694029592577047129590500059183123220441837287848015600491946387043032757714197411322950129504981678649254126605266725915911075575069658814684841544985056524264470213981911127398048654446993545898953909792506750304320006114900972010311235297183708026577738955371859404872696132051965577557121151091316373391226301319781955993668511866280980862412380317879236542948013684894142749928385282641333262508798092707374878881648399628825733611934456328683951647202757665224928419657183511284687252998317853600826561668287935441085912738519996610987377527696628985498851150730553053726169245975251116305238172784719742864733399756255171645605938333738385295047708441254895743902286554252978896874405301079542434595347476733547465800364296306198063611743873226173290327572763054177776966462145003179707364606508449029485953631639910437553207373847653337885156908845922349475096917269961211866614473900010071979892555237941446339807781143409622033029254533558070005673449844169601789086619485771251760377347617968343104365931759179528952119536390966518494329012996651688594046521213478391960498847099081096342400903240818850932055782814528832552243856831745564491726978748508884209309735142609501917120587293303896604609369067986830933877170570719088455060693524900631664754790837651070978647979755587725950573345355334390779050290146196819251763259222236343786720672116716718244166917297013346173330390656303323239724625718050366129996404263015265348268154148738832939423637224882438200308215229728875050102781230907360941026733314569405589863599977230511204484224503155558438002243980919955107398395085191504298980498203407234762014515810181813021522808524204335817893186885630437978281123869753530594512688089880380694527676708264133479666124141721235353538779856730077870170554546095207561847595551407419281292830617526705830227130137048877049763308178663052898457896503522362431407748921479784579455443986254408632539455650401729428199970819962388127973383342801143267737171293948098504778261786828062139129639619223841395478806734235942907406374059138910433861962422194387517903915718856429367041810880857868219553581826983299784692222644097223996030633491694050595776874511956181760666313871360630194763667737688441639237208055677829721847920799078275762734317917572499419635206751897318306883071199834182686534464391551207835009461376114453854023015671118951377257445919213115383548318007635648868152221307148151064918054075011503065801104263872945286272388405065808206117380083585206865223956172777780391195030288173009035276667050211020655514304576711855289901996063383124269273198883552657632868157733794312211475993217291499658517960307591891641912215770346142530357348096929814899007410235331693722367437813047864081960504754921537415777982358864340024108338237433183427552140663477079283393463285910969204130550048301111866639198737691249159739241467612061580047657605257330062835498298496247424703067530478580127154441913172938118188081761140593944472055695283632812890978005588749278623116225960241687700097621378480970579791009513167298051376431435682676929092318228702115330403639045552159333321782655699354413611537221038641031956437746833862262805175238259291744249362374680299543574478201301254777244827083323664055968067136638681924238749933903531775460808556464542859481873473328703194682481128085671631051677657977097388551837541389341533023470002961407545986092814783592148810063559815816463374822589490169767913020521887178810412158426190452453314200232621987894026723690692704438241821169375816944852792775160733893874618332809079319710438673304017297451794591498128113414390471210091592765216414601710232231289387057718462182361016289254905243602612019712884031912471491310943868260754083903135814380381348208142011891679841262728206596619370698475512795204713657542840108164871581579791925986084720892235481936398760628274115797197533256501865215286675167317025496326684072220810931731815307261488413541425568280523900591431088791981497382855521715428321552254253758540396919450265213907325350055715967785159400491849883382828244377311560487818528588286696271665687842581613475778097102094124751891520821014419598447441840935382425688235317670820713569639825324850281129605735959096908087114488568885675112765826428005416007839395351758834488449710327972930015275325682070179314668901595740301040794391722576858699170549485226529264414286422530979341306504266024645017524609194707360563331910723373096972872613799105087448296571832749839725514548398863268427391006806288469960969961472678349746115285373273532672465781181159149213716294382482078006345595264939358767515377953943814550914492018055632091972043986895988052459192754129881253802108654757933255038102194185310948602318683254043082662136461828867821758007288734043624507766115929728151689911895952042156951285926527821380082910465239005796371093402828694641637584717479949589054673202656508085431063265606530543842897326174102452672248608889455839441832028121273074416687135275855995450083431686491720587163765049415172663483973100027908383321126937230496719596623950091402003219455923534493337838091967610426763572354304442254704587617644724831117297327324718548643117826025382333660192213221573598629162654501419981019966182012644581421630517070683782962345671128282738297635658362937813194734850966707682000218891680429995538826882805530557796722558843069723371997277552463705014734119052280875887320271518154037846589281323054943566134642356608961437442292904204263208763224250657452772558055116253799139932299517897410805181580877473154120164143868937755044878567143603031451800060370845955754972055849897490115102227395299106606675486141037944504550003062774249778213255123223838014213293848354016231805441717600462215225512533408886239807755296179917237688970863063896682491452051640247281283716409529197821125967894834338559752800318869326808277233348581802360992162172112697161281426802788441436595320270999947728788946357289894990978500111993302554348056662877640035134733370031647183168415397534073978447270988077016213605978014032014507978939598361564355896030138235811474856031778240697635540296147711803412057483963317393251842062872352654670367642334741255175810412085295505773899551064454465255233998256733460634357539192764150304300176495882176542187175845887220183151435944415930548290397777379106799492947846800541313648755377591492402884859624808136981035181573027683696113599069489652477733516229358021609779207225195329629799486336269735694903306305608768047796135981547674420392188652663863711883001557046418810222975218466794923177915237186403075770650107407006774349171132608149733110180116697664824566066593808618625100731769601646362426799251428922591496498298898945684592648169217449137675991746761855160610884611743197198447366510541368090946934369344215865802230378403576961567558380366839848789374870492135283142156288661201597872131954020740814018891134481083498496419748531934902715011894751543283596040260266675909845696822395681477486534331687747107577885020678932773694789522738246453570405084711102491405733542844381836506782569585809919762804302760782810666290215645911180276931465746733387533398776012662035097823352887550598420152360933293150826640357464543125558690649815579358159152120862655771904935905972267547285907924548091164434004948878919756959531436302615689692689121253721299850994457755781075727928223019711787933902595057860175562209480236562114229194934532314084786031068462051254379965651417281985175501999074748863125724030265759919800269654166599263469982151845767537035152668917152803166870601354527905520847500920850861406764307456721465590383401594988872996224598864329766266873295967934626931791449804263517903072349334711604348148071747652395195932823407554373608672938760745468133392173758921198740341978427978023004943063364337808408478339641740164559423274364524192147313549084568232810164867438029364526123464415246572975273258532844980578714876315852193271630395450981757905211066168397792479706741825396120279937690266284876559984433011977630712935435417548152934978753357151108409434827940365614014003402291542439363435706126628384976230731075851095199024341698497389449740341671206826572724814998462817650538357770929981221875676480633059718883466756044674403695762828129073109622382742244716198231747843691917930476399381129780125311422276425238316585082108401102618702148669640033650843136341713748388166103934892826701980568927894001570952603444670026761548285222090495383236063313842918594430717148133812560097431452513801617166868896604842345888658451619669114788701239167588290673744138919137586817528970778278876479466006366591497791470226302514451944082159135702690270206426154992250252337873849524395162220502094800367215822921316445385355408421401642872993683920983329965976579199380279786550056786565144987346068706914517772975290968956671227130266655000831052634331088786343479913844402856374936032782506686012877166704531176849723605651256298701265435435271122517852303803750346656576455907456983161064843739537934568429378021307636438979505321164442417066800780617452873418714537692839374895993193585535863860817066890370640435310153413956079598022672730308704960690818058614607076343478361509423397082965399726253942956102421438488229824970315806395147781124857275268478256228367693989694302154948802218281935915466899882780086401063295841749137544884851168493419887644418674424252485898450995178289293797605748392482729856545396068122650657193944175073875433657415987982164581589838794460158953574931945905769352785099997426864912693133581505690604232176883430662255608767156684392329191151597928123315149980820672923420604193934379360910472167479058439598093114501737965747746224103199170778371008704906869160226813309474496141469015549560295682858572875918083533829130372357767801541465524876179754392667154533991440050846413328602982282747597146399228000035480180702592848477822635784576446712158082101660156153497129620632176763367243942430791725830752049986791599203134245196650789796233631831166512674462137420433867854315893436223979767145046615893790031571431178850086846446166415717969162240243003948360401735724201481826291751011320278839964027458680279999668009914881667179255182629559688601426692678741643196440654995895160218110269503912300885705606887870691449777619445039169238267280593529601151171059428227984698369619960404585201052447692547884831929712117194102433576960723815711216704600762776871512490803806849204870628909494234521955423221557273616947949434278932721447218305136496837135443088424803702243506520621163642744659782566637524479802279910935677132929933903759941546457374796550570915523985536103938735477793641031506549154096120117585185467951984962572972424807879337449088165948887499201928033419608077000778856732536630876436210108616270204040252168664409250076996241199442561282369306561648513925571617041051411057609102025272940829091740466458012533478499715215275537440278903616691879004102964109703648787039647659267577386472598385987168803907749493855832650886488858273915351997244447836776474389759705989985685295934579749415198713843770802130873243967184144542386421948334289259564175505236435282982888408018560326967920428156544816137557689787078248780234664442561409986607855143036484297527190653001260989093186841109371857821277824745006971886852098740922676711144120792432173739893450157958785787989389985954311198199526080948928655533419172094883868846552251686942342017899181488047181569419698640217373329508324182959916354076983424928250913683775269613181219309003523333211029495797970681599012544723289690441881165202146876466822198934546615638803434838094090495601467005800968483759024635249624242263792396620693542662128347476203371354123201942070901717732325240159367446609357171789560185960101428706306247286404147900102065627369180095081091503169280101737291169663778499655120700616704830667705455716025762340761937831814719972388914792813402192293980389068210748880014814334944036716169942212747901809022667215286042043287164399218836761747094688454913015464123210586793850799770920977539683432038001912309365391248465238785534628142707568742569344898143646902602717922554735210340294394733146501683632236746609834894145874636167218088020098134181392200111377203546961445427634159125962497006922251021868010991853469734189010929833513601330391133824979371564533538058762946493768654601569780754468909142251404034190095458870284096453828538862348918043783413342777487276621816140805985356973885853052026426850543350899820570288289180440516969934349687662931104688235295879710271717350746620995397387480201342046232194536684886768636044928594927434581087804095726856287507205347419792990264136613113501272651033479821991169712706884295485181472767284410578173389604811402958646921546574380152859545952538629559096213336516781799057157942250601785166278479018486402918701682895572702072776296645516276224459159943512068340171141799877527473089128811827312838196473021065410843573546877885346519068507312706924635156463652870128713792118850691532120196768522155163757403854968770420108196764739779783657517721277679644703720704497820882627336931192397034387409009273301273363424707203579071491656625379292629196322559827632070353605569896204257641269470734971400592186539451298219157889168623825345389052764241573728950661526165785855573693455692652620995314337342775819318713386934728842302070417804865799473236727242975478930029493699048604353348128380232064037729951657963394869822546523995502049183546844933664507652273981803484116980433585091740287127234773551537747628594194539328546759227628684979159884427141711347018736079154302386135451693019457230794849332798287155465892454549370047521735940226233555485067567372365499342814267441459790068219505230397061474616836966181914080817316467605068023084358414361991118504935941197998505939778376109592101691304501533780046177297585796645840765973019657757803675658383855464497681863964682027776908358640362551604415676636885156971542423961485032376425860283188139897923621748296934354481519833622896954280612535460895044268542358565898802384913792435302595159766336442186815445347775821810173121673232232599800487378146469505129039603215317366651962752580091672546997920200345082013227511886864950637336509474934074838615644915817826058602940270778205886184134813940257270323561689269178789006608570674405136286825061689775151662238201326075964523637332408634155023243053001714305423153767380585992788452165425237239251621923729713327128339437921239760387590290662031847755038161829740043858219629654028981186402814297117467446464062117072030409857868072900695513163498492655759163966476707148394125026234486579544626083450461418487462621764752703306376981144703517875939893184317470275059858627804786873290064155396635343130931241561498328879919885210701413189583366941513471845833250611305540365111376469397970028974700755173013135054348412027984028765399088476890447790953164000409688199647984290573124535118758313916869395353504391951241918155171759534261648293586656546480822708179689694490927342730906348658781388598870903101443884617545331465006609814690053466258526214260646781392946833954247551756064594888227274892066913875327791333244297866430588168296399233767817779556289936425144787218444307268356255037066162185145958329635952102456268426034671995086654813883901873017276382076669068065218317614372569712753788848065551369165405191394613518848238090298704478832012491830133953153159014954984566399630895211446486255555096969590998541534055583552320592577801508976232536878393094193978289767532103511796213279947121125669928918399842713300731689092234235317287651668760152947369919133233946856823906981120628998757286480860977621690095196820517208158143801144732171717710913234526987536902621343295558502446453306012966055959198962432630325604549692860624728860639996398966191179536398670297411846947023601183771679031515654887925342393802135840336628335852141010764650541986681410714419894484782096396247691603426241955251447861663571591511994528816310296831222592810926863269660498770791977826110250827611580824104276565736028625591810355284383420266648574836426957683666803000680851678498445612413973533170721571878918639429592640073806513154947664156736307135668172831289058818581922707926854824282621367264688895263606299160143880992037878676972874656993376964174610282827976139531908260626231032494770565466833331203651256172804471752854993061034131898304436630070274848718205775359416521601372490190781381058079209664899891361820659441317424310359837635922066806079450593057961827756466470197914412673354456088994041931905087833787186815447601611248258785687522051233522558557407356131711409193543922425340216872831285346699817414301508737026796434669918187132477347131126355686436119596894348644925551419272722208324570581118485315131457409170825605456509660862144390044253921190964757694458296051915194179538718365977960672438260810997219045674300692281159060875105018004681237571845713503793521398354374028070677158078819403094503099290499700468456036471234338598506735735838788043476089891941848475801780117346097412634291224811758999162361473712164736840282103139026210795240170952814322315611427673939321763759436253817770927059502278529693956864616939402905567567480710340307196481850447442699901369786358182858570526824678598951077298973884468681578807164683297673157611968579473252438447735886010556696650284934456521900991378691343987102469512040264649560431835127360924519438098743505921237356947614132693359361471467418903281171797733847159842835456918627877181474702712060015981702248329769534747278906414794087183169559177943429613729094031809113143130027588349654810503711178931121893957692344765367217956210084645875360093671663005370631260397933994488281679041685817285819909375935204317222516828732075583289363649926147322456357143368080989756698282236723067014033459040645356703827070416947365279327895162878467675458713269748188247539870092615477721754523329020678426871882342533533789666457273670977034750673120820251845735211321578285902358945617762286344606027115726988154916444922843231183196938881364769578230398854641732371297651152689914185940636730797787037360282923713856682500558230829821223892358105999454491686016462099395453505880092117351515224097812986193828021035655459793205205618883045948467049894485349681957540728468682556916581171070337465657241483291791695403750465912382292679357889342259484490064859622743938337388668046896946567298877960746640915002767114324594156074405386605568819857583932674262262117947737965768359881200025636192586760880314493554882126454439305364782391082939101771119699283109147753646466293124862025140963926297596514121470134111971130710641900839831306359445579708799792152377253511835778045832573086200051324325929454285030669341220313539720755383326789860152994140276402526472341246181173921511501808528421038814089725557218690210309265599204373109798366325722870885280032221744295131752548617163182781874700937344133904577312929865055491823160505166599798694270859057475123735519289491069355161161919974831543119118713792915336432396154185234032533068600716323983588157061286051824548810944399708878149503787930272179960545020676367382985522941767218868091173572997660215566752930742045134616603971981149879901711796085448917789832257284156510117995891258315172815940100651305514109787533123079256810475924718113195683742889198178937412897162100484128008750627345261573186881608557024989977529381434898425834884650097630951337209384681762043782686523735904045874402661717701092442944417108222952745267202960945751427132402775345842594501044879316172969298364780629791800706119785615584397815466151470064114036351505402700532051859656965499611514219213269525951556782657406128619138422940029700085278133793122869995509445104301779654599306265159005638241633225301927307302060871970347771922182034066639619561899595929533525166254142842029184732480266635498216395903130849595890934272370022742990594256526927745861153871039451837324624937516193547901324818936363384664429585747834849989287439889357197728552917311860668110438356914235303514764041656477984050380883723386896801723049887209893280107072920383591819057190994017551239331936816447604497472053461133856491787863682050646484718034768290572477679128903537463427023680458147501000389624784239843794947702186787008873304296358062189727890632395484147823172269229459391934485268528592708690449336578649753319808130060898617392048407905795650825764581540815961998265492733913690999328304272365322937379302041474126435518430154235208573993775259951001788054292071570070968982927567254975425086684489572544882867203941756779302527068250877235125098660684846601037175897604614916037253404391494640934690415037939551832149630409683840451038438171860928608985768706713916282443064343529888213439724358425287004646749433786475767915816441586162210769165975327206046653816998047486091387243320303403091058067828699315511147201913193590490845409382665150374416668480395495328854971929863369056101482369258793899143852449495536376544248088044822168719857191294341733723764575262450893163802525027935288672917633351122225134830324466399710333853501752783376306592514022638109663366801436810513258016368365736033590538249657859847582299104422052415647563855318930443145117724302250333271797733869728303301881501046431928818027215762561069756058176142422144185883839558834972519085318346036188223779303716351543921873963417922102795347487574119533751751853071945877069162427765541488805440660970441772160423661190473406894788420981578519666505092805112375689720322370964829029736297398534127287001773891172336177699491612205604923847488630032106613096873687092362816779399892069916682114414247675405189178341141846755453746919820917800954646712109766995097016016206757236751422410742539661192389178927395683785466568185017382918291714902367692988222776983778741572102563299067837864219272452427699594739434895129088271458652092800246455333456222222537848200539884197630250560584647921500212519493555551899438178545598815574348955673195231298743615492929374424600708929662166092365306914739417433486319498915849681905753660184267418199694064036966659060925895149060416225576381110627326979197766526880739489100121833873653189453682370312254928192609744481227976525908675458125518645533227356385809467178327852741709183988826775267211466143724628872559307094405213770603043950769816933383222274128670149321445224666315910127145207635274478410760832356954355349154071848854620862225318148806252942228639096171807829377512487823315480136483967026081056198435624759031747126657840002879572479864713705848301375233416047874052219291753084548463597110829788719189294985535267569485697908528413349537897766508144714097990867931859880845257352922606448762348692959845086064975373215802771291365885793309613882590397557846624247381284445508621769413784705544659005969586606554338535570131000370541122094440911915195782866065120591338208684445830813650258196809484043463031538047789146974387402785776812748716702620806105887361238673369118624206882270801218725846352385295023717993077107632699666757253686897138167600093746436486992530283506646461221150192060455950866535891699520567654915838216376835619540072033274483832851274858240778362573559927479059496706191228127561162535390468868361563722443223813625720091845712424736044365187583398013499389778956934283343917686848112636979637983109691038420230521431945566313421247792190217086781496544848445326984669808629340048753104324054910038274511556451693401886709473776684810641743683756345211542264210603715026424753413619357245906609600767809387893902708922048204615070735613817810624176680298491457186252242080424177791991831646017853970550431096569787954430542447086045099098726057285815303746479737029473926437732404715310360678689622447627320770092103280329275006813119478473265992000169708171573720914361988094428731869651801996358426771989975047757667151175637124473224788885413756496830265723571024340751309111273097415445603686884241748641374600688693729392130648172265585590112357539231244311505036252308125811869376552830571684666287661110180180206385957348566599723677051853219656230061871250207565858694514174113780083311265238126115204710299913385568332705236381217785620679170313042891887000881071656990309799635862757983366230023961456229909908494874499336672693107551008307775818492229765043840090075239472242642824058678094221167457034956326271594704528721890375967069329422809398034305371970157318438424258335777591739603807608746149467553793714997854992362724800017179370715341237754595029968999630699061152329349590327146775796630090868057406375693025808981777392341034113584561718711165703235273015929627321834472701872974667885465651220610271832530633601405114096151971096696610972551574009906964124714373015519801594498844509736540578815052458222967217105140995069749138836720864191104343182941689959319492675984249365573744405716090631166925266652672222889659470103543526381947170189141965157785340345428662118871156158552686421974038943772165935583282988165431739992085290861056298198864117330060039053949415700996817411992097355732450075759801429774166973518060696474363452546424049767991690389949893365558299448756775486778212968430365576287712563292209560786457752806182933880028408393684743832840789290261739947934979181902835701291393141241836380422464872852438575584872654292150996306120510270214927856782363852533390026460015339133201853449491316706590964407306768983831006486268252926674030741415163582544073259258697571780989268617433522733047003282998288383408060010666665833224967830264505471559258224021356476465389714760437031883974616971255287392929637322332612153452193286539896231179560041394005870730370329037793444182557849650570437524801973026622269137833892223172147367784847084259085175745374159064884644574418245859030272271680025687056927137125935885896870316003965641558086354959610046904720595753935422001630063643902240444624260708820925990544360548107760695715557250701404754079535031326414955164540945734745012160450277047931429579858150979446666802980185126524451048458745911908772015508353812423668372540486731027075651534239560070458964704092013829005249378749936258175375846587687952597521547588432004016589640055937793743120877474472546434103366205595711908232040421236992704048423861178633455013512543552365938440784508908561623497222399997809284922583315230500461474687501441396290337809195929746432140136837372030688103157069700825108498833432866319910688065767778577008992058697488911590065161779321433857829241909134062793449480578239324059643346015754676221299891479570052894515940203475128351298403965498697695430164034118498541537585379131739850343152939026554305481971516751515127226323250745940252291452794427691564533469945548508181313751492444742544060226353877719371843311086822256907414813012022675332475725425283041408519053961856860867102096242631602240929817418211229869819783605237007231972745448175017835021617384226788665191269684173930839051854969542033030062220503510531241309012813705833347234597948761362874444558105743438925884813662936684115073844184494558479639330286280521421183536325113062412984274864043213963416785436874689763336656311557653372327998026724171929446623631350461569129030533858749243801054125561893718818190554107493362477553198589449282803695028172440942238627101767359673715357593433664200089937868169687395512037722718882947164187944439973970662302130502952602378931680053032406871724346497196218263789233317578603305197922351414804889900570457137971227911083392637650444853228431939124705262137735386272037420105052329765527616465137342938855744456617248511326973495371094713761907785963412501961372370361077176581627835546998495110162470593776645628482802488399925270951223396112968745974145242745669259497881137599170319055086557063229920042176131569172031934668628599790547723754622934242091108224680530106001798045493061680458580665852568958137560694616398994581472441110221184700729058765891167853733095544350208829489534378962168776812559313251213962344039001067234118848464398106191452586594246237616020403333555019833672037215021993621972840937119762411165216525320417967966796752370624150677409000724971481680537138713092448380481248170002342719810416277911385595673243453041915316944997693245253197014649053127162463890485180260654810463976696662818477056926790273082224580978529287669519892290761906648720230248183057570429743407675299949014156495129062692407528134343731177525489891437521871167638499191971173373673410519176350460110367394435183505293273022752430975432010405860624209806022994059325217640552443000793055782072009131976747025965500512624236081056242306896493962334152042528660740084525705745711720988657890821378678801988854363887385702238631851534047092142077014335671000943543759531093889621717044462086917617620711912690410312170048554519258755012890337443117253129410895834887327476699219592091171266243137167366058415630907705618225380617101501807218193692658324017169593373274066137258057265359271771694940737157454286550534254832272310672841582576721864415332139002595941946614962840702500113541932419956333055208377891790427170491218280883809695358039498084930267168387330361374179246324947477442828561076489301441027985754113882422493599052088723950490187958895062013187283535193425828664566019392187772632635310575709636263401741293922745439795619410826955809536450954982917523603591621813977532752861266898291333274453915497189634227689618890395432761046162309283536226729748108946989937093830654338596406897182231526116455715699918364465044212777630772888312526053779594122638590158901808522500249564092841076062614846900240701963007752665310113574705580521164155860211582001002650322921389632414611683453327504230130761427350502034856082735400500114206137962657705941726962329660823645044864058889441434598774322294745500283874910577383633367134655285451544717088722303475991296543409766133526018110986320032730329165821001922121783870884338576015098147269117489526355578705223439016530414940380334030629212004231644226008087491128829728618711418431555990433352255687476512152756849249748162759642631493708515676026364363434280270474542867616090860187281402177572335619899487752852465836396332945446600419903224383036787219060142781696687048167497131705680454062638111003788124436073634952720499454763906564731339014619738394572490468356845356622510294794461483567290653709306850864335366495806283091857688104632736135138399859145251358588986184507784719273857176400160922664748694731597540527659632616464140724047973515710483078192117340729769780477699950688979400414580858212990993077165467332073310423651879653064468495518071802872509820065260067759917838417208221159951803593256614364526533526628670946513768346646342599131821118245570901047834500800099793279872781706866378571266114191467360570501551192417566768321811154535887196389907604583528327115784698991901461192279215906680250065298737800716516813595215900112290939585834216293147393490975743721749253526954070456027199001816397592176476292845848847079421946164823999662995831057099846441984407392260664488594326957835717754818806699693577417049865070751118620061572870748498411204912325345884542543595468956884974490438272961554093398808427477974126777710768659090072211087531149284515611600383596345201646115096084256337544654738162224989917413469506809038483544185065026125108957859662362359605716814435097903081872962813252208848701124726471266218491044729485974894080650732408864075647846910608564265515837246579522420400459852228651310466986764825343239042952534897463866335100563603379104848138531742983213262787507043623410943756790684044722171284781889321126286184289593336191624357685275369178033334957711354539494607364973228510569731355637856686085001151889898236734925275711097728364633661923884775996754076885218724362849899769110117146001058785182165832140923323343682132232616629947954396493874028729016340031692766662036528602539663793249241391715562782251146924782488252638470455183440456874790864994714098151605888989186706480228479503013408694062927387263336941766058868863144898572403140496445971176373991025096561725526737891213234800988388848494454027775324544140057688777466642418301208677746597160243983679828716486311300427371686593029602373130560569171788194457290610579915732579946332829823896593035232048829459236803954918519034891692672425257528934598057864832162947422029439571410276285832777246021092022816777895507310026700306864940329339206196414628009307945982033420539819852565047790985809876880479090956056680233208832728650927350049294646022897530845545839185732577840366137604258858585795338602063704547502647266032010027900340281298974866025668538467731760251888910507226305223978113780354575495015970641949832924643665862349650204190563011905324511991651139347813331593379033685829350761594564170921009894885704863983726241638822612168270477929299640013101169644333669303146523501276425917801773570790179573073532999720983393441469572799441938445821964255874442184371819224771224272465475323362759395696955686095020373256800754441771396527516277211333786744169849437732882193964909723293548486029373964788643942911975413077387689378893576280916906539849203017624020514163437425986224136551086629170951587545551178690439083393026796375716279163784178355205022277349963611385376736703003979223490123635725277183156294040573076177757115734221434657535908252506512493989704088863835220080371933995303567033882274741742538659440010540941218307219141490742701772891995291282538363078850273806784535347519223845395417527185719720764167330011934320389557738941745330050040335078188875699547753235283971133598842036513037576127300850085287774847572029674425075093147299013499981566587914878091595029580417198600260732874847555917295589185689623059716242611848981562447619105756533509130097014646721996762792310515976025917485133960460673005326946233672155832715790784166198240462673773901212962581717970332589417574134720428679291823422422652669650308630934399256512419918576346433430286240161837331042714178238221988570298754974602932406744793191037659915768736137587086039061803907413746632892716019607940710627107131575657036315468040950627759190903989597802585866882706783929078823314979230416085062050348344407764928285728730505299504963686432448623879639369583769926289090557844379478380678134846773205941260320931912104629859102529669946117036428732332637011909482466305245187546596079969999952360016625804582544394138580545110806769841585080617714961605645492264320356275352737049764944437029783535773261212205820493232925578145316496800402589622803578610700175161353473436363840305121756541813503073055337344146130969141897192972868953676452294634858106935548582090876153379581450101303487231765427477076397428015755686773879661505730334753647906194700159872934762375272734432007238105697481179287709582996674105372221812492374464066254196120318526117350874161101804895827616478581523054350515047023923653797726154163668652042223785135628793586414263871759997913049485634396752405085644676606091660127050396341150799394060913853775643492317760529786635848021088838063760983249417961599222760696776534285373091684512917487290539196429099616549819393748727433930036813532870240799751111879088641304415051745523731101963805599327788306649936306962985429620084200826894890064442051018423854864733992421646969242065724969257203712843553609213552296759515737690296857205223252242006380097346788692142180211490851560881496447355409575179032979836282464120532405189290798820692649034503788585557414519659395351346764340968805359461459968474137101482081449473866222850186371114408416422654917531720228308388563567831391446572175023261420242517177241950805970809821297576475717771968203881008668265809276531394252350599964067816265042881187285711943007035429808829525188830275104907542412185392396633054076662872389563575094620461260198605786447254902379866094532072100054139577434308747972121440089076978010332976449983126838083139401148036842226149187500671941586864429032473301869660638083463685371352200044006871156947850583263351607735853652380143313797791113925304795124985779433033699439914410603524122578092320453065219500524373463425255179958068736525237291751597104736398360265431642466195210134480179399112950197451314210542000539324281330439841851393270164805725898175982028738034760488422444788560986949958695144976406777474957135506527352340991826823422693339410094102424324839444572909180293194343451045678619853003957659969858674222129981578280030705865793556130938164984454644403539954489862410269039870051197372532084151679975959233200557245918177669907497326489377569179569703730312074079062918115726732487656590619450279973362268232038103893594515481542776473514000863938125681823084302323786359262368995470057090776993087806580175666940461413744097409858454225080985261312015342201013896791397881026764559125904692026328180152271551555639961512432700236118114280503554792314188354826764173126861937313469409882154466171247544372620781775803473463654000031913429810746094508518541167129208203830286713392568568772395026471398872540517228622692819786943693827944307906758623668970906441442542148155856926265956609584602064785505389010524862013130410876858004108422313221669286102756598476566204843704999511327483238791555734480280486998255610657029104891940900857380823700193803327170833465441838273404271911088912112708097857126617892889008433397444769552315078686245158549983508111918266333644168222703608590660526126122731743876616812316338378590463590921821905371711928568559008750538675973102738428225137670810394123522822415689838994538520358685052085937143691588189990278214059360010555791993606325742169090350843449190329326780129958701276102571987183511077322754923305839512496719397444135113808699791441411656506851796089837113813579779640119857036715347200405303513036667558581532104391424134896253579615898191394500168464442342072804531551951844887642102848223533181052034848500619141548079184613141399423878914005287721120447406619181573384672987390710628449263993422279997169104609973875351600954533239756310779099864027012223546026043082347547234212688350271145922099939904549966936441802042723146097246816208395993073084029964889826928341418800259638731281142368380990236242559800047611064236358480140422550287663691988122614212840920181663986297157900991021393134025417093590764629183192406760912738397354152172939917796623920919356490991471742592185975946832691852891888431630118477795451683843501875669270007133038359765640235221032048953284647072684293715906729755205692587014230989911645146286963515979768441114055015324326569610148294527141887258378905300950351557446270124684575623781633274185993369915959505220315021568118326917455792059222953619308894852372616061890280749886050531787214349838598633779657638660572652121800046371138930009068013907260813986093739340673332075071371245259645270999308725734763218326677026159189842089779964915066317075566596757658450274040708041053507716257160755813037649651967561671944974115827894139711026399523478262764418741696423825751054482609900655299035287371087129488418651598393844062571116191244932493158464833623344421390433554956583861460337778531774433561701654758683259701049249630003281432936267038359129268750450099899746990026870356506607772873835223262351603168126464687909883628654348949582841784910003666764579743432842139738850569891209812394770907760523527459944598168958980696695714355807228227583733716999392424008387453119679354104316190697849995868333373422686103896480998219265711301739394381738019854092199298382197501417344943512512254598665956375192638479405405107354597693419008737425332030359775258968935736904825976513541906845786170625771784198704181092952204211633497360114920060570596903753195164104143322569218188542463903925222475544840331209089501451574351007068704603843383194436204864073075519578293132471375863243115254639475536513682927060875696244233122708059499421623106409036677441168344539736707136543378482878318627048539793735267800551108505158778390458181802170847449237567556621993829745433841471016317900599966588521285280634377521631314967395957827636123138669691996348286820859246608885850984651094581508925955979989326552746546067173159370903935149166544044721146555922349427230230012989459216466101255910437137526641477140155326966882716079194985215289715193253931511772661309981095475975917961449306406082532222166056129635792286508974340500583421192978892285687653286347769612707449964460141655721623093255200458521474756093509634585590711137226064434065198635444869345208111375711748042103887899964354275742697343979163660002057282925974474540687716618491572467749360558749985925963657145763343442723045643500194921789650865602167601961526719394382771148265038864283356307876157454912974325122402432641430444804712877488644239632600479088200464545754919825593426689733735602544613278918710971855034340243027498413638255687473518447859768648479722105210841679226949528076706407361942938909528423319103825483722768542561628361360033108399647800419702998281168164675681434426747262979192111597354646167550963697455554706777093064444433986412602943238165193476208955680339359246682637078181591982574711916582711743831296890831835888970330618270026161851602657140142438701453288097011330952931135174842469179218540761635393817009865447794543608891509323836131757921543554657521671271057588730852126603750439715202340501618553017434547576037914874076095635243815918656061030868389258778339870948506860277270980851769845670734470668778107630364031707130298885312597204526124829199036114318981415795654411010222704026685264123483291472393294862937996861441027082794335157017956536934403825479478348103931215070741290909310019426785139077679400356744817307267270196982255879105527475088560267315014904347665953840263472190183206385000364247255843992197586810007667658064144964637196697502290505386847912859877925811313687818019291420417459985574602687054937102752802870913209160521444307597542106508309568152578429889433937159383991191445459965698899946342870681168117646487759913418747397762781919753029175782735230403231670782367621751769803275493018946812437274855304423864837437371538847814635111553726008146784110487321786416478256615558102693140205262281971706250994478031981301463185930682945388689285206507796580421971716906466948653525097407186391600803300857394062995418118744006440991110100944813325786268945657727522679350967722410264032103266841422989038697048843135629860180200961531145443967283356048560643184328944582022334879741302442215396735029538503124610667012175437679427427171706252687479372991770597871444864842923710083958998522515747251793401378525066199639639734279915977031856506288341728093766460098745464805768067940266628125500983792333587517069465683956172278318593090072200881265138290369629498444168669409825717121674672611336772450458648269582180337487296336868694744449604675763819962918941943956657314456802842752773086285990662205827364700926688476339359679709342502697301274884236358009177738302455881326309667042009648370181484730869154046266046099754257610394588179472020395828192573927341940100594545815687227811579947065128284206382387504052717875387659213405323244634427358243497693999334828726707684720245752237885879027701180350685094864791400868078699820021119459414711609160037668258619156512482922242166409849645811673455850378979374169988739506119988500597308124718391183664117985139605602567448707485836111382953502018256595584437363287788153628343520940050295414891311653308974872431328867065789185203217921233717971439991618147119134286372100225455169568321776555458973669977342037252204042157139179541267196039206012568722777160239865281991201010156247947749036990909877192853480129864511503105869417322654273436607223730835049380599417130980236496164575205493409390457779698733781979099526712060944992543815673434516789503877558744092130742601358151935270241696969545257804802684808198337674573020615803452684977549945683858901244134334055029750088305722413643765417511206472069756770349647581240764178806499488219664665540338384325206017871069539883931239542577622012101474053117729954271944548108131188748263752801542382489976516699646271190538640230239624360687796618057083655215242368497810113485936466682137728949185377793857152584917070887160793891394136684130079836169758281926110163118957905625528620565483411919654808184374516137754405391565033789472836034367469384778413564962180904978228126710589684257172485545364884907471205474927470395902291464583187956268156880597787255820802257667956583069465340739812181626661965594335305305440925694907324429423432059166835898018140596396780217968458902419898841134081059158351236115549648510618950143715630222249519730233908582900323155855041035100626440454128187287292408791951637072285383480350433446313850647331560735100957375971871409485288624493574039627355687290832736719346847735911197947166838444715182185548865996633099216102880987386315573759726339307782416672964710033760263584830815910159815009776511408936438122529755828499366138878458446237782810910770454289095348165290989412362065048560874520942841346463101741639033222050762035055680092169903079948991374709729206919594599547124834362495756598738296051145789243310631806799836396772521681647223763523295364008427583617209895012662890703322447443829623200997878179315314253598876791409769071038411687572931933116130591698074776148430801309496516252050087719708997179375799133489116696168900938534608354042530880026366541632242310634220977151937138296026069477175229619979477623008696459388811028802100393255323100439846138567060275081787632591166663659318305263535005045673332574364459200478044108551117365661362054724630858096080908871671050295910287798971296138151914107742539747414432023840555635470228358655957862052430830410571287706701141711257106191143980067351233083379541696492990534287735682669487043517917656245397123341494397106732124356208183309149491309137648316062695467974719943422035981949960688244906160133116745786614083210520758074797527314700603300487672266352197536307236626582984085784446576004565936636448875044758513964668821430427635494369158396333740271768699492540941271266560858437155609164387208653913077908140274872198207616317604846057152212140787906383917905428834051274603653897835357122155966698921967791144778623248472169531330435295234442788055567347298271445958030470925277578612825096711937081732486934124602783216936429306625397798246285285189436776747468354390264953800723796778722318973949820338542496910201638193736917457815907748706536390427621467575380386028876913364425034901164984662689898481683972423787086638589061802594279581050469410773063217018396964393117879107813946280454121500405439964989842438310411306122040576377841942448136363841980720364643682518100214722982682752297090346984708318282899701934835611138302573128075046504390980115406262941766249797351993271036449263788743922593122887753676500006928521669451852132024366440281933962673430068669952246431120745044965040949617979734251089547656010479963486100152748804287932376835179357688200308016729005039361312456064059248264838247510659723015887513580838245941028474391523701326202906797888670584803381148492013879944705021225725863274841156716487846890811435409424362255818011763334506695184260078346545270193057410157307810822352918108246508072209749079933266081527872095469829107521657927651129927662281984430675501711377033982340712869829353062381127490182145099972021887660260300597246774477053340437277120129258516091510155729333449601790020349950052564016972060455851889708297783669892189413707741473257510572898480899132753313601335445501450040329212025853827924892696106467806102219429080805848849696338508853742433660626208830572298047358209121420407018030930034328938623221796146782099422213774091257789172412154598681754713527612893277407352160076338357493265630606245308545785894308573815138732696686133486528832516109694414651536505804327690024738259163466415301800421418108579536798887740162023242113657909194455776679525227910966027232481900882466079517747609015704848014724745178796470480827379281419349632014454600483608791226286383412418698342306627285219391213992167313302001273490647246810187811872786633297156941161284041637743814940973494842289353313671132806958873500509342483535984218553237177524754053565131337852376368567874747421487498554651621564894848489945338665891186903298246325219023323491939258933231273647991841290941266725455754773510628738049879217648931026507441691926653293715928987049903348188796182516167514973327132199323844766434952032164073762846383818760779144344350099443762509857195797662758804585638021726375541472525794016652861488825569608820681616019095168545797988023278178658314635939893802429071842208403170421936533647761969275809535277930017691187710451638080108551991133410504986054888291658598444710562001074743363553286400536798427863168397346238668060143548681094511875010597053629734608602534447481514787863763660396663562196336006789738017472800156463948544138451458780854413961979691491623018452613754052355947919692779173299639592995447935293180956442127229317033167478520852577321850922059320591724911539533501668074278060404256870686535997692629631936940847930714025624534024566849268886386504890622945357620181094303176792545322594727753434220645141008864222496585032340250038560369702382669372334259162973284093652850144743961293176440957989741680294579580595493209748835388880156501005440791553512573026038546288696205361550860680804953692417607919399084104224540279330018680199576177824048383245621750028538370498647492316791569085345577923974143327047896434878483040884492714973754869776687072933026380458879582827078771425024541986170862525413684658967653465466631310187053055804713358563151758810906466470782720920302692114874020260129249215055295678818243843650804665019288794537711437570272945858869604249268829736506829311676783796710915235691320863228766819319241824208767595182269055817650432420200295055919131256842397212745377745524699201088311763387458643351455257897653671179869074129808569588426506338245237220446568001931522957065312867044706480512024476066652584615327776474320227327006051645467102631310261653817471286104345945145339422985290307837571056578362414935953190796762269134295705423933872125850505815749874224569162905757091387705332586025659578673869642279028935606624416044229057849710526044551677752836477951100352395247703539586723535687264194944685796004178357118856746022415223425654753846967720786380094672971798818136479573863955799951876412571895576853374488057849258063490202330164040846368288017016235446100547451251364998488306398065802242585691638958187148321110216044047384146688568160148684027725676271386912095814427816951046297243302649706002777700105923433015150955074260248947591542400951258307867368472479566540852666858991132936692887210645827210526686184021213570320917217462957903429533329758411610587686791226086508355146763657151833117409152846854189672778573900692748899006649336161296359724595397375022098479034508457107353240049806392382733837295455590014087261791882076940955748603392666505476744569082765116609953807344722093388368463184160867936385123416342689319024806711720188331798624502879450140654504494197460804375892302063619342269276684116132485786153006641451956717529180616401981360795821200285493646345948196516532822677732206272469484111184367973176382423653942929708392049855067721835435247478762512716170507929382639912096123068788806318324015706087774425991993045516733417309409059687900996547670510392062042505806928491539915766084023485573115609176607767092462374839059400151476301295491726516548007722104724359552820071420144427765003885718768042007308417403231208758200516695355313206183970910056832931659264247048474219261574547832280009938948230400842863592457143573960339186602376967955313046336759498334382031884525103979366607489484117592417041846922953089529537728472851057618247314261949754050779822356102945451602420433774261653145245316244635901517146472835397153119703067990213770255012292501264612390274642984696284171928702644052311557330659460685279205023251906865086286664398804335482180898727647484856068169543969022172708265950128110180295788642862510484491664513228109863621932139835709012481242422905880826727054639834773856629266435696990088549204642138106077680431289679543157954582701955230712185323289048816418519032294509619043664855619194764510468869187268850021439783802767051746530773844613584063561056063508331980227787756081833910898007238039271277117564143963331696329247620870962673971407995907394117426741346712170018162766429067950714803683867957827890813969545737065271182214113711184980346658639435496767532331557842642235372458473883096121285633571305641297270740909928919555852769944011703634289725586339952398360369302146841295218861904629234200948692807771970077966374244863282503697452958535381839395205610740910109322405149156697396653264926807752361006312100992678827851887700946059481925698136103245108028637671033032771140397109711323823370596356359648629481021875287304187050108968000702423747356881062375168355988924967362696637114114768734330207692461212703379756429953834026202995263928851593119075827240287668933115584806129418451035489891170890291231886048145897088245353563944334788937729613333760838550024422805309138609545820118343864391422063738267221646516682916070987408332794922492563160930673329729834052180485773854048505732804287142183054126538757420142147917887344739984694507023064789232882623980602226965259190167637505203124675943264147981087907255707211508455465686967414286398370718461335974053836611820556860441004070502363249741684031562760235885270024756202429261838784598991857578500506509950230596757456993928766567494557410191056686870859025662103502311076373414509914933028484008917804998772517854072692607671787090196077018992071357045374824302506193363297564353411810173118492262620418595393056537586205806574435330979162443787412969294865805352135747496985032403616552447467887265657100202814440920232971098173334231121925108562568499555996461866326204262180091568109517869515448831514297841752858347733626067144742283706807997293407649616567994513675324044197853394694513277815867542394036110474260730903584024297478057523460015756499801062760989099549976486583964805393811446368209090256188961192173522466290744577648581723951033906542293016721987326971848578552711665232260455549206419388075158350857897865417270272844983864299717169032799129506485754740263439633209314728255919389879233075788983738653106777336387002445262981323712223925622215528613505455306785266584842326022444053583896456614575873656642374880367923396527237422905693950278466493643497310794536691654622273381586527528328868723900503902292474084887434364539533560381433821941357716993494830709655427729196409965340632077376078502155558219075150435618086002691701322639328302102801787154058067581488857903452636140748751718478048165790819403628729243115705558998330911187912401961041868585271361671694037360326506211037148482624423578607413907090338361771657688334032449735102588232924588936003706401172916725550238135093033200051800229990340607996222134507877427962735607046876993253834834652375018398803199005174178577323859599070598059090792586551266852115252315256083502750680326012297682776774677158952009935633403858709026195904579640728790455189320706203906682383725612663812912615437695271630803327888755207275121245595032275774632067130003301496005848527766634487531234917163247599430049763142691345815446422070543019550228541888694451095900881716675500499273812676551335476583746100127259701564579245436760315838987016194936218273288573667692305139133986151071180240454964177721447068651766900939668607434330718146739497691300096737080521707251699865785512367514462338099109231586449375791362063130965616319441315994879206979265200324170459506096847018175738958770435019507381356560066521311777750960076192527502781359186160448581907470527519505387819846008765511723505254130364119980955140820333144249231186776683164703008774092612600096779142863324334525758183943120830815614781394459820169523569835251667437091534957023403148256529098030118894052726681234135539493676756502046988707119532614446985805209740744279468890019229744653484442507515100078186394884216234645798774164629394331900041921110586319616610255914248153420316075563111535345760939379058322342899397092513209524039878758991498122490424419334139531840172001073710840049819217869356036793727473125135270835027879898065649383321710544269194880186183478356211460779298007681138678004236198918584504667522509214420553579486037504610028032833376771795773472459395557058367075437414384612067584900823724409674920177867443942503254889175756497097807336396721592379066477862849338872744823347583993630777273941488583664260522642943785374485268679632437958067672657124274838844196217668191294099714969151093588999790767243589075403843979878703421337581471598400713682242695051012975867113264175671826274323761130557234657824097349197220507917031984064139822349756386893968195654659044096442970964910801804972883194856694111914373023555501638584453939814202010732894389440386935999349978731222494886248201209577422242829625500835526097362710728683050526435095649817267418676192387350911920439939712607512903467792682082984740686974728789448918135748658548502739483939324522900492251469609724633063551510195685866894104134408357638115488864594576218556483894327881483948371283026293437248036801468884137169818487442588495921071567181398673863945245762038292793692693640922357276501345603417285073744803226935006784977553544359695581114824051693791487890659266031880295213047284593522900511856474524774558572401258800958710766057147430324043596556505234674124804217926163276895230589934235875048456925438887614502309105984605933226402259973766446616699255433402950795304464980556182896146288153492197524610392075593300225115865747655532564104093757119456172800839035929443204883528166613234484185589951962441608653991055343353468398153431853945986271056866232197033402416974002094289229793416140341344937447628919559080488912916122795109967996406502103267194229586277726386830026114212237572266686267101690267166253109871174401317383289236488050791278041266203195372059476967627630627124007396885707267888263760710483192579915051819599980948484775409546482388822489964522712805212644172297183078333191126353005294995033607315840181971833730206216408022521845027344952601276293306579959620054369730951852415622418683508227575599069154933926272419841811599810901061181472100964992944848928203021702253947276799550865773371206759119560488804653359921333046227834575527926498722010476260766640551319059277066613125848475760615098410606494901254622251115594329220179250363469715893693457820025190540340875091786533092732965861925304850100017103722131233638944315843853319835149577518218523196167005409296295980180634941121377150809394990106514218133258372956673923026171280931872619743240405462492768241042803644527777440448721659731341604779921466121581626981790915483801082708621085640428058669654088875145476684816575988855349732192313292764221263515507183963310658507455454050166963667146793545794623574021497661146261619362942852147365419438890024627517135343238534280237924642465567128115385918465681112640160705105607585412660420419927705901741989318389685670866341124707805028896881631780714871540788912406731612342293364636777323578964071087654079583136306274084494101844199090850219798841771446845064827475758337849016092178340077325244010951713316040176445858490848903081905224416666900965273575537208096788745458018841403985422171946385985210877523723585576839932547987927630938766449760426179557201207085143302993404048694084593990692306608069118816413420765658026306723789603540893644217120739400763657763151285806616775726031570553704192970613462888277540286502984629399134589209650030580576275320445206632137893768122882167742927135797877837988404740661471161976207747467547414163726805699911943054755452154716210453762004180117146013406966738626344902129294963778504635591229575455591965209488486640464943738325504602446559215319325158331244763947249253645088279984673003725504009974631244266313043392466177898809756502601755549410540766878063032260202796055852542355692004455252271462007445999757816263015815259358882807632869444325564706870546140588272037499668619733579622810007430247637947368907576649427836914623666018109707306152942071392184433389951721587484955020440198601976593491053204580763391138090540450512659437071493548666930430968708573086112768131613394463701510367953779963186318089544060685803101707850709894037047946344585042578008913551679431817667552999522048478093532532918162775860864601932271776558328939012455638390078575603241426843359969865414389038077485437827076176718617251919818128860726452182756433143693569798979001037460598451978997870809923460836837920374409359945071789936715367578062109191362168263441086426264742290053311677652306716744018448530102932500646998640273920789142322044301097286573113511355312886111496516806490391702577147951315132510498053451836154615017496837520594371925684536835074442708978868411772459423953618471100439899937944601267062318464166736962090381302730057522309614053088750722471601233159958592540547451942742819142905247064466188700601075194388675509383188865687551395527520007603055379738445950851543755766253630873022866030109436320811184594410610900719965798215348381465694225022906989384811254958811952645277897556833053115376793853831043879342208936731175532603040967657325139012581509179050449729800724127650385156857854892470970083503980810872786747877539887814976744954416360191277452372605579989697163751726432081946244762991648566385325174537507053635669685169584915427048502486724065678876345231707086804837105638790260359794463082464842273415446900133556523380176261322692046167893651562093761922886816959723741816168526575597112345365221872199922596938249409471868711307322375929206413405519616441317775103104584836175243774770831639819256563240682374318650728847311207329638712920386536913038951171849339261416575190728568451591649335576060261562979376488280819126213714805571285592838801090715220768342613384749942314835471796847829045385411813856380330567288280496552401483278838493327461006458302876214938067416829756938740067879820256488747859499183875601199946102880065336968739646264089920285591381628590644859504982703262591568944670674830956450653847422149190607883397135632069753955500482082659090649461261717428413641873310259436696099362002755388649732027536145020027108774220213263355707968696646953195463259462898724329365883706624251897921201576625529187144583434480223261995159155180241549581990905936411793865734288480522594078165098310065018017207675292167976420911407955007613683224037245324647440614375647942656503492652711780806320219249921578091489094466136325818978556987416279711217166118509197289423329835719757119510363661203440703888263832417558002961824741978808394500295357101953833074502017170873103959531666760279029911112720327582349293847419074661452201098557388580947565985942822929592911369427337769511215318569978822997907505612639424313605525705654910964241967641504930208033377464228963467523762629111776457099125687536010875797951687247761736686093732889120339853322043817985454807447008259495655859324598927853197002905751619017589033902016579180764270798440997388795555731263736807346450082823501920422688836599657794439160440541470829789364664936230717053473137283497003587834528736580632329779569271432761044662731772375004707798998457950493341452739761055837381024434889213328364647462807959945871202650344266273293672095421325566924630999055806864741606397965129940337197238471450142891529493226271545540468243228404470816991003854347101164246878201840391664237538726261910046530117516683192207645141830119610639847056697787124003213399399124228780878241020139252791111526504536379152819806870642337861746629588455784780683244543017297044790292011027886872087447487573306851922866061188474472118181075392947108442418448015944044868983754194335094299281010608876335979575300504049007711014588423087172279870037139837451085203008513662269654380426789744734575799332865035099749146201677056792979599097731124975687450303359952929148858107410507231008427928225518383562258155997531971834827626082457263362097764410021570142280773130775776092688105071489180792189138335207429888046989810064912622143478446995039506235434340777106838527310029727313248574904385425190177748455069116534409516466471582600884163566789544835953406962789347606430985145004919170958290509814970183801222164210570285441519957369544960441229407227395123765292855879371288016479680922705680942647621625345598308823234009800063559039357384079232270774850150593900296410625667814602148007079888685156188086651723186502308789667362265590007459048292719755858872411476110212989179517838102180856168271391624114848368264385665312879632758055848193876965363868205077686034347189950043567429895851034297633711464458569560330606722543833862262389129378620780105759297618905238259560488083694170461102994430360799607335172286237928428420366612719533834891876770412293361898307453592817545090587732560186342031805862150072587513683392386761495394057833268887326957066699095607741699163417664377969954375571157836646457906061802960601702693213282017289751549719200084537346204626210324619665259402152342550615910295852225710442615287758514352046301463737442035633987990951054590781399775894479574308886473853796188631774542572359653287886617365909798355988677614375685298798727128284806160906649275675573853287129461559880422303314467692257196124033221759522660314407524324385751661426178346844660244693803719453496456649314750968958222487107739805438162028259399509442445295641849992606735610525759988086821416334083195967063841538798708239326448069131406716710296200694356245121391485848940857439375321535710154862938327796150084458070392795827246077936768242056752341612066299186588292231265783168984925066140069659120200673053829496620257924670004500610002148171503507691433406894973380237540634261341447097886226231878115438955159540864195867566760716699989093758711979970824728483026666380712667600279569758218142781851441916081591682835713657681138301010693268602354853929390379472760928922237323510695186399088051610760846910335949219231535481516053863968733961034451829195392105935445945826141013207840281031783701152086442656416045953850899120551097659377753041204311615881574704964803187421871183332299046682724511396467586802596800791428174488782322772363617523904361628244695585359575350683074022498533581556616224020408849597365827412820160395376932889765197576702114247603116452986125190260281196606855442075770481170221457577955813071771192195494859318400586058282310305584929520720445862836097144021493615557472227171590514660373741488691836491719542353304343757694381446746510167044348541529595318283555544825378731246450613219754545368283179958918356762192557202023212216597314008475472967419730250859354819895538994108727401645933102524450362163203394213475875114673588261379547330411435894125401983134003602146656267051216498670291300613242249673602739688895173002774538740012278307886184386335262203648438590005402764237143421934582805705071660202937693511379167914780741227003386276849774785882546394161887970503027969528347526663417424918856362620970503191687697867155443302314498211289921044733878826024307776335367866819842017354534487285415742894208138669198066691326138531558448914473026687708035654222530169883894650613488069492620947596297705177158623088292435044316601699658886720755641432076837374253051723159903384366911013261167913467839006665399930028456352878059790219941487287151469812233926843099263165899456154348710666784777016344821070635972974183969417786069847642865878105358655440216119758689047059656800750600410961189716478772381082552284121078221171562241779588279144733977916889606488016426736914441287572966770671583762770428157042251136880222572132055520180277231684719679151728037384722407540631539574538989798265889012578177128437709339297659998570948455477631887006451734931295347689316600888896116676671219970652180995278437432097040229930842577820724640264185461969043087617890880038602150863169964069635718983599505837127447537130066382878619575690532019844421857845308777636622392231580231988292421652224470771197298713106467363933938332586440220469916362050134483132934724100619897525220154204337644620464522658965168506165915212693321746078854325356770611728784051186049849522901753431774935329291140836026320054651014841900397418245302515316746054003301679539204368336034690905148740408533564056678397159436950796796865853079537641069163549469968789578543656243095190122778852153844146384835559382763283812436374413467438308995173244285208202743216560974331767756041544830537323574761832195035098726210381280971874347156469494936289857927445517988778699897271717133293041316385056589322201075919913688887508628732989885050143275235750013511554042384267670429124210599488011062093835242636012108679538582709582515925023247330390512105722548597912830524031957657295862691549387173858344431055639676602038402458388233343841492920397461608862319222711475163199617616660422851487263520063349833427187621099373789787659260352343349216437772429366054741109876660807617992474496007056568149847105771833945733600222767605379957782351062516279349029737679694845332799980739846876510969158951983745487321296271807132928013112934165138231278461308107116886915537135732889255762016804444265292758953932682045415399066254598308220407460843807469264853304026424822563803503013501487765952675309916767312324095292221570207936791104350117523480623914984918890551720890313583696079711067303896730600480750011198430481450159576171143605370500031515158860745350533539194357309924697883358330176265377008404746486339606812605778470708113170720736116610590610861520416775844446792178855013081954206531368686090922885049382315763209906499010889734576473742814827749289512183228574495913834975705668115290645708075251978194042443942506769983177560167668033361378251819106413825067551314639627425375581100980909462784427116338662674278384493139060104469851559929629753651992565985457598277967780241461438460459212941390814860262011713016871471287580215321665726463201192697266747699642595116834027437987717080281294266237255301066410942385675712588092855752093009249041635571155273895431089842457745747317696550350507099312857232933975603058379435551699326319045500350349563986455097803114636051395354281435327520671024407236896958590168477182987962477346618884539979103817431908293918981932025575245969847834392717124838437636978169864365612960666700502153275489537473187352531106284034911694466465061731052304274740015828692575966173872366333638918958418840389971051870353382902339015583906774878139748011612682017764648728119947723419204295690064835856787085718965192035039214538393622570569291995134125976245671687682876953500832417250449074799337788743814673297612569447775032971451998323262385750157834125780917149580094237271555816333055891202534245743792168577952402757766848505158219369323712613962585683811188530575847352590529333816714512539762249697834959055283085756518097502394806077824761542839287146554875340837499980267160623171548687427355467937893132421359613134778860762641996290172927840203382249665684095593813446942993657071535994729176040364708815627384976470667751287301762392189399587809643395085227459893597448317228296102050124052589717755440267922559082301566428225635383614377263980122702570972407269350613546710463929129291701961791942671330264579406895273826031126959095109285306876840593389179749477349766069189166006021891596832789866739996393298315493148771604703360638255062246534095297418467006693674635962217940226082837660662168831477422840413736886047207178723572584207813473280521654130846119188332450231718222009547882923268044587576318810809627542337783289308358652800669846383501605446330066270453111162513964296203687414875506194132562331850118409851203214188562947440122308165685947186070317392529620848719792669056957769808085668109818365708022856783198467115070955610571852108616865227166525525446540934105438609915423281177294933372989063836414576073362784949444052515987189230672387328050889159518492340822102388449778484086534336328978559405662933277738697470826169363022462955762093400687539261189108261491267342020571661292125922107617809280218806958282332764512679465939840301863326417818032802225208252410519500943542890862829407050903734282808186087919043200263521086649364695052307756406421692996898836525238155975601549710346306025633226510253664944094130414438947170029236444027819181460864260349666992352165273038755565569246274341628811530374582274566046948079115541262489585516308594996890463131920808096827249883415272353472029164015628064906070423431082216588013972556011123075405593462967763012374326379423499009580012217495584807509854632921860675874563226349500823908775171571569816932616792242810355203649856172729662144558156261243636212516947425801870887735242679956121536458956957701223533775912135707813043368149786502390818933859267303380516678615159290384732975962244536820312964097857008143569445910334721312615922985843700893028398789527629639912407186578145941475290422327097239712622343373519021660652391644437914036405806983984271524739771286015240952829461587456625718124571717876167593966544272002432657669909225748081590310930744912326063673252188330230790496254744292156425677421424344313630002759981586784527894445631309982937435001479422990600094392759282910592253163783736679206409535420621512443113737852934797820910198048062630090214040814157742030167403328941688245010078854100525584738514002303762516601156220846613268469887654080435316411510328196068731036390836161849285595022448364379983454117917789787562955528458119597530322154976112571154911598801384242807991572939054127105203067492997194666003451284074775952284540139849344591254934333600680433255106255564528160373514725291799135121683656272662239510723066770483254983494559198895524523037858488565288554693893582824573798397861762058009948559518518645300669082987121929801865565468380811653698410207606886482476276779195764763070571671191918706002764275700655429134065078767270790384402441151716724016223964224201934636790619844671915732583582200682739681409599858937519428409210837237085658082630373597691242809817545397615073376409065915208029490406578689095078129630454954586798935037705135949920813168150809657097303392208672407975538619312567755589883206144300681513412762152863612460441642416901189380554109177146552009524645589438412410787413957280184667244374614927501904326266178431706306783767956688101624582397387534077428793251526110876897255205149767821364312437208910068730214551882705011132588549452862729729149280690399189675415259124171338714611003929252657087515811756432908892026057328627728159536152457204274445537643520596542741935114269661563859933201361350011118789259543606747600970568836211873765326949430811867865152042963346108831057199525053700442326877951244988362384155995228630551631505016953134053535477418189294167887474940400831525546257665015126664390792370249121690199477692702118992115979357928700499009569631925033868200223025509096846413474864144254612622309555764315578573862500627991828171358795955457910795114862882936448243939533459327331339516896391197350644144370973010903789427970732206648391632988303586998558621504908732207585819376191925925604431051353412873821516630775749378580078431379627450289163245892164590554579081042428548565540147040814870758700904704651631632049977545426127782637353166696466617871922942871765607406467863703227196124950400748609840922811197674158855974847898921691530267356298750807138870118346582612754638171874790124887080116511704708798257958672433675132685603317922081753048611386211669087358861077957212772288209361716382602489579045969089808132780124280205769434731235340338221999545513627979766240702986003271060069470802343768220023475132456155896929623133827901810631325721189689023368140183182273959446198262660111388948793893366550633630382881663092400110089526586957153457902887916632586284933712520141999679525642072194797819065088781511991613198118170472188718809615624983823865383185261046625748224151793028872641500264821523566362989713457311686442074768785531518817244433403658556506104995778454759578701575046152383464228458048574124295923940162840633390552866974646980268616783092099794164150001975532166885285244844823089082805103787010055594559557881853420316786518506398003106806262346508823928187946403604102169673368966336269056075633328106768401243590448723132571335185443500375737603865942235222273242058140342311719632615272435134853304538717315080685277195936911355936357559626162906021713839553814741376097980714419758786857759008862503614648414309551641410909406464275017682310969485013165004753502736467444203732413564806277448492822222307814151549259161658264419299118015189487247044374184683473865866475066480241351265610368486608491667172824054604540232487877105399213609374312776412835348384699939967608460504386601032218657909351021449427385746481433381051692049870539126195516091270726346887125188403914996224559768703037334825894409984121072166031113504118578063201496651471686361060687903822530039492803725767751186901931192315293412546097302572564973565446709850896210714015588887098093992953957577129132045505739408881591032004116855972101881855838809456259296872755874378779310832881134843735661398479876648606985574449111463628344722367353709010685808522351706307063533571576632337226011048673891170447405231305744296637186688655900641771309512864617825563549936331035789863764795723130193762776332954026192516730709559930459478621616119880423338178909267673860989401189060851461180583554298257127624381521227447020104594528304890300127434023465094547581920472824652630062823183284546703708478873486586778572779950108908061292878259743535811386886099183831655925036560935514546162220020379559161124834301639604770924157354501443804386062085745598175239481533509757441387973571936885753130766796194337037988559811300139601178578852155199236007255968028154706646025666725656851906179850696399008107072666123308087026595731891088775066275990436518417730766988004437201653972924976394502398257459445271783994672683966328347238128150151095354007985115152836671948015229560787968813965775114070957726311886441776417794344453151999334432905105948356495769629106861249452063814006140490446047545440122066256764832889672124908744923510647399208735540095408196512644108888004535627507928043061918843096710211767577028446280999882369232069605130527785945410767755761367787715575173372752123869563350007761643663128656071334914449593818467139579945487115357196746648812374307451206541670625631898414829232667667921622879888531445694601635671661899425599607893272193761889307921082372971049763138331252648876956035495804080262376285938481305253148290594732458911330381337985340603324467760368815637620449151955269788670269901797303616317584737628324152207027008479076218098548307643799312312421221843386023341109676749066958053389461071906742080920213295111231273025140869122985647605517622902954696860402266339533696287736113653747424759904126352691631931670046041494804351759227250289816897522186451880246836586738310100792639588423336762616453455827082352310548610305068508991471528108024598163018654807078932059130081313256384815463044789078373672407867275596400666348465687612581230595715161083562795721135475775227369760987544999099898035038859210271691838384117526573364385788388319551190438426696273681444982944641297850027410230729400428949455261778428935561784684447849450324953165240222927285739272462305758483033758261588760157103819582025236201521895616936373522711948608435704423893338121834891126462953499906733982132071332579588705945585788700469115368542863813048541840170070838013942938686515868037174117957999433307258781960757356681222675480370421531313582589388097524516654854133563921368849272605482102229542911226377204141336716766233515914426343131120077725141158200730517023546658674265919966473880084419841833286444411202587380821949746374855326577326076545434067442388184303941968381522755783087232342598447121715510613043572525414463285979797295393773034882985063653396031332062850481813674910656571747081033315214997766428256495049670115355256471900776215904447632930593603730647412755526528506073508056176639040607595312408313488219544852829300280096468423241424909723535335352621881787331303737911775859760562928650938700182766350584005870047862418866593146608805421446497805542441440620949614915971134059410342906223181585173428012247908574135774978585321157329850676755333067713965964582326147802024606244233607307542830626560657036016891080800189892195443751037143115044781937222579397310787973793362184183173951384597018899454647884276689975159743751701080431243033923996049285559262185704280207725864618077202740544552797536984450626105280820684063026196276610957287123682906145818400710485987599026865418840630316752260547749948164654175065772412902966515543716303616359836228722837382878183347192529455320773779003152832098268278952298874828303142989085670573498150894355705278360680933541164552080839878677738128276618864349997939064983785818925452667672598510098349336013158981342203634723749163198896750208640292756825861502544495668434676231289888700139369258721045499339892263354054752813813311823208649348492397261900765434950365835542663939198089608988342377325501371674739229041494342539061430354399748937978869700514124585358444826683204014781615802401370581371265599614850028599584112364157042856948649739848807222024706329627958943489915223498297889947161829386866842692434275989503794178394309059644622247688492929129692531497790763356446258666330073615234903483325357227939899807165084670248614183187906635205188926356360446246635040345619139631635649000774986090212334783191466353715126097993388249512205802923991953942096888190616335654386147767281268043028516847378230926112411038827645161145276038080631913516210415464732381909062161625347626911101680857297426159668459966803781413031307627513794928818218620898974539818744502798296307798035838356555825245291993737810961509068463758727642771797206833618408386719165543406312729233642981849997644669808671023745292775437997105362636106514530398241199941923749828749969238270240245830882434801475316332506556770607995705159324852305418241324153364565782174262291070643925023895905387359142741563314397508087733340835623412268009783605208489710717548394103814591915617364162793911799787575654189490043725862484466029686209925032813876143467289585421970188292776891791803420860835570678087234288084921140084243494299704232403273040451792001817705569643609600914900838949881041661122550474660752713722609327163395990281395190747750571268605119755964756310113865688022766213230052395705938125814689520176473692612187155553382116641298714152067315346188794995672987328403919326861105234334528227993620203869807618910219300388006323588921626690814370508110343566747730588153206950915839660251174394727082607016128632896413197310683954673610488995229685923886123270102589952161773177295723196241890024150487322015630871259772957587272630519770557538770251662519580985759034652242555332921586544346902555140220233273990221468632804289051499466889967940905293009399790822341663603037713369127788241359209058872732024009414881046316222104244199811319114944576755232991435891609472945893793164887205138657011823442623692446309069375458627600298684358174455935057147800687181905924134086409139531045381670665512265838849272133065670544982210456069538014379746046478979840158288480663004733138359020951493312606126527487037690081132010776179571494269282391799892634396244388356318534258917402796538684005265416685505214940870467510348172644860167750906870607538027701460742961126317062525909233930185529807387512754239266399839638999371649411710838194917743952442673649891471205883732255406670340356272300439287064500752247783850497557473557289857620256633844479538281494120788759443559225064336617265465631650714534269222658262128173879961222675050590528871213199911511726723312674455792339900567618800120854567011203994888159590201579533206908745818616705291125424659767579992321546844466778666495489092268811037808797720562636165092563503870940846410376761358761184701626477550251293701017137023987223641681196796823767718194722313991170556002538342491132884783083201172896222131382375979422116028605926596356753455485231050435737569857014132315777287387212489026629924024125039990483321637932326433853267568330142175301914096643695560307026625604322602279516976305824564129102453639789067867932263759488527238259138090749888095208958597923897316420957780881353557889020179228010972558773214947596323399410451835077185676446751217139839297270772440732624683827830766609678849581284815854992304671838114509534721066097181382182305338234707870484118388490970714898919005774224610532574469042571737388259554592184344021130461045987759270085057033700949920896826330788898103289100963504941209002921811064282055124832214403150202362424788926496741561628011729214776563728751669209747862440313172761305303628219402842683342608375297252470626603013949347058929559042605581197059561124614168312213655052141489908189802892607121683942730016691252967797200123823196925729812613157310527982110624034991944876723835674091389156143079390153131796390432646070557174988884404207926939390718144834794831671497101715306215232301544722549084743402855978255792030294024442701525591805850314858077466492590938856497700723482749987741516131594749907610602206235617488277796842368799123243640721648090159716505527026456048402090617731418475223226628536375174191355158281548470177705144502697984533150343013204876404860061048626618364773893183606737562241432441067288618087235547580474502876874424069310836397430911226224146952137134760315322946395541589431544917723066899653460732120689214641375983118150199743334788212818904107699906290042851547119122972392358178210035621654958086428126840593221682610549589544086996188400221802763327141333681968338732117432592388168171903546988430408213945795903704618091868050068414038109584116535607511828171661265787210581432477997586623118274337896512012680356455942737466450654844077232693822984890380189905161926234661151605180152209396747469466695527632968098970300989595831168240849561830180874901422951719927413404894700175080335110145596538153293511997325093009102969683563200489059838162568400590619272851798490388280187507582878406872029081391007877051591183451266566874864879581219776140825285397154037119211115362422744164084648252868040726637115212590435849064572634253355067439806943601617543846705304901182248965525241689880559721121372753252165310005667437006435655388679981940192205503690325667162624756229576448264677725052709705581917976697494337721966490870965963749547469315264396392278693289467251400247485348131104846748795438147281428990102775846704572021168725982244580736568306262978906053663120722189860760218169568451901735975680113400902283978565889525360712232799072920062090093795601257456105341050766275210432778813859071118495956250036942317988539728651952935841619390114342228528981170445198895393639088197520912395980255825317139964989161199776534081788751474179357146529862761401124565143634801310447811844932284275932936534086140209707948773846326298778050231480081672845935283761227106031821795363850528964581800398554836117168591940140363392616306562118118330427294611093621501507008702834675605124195156733016748015667318841127244713158163908893352629878198299670200063549248420498003842925390855237157406737067311578745359315752147456475990929157178103672456597246014607369141402858640290898312150687306841344320371396857714628691825626974672085434241705503039963041858660618381437760079250314195820325913194611671220251701873494411862749233613771727946349814541987945576049647118950313347981830844239013794542297438054311952412370195968540334413838471464465221731882733317991054265076581742243928010732733062370897146011390856350843169268295454294557642093734732024318619308888243803620720495990807075599366409594881229181127193420906276209418571143554564161740206566436582918155559815215798660653982805869982811727046003717768493437460075972050605401626856920916273624493625188227782960354321267786323046981838828390762115680170136380892168037539444186695581530033771397547736236300515456876726633024963493598391930191720724847446401820606763263261600937189077677273254260780563637604248968948499293527933817877422239434031220389000313256948283599737249892614463250678238879554170802684654527701484180838241328924493081784723031571294103756780262576428362778542269849128065925393155330015465746516271216405224675288256352687655435423772812478117764334153015885112595522537349071360918218060648638120199222872837189840461836662622928376072259850714569734721722556728760831822654943068290748921112938669819180446592209878208629968473490673460041018635001942284988208765858647375581424339975852555080959548198464488657180687202353196569736328547796080003498467828868424581750934904344114326261500533543851565032559251400825408094236726601493976669966228621101651029732924191570145036225851761438732629171251259205746329701517659940350006401401860494104038312958300111612549053400959557073834966706901834982470257671095484298507241608754858774324075997087954003773002926738361751878522343121010992933979141917692512041236087093612637407674349566878871022052417647649537874760753839594947078909066183053647611571449437970016224307211326287508671669770745560668624849522634318521390007045639567073813940636798451503185218706767144824444260692816984361803990899707633293077534746312524334898395285600899974084331766369608147633238029581898532737702026223198767630192883980434011977329561111785156830725966902217353816538230023324297630579380114107068189129890316677014485015908045298114314135912829690617743483536487589622433097500623736650312092875299371600288921507562581940092776909150513418117053402179543555214383107448150631021419859263065628478389194807945232503067455207182082259372534528832125673557631401556674485360717521009749512925472995642728557993825200098305865273764795963488085789127585785743418984063178245668493700275747512914295987426665076094783849834617887103054454644066394992025532315278049041847877851958574925719039072400908247849717591130676362400168796899092920311672679888685145401681736715230978987256414756622835908566033898044077202637810740673848759727791206866599455639064107351609341859843498686885606330109027096882520324954312278167259415812623381853128339547188512912482454792300341393819114237740709666911177959551149322304359667157871597004985265639133144475551513948420702242628868371564674845758399500895691698230521242639645883289403137368733716607884068694420880826915355727037425308186519451558097938882955514934587169697650372454694285791483294201453870942851767312857640152131826549303462004171715737636148525064745732513143511180833408910738489135911838785041011339139672232176021124374118926541528795205984698989056097751685202529196976686027927790023773026283331406503439727367751437438028644794550748620026502006748263845927185841403959771322849053958494418985035719621353453119029608872053016153686291873569843378888029350185710052967108691695963431044254481784774219743653012904195816895360249006889417136482794058234541071586243458912632736608174584728746398347483934060872456607914484156011220808584010304759893469460030217307474646341271501700811218308592998666181992042233929183640413040786965435671855011423975195617821786973497132633406962729945992001120490994254891656851460937838328158814532714947752182237403974331040973502671571181193118519694004909709158877231746864998057362420169606226289148562390098429843366300854510526586721090951081210710951166482443052000415385090437812581827624216604587467809537736206267836693990266180054554171300423696278931819730512964472001860524274727584550523778714820178958189952602375719115668517690663332878496296821113319998510213555041994016882418932961630331151138487562959147940044184447357074338083967505920956959265232762307826830672261184997506762086885513308375311551107024140976883580222105441288402349773923348093243008824251774466057038436727103838960529108938943059814276261464761641486953006047542697179052683910959149458178027423960546686287327844985889971631664293314982111490601759564017648667721012531134626232485841378549411872815808849354871185340959991521601263369865739328902921345970897126973464420722830133275899575228676076865496173628360616736113008005731764470267043856243397263448328038112945543761980828676533108507730572488702975833741764844152041161130078533853269099672069344952329366543167916124551858161711662153927102915723791767207343910052955325576232534063420892085022108745196486422503144984142821700306795084222517387207961515346352977792391286837055442308648573062514676731408232425993347385891298821485293159893006691784259166624255240206311939054633116415759002225962395893711356083270574891348921790081565193342084015310663073795060267223807020937025225058672356332028237730913565869581871917473284250212544187031383319026572553709444805342765974063674869045425425664057997744690154912541291206427677367519522878594164720892025349534559557822039097780470515373853920147254431236405796461563089781897879308945644800500599511666002411402140314635762322401646048993152915504496851319922784132644290734898692627677735322370538113960959629935954446516575472143948637620565845805085259690524299741628357025072156241838182558225826579559961829183810484406129137739660546487356637514890821221237786138521101490781306691333424646138367180355549971708869667938213794015851315432668187228030063917633751229922971158695089673923632878483780074341567782511777017086371617142707958420279268275514745590320245057016798090474596238832851256680805660439786935523888127060688859134395748762294246858674255428972327361834818773047585344938309327576981119904474057014402601720056344630748029280079350300793544004625668417360102443296250953203360843981200346774833323238995176108352589680929188836863651687639839259948851004251428366210257069675289026072575200425574301748123203060225858439756159938409436331802002229576071316296717234382899630702077160222408793667726411972419458805278472204081319448000329792979511845870598439197756027608740738135587047379478475060164995497781619400327721648999355846730949795702188891275285193864216821497841513620983048312742561426329254036168330502430129219812906053964930942806283318243001058717697595638513864289439484002470131549258851370813681344432708100576618148654782337000327400309979047946459791112072126723688386478431039927983928633416070155354601621058947508016612324705128391194679589848865136529621769176910989578165944369015339875738347868527440511730002941378503428217110638327503559813178106204572573221281633949508012369555504766714479089183970575380814709816434039943975600001087839688805351512384975143926288091045739533546152315780502406268380129369088279656274896598122626022372169162809414119377040001752488663926401865616467087072000701377717805549831639247958543067604436653729580452317244166570222543924729476957429800771444256100506747958450512324126583144752924695239407993578867707512160397798044092238508330449890159318442824872833927325421159367400244449031219431071275470052888758693446888204771167974740396201720104305048261163396093527391019594617535924888033820928237268500744601027269894216400867784061027971849064303898893622297481564773668069666598450458019163603771355587175536200213127593846467174864655440487310462423744855872197059914943827069233175363210441617227267088409377619575670042659921326729423590531251711020097484528187194322035251929721039995586891847233461210755064907000173368236644146542933212478568209611631059835239875235884475856893066736061885152991283513412619031259241905913363071242710273361406803729635921055666657628063080746348449867813839184197159906851784239493395120606274713347609237477196105463304069600333832719812860383677869042494592382885682042766465109075659998292217734851582476291632056131947428944016284790666881055062860521872385780186670299105622924082421439180154031983970382854059318610707324337601219850337841457312088419970311777952670209849944360174166949846527291407053439363079994640341030069623659053419264647567303853514940057173905954646503911275680287813418922732072442698031457625426819540917399457493473124832873458982841494221511382098766218477650084266745630536730462676491042339748826523375764421773032401567361864175906526014888528187574269767406418204773712963610210735901838135303476387931799394492403247715655855708925688723716868876477010639064026677230961039103733388475348226126748689706932502252219643677838274749790933166978403403045785787046507618137841360162514158282572815471602511663400307474122533570323252414445288475137236435288029370005123622484144097714291907063236683003299881432597414546367527793480702381484306686899074432774067564614310853167660913103016865033304617948777497914621147742905540864811348266069077047735262481759016862696937992596784805380640871787745703548083949700969387340205821411716741310785642936827325382583792536894325440836043079700120314803446317765642212021686680683160524548043470521371311845854591321942377828345262244609198618993508686912792932960561095406033225714826040554663632834678430159443614058305456636788542081633239341206037525711658485796879791336508708535905256945770871941202477439368717306739712073769010287707789235081775744144082818795329350920686671275632591281957511456085160796818628977003097590915776817705703312464606257600739069945987235696632078079270861574418005202255767389829871862716748654445919267567042682441699402271230314934490407425082750396811565718795507738148772885821221499916880694710476353657579115286755704574429535963561391677044731871461332098030606080577899903763260941747488987558868874432184503622856609218713694202372623806292574404605166723584439076337812829055969274293639328441638407535803712798378498105297173539159220138482409298523340193479784627865655796451109448209927353938011303583826895771363839097770143103799332706075980929810256736602292304695101978739478514868699055222880108910176242254372102086531933760958699789675606663710507833203442013638858091275825751949254354296455210090901014900255370197092759724122243103883099067458626192305074066819657058443277721491043391744247888908320785785703981831884276534116006777879521966527204201433731271458774218580503814845450295655692504630905919455032950902585165699463095363487778274858882638574926965664636256448696383645986023304796724847102378564384488695576990675181614736410742507722582266530766603951723394170189849402605690588371086527312692111948916669003699283493686716443413545331605389800184804096206203830693219180095632736681617992999423647216381611014676530207791173927756500122790311474420511908444271405005262062403361158980589911187372866259308872499083038560888857830374287528511592366083096117859743787069208998020892016544902160233809805228502237789253390581428452335881586549931284272949945482338652325196371768663970269721591208357352819206992265271986080468205119398401532851420976408626843583937676675397771071222828809203600818081035282771180433202308461812183740429769893277945508132394732244053427880481125907604921743827614559327707093356712646101204519177740456657545519523238947503219990421155167270417274532818958035170035897651835386195422521578833886888814598908315500447656619088964472591954594315953809985753912673596388940123071536929193745601640130783800234871535793560224303546123484604043358321988993437997684491049411416612764262292766481556202032741270062517601397457562265005489113046017559180056768894653210789758156399466302774337488606604161009575311049291025339159878400587849798863154230388124463721638248275174177155105401031411013626046011763591966044288602872303776887887086779273327633393727714048511023582226155237910127843744301043626186742853579084828152477102328746748643260912366530809577854430939708467857754535083903697469989004272446507082689221103772947840187091270349429565154998646928807798932158666630447447939827096724837477979126321442185613724508486430459484820074762769144105532519352375512665826938188881089053462880399589513039743447042361443117401763881919301137732097461379118362471961014528561048654962017001420607842160895290667055013190865873327017377449472019544436729172802061474076098447845987495882165257144869705328178795509322476940142677852008829353758114055019587577088188383757425921791155951460886050136093610577616675813913403855430608767372167880391619396373591059160760487698219003271491752555210105378775544789482584367227553245737571040986721259630798085405840397926482107441479800961813661703135247674886992590296240799581980430508156655935773274251526183905900398054896535794397616361147661234150789985767425581868544803548409714042268304799233520249996209262545331079307792364037154046041229056658939998809097482752226719698252546737490467544524550550193163135316505526736108566722563142037737104459467371141243163349187831782140142317035178656979557333262246546236667264581396422599470570036635359880132731005372145008544757052060908615981132423460081806342662235159046825597120975801603286296090603393072966478421006454321336065356987673120391569169334861156012131066544819799874991543829361058920180595280331493201043699114636992007318432082137378952962923710551504923156829227517980217333309959796054344105121541421059907249029952206229702551158507141335873323188176756086734291604140191408328163110242522297713126319086024595622605680363884775243750956579682413007815395153890379778950398889728768405953517582007142943884934718789335792392102509023617168170448643498365612899025647275002548751253617534228645693371072521033228724617260519625953632054918003985962805200172380548557357984982370926996589972124565791266297407717852588510566648239504283463500897670759459288835893967439864611009519924373778876561155623270152274713978024457914489547667272105433098245415918031974666316782086462114872688313825977312669624991702472356409086774038245647892414334875964938369875919063042399238237508964975046748292653377355702038564540221842160362645296733859720215953796128096620400201426548909778219898709308194144329985987308091069522129652697497839027087222204567784068215863010625352770319158261003160294962039062328473608553228112822949894537838695784028216185885747296217615087663463907875883452217351643609235771447607846897035319941883646791891701286112019728129156646188278949962677242200695374050990822166130625652265083295272886473626221756041267252749804992536752443708645992919958906408359995786710156258347843339991075927235771734687810357401686401968474116796534859823519738425098870723678970092204807233524560360311089318378311412874433517674203503945665813192007789113866051942164034066993048449583718605326289631079967958679167972199665817361609783968707505906093736421119450570816849435697149722652965490777823617574177484526323415708106982895275303855604411196730275046322456854500871952033660775086844629456023281584981288694809111411196374545558180677267756299031295252132980608278129760528406005772520648191609179942869477071103196104779883709831267403149607693976219970151736173044174466802910839392637180238351357830107614319486837220396346811397078668505157284490204170055795121213906927547240706012417577758768882372773181534533875117938447086242133973321731658171263508496893385845782481780649419730741848286635785745329057659591170510953209559154349317445261707487297153754504725818598141698993139718896997923102204054149373961846004053552833243194556051495778513585908435309207963964711005065531672654693427533274534260347410710370899149417230734442582159877760322755653466424809298386044560729446004541022263891631209745679181513617400649876166646305427331442707023001938231072386202305041871727759011837264765676491143791473657083243349549535827599858052309004598393706519133296969408517199774281516884264697138305143776463807558732207133105362806094965365557336861355264111660892249503051438672632090105980296940075366057637136156967361675196047776424315486556175133079736844323532234332237847796963854416608611794072097589661492375874424590543461067741305565145841539835671528036941713493382539620336848865187471629855982200876480085679346021125216274026864423179528956514604615033934185412037829360284177352836879133838211961940247942399081592548320511472695143793050443063513857447432827305240889818657638073120963924405966098815802223183890678400041688318925547257387907485351676533816852844227898139291098588383860300967988081603726283402372158212788180325912192035201488987022737847010863811786230954900502335420896727051736500868995145770107284071699679169902113285306233470877657146720653383531038818594208320268106579397969663865670290309885946648974596442991024881810202886397904440271556042344151074268772148356228997801120314700489185806181870186578576652883532816997271445052803452493777156028603628507797564732238228777168111829909462326501461224284935623279139688497657886946799132290884209721295021774786272075110851088185561944752148684812512084906327625256136565027589241691753536642796437059040548713515611440602454252400419085652018141336142591652230651091378403909221957947863480283756032608371792949639699476526866323770223727599948606981314917267427213359575076385785211868265707255352613124481316954437650541157090804658753312601047752953651746616525515514153648611428601812360387942758422107403283138718288076347641394752564178640954083424937237794326322776357401063998072426500485779445696701089587678870321694118900049369477960142986753245974988424159422465559573881461438635724036295359527093921448136326595819109687496785240182127725165996511343014870730797686342563346823858976653247558702302805698981128201000759508251314940237415012287106721011675326412871407308515811716596976284513520539910611445855445327338726115026688153117101656694944915831608417259106749881125192823720342197151049606286991634438812821878729450600380714619397060564407761148898206099010962732534867165440307926450162408256839759272313511180463659269078699056507928954421659454403270320650272938154372381284223323533546840631844785763196435980898259124074349682722066015114891927589150742269910143183874890561709774902037392559501232346087892621367036045524727099570990198249762754568571669185924786017018753302153337056801052576872476743714272780741293568750330201738004044728386543702100525997598321491284613951091730778673132171990983203943966849389168798864451849632240576964995540911224187601943114782541193764865967575483269902261481696024389539268428567124187954718215572625432527323583016946106016022999207684629713783312211933360008557871008242837074193896555683654801177539788094344480078081303989127766068710145329235332811772695938807623003425529041294854874572158013820487654024954871489515876470904268988300301536938032811822157779782067422533285334623146929074753189503196270308568588719663129888026529662729218759007091862297245017194439141072393606432881936207173630750691203481076042585923194399328188727633596476929482069678181534166904803793798788161593303270199491814467767842325365926113712144940109920499017627207008611795625079213187195871984525777475739401866760389903579518247438634757812402271458745637345918579224600011111912649522321923351884299332380698967952876505070361802493553603184208334208214372614916094743480062284052708980103942938900484633289364779541869854597781033107128285729471854762531788887297088184970516075477099229924710181267369757927711176489713499615706416331364514182835302775088809098520084086834337484054610757399450988744820776287421828870381201078339721981724003902368325222902257084603814100361369095421665305142675776418020915962404994059861293939384482718979515439285312379252592371642858397779732597478073987300654655606486823965787572086422738470631860277983630054429185586863790009812200834258993455302746281061749935157656823450411391468533467815866789189732346968828950190061693685610220553829724865770855832493398516301569247669707825234607720191316137211793738344568055071273852764952629790457734238677733801258008780291349569085503338619748231168352856609400674499786608484812391150159631945427209536126042846281600021125600864726967065547927986123219197032784049956426668299664524980778354349725864701914935942110397722381713379410778168828163955477904480549035306436818958613866785164942836910779810008546901475755882450370275005129418140250320266025543190892148834077448100434926503935704202165274910101321246775306079836238604157711474809552421066074309996279011730250274527678846284270993157900940940677564300417925714518304356795277168615987351283772994554339359051634330570022543244040347636788827477552154063249100788860823202547087462637585704388865726662286523118359965898275972575655919351260711529830010807940590931880965617912746299895105008877719346070145259274702045353109736980327340652623785997284344255402991792568391022596023355755170191305885424953720975091190433281181541306733902624651458839335435323285334587303954159412864349358376943467451097329152727958610152977531814550413729664787590076176582967634603957094859440498704603242257963689138929449198703490955569316408667962060666729580164787064018045692492668098848785332850220336768066212400819022352969527657947060453991117842118275061509239068565506715590499592345876056611641445182896024417087439004508315911868106198294846438355908128695515404053775842293010315063294849051167482328386284214699473338189453706395672083608611740550731711528137773199448285222153956321381281026717421089443764973476970885913125038685749856488575634888698003725932759819369244190405296135721183114313646136978976359019886301516749255600949063555743768653545871715458456759269677337616159479969363070731532908181694977939534691323843451364060885472504055497152508098623161468939139561618372102000121156449345643791296222285908026642682692317420333395911823503078166003705439594231344406870746697016184420463075616301819496284767791340518577516508586237899694645042683579321893700928001584500103581587258072270564589359250573869044213751922583048084399326650392456800014092242848657986560000984235950608160972768394619850189179551405758281571445051101438486855090197422108227590512580212407543416231198534054785705663789483061099867639564671509913901731584132663064820886819393899638110403079710013404552628836045763359020670462892032704820980293025381328955435341590979486189665643829332969813133473017268762328828547825866787423880792001332510766088336563836021964722141590017232895565316028855323272964160416166075623058059822978681597244529440992679308696255747451286489089067639999791503726759727587534924221345294258901490845688783292607967572103085829960008835890189489328208335085556423879548109978459310058430811549604198061370159341591577434517058305688632614258440362597251787924402632732330945358123023056198312401968302247205540781534753087482014925678252559343422475631614499421672096201901546501931518311739200112009871347326392984439667109359581574464524827467189668310250496771937840670529821540864076588571045305176995072692390498775889912666815797858492169304197127143334599092054473158008248894706721556182199472217462596908755475892194157627358184467519401763174356391598933819840645129683555644903417661668767320153108734197380768300675629539541678349931491403682182054445652512419570369849977001691186140312002342923178862706896970473397004349753926234160094278344608093379244724299394059035788809734118421252889085174459226925918198308753882592805142806125888371108048089462481197665667916788073795535849474458911304946122230466331767182209242707284021953187550623948783156969410794758240487195825074042473601248107593882902833725794368311964098840964295799291431870407145662206098129455335692342110901016568317158213245249978061135241285269563804399399601967748841445109445842954048786677175164034677223589075014002524001969724605710326301202863098795395122591649805002434348475257785315669005665622977415499775286235063065877552128396698218753430864828843971591438446978333700481653377186196797073007792583012300734960013307638156153512556424628065792027738314328293255102700539569853315803381037586414357027899268667838223082320630277506564156762504132962739757436563249957475846615441802894453841853116560665544320080231592606873791796522724379069244632507150209153781679451331485539598156230104924321584831601783276657165279509298404874225996009843871583891897160068355952388197057236387846309038644011260368274699244392876190237229163354491391827918244942075164721629037785467196186682383349830116306969069659747184744352542525576898070956680840315243326216006997611084032128109767675417380191942810814931027815944050715109308581431977601470973813095338459529884660918992692436305933741699123411646114830047983035498080300244167016560291107716318562548999537194640386354847526591875371634795762715688304528756113123546847627568197242033582334994571841548886263907490996009805445724297339654018592695554828365317695449619630985620574896429178588794498386039957162624044134102731547569355857861918493005681776195524849006335155525845561109277708872731861680902518035005085985364684451254266865052256401631401891737524382879339671709154565493873817793210714915091889308437515617729279446513289339327513559217622979020510957828971958797514842262971389073505710016824877737605207389677991054272992255175315753363520824224302590768002850730146917330412792737826608942361949082420469978022147818073486125287330807933983079860986223061667225118252446675528920519309585657161497446085800969253916616455771537097065211674100858188508346117559763384069510094866751867714854260303663318077191965837282450793733022477307589851217896290229877523417511022185456901482696750342072761625163123328590330366968697712883011116573611979334996579381189581618386390884289799328293586765957154386086928872045616480399266809281799333656179803366509154483010575953956634368444200533765172853247792660609423500029666996548620701668192399530717591715243752318787067076435186047013172608772446477903411128500869464157863999413688360706464958702014969291079447165239088316557461619618197515683934116006700832301542860784729569736145404925695605926862149854361674048766452660827781099164098534141316511543237440057622911506056502179539284331297604274408510392813967707175817683494769107084467266353969690788370676150948809292417651174600257604930313744026295177852096746122470311117382419465030432895456292866407698028124742969160815788712228280047556097116600185447966230068520619410794605184484710835000096606003209744035518613937405599174609721917329911053413481987088461228292656536743420169904120515726634791244892379551265386464987733279154140589063763054887091147340415090792687574168933347821719839905741471456980019749296682407328260232137657334936977483584277193120679005270259688338430911987463185881197417691979961098972423407669971450601425445139956150178862186627541697074512311028960312895315838858611726551354028645389362292424762170944195465354632232555656356082154816142141961676818137389439427890952731173835739848426061626289386594455706832891003103010410152172214880829533433495616754295685440024595030037075947987530915412415997391597098646214398820180912845603772588853778021840012113623218153377100959490999185759825965001515284969504436786206993056084919771335916361534757924419380113629499928048744076199489335227938794406744001991781355223678350266832151270894434862984170859774074471535054918700693428876828364386373357924989384518998846795844184085767772404427768160399274110752860931747287152127117905868885738377199229023058281365491959690393876535958065663868094694766788686480512934798461878658717884442770793608893305800148208812834878518792466766018369873993206677215060376663419331456032101905521990074755156184443892243731922369651620214621449883165118869575009931602897024794221898335003114596071150670842970939895672610050125664091871134448892283377545469774079251146714118015070001091064805589874230783252332261624796187396340710064283449067928290891292737313583170692251028470250059548614779222656875299513047247348048564934200105586301864446974159668805517421139520006290567405540660773539640884007928672740776020548761698878383000893148459669072862958974389060891437659758361143501100785191267458565966449450219931445781939527497376431128456051992254776126836570490663885805971508778199456197517752752870942783256545518006146540685225365002441695359534344442061609801501417230761727073343281096979683354910519654439836808960221837880074133134676185744030269574449860630387220525224747901229899699598710183406142869815628817416494232008607132382296946896641334253819047435104038445856539157359330668041615304939231062091405071783091514957148182740999668136268288910982438522901586362988136486464746477033476182772664495886843893505522573527818119654163679550627205905133759753641826362372974372134011006166054829705770742591534722805723264397098045161704854523629204311103859415452295500024187042338344695012107685261223773891697165812384398357738304359737384352292102001870530026641408161012118138677933169700926929948846415147413941864042613419015314515541758647503071676499610554197623794204591937465259949286346941318145218768123324871799509624219310883017445325936276214883200120360648566809499040882696289001403210549236158783676031399946491655186572506255338638466858805365595229597570117976137163806173522098810138248076102610088894738390757618129657209455605343860663496167470941870861803272715352364138307533863602403071694214217470270533402242471848168049497471321708729412445937733445199489231317076503773080035960239091877590187343204312177024437447804874197485084328857383561464767044483703991741116010158711788858672464794791693488807218853388199228092500859332823613564481304832123096772162338633762052327155815659797154331348571793033736637719728713477266615544518618482728215754830804332591186222934105992015141129543080988401877808582297943660393959688858121970997393639890464957108659672314061606289455426206072305711911828633868520785528183032908615254339324535386051790561921049692608131057888932383722110489865489820959511301503679308471058565283516582510258699535929650901644803609422624449428941045435349210532491082432472117671149415770495866082402858816901182307169180641642151481835281167662216369596769232067521915384750697814308411449569159946741268035998272674005625569669411605610897467028452031413204960805970650157556202904334284982270057273274695146777743031456906696532465042860199678498248559373991944648513291931412426195034355515933403464516334158420667190489668695117486176704138552819975038095592904229087359776435034998975359014807194529692522145599422895423936597887435025334909667278553111130341399279784912850319988291450530503572576004950921056259908375566848139607800937428064976357055779386788566361778708219822026416494957530774313119330723755209107804510022516725407648389708173980869649475449171777636104290752769754047969628197715385603264144833943923995586520465966167758264492948601645814446709512573582537916505350779945754170797734577589293563471025024075407106564859564508790571824491076558222688599060024276763245857427592870177124518279608163200839026419152107751185767954073728107726987871472973019366264941610905564988457654333056686122462910254073623738059579451605293010260945158723215435097300549991145783160691310830183313921451055734212515225296096663218713301645591467885206487600685518454609567686533854471058462427275517318863112422287806291588509880258212618511765829619745381114350426079869150753023748976010468415175930591587689155638584083181456264465573741126016517455232307309386144385468567952656870054972064284195059896728197377031873050439718486547260360537047510389896368330110416091047847795389307326791325723033024200664548357661409701979070424480676388975436908572796002248445077456241754042770755472745804705471017146038575326441817426220391788766930640436542682795170276394093606252694143426925363552175627020771782780265289436402064013404438568968802743084193123847228208696288175169546460668081188011753381702742143234898267327782156092395532606816680193639663848056716551419290697966334785741300569254707116694317287279573576532921053622897681644920005890338201947664337438950097734273647556850006114035845184648562226612859672247139368598225577560941325896781086484858237700615959517393501947617486061449690649417210444106222398645870102781145725008871528887111483511562289187155029507415024200895581619252141064342291188569160741869682026760074821485940439735893211099635758634903842655878763770657784208934786147795034661614380071041882175547784661792449781623546863761029057728452893953163990231346698069708215518890049508993799231254554341719166486240750125567703248102291392248570936786413887863485380996337771495295824692608285685199001398020988913712865992981291532127346981185985818070786167642304091292424738617000254970066243512691432533992107106833809176488313210386328009668425945875065720963698865225283898837813274804150452300827723327356098262481222943630720892175851875020881104883869855852789374569660124002211708912649996605445126302914427400650768497676649679230537407984186531504163161337644386179011692476844447105077163525381286371164802719942372802374106001010329797632485208156369574739476973216987251669617757779537166554150042881461189506876822027888785850701777704286619523330690815898125318813903949354099465767200981206031460292574387058309196102691997071724650218087833152029696208871504272033618560157005284393682504606822568282240140495149590170562253349857397943901818654710766838910227453701648556482300909017671770583508102853805079580494836949844909824343614003215656529882498815152922088076758705242365965015049357249235946642561626668421069917928152046606537151732645835555212599756807966413422612076256037460469540104924623612630814236447531825421085796771437974012055110271066073968811163848579770551689237021534912970333034583297881394914272150953380179961970816273789757954919665502611851188390683919648015930516734140542477548495076303778401458145185261675479944631987014581795501320649849385059837463440793197283479505811311000982488936648920238694727189921758470991852853273354821122047710306718049047695561261626161796965371299792159527878800156752171763889633455024908694920799766643183890593059264092365701298866822378333407153996980873244182951002282467197658787604089758460553922269392699034198219734558167385665006639803607505393235841745643436396272238295784558341098298381232685420691088324497067209484478975090500868444564995189603188274851412735092750399984694762280300064351416613541163813918560828635933374220151753487583867732283918492864096747709217271529243618531888321147476773871833068417415743118810849652678301434184460747828395538956966666431572005115879844870852231513508628539411189408767782101914630956102548111312101344324717730253516869122284048722705464801316574247942145507692793717936009690861080283679680822686364312866317512194920614104775391696558011928565398719178358310133183680763827116777048742533908290825791933845875070391376278686758164819633498335721556985477879905312250916933025204265931656132368178917323695692045016795618375236453945794354703673944975143228206103490527109009452938407117369024815364034248286368897341177827199321139016495857083987007608085145656912368710395507571189556453122805096474506529527956512987029474674748765430013633051879883693620838375662912073367860570434172537495031430235859356625541385496844523280619008330417184574791282838149484251636708857962606956019898959323827552238760001251661227904565864836036197755627835578291949470007710652959207197933960970378481324361824051207258339256466929670749274569408102310711186979158807938495142987222818598292848739737870778239182264198181259653231845994200820293233153362528694076483475693219717340829157754183485829217676873222628503720135821248300460285880389081952546311346915259856730042224850552061944416155678856158873813440880102590224148119158394421967277631693574815774303920777117364223541250495356921417678633564878511512437125605378263289161406911026448376783488110333954164569093022691588243889070296303464897873416502563019639531971718119836443875912500887951386133492193448731825553318224957785847216702154547992504435872511205054736027052687595963628034095544089170885272542540915939655683542661868439179083401984054340796280845522470635557591093198000847454795894784488722666569873058028979808010460599199324839393319076513230835771021113293895814486605086621157275187234802880989334887806000567715763036769306446443328986865629411788243981726889390068234757090336595513044793076467510579525388496265200620016580876650071701722371478803967396558063697303103875476145410983059304598219104814201448259076363197343666251095156408697845372911685274254611847821539664261071458077204386068047400959325212696383250693981090653431303803510382608338471827798418143567491593812952949701172761852560411806007738503189854088193377447416423750786450535774693323991439428112888705796206765798046234424975536211378220909156430288923327390677487520451674436887720216530306902765508496635093402428386830990076204603484559351219758644525070535343590721252166785768409665405413401231250215744068839723295017579881512300614993721138731021946575169482770896730413993997180924966882827486888098086493968161841226179092877657721731843013841647600506795306092195867093653208936295958266349081549342025712123379166453634905162287472221247796502055853912283586857843478312761580102114270092607495572871824959409186663506170924033211728204067500835069193429109199171525866793983750227637330071017124905746246830066873291711021874626638717352132146703663100207188212765451423330324507330770685744648758571887264801520157040854318842857763639777628461705768237514922199228765779732347997987236556286983207925804282461329230285919377340882826325757839307172211539804459418411965326143622295755826400875899318339319852146339188761355689328368933569289365595200199819492041267729016853386159368920808881316875705317331923643740082384757592930082201180429571036844813476980738419383111830172841828821670476534430498404121360793506360488291341424932240643103901682354640279089737357471024983318580603823350552265705631137891882205989355747885444325548776307578177715654693604303298412218469234967287573103115788515088592101069214435813468923494310903306804441882816208532374556574582031367533567234022005534567923332080636130074281124534791984887681485266163031621376477030719482828136952763886533511597034135577440250386049940359376374753919931978348044612560322539087994979710160807004311630398305767022834790328447671305970739976926185080847793994878713692211851194466327091605933140522913489765140766970033822958637630268644940590524097619787938105284371463834575391299594206685468316735513496613555012723475958593511774031225385901477117336748025321236284416332115631756614352624315704810622614489401982967440607827748041725591942040860104138227741198778307875029647667591446597082425433682986489123586617022894462741216678137492269386291680839223418666327025517253258027645980358444095812897724331059879267290548294449084955259587508499427732281337138586455610418143404720646846012781995543437003927825403915366872008615036376332607666450103190967231898663741041699971821139245445828701807787892720260313538520690645077723019830512559648896035819994205372760883700452653807760294001714217677585739179529151568441909177980718765883753671066034383054735227831888260374284924682099199450784405266274636837026596315055555435932971989555986253177740561174896723486732621392968692897995609480277618671473436840119277449994914166935430953698744936046718050341580919631336750968547961081232340147578677290114950811071335213945856140166948974941558343808451876990286550338357898827601767544919783738216649986626588084414344990709273440652186358015269308551127068759161833372710836932173125581204925804229425806114119459586570375957757765629550910317916167034532272146534410752783180498735592407864795311929760537373394033778786295820698142069308541066434633402432157339949672141241544071126436797938339580690137251998845435131566990250331030132401418165319757610068253013453955944935445372313671992110183512068802328261877075197453865592222029154852647810710663378461136406018977326621312129940629954326310373152951735701438863733526993377579905939083546638176684869196937338269353721205769685541899245677538170298129762667972288882515742887004422740795784335619962397221021139268332997184138969311591657163591666010200348833893074257629682487840861551535358975166069544083691980856213994486951629678483346552779317250914040222396529264489491112456683779043528945176938666333474483407348561006875941787633067729220006161848137999137522642638084809933335925407787209944193154891764328712666932270472091319815548125220700415022138985532687516166940551169974731441008859682453237514352810365197812804426573825075466115685332571864239311172585581462594628852819304467816681481459108617736181593167087851976043888014408867567350290611796805278565167316303020980940606209437409860318366588476613988311332597862209185220231317886299045058106640907592198626876781308572500330403207442105623834983728347798083109779838341897398899916821792513685931312349018438423602010807838136756691586606089055540886411832482277819433298418964660524230262392825772439840919891022275597603488039901016291184605755179979534016730114658521455630480976624002777592485895303293034321015755677164108962723511367718543073817873942284208287208238464862038931200684530974577903691792157665634683662125651916029185705116112577125969232043432101302584159936462276508107762563214253047562470838501756138048607771110152841305195590458022804580963044500327710128202660851749681756856449290226960580389616444305400796753211695834536922509894559558462222707491669165229183570004762824217023214129894892480753975548016377125970322580267350157898721912617816982815933160499909757718604260279501589546473233422286578637674418456202490204501231266869789292930384761334075074281317366701455156507720140972015179641679373752362190215778469954817671133863583191832923644458348426127031621672347049618145215695243800323791676385461976661578486040984137356446833053587175251370335339073060574898150599909503847955153700972531776566100537157182591871747381880931064156709289033989811607251724938483740242212080122512442751999902965257992744381283845614581438153848353897573237628186925485609144282873962360600065281789340385245271101657414337853870821963234950010954616721101293584978145200135233461808734985766021106867362095873141039038141142054405574311551140631474388329468083848158253443433519078547666013992630712441977648479003265467488876233865900975261943366290693731525349809550596075606260603175625314227066825504249040929154078603027661176412649032458650865036157914251286659891159028357286661051113920970723259721247922761812492335664513267562779541106405764339662885332800655352822769805949139779697346469546820609909110555400177527575992209552725557040549903147302567547422902407719000368632550250085507462685205705719106832476266828364043718863712613171016121581894614942356282898708155638421201623400431623774996211788948368004054361364511825428409370487466630978585859838951210278246274138526199145191481176872426000925221646741869319992741757841371635693080468536297025005390631939677859188077566295335799720289786573170004110426963727289985788154544447374733675573776795310471022937505278232524718444674460626986608083933062844793044711568885651668011374848471616605460986327405213096128955719154138773254972457443868199097986390882176412758073623054672279614491016608056234616151258964015296420140091823690304714774659755281488521818995516033099049518342508741951102952114204972869683634737677235075156944652202058104355424533421464786829623526776533699714005143336197660672937051737230539799917252199944424516058272053037424502733644869419464796463517981234708372972718791767940849294903996001621023002247802839944548052230093581224636042313120573938423420815426673555802442606528094650068220266126437984270962679269548816763656197683759813929237840294894512760595060830357765970054705866664910241594116077387976778819431932592292308781875746770882626989070846469307995793441254249566273916667256106386983584630013461894570930619611362636921673603610660779353670105401170665243762146692609106725082055284775736623069855401247895884515825208154396089294031733568215776619619076922330349681989768438203521508644569628858248382216319419661534979489332036298554849272771182099054878575092001216013085383455569501099644141138313130952404384006778326142397960234714493957300690702845545472465689865604772309197306779545729712576089927191777551301591649069010338076708372119287313915652018044043979466761858560352649590061576539566000696309566485219194661912104774508615230982820961368986276610985153024123949911889203406449262016439928257809598272613485763488874389460575785003490425572976818613757435824839775986903656678827469970142082741117242206463882706210529825328774831221908323353073008803577031682199465859054229440428112388067827530727816444408917023237382391586611837333476794457803067290220722530964208738233475342927353497181478171284376834744736596105108044522270498446798470609831271320060235436802700676950666992764714915665206775811415681716095143568903536603655977751404282238258340749377136079122129712397464842836516619381429602400380362864794987579524799255968342064299570147135599692501281933055740735029974943618925812610148204884600140763753472016628394781526824882721947072847319443744402128107677345491510902351514841657139954881155946222100901711005411452410502285938549482050150096314414488410836312330613109248229391075660310891703110204649638795908653656301783228175586297108932526564130392838460508549549887288779013747536287117845172707525024885231823647549113797347011946256359934513256179798319306225027246572877376023528746199128173096380129463991275147187825393259973378580552427550896348633000215563646990897712803144244511144512236057565418767165153962586868721827675932551875354413825959080375013948420081775964348204588715006331703413450745283621143630506794103276841733715492504661921051202523129906165595928632232388918182208062575112724669728172771752861881514182205345620253294078808596876651268444583805798175700448796982177998186047828083492890734674807714490531382301982032405147952843573035428604780851608417367221875830381545807254794326743695654549441227331732686307516064202265337052990202229530423479930033462642099513475895025856767110377335382537346136158852560676609688012497034731291267666419348751720747452376756162284198081816618730376115876210635777819841812952467526602295373610716347737744830611374992900652908209961273879145634726425112938648729810953923639191210853888863893821336093161037759141089253682863067287224450618543956063676507363050693464528639222159819954062113627948068272053090056724568842043439165477485483756250564227251504226835691473484025628891235352262963046229982947488613565785817724374972643332167012382675992487873825363544767681924194064940245676239227260676180797348719220663958171437718781682567399354487172878706309193460812750809655514148297048270365689312439474622531469890808158997586853237379757388467880799434653888177339645239989149192258767567687610313613349844436485877151194495050587337491887565860510463286273269746529607366308158022378252954461955130068918778597913085183308941302126111193667817005771094385515755542269241030899997094002189363613444327585947857313888511275432540142872329486976015575000775154064853497077818389482505547552379617934492402265697417204886594610857518422298194048970964079959364667386723908310395760949568185725205674245550332889137145841904435022393860909820953479651307987690822821737885217888228613441948426637983405367101255757434953478706682181167482153875054501579710465099651025006842459668648055506617712543016793509478216155671581452210673908206355379849520263884999642569462001476871683582751756868361355204030391938334070792411491952410153815079411194689435001925977443698120818655192721359746312818960137225068544361192401697115666550476983222582873992462295960347538164019705222057466138510651038822270401353997850450784532208991113352907198894449593567159519867569054647739267333991927849489608604333482399794882478019767055284964764038346618282761542267240538181833198863391584777923169982361661647922644314535318551789808529373629306757160429282530617038343402163249699133145740082764313763841098316480481976457761606803782330925152753845179092609357493752846414870735902555086333887231158548966979618602367356744550473724785878380659036203222754346156173268281728578716451859413101572880634941445253360273660216046051161130929960682805210211331497956085659175350460107032233006174291022832692436098852745439499700190232981497378640225774315954895361520246131326868086721708839373864688048496966880268140161221989508965650956437964103943318954884451842498843756654013163818197553278118083594225926131642256192571278320038724918680590074446014548247113471134568206938847637262900177505666824824476864827214479986365880716316286965660255566350177561510648821310459780530027157083359680414417465865650529455390735344354961966655250324079804859966380419109529488474320730333724306416344718782801164758851971032392271308447718368719425669622422953054848756081485824195575774861047287933186850595182031278524309341882512268516278992292259886236814738468022008934062291245986256823511415207088441884356616887055750820264999103973790578316813329028980225849868809873245493646241767578197363606388106717256324469975782501998114001628639656424942675000998827180077430342696176880038266151239603948456551554048767554896974217962282203487996561766119039944270863810778211239039062858622361480397646600129339292176115906816986535213793005983233328230333138510867278949060570629510294612184672668549018074448345069125236283552721254569029823981497379147876463280200292478533402010834302326237270397235665228046610432742247644444339268504593175596677543576980456695445080132153457871743588414424192962363384955240740066645720632832580506778231925986711781746365578148702109775057788987324987787656824637828582849180914679051367055517499611855706626898915565253110954777175579168735118849187547121774603064682892683079250837672553282708602887400813318510394112321429179747483461240388335000790753372108560968636065002007591197071839162419540230330915347557905023665899808029722917390242907860430784019799854924546711706467147070523884653880622502976812036998508642156921095792944683791328378019582207591560750293382282973048353294788765098578499176504666545609895095300423691446365842349068972539089556166243648777667870594096147367577785930602676170361938632238496369131103765644839173224950908507395300935090262555572873111846374672350394013061496947241180633709076838471302611653614263901749550244526546342586283640154614366989657126754303984434239398120693955060231225298673470222387610086155705022850722975417300554345852276491837307035279729260751768755961346393686903030696905581158570190010106325327908482085283112028318897795645459981415599322196332175031168354099402769860654041179092247363219970278447860848888118307640428784651767594052389652797293828122540922772705621825497344564088506962807633222046150457702980044717867478190865350549592658821781276759192069827187625649544080932012878635165897184639336449829625004309211488307756741968007948722681052268463050896976987546847482702217075134729810069824910834347797910249067475687714527810379905057282844794935634682879167106999764276005970341979765667767563930017392319836278379928113457753395927323613732474729668015829877267950217199409111696506706996041696233593597574420274256535412530082026349127162721039240359328794930492776570332072986789886676744976176252016574807094698320176298223543367223162237457683752182249382579143023757413884485597699125649728458823973312085450527322653208236786417103361734696914401911912507106326602456782248724056816750584912441797503724845089856760903482427370854354550832268217924990331934736953176517684374812966091373179706747335676771225836968823641527084859280863245741940465246269220356624632517910188405418114604130931761565373221244324407830765121002252209152601317873453890620059831836042555390049604494544437382711156177011149013523410012163230301021872486208736188315471064220313832356302134221904045503533905171331372473026386983811743818373490027406568628688885309991799183264855445054855418455834826743636097201668190423336278021635743688799175214835971111682999523009705485221191079945425229128772070880834291480807092630875692254453507222724791839588155655301124696016687263320722580093027994394271521174425063298283982015991346741408826499275664116700043510254105044547356608726607179260343392589262602318023250697820155112313499740020626494626051292881663459983417748998551992987493750920103018599616366569867322307988562716541688681408040915492005752353364499741125025091387320052045950300589842514076612935043140822996617184235657765001561362711119637736153688917591025743217100832788045392700768708228401904013987536502698081081363040915804047874953476607739988170718878612128593286557295426291804083554156329654071155099053696245922643660107788462068462777040734599945674293395273693168119329884168896165180040590039776443220434242245902011197185744720935170909208251009303959184418546768579100422246619395668104663148263846734732596090813682477774024472106766157805742913881025573942703545280547799644989980813864404498043133052417955253833285717300437601358402587132631550276650339364884869135314734839867072460751765982471177157338362928155504582233325149479943029628936666868653352155637386437391770305846797192494164975533007062517104486701796781330160557874413621672954591954144605861944906407727954845016625252931750461598899259684216341647431190497680945833913945291564400522932624942145693261874164593385079393693450093603514334354488188821139930623377284223468482857770366141247535728006220352839141083804513999379941038412141298865177041966927097021558560103087902251028987778988326638268937193766014618136399449950698783395641048043215269935172868421613996731138134655024245987750672887043842426991389896531024115363638994744857295813446622047715921786329533833963361474249146133537505238770847877609950167270421700128354103929978452689037479390042642816329855087664968803734425322834895308055345150897950962329939890850747651944603056018217705713791094286948696013860741625657424974773353290137524057560664501517442350904027779205024884099200880642388478957189425547651657271984402701335733543257171082902286137487027932294793825840629830352367600824020600661167871600102124395543488882781580439092141539198695033659384342072628227105687109079111352135764332750038386703624859141679189685932964132376431506989738257294771010861657326169953683804541062114053753208771008464712202107973929701979863714958513026897667406068853225237420787393708740564360722643024951532667232279746490646888891123669623319490368425379322484796241135632669262698646567050310713987280829427956034059179483893336790663402176470988242246537735287075815061798494143438212241622462960784664366650510432733188557246532429418455536996968223747724215663982117114085133382124144657027471063635593790501959447069722113908390467915329965343405083308761130001816846237455667101099800427936899673303327910541776673783969836269884157401188132589934267089153210888044083985512363554328090097508901158981070629125783659449313864075720095546331677416959259780078533464380137177370674687242972864267010507417628591454567638535491318460003859317508152112921160808396495568041027955637314580507862645060344673797123981046073533388561523164697565505218876886144045093676519422575220879802299230286703801951953345422228493426840881838831493528442091671682794680973495847482679558895012548841874985022081848853071126893324914013797320093904632483249961597313354365764445735945201080837865619249352455612844341801213394206597818972116917991792518767184230335137342737386776360621004199841696076832619223861412832235173039896876209431273970442055425203178934535793290181417193261243153116604142619501001429411411901480174902792749064297285171199058063986594864184129260567564399557428434423238213633212814566337943648151130143990637673318570203600035156219740572620738723478503043252308107924034272634890455170893369384084403945855042023802208567730800917916335003818122516122760172187414364020520040458676667791177070010611809847772963564386886470216254877514470813027625947602423859133893357600889160016434523908710402544972067591646337992604054794731351116404538726831823189716631634979817990644614685147226074433404426966136110625128453127135756594946196129018074245803312874944471705391856649454939193419744667631273026989574860758079192376484490439735733692693696438782628922206991960103746416699994000128753894509918231241211254750158368665909934276229612781775037192354501394445002651018129797658536053208922947708549408477269352523212014804374263534725112444148645139483092226942694471819432966474618775891234088551724960484695679819025219922442816115879255086526350460029434600070990259134675996442175740082550842433300958348224465378306372019270998450275931600565022975179089983354807411353205657295454510990027577740510924454254657288694500263391085204377537235983440785140433069219402342281998702052513785467152426365811641942615471089093395103684299438396529361188731068448045259056477705974322787148550650329820492617681981073038361789777430855301929650294870172306401960511831555890323223799270065065923335379748771034785032388003818143809783907565026002020705106366001389860573258367360946632166981954747339414337292592239104836070550630313929536833702326922679890970955673487532579666417871729182483761104219117627664438302613888910872533492106369819482408680482013536698979421638381334292040241894804771976705724035635849379586192321018548207813281016998978963607533775696948779912228219271029464226116823899410111768697672728555198265604162130062486656460494138955355124542512122636426863849965085959368410833202509240683079563598545720260131435555950409083052180524603725131679681726523171367605397521279145427226787662427179550040515597115701420659945718338679809223634691452844990403493267713300201849121331610778713277435130292820748732475022832309326068113891889514334302265363745347756662175365924169826885700275871349606067738431544353251100216496631011419276362039398004328694126697067825137071519743360315246876466506385074451220487802882807531249383763777295907694247905810624280287036780699797149174389101195352709529367056070750082541749249708595516177707985964611310312683279083119116106899075822831246688105834981039545017266672556947245086139444893594441327695647179729936490236573035057725695647359883617711879576848761840872708292548134000103974084082811604831457766293616736930934640237763866635207175756441454668512102896101809790045366550043207573068891939997853548363175258614454979817567548199867324193576965775169211861111153016746616765632814838374926858362154435242642631133695426278243768915076620686285519367140606738864442797967040221532074884481857175434376651651628956082779666128848630755258121890157332012534122964032118729029380899598647856193368743550704493243123364452506331848556074440881666172509708537192251075412217355346256191002815947472212936849400999551616023453805362840243156666510684646454953026336108977442915367420353076987541419401308253343040297327065978010871229458992184923669521008840110499598307318443075267435911258527562477131022864562671534976657436211812979276961990320144345042775476393121205028309825224697438550503309814752458007015229046166405634887759693809143293781378910468014784674679052038174081851369314469721091185983033186035346850610088777449478312941803524976674105339195851008989985613332400671349895036161023660089631070028807448323858842997272196355887330404917178905342831934539769531836233192398441388619695888388737781702114662109440953556480954142856154060252572111950833539241743824067981423585411777926597553459489546846268049974472364666686743585790581868869015569719097572785582881916787762061678199844338813395351607926691788317178062327348311845401243419087393318349263136541235089070107775887161451049703946571623628373790706158790698770848504237529381609826135947658356053683725537074130374123977427640988908030077507869910854296178773372768232217824419702409092098567834128398069264976712822622468784396119444540599482434027897086642794832122338557051153078495280170153215305090761807150137071119908951960514163197948732854939029823195806014683977296810327996398994697393831185913314909408747781800210595574752577551426571736882692576069072586665826087194968686849609544086225996169203028350488544789126570741467034020626800366841089390014302320809938972459616146622634891581477346371818025652466670204805202792153271760729924012553802340003584793984150072953459286737722954164343562688120671388928796240644682088989284522839683133002145546214773787533170016495005516112916556582324639962622335910008197527518406362649160921134293678631457243216682062683965579716978709662982548259132257940878017221355331707483866286590870094171580162797356766536168090774952813253980096897229773464359802428001486380925825465650786113658896399414975558664267876551496691686809856892707168050603947253064584449950290456827350505704462136311794658546271805335834298063783789630012824478555341080227506633571128231330177018332715394454246818963010508263398139936753395486516375986951925562030312429455987595122324874216606425642789761716242878753180611048567537059964127795974910610665629793223263326643924939766080169909985058163221065836385621607100280359852991869703804677069124952736459860018361667718177607588287257221995612482836583302897940701992726266408258957303339922809232537164833436396199102176303724770847248605608989150526882786690556897453051822375382402762126889327581364019730648626136826278985768136354375811400644010196753866364534412395557196044877600177356482439859612595108071174911692110092816773962688563258324768670479055253361402030267757559995852350063494232617878283351765590374831943901776250844944649320676946289954277026365751903182127664998844288180949291057766962330278188284793768628342661885460867440997362692543458467623345885903929286681807897434002623577301128341037438451023309012356962041977167074909420204140890582921725117397866246140012108515723353965974759168461616149390281763782237101300313424147117353815159150687263157956253756203018418650814286520423891564438818741035102404355426512645014003737520788949472781359142475526661217154507875340363144312948193063541579818838457092965770665444201903349894189853567888391310022443853399862747888231726062999059466448070028239833162802407938260112995662203767269639071714520145847058595889007024180142983927473711255549598021468764529518969815189337636612798926794049154612825673045566674137178197747783060527716984957965218267121599051572823324626206834310677665040325450904963028891123684765689975720165316229754207316591946444312694385781944673361877723635515141367150567948535029141721912170870998302519742466203356240770453379187855962040182018035222246214746971114705132352204588622220416743617194708231827340248926078074407209494130968108307792343208210091545574225388352220186009264354054818516167443987771067699595168830549980019074240198687485168765476333046273577255098269746118624564426507070104167051314910847039813069301450567550847979339837902367501232733200926232219263897447249042254558290001825193651912810684200795521353013572041435811246418027377688856993754305447394050836714430894060119517341852910560627967593265793895358061063622154959599197374866225314904458285758292447047163635379971664576929468742484015369693858595427176849058871000230740520025973946196667354306751761688948996615597893568251845611628342524271477663029785483670513570855457040454044653319719892773347494130623895136483779656362223288793744341281308194222856874441116652546748645974848715911537965186198321258334066165514412474960157381302985240380277587135205825517683561549542548532708428285564447367865991329456756279643631738822635412125644759388530184699871968369319945122926693246217789389834683413656986887209244077130310185546845402079528290657452199477032977650330209803747784395004025253755817485110650871059679598752203961482244489607066377112440061429832328770645977977863168770104096740910350962887816127096820486926852586156139436472619286907040520222504283722200814281878342799522709843438977098738738531391673277963010763293167125102729042527404904022569158070512919861572197962521750861098164715157688596367603599117760869176663357490391353982455693257195843746045369694223189845963483427046025938904555786453866574864588665052335399346323999685605724218330164025657795186804628176223920106322446009006073530727200855298438812207172914923581948193179793229443501641656030020879966514412818145149581930780047186173413019079013661157170382783536406497798995526205016214840566344053855837612912708063007863280535334477531384444741894741685716833588897430334856554898836047748947170989144653864710214911729174492696998091894853747280498717123301241516806263534071069282654904681057022437834510898482493764633869013733612360544342176424031553908189780301296038748564860081465252835060817047539307541335945648580757000800888409007700796404009659765078838794717902544797579377493384736730903716695198915915663169858571726265041810644182591187147021533539975795732085791423967124411039319118420304016561235785571959891518082392752620672286761549085004500744809997051165922754523134590977302761853383496051952211590000357342121459989617322505668929979987689743362990865517289572297654529853814940487716633991748359756207877435318282793640397303815326631677341307802955840682904825065751720903203751751962363383522274587822615628626717975240954721380557407875257789014902198168482810094386602810953738557235283263848265294431180999293441799179396803871233635280310095154937955205951212496982696504076990297671410728156378370576082176804933505945711549942733676108440250497944748334957142059099685866206618235615365952066223709264508931609250772248125354292975894647406893854978770971532148421870983022098042657743922836993848737366093937894471101321076107184269967224589698886872300209563088093000145525338121370679073959912793892064507723027137814723973327820854437333364957362069950101274824559753181711580521595296061724589874077425187245405100285631230802844557713997554244192623422768027749482155711616215702731536476534147843595273095973470948176859630444918769676254599110139458500941996491941799346188835402503044944789682882151882362798611554990012401474651153211310579636615552695716316784972531596888321188985629366379768316509871189815657379547783921874693718967410015823786722026378113820416101264385131263995262735679554884167219294532740000152223054627184164561620166734911101910884302406519411772411205010846542123379753514321267719080300010898368106085708268259525752400619106961333121182430994240100337631907773832858856734810556631476909687010938707733133035762074917761660126073507762171085339754233717819944963226730594635474406619772746442418830989964034611906328864519441511157966123252133635145042004982733337267890792566056062295210427395997852535382231838888171169134061955294098911565619792997624875230811986170000623413975259800583806114475798378127450173334648044099718757026898062515469918609747180615300960865182026294598361148834735065644759719898308854182881737573016330284733875009064008134562669061429531621911331566076210865796665625090161404403310480170577431011071289883785387414967004374714490584840872655549254594833369260582361042091489269596273365191579267929641911334661483043141025729757255231024002040323374005986505416668972638515148762604740562550221720658944016390243947919967286117690424845114204155993379041560739900239096960846440581853399455093682645193887486607004175965039282256691401935471314772933297536987937427063564184424820531198939333789961114543949633081210757732485610545626576502727601976895685958540706932339079019102956619725368336416742875358623626254003382180424626153069789038800594749593776261040189198649534822859146284644267219995519087765685940741932539260582889308730140949075649246964225330298144405152840144224026008387802964103671997856516579923695607376457337565350852489584537075115776758218675670966701353973002391720798139435276691738385669494469950302004228060115412959199627042609694401277999604796511468469763809033635538418259731948724459101036290412345277097883896800781124522498760651374481000930419916729284671924659158472676273950676919766203725091678988611300277347552131038193830788019771852277583775680834185541622953411583923011748381780707091656042416859634118182137724570216643257049653931477773240121590345057224252108762593078276304940617463377934200164436208617513154904642999809121100383302232718397202420675320520706385730086869774305962042877299012723714375655529997754945881195782590683086142046538442501714665283623837796489406404827169143657404540150635348565033053857378919551668357228758044732679494273279550201097041368092314172354773280324400031628552959175034054486289118425299466925699755385229660926651980549716281156958517671734046482624109796658539318037080140542642150333901722227146287359591166006660119073397701126131382993866175267974884704521582549983231677191025967546287492777464907691480429351078596777445517749474284377915488651107020954464324696173032046606110569419816154209766125812824625890701439593199673923302115984018114696398557402816701451743109490546881706245648396723522687696221927651405248628490049056482112520782214471542936747202579359935117071528198811279984420753351050798757078580684650524186184925995169192935183642668197272202380495519821160828920706470032954454469172181597178626093687739638370016287350828248786391340624772116259535635721530418507544224078070623823910793983064595234098465982015930093911023198365675636798598318287888767167890816345308191671792652693070035743789966410813056076194428415339590421737120651707056091656592399974237882172657497613142936758216728408134323211426093913712195639785249609572037522455129494251355882827666544429263691390321694275941717346576933755264082358183417310003925299559681026595388284647330058007623251426378601374807409487008364424774773353776447845079147879939761230972610059537748742732601707591822400314391142290714194074613356695021720034216662359380903634153969280997675309844364430357997729507754166149786159847912303334358885139380917014879430641785267962660278411964072592521380287351585702056264079551190282316567027997801886049053054451584990118154529295117918879951837845323130369999440006251177237869689559186580243494119893089013524438942751063313028576822938951093739246486924988558844522658922641078960812245124279231513249704942683008511730877268949773083599259423586818320570290939278746851714921856885447679045522045801147630084634188219442783225966346015412624636564590937743410972961000267848249773894327068817351407899207634776964352120863170808673007482821688416576740304990193769897765777957672428121756604616983024334114286426347917132611625609699428104704159998641024359091057945555884878170366107954108261799571156359333441398156458143120050943741672398964975181334393672537548534873893690099186104710011473177335182609204529766504252067350167313750728411490437735345217396936580033950876983278664656823015779159478195795127613957235899801238397224627132581290142654830089319619537259884409567252591528667762693138861507363070676146254524224009485665582620038940126922309616090141773415553250420239021000456460154408680279384699341510331921670501974387637896489928955238226609609468351947063569139207072299238595497211371245977438287766843762294978192254031301518977626794429632763632005276581676945007407584968884650450148009006561140169778241113687601265658018234321711132689563770569503304033377592935063312485047464410053055809117232209052232079010553238601282072146712562545963290045342209778053246460087388620334113889969609166069028584312054382900999191582351866523657341048211016092300902541615081291384260413767502285436920108533371271163446208835951122016408631096899007227995556977894821959148717685173979426424759728489274680595033839675702520085022497019294557991627585993818118843264803763382907640530160786809719867178209717130954260952725342138601067123754891751667759440169378777999974934073945301230741794810152603242476646914243165517263779567078394436497858522916187262359941510874132604626221586886117090680073519867720711506456623149235132405130678084482655984504671015206161261104716485761992660364304373917315506147859358860411222147157230637534584334284391467990031366916408491913772625808209627228895132159834959741040852569370819155401629205710450843107571459021230376469435136956293779956623644488477996466226969079786931996289847927365597835532605535469540318105893234972171535106768750198979098443741869264432894024791229429713790862766922845166922103472661309936477218841996075948471482090149329244889783628290215597141994885897284126424827768228762858042397157717269079752530811155145602610538568177333911597991862585624857186346636695033119137292624655636859265424353394705200654817051951401168326642334264337014044564765064189271910550797719247126737830169326864139751868481595800905609012455415708135745484563939358144052086043999809879550790180635577577597601644771637954930886135162360053515482365750786220838561270556504072933667614097534133348967383927102339774130986712401274169462199233098286941231261278060697320384015525368931896777117673272979901431845000514669753775327244152871196338282994927833800392731446252838446669160962038209412916199993735734129290078375833586994057709208117977593274096929498665002762292178132958328721766707718799781098685435262372674716250916209798072678111628695444040861080698111749546381200514979305246738720019148462920772348625424022917757666363830060645825482848247758007886989480058987752594870710119654820875711104038505249869239331728450915130965038834206552285770413534171515073634223694371180545247086967989677121431292985107752287003286851103687335803414638540480140950371027221591034514912218922289773557590844125732540250349319633498608113060901432768265238103058429767135118105419479387589288006463979048498695756680976520669263638666782331283181243345938999821862259370499665500454131662350010696348615159361074632288672904539793382953190734025822728214416292103283854238809801566033509689372938367377790232544719298052399792205586456248287601610122533070486730102264815955776889653478396788278653672686491327103391269631407658400568062724968645587950251199966410137526369629881315684353298591024168506400579122294038861796483910215836775676280784494753942095318952391307509242733783225347560302719128301409111061114197588934878755596692205072794531249358176361776631877629715886910029766666936707702758652133536446966251258107314820660869372030611425769453846988759943923046190258317967756765897609559848558798722721791861095973719740395106926319470233936679495759416465738599597228479256383909954053451431061123519921168723664281838611047058048895312264215515429651112391680135201602554046930763141611338566703486818590173718047764434149076049966020395259606732397118037397705767398360717881307707692004547190712839728517957876303867693740554094695798008955892466379904977937800813562637563924434250991781054805816859708485802827540933396388458192106289706307263345465372653589615191076595531472872094688083848311483881294816354077573590870192786700992977673242140684308344122446857463521889127109499982461412864125403225398121302739280013005764896380425709051747681583388242799889751417454340357042813377132795788910946341194321656201195787250097144671264238860570482118395628563479835706731098964862835639898891089790577648748226636948507751315556070277727920584870444229862791849840494689959931939163817604534100032186465338650877623395829163951333977595782271705154710022491521359846162706410596215210718508150055239370402265871720094228392078471255035647701908646742326071555754304907631695575114909350775509530908237166144272473309959521201114301939509448072809261592915245278370529353330868610301526304150308515032634566082179730940835688580407439504102626758698660678841900501031734531942839786222521602914682416776997000135870471380503176495122805571524939377600580909409299951751457870743257454023519464156814957921976567932578483060140659826805305288601713949456895819262016970978467431840652001285493244082754104715465691785793718009381974038285898561413534619770656373475853666331388880205272216506634241328936095818838241891669433200296422883801971331196914118870340506114568275771009877346811024366340260733163772572798759988271009606547584423537051722382201140993524818460606534066849903275111510893909332483517586860702501898187375798911605191788419026629240044386689155556874779185203349619692240753371647196075952534453267649028964797321151280874896743937392809509549979445039673840293174277936740416587788366215300024397628245467748542655879095183667605850844172324654755868808044141217685408277729748773203989341898225354236474353892352282558736540941170555797029853640595079236375331206767269156953732383242317866469682674709140796615222405081038534393140361479683592099981502204239584637864906918755440050897885850287047936931833514546598074145511182140444526332750530645048293001350415380783380794287717075179024591613042545890352748454580053507046959772063046629530310723520659282747697341568825692339213757354185802325801866241730119755004456315351468524463914940317441424099622208737261376056891680461541926169584574804374246476545990391711089713196415333243659322027840534842798192179886707984698422306399357581454105087715975757903732599618976548624350669471218154112704403247778304944153922781346184295563784997430679140324154402966092556153017104260069154312273923801020245772547797260859730852959039382580876236244796689358230794606030747256881986939290475520188729409627387788086739685233481046823273056487612504790566601919091256342970886136949705342010068876495426043554717661592435449763551910203901881462524268918649642337521881902841618139329619063014347894780270216314976041956669070189370060631038169046686173164452656513439449475119036385069911010900070347377464020399369833367524387196911851280943605919484592249211954029634949548219481409676978742784521292383857603574639336468356590077342388023145323051361047413587838981529860582011709881687787260632066031387037650343635731352200725650026585101313418094362565249268453317115085153841765561291092535163402451260049175284730292932086922465808765430010663066932513666052588726145511438254868330878695981142993692703293995885414954044559721430546933192055683786637531261536271022939845509867285148462010822477341782059315506401231728370755593938697427605097564558152113545794747845856857204215661745936862077435158743902904360911081142383076072080223751942749049906447670447506811079091193214020899257617006438645131777983245341304374646930767197186753078882578811297231804700409862496352717280263862778480686200646330635722615215569056742023143732810909750586691073395584731410301750714786633970698277372731276091156267187812061901007543636798933711541248064923172119948297903372120455774495914403221962773334096063844129834602192965044880289405060512793155442005964749168217189475286319957007528311771279035365432114203726103805411539154033704509842222484569389082512966379379026848149223401682154607889075567110307328100843711382643893338542715155020356498366006891065916845162760198849098431846088679681623193277068595990307515619773411850873777632523666746711690278350998214875408414528247034091811078671131869103190874808614846897479499626872302595971805833869643459032605558134850395123494480464646145650138891735704499685779330863378531496984140955423248985522625282560797361954880533107684537124935468955592307788414557568975222213120490168666905380865956607894365232862023030984344251496911557153039279178504282131268548694026868354388552764363477410845882101207509898670139038716555391050739690854970863792759295910193911929956174063277877806761723200934985042830369900530694144297450188788504099732948029069728648268528304103183542463170426099515933224764034808025455594265056742126499590191965523694272966426415275473973290959872897426405081652643390865964073675814440224908103966889556819634464037176930844642210143480292908487205266028526939197582339359531354395141663647806031508380256281814774828053179309993693571841812140091628937465794669611853553939036151620431900622485754884868779516262252178731518442639238748624847285473449127533133297915628382144635379078272320788407005099220093193557552707677078825352631947216616138906485286817167136714815955058582022423145410888397016671466866671804682099042319155934532656222955023674514987617428530706053090990339162882053775843304260538263978627320081937267143586584231683187003441783620717009319486020148283931924139554253942932421386716001924604113118506430831589267913713519275761252647432311812410689769678149239482149609623073422759179546517049901288319201753237620355640650696614683254881432899950535625139997055896476370628517032051366768751545095034574744356088750435619112822876652514474209579950210360486753602614741855480247549658201387567626587895047918550813331642473628606263706115875933486499557806661349281058557354528357135022460987233341871858835949033649910606306777687024838749984423825050677699078579742982594043935952117403288034467781845966208873607587450364537387369467532591470874512722510721730808267352296712389182331534284407200181182060070902945835907400577665379421961874577051291727476727237915355055543970590795001360405736602439641677025781898680282998281413249780871124239464925904998951080169836455354474657969548211045877248729246338183431074164521312009165412977888103805040341157684889721152966740179574957573406368680274009274180967560000634731414786755472378015364967438359520880526370806508054614786499710011557687546703897716884314790950268886430231189559202764676018347615135606250901283827827363188691907406001985390433440558922920366043023377627643067634465684789630553773193034514247465221145611392098889162984501670624013602001054215683883787379659607552739738071246579944588942915107573047208419555484722011780149554455681610433742223594376508690270221591034793062005974872812000934800840830349255914166799352097651206460640485466491044139124850905404397633178198518820161934340040892761471061017834147554306537943083155591006460665510042986223498603927676837601682811351587255445895005599101323193019707722762517384860802765874958964044900665210705431771785799172127136352845413161437478528378674821849257157407055898869655930368083207930085181836444621677393309535300646151055073732755876081719653025258641992331156502530577553164001460280985113138841931191880770514745754508360714571401630479664455239419153370450851992399242270573416003335461764460198849121706651576607189380009103236235491263166811452549597125235681844361033142484630495620630645187401878287437039266539089592592114143228220946592216480664597288585821952550620866532820829617892229315846440460382843766374185854348668075542465801431474729651358167802386939241057127471861352163044650759691477296530450311885003672754272995991904774013939291039618755601472647775677135092366170793920850969741607463043577848648552999108854142586642490239064567920519249899408758261856274938810896363236941161130817298423867624721450231657346714006376541206718064623826888274583481647159602102295377314674206718874459091069670959424065381361846992774384849477783621985986742156236761585663431221442477439043213579524278421779252049923885739151762589746230950334348438170490658696822338084170270824806495084493882745347172916142439044473288329328357557248696856819537342328550367509250543532826646883040760129191358771711423276744100017341580050945755347621787276492007288326127355111505507720447030506462014275192116074782279969958553784761945839007871686205709736043420748284133843700983388356355140154285610995646442868485421489913747459779842725713389492322515722765249741215458123269537009260419477385800803447646321502618293977237505325600369257686043980738597132093332127975673509926745367730803718057225480756852882871905290712027473161727628478740360970626153760157564688828687299682523336341219878628620946705635416663904470541098659075586581890423470061473387642785349625092959811208870623293082073013963918351732980066772748299735217720548810822805705558975142550898664410746078252547679763343183461876471550763473020255110705174563776160515620412608748727729989012375404838861241841971686718179493596541908419500159216888401039702808890032734305910205377505384737634022482710587317446330979707676835450851835118424399776659219221089239806617013024959769767436207752002332699320241496457900752088216721978735783324357337828036665908724516459087727355475067472930231594335236598524754903504423808416742494274203730320477246595791064530100255732843605213181550028889716827447545906913726332164142430796959277277975202191427105371472001779201733382425373102190220625520125518566246290315452333946339718807141113671460064496596306754094809307476095976522673230034669959707671136340030417573031828093214195125121576972795542991139669109439890242882290744137201835799042049072403401774022208127419078960557674268671416611262368346161975428890830356879543787395129928144698063830388581556058681835030941415977836614632773946806868330372781482325320938893304865124626873956659912806676668347310678734605899827643594952589431345469424477888779952306952622442345129048046698282478601114309282204390067349300112040320828176737535355227812286890259955612264282014174589067519895655056038261814453073845381814121641237702188996480560263183099785297325888197709726787680274302649644777932630780949131801010559663725568371133130505132807442060028957841556971352241066244127309295174600001535486269478331536587238551035818400273790836652162014068025792978418584679186553910045357109758294377618444382207061364816886699631720927552719464902175643807545549076392219949443483277192175478497039032775814849615829719771484742549034078566412894992483005863600476132010148622834823384699904955634660202091170245725238411631782082861279126388786019999430515421956700106113219114429884220098709786903083394913432993232103792589163366131096765651193203859197679748785223555988382331504239527748883213450749464162707472064191083999230278998986558796352803670564302097663819999022653328997285619593949026559720591915482544077941032571165036642692146924364138483202219303271158886867854686253944211393885712691435983773083734224143086860050325342514738449311802396546915937650912590733306187018215496395678465249417127320518099396442298252706450566028115948058326953681617374999615024775952373835345762250987055483855466291830390473077205500326152327761569108747992870458875255695203397213919316617592390940785551449207817068069174034588192595487823752156135135230330930338332532221295937966547279631893549072661863783213412671693400779282601437474867230233177922245953026683083655974435868475697194977295163768656682520352817575315566242478083249236774696105589772170515894373030274669996733214645835661222639515444522624635651552930585740289489025295187930106223000504403415225855616257232599740568966721253946134933445155062407506090298724900979986209028742951885282025609340063447211192187853063905609727311537127420859055303533749349200193150548627352977263175206076272778751463896071050760710166618380387997850975808759802226974939932396233741339439951083104838108842160369549066244818635294111657649833586403069690328242779670925405169280107247667976111594216623060517188221020728619275751393303311218997172252311340836592759228278126210387669673542604889439337807932409339866471997036911067580679148467901196042191172909625817134209721851032932020474097564994760343351912071461352099678328195749940821116079707543553278979168851541691823483053905898305252961203461796156322450083151505025301179544716850340103215072001769392262104092003051039222677162150773663996602085267880338200807204470993914871469890325353914245790039666488277530728696312236122318133638483500415590542604301253429085996589854118499965361097982485211189815713760626992717096855426138560636734186278803387289687863825624997299689306707139517436436297783619565706664880094997493969518268163056846640973724595053226564925036653687544175901104578574920331460912641070389796214256046673541134397849644416502777958824947341626356151276065048033948804958968656835116462977854763011695919952012846564737930692130780409575024960952199126662589133998093928679474097740241732412459500701292564926841573657807318816740725797911705969085255333709053622265621441282484203689217857370554834202266656314244709030904758534204682191546799560531615252298238317836989161770374469052317162620696896675159012236715225217218726624000897545741742103897192129211574310942221341514647707446917938882725187187672122633143749836608336206952572344210115705955662367578116458267039330483717044202211123663476619241218753995558930387988920475731567249989346994336387495977952011871205866100241592307135692156360769081042727215486452540900334054114398299204027064947445960564827963242807857916630475506217246283174910033740114916945025916256705900162216110954935649490468872937721540530352781156761376948085821391474827971995181656759038060296084610520710119240485100562454417924764113641826856357397769260903686465229168315796496267992658869015081699598348433002603770041095139742176613719466931717987542329264483876760372359251405104550220054493277406086843909982672528542291703209824809444629510478175321276498630740179724435177701971936929217815853221216765107519799154777499381214867814459434734926634011542908567461539915099092160946002102243705708740163251186174454274198362726403035769814932411267905439460187442036363108190192099049685170955003670369730905879583266710764804264205573670617645283899568069066835432231420295753090847535183404350074929419457053854915771683863623030921580727107076247586013678029040413891397401321800799867812360265366359963032394373167500784475343956581786588228316190727079363450028213297794089161468351595642469344170684004607282550532316904273691082388040523871339562374895065201222385461862608384964877855676632707769546712483507089508770753492584935571595448980519801804449644697026259630033320083057422142550993134784710946181112554136052044503532808953699540326516976272727222166458621308593303138111832059241766914971864312790059988796365188122408738849750944986243256968258072779794315418604440881170024366123669280404002146086536365931789117858228088563404586340276905402102439679133573488729625427765248413385577160476811852186570389137783957098228265799933845523073412746698405681428470191583454310583721039648931671617536712865754602822472975168957517297996339450879833624532685209189155053738170546851600600467617625537709542000599903157660118395326009182552239064881289021837435882649145546446113245214558884655455292965628894178417492404034596690722856916391809851020198623078417289166205828410637221941214293244296217938556518843011409304872628905886077271482808245274440158349582754829764807035908132240418487336550728957853229152555214026392258828819055809354495312354561319190241165484792700262579442823478804330838594377525737344820757763652942796758468948672741177843391341158576486948347168399800083579776732809131752602810483414876780944332301105027069855415272343135823516088520164789078899494890386470686290496985794012173709530201713762714968385686574097153944313514038910126600034131858459853875430497750291042760613630668689168288390075476517710032101068831215101867475457467453458700710398572761387484575762400211627377703692503795435504087336802558251689535246099415711939108515471027839510577766656291097528001873482782503510675389612003780862848437268282530737080015571952591929298934471606937262372693891728710688112778972048114221766530387432507320043255831476390292762430710432691276262738047107449480929880733233405910788834009967608992179678350615995280226654359873461607360028531899361637429150810326981944652945684194228935286989260288839614178765816122463693042439198882241721992481791064874336789939757636314660583546319384137558754597631666910593452696756047267187005932168459603177103730708445817336977419362992011520327207365581009481586546967083301027238012453140860160130294150496298607088584439759331007064768446047067374186845053853864863028527060457377497326216368680282207508146445674669236214272126696910943812499687095765373624355365117121376360759323519868912341053660395908554493499798640070206803861204425210995379183873651863774296775002531248985968006146014135301234301678000749903494806368880169439008668498306573114204273546721255172338705662489264601760013137017336838402820706388355753221727699373404373334615346609158092835501682585875978455248616907417830281781928871091655938642389469313323830467164941877214979534287813903666251339493442528884392715864977651424755661861308430579275611617450129215180044379574697519104585085839760535019036319425183773378455153376081884721548005063149524195095994325531091635652910371854476637488260910260234856914867884740642489829778639461498688987772401197614941589631822982506080546101675165343233033335862004390591726271882537946585385722661633133539052696614301551499299393644511918516049259288080007537763504873207497718658166054864960881285487931342346126850366614217819750860004318742227605597070441991982332273465536741517401493464586984434046130840300925363965267189604223449051300147771698163911200535382150766390500298529197780936184705568418710984715603783310754585310490432342895765531136595642403510620309941154965254268115603597535766980745112136678505543823594609365811585864933850215614686484766493956776126539515815819172819779814528131632268265939336704455216825917560564480489446099431631041650781825445146710865689063365915501287634653456580251720561459851339025114152673798390051999190732806287086274585960861906210106083320197295777322838653022136292550521975928344519235755010863589827757040991683220174477175332481739498220431105835103487717246156233209246506825743656415045039333752988442598715668829326091723554391192524709092299676588384970021989029500592011977423595371372719561973113845134338473487548734262663416017241609098849727131748984803286697937436558740831798751506627313421452079922179109829471336484905587416294880651459868122386871255799151694156169579596823962662008178332085618080340977470448355529651262303729397388603235064929544981348852469050925023418091548670048580583383588107041663344422919758471386413076871847921953079634303839371638199855689854011149220669453865403314851294310845850263207977966151521135211930038289148665821230747993220923306649426812017335733442879789694414557110974367164645014755614640638450405269434955339384223865796875645643880085152444975433336983900359277156107662443680194899951966915645715065567041446405245911403429056656756524425046165540938100547066568906597759223268837889024522146570613556959093355395109996310184613833112098517996792702651797032323821234396615784923153893541836507839216342400369669180931102211065696624884233320046331172901094387654441632841279526588054339845339704674485280051109525969897071415022039088617592703240034511393228282161873473316553598685287528254453047223947488365808667744453624911916556501709038377384287051831249047561155785089632042759121396882356630889295593416919404772106486322368258511926672091044896444776835903391393696740705591375945247435854946172824886093037653570829339369211499179952784527025333372898783554574658109886250600759449236271891199962280726912956059752326477491116252525885348391456002272418973012832417779494307462943912127226894893303246308279501923953569338929630993351036454767179980973649202957215350778034741775781915412167529706102566266453877873865172158173031727491056099541329987829352632367569744033524589824242859360055268687587500364804270884666201014050279964653539769340679197812746838726451717503117810188319286951844823622976998662627649973447877492557816308747596237593421772181751108958744956258686598297279379797489402592817356180600609425764188827530894969632122943441733383221002928838917520079742453527879968305328914722825716269481102976520055860032513472036296136605764712067079554052940782033763731979543698524923833795649469314576976848703718317132516497267187478031830623607119728951973430488473387985983997139406656525331734424926948515031238346580439465017570743981860065404416389063787543103412976144341403643324520228310434017775726723971689772918744531295068728461516636524756335242777377491333829250591015719855265590606250641752510012858253086030619249586872352891024589014918947867999194906173309582320269329314769088823562990236280344595103479614151013687549586638044816402975578666390737487082462483771675413184026304019443940253903403313161561917409323753303508948240551711759955126750681976763271346640967928938455079392070510638072585358475432195292248975759784950386116579599624438001072148688930516249662638908475941489442187396636222770692940690716041804771629563841484981532946012423682443936058755241291414818912995328893809622761835296744819439735042235772270920720542532731612703589139198193550032624483877358074393041675877191117044427836749195362674268061805180596349125602642245287275257244902422021371418636337634291926783559948855335385334992065508392121044325539868753155972979737341137602219932010760141479965772278342768825140181899539923656817333023809044742731424890973667525601532277428368245349091150028217216358415097855334997666079945333977028054757737366481123151285312120866638789559028458598227400901432060029382692222627505889825198753447548909835950485547379356362934307103648894621770581758133920436397932632392309337099070641175212123604966115418791362342507967464119904287085605933169621122791948895647209274539823491175111153572812341790352920891374445939107221467863934054063801260890385369783924530505593977615596865847796918309737211612992622326296925474122016745106091787168516286435741062029570298963513478716010504507753505422497097610841598525867494501005469751936936308607769768413435550787047729911534839617389001984378872935154205809254086949505794311656433954137982247171070439905465197482404503036973577221862979481969078349328419348635980488885056267607368788384803360107128963794742925012480166489476929561498290033825966814771925996002149267188243254987200643471043449642766869824824855208987772570696967601149802740744681108133378939714167514036937077761141259702360847995990600041014300228458461774642383729342857336261729564231298192996629688015605040733709189239194543713101145072772914443759154101884463036083674752124829103921212723348273707144151623776716022050815872000735819401298752764043603903824563251026395062356970779744417194504926765762091884259173444741588867767218589041350118477985727154895574282105657639513973348269954905432894443413298349364724992175724418268311375834020569346470284409584915933741110280922458955541671035297451566708680727350877023966252974700110497407750680397489650278147494138302840283377123549406305580715212701781133192366733513985562306806435438418785818437866843103816553750294048516401869847492118347605173800720471573148550926247613289023840965304245755524908356661842085241364671276436447860152488861516462998927525048683667979575678578738754252295244179175148011494059567627130395689781106682245704537007096379594675610569565169107577501883496834775248532305111234790043214859599320187632989539953860158204382983529122377584512113141790139071382920858939218856961266143101547107815205565599823721326676312858867921619733566010091699412626692384327530707014300225160170796705507541607025328617952852019327993163851362511028787554718431530203717465616237713146242009764509420764637320716009039577001194289811637889221964489930985835992185551140267898079274156921445971989544536440848285234804239166495322888960659460019155754757915886610079952453279547964660903351152427147085624121262154714570410540810581437073372663652432741808157111251965310388897893672098328864434696268572751286335767495044651091053817641599233344079847703860241312886049703545116751471900558366456993898377342786291603098753303745093564464447426632925625407231129134903682241964300723754644264553214673169128187101245921581875546330169754710498482973176067726281212235605913796770246858871674016459482977290953988829168487579483201742203632580160811466027823510485747639715193070070925868364248438789840170900373772244571355652231047269732450762876220979946054080905983007687001370643218647332428747901893277778919096547770042824238938563983867687012412735902689034212286365496590668815801732996290332217939764117775471668186012858536890725845731917450473305076928792195783186030166750988465244577742029361193734272566654495083179392919457716164509358747796352308663848019050543637310830632793175843293672388915271569073218612398159875884694633957272836212036787320669350712210869835357403053938355273754418591751074132389955904147198395620105039178270896083781512170559426934204509768643630879327750528207106818618987535776472215361826308411115021006753423964235120821650446059474625121122551628317781626557909234234734975313588843066693542198926749819582157307832930526865461544808750050863079667716357020631871745198690854365566830043156756714924669385677484256886429023638804167313592112073022520897805373445906551030785606805652530499900755186016423075399875658567557615636580897073563685271904640622545662202905681284983113640155277219480584592883032765182853812802396724689757122200906318650306136407357455916177149765872142479089022128918530193930844148049887929934276750416175013106048363694153388774724423270477494658779016558496786657059714135741305122732969899845197326623905940549976179489866485860022231701261589512497399446864749639233155552685271025392016494983032761239767492668047950466831525031469703393053317480047923378502516619814054820625577716228162755254144517128980382597491938427917863581961835426457903907644487152907174383420220925081030778950709216921250860688064573540731738157025762319699262448884864960228654982717934803161660687902773068699678819420037889496886909230044838504165413201085876142132003041035928754651775355689406125638717951562087088251415800662913804397581817409334350820067319470804505629774672259519191965395098381532258191061669030500021027873400300912689779907677277307941093133785658280846471135019291214784610111638068675139036055894759204528397168109844363222522491998579352165876972199839296319564999982738191272827691259390810383695745854313128039182208446832911486321112355837870387127486760041590381586404468522015150228704159224289021144331452828212720623647678159615370669214852037654861992740295748524025024489094004111037141129831232261446251387491612584930354366427218894975342010929074088343201908474435841637780071341295495279812558619578071746201830135488608366589833327089422331705873479914834803314160862151626572130297796859969316071432948548136791937790073697756103909171026652412513049176335679449615164045393581962156790902092831599164907663607325676134656073331433996473463009377297196796641928523149443275299945004752976296145408109255198388176651850761938726810442292068562279455310245980863741407864132318090419316769540857447502080015397652802892078103946138781859785998365764632689310038216001236472886441324656888761842244910316293912724210000115035268379058838044119339328615768856614701726584703435423864863030961816769259396704129329831894018460735051969021076432996340386579198587553074586765546561996433241504598435475447302529611693889081529816958309619562014343219174953962740202720039051526317601391044374614780560928273208230653854634989031045153975532559805062943057324074564877897713135087323005423438032108818904901285970601894507583527173795561768691389638294527632570700855395656705519708958184418064898373072557993726242050372561468060455629492753998659847810588885666542878741582180460852045599671708653530088385191125875378920643677596197811545100241738902383677419556852738825963333080509776181324370461253287579101839399597170109166044298478923313825942751897188986232738986315976912342568857790204113444207810439515286969911343307822527495081757850913517926835250863155546177590324538918205967841337627790383487414458174016391314247133693534961429900300638507985952450832914649880461745591997100950660166059745211453401852426550618410535163647428687859920226521284989153545517697567403669999871068457857536603547336377554915263839122857630309048896200980639923248035044528129105380140334536454973499717825136119072050420051780499861046620479340524145303773710587831466145553526370043835773176956646855798253387325061628801753469984050415840086913435868607535850240116968244810803610560485053568190640924182689081412754998442672495037804307927452777213494735791347619945184506760446620603677981479467585955844335678741462575319551959031414705200916620391083213010269944277044064183729607603848830141629974230923260471947714505293324119188899323727532564770143213969729296547678174094575805535371860464575624035977405599042476563340175270199815253428586377198356747736438469304208613583815226709398454648347845741898835298979805927841811162373211225104220855557602862245959975666561672238486532894814102303141699035501399946192161436621861009981626716156409528690029153578531601363984682436292492948482523287688878242203941345350622270360718503301443354207377436923994617201574738851909270175887466431137635262119860887583112152571679385123490859973473396948125523394888596271120127561913018984357454277187349030848635932931728946716223771103214066443856708357735821496193195681231080590580224735244925735627086845806020744263841032362604956877013087055313391582541015988345941282192265307330531257120914494270989439731406101716532834007251334051328250960782834596666304973937263321883050383562828875533091788884066867263739825751574885478224334117040361692183883315706332055329652362533347917877128693971582693913834080649187906239374779296046172370228456715877174359375028337904779857764008383594395890460827779405956890686391895635418628331365986120923482619154012343009538373883442778997886797445903254719948112297556360714205830587883892994918883609295280672667592466472634476999950719660915115771437313855366901595934392496370410925968885031684185138857751060570096734169370015547364117112635814043157688217834310174148045622274260625772850589341992080496407789801796460511463959282136327555086092153031244518978905206161072386963310609088452191839396835347055168091551826388802035365832750569484792561637829226614304200515344759660249791843449351507040954267583105582647618302687677913920813652745552101968984420450438811498364485733808920214106504364322904856730435098029373422460473515061457131499852407218269294239310335453785242223371597831448890016510598070790645000142873657975330910176034152778608213726178766466124156051768669268387382896507019784631575465068384612202490478019450839099760157042366049936315090555840446282569903939761088168336526112404362632839920940633231418909976864553782469102463551377381598915564303313857196957737542903076981844569865786050133951196480784377080031345469294974405477085417389540316682421420878882930260294262505224422587317027530158097600661374324281651277440017979688560739487681523598279325678047103941729425370899647121659803461709479183205401908457792107771518125230372302684374889373139972237497334066888736976740253151785365193568678957809016059325845251541056740517274199887108755584612140995710316662832509283643894385732571770317900313682936156409474688611548439865790558731541857514865183622456570097313775182433679069717861578018869908508136857379591995884967476290176853045810523192177395052342055252076131214758532103927672642661082260458114228953494558920438890684211748847037253996844500434477057300007599341838916191173906162381377032006460483141996367703770662846110750496378183095967924130944447353944661728252271484819145523258557952301516354862617976647276884380477680220881887735862941966293698990533745459946308730206726648469225758641002137361012303441445260688823952184293484349125938549187058122780607403725355654509540279010354860122272249996762604563110660225649685023706777677949936693047253035941685014030800801659465929039531728955517413510553746667384382496530550989674787960429759779437314869706727689588743870181969074248719917610743341361120476365129828848088333199916634370378638930402508530168073105649942037142676610928130382469461347818371869764436877860321943869898753184220772288207825012563239668600821661944192205642620339660328719821685244324223523460099857471697956210978395040571341434113788904934683973851750685510225264126872525066600841200205879252822298667612926215246795266601530692491578384121847089239950849810126027179186208688313862766113932648949686071403131959282055427315978057133792530654060089229048858357144589431799971727340598768996615779993753952010585093230814797007660613222679551474073371686786366779544271486723315301971486359903200038656723284194657710659143989002683873022952399564693963632084473881599474587912367511215656402219801098356031982764211957847490579607154705219187582711118955705785497598845754411200343009967793229870616796509905438859338379565177199093155623930979069469177971787787057405572240433153625322233568388983873118481447370043189922275630786834126574826148574222932617158950497230081931083499461592359756379843840750703858112534785437934181569327181471004037817460074677238725768658769882972268239776613954709877411841418010079561615055246181290623597526312934599782264937154596482429297921988739901190631506432307233269317325838444758303840994307126454408634971079760672947718860963298618662383748732912424120101075075165611710316935649089878959420015155215683772791738723680604052278132976892508681333803675576397755840080244592962298530182331625254394582406100263337068238408044982254284881076259530027853998271503523098241336035321541715906679944536406953086007486738430424606575078581213275533664640640638005461942136103538354063009320740953498293837990804369969077320610115656231167901842034025839061512733354311501874362762130595858896216353930089608399148785719183072120653477323293709690214011615282691133834179852323087749722422133256338401042094183235032973482881472082453705168924391912941317975238119328968473344085254193515086493723018023504456418599943931416078001369934749265840710355394156205417289731073226549213889274128698429443098144416862270952347376346402244093493634869588840913795049931017615424064881594670907379948091061645702816638731406726492489351857683804360375968824796162023199220670720363132689029666458556833465969690188643353324393605726696525626793571158356081053232907481778210119297041348485318076049962692372781339568242489337586663342134254567149364439124316445713458975184154246678745014630491293757314988639596819254702004345767911690936827369554987796895976595834870273483669370119079354648598557836883443083269337400873659614454170654157303989405020439612849767267085987751958370434581236526105508571831367328928058560420240690308766649442595013583229393753850172651460817425633267888564577576195955395341105309751831816307993316673067279902128694791523392144949128392845507079595146563176600628501301208296598346424937142350297968304344901512329530658983853069798081672764674310027206431323399032149816281049288536666660951297071510868451766724098511439328523500273511232216494024792959273354046411480758107953388255088387613475861674563927378338387701457458921040738741728527599646120558004349173051429978358416168866618335855134125855480920685679415100830188832411193281589132633472510713433604884914876481526148590070235164367402814631159303143613904002668845410584879009084432200944602568912789819161434749699493358988476341997777019345403062655978090317876184713849164517392574162549919193587317917704166237625930278091643582056133362455121423489776580298528817293147769875907183044349654396609844903957416101388085978777267415159578727161875986928046139473374720733511270977233150011074591091535006839429451757114105423706025626048734804735349090870275201232404960776558610662706894928850175301319303726943418167069620886838978530066761611433984522021517071154238181565650485767622492851169189994020205438295528963877225257066937345612844592364053184309984675889171560296463334277573648950416717831240819046094992278371270419161137633790926647403626677946046790227379086428306131428321460332253295288991400206976576021315324437258101559091183853466895750209816098733262057848418052136256872063710175165594565132294938310554736284459465521249735350436570786514972069204904022031519377177581476731490582412485901032352992720503872035735058465976714041581129825297796931886975434226268694009650227329642333247627975144005576745525548551244580141443651539175932182613573294098762357827716787205304811290737417355876398929882146440113513370735684889718484048831373829912477807830015612677694894081054071760855394283320160525098166646811133679268660752130632144317668312480047392615488175061361589060220345450897197944913447033825879552295029101485686767900505765176302137299344077135754006992376993459922462744267536014514120739645642042708376408885290176364265734008862875316548843465457416979116190772133438313725148727199547783544516411379256645716431483134700448089425120059399038979543599346577869941681059823099681746888026798045077509537169886835701053386765250180149157021773226015489021979077025204442610178127378074193750903027896243876610087145907796415824395619249992558616134712688352109874852143856746222035309676837493146370177409371567575368942378936051330480721687867215931226488019256697295995701792112778725990739270065911078980074815132258328259770547448851581533423521988333289537189330886123513950331548542470451050470863340231762266337848424289803951961380530114867873303657608586541878757073677348248927669691360167876213459811840211946422452960279586441368734312038246764775534207200580733439997302774591442241750778193153267497229424644700212452967401428131141112367347938026381751461751815578377967589373744183458348756282479781541087178526697363191795818253428408566952530440792250331883242166295758870394284613123966036101398289411198571981530028554493551138992602861509368941213503339334966248280326735114443944823071021668124816391775824803624748064543562686069096896301180630021051857434455927569113848125523206826386988980724014931783930404582881482759188760502996992755141444257426298577581235988367352647649241528691096668425272484305886481000800451958101329800276453572308512723984243614612809434767514709160167915558180289926152202874491417359670782637834267607082684402701807106421894394737932994607284039411041087700078772889796125347759697815873189678779118315643399614981647862876873575543375318406661976817987405987519841556647884162526422001087673229566008081396274409701845085190140685811237853335748641519435930485653288529811209078535396487539970890704537416309141477413327483712954555248754499821349024618723060966055993633047905092011680293654556064361347184568465329689854691353285079427917851000420460876110113670991021853256788893929352768241368180441080951379037373914281875287806077570074180412511905656545674026167243302500807277809721824980933885983456819363224341689975355812466882677427268868650514612050115984269999864545007156818191444287033944100766659402223766731097695758518660484207119161365069920108850375859886552556745033251864320210563645709247035498258023987377112288802553860206141348918585395766163985793896031215854121950625430641574441386213492718641970971109396353197551644471719042092255170317812607906662976250997708427524513491926515077490768564322484936037657705576163921109326576870792028709016499613016663444679578733650612917234552115704010980544676592060224933147514150169563695289329144938879015725945489205608099100600056026907133237477250961069332660625902180327431291683176593285298658434231161882945518976241719844166076291314031811355999884382216769724813634263463233991103625787174048007657844949794717431081300413585412005386125576502234404654974902890340136216725028205207853948105394687646005389952437693412402137840633138250915115591295657982829938147267299482813014829917735588811446716015535857088164859304986492180178781475606122142931506285978874644189151469016741352104652002823254035426099516981898415241755444139310886235998089516403283230210651439867389339708834256919648383106848740097619730011101784463486163004298214318537264138647323535234674476600786685764001644544929504002005995526525540143393179799480851540139283364928430655249076135293261147283707746433000507401210599236506945390268999378877312350412866462616333732202301797628136659604062479889618840324545723762113546456093490575312158806144445340497859348559820480220318758105644351168040785832474415475759334178601910198540165314518474256463517921461037323464024308079909165950182256159911775193132106274244054555007891086813683918513202934532002715056234094141092840749253060841618545356116418636795809424912231587849707189224697519106501813524980281884104158041563144701831946723578647574739735533120880338867432524717274476304490850522112048289612908881591603223462919287730391356226868473577555319397859888233676644762901662024808300784478787918447090593595309719383887194429958733561415751255946743724516640592410221560249952814707938727094779589292074866895841938587453984775024553896986277288025848708961469152135401219335234842609755033738918254254810244008770986980074304727824926325895606106045429333742329452149841599334824865746896083392218290534170865499426140991578572745028245024914168014150606520380047814586060682859461528170576018964482910918984125166274696956019775007205662953434064493469420539963021134514822986547916009581613453719590357800335577839346535575180847789920206938327786639250438658905809298900911463664633506645071134811501300063558474385808392244834202957868138812676664337990072287416452850461159314233423930694493811541581082148856294506935804771206880126868944647361156783430585886462254570925167737589708579030703810999155924648046688319124878008675868438886460536107716198470872533810119616059558029962978663216382868584589834866517906661502283116728813095041521613277589013520724079063701645093256816227946921397529684170062425930337907738795191490272678812420390055754421945983374489279367261394873566035881656375366392533116643215260052602460326062197599811144748704931570374839128049479632834799566415764788974768317179749932962424110379722890517371430083638927837828433467896495016014609207668896460774655678949786069199611804888683854148188732982182014349147906139675939010982128320822871732910854999862893258432622897080941748366583258664954430829761377205128314073620261228194821941703155765192569681700782185132885991571596771144150208693298570901198301007944770559095587675988149272092637613305057581535858514280291320108573878842142964003841834711507344243655517164709119975382745109286378759808697895763015535954444595187264982520745795951547004587866675910293730023448897440116968069332932651413416532525819134254000173134102367213673730850574464800175146488137576221914208060267604388377243487250259914112680341859379992832112837491238383534086613825686457641481527866659070507768388610084979119777563269565208594455538190314905208567512136794924998536041179742421693043640734176070111908625636302766614261631098091691766664840434136183707159354904349017151795810125167180964681414966243762094784598822471488270870164233366617166283537977058116213373544407421353704799747510454028090219622979997125585181864781550119733979523810997149521219297958063939894303430383933895828710204306509986563339775325704033076849348635371415518882937676856389644759817085177641808061967587125680332130448682921459019064446856049115455514166544180474611744590535251148679498388052592753471549077559670344199120264678745018281576195012295587377452410207330097135052011059494065062002856156384868617254196795964729657617070548295732175948303246830873432907056407831739801928988331160073235035810373621543554391772426113871111218416609835933439849658482900794428966140148108340268641952429906055748166499199975272451146705233254096314373855308401176532531837794036324093797862990589792735911777920556896526657224963776349642746730618459461171457411854641946327500953885832852212938656339666440684876870239351659365451798168525618017397501544186454765144287645277438346690176273320982267823200250779873867765060937888953761597870722957331338385477313484236997191545395358638081790741573451529683487192790234612031279861492130983145812329466868144646979761069272301239730500870162481159730537085590871988141280999663079903822511545846924675632351419642072829596491803727457206484351430569035699298617715072998768389642262484768641319773482566226005946046399483925569522153876023264848726597586025699767553205345071997476214760421690468154574380037885603785044857347009289000367162143993998341526493717646269452401343724023358270289451107498088986566358230779302547790383599400012796883825412143411923601108033761499795895286882476924653236256707188758579645648696536220747009590686110286805624918384931526934435448469878584495573928812246668857722109773896059205252922285672741304622976150611305058518973987435631006734875902990524367328552771484493802571374600921946356617079280134933155729827112145186464862112785393522894938525110915183480809466665000095073224880734342142352407478351183317146509827227017521022671617797611817236858946929862880331114166457254884195667997370412790826001777342925119930208206031829103965901334710710614806266052522146751991932831779976948211591404470944986814875662683743579212130486489719939115414001038520312012237354814184031433259045167993181685044696082493625160105332187229943677636607738688150857908916344833107071640379257936880252500281835894280355569639075941676298634244059000303227500339656453864817839265835913165925178872996075838934907033217967034586945916786324674955092370675685132879498205901479892358956063292982491007693781134119445384140177346983054503419213005850172482080965252628388649465989588963765008497674351553210386864759481549930542412143772011316340723391060397100629593825721391545179852238170112338720822816254872804742869736366602662693302792484462419353500246286451393137612384741315320973364541583249242402617016579085549275390359285427609317775888079113924530144427209943904853133165968302711403740418547873231563583153052803091866889987153029503097379337825829967795746519908512566092098881118916828230168277425647795210728154717010569033648792311372935553986974637494873045089364853881972817907274524699778835277573804081100965985707965504217699745653747269827451795864196530994208421864569831785803974092529527116657545083200233396757120146310023832267920579529353885051244747251749018571742440288778807604509482031109462078057960484444315390840111762828701975406783694856864468732712319894702148958579098167485338521886735496153996306578841839482392827738729009356665705866928046231127965320518945207103977481367891550872798448283372470330767040648762575206969628892843007832368963576963917783282385585812133941014102946786639499263477740005755243903700868349769338521222868970127916252952224655517996595465782701127635104926690055759852079821607997964197557906277620525069691306325911557378434654922862290516579857852615493334371117635272269306424709026136398995196839309377895765577367156512592880163854984290293249156807156497637863882077107286231665115490880633640460724665122585902061145603315566385924739703643176049367004369037653908500923672304347238012365239816446098520470478471186896114405955366069909973360977198508817171182814377561330254296955544713575160648245637593625320473818084311611048251523167309153286169678358308609298694625333511706935602965136356904673592240432472205721996284084067872148317162363617831180621719049089099744818206788161747684571704385133132811352767050743114140865230403247556169794390578169526497624325881535905556938993842620504477879348775710601886988013121093016527714700290902677929596628418498044245283240264273700756552352715070375773434520308502603732343168703813772511089799218738265817410489355367071546531085739982899288466035204981574589695155824418281991775554364028238325134401860655707520438429827201171488215527351974356405619834795896689511538944824484660433917066255539196606690413951723902582537986026778522236035506503618597890725120553923663620788727038432819158893158483570174637273912095318070580821221127387464994309040607083758911180166803807955598024306252478745971083639331706731308224814938151963036835812194052813425773728791552333737955319352037435555591901906714179839288235634382440126752710126769935902861978837328685466448733543943956946913395744507900041442588517046821677539569368759415808926565271592271513440265955589015458742988146426573990809080017137085805957133094214794134255230763686791206353430461523909501349216717373447758953422506008486244662769386108517676879121216655170073319466912464774142171892963693846145490507404883318800240434383160411563914951557259471167350075712810749562503441597937529604878709333710812123503887905157191634839266323165219962190571799296615195660851098939163162229782791988962365762751045258889059204917767162697619840431243598071742738447465469307923129358781242532510818662869060101621104308085803371136855523779650541626026194245044177264588018078323361983624298903314713698471491451766941348823071287934599021085164757658427261496292248332104044790987369768854617491353953371983197862244412726102764278565930120201093833867568201657510165068823550401349521933529611598581032767979562855503849219299038610316885307591811776930402199730499509297897372196890063716962197834390490434436543829088542951499438331138288470897465523465193777559720302938701299299229995458607561920189161723124849531926026214319380771211094550070210118788749690289490980918260071279014097436705030465909009608342279966174462608539480775385608724586986460023736917020872179261109773907083131575835768156396217047475968109782115031865965532755355136629116970332872244889261339495422387146843964957391956199512749423034768931416230738425607562125051192061888801510061135131048331860858507240179675518621828817052694181512301679839316394111607462559711250916843797979965722582010931035679469926352206922012205201178875949761439943435627892146508847285366208353664850565202092589222515993977632219227487613777961533593998813836208290795779767663462459504809878248962161445682775901560785170119096843599168045512641803105412551961509345055304402194738764940722270705745564667438680087788276842380689335798396526907787073836232981867139680468713779358886469931646618019518988325651748825127841414183342296130750436061768503932055486952258737332364573450650210778192071608887681659098292660054078065101255095108135974172841692335277956784467465415344180071166184986578089312272234753584892174810115256507159401257039377567313856272785134838159427390520462792619999650743268337042949813094187282306948350543674305349717696653880613354498921028773361671404297032102021750025899788010520875125782913401513775729136220737686373982470590403885532938305144764201014875159339320794543833581256666987566910477437560141788839731350056196642310034455336093862744653550949538347987923559208315090007606629801201126681231600846585877987613172428733719767053707715317488395368374553675135049482874014508594078314495666977862850228768338239850332060035547905037963406500955271153473328302493461853908866560473246161867405483513559492420358025260583689117073504142588658111424921757019896767607567477474744916669039831485756566767535595220047708681580352384150093604044095251932090912692440343305605286386094427533655597915308554277594269486056630680612500379091103794440201658654261145581896118632186463967299306086387697852419406347726583367452906126562117045697510379654036208229986305428139088944664452073575905321348391279407071311977524548043836283991758072170215770311060766411787195863580783141652042139024151004712054460314186697682993381401692829660516678508751074915061137377336461142228540998286839109978837509501767936064664320219174573943214199747489625372540009851183411687487495220469023346070280362477043818824750539873771745411516571203485582360608364431982718259464525140658805938101512329562320290204317347470590892211043222919220660794219717644998137155059241950115078730892820401057799129587126709533394169615458952825717430789669892707436624773548949705253328668745894629968653884482434307670779506261192577988797427413181066414759991249888695458008365204067445876688608025053274304981627958969952725062684695495971649997383764341540593566380184232324193602288629618312783450146175434986441410203218385330849196792254207072469840124781576950585214250686354157481843073131919125428241046062762642429084154023756918228123881406371983777026129788810300965277188295657783816164901575060935153516104352952792321883652103798524638349371930139163486974408732757874215245963711195656584557069277648145991077363629055631309386016191397014658635685876265279982926505573264739313082557508344981907241715834688656858367940913314158863354956883777568747834631868306812334307122962741845587742619769444251323922169526155541078152437709198970975831644369577349663837624693648050841978166594136200376646328572229772756706201929687894126229583813843212356921548997407493682066189428801197854908818450696032774913308602177682178778802800899268493618608661957165389304599517913754727994959470881193867514651635746324287633354954361175299009132564707015232391983732205362509149410088170487167130435887390701688288692465810437832421737197365331935726701599716363270380600008793194042864921739118634411218347008042242397193880055104850900364678274248148499306314878873291730564309445227256342592972756642434163966023891630009026204267201466782980857040585943394309898998686022307933908139889407208813710679114275563233619401139971861412369892052174234063526582919902203151707322587796288954276582881751638461338529158773946415898884919303663981178516192829250548305078409905726865909471719381469661413874526501621051081219455888502682485479335383070840397433352186235341107574107223347245856003532597585240468558917259667837374581295261809977377619323186656816333358636193358161769709378449013166868018408945019170670023045707455945463189636990984617311946908560172352660383220049358165245755666264270487202524529807786179736723762091185929118689289368554174224235196327239636553123886668701798564619518614180123947373097509957387822985455387137976104657185616536760276915112326712950933230930706181568665858872692200725677314902466898564553492818978229109826596572111497562211542251850564683501684117497876613049127191880575867870224581502998955806959018268549235246769854703472984494571166268325197205382115540337659392055406701307676115294921959021010823502992786558059848351232723062143759058106436748824085596727843197712810291991595593915062102607741604445600048834834357836215357437585385570380792241069242156916929626450971189096399189268543751274264233982555791957376957600430497139764049322718763154655399003730461177777059856445905752877988370334235259679015937475773674212349147195694664365436093157758653812447923062756397345303786604300199317886930382726294985899217923017147355684913399333051430371560673923511450359079365299022882672758349083649690182936970205084009637108105130461969924025603959407081138000547164182145657987286807154752229389836065841287156756736450290556539929461702230209853307853794862921195593390883265907699059799949403512543360021015400219986328753859300977749521098904551635634634836809555273554886944687744490972128994339386394213004617764097524799416503712379639993443105683649128905260690038835205658352127105294824276146863626202271127990500364073274907701939740169904277880825445081145606613682593139505188817590082727059538344279892838503261730914087313688235670905141536633120699743115291942935209583967071062441131757080779716613363331843858579760972381385158704168118525906162997265729156923482663024679657118655199634433588851820492625286859939264376313453641266915375708871626616914147933524751407220785431093363522121080162895990909932232653510190558958725805874594929064661021733081174422294630492625961090001071850442703117517177191375676664067194148201686047494069086323137568720194538328718227465313723739375303998293469527726627194354523885131304086120898800447476367754684111158038390066632764470375211807072429047249373441597789086631996576779638742099510437050579449745258420122173689611645725424444893091913484207353246451693851289075144329194784308460767171117332991509177044187085385157336321338899523114835738210073265553671397119800723201889195425943624142598545071051263962305558797564450198799889757759317096173978896723130889014086507118377263201180283938087075984570427352506719401465664733014372155094086327244222676824188707069960858602718594929089513945339405575357813859495022436444818998689696677682453089559454781320558510670855389980135466617217348178975258702981570488948810190742322091507433899927633034716017074223063119336720200887715163058713866648971601303499371705845814731449573421336774484656446609707591718039623714207414993958532674475038824909998718323250935318259154315699089675736465682476654392738819498288739417623275345349491645256198641810239725212359946873839215856774640350219209134823742979687582170478811761958712380144498193060810777077930882411252072503743136037122665914115850257231447507709768721534798387444143661908737941025205345947562686307640590565270679726204639413144716154803856135823879188841512659084803697103070176760070587639316193360050166488074064472753488099182738293083694869729272191692187908756840362229428085678112055202928476416601973278014461844595589144058609278404216624964088899029828077344731461606932908567761042515069823045974463701036406003237314191378218935502173779029142044135156008353568283578945018938594338448744144913327801015378007308164059560664584817674411179844244607884842409180871322358740782459774576027953621919540538947005562168593229795766018812845620842911730273932413491413526727226140182378710733544508513631321467177187711202461807256226203843509036355059640969280195688707830821019823914908383638686972496764210931223363192481017016102903008709285463720211143695389749583372060557145913572726378735981381809676626682261678032616838141803017328119452256581231495397667809094380910795233881459241043000078237381226364519054345059823404196485608355164048638144598385687585873442376476526521714818287938695878397710655635486742631794050004864958144255405373236585138729254447219404223638683995310497309548641666486037019231056492655934554347681583305157458884416818165914795913602026778452151574875931477326705239422111423853235778717646695866594109242999333871701794979666135381090264026094021177437582838151803730613535460777578619692119331981613120620490803086197043882734234237790611609252498374287954255993808866566734142876280915784503953065394925361844689237188699874430790547940093513947380532404716477522126179582599899434195507075915229126822652976225692844004006443211946977664717645482441819706620536932344478238772217958312883887656484144598242692598263268330629491519752615375642226200621239135733597681122586604584681460581531846086343322800214447503342109573409598682311015225336473299563866947596003432851394597853405661734554900589325850904286692843397998547829765803831169501757206829130148757634209095356090428244327827930925605777507955393831764936458255351481483876593386714962791689436999208463394967929627877559131446167895996753457914231953256725600081715638867995434972931267931652812876832945549652047911928438383599280611191609319677525331623671217646287644760594217232002429673637940013386882920743439838629463665882035087771319043157905154815090548139146382233048877420258010386568701181296602837611498069018625280852346450620025489416466326476243035819778160373814864316905381482174773073056762041172026431823497207426085735892088513240734800063311865304875262804868622587242919147424096985113545716156697296727466766781117681519847486243140718202592584060984738179249643117718038827740693302758544377019845077353487929602110311293122645855321056016908646533591124316163840682346841221115537116437413407297710985709267281208946644881704416031684573792048487891711668826496800841585154965125486172286079883473110845734477421425592941394866017547311715794689481519996302879100253492619800161077168848414740901051069452264585682823394490229490989570976146237066271592504499491707321924799977599455557754212618672695854723656353221236402848025396163518427246695704179217387213971652656490289738123124568498031252190303674330598542329593415735605645812441683712464258729985036480341797242625352886961531873217260633221830733056681358006757593543731751383743784812246649204615088551740520084515027172716831836577812504546568144894304616517145413060522742716050541397538577666179109485769429291463031862064885373647409817901402832986973109461493287693304948876476040632442349934545100074082704419712043732708219531740334662295874422231277116115862248555034290359181019490716891834415546299384851042239279895166342236542210998090792868290382263168617893185760648355064443951337936539126318517698957389421790542419990094874307881297834656826592545343620376177250119891681486446029823437857880907747777092934974140710825556158572811227975909397772255003234605157336226928083642192391407303500827329619997264294695904065640482585396827000549278441372735413913167872382857238150505991120390771073670327851734925708881629943345690267168365421087677467431640429320564597182573069268036887610853713860129190638103124860925049899268786986242014480074294216273071192817281066833159996171577060824076496932701515232566398876953762346436389796747144252470497100280610557975292249728746857447310688164122088689067307225354878950317983875475455544983342701203493591501892482405863708656808031871037157142326776129855829880271760351935945782539810447842885963896985627584161903346338043049445679715150152077518394622914144147626536322055249023598109960903203024910332840715728921057070709887366309042355046706803430477463104278756949870496438916575623327640084465923294909037943984346873747838469811651295154513121845609351238213714475464325261463175562935336629662481469795080702283824100444295559821220474744877092162100324314568177617794985234942286352591227667169220096359928450179669037930393547020231050281477166068287779538302546353752121422252006000858363717884240770445939690863221502695109261374089010715759990599937336155705012612853690739859689153893626106163444830602901572915941680756546665813023789180972766124971494760611577792537599333164503938274564382852581376910708875611527077511026756137970204057081801617614887586434785657559430761067183054984725596123301116620602929310930249112721517897281979895231347436942431992852524405837325447001258687962051702985708536693903550491933570872894725007613072159602811740158647674526011090782346309494118639926426214480766618787464257115486603388259744825126776952197173831867759707292383360361818618715470008047881959291708272857663233279324662864882089046369294654711994216700167278177394942368467729312602804073637053112645405076338834351098320756503120076413637053318284788214522234408142804771314545187424760460550889696581221514981671570943513914150558939376251773212448179421977643800970252065320974428523536019137854116320223235250891464688795102170173769273135786737401180504228599061460614222655943336663433609437581040092456666731641066617451569209364670699651894741139941843786050594377224745888912220683168862906694167922337173897592440235316958866522675725890508656902238805508631389819933363003517588132829170587122657870851778607583812666771501442743875264938127003441068582098549023263932630909482993073120409264859837629505095604379993006333142076495905647054034997119724497223214151549116766963939412353898566725649867486942807209443426417823371544231259019989335214266243872632195787742680013441256499076039119042494847399200346388232753042902518439879719396027268451364394376797668090258588575425904161763385559911585609407854395078630891634898141481672742490729128238002633207206594472255051100008248512958789528310433277154100771896013856800406769975544863476571876857258437973092720154180767189457418959002295828380075205885226078366112747018972426242427193642949083018245633398381958065060445107679587908822454317723609513015403097147374557982380665079590250401819435649853594009230992273522256798910787492632502489794149389569938595610916070515156961746319285234499585621080805531889010483937078280596759703841535105657276996312272376884163493128397977523427246018033694711994352082076360574419964204076851051452147950568412319530519873826460749203219979869321190819570772632432819689378031688039575092188152744447069550629522755091035928262120195577048857623518509817583967366224838020761994390692375574539784148341110518944989806979702877573200951410165951910758592540761337186304584061757163729246666514771676082866852271433119164629719814495749726054570004254953060462681848766130182871774808607720312463135366878205323489682689856080146054015185516536126699561330567019776631464377908881493304840845550199625791978911947662296054000643260774779488942751895192485755309576385294082193804643367648778972242559008827905330888124861002138721609995846008706452676369166898588282950372869601651520018448047936591578756941229741245290661668457451251201461172518910713001385387558745634583559499909186853166722378870146059145136323615774078666189323836437729368120748055680842693476315394425100194893145577746342602823108446940933007907383580769351436726429838638558827881955361625522290306467633635713301143280627709987047332862694521662566123322677032277997383638157983241022468104468045614538228996799655091477773462939442939057254122174274479220622299802656966088282622660030268321477520315015991573595890557195995694916120300096536108808315864292887573927180668716921025202935378198458288798451049747230851803941820423555097655697764485106803853614530414170583692017029994821560285003125491482801309929686321871576151104258639564171701120898582780804048290966313072780474615550743246091572954320058331753839060504581227854204221617773047942029196952572685205394152380720016767375976360944076495139002138427224703932984486474594261371095034585810872097648663267519650554470961680306093666987514362524568053824732086367667223508552599436704920461360369236993514724050403307048600909201409646210664845130513299213380821217903208142890549009190936909284083880490709733630352318304867395865889058036420836823857784948275927013044237897447951193709696293165128805465345475990338521392052553168589226132632801270671684496970629581756226539509648684222114005652166901030321340348085843707286278339792649571101745304340851290203035534435256367184732929905735058540208237572306114852989620148124091065254104013692658014937073581558829614757457537177804443742426860594161870975375030529766296484996079214640153630797237026020794771762462802419974358353263209973132736304716352684356681159369959954293396857505496127861193107917805276582484947552776969432372760675617543024800456245072141544702387643793506420586699630309418909358690152375963027238081967990786935215834474171997248377537184650900418973174215446432780906654577656684150613807816103397289659104649052153125920992197313986496013001214342718377515124746279029761802294771134958770472000424163537934087592172283360883993385660103582463657262119590665258035981494643306831065902786922637747431446238043233920922434698925578869624360350387476262351316565400783361665842146631971301579522135297986704567196555656489049098636987808513228402572234763158285426067842927249852704016304185046627743951724662281651678446453127239552244147927239527260738683886189376035599577716424897140151923044724706234508236525998153956518864069840487758117257332702989484348832254823462431862741174501987060139984576509698608347092674435639002329329816380567171722730791145257794426427701463828347506811195641944762186541441541101081490887114444256710267028186416746905159985670291818457377612864967038752810505861089080977076447625995613361479667449691138708114376200743101507777658246511565136555171995187229129924592347885042665707836634295218354575286071858262009348240423443194021810751950827100598299417720249387345461633674382216100876391149651384760724383995982616774788672019627916719253122244607127481044082450448803391962774315415832179231586984008287596397712924440607561522335563776108967231676925802197845850778490924025052506702108075676987146485184620259281529031622406050669938463452869075753254502201517019367917999381226257834607815260867934542454607476836297844581749049596136906287098022083723858458226514312204928535267664402120351563124443277335149479758080730401603447022565083539217654667333135643762970452709022533510955673243082407546863028868823397932204340614610540862097724928092608638056023947167055054918581171362245644632420118530981596882694353233614889693364261087071293006605501593303316326935074875979865827883467858248998918318230053497959483465963110841418116778848384372438135491728670670373523504555493119172768396465233196424815339897700954267200385124986391868893899763090595725524901772778009990223713242251834550393811802212559123544698429240243586055044366171974920631264991234981721285119246087684552437068706822885923214112038241088681366723649263523117635894706686570241107956610824588725826264370947490977991895945784952125825946398200658810590343320354426201726915702727662307042967961639865966284079345224308653024532596319542005821130293165287315156460903457961687021515027907158165684938389068371373049329799109605509612791621763387245307352025519423639149476621763323196881251881623348708708832688465913323246410614561704351940711900883773051124419751537066393657624049274209098928602307446702293217300828207287736755408769556593108282823866630483426186312101858669283595439859931472442334818219562828080317667726737894916279073747819000313634778383566268795111378007783018624841590921952146612909938909527493294792024292493791937596212091333281416570624188486944104181376516336115897036168784720853143891014538715891531202444498643572017392687444250470698995400254834775353498589382679250845541630192839481303511554183546235250718045833485912043759546138189221989601909119210938917608725318685861747627148631898483439343007689045908077034358544406970669228814234974468474022130519227892151018074569606914919161999484172497411974968467090754251679467794534927423425299035114224042344880787366063735334895567596223823344469874967601290795421682834902351521045516378754205298340693491947498871796565031026367227661005555670559163385583861951784919676078071209582651493854977875063553863544200805244949571814726985223658584466914221762510887610535750594618531922759396212744440785165798141120899815878635113499067416299096115940584471190921782487895067844425766547635751632104357984494601143986815420086616815555444255319730391116222875713901262301344468150442345700570277965605620806343272606056614734056626276841473324236791036627872676264547929993978602481068804207812140916387567384724381315943533698134403501687662148594835420498785593250112104011598873143676154597230282215328922899988734659177818964913476784479992125800910456961506790306167543589621795579429846845413931006520033178165390834863834178551693218325856410504412670487899222567974413808845448078851981293709063987984800716379067565328207472683971656115604320230541305897383845672304830220563146034720186418115662160142246085179023403009634819692406543439154018651221301425297239735661570431863755251124716280821314926287542891397264152882495487326664048851435812560271476570658861294385690306867803077116642311812896840683811067214915719445790989575127544329978704685285965532386436601067840444365063950958543091936361311878085201299354688354553906999787038098080418725119537612810605295565895095656407166139327543888887404384394818602616224999036755163198852672300597444804847188107321047204885096077398719192758279221275193695320011881102863180751967836637943427770353384904077281857496353424257791992695927315631644442283006613462713976235605642970169117769516041301775359991574696673151493065864015087331223827293931295166552289747419734124597546797464972797859934870095839427301845721569516037425707292609378908383875976363670108795386789951094097315397198289754290193179372057836717568952228668808959085163634744853098887922099559868750443024537513785867556206010965347314074194517065891913937072721122312741423700850934218728126538887129362414422990246244910634762523039619564049752297160193035207141123244587699205851109313657026034918072026552842760369493369834637813380662256009130829726133242456332507965031628220131793714048962126450855264064561580776140007991291547606246493997912645500723902602542485188672413551273258439178044920005278591348426679443462932707083229330314496195232070392630007600223325494267615392719795009052534313949603218368997744081999153758257060608933680933819892019975993697670777165687319735073657949466006193633608587460440917542146027434104438682107944780747808527944590210704810854516798641021104895377765332547022940770142863579458077164002122095544183067922660397070832737061659854643529654212940401417689241952868515914272660831725915416144028350639999817280069341321153858707198351328720195454148155426259044697557704759155641881926876854734037623283082475940551881514147563035887971265320620507587000360448148425830532946992963191994352488093929885654801730592572790415577976091223807062508260798273610476439523723925319940456777726215397412210731985466936980550184293813501675224497078849077848330346085736451831769525425795958068891018959891294656916321462208243830862159184077373560058784361860731657555126488340783927418146695399957359217301952085747608297021600936243827655433598202563942519799425569168424540109914144755734145519472274523958077025076428917945204073385577971174030564339791324537811111756663730725360890903472959701428513500381193087434490464243120854316851618582981854399322190635290206138727727923057426615474508554716423994741407668502661109655430304588110728027766849488170387927876744382753891724214377020289407533208733203444627661322946767970083242615727406641489866188982086516320426910982718150587355350689726882226889012805835465534443169282830649793940432608737160890989057651073414441995509909446070211051518536124219728251053527679385713830647521462032907963701147658345995871926856010610932637268732238898748198193040548087086088724072923951426640047756259063993646664489692052562877585641851569083791116484533086473788202915832028608463376351137727248780972813850231748527116490768365711727490629808737495147871050357671315987046237392548363910530403462790068299842533314432023768046099076085368740950811539612213825803363944842635556531234193196654852884947223410772102675637697664582569399633371111176632906079754213789844588580846771539038211854283363678598983804784234794088720748537934194883816577206731977771705055237701544707858855221488285201146695326117733404111355352746223399602029779363659659720828946562006311632569582772550264572920185304562677432023990250287350307149144250105733555142844831349281944383605920897781537380983361541579334034831508503858970625428569482092373979001891786920575906668503027877990750595344991096404347952477576697678364733718760564091421692963594906978085548339021679438831700817043624395017002332925943780920464295991533858423981390301332722107414986978208633845047416536573055062856197244881397155232896052749157093357824821640560639706285859191473150661710327295506823961167951332117422458553255455034223331157285060603827629459791467176420733636105135910696124612266556662996046537996427344733538949040863176835836008661448922638516623631170904828379757631836544294430015523110193536164165491133644076399784544579162095638635739548132266091653508002939857301127108700882140794687248682711738457184572505292054355630554944895596155361717881427230067659029414093814606335874311155115461336368135627931567543529874948055777775567353994966788279948129815595634727922471175206762579949375627829192652287631918278544112668791444186112392481416964676324417563500559468954669327690621208024044735102363916564272471889003026127579861044108955075693333804297894725854333568218849654984064509747202517141105526873788264230933500660038150482221246093943259067655527868170463666054454877048872639930211940816949019761270461186062972801542364419176906463157242619915480085252073517369696970204044106733676151142385455875982406384674035168423149464384089531154376486950653844220052061949981044634911191538569652945708006033878998746359981705130015920643575699713278342082633517529392564736551593212042170578537617238848282522298462301723969041643069390933414870731181154655682889017230520611871136434341813541240394324213857273071107260386436914722694485476909728801186519553363004881506566141589639672549125939277996945641971738054630914509364589625639213141489527787356161359498978633409913844943414881562927070297468056340444031343930810369122091977419938188645341739262023519679928416066492982996470925466957891607624567691952219706079227353303024972674947436033523912082212852027077602568438004860783669632854104300160567413269372634025720628201646159016598281177284092234665579955288600548002417526829720758958851134556281875867771507229465344769201513609671506296786037425733311426167851645343536666547194907157471011221661073349303730831917025685562841103429999039179715235953284667886701294936154488645538442611802892546026504693380084794106704865081344217536229759432785357518909931132491705983177163224081233678111436548713564966057476063898065226231571294368139890785005355403145849455806262268895639270644723042225732466796128872808865071064898589157897730248079839010112543612593631477565147331381838969951531050944358541248454462540085525853694473087710229978177286958315512810408855422551994741281531496355772176989695686985863108460331525856397163829264714820833569146397347907190368613407047829389737976738682495593343724425900513281835322410868907922640281695884461624877599404241931144261540185591449001219005593095672020371355175146546480870352541146108223946213709982597659229505855180712275535379787551831826306319671933245920085441006064030372518570703755369418517827284435081039437565525764206180942226836191686971630395037380687119693733600628874128782578453734228448516965692938995749074262597196287843585834416883991730949270735077928363327172143871361440456485424050069701954501852182915221457172152680285106628193727071316657625334825442890462393433077268473408955976492024770234395557670745260139396713170005630224048577886454470951444314799647497716131904214040423498986740440908824121277404594654565273848687490650724049702084758073413423509516251534304306922991006764073474481918920928112710922750401455505735033429883158724086545418350532918040600414735250449954884185662927960125579780040316196836812775748470507413494227764840499754520225830369409557502687782713924164259374601676544429592248730176239209133216148980491714449775005482655818351302251328254190768012981299280888410571427882538567822260839087551714382780109859423196429803372590330791562629620528729991611025201084377736557406050738281656700294733186425920009448575081431174543010345865968327965733085660944329808740503810685482121128658635333648888883515472578205665555154731769901731033096183886917707694809351064776045226252716016076372579995951963864030720818477441326335653270559946442175370091625475092540285487385995125030043661688023633273521321969181926043003801877927476293962427983478028414185416117014532315590412652371695941026718998066831838582948014391683749671794989306190546021833200648047628432789875171614277498579693087853215190908268552197348414517884886972879633998686491749671535201357955845432813726641904912064301821398793834697239137424245895226393177069969025557606525659550486312013547460106701891131113841422196067161360771927816615134684575521960960247264213164794900811405641762602057839197477171415320463766820046133023421355719100955579273133301694602445016944133313923001582783999329495241939228295533455093741235591546404639544795587461608075899055032292846060254186290539941747492541335198094975977409809398778680251209205915221709376252824932282248160205305790052867436102122363168246595754765902986624042291695976726254147849563256461266589841321430143072770702932531996027767590189660780796507561052270699476013509607757877863105666424699448910066690904219019806749239018505782541855149429818004527459033072676252285663680885804565322328041607090424980250065584021845795035241212337593209047457865009200374800167518624614816694418269060426650718852436582937132367367629077008870040652268932385749966483894125783558732340978923004279478215755986608577906662160455690314622294734374291574982584067471578643592165432217748561396067875783151216492148987109655641170887292285085271483694698596781833386350140165716458224637719629991440785348578363250029518396150793682679628713325694774552953697321210394858460482549264614715909110423019748131751495536691333736042038035408725718828522379029660278182117131635694236228733653530190643647696606063347361504517421273500615182686096798704863694663797068249194902685359692617964897733729139620304621432059705548149852768639302961838772438727394815723037138911453406193137931050483096989921587021074326522180084387902202742232149535436050197106147183035605014249356799015628373283118152897103560386079091803568175209623321842349006116895809815184556900598881487446965040397768472230587629735973993777415223027874529618298306690274427475067871417571378060746592831995812573857066268744922520143101124891179006530148768684015992695299260783514494434808677808273498562936919805238454262380753903433291728167838638432649890671130777178199503422003239671584426919641784413511857157464591591046477928355539654029540351284300660794211599034107039620878286554945288070635502146212128307131623447684476276170689824682839916926997707660373241059332119897990514312887466491539167438900402566076631792091973832075081744189995243931523842965854529174607037750412155482439914482522735672650662638604509001180895050392536953018107711163643835861983835516955627670867580660873078588570726312834977091440097118315894735808284084418519818667780354986440623070228054826127021623868512097643182573961343078055569081839461265426071211075246618551247870970838110640292498073357493964732661759104647149461251369618304662087976901484033755222312260758263011759342494349489582101143471379628425634736864689835598661385616471735182890153764860537317354009807525636570964052078645047857850787337787381092417253505935714410689783289680026549964996809882842882619861046627985311608982164400726730015769332808658656081736824686464362599869961874207266957811793949924167362932016359899365541415142220793538744931487298113107215089475920565755590796687481005903306930478068079890577603573848120393723175983506464343196296613137853262646900151505951365937311815764165747681542633926986375375482244724466249475444245906805958173954081655731114677043287723529998423015729795822483719328428175196682494045268185683876215914921555041154899041129141368121813200105812027678787362663795433119012913416222431064190343971064414830330573476274157049740732158559713415750884477516089480841877913294577287981530628788583051647692803733081250153904067748781692775742839277908592010730195855642812936763862174173252714524429077656581228000191221711530766992665605628797067160159887100907718374845624817835981955339283402491802241983269181880353888342588008301202839390247429374995162053043740428596823881497108806514631567088703467925566007017289150069263778403728493493996926541513588598179424118176476081788152170715583123490463556902620387460988120931973808559338630105141889570481321649636770822608869013979433971192033537228097020332412146592574960605350176714806664146170291667146085904351283802385805203301899719137638174616593509248574797265407300155496360618835271547279008917502133255593560371619058778370929978444251744603971229359556548424886046046456405665690899982174497803815679268167232531688290969073791295626950671046181914488005873587407314645937360239158554981530470910075840730765684146209788444367236716392735892087055953966295522473201233505425056973113371191039289327281796036162944107487378004643738229303229184048978896133426366412157768761200587641953253356870071108639818506091563243421307287426829004048833143574816685874984541477131353449101291294824436140961053047046478859392315116603985803255510498003388703389106060375176912601427138697660984261852617472294889451259714992454654143652494808397880351408685054008875505321683396794652806514844134445090658073867946298769821137533861144693858251879171635014325407557196467820054202573349538659752604385018134804637806302328318544128442456513664789735913601761311186926877896729697516018524502322206133535890879788348838154450595514557665304049034052291399803613093046759077322574531897781099551828497602371849163176291424893518404483406327678548300701490669467483635360859710708656419504857244612054967596367500070690732214353216968380538046761772373739391257040946584994442577451498920699752482194124702368101540343335769231665380805068239606572338185371224622561173575127652239376747035886565703881004882411492860373233725718679679159142750579728067733341054489051201021666013967322634802845661100862697837509992542692432273971661098543382249061104459122530745240776797471384060123596739035141776851782926712582842034735933339459674800292032064111583656634731187357455110396748135727383687302465073754764584928925852983907407122091013756243889346062437115746083236837498995049908595605281491879842837584854586975117603308638039971563951322873647772473682664553392422266379042910962152056207342972191151599470946635054376152375010391554879099107797896769116941711564708411102734656708092757763717921961144030694998390907760082593948643724820751397778177388397493350436519420053338481108373085902569630071189060453431440344888777189346495669947236434645417901639187245120858932087809965370673462929899767555748098387634019330999173737398958494625417864961238739618410872762925626118769000805136440049378921834613841807312205707812397781653500767356094183651443950420196026617481224160685319997794684961243831161899243686811248248536327609793705337519570712829544867176591555193193088566750910835395293660497485998015547734194874100333980866727638577254292549361724213877934130762518001762247487346501659372190278245495646416171474164529667497189563026071453202355705943513815443561129173660409435541040466975660008669067265916498006283242292699872084652161934129862939116678409140144850122920923241835842659305551569514214011132644787797313378469501962177352806432231849224185660827337041832162596998419509356585964425873164757726300313598411089839561295003695482074862404590818993186760198036327195905780929573193873364552747006709222476249859934740965665222449176266457604648807454724379147591538283553052856827353912306185042700821708980510637532015730939614375436784009477103231133240887962835795661996388224607251329176965694222170864343109557131362454986985311430707921543943597202296110681973352130625556748412944760282809968211230419042816040074851301905489685017897747606131450341036366073390107426620893097209068616620698950221103992866647306962150309051122292875640046050921276911584054760009709546071358889949601947023009670615829714787375735048137201620034888337571608287292064927148276959077846464898411395954320429502970808650743426615333821255982278572720078179731229868942161301887075821346745195377661181019456617819790261577778474746113538252821183996444682151878896497986792080062578033048922193299350620755377492410620643288886255555168822477222147594793041265304029135796258469748309044130378986618474168134469245007723436717611420915223885693097145866689526341469359368560207016722242452751281111884481010348047850208502255469397811190088961733293763790115943991021878482638839902604963214335199304311902908387963316679716916273618012763012802591289702228455871611325534198337915782095976396312244834821190999754444105673606768688319776134641440276532849168908431386881072518191284061448031463760676492123820214051653002063614875278590241932963117107892704615985060642566376882561867838545892682074370607649035531150421042930846032188592334993953013173932269538619379517142315156759477279886850487814462553319191687553346056813569778383804752401516755133901454794415814200995110720666856691688593732802056608788343303673862631060296251322071512508275690238946601640779451865021375932285615385975597373515456838184430328210016827161803455797025864779467882624877606433390868974995714686385819093042635834282314615714189258842838857562619027699627406530180052884198380922043706328558478944432104040247222393886307157532833724491833169624846652620887230470355557598125104084999474053631514723707436287554944691608263831043881993097338403420314094430340032867896995532454324282586882980017824398138665512324163144581163504226262470831495463828958903491800329763130250337173589657536685511503152748479980633447646364576598490684907533738980872731437505058300677804464660624845170638300648304106690975142464429462806717753488057445081802108858991145551408600801053098129345227890563039959094747817860582418793787465610341158124472762104522340697619082768321025543966241047295889750359086022328928830494127980917572959838788317279311491557759478952793368001260307812199362160620304245950204642647241407541010568712837661537288833084756619192175056939037144706574758164078763288171155377463336679378214350868755478527527568517234477760191124258561195310510303701289105889150778840348415567549884427260783692122170743638724470833714542367426948010740172855064452353930463803162796244568734373148921895342500169289150668497288988597729911707690464078958069523875957139263531295738575332098987492779070772768694672761630331928749254267163781061408513544208568028979689155792700033402633765529530621738882502121812038681640696247496227223259107453415399504976607525614633209083913024135839059303604362927743139436355256132121837895334750192502773104281575320528019471982311434986140846758721224660263958664525537840902835850635939333053644156433176735531012074636328338156543882274474950993736242016883911185491606276990404992838108967422329535897340769426904648630400180949989378396689049628039019423644333218118620162937178009113903715109088197764100139939665473420341449928394869146330487396641363701556645031887258235600270866404218871173179737507450623927534904112692021192202667183797954082927470731275188050575057534245954420589482876245710867270458900336978689669909066680371293270681393814864460604495782470843457434167952651930913693077997194180532886971134636250015307677542707631024815688932524485520746424541336142110830671459461961560413269376086080349129088761566410214594971028836052362253155359194726232907745346649371867739133230521362083867177461994901686419379237910553568853370116854149127243162647965911892200235221359061051837374500911063753040181550530886419501821432300595564820877209947229682700460727298101418986091268208544189092842059485142371040899695850203553101378895613029562092169388409477623545948928186842688469616340050537309940671350651072852350765015556355151731745316240581497467506728320721600358985865713687438253273246598729022731280997164109724395115786082739547994956310872476064656026355904137577502782727511138485489106601892971837715138199282385929250698963215008521499501406074984823000582912106978186160766379623714109100295394410444093834503731523460253694538048701527831418307630492757000978847044968338058712181964900937304330768081015843511891039126479945136117439436492308717391740470706543247777855526854251127998694967131089941352314519374900569054078264104793652735655369775322508391724240665564767869355574787411642055837412955684914706508311688237792526860842091606329357361609149018861056274306005667298280921078850962133845194262094015595055141197933830621986151021819030947931490052152827228399773493575711996405789054088035730903668821859875813631112380697479892093915004165142861032174189584454198888369629491572101820502854471617379916362396293004194348070575389462042817776416389316138112265817156355210512132326680469665284433469556564092530041311621667119292776220971906713651423528388858768208632119407371321474858017310938293567143083760343686160827276085809239778424206724358863837237813793102129885563308995497648730886969338661764565435097469463476417041871420367617893792244297618522716063295739886030460314310229603828621668569869254669584797186486134137411841906953540817700955173760715597157862347465299897269412099406943176957882464759896479651418764188603437463599279388908427442777739515728801487728316886586196772705463000137083221281312386924643914550005663666779532594398905665716903712435052744432536511969259710608572805731023524166692502163398880675495875941053819113115293890213495242480597335752307493538298544385536841984853753329510785755883610526268980957624533269537987295936209622553733131551725850359569928615764531333765667491457959057974242294484576922732019871228252485132443336230623602193091369700662904118557812366354913724839785739716074866110982133372988141296325399919011851805791242418332285573098872229375030040692953543572475157690453832225708035951642123268595762429846646628332665676125108441924332495315700393886144669172457263378211338291907155043391113446360754785057803098667062988842029362996598207931946241931690527463594512689842965989446241062101973171736149212365671336451300225559845290752692764207285956587797302608542358686703768367789223185169211213738629818410721920380164802564808776105653214705931241247957647066450192978227142199945853384373052547975798052531001695946289656041215693255322019332774772767378309059896008861557408280299462227940552138544193139182271020437531809164839110924129669188289839296640636659699537564458747056524266046206908859733055622235698154241084003004024422795795790116277243403218005770440372674923892964944241115048246143963506575128178910697064145418319875992790566178481938865803176112922035406236296621111142143589847491877236955213995792636624418483812284581053108756663663854655663093489361074865900493728913241550140401837443665188011562121250308078432807789123704398456266840101547378459568334118522080721830546986365703319239400585201933020830800779017948376052889970000525562217313135099424824999638427655645851025196605003597550281230416225613549082706540856603372613416415933879539517613128712857291732437351873933407975247915792697405089222704230724300790414611674188554128298851049626386434396284528538760581576429893119922763090566730536309449556366406239016029490654464183103219514048697090100970301144554775015456852554883791731325643343949955670402640775838077910752660274118921948313592204059138046808175875834241696863217445252409191201038438971320024413086044511239990487909646527259158886694179651318167761083022786771861051884230586018677417660836702987989118292164954623188740119145076600762591831972923800959139927239970314217039470225351212580809170529852120098420350523652551412824822159898139434331738980591881629263973466122160706016615055846809652012094169700911158487819885916451149463451587249541975974847236467511518986628207877881798675579660399320562836255104781589266828365599793437418308925991955106111032651800372020434657498325103541746306881778883029304884517480284593751562789271021203243453286129593558281750242166674361771032545690555267187416115750648844375253251300012110063873367088434134876455713700795964925167579305910255528950710824997842559111352782802473608798635599211431148742292513154979867513822042312571924574426117946369121333958621740079407115858167948183899485298567603116256606696994816267341840883153213060526619451941405097897058483281968401162309898755283233330108156072765612198307569912676779076472397826756977951839511293649063609298739085834296164681988015653940103671982651547623856385962274507949615394502761000688136621161951047588343795560970391193095309896509405181927859774755737425202014967520828118416021980912691982905407144295286123578146202426417402107714502445677894908292022519254926290057322275707219581132362539987346587273080702785443111952526898248178789190632849678268380464130040186488173281184900208273152988638734819794885423062443131093567615979170332580817132181118870860513212877000214323999637441709728854971539377978251533543614380053626243127869069675750245507957457771271519068136477372031691847524493740873352381784695238414686823920226193036131227033153044669648225343582652498610801632749083926244845205091543606366228938901015513201812257315781730232125370450932417165076684161520070328732025521255025008275571442072711253131489082160571241478877997029656488371770831149519640054175079777103934695867656672727349878825094696877535203437036454587855036151296437222787496296121954996912371334988617901559565103037842326956665267273147501901002996345853197710044681483511703593509904970349829624226721169104934182382056105037122177548467924032186773919462378024105372872764101847761634703470579862869386523504500897258057073155604673334886504015335271622507560570622850510571341579660785021660719143536274962936154779489555052111057773398635099522446210119776633005714792991993793742299536771144686461332699765670009186396551187424860363819590264868744362938521591946605507869039075175827875974113149508782286656058367811289161697803360041506979614276463951487398011006961454124665649434623676155553207485598171378727582535434866936518248008452318439965527056085948423737252056199056175750151507777539925112898923829375143217793693273516976739816294400429944952511481819464647415607132135862908761732148743846724121945830227390713463010085086893322141603732129724283921707079109977245199582801146544962265818029048167119839717451532540973674073988586460799835516617223334243728822155978000927560199411736466008796839870463842520919584733464479180254546864392246953324129786168219155890297907371394649830378417247656693694182458679742612422870268352335353782305238515589278351632989198530325792720107254420417541072308638324071241718119587230945303328153960097962121838116922858984557132765027661225467988623354665126743622376413444089878721135795087593336774974787958741712880000484039750542163073924486379981304067230565999702042178132229661712798554033027360092865290514399079070445329375949143245195376543076708376457365424710135380663351903893286694200107918473378759969205488781248605733354472368252542069971693437306081405661442604172306503694201822005713433006693329397688859434924862633561427470081098274372058122687753189098467660528021988429334489184488333718522367132312055137357734175283469331754092264693420378118542045541223003640684129140387474624438105482337841211561661636925256568106666860679470752052648374815227022209026734821072025076384925030599166763157067865223686068079655126352760751819215561780877573100614805627309820664037745672728241986973553325816418758163625277773629466644861048820438223082088142754699135921973416096140110138731097928273804196422847168432306118806690193606532954983801522050410424460839574630137629521672507164320650749769600536452329686657711348448606992038468526807538905658577855709764875323944214154032244496281471786316452706619171353830546039506843613541915981107857729860539802136032798265371262297405315864929876238381690153181351159169322651831626965548179152686293270931662599541663865854850863834351000878719046252959415825695213006252386828927225385865108599710671725329971384457295028551005950764954941511448135256067409518485776521657768905557737596814025737335415737726744846775131244234848964012925020952383447854811718777403154716933885994835951424740742295916707587768141341879071771593150763671132899769434775924555226189198837485508780342302073929637505137806178201073365707671638731449321191333141313530221001676891012505961840565981658294816844142719917896820146108799791584334928031459069915347688834374266254858475513107443790409739478461070168671562154529153542404341763542295113981112602258400474675122678072989876585061051414587848796391993215400074563814141047887469135975817926334751313430335695097361823682340097116212919098399807376944624264168252456122820897215059120513027427916316307145982992248157629114420124197011190636856449227978848268114611688448687204412016511020484206946322432788057838658210152087717776977597678398357903510243419063195077655988074504985368379527481435211351990201612104420360395563196566070221352055142749309650400964536462181917757239705729452796237869177107509859548031753269365163443641750230694672592989969097663708714076120127921442326160512633087928760536586511695626352611984725152840482558064335077364381958804017325992263904959538105395352372718366222895691543711592323603428818338731838670507728641510683385066720686172575579768084187721133477817597225964111516634569120080052200874029352524834326671211874310101799780070361720116663835085126403630308214378774704052912124224681280443681079412571047741362496986531568034050691935934568676232585015213242711480102443581926737117300047674797919415823457271362826003783102433030048911657547320652662241368288648192318590604422877626989709543686028780200663148521511520070399942822558343647014371410099436480440345631837739265161663803545875701558902995577092487826529816800496860927417735917700222279587787208580122478527462584748041449557193560463987345450669409901040291122603901275874412015902904809538395652453323970467015776861102951446520060460417466676287923847338396596657232717529215746737198556730745880584046288217034469313437062524327942541181578013375686929732530786090225640691798620278054554996682901920366191562814322447355970074925486107551134122019656275517334209676518633907750967758526629477828401421239020375096381700839122619325256910338715200007857555807566942953892576013719610074285089425705673178558364199729871466794300935096870618000818327867901023812705294659370896905446723008836054362811331847330171723176531282184647461453953411555572415138338689417847459181263473084216829639291431447439582053451559526038478485078703324413992636753366718209095880713258261748502524619015682446801767690438051062378949852238682807955469819027382591019434344053986064357526937529084751315511880943959482628549391700723770619363920211150108331152985868842622671617831713636265518530320018126930724185214491459104089702135601707293107287320122788869002012187904382276909817481252475133248598847838454223668211010994409826430676568473164634684040505648552540609018880162214497613674027602903149011564060370838096614115961264564173037143548225356714663674356492611416573625465702388153012782344327273374119833164037689204630685967185543341291416560717133146705925409812962235649295606207752453586533867832210467266278789975984530028014264211071713911407534794217854456238883779914230575118045384246602199827442171905402062188183619336238069430248811718878275652058207885408616645892811851367085795971446861858751321907142094832836095669982625945259007067657719487105338945106316874703932136864912630258415396207692625503092284512012665381412158777993370233421750966890706410288456830812304162094606741852486221641655207375183137458670583546024044444877713194896452940751516266861734930024838781866254243198065763174643309295805880265674262697334439732284518473992453480431677561810773845806990761802812047249515515282700381106547586963043817208775141455947443827466749424210893108557784907030248294417144687013489523204299839854639659032457824229655158994036735187807065542349377483388377030436514187714964812258651763627035899503737876923298122816513934227304231107783583524458196332563255945715202894657561096161165657905201662822168407095825273690971483414822045825314228152415969693711263295653248496526834463307299790582558458925412136910467273774872513234493743176321345676277670574779017584533369250538422116082813921122835126805478221888712377309647698301108522084873283933646193962811643587657211565248664588477648938099328489664418508038190488261216550760920451244096920004582358266845076399180676245625011734819709391372030315430455122134402378807866875842664003784325922376101830213050256948464925091821493513014012253152994139670887667406649215027531421235643424641285635282410342531265525141158298862124781870222395596192054103566423463128379799369518855452100350224938788099358947892905675065492375828840821987410985072300812265766790315959453609822135610589825775758981101742852297696720370202623713371995838286208786497476104027597373041026107188541893068970423274276226988823875848232121352931119418867721943443893724308158525519852165876116641457302502295455288001591705244733911918285410314340518866223073882328626886333967454375151714479431281373683996626210632883429115492695125809223520606690958319750938877572144044243469085824724260259683345189958220787724517126222031640338837590142733392293805903139044931348854684027344828486296963575702182599919248957546726786894661368483404412505130743774631252152835620698346841452737090899120695373115026164362970414205039881562701987904045492143363911329387153532372542747693555045169366927050166643159171343440556340490401478283551884136896234675351415765459431445524494092059025727888257849606444609445921302487439484712831130067660063082943279590491184289323917158276746185812975721718791090102191188089124458579156835086035759032935668970136388953351090877014226691897108598874320983531896131197691511646731454854351520761146403941643498360742595926340518827988315805112542754230549824719169994087089645880603802861311892039861184575334942932373388498360921584674942064573368493329129381522299451266515458546676140123787846489873469657767028060012821932866075215587755073362944447556140090174093291968409371842023959266683132208884547400994833774597432944097815488984834853722373687474188743565927367647695982812411536174004531967573562834002151424723568209534366689643072117590094247596077193933816754075956443107086506794456179344971039895874989819425284574805864013567221820943355474752501124740071386054188333161155763492509376268516346881856021550707044333489186019483627791362496626125095463139872336586352008540923470655037839275979062802697033384759841699196631347761936056399921502502020280307352861124991863611699108205172366022800133282682659154584282020508607730827793079190758746607300371022108029353055441659413284550971461240643737693103390775134470436072273924205867159599824026291585408209257016584836594638363575144852243651338375579391581259392280873801957097173669588117403864063547521826207385421239886654833035034620342581190533063764555805318765292107553447239733706740703867147993562920532729767622234698474177793530497642407372441893722602972771129195762422106419798736928572057794693026863889402412384124541059104072676545352447869122764614279737458539494906279057116631133261106546216677493379257612306766978755826168559581195772499603945946052618999438533630186113722573220876570397665380786577213203100041099058843107076512535179098789775513359408613657359804399016677986317016890264478848659360437556305758788288606119802590231025849952471003309916837029693252862748203826354501970743400766090197239772713141421006997524060295344983217583007459909124858650751381966776443443587583594033409708927057984304251164833785502438710374678221033752695767033678136057240827029940833075530417642196148029480846970420363716183622234794589655091207362796503950742318680282744228340812363723751844944554480706792270161100909163505694435893010897019548998534562408684384727777787772554301108974271007493237097499701989238273475096751945381333234228802823342174612545284302949890100425234593757913909969301189228405557423524927350458833790271221880608043483709745780617856251526428405789702908550377712420387415747378583855786189300875850607199073218162779672698438325725963642337447077088676324693365785779182390558489217163678188213113503299964561305231696251879850208734862751531223745738306590397319745921981035818635400670611730660917812393213335863614397976586492310269597479841382629206160307588182259561261158111244322388938305105551507132344226979943239974192784466045652144614637774217017258807912639253494111523578883175793509797640651312579638982601355010597373271030951629955950747670191442716219261218298541033669399927196747446720367186456987182465274860636209846732943680402271721539745195889571170796088675175610867718726726560529995805568197007710128804196936075023923263788644947675056316817535959190853609876496817166902226597297518761005622858756565831047693440471528560389534906584336871833944364626274811495352612317687574730714662332338954173730742988021967525805050968294413868535326209562113846974787629164849866857118732414836128296912239571462510757987254005310881375043918808059803405850870608050351962129956256631579388452515845529426799980919179967058090536803073253169377872141568945870833803346333235610410252735588947523394436282369009192219240291638495244333747610621842628156709738644678112598544074214267151331576218936936083515211865755706080758269915475718952173142799572014822948201088774249947911561316939683970298100041463116172784790764762223671506248110228230936866943539225371903523158640468954671327736442237048100955013280577501024675919600930692289692844157187370264850791294141031664415049197264361787885002054032065275797230690895408035024881242534715566571131062242987302666270021408094516950304277701125329327831158488835052462197490486985813186077656495509519586253454550006942361642702559154889626425101937808788946654268464026328753209542516636098412254084564222331936481843108953026879229260128230688123655657065744772187819951426556308798383730655934722820523002731814457021196483021338252157344252655579423792424788379860933766732154244668971484549040571752446395465172368263439759536333698794962509505144304950701693858738017523406999566233252675803618832972352676978163377198910027934250774932934478765655173852392661880229555574871666495262304431764031236295479299277655382702787086861765997049851134548367107491989829282728509395820479809876851992531687832288180825569514793829492005822735628742207238802016841377735693998659405680495638293723715854180888726702123188941771206578692890317269981727277698619095758577480490356064765031426316964248960027562074187521983660445505778790000109368525030603402289313799118226905755747861837130920136336538904970277951385106632389221266317571583215747789897930135399813785228271957032388920653218500612045856748842753428332192927789551112151541424712808986745664624309848557275101801703866833331772154699459200307526099294095222568305383378015553095791031143010177513034570052432465448604489359037382357772972920148100265697089755735993978926053668435526165982131839091349000147701593349467860008115449505685331272061637493094843145400328963775414163955034741362141479239382495540565054368640989894216302427632229233965298547007617022896680093848398317769295063106918328343450372036595400316992743942785887711802197969385554613473459010867391372291055561818978566861801762524909381528208890928893045338202733110623737778425214426168398902135918757910230550174852630116492827714397741959896349814516087801724221560327994598446414256054417366260008437531488186030440782158055963936633013940769770430332947310664621895105389464878610104083326531487496105008812765406691020695401376110811832223277141426326694570557932460786237138228244759989138669953677169098299057837426817283822711891714817612906901917996975935893360284225762015253545327994853567391659233069938301746373282448277891098573588441539619389496238377566495281102330556747284211197259703583694473985699154038631076482865270055825038220298128808154580820296904221137745578253831354564637693564535162672114672118993181348137747099765556577952769620121704850613561513130985149915470201074115515170241326304010071123381453419127210384785137020839002587550301998388687867461873070921568570817444169708628183736631395327399135939654662280027013392342053571869850624506722463072467722796933207344595746892250395392930688122755665691734050574504432268281425366062228388589677334909470626769797428232157528506996584546484192397173709573501432320472633251606160486310161084599558661387109774865188862425549837758401629125363992305593293686653958181430826735178531514627769339271798053860881957564737199459901498866536562201127484745177307537621917166902727330953765914179195342518938980681851788621001343325549983051779707492654537512055800799645159850573484874217216403357143405996271396529661790019794821582544955835774191209687525697377207608825548153997524733512013146832887794474114708970454934648071435386056757963444190158481192435946260586737119106768471099842479534524865228497716117054164503156867845285285622024805538435890597652902131578561645124903411177673088281158575850855070938293494063080224028039794570682104621202560332156000162521242317831048538510092461201503486519204024471216232702951535116719671445977671491996211559577834944234965337981957616847520234422451976457357723373218560382614401424106029497703117973610399708032974488748011283205735368009213397882729832370957560922266568851894922963664287896643992588241542638977060106661082136910969773552763194454202641245569207741194383485590192337090000157198019185659983277856366056204390724683551761406949178979711081097972446361950593593951851179228563017169448481754461909998728664663968663796255003557249915747553462805285252515231921102948870208706514428716978326997487548261105224726405006631158802458361576265423288563386603892721175577787377067956932731510308884341775900619097519738744731896892846841642894863686713106306908978571795564782595242123362075018781869020631349262590734504121675657474716727277522522064669537455120581512865119610919113203388857657525830985912784938016889078083404647958429229280702921358181234421339007372494492015778124738356181203578525841908862832059523587142148904427423725927108204796825118505997319743732830779400445053857757958063221233865820987594809903594124687748612518036636849509041582230161833220141309104455797208942371492422932575278225964376372458634098881947510347690293146156287955605665334665935320943496913113675503606417192507284396605385757291073263742183064438759925123792080671942420223644197761388873169048299816671306446162132440644694638578034724524142550472304153273292732337374575816882600198055025549756260872976782704034070910552116823902352237818800517191523843176739621148925826847562739030610979785475367204621900025864354818505156534577110048660187492732022886422930820064705696766221512397331405807181944638793150092896678389821527534918603113912702698340743818242091551262434894414779554569946877049172887230300844213895483391076092655273057808905088497297229737447488011833722491708746910867351793018449756020607912487328948095277001819244644574977990133464931533274957115629612639171405085094672837696489167708413608004931874177257435285244209914442564160730237783478022892819974753883419485550707038796239561073024686990173508847177083104731522116352352855588025452086494062808567241064586136820126370257556811579310846147236918650833271453668280982802789937775133528654477468664155704844194929584640031058181407950266307893431504913861169074101333064767668739427063028255129811533999785384278246905349215408352353328546672361213607613913747122065208308157371688943195589764444045808971336452248343934762587209604237992841717600462050270573887619433035708505851167797559537973137073738670139166061358086453316490159210306735845996138581966220787837999530779456517278405884612524785715705041182602131711409473492630774785721703316888622144290444777059647753432916637654469627445388211780684716013405527643348694597830829767661767874694215536687616947801252010441050180806688997825031256114829847213024262989815195561266304400850281547343716985737593542818408435453032564517869629891539996618976847168325142786844214213346225310397767903713023232377264568545242779832618075517364734763035554309324813374916965670614058281439722992334644215265911600818209442781051749613423275069762453363029224298396484776014901460780089148349876976854364819837218228220885520478584577261636698149980646410029155744904162444141028810775595190442644634661733489902938742858088057527063975216400606956469502575134682972848576304710689545826521904438708802892627483068432508162034171627717810559264954493041978575724467492876222715542135179336209921506254285591409068437895885409471741784703833700826098736092483559181510279275366678367449910974182802662174850248386292703020351807754830965304477047045323518971541789314888031191311794243376940463586037791711015395589202204772230750296942121631495626270647698310796303383251190264024029309641572710021520809490921767853648681032601449271324199880762117144494181534912753136726884775249221438006476230415314874053581408069068363151094958963325211873319045064083355071315423673660217048869206899649746830641095118591523173735353079122957982925991721443772217089368551603412850719498034888226558464765483447015773015879750765213518120887360099062285338454574960702037485052126933919194303276180731623691300491030215284527152077652275819424335429454576202161393052625650190778728145396920998628297764890332423237280845670405048976775667821401930363369301157312151337259459374612187480886942006308858314399904966648531081860719600614607102831902966892812923322533230525202561285879687158127019191422935105607737272879502465427414737846126150883258828075838469259735433762063643580712630321397583521749505508750894487658698076762482988408274527111010475346084419697947779136311129551195612498172858443549500190750677069528723435333025793824238706570023422508568982163381438699957256042899112076412320791254666359319995100521856578527852753761281508031990795335941155380349923027559396052176360122204696998051594332182248371696919861896146155663964904692666630227472610145063462976707820305001259429538840772637787922634657586716400147189365335518883027678436349598336724661228873152633503484841438848651024303816483701521249600986813355596472199784107744729241567336093545935908512071100645391070693880945781629145938638325367182709498217268290998585144813947251990811499066845735228060625937553910650218681072086294971286012418978687956503852842473619257268581281804740133483511439349667143148830025111654834527269641350256143958296771505502829610142796778248963021882971944911554036840135623125595163870711156162929925039119144421995107161331622278946147558266226259752731829974451760542159474376609934747708131335388007405206852923208902786566649640992105226244241486184672284818057836100792157189973995840410319458127249485364531955608258134857455421279523732232935666500842241845434336603028451884616206877430144943116129558767414108399833344843970238565394576494654829008735759897210370468559272249262160479629545257585974639201876883573747914923165536290074763382933739195217182532215486104352343597459597577878767205240026055408203146839725103577386318056452731517901957008637889138355433198064774409850830694863874604579243193644248657121205125581037312258599560777005865274427244082147382693380927143511524745535709756879269725643042002226476107511078474722480639015304761919194220090848102135662549284938916518213590889843964756392269619860885772654508428850554686324893802338139801620503420859600181697204546298795761777329026654777285564897399327477125310091322384168846224628713661794064791415589806591867834696731657534211805151274127979529193026115731109063914292652936093166379163390106440662975176073148905736488305666883682026105276987011737649235335588897203994497620208680625387436853412903937519574621783407870208332884195972807034547210781302174036627296403192219189368692807306647964742371597023613771217227035296903190061319666948325427297544869112684766202521954684782712808221223039273786272534527909864061048674685770838167499327258358873833293756307477667581767025402721825787266732728990638992804022159252207296244815983076732794174043883702409582524241468606450225708454950700863189422366925853009215292720725517466235042871959042541119769549874401105331495746047984428850432637306968755381541586704187240271872660519475887901186186462836959267865524815960735220395538278352871329641243956331501604775927885462201685966917029732744311014518520909843514731446741911278013434926190526976191517190378698013330887372710737867478045584083925094092828455145944382956430778522888587459199834065404844419274629044071411954523549458566820142483541586125237724008570772992195180191297329678158321014614382527085799807167977158307988053282010713583097829643827129990100159789668295170360435784309216418160331602935590150923319840469375305137630667722714410275622139142407053300102825104128920830779080085182068715828269380458112576918949469186975180938872035680626876024963872575273757239792933836220803852910539047506602456690539237526149639067252057816143643237624013709000675883587347053460900930889016013019891375627266096213664826611643303732002198230503579030879592555068889620141801981074692197189041416080023378234034818384036575566526288295657511405986721250264319380238642534458289563082096302927604122340638277284491213123539425028787933189814790107171098176468954758170938189734746678298053147659405700536020917018597695578210950725422486771578936943288618558014426727744114761294103667523025299698465706496451207645804547032700948090537617650187084348196940963827891613155562703255297430388918484361365011630524409920913398882803467591363912457948044722473535333802508380388848691447434562925358933153556645415388990125022667579200414685083323209148266312314685505018088447161943127858858510470125291655587895579271093506939395309840763543647013741627861805601391283232603859967377698145096223239459165285160069754291461093480637444736646144369771069359056850620626107708600386786788406286461049122026309050025139450484398012097164343087520765428851254729252879521809258211880438088454051389959608673956171846304185106353560170807535908364292652318918320175437956964067084839073367510034213814985143666122618338006812936453614389725999115903403149738084525369943716987822407800279621222209372367657408778476196093557619843536466912218524390077858376933881831306553062219450034727927310976853156429582504067050255850437415404574356498146175919356330620146243807088493500099660459286039257063745208759547562803935670938127270102302089490978417472596053183344814831075760048007150553339704320994242425260109028713924781490497230948834026541344189162601134037107070157275211292990386941648719559725157511782832742769761126083242961545346956290291504227657585989480938062761299184000149310324221147576998003502013622610449128147652084873767098127401235383082591208227679790484569199206909947568160680303187135174647096699653007481469774159719803174059751403817938754990812044315606633795303798027784626967479635927921765413399706178296174287913686530293243399779278833507900414166032592117946914931160078703207377689849524364090023614947155013563033263433667655986818113911158586777752456257565007240948711373549314063555356404964155362758496718120806624196430993884012017401336558374888420054165224382702983727252440777806721367378101256656105787762736183774215738619670724674181806914402627186213163647857308556637437885748779697227827446676111033434198284433689455807678251136870182790071945131983583260822657180908213794218307526871103940528862731017447895230927908794481314244860912653123278808256264513338615007486264287265749744442399160875106309951691311922497924586047380013410710598285775938181230047955163973114019603357956576707517248479059178049330131287164397314067863643176177973626049675775661792933742688283618509972895773505223694448480548734320667074994171252310802454365993284538856553279944467484898765555299448788537144596125071901571011530626653906985575553795160906941737464942753014588130415431014393976609639336362551825845061199686487193524228764497916423765076451652393454362196852728287695403257358132793033709880387759601803107194586227014218012008744025896371835242386842070853871670440389759561707341461296602222776740240297539573500812500492684604144994975303663815257938898330652150589171175097168426365095748807249324798151262160361603989270302859573137471736699642514246599604237886014972744108868638262860758459173805190335333962024678122706128548661229036283280134617657874479866688316432568908970019518852010454519781659092758298466767773585000570180396255598182424752363900371794207002430431196170864397524810516978932712330215328497849816547286482540182395615211472605709515284226254748046542994839263004518798594899985644014141993168419634923099701565443819419429303771369705081509254252563019216394914566611099578347713043983001839889504627484849012090831734127070007018794437681195809877471373375627016303392762743347807954660675902622959874592176625227768034782315430104202749052781719880143586072076899343518837575801118498301232903840066402278035522842180621569082267149952855454995980446561816588908716492931372452203199979854185895105838727027498856960989527904529739221282886104679077248943736296804190877228936595593517670836551326050457863764823840664862362598389451476605587080050177242343418173242142289896299925242471815945691735733460160091111997207560000073929245340692716228318185091177891044579381993885168965125519406898007199539068925755319829448930517559013508961570294006054843319900501853142751238674770530150691569626443266144519102980618593303391474161688858997963972671732267652392189617785935755859192938639490491765289474698955085132599409879217617684159244820282403659967848240917974486697122541767762429916694859653728564582536986253933588807894268990587646709144150983427472557136851288854636624157590114208174968127323076827352296834526221357558758764036911037132924646016111699328070432875705165644030275371629634130359325623246984399868302706907168461774443367273327987393476966894155945447414308784638397620857836155877348497644341847101882608437318845651157806786921405743382609739551125318321382569769490558024147628761637448665354738551954114483922615614513228302865025009898995739788749668555831106176596553318908581405839845005191438186575710724641056158064506493719920613141196791796353184107280348832637687010882165702358741439124453083973228460519271216181717409841052490517275267729512587431645095433173429679866842195779775907890751289266068047745191962253927613050969679148304434854423569451600608017371370339976110681123305312401838866821839138182875007689739453110635699526806624838206463938215496182270628670755570224525227301514330241833216385880870990274681491213271611756979474891254189356211415555351281744218401741575321275857921569009355497942925276748721378806609217375671354336058044295192357866737643801847148013856867846360514542496583849527442282623367506533739189449971083381539249379614980093825327639036074196852385733337307809150938687139040973369544504253868767432631262094990769719933050622550080595555713773475794511838716534722394567090927019839742307770008288004129512702173394860602573062830859895257504621310918972594863688776734892362788305204148983114663274025640971947298142871768297930072169371294711565221135222143596280468573884091823579313992887233123304631339571810231701578461048887541935774582510666075208792568338876881239774267267017042419989484277698351004674619992240315068984319635590798606797869267708702106835926137772143140833295443338391118245290013790626057344309581290246088331004207254689510328016041085396207842363018907695275247069309073941130363881573756325781841309615102562387280215514984101629045178245836720942900701945080925747179599564806534577357450900601322498332148196553325003993348439234172426261148246440829212858917465514691564258409246076265879566442013803799636191794628335050107751021988114918497981737083173321972848270124758018558510176336245812907035680532497570029901560897434329854962720483294386279114234853840744507516344352579368660682430943473744621920349062427441266320943594738979420289927727302907262422532776770329618349696927818363527495389983265053473870640999595076286596936214016230457067557709238051412402019864554329426303407184958957826665791402743024896133617985286866938978397105701829962188153072844205731473450892368273146493018802483548244302325134254263058426325884736015238571994604755179920461606919037328396828530964120405046951490982008695515714968350030250199877423015763592645314159893413829442259360781350148392190202435500734592085100992692264415441594158611082107995063843106519381705594102147468970820877384251400207324199238802653160414230177742588688168906899302931516453855517100136151519759907352709425576052744209844742930474627655484339871812212041447380337367486263774951317645436635236367485299463081172875050774277846771736105907879169985457945608700831618476085576808197843731794219297244510482978523867442338179714746785910550249644005214150055619301609325707103820853922277322862463867188910192261945016766964153595461487187525353574621197583770282872431566446175341787727238183744753546409490917000352444925359550181303080000099552462932364871134366867955330925197892790030540759925390875542679758202237752755367844247999258091556038121427850526524521014195339824877907262228337772547191898477212263295119126239579990177463242960625559628058866699022672441575340024103680964296207478112161244837295000010425821107891411201845141833129350140709475009510150885602464647071215720135171468793738758485372788542049150648931536987820734967582484175865671452183127717015994183573474544246577222050487084886771537986303592361442329969710589537461352074976188788194659158546382493369436887770627450934380063219983349489537565723736718417042320077844069395200088842825831044070184742517120132587076235991185890145889987693779488621520209014963272366751407039426064100492438261089744022869456045563298358341102364548947830266649932240058035926650444419558172293682452362318033622986560705742647152235991065303502394102842827834267029221157127628723161947349240837238418509896659667703524115523477112219386204613229086214682542220323537533959398598927248159667153400709361553700071305925142925910123971376647613167822763357242829183609303690966622933551785010191376515618187241969738344638347330959932020380486619053795949426887495473063768799090785588556820615949688645369711217294259724834943944579644845482808735181038870588742342670513045715895858294015337274246431959842236140789532211771296144174703736105518647925686180613009092565727746900465512478694613876015843727830803576244460948266917586087211452871727960312378513203401748174751698930070231396362550266555801452969936417243102683079383916780809773580726271405374241417099270417299674955960232721508780307105660447553658958958918804771976962168713062218350664499841908931826257536397073820348159023587122816887540909857832077600787489197316311576472123391577531132269390013812794515918919268112850450372363851948555691391917355940938020224112555245643553123571247292426305616627159230639965873118119762079437152078263147235101135242432698474122369974637005032884154613169434242023202699664681385403289240354623842745978035873223946945391837289779461362900040350709409720299818910885286365163583286385317272678354989821176371728253871158540350626721173984145139124742888579200217471124974752687088099373007964509793256917306887719554928749590948681328831438168319975281091507263965760432156420185618130289160268550221589878523129880055510972657171857898436883348830367057379394953739346287917474926107230465256004218030375314905306122271520711215992491138407077898794078151163948764591028015459791021169306893862340254979260326591776391951776813601224026799896600050343548331483768657635722705994646804174023880272933603341832513401688160565353856541760721122855540060948418117363129103009061385589265569155529455803742088514860993649756352167133899712985754383879677120001653153742497007167993248169554307511700291354722056289870283334787450265862523697316700717448081869115522269005337013758999371840885833111458288393013545022378837001703341796349722281769969775973855448595788073164020916684817978089504047041819303573287723646546456269487210932192679640614600474099760519615072864706865212677747934847648746031320765825790366974550162544809431110673324235500101633446240129816575056256026927325476680112828959095966985013758265897929082351926755443465050543183400237909499621264837862512112437921816182742409494979991330715189303787548175857036067929730896058876897643699757247214852863893269950566951637129089471925159354020946323745700917793045767739304714381211713104266373206166449059308086331057350935037651278225480058518955244189202420039432724111626440909710148618323491811242225017341760895577423336088897493227748665918727964510167111582630591036564146403527186636209061753169317481922757173248800249222908911530325813540430792517468332360230232490301714314857628449354238001640582880568702487868263221517319864579814032915630120314914567588628660676255006375665912526188400191499308543211254207811419609337650463549476668778033639147963561431308590888048801561805758826377128092831390881485865931672482615643478094746250276026807656601563279037742260688430907799324972457516203890104088640251233197471743713072529815278395157943892806668931455095790407833477261107632389759480844198756022113885852005580236569610160677018297460808826746519258596393989199948300869684094399667337852911871792205843422493489045015661487245679472901487980878665765385421293311311713259271670285281481059992111536864059650737572821384448025741535569424056635285795775067643591915353184591557092930172778835598821353014605921051002296885549960796064958764402841931223315917665964611584699538720204041370248181147711243060301336111251920204601727740412662986878070731854873342509698156907496958948912430930608220245983062388541153819786351919047168899733050712867496183152799727069294445061033975931453920422607953652089280936113796509023425690873063080307307422689614727315350361654145620434551494130088132982157923853066660201709623361187393873160899748438891958049072944764497024986848484901367960345300983020177687443916899096590504844537426911848169577488410465717179317650702758161003925517785905515625631449898966972900097907571389267377441381025798354069047122376495934410137330557677875502148350862057042058645985555385438714952546657414567755375334708579179495370672262515759526045617829851314662052793731309320173521824397838848583520667069347603826254886541456991311661399283136746244023896642891819926511124704554362502571602838557991832324114653241994482803923909662854548678977309534551176787779889933061972169782387983645044175767728788147424037268648692920269706473052458924779893830081977876328525042287942683139373559240360754237388533485319596640843769121328827094213861226425710782248628830561321375779825502450846712489077087067670136536135070347384337454103803032191071155755165468352888949879737867074944342596626557416626479809622828128067340172389315224010737722136504326319891138160498720216125030833662469321450102407517005277305291248924484447118123961881769974548926494456904278119290637677515698957679949225191176619519611725232204401017940061380816500522865908762915760158351108013632484455055800492179860348743630117914409809154621515139651382480120375023839392115223829135490518217789375493239535591671087338819433372954842721460624961823478327830949895123539815789254884935883258233395580463842597489399831659821332333667519969575370785670167861158941853009065479673370097924546088164585144951119252713066615301916505942937694440710139060201401935269889015260656094533044505979197016008282749465046791097459922795904678888752189285189702968801593014296820411525174347315458296736500873482991492623893836130584155688524778762354872946933001600464306367715512519801704882757604445843436469042513185161539290059929135409376013931639260502865242939539554886362987091793951437939730388934348606505442942018820088129448038901219258737450579074801710020275823917989259603809780861066968655129443364053569948416488056745530347616390396435338998012113000235545892222766461248198002971935951977216680694672365690842983967880008238712380964328518440560702367362790212901853789351635099445497893823333054318774204420721288025128719947172543439218944063757371190631577956967951494772982467304592699656502777592109112585837935581905107022722351073158989713922658081721931164080856083283213942916522688805545472322706058476857109638322427773594812337146956085163893105520491164837263814170832588552206606307226636256870968137061296276703054245474104876263812757424187469348967202689663947702378192290343666383059334568880366044720275030784127311241492094866690649131144591745308503611739505487801423246279193642162590268747426171091933753398754292565940397281340480539230271111985996717269761973205541577256821901571653193758908486743690923190508876588594448136848736716012452493375047048246722451521200161925947674711549398533081059419825576437459960829373477607305755054959984324655856974594470309818110322870146418727283509128443626246456653965871010550996651201087221578611578370154386118064158985867996063256399238901865899181989935681278648600448925701444129138091629622965167916355639483343450044405265774656798303686358534203622445770510487089045442617304763787553083136704359223179841077046566264671698945680568177697906635713248535823723309559886157869001875216547159268462664227196489873770331422552822292108119752998123612386689467684046821845642747541838565116426648577545964380761110025786116814586014783592912150639148625609909101483826778256170804868977938995701729568718655478031031642832278152047369119688510656590301016383212160697905046974736204095688974328752179885797553063744373481360363306349414877571414273745557193066393110580790473067919530627311600620973787777273537838325924424350670575608534281431506039650968798896926544833418264707903892524917789901406803768119793488781969120286423134502108223063353629212532205524441536864753266333545002332125264353986539028721218959490455764979111456676194008832922313955560122975309274093014056511916933466733842319673275393459837501455675939686617862568319915112317589193040622408308390089493449188410999604061316437641813667968272655330926484976575080846158176657027690230014457161173664679824044831406602193194125813508287867056161233656689541006014663926123686850767803458133158106043909237194986744206070512147768756846523556431448148333661501930994034270647732600062426257185327431381743151184541210153853852646859250022812811926137765215229583275419919255808251120491010668615777480228926275432211971983207074851520079395517782114170110221804180297757536102170171681344414146824782013120639588700669960324876687126111342576555262889210713976872700368752102259995040123783892477996458265805065153928092721098290352487895143004066973141012515349513823380790435426164242052053826865534005596535431198572872386524213442763541310146308432351869292907180467123783698056294076993317365542174792256795042326049610643231644294522944343090747433620817329490154405602497676922365513760642379820433936769806842043312539375046731705862943678975344061857871815324427248508332489020638378037901709006136686903361303624776201011780318731780176554758105191164174889798058858254894843617428298791639640178199195746621769664214367516298259281303337281484196039138092987622288025256326497823587995403722134846981796061431744397276601691910539833341523810475398265922050211173876738177227481088596572521057780561561449596819509829665653803447077606779333944172363635263699789329651751072542347277224997212665115996545699592977587688646309719288767050376967587394089251984852185562925677800162393938256083436480854851182496364663095589759210671833634579560213932222445140068874690985874452236826797662592998882575236007169321639048705488868944739746865749262699488667105336492621895939920266756189441340307129839261676858115468304771455118598719394554819961761768274165824420281170665608925686054195641333321903703226473182395487633177420774781109373014069851936413682901117268301836024161854069432175839064968314487584012582689211556134618786689813843345313252924825465041371785895605704057512893709685056506393835078462726964812328334337304095486665412084788129728637186830075294801619802118443650550260380686169344807996613777156768018805109551424067116698553906598971245036608854000108045357822566339129535126805516856077728027735865101914752171920884912283655708309865751630341108743228092296953239162191437232726927412465144123348688595308097797816775494194433632221286807700377693899319112984498438574337079247773210570216075778438775322232414837984249898040114902373520379425574807759376492431180354273166361098825303635954243634741961494135426905719553051359636807854137667744369653002060086331870430091414741746465200327179619849768186097765463728125094447576650316535638522919374719470520564219968524864688969107913942542299059479132992490109876913433493841962878931989887027507599384064999365672942195386541278108914963211450842558583970357788586562866323429657694826894857964202645273164653675298955546225392134272249644446247452803746646745834267696369052990502640551180274746069289026717473966161523710698723855005983855505045242444964837666197672820625897148521719325004984893255640669922969120222891162592487471136993825593824780112488443334038591856215831768842080741691859579325738001599298277905711386119471259992576545965866754778422648138769388393699876564989489430693690294684010217525599507215013417288840226147122225379671336709029267980973426824588632506213935930542515169489646694429980688147831986461661576477617291950977493621743547449025068896629757913869972523706111780082721843009944088080330011179749634963705358006182809490319105331740105135486057514354512092876761994962852159672700877811017766340261100875312430113806367804787727826498001209677963708766980907562559814528544205059096830754261340510313719741393180635484979007272121985784521592441371364117772242655189052393879039904462758832823388903698183866660599920776854683585796053955307849107631970916298610646307096883116169720420384888001804185861317347087516822977381809227937869652921761363998654304356325838923521870801324603947856055052858400178529676504767675415159488362998865488809301552699572151720581972784154724862166775237469821820737921518397371674631607069606251261867561546519951176545901384766019599385897480651318198824980134655927288424548385241915817841833556883352014079544924776396709323335836509911400509942749443644970052989869181532207903861978543301900888525984989975354252868316844469392064892136414823315568259323144498212010553448285211055310688166995533094263030698328413307347483137232974862308487116427121942471870541512138471542085041797965861018579699753263698549262787423210582008350965848973387344369424590552899655057286529644444036882471481644415849681108561921933306500076689381227919347992288440071504547673546777747944514231940229975543105494301291839100548882754750212451041295254157606038049547039917055683968347434391692086351659804837383745807884220855029306941248690030830101652085460817585679239029194826943742261426802484765752727445126723698631282515257880904187303466704174108438993786294060966124102132382596283772763333519176801353440219360466024578471421010185381024899699801082690236184727621678247312618021335325753881866705339921331666891256700320018250764975897954733658979957754806760955134322857992938906411013377837791084325401207047530961690303962511904325948799196972842696590842136615982310844041777003292079435653166380008513981257519321772402328063016682208574104441434749798000352351996877684821975712352767721044066949440460561068949782931455310957198694285381027647826549283197453375502447049364678287733726567735728638614504041144885407740437303939257244091150265138994001075180856005017635535754608019391277065722132123781844654582675003781640217308268949354937837118386634075859081366783298790120990953844112877727415056938768958888445548459450938936403062284988255726454794886311481089225238797303328705317641548759602827111653053739486548800842437519393550089240951768009461194168509366671865845197394765581891378199920844409031884511831348087060726256714500774964678668696883470938031824353513882398897121258884360969919317801780669257832962543097605327576729968517711030067952225586727065332983365078922120572469895436616183618988764887507583068695050385440019272974934787381649823125638842138749087512098851221661250772692295130135646319207369888160066064058651090038383981790598676570074711967182345676808110331214501806977468667944643088391586926332770689046864334743476035026525578675710571653786033367253176024193825353757055742051179913350196392209777432206603284733758679068359734602439235477782709584901297715693240487815021071198362158824122981535576659030817456830237673356542430186309979537544962649425232927209805299453032838063798758530692348522953739959036147015891243969822712648976747068143195604439178765294906114771654591414613359222809717214560381404526565916821361062277347545456950693683830694370469965166954986746906906440952509605611875876189107407141347759968164115636732464244967281597318895011546723993083505800260388291389278319119195576837891184806756294265348259809469925727918080085007478891363132447105908126006367635304223900213813278644824991835966336555386091704703906537622921830981241196213016600632295333941690242531248313683395404830902679202839356770738266048062342248969098920811188099423059293574373916124705103489050820835674652329332074846477579972871524662786255740796724670959689977847095473611011619364636549651915459783755883771067310802766714748523234396711634793597802146865681018740888561361222297825525700909749181865469591151195807068338947143086836450276407105553016349604053327317311054247291320991118957103388420863121923200663211019356869606224502100884976307989057152321021179795144806320368352020116555059533847705670312502227114799402569805035594632277200639828782966539247326195784989813425147045936358469225013057391998391669053207203164625930351103449358861399088000611431851175441213523469376040750297675944345899319048787837430403156431426994132658342815503281297161439394660110928127879670700999399856945654048485650122253597732686787427536477093419455895206201499179625233847567202821942421513674710517752877338265452226498445589381206678307434105391209741836258635450752626797018224880072287880262531390309750284736109213654605766077970354592152055897283676902305349118600925695075915896940025598272437386533265594993645854509338440234216448385703679762109396572595718777135389982958783111738149917904500805702486754856499491010927173927676836795563507366253363261645823598913745137489282056403389904225809290690044359356329651814845630371143865881185508283885684615260938641956858695899813242915446814341895998606890726827933257675945788278984624296175081924074188810190392101711377211491116657011708493038238347686084306098070320836507874810400251848741296428186488728131462272374574902459590674188262482257949566422441331595027732813753755307972863475585590152683483706741893111647433093965236544972953249504885472839689587452633120796241166051113685971389426640764428682515714584603704984495376334205276491504525847587530473767873988654969731937059928222350759788537350536456940534049335404671153113966410993479012618138895017549410495280068912127435569889109055676837377234026689314624667423197105467699857918277809151287852414280783778087162138486670252282725562176115065273859787645005448435221634400241309904884686991820283124302845049441829393571605908022875164371382013177649897924021313320398702970220476022723021591936271651910973264736887796186014829489538177125536977281756809656630561944913930141036555717272092346205429294640776408659477006015642470347706890959883044773308366704985114744540845384515974823134404241064241231670037477160519230177609160125244395266402591785478920695767126819853836837244491640847070012713398731181284574380915624882850606163304334117567045568130160450430933793554190771168949695949077270228776039877027204674101477780870937885337484460775716478802861110347730489390657466710667985682966322258489436112521420128807030507630129418704454240602001191965714134215247021077463125551472026726705414212011012863015612862358814640577701288709268265252108179125655568894166545655083938941176820340696151541498078489781035159165135447515347645679542054360516090536169224001070771247098726166582758978383328070987993132382986875188750008522353063295061204053218137030889778702581349454794267249927818765104485603937397305640621166079922779858139278416153754906845910218308451557439745514542221426820243741313998147307664762622213618234112117501968937179413717579065998926350780670448003119999891042483495897047692001225826704530283520803009110056959911759662366283799273559778956487803792445096174220329880088139853462404075293470314995937245278466443895791602499899402212388790081782347541744912830258240303871847632403495985688201214335918950462942907484151875539034668359376269542015850370484242739703421540847743240643205665821231637021190900862982901477264269648911038205921381781436383010189707335498883686284017288934039068041300836386716579738500771359815354813534217486373186324033074044777211024069950752783083307127682988411096828770696936996485136354317902019894725088484618127214628078576752453974001694380450214348274192870133231684492398746128496843101564683929254850627413346484082624391384368931273445060553671870187191619297598225995187113707464533886003488726821370105500007506226701523315200722807627090775265827114302474877251237600884722250199653690697179184046881636078264664096044483621278737463686861879296866829572392677721946086703531268542426184013034769535484645862725264183185613753956244651453940748734240810609280625237681886188231250507019923562314769146823890396849104425192561996096846683354791585444325652453332248010434235710358442933272704279875529735428539848443260030801192003102726920846441781058580775330001613735233784196347787023978713038972254338818995044206549822831050970688063838230211969681104633337371206113820382035172960725273138858174307418727798049376959676477320859269740372330426005247989574040073064850848648349635727770668749282062869857308204584796673236938817011032988074564308279842543123861738859474143868044122555632880091460732328880517695328648372549449882045919482151373804563192609333799468170745699353409563610694406042131979513390039093578771031614165906324410020605772946998970913849942256773035774428358331955279453838774369790992832759327352046411380105164357071954905575903871240942965557387042227698000693096300834140883201511405309976643066712191812244810452055596815730751702813364186913012021902464937349111600815586398710696451298442916350734325160633880376490858742436619004502146509738260692180813859336076957399326879198103774055575443700198600815256013679281341039001276004575462687807939807593328959338755923873069033127143981185049296154053252826834740358447068160656884976008390357105609607077285693620454860772095052148934054906158931298702262131295869581580167796337975218469737007190042354064518102897883603890434930992897510090141059177551110800889770725527531975097704411599948719432291807554276788770830537176333328040990613401098566383794955809678988589058747461145058505792952653842969249866224687617963496704351615004055403402138887831866198994385717294789981324401955033299282149129800702436899209278714365864971518488164061470149328529513416100847641343352155184149076695507387010998278293234197254227632878464704805088577814145653050534693453395237786457191950861797894792941636423518017641218327196742341222382975666254779404914165134700663630519083141533050755457805831325729185037619034413266251272739202416101577314166164667540564722974200056823024109242866136741554655056296410906038202826278677063499114510875731821977546918631733942066817569000731413415125117058394138123762450410470588682414704149209422470899335166944903590948352328731921023633861839706079466317011548750479898523143049621023544265121964488875418055927913559358103438908911990170706265194087958087645028408045131558021211395743063424119442460204818353572035637942239735940939489052070401257676218982152791344311167817449400861022082862799775627871577618506180512682282006871041951214410596406539729722232080900780732112072774600289586765782613778946626379114686538887077730131444962800031038901152198016319836269059215372666838792798479663293863872439207224685111475302156458200238983961655290742433120687915966507577337809302627920911831644989542606494598852808737227011138406818748539224409788898051974745702086220907789062609247696436524491179862187095142867580581651790585690160094422200971225713917817084527015412307488530246597514648014591126852084218213237067424543003132877601891752217496630727104292805127104851336922558251584010189577220807272674890300144821990955386801109279097557947001738367781623371188527760323542647836936355145829471088128554182768158639922970045232756291739329401378547331437596581156539906582631393950245642008707624776302999487439693066765118189845316270797432329982307822214699855104179969675943036101405388159387584644544977526715782698030864035701773404923703760717526739799127920787250654523130944612678097382947986930234934528601843412411413742543644706402084473780068055845980194621265058419093619183479565903640030485763595405503539682149871773088519681792459333746139313270809124452379714958573989770954042763477583872397240404813654626846790565007260005713999830993850252869067737618800480482971412870337437003224207467102140897183075909661012815763311262174979439585422001581968599920557086513056065077988516086202845456511766197871371381052811727808395855953649249084552172212299725423859036777638685779707288699633239021018012450606674140582153694210777244105029533638983645988448586343697775814762830346839408272584606578541279970571389752990605217479366863431305231079228435571662749692357423692351293597878804082932176033246059894880192775352181915033868692501391124040813244163698729679824708051386504260672028355973639647925337741890588300583838972485487782126099114109253142366289044985847909036897628222169695280547275586395826754239436287720690694343911435655786586649284697188868454245218952649457187113249689808614210662893035355461895010014124842278771925847319424912185541814864717924630135909284948374629238689692873800892805829430410872514658618963755935115612030177159403049868646669229414356251527287175896714984479802000649303105612478419983078343957357975568373290969585141243443386583050946670702402999968641423010779636750322003044778908948963484306270038728581558606866487001686095761928352876342886696966300703333486074609885986349481132552359089106772139755085328495961828044242058900717140989051937659942622618494668563909096044439716709586434361128002687327363591519006407330769625354946966866344212685766659794697204764854631710980709026308160883594823804061677544376736132938694116714466943415468199984660056755001365733904537231004650912641624608182653778594753253871921334006244016069143234257290756210577796044972174141622307468214253709928436683057080004694439201274131153502012095366556988109805181500049217440395847069895825871559693289756633041424908013202700307300226821298952655470647495849725019924070907849589322724257932408943191107249153179575215700444203303131631893863529582104860741802880670338390111073829748454619295999591873410621237531434511666404290411613499113258410584070049972465612924297530955714673651147561943311393985185752771517244625708467065500866337841865327848239398296089278074673747715688733904535979246633930334201357178321723282114542085364795015090932733582558790495244820132217356962662044769155997366937913750710923560463613941786252984875317857610895915809805601545732946974154095424224845120176531349118585734401480250190910932671029805098607992821078579491870045226885857187931243192822932302272667173165777105865914656761975897513970006470291885440713150151563169675582240225362130158251973048933093710746438400052036805822263467319801158827319884542102931819932038858630639995234970429102412396307443448909368232978158934233771946209517877763796377167754375636211753420190122589306496646701333608402851586790322486113405639881476464741230454353301835677083130937724134094161713573859401108189327222325251427389992900095328402287852868538874878334247320515018293350556225930810550796555951696877291042066403585656329370787885220532808862592949273408901438728507002312219166037307986089554909924372636445461532925074968571940359966201338553022352426747901346642023186300209672885949510535595876277434611859791894683290796886190495200639108419900017412249592919846901534852005802877489403203378650039832169423262528130521609996299346000048096380588406058195226072908920119183651104799080541838083759919038822031231197271217832974007671692309654787592730914361782698421514912107942259812469281011430848241977463043298036187810056068419204508180009129173440943135224319280510397295613031583081715073647702576509078005336699667484937082940791594704760288421180547235032993909912588767019927837831249840408013022562009203426253500836874670801045253004291825266368992747619891169148011239513043341500110315326275999118284221406102125020068253570387374589216792600753553173950728737471436267143898425168955214556888703831484700445796158397863054951350325740098384046485688559133953871090919842068317059253092259025183498233815661838262991609690895595082597306585963854900799190446321252794732347251548677977418366012521541477216688854597045424507444051162735258023851065104931518715319544908975205012559653637355475884348202753373232242032455801714800330791940746675427853405456125542591299725854467762327177605870969953414918946565950133829686116720521577553889424442719230404374896272681746076211862174061928924657561019004537371558130432229656391784206474919281711361326092572044764035039319672001834806310178950243011560578708094786703976276260996630484266979720580385789559188877702157919109020969242879570971131357124895092826028421557473344542317049884444723131049707903364865417781112049472762221705709355333943082765410521566454953361046725874853409565863394520983394982134323055496010966767164703363451910403224992419581389286271374005909358165348940765831050618329461647036418752223699683109687783425586361676444231514725416123476917747287277711012469899001068763056729066178164411379676612384908517084752433288453532059524523039363630013980385183697605845913814247891569242820830787487848869920314654750218247327786067693078758808556615753918423061657350968353218193870781562407318280348840508084189594526461902906658603914592930060891669232633175868534810912342339315724398594428794659288210759318077320848751773086906493112801332508822361831107109968270344550881837424659018542031609236623718433256320854988920983529020003421103404822461455779974164549391633362433292088222203416781115177966212327256093206758409513433924440000115065543984208502582882553165351180264451075769607733369838812113258139078614591423302266885050043735282266260187319557048841438694460228887949481330284531459304526405111154723569624019902024135532595807719020463128161667482197764669768159488611925646739195195165970058888763409131921796814645700583615228772885544042406027518738218581077412510171808875972854127098289708287671992290794403044326502850876766120370476933120013462156206138297969135533128494979624062390847279092989911740237561281648843002286238388694665515591842894234911146516783323994066624898826040308489182470929649295117934839333237180678120030440242569288074934313683641133656144621495813325273300460325333043902247705211177352327032144451892663540130822071996605191637456083696666145588700021082454098540934224701701895482472894133145429366626226838436481454943823888790249025735790012982154932536785709877281697201956078357655350692928709758838821672537492938454887609243318927044342700775356565783260406271485167583888236335633358193101547980856108587549964856669508225766120359771026000052501547042252460381499615414372137706885473282201288992676316883411864574916768868298189878797017568282366748732792148039437303378611744270512018625071503751733325178952556524808136697514484118183627482108871119930088044797320739521984864421651094845091562304613268896192503014081965678862261821252542336849076668814081408189247198802201820715123284902691987237140952700837171658916447397206615822098066103908509232769826121749643759009460017007407408922239403891168278458166052922236923128619451368055891216048025495740564282592320073899297736324015775858954742578007840273578786269199225030812296785057640322342811918080841719086547707511909679032883811274063377073158175334603671486933490202888450104435268473376836668709042672546188899769653425114327382522327571550099175586621586701762783515110740306856244025601034835683537929732942542793686897354072163675068654303825320941552279342844730360675117832969058859796298405689686911494437368448254045844140768179510210675466407594261625088576317972530901491870053822166137596854546743767442810628139684242176193003598656972765519641905318458041827349025528602276166984963961167189375695093973132665130092618326465783075920917101850696409477977349649498446502780904134194883107345472531733091143852695670636261471710957776877842511749487853283402371183754363647768314678820347902922915808048026091928068988521631758999669327277389068230844171190384986401995398404320880856587055610033653938682859647559322890565120040974949493733363189112445157357919765154876634918162313720748330733272524054852775868474847615911404600181038298750663941470763050564409267886526088123401549513924635796556689655226722122946350359648167012403353544841721050148730382827457697452536434886512512261065085704158136636930561468269168449071161329791347854046031190869503803983236011024920236454068400625112827184192665945031913671074789595536610376684793421330153566124514641650118446081834728821647994673863096453520779263203338534824598039219920171301702411056105651553369360582373555289859974393070653529173946664982920237486890889531755833828647675580248869362626651133307649249868844932888945993870650902504154488565681156281554586279745514345781473267069662544732920961909005948859351211599264976432936862592684725131517649199089771787717005156914792823852603565962089459529252313104726291178479321341170312606381523115880435695705938894939577575791423466487727178109160489785657833313875606419049638245321329404363672417320590875991356909257483350628233974518907883278245743662322389767757802769747727351458477695448379286935663918004370783151643202173424138544951703760855378734211362587487703465680370382827288057977809194956962150462693358553645272523297506292181883011324130445100634036697258723259866914406138951261074171420249095621415258485807393891319413371983944972159530720002441630730166073595784079781615231744938635966852277476654702877980941394765153351621382213965939692910106303040113624963722935797169400611032952607348340529095139423759809860454470926940678465057867749397701225228323891367052769010069659115988403698730103751705085374070957348365931814123360734733144773007774864475679348661076219195898026595463111007423221177036283323051254547508683347922198918742691268681360067690215582186904087912799148955500465419475056110943693391137271793984302993926502238009195062402484253070392301407719459890765381131797913564912941966792597603662847340961157211613650456716399769092885145739956841612882768358590504855713296773408896126109464076477378004739025316848182423431084309544210419819048433956394543274544416749467000193150956950894852023756539876041902212421819512748173582075942830769294997330770201092043497714349041540496642543931043455017133965857302541560779479633079110711050483487934810912284138436555953375351875503940277896034852515656492308112877392296933952691858198639946052047500302798910486717420482623687576506110132988432727070944613575909372617981433334530348435707705630111142431959597960276367122781583486930834079997309347935906342670362078081167234891263513641058145680257268338623582954818532717156144463707173829988734748816692019446738979943038542954199590459417882708693131093662540377334103886162434481040037935486683904399015759706990468913456246685570532270102993699459614969231089612462504475668974068810290062657324930898711727449183682110858881983008301999273307182348974037827716916432268421825791255325079502824150940679436957521802148401154980593726976041365985483436285638843641913163636157135044979108992717814637465386221096341723361807931675851340656701284555731386323174245283743124981453759827873508507420558250964651722864869943471660081794856209352127563543473505557934937029067934262874151592421997241501071407165035655059687518740945797413984044333510238778285464139925963599191987782647290660970633067845920504830147281069276802769090833642789674580096211462147719616176427015828648338174511488675107324170832047936639520626861391342573302702968621962776264089786527166701044338790292958126628100505052798180050749181531618883329725754711134196399984617131569541314520198046388207124997335017687177794374178934603030723992402059575903080838580135860429592286907325770131205417334080273465616670238568934974695644100537562265499037932905038081749632993093775188125243211201179230164494026681946091522003079986537286640080341773065100175618580853202753774533395438562038512422911331743783798230449860300073177623393366663983328880445809249956025839272661444060133536355914359563096792476373521852736348745287364598317892965039394982646459088793263448922781285733681611018651751007881481367754893178930043535290319300320773628673252041942063560526895811000375468606819625452009810579163478424335153439503482058704984235750946239177287085473423822664606127147936395681614636313019946099187509055943688975205754232740360171254352596894827204960448112705514126541141306143521645155737496093132583594269632869975329016543029427480662478253019486342515826545254876011566223665906004801652056000913887714710679606411851783050408707023876573167369037977909852220390029913284822266739613815002689310697301154746010306342365606799301886498195115593062133897373514251879978368279101973368653043729668994100210746743897967545143264201538168672430378238574177957102115518095172261516847279391711325743201702934166476262871684465508344578819542926836442243371330491270021760633759945560926724537087509500567336852041508452902616526490306126624495856386598469354945095152553786339513006014367242390011455007155760205122865444428244649938591732762839697687306021094359364607322996219976085149888530429506783282286231944424490362776318481028360219109682706757109491803851930315743879144645978119659267874661034901337774827714228658459610872573935105353808425426094607031709289970732444080425054771783053688613742037516930811919233066185794176247895251418594466460497276065098683121058313466989403243624610577203760306068040828325484365651126081093030627805587953859069544773557635762513364152521516608587020238025509328877774597995490118303626315534155952479072656967318850445330167920025580420194616679242653239651698156544033968307787666820239375486691201866950284518205048742835767219446505232805536017884187407287634503472458235536198471206508032242246323862755915213994633913875844264349158424809140454988024984910895931089151686328592192777645976757376902202064939104217478894727107412418711447777665104510401631206880028360370280856543612670321846682105227041061254262686088456580147476896689449598262382216201576044318165937031700447663878868114258272817360568841454827737335191600861588609074522705956372297544525442848821465574729654381163041732957584499578765265386603547092259698025548011745680466105292750080640707592437546810745340066467024503612708043526909339212456425515271077900088384080938528580157116008044943835420682261440403266963024404083148703920202466354031813995401325615478156384660670445031905884672856957568147770554350262045394531448157971687527379298800855067314471838449267037822771188378372059033812933279947933206741230744366984648329549617245981868453859507813181435273264631435063501645938325935943088421953816038704355916403538204937531249686673849278278377489075755942580948238147154233983136431124662214816503478155639183834215079154006443430403991854335984575978424053747443456940693414274799807002716657654707727908982722528447946912924165810785125922820469466909403106867911221509553165759920681848433211411260187382267778475476724784392097110709052961621792396518304076670764765851425725170663068528426308247660285920288416214355840570173610675335618753512952994184777907227542284404439897947461406536547002274712769096099870561570722111813182610551889613987412821661501799956146578856567012492628583989317645393707570278277651311637858016386089408879285247152256001891734831875440826109420428899881313632345158185019676906152592112581973647517453182188365966914744464620848529439355737991133907313131876162002775072459732381355915151555461493433830173488212255099176852154431332790470666310645228345884383130019100703695625064918372643604517777148823265382716089256819207914267584161565848338033922312136211021104629019424082412609307844819343501139786517061612447304452987710185893079373525010799999866753352415953416402234916183806199355748511221569043902192845304223809488506530890063687415373788781794227436876558699137797892316553212468944603746593745296024750880370276233565764017426019922076312586330287033168183982160824327876640812045449002995220869944615215820261133944393747349137213512857859287832954187474681479918432953669426347240161261144024390439146757282134096073439030077661040883032766864841634034992429011274412213467657204231514118717477538373376096817879683449599369866969470753127390031037333285446443511051760261599917702165353051701072024299615581964014701429632275370649607079186639759641028722061873090649651020325047512177502897374219653324251129985044644304350738169767963353227346183332206503799215599235874095527345085414038392227630265150496664988886421553807789871391956419859543484664721747940000487212774927214900486684144337943379858537602503527608739864724528248295423602123693724889995708352358864832188070246283130795142559699557076243729870766171317925160181509769918852433260870598159788505303077509467147483541810295080505455847101584970728154935487882781191947906253435951383371370709106288373493558141414720328718557989702339049973200925551116374044291365562446956992157785406797972553228067827285453346554455282621329274067747314884940871035234496875493601865486087381252482243361278401644248045648904366602707827102831388742817401370577344094417291501843380235577851166343167954852629433685818455492915611304868908080546939697401435429908163901842571203954443348572292627247055430817943557974966295361676538541706707956082847928446743029238240888747345381579728050341313902794767253096225596639183161545376440674217094422191167149583637890679749462998186695486674012051317966900062169165566496862561304365801594180198626910790161468176144820910143873818005825837085662995284536977569776182267163037888726167526660667749215245077248208085829077584601243669826732305704776697390432303995394216419015973760516867931893383610969364429306345154016452966837420844083962095330609720659690441176092919217540022775738163161745547295597868143398816716744054803928462226297461759982241521755061282922290625465435808859908553216494988652576705284660910107982853349758184992929392121755430662467535107204990786188565192814806178656517172531116880633751102786095984492305340362029590818674295436881847101641841613237687373220084666419450627442275202557295852462886804327916546636519831416991921912933390585823299196945315188156294096799787972334357206897289282238895623393557386978625532111418393715388163662948159420204975249803973757432901907104755165041999353181692038872660084595164432254464148614625860105254954572895400729909054047022571827696105901668412592019280177974630529503977153208717242784660988504504803638808862554657221893700396427948054959318217474268357826800995802202583489323866087101150489190753884127493412617518844326249272932155310077096447479920356264268626085034262386713304630786221940306811400320154413715636688772612676161730243343948692602638611931939524156461113359739020973393598211730802532309118172775500426035131538892581234404850617204245373902586286217743636206361029230298144251929557622561663372349457361087101451787177159758690989697844663902515605162319247278835698559694656268861843432731723568728263173858277573337339485632673297230449538159166685682303162269299195612669704412111143494614147956474878884139236311923602969986822839544209481278220251614714175563551437915484914351883286953833962527487522668296214411641875855935487951643292844054818541202047939992541739091719742284143845962964870687435825817527684151801614744171927827803433243789761632949322708599669065673775050032322513585256737421143708063992969505868201386597631560920043056468926373861633526559311904098219879324305394605916656243970578358287037025730071861584081087737189865854956030962179001334089827032374677599275905076323518084329760841851888768957505562376090270278520353849951060382514939136422186391557450923613403413786922020203488404907044525557537227951460612274922558987178433204236269340765650439890687167803952287130314222966080945704183894595518178721754282275865464678760395149547390073258267434662890862029316150360525246283731223433226457447963658415777272909956652700324992156180165061875451827960406929151174205522005265000235625496517728741287339350942893255754309229905700658886185378667689368104112267042822471966395936059572837984310914497030119336435829070099095753873315616246179936491962615093517137496510422422863460696699841349924059280438090953570676615708957476963390230110361315691867346062150687062516269765996916220841684219261522605478130277658613306564383233610489964425208176009457159491610392326480849641331155471236009242374903502938738811694674362638738243564391622090395899410778483462996047372866178417259480245861549070741236545020684776481308901462467552490525213624680637328671618627153519908536037078246939493350605311924774540313995004198665877411704728646052408976317890507084100385645050087910194622561617350583294290264267765934568401101710919774895340965659644842939955382762235603677593046849251789091308570949422059702253846860347354798818746072541604080214004397331102732312162926290964342580218737833983445690542120126167222172567920262256760837254148787251322104044491180150381895207390787082434769250707554938380179709291076259643654438938883273940315454805056190553422305866132891226471296020263770609904237819708392298170826677027607504668491062684866300039623583754725215728183423765185574660290251859822998417545783962380305332001334770139803887654493803569424277119175814316333849314969160453102636951201660392259118123931179367078027099165089857900116041635905136569693768759884405722948954900846449267168005529693802781059894103720622891327606661270249751182118512111005022166585656066699609309711657121803453224609481158137090279807820046850476419079833043693801521003084532277739690512062530772211624477490040064548360113272881405429656270193748786817129605625665513016802956125737089897105052168372321916631406440248185768135582387854410213848256084672624545302012489133035429937605752249734897264985970099765886377005219315770344980502656627186462896346064052183045072111293869801705557771114032425145894366925480250545404558278269358094868472665484817509355809162580358013481521001459368174942964807435881927592976164182561244093395850653469217361768612727714074416097702330086329782452769409185384854137850263467526400606207134933860889719904872476585329448295040755069800296688646995059320324337789124195371458849387483639412374928479526753209223000238247393852673620134702669635673141857257313186453495615347713453315562272585072074390723673548173788626020381335996600594929234149948133794557821167903690364041530870117537122868598795127250602301110476563693136775462417276603704827024369430115406414115988619639796993122476897804358338305615368738486331534211350195610879179696805962072221080222851991948949218528170084481173729741444425331179674641288487132021184248627439207254646487613127545148098616677232594565114986997081179256627113857754119281044784828414116986316762270502070874871229308021703962852962716517336179848055714987448935202815025610430282863612632511695055264889052875559473534411500661955265554217791314516030260025447795737787110375113997693342649188701586742415543886632138910068707006934801021667560121722164981553853664344920535276912201640373158393285045633441287485573099765128017980265840832273260988317071189885000582675592071834626009846985909704433980061925186732095079863334743326241789100314958707734179628732342067563150136830230535001488037178749427426018903782845135947469849244942439057467906036233691153705938746801790736564242546137292115285464689108463819667558933734087809987663614943292330628924721060098137262205925790812100568737145821685881581046213800409952125018485665229124419943204152325173919872008092502888563718090246028862501365932170480264064370995382090493918691625452032590760211095042415670566186218839096388633193479845028622911443703119568180896198075562532105616152429291585277893032209722910500864276493544265877162979921104457384850177049159053312247919993658349169406534289109944627786036107257117139218482864601643774827257856978871556994153491065501042270602458276015473878950215170446426280462265620610679764907295551929488672885710179977199293395908363244595429816672473646523274480530263346899237685206225642015776630163175778776942258300625342944153695166292942318001553742456067162421331809883295833973306777814249102678135364792231958668313444893839997649483327099085938756048442703481748711026069550561596401876810470536939864523042056348259652042551502328471500971723078020482811343910309391012471644623375669230886720706269463723591003469189231813685804436719139251885206613187694911059484412350936216050077536135564282716455193037648813818788750714126563550856391427084750735483581347960990473880890520371603454320771874034821593364949732362599634054341174023817496442140755042187772943710865498956835511661649989934264036781263196905038359024777838618843717076538701249959944273945297722613596188697524343497857431195864180605036954434547087190021544152891887778213085234854763737699923950229887712256224926730046932535786152289560064384514333203614310846777638518341687960328566810839492384730518402038446416823856259000717654657578129332291017490593027778432756929579849035718641987509717856900713550090309582225821410652891477957576534754372994993663834257824691501309385708572958381146877894993797984211918452294166725900572169479602453774962862527147097709514389553700374745760867761767564700395169232347387823356066213044142172191412717808442720907298515605793878550936746193274264541994935378560038332848112491976574622434238901867287614141576484663233175852322211474596362110195941970731743162610029481855768941345387952593038988935931409608093943532513546434531097915275125701128267954559948550324358959876794221928871568199647693218274633089356224580504232594119813504789983218869592044430497074619328315284133609356397631419906733897085392458092413415113751088514442887313499278970813913031849355057480787093217248632178731443651632461649341465593755279952542596030137036227514268247916691354342032480385053921182071112906680861855782805397503799506516438799116365042568850398532156944691767404055595611467396739434326099434863756481130825804750417501954168052843648465225635103927692603764113361268751100217697010218137828460130967531406974130244385007798145953608571472318430462226209794171355302181353238646443975541889479702338325622817107981819917871131276454919993148431213391859686525052101288997365295913918868297562153076922100094588669509974032540318933570679810652731695637829070643383954264861616893525796637722357893301548207324877266474621032655695879537364331895835884623346222502253551347087239238895666142596374793019821203862639312202264338069854395790899110329191538249698341241997136945816589791044112238316732025263840960228456494934407551697505117154665262151097667682139037316686791685018266390042013525078692427463885398736997415842699046249660906443568325649704715200506010681904718173310125231513283388920831407007854086272907553636852143388559303222265436884553251152707891857191239582560858977618746531974701707336773477399526297521268278002027491681437505044571135766358020454155265579616062896152761434066813440658407344180275362670059699300254932131678123318260975533895268212657875784378403296655092369786240344941800524708155359043802269606442940999563964857837309182385527894339868847901909728995332038179729961583890069403598825446826426490000555944916454095564762125504080142114380590009035893844387492176868624391943117434621973747198804610805239663948564535790492345500098910295481217829645488431726221370085848251268761620311254858941876298683079836286004039091262027233973820497731894340809544825028857052700346309568119602083203044113867580471582666729288507523981354302642469461154938510479290380329529540875722113422709072568664917112774123323071809564869294601965385894266412023842174941174817531669976611628451231648577483143336354733451207423132894336716296550731142814397688739056764191857777672149161178847390716274498684779349193261896351867602048555269279147215467056367595489644148030528192129917401716568684122168278865240189584378482435370691850306094310722128160800772250908808005698917122715391214665190164145028887851407002560531154046934442674743504170719869326724847928171958150194135391311000476710127300586206080906382444219180418233569457527159231409656724155118998213572840348518016912790171715173072735637774065484587048069916358039049256549764996841471868957753512114864663774898739815722594256021521204489571158593448016751256642070532051581813322043012952142885294645893495272672539343783374037146271874962422806494338548072776143992783872741823879123644135606180965093269181256909322482985539922800990037975671516606589808597172273238124459732187847387947226607653775450094439366150338596005267860989540131800446491256665489064151883437400544862230330737331213455394133160780308868711648149655512029586399556535943184509992671578740602007887377931565417522600477381137693703469280859098809290460767506819301102558352372547870056979349256139758863359140242882998496685289088458940544458602906370963929596726359524783784942757166384198362142973807558592276778662967708958045284338698493690678029528027835154698175096617525783141800383799445196459260415586657737807039101601183560915142216704753395186341788360805610788603762063837777318972808678845142532630859197308962600807093702119525116473500966228701021215165051959321629167836579212366243144427267235313859561998984562077723073928934509041752199346150005950768103804093295196422275961752751450063836935214838599795437048757737590011218435446456394106906589136341665947867183507946852601937778756573479140286560725038202153249975499485988313094917356720804349382617364612441927737506524340834013630232694018402343429580174236146380598748981963827976710097215441680498884085215012600228156891455150679245189873443062743957100958578317739863865195311058511235980395967611359087008717151239681543304168857425803630863642871699240089488398074171163213403267057174279313731730310092090012436800056969139178282162045459972876917312549095584112084002060850217229810293848182775364007737301465231820269395661541844593811098278051479404407804526968688144172224294856763490244171480061581008658159545969523462047751899758989302284726054420489538684098565685547564031190984632476528810123761642454081683304676383697673096646676312203895518465973352742646175172834671173607009689147140936385793842426744965541352090003258092237002977453682619517180154024413912879338432742186623591920770366140777584196862557538492851112131235522087831174348490685545562736327598497288596702182720484020489980500874429949364138445138199387872793043035230260891630911933318874081104062459428618208393073680885894816481774018099926619218928194145374479753248030849766999369043105815399762074102157670091728038622416036478838699122428756503755514548657927888739113295721777235235936326803092692370784251712062255884451186646726974139324739905966144148955637521753250773151027946811324007382297875663465826089523911651323361471672047055635703204218530679072461894175769150535976427491219610083749185977882261837429709463676636359572037797751753365983457054941559817081633154725288818473901615187674712239379927971675974030441540900303516223607388795769057021828458418100723437072809100574503323189518711708823130668893683177043888178655425417679428102459199380828129685716342772702184184087154811341070429588517782635936152251364683267529410552002145451630561944090831910300313010922966480461195992102069835352588316204662696695553428807725405214515040763616038962952197478624797975968975324674240305476843614380888475507547802533408076504335593369671405696103902805126053233887064156074819029405631182789077725898489873371785322518345304812624267868825376133011992912167324493018550860254113613526783613558229289157320289355235398887629320787224354442284775048405057372204335195974254030775581989697730190885081164603025431999922921522046171363497877918784827532601021909323753266457824278573561103218884225281870194764803362186245979331540036930757821940962638006157949497641356769849647836888911907105215544003046782929089989721605249400638337170543405588319390760514316558854073705030623250734746435987642955285389202738932488010862335370716184900508739830279795751491190792004705385562327016057258672734747193629156522512458709791871747689910340928649459587985539380942130231370869458551163097509700030518301966904232018574093134554737903708834056844712549566156147307691301641275300877145080359798641563765750518551673319675860016293506669067340737868905167754602675569654450708118824009896890377658731434250687718248726193091208349724953105013125552278993335826236385288163837998736693931216493192689847124989678789315270873314374438282757748019414462514644124288877735913019833091546325706901665756141760928750190083787794722801732626769234994049636068409497922468954735889837950986026428162590353118814251667981876320340600072157358292842942046891282013243085159205822280838301377063524535681655086767522479351513910172197632416095878613129597877491275899650898232907957837457193799691020634648065567081982183293978602849506945538530539060299880166796303724565809218787342710032354707309010730445939133228529685883619290827976539767390248030111433719559482558124049211240930030405983962672293995795225054663911978601147984089400833000162217943901329332103182552773689988021047171982623018699577423052318385420146382855781476961014363931664976158996465712223630262243245133399051736148825766963324594703842294187034555470469134123675858900083400235796825279865882432453775914670271453157116845615512135729861870882179276713400733639266127632535706512867104446515802394275223214227544617928527879096252674693809875627073732523698614478797983768060122266472132071821707269575916708296064997398014440596107584030714036478774119920229858907185723799549325141063033546150740681753704003142094679390316924994762642509928021473164660710094238544772933895619882207930937074977978755553773620559518199060656691827434261732856901758119604962177309548837005470206043687047607814398585326825612027532408951268089462701843941922400092597117442515387357283134443503510169094833330865393411463799664836735397333410835519331034603345743739933488588275511596388575742371487019933407210877998275344501867779404591163763582691982617852496187929710564122707051017058456033043489689740427914869912437553024161948714415382572876761527793196837171638889619128272269891296582225918463088879352281250838646880799529452449210155928885337318116333772881371499287411033714694038889446204561352485287564060716988467398689221701407755710954968881003812440052556974985378162167191558752178677957796069678532330544938129454677515745031572033835251595084692525969234263909306127527184251426787684984595875403743905609082550887947857244071353041999327391382084570140737549532639124932717897827677659261279638238261677762834959776421024796177938857718503133941072507751764207833300675518491832028241262721656534315395626681274283490583595205664630662152581965957495708974654983613042486416923120773106713703560109139725772000199393077103030898298784950696626153619070843763615927383071470154620070125944028442453637308576578026023713697952845073953079238305696861278776982845082968039232625441411331332212107399458160875909412945488095674866402339182585320653219813122182735953854308665367918329341971808823964289982395512263573157447176337041674229403295276155389627056854449130688005924664548765331866344300538366606120549045981045187036819986418044925912484067186707647863669032617276352047964466662117783293470255724345723866536759746274653210487873400394565074691884555666005875215303604634781695850047980826030689847748328919025071024796978691870621655630018453629611936788246112181822226473474156493273225667733957616131829674253352806965889819909762139137892626823242142527739608963217342301228879294177046656335587630642897271221992496786499565651716191923922938616951086890248433538273893918995902234169313960690745270683739939343180318307692386692705161337465616014294083118180437268938947402844333353835048652852954669636508254922394131424873831705873717228470339193374934043704146374965246878952029309395963450921755311574266898228309329281944884313546801349466119322071697222523807034661130676844028937990511180375343919414224314026622038863863219965835435621075543320156703591756276508033223178575024582125371285164554500359218095366183861565995118260492022852939232652355189202397588835614320607257220033657804616447848258645126208310521939721365341388452851203385754425687846867521994208726726781578724377867786796161396820430364738378782131014366070439744380229538949510909265472852572856239794803495242286430562046394725224154145352053342284347759529085077551681349159053687375868116691984283969338223053578739427019110547805055577426890310885135623956657846714986606104627237366862143845894361518494709698036737780823472638819275972668401987357897261320418793099214137458027159143684290553308611226103129139601385909864069214892756615319566937976176440966032188467902045982429628731608728967449358354933072674360424111074094850952298535516680842489373639112602900789673523781822887955181332671322268136937891657416364266446273382185319314062921631830397746241081476097438925032496090407960791114014953353784064378490644214520194788171779905626576038431566401010314005468169078930261117913904310628602854077029024891583348990507825379388033729583984522160999454690412952964218140227427338263415382434422861519356166000841010183303542788726072129725592700866534666775191954667771327202504784623089523861182505489213842517913371597401616987368766990496085447137013875704354961793790757259003117801513779075511982055925546670442031992272750228708445085278603809854764508584686860322559274685631164771967673321907056145376922249400637716853654175744241078645102986042084494595026061862461905444019372555681728513951611397455486185292788830750703882100918843039607493596586910877988823913278522333976372696609492989712814843364449433158979225998173656330310187407293373253954565146022701015265723882567934507655568297053638850966463995660760975943821058010448320392965608047808672052432284562936253249330961002631873902663536617041419959127263333555767689277734699968628316436396828681213078715522337196408269299923353525488981810770996684909675294661596254535302830360709156224571719362195952203470478082378607645807123081374108488996920241620863281267066778425063018266703287620135622509015262939215587860867298809028893118901520123019377698133321167374349937795491910101944701566141331163036433173924627403322777222149862173852601557556161165961734561971390025471637443327833123968727123589312246866811065609246647315256294499594431358219634356974077406238409964258432235494158350047820712158561987710917483496585108243811564025778923291282271044310092883611390104383150149174177112898185061882083021127108158516378305877646200014910245357957856156525872018452858454707143394987992691803940593112568742670744275054542034961021941179566252494128865125331315165778191503352660112004703950045544453199341814212313159341304549019814408452010747742176699121551358282998571674494986401011516410964516223228055604095520194437131932910643385410929911530806746778826590156424571236769606232050098783765982327530732695379784164713056545221146931995872067499008531118310200709009302195676301841807472799545043605074753429991761809433364631887661110048978829663350797130691812797170046742037800674343862603068755822351267562762461796296730681246557904288571834690464879505719293213760875371100932128075237690472085248204811233306533695065287724729471439244383931774454568553616079959545644473680533856851198480858897553888410825048024753855353877599565334351900480720192294976471755735342787459334702340970874133322546318671342345653192981471660387006422786446670455202815075518018654431362106486601364496478677818318986386759762915224097457941367615478857007827730926726049403940910215693398405013189839124832451394558555478935454842371349635420173669726295056787600788020162466910613587271219408229185653260702168295905567763750441434565961209702860273617109311547354808140028603454305904191542310529854601186466454560832264159697980931509690233972013296464694735125027096768318902972316858898182962570317293980082925684912596574104293498827809989875051107744562383021808517093422952969456841699372293219962695022038932804930824350821291108618818466533060322474816937202717357116532885272607421192618190525663903812684226331547327583397518736614223961679050721919920805640771235555962327047688049266892370914872557453031626852972279193961715286364136950697045937183304080361062220637315774350141860074231994003771766988808311187002302239794522582287893011560371208899184569962523801606369040452669933270406413608125692471811846224240218347993876246780877021508497704734919273169450541067819898912893303258079359666294158844359699386114500022197930196657191700231332313045326575360598011428158715357469612652024885512092787059340897985625523891641271029060418340190661601809201750256261204532871423689848012610476982457092738154011262333460261196193616328668456226475191333263610314389779732549303575167576295601344742219050867235053625796588128908691576584903350867678468508818083290157166146980850385844391655164547190753148058774786182981947225635935170809550545806337957375506649865435827388302811019545983956559896103586493325006299644010028222723012081424106225094075182102903564991833020281895044092287049614830908209088610226880668535603420790393701875679242266860630136611098107610160939866759653685300379161973520474405329813549606439580123261335282822400649283834762600111985835952172202620556143849418739721144179935639344415321975584775387138408360580711446415193674456075383914285097334941640850097717357386799763882377192720429908233417243892877557029188119971908925591925205531119457087980545102417153275357864809617887271316318079797466009966663945615357092770665365377308859968825831093401808418352817766653904274259764178388639646088382365700107841727531536093374500236371471520601902427246946946015463808779545751864664576284379661316471770596684228447368671676991229762078050548556796443458186662473911727506360650394305076536241696612113762181122544983949063911671418706356098237967945664778501379563934265796417299017594133009608326664342888127704867902233862946790953964476775117992637680818903600468006222142425706983215866105417785261665291456746689810884150403393975173179327919632055878556019873733389519261367687957721992255976877712775083450936957707783123292312236677506518567629178909693674790267386786509063902941776760253038690705400963751797214944980391281446510640933220010885696975956303752626733491241526534695730934191803269938395186305387123114375818609679407368789496096780494470480674821936580029973728360483807045654607287814023117306735426093985775934775344900393245367008118480854490492992039304595156884418004598453014393538903829320711280222036018131596979194681044688878172127097438543886000659980163268449841050405485268932122963909426257567520458964338232457654014367535106259389738421459489036461799700859873114048909627085462107434230744193898531396079870115411733784723270132546299142010323681654083066990611392202388181627111560614261428622623731075729314295486189415585181559723736601218135475699068203804636013884257441393576554682945930145301935529321838267356220703729030948273359604266016935759701325354133345643494941077442387024720485627167002144345165521647507941617875142113650421704207701686117774627284590612892099347805679403780120847154082096081873124824526471960699675396315105032357773529677564638932159596674174740485702757831417789564394017863600219726984641199983363953066029195202748985206154652629551658156458624667222084142888733252096350657750159328863024112827714047273823168257567456637332287706013859273558075842800810524696742026792032755363125876464849455507061515474468447444365311035141639169517163390563165169287464149856508480996667825562403782778441957052099359695496924510640107330656992395421917232966801968393346265500901472362296261997883606359072182325241620025557161264827219659183836522756508096410069034091221794128196072836773823442029522357364041129963913137571348366637396852949198457377679563118757715674540619877247215445179146247356210293504044978448136711983050351301138694642715303723183010097642199255300039338418606262434967210592863915868393794293030507241955263012070079609929378854461212081312854232012561171323569264967068776166428947489327778820010865900151510270859237204703367606665010630638969665887147482496369017788804115756753081792493942534370545343920501554335700132941837239969758284836165743742893459026255921444997229552003762441471368927733387905698213991551947276568011886738669963066616446108041005453834091304195465578080654802244938777441176624671883478004236862527335935186207809851292486998981386956686650207540488533813542873016166392508774902656025912069194793251193794855543957525057649180381768036306198977531812219810533466641066620293592029319632359508569360623148499015207041601437825122362129548259609802705044109120744197101834888136883148758243564893223640630728332380898040911648804673854432806590876528324706235546519536921767358995219449116770394612300871225105291461412464563353345062794967220307794739742077966377634998176275956489299559389080935381943785065011970123387284119006578489564891266124702143040425160715592132968250434752411373477619847516117796438759662623266169772146578606961918131202696181486716767603328926256952785429406542117671957421821513045703742161433953641809532451852095995915694612886821482147991788294154480308966227149557728066079709170961584958879455075230008165046756485165889235154626939671773188795682190898405594471475104479955764646711219963163610996306863851564589778028633048966540101493261993139901522450595514841381804269224464976772789231131556406891751636145640740647389056620179471060368043994513879572316316841500503434548362851274913651910327379396886214057237260571766670082204526667863841153255897148162861777978575886711519717052893981265297978157381989028260334777471293713906140653022097449412403934846790191638097876141191907804040989875501565263100468967823444060791544281312040514099494416619160919291944117627577264146505897248723453251826033215943787108632049759799672595841131533631337045835902667102035865875571827071047282815246144595374939359280588963632092545284041468922592442670173942467156148054865200774797993885067207888677991331242245213204207303809559673134105368435043652052010454648943697293986997325784168141667476935214716169251813183213092530592014192442260098192121005448125039293096775121155795430715875084694850901913541335815950488878125373669698652913811614009087873412746403766648354503546878554681605271961058577936526390191254916336731307237055094699805057358983326081574076285002524744898939769647256393748957864839284983143202403579420843962062149460842630106421106026960490053673256360937429282434826347309096358536358456291188578526795709677668328660501820813684408673169203227379285266457283538835146326745265018392609635182572451205084134137077289503691534846285991171838057719949082287065486099244107716609056153060046648535059483604296087114055393178187013534533425170771447062204942352969129851942143894655162695608809124853244226683682021910153207231912296637480016927756470133632036000532123499860814831313894101437328100252445753909824129504260178664205636098320091406817879243050383810122875665836888498796817344854506875871729958154921199503179616175432899879486137987693433455471136784839081141123942981908419366661921303404062934779797767716976142862654820993890084280137619236799175896624625723803993979924139850449440437420780175072623453499005157610964839004556655543288864935953491698568827809662240013995671902773674665442696633726738451366891262191396850696153335876243615391215751113830574501518102641262598518875385503767183744431380841592148209359928960153592482786700550812998944926667712425018471673477180116291592499019082295859043924782161985724117218338018725757950624504666090998203922859077801324147128825524191893339653355795301079727643244084809294845984626264861449675906295999154548188448330781875642922353174290545523606831036707899536728200838014060409635923800059177116253667460269448965959690842782297118888208379366786082974817522915014822492803694186136628296312663074825208679768601338065670650554372986985079537194993157591220317563519033981520802308378793597346862131312992098232538733363200541797494362234459922317127910604630887602429744312595396476977485950480183342535934636675750682870332401076444779091185107954731070845554363995768116640762312014676555481843335877457359345111326138502489529606661463289002575165305867583509357687479689874739365819921167145868108803081361895327689452160459882449223078938423139071727999694525016244934235365903134200805786945133045489920269051103659762536794881546953693226085479035037609028586933682013869740623587135401267407230761530456044453837753562772802299057179001835434192032967241144684606179534384415284613874052952783423437753334343032122383094858202856659753188975665148843374594999072366677995711938600766058033463304528520172910031240274534674605758360559449513461884821103432710628208770650622908829271695652434239033064432832374512073215607975117614714133779415101647031136453634138806960966377175882217024960188966157699460805196819714887157680875719280242006758170950931648349869610563826222827788712994726646192242330118915873827115126845963204215255399512868896853979977125191249051938978900052029790989933164611799747117857488741304973850290116666875303823101743853788844756074750703935726799578380980825860648271134155918829865201391440169916944874357943133657933881934113468469489823960493682180549749016850965858509561860631427400790463471024543374214626438472243272577563237846849153909267968900162147303676768538006933294159912256577170782853863783582674225978758222855854801264428733989156372807104896971796547416746841070792101651031203726334513802669601605567474490220000515225032024665354049156302103019008013125009037183296392567157821754346258290589896675388633057421380990109826526442024963440371936180861025396456960991737911476186796077674322797468457243697160738996316307244956644839504588166232849012201172581331313980642412521091166158241887138418468413440277752882923958280154642587510122782497760500367710731427483685424733827154126883304190799985256498022127283150222362984412145499314838191580167946255580949172865925070114297868779294841678427048797167593129938632044881847413510940615690409644530994806225330546510092205138482932592547728613692915129464121491540942250150368858209809705682923897940706966516571681121384094278235294690988869065764523676846724906361928788266030594646533518745941531559117592656717393840721451228272822295027112063912795821545918139222649038321668468155391764008520156514049809420440308162508742595169293336634268388025116482626651672455880397904316682525879253828422723877137732036258321271636306618112488529560418852116564264761061331619251124671505622608178877572011399410828129895061768164292121965129582781713551955690798774385663608514726529226270137239159410417292902737782498404421071083946698888232125474089539877461998098124339178779707655236445263405610571956617072495306015922594956703659543101236358982620955356421463694334567265407960958133068005132500429135734273564878660435089130488745942131482039874946559499456782928019574093300357171249838800570165105426970879725202213473301690084790020344371210820468062364051241645185365127392700144552389381167059004077963772305178030479859947156727460139859271186462164901269529655644468726932125850725915581233488149252694747816011788366758928232513370302145726034535744535234443989489619180978577914304045557291679314794236185166916406347350242766634852309805646556194626359183398641095817886715429811343095373238933294652205210027070845961106532197716188188093710161557869990160528868249385590905743406056079789420057345908828425508568700780275735020850457153657571699656974687339660180946636938184724946131256452902911753762996481564210518893202723850226552740744942560285342172012814119918663448065200231835840593871116002105483904866692195081227085840903509378009030227912213857153111632863192008395574122164074332139303908806803433436055304462616351973332127957625669227197705639083997559787710035619596287660762535496919004020687691501749724723169164222637212920083461221213849614469575336913903177558760570491539100023963970287959006037177147626254732872417274163969142207227520598337986073006434298303267962492631693982616653803342679579838745141012314603803883423146398184205960623825772196517325083872495578605187856515785959495267927613065544114181368710613622126706425614128901024712974823750413755829667097202473998890091350323066211031192269982688531657328623238630510089478881841551716718548917550532661254540696286280772247030384816738732364437457570699735769017345726974623141064234910505386201376325924494136771332103658530995716954691777341385554506140391404653771094392072752329822927687890701911213090035066178239570283011230260443156825162700588300001371632267507878580981577981621824214581310595477903743109630219913371116991007228090918574501527067874175107563616769583143750320346401809299236996283976488939097896603550511956369684659519777152444799970437326467800500833465850326858385694533365279041753272657152431656448039719396326419049273254590795791581000161282964863543563007550198481942028274270209479892398114746100067103807926964958058914063383937981874059848655691833814661802663659258380116616753677176483823789033638156977254110929427744117141645776886527470194968308090986944968641543472661867829354947326948765456471698154272262512498062934610910368686284979349291682760078217502759539464962647837802501429414401810960859484905041616146166453656551244158930811616098819080518316467837070351452218797517753249947198130125366259185081932041948499238378690139448914740291455631478978894701739975295438152189013222262715350739765350150149836224827281646474493332969995510768722276601445606928040227189466751615960214915252404688789536432403339128923365267303919301460581662523711732897586910822350141883422630841201759129100710079887990007206042383762143783510495816964739850926726947831906317136601781616284566204072680554962864181540357040471177231778765779895480548517702174628977696610615416441143499863866950428726548537211652186385434300099735383556784767945776039310704845571587549729921147063592971478290934092534172554792574007374704561227784919652306082014731197464003590276875905963728529547602386039761257694125443652203062065543194269432953661710281813201840300512080152167067334215259698642755619671850750560401267258039217713102052562943364829730390648858329951479175665338410477698237620976304617789066293217687374946008084330189882275658985587100025780799008344802519094569457311244233465920406858569777312112375072158191219561608209353669424327631873696323073439118336224961562326404473660116269581178968889379068821378997478876358448906863577546930787927511446046400926365930330432431974446444761855629143214571775370599993806385810509624818071819022334107661675391841441823016535853037962832286415174307494529150701457733546408032712762088619527531414667305213508138632358377598626232561783837868826159454404486979439366355303589801848471162380984260880031093551874338761587977157163348562694442341599948558206347743610014661315203578866511868975180893303574713794250568659578363080060543810820728220218654893856055207432658014466913085426856745174041829875252583416420493481210307372494471646109810984484943078730801758619263174540728929428290872243397154510396282408319151147756742496158792691107823424903920689225260993573229651267262308709888717171893496305974862192082289999400683429490402950139491669844131066332455652328969094346410025835914968735543069452233043601547969132949989681075011869887355785249476278640255428797620790503088947483682061008664256704590813293865907012060441288379325817353679310457404985280068631790600204240414997649752100327680238023527565675816577959082285324732711359354311065766508400635957429807801973369303039759602735182478872744828132242022934513426780156150654958431025193394880810497620365079775453995220409638665272295271424884416356376380717702678114194609946098814220576368547114490677517084083054111471371164342864285211624463916570003107320037088909987983760146139389910221329862106824963504847521682299315242268663456070420488271354558869337434722315078426137085304610034203085043034670838607674772518042791137618269883594532508232714898603845647653719891565346811466258100982679240724542502122269696102590786022009752422315706706830949089740755869438789826878249268738409361168633242870140111624743558888036262700574697744868305638622891801207781133497024365585702714817779398957002962738734068108181273224244714527313774566880633040271208437373492009605111195073891673637173967049131863673540311605831481118963775061798676856130217737287819046250314432298973276553611134386649589314170914604796710184149716586842543615881272981347256422454362494128573870276608449822796628308234347820531323828542051794813722613924124327172137068577783511773501397866947481531791987549345960714106096827092165399181947309581109924467520880585204838689044249211805597140795403751413225545661796043352952399702906877145738456382408270975503353125304116543844392175642975495011093736832532058171825819706357266692956664719090839800560148525159364067344208945289936672927341249481466348846417904117704536272924977711705425369828516354018056347967002140406701389807062147812700120904489551043843009227388657610523486725376641419828656480266461243591980992033706005192711761218713215252263628049466714093386426051438831890264289564090857535784013259464544441976909552819096859294649891103081805335870110252223153332462783693357932446603420912088325803092419856683095199093287453203498203151423090346789167215785249678462955262629867574390737559898450201026730735677284086225036894115647382327727291317678503595729237132142642010402146833228728281562059240410774886512626292122116316944691848754385556460651262696517179821909829780723535396128308961604869939012784006883977769666669484747255137102338431620899064902927096063431981293830517521816954224524436071211742033921791280058292189582388983012489633161481343609821234800792288349886625868248538173537351868580844903728950137501559640895816512899468082764906048872441512864214507691573137251646077161161029023546442394457162377015191712253149197172884117839869597448008903049311630781068358958597123784798656508442492156407059082593353247346895989790698494296619525079650487694294749342093448037936871072060322167921444079574111344861519380570086032531009331392114967600042902140993443613144156251018465311589467506913666975337364253015331008039341770172041191740728560747958199977144372423199030278197450219685582235505541732107068634873559809503255144482830186456538883019007700718436404661611881747075766965772945919034513542862456707245736094941064416216193984803388861947509564277747497840980597327071406693205227900833164984774895197759072722236907489674897122181405932952219185730112657244772183814325973090960943078696165412550464425637881028416810873781986177236735804832485185041900299977140902617111558214732546332033522647251765915262638884656687212637302627187738004082991447183854520583654498042677535451610286176114592176157716320789965052484415351566764272270960010589347708429458378179417055357889686929244459778897158467600084635623541505697507284713810281364340859375949322225380650365307334022025061057881357697732611904594475715334258342303182987316622895734605813550290553496845198902629416748031926415604657025967572987143932236922045569834253521537149883032831131461881385106699107107190786397317408354724240520422099988923681840960235041766438798518055033282812040313884234717485785006409277764447638471362966985087691802231106614981663714945869695513883479668260258044324596501644993138360561325934178023538751489021191944626347380560500697505924381748319006796693345098815624173737812801189961830552972654950445046680752380127982044181767389818191332574949782841524281598207365926471689583697630602417387574787270630337008699097880540476833843600126808249595832365960386251146568790597274019358574694552813403426903774255301073822884743676059982544764246528737474305096212356377712448439656411932212365324029719029885375047020900132548977930468199109475857503901506900689473262706153945644670439836573688496119616485747155333145674678488261325119114672563028725648100725050443089982481670701241382210871880340259202327961993808397156637611491560912375913558508441236911909264126524738094357197817309617942338680222652423791575847850281832884566039694176060234226233665301047610299141978010136489461515294354087051734450052365455854074505913308932065958806503629742713380196318922598140278217347468216485932538770111843594630560070671816276851482955927860778435798568455845685700793207479297460779475137561406971170403829686543686410196784669280929097546471056183783286800472834695057701265235302907282468839505311358951969260534060740193895937216936536894710107024300708251985776059868766288912087464777374684389171521378299481112698380712570717969212136461374258618724832556223652512612103237900812874673600748576781517960611766278684677369355842064103661784007200063753331445181878479754651074904235155715615947285495579414144980745077766029427587240407753485788453051326636437105165930095643057963242425575567114562508815231873191817261781142709048439076867214776129532526037447130839209160427000433821678595380464482039058816211536806863375275001164506478199549327161313796310891084975127614468584194580763511973465426257136599441521894781702601043117451074098457984428234850541131642572884519185826421453039355268631124688104802169446845245047670346761560572378657412997589427398663477206398503503572197340520398620334188198687718224008152109397089890003071589813338821682619071443831340112979135848182894107486928002610339798569460738730040863864299943482012646605157989495918631562335679147724538101508104556362343922661432221823570591441256859846745108055449971904504104242112827963531577888393979849789871178492670575903763454184763040177744200861665224455576597098453016503394718708393292960419117000413258077055868633877204516700375438540042675701253281739631049129204842769578092651284582459845746687603948788744565040172571947516044275567979856503003815579939356830891975103690176796113481168935367421898061950384351095601577891611786045131418171713287716663645721623827714990816943871951464371695306515820793088412102796674038249059592470349610674081016560774383497277497574111446760852773511607960795496323618441471527231845645094181910298158585420602702231335836355800604207941875494786594954573333249251221453191418765656351921303288946806405656642910050469744245877474940268526369824625081719826666498710275014519381105689821919693946053630049481002332168474840372998811709006329972818854628599084044312442545171844715753067118325762036536779191644142101521163772889573365279976623843707725977751018129439733213610733424317952384494500268421518449024526171700979413802190301868395278544235898319741627647386879663314212403429410331803080293346664251062330709555530468832455350867798347380897953162097716046263334955218902801983306496787560038210577850739195558041418115101549602231830278593691657170567559650162349350673860510214739653168516106220050328784052210095040358682495877779758515218952141955876522575689793917597608813234812480267779150074086804941362902502102608618770679466891088319552858463953810510678778278736291761630856665488730913719372110465912009005224546897820628695941958491962454587796868785680959042389115531592669356829127947944825506503745237655412308950242373506542584392625762084760925831796094185118156872352557337449929799970160970661869991096294122422880577005784006225048376402748080558652132590978872857423773353409488859667161899092890990236679042377502899480288281510451537888739093733096396028502408125322833203233745531071854282274304805992141106348857264829604092085825336514911697321636727212634431292982997503437288090692432472035009044899896866052513115224658856369293298616907162326977000909719955717750511087929157817946516163967387909409147333739058717103659745640306704015674481675245528216752124669938859234457353526081481011482603531368243859275386341140716010518350180838879178737936958793504108142247607817627282320459628650854496388307162659255682599835208596006614285023471119002220891371799784309623211647857095213149564399969021829932183509874410431992567696828676509709776644995053414160534547010235181043644766431426395227540142360352294802870836458823576021607524503316752883543327206942630139399389478762213449561030995330110655191726122208044213388610076471689494848269290219980271290693605866920901820454977243439571623294399584248598550720584927899743295163611427019489987314271353544035121650229672292321769835189498290866741455040968311737478326152292121208708538379137257505421655523194753900469117462580435867068572159137319430985516875197596250568877060897868110242478837983081547355610662305664593537344501059513866629878740079946059367811429434175783598603367198994062188379900409983630545839836334137749996555031424516004998746447145547230595793951332372980291670781877841332955507642884644845308950252318277582212760951883255501639707371446334824298995573316779426421312107118992347506700517513215390737018017538733717048665018472106030284097881755848109998462020243069879806210657377887414837469986772441337546364982523830310594453393461488587274483413871610717222339889372854608686298172071871125564480291916493273798954573703266312458928182408232070484417711960705220351460562498490662814920159807209399658933160697515697776263588434634851232880070285753418545577962761558001594335872965435272176971701687558553169082226935114316401856697135401916220401446943273784554243762307284398584385623621306422872303878451486657006644723975775777478950682533784269187798715225757806824362428194960156704993695443074801067297547091575422288557088156404923282202174999295538547987376194311639552116092551313171202835355824979215962241699887540961657551593696828294291028660402073540212644519478245925792057096393514991672260592502395313523482463834888845050867999653961540379915638842975135570713318873411144033367440170064771757184327171733383543601347838117715795235631107853960860267922852093584947638721744325163791192310451114639720447917174767711609755504335823728692056486744759855555011084370016049016863420258796201780079644951664696216142994897352263806736454196240037222802466899444221427200559209706473010467523128040877494788803013918319362067178763426854769203031585722319678873644195797380141822559543292118269403703777965414791883631581514460196050589136313895977851947000005991037747652305370600128520672368295133537649911466096678826555124943637135479138234390607820258899348104615973651816671460260146946125392125106705731536665113085386941020865862003383315132479507642421135479998283851355936680298388656842842664666124084011002578052710718134659751644907574806769287515050263908372646297571365953276812203650413296583092528328509396056653095624090916496264910491635304383284553926412493126876026724956145544501270975367561421668645295371277973128362104223566066275088946762529873247082619457657512252141380744544729148227957765744698845181934946802035967554053733709931345334640172787144718264265413008036320656761954936519895039684396060210190848993106745230493384629242347296836932683687548067365326866703283037089475414834964368039939169720727461211194502026974638942947359332881000989792617502428756204195664297854060847392153065379153462254999862717137998323951506348963623370715203315649228132045810107389152601360535554216497106570118352257457270326467700277399240708944656867637230512544979766501018597050503901353854161505728539446567510270368743357731760108852713074084588599953560544219813512958292732883646509201169732184204558490932901475577709894497844950999819414602447791938723786992043573285727156266185465812626187837508808670456216045470633986160601561185993718670699479541575473834132673231630397293148489388567103788782779671860904476202080615973761260064043042208462950656916652681591337371351757073477366688751510786719129171258716711577903827215217467152055179220768216984552454065771493278104689563710788361063777452816707063906511291974766026750042150186635185663947296202752821199465708870893800971400380145058699346106370748482661285827500643385481862944705414880813594730719579078978818530445336127643891181684631509227511353911140552843399572223770708880061882426965758120405030667192853089816318263275426025382706467429982931469867733815491721003675302101978493457857047244065257197084871133648657580342602283010445728220373703982100435037321870072265120583635838981215629626323294246734900654991588414286456471205504282679574469911483512405284868946306163992640807080509340641699094539530842335825935621012194630661716832790562829929631781425456789865802394592758301733575584730162009929103711427744673503347601303113864668545060415531788145416953292008884224582767785515431696372415812710843417704485532506473246942262414701129968166891642136519737751721884421675981420478734767112698049765805809184437233937674321130851605639657598410744303125019909619434426400349820743230565245787010801046685497098515517011853634331173896993073457096601314907283899711400768071503154623101195803295185829875381385671806321897378741857587028013151263579927009563933263326363615708568884655424548371692896706034443628988086006086545143697885425863789452750638492811994654192894865243803999378720848118572185066004856791220652941903638700856905535633982129945405484985715565140554446005708548591599893908865177169235055732641243081722739802036393735516560754788308064769735382547286640613076590542702262618189392790259009627594873665690588293131479528504354058167760763955520930464793772823963164217072619385620389427114428470445336066167157996190094732691481752518213634063648665001102249353889696727594532623503457496061112691998975307607007168878197254718296179304229374106690735235907282589868842496826367838392751018306569316512870968284150651601231064652375397010411953718913713095901620648932105152384296831511782216483887425756886491871485443620063661272195240017029169456838653795936270964637185085928720923221569377630914913900118223387817368044136810476956538808349537139353057517474038758100562876088472659183624495754450440108944680765591094125656451816441340566883839978543865848745978761280539694805726384212709246210396793514862659815173293048471791693849640194545473211059792073868258118930133708660643836870588743998624055184005854454085210459653362718141664425349640242292288246511569039029373691246556553635521471025169249113839387560839137475919833163214442287940052299783549375776462023392136764269418387313678857300394423176201293264424490546568608219632014248724558066733052704582305451812609942197980827403196222381011041768478288132080294496103172726617185334187534517670715315997233099326227163153472805006265023625769208582966708169801191651177970596341184156151004655226885993320941656003043722658610707110918948522879210389722815869390807202923970967824819455348526411382603630802695417666279993195393201448168606728555657264954491140019786095471062233964171251988946226799362632525489021163968132450795289643419755307381300750067064635664026287553432087547655132057681877805795379721694570717538009064908218534915000835312054952859220687346698619545205612205471132995656886526724218692435258970706048245378295217288350573251783150148265305638658683686419958478447741099363407958282249411645898758015416141937379646474108941704304401105153707091057124257724719887318289788203759262660615414128858375029670604446586226468360275924034269429398334143111563444688199174530918075355252467933365468233922468730743799712975818695519083439132223063356769440322693576344810559202996260375983582177557623986977628974637744372612272961202222449103531470242889350982946593587082919818898859159696031190890609868316806041930356030118287508959485083060656324037068462919924669414481711603904630040135303964789354239866318276931448721385716863836025219873022356755580725587314857958854092007332594636134342215464037255220892120179014476545893469980988683305216291879094446362461023835387219695552494863640636547528500828052406444527038833304090935639755272047315625262348527374325432421208161014927666443617337234748483467804826631904047149898194021228799310332699591312858430544051568505175914973426560472949363046089319161627460122199440017304417977078173809812526101124502046455127483583348603244283048711772076952036636600615897323327712682172875395779446086354002804832261319566500921471610105509128794161417035624802645219095025253026759024836148291535017098514005046320100947552300248545473247858831252261463900801638431081034200543804066751047416260520034638243500372027623002751530325074652096750088419100865138021226572246079890231472584042951802116899612388892725346942642982845523377718294739687195266759908805454368099753638659668906496053450438645981329240384996995836045110525994809068379946713741937440727000478351496911290824269500564084949620480205423451897094599846013852759968199190684004632573257465895512539559316688630966908649739265540613475030980861487508468834462840328052715038479468063314305419150902441492976049010534418629888336482924594338199233850975500039792747542430852995519687389343617428622674893859457672166160298781262461967357340036252770776206471102679435431308546135933319658719611371900259404760246276002932983585317204346574296199256337483573056835858265675275276493905251296908794281544827272940780031540059791439232971415570256465145462169613900387459311410002398391628538273289787583511185308097766156536461724194885279360428819132587888795688170841050081275621649447340761390151284589791950856347853004602001955034347005489580497649321175789788315535022217293817554049230835302068677150711587837941558471151002421746270958405601483226062240542162253658896981790467294319429413144468159506099833626436120115160980197938033790796728153563341845255127331504287761464045970521577373921124254691810342033655832138514983635287596054949901117863492164661250423107582152254857942601801818695388106908819383364096459136422608156554758216899668335527363477731028374311341040297581455885778430229495558292584158638896985777832770049163800211595023111148215841527293756960127792077018896926433782093027771123744833043350753468995416816501928885067574402045912118961788361700801080213502127498015537145852270766145872782094062420784546061123326460737875054456935312902843289518794644077128935824316137329087614216854255350965442539251687972953473341968960044090982461278599269417616850836530052672621246967404785518750243242223369377512036661656079826360081978809924767435408677551538385506579126355267673423944103181611557534455077521387365648927792094696756898552594394533206589242830685675985625192604619665513929440876817871586432482452667127557855896683647866669834619297436239633766453295237987326748816501093666578236539202213720837895564586668020113796878091538486294865114862826611582817227198319282297165635417659319554898052855377940529198368948878533889023829436513485271338566118426071358872115412718974948739218344019030909243207818188350040209489417542159982730527889731305067260724768789077246436681534577486133913089687905304269471575719428924758878292407815285013441279233058754072460838926479309453334540662126649235382403813681501807573929147717641421680288446761014430367784930874999977079253203911408167922339534306812970212136581275345169747084138188347810460968407497527414885166718540021317810264614075885580970748041233838565214476180335791028620776551741643683996618540542201967407757736562240645670458091865524033770953370013878456598962963883024769039143495389892676915975964092101056500258395049805870885509186804621076408328019175618449021748985844657135149843520446768233290304006973280490113284881930577337353674397038602920713247186647497434763374482813394285737976987873074885710072985429113321958266332360024319436399594986471742949134873460683504014853982633937544157570212485849729645469904059884532138815981256333577540727222855355648500622946089526390032819758390807951847371218245880389289480770337873069055749104282817285891667808952531938995602651862500825953230875101767825598025663751812508827301373181278373510350970143763357070181115203067921601747099675422517421538322349366907208437793020331728914307179135444893775764853253169575879111623166383364482415578939222599854886465023339570466801498349646006523219579172876641329924303851330613503470331988348162501167545719643298917891463649566776612928319739531854108795454494294987784746497652754980920871977899970606216563674550314296836796308876485315430897538218617266700612575222868092574592295279766419038132280740022499836148124255123802104897660558885355037533200921335231112093655451128952132327505412010658561968594629282994285252687860501852956534203521122690961580454904164045383135195214046864963506857175247715409586676276840687760360089355089675551584899835169870629767264881249638512036023540591265080127835825913666983459303876505739593353122539538069208074947113813651442816465564739709413248296409118256796509758791529277695105771581047905480486579585864513636047702592725187533537495511388885721928674651523908162660797863346395496041772690800181297849978780146014007570464529462453986006953538239864049200848074976383772325592223812196412454454459757780119465545014371292045590645800570578763251111230219034807533199656282628979318318469166801209421293111613825135669902541650433916541468415490706122267440467152394418798737188733929706805677610766039071986454457232464420089409247665455055489003121701244521468464711355322693946510905453933725658437968155035042981733729471147783828533193896166940840006983201694846926719433227715421439911529482751279234164394791891506384039002393782230861669002877038429507266633542310377962881963642513737711472483363958374606521811857551080783932200333155949085727093567201093170761239302369013762993868854846774039405159938275361635396725569437059845985160570018803895613104539027116098523277521882502647418156166552358722322496486743744666891914261721723989264666189608784481333452473975341301261831156619310825553966246833767412309471223360481948396911475943926380522470471818599057750960265614385336312461548837509296005026167137626300253944333319048157406958134696957611283885797598317674100837335302395932306395935337876874479891557300753460963869385870453247634366918627508246789765326507477552199249471482625574758159108013247537458038309198147778649703618173766935287248879438622239593609941513062332270777506502757232929465696813028596786514422284614551234731816649888670762413905199560835274275918279737586662405882389384901635370835149732631471502459910222868656238910426085168868848506682997360617756470387091458339780617626562593480734919442951067623190703915884117487020900684082069346624255007981572281311831754553125754331701047110712000926001906185695872915366008072261956310012482484331687200881139810693311052459745492237012682297770980604500827121972829003882037143799853382274679946096468575146608318225667654035202542339945468342789974753000233532813763236373603180209899046980451700344450709939456641173094050937466471059213361953131055495620104704890620507707072501387364040205448822695646410303337127686118258126876923997217611754731968704859148126672810250908928536135089377854874280234787140446342964569265813624246974705145006183972010159297038792628471232462291506773763994161218529362215323745761453088691221451220981103134698801991802658040008737248808820355684196860382940544376385470190646130219756657832476047443328935274685061420922864698867850271016994575613933562464337792021111109650984361892240412614689997620085152991519896555283544099652572386460248564411179894712472632642727658091564723617521142800646655088010233623963568113076827712840740140774954657851694768992925685413556018108816908984441800075733363074793144208743370183271242199483393606990452131656961662304797848776246236688604691292751291970940048784452245809052336170965570779336439742202045585000719713994840082793248601698600484374360410420389419196449642576465156129429282632957481094348818082640080072417562698249126958805366843411015626638546778490041782567182074743433920090768046147100551769346251314408662732039023752190202784945977775142721363862400144513000123424818417449904107633942392310767133378845094779967158629319001564909811792022121133914589711734669721662833969568552779199416730898714492066585936771929692479969048311457799154421373323608525382960208847351717002191608502306273438475039885894746196115061149604065701168998789923668165130792484155748796448968278542567489880046747363322884577623634449745911251299190697103912626528157769019167691616334912727247581830168168494099584944016713750540800056971095455241202826695116724665612733323968417494041179907342934496254727709314016646053555274824606843479668722345626953984513094117525001619484848765531444699105205760786027962065411041042246639573273425820267411093477413841558458549333004381948012150806148084584387694136995125319137279848365573430541967776383486168422030014912313673973042561245098212195807516215917074239232666549736760555232988088527363424743501482279057504239416860168951564589387654124337585203143530998546922134853526401213000295489749325061145412254541240374767272952585655032053793635261770801931484434210379126906135826228256342996556834022764076718473997988086010940838900190871632590254714217785390321402721339421812452630523794335957382539705332645794103326398685766334387665005383516801459964170869889851331814829168342580506699581626107451112704593239359845284083401515643273156284490592612388175362796903294404280132650863707850676931176661768122258955962602050874099325827383716899719925650202170727682913838341143580600419972996462446966797409797813984901697697625545213567356247456029109464052963895430872797306192768774859374127041302260114053722744175618146421913704745639169098204150110231211175468895099808265612107333812685645284631184626816924669051397186775965611055877035924430241113038359083051147617003458954288990551842786955699948500016332796309659831395933360088882728664458477422794329235052506559763717321138165727242940378926013595262980108151770348123455861593796794390915832278273361530334928635969250905789527557526199895850245552696924705276629189768188905861390708985109084138251797903959827701221872726172960015531854019600272003003239909380420099522649161808146136190847542345678131274711724663416743049476932496856607268718408751906424037276286575334372401092182966509506836592264732709519347133482883691244210158932945216182901039532357774890739667527886061612801089570654599881314652261140487645079258472663834625502187462684467455873235152673849487226435427431182913179354305376462194310438798588082276819962145896489678725813239535530930199635740583557641015443831191788170252312635423941982207333304243618489423392789918016638343744632633348098037635518589194216299691058514108041810960011138740044128523787007705540940567055219670572176628132427977272686738749950238453772298487412918435621033443804103018838890905163744597237821802983590662465854886817579237608384820197818550363655053834002943845742111375162002648382129264872662093111350638449203385941502517759172028937097979165554902079943685577239764961172158979146480368552850377321306342179392282423791461328263342221411320032475140416360790130165330031869926306138893945208219253166653337692809774945428985729691777747051446660343363508712376725430902758036242094468124397550987303496531334559256959420640658863227363437829240313597378949710513222403339587785408878633608729112476109693211060921002641254259138578167001011457711938709164585797478711776232225853557948792810780994021902330947307745662101065112738295431871736652520383260149356454677571501778974798061287370133811922991884397129356509671527391033754412981495503247231821789720624536391932368137427579622423201960522467045283639671087333899039290702178711596899033508883929192430368436198231331814846550784628693639753696959220140896311822996468972630990797759042785146993185382751088788753526528757701885078892679198741368691757609243441865299391654133090967417066517336056145985158399089649284408699114022842467462224488577189181989282874312352040323383544080112636271920235748227510714008731924595098246001515450864111512206460217721282880623426511224828207696668245418462794609728812194861317673058426147335123043611566923422203723239259109175905771256796385092810873225284144302065580483473116319879912029269153199605001242575012124945904140277527986333827022837709456069275610208722367042615742880320610071152095708127055350393801481261686873917101095504273099653486352955473675424281529995348480250883179025968751404164686847731869869906917189740468010749412199502151206996506703035541800628716416911317197229242694690217211191151843330722090848953530208351363320512223489709819103762192808783258044041277650099064313547008672580792103606280866846920650060137049662801085656023116668775331351325315437268387855944549950266587052991884505328270151585648671868686149926579287378965701785467704016555045137734596762827865794559417894180301433294380727554489086305567637306818606614413552473733891558517922912160570368607501947724298858354324121330274302421090840377560977650756858313375636286767291936294862109125683178771642664193264864629893826163320681716180128972502122441859160774857147570815800077686048404209815710419549752632827743379169431610576316138574979553159889676818462273060453725087693385670650285825165160371012042130079461949616363473168851592555978992566885786346566828740025589370610779852686700117949880120685994320933705061253106728269606161452425036727334771622789055777852813905901853663014218096779965658037747454459356525469326897943023916889993512586428420584902664985261012010204936790450426699331363209595820020304571204253125705741237197278285730941529831083148774796946676109608526271657004602664680648928443519162367423259097501981786106993963229486725396468431697784922014206537335691596907404090941565674501380016526541754095650974188762038571839617616329684826829081017407861861536705738064371405939111866201449010168864246524326741046575403019151822544886843719606429425793222955345110783265160862952373257123727872457860002585881898325035829767204907889148224717545736942458578615596114593343902249286349563774046444797390453030280639413661871999763673936221726541338478417080287293632348290206850120919007777863369234536440724597804105002894633252863384609928593787726457948969980889627333104657012641973961436339741179526241308033055075232380735827132886150263820245986790346270792258642168682126136114258616920425574345323198706878112548836669697703752677721017806639978308824642899376957765687806629389035644621363548455149640503132417010548873747932814772153038499129008741260307870693443742433232580569963779816824215240012011534391258364259049605433893325643894205358936620784859869862371766683391617763779673361266936183652148891697754282191666682321710176185810380730408334361493000637896417212505153031652290422428892990187840598869539206093324353022107420659809446108852138609527667442587467936621309797104653064340098963401860986232048298037482592214231268450969826787603082047361480461865979507333344603467904604007866417032724886366527133228954635612588804029784780240825493267664004084890069443814566429883110303068439800045268214744189372556769917531782293095782946343017613457417170015561345300943538693738790190978759890596293069243545327930357935304605105159898935354734415973907588418383773536663281354010444508467962425961111208036985947890195333824713057893082934874278093336303715876849862859907160025274743316529034374283885935660078211143858854833650294415854310413761625473348752749987727979779632064721618142990790425965547130182637009665629650512832909459376255099038084051774334457038156643900110865006822046561626966185639409668043802489493748722063479889969435064363497712652274962240267941202086615295942256252700886990263750433382316467195799772737449126435518309944486901571189532058530235577122351129000693058747821322811985097585614361889372820939463159907075040355608951612136079225881408957256203001631755615310165846731904954797888811208085837971097515831966061533725537392504049693868918971880466022562742974928508031089044269493206251664452322993289399818135300114831336850502502484093575009718831932608462185286543342830690542737267918832216930083745424448012574536250074771817214523455023553999006585792692395759750999148577412071935805938159090352754098801330025923922855132890198109698180173271666727945029513717447313436748561386612626613206251580816574012531207375488312993449786357466081458287832982996262278644534039548428829807767906482756985548547158482740655527994267573200325072195723457358465987138697368963316838829243399665506309101954934137485990860153049608382053327475506441024468582575250842626330094102800419773445866574198447439265311053120782819413526122178817458347673536072851842708659248827144661175157941222977685995280042412656902333909910552233778252500043892767098455829607337427343889367787284400586100038814968188341094198151360880344862241044873296713483602463726530797584888166078558655039738833015953810554264272505243909961518105911735756416819923303853023530663615570837849157745807382086309603723807253061249503860601283542495229640091608466441755355869862436588425844126625098778156959475014782376467236193837686229380603766513487945065965247297495901892700244777268552710451495652382157735455495433182863755505684960185862029857144755616091742065235580977418908299207595497602714402289903526946148116967992343905486590845059583759918519755192465371612488584277986534397616165407919687794440719761221735640394560435966858983491248878651734912916339252485682997866283443917296638428481489971447361181475705850293625753575865186351925212713358366692132498012320946306314471449672871452345770017270730819551108697671463617234183454702047023880459017236825376326775331826450953222059210404045899739964468286470879035205915652591276261564787821834804336860744165250823356373724631724256248514974854596984660099485112269985493858387892616348908276251473661227697828900604098741479337218802478263509339550428581251514820514856802059702397283234812404138889951121292743226050219123650231597438984935497955797411688428803702285449469013629685474527748470172214444510851111695542678217129753414804198676958343931309975161931403745616246506650997857032061831924097386204874983102062184492218996151646182816986726907446707737803032657364722740685509479038306256162615074680061378848867784640518110415534369782400427103091744163556558744855179466095741735976686359842896541886451980334683155928897466760882006795866590495286576890011104036260979483814400026697771857173945627867967257738994689834264503076132175649150874657151995711341125158204357622840535930612851484956546675344426410460651310319098725188519120106301348446480614484761863243558846066602274890533933461060888953518402242683912843231386218646366417590294805537889142845234605780194428310797392981682923541436832067794355627178877367391383643732088097553799768670239975489214971139774487335826046316038660398286168957470788401445700405710217624985387502961900565166390644728954141141171627520689731754474530019672493963111229552797398850621119531661142261444147356378833821901692002672863452932665579750128042632193213936563393662757919891152317575736988623590899108868622830752318648404858969015626297426883299700927813270925977740492223347070852325663442130640222149251849263378919497498846836711973146559611976045468290905549405402219970280144500455685809087224642862535576388731211757142096910457231196408028791565070179930999048117630021200772439697740277383137563950172825073565363138770411777599189229608872071439705851389546323437467850901644577517605479282321773612719319176589971679002300466037356398234332669992149211496227654476558614254912593269984083146728599418061604050944082242703747892282506232385599691575154069703505030636597563507010258777550848973515073323555951685687968835319410334031167439828495953836703503608034489219861391171100448669228274144251510656787134266148882582326727528810088062411958442333233382583113032811541499748158082875458149639258263067139360174440853223532927741700498673906056819595645947072249309733809847659872873674026602530483395557573236949368576600090498292057025152152475536151842715996968265020334410770803484506523297428408798158891676211870013667375207459530151104146701082454252120570013228017409262256155653538787787252421504347028499258903135636614944465892172747807621676965014111763700062578786144966892304396741901873696528143468376460207406939255131862227826311751751457822709433505600394759156104308942934301042488417318824744699623399120029511441388159469942857774213762200692457189870174717246709597413052261972581495601437130306593084537859686280254722408425546492335547350264969649082804488266077182200050301309512535777470630721068619141453045109278573901863179854211811577168510182972852569724694903474938967252605761162470038978063319025180217833401986598782075486751527131854981144510007381754177450857625474331923682284318089002176959543923295603417120611676362054229859464947933575936680827985863788037540931385856502968125154724048288357248697475876465094186511295642952312050128448930007398798679579109549328015659104435215768595635348811224186380270291379270884147312883867742869382729298968775365363295872521671168882745975752831153636552095418270624058914179421562083556661368899924164667159553257211291962857060715888391270248373343108896832077198540739898628941579881052773570429107876680700878489823158013585277646277260073080542584511676452293601755917169237343248945688907068319274572520749512908860379503168051797139789688678526889640417183031403763798537903776797535411637291890830756691612537302758100503232167315405664095656908023351064981863264790500791787885729353928125977966841327957046156986564247111416348666052304298715234530965876338947784188617123719487689136858284611744085053429607981346045712744882928139130534283015875604468114732967259235646544483570421334942730659040984585660117607437547966870314809149020565872532472482404259525338731699552843785288075231715874537329299712122200761307265125739719558161035176811509256537265848008713723779274812775662192311069799277266328303968076036964245039156889314965524725133007681188440476243751761354258767080086975771070337672445637444557392666441662995360296500196787253973433756460426955172283569773197425588495627891869291672069558591592668800755534160997484917122507081202425224979866491084081340525167963119351540801241585629382736682287511673463835422037126825124457765098196543980544462549767068823784698017329482009324502752824020236683428924437788161684070331639777134690415439059379738241977875596607901614993977902072393094474805077638707049990446520463762000572753862409739033014159810464000871346606245316590433764193744110959855598493308596938400723709860176818794023352609485079739103906787773309206986583467368044266506328544892487485392092025146602777335161300518035821853220068099927206450842117493786659118545885121324006270640869755527921582746328424728488161812928052420034468009256573982837241357319358466655093838126479061656445807243872151802459794940307236142118649952910073454415127226097525373428358107020590984473551434911625045943909175718656855612823100252742202404856089700494535401975535190672187592232246464073541929616126551259082779072426182210738438809815036264569122621145493874136379934940813508505555249982636361744959231040540012998971047713333613343738150742273203968803187927095254331592966029432005572037398439726788752894595189797761466269576200749246588316700306611816005333489985878874564484245607391968255959821756841546628613239229456928113550716762938298295246575215253793228396730137505431894923801629864002666152110511809218086566813278257102277938790388391890060694775922870417185544489487611420446285643827739452466640489695127054290425274069321889098379777697245094030166412882687453144991011934537551692663292662923878474666843096377779665506260385576795181899423995101318557759077958151934842140844608619616239252026355335476209787863350442667857523262668388972478147009774078107371321943255619887446551892365967038404128155482240381332036503076173643909978001337483919186334045747235609038247503410617282458599269634387792807122140490774549771871868073156320512797576916982953307975255771596072440150456104551490337984606821205909779835986546087091001090012256942658619500393931241682509557002385210118122577783398464551525770737687455577724605636334522065413044205302787917126757653520058091181735607249591268926260498213974571372854407307756932504451195495052772464341504968055282746958178095094144354398973674382559644700970352600423932476558990124382339970522494904111965446900351255833961780841695387919487079250831231157438134211989085225932225161682018965865946146817132221393284317506118456215940358340034651503607011631484885574950528870186929739813844743788466318451069472042030429561222574421638446754749748474806093636707635549590289974597068180856339935498101568859705911109596420750939055796927066896437820946697625029361711525245904258418371811499976700142157410206938283971946814219318720745278464080650523031559175786489477723644820958773154955702014282860516487743658756672708445582947165299971015812825990211135121611988879213201674188016917853720762531478433721260555281423113685087426676551182808619303533031897480704530674993250280483151974995714804859001455159019015825056815901325192173209027111954863096939254802683508878675584242338147771368796674411250285561035084142921845949261014534155157383642956949255360519193614767419999084834031352321935579122004294688814805421852525428385494528404360380373944269942856590066427780346783951757752208337580806275354881777674982295233071503904602543366336272490997114199940677872265065341790425115984922527118499440954370989297249778111926493268409036308255817168845693461404981185516712975384014328148208239366636962111658993165616670562941622645226094687764723257677571892596446411262323155726535804407014567088098400586745688033788523109224100138776774375964715244264892430775476619290556429763277602966757601309981392839847194571300210367223464102974819037795976059465093899999103156576843630854513793850922322129036367265151254420028254478372021001954017347523090639440331423541192844840286385132958541212465878037206459098864746190582479655292945208015085344755458129133480408244425689652682721218697639889905705796985765725156464131577673790147616175710058080446529206462201380294862254994274141970791766142114902344222669982845662050334702074820085348797531858185121322329812870040982310834686946590098701322835942917304516013906052336864453380727719624360008767933872570231278133740385519363137099776959374783224785269496774300538062404871921463694373620376341102385381199541760001441185565184117058686608703051220986533656393219188616452235980889869284838896445640701730805704377802835375320282149006446932314939243464988011268590257635426847363038916742235950626133491263279728212822051736648082213526106531660105526779212252786197645582359981267525001452584190173364237866401102644365652352046389096083797665715340294848315590018811783674440058706963377928604965527288924869564141367286419049602159891097719999723206653745061476110691278075991653009955435120526625875772994078341173017857809199399386750670307948098228344241514916065494564306784716069045923744297531640301072814618524878969473997115357956772549675057583851672019117712609381869672425764054959365409875170484916707851781717022384408220611215442969755380786978076304382980835828017305976530002922194561606956439335320123787695613252699046724627371132163879243848696662094069206936593504804898768716234391346514487436774557999612899056360830372759096758828616496863614787177955274173354011177001997112131103971154745468022709994083789870604231113049289320097856017922994842682686126502344587405580403099305438193523936369061778539235684790483543251387503292114989300294941528559714436907670823825184338800382883275518703440648495457962398728377873230234210841436289720675902311973917183195871730913478759725477255087408925694398010128623907247810139386148190821850187880648288969175500186579037906646944553469681056292870615676738025057995112235422087954294462667036600770092025047060334889233840875923333854161086332958421879914921010584915981598306409656280978321542391177591004248228087094604662543791602415178373604626468070925364465552498627487072605957619142713191510610741156825227028246968746177941499987783409583320615736187431764931550856687301808342033753134968803154334670836088797299006798418472386728530531385130292555593407836619542173961633336678562519631446337329627149305612743537555358562056400903221422693592629527468075791850235771270169807563391902580789910290401723851314102988094747219836247036433589994300540306675664214941483435320525401329207208066796715023230749845612282205612687107542594780350811215395091834640706401878172934162915243811914277312370533452547200085198572222640225925416225393849912675606701234709416291485461514653436153087457199090508116674299434009258191531622289731333662398281578438110599735194836483443849684470553187751957559558856965715782988670531087792607403699435125206312213856694606932279240887732741825314664958243888443878093100385463840124099818908482185788856068482434222618088338130088188240248860286022427821993132757294416295546756540329926947257123139012019280167171161606045634311504839897020621718757572900181839017957387712925049399982055963033328095358068432492912168223021447494558051572427477576154575228832208939048319154743097096448468953390453120869373299579020216088508694391530281568721354926155012655941767253197301638242825675692017319838052620218432642127802191533256189288789661563035164601644913163402459571746039632057412074948607583133037113523823088014889236178876887770648418815988324727357207338782785465686739067163250035565099558921083699424975900179678856670088845567294340238879239584208084390994400378708833666988085349249386611203425082451142630491586465383584498134766968774837266093165383031445777355312818103645846987213886711416536067017027486950984392713461465627846395769415162745986403014378375645117766478086498152940749565093461231323374594861934303886096434562896633924334917314357534404928164768698002343223037773408623827051830077092933512329229075900414378924676190998409588447617178758260238552027638877424947496325650865617988629930296112305434203326683312966233022953774709667046063572669158935130693509264176197439407845511463938633142508605277823878760182123531606150244676133045833604411889642556092956192092484500795824053264417678463569052261928731828856760483369735423611957654189911680754739418778386593760167394037314035525414874003968474120198458059827391672708391941085552567782812446601181204611459380403889561875174662856399841309562064176290182817149709533486914780146188095356103281990766545064007706578603706044988202240808216920199599506651551273756766894994096838877480622298447089987411587435029012095832351689616711234582683014833332805074332366369163431151877517017378376183829752579522646282088306396644300999537606291064577037651535379222156519859440973903923594861651393074311345437752423446293271973034792164602837558364129349136687895840624679960668785615182558540277930703345257094443973335743344718172870373417870214998349919518161108219171686986539320199952010062034342381128142478005876000070564506909183693185415858927292073918308400432267510369110612385064873214354334220335900661476998890244454614770469190005741939897777235186384063560201674509003475563193469069484651050695735687141023636582597769459347051654728716216763533087295290906638083691440380630058587468335714226853102258339571296560860622302079999097893111084004083101376402434361959075474881322124150942011082784283888010543254421907207284480561561860090570048048414701117066144095967434107276516634906136178115124528532690203721289650673984323273948106098294821875499253888541342870876872383345775321334006761912910403149303763042665121401167473453692516203097428745073759258545480916386019585514130413922268662920348327825442100138976330848779195020340722127197249953231152893885176920623271147574979034456072659389789427113356077442256800312631780256832479619285684989599908865265842681739944843085851837412690831589202987412185508050300501115475079433677303745359373775927108957203364360271845619477083226760539773849885653918660546843311051438258985252927215448483865676104476795121340871826530954948172343672058746932497870255354658550284626532578642499714115496193337754337043838528055656765218352986683261839330880509726394497745186279180801300994373232481866792193883029987866410134843412032117859677971524195713277690191499920785905545282727319512545977481999207991422070787812120883153649750109601719941228144983547965248656346398587170316645841140320344750164600170162935797473516994830240031670668031253523275713014198630702477803842483696955631952741144880752711972082716979731576317110534660254918073968655837434041762245397581110819792607798396345822061957374153005058481509650898346026615180237420497569125681710991284961064696887534732180099026125066715680873682291340784752906006747088356494623113683892047460958339446353247452462124472577310396172178106790183527985342362340785724963801390710954706111130172455556760988069477860505449427471311206684787274312834665361725591322952621189850332885726844078353307380324741515847167009940784130303164130689011767230288442912466378563648474850461148169500685592796958320563960717067552902788224454121049094885906466572121635196044163077124271625245295700075551885101949847412679177051212194668505552543005953962204347016394014734298848542681563324190983396369310619906219473344094229153784116480037886948541858307874139063406912609268611353417890832983537171270895421985134549717503937743064602870473333403437309937025491491530572803549036752628025103764197776263049010837580893011103977112164214958579804622119613078605359340317524215497300529912709656415961547542683571587443700462428357090076313622497846141278756385538388861844171700106516446534525329648348200817077064224896110629940816283444013211956279480175387620706332573987029998810177044436564841304873566854983178448378985462939292062478674249718268262443004272518907584147756555400729607944066638451731472964300932811219305629842875568418433274206006342215465604270128463255733930044360265129956749710199544210246376140285859117662229352106701444801200962788289296309806594095229043943785161733300761786998299467117344877231021854915922047069887456553559608805198608924546282129304415092210506136171243574883638078996959603020306810516606630095309585339500397375743518464841900723117182677356007422800595079981206649816320790902214442083896537546360105674030146299317352611101653573083727177052627784418387732346555971686883886308481269556826141086006335297166448733722236808208670795185555144408788856497083513945974325262244853934194460926532344696250143013440630613122645706964326785961477144606047486510117316177991186407400184603676507834378617532744277846757118499191700820051630745043203969660385005262690482471139896100411714639707076254430064562427255029640527129245155724702174254038831780789689249264414977232909142558048071196170085872950671326493761182408245073475799100515469981356613431654589330755005604468595367221218953811293166006172617963050211383654452810582657679327892205905457930338826537835247204864257805203010299057730687959992814150778291338916843728060752866781491957566806362583606006490085544315286593027869288259216488186479632330519747669462600829768162741607596811579476871190129483851913588572087817310162868188663597742787172457479817205056199826334379357292246554443557826616915255436207745346723475124795442369504871993192967879023144812150698204078014599085927915865595936568520695135255402270643125680069438894281086323061877563279926317986320846966807530670459237191897558123064611315432523825682407836034057186585879545527827299620873276040372720064974068068860509322708653610835054147548037955972921573162074354324942904689542177457721273026292409367761517964022044863734049636312829269407804001518799710783555672089420082699105938385120577660911456881448708050659214896246944722782936589559846526724167374063322695345754790171292536380205077070259113089003078317685511666881265322043800128407537323497464721785378593440666765603674604429119367366832161432474023516878824015295732369936671683024330676775323945159556348809403268546704302010420414479000207310022954434861894875500620385820986507320082861876481237681366003060774480268025753353066983649323544028818787337830263653420496510699365038562346812051116346307279438591965342832235461299269090216706287855458084085603118697172388422407702809731280476221859451304495210212976368735322914827678235737486318043522603379749168192220895249354801486911242785164746140526087138598975617117355360828425021122738176906175974328851856286317767874859307957122170716514783012929986118052990294829205344335934841778315005881453081095552363677305053982599494477461397492572732080906035556293697267110471104082648571739195946919403571290800839537610486826264951363667503204703005105361725740824003259134240270661969647546392002439733654408314814598485671636592097021885667136024891704546091149834131827232680511188906893989214001415152389622338062775439778574318564023857833906201423381021633141394905223074183177405009208890936616322255753207071634160161746928491853375253949179845881330381378171256442218951718238478377232531258485840772633546832496721660937545246795273986817783638785202989874052993392445542860950870547427409705199518635150827376478364309425525329148700832808966215659246888378669547562511361166779049402340051904429371167665942526737173388612082759741363534435957933543310272425940460991156717388689961671814861222852684874920926860193537659872105442365917962638491740734282336875329987008222516408875764773459451676633389876886376339862153001104641317489764365965606903942032773326256904207739118086868288619336487071562214630398061926370304777962413974894377051129162412902367539423133871663884616783886444045434362213695162124923430365168694098754343871966911573199530873082133596584525583561851549966559371178458800568300788123368652579945792859778835141713606845794035485943745859372364102942105651240569210052537370592888164744452413765083829146346636227911569171685814675116475704869811634777567834998445934648229310166880827790866946514858762907170730777673378518710082892101869862932308421375408463469255225814176961605440472482201579124267004811561071037911830828329880985800287724471379298783126066004713029436200066204743633756928779023823472292672260483734174503877000488914100852589657440912864611191991380267276528057378344783051352306768151739026342576512087791724058272885624599778094452037795869198609779956847183064738030374557566540585768741480299887856244311436048906882234783815896716238813404345430282916561354646653244879126281379909819934889834207599592531859377745242754806920583744843280601549721433335873084364533558911307679569430672994687353106515591608810899748811577658372868571608353020840652860654514006056264426872161573602660773971006261987801792389993393353161540198319553500164640349535385460286075553254408361568719316952552288340584748024445705024311495452809122845651783077066329839077953313220527392855148850180769941688937302592779043607999641407804806435564271644453130066389408771453197261284234379327024258466694843540929849099917599244387344483681776247281811543726126600950829418939943513036245301728120958132086853495021006297044780732707162846373391851232624104730119294930606655762233209340498422056989340011627995481678602213335454556860147476491359807825588979807941599750172470129243395228594494957084701945201887350737952676127248259609802351264834122500911463622823121893810769715806579410297682162416228103648296574460032075779431715609922580690805248128324057501916529220227738847799798321372634406586993354722444751805711206728130782794782131875839333621502147482978778175006245054485424672304801183457128484084936414211473400779651101137661328366637591368163013324305566951277806682332271777741507993878982917002453181010209902350387099571124506799258383891380043089465478314791879869286018960199131762668446879103044806829679273979981847579633844129924528052659046961948461890739023340702037620683647992373081768036365264018061406898855305439482684233590965796241027069223065172877339055639167697361692614221588187008157406124374763830033725699200562436595957254555458030350612657759883773667387422176850473391867444707275434130990149682358304983849650587082095657162309966517545117726422153601811783820295821728011657541366213389826296993632355680113629137527191027887204541167929503207488131697170082833229136560174236510933204154136959304645369851973772532534533179432182458391363260084700652136883530563131423952478232155438720216100406634506415995456897663451275274086481122368246926548495611354505134902334405777521993153230232457140464739795435218080433866271459165793423347371426965430977125732387718041181831399649508508590940715813823940072906014070239004080965964339072703976655885320476564430119970761343045738174656226316150209080840995993631194845904575359549346604774456482472851483954096264252730195941122069510618474293556890624630168589873277093210403347516267348679492687581275531491542799207790559513397834559198445595403581450163653140576682020764928268888327450717445520324870862595557688491655232016934803308358592754979758778376556927960425907393309165897504218281512811198076282201090627585496793187509824770825657859086270301712297581794337986703461114381435436191957101432664770668984656314876916098550547479384735327099125539088422858797314597089905722024878385961947117935008520943699594342519029317968292362906837272476878276846269456252094716527703217177126942860820534451709803580074353191056475541505997369179449420026585055539059605854125439290918685950337821942942018275152199052454192460908499709736544575398057811903440714494076480155670388869857219930773912603328408453510511036627796222826131195752203592666032737584896740245807246211383114300345401601293282178411812852420033981948918960887767504850770455674145915624574111556694018986361557454822291176365192065758293149986969699520696045130674027000327712759272045066661988544582156187502517850184929837417810500981751279718661896806728395240648305918875829278995425248145228403724780765097009391717304800303439436100139414693603455098724596067637511408918284785575429046908952274431543238663019817408631581661646313345653090176361633040604977041765162199870388372962617392362452070064181750115222422962504170015061082596199413348729123048850810274826553889475748938055696614475727112619836567587961695781496755172020870923602494769529635310621392325005305256428025379000023076485245135626736723669097678032063218696553837817461042260730172780482867470568375731628835039194980076247745823353005694272158992609537847778772521062407128316812711295326501093307413278805849086082008078991498846315926087119201373436164647879599807990540585457615643539143629120356395905475264975973228559318166296145703290332956201244161664971261700355547020233191984734358170752091274059894580630302246915644189706441658535447338903498850702540978650604856702554141445311645044329492530327587773380348034577980730112444655112384890733279285092340565173893596260806741399070978704317194052615346641749368529876866368708123335324346543656437251186451764517805003603346081601728916233903059706478301682445009775130120958041789878233461656657000678382755797565613945132253374528290771182383432343894330879246125673922732716188590477713908206261349186296723429772696171053217919680672991078222333184867072008494170297755295924633107598040952177316811551665655304968419126236189125581362934741119491116210615138119288994075247964217946797679485679561225275744661992459610483862191522810218984387797580061042012872869119631350515947374301409992869913080155567612627685258575410785947289460662602265901540256043096677606863483960803060253401006009141273727213213683832831128417356428338886086452780438646223731771497290035792994225205703188195249544977392177827495172336866226763673488754795508594379945900893609891203400472050988856922569463213985020499600787012182484634019402342938716654755142224809397253347879679549218617176915103616362376400771101322672678636960507019808080734804251700923447039079420488550148146808677654331594941104697590572293455986656620540345232504857222336302728793536291499661365709945064606471185908509770618646927593449299716222179085341911537058922182275173736101715228698112989727663829252126373771833238644833677653494283043794877640255961389711332959637227565543328830321121427906825305806409138217989623162222068143682643534253218838749873926525776719337267579309582472604131512929841815153955318436349426030084688939602223210804543231807708573685894602022422626796896130499686161366364252593053425921619720465438052497842086348897994561806291096172356412395578638517857926802935753961536927200225713947096561602684151126581652401905958892191790346655307351616965144786415844912010013620982195590487206953958084719999144234018101980358407523528765910934741843914058806701110299715092456623810134378170965684426276045750119632280676066921806324251898656776796167665767013896981498329808808912996513681480020024661447996174290496714987388648550714112414954403857429020924724772571040037740731063125044185397752766683885008173276295860560469155069773922521424706450313751564164605563646697816359153856486280207424292269431040150677961148227046367545128615392224739789762590215618710310862528689662268769211873776951127331445419120713708598559526894469196220679965821124573724778983644098244129028386046984645866115024939311412600300961159077094062390240713290257701479064891571600599570438744971735295058428169145788124368837665982446147710845714124783396280826632706635027200459427536716590256778406484607441449535142747216337381354680544018195949587379194591955531998622505027065068000766828251535679838095985935014305807562750973280532854247457293435457030490528290240669615637665189810800598164345340864868511498005678596098310053391566817934683335706989313374514542016739053061716043711558695379026526735587128674850960879514638358484115444427254863700222803696386657913090151679731590259777304944534962963994676942173430605798277816997781164480151611490669073775061980372219194975359574445123740110026846758394240160843747208894180760775702822111971442323866260545762645508384833583445260572056232243986294948381142896565964382119115661106005174233440613108107468774193974182256959211984872570318155403165572510951970373365121563520198119659205321266046158882992774616484115156158239911338057158609531829952152054920637663172004780880708770649839920858594171157329610914027549768631788830762035780878640892918670129338989518246172594392385550926065203234284065684321490063138885495956640164992862694676183910011037638438837750929137941954520272889316610411894983119566462216330780356294018149759943843883052510013782346932257381270332429775374537603553316981695799523202379148629855978248739782443402308590687423256704611547824913930422926113576569859170999517219543048623248664071126953599626227769696868712247183383625960475854066136370933120508590965260901459399667766860615457156787063642741067042880043152257718689235704525195730830639689853124187762228816133129306590371213786132488434435096076209647219870410598573522766836856674320159767597522007352057379865580504699571451918948063958700002724901011483220981381619589869091569053202650523034386310853134852192911357287763756904600541649340369174512125098201307567971358365502790173567952707356821650976767138440687500239915724135093049753351779163657115896540951526061762855113675263667221424924758141223820112403255048403416954850561236479996279481431566717856135751263453636031544435040766583875006769081492247174448479723169761892804266909390636985188486003924214518760606677493790716151391588578754973388222483760818605292963605989580909233933792946450713739141643239699773438542133863058466372471094620419507138074805170257981632450442272712388615326809635767273105284445016871577396312764353531292964596855124783635769682451044514422294723048494565034554137999296020040833494285405901659392475804360288013512497871908225054577530199873256178826495602787456365909981021573748418409252361639200298556863954802082219988493009568780193459283038951515819414435713639858930366012787396259097475042831801902733543754664687692158442483882926163527509462875143584544488451262569350263668060012949043248381767149226371069722641695561741552437514386122175084556681041346162768500957454762289954891636052171329087022065821893335653387190391332452045238273457300767472099019686807855770180329437062062615123688063987107840221527943042155065435454874427312397415272080414247073620629490432287040514469416288730291608337292585800687019471717418996522521627520539184043796923835004297278334979899288087638800459386360625751611171989958020724529648592626625698458987475655005620778791737587107165921529759534209820241355813373040792845559949491467640978966015107504284334561588482658778777439193228594436507936579415476547339009002138034284708036827675347866993253668295150911321012539233213573797560372976996396848313261352957281176690539124431167625317573932467956480008678121682391091598778366203707688245683232520329846020183242958999511081802140020017110012341330732969350763561337300628551181934706386714807471066082891176317653623542279939530145089113399343598660541563343649007243347136321051888407762945840197811583385654606520543944835639709541264216873054751774376140589301311382482331173411292301949161883716887835809722203541626057633196669467385555369007051104563125958781565322216213722615626768415541335188070430674341995202693675222117743858461481002023306887689040424042726958838777414441790967636143014604995549309685340323140224691370982130534090777449702544370754291616077775154986177360283064101612084397517514047588226888699941492456813738886984048255015506693130467058496626188450613199587813964635280198615318288106737040836483904380409921649004455208021443530755662809585084532267773105407644048727190440978648522422763460441427885958805241546531475346824403123238857253017945584874580352544692187787279557323097073155571163177922272003286400589616013516066388674728550838501588201613023393175991019263487822679231096499467701798447412258135570277829743170312647621612231058834838872603946587424235493996119304031344522061748184231970717944304362347294935075134586953293999171105260874569362872483757319729152362111401822957481585222971567195734896214076275008250055156615678826837399857000370410484897981534561299046883259003817723029653889127778675470871999458480867827759474977236552918826384936393472681790788257217036826076371454741951275576327059255844922058199464328147402776984127585372545796789151021861482604185308426838959278394363672191485003111206114617647742386795744188606376857496524903188902429978180902773449358704785778069099289682482818406305934326858448177299130229756040554208590477261468233606654409872315923951850950740994854442633119971786639411446694996192732302479240860413382273889570565632796083673143897568371945471257820874466170445092212555782762942610078596764538301914503279773770212957754723060042804487213353081955130946642655810724137252947739287633735972317463644052516841024417566108099983731089300393541819585487757541031405998081854857195039177986135432328367070302895931966897962028689515224138975629881184056711727946054301899229769064153151682971330375752306814176047553395429306662796291961497656244394974963830875411788957391018681403086992559167782034599523906194357952989611458784945667834523785856511002209790627247570160830881010093861507209629450440362341798678884597905694282273299799217000145628044452145911767404992113262556388784912923963078024239805117583979486092715713133920678710175247138964370309438595306105092526176208378761481689750118894494488042495312238744451945972859474261387274698395117229376902514190714097189090925119636730051584894151060069780118021007634078696760773804248829423011167250487831969267230673043909397683409224425136501897188255559445048825672207929875878053691465337784588078217464341329930298950679575226895469573436294184353433149036352179312453816039906188263002010083516599120061358107985401002941363264134452278448942605031527500024374311477776644526570247415011550205674128795390938620189455501087151665332184247773420432861742670771903888935917600199812456083427033867746601421037402474436327835587865265486885072434427615545322013520533399434878148042600769536264017471879635854192048545258370649361573233625260690483062263244638612085484442660287804415329386994833684586624317323164833760267247813591310985944607873235297606763231747900077537193402741321417548565765288451214666434517970018331691330955690217949644976859442507273016602492573747652983270876257690843095972103121225903148626249043555408255422204175374075494384639956488418094749864854361319126795987692600800990836729185592684993436660446150220123551037836619583177160731646377489045182661398317791032097757438606847394884288925378862929706641332202557148560653205244121304136995719884769112042712326801044395859414702891698049448973906273670430942235376488253029355840972660783692032430735810916233108691801194844112949096693454545428043778181281185590897795941213735410370046770738248597394684774373124962184541336992341032504727102307065658370326442949334952462909464067681990803846170833719471088702401534006055142762486239048836203798000188148789958581131228047989369426478475612517352191261790799292670313706807441543274357244439503775032441216113203221260785345716953624043611705969204836362881510008298083100241404981978768590300908211290944173751768242234785734669895600555275617863499525230500471989462866616687845595126167182581694325033303073347467392921590837690125672875493468140408148323536024032536667618495415386118590186793258277987831533227281934077862096014466738715187694178414885487953019296348077714497892838682146133335190611727113854472183369304028349137543287936948921971147695415312856042686254398723491206231037638152298688080574252993238885160807695961446512510496752878048642086580032297805333605956886840919061091347495061668233634184302716088283740039382732918195034887776613465522740306321083347300462436818968914000021492125664568652592454272605145835793792881638282299813781455722805793008323992078506896169988216680551130359147433022963882310351813002798334895704433635639029230312982902540461402230749504506436486191704660060767505780930953394041362696972625097063396451781638480266451943857956400856311357292403321578979745736320567463450402379257226456653875033239393460604096270222249142888350308705336222573235547265774465304064820438885894627902897051785552899930518019359605803541070989286658220901160317881262163837509104282565964994028001991579283474960851046204730429527773465192057787916285605401240566133511965089490237100782389833606947440609941361369211521933043693827139751756505147875122604660883855689520964848788082525298111366905833539056064456957747706508195978056384954640716078768735539407763312812194176958111538198271794634581191274474129112331790752901647209360628172724281042659726575132730023150725955793974818904297433635269137859076403983628583569672274105637731596780948518912517946193166765034211597470189419111727975796086304637855884932491525536915696462316343526161360203062464924634327342647250847220414895456565833892956670699634477576864018542426067422268952737923330117520228047354095622686108122196900928114651683669008224674762077375609639117719866619980158840347765774488072437061946501147746038142369415194028803749409850902867301335481317805220180176754397403249145516147968076501221888618993883332013477577886111464387469976531932706118058228435222017555717502800018993181918738960879661169499748938423254235655525602617567996293911352492371963132657513905530660262690104585130466544253069672063478935845725999544399276304317733473109030513397064527455259049234750335692041397454174811247279038420458485955381575102335653912754118237112515015617859933492944731862012179322018704662110621063024322030183231406298941323083254083918320377509083731985060389280236900105528713675374478549178796538241789089515200300961306810596653663846477807812177128886244985108691228571765259728870968130106072180207529959898276247936625980101062972491132630312795128068692734363531455187361265716046410165965913853097058181922254774389867275213895258555200871085053777880474788702849861783696320988905508946664921588195368903063965967433686312371902329391451249388281746114150479420447328504466636719893730705109903549810346537861280841897029575020231458594144447631742522347001171097270150204487948224624948628982557375739719905663805066933743176628769912344022758361907323653122697383698453367744171858744961918719725075555634344118281327976528614513324694879060437936267895818824000680091865863772653528626833755984646258781215766794197371992891371174019858679558770062360049405775399547383805732355668055690948120116760709595577669615319603777253198071644198376574483049698243238511109600282696040075054486476295945933598317787290298340718302375410408975301807458087408428428734326436726654770017062210347688814045940365725177969899772501111750744784247015102902529062739651449631558556186076437400933500955629900119441837748389281952978366236603184859020195792599791116592876928410170634371064093943051231231463214530818323954284340949008934415955463913066585850922390494752123542216212000084975155667312384804666624748245170691645116782341521932224732388693838847157923195488592563808952938966134506294379274333558524155630076237620089021558686133548923262047471582811473898598234070332844402268063531459745813436357111938768648657133075623575526797855776744220944292143545696711458952877846538497608927398526011135906548432307478024598894118128115639039345515405241262704847845505252386826384516471213635345129754238673466155020718070020773716401921415460775115720822657233153110698210603527848679627037237998359114365784406154873573625709747711106330675352826752767524108772206117756389773857196420573350247722659512414370135731668525538820260170601119582492335058133351625982720814759765835899171884208949383683236316749270796926927963058808850913549295063088773559940627341344062187305379200744605746424945027307354198492111487685086600996430872628088826612432076970737325981310806970933400726935251684691036349349682059926799499186656896968505426069478283842641776209674144281397593398626337487100565522174155583981872232987278297560708481125987074795547274282865997878161943278286929190099489187527566279150063316511539734112145850340546690203021151968402853017010385249517587072046971585329429880029938977139981002517460246628554396121056168230251109563410230442652961904346356795802730181075736589238292182156159514495113823565691455044177093620277509201732578424930132848674728859803646602077377729462172270864645836159945510205685077770253365605436354595215108157337293871587715141029059606013517302344634400096938876780483240252764604836342198644859979347095384934315602407635111641236627716569533038196342794643610448547369704425395764618015187096704154881681260050513860434015899790302254344696201312914819066346550401925617966154259973495724808783899957963451496908815114573291613473642907681600670890029984746858521482934994891567417027948373020626131569954098375993687777053379561279929091452282397755243490028757391812967527367472197349544654643326645140646609247627361514070581273852514081537443489491116015164625920346727022826868618136015312436384606647411860790068341189368646797281915866763255639658672681180136424350563986728771270706491241262875012960403544310042784820675120666579145320231736342754056863065487628004524511906800499991847093989898665502264935579827551289245327104438494392207865741285377188531321501685570350163129821577020307243777911125256928258834832688155323890013804746448523618616344170625745249344344767329577042190296733718454593527670983475870583831105849405103361341378202855534507272868040317281101433005392745870556172173562635483002911368184790392804822092727635585607573056243016551589578117757111276048888701832168731120497461466723704227524215542618179366937122308018661004178353523569879583461338610201427566553125031170195050450107114627710714187384559049071705207414032424642560250139485551471288943026165813837287045704296134158578609037041265665231304454862766168984911867009217953102365652903163765182354010084350414914716226638440643585412530134100764645229463351391750804937815583826182586110759546077140409007121148515137397022134972720219107412751440845546676229833680655810514173509459057098205911883871343419766669451845881803537761011476688130817639124120814848920807302440353893287218621052307123055395681643045633136409487199189105968792858743022495451351084489147046554252020726472853180976960085680089627472676603007859770737185161775993609850742775103147529503890641748784491602341252813028629002345843144962148685566536918679920927751515696375828645946508399926381404817102215608214484367557152913063616883874738617091125126016440284895258571040546592700461679226507476247468019759378937303083188575905038923851539232716192215905568390681772355788250651283491749885468961066758986578235968578456351955765978361428153662534619403474280667286795521407377550701155650260362980592158646763421719986779550584996760516385392643280991578675521108872484746149759121380288860275538794376600491207920977855436171978968815529401284558103879923261654366768421134660423401357498039344957712898762310726912586473404163123751374945416017486730445184355124325113888239934017210498894473894309643786071217929047143847989356095704114024055054630516585704106180240515397624117926311804723203649975607548963678246804325031800135728609730768711916272146846410422424862872488231397935286533767603854460340125733708253853485269087595099247026871366757380091365831004899459442892691864763666414646543369762058298943047241810155630864944890267269474265401656918750178990405303187611970532539559745307264227959480072832687175985381299524492411084734650330212873982670705476068650432172538493802201828231270474433453625563646351288384674522620566358080570467464081862831778027372393662817928451732591271793969862569915413671860966240345586459451382071582814136291874615635227674920012986445980242016250960387150509306776634629752690496588875656472692195384395394943142670028439556643412458608879016555287804881377080920620579048998577940762569333348866475622477755604633121157800765907810840885641908813010248852843183729555878148146610773181501011043109840312265520547356896850618663592678743267267903908569236407124327271188957063774661827973068770575878186382675475022574901384614718017171463848157638650376524187614032892406338244080551707419788380316912776296262140743666504723710586649975583714536863547347444948193905300390456591904496542570691978371548394309741933778226449226768176045748465384015622512485511731349833740453060687899246147372454484080805534244703297038712323735378210971334440924293548373952325313544724100694572423073854187132973839420415232088871657281885512917231768309602332423636891995584921488875590562307299812793724361316402532231756561333559958815772484741073795308269055571515145638342811761892326405790353806762229708866114856728756586408970701702010458039832166391694675870225310916919993442678054725917967132942038931779663681146555040795152625043279718265933274259381002299902030934820168027288472177265329972194554964882083227024558346671097385104002527098130961897649192734570820692036806244922835550289413175496790762365218755587457917539894706585580125768783710826385303513842964254210894952615601831080497546251299221418708717398835067629371905512283027841797681732146889005682573784565232727149703741509525607078042992153914438946910567169243830730283605320095912415724232615229221656996821711092431102369506776827815060701220834439166385737502686122740878428141049520462223313969946858781659971672332737385283426857909274661572434234309054501803467141605759687314590202115757684873387371678981849231635579536362759529357206924125832493458906917866149297712002946392860805947858943854670078710071020244336384777812628560412104724647571756137355017090030093934696872067276228538118586523172333363335358111868000766797803283939013772180272767578620093102184472245146728427191361146595065261548942223450457073665564435631973547630569722201850029670754273933822213911613642508775204046417840669411647763662360685482879055752526901801940277228151942374507453084790233029662102247165631552871167828268056626506033388106520047220093119233250956542432917820386406718160881133631872496958935541460503665552611998524177839070681888367460557946241707539294344249954042341006353369455868775239417314359345446808156259916704580592989720845042480371612970544175253407052045346346422221423229002549514366401508521240586184368250931790724100324273865434430966262071415679424750097256881286118900391976199538122083002457367867539636274283792322191777436617219724687547879826154618917802900736971690927385660489786102164169814618835972262843355983609970199026364249789009435608502631461882749296400917797110599757219180888988613030658683103196436347933120870337526834619710329787744887111283808894777691713606754119341862310032286644398930446172606288401854808804924496005259799558658698136924776432584204101183138195605348943334129638360636159081051754502854259182360841025868666821810204430378694056861356955594354185935344813611226994128078029794682229617100040636161413457327603574519136073237754952785223216543350658967453330441296825282612542790922337042632133834651640259186419513025087616148142223781761515669622884973209335838532976326314904425582161568018882138169054128321761716252349049365167497825132011335153311382498740432407413717404937760933249115675656852865490874124366324426281219825019979463432076849824585606581615427448361239949574964462124002470295349534007377618832007320806212259277494258823413123595465267167612962774974144338145952773927982718996772274757723924817169203232698057342462829368364416575103056489378149590639411864802699821104733585735564740604988529095885205986949343940175022708847686939790809090188548367655686760900987909840147524822239819534704717266705679889060557632461774229543759287615328284026603703398359148215978338449411980346877184870232686351389880333178611072868902335308964018511311841313453450776376533793202407459595680702630944496333502815669960983213852289672227817177267439316422102779820684670623511622033810996237949765041225537887831127650760430870589999774531166804485573015671359914292164561954049450856374540543666596429728832860280898259752584347129514800389101964803272413948029986957435754609117878588308227384173454563765131969208625395342541405569622208606959472825383619722895433795177393146359378411599153266386225779569486160117240703474249111878733278053024816044802168645962210859181858913282995241531602305945633952018484301656456803366380976277655256759248829568086653172994545471096754662687528024554687101170766582305168411943346092770436440035684406092776406593936757933083663629473208475068791518100789043077393785633786825497228018670834438591309321424554647349443416656494137006505244336020561967288834071538324898225889392454273302258915473680057434294055966889302913555325832586954400376649072694367415884317948555433204435377974968440995378635941851826606802158966265528872824080991780407460006590117201864735485400885599639886461801944030695230496624718121489505262412198224893838333831459309503518569572721500313078874544318256753523187722035774640807403056810376777623954782999465551406973606188697292611237017733047743246048918365599722774074157816037304333692071224101298298627732988346339627521271533058945467478137402230818445557875929305711265161020440883899057391617429024953478968700611240503906337570933557689474475835657974517172600229058295301390331080704169873615726885874601883550465787378583431510398578884842698706590862551415047185896482927815262805855312967909832260695693202149822394068725874887076383108954416108754059466134764625174427473676225445611333006230076255283998128140316395790703914278821745919535171799439989941820306931818052403754441001033884259308554488831807201918874812229839487287108238225197271041373493244540428842571677004374884553875940370655851217173142290804250050681130045228362831658021918392313299660249166214437643392584189590082536194406217830005319081067696467515297090765905323858996722421180583203155085366163611055459128638887664176004067088639387353213893238237569045730676288520189789477003563457835581644961920739347598233904842691569076779384589952245709065951448131832597960106378828081464011338741524976934811371488161254047875598655289079024933256024298913059491853439110923772053854649231494418690138549157450255845745199033170028815513418625366586352718119906860120205397507404674967561277149899771058007962074553357335224163209119727381043143580085982947511291008746180389072295590144273612932854173379660441252738242784942621787591638118905971055472404930758373686423301602618274418468836474605540923223183328607714878675400844390729060809376380430607189745070253039721608815554073687663796715274430403009386209535823984750713819105325388872928682440446433085773034627613765902078425458264296609857238430369136191114864638197914681166502089340216895943887311100571039866126914463391491859952704611176284576074084716900432600142271113482522314610147053715411035904459855742022585483939219895921673386559911424416091675745179264402442030126812777584520720809749878112967206323234061787990935805533570871397740594772522165696002590851482571192407355736312898207809682144559328115440083567613200596835339390612011439551967688487489320701827153358382626847891831412087261413242236452653507082283441862792318062698853244846707909029050241973354784965249135524849694232643247076549624270223123178528995246938835410135150675671341052083916071447393849056116084317931118504515595035582502899560784062151006634051122156400269588140738232840955183154757766312538965096672505979873150749512900887315854423210561895538171561407331145029630818783284135263729980826736968991882077677547025562242570917591551157000086081882638288654681213004856331889757477642163123378316740785904389724539194226205543864535254954729079507646284509985660230078371035670797971531696275866263278647311589198405736943064187191437475233131918537008388573472394994155709064609030593416421575664028326615618293294766901672758558953833999238470934336765496223413337979346537430107905324244588089859597332281832075020416974282963536481922572283317433937295441878559765102418668771652275266699563311204431854402782873645438920093432945007370615178077131986088179421088837358582133981533703889753992137136263436398323357381547870251535208918933934943978198682654082126529744530111655567444583285720620374526681194634426753093645404264079280810295164773898781965370177540190709214271078904692188834153776113002979046011117922559920696742929947164735967358052044871099275072716158894436259963405895418953708423752946038242273381693023938338144779243896845202589329948413146731966431372588944156680107015146745739791738211114100677197820567407543269794713602994806259242102781395737727060882639879872606492137842523210517316459943371286993356839664731742736941072881087416350880815533930391193433561877277041744251286640413254263845110798450448012516728683119192572111039527075554415004707977585013133918154457839014613454763361519746390532413068871048107102676650524484525890808994904791536459377244714522271787935739791403288926734283116286806773640187438042090759860203286848077364423165276978503728778787174421090975893444698667038501625544311317822442367599171102351774609239830950663585484273887562858125464950666955415100410426468537427851580486231552407978375939295397503140756365171346834968756207869917905246617937430398126966718920868641794336378492105271695258223951381399122400335272229951874521955006130121076567028219297624321110929944840395898988254935113407180433050373409471254850289066278195163349670991296744858179220544531276156918221845442893806939958523219154397530446100972699042347174013892715463201449280261329719535410520406685200435752425637118070932840395168237071446648910747159980032352638105707278441788729832872266536111047787296827689070988414588048530401599987253812821917291491508090521501465456278569783528251612416900156593764759038981330209038540538316702015191931074958774597195574373413657224922268265119298815467761604088339151043982416451298687782367988533606089635235505495767916345856549350371438826955080501672097561674875118526350667730981335763499525771587071874000196208658145828451821120176047476733599740076056996170682422361717912723525381261627347614526260504091467679306242906653999263257003469551594134650446461390270938838819586843057883373390205843806282570104949823031360630904956807041441126166025863283379525632570159625332997985275894310099471126862471894085597410030766664938064797725343546947963014037914701699534054955427013162442741001098481284329795015497975302675041467083668873678022736105773938555898794771232863783583468947390584119965694148465222329364839994138240059754150238957554025827343674601767912651443375386786369409237376343653831527859850056964329244905538122853650129239580006783727085961910581801983194969978854679811635426430255699233297150588339207319492862097358534640372267097561356458200649293147681807024987515714005213745523314052948891527599358146289630544780878278258184696009104976497364954628255671002194017836609405786250633708120750545734777618198383045868707018057728404036957155220725528948853661777306534183666774784724434744222000688028217360714007681596544685957306439791017015662259804142633111192510384606860802393672053392163156736446721362931171956989516676825267215253251972726269290755982082207311145622768025080494874260687117212352010200515961222241179391786886187585613353298949654158354232190764921034743188426233274654881338132879847839145752230422769814890888197043537453823234598384704986692098314682116194966700229092920956207542146461708172558608403980824216396537152546646174934523402365011518660876395965713751825076132518959154459014864044302722970592326380159592899052632033553742252862075212807379121206581194748127694432101350773827743525384598725725549249145367715128522615838475120998311084524348618903897849147211078222240308433814700136991923891340897406958132154325174583153887856551270858309678532730057949159916480775643114040001648939703088614003800846873231876113586387480596581554265382169462054278290266836835883084247629716155938168550929490982755368970298092243164537918442551631296619325486054513897785079798208360383470413729787884121046235789524558969058964523177435361992395132902286194656761704889278801723506743326513692828766193745242395784903682065319094975479266715927081420927172033603358026503028965197246550996501122677250174935125846447779669427779539804623353618455807620040878691899637179056745909520675114620376276397305083189648824842861197203082118943730168078359004322879517070090831694241651254382900713193392711959041867196908772950579006786810089680924356044452577202189595679339590070246432236982387237168337954381730968819983944076989841929027502068980964562247706573532410513800805365497302861871719970023352843153888856226895499410599997770680543489561343711112539155553272809646016030303841089147850611255024116517451150161346990173194669722263048924613536922025683780735650428696491886162128362312921773796997376431077708685560914411332342999477480866197675938304516282742701966992515086474970748736934294688397229342024703428813103203579855586669112490385388438375792134736951222266489321838270583837396351331650407536610034528595826656992961601055346023694383386148261419191003214549479164669251849177450114135492946177702155103054241930507652849440987025426718144623661513600933286933147427985490592651458470210176598282437476121574479379343903352297462035594236653093947322455889127440339889913651413441871555549330686878463298455376525487523394508271821248227215176551765758199436532353415605625115500081552500000337750850366494330190637824704804781565035088987776871677639815152276975126684569095270514246771419409096611673263844702239073967512872402614954128679684421880231904058555280127221336120759119572458808634438839997196897784724880767891825967616917553886407396744799739264405659218889843583937399172772096160386665274090266523801622974301693881095001829792879177866430218731541022575381015970532585882542082699051127457270535317036174239623546120283539763188513370471856631778255021130176202484165281289577381487007265024378446463360613493844061857657194623385361199518034921469437741726645034830056348642996188987492428744487003877507945172710427530275297955042021420532700625393450921133379936499806724563021795363791896460336113458088647624684333881142087591477856035671134245820397904176342045538157645271442169735902638278563338356828165982411723812354815983552170784138929019458437448003507144834225692819881413479993378280231338489435551902927288788662798745601902023144454140120185937588233365640823151388808689881642708546240995054094751017354800777286350103566218307863981685322975968695785012996822788111282043795560717064282826483394059328733519074580868178002163267021401737277690251272986662329986425023541306918983107236065476002894662985144982525337605037527007732085288030660812960950993606560088735050726921617764035145053023538147041130488641463598163437236786592976401741108313905650857761826289890622479076111625179193214443131404678319319874363155359960815497710636601615735548287211020888846071193347229124503771166235781537010029840983769382422755289135211783399275995907457627080919031506746737682626417745932933953518638242691863066058730896932692882466489521627538736949077658849201118392449324217503458244725477622193658790196262510433909869228609278541909363419049501556316747047125717619576811384164935343643130416351941032478965004109784492732963798308735282371430640739905775659723115062759632750550506597173134621850008097838845525000288573853168513389122211089518301556417495862260409118945515342061932943799028996468072760032611395014578270742675624998015822194795258942227989690817882854318965467911266203078250101882752371143985230048308815112990743473292539993797570142330961946675326766984667026388239527842271168833307504700457411550254637655275700566827530149701250354777292948609434470582586780331549261447698612419899382619904693430675408265174662358671270891905201283957954437202175857350186790502029468309149798655717032097936736990418156610154399939989289748077911670153503333086209023944480929015324339742306800446913656275716338953341375132728491952320962964527793998763894685538562203103228307959721534072140136366216024250111963196210295305431054227220774390839482432316206228743545837367682322152027888565973608346150063256359354430185397933751689474071834971647891511773633065373835522328893471655563788089940911869581701907132598203533906296473200245004233473236764647556063778628216504387240025536825723015724044587789317896938408980600800034398072625866137522751392644877997779338519553239943519046446017781368178308354476092474068730956207598879153096216196358488631792806885770746348431112998939209679009513022830228000904970679073070359945924793532340443271717574508834881175562967814464915714608754489860159275850063112107779942792715833585538152892710665391105867436527590216945748215209092888296988087315178501147169579058578134368679925396317819913887069452354012705465443714150023819109217604444124418562413398078233792164137815900751505540252908891943002209386319153800206513879827560767981043920533922355145432028795819414566231862809448807399951017381532314456299599433680413242738316341200282347790399030068528845596914964361195008612469947890761423162223455190982375325301133887010387348790016019100463187196287391398303038841147996672108824293662620510704913489079862051904736298132571688045409727522390721778364111911050913300295416100955070351184135763875907506163997909616889956216046038724147983018514952203859244104554687967627041928534292831208980232254280618042157079974470267642641196806971915539316439021414028795575632475023103397342492835909635348586416859868439102888420467414209694908457468516441818629871117756051460819153317907702525273548576029226719075658957717640366783299208059074760006648436747651941395083512108766613324349709699910175809749501496826430162800137399231507785101442912450684963270571264718648180479665910829565205826764995440380760073110697690683779571825876084692312133356854383308164613874166568574528542311458713429472131045002516283921481574623455381994924012357517514921647099985747376106315693600258671931138169050686518684551375970496332567416441056567639456829772492712385427116720841476275443500544759826414717408665784447174332965567232356991078469065895278260245044361989263472262735247117706677880888974318368063605874853664740878933441054172905325507965670643317408072771087876262703408312589107499288620722797782046294966264510751158041374610868358300483474400331176073365687464776056285660580780446392091865476386967464900350371607896791669209720758697459890784382478418749119237806507978899052640887644589601668557937423707461178640835027984596567758710148116232243680448257312823458266924287398221675470283896217743515807447395489899030197564376480543360220114759510266443556605343569510265570712442391972953228561886295877226307332699516043991582448281526096821926630716977882622913664761132873863095133269851536187654274383789276829868349974700444408768237610209373003455236696647158012757971173640445189543995540491321225907778545306306491333685655084819675409450157419058864227609747656027511478383054236451557243961173717629132851331221880478822046514474213544320988396935070855921552081256297437631465576241885883881769862734982910960635099850329907674818115583478261261397332467989237947473501672064605624860299350826743146958514006642273410566050265843915769755851570958967678867526436385175223713681420002287990701637766665244525042225724411593034806215732307264253986887864255490424090406208237302660199291248822447071696992283874912654250920603344305716433062763731565652185438381222924139464888354567204456118723544200476764771879554687904262617763008341013232175487738376725614340239599879853821620121719586561587877230633406114954480176012903843394670079940734302160621699472345776051882728981362242908102753588895742181537857848923289125458148556188729148287768229581723408774159494970540858665166528764056496873918936307194665019170273924025886017370557623116124582198594580096779444055257657315604415836953305752265949269874901434844118093029915975425572384439542146074519007360931575399567415466886862847734764750417055034946576562639043654087461686716808203144422086770729338299904672627374023210483358528295256312739528583422213262665462875277596777342849040990025557070870120667020685071129957997533754495266817378588392980908944013458442058757939166501571147448689273374724862044236611719182202202847675663259498773597173921579807348921558981471179133539391463031025316301342898912985286865850019721547428310508850198161553631740734980978565625226454018848774511315023798020991204108928020461240872841988149991742978735101767725914410036962343299187311608132901602920230861236199739963903446582724958690697926059763272303668755623081068744214902699100720251372733013045231247167185482000889334348663180454197203924486774891642663473303097941860511980320098302420136222167297490121186812066290801865333363680622089208122735063944605942646624415320315782696590835220716997155968971928411944148468880763904809540607296412205380698924122519612097217434210830078956346553326880279496249217550352355356439740435244193167550963841274086024166799791045059348212246330301282581534364943495464738861613254732806564388763232914480903623841890159490653162771782238259575948368997896265652874937338296043544815515158976513214268742273751599318688329523624477158297337476401022440163416312258480719600907357781746032281061076722172045430827946113502342797612702932920601002128954319482783108364146125525968085195233502195180819377039334436360536663045895253787536785183387591967221918523433793564307963569560505379985978071703333804690777336813722062181140229498106929091163575466700188503640499269822301956102791075805265889851557629952684019162080996916804194981688230008363520316596032955928512047286741729050404725390400295618955490501752747465912198569036066083730903349390311146783988080529667852224465682256619177642699790506722707974934787629479035630527030129016691535567094571715241991068128002372560611320544905981351904103463810894364437911983019862477164328047009200158515163710127458666515416471332313591559155195808862467338070849265389757998477657216099473893905035862221645672013516197167062071624994442906103983268636619354433556239200702824061503855289510454420714740516305690966098814277792194223247027778359678765885979446580731706585896546485381070129922203543036781275358381618918383890579358468684419810573758135969297093302526682397825257635147769431162279739529272236030754203529993519766852130025891089643446368913838811631751899930012954078219880831397152971669814609535785390239204278305992677078107031423648057185600307138099859046808916792130548710762570426846392039311007070838993195423669969392720544436727891279563154333765618527664528379750277898874884693829421720764726018164003535603996985661395794554419900940115606518517617055448308040329890254558928267298448681595060842032404436032052454225648535452239332172517188481828049359703749344269987610999187716409044699001008879600442814362759703054567263115244939402156954015769376072196927195563709887667016322696130220807263659085771899722072056212546823369495313997579047972077975984253404534652266013756009142544398254316859809314734048247797151861290024928938445516171790593999647751570737361455756723293414590190929354334727208635068969949069701154419795349359872282736959347111627162217746094871722922146877801038439793570068441176497694860418090840730710273307203530780261219670715852860526261224328747494665317169075970770840546024641901825422744010890142449294388959905873594062670696262691170714134149066203609407114270675077614543660891059193903055936564969475703272521285495855420969586559078379004065862676060104368792089879504433869042462713583192282473581882478438299279057409521303607002196793200279307583223384566210215859848935947775030749061905000029565018240901672850304201602570629053932937121876778328009599813469779094791458969820842126254103559075951799441832589418490906720757185994943548691877382068067646116261313335442121251396153326027250301450009708207588392619707906772997600636600532522640336643475923587778284066891291687588565234007207862123764476193449409714254155094470977046618195911944568567497897552076914102786698566053452536488800197726951598857262324580805729789488189675800634243527663884949283900296312046393585766024012333426591026677856062078787703595135683967829255762773584746974729149378705136394173933193879333530277183204937367716398209492139254666923559921632505799352286223368472792663727917328588965076737790684281157624824614124151884574120048560441299739308718588666301428041457754803411202343031953589551073972288788169926389867105828685441152629559694373683436298499662928048874376349520444016583845549407685274197584311631636687089807385594645117371697797541087945401482296072126808308501709196500471032368816512903503010449374347156704188223550685266944808441298732859183018622644885370684714718594894033704274468102176828090859128927757268503748147109888203835636618353245809872665472476363724583723413068981368379006122200251440538464262628821932618533938788175815133408068122930396234281078595880130530506879727020913594781179989271136632687192967027813580156031910120556454318101702271146325396343183251230764617689069954249632761443209913775302725979990449195805892043376265387849521657923172155637854554793751221478717361276091350348198039456476902576974111371489787872574100857069716375769908065150391559406398959681772891017460635382798669264925404550300932941468696126632775245967450296134704270140181936427984968593241462441150723661832075046202400307008586518330304524489547876088287875409831009834730341422611083235197118961731221561444125163675518370596851331258389476253138740065328324837220958709651247474337149294620045309959385802739735582675434090094775277799585032337887252707132116720307049641231689738636625444877361664134631086377540450159888308933946444614278584887558199593267883465377325055674403847178496049106167373292048082882719912811913843820640267848861848282565139329382253990296465064350367719848808810018345513863492984890359250500963115238442710158926332731706235180059850088343948140928869945721713678494946145269145992101072596244466314757441628981654611384858334925352613221154265234707348560768854466140498210081032973012043833943961169857038864887978210253088432994664983164861609687775764723993186301966568742852429041548473958282896701162275205021353750738919877951216872991560615247826500336489309125176976883770852993713577422352908736762559517824912093331283615480347885928263052998700560255765267890250589375557658128703034688991336242313439500718137169712334479026561787825659466052581276163765098123819386549061891792960298426361229321425430379977795487885044876584371961187946855240597935340573491231562395437853174693492043721551101997666449479788582795603373178043294298127198890479306207180767097570730698383862593390715673393112296755198019543005791344605223298929815540094906047363687065575104501974143849684876774260980539323674387834379651466983161592848422728440344069369486173851592801486754986790432868017113985471321306758554126613032867828228873987655461826035584346225802425921407005426218363677287784841670994967672836098668151157332163256082589026919926675620378875294379751934456486542831899589901533956879263826724443800362922788023118974865577013918365471232146877104882973853534479963140141448931470135494160835299836195082657082250445246836031007698252436307116685764556948873521028145400398583842304501033039752989045397049527184272536711048740073642974576807838082450736092256128061471973001711466406144008060471220170320176956741160370254392324746505040750477484032684967454681147807089858234886626830486533515036970210094061586510607384953637466104509925291969363484185159699728823158837366752594725593451783545850837160243110999747082874314081357004968165786509844297843190362360700308219439914098401308387618291466248206617128653347200451900656154393548896553290519293566360269836418962725426823085989717125976486289348440490448337511811105270283560173047602934111599897403936633816951202131708201676010995763743338320293708654244035643135921069025475811371510069420105195230962478101412492464320201027491238036812946253102032258149740483931441524208546097317989948999067299979707914451248153446336179542735946735776449705818689263620793543679687287171000216224551643870932743912977987466022919695287625444654643395892205363465865313228920134982408318289627591546829178413375805168573202660131282381405117706710205696854193146178969478732115704079616443993811167535105800260451136636990603887123165903764501056464115535184603740577428976079861853034577488851861258824953835671026479756826695306312795805720992186455431730666147278478479255837834734656500473687325389579297754628737475625336590915666459980477776922643100392535803567716883564155309267120626220507078987936066071017184297178050717360919728178381800863782776527233930158040119520504160574739731849438730040479659335441464222068413960129433406565333409053145455722966530015311433154502282027338528239067589478499242101836122918853850813485903436963857205635673513274667415395091288546459491140744213596415271467098961756083205856397600187845752323308268687695564548725117016078872987520372888964590278152230227637041270975017833775714913641553077975635725304726571150943992305319282661831330348759450223834445358517670619632125683644245583232442429521192044507006100684901071567231854931285625284416276988117530781350166620642043475447641234873946976024741306530087945774699228823412403156160928489623192711806615136777673216025234219038016916372607193095089387567056906249729328722779609931522430851595600005564513989444382609909165547673881292232322595146606908325633218411932456364784133733628549424854456865342075691815008139833948684611874304138566778665689300316372823091403827507106763188250532045517922623235756703880282507449695199051220204036636887362171094488027845991525501875894222932001855671901701143200322990891687471155091028842959244823120019321159615578007373221969716658315449251267242735742631377943769479764662275727255521524014856559160350508676023624519734202785037789066607609438318542678540107515568358115260943308938106450246235038920667207623822889568808031177952048890828498106809583623957711250737702609012449564361492905266740857460793935370269991096120222321330936716346805813022908147958671443434826963779254773625273275209933969813813775278370764526125155951540961010300828419313357234332191381588878097929107799275973574755094795023776939550238283485958490071920162807584530947933180889337329685196510378408926271728111445119448266084405380483150087576308545971470344583569003962872497708094620979010206943432537575972184512013357540949103190088131945925140283114686239883693753940923901936157596338021645286633104645117095849090782401870069106486930830746542914602202269188028545719221946358157947054683922539832447257816853030432674952548159427691312097789061079558282722863628364418725134154707935931510456716210507204783573688295375548749463971942275027738425419905743416806040028341655588628935875808814164200606157101932892315526937978660248243219199748158175830616228007596986576240305554150212315750254939550387915209920818754868009522664945501116910733199933811373568364238070606065367775231675145762632620393620221776599205552805204827525663442167185054349667751386190640218668160060026828471301843361156081846261796632412545209787712260659144752921298143213949431486463278461851515269735184901804246211738952196659313355459284355975811201306133726915738282633394918960457341732725229548183754558408411561901191684087010880143205567781731700936004296811347013230357126981310130572899267740099321135455553333466138587378773671884848924354982282870981274988385292335904621692086640137022072139506450627149094114141667292811712552748875113817642508257435486586169621361417287188468197958608345891951142249108015166823189521590150618988333436231355373251940705053597147639586608164431388636549067688086846804689790110995625428182868822757204435364248919822033110240110165034592922876484095610727946714365705781962698703944803069764331650726768755755520287829278080435024264298185619937904884548693895774745976953737515940395841526250691893618506208796942587712428918813275149778234523474570716661079458504521371046863230634002740415417489422795884846001817075059790734205423081601502631970769475154144885516889427472190980129159264567769859847582709223228108861342640610182524053419415940233519638613269529658706573970512685130632474323204360156205670748173958749037770697528738113439696706404022810257584404768689532049932297015660412027962971433921000387914856903298168039187505399393734631899867443526997456776851854683766614547486384544011272024390823793746886488559013672224392737195629575497317301070163366746532189970533616654019737375490956458389930960310810082796877532709984166610393020747173354080153396315733894197443667158704298333307956805908806597093040411474252522583826158594871776320965280705106600306750901802045127232083294364752020286882409586326547755833707543287210468222011273172871038960126126265721179882364133659684521869910828737633299921841383764702572947398251720735258156706560991862244939324237191874082171188369303391617739770152292460301668502375202189976885142182082252669288634959599866604888805948185305347864743628722560356279657425696433674923336270036019010442576118986679880589534354324045735299209908949220183228545635208851283054919005394445175425714395054616975017818341876784753963287935773797104647994205739564156785552867054922300585917890018038980017643399438389657506088716686111171981383122881323732320497406470455466916924454255331700161552985519708790093060012341097046264850551260014809477435922177252131197985706613691183407255164542956639418344990943858089137100060570018760556132815332177433267896631132021518849218927836352035751300447798817432460670175754089834961485973468615682152855282477026365995682442196577286887364240054560578955224824446172695679149760735505085730575182741917367044704175690890534095126651118753895784237117913384221431201275022880752244831956223805003975510845402848360625598550361388103714553244799841357021128373141067864340033480171042153659527446356654502107541668926964209586887466182122495917124256772342292239703630609258548500171345542835175935537665369239788686775259132260742700552074839903772277081666558478317654664869985066220953751628124427424751173014461962201522083569400678079088840646240882999705891325096801282693052427524671388304286435262395437793610620439906285291821533694846741293149347237068505372208181783083572959229863181378357497822118305388416893207372973869086241694358428920320619416307033646428085149333320727544206683761608552311194774653217511363245629378232647433727335574305351249287080849351162914976357289712154330131768898263424375612195910933620837898306847869246439175765512517477509926044067987521446182055609157887196501050761942572284218689643128048767382780212090690126220069778381128061272017198008757661949006060216755392832044711323478734026112611562985463465450052335240004843119185514250642143170998858976081538429839456772067221841211579854036537595245214933655202065502758616881200085083289397869416817210341205636032862218637024421207760646153896535475936377069038061727378189560027686378226580128668917238647944827523795243860159329118029163437405295747891002881548685482911273558168891440417093703622790628022218894705097364293975493669522972545761154321637950523407706079501797248060661016513592495857282065885096184752735938097101555563050313847132534884653084986665473800312965756453913501429986475283467473806613315589920876646774231443118485488012807100992378190473406839395862022190797350689399265187162734394392254100389637992617652989334119241289890218496192065042680241225583969273883689851010496920261032244801329224713719624934322753876489333464417558597622226457010546213292118633973488897640010187964310433382388509652978450621075471358312513626048272772146695165534556524334830650398844785802251853088263309007185391363315491556189262931571540417931403391965183957458939610134918823430049263518257604011915565178722183647165516596365012829232668486802998151622434743975668831701612658315650069180857191561886816112830783063685985118343848550270076657052859666983148758484269174385625892696986658793313032789758489626156622401054987519609392880036403950355136711589046527376090272198505863119508050273641160214654712835541897820007591081787657799788053164840406591537649110013859768137881173820438999139113658181533299911116820446504425143939154648221898852323895655385766192826287551192307298510411140087667496993747430244089957073718838758465577347457625125557406220617671848329388592373850124494300895836793746630020566766449223058786863234746990823906954931587124344451681865100563284383014160188599092429400298145421250065675300635790191163827453014610970716637496356110477643720395911176391820405855386828177600737089842788323138960067276294818476223070059892752670845855133852093776816235835413196152242562035539646180643318986964501075306995033422880486019701313360578303289339097022433196327025057920742938259761590249530654556346682962861361514078714388834759284001052750875036909804650792957848495288766924604445016205221394709087790777356929273619240417291590291067691431038601035679039427972250737763513770299857289355895245739922224212691066975914178526255878905075806430147028933507932127046496384153926712197786515024558063849857837015614482166961984263490967892724517067830351575763458674698403207543915664054655403851056479547476547999687799193152871817275583457589874619843607143897019773783303629445332748907001383888518550469195975506073130417183629281040552855260341354820668761327800865689115360744836209386913744111649225982717398849078689372638491210307223301232325258973362873280471731313550190630851609400874146354224075144923277129247053498488747851747499926391735933665375684525004623749447886223429172948062875789593543183170211500593852259801342915862307376034311224921765875931719424721543146234006590067905516003819049773956814724177411468740693993458597946499664024934700982615007072239736945312887289616600148650784933919433761020862823344793425346445117236960759060583893378656444627648519362819417717914394100514138016351391820175417852611328813800082150721324063454126984985415754093167310482648888912412833342035602278631044172571380151066753500177129830577458401139673945511872895017178119463455536710592460221206321434614988408013536294269858749476164953294498611058843791606889324164453046084850729915984874905222714604568517929025718211220580944839636693656071747901823361266017118953390461665349550007998417142321441445087327401308481186673927644910366427146013163724242159469182339447264818759413179873790050245813680735534267784114303095345204995635378325830355892435441051120512111646464927211218012704604777569809325022835896334806083059152158062327072582488057683325967012776961313089855660643984326013362968401714839602181252304457447150649988874520918568598531344120304842296718282041967759649765933966730076879829214794650588332256073229782979268275304146322057276550258924126157282322584025187444372396388996062770066806022404676084456908213577809152330226163581334774410997482255534253974040502113826557816834540691134678466857207227559420900048029085041966616528672006934584552652270418365456595973100809422976298161711315602795213715047637838515884999289396188419216679803587025716698231864636567874102576776587883171971682327416752551578749381683747394711496148042963224643999133377054203865949507178578100798948511942527409617444620740947314621503942198369404324226049407251291416424806489084863921182938746556976200464057444084498054683797248093702885861782694343111309840852390654481092388667097355126245680828767375484988281026878004457835497443901879103000537315585197175783367540576541174127642916704945865905902283854504050167233997243168965323700482141603133762585677445028608108090869001451499714182973867884947075739941389968409921633372378322825359909275474465979127131880677443847622229432729640211157776308106744208253477756583175319310066337907736857054972065181415389510047471095172756994904295651967530198168466453937306520012835031882378819052879659181299243375973634964431326552798312701243680802141101998241600340212533629148735115232543961650310730454880768360248739467094457210001765763485343665848752914437492442665774131388153852773130618637714665346893112496051387434805901955172473099780423919043963665862447564149113989838334978097467863093799327703551514464805612456291932998386652705954580869141192582084722124053902841203215744731636517680512348084341317427137997047436075821240256369856022556598184913758746267073484801394955511138951099280835196326293505491465314023300659846204377853579009927870210994601087981106527574675503892388124797965678515802388092866364929834350189871390892806953261269256178858251229324811293182637386127354071109234192424195488095531838084087823542759487950941931277097746753196101290802450285841625297122107394083968903090757947550238517458426100389756536494349215655942055025682290363179589250744536850019363480170605754758761263684756276910076424364524015284890336074797067281677671510647375094822171196271487480158088370818737698273226027571863016830345988315404826170236894258909486119484190904979895602702362693084403583113432723212004262178175884529907108108410945625089760365931807480781356851955119856673368021570826253585700533348538514636591189255543750164488613508013955513581127756346402449969959096753110424832326176396286903546460083714277468454671701913707279446738532638759572468681544574745745268273561399476786805103094196029820724641485412685678542925914223380912044958513272387019995518039524050830504504448611112347114561912460478463706099793024450378086934491059038797545859730527204412454016871324260107681959376957112360868713644372197116075749443563527079490039055226778764771783200023579540943378378468134157856227019857732198201261266901136695158311222260852191788758915711858401583568463302315264855125670299094519732562528415424803451510489035448350235464192907811529742113163439598625174894179154754924318066841033878860871952023682890579057783227186617475213001412772718923756188852095603476641555889841379568515526099688237730732872501342797575118492573450601725387483947492884111463918835807124097832568502249228025116961786344704173610439123805059966845914893453238455908569213031077095107604263003698991902939152642269369001813521916215562528714692094731316417197406415768635451664911942583882098396187337580171278661909982565642853011959679066058328058709106333662529987116009182521463174650581916400090845747213659340393582797309005802812573906326872805365622407384460014392380101766867670434226385469556444707111294035775505032787122534818697412078834396053502326666461120055710896202454050195694096443116921517112199430046691758519757920447852940564103378191389450867913578211755502979972305230737509068847498587366099854937383964950636239831571545627593897106967068299414142457269862537829069374908458738768503286997741728616917357038266963675904970747580090664799055720221087323425407223067816354676563412594037069128039882074806465507032611745197992463524514095877386203726476172879568046314309567158864886477894188110244496569613839119889067508667996242123495191797298525456419930212165779627139104162055803472672881065449165819479805805315375832767610539158288529137835794895174419223719860173340543390212133212151647088564049096359034238722350424953686825065029341967167783829871730825354681270479244501239984036097395652866565224929402511326377483718808433885804267641436482495107247428913453762109618543895320789107735323739863319866040551310493076037923362027602372589982026765236537290050873697248989064282892885297654410147181939701426346989573992795907444096461017265201122675420054200031604450495181457262334552178224879956836414819146900308618244471562924905893804083747927522372950268802125411450165402786165638779228545407134169406759870553177171635577514036741619069382079925728704599538736119215298465711884097618613444673709993812958058416668649052075573878186800070610722101700188124352896795240223288309802539838341176476867111389030156096131638650949778551670099263953829407442756818592982532803624659155399947172852022432381474738307322440722182727604748031731639741860817735494327381324718141548884714185779591529028419095882177154123963991694555408817710216246756580418239828656647246415803468404360674679431704860004450144691035873631821326393387240277781986024015574129886910469844566421226004972106673784901394709997488715034248554368158232101876564774486329435243558523710619418139357088338405750487270602451575984185606235508067242453601625919771423656392196845119134458241517361352955295167798068253158563391156824513641054337482341838215178022002750319040130772972049600331644895748726479768225331960268978690020209056582398483529573684922272170582583402361753145587992872146809177172153493377262066142189879162332631585724632329795920172916097066641563390784197068667031855222738517882253899663367095018012516364681788324993316885843100361527558300089055051910585373122636210966726468979190379927556252285942325831684320922267185449229804616599765166843882222373010568579211658061129747001083489938052372140470425986689835967845449468182631718165053149372537482195293696056609661000236509131082582643664649800443578776082480547547360884736796714650131130240942836460550675649506583306287084345702212438685078756205994611630116742976069942364284721682026544991641234577189150270499399347244729050187342222020073081242007139653455265216455724936757130312023278394890205673948073533754074076729190393931363237486092140846295868810865825318098117316000669161794396177223324193653344519110791849884679005707395937724863617636142124610789099444070935123318309085828739871487889598846559949603637673357772710735707713774435511109258881336949973529565708149408225445597022019913781434722850847234601237823099293479434980944553193942125556272653095663824668832238986294727833834931532661380395306806160618901398392907857187122781670116608676611976586625099846564602150045490199229370124156271957566744782686434968060648635094276400607528448283271075393269351726330268896328023191930718046585940533361413153927910324958689858734805027033815845813822487985457985957993095570400892111284264547073673800998813333681690989097887686963189797674904208462385383268232669502233581207744082114781878932370239557741512601755676134421149226158828192365129974560211786537026106352060856597721757450375797813898467474215528040810867937616645713255441037670352414386238857929202051187113516550759798352641004925056688686550453305851010741217504115528549765932118137586346041571166379526876364237836633301259437195317396442385358444128243194737831776634695446225757380990814420421088972933200961594830449479891227738051890871913727614114544806750150522815319725274027015184762726860566891815646611660030889608462800739947933182076797986834246698902258223258359394200117423677273272376058314182120224804867272656316362026026731169951291713692964645801332308956521463388149332337405722786221330860452252474814106991458949412259605136683610330181417258285811115160954746295673274178124155058361510252716439495016467307094747552526892282458660743308107711570085235220512030800748611379992897131030384530908647938466635720635425576358567937914137546632035852099601298594411317847916883567149376860580218386084567293249664033909042960930483878129254872170200386891180086477212713966359276635166410545752620615977326137722030452171979727781851158281567068940635090983174820637400909647644208127028499523921729000114323069515625732104304614752024958828857200670213552945744553489650245287981083950430534619801905476782274547813319878983352255695657208968214551414246324429108265191035861035776379874732547950430915176321190638534868485782052625952853119307971673897729958933944733700979531071641933657400076860999183094997714849931311497442368006451619414863739524634494312092593075213727673301927272359247806745612362906852355501239986983985228552196266252533613340856940226975157143446339369511844529543231759902643500693730939522635750440372361734037217418968433342609435680169262151111174709345219719938512030812466630131449314990474541472635996863063502519170826895566803092684670210030703681045114789458744145647552362051276370085037958384356239862474472401152094531782366963920336233736454744469143752925899065955744051368875045242193098019778887220480405833361749909452554429385004765683863502805412371026953251292243660806919927987865610235745406122746397596751659903945088893189898882251251251626731309148806408875342154842276905640157620678155471814251032811143648172692607231876174492762271350604611489711562914333561209861451162381499363806921881095029803422169558759349150269571970787794826570071470703570743707890982868107214165066206987151923108298505609729193559036756081981293648446074183438619836281179843781289051673975174389938877074596463654460857948317883388381186212815216435315173918910347425293759434136167613712340582859369142490701601051370114684836921690181984942966637467078154975575161650920581029561659593386172282890481007349331007710535392472221589466312367806249651893611045409828045880938238394525051703680998568423758812667729069949414177323667829099792668979611367677925035434017742649828909057489229015205059189685385209667731616738557535693598243784664499456236403347942903347226025464180308250970492711815014379248797513423733024417089493935739817403179311323738174283342379585981248769539527341407104151121607494800095436621760702156216413086903536642224562977835112979751129984931473257830780126891633859607931848419015677323746577264387792912023258261400431233650833150456654110538797260430872754279798721828796981882364113685274150404852858054734668169210526736993152137262103397995646122736814027373204508951939496877624438349252316276238163082973327561401312921706685264914920958971183237013289653249819196661107628087463354877813042812276820140353794625006884210849831248787873760775328366353297553899723897516318550314689686802732610039374547404839773305707301217919306752967227284230863260692994755798677281098302249221124263057501036266037729950726528983449666546749752209393403045109153237382263381933402885467135944547476722706403275383945261750088138126674176081795994805023487177778417160744797804157554188904112285941058568808821383412027452917586313427330630763332153819478327656687120327005323676737059353946293802803241989571960205766178154017733016360199594011530112944828682160063668601822378841838330596164208148713180419389082012065563830295031100102510994817443840896885352060853021558578108145208706866389017585639898239864100068505006408528670927930762267715050873841735262769558872706403411309140531120036980777578903285111423383093973752177536299694181513962322543388337756195858443149651393313266700759383880210144221808354478080243486818829108614213128347552320675788238763967905892342886964364433820995942511553359092702197235739881097587671314165658854841137575621665027124344529059526060175639247695357519666324989267664536806820632028205827121357741805409508283109251084483526513795011508726554269910007553835242237934679713886443056356473030611483503447703550703168883961391603708247473896338979332461439426427403720395304524539348046847786426807983622720481035922484464470499620773570130457352281958978915666608737532325370608335551274451650496025958032048655573331250219160235498233329906255081958082854594617160993885206868526784735791152671673731148756247313742176465175165700763682569923789319939659594597246920843800370356315861409165398435530551989953794778332897316521421281900887962455519402921891067786744820646686261239475828207084465203888787494885954660863759747941233697496095786980419657153700614066981989802969203710087738395352673916178637931630458511440137222035303128956500736633468624036949120767015116760741667736120313480140026261573183281075593653415272102137998935705368349760170787903384156210578891069774882268883130638498892093292860506973640605142794462124651790466213463752583067296254220790753336651563998326123523377623379381700574168158241228576923248995957883010688892793799749593864002167002124748716692654873279663949506857511599248913370818747965362115417377525982183434274706033191860120105498229987834700444514504626533454368539349102890408930410118699507998641455270917157623174102433685713174606786722491967392861819573328012316485118884810695208734660070325456166005808276840576750610888660664937538041471553299543591695542204223718757077917785925279049421941294713679293330945333057689609574669407607899744341498261391382379974261874156169572310806117093753991735942051103129932841521505065933567027478082927910497234909104133379735903465583651591328184140896673972124717192389425493356086331800989480201907248187439246120335811900316607774129150799458717030668695476946464170385509504287440881709592977479004322826669318435867339354069794172505448847648849731014756039229961799381962109022837482163753603548529629055996641652576436360339633180679712906328030587302334630967277631683933300531892714310446266652963136190529016337369413210985014806143768872423426271547418274762483912413866264832023753589613815084979453302296475424991819933544949841141622982941510254239037720644011232628616696670578216223875457059081607249356645527850286827301545518345434281670901375013303317920506299284708701747464045773563601227888208189650921174002635730134315979987870821449746466653676262309669039089706135026773193394256214345432510258644664332699023703809634328284483447327857935621393040769548099978028122460912372793198997952054965270815209419138786333012201295715813936172180543174841718100129389269615929198575131401376781912771590209672037149182016667505156758680234143087113322612918558605494494835300674256949739254215522633129794644562028228943375029245008907002650188174175904035642305373053737791650794943687461008371457438384767321769856574953699644196791301005906252164102409228739411256011185919123017690918885479664270294679079950183797803548824150592908649648032644379521139421493901025051510324200625676555704587426156837757380768940748948772900064579291059792659130130884924908716774271413645982121809242668329205391079010727230381490254930082808684732452311816363215016091549135122614295340355843951457871309281215624102737748078732321025098039287137970523345169562561542258206311241316471526580730002926580909525443410286572633174529172450191736639993878686051007130767082829391212270878308973205875750234686086079169541462421329298969102793125074217664390261157845529913942953328671988786964643417511091279201706009601286991229208010335528979912051519641323651101391157257204863994616466868492958134025460760980986242105989895432989524679428172071608745629119707254079258900893017686225591797827620412436656162587662415897172938373883322927922857165589715888670068665801094453604008629460230927657285146550820925667781160945035359410524792934131496901347206427455760824365162461663609173148209245058884428755203412661068947548329684506759276220043457349327162206284470239182414608642083785308184974494435431573727769455997109494391857045685508900364285097723549634115826204538501052775997746091817174808566377684370624862640776024719078903961277809179954205905030362647516035990213187180997323333885842226092489858325848299688393044022530616229775033023715446710437350417774772790850206657510813708120057984962782678646449406014468814362719539119108949238814560451655108999945850759023568579051853614247715422534142054185776118769342955659039691493888254175093099789115964060907712435639678567716561967193417187070696139707181227243681708372839680540211543008266525443115872428882046864716878159662682068138960451893447929458470459617711876573055447805722321490994356350662759316371749630356941301160869055608940989746565259192454550898913275616980854212742405977245408753372747375518292991013052324161930235910934185552591852145547551259378738032776044902374320668640530890937399664232188396008317211030996743651910646011293759638912885442671262482731525870407310064748898071151533518279950184310022947432808697900099782728712816569235766868164165096499417367301340973423454771810309135774826661807153328542180821311651274926319394600235453845457360066013688564430679255303665493395218661402985133548514433393628858986945467926208197412868856225717370904566986085635959776195760340020505559524133262213325718290592509232308907073288503576062454725604269495847952851825380142811347874694228067413793656796305876713955931517953247752361728199361021967374447740937881851762927194114760112100166535635653401350101426913314046965215536918742772021075454547249279426093946184313680560745271758980719380606053143381899151787341470668734006594322847953993241516330579400836616411853186688487906260502313748988355792578753535543179887268931683318974241561823617953605993049357896395533635993103870995440612920902231025899457152529760610933501305454448940441510748545513782924681939951852318473937407108048395989616550645023368987297392328293160220034389631780239773940091127466181022018004578241090691685366333357083832782841732729738944672999457170870127605266666732729480542481382444453687012235579283754407596559363513824175311425389301371792197252106090514943641378591328541667505836152399577897071115690185155503098663929547133819286739365344008343086066202980734703583800034213586896841072273102605393399697127162164887669634197607010304362054369447532718484124429859948616699537314179111403671308978148452281614081416531336408909517897343768651375097229784479529115595841755285648852577526313495867524205338960166278702399006203450131264373042084947607123435059114556422233877967412697539574734214746305467238649996961869822499842717481706954272348435583196757627882359900074303186193748746986692379733352221661898235944666763182110183921469504197566137094155828013927049572615297534342988995763421065529302698507952660549392616026784925894139171704344899232397717491298961251839353827523407594938602918436262409075533201318946250168035254487982085117016048776206717678369926850546993064147856804092584011022988503700558410176546363635985456232831011024900504121793222794461964303528870902346384080786617034927103153856415513055872092480557343863578458413606868094744279960831130594230292475403616910593550109338215999997829705711467821856967380493525231749772840521755604645031212867209347795334464243623454946264986711770658605825195393949038561446367249457095334223971290756379501651981368660900841417134515906815913181792552968632866854319104883759158825691634148926928568829695426905997452795122716562146723918723391110210685458959513978653370760242575636501979984119408930946100618112898921080400551991736940391929516056627581416286081807672099039152400685226760880064313499607862114028891568618846485229697210806033265239223228402378407251456941849460611338859893030239564474468569513584960099832993805099005369373162756608058564424781684692034973676984648992179034674316186327806359826478167691958624794297545330040479743256316404667597698048176352970015809222064005326369680789399355776262954101870416251554572354861919155367073837284531420287880794872990419859249471473888393859965954428185310703736422609188933102222931926386417938498764448212949061840869855340406724512564297317748514361727246524008529496736274650352011315392271054082613919986831445796875463291179056023197412886536094363305038418558377722855554525054365550341088321810552319847171429686651907325049732259103585155409658276661411046721659911855508186056912329459274287727469552468862144415105219184521039899195895781212893242413783173615623179679951831854963316860088102918187703808311424799976835110805947937375844929656883071873234136416650963345189596686031898327545824037651392222569301192145151394628583961776545216300482689459715658814959014917474733919834717362337954015231950362671315574620288203078332760430591033988236869155560955205240629818421587606560634664677944023771414294895679503840904934713855968991946185093521143143179342800952334278513355822844385569628328247437186825775508385864637468236555513530479750471479852696291990407632497302808327693144058545519795146141786071839886600661594888514292976632157903968025810267954843052705576025039067406440824418515408572916615960799788029689559047247182995812027049943441714325373706269781968590411814309682724804399818508843987048497136889190504544528456638965114137092995085599698982231354873906798368942060895278934598008577248594233653216592925226029804938855319940471572820427482258902031737066772445807006585424194706776345593522482586083134466543613209833821962354523715949253316606603376672018117295305873558179649529153620213815392257513148257045281766991738241123490276796042571183147297252715974788879185395674953893350051048284269530844165723434590074014723192092635444373068722680322643264298258475541574501968676401979291815554729659764421312680417106195535578441291546695397627824929309242904059146923918628644295102098112098028858573403764333028485024482848800146203877047006326465481969902371539764704478220143943750649962771008821219494341701420523116426026398105679468191603143440654573695135798260819178480555737247536369358330990128363737591190374768374490174066001615011992953338929486996448835027858935854201507826714816946325407141394306056789361713809732989992825030016689000109708472099287430433990058297189885550562860562089866121699485683029760879732608167595030150154478725713799579257832102823805212192465979836270347884522751840033437706674036331155156708603308363746281772699006350813578758593509911355167071795706801892671023714134128365004355858891890303791238184248238458442648223477484249218715231412784231765814422967909472363439490971195548790670245763173274447460390889703134817149707928475751830386583471063929960821533384494139846570034723858655462181507966945220799756393984819030485874558417778975879265427317818566401529085970659901156091462198710517029527342348242808158389515826392732651087114313239502895806898873814514622343030452930037516742479006350808515107269863066554650437247978102702386125635842366887703509825481549925755326952564497991595240437697513696088601765118407953148978220683011058708634745468054139523955459079812950658771173545257126514415643178463340992104113741297668456571422788038028290530585873956727198795953970600924437832349856635606025287566841009430005429306394499634860917481485955120516219506199574713067947469410161534972117565980906735327303206223648844220781155568658738219506121605562051098857370125267434360198966509520494417347796028536874596541723708619260328383274387230948373624006719075047200116337218992071214891990754138116484622575772179370956558372219045716837702551169084800942493309335447517986772904614453764060794908152391583905446730095616702168287865581438566794833125386971332543591601731838297047345949973276372727967341079277667609816482344302806344620268087373321385598038514708268073326937828655469804368547784597082178035485505370754844414043729688824709612000689933810681751251652921686859628544602832128423299922599608181238210926121582178467658988553950965961813362075707740704516776148453317845923708722954168435004839595220918500088619849953446539157094829706201296753437610457166237588732254299090700948457336613368323942874313021747922559409983243269048072400910481646658884252271407947442887315347038197948036500271936802288766249543601456809650523986180990565793701091498204015019735948929734470468964970815924096627701640642796953351262965924847707428884667830002450024598836028437183231105868062437173500245622980426547210537346477669856300760968214937097304551922475336176601642324820745934860405266129315338691746737348761433178289154247803929685906241857348801473972133195921710453659973637022013535106128068070322125468819831756141320517953028384179381660495160382681428637082604107233166715986209062328892820440555829882265120069004636346619533519031686906158712053583829025399655226835815848000095571715979317614954236526699146405433244891033348115268261997758612767134370286160656043165023487568163930738933140885237301065075502749039723617201668668735818767029656355159595457528822371314238743784249243264998746516392424792157581630448830673148294197343058053712838287901588348618749816961750268152543567541436671208012295671829125621232389409470592524986373747386423949386837875275374578330726433740745032612622449447797360427677422830781005602901698546045837036093562693321583668996862440626315246854777522273192905509482523621952849682887399298064595496458418549286707847889386503875445166468926287848888257008714239756239505919180722394778998851303237819115219394516451871597671918256962229856386110868292345291506278774925121827584628393458154843975732043879142404992062294019348557512822140412821833240351088407600822492222196425117440756978675042694740470387820690838678963851242037300647703792060762244277185693890566013138469060142641187638173307610523196144771387132866309515499220683356685056603604876830800930219474458908882296633530583994005116056107222065071294792302143189689824617163584725815227519880898746420044906088306038723599403819316929417116429775718840706294172730281554938181078869953928064466726903143744265593111322116693174596506260290823040020844359746746733165363125053253632899808254382858475508687541064141551730470310641123596180915094415765439241684619764293837482280189040661114391956530581786533876935449394777653688445020552614161115248827855964642723476667303322595113531422634710665599554315258049545934417813411587815706418651002420353374611319452993826282211336957152947618666127229684977506586959772354342719925720503055318072460686606061319604925209109587413074534690945640150228753706607861736917097589490177144768711189185290941508302527853888933408475247065571721466851628354170733956148204299960484175604979092174719978519713280640854121230943477370005020083914805167038129146387514765606441984933227897592524448975775335107117580289490892959742244320544472785827956465045706285510133623741723934169801599335680671928108536154621773048482045788928082406892333935845878093105169733132416566265767978162321620451244303424609028470801544468539036419957441175609461569354157720406588613846336599294309750670888446028097214786287996138087234665895801730222301573656038700970382205083806492193823154693376670032431884838478825916164825664208072730027867226941811463346043105042416558979044566490256095353542935391074666342543965032290006812828749197941471605337221820055108042910811941931452116112496204222003228522506274942252466741177339854794281330492872262691953102501293106258073399427055806302082558172808023406057985888848086363283924094404299660822383021260503013683612405806548055434678958560697497147843954409848649581908617614694346614737593698427769748552277878115639325845426275645143520461003058191632369246332879277073453216496292293441423613121464011794108289444695631693021271550784965856347130988054587168465623631146964602277200311965982559797888810398563444258266222546269516379695200928166857986870511912104918426284574306053323027915199040247921927823333354975807215659946480984737069662983913667445139859623459388438571456629235716136133980374460543224313341444665958647846341357703026792616080466621288275075993450664730400857698043072453883565979117097085477900527391752319771899371547290130527023037029360204060400345157554884228273402991906536659402419730804058094949973423860357061970145126724564215294319607758346023153369625174718985024192618791295871873406549864954522620280422635951901274527738616811033581709582699822079271370369502353766246707825964202887214187957794410889525745574393138562882872166757888824698425727999028216778237268703612818243184612519521255164579947165799450804403350992921059673147000082102060451838946207283629552306793830791427130328231527105997638472841188300988992364988498014854807155751918423538473362438834861384206734319944156270552010835782652350602966561420738706913292673877126037786904849837859546180242512647665450618595170755981711588452473223361612745096434373279003342228611497339705488752730115865189544383874266547036598514932066583377006430745157505459625701940353078393538233957052525215572129106390915129692942824559396724535275722662335434357295458868490232592755865558488480943692289790692551204203371522373131072582060674479470711074133578816356473635902670711019395915908672802481660981691565987554426879800798664142073936558720829708447500401882934611428942767671399215650077255965089676112506294322656347547386322799334537612472005970133258237677874203169472781450508876634395921286150975217055091088242543285377112125022410927094692913984832761647727915369467856176185373991245924442018458022979312632067233293904851041642083623674925812355013771600084800796964421247142938219465268423470228211645913187209074380556418816626286170021278221863884186562838996413008049252410197362740551181948472589732597792694797880150172770361363478660465484810966661286828176152236189776671280168885930539547262530507517824354766295483896117021973028500507923977872202416996652909125118174550374662794563381010804913007337312006895572063393764369995573462214740517502914576280086718954443159052314925097726640983529422658918071596862677182793131794023052507372493129953959084008577448588047956293227791192660183258701819100308486715336586168396205976400806283898262928202461412140021354241003158865380624370099199455876898273458080786676176693291547074807011341586521063144784919608898569204199154748224986400735882306361579683210608632412051920221899048990898695624305281860591087933854713881954911012348075080515368997174927347206908958695764146235735163083131149072532050210551251729170344684498737201193881044688645500580682782435854824899942625610689675980177535335140265143765487926672063406913692886061803399148372847276501707967046162182306304727986821928028038620568957425080721745939743574723230173916826968087622401883716971764193730561998493408421718031626312009210368118893804527631982751911609269375916539457526735188377791171553208490524601486891986497376806679910090227225064598173791366010994834892478309997770006119367528478786901409481169849609014809518902316321479300844587745336559865018373836657310460532125411128363747206818154106108139340264504034808648695543058094467576966791234793464104667938452477576508364397388162989881929617054400442275287753265461270240479420645773977644070169405677430762387948651593856133569491754174385556078225002015577900196894673365875953480055508775959410107372174911625827737524678572758813053805022876832251587172729160760672007019710268913345290439499454632359998227377445806923478830929593408765262676305509180652413956396749356363843526213135962582919625554850083296098592730883351937881029552659530343774386690883418621768597160041462785661243229323058895692265038195251884553449421702898645514771059205300070529224342238697028649869579874804642397414529747776172135333001187817270132384185936687382384550462217678611130897489485268636849016378943322386812423962106900063492303548589103799391929555049705463507160157480462231604797921831209211911422465507191839534449550841431206563606737485972198708557789466994544249757434707483482772175096987410413419205559520293083186041391621908180535460955193836881511182660677798504552356189788703484747985338220292098254020875211692504817547456532822974503177356935438468467080883017378050716489466545370542719900828933852362793483908476282240986178059292137379645523796334055863716057954426809956874860397855378793157438875545492876038741006130631816705546204569153620561393348780542381874033077835058969326521304038328426844242592524771523485906469049790790195301637099178585177901026445015531976770221644677024395240845482523914887900885955498174393363872253233401498006435153861797047384240265857275899315005651377826748989321427763069246683669512758543529270655022489869636910973745217539080486012928901606228073276990127668876591522691369057551976929754641856862756755677037378003601516342002969408853255568008097434721619517487895562404262367471528119729782734905281284865562586613037098486496203295587371474257195904273074565140526967430066227466457599199902774836084644987598376039315566713086905707617809287819080408695027361864410190226007328161359180954902406370535639270120949159842838829363096423442326594257324801197403862163521653327339818353646897902702346040688835504271139073919791201087027915994669759478661148893724841470033716902082823212707626668068525686778455615367098194804615912988702042964418687134054309843757660309560100590243154961119668887300995025039962746427554145066691064450115360023456380989039629442242168436858729030270075401579074473966625117513098455156996636079907558331708948282365273505428289471774390043357325853042335415083716263166936712366662866527512285168479749115180998970025506546301457211104003054204091048097038864036352413331862645118141036306283600077258909617694285960086740410384843119220842338372634608991071752261159783615075378476164215176778430275729512382167018677434138271825646822031581065685203190407893168308913157722378540379867505651299103611397526690501723362655628020108373726865124774657712801854238182669943630726101096321125174371082784486444532374529286570949106788722054154402899965754968833379885034078877114371889271681957507733614969909203326599881086237432221966224779006989316309727562510053532072161045508928427939732417710925137416969843926337518628591210677917999407048845146202033936434684272114548485180688485988730437320861011443356523859650262650932795173107850850386247756363863690656500150121760326526863228134948238330473966201126803001921261405509959619226988125987588552181299380379461964029993998624981597323592151410815076308515261076073505432425209236942941827254670407781879645943149113987534598668170218753342542599940126146777825557967578621540287350934716388804870128879660268092594238885666720354117460966681441759464476381425111771762881940410291894381869292713587936359600827449341652820633788838130894520785960315997697885191735351607944981314955281670393023752639099604921050905802799933319380148184159189185696335139349169850822995321596234898668713974191051684153200310137394597991336391752389903818870181587374581645548651622188779078776777283322481007150680271951080406176450851345854044865635075816785597509981637063334945777226991695158613557476871504872895170581633851665653417999606707323463734082081674811790012707305386753787787724646792615984210720050251366181791150154052864372206477705889581950148787846966060498645057242741317824275576256623217743481679842567642986019165624853538810930791737308036619474660309995471144035625360669011750096918974415458892355352182739617169844041705021713794213297305773458906488008298800332131855645051542995294783052898491086282079892848683196719426598769347105205544143751836884693799130442999776411052710724851656200721755664536476212936127855120732377255490771548537644755643760641604237604079316522387524784385137453067325050203536771320215034806007607470741187685632754675260966751448317872759490066116152596015524529909678055184587009817437207005779873967165191566217155848504205723808209844248106404188539112231511951381494202607207353968770124854041106669622635852975265574781564204908183252377006792539339197118090200886458235998721195052153725147419246710763451652536637057833301616145058541848738090271409312827061201636962879023555793561397913658792704454623332171785145607717329296055231827741585346431349463488658227030101243102029024478401538851736932528817590093191685335367135950040715897614420968278322082522677601568982183888695589368301772499571054399325802692086345176497291558441627280623679315673959440777578774218435261905581482163612529468707405460055000745027873637497332230712079723370388301851242725366018530120995382856944523318882578389563951064494294209310158608802090236787820445935777002554196799270589384072312971604484745122634701318757114473297561736746393791266076609578400079707006452626442562966566518119092551020266916823092491018700157463527063801578022225155116098531528359663045268712016685200649557614832591382647417079860701477299693793361004537446631664580471405398132213684909258332722838247060266614144870259613188516518784243974812914231757889201266968484059822289774617669783416629423575557605564130136571845619844291562890285126576948092292941426722967070263958061838292559744998134497297494848533752948970032792425989206820717847716493584081913811848415537609615705127932841639538456504569881276665542820129238943771614374212225348453014877799914151287461312076289938469195548132149369923940991560568727114722648190891245820319642854431010101585448845352567024868391134560604271216162053690863008920683894695205524319957069845634595777398261838644023180189778550485210244091582161931048726914726743634019007411859458341819936496380307955184278762084630943855338966301367051843315517224485222099177864069606254088500009338919463718008935905310969569373309411373224168991552316615334246854092330859683636823601750875945500536692951023854364753772417413422080617859282277119058131028742120198327765804581667702477316715804303926880575047949501556711455931490505595216771441837772171416599768687866212934853025754237775429917769336062053933794458245462596283435585445616449646117303631633500717063631632366201301032845061262827634499255988928398365331170214953545377767183808327334811266445036750492649350259333971611637991419764761965532052362436114039940426849490996292150898541357794631251705634976850372853250471546418133856691414882489309419112406290335578252201685865126546589650502849924044246797109828715659019548119674920914385873049766033869878368089431064857662294265651521320962251793034586137487260836383809539167827010997600768521256098365400708565232633025291634853916937914649725135143695398275294248412459941076424338610301738385071679032468388335794131975219396777405509927753292893705822339896968103940382296317049329122490000467076037365901638156378512053405309360520984546467303750746975889040862917730229334238189738859023347638122998706377307543907802080169745071464255859305013498622133518742402531377456129412042928272637440065291567248300132917366120533503831532590343030671540527402713914749515964129461348340609449268836685157626614648052432083081325374796320160601482494234061131736899236814364429250001612046966904875801569829765489451593122099891309997724481292676638692894747274115276765923380609390152962869603292470942710999636851684201921318762344031823087043521731507837569537015540819426033373420547011612314297434543058435311787661738596267935641374327991898090180437575277033301763691292986193557614049592890666691081437755548073004269657446201682354565826061054579533481931234260574660032207115497652400000759859668044341181449019152835357714623207485172414540860102875243983311355692054656535431950333584778892593697792205600138043049637111691558103551413048988057857140186064851469918773581776897375423701019961094042385158067353038978024810077600022814672136858373252592490063943969057766145129312973020925466483603369649315185708296474659564543271533870554365848240624871706480817045200305668879638567787110716685676194775348279325815243803994094319160342952223387780444124807498102204714369106562769385819143819470003561940604802001946126914019751684419551943028958254556288378874006057377430729744194169048060273207324668405646958578341906178850096690790237524883653621983193162818524634199645536071221397650294942185133500119654129991237407367037513849314288976649503321695644288467341333213588791068025078985708872003841582077057832823986897683412503453251311641408952370731971270041397226402184385154180873473719437540592122285376774995591262367321214345249612532631513023220672485868084891216563126176173505089662120890838593439397663148239836034948560223140095882231695598621422704478107756900841116641664158919832316721360298093883471419916748299207139451964626382556367176881374783425830583248083070729982270260024456443879039285503489988732403005239585490342812042339113484606220673239510293342824833686350980827388394250266810171931928787411833244942492477726942679971524686604063337503571736943193328422698624046990175431156938604541659408083513560145121569042300928825058621777563907536410300270040159679676746862731801135539192036064165873209352756030364114689678399613844613110106502458108923366475887823400947454876503988468539925928977914847344446117224670383198357941140197565153564722627096954034135815966735385665338105172102071624687245879932305810183843598249951120977889303294699629900364872106413718230076053132039730713211366667032960868890427782345169435989410392089986072860602762327174357328765254900728617280451117837187449867015212813707898975575533730799327465104164538015113472387510745224034841918226367927571089632563156439379742313505894750519177338440995311588916174500443069091762030209146418035364322182056278972193524230895209700471585587738779228075821543143294525811986994924204142235317802850022367980952241911088254326593830830177632187264635071822057188208252203864742923129779181367532098676243138713089679981374962882566374822965131990385149891076010239402564863922829375114909447707132908364216152334902282905068446859267016858680083156768522036573284656649400648110806207986749548616226670143032281180325145656840005637067773903544457202463296403985273902496745428181635105049005966293000295810273589635551878518267909171045419517860535628732955048978492739035311738938066102722516406045618320265135503457294273635845025131486747839178423960470946555237537616538649787080232286834082670728284963420312786688935178382125053389808821049278733795879269737233168796701210149342248554060343426931349301109634541515913619626944864321918195839725298616345252458096445837561777760451333995519747749006061760472123884653175087715067673224560737420895304224804946321421868380783888131206046957050773016994618158293872970827898671795942579811728787684973002900883610063651607610425916574642338249900320155080167718727243419408352255873126257556840831362767636645214533839357541856951274149278958422862237507842274572683601907622855738269725522890747321570102032589616178512928378819594780846933982069060653731608011448740432254884232764511864938357507638602341008983944710416550118662020394358159427183787932356273022900493672667302234271424809632769063589359181123536249300563722172145297947533825294688016302348841967337442708449525093977076174366385663820236187150201822448750160868411518138398713660100439251958096781840662882183784618483028143594514148600605782222806840896030050344595629391477191197732944575781547813073962692203647393658602287868654598027817758666607714856810378522347263338621858813778463999036446721225545892119714000251228260947471111800157670704074225790478969038307505886550199235266799575083046517227870444162874345128922567466280593147397312931152755216359838825503315611883614478094980611100504925753645348452715317633226770395269499860659245986575492065937011805050069033191772017842392756863686298233992357376314556328430488167256262261763542735731912856615334644024147125336140512329932983334148007792454867987872907271259648034605461917219856272826192224555243867952413262495624517404701466634539687516249548310926771931684535800750636991653225108060403775611034409855956209941437950038080034642909644473526114684507658197492410316117270288756759134068267371350428497513100084205698379708150360965345792146866202535980413698063775360708678171784979242205992893779547981985978590999065196255617799534745157573748913847309290140679367372693013703129570009819719546062920102643209898485599840258860815548654441730855934915466006155395024707671106372727052398914828216895958165285464684128527027353745468987005258569626365286170980270742036288685944116060636183066947708495302928426548002921203665064527417481905067853028092000036285315209303071713697420025400838166092731207941253291051214133377053489804054439663926183333146205111986865104313323460740789939875861488388656558109137478115409771869707723850840642560071080576053640478059402093124226375236905729123621172643706635357035188067930903531801602653218656128675402018982382919015752950534974215428592997750266329264180071446382386040253046282042685201989440721242849047129852120359276781777566067133736639122646193154834530824536201609526921060406620494346276642097684568597468100805353527467149950905844402653070844848972953122048058300791010498952606371330658628543683223388786783168747941754182661422145805343482738412162583267036569842592194996915876083817153309620331811256766311071175036306861693354441140565157152452366512114637443572733393927026327521728864533107039113955409365705297209961811029173809769541067858701621034989817684617765866851220327992984660997492909250926260260766108471236055964644291065199534750628244112347720603593003980870455833082050262250432703719971193410396184450611197448888960384587875973509788660685660602605553704800033606004212342364086414368229711311613897515749948088080357995503613802873652288301443158440632818750672477918976696816136497991490098657639868223248858209911637463179201315954017600978179370665061148413167161595429489155696027806295252862158354840616616540908990883224658215184638390120985033642905901486199248351462231227215913392010820083828654307137374043522721276226319001436171666111728155740580848455685382094203062314341485659865399866544137702883989972676407622483398830705601802115844362393508160587702097315569242604594598145195521995229809268607905670897184598044114563920676304955628501072375201846884544527471494325733148751749341607384355502493344819947786077902103422416725160318980545588746337961281675040924519809520534468746250202262064258550924619165202033867261222061064771454772124072622908663142388944905698882886267912797802074351006016584267969688756861578085618816005636048178254066023106294935316210198017894049254971295502013987636967673827125436028829436219421942201295958376205345996926226294038049658987646122220201987529334148205290368998053796064936487122409476024175361354079662245750982869424506473598918832011138759134055494711552318390295990479654728085952205190210972203865794238171923395164846326262038736664586985445304565143325945206081438612437826088271843691807096718968796850037835304366831470500234797693878782714904548635099640066097455447374893475970198761495667261019660391431808101148700366106558713674155745860001677262029694897871818767143328388254510999562831758490299967473623327325828475975403237027768790249486173013693851943686070200249135117156673256143125223683626507693912626155368598959330874266314052456297379129451612184923775026760792994950894531554611026636718038274295433255680501883188359805866269614598313461283579334778441185936236156880551028137890808189250329430663602932621293665894842408298234971860849644647939241157978952961480192420304330608116105093028495690987168554188643422902642256870315389473789236232166009127228326655987223067780944186598274576559043644245761568195305273761812723040346449743324240986686487663183901230972896665811418914571683847504334908795223602653478889261615707380747651115463401126122771799312225610581120229861299096430169460117698436097210039408041545369489599969194248296738749327151679336757782700002523239821970570743889286169281849412550410211656068065874611245850904130720564343991139197891888657385632534978034652402798295370116150204314874121535535444138797946476468616063208614176954784761448479197772641723319931231449508690116442580724796941829068775766169180404611668721454891396540159401359732554815858654480773900130795959092578490399477730516545081577027964586376839398478246785233564233075649964740909462652948375253457683514377465522606887914683770988870750741253207377255464305418553317938276112247233200553295777402954845920100227885380147172075937111497638238963296292361737150953864437763788772223898304027403131578911620492349188319266786679210563840779220370921748846945776505431793988674231407977528166087230882269964691593778823457480281870525281232427764047589967051892409045032055883684431406616040675724234465686470680624934156126534654913684878896131216447183099700862814224870259916427704946857559810219955093614049359482711897121898009617557949001890066685645126317685482896758297281346663272325249264927143544765661805823931223254517112578128475358907544963443869496845220112923880756122209812363378824649775546014069859499320037547815706623604779472168256495985194455901621492940519695259019741697710078107425293502611873697914383654334824059449927770021495957247126184962164377111550985466827563950973033324672269532778430131485665273894845285773959127694653900579354656685312324346125395424212841409524870774463182990045711920121993504166751866549807156118633232179553223546313907181060474639654962852061464214642217344115497453672774957595344756188085512193424568149940882220231580288117091551268567759279176799247831496914903740062680503002099382208957724097180303898700702126879938593962145218584522170244770283852845714457745300328199960122937761248136627150983210493526068135033262801702869465362958427359674214062100052959191759529726407679857730340135023978006144751009085203920826909440418068260187425559792400069879995313858230612249926961217651351292041849514550735145787551967719450989167848721688940147157433542020664072570269031161353517635421826113440276814367414899435750113895365787521664042040329335127359672136044213095635980143436448974201135468300418353526716009273100200341375134805350669346950255850120157332959106423997413089090567216569713611853211271408444238034388812786041604282827978654583127199448655941726955852525026623780144128318068233758181063614091716954511771965889748072306810163870613854745349372973638551684418367278321437662036421510848314344561804646889663812363851107965981114453784630067060611852390873113412152658101640443541075898194715147828880591920926187968241364619073834308475340704310163236087866638499453743102200638919509107572850009100589039245863909315969287804268789372071404003171612840556956358953964155613116997066093489463126428020675536898438312339445371165059474491601172774035947669679023499785244222802821666521726651664126702453535312026071172884021012417676911634756939322647202728651594843573366009704240361733603340374944598980258076038378605080498733069205954323827089254134716627716685023613078704101524382409893413422804817755444858605663567808908645326610797072697001825317083274496203639420358741913191901407142899618768826295343774189943275030315290427379833605221270008119751659280781537378362323859006782518482858618292740873545699450161858153561577766552146438771841426154061437450157778421192157862858366157224263788044027903951438096581763564259862521931510145310537264499796212797031302736464987309736452095676081219074985080301783568554665532161392890507165608084011410707746964294259302373330760366929947266871472103410024382269291431362566792537088100518788153101434025686159815400014396076632319728727015989408257106808906903205022282339187430259858210813624420152501787789525574012113247153218560238647997663120979337432071852881666330842374148849984612055700487499517083810419225766341965096937757673061919211136451030222853612387132948659264487472027676397657865629112444870726809339253663356859934281148188637182037296653125331599119566222131617849570836167609644675800209002908400042357829970178678682483748598640093354979487732798126500792430400577553497894710976627853445319228845949880058102286299773710820649752191140991354843147097303313518137009492989071641985695682862439794715295607134026551950462738803628759442176434463299603379358656624161528395827892178840485504089356533810093712489483882277277190547648739399411493348346075531927699891355492061604859783855772861844353134114268977777227482340312584716281382296856306850553206828248679530627259252203538432305502607224333077639357908934410809297190421146256295367164769297945102319059079199322315720671551653422914015439423461985226704642028114968758561655320276517536631056355078331892996689945646503310031091337848176486758702233832672151614890517872938862512410520180386173421224207430388365167122693600543823134576427055443133415586893907573279990600833477017020348439607606980515203846595456862327741768157283073341180774775764850947931906439742369408940614608763516763693576099904432494498770022340246100394726830930736832890097164254951571251091454269939529291615897747897029463076399148009297818523922610041370749495974995422076651665061925468923609910623697092281555117290866381235894720899588983119516557413220716447245913591346551549609690462053616976572106082094626929257914971508175616628200645352897581928004819269755474830546042575649235542090032873955757593436086924742391395759869907441366329634325541329912691812477508564435616262120217539943370393824442702406093304956529347838499395369233855180683646399812850687933470172348744061618591523524078851753497237699124962561903901001094829145825275465916020395763214065091474461571851254633875610207213634186207976030656980011194749149635139152633898195400158535306773920790322295861039227940610942381890885824215024525803807976180873429233952467333717165765005118014162233920054226066371059158400701722501856179447731341882734041137793872631875885460822290003458669018182611916938285969995180209182211244731011865413680113368002406381680791257281562852836799876087103755530477742107387525772932852765083225325313062910256847301137687855780390926783499519395211607919117565853031970521882120577345971107941925854396375434201703484518735975442042309392480944626201023480490460099748056777037049279738925107341500298660283717079485357360536547661641515513269628109841485639752855460580342075496272562391197725818191302113697798748995957784093641596576484847075995919684992159404225518085640653487704620825131517198362908909234982157646576968684916998848839434589372106696015456412846503028324711668893908741201557803832541772677473725304571900293910455344438714307769532098207518796804018581462057916589538444424262830574607079557410363339897423712951235967417573519698736745330266115100572881724123662102265256710167455548849740397467047634392585316806522890309205111469871861064433937369134650766988503780987978806791330888868177242041381006147225736032045222332518584646154632641882360735406333348980843402208878694796554880224079362594817095099330659550188888880694399899270943002633962069283656982620918352259447240133673049999135318580043751356835988563983350263190532517188315674964894689269820265430451488224939876343471809733167315666695575951621433326073560331047833750136566063243117807155932777593231040061790947116214101221208249367880439812924764132276456069430859397912231460676258103214098203613696719092315951445025797615278469407173950437701078838111721683924422987902000719561417994812788098433327732346187326523195807347675054566130006195444778203460417452761807333977896360262839498024233383920796665141079131043540552379461584576554303542190301390165066258361942430081138569466744508998849884011029356108208518280547890704212275378584557486262145865571788911552455158565323761416815035786208222187539959533761982423600618197093348709695200469353014872333374121887235954388926961987375279331584880494734932707053119136641222047728223512107659636396351184879017815086278387364218491929079813975665647238770526157531760917166595960169034200015286365505886503058294446181843759212063047446804470876224109252802363963416553176474532885495301427376997553043374748312513540690433469477803231499539768220010518652131384768820162405767264430264367770239030409753183893264479067510524279624560785988227425299100124799358169423923017134580627647613099264344571774701544495305066180812994331738471335886726684956096516919605944784024936454959981885572868482660210671175545413753332191280043446815046790195481366691113755640061956646555754750618353952133837902328709998522646245418036232152173165723142719599443786307057995996059475452192514587838145614929166894302191614981288710265054707861999927703850348788835840226068202005327867761015274130629449158443624778953001687249808844727963726880087607405796390552229047416938563340515734673236867867771861864654500191093607129364663025089908674422172353600050768265945509498038332193584198625671654921182718198774105627126339433639668075844868800778006304552716152246804631893984478702086692739134733269382581552262526590156370418077086231560849276044610243981579762147590523888683655783795790590122212170056670498838093816330663352119184612424228561441795701378922214822961569634185507926622587834927986042877685528244737235970806283264698720565210332674993025087647771285144946873943525642584553243163922564837894481026468159608928929614009750816125103000871820147714464963388935241148842887616301456579338922389546219642213841693657262860084245815508221851652497432857142088499417420879347910334688568410906502248068675618250508273656768852916613442738692126802080237148931204251279384703858742517491569782038229907168551449143396384463328937428867753250556272974005805881975254007920657127027374804174888740779698483545519257650422856065552039413259528626262584111224231350516877867989214538487040756555297417084216024960362435203744712625719989057124961955936713526361959654382688333999195500345874879118472946743676451035952720101630548972251922562935792656973920105177111042927051949983520259310573479609945945519131269057160167173152865353329648029042064886103944170383956490428746270153605886040156744547843147764808440814801547924367756797357362864262637931825407751731913219498084585411817163839096242098859633249124773288581475435498317383217958787552985453668251017040455034217628501768222646668627429596418585681057692759966673850683910790791097942430749189132371138409288004352601524231813348615082142994116762473063038187829354839631133308201721462173994028691742319940522980205901675241066493105519860038411488886507075816392995736285116575258882174461893140824562301436962142382844799033512315041538194950506182882134392726656017533150232480354216861785870101811438460959340146391892072863292167287717045394216833003577438511946334300140631818045872726277019563260984071423945779279116255213845572632243358650866186440594284257094415438582042831664582259738291096344205133048759718232479332772068737010249736417190387715979005190754664859224534416214569842203598527031763044114174942218427792140025567630148086749815357106253920327832959028248976833133102226308286129419709134038937255581935360568018801566396086085697622892006980442710278195792672148700765868170234656345958035414544310674626110245096594655755753232207876916255973262356891941446775964784443639337537405348569253976465846901423887353776197386317029730030555426300060116379239528138395236767858363729552814388244690393855525800777170957289517356079778755038183227073855059296545508826756191034610844713905416858987784985961000146513549809397815961759844071277676782390347498766477567173814773241693481300465812826303670985440314816880926471585379747410480228649861029309045634623163406767389114968364560110870096808379025315327784493623049829356527643449060316779071814855152545568744330895835819216142135808957547279555176821841475347200326521688397048057751091615052068033422695060833458498144600308693038456987806871627078853356330600489420960821175740843150983194237404752508348862917456847182341503445405215766524774727971124683791219966951995552967960100165153235949551231973778983261201552764028818922381933439291183361572444665447261799268531504504052377175744627233400775271423549385866526475798530782849720469225915401679423234333637847825518990871769436213580962357199826220852723231615158671645691111883085406909807282908453115449989158101024501645795936416901809375660895476338407595844124254894689284150736255720290356479055718969954164397120802117336003507733754580050177466530470865847594391465129512111563935916606562325774405475309746114280144671995447163960024174923421358015192022193316494288378720705512794081015511249093542751509148738303175495538138358699154669154618243563696714316928147443913811318210090880997351807695403436263465935124540812685925604186678709845124587303404999122576874448698002527588364469187318637544628254485243963373639889120517905947511909006724447823341739196840922165918039227849203861513283853619950804633531442194138891812425644890839400440489069357441176782094210219299771738485657648997305530546770337078728499575511391915911192478309173955958085078266515671799764882324484554957321971501919674346074316001505270299654274874325949404654421012302603563974016524507902318511641386471039827769630888423130491733895444084348947209757948620701040488275165153049795121186137646843873464759045246773579667036258682665782260872668525640138849803727023732552071989533097587198336873435793942753174632052916160435424519311350268416573716908298980104342401387752803724164698817268752945498792412777450191488965992498582500817432421190398909224329392488262712147795173341704934759662610434757621774132499252880993417815706477297218843594268777091675815268581742497372713769285955001999734406180617989518981602797408952329700949115695371023925677885685042264925204210980533293635683379221866951728794021127384626069165360333890593079489800236940172017723574079274307144544248569158975266632667294849636140291709438258889393198337446126454631458326577458734813955522698655350250816264677415843491888479461141167752004630678378502406155222397070358722484230689225112774108397993864557931330342962339339379393160117216960533040300565353852471443729401321295587524586136541564779410300760086307281178887586076515246972608206953262529172904872431380296081920077370248588546856705847355318496531428068661507479456286489358004119063247243901580748542386704224733832598858464428487419714339949832378750500599958363053744762638907340924308905264241401990687693329848656809617125153911095793015564670534912651302964535711569917904918959923828906048977674996613902133365873812303030640768782443696325735330105757396760574003945040411357245960458095488467119189661982198982994133697413089984334748744769418506940807702880461371483733654568153300366218119180005612788935832893943475169346606900038636625827292032283977914804787447392847575227053345810757581336890638256771340399523295023986417965393360304988530945648419833625279237962646152054173213299603688626068343556919385392405215300265757068877358085160814122180839135717741708487430308240203367457866697699194286032256073516711324773107753353575281791009388242877768937582073769012176722753159877056104079213246833999307758443938906486174900753550732685915322914597332496475642225596504463097119541664537360558467297748153502654067502564092254444525567839146906816271275019430844828870149892489278563045482419537805657545883172028156733189393526849141910631764282770184946215769803850848056113062613558134512789410983782197677270264423901245041333543466611371933644138477997743310597380056682836396253455603655672455034843226469144911057816670866139385531617677914045639301027604024936575746499579427701720036733383142524296373727272209135326072593288118387444898926036233913155536314334868604475295211468557599611339453687598560037992183873318367028479548756648575384424967754907006773930596772013754272956015172644991407360260415057152276653272595274816971302231996918153513761819375034696785187111798561768947714309757501067450750965819352789520803333756424603802204605743377951184475050371573643454370269055249424924033681632018034373199087062108721293328170511581589885140693021968380175853143051524877393511508908049898747208272075087107017470153984203529681330728987840569507670420728285578768344333366194212632197829718417279476157051125970969903476555823258461638765874921159515380959900626094728068375077245695048072438796573873294959808997757608762451669927114068750922652433312116096548850789513600387852174298301690968915728799332309519353697417009181311346873847416316543223540633843666383087309578930851696929123371635668062613935166614829982225839104359455915505334464759087382027388253527561307139119005102153452979849685281230233568683238792269895226966713881593582480074645794406459792337256750358948536795365405054265328609171939191466855606482688425020852417003517500350510632505781398557870541248397255012143456771679993260065345369457685328633103491243942432401209785014993129016406499961793920705927425483375053828286010430664883302705890306420484174919625438194187158574147024692544953778638994139171958538090644776232157671761122898814940853095535206329533660645918971708065129546864789263249043016921354911677172211526651382265324935340512657283779330060635585200750181700221212539603005545057473739578136891016626699992387920448693096168203845664675207294149014919617435753036761555066963614945081208380627420222213755892651916482109758413646770343946369213147388435877578087430847468999648573938794506302630772517329666717632123424787777929395647278617248013224874581345122623550407798637367524424073342316740492787763412475983650580586156995200380368660695186235277609284321503902611174334345547121376835379393694973207230821998978222718182433040805903340346258595670337990647236592650652568379885229769997835580749635044204404522478693214581438144540533875391777053250833604722953801854388918640655526824947031683559415408096255733079565733569288288469905903644408387663853719774560940844934871307536145766299815314554810986433235863405485564538416033722889672373209118586424259718007594284957723881424412779546226594033696254199937636013449450501088005924152122372224391281613995027344808713640245584466811769140503416661684343912075564816209394851840569338285055466129947078296747779304076584774345752779219846039300055684099269747555514554356644397326738275114355674147235004482515885205463609141761198372089458834348899256100306833043726138073950816622148405420888657561727037011596351450899627979018769743613533063375014036082407400935378758470649855747184137548616170498884273756237693854141734987391906987922324601914777689892752810147403348204592415901385409700445163712518934080425579782242019601245129619432043147485572812523518145259181603102503427825080108139631862116477736452138247616379982565703459177111409260490786954814799849573950685704827044570945828577102578559487221537796442952843854419167055321704096954110935303706697133001947045016937545237151532631590893317845782297686819005141249893120844310403912294407234375005675269262174142258669078489406975469119743545003394750981065352109780141734567219820827881965589212471668132667597694038161643181582268366009764943235135816839822358736994334343179985862816974432763012320805111545785278578105707354114477819464188996460726437589141517751814320738018460904357876073089451502738769675991159523378965893295258209078064218644270875154542439940317979848478769909440388951669950898705036916309568229314637241377403452098847036425700463535761249561209142190908417894374727509734908563769813594128868750032728316146455702806080038277415974020940201658721609641909301498102134181517486467412052688722432208298827448324751245421106094932521914411992105900077699101751689901346886825583282627223318668171936894418331128855652189965713469203143602633088954499636090906029342724968947831490105757285310858177631446947433387276082618874381355664473587937548646071311407331790665784154075492883803372469476455957477590294285660994042077594485209252262843049560139235114322086798334844285680367837614359811504027637526171369792464219457375623465442751222847710159941561702459370871099797130332837685737903748732287983939780251766364546291681876202484007425132495188541586845262108218115293744004327337519648716539555820324699425296950693818526802628639020204966106019241175465154746792476953345933201743315311173582788621737227170413444935056304445290962690272501791515712350526570308831646563694076680931175349560976955839222226495446293818449998968696050086504123850653883212145570805925736225459455676127137401798335200076958010517278366288849943980525280959627222605283245333988629779048028196097815255368654178552586900349211630666915923229585009422617421718616649746416214696207645493496188297416268292457547525812050219485140714289235819171536980319876946339300953869200497559399109713596230022509770034879299450632899667301386124404090149792378788899199726188686627389153330102679312766812674527221502597809044870308924372491425452930659924886488829826366834412388112580317531805745755357634269594572348716832601874333886760556035320645561216699639454066770190312873871265998863921401758800507240924470338543194004971498532582621109912630281631301273085508820722720002655826545241489144175668978142332396956847919023236919316841576058841771804458965256646420589340564707531381391009026776477970723130580044607469175951088525568224049164008901524694520328739334032912634089739122147555041043551204400968955813756254759162451971219493713405735927637862947733449516724608486777232080548116349069991820472159355975702761707427446257181776241228731836968891368552885173143217663318708145844026977677516411113391613541771140915441079778919452230477048950589373163819051099556394261221546448500268117152883272804520720944002839984083649252011521745434488708211463675822184906173967422962838086550949210140650753038416387032101176769254199313946735337469598457565513071192267604856897273542231774623518777928190423595185531277693539433301984799462384449460995745459933226836925273674555480755215450679072253781090368989666756017544841051032547994547705824824789450247229914561822981640581678814382179248169940618569146821399547474515059994734382111175291515681921946021303630742353241739047471495209818190640920115104100511888901153048298573895982314360992878906185174802994625697757531287368756240929788541110808877946078972435946805898188677032383138702516718084834626300492551337639795282593700367164299479453578409040836143431946364335201188264104833879205448173832395229320486190886846330908589658558570526423516358245504113851141275002774581671213717816104712359152850133515243188538189209897772466083628733928978522115937030574855459325139261191727073864574458845459573632898382029304874327770066037137255343534483011043516913116414632001510486038059847408409367857639820219234309664567289936711532760907662920026209048176591153432275798022046012343071675171659486103425692399939082993470918634174402723504245456991211689056933296498117656481799676898956078558377810241439977632695573515817152630753575763091540160339205393169293022759231043870721670167526836371128345115696578121673807534794841109409981154245793229083497151205833128811831749497991916727914894258806896900787871894910611072797623946085018692171483021911061343962906820779039085918910462784963832652720508950771953759593735721797682638915777292258867473473418536074860740356855747347409535928751886297228297590573658209054055106690457423208984254071777014611405919681782049493575146544302873524082764214891373529588134352248577376017927801407809668040360957474130525019391902688276523537148133504693680791856004798778691461797768181440732634896781469442938817279596625635872158790531726520052915528906547660748542722459561237322946393960235356392763425447487961538180607580718482760151495936577312051579782198872504654823627844155133993591313013110722300600710181348032217899662745419476207957412592048260162320805259130102511860063283521078449981770561468965371834708082720962996622523228428476148249459650685930273446138593358127090578532365405141642214371080667202707240895718371367713277013372529815781510938107683073269320319715384019680312938593173809524634781746525506862100128602709538370145770469757198711959603997180927780385139259377048543568894127179173245785982663309048411501259138638292977768186289809793239042692045987974537941437340515707417180144958575196361322806207358114013473880062999648140042796113146504801504795764977796357893821137296071612089703330312692114801545037135806751296752479101073539700518371846971806776277818712968347669831623456372796759540697555918896716565982115284078643186235413212290831650391008162386302488050525722630523435470265414568461936304177575663368004759929794598403811293884670405963029141424839190615685960778870091699346823135318420527449738474631448319070189733468947855991955737963451185115029423343317474429820605569939222201999857190261595003396871612110136336857444711041163000800759349057369275625584819385261204908528211503031917919231072201021235015336066576287037298370053422714678410704286582350333740106501071042968302626673211351206952448722409860310474495512190676063778029968585333302944307946240349087761933797303079908298814537378019460604393474517950714390378276862961223460966778450523293528095408004772566264078495822812164368416087067637148292529392497584051190888255336347088606576831541740060980271960349496714880373780477095877638756790383569293928704582610783375177805478873706668786500622721982788412678974784858347480745971022959812336888040635434161903792437686730069960437288057614657224162240077050950343669199890439006063168477824523082548876019046797516475991420507417007074003297880776322371914005731708401527303564029409340765542342929071358690133927520705088735785816235757874042265570745354190577997206750738947965351126049450725078381777684296185757458700745876132444989837789770426841429657233137795708746311683556872344829573865064645742967217606185807983103012562447224350627675642376942375317643955321119105466245081406866845794965534712454538506112076263555758726928482734983313417053309013857367295031989994287939319178030253585654419321533979143070485350833363767528841370572051657122598597456429838698045144157640877309199614378785766187469253832276509466389192589996940085029243410016647491686125617324834716101635500258873651245394844514526271316114511786441659132524364093607705464138753153743766208221054531676123805714976844037745124023309128952989896281433659598033500520801281688356105396937801664355040536242453589370968745094180468227099867823440555250782786599985619995824164353887792425132556428494857059751674746982020688263985460553276662755903529816980865491033484354461208230726814096374551682740483950296606959313352423071710678183410517447819860469566188184074478420427277653809668655905305436328793245137552733132586980371236350859365000614906196834433999697067617517923323123813131979923936742511512896486352030202466692607588550172920783935563463457557431229999699186451828301280893955015112456595915889692310924142826248060083165146041789111203185144998202828236766912414055795489536596799388169346755473947262093711508979716339159993821519000187323834918866724264848202800291451589069713484123324553342353723591592596894348139242600653778521975292692534169331231248864082894949447896571640633227810935390091823640037467179200146717273522773633421427873246637994115644795837597826874061214904367852880369210908097563618587761979337334565522498856925365953916079895138266094540204095553918127544445751686560066861167127814481608905600459618262829549483886574568426504250638903351236902561847871058450703189953817852536324257714483083970455508522727878283773624525173069178085070933823831540207368616329151212002938829983768025001297393056845434226123819660622148130480005645075161514677877126993941727000986289625343157750596509447399259531618969001391374325073255993406694322924890737499891271110981763697957495098065569501311499602522394594780277184415427305147522139296096727809722894146893703908919329748712744315822297491300711307808232588058227656265144984877158806368225995171989058305736631972996438551309764200684344355839883725145292949556932592351445021599465229800120421933004957574664101136284222528892090685136155677595581693232657002600811569661059653142463150996952366066497558812339345426106651598153584316796487814058502502368603329605172853811907368112499218004262684702697309852804911022534322380321674990069685415975233978418779828838925293274309954742671791817519598125990858658793135067490794874056434387192669952899074267452821100827363271904984110482117470160858114222869099846613634620197255836293043699930056831368696968621581541883900033598014795155469364840257747348326795472841029127474044279186107936046561538847370642230344207398208280445816625712753790714165999189154220632480027853090252983401541157460283829066385208008790706813455037693294447037224219316330968562614412255028227798693487116154179365330644735940371027436015140190530003828520897139557235757877946013520721730352825106017814775989654895736241977524122830035765889024234904842935456805117552947851019710317835943556331803949996143862742213966815075251297067163009766013108004516752800640072021933307589341876850965385154027538536227990159790888883622037533401510829401920768484864069594329685560809659470309626259511257600573843607165834731452378207983816136768708881542331714541779834719944394037474521890729347743023423700147791749126179628201819722973587631830285506305277613287582114490519083015358045239159209089216555532333039237637421703433390549918914054701691776000749860071076153697112659662357536498298877957437479729203011139450061614684604000410119870955154627079399223141000571961838920428524334301984084989270892160896237984407952927118942994840285006728788367964264813701464461794467206142769759539822317064762352981812677080232133333052099920642031813976790789747918458020045614918594849247770677563705803730757233248058610082320057698058356504814246733254818202877668544321991366498427179498805714966669881879343787786497192377818458381228889464151258953160370313133387122576546871428473301212821742240522592660537312960657776241273147451759585141300881906744852723499138907296444047100514510631545380799057551737754418096827133756249876808141790759880164303198696045871383688671731080527610371778189048880088224418589824456616896168739980040187228435272862365938090558353152180987947483977170631102681891506567801590710431195599894384782953275148160022556507384824348409043961087898154605265753409141459787442290617377978793124812067580045692738564200838914006586594586490702057957423801744126130147106995736341810495080821817269259162152247346109998832826994432942467033520375577981931625787225811226406647604577861993637207916446014369657364458987906833115654205009272994756610451121812505847959685420797650220807247183660295430947606362758794022651836327223008255588320216459040036282961350583208621050319060168134888057051435110586728783686936140962219503621053679614718513561240836569222863824723680538491937204712497263045689781056452385622765028928546615205124014154807491086959712230825255713595443804739279888293637015710807645759786467507613081332521161253527671508576341412483238093105372180720688706386554808361735593125090908071862485626729236323552998452981380077793557460468529075971535544494770029691245542508360883380709317283537773974976587374772524796212081673118888804133610594249083475299672124668711029593122838282485747719397252647488128659516843131463236974747628452757559392218701435767016093841594827405834794677953572076877758149957670241340101990699571300953282037141084186239799941392419000210157480596789598764211468872714349185861808011807792049472096156020785879045695463703698344017034892510029269051211894669830665546980321405584388192581253948038631912752136710940649686352817541366275909304633552326951499041380252262568592505539290582898363088279110015190098193847756374141083415362130023759410173324062820233213148790990415995892865402974501470705068432128946202119471315708930117825397373046245669528525006834406531693059904892207923098598166065839706381236252152562541011852176035500474450555787820335745835375438545295852558191820297215486736620103055560146497877584932016108988282737623699424270998535960741707239884673103986446052832494026148970456425004702112831357939064701615903639706746991094659992619439504507669689105745938161531973140328580653927123566960966227927240407283322896209482761397780450771437121017584119666289563021217886679778133534694663823899008382165826192549046491774490961230462173345113862728623443718199769010887612371725955475634674350955956546261263333048970811017998523269533199711725590243014030922634320018624778563664582665303426057823307096228987228566203636919391124063061985674548336376609925548621492348052259057768571112933088055055142302209171995566141406777698720279725382709717230628868457163611254671982708141847381038825040796019770208376323804842695193271532162285875984344566155492995705971724413209535770383867069640661276288673817389164024579541509470127949165553569525295025228657221607954487294203809235538930345755442643325129845459532971948712055945242147850559984193604677850920068233685601015920470921935202043510480467658250826395269122900757210856205879982181889294779948831719063502929143271927384711988834602657952477644905228441348718393603318559889408752336281439052926713805955224186588719536685377400525854580186618148234389687908820390671701479792674765369022520553514129541040784451391034219997669936679753182733550654547000462481692146922981735374608360687469804744879070907256691408961780598614282905416853956478434907129142978732736625841685933410535557088403255758275782223805474017083277783310072666337022494624825800142426621086132417896932591511423676241393651353696095069195014159029092288948774190535496610683428961712882280637006061138730132911832097175622196713378071820522464428054373617488685319420677263303520043630367641943726043206179463260254831405186915227759613530192913352668274639950416914029169896784428779383806090693604276931193842198885641309471387243693812892412413082620504637689422620209229759501834242096936546493205270770635822267863156353436244589308506114894363808492963067011158417824586423210306784358911898664960977712746549251283281244366209603796700354282952187774881201816681170515625489643115414392375330566270021382503724796205973364239366387165084847766832680666202863100584301394443946621648857857272461432289592952182250695106305515616459508390921649707534061884327772711929465133327818539922392064773289688509581648856439683881482904461573216462948892717634068854003308661518015218461450823324671016596953577618176108381128465874539201814016511591775395386747661168101348333307582502425387853186930774732463574846526878184260429659549511044738258223962380046596908172056375656726053541262877489235223972545340922604646650734578698764205250250481444930977211454305961930442936219259907361633220379380436540415116457722562954468840561954397440974233983115371921350841131016753255648993807912508842187382325098968167413493048915462293370267448402019054739943470246557125389187985782790636162456677411414474792186347280975647938506226325166753414235380590119197657331801767231641208099958744211099474483859215565557772111551187986200952158647844764154277529304323365505718295471825350221522024929618952432912790702894229970225387863033317648853024671923785868681379568972394038508064947457693167137937561866433364822533945128983478048321580272021673855763446517586536248766213264824758474014423018222234493485640686065819281095473776359733667410293805537112933921545692406085244709180933939799093638583219842331184529166161243887446889314522947627946248787508230194038241183198599954184208836776815630104466453054196027204599083457855639155373499701268723824304168288271972315318184784726529082200896340411895433536078546969092301956565663439604160895743143853441196781265789569163454541920148492655669046841603897832423385916586807046305205279342453424413020288683861105839706666760641440135617444500216274685637841570509187181716515798214335298411254899160502132496334400325852935333415570465377873063069743170050923566215928241942112155423257677341991348960407755416238000530526647408044183347977798160728115931139836740225925113439414764576634820222004520520971620518411186006619988363846079778811365962016695355603190917130741277591309793816558064303110707225860157612051046847352244470092366485000748423712883991786179515159841108964782695787398389993862847200029037006732530637060668595956718673976049411141274217186282480448744361621049213954805895430959622793924217676885090672905695388492647977862814334155912330216070803744105169300344070153028018688097072609641467938974988278314939814022540666499640212588198302411122346215722239105556089199377632641892140348483144590510254789528787607679797389884715316576524514082819181694044630834979197121436281417721371419941436432852143129313328611077399607298499922525149461441368405923176043196088293423135532749919591552640151439925962902181137466215191866942560596945663995326237597067161874291133266503526293849547211882250323548337952265101729585598600771477340233719157642325821367587591093539257958379736823927107626548245933010443543731043351159647282208316088279539475473701703968470734244731287726554246680413071778909810273095963716254530592454574800567941428979335259192879669045609449825031582312072363581538132214911616747257837767653050736404415963988829504700323162303096479842566566107580050755975158638849119135259831712796652133083304961113120622036828923232822691415819527072608526363090251207860649873215046769902028222696821659317240488374840933179386273832794026821538448427398533377160305237161424028840418496216105203491129871589741878205576410656714775837026026024875387911425640408419673434754105113471418180588828216417880122889321069909103357327394917216981309413652507680717769940731929459737819130610363518645242100232171130790098454763512273575055406801075212479438890316085350027083996918914183125647767596809646915744038837344799112813745391888446376282880791449056813751406249380729911286845449358153654347230443148074233877173482033715300231969619788436365996958240125774444200285098182547773840172792602823694065580553471028654882879336291368537627555808768237307557959330210849494276985678874818321891532119302014506817173139092269754739767163133973452407923261487173464006118293454903201499537717732868537427355868264867583694461635192091082417998282518619343467870168239567154858357210944573026759881256954396849465571325753383476635703923742793385488198128246177564993291671154216535660383621774825567442067524432010253536866756491705840025561954795050191793121635356773062000201284293418226332816734077773813713974746457081498959063630149828280925135666696316589102576872260902458402529328925732558032657758956792340126286615230427700316436277115209030660008052944301685998957238665353555422854480409649302527890970853139099533028827740410283962011153710548236792486727875248580833842555662920823220579745448961811521617108541258853982908241798231898228431635216013366380862810442116842730265194000442716893586289192234638703109879053183280124892329582186071202729080523525772990619761163278490956640554147757512524426722128001293996775116142355404885038263468361591602028879854290147305249488892659919540269401368986049238339112951524209761235532417360703910013916918826920478311607174124295653891933636305446586663091905900368393357417473775385580650988134565292610239244145925740254518536910128853000948012498662985309431592558287197382848262192409867880835607040458347122356801216357933102357878120378767028912112128156827079045665540207579132656969335999443452852345887133294644531595000849167253319065661056533743537335001744299833456902439297502536377561827558203748841892574340390218587133434705559525048253475612770091184050128473246050217374189799166485851244824904540169267505190356099089022037515022257893277560513592132366211517518322456347144547987180472016185129666641137925496534242430767512296499979580605142738217559855954047820443981540456403294872535442567040979399000426719476003036001727487379457623445560898054732401491477728933247252972820918252401009189596843117645765998618335746959690160844309700584782388807923796499492188408155091575299543377565441124452775122921377586474322465498766216982093816349043878496404889494709750395795122809611768126097655099034328344031187594333244398526022755087653105184509154874805090038658885542768481363361712399933011689226711488885362709893721079429638575305053525071757604166254331546267741869427970738041677819060364457322427605812889483875625274991917285922784779875327641661724848312747385799424818061567965563893274183719820444718250147451181393736731877361281283021872942705115913189362421470297133102062217013252274657689969933272950327967446630324256286177273222260456392383147820776639869334553239424366451709552469172871950229667596304475901917221162321671275334002123634846620683364249665964198947779926482806846817294693150275705700071057917503375539149574220643087559239876035710019345225414849830261392273081378668806223209408747464356403390172345737231457375781103964172670577607029885938544635882238277658872882657418698235261508474073877704624121702852157435454245307820164962075404267403604106171587149719160041195008193444593804193675756458683246477687796003072446173923108155292071010927702133574097688229280464117481515396608575495441137324007579323428818148966992328093584992909320852524162917543765617373984230691519497940867193147611212801037508060274136312710501373240061948940526951508661602260723685323629612613433456599462388645383143089026312149557808280025053015455951493436964138040401237666847882288615951400936862567699511470134101891004913155708902040227908695467175049712435611489854774512848261648193435048766122379718466634579628595730162343961075405408293704485799961003896350511807814260880219194497985109101994788977452802955852987020434280008272213141525009005761581274495718547999557365231163626685134029159240296423033936807246701327861444529551043838248193791788242220231853945223907037106621677702168688906359218688249367755701238959545003319376459214906409655136941332158763156392513135200695281448100557939477216922202735068798954629346153822773047268930741714762119035247443549285849223086637674586707146915651038771994560080934936673899389839062940542140412290347330804427034821921909675559179899038610230171649750687651584345583579591133594117431649669226050024741485414027911812393409428478973661934719457918152177254349105041666073889682932092953584257431518718052002437289615713069617319504055803235950951394252416309812284222590995402329270271726425113831827954148351003034765144770068442416124852691015067663894141081972458005105688408284503614164076391285134493696533211676297476146529050087333623279183413767008036508884065213453581828228247234771807233977318456094025855524796492450427962764608182524131392200600194600494575644991628129029783059360452733597112639466730857219423683471569589283745191410469071672513674530753046901174666326710360908749918757351214249068503198530563477701309187539378682998194790535981483390653143561560699493673971237483687979983266064308627448291592020647300213515072726443778830524972042051470421610744152168751668511225339118445724700921340656249474414424364153685444712689419399431494290423671047097837909509833270203030517639336800508987920696716678184113821217674979924781826899290876375823547979083697370294072350578633985811363451186954308459547692888967776949907764850488623172179190704309383804427798486656829228699312466479730583461550487653185645909864878653870184208829973780845218394517244262601293051928807778337503706393641890042000830310769011977983478917620366432452953166011162181887369331363092247628868494230959673840768432366944950476094085787697040502488995699664456497109420848734300770991357488676722849904043157149442976592590187238020314572393760702615119470175668722135812773488254199429380770917749845133026207248242043988217177592330153693549689017822254250082075884267535669887922968414703914384670143533613310394416036711362789516001251722306625033950420274903572405869889195630907599349832047322952493928689885042457304163056661859559014441662958298114957197314419036371304875230784223254409120184525364164746748757302677587118098854666177954041534356797601729753481944168168177440997647750510327937143340862319105917537506947285340439377334533632999362250125275926573678200385268426315254476757169634393310934342053319364409229768530943931207034759381740676954456713644308201543735896761174107803877149496961955865724011511176174726807398832576566677234030671078987074249477643877600855773440125963489006466387142788185732787927849904505231711537137175772642525858897358974989900601909476760458975941957822180911464005102107547551720650240043168275034761763806177812669611892293688240215293772339303152222011051726983388518164751341631427565903396133614618023068892121843839368969625816183844390890702833606632850119158226500794085287676797848507281053462773853618608742232274806343818981897214170040418188268911849380413893495171331059027243375433955168297675730966919112334189646701696193290758296535851804277070913862542419511523142716101242582150002078199807564683497648830336361676208095737100830087608990673179998757886001928374820463198708696447647070854224498140187134233539380370860265386843598742056136042610070379098541205022035275371510347905504871572424644078604593147347188852247383048433267282192167052274803173487948361717698073291734816212568429452633945717520749815068604828896542336993616124166808215160579065514867137896878737637045369929777146563885051999715487514002603321160802972726345953297141232704951796158003276205654924930253505045267341984320814579788216295156019187806869954916627212731283840393545600364542108108449942423936659311995735032434084111948731401039689632048129443665776766561119897014328666356737115950748003255443050696642121461224559209136254502090894004758056518022784862369907884886758287180177220717199513611828403373203417748916001732761149422852701290479251931667908753291014416264773762843381656083693936371212507213301379137826886487460827227993907269746322133520227779212186437758605867949905174037725645334297913065506515590359939433086206505176261175863061032211837462432436882794214842033552917484269361731446623945204228317851590817916227882727656716359563854461354523836554087915685558741831970377842988654481155861854490195678596935003915078123033188373992911557843160143605047307850364764075333810134471924011590365383524619400776558706008354623113674581294816105548258049418131193460944612492418017742586569704507066191751385140719089554310140467529541683415286510737662083485591165257280150760962650101047588870352321635117139789032940939237598960765169285023601398186434973761977700737088310587624454137335419783967906660920673382067698008160324042364240790620276301819120153927344551194137160776899653827572646977541791295624835144636155191078301865488368036254682024819776272782382576251607249501885829759921715464611066759858302589053694724716483531395809902272182993604571904299850209569487080728654679478045962324547292365046174172793441295134477437253010292902385898960101007057433182790766343942686462941851799098329334001208021246309617949072636742111974672164263656692118705669088484054312421519763893866164271775857490290284234901989744446214023697814573758368962730252682300949660141433811846437433864065279372984509120444723843854834504836213320325117944026465288967831221756049980872674553650138731410495728601829420749881717977538554048559968592785801808961616633321704911618049184017665465024112760206075725089854053287118096718492595952171472584228451604747704131795586387872135584247185779292635140354154731510986613112354603052781285109491317856731162746203586305637634916232168441903148185031963533569627216431828220444082689825283758278002416651584951104896012373768977486082841504359029709894881253815797138874320669484902921812809469326116187662459229298433173850400932689884524039266715445320258971762816595855929706574978994656807103554364949968441961511140687384152919434426991123036966392078355021667869481934257513698966575731252201954610984811868524681568817599033903103207659723728663435721036698293453176008060453761567988836343904410583891757452739102809067755127020782639150854144256198048741910435404391659189322680357666827361503250353121401684894982871251780780303906900589732611311323839795794213973025958282347296215548169639604822766640341827529868535435351710937338993272425693969643278424468683947536273208135279655380289157311993607735466026639497266810245936732110291001387022130588479237140889951138612606497991928785430957138749594184656399834301138018732566791006264167085048500352007883637206350638372293668682578040933894547109350593784580869394260916948287982879063148179633031310896864918818716486139069828373872160023472846143279733639657576143601283255216600702266205802505065070739282225324173853841980931885277636306181468692101730659124467247363428270754400227293011295361509709474062244103504032823997701744998838856147738612776434463649445988519994940054371664712590536778757514618551259927875290465349472890228043448747483951413240018242429693353802578518762698247526590213162584537940683309817044569908523719916473266332078672271113827304956277948589734548306283409813225435679699240940288162717850624684788732965151478465104320180159024692618886555279518626491004018464333707138327623318641093493512701965202599901387074217745106016114260245243618035307386777423065565104031777299275344644168357766006864869810652123670952920556915933196099874512199086443410482159627812417470377073982094947635137182382459292760039266706281538210852983060699065377350597151576119964142710007304157725724498545504622409400909414986823002943524323406451090852954811851476419333289730261052889308057256135125270641464581116954774288471702159531129065615612777809964822623512684696766444527268725529092648807221824735621526299284303126298429770563238622231297094423776554054410784273252507164263478685741621562066408988724867044611797462982454016132626433920188195131632885135221499614228605648939312775974766177425806212767344444245258476305865098346669610391171499810902802982900767798425943547171884060207540766889653202495160709700756422192819681528498002755045947427695195571929064686424853459518596906415008503047821986033384537346180152689741604557970910960520355157737503649177812936580826035267217481899608295584852112269369857218218557727223152070908646665584726661469465179669792092554460724704342422009722722839676676062339883081559888557619769610862362206230620499850093414631235231523553725196805841853246911447030452319960719158942944780090832139700552061954480812809235621149589242406645537120590076261671502898333859627341283657623543698387223794457492291657226838855035605480655748321464015309643521789329739699374059932600825402670414279452077130004449199838376995470766624209230032068073154915845548492535892427080783320135049109842897178631873106914471098357663505159762491322722257464335549870184747456733539724764009549543229999932143005608822843980910979943778287994599538776375533445809103761216516199106843416866903236713859035714606728050856042553777031199926584817892612495478464601620232270764260971331959421974135905191052997490075761984953942122981662528994261801218246428111375902790593445469989693881639523127849654074074604307079123712297899917451409924070429367977522119746145278866357509548419695346570644015018047670390332292057759278863345613203300937472594512837356984720257539746665892446570895876526251160003249468609825346876860179569761695066262323324647298060846970319930118730467329970890286385901639397293565811402766073539067444933368832298231550781931840768197569817430030142165797605841205797801052776857945148084941744250761839427474616124940655294400885047361653630552603276256000633492053830330388497909779225128302160380098051472737653853558237113411052920122859041653427652704099662692362637599976094563075926704949429632778741389720611134224309442593530572385018711879746918212079099849873420478219672531298063220738723921313801009277468161543784411103759953966785806122568942700298343151279769922920317568588231817876267798096837385621319944129424117247158475822549856160016944288569325596428740390100175908593558725118214554310602702076447606794304519944603444973225434768235934506176395415102877264371624889510154055642620314521684596472460200843598209203987618081525822197483467242904359938329377514642977048899901798768558733692047697288281089370988571301863485705028387516589178074357889891652748184917892786663391981457179117663993454745745871369058739236856503031427829964041801201910510512057754546809995127561781313116981899339694261357471302298445254561150508919968163969860438893133947432777806531529382380225488643992235696718979984996625355309324405308783804151524382940917995195671931739414709503209568025476733732792360128799140737002108502562078293929779656258819861644760233639152173537279120615861147170424257883689462161192505588655507100637076638621745786558897192812156059150557098091066038090474831842938083411016428113366530206636954445262206018514012940403716704726327984249937521119561203347988068539686383574714481885615335573997740053849788031687510273031124255867951324825626672678675718813013064428738764143882239642579008406867260329378163643322671268497727706529536809307114111672547917887876549132805806052535230372037698520165036246493452877768019169967817079020016499263733371976782982482667633443842608500477682067325265221244609398780771827154465936856659837366501724555207563874109208662615221028610740187641974883423462934207304491677709919093901812441641168022123812296605195014346502650226473114021677574418119154224992417859073244591033277428857046024509003768498099112574314575313790322127182235235249656460037177623551521637845934156180047214292810319572532030742903153595023910653734614238530599252463767027383566550731919062571421334978333739226344893755343044500121252184347181512566089212812395238435886216847806277544994051575918620532699419376548820554714504112360278116266453992218401802356514107723022018851360613090486927869008737017746877726604296070740215178409129632152663718985191615823648611536859326683821503900318168326247599647064174927702804878370464664891279537776907443897077189079072923519042122250910782856604722143221720552878623597337171686838941898370635268552197633129865906641597851270393067758663652144838317259491251952508970700596588959014456821989310269922956462405168537728796379143869449378536126957626428065267083790514876620023260442710150403664335809371848188650903178555798232813342152714553825986736364333502101625115578231880153966390057719869524851204692947844918910543767051561893802120580722472379970067078538382802306940422340262481264362490718188100035607668897282543377447579994136486367029229382415889732004792591506940978725697260190794604147917821393343773986708766842119134273515824785604612531637532842683402780140234919244822261089557721641341989540632166944242793332753511835303614392075035052686452954768185914329222617383541279937483117921095869796453190040975826898156534314078382439950304580023616886080855831460724152897853896587163192894730388337833820791412639561684771501640205725512207576759075954323253527918879115302411416999596996021325149358642152957925716234794800080313856769915903893912203740715580188056755859565706308938312415765144616368338335317259010432795102150755564253317866368633285167085428321529349177286206511414621797667758920846848584578951860913160810044544096703048146352503244332991299843668205327402536004443139291325214793921270286163197064487717534464305564955306739404382661396226807323934389937690704289938538314653749791281080469224846120381605013960472506356843585030067403602799867004281234235456143971341628942132798101509604429829944033301859629755879447074207601395459194567872169692638334979693061554546527071971707563964380515412872505867543990621461166348361311480153561457298643458332221106852873926580519406417402006088686416456753063946497409657972910475874956932353243914774327555571153702096764767060712195919041709056136335516817903329131302264824869208575732993066566352365950928591883629293167559062816500748182415232104201143855257981986066949973162808122595797741737644843113369794295002131388556806973781513876432006554428423463918633990495506657880586320837956507549073322178038110534997754767796543542354317923530998014436431366976061524518059069236673569285278238506311566238748695888249800798930720904831278620318718919002830836725946260753911882351960678679423711895660905563370090435042123075275644550145671727932039031424563803065229406729271607731587188087883115383695392252024292392853802531315475514168747429557422566756479591276497230907436518829152775673595943022360905776975204548242096098723016271549562671155425831636409841142338680038157319712132084743982831850582684088023113642137805397061442999647520308008935110422670237521301325452387070971301742853319223573677453183310805131031233531833068781299174617950403450131737740222964933886930641520539244668322709845955256451724796880463964855090183824981528344866964309192982595518769448595479660029199136619716481022837852060377318062280207634177290995867268584798262865475648035072125970868754860562310104431855390116467566406945630529210941726010399799718320132701738806862713591088591252553352779271909566853200626630338348058951078662602451439311573448310703089846310266423302498845103886411277098333680243851053148119708387248521149182780265948822030397198895894076847865458743533937425452797378972913966606538333133473264054269420782782253241162989520050497124618110994972662566537448262822146987308115682562650752498669727001387274236475764399230278792609787978587080834699915479299982703054500539292535910707037037609483760236985168640604301493806644270248829545570658892770062807407583941806639937421945563342877054860860957635743024120047401065451953545735542092681521400029059678674357447696749263750899036642385373438601415990555718590362227999559701166631453757394220532716653987564018688420169010918695544384803688616128737001292909601198712613839456549502671393156011539915920209819234767323706027153532744678369271590826443794982353297260361017083758754997333710333180491670266543738420765169358810849164877722922079908901634547311598953021488742915072536446590459766972407170886622057081557242205133040015917384996603736467599360967674446628384715369408712821869626965323187677853474394588752637256650985397983986637119945494422678999506613463409694072228996073820826219483604966347564296029189655986824589615604977951264422226142226381021931136216976921183300820567008317166958952952682723345817210233301075654373778284503866964924069970857184529473611879985111004440688590367232368265504939321515801329119406789157118348236643974740129456036083866234941928759996139873553447490713288235498808977072432686656398266034226464701213033208794685977212303139062992907453129861168444733144852530152294992785161749453743582692485784630289973747853500188009895144983791623039254337427792031750022842808046994947710511063227334392204304155089333715081167935288873500078030500771086680681744230954748797960235491299930860716093072166677145364662527769237448681171586395947294756694071651163953898966210220549082621962725980857397203179271565587022663820340830515910677546133327224707930236088017928519041115448017001910762242252013695063997780000318067939390348275517014755612195572869745798776503065942727433861290918343059521160319705751740627453030468079942344671603743582449703656008648721088863972345083390228057965766745948592595673078894866685264885730615860926845674686225884319174885623884627008147774142082432461965798584842509234242879175936021274348089207450422357393695512247777355906810275702973553997745163028865345486955543246981003671380508251966585928826491259133338175306642312061574151823068177822324601376390536766879161236721364043522493016289360839566729409160581942084404507145066930625744290556477859518297524545649437758160944938696939134564771836423686596205270934726841173489311343770168688374822098684473306796156480476443690799025540334543955695420011887395320928226310255869886037053423298089275558065886625261020706097671095497553337434518923992152931961883359905353602986586255355124641861236483016895924918985771755421000023902920050527155590901775900667795626078136310028659643912670411019477605892923178487706868441484958445175170349663399520233022341332628428698259914213712340467726528865337665317531448090494063961330134174258414957895244708661578546182391224538980649359160063871474702251393331143967872700215368718498457605945896997111068902980170688058803119926627511231571906214909200680774902623041833012154990644271053763214102454804944106143870120882390341404806436926192719722026940405964528206299651712532179350408375466526449453253856624109111038013902212334870458917392230451619974581406541419017472862470211647073626258648674644743987661027278632944906765914833913620503924386333876864294564086655217503347076883132611957519956400179797571152043049598588480410324705281769376296448576155453804339747838166728547410062171408923893883093533006106853661361999246783559865306665747127325364761809368166705350505642239695287845764984777442704098264836693302312678970401507215273211610896616946652238778418024904330793337293970980885746027225571945723095667164059749556762732027725381119573948015170066687506922204258828862902269057972495868709261397610456103518035921306332387195227664605248848895184354300773698401020836829671644752976365761835225304847926565568310309193764120950943935667667864407010153026153117553878589207217396269652704842764324320716200100305960373115362989083238088812848093590667629216340555009994318882875256279587609388123420769552931682191090024623370112108432564062836809709125460770429088937635664291918877420161817102063655047365565890962673142639371090063402814456909509078883189074262128160360242628779105488886846680605969292291141598962561039237272958021569597586555113677303403234601837634488410759933190760654772254905742525164233581982011466010791371882936151156486848877862313770132357078055433285526937709750318820392162211181375654213354123509269405216258304006369999618150494039073331978920588497724314088836787785547394870887742157500871415147885027039094157719483374920562075930563465616341521009649762435181963226010904926800853164105262185423288551042636906787590059020757757481467918707392558518322075163048065592068792754433922682705246742775148638265048078596794118228698069954927635247176864728280908757446695480548373280665674595175244085782234828683117617296715575770430736161942577151277399584674927202675592727337797975985282184879520040349066643712251862436056056884572083517144136906994386984752473546141348547687237186345365819431112026171978966658653383341199913357127997740833789336116767139385708343361060137569327153346858655684890066240992051912519968713490290914547575814478637207042858753316813220612466043886173783580061178380009483891146106080146864492445223465496078398347953913641422790017002312320513296920339249278941575890790245689426855773657582463702791030830731387819900634334824912779327845482005013268797423377671662254819389859480866365148310356893233046235439596384102144676851867775497114441258182669025043437414830323824167431410230666437450635012918377260987414714570060350858931039831800106850749777415097972611413994260822701046511479785869053615262429027315353288728143621506156884817142210794348570134146285212904366544268562723460021999772976095235084659209449506068625282465574940472560295352921894415379950939507124445911750111959168978675265099047367120827963594292382879753670769822592626666068246939188306781562561763582919785846938198951240630955225979465802936764453493622132421022853656040117613221411956334139356741029249536165301458688714287005235030483797422389462647235530009008343062036679184346295038490498285176939868807892611343719009699960031760911543012612645454913481230151533306547674907733387904337600562985625925075726316962809253060360001734515543179829301699765912321452159696433024784694090776827314599117585921535870078727553486079073292239827527483100052020343868515748762436550902713947442958467646084670559998535727186771241013790900122958052712816310635746176614802600213707381156931537835619563079534175446710767595226532031908344275534208988375050297728971984407404909540478453378566597738337244099123314089569255914905803087729238653121728381411274745119919950273657521095733505678761903378783583236924395524599737800421691604554432868330046202024483088549552583637334803205117677848716259730850164987086314546109112630098135610123198811102675692250099287781111186783479255361767006413165489108349809251552645757802196530476826123040518642424647733691388167189879066190608867078860883934728703893694555043759217960208360118525753754903959339979052499075364244295810785865368758304410966682993529205799176289458513448497590784068999016599422042303506815927605136839548233916155900512652764264037603830412939992935725323482357753350942198528225672354229886709145147777905718737418202340497046619332352198050724715163876477615226794562499270373789732118076596051532866330960018761337687982805956109579901484570565960007940516416196377489596528036574076851383836724520652374399420758565077668717934914851999056233916538277624789838881968644981621444019527662723984754575333145244624323772734082554609397234631348413991529479176925538015849623611468239347894996202574881602467697216179177492904681637778906765277698810158849105226614754698969793117645925183204083280090522310895244265352308478383248349626747405617106356187610027170131931292830346849670202041769233605358557871167761294330534822735158333708247719583667824900197753214201931108637597133620969396768816864133260736497116935079050444908498549903217462230183268228560578566906277697486036652519297050693142236954167043620569110276975407216250290286686046136275402285385342514579576996467592166145381589360917225702409787873875962135161511567208766648053899106614788655750842055178509230097576070838980849975921785960243543443387622911239346521876306643841731971320806881886560351654037699963484440644496336870885479452330553513014416380502906309813143232996999493259351438011361255881465410808719461466878656539342073517301261036546846027742970819153848877709898460691442934555031268062676761761715690726190272922739760970888581971821460019472054548368285710220006141145220836366525124388168009219719276910681217167548065569070831539938971722819688408235740440883282926768403202436681190552595732203703254709303367202424343909875341301642551301561053649915344789277955411458260065021115865074657282669242993553607391044092250441033182366576901748478042095094313257844699264598125098956656235295698155571365811051024632233103918908395130204768181916368250472643774818392784471479904865483541884897178252925607803001693250733244395878347392601682936033718381692882750354728058494418738642085018928430146582276741982719559329431441827078312212999213429673839128639156580421010877971855867747741786767448612041535747179165821932821869319570390728594958990644617752108556816893955734476620191791611733818182167160682162139882045304035562179142203673779323777315671323479865111450575778488173867803563595366054436142884597908789756920899304073172169199303641578995871970920232258018993004521246131179858804320509729423415630149114640494180143003859923299864464350450311515098656951330689717846318557531397491109521117644754508026590514608175119587281177681027437932664920723647599176818756019013732615996105572927379609445491286547677292804713652204883011436287304130803763526642401224277552694958596492131488283794682807123957244121745490982094480713343634847148220106641224746950268760792082199636026634848997308906489653594278265825637850345533022191990503228032781627321878403408540059930440561948753272074554210529625611053954565958451412230762929479469734785596995933814494261257296735673361176564917572770000412326844578985035140928141776030600484363947603542634214499854623459844281647237359738031635292094870985390133159437949628983205950712590446938479271337544368549580865943049790700129151803820507826464805299178994248303413412725681663438416948557182805168234551203065283224994079263634040483033902941433394991339981907072403141542776200347953194726880226346502056616310977458812879569063371941944341579304448683626026901277162150333058128445472779596879723928928610643491066522867314412082078269583866187084655255960934062578754747418166977527587844481448253564753164146562927887070121734127224944172688797171104091397881542509505065719919369637556088175824350067167852096755059062231859371226523639961469514954609314829757358701675794809950483048556152871637569927324770119097565784251764613955568980255594852852720397381038283630078087258360699366274054774882090031161336064269469298643669619288510372269298878279795794231844120482130208013568100169883284114222234739697630291469138076262233483536577973880409807091343509937600947586496815037980135767120843318288146661994601510438374872774268727914944030566164522158914226540489005753006830830786950282135684107832531998996581151702279111181633033489499949368081404239481136414582564635068883518579467117426281156087305774496682646648468233497743079544969913981431723719222624416371909309774045211134460614373781861662662771158458446904960957314386649154588884997764017574177968328973856843309529019295379419300348351350982710091291617103209176129986609792848618910061051729306196655466949115314355267612196052513406570821305765282945208747846458397253010186714223678908879826375130421885179422495840185102464420889402490404456322410744990248129376535859059178345360111258495628127202939355357315113047549090069891542979419131675671952651902740411146114671863077898718694411044704171446436604642457918251067571457384676487425332157322687435950214417228749685409192638605510525831901007158066098070474583925033397240781574214384812907396611788578168206028613135077153137280190765498324404703601351560989093974590348343915658566818368858584909273850688662087466741366564025791487338825200689440578112636797981371568763474918575155110378933152385372670262143002983779281118047024977513335622590917109352361571449390333228631769785906337771131257751471164994854253333959179692062074087867938349015431290281366009528657041936565108530491227078888974603357298006342903806733000013924333082183181982073277927409238344444409358927573062288586515476536397967751677333870849550002964908576257676366017017229442079097935542025794456198860642877613526110058681390147128146470470036334628708705397665128600677214807806028460209429204103938896052033676355652200705931600754673770732033148128532346585339360802661949268600950585723127993639999040053556016763385609729514806357955898395405446129467321037224164293767624317023324698449944526563275074763322185865797004619496773660872153745206183890577590367950981212928367742848400291578289157884726825023254078617003217011733271904908019612507371797673106901732702652218646664774343716243894156073830334211426934509196730054089603596328374217307285251598539404573081489985515727211189691849335363585963248498588083220366382373394052794120013221565449164684506590331472852472994238850903158934257472143086243190831076582350950099938321654681751402910121698039865592325614432586250974511272452630514391559533935258384495582639828900928590027075233091616345078004990005997793302859400433606593983202737253104011899808743334740940823297617460262050575118854379971680910497254893477824182468247597345683981987270775291114412515435865383580007303587602565271006512582751335097231574720919328786242143202215251313885279748747022938593325091515147077204034468362242090176606262065034619962462430264821130108652438406731825877782129103294942407857300792474196483701634536589038496763463113331234706023179892746988630615658702110736074913393236799337984716886518117069711888776069861936187015457571717591752895968586548151925909485873202966268349285164248511000229817960422088949406261114781035053495934312733198846506613726629233455017495718285910594516344012830300905422073956772223077416057068049508113951957957161249458454676537936672800524456913040398034500487523593969707116500432977613914127536802985543603847691319034590169209621884198119880971743444443435072533494681629272545949103604856160540854808891392038296510476959480686016894133822251330385831414726556188366173701886951383956710360618981095784103018839963527438675164736759980555266163906020288032487209924229345454635524624009244358388594115816634126993264572250724948243826802986870163777781629576745440998113917427237408347461915044090272954697432954426112114812083765382694657273779963258206674300202573914505846137327702810884704575904485993155741772853024681486864486731297504594563504483465740342623916818570401844521623355449114451195358982583623877742174484533199622651454167012993228989216537506172599766195057799436014739078285807402046728421903606176010669610627064944684700881484173321261553358618623013172761909300206194613235606753750819984620729769450551986191535741502806552402116340269473367142769017807615840765147503575827213003430101265354828072770680188427729459319130145826033201597678163494191990881622383167399639329816920397103063552374226485261189661032502615183109620964668316547547075523212227610413284385828085035623752904818386484801542992198731278852920167069235925971979572032724935001564836760745228045650919424926309419854684892760645088429726582728723501537400901164763834159323861158497346610434946157417591250090167950712451413431813459613620354801428933867840723606341810071717341801669219362929186082722239290332533964126958747009206496119560732249835485771859791938260997623789373485587661136877307532518378789448129689548500946665165079297487789808767817817994964773648041373560117795296125957134302941389458129091289044726934111217626473720032916191125992380824220719075311914784220972087237283970380601630598115598032141730406223458075741386550407019807279263754577980659112980851147192656745175299665660856128114364499914772363693918736200382811410732716565038096861035612990851823325540526117326518749323607775306474612502659459883563299399357493096703898303593989095922673866584390521370081061979183509922135382127358695830794016948558378944634441202363741356461982411523983222679141446482902230147058307823302966557286773275748527130102020422851969289806277027345332418927228259008176376609501734618688093430988304455175235350184707920796614120523433794891432726973075069258620488764788421776173593591722304870098243401351904016166290834143477092492408600688343598293611882015429658572316726756421085746539730752234253813416105059444137824408284640185920300797856752977215575565738034466052018460374642667453132271684119431351596028626958959111657899471096538886989750438072751365628350245953016251992791949985898638833049533358791727100183826933399995010775693342575673277227808557226453019514438200896605294411491702032229815864977122114701076479663355914086054496907487517688976910614170306331619504217281116326303247448219618253771743135864777679954032178975640865689579444509633109002151583741910130805554130634680169885646534655141991776698258501307654433153924513429963620333906917281622724945783630912943473050601798410315059175849941230827368315632964953131520147169816278698411918629447898177986853291466759852657519414757140663906974986667983651307131465537265777689330620923829669545269129330054174057652483964745579751975390097649904621357814668583275066868732582558039747801147266984923611377809812602440352600099786308898911043017435781891403406350843233317233695114084264844221611231905252604486153746098715386673761517205509942354361768467218917080839422488370491220629642118456558805922513301482768353011237507956062778682554150267952033424293212799468671663225843806944153511164668665104875132095134495110353360138415539655211485520225783973864275724935416725503914946070434828285817285307109297077768273146369344830014905612150384128639189535328555078631670322339812852464054627248536604019728885438976631687360470267840261616679168048727043363126842519911074476856797706369700412551755799984845997053520947745297600117156005180675506540273851978660410728026108282759608035773297040289548238231457723489241359455623753852551658465646353494588687141213718101407647964882246306700049890892338037066743089377212981181470865660203459131903579600501212787801665390649573994566929866052140228794181753829765644189278455933996360905884838883276999345901450029030574144227846347537646264083761491720421690557118889514513443923333780821108461019118751971591098789180590967175835149718673443559628577769702210790723409040757018796835819343336118757498139012364936633913446037626971688912630832287381285901761050097975241582681416431180094525100097041681465594472431376134484856007821791796545184691010492121330258094437946352405917004236439824561492757212973002895332669346428609868180998004558041477202153218705938893146967538225994293574167071684435962740320721277907798736854041523457007429303976231866502930552334386132095451434005280372911788480608602872865210712447350159225749967330697438400112866246544633606789622840406417741201547060717197530470004361136549701496799176118380632533982163475572757466921460686955812810902744928381275918297277897192565795586159992419659572969614498928479328772239843616966395391392785969964936205085472001878053437759951313183200851446730957085099142301456062519010746578079527887635139678628638619930930250508713314444094510893580972529446534705389911100849813814266802795557058659262894739427389071060727346780814635267058532470789227639427805286013553064827071926354940132861910384848502945225320635396031257679335162690549965252939244102844120324222687934391763538804643913777530666490728343499788013342384046485622335237398974195936710725549600165847761011957501545661450649306089856323176999032017196235503389577019150548662495283128817911444266336290234846121546785760786427758054229198504715262822191996633233650720224460458164768444751558916551124347387350411415879047372508796141404629518606095743519416478651427006818077995140707254565194385165309850058235516266208571594270273772863810295519487558678048079011403427171840173470652371181973568893415694698865903889255949775439184029273138473157269165683233284210112848042679104185257784206890918586694324671524778874864423748776000473491760819971631936073814335712634270926347707164781058499281501935184737661141978965966894676228493854786727587115157570102769760552567799018716179033268494555164236713021528162133193674417209515188569950195966203331901708780927058639523331825741840150544753299634173086100552703659996954977796929204007437438332233133977415337005589099087094482676695158515626003008968828666460001884350513051833173872347333785847376071326721433978111847518292982130985269292216876727643147289541158457725458186024027678158931054671900029503985519748786210974620682958439229259714620097977801240276333192418224311204852858830821269790197406534888303530791245246583062263264578177799705271438739176879229421877583558639670936401955229438948939426415112284411861293331834867614311223449244149618455997298413050502787120960359492900845726874787455349472364011556442523577949113268551023578970598706417059711974756778730738763655150985434300621129520195521237771622551214409565072870971115782138249999836091767232581094571524356503989951947569234165580153770643255923318874130411783105487798043586397788934577438012976329902255830402161714588262728876308914227549225753356696249065561088222217504117889939686139381317866766542838516110799561012226650937463515107859240243181944541523559467941135800681767415451775075717688054834254335045017082563444034408174648269145152603541639304026925462189960374165160219880154334913729494183330847769237617388785882510813005117706063643517951072386894762601400671582029939595242528303427359169576300696844841447158864507751000238881260938357868052531701556457358184838611463868872028749885967440369574301494699009997741258335379056288547053068105010272860651364202883310165376140866153280116963861244587880265895685123198285381329420632555979608140926484190140620827259195787374336485112966351191564183662427884940254638600800285104599259793123889004782729731110496683241641428911728061335921589779836752229553856015622710786709402604885549957973509050857582736171532170228644062755337355895083698646899278253561876699234277926219192117759442415086891028076554463737579130014641387095098349470037452919918687511314848123747452346985961172039794114116746066108370610229364101407520476951131760888029699289060708123169450910977075639947193869985280800786442938416486494832978511119869800523300987902285006882398235452108929310043399732894590015718929976937633175489777338658920241760169604090749870618262463914925278325688460385582452297534552626332984728006402945569149006645748992794768268241448503270537154937627439109723382938422206085737209160171848934789710347470001056063851705294116151103333575060346733439645112508218623114956404010749911513022720372904838234928553950617882989961029064267927419499995706352108311472679338705902318130395620772227007530990468305471504456147164589216158844427333911242257804000614868056130643172446133527569570020000571564639949888220331316013278121342169783971110496648777511993649206117772544515289362008384455306104290427466161787185003108122497229784127765034365245211281192831117720262927450029179170371983809081139227274781513812515949574748522726516765463456726656937147787176060100254939551661826720882344275737517958101290297245781708979539371882051838792876348613347104031147536845600191428982245246329994467748004372273503410050685791522112064506993098519260263635404586530385054399503503333586213172232662638763535936867699277239746465294190462921032449864813870702747191702882764023293759934682739208830885585293105529532020597955476203027361057129487281876334511366444329856434320348120647983831605115050057046643365257046905435529488387372084203586553135065336206165979054800083736034977455471566108047206282342869116049019341549176378443606950229336398573076142723710451361873049313683005497261863225319912420862370794356350714168115913133941527139120175164446206036986792736263525293597945190351899042414635408704968127060224432332373001740243975701062061779546559074494573750415313883136898535174396646679231208014413107055775752701758695292464963929833432689851357751637283348693353543404762689631889950013142550493326455967291663933341292787316283030089655928939741224663300400615308365236720061696007779255671340888495274550180879314219997906628090134680649246392203273396014227242225066616778949353600100266406617054767086772101269901758540211361089200632670797102578986857333607241296355444138638814111359364362003156690243188955494306593423933894077182395434522094672918720690296998182854809509443389235743315881907814148333683218661633140517896991725866240020657512528004415006642282878276799793525811251006152599006028305148523519746314432028544430484167607113798557087678266522381843175970767933705121326974469927483662092210049746986513030783153170052474878448317489243258990910416690129717356630113852410335530910726273362178832399297634815311781828560466329249654290534270427393611930009315091302930283153174722369169856673934798354998131426712010270172271200922834636623618848948030789888361190660483574111570051091328447013736993804244263829994932331785966299498687875607214354719003286699194529799272534646976737407252922210160935229479416353737368370869376709127069530478804658362875253040448119691440242649983156109808164376831306552379028925042974356803469735315449840108221524099730890916211892313474505791832102505501729376796991147229873076115449768122256426238784035034706561788680180181088841011293617929210683303569654422548386766874639865540662322732006167501181498508133090068790161087076198293240423111108468199366884941142220731799886893497178428968749783384164014583810666683554112276577090474866958772744461499829791894257894182328803779964325990551072729680253498286215733907539123894141048192602088671267483055875322955475971609650518791767605505048754942792180216657480486804281648236581915933366575174178091272761945834601835860629379148257384545513951563388769196777783158256540379416803779721993177219429914291111770810925403748668863876539324289187436830521413682650783063456592495073556808383676190715224909822808419383555408563564788466912944738543349685251368706647789071239985855811357845249273535682489636467184511625539868905458121640486260069804548555782591362665074371299464623135928209347506125394443772522255105400297014574075854130850309582365745915329629717675267788201019020121763555673252270429327556683274830376621173369103766115368211909390705275429892289065580117028907464648772495514830989062098853389511401334615840608188430806937317365987394072049918669572971673034991356054484713154445434320110298940104695595136182146525121319299722484260248966926162761311557102403335170074304899814049494640599848770444446450840303478083430867324953128632746995186388977042742454151467724466484562544295490312886552602954250121401005375877689869039455999167930244306626790595538440509131888296359017846697064971277886476803140477866980065073345270822317825544091103752631931018974389103247200462482606897373733130289180447252136198373666723341891553989574651814041082993986354129808665673291633224520322886245439971856101072015242949801184393530748163455026149160928824596514611138008823008439525922313999797948114949572713980225864579010566851030254011538850278113608200659338568878503061417172085549470611217763896631170991341900871445973550241547890199800307379307435848627517676208475779730736021826115076062167772474244910398757981403302752834842913701073148060652868749512528390187164422722970367904843268697082645547744075848616140400296840718835595027601386405159697609402111603301199431081852484479962023581254783413118318841590440277595523103281988013529760161265507524870101880457603103368213038718939590366786105400806732222040241308847900369985217088780189753793392652631426516872414694728346862541088084663514609384069674522466628539605912821334395734622701244869828435233650919657361458762357232825635243169071882981373134756664285008993215720745660694805338010674366385214189465516060061932140684936914218002686190470241328924943362369495984516936771538010687772884075147696020993284689632288783039793690028319985947901179436682867038902233176816355028576028684982207244396963181480120446211078896438688439565114764202302780035297247855415147466715945216239179649564719915720991209444699229055413300890798130357435653422476581874424418170371235217085672095489843074903893418214914797703158764805065285809986803661943545065342946576104390675913375501039938205967412363662613716495253905360657897541928002000284180400823191826868043318883999531498334213866834900753776847544730238631371904704394355631052931564515969872063034730989944866148405084003091588840917264506341945913021517439884991428263365443910996130038477693799595283283455120055971313313225801757897065969222811542007590645488315083432704898196007671283963499081940675360570391380723471114708161392265866739006441261257512665821187138071269834359422590474221245263827911003087916827326059339999909586071844051712967800499092175799905246146915381374031358322185736978708908752976845053289251101484695614133878148524604368955060900087484042327466127898861401484667568649160549180252595917465868603193809156389116694072420970107349725674124238988942272713332540832968726525238487595657048757609260617751703384195089815132405470393845004589164563099136400757589551947072466341212726915502401560001810958579504163219434781500550418701391517455509115195726741907731667769756551190832125833100479483840441736733518261571594337450957572577803517206216563210389435122352856432834009906120776749570860216767143543730589930000758852281854737933322152721733352275452794222728620489045369589939265577430025007183838260778018070294987848517292351626400654200611190092322432305229440565613848955702069421138770156555126416044235574238535526036240687823748675639656945419197174679588895429270257263932739810520136064904447611676805939576787098172402734973627501446701135870638667000944277304529696694603152668301938243373680434313231296523950808038280774130916014498482815546645247404352285710681222313245901258569616031047946172477773283325248545613832245440592140913834724787281596442522230051303568749019636719295349931485787708688590657269950435539081120279217729608277464662673975960172683641695640419841937558794171733247484091500653929649410098105713400680660641337803580882778451577938835537975455132481286824099745110855872290806868262835104063891476592743691147520994270826646466262897709342697313618264650490863899995577556983935604226149268507584720010547417421981510006928060512027161354825209733091549558086578878613324822053519436702685469617258245082658332069614776385978657952679574267758980150166421196351186565125872561106422454126092176963607277291537970819134161239995738804284460368588123171419337287235556111769156429854899312957388788806502528806630254113915734864094837969030683421469608499227183711351946107851006682617726581824226774771657730430397270328763728303368044992533955808269697422376686122374693717507517774103916188787446617307978782151693209676474956933766431839704909898325940649485887003130898416019872918945694760939246437223338743211229508029897489778316556710944075970439023868974073474459390913274444069120277804906905627821365523020952291372501266509985046261039692936201617695296322057871824698370870778680942639191491032622509005168648137000340541514268820403375952967988130585981641879639694923284104799421022857843183377400544550610646772638175951835637508601554833347754067205018845558284611109427095865700240923721106391547565024951364378927820810595443601743904446531588728316425380301314465123887937327178280761149619316549041791926460712625122936130277643261685506921081475887384521479994100350577377717863905657018974294537381664005849651775374264320412563118566442230248321504832886491035765176087001480436861003414596966898033764377143209396168378440454113195607060259863666427008419270267207695869150626501627137225937660332234810250819582537684639363668688369457768294730959755361222663866506950977152193061217988408003204597644869695623765044894213730273194015126609129371818135355964148120166597028220108317531249496576960975211464478862700022834965253430355485324360491621135979065996012423965674707825280754842467549146750517613970939651984901050196587224060531085002456511918483293281329351127687108781920066329810152866325516280221243219947280698182327924096514774070023889620818512591463047290782069960498394418255576860581723573482613780466561861448511288334537879598104048056208048316455197123158510343409382813580271696137710280244061109967032209440394780687710018589024561624986018052885463149106860215788329275945141054661335113957570787637908391203561822175096856753038101800238455685807015941631500857748118075687905106336282515577667361872421337502468482078143423625613124980164228378386533201005220273448800177285650099018507098544895133123287013179503156589117871532920607243576510360200908926741044409628593269078145551633266890011221769924526158233942974539100101180254369351639712827990365450080478297496512946158620837917915103172464149571465817785489602309039859581457283470688051688171551605244579662685776722340492607968868333351052148468284376391443287553823172599831875327813902370912078185208602649965157491303192771810125963166935092843298323187209159797165480400952952672496387044345818692965839153708518210032881912461733578552008595493331570422080185391663501334179384684802098085128912286501368529355010459041092007199154598953248596783742992607826901882685062861053575655299192303640850225292023107313279002962666350225463752839764319307802261642653619180182011792572169467701072644602866504560769077914592033847510651889644018771065410620853500606761995228360837631346788012414539516625815519789715096879778034898649607559227362588228396603166017527596088032118644958093319294402255415163672088027090633635279939871375733998800342698182310790730726394083284292872243211916591345751392188297037576155768881258604260773268142124526771447321148537601476761359658771274269642378104768046508750540172659464106902899561889098996983419412088897421713947064142550948037738316879610890838890169977199952424795839737973039829306952684621558676885852937548529688203278251253847025631487231435709708340174285696693081838293742134341547298393268219218358588932015243044165966038612255134619819900160460073193346013226156772849976845506077304033254433628293135999264516149486634882770989581216177568246238949733609738196228907835264775003084102890518708800347592073807069085884768373125969802476103279631156348064684276172318408138957988196553799222472566362893585560701331273749591983240781050564448659819930778771003053405517418343053603802652660911051696217001748205029272272554435957408680229336903987398050363400455219466772339101436031382024500679401279302841360562691299669647166949857491138931813743267908646534553243612286612591256904068196285780443569773115672107424908987792382388073067019369522167725653520450334062634765193448097251872280140902036172223508096849937645307680113776667715775058388800967619941102522631604183359319541705526801327601396166174845322297789755693271138848177625058527563286744492814298049638594196627836698482415169960036031911635050660069253502751421933112344452348146908763251859648278335741921778742107273857096954261212072702077012837590145155244787094176715295039124050841839460378420508693142924601148536483286567585215830343263487545296258301024540218260408434177693588245730599287303748859408303521403525133378772498838512448462006428164671383485705404543064716607904448506270895514446547197700591334547338972285587151259836923055835127803048161331795735259423687497667027084645098730984857521011872067499357577600368344107356250172812404243485298664144313624376652237594315273899728674594535287213099605091338991666873092462711861369943288452764420410320574536112609159376884107484946824814871196345153775685483363064421705078197716621978848714916902261851645033541055976272231591691715177780912020264263326147879946343577606277825220495046557280890072592538451410758410665871907853116849752104360901648637012160077182590280193004817729972029341587854873081477646246004951330591574141523586553919393339276523794517184485030829364749078099987672163052262604863258453242285295589175328225204557257333442282560573025965717367907791045285647969593120388126503827349658520807006372660967678096598984235120659886929128708467200874718038323363975831536872507933251051405099712093600952973240660530087560316011047409368183300319626219405635536881097277563380452770793626150264238899987041791594062277826516377694666108017103547142062520518279573483157652346366382148328154055127267157486135305026295624027860209083311145031300341535611173609105885821921433734399607650241204992761438594989710721065422295190551512797515184835781488910379987871209242944869524452303551191950179340439237756022338515517835401378290567848659674961618773041969843141838299957666737357857741138434974656277869274364238435704688985364374640494634661917207631147642519419044588777281575614802453689122512903725863800168382094454212035598545771575757045860785984784954351317139198025852319853155164260678700072111499601080214492755171617867001991360428494212028760671768794428554972666794412738680619454050019110449263916885440507551444912855789612858180635880824562229127602159111797765046278616668428774992457326972061654459530808687479331892812696194989189818807358232802928356829515166939024615408499943400861196118542570246168347472875794718136352968479932273507843345595853275423238517296449309376658485829263031433866749559706675757749631844142416753268240084034859985170982184291555869125504618959112120145055432036976198566776667988226310136880795730836227502910019925092607146149120757220840307726540489573164377521942848609178710737181130613875856893101239041673701675768166494700043217184212688679928363198185307072830486530027998532521384455056911302487867927975784017010400026881607287333414135683768885273453820988581776311372886229699360739478927026204774302196117174493906818556832029456854112168587921920203223544926711850894277964493598104138183548169283985374683173421028595379952611614793737544189320679599409230709617789824490099119155995002750841040061681082672169426537998456981625280467565287402506070009090587418291154772949272751431996966602162246510978546594742896892436200727931821755166424790013790563330141603525186251349663781145518585708369353148160786716919446520067618977365135173918149354681118057422644833606801207109869302784478370210531874373803327930251927070746731703460361378987777101893729457708285292532035805878089221975800760810620915545689473697847433595944005858057226992927617440811282248516386613175151564499992290400828218512183224403326379415102841106800452448032819846249031345614631048250525185491567951122681617488908411962621316253894813042010630705979971548123171916819038039059593811432095013518594115744647320122752737477719559697354024981122710323254629744252203371511821282214154258394977287942004195460071689322046503848806722423823455592878548348094892178099631405043635918461159914618273597452568652546120625821744674360210738643686156971158075894276097734208840735513850798417427496073264248849133882249815122758195546562452698984800641869449997484101722470485353000978176743885141281434619991883086230610167432962449657344406615149718685014059818688010339916520134855709900501710663814163902941351529721620535395325971655614418218461005511718952034082435034600145701343264345867558587245387045718599943332536086824854678162802383507467726785261964838890048839649979454722948837404847300542070083576730727236155650200307330042096949561018226447517593783251023034252780933074654033001765076865812350758391406617484025435144451465369255391431983409223208208966074339414789553225958216418745879851934150074221743530953850178518165941079470047975387949335232008757981777213265796214724687865636762136581088103266758460299668376701425758631963976456344934167003550252886572872552001654047219957504835057328039466403800541680987546294593102818978096098317894718801259935239881037336882324302323628485772049481870983221380081978710308763137759800997885536246187635241297197383033808247885757590241027098575335762206072354136009804402477510880816384044047447259205980754452740955314853358721499729434655100105526303323397277822314276908325750450808575374503523583012957748022153462456119986145638459041685452584606229870103190542823396880779022801682431311257637178415631373045310141400403783709246489591725190383606104679060239333990392223991775940261835326623174460540603068182540882488898364610451884567061561168818026439297998813999242354226470683129779325357528134544867182245784162340476740479816327936824328003295927149487019975499097678985829113078703255241332955614586163104275432387289748912355362647128604088227027944521001880148454090857546373839694076197158505557057388297400985768943073208076514640521494267202780148747523286855461802535471524943944248507927126183888583303721525083761587357621408423128001781810676111820199251839784102519695402814578906317101036401752813111369286285852240325230201495447435181926319255928987573442078880033106835188371319200044873994978828903824668925083149891202089477612760762950010329336927590990759831021214038800536413830063013572850479052148303999939095949021583956769479291639735623909159864383993319427716623036347276381031267947679379245804074937831704474554622630322745675406977181826061126780599377029729427851885830649058866609516279064199699898221584041713554604071009445031909422189290619787593496777850721887141219549471837555996743334382772719597202507716172459272994863172920517112932756732669483629177731748136826857667751593208717365591179095865491664643027387441413482008579351685262384337807174106040734232451862738932142487318455953139357447894520512174388322937555188986100274859098729120884021098132618362666829177359909122289313903389979501109501925727284317636329905820164226791693403431972573957213047959001268377336054444186346754666486519081636928480278706517602436492366426865227584249328940171036803579406595863606477954582425557200657418645262231011099931713179076632742083135309689554128475849629863756274605369752449831708569665000731510854311038581753682381969113553006293166878248183913114406771012129947765225971397809817326513980224749085726201680346848480529513146678184622154548276676342137440712442660468001354796525502804292362994179588016694957406234216876237343437707365123754193251273874904291139831293591885504367224701484129803111346654558835901144632835717230240484392467040783758599123288086733760300371224851846240941320090155974355917722664807265739443201024446664476065766148633595157827908912000841074742678598258607602034339778909851057254536503677915098955683745694950819711901956877120312215419480641844078573409294736791406271416258577588949233007781102887156817302330970620238482695508282952898619011946915032636005709069056954731665221382937359299937781193559830838658961485985660768362382985192576370533479077788551606125778922284624219432848488244098644867645865086273292368607781949579960875716681644576139366397182400590793397829663027505458921457093272513962975655027304085320005076282429457863913777088463727201405846274795511598761689936653980376811926673633577666528310769624250162436527767647818515003804384147505981475231083352343219717152065658469320865005993560417611522258286004119827780787233311978140744518797867546429748522714085566533437833380486432671824081305493070005170574686182077326584336011498991669703325565875529003749590449288825744499683271527657506523238255644176729508240920289419454668095264255975662678615565804337930107098888148273629643844769300121712329394426698045692684797219332287416511100786963814758620808425465016495891279621306163461122437940051670464259612099254868832236504762771833967934806449993381408268679957005878431419618242856865797242736566954346198060035140341140166894110433012512159576352529067851116726324762504366558967849462810086799402143414537408153709283613124875785502927770207851594243496160813572981035071813015583764162968771343110451216910592817638483749768951856253848309651843379124423873899010967547017105783023338966048936849288978835797658956799150862422196563998132187615652502825162501479939318362384599536470889346526105853448643620840391697092873065570267963699968014777202695831567684495606503210708955182721089000070364372953901214610135588332660541720954067665586751958203463316111674151596179116096156908346563981232157717774296173073914728439452815405271185071472027326161882696871234537411822216047825570012373954578036329143373260839004094821227223548762505780279674923824077079976273581313704365483190681944988068751644836246002554395909214525357802765683434884802713784867894199991765931826530552427747966825386121265169460283025079423846497269292268214127498701008722196357539536693408838626081345436933021960215679103962357765213138823049987562596161099088162036216131773021869092721921453792363627619860822020031356101660655702777970626945715619672791724241697015684332453124197574143109304548874474454483122613368523072329704315590330568229362131984733423400190353689153644175626750094753648867536238164813156572888049678003292668879250588536133585337266291687577105761541194720643616928462406917004936437481113927930042126633701276885501777397934948421082005922888357623605748110729064534355621859450858096657469086188217285577381231005995862059034374437869986005234336000052475347154457708140549715918096118111753024942509591085695371557634097469562569045685497604114707633795147769875443467348961186311708680936367181397904304976038049038951802517009114078216912538904772389602899708568233525590574777835267507109273539219874911587639057827813096271254070153423784649165227735450783940868534602134925974671124362183680110691107883816324269387149280020428230134809987608000706208453730253126171464495631496472914267144806264732948935691180675475382131663867372986009672756822901731369302591923726444640206781869798761039777419606501755100214433518313948381792270110980644940918946982044492205331431671107750048948904766689034328656466526310464385738436331930244022177491003537487257732879381489712581907393314583928893256438807460101845271747439234450783939553809958648361745308834789229702992353485449913537372044789011343057643306029849745181725834519772783777544573592388889836370112976770129087341465256480053149227245067839913627531947407078915474651540614228895383812493487634903412715426184558584786404355943063550316853257429669278682658270832264967482217711014327317791073189440988824770576897323662381844431659244315661900557904439393453669660233378770301035655990194602511648108786159161631189138418670613880835264830372518442647040207034406791891221633096868233224507334067139010001545648881161403067623240059813469881272291238242887919584717318581284507518887108934687307804493939742851715762169158840779752152412805154519121593777124749776649429488161726341271172822753818078013965025089689267167036889410081510440891230603387113919200244403837158065870878717215487866799727518063867596851893818777134700028175850097946212379879603279926786605724616773174748506344891404325983199075118292268864511428130686220127914370840887291468109777622579676799614553601643371117356912133957435411525359113352700442137618906685323867554053034309511923351215121790296363891015556942622632280011089183659706637787826036359807728648755389876220123008595260442226749624987008412251459568606300217144398797182603326523632004356337914444422622096734404930046214240758676679619408697918155864194895192919825750963932823298148058984640048405502355158021079767888594114869236312608156255236063687705039999496751893276551213835176679956610330929973537122084796292906120579151158696054278980228167011943104397630777141039674702476225387872846762425748659123405399035025431777500776757876542517797205117656900091158775746195721320245949818935966521240768020333198458157520884183032335529872924322207479138211103859851203116039647608161498775770409045814608056066471673645239709058612931527904565719887114473787752032151947090700610835904203361180570228391687542299843860608609371095925879858500986011431887444432434857258622881573418410356537607720236192817572701536183076315529091475985060248143391445921207750644472211917518593012046180805825333426086085605992152529209425522608683566600337143688824375940886579522768430282237372903699426701174163563860265289817692954623342850524078384969543023147915255350310369907903632636893003962497840538112043550376953034025456695621966640402148360843817039512201731898619334970578750754444443171005429796221793919618924704311181556685059291703104320491773592783794502274684765756298151671663470381732696638076536813708822398716803235642003274868865867171999025157504979295139396296736701586784390885868592909690518910084964013297935568713425012679219459506063269489726999297359067083851740975228385633971486304247139680585783073434603743262236332008835298968315908798920050730231519780518308603482468325328797914227550372543537270385744688693722879777053191789994411918115715199078664812615404299853569048418613188372405675301377584697196777771471301248424852014650315826127421718841712740208299712477529965140840544434300117102533389700968706151951227720484468657879247638385135672690951141710993067436906310835854805850891633853234203660623150920633517827468508303235602296209855491193407745704678498586850668894760985863300902007641581050382903752699332039836852477174205399292273611648283143501971728584937419084559798907807374516743700707603478660174701074885243878029543210655172735953414964730321544464832712017728496860793511708856442077139428820486622000478490028655219221052273461659117116058618061752052932425324050818975928353384158477538313146313472868291695337286178841279587682974299638765530811102766682981987991589805497805805428484578456305055710468993886651994557153466394909520906134109186443091887139993573149381032359790815976341311037676509336226196673044055476063061745253484739765985045350002866570567695936910046729667331962048683985255620880087706068221721667970065269389696896176277552470240745166451803532047751097657539779441904541968973325993166717149628536813934065916656737226587360728390557469629440698360164947161517717789251687655151552309153210336584789382185194853308435734316890467096077473820237154440340224509985050664205842150696012633104263994463964997825362784809369329078760818048275323143639077526965698668803577242104324801781401110421644061310310352999560977383728607128041080513183008016387940973258839871937840285456588038430810371261799576627685161554134494606959749997185263955049128339144353450175962401714376425786205157377541662383418698096945645664909098722799809595678207657975820805897839675312207778458043648772972911160621972211852729411706316819676357958082858797883824594644646500695587262989372330314206663309864244702400938833384194503607528547728536065880545262037838295854811573302088724581060421448829247748607092017344421027088761966314297113711552937649863226453446318907888931186859982733024530587974504142672506937164747691164147165004994910381593325847919273683749901260239804292557530517429587907450605157685500562708963567997710246107979608493960376754440451240361790488596495929857481563635506356730874259388715978485662777483022529097883387161537417136283892094746411901463969084745759438210830479313953312875098415029584208303469848204485598878140838190032729387659124162297495467910659824724042428154323479236122592845951034128281491474053581437863897871917251089051931959704972095602392810289174864677098043992849629764808504257564905543778612992847381012261209704189151551902842495652758117016893563202772096152568982297357043688710997541900096192862089813597599644814081559858760516258449627041127081723098842429125435410922115712196639003161109651976972824765503275266972379094417399144535541769142553145672099291480772320166326031904545713202283477489704228005204026008130793997236545302450618351262491688490184531239757590460942166254024381391432553175009125228113409647579658157686978174821372009470602182298474928159980618566106705557359943709630306605834053893092772891802685505787121443356567281490076472224367779887074707326391127229979840707710814419051553475380925228586666597346535516361832960775286585197165167750711785763289131356870994316212481555328649714798857305453394496472173567182790663289374870508198985842257594200450955103271738270448748174954214186880901569554552218029559656658600356373513504313056285894881513828366437935030381986340063766557268689984024968145128436735301660615125105462443878976277323031738798028620634397052128205523349275247407337053034085694081265140321546576079425641611197046359555770181373428226927732195327299132408529037396170844026754027253016783981268037520742822722899849013210913573297530493628906545219474054073417690127930594655040493816019904792254481090260806839731537391504378016120240948203105029551718246073591372993248655629561613447792052476796348123165181396040661326745082954552274376514468424157226603962191899079284641072178757142791176154126411613534129928516368743013114118789090488776550401638108077619234265897444683153759585697640823569225999708304456902048345471929341590255759128367905406257428434026111493531376278026777329905101090885787506668109578551941620928496159574866700487699830013030104314825471065451555413686738306006937118909377755786826843368594810332331397059063167103958962268141636730230394820116913495341837079411285849788525515666966539940986682502449259021712887287365134976657383976982883939334899140100310298126781471338897077737783973449327843686128682838519042771965236883526051274756414144993015326895924482369260526815144519807144122144940563755671589770030434944915319047158527473509199934988603105894539991410117753452351697979851397998299703049826742135728048652259744279523835203440146878321390335171301410287970856945932960235743385676503729364180479979766986428371289847030567721030964821044442958411718482412134976911235373168091388767575408909891229142903073496733056682017195210217762473059638128725710756903395626257092875503800897520707600431404640467232396314553351603352967632637694352808194997519032895447432781930850187643418480873565797596955017638253381371673128057642228063876334145744248808789127920842209746335724220560472940688125782047254216132424786041775706191603492680800542271156179773430375312864075190386659443124957420688511597373617067878717251542986644257898709681486142075829752143270123941163930638492371998645284225185552157816265936300526289332966691813345514929556886542055692541843220802004345456332524914986701302687789293754126896548100126929466954647479250186856500638777398623762042242403377239844740752736051516338221088775179917952369731727519606016569439691753248096260233715580965701858510323046883341102140941045245538291140321445328464258771223021599791664976963229007567584680128257206370316853570932930562729804142231373076821216742050063316019599816148523847540392902200309433187271468347387385471099689655351912526466176819588309136534150518520621113411828489987465865801699507156508798965151614107967742090791984462086555744456655297064812831270132914456982205812470314400086936837182439197604627390562700001864521850547737841803610846483534770360909606398377782472268744003181890059008402269049015174230201480691918485339019019726794940385034923461318217934174563908236426791086699296117329282114925789117465151114393318936268766664214284415993892340673388079444211983267477462721006018900088515008272054670405469481914900027202895207280761649192585450476568548296002313266374588230537163778392691632092655549817568814723168092267605081527191724384628322144319180728028580310109237450418891518377082916581378572893104332464431742403483884270692180200567737363624309264879354093438569812804132227698691702211916649919707629626744274036766227603853614990528584715447111677008331485164812656350087846453649867326089813725741045592619925264015674554773276945162807853855031842488885270949232181029224334070980701389280613553871363159109860198486305143519069169734618209672199110971435482731807026072662840133685979749868932232455428808688666579039615766583961023796153509658055678349241063159975560823894333026159862967562496247995078344377109563909326444322394555192463538634258933808121637372334423058662659956484193051762767675339485379490128989664419217313436431880815148000432373241710885520410176113436415422733305068605053398898430407469956957300897868815893655698515642823648419506468541914620720832098559732529372845902065983391352110252838235311520711396788924525763263399605295059717182695212266564345807213232661336185190051699880030730220225546157008447015772627644387917486277785081162922949000616333317332221785020504217649581635127252543056782469440312896964413813341711689925441601028916844143986404400447162255670330554258465881178483699986890544023638735599775938315337385105129988058186566893134222280288451384617556656836011841007265349082651868175586510107336811202845728680608965356759295592451705873293798301600494649623376186535303716652742730243996333287539051601872556946307378177909490521688940470691970793184125212416387180344931171704400766671749337413826452283048999017034651192162427482229251225415208507111818028261955703483604193399542385466171215992570207836666240871197322913670829854395184016384328516829422676239810481731778965679988945424940095113061857474117462920185858251895704471417975329002957525056498478298868390073673921100845836222420340824896037053838472593367758849373492894524252076791648087437625927517806995554377833676904259260276115603142882219681122947275448317128332168639323097678219163634490161245879344247572678193399562393059872332420512785494528802483419069755594471124283347531971243377786179111424776037365598944212658336378324825223898348469047687885966857657864025130004244423798246225253529888293864301483713343894070737366479914328756655848241345196991220336561919899889767037791005730308172590526269726506018413364434934258481405186980136642455972759161555780131760082566163416866208858000097014031152646319481429094043476881475416166397281564059387393717380177766962704103241262950269652536710019137168471422983761364286318631724153659932116101185487477547247167166201314223073174367201449731553911523993853382934234099508483958823073332738985752782422764111578957647814307015508301150290450310098947450299707247572171037286072699029485210026653050442396923058870272449914349272621599633312185196934170355614677962118656750482439592274367634205995586524748254983378141706013239071121940445998316050233177514978507231398778410380621705918280975002693747026018472388214509564069458848799949792048508250868126223767124488989518314172085129926758147552718375826515060850887016348327861606592884480650182890471713749754529779958994244076056633964515334889604006631281153395617859834817379918882322527473978448378384162562176382629856397403622088244242042528791782571769941478500177705898656069336816232982267503485287956210343796887095070781180829577038267167487680834209123045935288698827121915900595094422752818810969565474813768136424910567058220418692693516941097025367660907256097911509297105127200787785929069320349421358591256370074299914471323293887764817201845177583157197245332817967876642970583254512582563221851248485253899203085813489727466067441947519466380679234620368664235907341278705579829237429619244130911879678163890579270931034738742951926480554472720001138032248037292318153440075295924065725092546257444792963117647177234527668185511634480798059327127814234586616975182596315576736612382237191209245644970557116744510594410485377865757586429900683208249948475439548141728719296975357514861672014486725008237476511452097087873875645916436725605564515159512094183490179393942278778822999475026091324779577113765892110576999367766109910574372506055135737592939137930766511520497137797581161921371596736072712499491473297899015389949654470280829762904381489050285257025501179902528839827857806575939430037405876996481571321031195581766004203590413369841570417141617505805052891539651032148724138460031381443694573698597704069149052882851275251345400410778744003519769040646229009755842954252319220475069110108829465972656633821518854468843552004614057269917095050362363436647592444997001060227140015657074501151106014346051863879072110151691259291696176073837334123498087410552748829652085176502765154207042361935257313557123233294699813027239543475622865376863664988733263369504627089524770404902307380233394764256163561977183240430830454917324422531276190174192147684307471844926326527696990599281519045180302824589910541190860258097967079399091901334781898746470267213580355500895580959546341841858599994204440350233600481258914422533201309649510276399386990135005695802646430296669007483857237386016298453666605893725240441827511552494623092390005303567453964341346734395859580523520704619784516081311205123543150046991735295314780837584006112655720600107523963906568141678852900445260504938055261011217344779313743161140139890468604973645631994745790363481554706608499477532177856305518403176508066014766972861943949696574938580169312225291070522640582022298989024278650368680945360337650821147418959084369782395293754610225975274886671283073500912411034051040243654940294422621766442553196074686889174702649225084396415133939939938301667686496491556940737408477207721047369542545392744486858335371651304190719465721657728775229483346325764239546257416475859970887284363364861202044103959617434489881248433164844530965264885408007083943040898766689508232935517397202162499424185075349077358594783895692408069732954600177687739949036541875916075388897190200130731272804560936887618913532029484544974359833888265425530641219593182788567882328064633733617529395479894877017305362979005636508008003601847925824171843188987734179636873136874473824342850834602394939319758657636131553874699955890316638384562346667552079763532784780207333843261287897568775968389782136727446920722939694396166121489056085379679534080522562724516554241704615490329112457884307274509047788343435974764985912234416150816471232698937418817255413361664751785701406793455192675046146389293506806582189310970015532889808140632831351108334917382597802334724380900461991912196281630251143976758958992224263844201719129485600724868805511181769301442108514071151963753824654526138571595362008177761215030813072857137917862533018677310833965631135686330014776249080387720718503853542860059210154165019582214596582280708254411584508275831739667162613616776707554031086245613759259809123577882960006551696981467555243562563241246881053894603227336902278117705523604481904455066395344671026485426544429570891986635234554829937461716177734604813994703793176993724290629611872215020409636894452400812996401092840867208469513659317419804191431836998373800607089399499419304247258757361205433368106734714992938872145520775957229674198773099090801853661616858151083720611417193716911685866905108764211396828082029520968556877066718046431166572434952085962210291096485466661539151667588736486762525806770815747910175961945187277121011939401561168901814700417817861064301839724729408046236873462310219505349422373031650040769183463779833560356130498341368252409545156412003860903057771373021800813765250884548183168031195616732959145117953854362371839823322697384276332564698948606697974481869077735280962845235923011293286901239134285528358377957167000111149836983839528956940469536969881941602109300886236246048065076454192330481298730054034348453242321671681059212800418959367654219207635827049142333878348279664673310258208526612933125504615054675580924787732467920715261383803674014639781916057309195474169252247458662912725630871793297967525958456534415448509615187199365867941284159481535807970304573713054362550551782168111132461629715853695600238601275721710064131636349656489943249522478220951651831079193026344276989336275958957046021170718300873567925606126110215736436590729763578642144783969813462201227985616976947233535602445225871299833678393291820172058160649942129384125954628950955608072206071373840710741130400406332170862598441654229941439069980950640008545360813685178349774196052931231146058200302292265365137424196009981495581962688702202723727540995745898024539806811694500667434386082609638757546034988933616146314575156170998778729973932464588537637213219611118753298768112074949031346859881249146809806761868151093555698232558821904610317172496413846434739265116601650315762614020622868918542491822499864583302109774909630903713154728212831494009815272957819590621922969555722014562692908666706421006232819336139633196591432053736219058334751999069220032497344755266612762066239383289703783452946389649217164216492767704823092027684220317672510994907961978340672096972135136784839407350677025566661865327752766012330361656350562702446621535642516359629297772311537065389999470380959981218125988214980335074662308677299508780427681853766168586524596378059898962418543523567686832947310153763605226138012165138390747852078655338360137630693558723093783022303520245821912308493660177778894263163267330141722255653804047497707493503284386731077590641356859547261925568748278431595646273829021614417651819357872502495304024449256555440676191171101991814070557814086605568960283499714342911770714612151394478372611864409947702327913515659740437551773219982213884510283202114325007481289879332987360199112292194610140086615114686839336164478871426810891983193787942101782432848862855783632975828735043521301292641330874447286604899419039416044937551401811033155746088338443440114834312360737287522781657065716647235570996333401792576211268455382133057624940852025139106559183687412685370454083578835259862633216544383911756151514541233825166169066996856871673275850567055500650719928518304412940840625415414128842276568592624828672326443385579795025040098851401820093783374625912647914679873657228161283688299974110112005825474267167185783204507167393108693855793544181315804155771450054481494983099030536124839207810276249361753463885912428153473934680997836379227087427371790729645232895484530027040994277120641520692871624494334183662031348450702174663853180503994668614390138983606843488621955854866898840497840261129187180791304123203574577301915408648525369928010029103419395230377839230004010788804600434674961027386427632673124002670105632989523543600259467587727962676347637621296368196023470562914723020552642029750789631082998308251750529918825912854259341689649374836728664419629987851674124304139191338502372844491931870193027606148096117530337225355299193678236961336113797795729748583226475826688184890467082459359804268481874743125161636592052508763431642977409284972345369763385801640420644546173971967163784096351538024592946897909606039986372897713243686993771857701178205047962451999380856178256827468545721071761547378074273632678068709579754121158873945150814050936824665688028480498800018444419843870391828194359742248047148561680238635228493607426937233334265401497578173045943610282932190042638789847010153264449564147081106509641937664882097140179770686494226517332180230615725956816172765962653879249784867056733734467320531755210119266325725442009609766283261302055522969090095112386325583697636160572314285438308698673798108360204407000019477549354851792601585281388849385817326688807543192172273322635160990526165520451527801646927378989911288017676238546383964804196818991228467154489403539032995123457399735870961709127803293348898903202466822170982940346955126538406932246124683034637986550274643704924589070561870952099775851462972469061101009259080926086859146130990623390537918399858335056696796739307809149057771329188871779166820764880486408895587012509101955766111073486273991450153870711600811263284415398757507712203516592485334588652909087460686907716123642920490581108804174300813085166074890864308658704568017552609601428062914901480089386216947394674602463767716286404247975047377581294095482195347066172253601291779148903855803736202859818585997556735075840947264469446508406152846579322960941725334660193998578605871568885258130580019735907467414873434176495594828211211506739718904222988960703009755054067665993004351904634002949858596877714068129804743900149946145741961671765207510715412434804314977722311979599750196930956111325009847319268397589823876866153303722737927528557640410481815543783653007488718466176346286635002000784253048826124464972327773719652813035117929821909009831472935379820331302360128489621706009480633550201336912887629945676044687117863065463847876766854512103522028285448542741345980095153563152380678887277323237788803403943640768319090553187059949682407563449965700000635734580773402713086041656764674783412966784670818614010284503974173600478047079603499409630142126710141641571699110008851868386416823212981768903558754116066705518519667667884693773210862901458978653237875560273601632726133482211321001737762190430957746493130724168099925334215282535305141685771600794519929094995571833881460514794959469474668060711637139706270730216930571436837336696250018747876190905114611181203925551476544193717849224840741161568753050884976985563358053531923705090703621235134175562346804309246143230909073997411385311283729543683119106354940969036472147932498363892501168227316635793984388973833523711993672856777900479039784942119300328059466825252088525409073725592376870172259547783545291086175012310307638969078495649700000175611048241607939881723606030812634066688190491795305324129959779864293524771823627427669058336136164960483251352626724597973544026922622718071040157927820353750237735637760760211702196009857845850709374293518725999495566648764793914737969441020685691901726629908193800749637737505236329758281686899125297886388557425946119149326850243865796753582907046462857263859746364879210916166889608827718594741977740888508606886586235659711715849156303816089314353701367421819917303251849199292679908958441793313768086782005692978795913448649146134712910532619806598165621554039590755644189908951466634401275313262626924275425003137159435363766834797922470549176880082390254894713079297205558517981960550640163095735808468990717586701863777550895632005822794414914824240944096156960897063114108671187626339745546283277590512852946191144160882492345596667674565737683299625224406836382670921286892830324905228049622156193674863330238626836345923258548622208520618546980095147277801225943815580416285210009483550591703558025168526142355604725129050103412291942616409511564497569812033469375004753176037853714182315565161124240665115622605586243879617317804463269857794583768101952520991253177020173456291472557577101116090265138247075939818064836825311338463491987181566368143935034355215432175230472922631455857444725048323520289402021541828611523370786034260610432959069444144690436726750010578097580185577120755620358113036322634059293550657830799508333192904080739500924942308332574265635960192858979401333427983063499344109914697296683478048385515144071173207491863729663607599482624704352636061492798720499182798225651362904146494093172342469235287919287610452779203791962101641655296808152077009206981939963242046949972336864642431617279018225358730098440755417483708027035947362166347989313443225892007902019019843576968039685434793343531321925456515731599452886980893529306034734575831733253399165257030739560148617553927452831748284899942944418279937865507811042245470775548818249982417568583722896442002679962935137501355032356622490481649144247619857541713826632906456555710164577793987107735972451819998710098123640316349793427300436804561615452574072143410158937532503125662542021287666808115104635965275231458945965385502031058102195342402094638991958026302229253915705089015789687571593379574332618648560705139019498054300801916841179109631732664211728410271486233248077192689400081284167783181169881957274972849938241742728134317152061933619578298455768430748480467440190842542780217947861253419335651919730680008041215176561162429544614639392965392565300253200787040100671107064911465144597979742477459863430607747426537050026193818766309017408878745461755440838460450440575941605417441822643262252834319174761997428908224842122593943607816695179257031830411554245721109497166762602030552482615026383982627837142602118876685484025995538640915829805002383590083612769186676568338005989735407185454317881256804929580180135365451591520816074126337644581093906997127453493623003848997615809088917593233367904828944193356177041498873139778859986149217370922188949526758337652923682539397317784521599649925680437825960164341922081757083501717849761375129696065940634528671677526830236665114475326032727947082217442777274756413017953021070028428036512689203615060699163439053550122607607181656394482469450552944347280028219292888837029970749358063735249025596791845936829575543394400073485212082516188248701601583125095389950101437715078790227298651750878126592683034063791089127133535324068567433431084357217063896695540605362095759968342394544687757080473797967291002172505189724826938208562028548834045382937310511561122463689937140849406671373040188155396962121434544466751609734040454225243960044359919858298785778757936346026356657935071203404760804341102809708891005825256955086789904303522323758839865769401399244087235877298107017423484294328268079778486613543641561926641265726548870957716244690158142558081748430419076503737909076171398622272702907652620444128283458967840315958385228199840394691557759710703604759014757972716515086274450208664559998015755347412530868336175439176570927652216631994124415311515280819926921563654784348959190275642690619955115351850680049850494668801714338281973385681581937028402227749553622987294703135264390538571381369692177939569599532971013870742790019645890477790944547274418862441758933868919164228154223713884403273731181913522254873480677398656667892784499687732611490830728270283582532970846206332994944925168264467221400027094268718094081075030609605414362026608958361001175669264430860270318881090922407185157984165992151684999102704228935833291008401749347501246944922877103722279101878687305914016153393549196050923602849712179979017875038420322628617684850726778512018021451103216449210721257558296852525441562429979354432228830226340516411290718665010905563621934953703384209744287328667002143746524431826325983859420380758315990773653575009548844813644884213390371307137130008740745861540959763588409963748199972614687053163624191250702807098981909243299980956242502522586398354298485439685343303335962334813168892536646694917630011487205984284490735325747124307951525043720025696729178805958213462528455141617189976995973337888133212634556316096687494953357794125854141616292831983342116053224452207711579877894603003301620915453662351977610022513140580415689403879753948952712860457454321944896562995136362442720776257579475988791522614840680651129649966317745123338659224563729110675187920768014053804749699110218634300380911156174512404338075404651610369330394168655728060812782077240171002041127515718390243239559403395547016865805192568077528725626037925222931145862879800988671618403610141684264419727411610882732071036532503068193303250716808254693996630567207876974199787718876010782867617808236331697199063351286612423281356698859297843985853072657166788427453992820365812175423292313582463353734596792053716394864755852040798864805445527857095826965979300829086806161773025242562947515445306864420558735415612055434466144296971842789804974829778579277336370462356570049029776286681213324600518581848944993740489827105505604520604190483276439697652598280536315922850141121605650401619261904414195868079811477132531074878761601621462575113869411738213076988900875573213417463238656769023130413308932484874537429808020057834532575885744758155217612128022431472911859796164282417481169786223984220054348537880491254310246342299973654617167472597515757184359645759166476067931317422432063639333020026803126365822419028894244860141694227155723357687835861304420195088148848809988994246208002575610429782709978147922365455289423884553455379371177378991338399709859939496528016932244009548491316288013405570856283012671036781584962952147979695939248066492042944852778143534417258951218895729437292888985613754891016841031491529902023626604610721296724409083651053031276406512518568925977435894998637549191286328256752248939339144891851037746447438861333710066755435833118576831636399848908420798126537066854935655959107204426453965225023792218139753748362984769472388060126027812202656596728503168055051906744532027508790373098199873884361015982866905544587359678016528500478307787409080553384147699933824755386563641360843158343029818386364231673154465970129304626653262808769868807702714664275682387795707890700766001291413981749015795987322273357089781981027805983989343642563550564668299007456142726886912664414602130516943561782518628461269716231758410828144949389118644875398422336115745835663081379073256470162040176349999580375912561335448289267365063095470371277392040609031425808555489366179982594189414274953063551839422318871731121367758478957643809636255556343486061900843646253977494729837288529119253728380268377688323807026344931359231469698420958128060771315719212483811256612074996052239783505004716807803778208048291127649252907227099810667618599924312899632352569284909649990879485578790000857297412078689353356423392564800998142773442626372507576767247823125499459650848931535899952425549363210777078994948176005308478070398003493376250110181463155251309921893671547020878574221745250084899414636627167420217857251511810115585871461186177002851934787741673075894179966891954262831409332043735255694159309656327997373291094048776760629432902338752042118289326406763967800678035404840508401290483753468600304574086940254154017032641424400476250712303938083042263098071787253711559462519515662906954619337639086076687944808262385274748394175076266140637488475172198504555970590748935767995446487055534962955256712191246481211806653108208679169487800663658996051928977265265825908958541944828795502020941863950815014563239131204900917596304603029021827901179518677506695484840476481842493328851663518251634683928623867929235155978583251766738885630793882986259500610501617177042475184725738552362532220450761114842398700580151867444577545974290463447202846561056743736745452192440613791427311839214108639507726992733078032594704298321699420033391423953193660509084243440402983821896726818141641129318418425060174649917107647437191345074272520387816497318311893842635818604522104127974436191576577527777996499287711501322305415902224597840136917160733648794179825346944740093609322836005632958784736007035947164043680979967973437165063000964439510331181557179171239125289466938625429979188140061171545456802209311828325872359047642506527915561623443683259952751500636303529746760614181651865106593281313295744722131343630493589355059827685070409531212632989916305035745467522948001092983321397507157103754436989722883423023393670596721323633495669693531213041623383435517458894745318468548900810328506587191169182423416041381546588549048434050877201631912773718902466335767195412223227003478088627768329189712347951746765798917567080704410561451325270656222474978742060116158722871186833222764857712191967653231897659680625934663885487888805575138937903605483872569545101486971121346061158040816889365037010211177041787208622740347771145282402147951257791353634065779018075215995088360211982116894516153628131675292288643909581706732318672514773033548041324121162020604773602687780612891919440902202337443389967300103416767436936730322310699059024331873274961117499247124300386870402691631050019356783535025922865017708359400490453262668037478688160163012580560439500773199892935063229866664234947670273847262019990561710170388792372330240676108016713678601188642059463799038179091674454666244531712811232923932168893997675015817562732376800336677845999910877678212048441779754381472866360707220103740801854028694981253520482346889059277062220520190776410334209109604459707894861504401622385748522430878763073599838759105323066276618454328411449182167875038316165757530445313479542552428285281570715674204590637560575393498929691866621523278477262431129108699558428161459542186170939775033551600647262251684916171120520097683712916313426643580422904479021004375845746681482056709564868272586009949449930742286256574000666287311818127676184153819067037407930158213833061114429655993870256160417185616711853685376806721451074798070502531556302557197893931886412247732993055518167195197354466217346730482751169986964696719470150756121549099815257604632238525860787723986171374111838911231346897031890512026976205080689912792315308373235677136231132537242310999386032094668099996696731617702323678687653837821810308306877913050547292640244273701764208328138263230673817001511282896725730045496370286898976249024643587392156840822502707790918483835332456512535396057996490698286789134441425440329096877611846572500645836571775786975489882819273734147023902951647836098796501551661056417514795438815881462866917195213998628572416727806886361210659316541916962406955164517049022622028084437798124509796012128830112994205655119208029965872714412231721535492481360782146506718382760214154299014382706355734355816237291641750478517281215480399643041533920460337246434254203494229300209174920495239523258029720544518896873046786443587137317334855146294544984545523038911672620628083792488590475590139687960746625296061281251595073516348269907528584473994442040041169042634251155027248145603817494442399437978033044542708515134742617969054901942008227900295960173168157608734241242405525981166622091512994164033813383988101179300613349124719782562398068065438185300728214416669366494784239697084104647721828596065065240665713673472239337676239793936795217132509105708823482811390370832489621862277164410648443248359083795410423802756359775392119214364236221270216234218757542105212553140394689558437621325938164518528035345433686750837893632801012282568042773732306721917399971631459983821458693676777875387296847094792542415349346397717876187479740093675276773171282520703494672385253067780038926843384949702412554928039471178235038389859007870729321490327697801443823589026640985994160497902164340180318144944585712546827256427032683952542949889689952741293801835707891492548014857430594648335226612446224371107803348909825446562760090540567998309983181332176086901846042008568100515077618604138492943347420989034868816545005222795020393792529978096237918673983882277733134850132302114176469090493157572986611079056740672538488728459575683230255301776231818378200440872697248743874776007305394701463312751206799892165332899429982065545569275280608137836688431488901507718615129779467753313670206452502316223606860542478306072043098508293194339721369348694462635446288633944853681306192889476851156905408955808569896777425274160900311778879676879432725646566798363853873545417049595516515263900837133279700557997005470913038871268063171925215176712495137356333369486727815200980763976605645374240511155064429109146017178225236201595055926073940458230032754983180978779255800769955930735385520712140673592347310995492012166958580830378709878869319268391741455502928712461654396722636438470023039416732228999710863445633765253264841932092022321642788919337516824041419930543769597921488732700703183703966933672235911597565623643494401551029410584558259317448259652230470737709969731870542054536839104148193820027321323436022752347581140569948909815403806414281783702882224713519589298355449903300938959099105591087084719515274922598373025628677690641510421300739964501827808973638620899265717460265184076896944363855607426816412342672826711164378061843142330685870360464268536824667911897146792050201494576417658472197572636787600911790181654635667376046366722009752923453929811129764703940295675604782442407496916941003888463233665729077817644551673211791677143746424415743770706727891354837956213457350566997157572335818013494328299358578657397001461625566925560994579807062175893848023695209755599982015573972922921622692078656969315202825280921311711092106609120074666530922939414277680970578488276507497583137143954295038974848345852976645719712693893603101515765593164366685389873267572122281695719611965432568643739989740553959512477661603044495829683976036458250916840443393763768409423429025324630930032909220687783574874092218156243629575231371213189613797996113279488305875514527110663683976097563875991435091608815850855637251445915520286438761352177761730675956230777705256454025225941166857942367071090635843258160782588707145572464439883059390024635311923735749840176189317089656897021701426078575999255453061248425132625177962102189319764540437736112877402162137321953315798748581813577608233196447871442771202022655604824262208313237256003631687945298913869853575610920569913103048235749420202310288231587263009826430111877962352045401462069280509059181011095469305763876760499244495690806949487664759662808866427221495896920515319785142550203666138010183643947717651304286321356204272764815537183786183024986692463686209907639843691252500876437096958881115078250420481304987301056496070681068623890882576151928362843390261984228535780200464058730682468316517720473455614027164626183139053908781126048913026237468742235910325931226608103221011136888842561458691924458725727502865463609454299425468547249776598624970261542220776386847388370537339375791457788541467955596592554867040081052213835412521910155654433648118392709263553316300618020440045132243849231227137417617659105286447222304923819790313418355124004133859379764320644985405992464953471759723731393085766252922283899888144206709109478369081156785104285048477202282452608739104163102706630416738816122538462004493518037237954090978278948612861996796183084932175500580165403463244809304142662048737894276731158994471161979538169502374365889218645362705590441269595595654399806575619168616764910514821643033175136119549809291253803594151848495013054424430511468365389065504548934866654316224951472096020837638306633677715121753841924463584768544749776236421698948339813656785868115748751685987515738141412524821747499869140332280227037893237334352769652852037025148688350942274111326759524970777435537595147503960037038197335239557456392704225418401851724704347890440279743543865930357240018612989491084578819716610885812123408525109317333224501795752384451958376496386349659379483521577041421409424164030492024499712894917164764639384935223591609029696761577419993925863729140661415692816528040515207512360473975080346433188754758824122265633678518618078046327978082911810599049165110940869572844178102609745629729726454705597328269202210127790963439923508744050479211110860247717921380926275255047264064510699498309426370705113738753219190746340293183170550967182550481343588276100620528099361466102460284196685637609636329973758531710644854954819246107559202392251502517661476028087841566391589595095785106672309820571696648945816770362754644525552775432723464217412051128655714921916819984109473065881471072714093220930234017085247010140989256762979242661917965712113343622173245966005539596843255679333953665527927217714573991073602492035408540119703606453595673723258513887119285629554391579503969671794972758615802185635122190423315475975594010806594844440556336646847767906748122249703917261971155455867045634054540796492701098767769641117329856345811075776239844707042278628161122395077543393731115935911311360579819783736519746968456909473109868625006920700775015261763629907005781468807157311195922828992754422817978234933962978186031477501104337250398037647861581249962661509958075217176390711589152021120342755255929725866038207486815797157212304604431096125733854422610680898072981432036377048293446834425331054375711964258129445120230041392450098068341325490605188835107961301723816842118182682589489090356365970821638781381999139760470332035541383280685923222422714391659364984299599848952268782992799655704998717575800021562830460877709271159407252420819370059328536630045347011553183532082275567584064534322578484117644806689138787388705117558290586930012838463323278170501722555397398939137499213071031287092199478545823217201292412568884025135475565587077324762551003083029114212303276611989058809883575527855148521366302567513084874183322633875414695759167637439501274427181327974818388951523957355831732609433093477528880487921967980314131531570200139133569771964324858271367403138644479422394587122715879209941271400075702925554517054427341614269885442834992120255383501931411036075218853800062302059134976780330315630353919516317639912615103117151900715226784273001682856631485982400602045977569577169073978377494303730546315909205849703557074563929782100680984061871150632159841788143012965989336060687464272093827354862679758415587867114046695901755738014943495612729884430016061165399055625798777804419277859645494607895854762814688739155524465669593334201832084843854941795595134110225235285622992217286096047613490083675247481458450488433640392755235845029508606839566255912464915979991503598128358412791791612380867384328107729171278267623250995339062790172945820461865693866476245263249634348545123097407845582274176875245332365320261863735911900244132742914176468281829430374028955326616342249333644653946369427315889684618372454321549653438216024214054274384049878250911440622634563144221027909452064101722749526192524996979162832378195487361490244281512938221225773973123402368700046343319419713201446964193241229524645977828320991596506665598134298778834237713135963767515915390613721581102956379130630685058117501915197511138197368580648672665583395233360564273279760588542715209415446547102695163276288036408731090151042062760535793701611704931458304381437210397989771232240285507536776833763478877974773001965864636454203904009896973509620814628203042811284050317013243201240130204393451848933748744951436398511186672681210664029082321746091768762704453950748240009516355899485524115975433742464920077334843757544825022902012847052246019927114759234434654216376280156201150545573755146530759256580357781900816875414495270993548771792730472248363498025752760764483643938950049911445189083647051418591375437503014113551264149266614642131206195748141751099179735860830578110109360477852017770670557858536039195685120141993087546875858411982275097923889929360325656505691218311567591913067334800116569950604949489187525617690743641019809050423682002833685275917959374356267289998001130490177786152414430568964460837656796448399327127702174982094480432780137082434166927276589205009784918665662806401871950538537804565935851474446315798078035029375967856569269181072240644468414068000994774182024869540917628446356947289893849918648895699848353528973417636186825215680796328164497725994824662225234053253722794781876311145452769271153146021381958737235763556152876108043585760225843867476434047174346947598839409729349175072577564260962401347149878246324792176526781625006024442912450554816698100784256110634990462761067054912395355043821895961228934839685346300958973892426001823609366317954284408144291277555626604907648665233886228000163047589826224826350979703054885941698711353526446891962502187717134938421827605761837144504838964693036498307079018201395898164487569782885789885139974637619220145789515740635649182474897240432577183565465918532962964239101959885571015807794919468531565925059071164795818374357159777250282009880112040606246661529439600523086722352453755671582029362372612469593243003858906947519496562484463463425823977056471480989833555002908004640557087406555049891423121460352786269824799676141927583250527629162704628317715867333042296800809530449286365638179292755083537188377967106662245415097113266568436246840347235508243608239846202660031328208906628142026353823542688782650074384628513972975301341229491225649504106631106044331464033299266272378291134481031920088267193855625729066909647365686876794782410996254167387772907115644827776687996807559123339266966392341556187757750858214868617814341881675746736804933854561367972963723368185043283737047972068275490668694495048261947863371087923970342446434436354480861805070153306659282069438268448748701510873657757234667826373962166555399549999476107405077781149311902743365736389900618115777600955666578961460071421248088299485570838627270793156428105108965703042336050754861240125015734541164890745804751321808374392580760090210810037790096456379462497480954086787906894154472510771072695007329135454558736398046924322381308949898988060377402468674597132413455497810413303223445035877832557405739626858660480593537251351113792156388007364867416909876355965682259182341731934893383538752476567722569527834756103856118041171447081087770902240844481552516478355625617448463596308818590604817908679960032440567793955039166432382491337992655455704938648792586454407455111241417333265674994637018339166509013983652121522354967633670650740014756973119687555224790183697141823867674453240690516460469177361979875096349481870460316691248426909468917408521868305082655891013051070710379705095113886582746913934854835807743670578978123674710795438206918682695681127924241750646462641925162062864124013046563173150340620109415132698979573006674689387415954131261015310034496329922175082390897614486406711199955087550076761150327478517986393905623065190264948110570737473735051349447817674355861817833307539593391618557549709152297582438364893308353667588091836322180719792422852570791645263530712449845486553647824309375495994305784926146419341233062286272736379296145984605318459347587460521792409305390714507054137261705228475896159615596979905650480365523538099312701693606334924345488640380991995823677361293582829640875145152556548464424372291076515770072468226270693965337347002674258055288059396863414318001609838219856044524133185014190291505394612052835837659360093836259486285168643375984514343419892955732868340439705623455179311544860200517114092089805812478320014615582154795399883509414977719909777309017839274292476166019052659194579881517843753782562894295773190343012520604057420632406155931216204440675330038190594644680454691620751124909781956581546850001696574836346595530825979578399450899844126874417659869762472016096179531583935751614740029163646882227183749718217714463972132110219319879465570726055600473991562969542378448140425634635910358409009627864495842981369255889537054280872835574402936153876916540958965751689727714200430403329508453820000941500365205136694244299536550317725003504468414652470388937777508968987202713044971943595388151294946811200104833800137165865329841640940515502566813776879907636755383345489152213651490850639361858292558798274948888726034826024282328396993598225308071847231108447935564499501192433179713336034869965064352056090366284668407283345216958715849552895258207112269931594466311736269737664700852531842843113660789224340237176407251543782969488156885950851009514759127800744567120360249130068353858373478157541266397636217182855454351686720241180081325220404006884153160685698039092615692956564295406422626815753544141095828547978084639648047845846592566339266504214511477913900009428464405595406933062111457888253364182228687083637164168326555378867985131497246412298471051048473971232665693670409189223985416445850829869750087469143421315263585134562886331805028118555208787966452053584793720700253652303991809662234538554392441037182111527768606850815956129472768450760166641760791995748122764805694631706540700765369035839607858206599572788465095135597927472905782522098172740064390215373599173818099870258959472180176435586637309852456792713207290947177441321502584236622009481346825993226047359019340643916724937614169781326524686170973976904995562864177233435887799319296865165042521203163645518847792469379245091589756505138206752937298548333472099708541963656025543404338937964689889988236945634487314203647108322886075512243879406736467759311654804778224382064654581810827284162374009668563000680077393641306806619908952140552286235435535531045822738147142867731127166935619176267385328434006762779929835292115548989258480084398497202840802336713759550738123650498578145061169367884753401801360538142357972537773105995368108693082594147703071891134702140415760204031378049302821935738291452744844804969443928467303261258312314721642041412699021275486170360372041607017587241610862405863961117874120878921118319178531548901867428240801884416084901987082026435574748510305161759041523921806871144759136319497138516093227081420324695335604100443360066066076923498952088140712059699834995890619831391327576989211943268222036042181250041728637785314736208111830710052351029884286877015172758171972630221818274795162799130103405313541801742584324820429325853844624736101673489210917306168267412975482605835757982441715034569101866391918808950356373648571594432232763201001216528952220229364482364373536773532685068997731100897991497378600761189591373860683078844685776409848290363342852508556908750550547058018066542111300105442675741613033329553878853515848839664023563995822007715283686954106745542736920468310862668330615611908923288832060790243135582859915412454691147526336812227201264668280857500056847017134167705423679440821838730461772554529439736170030938084569063769028539936621367256156229559901570226553605412305809577570796172758025333004502891401649250753455298369298202547356163010645304927038064401350965309897236729832109119984973597561136599714513793044360676401160653138397862061397679542751557231801667942142053827417857359252141861068217679104196524578965911858502689047061167904958869248780097759401539162999815431580035483958540938541349272640966363393508698681882233629085146140354238328557122470313279202521153280032035938275783120226307078198117342849124391083474165235769507166986195334106953556936306152935298117493766719025124685704920864508265471856971711456808739113589598561751368267135428410051140308577838087922526158917626273351487627794098068312765004066231703855217966574203370764148450193664707724388472021413442362291420882853414492505297749032541949174847280712331115117582540233283806880486823754286592933761708344130390518458949160055612291904644737354011709794219587004416100803108868862931724928009833915685220983470681245033260860458414998372924164007435988598545563030593299051299028919554102622829675761325467396440046071206227053948235644276449343083142175276361860082013360843680906293846170108227345106492595671954641510411944373446291358172628404626724663461658461199647559505924900016848479267107733079644360241398625819469050602400391398109852964267589105702604422507508953027280097058945533415372892602190146804837277204433202162061469237947242366271887740403632207179385370103236674927758447203846721999467743887949724579523238387318354699700593623815068566416324883289617358120693178200020217271828779009098360922527906594317245481045979288536793174905393398605587297659825798528543767345566089615266936880020222555848775410097279520105834075532000259520574082733265632921030927058194701188933237561992601547857486069082627585488007171199670281963440062164682990503745362679298349532796515491273811387020740251698456533062429196120335365472047272265492631127457532893896610525858437304474966517199529584544203388437933834641759872760324219681466100568927431094967317426409872138810839421365545754156141472673513200254673379096453360789276580996740839995333156166879383686574895745252071495723628596382234589945915483557888305102791654726797100138530590231565498121711182571248686604828224541560334227290151643864534602626403698515806751568573924476293883050357088771024770503886139778791978010494636360570946307655123221493287946273403250268149902721062986138007296512031347541152157316811122847141138216317339095438658464789246770050173867520866118932774914787340112201537022922948799927812215110734929411007005526322289845910052371109725417530895140113554413866899196155774041850902887806931262331619701737190790482155345940708924183573086854485921355430375956049465255663924238042470098202408056116966229521580493752634288347000174666579261537974993706594239078288397927503215746573448867312860394584317766722758935273659909752438902109636487636507339178161890195321711968837717114459606291868522402582711247636087722491666309931768751881543921767598647066525956859346278211751219492062657120550430182078549493086434036808847789112092894641256551931648628133037789130431605596566125188175184038203003434460334974384149419136450847951324472096039143897533371913145165824407001060036320356230994669763286423731965100900915817531899332470644227557943452665268463954098529337452514784952246592712713632232994030076652750639611625674678164417043074711603119697768155605789081155248779957039707113425368811463761249620773722455286971280932036802610107163806330516347351137318404371436519694851161191785128165337955927668493088769312881040369500447367489670955200203978383261544886090861895307274185935085375348577191000309312185785299095083078624228131165017261178956575160811573641479227298291560530144107817085285559023405242921799320353911658260017566358073669990122924982774598122183689876454607775575685805229959103931709004830658700081463081845334512650880588968310075241582365454397074707427412041682628924626207065298980703905318856041327320299914227569842430347762038266567864004973993393929780324874674620975023322434690900782795855353372038145783284048883481539024824715506724902124325017650494861315732709207907375262883474230695081581654853589730613840142944148095972154545967384041893033621233552056107054427074439929204941660791991849869520470225050968269252270251351431899304208655168548238744807083744157727149212943855433434531116925722374883173415277672712655848725318118010036252151753604243293472962710051270948985244645715701601805148080307375906329421598262675203151730110906517979810747997048535825359970713107407535337199248615021662814634667550465440975897867252099143274974880682608937626458569443431721684462020268733643498413157191896233711729625128240694541164597440859277976017212652075878840457589317731446307762205839346839421786115207007922457538792279644461169201143428162185663665544102032366675371911308722383694835536298489961727921458985648337885670463895586935084293572683266862811724504062700978343997862669248067974284216744907670901113844772365597783998092517797170107778172913334946152805984080740982258763959706096636227489293760011669434268915818444439975164157163113243106348580282068763610143657371239596570564812928359993177526003922882807201200382216666473987965678021504171818751572388871352433553648434500003141985957958352353111823723115385692912539129149178551378760279040526714731618475106923659320325004074184311472862897455711741764431748582302643054357506400794388566870696092516171755326019686522707051322791519065016608302519882203888145020337269873426490177718468958970223219172846744605530958220011059898197297293987796460742571237384345664034829404125411453235061970771989174923681411385345496357831358499910640195864231986262440700714248077765776776823223170983007991926091896808593808124483631288472277927416688619819998521069589088537929090628099916436838272251507072130169539691130876589292821945840900441573237370849137420881493564983611302288278367001280095052568285600909638098867907552665896858641216067251748344323846216590577306110645839831722870791623509707939334858687110473318069661257378848370499416028240610947459551378224052889649463028163689622387243989602975710063025513490298287487426406824887194837011884118556017677868377958930416209874194970499500413422201115533748129572865158332335156214187244658554865937541097759704949084737631299689023921087022847025853362987511347301407463941917749078387076749880684207386931434342634720370184235243845753061890556320670493316705761451946843068038772931377535586219956452716541603244456944961093017357659048659717270674860534515999527824310301667876583880341452293609720625252541285614014299608759013947941676584426808080030243602400825114078609365311887704650089592382140049494631251982678597450796679332103537288257849683219619415585158702614900219669375918528217345638602580630132165389671444213329739130443522022396942241993025683202646729142666506119881915842185865436041421222163944786462663142571823575744214310283852563038666065488513238704398146653594836884327229226711564345400210987630032518873795844727814200486152299751822529760267868050203861431329808328688527789038451709610428426334392474344913051531580490891880071448369459202451846266725728419561054706495182486967229986634268611797110358518171175056609613870297383528146301268954383278368178102222476660881808276149190948093877228785724262009553134501285483355074425518929638820096052954106179428622035969653960187112933027280051609415754798890660697307393517095342651774898189090445327441285758936901117827749757271543522519372687680042839134730208182780700941364793936563321176391869501037011676380181276001536005629235910218746343438813503806531047182222681325639321128999112924545070439822912766517254774260787802985598499234962990140544569442140645628395045088614046178023733237404894876746821434829148042246814324355891591463529371872171423295497954305234563142885327561245214649863488292290465990790449770563415170337894725201066545433738449413994669971307013606746539659198753477900551782712192305353468903221701433996447156942764958110222149118195796068513902887521157615756787993631821707876557112496600736551956390691921153784285391370483081163717110945671152056788269111626577880410229773425664348754716848868139564888271774690763700174951399549885366557503387328550509618255767753389125427634984556841941492496899795658317049370884824097898807855803721766669612038433202469380874082194725199381422673613625106630555721598011640930592300462197178781133123079906117920579526832706375589811344755719251446531078886076437043767904556136757979086550328378377678230148437255093069024002809230376407892246278385747072156949865198095889615065162066412724962878941712363043198508080825963190880120116728910356083583406545742156056512909453038537426504983749312901956123956943208967877854483931078144044911826820262884131325748327875386677353656618550847548080556300100325475027802466043878879723988388873067006974802935620638667814713352268565434204465683206681968682510733771716508557461863330934644266183532563287805129618021520731197478694548700441348915817034720686496686353446756101805614718978719606495815017423220554510670328014478005775603533763170419365401065774700026934414218458967378536658510163699760490033867290478336050027224206761369953952070251073015924663962352108128652618257554912298278207623326843961014625835619271236242064519269539551858190469705064453566879840415330386855089783213394122616712289545661096306576789581868669115873362201508647783682133102521057777307161959920959376266299568605723709417413406661835884243906375677989933774533397143428904103120200975070211165065343245078284546874957449915677902527326066716349244932861424025418336620305031236375704871293427112172524882499372509878390047281859098319020642334265767967513405446632745478183113044353159659030513683978990062745503925256482663007981103403468463082390038178617851996587767232689820582265407133090710938609602674747119467492482803902625550831301567798396861675764851598547319965983838005169563896264948246328127491053829591275828820301233207414304955414394788896842717723383982785008924109347189320304231426040503410611918040940564886172005246656812437239803416025002463905941397440418720493602731827752737253999570236061188115359281889484317026819884553173266509985896009181265170409555904554010803961751867185990538035603511324860506954437541761497627489799496907278430449044120569707249578995131764073723607621971388221321278018384858311987776894579790476086579287471908191657836615622026848878121044071641906869289773280277759636230383863063052418559771776789554243094983545499083028724705362375030104706664176959734995290147808484819875090699707181182623505834859925670965277695142913229578261450189490604711139381732072581009649560323326923261772861412856380088678858358614221341079093765400756456981144835475540667966684587417375622982176264579147957724794061336698162996820964594444463850523494425782732890186403037992358099763675171482241876244785732226096797033240978693481706189497688549299449175772087148177954337505068450200964063370303508831825541640796621111232370120032605698357048131929219134449053578280998939689056292599557276944966808762257308042161192839618120705234748015360763595941355887080354249014292732347459213217500286533329727013214287907999591130818180239126468292253911778550628178722711586621711911586521466913731238174036629518208212491059880474756659502804843210381756384511643821951771392638896595466257445941009411329955056520597647346756715643877516290237322213119316027345363448428000559224261814014272150851278754769828199016617590957043144957287643237221895922657237563151293463753818709925335539874175525172221938593417135692025313426643167019647199539791937132816498542022324517164266176136954071223255822821435207884961803366111133929781195569250728592300238875958987875514392734194501848337118071722876421978533647720646752430014379930480119619006691867981776612597683900984241109868820563579585330690246741587493358939664501546406666780827450147069276275682375808986120610895826891133091483654232403136942355068690126638216945638995332713455392749107475657896199406011148708464455070112760877784953677387424681319389091348986112584502024989658307902249604626905548931461723347021505457846034473327805271426167656235680200204972342430295668630490655611794622211459818325059435130022608336050795540485062506120953206856455242980133425608149755149682833448271882237229729369203935777030555872744813451338583720512596206275437060645563124900669358780336597794456497605041122756898751352424342708768334968762688916853548399281506819046120945249315681581556483056620347156297873487623164345458173936066348247635515167172687495806648682000496012649160100626649391470479412270452643213899167172823134332434733258688883064118243466879765120136696713845079416740429932709143209461854575119647383711305900656633793747223472248866857954058860648321933856730016899639055029803761922835014753540641180202396905397738816320393721679907622667947621122880264617184859698683701411319465823784634480773933103324654741571448874429383021361420363983198229449058820271111277309417300959686726490381058085307689993252169966998542108555134183353705093483168569254166530599093637686351353964104220013645350646498398539789903096602264352825808421233897835084079312871390049737326623259878668394607397169730150250987715503949683083975583929222986532694516086690869092635369083171165610020023758646319346830695835726792348132225291028511559113410751096591222276375996681828492145400075325865261119199019080857646448429651261045577702513111784916126723459738639932019871662643126427602835599564550522548130305159241678412055632758507951814003979239654138539749385922502278970076437918009166856002853427438634311466925373736758767551980102595818110187281006089244840137508250927917606306215761326231623938613431502647024571021294491108559445365012963045007300596707342165314501794122464975435272614553030389149729690651546017141286618656396656120417381170638516753219554986872937201516910049612923509326280885267581159293767182443801126288504603224626774135688638852864035469109680678571436410196523581062962671990548817682122734601325156437926999228428471464730806375662141675025770624028392739556421496999433470768912423726126289398116963490665775039404605365380577620517174225150388742796858817669989119263052232139151929093700350083659437023652941252412587117024823368934249686714657738272774217667218729283609131577527750712358054024592104549437217809934607162810337916349359078954674736741738067991867268411626079727701670626450331312176959034128954048172340507263422210707790246926228549330516805161395106236217422195913711287787780617493824258687422680411016298765807142169255244106383524667824033660129167674611353818578873347511568425788185198493700451952611825594201809975524955844997430416811674877650622616308089873478572174169984976540766568980541425784811272164205854529674288758737347905513155019770858642841835451859646251938996620367650236314686364546487997323737380083118948657093290806814312368689031614357471858245032571621693502470611864588964535968818190019402625030795035859238192277593383510756087196648041532445885519589403460054277049806326559793987008009141575599173983587224736109521878341005086257672370197568292258585589840154240754525070236866525254071052562227183871998327289019205328695355687892369299234213199614324933649331303705365382839917148783276424366305476008117218997594035277792224953605470293067801431396386885226893555412739333703124109550846788592154142674504100998908749170903424271826978170164622635327928774080055580473932081998498652147115219291799159110194031189632993809278083539822955292177446497481725252333437263834423114437840615410537850870477546760275990199588070626716733236923034628280243287621930781002277979939166292094613428533078418226353151264439179788949550374631976500034026779984738490835672749599646311551541794449348203134587137913178229293395257464436689604469426408991861953289681182094737632433265211264756764802416796764563515627957920007009199074301649765916888737797983558027120268989042945336778356871028032667968133928908765845516188915168848855595339149370779432727830638742110698203669159499496538350339074934228123975629342960589449513044620325868258469036926361204561812003926966874254803159230510188803046406590439755494523546773995607396584269360396339475586553104106271031453050002574541331122111033867752303558295172575559547278233390668773664198982554377455129409541779386008974918326340172480828259091523681162630718753102642409118491169330854517487266988819513434670525064482682639314560729021905229962970908980073078313262977839627215018419601373767032219586595940699263667211838573682005275742413944519891733451028340428504626088188205553213131368275527017628658988715232659305010821514989284596311653833928416590674768750208943020634238024586192806979053143717669942117613754433068747256015665377957033577509995112296297239618624035283840295491990479365901031774678822822949776281020248502522337256873392506446685262755647940879963194673018742346553751149708038205221751336468250271631815661967397463626425063344547194534212460682014145068483308577737944522743964928202639406442514461700151807884803905816756069675301271696828350181133070491285001008521320020583739384825761558271469384166583637807422018760686813219015765109268307441357531539725409762461192509296362014628998563130389954978345353081490834289160100922415045606784778346206761461156412516682540904116903589738514501195933202498311207576716074344370628890002199943562960687984784840551693146083164817755692081033652011229024414792537983415188398019233276727754357528171039601136721180722339238275859934554340807038633124035869258562523250593661732253505670082408302710068077232001283137113173805608564268423995226019356245712191020067109265210483997814089040312492239032656300017912345209360626961300591601276802915683164792828792713211788088749871125612850062676283654600015992165263850971290847781968675678994186571916310865160342181707025750055666919093099706142399012949033755082296040955182281161167571215178089494754521201565212994471219440723136904774903766114850412578961744398132349808374940823496108779679167712499314197106472345787010070765341252316151161906336445270825475144038143491904512016165348493290224126655721723078262240028339033588119747312296657788895985162545788542846257679802136411534817953331086316631728187897582290414951583945800769217094462127069095877055706458337494679818846606600732931075159655939569954905388875648648341132362645391486039431344599518868095829823749224616757527729455350652888107916224075868511246970781993047760608471425401978474397353405097734835433406695507768848141253500838485853501935106299750847489979679017436428779066634103975343931876495499646787558075725224753911096575650473774231207323442979917820259133710674492438339469199335336492548638881958252576111233475816268878991051780567409445218802599693587613398285725442123648463889719961589523664122505007891256798851869580045746289283730197355614479681909910642199873631879712106405976203445672639357955704383821444423819645523011082606047368410636568149055890456838204267939825594026273694138537522933302526852273296564743559344027098588577839244870608964423851997181508562031009058053398997440314576518937310693077113678877360070194258283243586362368677731057274260207193777164191906209484461716803569815041115675393867827121675876520185723561424018468213448435621935631563184536571103923455680810361658387667429161378127440887702296448566624961073901564158664065335664572398067618289875787722106111810886261531755714684523799200946338311728822813271214683168794605634105744509167313280539107006283228057662819413974230952276166870108307447519259391188981498591316829076435538931762641947304230721832699380689638572226458306923929090243607144145188620100039454620143985740282762421632820251042801053792243887409736142212701102539342237998517336185981521294687063161556024094331338910813964564210687909143064385306061789711891478183429606705179635020528882900364049992491152722242508059873095459531355680920254099283312887092389149874445326467453960213824123361139623950239433726405090792050432937299904489064890211523116007279519650414161223165658692562237228566075794038152974098620012548266085033418968698626201161995330087035304986766836253353554248528597296066271289308300828478600940309183581543143368658286115106094434126595885949162730609039281530372259256745170928504276085317055939780189287784098128566175923233391854535983210207393804003263541006208007691312466006445679646116771112779464239437089767134034771836217042558932754495169896053191108063963548126732467065888582327598163989723254250010504835686015084948257437884075820826636110270718295163276440331094982580979171677386095013339607658571328449743611163150111196857183123738964256095293863611427571016307925497314488796658864795267239449692329095657775160106849910814059972579089638157150396024732007605611581999575426039860242152104930271427078710005694980188333919359839355359229388177574663976770538848331597152016177606030770146888667132841573648256315304338249152712193222980621776317948399528628078327991208164327254120069737254446921090719200206175494922239176156988236632073287304866064064004587364577955094064604656224141498944287502908190237409287151122983425553860290441767069764916235706866338612149472396991509922469615908340105348102239297414150119271792446940149408946144692218030786709077966687459441291554678370542998359184434024381184824701013870028082851199163917707144411805949084551414102339643512619696719535760251763412794822071753371998168566823763693794960404861906445441809081447505487270894376655668617593885158840384094432941953790253437788530526680840633996637338193479183293609834987800242260260447386140915168476647195105407579834815963679990336648831240636083970182666786105625019623568687509277577382507533960630716673967311330023356756886899452965388045452893857567853384523275855595805170487176040734261106492645731952494991198891497446888122620752508764578246339806490255260808265342128444713118862462676660961311971462749287801939716321519527779096764665104329598635425808165893974821446984406664136508638629489810782018805735432138814959973522990177386962687826520831494259387609939325707017028632551696389914358045043180027383726346503301976787512908202197021981680971087591128052878191647549952633178999146774412648557652299482795765479834441151673137576552612005945987245527258160455347789525095568064813623544505605994230219694635755203646016244749194024251966030410595828701119441357149813313878131222603651168650547851013024362746547904106066593525423014416040682887605972076075222540784478713554891767659598121166103488914235884376025767095510617903835668538545537848811220573399574356099757892849808970853166669009426276396529938782750624745887403801334043301842521358592188988136736283973962299819115769596046337320181171871017179997750543983971762795157580270214156006079935275826192788986935235504863285001220671725849102919376150186557893192666082740716737302786483605721112951317164334552469809626108550859808802093703432594772947522129474094753364049321823760408892662615053888326661479834688204028090629113474211454941963181866605099912301233035512750473638803319383082641467872861051510309142247927344700914803589059587568514151535422704980286830259854919233080494342470360840343578144049023334108603633294208793750935849475313407732891877566738311749845646572483154642926708900752093915606071096554025159565804169113810205797881548102880172197493304329087985076890250754802121280119680476856441590849005887631848536205811502410061985209617979123840825748347602478254549983662153701400269763311300230048396457228077928951498057822632776248106375361421458682885708333305915865736475343040118264696910972747490884075850158143047541599051946215500595040573699698360186824217722643538303981278100838800731618811932482515136440250900706815388808625555330648615751661656349426934668453289081483988951306130062043488695103901397330546210351353935560237882737884824267763767274378611458302097093471517347161093090416083198696755019612551236613641284175350804661529145302497460586378519764421707619118823117853424561833115394461952585755427534117511642208857574293906969850556497705541886809413919960977130974983226076484270211316814099314033958466288320174790223134803739435725370845439626082121082590448131980599192305528342833609170085231850038019427401358756332203832101411247587604556792486617883973085658960109837029070094148592725258498150729102924476147329404315521274814942850644703626001617053381208335589497664521434493714895360067165786021321109648650243927962490635638820927586304966476151363602818206097956532621377643645322424698038181393414758480914704259144489166965225329939002267950100297127855139486055451578378463673300287357986270819170121439821587095803885738661017078580488129387755237469562179969792875096308179673059229191206384745465195003146544035679448964351114176092455906813011118323145500980414209571935572124527952628081216746738313872370273339302331656907401141794952441271408660760231307281395484083061607552806233323680974257325686075684484241139882151453429564618312483619620892287065090120594929134312862761169780222493357744855038771769345362394800133472942193569634388113646433004182152118520343430220318513156020134835076268594042562450966146192286440516189069164569903478969314719869973621146108344830522556276590453564884049760556878957014390442932627555929387637515981374603076424911548517131169188686612371772128619990706141563428826834076994532723373044113866137022496645071898865429514747620828022267705100401255118209011831656699022119495403473624898527206668175541131880156670855432586675187103731536793054692436278386066121388226176331698224323508767513380816631576880823586847175982096330250717248979917389746184143371511857859865103003735963819455750421435732070903040458164824695201515246857950020322614695049858112947271224990779953930536656333458277731696649718027660959987811015341345377562767800940695585243308685236967095130839858316959386714188383790510876679765708828785064754651022253565416919571384548911679074581946082569343796822640820990326870358321078699756682753855699739540650981538751453352258432654155945620104396471147932172350025115406554353172957283531993012845589100171859479461210844306269762172919820490664198523777400942288737387675017687473270225816731781462359957127108314266314590503739937287909511177064213155624960622035633249920057943792893740465904137244506724159933797653646052518118063621181989820999151430335920869140253523379231736136994208108198636518822806988488600890363909476940409731949801470938180222373779207593722612201474253661914120059721290447986559485134223288501835433788332229482848019681482183052735479111373898112677249719762242689371631489804841620831513815457112489318325893482405971618252618215571851833212949539151880355229164124226915604255793670299081226415822747510814022852712971806608778201184050141915888640110269391635922412206198416569055002960234440395304919861435909185915754473370730502847412602349585538960547957041572761984112835940338509863111825751691690129182591140102755970172536005059232162818462260986220913711675944908138459776040143465394582469601621436361049001850157732389760885625739108423498221536442947146884425289246762566837133281798209121766790849897934574409845431673593896251284352818765934067835538102304047145796329540199166900292340675618295467278389080395442778118759280918811476458414350046525092142622174123128076215234466280452734838635195741115940107718037396382735858809620870098168774862573375113648310597116774045145142694661544344927401940779813831080232469387562401102934992917907908626328280829547602764807176647614656613197481008094351454804098609024609502384577015862222945852514122552329859308450922345094932990780450196523572607246992490328179561399991013633115107208103507854955301053260247790396763586457921218927859793568752036927657995369533917128497149199913816272444956407140755328175418071483853501576735659513093314760613382560604174698822977229647881032733155631101437767511644115125064180463661880328470181142403873388576515851956443030504279601818969615718295439721250502443660167852615070055699729593095194768183610348386470005744412706284019526112526495283306232825949846906399702900333106558238973732726606754411442823703455466234644737127142954671655547859486652944202034288771113003091180057062710638740544079161102534235174441632953521184713978211049447612932445218163850017848643424574533263686886625012173767015972624915716383855899800756044178914012980241478133780933793503640936350317551643521529200194503294920529053738295703045018219434829227809487619414817987823404596305929420491383650146694217900740497392013312876088080595709299905859616691698770720893321973523724172531904821204543235291427493561923751209867208949913387561148565427345450224547843081660529739101574545104093105853808041804022524504326534055104526241134912593794460654328688509599341368243303768494543424784794629460409151809984360628583190905691385020284326148052831388423599086218786013343208314120289017354294808489119936848422226426117865508542495384881595571333810495271645765039535370444490154600836398257826854517061106863505803174781493441354038093223935997867559333168956898475058194220434714034704316079388839340596765793585198461304121194144853512901660706221853267495728002656741689101442205287572098907662602540598999749676946429470932861064448501686136016579234601905388178750874928536593767271573962142316169735090228576980450124055076149422055858709608788573507123601365104093215490156788989700607610242240794259069813509154502230108377816599986932029728526156113367485453622604251641901955176754718736277518091414938322438270298853844573901796791748644822782939522355331410942777309660196749453464787861591633875195077480301884055025447184677291684978148494233009563599389926650051473286493082810165649864034016273674579252366121167553071185995933535513232259301702809200115720372112944672846694195730926673849840447368250293508508081676440181654013776929537656169620831554677116108929321406367673878596323043416103415107120775679326247562557629602631292257725080318916769266684270091172952533127866959001107054011404769426829161042711422224135159452605177626855854197064988171022830487521578512267284311293833087206371719685553858096188497636579467810073691988992216090110722363240426059454109412889591351377767673701852039380995615531480820651112722560491507951378018668994194820516420265560171690753730979696441629511345051834107333716948341468390193813346095490516535243475953721218143445120454686103433349547621891409474020149615021446633094520683327384319068162686170390625458124854549662833357710289548174093426221376206464730645277514069399968157173944973663086751123674085703893879751996638013585144299404994524605552278202757195349287783426151706100953366699926375064064095015229740016495664354060373271891412107669640385473902285768190702550323620757796407180479098272830810734544078005095854980854343295241588440193212312135613483872690874356187211707114789291670289884562942175547859990985772475989076610957275782333879153219682540058162373737008396485030029589246028042205499938038753211539487374959961745994568065741216726341035850220017243488442124310725739025436795602215026095845722008678430912015071441357615383639164210172800661482922035189323247806781995656796161258042191010152745842084490445069455073983824405576288755679966727162553344432909504224756175820370354871682205820867558393256756818271494362799461738367287654604224393988274812369955603223674975627674182329794613562555187898218073172356694825867315629065001681571965599982787567616448865432734108765556154793497322586862127943965648093077340811083046400520344521989013327106983420519717923294665943188415338701418225214762850013180767183363106003826953645233715078926850025493316699410786444280763367739799230771418411256759222535925158668514576813112936877326009318647035882374733237410379539223045620128141987154136346470324816161279837460997847496657159673749916125550741932380230536478851800914083068012994369991738493278039938038801948949992117425041552514793872587093268265166911718058773194414349464437721584752187918031594608938377882909400123306333093976486831645692155078764295683965422295812318231689718518865016300191300378114048022324481704041354141929295235493424344648825916186032614127806531075705776516304256965979876421613285524587937768038722179554075054232699643053400235692716451579306329311306570941401096957845102389981026616395747276186584824320869974942885238605508001721664667694611248134447816407297412371805960448578610726207739414403920227170081571591767110059742362407759696142931685477957540849573246129810969388877043494024658843486421912753436763750128828043256450307168314306104859087440931674020034473679244851832904366456563688565709784785115124502339126578011714979062852507570809999341568680544416576599196668767496080171538892578497256225925483867074899507343772714296134336644353558013301683884751823237185038486487311776846218425229429638091299169307716192978007018494046680815122723119496936493940138487985836720356850476676816977729816935422813820704400568065886752540677183883146102002067688874886935800891153024579323003254824538387582566350828682581425941480126107136684000385491924826477692428981889044712346502769921387543001377510077808526155051045691906902407340082133813686899178972955151419095253253371860732503794850393916228600838446194017623060160718491573560303085351685833081505815361831488427568378732330189648406020998927347411128108447389936045334842957630810111691971162807019301552487936004861197918331837959992683847036911659858405133152821455727227285224216335947204070030264250974240809241453978633603445983878700239891721467768134944721805432864557675799328666975429577177393041478193532936925068784443212946868844257190208053711068362341636020177530053082049188953550341157592335063371031321137989901452738019400758946181942913429534934312060774138489147530140190930148627094949015596905382011059728157630808303571258698645612088089978281149027461376848660249441255709846942631057640147586454131893548690736996660174330033460684052541982139429759896672166018554772684691915252407215755514710424837281122193130723412057793559139685147850179880929295944417891964941786971393782755229931816210220905210132686479484645491872526726090745332574985986347679212091569793876664054729662489701396023964570189915476499657581599745422321542919833765692111130198395077250523263386194810920499722050211058032423557498810399880198996384568153710877437443037973774921733916174113467739905166716570285906663149117003092857941040640520554839961016328718138963723736350355413434805811793713652399296177067319372947417130603344801642354332521732545572843297996111740982984299290879623554731042103343384660875118742414496544738146583727671506385693261393963508765558962551272050282049583980146784329795889845432178232437823038043131900503796479636163916251219839780904104179946514877813667369894835945466393181320355751072095954316315270602433670958490312669633173226555325878911259881143161191511181884542532542432216508897319226228604791493093090205897413946841240309774166096318478926841444239345616947593378303441633140630373149727862268630563066915856935886489017081609131232804407025831010657010306476006337453585715604026256928786874910031072294616081214739262628698254991868870208486730391462629893213150402549689429587520089029961378614746657274212293080712618116120716687495342844789986631409755984323651161967015919290728273592204443231112482415741588250014020821618812108463231368245470395822692288709455794651932310221504788203327877972107167496120067076315802030431563864873502250804340138848868904021578675249666254958639443267517055451021159179598599820558125622191379167080932933053317944536124436276083050699584353424991108997844241934068463744820789693463316010619593489999537935294875073099827842032125616719932901829432916551827800666064514943510454971999424695870149398711748191438119486837879404613951571334204305183115621260328098558134181575609489078760545982645604383598346607263820311999555332320481941943396365511756082625078568264745005586913447101054856832509684003833053017314575332430060634147833137690452541414303687495580098033547086894977561287140634529632955897336518489705584938803128340473763494612329230473998999267766314500303800435238811550638486472847753545912285501091270503417443709993402596400323443197777232894433640186201514221048157628371952212859771418562384879998219655364804088148003384351256099270918312934460516213241210710422542803013521865767543911739212686042891592759545644439473690765502301876556969830686680025901023463432611222127211773451967784946233794597343950514320356424960201285197474191882347178047891214377780705052045826846375819656652510097622027806463406222869590079817820700700003043462727713288298841351232796493924459597088560991900541608873293636172214107191275285698992389035953315979813367756695366788852569971541833806582502734577727451606963627883904285308392464237696723199224281375920394135759651426790056529187108036735430524025628520641757235800688759583596752584322550612710702938894311102713721408223010483542901394801698693136394704653862236432020937304185220956382891939345218507795489450681182162231472439014923484223042548290345581883699598706112296189011657435851499600860768360938731035979112060859982557745305122694474549625356075310177421091813011296262618375554410100896341706635654745912147495548955108629573833507688101901106051733109782291822784497676152071878694160892179582179826009562528431813728879512727502295794543399479062936001869401384812685572358088507292670734899233434755093719223838554316139972876387827739218192327029007080715966350077030366645187527192042532327987372619496917836305364291573069789521915493127296173549264543073003439903187582899600854424682830498852586580223449879996011514175361108685636235686075551768425483467260492013533505471744888452054722890272361502303705874749957106791842915044067221773347963084845393360089644632845081496237973475154352579979788816629782233505631886028846532128224586274744413268766747756966366873003954599172400464095892120676020457927597739736330806384812927652592552052654766517607634132700351058483104743074592965170010850281578440199160966418716355421013708693175887953627176772381460263816298066964192583200580975176206286681674799139346319995248012623324381272290997686814580690925437815286705053353208029033097014435071161416823874145361693988982599347947979969473406135384883234028725989959087323922537160333589782374684122062672053745953473891151188473507643210422061139470940375764703020647281242791234550370159339740584873753670143313652185190868067524697170103955264648687874486656929853824908896395193094492825560590139601338724873866574806207693184913213518685365248662428461824453367178672900513239963001150475372880937757075452503517404779190792188033438156602721698793624095987688242943541861481597186085707621772097860260835297141215625634694468100698709377177279361901885548278370221384485261537944173509778119101304531439345431823173810572315379025022689402406313718438327646819177880632622614204009767535630987960046721543615814169512741313475626821056798056417563814387168422864324038386674291039818511915988573024162433373117476815419442203297147081874138130954842482177489978955492743183780959032349309586161466486740738669579301509388265595687842877033148204175541451437247361333768163687991562409612326134114364194578321304086446461650083665397868677596325489909783718275243731531222935353145996160805830277451164029623673240463850516417936571439805206821213192660839601326210442886415275278443687905237859238109565158320340429683268746076157357394862564605619625293323308840127775179392605846827483272205984194931362691907945121128897053617810708266540637819454526856574418897940643361176577908702922806162655400813679626521655353485105437735291094638282357843855221231405741418458029727683609034395095668513516691372080233857174621189398141055337418376343383965363367672224865336274139838849350353111230875697168002176647688369891476652638864924180998101139347733392388543746155268979524654630966347656681679497528914514266894796102404659832897186500124414081422617338341462311651508411835114903395551148111378287018652778477960136540643108101890480177704022585332364052788851221138575462242582150474596531779587283895109254480248976401994213827552690386044890057888865908623400627327933520847623483044477873412310281199178112233037901619719394127141893492662399011238837036058484848098234663186125920817956839946165169571111867318399436808504507932876408552358577838975755988099767094329296953555113118880540850927162647487712852107510070281896462195973587074401961055460471856717522463727316118582728887939410053273107304381844197969749492013074167221343072911522683046765261911463796538846632715909416723506251778348347793719664893646466322101635138097220905017424715668584276173697908526505063915698103873052091137694777086021059394041659914896285361932784314413572502360328236669971715193687384046176964437519318170673892101408903930776551193358938668004042034352674066903507346707929052529030264423638665194633436702900388949685183160940536763982627081319391801198746421330817070904759968048641327838911861625254780639316210435889717621593462603793838119704897390905962962670777855593680647239140143827411506601255039270740411171071646203337636993533093899758190791204203285719756826388262565266028513896375449512318933858641149782467534453639153234083554996961721148732317657201654524728168664390012471006827613682896344138119928355631967203160383696961485044075389684791542773722572748915396979513692025077627067902563386956003503100326126899943328558992500529020144579914027934172840221915241654008564435825172711326970997768830532835585360975441811057472234746075381103126801581129976803155337081847363884058500023368681451776407820733428320393525866749704398744850490596340050813167477830458667521017159017894656525240767192852900443005087774223730995798472524038831322872064090790045875190845569451575916797818857916005496289593076251913039824967457468850616764203015077071751536375197279133636862485962213865906524031557486351580715574322759468703344883984135399331003065076329408252718838103697080305601107558668611380690575265090196288937939474328864464917144980499274238341924132559411059355389760509274237549708713513351714852170790366546185947965981842861233328512310529975918876185696638546125285053402280211088707162549430027247690728394525269814349705681296817843288381298002115827480534142676862142541661971718075518667928433188677743125495478131397241850425970266654839381110498281697044983359918388351070381387705949804795375630365616197041528285991455024179357419235337032135510004171439567838683517962208930877220582345928736114008132941652870404671493534011820969458634932901756015076377057841060731312578991206625318597009367008491741057812452128431243035170693786802447483970189527498249302651507756777729834614689678647040804672963902426957520668759538726281098332075703431185064315823581611471115508684786763026071854754590450219130648954627784190848233080145532949794467635608211776672193343770200631279105875610876458722460803251346064294154645745039307764467286774486844440198105526488265923339050044940873782439535785410373423426278819975251643087310025229650011348974772029154021981199209271250427768283363789367393166296965225011161660992721916071717766681078592861817897560654316797532343425558104063005598768161163813277761540779942675392065519169216961462540292432054488324496123993445614340136530379341745569032701808156779008299498960727998219930036913783475422607501144743918680257337975406021601130817917300153277078668419040609255550705065159361980120280288491827430614309717216492454319995590677781537299204363287742769955473791899916182843799903722532108618155493780138897871840620191878317330368067326252823281822460866542949720352868867461264240536677919107176784488895108975985328338890399371670155233596151268212594412440373960007232059727767222056457494845565966400936799913167011401750188043275960479707821376257107339849343554393508703101493258684829155348083951640527386777735096404124005813614989519266731677016779941855868341848186703740971033202889834664696799700897009547893740125682243685593264043590659617842237249854288986024817370766090067324547015732197181421499076523407966576383371963601363546333737893391475956133337602821069043559838995648465411442506269589743567762505996842833989786156846005852301777911353998878944838006226111771451433067776459499998585720205384008758930859187762474566677112748649263603873303744464286515494120282939372181686016697598486051209224783609560483898128849715022990403253768535914083255713030115380922633037990630986866573205298711509972923223284737476523577924131485404178383909914014466867340996200943882903140959278862269995991072878473746175158446672875106811416477290594560893348726621042779945080926563814393469165339116492251184952065585299960431617616814936971338080694572655998972977796055397613341553115742420055754066608584157743452134538541954147712373498078670228415950102709623107415373286807155189661737168731680111228393673721933718048033913673796606268041717452935766918443857207936967883955542918277271540533559545290235161240518564905002828650062487587356098473877255705036768331192096905273471630614438731923236116003255446993747641765511364128444875274280392561970477934036054408194331707815109002124991996113679711618302039099925582323717815414116855554218450150750772606904302713760397071004812026499117716909969396833174900014357732669587555682413201261304159926038433202658655400960286375328868491314828495724412403684529972282500261950767909062768222712271213952803122080205053509686569523122971172760988259545083215637065955501382022174442016883315130456153110485034703144936050625467124740182889873438460007784538314286321864470899115913845341546898878993880651099015859259445697543165699128532665169906173086371040764710172019110967860896125681656833386078545482022169417705983502887341894728468693943624720949688505187294968170903173929798872454735807798356992131963858587653247694830590963495895820082739943901690961447629809412710518903441597415059392566537681488726939392258001451731371760330352371177016029672350173250562232850296178624363972264786169266655562218836975965323272601835188549901893158142713767205626229147568156783271017720838056765133516943156752300293671276978072281724232398200798376000625823512140877979152777393116103531704581180025031630183513682026589549522891069109921009291704950661514009514158953289189604668714163500451501274940890950318639121569277903441902495947251284216437737333120031311647056561961751740382938357682257054306333486530190579548615575997334747836304756766438277045602231280539763588909718026795569519224795970459660706712066672805849560142252004999885882151247522547288229196932102178186016114813587527500389009154433422341418101680736893250022106199545188081976256636537449008848920491901174635570156757768195048917157087799101527828463729809884725261400954046101085161771761398384650222131324056899662191350390187714225663057635477136016523859539750627713341647194659144201142177085578933155318231290802735305603667193928762909285278017299413737130300400806181581829158893059094201798217568523790904158377619308456808688581241525251604636469433209024485333669070955693954630398374762536800395645510722128703764212389792372839979940449436321485238943659421820130656745853680983132456099161261827340372432687314833100842054997202380564589935231528837850004067760006869500621386751550569238569327403233819363863469381964339692360533489687290168344367686505739527176253790202645140335124768506777808468752686892642851562508405461776889025339103029822899318591935685103782772990309097268976586028633092858460350043162008196560183295995994407516250866251962338871000799891905716668248932514393576507664184827135141813842179376616318204539041751684968219691453648912696959512563226516966754520887298119155110240349842676324157526318484195778360241912696370259153597451538412231965331005720901883571018862584597731384352462136309680474771517415374656734209888003688770890810391562057236397128526060280365775452156514542154323667808280649803855494643856797075500117799663146879998530471295908077462349240569240226215105726769605970727199578276371733007144669905359821179390397219736247494337737523029933435916661796953541512220404954671887807471993581902715260247596727534129300947957717119709019362333376672446686523075589666867491731587877891880137364474711065884392688395858642865143979714797005638661847798351732057168883715259659699898222751656124191851111570944344006171247407976330781118551417096484534882624862700557024622837082640110456534925139567929560010683997978857850345835459500128917629272823780307143459475291541263822772270201708384766897313978450343518857397643139095879684505135720303350990044324736579000795766375721017143611513061757715968975209565033365471191886390440670419812537990345860669259900576977133894361963348802606241016370188033171196602004215294769885415463682185917744580649959479340353966228938897458656284079320561726873682768536588973409531402807203490331844790078508321062681268126360517526032622249434145449306181853455269915146507837759357122615401964329704672957998527417634686677478264064877101316474828683335008156523157867598715987362702181021084810537663249016595249312736425632939604907464391033605222423863034241577655471995242678821956463906457098040873108323009513646195862687649215476953625516243510614876527316534245179711533873697531972988207559551605114595988730728644432279383927042694866088787832660582703071782418812828543918707967474144358158104078184308249749100661052530817646431526507528834955656287701262885042033477216379486532736098066751971591336537053442600104585799199316954619049255547275278067626126484746696583993862351662899376722748484983430278314122236284433508660083713968464654647363398598610008416479663801557284070356475343468538262875976428461682357470233553659874270685012269123539532573620173064177035317764470621027927835568794741704707651998625966721102094329827399804138906647941985969739366348087885731655928664202541883800123605305266709663289325502964150034619372490975960439128115460105905749691996808781828280060563683749546025034816425296388477126392608981187169748095078183087155966417136799680969890144956427520217592604846120253250846529218668812280071940132199996883848817845076999716808634902109130095906533594700421817044034903557753491952163229839182563255044102800860055668558869011645041754266409820613318179537241467270966083798285591433809383521577639965412536941609456496551665745179912404846077571826148858296565373863141943818246566699691728161027524500646142464395217350108787515896421469610848996864085463735913406350695060640956809632759312458251270267897308465526376728531402412954865891317894088119195230363543609298922933861178989958074086211886004121548608561831539224431631779528884866516631031330681604549170621736605731024112150341597661466419467232679301914161736174643617615941066842250591844356296881448318616398316943744378031631477152324187177854420405543108507388264660003857584121782795931865654835715405204803990439895892350017139414768861951634572018883431673346907456980741551618843208095590716865997959806217276780644273263380821768414326519217348148867680085810786594844389631593179575390690083695009492047055925362139916652484595216403264079542598797670334543075682594740605524837001915648761250351471413356230654684013423825344834756253833301055578193175513689667214375155144448354773356600507405281715181408437163696476304347976497687144326716852018486656927783577937481187969356151828184254321108223487134908630661714316267276734122821575599951323074805787959469344069407337342209232998930812897348233324991021973511433623153456960234966124976094183139609869411513497712225441495051378364484863389851605189891604141342672155262411633525037004385472509550843008269893851761446153401011873194949849288248380493678462835168788619637351460044514640255794959639774334425435831647373204053128190149241601996065093980212004976000503851763077821546740839921989465641466424365538736964004962698061859793997604751118092560068695433109781760681788437261817306467491169873142081294229916851273040246503735580096742034775744656092597708505162582686372091666827698361115821368298607947313563079281883094683499915606183541821132238758267537448649378767728571954203503891520420496803885173025797157559533942067781212064404747684028258600323396768736623142061597376036673682892773184940883460837105083187762711092604526620335146834124349456732926786594011351977539773382378176662955119139453782974933492451777794470696927095577332206166747504795060776877572476341744526457043890336423945425428068231718129013227413331110543851396042157390433803899933892781422268456014446357783449184277955965953373314230821325749592683452037010279731200679314977171871123760875557862100077196873225794528200352060553951581773187301980453873622653295570234077991582157614949893986605369434054171579419517775505963858062430958984695922650309091742525554930614550039520518515954551429325810438591503964182088906208492310451540731046988377497513675693454030688278655868700796970929687421582573310155436156899207329106266312919395214832674103370108463016373766943949928014149247511221028425430386952781784225244624745698978085946507404550282680348387412273345304743234149601348297514933478802005453499106118570876864911141216633916898660457836352774850450821041863085052400037498679649741963622555908124316874153310880439305855928081590054862429158726101139955460350324093745566079400386552435402572304533313457552166080571512017129296405146597008019972803997375146651377967970966126913066776407268617548333580607148081075065628802875751724858783871033001007936304604140410015251550481309132235153997571915503446713352305829439934595165291554709332741092688893016730755477036887708191355865612767063566539279486419537672251908283548582492073827688432441079732316853826546084062478190909911067850913039586134739468856763946599793556712405854040373281872387392368212550759007545290584209079248881640559036014924035241124516717191365400472206577372386830226457141963241333767528755663604942715473821810810881605563720183569490437423770866206201490102875475443879626683104272238895488413431383465400562415645242483072646400607650627329296755705153105025309099037746089147398163798045988504481048934923459637108139758593478964105872668699993145555969452919595856577281194455381561301991047363420881313829499947439147678504980519893022481584915447837506155403849452046350102734595683405944484640777167026587191614802743060055526622012530571956623932247523971985846300893523945820460469292840357106128881441435332636149630308364036647582494131993247809962090867416399116780313513450212039545110931059109430926431834828691696691763307168024764743907455463306134294304684552880184882962158799939880571918391651435941638574146481222169108098743562176141936368214818249171173666197322898934724861038747595950810183411872421804638103717899614160905517463084913688674935272348821079280404245181683838418173047404331943260905830328713536058212301911076045115564069882867785434813004689988846465340691915443401665423169740312579249239580411246907755312707501447639780669986133883236074644655722223926565623448695518775383670608402486232369612912393619418268255682513974544999055528603394726988190696883779060807816878389884339148301061773800531582058990625310410140798904489822732325624160383104500286988406744129191574130039757146843009657970534635642805702836889620399828009891596894209756809870522264634081440779672828392763374516474633738368055445892891052109110710018222451518883892186112373865609395893354782574740457682912705633760255719510847324357776310643508421264484987557190077557877592808475366790124557922547428759192235614496764547666163890537391073096581221381251575767476477051973044131270282819340875430894715902794208671711001054373121719161667928408085262294035236915987093035599775372332593441004277230633729202913519385460161000965738956232116020970846484769065639131343893243937250529053753494544360955866603214928014712981646844169271876065301165309692304148728223956265792738642976260139504837886547530186485167610002747007247940251149157940404598541018795061382474520804607366809065640612948395041226784116132707705882717664502902545576419759428491114339789262061091675725624067189408983513853941945274248934088941350156122950537165984847985183674320744951787516407516959830966756621068810595459238820492775465263365138311222327101566209648003098610910575412613723419318745112231384085673644082040897214734847867341953045150132738830994398490668222670894065125176708275686074544946323446104317121367859282006365868913453730480633342779662591693634947572384014082870163346031608633039265209827764308451624999389963641181405552652199652046285694758064023601857703813166181674567506118978331496755313483289485009962778201853516039524981568350620443178277606330772556209500595532630382401261668032678861819732635106350765151363989666311859984447241746848315755120010531718951536220906719090816381471454664226643297436453538761956503579790336281083259845012894595581230264721084968185771932125098861133365329637711672823635308292343779781924505567942218652833045434974272315122007259319875237252782891941867954831185113413038866198757519665043271032070439468181672995890338296907876641448125296732696164090449098697465868083968610219550402805972046551042561688980773165184448095163466542705205895735436837802679841005597435876905290989522154195811716387770583891762169878455023913391197279739590642970188429547258937862806129156640481617444521315113039736576503915158469588209373049095894366337582102402781746307859598994218125165820688220595810178837748469463776342685647453749393582949498934008602857247171772770172345184190407086317859114528039402686181511091706428752579531488515232084423389321691714202870232235229702604128821665414367090818936039113863803895611453212160431389785689425312959339434547887269490680870354853497203849193828568953867039173127796628721820973355114772352971012759641495430806815871349846071940251164222641327914959198347590547728559321151314014812883056375797337645536679207820818940465708860057206204618763801620083065346298586436708433893276766725037375778998765273566482435665177192749179595752719481107085175634455283159693740787010056675039803616869586918822189706044008007316831241112990407238823853735817983175773239416420892359885149028036228543658724186652876642141788923942449983255371889825328103716701954380919816254664305316089526318685247130292924094852619252254527536065633081284232110600594239634386840147948840171911472756781616494058609238818800145293676923589942161454889903564512466577957075509850173977031858237731968664272992008057104972910030279533955354879062756013405656084667681273815740644765705353195179389522201848198415719702115210540491295744026967448557800517525222331993772020745785398813056908050808882251379152334047085788909485761044076220284487124734059400475931995340572218352286903249882982396486506924011173577087018507885084817293530987098359319469858621491683253106590735241893292380583456959850211231870271060942760137580340667646141841192736733582995568336241121515143184047460233992545607132788794358654658277314612202603926957800720755650330383182589492228899944623698478622051964975159587720087451513083369030394723180148558943238103461540931070084656524509883373008933759672739857629521676881002112047814064386496534333623332027712782547753319738566373991339458687957539686919830352835669541553397806786700818266649412943629654924661676261006522353815771356725751088830648586832535513978769350477692438899043413808290492493908887561571473698362846074192718062440221928320422648178790756787971478037260905381718794062602678390781107400836805008384868706949122795950881937959455095758760644640674072157379972377046280500757784526862615027433556658651517186589473121070958940963133001826628008949428004967306016741256625490760746248036588087948910055334159098850596607292440152473153889735029968971934045427815796518423425048216085862790311376535276777373856316281623134791279833176715501463341673054238941330121085687121982675167324580497949872405011805362166626420608653798283451830680780081522246607634825373892622583217743510998985045562682725959308215018208879098811468479622672341879431956732231758325641305248017967340944916741319301778342767421455905862716904350464261205286864949206740655427888243022981616967404497730130295498274004001172318661525395847022459671211389943067600179819051779364229434464876046906263599797083525146249921990399235092132894080723054577563234429862117916564803185237249911476465099090739045067123147956704758536657711705244729011960367384876632312099933805854403711408133627087004924526986291051177713965242351583088675088238382884151807080363384053685693463169449681704991226805310389663539684466357138364674861259645692331989900062684194211643629744860388774577931230256872634224330236191966154803362915032843218647100671928412073828597569579257198753117626129871194426669611568600723065608034123037838900498875098023091199257343120938200113699419578773324892865544178546943517359374167796780475536912446864255950958947480389115985066980943780844442331228626693905762841581758872685718497361102560651693304580144487859755529270698800922914116955532195215811095180528475443010813546726050858447975928468990169861942985883555287273274118783694544589265188615670785432689303418658071908285790130645658455805776026175999060738739531524159225443088071517977555482705351003110313409097326093770800368653266177892743199062501717496177873980032555279867663567230490979135124144596302662244386194867386589243028719695269838149250369257154694552166219894676180818416792868484883715059360141604717547970291286479468649097150945221752286851969456924172735925931218953510066253745595248653979861880097404894535039790633988266646960772119415776798315423019910328048501618013198362721168768611812802664145388927628360485678980614019108936658853164415894137654258287685347387110819464771958596205618384983279914706681165835371033629323058130707201711570496627449633331960613512955310595306371122274876468798921559275316708516601734887689209023630305185982914672412073650552483744729083467137741091123473913452242466350560786641862105819001637203032649223473249021938828191635081793093706092371800810301325921867722838044196397288497667731226026801055365726516124024623019994131163846088461340857672442635681798660468316648953750652630767986020084908523880347807441455574607344327962036861662504749207707937302569144760191970881592930548896769361864461680596661722246567471741594170870391454030426010044251146556958811689611207987793183053064252014010501368777349571791159977454930722807515967049334584990919819457731359939948859160590512648896621197356449975064998326244455389715560197291283409250994024518352614778890005871126349523598249220977907081579142650478283846857532576686224897807739959536073049924358574001782176749397977192839432224623617110946099521620771223935320065426885160399347373288096797265403487493672418068911865996601025303512880239313911772695313212558062135153743750197599622905034233155429512338146352630250075471905825043041567249307979789229467184259114696981869977376010313214966040623910084920894370090144165745634698128466627669210342488715485978219540608221261326103132116299215445192903125330138752701769494873692052028303271915814675200010486555512843690994914449972658565474651225918831563162441184576717369329351881023631003263925428397911858589003800299027822643037761365627518071606584969607450251823944872483424617061414471053228984173684860902389084437337467644163678823581351202098901480973096607559208332160618421633031657506360288261034203615954622283866196076442936510900748071805175484899075757887224371151396565868566635929978393662201713885748402508939925687216399722737527026164869897408608083183962391100209043117335322744664169683296119326617841619060934714278938055873328583166771021379573630407263244777159556132971183787365913574335622688823469463432231386644157811555920634298972884948934038116395095866104425562839289186591906183405235368629752842644680822651885931959666892753837506596029201056050409677961829886502955705324196281852016307309898954200326148944323229620790365958466261039230378236501274585459687126476899014097897117344819490679013679738182209693741577009565548868193028605159286772196599490813330917033127489998403315346465134290894948130952167886219964156763143941281192426632781080748062557983228269722061930579407721148284584289482914909921530156547012923521550463669974776593382412801846089254979010635959439351588924169489045953472585282259427103604980149732084225506555566085277264583662607508937986945648351896992962467775745984801038836620800184774177501151389758219672812922165584420605329834542122198590914515793813279075970221032999110368488274197843842153143691850785538242590861462534461199344018771659214281535429040389358035581424710189196870517199814275098649633484018053450642177136133700602186210746034345819886151218127481069162117803139698387093616601130172229147542003030484016149405859802544108218516406106271944410142644029409110063542401788302265276595079324308811034633233666136925181323061860439468190593613730911715941335239848855079172368519406238052403372361092799789272612141160429227193649106128228623814981620900909485326021668133331141121277162380078025432105997478372550270604682633974154433797243239758116416236652075533818686339171577953086400026442802951872333374786957527370957908049973397622129384044675773828218405603440190483502808144070004703744620034215779370295456151350730592740750173358467190453778008673222134865199079089092294473191855096361068630211732531604273861195536248406846028014873035437564080641361780882793097346073759660116652430571960441858606770023325218487907168704565716382965542416182101503550121244354367893582808093634609385023456048410782717436210758279410673361397208212731713943393564260468274814440665561667797104104302103741474685620372706233256113435968411566362146448843703280798734409716532521121171894584898545944030514802231207733929011580827194557954575710035666739577475899038851943586375708047614380174468503879602110099326202469820717809220829756059765846678410096791444224942237357920109601463240700900699644336004713025639727520203170071733702346078554978437479044037228056246514339639119734506195545183510818901914224344536398278854467341447232654389703707429606227384799575577175621917948487690466674012193654027207309294397926113688890032054706794082652022023813568317840484297092384357772929971221644902824293571394812792222225021643476900945112397067065923215070856408592533773913010981340148394374248961063392553484607522177168491801920953441865721681274107292995116182092418649913431760842787024965414428541156041147085251932682971824958055757382804944076066766656578349545128655629886509789430846530402655586187655565458172480862541776404102862464182997383349991052861776474192196313065850201633306769061723180170427072372385289287814093022312647181443542026239233806865946943619531740656136402770840694527058060661217663334399454204709172227155783077704312053640477386794098202188556691038275910956881893573775727598839098521180535902272312420402844046057023839844731866427423182262218262556353900941101516003996303042284977665099814757337392806010385177716859999422870739412821311555124906566860347587064223420499408127594877654583448523911570379408131702018826368883250928632510697205538347946949563092139615008496530316248445203728759414422452403542967875947081896684034577773106727260367947235692503298707459275938146815388225505011456223572464811922039416538892603733516014220173198017801901770969889846350816218527152625631417050619430980094594834703070529955472953843451999169714265167568295954618389062090873213173096745788157064459481359176064026255229352799677958381448488801322108671787330538855260880374419081007297822443535510551099881887146226695662069786712855439526158369980268699691713044987014766915610025176885749989389335658774809740848469927538102924990085583920810080480717165940382331510548719974567076820017888694554365951698944512971776362376184409039539039441786972442073347582114710292147565656347947495214557429387951134824050141522241116002042118694106833931517811087045658289993831786896995514254624586102667368696213233634774021295272588799259555470223914230006727280284734586282119859416108036528966885342731199259070812153967294955990171322645365484173844478730432401412610946049836723052684092458736905517343334670739624588895686229473495150800791663617874631654284861215819023842825958051858653856571361440615787391259461044951876690781298138269925231253100881484704316151517504924991210814453705527005898651250491994044052580245848728065681386568646939750586610316591614196603060635600760800515095087430364365674177867392721963979285918215292752881420676025583747701203577265644390886211568779217276735923860782940522967929513334046323020419121931346221840146024148104475561369529668409606915370827470507113736728369343133564712476754387390938269435795541770804072617966104232923968609222822052436879907898809018027028432475690165707499965752579246890997926003557763808369964444596098611768237039288651898574481785859472583831709560761546359020451421891233938326263970029477101012619864824226814584620513559881666636179135307914790500854578833127700775856510451457413316725932613189087034161587757993687539252647421792621022067608395620764562107013086076387972650622359955335602216507240804804875808678243505973406345100799077379178654906522522085085332025045251722431514598756053723901807145250850098039114719536899641128642666319536424201131132387936464841801066955554274149226410834054656137157123249519157899245836717164583134271827088928748406969798717544995580941342655162146103804673045622351047621112670601535723379880047509292978321309365688046144631977128552030855394530205671909164931248751328347411090116150348764869408419371168230650910630589624930552696586273147849315046969746566248016835206498957465431901067374252703133754312939257272762830397688711908332349934341971368154677680499331155253858226245621889185959040055689703630689557251258110284692802488104101432484290026675735711545454868004075428512152865174705152641018534041864330031632356460851321698461507271521978228906852620814203549295545768251816037455683223646251522471555273949915984982720269894790487940185971418485894944263198538289022129740360502935889085525793686684107786624800033331410289030493691733205145498072590135886289009345023633328168489311606725711560084371544125927598130456736121376364001598213746307128809337678481284582199236167099208551575693145820469706659055911710341971295764412154443138341758029589668142271854169932506278145062881563642793257468809499128344479451216149145636741396508170390233122061045681406645058807112341207840932450729938602786924557152877473586775486400655144549139349072848037338776221887414682126868034955879931985683384339730094954500702700843034529639326119744854080447001323555481962341838497184980526942257788585970638055807122412011429233433950368099612493816448340027178127663514278357090545935717006823265141265661385624042745420040091289703986806691089296264560869623459358737784111920300136748005674046540131199314341253971907644464075610699783077306637992087162874077551227192425987885994300334640687474470631211876667507570448379142714875978358223699189686392251417181461888107744679743530100279530880243263634208535719217997335945290117406706579792927664090924120308923569437203551425508271981841230733805290736565987000965806851058912965070446073878819714332485696570961495314882037054614714823592890688781435282484942070313233402730752727817601133657487741126928403474516217854480060924771152842207477397318275009303603393840932746793509044665466785391082862237464063067512117606303813771639119997883142965674950400600934626928089052377868596075253022876352830571873352827829860906194176255859349405543259489376538740713278098698450434505433293104789082812983341540796058493719493797339676147683569684018301860344619038343258633703982170888327488030034115536446933471035460905232487907220549682674149771474676213464146089152327728328137639508242179788295494148137898592211003463523006490011466024084500969752738262102160076607985341383442279745000901942127275331288587785771983248523429594418376004559045665030485516709232909061402023302452529579346109853087857698402948554476516988970279917535658728333831612126637488388830312831731135070760663922879807997129123570967354344793028163207811247172842012975518688621421743111920088578836555434652509752929972712581583160092475049506396112730292699840869770306599152636553682593503744632335633206584018794345359945055957563123376809256526709744984224549444220584425622396772417616025034001826722127883756117859416567158199879065311352731481951748852015654564141326089632494285382088900765944402056793393908755695658529610690429041335454357576236341474573623006925437698331268260339599940766284412691245309463693539011569441950566829941762777232346068225631476852762882331572332325754889290992394582143960578343351824908894679728205686906807321794385559572745708381506182190927091400525602358299938091763361407308106957861463539301857686486033315058467482236325473307733756788616169828893313187338938528831349264716541887487980224965214469827599130157975963066565474885742488214336844575400797921876773900429056126536035062464812896877965288425479176097866552696217690917321001602796093565153780157330828752295045970639893701899210959874046477320059565044453452549138347892156164475468727791020577114727745545934174007847957208460582166454750118597443202744967914274496513943377936445512521086164810169690175953614975164698992970556490066923767601780468557782915489019225522135814800117009606047113755794209451135307567489429617205648935844167331484129294263372209004542903860827361069053606107975986951516860548581265471937414266935692780150874807269306540715400287417405428649821139618813946176070219909358344047174212516869335285777233599875825719900046355276470471442377734083016587341591276596853397719636716892073770898074445531514903198493932395480506567813784950971837296103818434588596702573080921370266659259335374834309542850213765160088089691354537700951186248198526905401600822123456514150934762288061637172640121692944847573051725691029110253585828974863355956191010698603334423917047395053339016815286548443891737247512216976593441865961827026352908606191622627570365695752943735768872083094322968771977823206359400238925349044203355805067916810126489738729069219835245885173943596896780961382457408334323894484412079372084796320812891757357630285411215810364250089653747706066938042274620904673681131340355807849226073199225840092945371471017986744085460323919546650722633828576900228544271824369119031266258395946084444144454154709119214409067517094560735398462958730538251746998680536505346441603494406695034751862773760569480384428793138322774575156941575649161625078494184497240055938529632083880814557737184990176023900162090663343401568239419337837361448616596700623892258730976629689886241299497382242283422257137886520161187489817771794127165961051945973769064945726929883769510504352000658405516827826576960815818410680472823437158482919160181096748920795095040813184371210251342943435804291190649933801105980938215449187076434657290618789084331342820568393267221705885729876244554084957665718142086847647122185318492068857812769683785185955990249199529263011561591593514717961892984136442969754579771173791541136842815053287067489481784564092615545088211168315571588923184783346040709674308985884501963457216542111970458840074200999381263350138702006644007589768963332823645912094149551573389547888709146375750763360631106536081636938067737636203792538586311175908776702543735507652622071994352598554139663379630562457907135174175213425281502063834328369779811642528394975178743967135027878908376559418651708098705237695047826058122918274782918379906833885630419830237540071292371762009373937951960380428808370195781905883956887462424907046631513966282069656799951646264395715340089379683980435304258940580506037693456048603252053013292683173547967403674409477695091684065011671779050072967871556487916804915801317876919963669591439813807191576514960801755805026161632826200562532975804412014871555688448421162262755506437315437097111721620017962662538184581002064550859508623622854527383651909175743542304001759081080754143871711096676391588242452495178487948867862473740505527996714171015503543166568757008263998776796236056046482568094945830824931452223224774035075590964493035216916337741645078294793759708168778824552394829470210410137388195962837359467421837787093268923331734231090280188832487539403635550437190897300587107360335733198229346835622476607356900408860502952846946484999593927343543481562115392426761098650358552897705680854520122346523735073635788604119382529752181843632405742936365834695379105795803278918315244489242804781745555519329400442323564472283696915378392022584172901826340301983775413395676266947132258933177670970182342968759842644534684025566768238394118448597829396325003901334197534945142236121992752605084407818922553525477780749586610338078389155273542076207378946905481157427205163647094220248215214145197523904455951445159345303651822076365594976042408205935867658522594034909772419821912300381907572400060578940316045133427528962511713444821426047329952235576841473010459084731574537014261391719503189068475435770523621305522245517464041528370862982564717603235946164030772979104755684047073099868411595503929238397176999742226989938177166974388054907297788193112700480201636541046695113172593612580887411862589812843575767115090293506828813161351654783089633931303832272206635004434415047378629182209390385666656102129063310093718670923604573198139711087004127065784529022921599223473983976756531805180288792688912382169145286931259937527993315627780329673081355284127115898284200482428468747793795146530628671473632993071146808915282148541502583546226761649664119845229569932307674801077522297377863901084903200686641855893811002709285853970634755382045476316612908349815579348490120991719632027426223280555266339853498261016822372580845240588858670828154050973288084396436708387764744076834020903615391419509144025522701663175380074900944334970782165485595646087237950795942806556920732802876059394652949872498340508472155076250913805998777169201347701209772998836466482375241652296924712493126308179123819081291948789273268148006217808165055810644410300997814559857720268468607770002995896732757659051963764504299261604675413070289465038281779082561151159426348795309958178530537748513077535934616002399373097220623121531558345730484448015170451525577705359460222252906105112889159045910224873326116987302579475563054380127984892415508546048353262631499370886832909563373027303147266780004285607307516495451964412565716746338878741581732908725637921261570741378674430516334947364995105602055871915452688863639871487767708510814281338785122396561953177283331385565624792336202237652751617895879061731781935444417406381594263162561434404436774245304501622865663477835272670394654743496085387879474258581223887765730547516432996192941056943741023274256884732918047325101025410283596297319334385834691791467294628409517244532673906263990516440877215320615987830951054478852188071005682091153273462744571819584584477990279693633698683767673624872830836096503290765207973423010047036182464921542700833951988550988945068485496900571327601377237470604503034957101214253262213495185675288280064448827437511206767064890869280873737295028234621954345561927080395911683064875283964762735342863537204165035822154734352833910823839006807058977673111211083849350438878132293624669483474993612366267616560212652684155820871812101410372652471927751013924001041240154241650109314717344517454993140622947075093881860150274735124700362076416434519834924191554548576902185487368078979033306198220033091476584293652918552113611931345818417584951266139396127476368878126418553510193888813375403856277841396646887768218801075252714943287026199710844566115923200544313629519330807822570416245962248131707792856423691250712663144322069375505147392244184632866721266555310905269069093108932993404316943422068659554358030472056201612609403022637582570551545706688483562067204006443587203110394200932650769970126677731912129787658995709653531938921705762025079070748211540265930764431482001073676172013445892176088165634983285688594468920616262580869160460276959873459753147200480849916631090707739584566108709749685924109625356371442671933698926827228500665003849532958866064835611389108739653298455449095281938600087146206248846963764944418284067485626524130125075077333949688528910190664406919001750285215644924963281937047943641144533995778394952976659192349243963829454351696852797743912241091449450728465903716428506613741023703472276518599297423250542026553942429111594712896992089400944021292606008422979619697076567559771825039852431128779855616179253431205997965915282665891561166440042045953476870459093301936704767598025182244281398587654414672612832562278434771392942615147644823962933625178055510535974240610672709956900615415306019837748207309751529453219334074875750520658979031842518505471780063370353518362948710295974049783156626570240036715894601825083256439279198555739065181998671383515973983644812435913886688763816485052378766275853395887275719666915000331297057938337222488285430546223644081308532021026207115194400355804057696885134931088180740006896721478126534658076324496098335176922608520225163345410957180726841818633556833886990404751261205588780719342972354792998324816882324921519376232079740770800135838764008310066193935182720277692399175596387256555515836730901879656388274184347737045002139012780358272449072680419014156066608256258331163644262762150000700343215900400972047126118464025817265263689450369513664084745829807376047688335773467693152899055362154952655265833358402643694531215346832609483847807273214728292209964717208387944497860403811524402455683862042345054174413683345202307478348523990046970146613777993714356818869582384272911299999695369981370771047600494045118415021465214467833416916835953301030827556199963338733888010935281605304117016159284411308198840546771604636789286208131075603406068267798906889966456576823483342805765647286282015601346840499395741054255069892445220731090714442340644430092154343623794459843570158752632317802729092598370360937838469895842493538528206270069018426519084586074038426350080289298107361344654195126393176115151811199263458564238605859729421750674467867415111225851810268173642788639988393221093354685238480658558417299630829505814982841344236053761823012341706620798609462471008697772433702555415773100459903607669556456260837606929393852897410012644538520654058863324429859242886139779458026340528476448306455787116851538406945514419942756444522054829475209202907171711239559970758377984364443861939981678079672277139975177132477484946968757581469541427060496133174545397235054892474014587802274264596707894007675779006616178006966449704329901805840812814909781340893890981966038986810289391590812403211511236783039692970684955220032196863280116055428734267730086821041782473911720627033818825582434649393224473532794232281165114148128384840060634415327352396506906626773028214405195113298818725700420611912468205438236467930785306045505519157515091737831280993337819306123917440879880806253843776865522780559918142689422572557014886506212389817033237158105494244677514463475811930508613438932531467436903383019074747219895225240307929759973091686568728739151708369311129740993280611509350222780812129336722263373860812225759210364172032834672373598941986568855960537509113074826695218575379244657833851738590302352026588037998368104992626874333796560364965881788822684326229598322647270000784081186138401869773702207701982192315653920495172176482073603812555547649747290243858846862080204512943450045278551350129688923074463649978526996069090165158419497878849457228893883902589445003323222877730959939841416511210831889037021651562419234695794586871089927205036977126041180470952252658200485674019767639780396890876575369376561105324316453421028825072817595117551331933812476830279020808492279312734831219926904549932097358916071918220481627718401389925335870149967601710062531904493291916498858297004390162980638585301800573572995743379199855655017791872989064701501275707347479769433829934894736436696957750138475278861357077721579444719322720752866120085084283703185479244922985598180732773457629829708887226127511758486001741508621233924723417101542642303372530602395746113898119424722124436879885117143852706537954584421410334376782346112113338757173318338449174050725647753865054396575871620655091174747620124935175461717840266594202014463602581771736767462505321635663289825182152437375482031962580131247727055116070962079704343839621773467090276443926678496063447766638667352161492685458904563908762474652953698197094544631999297746325552872160992408012753971995108127294233869918476956996283535863154326652863834101914562027700144718616175802838103263397919849866371767124414813716489816927871423604989468197583008474352386175134286085931658121072654286665123123799954569202350952617404145910773233552336105340122053930786072729492099812536139225160497636811500926862877080368029433863409884453951119869417844428663118207901962133333391078614478335767567146918215103779603127390783689836496290271215488923517836677511664439174916209466772895889073504525309126186242718269804359389218562933147928220168237214969791186455465970793304920854826025583948115290991195483546978321543932246438965074314936816938102259099045751296576796681820425223617152234849487568936727373340594428925401527190276834806000851772165890996052474871788642234439717092816572720479518745257194170669850065083629210755312955127000269243531843880414621552208800865883806225082109067889118319052466798220091486794753342299271340714652985868888904062685867802256232804158619074527404160367127899522869420140986870701398539137145430719312266087229052657504423178789239301611358967121496764534002662219298840318583046003367486493215238799337564905737317947178039361237329115110411913393837753339359796509559678800146261797919885419848297885070995225881445545959441239663010458727789210692553970282844069362258343086166558301817889416091730916458052715112525360079694638356182789899274458044963425254791467396546858949750425317357842031741723140000795560977477763197700681977296312834765759018454129589936710373284634026597695285374092285626599720709166692386655135655705689085567238455225900433252313674863455179123195625218166470892015673137613135462568754087400609518765485724985761697459144283459969455438093425928585699656250187313286891601318706154286144235079557841385299470991604518532141933509315413020235168578378825622357923544473728506993990891402148506713292712304722274793945642598005769110014985943763361137915372705453923862356076927625007795559638914908375631502226177254252839046342031123163425916579066035222280033719420945832745199449169973648696449681359387295280526488289038252917423881713131815441253238500186139748600247847499488158961098421124462408390347708582910986857625328146612389980995564132923568796658777334629340528960150506205429222790367285476271481152596221853393612135392726937785958843025499436271062647107613573536372724597970557027857273704398717677430765089010683841196265127581295356807645131549815388301910783801286287909632065440711131883594051441223918141538240476256401598103988123824631016692526305872889854491558375193120281991991087096013071395777091261540685254813480892657058800643883481064836827837934653365528744044269985791977320020320475015336937104338557773558058331383447559141837096753425510447152229099854192068257175155833516036415387173896352646287782436782949606491264873797619867535556867855510616169485685697295727487869641741430356774341018484558311027750378552228947215350493025357579109577762135170677211051965825551843399898012720391770795933365628876153164535911405262184693442037103308908978941741891068091129257251126594191997174945115656764556012056316869662059709076473449114016097946806036353146243445885133347342378330747699709279723522635701365359955971734487794587289329635948117198712162653185382330853898807824497303391896715759612083504345225523357755278827534308892720398358618389507366379547350367640459766213434371014827309012476480945981135695981347614639684074089334944796481862531146899189606299028218921357358407537638519411550911560970110274589311051787630477313677097282600878759501729092592732377113468070218073252265541508436749559280634173764808250379257085031093292563769023511184832428792862875096960694136310906654751920224354234870052553783526507850759354890532608480493449191509317608113091599608662174535051411123170771531437551725889108317349842036644280822604431915207475826185207202897021079931273161682525633695190058552643866356390740798424901908246709271876657692584530213531415335408313521358327882467331497600005271739200580810586222383365037553194069277398649613160474298631767802357227886540304907490776937248488222323209451307635305533459980415327667639379362614431284907464152881644725531435005014372925361982048663878638184201084244661598252730133422064677136299574840078194415319201353778665127315544332135166651568671221766284322493507316041914848935664769723616780296585751845490570256223073638126353951731587370140565988623403768783335163873274101828437808044916419218218559317260962117493102683597216402814812364446877285135261987888908645844466777293303688366208162349639857426587513866298069726170284931409030621131959044264306473002893823673964996262768136366110188074261216371269577737101398003893267527858980320246465774760972138307098166327353223227849340023371196391994171628794127369775078549165798089086000100148050642676476687174442562635092813132325084787883441253316419293228873157869046493466909487102968288314259734522504921689662649618106369344048676139869643183057926500602918517514514171935440399947930777372021015590514551606579430487488803284162352725113574929232194146564165216854258276992995584836125302576096536714595647715236461858413783610949778493685375237738721485249651409063193163413761289035459765696651172626163777146736408801134699436043001169602184861160526342458519259666158587532820926034357843321398069342993784647352263729716227102470905942088299431459517194951073085260359808915652184519454702323594615689960638692447246242284606520897357741564541251238323804561670812012932632281786956051770327585833274790222669496857479805578859296235714568705108877918905721832927394240504093707440762854028819459343298820323069389870572933693455401669692457121126614672862425724480353981786835148596375194303741980310788899798196785049539437955558138121069086079807809312019402780648775986804151591629672209536537801865082858278463466643576134896741716161026667206004750727211595840332482817955952280191013546877899290563885623010363317125076435094058132123475033322172093905032280491369469013462179892484537628589643454324927112649951569697333612529744136668186560368011372134017853396375121025613368768815550894834866134992889341807840687095044864446476597571308697366481805734824394787320149313254282448471648253984367345337080873941702798291980915728899628721559724679678594679803147468473165170345048051325440683837368491362933510687664412900567934919659234943988581918947055754372383476127315035286912765744724864485983744708352925787063384730253187555440047901874575563573704331269488019016834329519324575137507020632616246175633147485836782596134755339564486587447257925905174032051617987569335052211058661734348352879720763865836209851592983992902876153430679490779872819272307540019897765346038609747182693368451718237437768119138720207126291065914627283950577470055810770077422202175886249402990067692864401475177705377482211381536221936647635194354909784875029228378155855855624735497270855862550265892408874835355418539783516310619865163832951743616878695170676808929337567525325423298962984416936753594482552161311558607862612174577969681739979472855784761224320594199938312207201719821097684158425176780191826058939952520533487218339080630020414404609274375328428016400156595964728752780944932284629455492360435126095573063822894169290893172174335490959607992624326628651867624571306886253441184120353221989964605663889521884406990001053007871894585965698726835858022542701391234533547679038283083649332771433374466517366801621618943248723613964390069294586746349630168617497267475397294776012932719538479982537203194637012878727386971883625984270399599984011911162726774325097085789190836518665118934253675435898057020153932855952099071717785355931142742045688968130941317272805949498730462592753840378766933076970175958503210630005584397076230677354735750445420118355176501359175299907538809721918350627766194881788572086192436907084535386022109249171843751313055473964082393429816480712426266885831465404380054475581129354969455512041540859883699872602240563302985446328078010831755077343886042038217645441090571282623807682054037225302300809891863851164834193356793641300719950585535340063487848943586673580552534634677854177165276846819805526287370179423833950717800038250283910338747487999412207365342353834063267188526540032075892357699147089840204297106366532702758938688824420363496825697084818312642875885123503021460650336222055326172376004740600720155938996624796249129741058307586586793786499652728100002958549683753652190078260213227737644449446276585903008806687163830780865873386164717199973884363260912949189354430216370972803525587426822359371566884292779295584077044531750295354385489743237186254783442600504040986722922744112903582850887824383306566492491821757681649813511345192898264528745277293938548625128650250466265195220610316513633980337497678104936097095785073184324346038886308504601143778422933093390488607952096473783754176779336774426510819261352192541093484991531224385896472280695347358995987333599475753877633355534037420650027415117884120763503067360657876431066395986636737327693490930144428172033280277742975792329149632904367223042545893057335908798153804274173049605420578075805902756818041967227202538081358208733269918404078632974916135836441574177481105777244431290527548965726672112584202997720507850585872734903054131997383972318379795158308654112870254524604763270699246517913894460002300460944125307054987072224839182775912436734131828733765298601383953478663653836020260987715740264777220339608760414387694400809646535651567371986550083823519629319561395374093034697465044696291128188004300893158818135475943027775470453447405225482218294664835014792946265258353484850955329292952127966897395465505605326821337586044479932232941851638754118177525849100200577847941900628448780641079472472664510889030112599435554229085520424112387865364364894648635639693292344716717889863468756196891770757368482554324206824760874378212268503397004515993861052247071707722639340366750469987883989021278122604192947396741706973932181071084126089708097538129368859346110183391556315812505775625111782245484451160972108848626787959005710458896127877112880269782604458776462766901445057681919096020325795785220393530345902051971771118906585492319284388535167454947434842372662642520670938871171784584262223427830321059679856385315993138640700706622574990319520460480595148544435642217851851711755530048616148251144796304561882448349647793708245658469221622549527507377709974822380487298792751736241509697034143935164411549583125085253805686668569125260068794480958835978793137476910963639980377236307569820618129313808562218408346080174370709940634429969453397636455139863776063058491853492147488758088909008315983860446527336153274654347428599078049278945367052569549908716252124635540933173222306285828309636378193686917701983655273868170784284736492899748937633072638169163020616910038326603614637461537202176947249906036779659091978209670128279046684062909681141493631776636188931784462096038001001351822528915794315810416455857612090435262282019286125670359614513264149791413178999898440562564704725315319627071242965175592260276943319636990751594377288437150589216523140055946017952527376699270026354452375655453567194258331868865688606312061496804738761945950912930295640344561156007948024140915721335502071880090979546723854031306530154190221584774360717336442652532620654567429466747788456614989826294523582177660379868993273066483771810439418045712671443496858839177463582238732450983168104018270842549690050605391149415340883947981211792436921605928150691819317903504491162246437312926119213637457895974722045751346319932051018601444804501864761177602296679754813407625264994627013836889340671474033499349134376973427366984798990829126569822026951376612524611398951322679940476942825227291291471267646975581794311025066259348591569160883264045341754976103521142504339482546157689910518048730836236183852815516207111143105387772536025329403817746956139871972266966061033659392217301072889177012749756628050413406759517824915467967937973404175390841090421234554134668113519179587459368646836977079516858264609926730294687464815555416500790454261462080214421609384882156935370694370805019343693790917891568815778766317436610548568889035064465251645390812203470669752852914544388715152651923440967803964785321643468149862676309050090556039365936639389692277373315097682358298919115522880148479170710794666434717320139464253486993013561533308845732997951243933072904730124152894425504900211134473944541059591677726213952651172102700230845178561859381872330271237923800063148471157911921752762461220306510831204088554600507460353561548389411369439980594463101354438672105470965974102655750622192126148490447708493415436453129477128180804657137726177960652737278583395623263686570584614820703847696107463212048318818054902968453588718326912629673122533927684325031548840801394843351730351409462175529061859260680056005744445238222886190614411890016628941084258146603330755196890086396372703037629629603394190664126012081244938406046468761608249042704609050178411197131901107009797324095598382679553006308108780984461545818294670347146796051335287554419221622370972302033295202826772697522946349688777667820166026830648937322612226516515372334174631197620443776397995908639717921085135628711441961874248260869612783340257403179372774303123796421080712647072779927083048205528661881383477708871432706078018874192846111960113393999008668256179066170481539102813417603489767500865541567339964774328701774527970152604069221363968486319581948991524750891144922862344639062863873747525815219124731104957824057667350360233741945416321128152568956202478045458270595416621204116813523117564554268447294364304883936903625370911545546813227862923511974667106244514602559018940096475227070697488341601023170062328033059039810061540720636950741001148964831673169473725650812336837012013002986165006578053263838057381526108288583806002611634794685029613020126138810954024554916610318723744974491704042286217844378911547533989418997679960249364618193847298816016855473692465023777580344418546950999829981169486028601809324196968639612659966498503564395310678958653026107570399907582916940972223951140460588815689094681400982575112278863308737090823963240160455865473619751644066967074858297272762361571787324529785927617102696900926190882880832582001120176343857384795971118885289239172211581572027584641602466985724487344769123873634486928318232218282397957790703955325616356400216791173846611108117312129886973524892112603999172578912117603876249052012426162163924384582023859550481507595202349546691291464954622914719853519015029638398672205516005741236304801731774878888039923656621267568039140375073597594997114084559555331194562742469825495538094814568305580397219964245560775635772320685710634124515665344045216450591548665787155089537900266498506417833873599405290483430564181727609941296874366249101576286020363630745442560342846359730091204049140829538532533962790774019108118892085097081365671384462519408282993034821570120923578222052016123249723778706788390318153703601083571220273256384928110088210548552328992137482488968280929377062097617540184920272779157712346650822805895509702784452265904817909895834904670147899448612776772178891218200090397492793092713482904863050138182015189974894815780747681704454743273462908374703292384618705758599635604162887471511190843220682488371872747540738088331497997097202831390708929051580224808844133784216649851996627432171739106944584052842104077059340102486646169825598656026766389553359851534086348353954840174802716073748094235644793645882531506218879581451528670320094243457894642066735766279284682619086750010546414873275228655303259869272567315778179168336386611929450023449727729655341567359245447729612257098351084573981239265558601821032774910452875924787382936335113001455473308895934553735424689406607573829341470994836327737633441400465348426667209615759804669945554304256663752623654171249793483799660475984120378312439946747055299910856031829983170536697855734286175618858407116386702965396991459291065657220948680007051302428981899669848111408616256659742037133111978215295315554067730371393857792276578132291039791303789935727939731420743025910298845943326783179303825626374398421921945374068550845298441318419738907777243434239019017963846543755413505993426769717131116697813641670636596284182982430538058061741087985269536696538647480327020892253364709403358346315691052908257103063616814769518543254232853415041517478466872466535838776251078409475950000749695573943680350414841858442955409170819529612493586155791127608668941289783324131200965660475501265172533522134953991383612592741063486413520734058194877882696338279975299589125653020582838779045467480860608644954745106147808333574940385080022771611754815849905106343065321911062949155661197137269981999849002394732318001862117849899319401887071409090584994460200709510566080272275237094820990343004581865316813542382711356590085300992325176630991486253138397878217265270789328184255104461813301952891528610040607331809928602397997270958513730076885022545161594799817936562148357456300888255847615789339376771429144368177137031314782861500141581678721519186516489012344315838022361479698088795125336098841711879840121731392629135636528934214812307344424506339263238804828429990395914299299593509336074236177523110354346263586712883235770559668782726293093679197315548779200801416396076745048073473016501190266214322647149744550536923795400965273762205903327884305220143599136111171176894152225850578612935161900106680846671192309081922562048338635456292716563331585037643027592833177020372454308132541527555267869589204802000045863686953856555928809866652812435447434771584893408146948304084762465003652348351674779129720493984808429648357816598658456111959349004161023920403475117398663803261472216339258857084896730668865914124443149298887583669645853393410170458785315047201930929314501472725290753061997301766024143855461453985082662154108227456975847681254855450667425879543712416163029407932295284856393536477641362031697526772913327642773562811502667472825525857827381348796841855946929300550239324796736448842439284722131798416483275599490624109329066779278052767024679763388842038140894045621653741120427466400533219191680500972572862808233286822257141348646078600533792746650272540592028169450850257612731905310957880993032738760564124645796753977638635980177269906893087746564779448809037026872325327044572490816422163102466338630861182074114229766088802789417835854279359170903065812027175150253118333431000949872601230607821868224408371774648717777824126328028267426255952293294300061730212748126874268553970556709208277827778759781422930775971296109624949998675868771205563704104123875476059154083986037895659928812907803595955958527689168247095782014202010364353357135595862560846662682889811533454358843361545012005537642369996606697884169333381435396695239382725760647698760624315019520559935619792824417096367881290637598481599084882259130784309754111423412715591900395120099633919924411740824690886890398089054817917606933548506405575603923553809005854393107883661815048313064231617606474170572977613481753958268793329284440110709132533243996034333866801117138619424504192517213545102272657841441471378066926769750669750622903776513958163189449999351276165838634356826511235837327480252811912084331779676813731035145825835645098411145311873892565577674242581603297457153656266191890177570373014855292144269770276985603609581681167120088872309616910769653700206665976243321452673863087247671614825598290719058738323614762007911426784043173488368656333583090182484233441494908310925513797836054191240054247424973530331234703133044572000268616380500318245945806795612053293192134994562323052228939899798227829572924311182753237332595788830530672272066620946658563596743331228787549307225226342715867489630154462314728139817755811276383525828370634704928357851156434115130102067648567242650874898273221271114987312316451992585362183006467630344312901432274957815789852122881902144800473930279859740317496472926060414474075583399594409008185705466996659782114862800889469194539976882888236633243998050379499667990113736639824611449956194767414491685535976308754468176579884069318383713594707618641367790994757718925351927144201130367090857424081069680496097872705002791070956319122859286252128593569043489005545605662642426188133190270189772066207679011517729712451556408825457778027520191687049074890468588878182612789353768488120032796562954406919135070311021696200701666303941993980223882865788557332641434902667819983751760760860446845844319258732451256698506709873965600551627405871457056597847479516397337628875678001878779912181723089245508628629882376295600505613271338524727459115275083077361940318382705718344328325656532606226832325983618962144236881934752548955051397879124130062469920120462476862011655792339347876684586099609150588897775414940754389994513335712287284786136101406957268718535192124634988120846408621076256429264122784753266548395487947341119764100556561965999295675146990115550189933739521239911583168566482029303596665768052254651936387612246360591111941508699638211507524324224293629438433180736391482096681517681744597201482902387288792458961288373373932678196827280916643523454302484668308694316938748381157188488808527800067176771164262000084577187615114340408399502312819435077104945147090786231771806295313115222145122842284040790573146951415125815186450715411925234351707204129465252087418202051884553450568410812236371148655168918055472306035664940812521324619445778034622246745900144030408295063637400590094249847857502940031261200943779987547763809722325875923844687256611324117943459985634330797311870271964721781514296786382278254992853174792748105171979699550122254794031101496825526999817239429110975476807885048709935851952763337976138781092986283682891842148855101268374277157777637879737877195228000424022397903011626118605625744482232894439820304215566059548850025101951573395115836960465990336811409124262328374927298364635079510361014222558875780744698138043676805215129126804966021038817591899308938850734738502104629980566465834213485041337687639902982974235398859622080042726884263533393931460171760040675392216844657169824750217454004886364305886716079835217250747991378079755425671720907457791493653909237104077854098336870328364974664226530901337263363911347698029803295076298513445764468060024757067383969954692229647221754541318072709524521396810160115540131515214878762345590028214430736077162500106690681872260341388616596821895636623180019078320789223341788351963594376537941458649822008127549612939849638867528824172838301444991948871800313670456790526240427893764951809114567024964358161193095139029184305538821014029354788201312283185407216192338639648684385806028777066496636376447202673280759290808130746116221232689804191287906318920124846483725080944808147909000767867226181391565230121413845951479592785779070533442677527286047014307362693257595902887565163299783143505225000612609871374033532686889317022251713572684307308700274195249394117797106655216179261864781015139344408356013567470874109028944075299712112323851317577880245909828908490940835800275564269908659424713345335029591616617711397070949616132715431396749664697831238470485725831648087891949725503046112425377249777447526533331118331873134528429058269383076461576210882156446558368782176965663715628531173120348079025185507628208905303163031450166250024233763986956961389831640014465261166683527925849519196509656828907294467501535563106972334103311504485860320372108467254723906945720211271424450063858354020961003376501528637482808185036326100778610251442874866359873512107643362801970296007631698534566645484244359980230860513965917586283563377445934594361360322477322441797976969672548858675735238691042792385129810624832344154525934831411617034877383954691626284669244157066208444637451404005287152109681491145273039552018089286622241228565385482208149705995641345484858646470243545047274205807651251717467222276117334815122923533354128288617121490504430021814407921592995339274129166729343027472937768726123926811257876211069925390133133837667697508782017105411899420569476277552935842005119655483556359451042871840750066379120726174212874961836428736144382759243876236956987806409003586854996440411242197098706301717120156956187874972573830014780930320609032913493434143866885167487412061098072688667948209226738085705383679460976433183694243607393710880534192234392613761188757850876254812864306863010161470317624242510744074082321436353836916497112480986428757805084184636266398917896907131030234856719937647450049619775010770080108263625645877262904326452094505111364444017865701581593050308490818161825381547937001279089541668917365597306518468275846658230893369035459020136488792994930866791372551354766890249360864880539914893153220433920496545684436714037713237549183764174262207853125346300577545183997345428817589797569976417335644947191137348570254440621158078763609751860357140719964772648120324597610063442278242802592278321134125036522781612430554174706200624976897319262563239356374621810195173706661700393721597843123454644137132324795307111894615593523675760374553391282334940292945091277774660981446447987408943586827698190679352115255175152571637064647287718565957865343378069611674307142179392275240699043634767340309842801615561378690379064616873124653127993435031536908402007919112161975220788192845851501549517381010023055198113046494583179242298751733084572331607537755085269572890843395926119616170950448931401828600263967461979008771238772134292959113362888755885006914159720345953438554467109451877339735708222177298556446440954377086912473217906714044693905748996340854937069605540796155249744569562354182095813615836984546597434821692396027767172034010972247086920335989555339783777436732812511544104182653791009004776621896519700063199620763580482593855785580592574022380498391278148339053638096191549943943997769829405487818788115452589906667472905165458445690042649131450865833055891641041463253087964012639879605393614600986334725562220508466243784935708548126092290381631230474701730850671414959128393772514265835481750671683657069594894410148523225443570446032545497225748165516180942787924386275336314754817314072699360684395706438786117255963546995654815877681453534057183925362521700132326653903505447368016279718578227471296163464907584880956286592457571493810712221963200228778991711835710397536785429538249204748119424417674900502982571258940386901167011004640494571927500780923591551922038672567297815532856754211669075918177881358811760008149790856667438498240094369157197078138335844447797714842348599653682881054185223046126491472810484605892733733137204658103648228026358342823873371626050788319274928594258996787942230084948344478765718575300888987387593009168806113089931905293318830401501626189640776059727821189251639712848327811760910933409704252249513781104711485921172786870397369197669397155335008442504370160721213393358226908981804637805944984281239977276723724857342832067655370097251162253018887375144582413227002100159583506308367547403312124826073315199824150094843798626766642014092977594475273261723061060963827504786503912212319103503184580541084469051195341435908664407022744121311941253863491524818544435728707395378226298774258917258969179847067055658185719236659258917623942440807230171649601578327109823750522790604750208300647955031660981962717681676888426793946258209164998994884675925353710144323835274409899342340192910499691664420750948487045555813112655974953205519383467615119410631950395971605712247577000887847072146190549267402034221772184815880125388708673988721424147544963989728829412433286705388916730259028349906687926097384054749225037946608232560518877004056380631276994419729380068601166651251623724715001825269419361320209556232804663838705736729254361473756272159454366946237052117987378762496127978612948211003740244418223277565632913295791172290259928880999444737464314209178757500595781585493485042178178577225176847198190326135881612311354500170353140200229780456225204938456650460725396615133550160884969854165708423249130950737129058556714467608344735539352788456955036560043490982697272903013595699160111528088030612050071284854345201205642629941677319496503604270978153025319751035062438481303445533248826117361248680266821913394054598203864381790007540714463718060909478580125005550102080979686991296472987787169003511454160962438224874694999915264280823233123940881590534330350212128036182901213402155794593594981249196874845716371628075886310385226986106851819208452195508575253902293827978562210572270870698415782279276767682585193419856898607357927299732049911716431227068024338692680552271763416769760818497270885589009666075746522867692814743476769879868234241718597330642587360779491657173474101203754056822838740083486162966786542684000183336295369146731108271559880803955258883270806387205504322825344604239993812967370016103169085167558789075829747211022055236057275852583063597549788835671867887088543400930081810292021092231589916394476299158364079446788791892343594588536910561677668073878099544298220756879939421467904231725679779843619943046597904226489544969043571407878357388114726049634174751056073367195023911645005182567161211671931803556246099939825119143783563146554298932013667267839372432149501796218781227536610404058038970628284818637381002213852374128122568078763457387262899110096204378779864335324536240531983721659856990358407409892368052036664699171228024917911394113605935729453309772682499161141419962404979941845245065703101317139777051963731790356488595984344273078051291336566345021503762176652375931546315093403260315824629820678310146322866389656610396170426138042219800402018156150442492006858709933797589385402142026514914368443137000055368489064107130453178355112149182697872570142703640134515022461050782775359683722732994772739856354066222043605380521415876321359545299174422111036195509286734592388848595387112936433027861788532480768301464685508534652917269551156379016623041671664200506648812357511580462243721104070417941288903521466278104774791105298812426684082387740155647054305955974321843520903470178291419987289571894321940871962605840657853095168856301674770414836181608128346917828786724273096885363016336198254844262728896646175270238036789274677621508153847305662383078879067651963502908223230705179433642899154866756265259205421966962027821228022764433730741664702897057134077081360454665048646753258864800242160015123088123698096596032727857363367492417244936770636251922983097411253049268059200538464949680305968174242516551904981692801017258638135109214484805927087086606190047592741633887109270636525677348697245501485295814513295653762419735109570319172733105910742876106782883267383265378073616983947884210591547895197177222850896218803411429945724468239438712372296644475674550831236742027472503702641697028456154163386322117269113555509215958889514169964090405861023300433687789881457561609312832643429539249490461092097022989288072391636466012658278161249459045906346568211048184391661366336985738534958090142623073768241619112097886745537760980986039104594544254641092455560775839087716657991608517813569581994517710190918523567152314716288444062536769585744000291473098129470798312396522191653702759579736987353690182628822260100897745018768371859453039860590936936950629572615217595833711506083065387156704707619413941211682006079177692093513876790331988499491665062884198036202035509132649166870124096483167353144783971175624267721233144489405049579435834122740248378136490618146047694365616878161088014999493299765492876821582916087545040621802938082317879162107871842912096579271264157085825858982043770466005961479979786210120123065345567964167561878689763714789298699484989419085749700219519741605627698224379009623592988232243182361243215645612449213986353536775267944568160827343232347674041305974261120095757643323151208961162172528611459841883526699942492965490424098842696830779236746671319224331172835727795668638025950207231025422459222751203882487383507334908497337538124063858572229145151040594046267767587525109345366697544422743279179459390012701295659014299589590689265256840125450247663601963300912912745574304505060234608820811077360795571237603470986750055772777203289068613071866854888883623844033441438093568176271993975370740743691665522118180970922276629827192896485939906930089622942788848006182977617004992116518186183824152503929296090523249189812397626337001805570658415610677636374686104099885978083555926975110530068734553189884182514380333660993356127353111679003138721606584319522309488507265967469439299088675118103075099210849795291584156410646185578902616321802135510945241684566745831322588587850377924445954314884313624550614618326411174949011212391452811339663118561142792854078349628184579630670389727192607076247293886375377937305862684022768489065459685743869931677458722292206441850591058635040097434208953027755108306902601634380514452261661936892023285864976771782037442135092035857054550945142926691705824978251913890435722485716508917930063266719834295644344839508664902319994300913211771149388415718375575361804358506992830627102656002469427978221795866193931717448175798382682644873662927430462673597713376553238428858034893350126416473828486845270285305087713956476893215158131494153212060263382579835820681217326375901244544689396007772510898896157164223551068911104146288265645634110648458210934558772127790805387374437960222705007391211736422479997615698016045707658450628908569436301365134176703727023131244613990652624632191866533710925289690730827972719417865190517702045967530667444103380962758290771883100995762102565676670522899967389720383939181859560840118512075095517970468291810112493266853406292733872043946979858835094449620771873924339883170417211891088459782515592205973064292206620238284405165439891551350621572467095707189420243894369945990247769592757553782405963885413620734203774509066054968741279057955840627955388010035576951499274680215397214083597528508454108423930375105661402833175555429497815848022482955576909160169944883261197977928826134529708863150875886079820307810726120074426034936840534282079606130476782595222515574451055599452925051850256081819264472676403678919591031977389025253171482548526444847875481111563640115822883427147299781611474590398909330703474111636035174811014854149990380251746193026852224448123579766847327888317839781423151624108595569714528628472977188783563128707552338804106520169257747083587700799659537832811407906356149887839018259561032477368813519658625324571250743458161561988077865321778422915230981134651026193402486612315738500477593552071541020145685051833921013120601981633954164594447834244853409397669124475170523356474416280583432577466452838979053315572210524704956795573329137011154420859937321906077405017971286581675588591273997763801661386704487183629381303878909257113662661066491172470582770073563786348517459550894366699122544935705995342250736762620323271019408647005288282694163104026100608767033501538827327431213856589698445216955620867639460676363658173375472421501907486845485411504111947361416050251750602154434211982708823521204894272749711461779568900760212390060710464976947905996390612228954114775270603958491895491099941126089918890569034396056344547748026790195695282637195619177933585232290149385961253157002774228547618457927982579739989381584170960898539668110971858665633725869325289266882872896909706240680948706227123535826150897956128094829032681013871223757897374987763320499493284775370007876774878924730059804876626891952027337272088545065881153113042182146325821229595659060245338333538030264709024427451709958345659512023619238741007750680613509502682644094404784952231283493885295152415622058549403120385784632315331624721140285159250540796799231057400451733499851907701935188236687648159993294798180999936882810851876579281984568019609634359511604384393463972084038799419584582139162139516194502920309820817559626493604909361278177845471532598752483633775072094035367667947369709406277162263712679631852283814449337307145773271506908952882334073074426493307714071991713384877397987871923311259411954009870345209103143813486843807246232013840527334664993920765334133509608229926398326436335833593469343871230070289106063058082840465472352595282809121896066857096695962682930234549234943103781193553871575197117534911277880103947952940344479821127640724942172746026130704635840342791400886639246552475162982970600178744843616560899194799042223368059796170265751652805210118040834815271192541685160676876156940671795762242385877047818148654536989151176082855358249598058608942792506237285247718596719164175391801362090853319046708655188568791076698472413095838122446679902155445127537598275709062133218411487097447055035279149881065770630187901667930236553908054443830740816801658787482859455399014128614008450522070462849801638234154004888883662039416799290981472405300358023781518676955590618747323584442080700131988786472534380338460523363866132799499053776154454373653619145110736321108886425654977284630438635493303503175981876407015503694885760055303263943045799073102534363724031827965609121918845124585110829530982638153385679341484724366322861081744833710606146794627632224738241459398838015928656421206675195714962296143111146954697493165696182741647156929268015415620136023120704374621420328134680015889881055559937947524654387766047152693382381127229130619844580425487785196922405394301883417578117768251000476935265224359145816956952721278550740969026704666074765677225681572357545485645823536515163694014491162973837636817902400996351818557506893897401687704307757975719663604200219762462696238926826438513750448493878322101206322243923247411865296753504076966440626421510063775828126764124082820368737272058363334888660370925609217279506768520557670942315802701316462525768586109457612729194398658337890480234011526334424027451256754150491458701740671863921544166880806863813209884393679766026121801796783584147987194315181291617647262444148342203670689106089448208470544295948267561906099702950668445076157590428157136751922438308538696500973640221720331915813355743200271280810355658538668682115604706669147140935121543368610038361987011399167266209958086614159606920458398143849524102548021795958008939104258448278448710896685979716037292564951988517175244221782839766916985604653363101059806448628417658930196274869125997238173888368602186924062840939614659785395030201617566761542794153893138117390582043221946600896384840059788522709920483197691745939456384263515444493444787416900526613798890989481088835103946683310371456908717759974977144569299117020127999964424037669936142452410051861679114324834911002152888141121381762523794731111444076416631826980129264741955641238164520189927646869799537583685341093438233312846771894998179371584763366000598189191145362132544770718176008954878120109124580993700040891392374773044398707308782699968987824042281766248608091219759642855190194795708427773115736378634793468820688949222892898405408195022854983479856906987290566584047562337057267786336874127683134344334780839883236750450677379885739776751261048022054320695044696940471355139049558346401026516999644183251948656616787239382211083952753584547362107053645733447082013885861504853071419187206820244793010129705785223222639741745125477156774069157662459920289878001208767135119250368755281488695109084933740253691897598610304125149289514980459181631804318826933780348863309810637881723278194479795323279318480905221666488251448317242827215004838986806917148665330369478385461328404915204961432944932064498701434565647654826672705762236474214592051575731678449214187569279363959961599369414313425660198553065034639691767095007081492712110369317693857286083097394249111347883612000491521789129338210425528880422477592221694104359450642307745860958443943545301903040775623584144713588464274541730719973897897119938775233784310020047556114043447608815561087450544037864522095016783399141153982178115572754004432764420400248792455236234532871874753835382139499602112909346930036651687353117052199684054084015082418985137660093818679749376875082917835650303787087116406920353606844782200966194906928926531441443072634372587803145630951375448938307631717233402740788902037549136128313107059169342927044001371148894033130487649652191132079078207203684011052810155760374299703314802788967676968951147365901853969503496437244565514072843117915893755309843419345635905630802452906370882454916582540114534927546557158184236218414300977509403124187623338688685976552825636262298010418934619113458923659965583891421097088103694981099970516067850833365266996088105335332197992578547213188393580513038190148103748376398242599457805264575882829975614887342691990207933044596886380894043967286003550953810249793673336715193567484495428041107768475019321485637386955527665131671629828809722042452527134422831224227321698620086667306856722775023659629382784572100594483393557857528956592066259867637825276372777975672322975781664398201121509180924920999283087363770397191815648238898771105954603488158474660292926882602856251462627536281748524516956808313928864443213807178995458386908468961827342358439310016955117015729893061733668257894541484840414016716437030829418935469722545638778184443053003582749592290574095468435893011138658597627675443138692524748591592908504428415688777047932379496718178183415699529117285304887041934955144976673788347255071207878595013617128529994625521602770011902769683359307542774846424164490143010338137644350024813420629395634510446026371298398087324023957459628632988132452495480056978882682064675521408797394358669292516412961983455674510402422358754587615542780105524498655827953539676514463800258011319744350757006147037853098652816702315146748868797878408999620729334214388888815143462604901695210097264206093507036346637639469560943135417176266199084763320829239171897372596526046858418961637901270235712802929507982019692904498627073326929981923493882959726820368275325607639795708577744109563912063779682989097666077163408860933441711363540468826630908022519850761834626781848524100903190196659695987990267070402276556345298178096593505745215630970349060315821308220301694901675389534885025477966979950667383780947965268511737433015198874198833127580356454172307786126203927901456509365831191580373763933419644610111634743757687153178758560787676215419806727205731912751030315789512163794352458293243706927115321104934618831681186796593810425264015228608666852804729731180249560572707757518484010685708092075931172829213753952225393774555975709436369467984751789984604526632069635918458812723457738134800847975084657711173612942267775740599984736799331989149076325028300977102792516728960614176107151932376792853491647033622691249703624835674431562288202856413415252272709193986955474987007042479643997531240480127013751530903379258198616284118579749798886759635259238062968203851277054025175568009413286749221217737998477530949365677706305327380856067640429741517570615940248589073704121027246082792425596308892077376881225917710934564869717603770623379453135644341313573312379161969843393911993402833523695926438368077336649465342295228051077921349367563630941020051267444401884569031418774046851915297093277863798572893334901905040551719669248004160341219985658173618601346054143277598873306361725421099778307072444971431707078207521683392417220087410662319514796024942203460296675824528950467125479683616289733171461306398088741220554941927186219930688561131792274930282365538368064220081818794571533638920483421049390311645301008244426909715886552474640881509688046214814548284053373076790231117549625039000875991368599127738931699564892953903549467536602224788405281659224291989683859102840688977722755237777169496481642823139201907832857436115724083580752615164037694198298345673666971094345862004163259703724974928815698818058836025533094130310262345344048046284542312916949952876867504124322712426756887378169179749137920119986028642176883266225384695118567834057458480442369774563182236644679099428938242335452873253142320097574109982491789184382266628257933870312944568811184299251180746346531969287917949179515997442815468535192297497935138571465789694534440289256678312453343547072104906270442395432894242494470577450335761627917565582966885358967598255288477769442013528791015530684428600571412468591393745223878364118580615915832456943036761168586549405693161886939479807867424996258094483560918156801439733802673191506006230425185531292920800528710838230472374314586367235565955174506966425763802415651361382704053036976160485194006824643401573569047654098418629490566991683606621744189032433736517920487502681598683804240642399084581061300210678779619072462266864341893329045387896921441625296777809110188832404306089858077381357606888434904403465924123027803385399094093869580708361370795296614610308864240304935526439327330405500177612403611322797005786901070249512135557575249773434530058131749228933706868797272111274206730593418844657540361966618160370887061910699213856267794804743549039420894574703463401538591012429419272141594752882879161501983720123803880580179248498437236843419754048873573235738750608602202148452807760594701595242341602911104260035802124113222006241150700258658268771888187418374201359355914519751367022426838183317001441840969416298259172183169299201159223023345256841912357238786965900258203414120019396014665972990158395317757273379486169973502228219753960177429569865194591576171190032037033852671844819956363165512041694674352212024321123678170040770749909646479722932169914604637497664786933990607317272961385468987886871047616597202276620016752993937801082417060779208194974469649236795490387259899934669786102234431167671323182633311546469067555506642603250521451584896236353419093381433562614134948226786716908227593480301911021272449944001506872267378531405914061844023616132691796398143811956411045116648986848020912100038904023475753545378232811560562923798757862054942994192175765280315134988749847554883343594234744710493623103899416035600304025489639881665679115969100784591537715851347748661940101952568592589922300244950062723544703462083436236429761291469122602643834531157971070142705845040296607882239957872336081538670030585039131906265663346435593701446942052580006233084409304107216283395441978995117263395852278416237505377929848678204541599016400833037767961884294552910103822457803194712199347414662477372918027105839021475565094755434811463722671495302778031674806255363125267587768276822507130535392214199479034441067256196247117233210055376378827487671976053414427623394732937545793107481191361357654934095483835521821909910163377458289587855810179037100719402654706877605736729197959775591694559305152782843284230637442175856066523616132203108534514416740433778638061364329296939915207653138264344288175181291052213319406581245961664187097509313429789290220660059387077404674446292479258279096603883078215092428146344628463661520517054852396913541422535963020455379656899690618197078692452188469297999721585888920585210868718746005898563311447797164155637574135426534882068671686759671302624958250628733746595212014170560073730584096840703143678295380920611016371337477619646418299226219553698692130378572063978236848359806382443691398348273471263004470530579345149100435717768865351925515365944113044660030386237966070486552960377603962530808486843466306876357383557488262434774356214814968756365389577590314600838214288335598302508813208262779233841475660241962165297260699290711855685180666997103280191329726468606284316059044216933719469223818840202472122075700336255218015844439682823960716895121676455648531096854034121738175687837100815700569512852777486095647896290592897574082680245199838519323280497775114895194270075058573578529184471205955973316992771274903669072995628149156255412132730168506739719467825647759016972638214644253588922449945300376435440699297815264969783367829909475230685826262399088854750697187550723759070517071709481619859286723284927676051179018119541029900859928147386786667280671993751554490057158863417555575538986065689268660617329306598977582079730968042918410811333263002839734343330226105351519052320413459231787345085759146734500905433015544463916065932609327067876810134409775320978801544213552703160807322436834629626112002116542400260229215116026436879904089885008562829556462176616918238853793658885509319179379148273742740772684599131224053910392012458047732655819731146109263024441258269673082021817093907481838042693021541109723942097173486340057984985375763776200348139356409094434939367093028002830646966819285673677343339959469556127064038394200155220842221301531801653131730192040035025293132711452210192468806870241946026896369375599163680171795436248976728927645997179849695216446406491152875943243536176317505033631932535771212107858122565167336560483701682190876804454646912824008791674222773502071269966827721690537717485607644792551765584613203803396407878390645528629534667417094260997234101982754685935426880719427602074726549732851224635511853347062847694872127215107235851363589522490451994487778321710232278224477767394254806103179727728003416490170836116347580689821066344309723834164992567162015771549427609468171323117965550851078626966645110762438469666426403761531933363007321225239576113683088178368426327254198544675781392320218287008435169249088298762090316051755588075741344654617902904059148244626963461316463475332413315201605239761267569697141633499980573505163913155305272763328466633589958726759176040000049680561691426624224725389548882438232063879367848325829348762337868605160874469952381825762513518861684397273509586327965102346646963096083349248879443130727521670587085963218252923201334907162497288080970805510656535667868387876030132672818342972664623453062640592188020729884987010418776891906479692727012905701457416517185719386537509231345222437169335253899896495004206121865332800987165906649093941942046682711757621044090435295408456767483599214601520690841781548305554759900353791903749318473827518940910005656503597502343761606047131946711641986934712083629934282611289152899107378607751247569657588040459461256066047476327637630801879033476537306696961286016045666506484991450027568574572519397146953995226720122433461100902855230933444680665339020385898642777572378377625198866820062806274573056043255027365299219238730103488645524467640461702578361275308146054607494940007845163797710283415694880670651708438696673691125353464411785583261906564836589978872776014099072730236816464527576767758752991607728469557117872235363453105517610126804149593792002952351384984450924178340569629217243989972956530949353805132845478818452027771678349683846066419464915850905879580539437500825831920310591032437714695110906083723104179824958319717109581167309818717478821457918931683894625336898414561136341074165959413132773967219637505627197268284971196000240795542593680830736848770493555271590358644267937284316446006373506419816759842485436607760093674870079506754468357732850353069934577929534865412172764306467324980560714471053636096441935678677070928696729567227839383712827453759454408759314241427042260260483255451494181925136481536091518281426878471659354728306101806088233158458316409583250753441856581015028217932433109266113918887001048812162322945231456103102714269437399007421047039544855964998033117380290074086237673171555149710785292464304633740242370833803047597157715155792529970981590977407116809162487469221538960969573026111125112568272424079384218306562894697312391243363575763279256661193567872956216877954015250144334009526941120149027103708585472376685438874383290991312635804001834441450310699172321303793142236354584363456008941562453684468123013682419916697287732089881789559291834464328635817717255472565133421923864117931281170927375626724236508802587001850805410534503734287641995220811223046007377052972983896446602346698921545037966028101353179781198995251343530214957481808999447395240514252497049802214664058949970120573465292684115658595488603310363352409735575729264256353056343559287766100430924412064117274344535050088388384950302301270529780300868557535402687299709706653512456606574947186494158615339773632023323803778085550167880404003729714235885546691874301354390737674167808880061994003276832890940269232851319564362244195684595509834258223397345883539982326462555259449469698401152420469000884058165044871550889980797067532692865635791750786998845373781043549183747958451118112281994695615001538000824982738703513548908357827951096629815426593112426105254436918358804590499751745241637275081675277559425306308903175354495805775427861560929146450740344690992201290110335181339921465757406202048607204217471190063299064792993061087642549096483626031674214148515702507412493626664786443473027552669834357486653897122316315501914128052998020867637631585273969242830476086975542057732220109221334497190983770445874284126214086619020502364230847869050331442636449662303797343747350720450365868067483954812650304362853424667317753246405500111544691201542697829040825879080477138247857098526448756688769563708232268496713180197891845062141722469616799325356581282406177962697005643667615453746661206176096376411928852181115891680830182162108175747025758495499179569407854362887761615461152472027462672053509571192587612624315397399045327505808961612518362515171032994190961381445507887716862292480178847141490030823412145811914897393019539362996694908046303159936418229563979055981778013013613592923588201076904850490131578088140007820817115793943361517736405871313266769954650713233082796139743170256027388939293800925717491162072383147742955676662290625430844765040704982614025378583772893779228785282934926968851005979847560718642231005158863158733434703021282609088430079922942908545209498554240186188927277723503567256011087537026571227722662043341159801348303921467185904613038432020924520050183995673936944470543473787939826789033800176133418085871309873559903109830656786757000903053036210958644219294541640153774555825162402155633923271853510697014478622706991946818158316899980638034315502033753676528988395829641907732540315600476955240457531300327718187339178889163961695209807320855848978575955091944243320976350296188870818813129313276191149505439640035318422651208069441271400448209210216263133054933676116217739563276738442343345886272165568645655180056263505048585461161349078373511448053648424702188188694238254765569137613967037766242745980761089934310842528295382235497014159278212522235910347216960282632022139090766918512290729652768912514015270717276602873045653164373562408771237794750326150137984528959650482982129542512904626532412506732797430727485734347037565133734566880498356086398536041574933553264061716392654190710251634423878834667497634601519607949054715846064147553837672305268068739413218347928638578875022045949444077185348958617969293388647732222390162869435758553159967560498390260232096167071921319735569522268120536866364643349454761779944828723587859149489604657317009043007659020166685554382847786773363326398360344558800937560299255833385011625328584241413635475750784283014482399172788652184390680622045090612845329323702986341796092511618113763641710658553032787759172654256831040313655177172601948150978775003438858282079905145982165294934649655097024660950810519733225391273539792258721211822654492320570130669921607200991088058422803743615169570031898464347114784580057096074733150696704687218285916041536526937300970659714743797500490085723285069376725274308325602568431289919189501077590462546863143950163690813305047362291694808704342194158290378905985929408804398869722304888454384039853252233904095178441473072548367801435115527793859186566738769791316586469823570111928175123558614961194152955014455705365746002001427583811357203619568867520708885055856775337860572198937038056730212853803100480422153998268251994846100197044153157460979816759214076720015644330130918421688081601081085394603509903368147006123452204682130064231928124036309158258079433384863515185749827820742274599817823102649563998502387817746373606459207711702320470938547967980615805657497647651537201759119090522005427583887307883416946345345406035121383948374190916047383308734066427334535207063664818146063209252592894124021217672447844276057356284804150341161702912648443592638418832229158237401981103760964936204812618276651626810233780572803188465183750428251500756092011380829493381159921183018630606429147140414722467273694411188561656887018535856027214275566855552387855389830879752174402422011403393455849324636761079892455666962988640536207335634357446386842415002535401545833649103457189742860128618931391598965447436917782396071820714620858150640449736301126175413405971972238894862144328342973043337854895610226641090766075831539879514186048150228059225469187076622737539547661953312606978058027760800998248887832976093677754673186830626903690158145215076569823508072804283756074614227170661734475458559231435181675541750034893445290368949388319177959166003592220345536879317864050898267855658864047810833804973959779916271710054460359210452342841552444641310653289142153879085998593981694007277619297025673479668184958521480678450056216074455286736315339586458493536518995103827592260878604262902341450217853655396957427374344751767370208576868442436476303598460245758125322972292027616512046066824964348591848414931643568186550380310109102556064594321919907303933837457264486289276273978046925799783868632917432489679531088125613063429005201213869023024310743419396576686844651198581835119571548360390334165539729618534378073547990517856032902039345973570307618114301423190207114471702166369237446707305231448513505675552291595394317306074389919479029010603407327229904030942727183853838524137388217621215517958063715052038841787285892967011548070146598686776537004616170999864850143979369162413708745075788611127264415550230181781944742877696816603227541237248128090845403255764844563566712798747022570529707728364333432529759212631233054463219471771124510511794967716535817108596894385141591799291021824091640769110154507656904201950880136182542878688927807060992566244291147929847543956415168620493261871708443578988238375631190740611818655824203531830623675680746876434886863325330065386538222344812792596348183277531880830928473794590560581580837097615524810972434767403406811879602650918351412169213129926239656684093877750281958704009922526689884236267669122650192702716860602718220007765578539509881414836292403322467814025482927080304084102207630612018480120424264746916610220282246443348134078227715383068357302091117173030087488736384514805518924174356500811794835151710294717553593197646081230875130389138236771067456745618927511315078964780889076767480620186141259864605335082978595692102488143112188273623388187402502365106182559068238859045458032356699388185342924877821386658359455415481047578361631874836876179780306327297422730041244107482324008777411464769479538442247305320451458582520509991127405640361229393910872336450814639913948633507656167720282584199244113757732251573468856523436125393860894448858504318486168318475329903588676576830124978504675123809750549100956351385691426241054808718435932536466816156486389920692224641081720919865957590787924325702581584754984035207387773646699484806818956002331285733073500250978332668524573199294343048164603085958103164728718610198340373320162019616920829748906669234838176253713318107328056048533034291177593266881626377090341769944315038100721436094804068354123901875427891951162403466718836607555875753515928560018745874670720997543686879263899204679465442911035554158117479447525455512618483809954910844248454323973431511753202931737615686021798161821037081969821190110619754021214041448478648347703926551695424029561711409746852339587418618256100476171627863193108759590609978933177531854149504272626369048409097925604088291720104936657607189926322737160966372427335629004295269652218803732479064044225105283132061709910241646594216423785853304081391164781279260230127680620032256113006101041853365674094099881288711969087651661083062128791055722492652707866664206772758824002462848793469078506250867881377940893343707823520855004198128897205558166538161625243132757904362721980211981323667410782333194510774468991043936781550741067337738919041972535388040320434627687817104002422768759544387480885419411624578682832447970388495451672551642494988713627108054031352760699781788301909693193126875298560581412013823663869460178577688155679224596986207093480690340988193483301952854095650793813223872840202407865597145011571773627140886409494263675746044574392616054650532338389125695046908472458112299308633182022103127856236707977118327219796240363297238510477387964249739198715335706138431727237727251019936939405193175238636498171952151435115323642646362543333141590814249199867044783889810084254423801467257276248096568778971138342369732412904076902887371538227820391694331786400995965152661751647322071293440289762099903462105510745551927999842794909205866741603726832638574781853697725454068733622401302642994492078049685734978835857511324675682169636037196390272866721082608026882541627475670576630621496229739808364700163140954772198255163226136142616999630521980890807437234313417966204376957960830847729843352743251928207364179751353133865017350689104958735489984934733495729562968414788287390599470411614483387959973409565723782154031902254178354438965572511002184987619019421218689214061278389197851156764751863659269663311566470210914192641787966408485391158783766471439026720336961513985785912993026438504081957347552376271006807917441537671679309485808135120305437606884070721052291084888465525007594470131241703537581721707110341814862768816229029900524946865563204121213424233698198363508818699079004066249798285976197368956271567081970669493325317080634776155457861725335076526627659939334573650722347600069635964080297779806460306798088231107151289641812746561727741314615488800406511812904091648841200501111800472976414586913909923338622833945378574512759041464825257015910521712353981411405425812906384066435404961507833576548856614689655129358608223952066127061885397836833121643703226350277227178432088465937608269568397077912951304565169467741586612659771337947174043861493881563036730654138180800183687801339965876198082312098208591607280675211760852566025979852183752235039337970284870424318174511295897183792753835906403043117608710025631979516158220985005849734589379316079337114000683422203174025726302800051138837385508329995718960993459178802394057017831403104902329874957068607525243256966589353707680688119396819857034627233678408106195817200003707067116337552495495480686329192579782709013994009750553849094399471988924142493414667147758907731660807267581183668339797103357762057462958803154511083342809530969111686847844013395090127852646408419686944516427619352049461771216004485612483760503317538159462071766692105171140004182654438416509487141890269284061126859073004446519022727203328931851564041473044956062788367162176092844337067285072895261750946753539168936659558944043472148161565987156334607426835580995925708327706844811614497605585873935230260902908402478998996240682186037518607202861181584734532130682254680832443488558872103022391971190893246304508820693472589747953076644794314390690822977859785286462406853157738815053130657233651167642251560465921619453610671880816037294894527581504492156985534235343768825495790780820036691788520271905024447634179208833930834264181769817646832648246266434031273427568616636191271484142004483997159263685882997433937319850124433249409379001835320935214132671111004822698987089662658247246255060933491009417114407323556582134022872101984053104325914819356591328598714588545522075998724875345212840038131214296464843901369058407836848388582428152120953377258253515855853694285652580619075118064643678781513372409537574702310034384544541334217029971586004284861728736323329662776708845000636985020425616270813111306287619494166115320059158149344403438204961028726210327812575545018337186930147492000162109476285525323173931872079416345314812323182465647410560330678515777622418685112741134158640471165762595869274176328782432250656932843103095815348110407881298471409096811758987000307177705944907886504906126304881166749884526725699614642763754279644291403909034342527867225867938934791766300554670938316522032461579400393388025680733160757045377226018886085547752174291071010414371318580215040870088841079944039414411813053811870638859914289982309676955896669919238733331204345512860143696425782591341675665793257681778769189263348043138291066177745331321132137495301993669078959289890990678124388698385984614067983672718810105845580494461282983583651368442524642263114586247644935395803330047057105790354682981085605267342246866813011796309437618388809683087569520299010111622120778868274546001780884757042127210246934587082993527935366776306811965522773748123176342621056603271280694933942429991300335753256207924575595138019886438014978355474022667814691811283099227140846854670726983038567781087708731182381034261245026165435573173720959380004034231881810200714275538677778115417816683536721879280404620686136678813321989215056619566560284497858427534757184732156065568768682495380405956493326807347274958263068413627921641681375656301023700235060881142152319304731940680546255994759477678292319125903187385906731379828700209650016822874313378320864931381075928192280503008988693531181376843942607920540406291730546007137753102161790333852570798628095153961983498779318081623540777130715939936626729539168911043331466757562822551646237023298460809850990401445215760285127268785613323110313584933353143498702900634546906091837863136882779530364734036459887926151733784652025216292329039702548041458302139772687440812295756183084339283445556844440852274006596155733525855353447808671815311159116468948995097487390989640438260660066661184157867101704701134503958308438232237882851309996912520751748663441665805184128382119943565502259826068254656557123946891860485737962907332415433684317234412967516699703100990823509754719479491608502979917083598807350032213649289321173669674023284162885458765966145425011256586322764018023727008863393921279004591267645644600237935714153067127435867905427819689419899903074752715184502483748205150666294034334285253566206925428838126249903776956033436317197572697367890412883150999770551148986050731766349244323615681736989163332545607056762088878015044135072384580834255598034087556255491198076821867412202052294321733932280004059295325787756077770999497514260645856990446265451738634147046456614170665203290955794728469632933872467999858838990019187385507434464430703683057470610197816825467076584086221485452880059486639239045244060237201783317901798094927378188987220694165118164039076962733470279122194738483299180531642770403613409011516192590140375018188795193338688181565581201678794417218733301285616420226023524105377574162598002952595185829434039528677557103282333831438990945837714003073475956548942182345674350274672151727636947846249937940776694890871624394680166588263037676706021247706596194188331327519390816316633671734882549792297967576918594284176559672726633873303127736006145590371044838939590172306476883950521387036130113644239795552264435830778549709142777224965723993468285891014742636710299077346441004932371293747472737504573442391057014204600260663192824419176728481054220564108613572531420986594746014569693862407780475967700732352628244420876907056047706184151381387393744626893494181907749756866538842928700323605391123090535289043500386330143428796218988005162175120857420292424795322053488619269826797569034969090321903714170333093809439890558968648472202599238044899136427823995794420125972023297042119819046596268883857496055037945475255587691597421791553493556551110407984868910061584611250471099244614318065286477748576999270130324340339949052122619620160218385147544168562660308294131971476434930963573976605780445458572341226781176429547571972416165311170238924901563933916002465406288708711585792675107971569833541860485351532044583880538429113177094039006112536277916123280912693888529899851613338088558041062957483082991065951653334218303089587067102876019493837329637416425137823394493373670442356690472352965031508289067755090701761367626610192137225672773450982010444184738366204820339318015349900611474233876688399040775241749362725056601656252079566006606818960661902255653905687232514899581602828377961701633297214993835331232419579068411500456552973340035151242405460663522183059640037014019194215451895121168570401878582210267374608525925700395263293055793335723858237736407251094397610440635497964816777583243256977537373760605584523991718761143755007435899805550820806220191605816650372781046986672711958501070286160319149497814745983554816778595662034124500080504454420278272270757792239313082039018060127608909660701079367721854206227239010862802359987900266414846635537354112533249472839719657501273336997072254711706733769661761891244186813691408277014642317848134554703800721823227599698117301141805413290714786076352528734752101778319385951467306164028441810157815082844979653608611516046126447460615910142251226678423472098603444272102859138582708239133231371614234940903658942120559249392093665519921052633953310781522319943982070201305113190981777425825670356801055119849594185548671433430439146596292684014463467584749863009709498172990814052104891445883807157946261799531194338563978699461325167048454913881237759319210660248768477679582139039737747981701347448088574060795258432846753799515892658834262187740790591432350959210612561046336961348839238517001503288186082511709167756939432843444533354349813442392617557394144308240820869088501688093609921825309605967640278043692104494380759312422868675057246456417955707391413353896852663811707040563985714172719934595241243685358737514945947322775923693985494968073190370000486951281004736479563836673176359700771364921487735988913408067668401085664158194549026605128194499218058749605088494671541308665964477388825341339012911126865671190697709889084370421648379821333282686295440163968454363917871226028681466229367845141620079609983322449903057824035872486332744376523457736797490054802654308591196761462876467171768489034265750425577040739824985116202707051466167827351544713613540919528503374431011395895246910758489501208894446298842471867849371888914542290194246686568545468076047444264466471343282991628273575854746975363916230424428913568087127044584339666431861729261070078603314915005055462329593090742181982322859073779119382954653183637325135074319383101634715312989206596644241596485950131008244942264465539131615035340390325963769277066916719357356455279857413786122928744609648055981689428331601904616075451845639239996786718202356294328900493782329943960434761102479742454973041052603498686811947181569803031562298485360536555351329381757840826511866740011924848724739010338124608130542072823599881028401126648388050132054465908990662580386520673826286908446748477788639715117580587997621400453091027502426086372784255993672591302209974761041109456736228071021604749573406072042002732558083287397554913861132506996685478125567975938414758824629303176195498402712426256548460168234925162922733220286909633206333456911868671129513183631546352351231117361230281995201447524072785712660584957633360077584441200239582663861284345001727482192102770070060715132294198454857890725864441939251611558343246460527399276423927978737050849497504255831450438191041078518769157244526613665827995464400717715522726318583570301677300387829975446902865153309251496318590967027072493656043126545202989249331740915937943166493329997664993231109145005492576058831159541177969614218966799570221878561824789485558312500587579493028805294167254274071403218518774317783527292514640625457357059766050781387240700384571298781457133190579506294325355020923018071473129873703520511384716846994260903298101415424809808524294238628407548652994534665178643491074063096347722177432795602030188250558815901344483233185853975499598277971005305014322614163477158378950977204789695723216064576459293893251155511489541460048500944032700607404914638905250396060580422774036189022393449414873681097238198890970702089891347446696587735981503540822706121889986975001920433819613673314184397942957042663645928161748525307180599278573037727517763145829717527367375125485877404621348741123924831516842190779000127767104800710372560880084236285491666187341844616743880620921652326825098771838182400122005774511033786308734838838694516224534834220563152454334364805423627443047046464946839141146740512718200472433327852542883947053389881750246758253082121708665882793908963086151444592890123483170943952873779248931748341785533430076625039024035658119141460845257582248164647211471471340442394787341254923831950546294984100631845609863800751664701331422739741676429680817858974864107802947822750975315779668979518813322105419229432522468094185962163969682310055709713344392032258222617096511049055049416788045091681451582193684833147688390975403681626386013551914328879689751478244284944414142429717514250456448950585038040226095189052398348070475000466099730191081302169667846945214353031012445076391391179950217670994313846746297757084832833233907313654494145746247835442686494366057050934557058363599870211492211267271661225577989191551926572347683757865677829115317153314133156548696411084321638456557226578877591392040300744576587873832486031399276201927737375387563491080210209937416754433057296801420093078180944742507105817701808870478885277711075064714654436212881132836280871371895066146910562893082791676367168647719179875712799330614232827883388363086309057582289837493081174100110014314030637536806998688712128686296239004665430109401394972354731618375506600403882648431818284488539198458297734102097706454684479091591430423464092409354611805482048195750009585978316891894425561858349902254920964568455520987553052043354594267930108108529761459545091002727078526103108456431626806552573951719506566779799281894896245427163903262157121851904432639799674594561518915278778103583664209194718514700934247696551521876374927632440126310640060209833001048158968601999270552598041023097172001720804442719130014834966339940430693560661553161364980326775771781333118963258737836280628288318123808813632197369991586029807160781019994410181591657564928425148581405026614269092133120788104734740020887424961750202966518006054654579342752797492408898807964458993097388446652106845228864129953594263270440433383348813498804590615232736489105464383600737948093228034660972976009169329465361182785225968928934025733288068920510393044789447147263116652308744718362791662345863496235092241030104706684023951956959124823612857643330447913822352298363105989512295276150073397519158340250128331023056980173328693428284300088312519898038538712595382805713877593812825636799606656876509644329983000429351504082511490018888662287721543492025307585902870706003059873481669951338318256227520184782345043257949686570961860144273029820410290908318570805452505663566050005121704540870870752435313892448491623227152328160591435209756139975915738830484425293391450139925030321761722050843647679802502189244076853074761212912543421854597166733767791167751229937961073079249533615389833725820041267396638077085452391246719847198177453593276215746902387116768017705099710093768607946382558497000613686768085177453121572282090409826151052298967195406864386469345044874662252667228991325704750901039219866820794068400048502224275756265251007757386559262903124805396631971685294832708763744909185643227668163446787872310506868245918994091847788239063827878901615134943436412513203548020746343557625875420791770080152619231242826529749318908999629703945156076690918386893475425421588742375340083721653930177662111188333958441663788487284721619645644335670930924855908585315465438924042718337185793347136172984823700971692228730289879970338986963434081094647379295970482478017307649283794277076872676929757530750414515328041643522192563570197971948672328452686427156588122016904660720748275042739039604067307013443703690336010419821235593290841892846352678217785905068358976421115458857790941957490884820296581236260960907640788605644986443980613271732961867436049678615055296757619400430979980532388246685772613672252801107394407787886191725587420836322928968493711640303906621256137254475234542518097692764095040186749820176836254280851286328661639815525770197882844032004408840714545026016548932195816390236413670581013649744013600296039108555044122379455594566102848952529861327342578535125877456963635975108028680171315830199132882692513478098871866730955126631520004726711057872248546474119900414752264640320466761952363728702447035110076786742172299416718620660430283736442668356351150380977805289352599235845212935990197127044875376007290541090845060121575920796065142532304607902817219240413379135195926935033613845519188735508884416126105042764015869947697860175620443095345155896538116634062104310314035469985395023498289940628812476802249831585495568115485615493015066088966218070740465114947792992255534184937592054543030682985982720568218302509963616670785491208960844865799095693187299610032944517028166730155571803548402735927245254276937107497804291695133767260080047140020197762471704059474395025630297716253789022721491752757983862811349359714202340031746431930543532251617494099803236565085626553579481535023817651753660093426287291332225365219305491152212934320141710778156246984517506620841271076736054156999796017667183628722268456851641182562229919082022058822930940143415278028255728811606203744883495863401061828602302756113411389673349940175112516788187753098373578066994267734156026807096197098459966255515648734268673568082424678948185802515325816081863025840763740425271654628720915145279200940083133839924954978130879675621857331431140056226195457410840500245855436514450963854688574038493427011206198960214263134028931440964107034146348887147889100006078464795811994028340423286344117616935714628600079605769108490797902717985833581756303748816150693768594706958690570801018945570258707698251173673107926159848696793212213950925498534563717705957620606892604182108888539153684017185142571185139299732751058280512278163947610912588591845922307794699753674646320410922547652602533731044823207709099233854972913037460934209889497345663714030373824159694568272638798680857019124202251358865177169936084279551614982498869525297849269126104882267912358848212955774356488596089161689369550042575722836926400324934560782427576101872855863973917551124296170668076112111735050212953439291489953892113488613889507539830042912763939596313727071985377999236636746959349573062680028723303275353137716652784324191266944149296370894778123019594218435383324457534640506044316597870856647955926909951064117515584636489670385345612272240109736399568417750149887795951386550134904433324582922501735443706385383280155331121199382956321159560424904909019924285638613512791545525790583657340929937372929067566977084938616538773063447680793963380436457459545472202273753553570612813611266358901743849215859728299849749643516511210759556345788494667168210069650089413892454282207584502952224701816658643912566207654081331458749812312783589289767770372489698935574148329970970153718026974688601555726336593616576402874921833503951175943769418510190045754046520733957915060102258403186028458412625599754049354217854600726478427586322646289219672167868605400804173519053489315278893457892565754914830575884688857550009371610658528178470437526005443244965164232064598260163115583525018247355180734466893746094605633324813056796528116580648350314549847234855393128083058868645553175215125015510174070206830726202065355494415293506348315046876552629807923473321456037391621565949353081399611909213230977836350102903181350681420634687929712442794739804850799791436973346430237460347719351476865650853304108774560259392824477246354159606670392226525832776686336246710612978948465274152680638795139751792689946336031410197761176079875811054014092659656918128564127095704228311622080514050245323304737380540331492516571878345605579017663993115944426790055241198593194656154789623748345385810089695583287148615883482043511974692987554182350812587757904302038661228783402134775083068779071977422343229604279845166709772536050993660334051231818934834800460665917264714189335051547117899977216233156991347035865961153325144880663542757727913511901517546612068770152992192498962327638662048174970731123363665047131547447807497787384649436496864808042573536773048698260742682554877524824073618253361882580379234653550945349951891339305097145727273098173940344118188079261149376741035213555673444689503857322451353070297599426315126389632122410985724549194561102738524094241314213910143895832575820124968028942563308286910632061818903578393148628037059041442012650243499157900812856314420658654694585815543486201870498700357299930324138304032790977624787642029062419148484079821114080077314250660670826848767306271306191852826509198422718777878942888553305235987884782107276877424621825712692040432536212561462108654543402024768121082019071020354853049645748278613051934566536920210927524442141542870269285952647090631451767577523274959090898721295794817565842218382463611123392490511133547946531238517965337632633404922905958007743735177881291667344818668726527713163660084221282646848761878925033352763866822399650847924985710439581590252413016753824174106776666145071989354143928531502049215767840725401617682216491767478957972622851239560372959663363702701326156227104905565024368891176980002562041900995322735950519934531172865330139597718501734767540393341384534101165049823760111733010977701722668441098654177386839539981157996509923018210265463903821513747376088430456383951347046199270614700485097386642444299333666009260499518131380826434710446522466476259541445379464501756887179555206443456578251760268952055869181196375744961133466960864142190249067783196518524852361874315039904242190216748304807630534624063592083788265044721654397865649199730462320541196324733796289624923527093753154399472241258672679571547699891842339620021373178307885455161587774499499792786059520460208049699158062992100970128244254734539451222134443392715100857616286768563868438710728474827791228512823802365630209564830190150539675063305245574865803224682670605251280740878480809483611972257932600410074173329697985441987613617423765669212121676762951525231065794967534322178511554734858523640765924209296503120628670951213680963654623411132840006189319330116069853325732928941070963728729313819173948708872124128823148812662921917512441951772391247512650352157819807161250538313164005824045909446382221490416705627587939564197614449843315546425647723623490186593308382775652323905572866692942722362986723180350885099366517693607790699100468416835344010972884284239206424089054971277467415753573520534236210534570456742551890021437416013890549788702623183374380718311320846227243769400400997060926270970728678412531375309586925844106400567171513238314180953268912474985785556573895655207821053778447534292710914922471419424218237024551853466650046857303818258840957933153781198185091155383503318614804187142876140470046684579975299645408577311662697537429534106231038526889489556795010273069360359173629539087953046622575330849363481164825711386481415225858984507308582578001966761577976106817239407502225070997405626113296781511431250370684846375120129346004897096755192520924768310035421103840984406943089820196053271559434280779681321421870759384789494426982942845495328521593172474008946149067968400043454495935328042506962636552400488329219325541903266777412672584556177037647206475926616146380768455990510562715364326581506787442632861796982439929257182577116229459401521412793610525379038499172041923820902375834511959922586712690396041702578785245135932726954588975445387989477428080444800277342623095432757353968814044084811314223036204815633238285147402951685076744251134709056727356270256119969100836119696998614806240627821016716781831352169589079099845146551688764506656528200033647167442704219027894469728332913264620618211555701296354577348201237193180099217035867274071482784614892380891022673992514886822010312252800682821953782075695745388388920747409055429744606023797889420563359863319948377218558188261973073518845173100738393537909035579294212397723181326156669841858748022974927118039483965653974759796510341114478445403182270851821785985074413646975065261169141905231088130597499551621496455050995258797130826781247973655101090374766137689103024931094225089381823680918554996219641591217992476817051096072899242831843833935049381270920486791464363618624581523163804337153819313206448370299165331500662572386291546465948069169346777390496739160163231032798674083925405010941380345064074182382773604080975288681715389740744031095214315466185516228756086582862528228330329800951577483820411586106980126614317364211752319721303772426697979381662770407482529970205792343946630035082680512826793807188179496532287433459806235875319967180205366590428837690918321658535810817341507657559322943369457022352128449702288985085615751049345650146487551869510566836819361045691188767391299340921695896739319154579566633199630492266357607957663001087677105146244233352948653892838546119166833935544572630542465144730505588704230013443178211508555451077787584798678070411690005976911340547980027130963162437284590153524093593492422429185070070639246099465276622928221774848309740383248910736232763527449877116419192613013400136612930376559709980878040232943039189425818277441022630895499616235716746956729062662617303250871003253922237405749703725506379432431039086237116715125348096372718566142190273190664822159036505700229294831310543844598810852787288526736806865500748732119739458697590014389101245866387404082375611122318712401185558698890287792519034374173521300137158689293503391459800372008926743070504605843933256363946506490916687256005337153189204070887365259222335260115078886693165532593461769109688902119081372638240297196837259883392844700700127568118048402476932644293510244022950260150954091148821624155248237246689946737114024995503245477260022229260348392115447149510959632101101011775435522347132978633636817641698953057516418461372556408140505864169669476108614176880512703970215746023710170092495934179177742814114740365347761791704816190255686461774151267346610415418481847929641251519585866302076388361625009642659976551080662406134322116438975990557468149456146838300614904979755507560421682747877173278580679144360715734201733123661949703988371133057885276068401224157028094917788373275886586039666338694770586972663789443766620679780836923492314881992040137545988100791611594308929934671641445069483705980985963382150609944579435958877071577184300331399437186493350079119901952053022025348322451624243139364245703262465633219018066724286362724908312676315659381039384269415991266786797897124276254406465457127225880700351174081884513155590852619474628553969813132349313297296382848551118303774267459676566961732330041090206469223165400549774024682608225717348320200208985996997328848647513777338387475824301830335249255265145092875636404433661849338472150083688804535543929586106963617278096597342283076997282593300238494732053634084396341274998541216131847245303678008923965398041903759265509279608952719136459335010819111963031836308549688009459358743053426875932399194054814888530195698457787850601435489413541611001243693218070881429176439371120992727211862588732373565614529292981524719540870453896293315268969935392622590062524546348112472364823569644881043263815270453905750699041275624203553738516524189292360914279186589775851210370310337918912189022664924254774903482425787844544222763907311184323726832545506114752597422230517948263234959288089858672807974567468527391397719170338340117698062783829701765336744356074694592281804088333461799300056981264178053582116427525644976763670424325112686546296018979588523019993095404199713488594411001878443472450631735418548167508300476671299746083640092454976667745186402167615110282603054528376398203954142488775093257666379076414400099115714713242424494248496177407059773179842295386934579151129744128770134959553597375210046353186838416544527819644081657017893857513790146072738670961739503519320935605092513799892091016120882305909470719586442542259197242194836401232369475730723345061254189644371236795777259039052723253866517535583745585132389735709347910311187187543838210225528898121840368578544901260252722323354250525497445849294963462719575855028074332486036338420750368952181313796644873136158716313092234593034931777537764331146870916481128298854672034175051301808911921897037161491109267750669377036798783031435728403319511132620953489847694497946463928073233392030013128164947801879877130148368606452059121176290979998726342816070527680275234200272793977818199017214618620898971755959361989792120695859584755885374895083178434661539187035668327245652631929245118906528986511918422967705420718477556903636573379885827893354388282662367391317805402519239608099510190115967420343559303002896900893790954123477912523169617500017375191532964689907638780305490076973303116287384681648877467002314348082852394319967124938805689303001745126890829412787352997754415516197285380980695673947372499268473135794473265924482902063528703715260962511373743947786327286564713832301661401885312587973636320925915457987791308283423409277808088046379419987452838110778073320800001930566499743382052037677144022181196651005087090150139575451272868939340550962864255832152135913393375872306924347097210787705249882288867930769068335577548455075680276484800084205313706658650321195293648831085388578314810967169314322549651777609777018619883695535580030603832796394538767286335411961454542491043120981897482989339432055452106041956136832616285577894855620708553096874511973493727070896119104259919418926189996819085356750619080415967855172874518821646958792654522679553980306262618155548798546484791989760305710554026210296163108893771764988187244698868329119643422802766946330796335386064498778765069776231043064938744508247014318334035140223515190597056183736891795886988150575610019022436362491408172989265435272774291107920651079474747527235530677425760956674460062491815117962687372375751536100328352282647487352541130740831232786416772635939559845291883345152606956547304080476460369683993222973899651022368792996865586425361471136276981010308865355506833576064479270821916502115911208778037725197318963816704870789221983589029114394932082541672642395187224216559033502237304738816534628670198743859376751463755826561366701485513734177525820430181027811491369763449752272739901110311401165231866354301801028911351827026165699038784012886673032440996005210973691781456651076208974995407169672500530347827461515795801288068388875426934271844390070525678264986155530623937682701458230505896770447467163166882925696188097900321100455108684580576078663382472141243790371991184717344620656133882683507047508021432471947401812593243251213263463860383072929374241780799793739361308211154504517444286121838929338651977465778933872498915412167888037742033084618460957152016100888824327838844043852516503257629468554035350221902213061573375277257977259836831616139436654282711569582400817070835091943705747370239270117650714982056094973153804463981417053156481112122948533033815976296755710270725903365711837360087555477243141770695151981672593090397451199179478956280734769705494858845502182990967613503078273661299756023615946418655376256692098425971933484134549207137075297608333027155236736711871294524861750381535783674249124181259495276582778382318807884304623682621090995033788152796817029864204579813896069991552722937186250773348006514981183012857420416652812024297166299632578501802346925546069385863753379033002607437856356517837849500974626398944400269400844205672776275381920994961341066381284843643601481152081946768752692799531529632641265773382516644114596006854405242651859204121380436755529555213342679583332362339317181750431955089213547825709806390879397046377347032001065235851688174389874795194131929591905584271022099508753534538605834560649843548170383328347165583778535486283422619251697050290787614352467325433750068842375970952580675576593304505200491135863569932713549856253738783125827435349046425307981082992198638171267768669219980513837163788961696453928129535372550176529039171867139451243515185418853762750372279959707325585125884393710028269618947433359220399047188536546904992728973415867797533262256493735389007563490204076241693502305774304086335046593180164671891356291102119276324626449510328341347269647035139952969928889884880133048649578586049696672710169442738889201802043855810078572080332964476711847635202279566067873086785881397512699675111427599079783828182532677278649271515342787619020820705859914682803995939657664176645506921337608960262251503450574382470534300940461738103595123181805395164380226436270953007272107519304561740539005443171140481442921817722758453361203660118859463246916458292808739441128448713901631513872977271746886243607126343041555031267584859691262108329256589065153330457957884239459481430464754593625649083418105414157056556904577499267157855743018507076698240520450184784684882291390200734088965041823725422367909050635990401617694989314806986951952419523772747017037370403761745664643133777340514942889691733685694299678094294733737379333851063960366943236014454575775300237189832428289989114756664602839791359827939835487566487392692285907771085776413961450269402510975166276885316865406209765027767252544607473433497065957293075456460373948497482830917089699326870655045077191253832225165563858436721038134938413220775676039423718322205482696296823636394085215230768147046599219586906617492056756946327429420709631749946960912370987381365453160982303751709675490388969630680419501414130310182220911732883502306234762722193234593366667577587809655186406253569497544146718187110902183655801874228813922092956935140219700725448843549040706472666410856303566165163695845769851949111325372067474346966836732944774773401500299621336910675556653738949719877880208377089568054553032762755503334628554946552188522065220962664974199409926700025422445194042286067517397597500914912590325798774693202485962837280989300380580382990048972086225292158442299160272544821022697704772668111119897520846830322781674411664136136697976056373827195522978816083165937402039982089396748412517305848194810800897202260195528281876721524233545242649569654782932215986041049912839848886713740089333424785119191668521265602242062557401680342804502874915635332478705588050215736140206666445312774190528586516944975006050411567437519507336190105563118096688544505004023728360277788196772456082310431122868693996015537442720254914254039843881232808527320670098036562672060869181244731266985623523958715372155034087239989997408205587912122361346465278693960037494821090490063696666056664967282724883406847263279537978220347960003474552949792412966511076521764198703950853912537734065705202971598524655476224964713925844022171202433637301004216217529570387946237255911031048284927415132029259999465741443834894491278349061333256658002751256830340758846700776630172499584864662117200626746083450253270045266096991198011229337510601114586759769851166325001019115949003642944939788370103993947172045501701010546943905516390566086193540161930513529368370930329453390312520951207013230407256564449164961871929730274553695254295063825281289686968670538017239918167365111263139349037423061867159779930357019393119078642603717675532348445458782090937225894872302419910085565995301290389972275444373431652949137722442144876704129602428340831189740434169604772546913503977357282396778859064877008031886020514493585372150841935458368074899538573290949379667472267689352528371939540750217659655460229813814925582033410432935501672946143451178167245131043328248609336291613172648924533217465103141512459945302427770735529544228786977836620765231347212477122598087152181084489580023868294339247217916069089450982621112635568437435176119615255275840467675984183859637002928628494182964670574819121160952403472366441199126149201343396932578391089891357871884425485031757007690784388064031473118258928111160500481687611782036790158239407979869431206102369208497322107960143524490631127701106818062690097330402243084829655086188004267413156106139947037798331986656039431040331527791318570443020959302922504253277893472824002577680634572315702857271501586193375846883629556336240494136572467059759997759605515305709381335518354911905686654415620769537057040134957173913084209015371368093175672324064876563310944785236401141661718072765204077261688274810577461335751609447194116171703330432006163791287388916553077381905005672648585056585325412773483606497421709539918198371793734592662642828478814024691172812453088008009966011975404778500381785192246796115383550132935124965698818335953595137328468469474263477646153097974483504520911806808239694530387434701952850751874403125076105828450242507702244699208535935867657010712902293671949265700747929872225625744597602157890793658711142855602899987596522979154980107629482881262448298926176133442018858341770501038023919644339257222661755869187445297829863239545944739694389576385893402718436596898530920691029314851584936804512720532392837467364516760192101049211573991113301225603549658730677418929745710073909612864209224018381243815299585446181860628050165577404266668713271545160759826877868930027853335147967101325721955812522691559178535881945898885276010256356182024800123402495987103395214042501877162136198479849412745290987355224634860245545654293922161626977094466422823952425580494663795050906084889079192501414643843176821544712081301007027894323438723521884668662611388860353572839067840192138684063897906591851709536044413161974518960422197579476595149471731188884638940728557873366261091082269557384775180929714700728338650018198312607779817734997294033773707997631827182346288486718824042674250845848640976330815948687178447845542521198412505269533647293123442664655746635800556070546911202644568600450420390376860568757601555562585973510385734236958248067644292936374860339473435864381899842503400970015408998916408704398632080652150668344024599902261523536337074608559726766655705516170198559886130386442920365937393389897858650002304882361882010782480639699021521426317469559397388304302665092599121259285754706465058985432573356775376482877615904865955967516739001728886731442339212158535887829394303482259468900840688256980218380571698290131633132933146936567906974962882398841338160498673468105217063314867117463181954488834285178766774382215890672463092559645635032752874961842674759010697780847736879299830701126513344449844009772092591357596948075656897524238288116420528473580354075214646707230748655627086631132145366495948028665398770028557708418064558358777988927306975382786270515764536539336679607997881627528577061671688409615448297858307787913942722737648178578405627636137079310716396847985014078514361334355704632042801389328282200483362128254186471970166580162295542885714500638081871916630744623384462987222138687588284444131475405547321915389199177964425211116005884980548187087818933875931398505291464185570528505383334582695913607936260408179113312259493243594113544164315193283252309361616340381975913158554550479184881191806774760460415729115347772133141341927342357760082081924448824912331716800557302611011587904937380459148044378440459461245186769794716548551044215329087424651012379044407235822869978371774223500243143901250402152549468968164197801869066602438206423325082660945219519725948767846712816754455195919212073871328568346237906260779533505919925658118291632595078278750493405783778982286885372709671859385977834564224049982874744100936809576323903275501734948383285909989289033727119683874962378327720395427706013867449306818597634987025093436915480034936066910652155827025497045947493879224804202424182911757728227983458887321856758620341264478342168111672087009060184022325506036585122276273629967672223078907229356185799176647560165963214803771268263401918840358011293954310454955670019689687997921709748707015828164620845515701906540311153737125672926889358284502502684722985678405337799712866037673026146547069314729377088132607417141443275270540338185544566593053587403048449027429178808349890821004597624626944100240239047379848613837489155586351799244700543904342749979421307768961313561336011309600576201768573699289994557936995232648836295945517546353363420494706911454539095136814939939319627342742521332929066594773394374172436870662210374481991754462758750610498251636194506377782545529614599069037509199929384234333168895506844926613011301865486431083222370840619213052094420788166200322205418232529208670358511894868201489864644062998047140273321126178142812259771656202412580812964432839934865538833437153757686651575989652765363898494599026702083033326935505815402506223482333848045688365608328177833507427942371549887148080834163335928030388681582610049149618183032624467167656371285146320749326486393866036335186322055809558712941938257518013616238189194991099408115972356107244952248514439903646089670835285239385180928066430522456133724647319984242172608651639597909883346561087901108025570762986049818770282537359093915541327011186154416106738860903966346167196079485126489376163898477746733443055532040260797165051125810548950070794774129997330398962384463227459099469551328687170077572937704511059309612184571458202482275740099332769259276282070501798161634800337954095354116239370981722341773485882584730810188194294360052835923068815289449631050887623729142154862324320852430381911245231746239399809509826461636477237495216401585109159189703009004924103870844097181834911253433877471700085562476419902230543083961666085358393752944395447651625133972736765711526927506378892366680579383398863003961547297389696108264992053160699097007556595997348054926282073372670579247555801829084771488125846296850783973422622731648342039324091260989896818857740358307921737699973747098369519253733629419002073567402790202464004848806032419178010377058534719936401723554700732862039521456587513934302391158924422797603445192030277407861959216886038832466799702921919329988597680310958770838168788530426557764331108592948078248052431908582138921432036538994595412125125096747486008039107190235937528770635790023800017224920488678515485638708089908193909675404460437749170625958657342722405421743324343726091322512283117460544201277476149365784994101073733095411131830835595783128184039500008206090382513204092072628996487999832095710537902511140364051101616856246446335467454713730370068591311716657734826271090125944473206257118348798671475347256824677622107312113722760711820655012744195853927180072274906392434926625933756303722581590669007182231716734158070248166992124892906602970019887877807945691892773654882060000701374701599385609989437325340325207725130467088677913473974553645849744734840317416446032209860091717884146068898183304005935000580610363530493156387505195788553389884649313636754366898355096690744270586255519874875359969728271120432190054887039159370292346271375939649764533001314020795597905074985621670880621007597100823315704738383962071528853611398990737282810395624358112965550504840069546528588667016395254438431508136435758706747371485714505323534839932056205023965306447946610499344598484319870534159104682277503324900390809566251803802868585035753653302318053409010011516866894211567688155044123747036352038339110349824594200533510449072890605275166000242513851143454986515610332586193891397936667094728625084747696585863483246624171551605284484098491289152826142568855773144878950136579897678286791432911187558771799720495384048920877710705518385280821191533101797751126866525971229252540415693925852968366942322412043425703660045400376586633870699032166670003757725342611825907863593462922994765909705782413586860368682634333028301678388355246214950238953164888800610573677051679086648251299777292697551725220835638669824315979512661067471005923674483154434659881122240892558635120131210077801526711864256484945252867589187444222447301510677940581351311255578522236016773691367115778331598413154197251074569764967100851828793566469751882940743124684052289735847575258498863507282081008542476085859129511147409973175734580847239483160844976527981887584872703538037294274760562608442876816897493096292493757935855528737046909680371072928212128957625416930962821273001480177142866922294321599439600038687126899174696673805678274980359839217339845068492876652791468538622633181717148514597843299000562648362694200564326346258101406482171896690239865494536960064217748130886014576498000030189170628413728201757467736367383619798370780388926876992699958104277341317793183566307707202599703794562786290811471210082151755667185193813977558504520644997368271166416154708118955446432674935646019895103078802495418463879286400889872311449918286943233862652738024374690710098086755772658771361891571574447236524091205898741862829164242286296478151134314579626400056464188832372968615235375042650131832670879168407100190203086196575296238394162034933116739893696898446018531554370210783353681734029076266248628714304548995109699651645298770864957149730379661769417437080465722153093561087047797988910125479874177602718733287755666411841511127600564915488352008664205634263979553553322838346139094276037501737867626038842544394891231046528577565547814857747790419269163255415236430726994793279220645049177219037944816515459469657393721387224981422258710703478113500553479847777969400320703130721608730206398913233605834361442483007138356732833444252974847858498484563477996244387436938282580702173566513804778925850717939786895035894003339820786223758799267005860028482479427847388519985414594204749336719561507618530762172096720138861264268069616497758847855673506207836569691302253822217680352374665346778974283298720350944620813106629672913881299594111462010971533430495042065368133460030864373930986374543014051894818649253601645737800481749429229613999521703443461473592503502495598211941235397827491473612870769515171325220995282435653827893639914366910635985882586639641183387243549044151624418165222924243579905198013002838311317939470583930614827025150275397131149472750644738859935897863691136944930845375365579954272424602531006209524786736748786496361500385813066274212709444518219818421961687445907606584433928134129032992686013041790610815408481719799102733792039620196608843492475446207134675389634659106663387754120413998105614747413430138890641964195272321226839130077157364998338772620592151804356363076519438527850421926265956960062548793479063580199356380409734171009828161577045763610263312128059464843061878613585568101498277424953292774209583706397566178781233261419639875929418937304951514552946933753263802510185797188378981457472003522291978750870646879373048717938504836547651948425702749705023183578166746584547710672980932414701265073802092933800849432696481708851460717522254388471898271529826701385607772291529687699232526300375191000051270424981784999168576135021812112741523599114826609916981434247242517049878204011356740288354115860114815440425086981786050602795192989049878636605981917922326110907811415083050329055799251477301886028136812023985358707731103628774453847438570143728313098753908545633884243827916636420864065637764679632878757181028447257153098809295899702930518745438781590754562328388103623808002986311578242438560315373617149068803126059915562815292200515425946106818394986331179148204656635769842349468462596988760873962112682339348991309276498195570133382831248499440042384221373628336479016217668909024970380278820356901304858636659400761495887897192964516137492246220054364372806354415382632731258835929649760228082201607690763944437542683855527379490598233587791616260113224762692712775052072219811735733289193034276818179185010033621851349485178218862437559914922290062782089564088514671829724390323042858663509213608120209476552716650082169828420437219959613406788656370989306300580288982789669231686477426128689840503736665170722045516390439050995696565253796027810300848778042156054964231033504382383561795126440428097429924761272113345361202280411253951568677368637256799782721286590999261364802181761163426378393761016063528505363792774161525070015593491193178113911927973641633141305024212928164655412264520941200947768406512352800186899679986971900893074819545287223297408981530379052296096166999233299051651390241889723861888481128063614748494761652280924843933501571643925493363767029968114248755009160462616798547665319878168195164318772628901211736930672836228231079077223540282492429632531581235508388122252695917429622998571395931238587940487490985429542152416147409055941744407122635109988501748200912250622563469953432096131126332149785806304023053160532749588791142714288777234840619652445463167981177027431394280082262103162622800799015820449687412164183229396142781265333243715119158743354097287696402098506038744151367640578719550993979556024060900767638645902815325007284532956282844586595462416932291506756899180299644637785807674056055756517273718063135880584755503033762003666484107902962723147549427106812590088782971023941248331637324449187592336678157647794830015272564917002022760073429537761437645703413089805810632374276055149584794223617197233039519791551829481877465652426093991392273704509952131181014966090122115131500085558949562355963664876956828218912645366959863426313654069743455876487468541969721365618961097529864049845193890197151921110716306699787771166610816026262801094860285208308241132008265523363387113935487543924093231028429223258548634467642714798491355224829246802877620933956445185306140174303578549307444492269539544425985064540144239485990029224418589952098232637812360267175636503074219263189291306131386089299536627468316163558891877098610222555233473720590739054311000006097465738418895429008073977589648090710922079766501528656984654529052156304617665093585498931200403939771951936615822197355067367070836510384683139758182425528128755784435533913689973158855535665841080172884851140945901586504333410020713676501080908887772015851337242720205934300110836987068404735533473945256090783333361431156759675657570791838258275951502745025828452959194133179637922490243147366357195751040846642976989414664773694693806796134742775816924374866822323571919006501465504490634241926941275299760416759520446854171672515167512435027370162497217661532117220465107945033765715746997101161411128247721222768021827834943657423207474931544172101758089154786431375775612171372099299445461291126405618779504693473209070185696123968356117273363736310866325526499460074390475869263380996210059125389588927086916496384058166283101908675100807472612820158760814095380558411611872079936852792764326543700539881965491505228487372575346282347336664822802815109349577884407460318473830480061057912351523042880922134026219315922854695027127518419126889195631141686676662376712051084419068053250968368247889956083781626308034287470340128699997088007652522946848775748149542563444626512656055781830092579890192383601641542295783901545967676144746252366849143190792128434438731277958477044014014698856038873574669096121654371042537496298323598116743115187439919026631756731406778889140441387445430150908506479370845222904634007457039106340604915133856637318717304045350052004121355323099113339083236477288175835404074444196295057084662977033463090608273180148391800936033198205879623902020556359225037288639183039435912120700252761180131286080725548590816972457755681618790642363747488357738765765144893613962118580523971602950404233319799442344440870999956395376632156848612764545827751550431248871428322800714361106547926433946521306599031602130222821712465103020051250622199074126704578352719636819712809271899266224485606998050484104989564370180905055495295039041428167001703413257410256606049937755742390456054144465654215097126867729470788731830336474024096650759772765912778773380593096257144383191990495696446892379559412739565514279841982000597989768588613136691843713901022458440500856602448424875331281805921835074049105077789311123784677261988565239374338334348739624520377188769637279438306301154446081058714072548250984288114735198214020517017881869570875414722247967000176919017768101221748935611477259041342942098502692857172932108954535018089867738573338205096805013379569733725902171890511528404533163935931094527025885024482493629340458796961893629051836695376267019182303976814130221053781033771077866688779417484488098093652881221127011459933348671497192883032049026050971255595675782906251891505114861463135360644505611637697695659264872257146500066844217285838058179607788281712961146508323091548300087854696227294082843509635048617295844025622252024393563513258895257435799516920114755540684215873072722043579507576702205158024065632636501871500667921197921363421959680913038761384274019069225594921145264932449858845998859115913764302057876062053805879637409651819711245175656926232068027685482888180656015329003149904202819754125807516700692125419460394068569766776683158711158057546909166771984314197220713609438886363837257376157075179810667403252112751313570704184274883946730725030824461476814672507828613971619560565193723878776621391894142986318620319763959207110763917044068523905330527087613403768797774399800852343294218638239300589386393532919798132845555140214183173976507107173553235546715909511155102822568145180751631700742518321114062835244386335381729821649958114793211332714876414423413318968313977948035213967539131842032058314515555961378235545497419197866711141867799466980443559524527133209910228970116004354084713568643208327169592540101435377082649340961098494793959187917271515394335263795979528364003603052493801265381924429193187607334667058242415174606499383451806160657719441502287242538501127944813780630178288022086887446730908450527968373275212015849131972470190201811550372721588217916446025556046925121971143447518976514084530834848040859915335586065874008475546202049201027613558242259164886520878331558423978971869164643698203149490963574761360398501332888487010750820868187276837115677347852266374296062224348651493383514577118909583054295339884780687646459565674370600300159004509356431259914049681603097666470221747487407858367434371393630925949771637080010488901257264719010511076490109837292029175882104941463048587803344942975835195639961046370074175242802097899623372658980276466526328445727326988839455116814003158903152535957281721294862720528843864402710916557748062232682806029655549641182920094682665478777248647494868547631373473765547298874144804255425550835509405063547112840159700074747284069390040543466293176337628431722303015155841395910694030709316475433724349380629516461458418681446075166683349794149852682565398630587487840547392622671353230041711428649348215879567870676598780851417922793678075362762952149853334036261023813113339286164324498337655980237770812096084431841057218157791997856896890387836516673380339760104529459843519469482030261773459044710679800930277842416830019335645621790487842927969157852478151356689866909748281189001147309919653670325509904647597007417769134368984250693737214348444310733970365414477089934872967102726482475819983101001133069029034683367501121983589096728765604499862423306700360670989753280980610097879577262267787701288196620407933388948586643960891778719563767133881757317226842880761886706649048539356169403459393450740408357389670431047823642263286743422249160857866957441877077964223788363278612838073376357472116776053748216470114655539422275346416172976705420880276491436654421021951053079216422411611092706885536455198007362303092828682682618355595360320900518130809899540787754092049213287848063035958274224827378031141293344024219794153049445320656864413677400213849742913697413151082445528081390877585854826818262797366129761381902038388458342849347726969238025043722102772321579854753704726197849164605102376330011118580358590932283556416406335549210139351075388737687937990970617558035540188729666558143517801783259578429097617670858323589642852050691893347750823719785625111735504848397900937390144976007403999650167929780464593437151666809086783133074722267116839605880131465007473584541525459802952705599827600441744744307957212771048874389793379542023252227499681039124911954196877912613730216249810323309682509144462860360675208738625006160923096800334043341705871273289157070154780495142407310841819338106361066004573138889247203701398714305716672375200048657979515285622720683076549024929115361874794790677360278493913473190584452576731031728454685608002061699590266631654729680652894628697575591160429336719263779197977918312707199403743808735419313388866386551469533557447787083336536306836103610099312726038088842625862058765249547756338581803103606941754954033313256912704104084800322160660976991534456464443652256058642114521474531262642685355238100744836644200361751859937182324192411432163539914216323069198863896312852791515791600555440633149087668207611307659653109202652436705582573488871607429610226788496843902116017380325840701293202203979048953119707383961340926006223699543517899073667137728509331284341164636949701404344390093062064519509179740570959291387626506044371652784237631567498227605605892708444666565046504179832614065738880333333591377037100154181668759217181874165837929601147474894776580624942023494639804185029135227316474523950412067969448916994802751804946578584721916350503786288468706503375809308233296437771125904600474666523487970466407858751455687782776475735895605257188654979891694532028106440733871903294504969623183388654860344023157075219175133702635775963714626633028164109216411580604194397309130705265311088384603363293417561309391327713235166521577043137197120265753085043351769513566789573955321541438216666265749993485734415833524607767328156949444051476670005838095231559150931425324457407921181768678790638530146273096421447749649816424901475662747146907991073879811872173933303138435796097115905159622894164954596686882848071141063473476571171862294690853864646146636593471047623613220604750706707114373950228942433159398098683057668721213153554624550262631614695803955004123164754057914449921207470315361000788886794109941234861482920190807774879218447093409627754256729552619727733438487395860752316455703162875192916159391589535954659730649267282642513000275045050797722004856002678804580423232499795020871552614128181614552022859500444697260541428457696727765830643717761562972388329848590374246315131154031640626805009936731486503204896635496223765406490771258050661654545254739899281666680163675040020740813225723675985339518457449124239238617828664981391814788972918700830386637614136804257399924758631447955363387638552848544453169721609554085783032552379743362476748827379062208079821775620653459080908587287867727876601168271243778278454885313055551892606169950527202606706840017736970447554086066811331529101988735393528206441235186141094891914956012157506966574334431618725146226041406227816713001752260799342154849838624928038156264281777696769900917927495756477947245830754515681800184491069807071211319546935380138361874887464159044887064646082497455525923556496840164503948394640161045528757843158599145176439468003832430695245208289633580447242022610633903541672908550010433824938751951997792147887526795853573245223074447278176798404053037612660207359162410395936586103834166123444180540526056051631089220913161439261117476605033061281805432274718907258934326540824475798954535816491819508225973656584669735022205946725356499847393524127228558720003596636531327967665717720425761283253911434175740041872897343583923005207156439522071167654106951211515847796259541459932690849758108384183819760601771045110634203129236373310777616060682839681422966790394719753177974388702485000966610030402141045714018536171010792673192523959183414706625904469940703467386897288755601129758267457532128586137757277398611620722620750738835939054411956514744309746017784446129016859499259743785820526616223731671541621094297255459234643517400557222190743410059256338428615478930262319646406698505963021595974845641843944738404193479656049503871563454654071030128713895775763381306675619391342832066162568567208404518970016304767638358881056393054918943687030112303379493825910637465939252715381522235849201035889762204916649485614474792657959851767355894004065331821442203762381748531058452271354831694669165237239978239613143515326828465664682893081645611249632164284681892109506701129003009413228144103533933752302334596095831371817761345719976846404060447543862820946080496163104049000891294110491067585188267272137120657893943271691535449205814390965729016969909653263358461433461039411849590641873994697531026185574526432389400749083052330374066459151187451787674443651811182578720100569415821720316397784192769074897207177611018108240992745013277271778583545037532957515827061216166961371069812369836295690503565994300125731618739304804114994111644189185820738533939161323906438348829281404813344404299163153914113029111931512026804219186574177192479526362233140455272892252509316282018325803309836022488519049736779058642300215171674021758880817492924296283966907996237984306291493147764892408486834966271844441719544290805416490043938393643839831143505762585881337779446882058727943552610542234936993397921855935178532220071090873844004171046316855522476290299379005818517505235319482862636294787979558262501782937132572752161589861546775115159947579807559068690246055177268722965575088842361870156288879149009103569563401461992219652846145404685572117898073811570538977253618150634933535770809254147360147898108768989881017409645095533454935127734900176835514726173971028233834176440703584524102856328659077080611133737070609170341272340914178023177270465729726027184610674335278425964677877372447750991922701328640054952327250577725530451570506360386176044306905295635619489438840058839043470350815676951462370272566939658118817056449887106348925555766226924610888800532448906564233060382166688485042617281113091846531292978642227507614292766060986502925438432564832325878530516970729633235136858272694271282989015429044605934403682186027350892505151873858190058635204967043940338287097148866560627035816221157435950273543475966909822241928148805490411556614658166778321628007311728349730113383602785560436145798980326914437042689231027399608849239619420948682346050028850312687992632638304476319780320181182664303064539785913226135858386765659412285879228123683646736288014500628646708524396940890430635647672155160229125677386831274533351935302002217908981747236651912394588139589233471715224250755329819557531816906369341799893250064761448968232277802922265774741893220955115061575055746958022375386379807473398217502834699181382387317603134962314818252987359484160250918788140545392948053452096808756052741655218398542908044208344628460501721407138165043695892631436560177692979249434936730230463243986280613607200586669499677371016697624044336241573909382723166286401724353689982891180500865631736890624362775243720732005585311404266955298487486362418909855402266941790490973238586711662670623499400084689798547594639148209335852059873469781067247173429523937376088030625313077028508926865301837462717564102399377601144161752270710922401727604464678947850461162380312730563473203318353853038957348166270961856190194995904290275230868178870592615813731789946956512336525259122991427216127825006027888556449568720415896963973979942854395151588489799130846364738984783149782990885616020668979012359674546859406908733217923988981084499555242697312295226530250435106069237274006561658034858343662630215092457946104010011573623395320577341380557108704161180486225206796393247082598427976013298038306275909580955257269098346838399043773997875527157556138440506458733649794332166012140149877211741752949409889194412923389632078122361310596869669325616656992336237147010772890182269447021496090058148219946561802531429375785513776273544562457895218912236091929689179535322279190442655895829852008790518668703389082733916024237407867936543334259552312916818852913192598729479921764367740494520063931992859021037442716226203028305261889663160196282889908509269651821221606749358664299215337911255886318052708638162123317853236243420563966225644561395754449892925509485272791662068182347212172769735460728598952261903027069408757864205032311412637346551025455804491876684553208297785117892408009342249588500011231523400838389435039803441171378660665461359109352520707437322577717854394130643270623215998079017948890957444798519535490092498906255212229478852192018775211410124182090324189174804534314846601370448023219369575850683647779369467307189665863203178081751487429050157675027860188691311148984852921348396764053281225168225646671649824934453983627170380038682028948285760409293987663161328047172969091971995135454968641522052200645353029293607610271146942741225575366932549135202316737793801091420378071752610829152382257937796829742617316200955893685385963969521607244987647176238432132237695754296022435373188084770479266977488834113806281083194992114544012942055935949898747177424625711348194440508172823904038740661978365698216091461850809311835524174657559461752789584091670402402872471924997808670700262357024086554272311862196212593995234193688977222260330116802762984281137681319223336633619250051703335194527517566579284104060582082081514849912588615685189546808230330753107555803836295369826164971445590834392073055593625743774910685554250263598477617015971154051562688839033361964499564008805658562543786537546344119300251696855658674202284541251472607487780398333800262716642586371328591358013776728874662584692077449484660716570823776148822206161577807441995000554374451022794632684236748173496798679957238366270766626997834059118382213581044989695375462083011273243892798064797426996417026498318347883292862097905905415622164697032152187324162181645836553600066572565749616473795491055488843926091368778520663717047015286499912452231726920163313837202291572251209071748830386267795055968879126416286669329626229722280766069739618147972773079625681945329980325983306277387799686523658263351947939866568562909132609122691344095511702343522748368554430807768097534940735595081600337905951170607429723540759085544108949437325535615460625276976165917632415455717689326304144828419774254692395465418464001004959725152501518755214276660203495109894728842796311505866512891518199248673472966601877835879428195351171036012393899629257677668821748929352725754511502271240408644029021190082693346097475838469030779089543664810492189466892589135094896190995375590654272214394882284980923670826276910297770921900816492286701111296226934755846810344585552080153311551634481874306774419619806221617752362756731714564083448565972252621526591641366104320516559560962102276187626839356925179424787481928528350492743851858568440147695820277476245192362596076857115042564837928646337964839887052217476446625784020445879524793511633774017266494291218114599653409006703544325630269855433640781909993282547732519947767809320589602158360212966550777975705657189905082789358313267221658025564178557419217869450860612450251242951369003284896187962990184362666280787582479376207674890933157728615113282999391255688583110742265771571422271714208095656383401328534120690531823299889829055025309609047045659575402123606381743276941640210316959428340657529299989745774529801427922265406191535309465553844764581813290595584201401755623987185317188469868642018039370137703480995379793916550008831140717754153017105115893397280797626653890665435088947074718625903837079475700008301159471486361861375200530674646433429172433790802514299432886413989803651677444638017242877278105331656660073023923091332639194112080459749079889395641681837885041213959254232509781567369880728460602424362484477857996032789352653664088399906011078391411120643941285811638768066009207480359412690633899333075845232961851037076916746672118757147431368437145034117684218151198974613463128126015192961652082948003185300523266795388261577278607053623572111511500220621701607920513469535708510125961303370473099509318219722663836752806744577977572345811575261461130344050064971454043651157606381958287193983668631667005126099073064252766920423975884390328104084712584745287370746470374251461701187412180753086582726213999128609050748483913630633052380950714808171658675062402506858230159362398420974018611711373108087290496375149405976334970355288917109449000279832011646650121393746283815740991200311361240898444463603245633294478571780666065371467801431439864529427111973131446415247214652041016523592466785354241960264582744732984780925270866193116110357612090292432892153138702974583588113912727263063034685510082262361120070464527084309237158334373252337470957105990642976761066363794194964387466780006297180785790632855976269037246274872298283940619364173875630924322962309418483421652413245582972476741445070269100140111359046975896225256070894958741110527088389658352083168947096682633782861458542993793399703752332221536282563156657922498447593586639010034766269248019799389466291109623343879153446246213396761989798488508010631973354185595976026547752918416144734953375514619977641427981809442693038397548191992177142151272559803775686003038167011186773206786621111457953759839119269936667137878652539736489886863548210593700582690806339420192072707062208315482703618069184528825024606493167138772636320747703441689014138353185142247577574978370858140330624645727276455442683664301154993129832217700337527634132450125476502406506674723461150951019616726407121400296209861262256429537200862341971105733554551997084219938930930261753201911755022812588162053993285289577628288593489388954873889615566814095255744979757119528567307258057685812636201145016806863005660697888037303672820020926112353006905846020904860687078319109190797874275300210097522555328934670426952259539535693556031190101275858117287276686349936102599170572174719608879640326581268498841404995136201869666412814560381461948003323713308073777034460417589618935503044132605135424326996257898566730246935361806984475203810869496769840034039515561415773537161606034281216323930032530633557687349704321268118074242921330947731341969086934787965533507483115639812677361420345489175498363859314088924422439444982103925218030331924925483042446322942412618566187138365312029566513106283835536893351281323191354463402770938285862844216429783414394123969381335838237896544346815153019201959114752492212753593440518019160312773572216189394548429350623320279132347857436579838860814578885911379311373207146724291143250089739844012669541980151361856966140866001089647657842581369511343810311485120299818367935721782811493481972946820147735801533077391255105106311195568804797454315828891664915716263641305558236484919322661225887290067017467260198239531902828895296453487260361965212798232796074571514569186562090590260387816989750670750088546727308618739590253044924970608851712197596398216197891907692523912176012510209812206363028820953426633657652769512957475178144738243182937323596520570462726553032829362410300195839210525090467527203223679642126233665104563171767605355793012072610675003208966291916322437993321698325867845817819277649356337831107556019792763412872581648390918082201051147991019357707447311242859763684804161385981548590001262306456516539850953244764457522778741272316843491794638013392089638160780702633928604651249252316138821889858685743370318049152098862196714726562080228875610974655426617718106212070118294516312211075221601549963944078716708218949078245018856832224545629830705440494642647821071025594847526510971431256409416081247413730264001971248350903271276515939214637022365108980663489767139645028017814173927457731712619855891430434686119074290550411872366438829811384833373218004268335353170715117386603522465487269506641752959796540698192791047308553645373614191210655161977147732006478408251908117297920389025339690639140924680765514917469983573306915857655742703175089607443562640187351350083738485026931214908075639284641853149510009719219003118983496524109617832176430481386400781415877871786538507015347545583969066298685851118906251361772317229940511778113081022057278377345368811019789044083024731572153454182957416735978693677688551660788705930794372994387792174563849102649561799499180648495889806237113364682097232566799895491662521763019458799261900603620727581751588602452664479171481476121510876606674484273138251477381359031648996090274714819157797910869412731107876818946713361658764984931411048071158466989266180563394535662599183883013873852248769949318365489335898088377968171514090428111494290607343138343904935647615388839561512127168397411678957030439096915245836162514136793600303169781497126174383741816544897190339074575636511778159048132181206263030578496533370168652691484307970915164200216156639904848792052857447966907424003100639422322658911783837464656697860156134636329055436029641852944195873088588049380838033004539538559127719575734840457617936198188395847995634187506866805786987081166732367465291181916277785335152183138057500308574818310521604371069968726133001038973754376533490710981406988635097224575896671209912203600291168025675425394276024187664664512367537357790267502526556271424483460639086070810074918162802236249725278703982518349845749274851087466639042239667733064174376523358754211132879898407102243369658675957914926073495473425145560316987261520901341499754942098076291681246343385600545119365782005455557961723275187934073117309942691185716140883836105569201479191266407578863879449380457601394893156432688813885426422086292460607535410567700059811179520148821863479330960440608324470224073143425013963380174220585249111914867822011633460400705208003565954886907642020975952452371568226193510453065945396865911668463764149212079308814867189020465119604451383214046466524734930650130171645265022385751566403025258111131762850465583060010158620993503401553574869495982377558351793158521231547854256614659055852627067938792125152838647495684499967520966434735828317104607910246394660687741201025804347033752508480984455893692359447114404086332863079402234318364908200360015095309307792160072644743262710426749013604361169284911979158834703923148062007513352544753952994633471018011919421130937823389908002916604608485415267969343991504794649039213355335862781275244514950566816547728106034943634856283205503518401219854589304643230976096191010349333593438581670644455701296052588456850034855754246231276839997576312099939437437649656792510068779053306725010992707620205172580936620890180449853560881564528753389397428590381783309680679748689248825231006778695251907605841193019729783556550248978149066807734668013905700863985726963026874139576946862810400561197930464843974812443630473426034519289409850245461646574923787927966869666328574246857579070678711302534599597444290077715800523148981601825108667717752960315026589790090399084739240357914777694936736702143046847801450323486449635952072215974635610989396572623926896958819479723741741675546778041983290124935332764822102511697255589642552541995796442346456006021059303701321323204461229363082326545672444304841296553049593253035905298221754343603816313759444374592905224186507468395692812774326891504458396095624232123370401413846989083184150041142827464966761664434396773267827297432453506397274634187246688167014929035683398384986757957180071475314417901634573416536372262328295113372442006550663262214094008170971335251122447802183664204267912366183140685642610816512849543267886703115173169801231175926683440752367217863238799396558031760478859712203092263175751422109336918123951961190343737171730998854231380344135674554203010810934734957063276358215156643898087653018613810665120987036283543689068431983461702563226298103347868393382737936806549861867866760333540492835474682857361904955859878625428411477454609436642688937757987304637670573779101230376804433163784985265024094432553628540472381209438057344277509064455721844453022586512246959856572386262407568658806530369751044307208310014831285604958322906179226458519139703217890982392309138513238451213115769911669176417906836508218354322798488637011325839762757606610424389374627319103827054021330985522756534563881379531792275138405785991040583318519830231920507683337310145590344216394411626130236509301893789010327125488720229336990179978734721395595452319582804322185295716623637365727314217560506804588676356978540628136881767102040465431445772113787254985129839789873974372083134145249006338381461529291201004365205548327894815429000468934618731979750491168777393901035343335952198981583140380815540865604467231135093888340885710161388326804321312417023581974887982920107886096271410432366386869841909548094235898919367488143195142758280841938376224728893681790921160331796972764307606931473589528329753140238892051633254832327090788860484354311405234274028319472158535164216244995525599820267780844849107546073687917628180508298974886208479205858243968111824629625159540734333522620549179718252913606485683775068357757067667908112104783499351822504370095659099507356235556568043104152233552330731005211177778604432307092331561780389689018088847113724484860706983461820027566658795589767001086355207948268686935763251325957099284624305556437542270574628328887000529133164053112682733691058049839417077363701539205122495218156958643381138320186804296946368517048808444916825944255403950246943104426181297746011390388113172143333985534637952701409419964362383803030749964526229409959101508829693052693568741603647335142369109598755014051185380404408874111870526471168392405689292833068147658921458067543295412581800086182400368187486503168562293372615846416319427324011304757152144283827938839005943672328677429143885518475743532458764973761800404307173729992439693288889656632264753312517753820137213887260917439189318523667869623591962396801431184625067609628663427410804359959445015909890904025473525941072711456159135253296991050242665926655554042833184469801182123963853661888027964791534195090456419509828359389525102077279888532992355187872200212852747142581390693266843624792127978856877044325848317661497089917367307467963875054781088324357527467401653368316560364332161816508038193078032700018463006024558317645527033257683414682977778996099244316179558846789445512475886592586936818086716863909668113937887558547588531004330117648303157842959600803622386411955147291545464923222119048191298124282509210152633525619034053649451691222742605593550174524005659641305806997136899124870248442478904371589505353518492077328932253146701507579045961815327950013006736462967982217056222946278864304360656993514991288468226476022590917055932887136372024145425399269090545362403141945466519328626476254023619036364911058407920784509522935872081405128732122798312134485542899876072745720143953481560377597589894276144767084687846844389586327365107286710765109298669991470488996852746231609228422301016202915160836062027944791366687926745464558470384545604619580231418970922983664888970983478209676371149587714056002820159007585656938711578838742629863229826576910276140063379477224542005864897358218151283102457565760746451265823170209284752809864162558597580785031250873691587442157344738535134141928019723157226012764256906289807632543089410725270419246725063877509820104877373805552542891090088705605965254317292311798179190792363045105145115676822686490526425224968888585699411919587555417392403391535297832690008374472523003694930900760885136552594431493016550755036849870920979547739028502313782918310030319105534527025877483291110950895110522476258221933743968188352252239239340823061741703078687714572950541605440652926472491867575443064422518643674049570855118850558098441424807115017087609881584669993544828916814074993335368283716057531539240242451475663157134667604832523384540397265837822334276971863548076502283934718095467586469885752920762889588704054368090449480901722358450664119756079030936466150964830105447496649616670874956339818683940056234086886949701500183729256509855409468641172859701638231348945650904211412505043954543842524759232541792942814071459218190589118057901694832119279085824039297543336705003172740338119967910364546959547152249194421576383278590608400467335824848049770674418459124238431319709394710467768207089071576030947350129147653286900741430248363550337455895201105171329206286077457970034410294705405461193013863958543530294388554269171356625582288071248420659487443350908822071916678970441979115734454697098318518916456469083415943179795973625454874767109265604231165223913758547851142710461112963481666114945503268826464077735888483858447990932441282099324928336521590901460589022396255710840116455781752194598972365569884091173695703207205784282222626288174178695383960454485419213124186623555687209652578983885501812170264668064733552260828235773739742448656259716388964874905806576308147191225113685642040705346559070523924479165053939102271290537828796398474242247740727842803867571194083027527596275073788503187752394254834531494073777997508827822559101166453097958085444575668811655254565994706394553591543588770792591428754653042588480241163507578029886364927196479693400548685237501360960489507781785105526113685175778377425035884212094762564639263425563394577364035089685785469159114236608351878226208191116906959252097929111776147301260202060687235077403868244516931679757801100099056341456378326581950288404648152060653356134118203896698130072570832167174960817902884301202414337061413659825559684113931734250944238530272490266240230328086873799909478584186870403909496137519500868762993741111262813090279555892545082495605036202641356571851581702829618423213946609430996213167917976225843869541732566328550397904507143522592818767967738631159382700922459221216476145582088623602098110169096063303601255955508398987774110779033278255980190582040781937215457345241402432503464909000484745088030788076871686825093289120111439516842658477915722859870192286663489665618894812282889068123153448987183234582925776108372511889798612834646147474056799572779479260235882785280795518049147491451667548304593554288303707350255203296318077946905798755936301131524784126734712990782978920855052328614009241399851681995535247513169117038989793937189454072624916936635649757994218837104963805520944395168367533302639169415135495637436284845068806757407980734784774487055822520016593524352382939758313026012358997694422550225471643251315073165866156394930833793290759061547835761921967498165214979744358936726471990091611631870747994322947896995773916033205856666797954841839049512139860582859450069871438422991311148400045770911784118188423282869036255086292690211620826456024728873515334567507880118027426154235164948770180374536408503196920865060547784151199531445808702698127106762298911927192987251124989424053825633313642479025428871378360233319754575804077353449582314662454318899531937651162595655684091633263764056442700398751806596062688538399782927504335815740385058725966417873766501796444579396264176673273910074196808314901724273280292707919078338690721319013380062737783473355098360464171016572601815090746753652801980392938158365606916896961211035289971571686394502218753266958997772134103894964381477076115429204003558305357502513095098997960578836105170447826608117891678451555079499340175305817088882317958221765503305718818536535826900601549232976942961416063015209140653624994860056191620367013305398303282986942385433281824051265144154993064710550233718450476823258876251507890205108219277444188665694446825287284038340775807066699334656018730277116033086464910850187028239869948554969941563755836059828195009541287837659585449237704856568550221602399410367472293757617184890511671636093637465393117422554038035103216836601060759303574399183408096553314320677253162592550121320338809056607701310380156174900930221036924207724600482170045055739263436926616973272204831533820696835377189964894582505800397971536554433437093149544645990809170959217725603526481693690522385886852200224783696495817546331074448697568585668070258385228567587228573655861925405911726917255869150451620433157214564809293307957619169306757303213676951311842087253685303470970608211276422260777969438914849105562461816645521744843866440081762930910932195476147293660697218123069855140349502589209142680984710495002446435064490399372246070076175929685357479050613347161944728807783252241437606789824697889726000760349982232928481356842735197158136103676420475580048928882575325896846439276591336303637790856419667174343952015283171851684518386386936933772493825330827522158257222025091291140967397697661528637520351247883368022713950644047147080277948515407981709664753055704719138779404219234063690323192282985110883376246477808262863080455612840879377071212500321937206283043575044637043253288315587068374824969573843076058349394411631280338957915715073781387876695654224319553091429264924246490096384016026648827606256031429138056433113799041355928347000841883848371006299198248333958128557500890905115999387965604371181776053726669057578836474645956373239729788916581857684471151789595631899788901968438098108646761500455101963930564581364701803251939563192560274473847692257679802443013779491135690937999453065173722325249406406762429678439857734734354149466227290569602360224638683950932956902725554455295525113569301903498475574552995649903430606067258900948632022692486991466078233257688048252830210252684741241275255897594485197434874667139557662442047079376929304417082290622584996433900142581902503653963882057359235134532652351264776157882213199707826356630853879512304988826433086667050884253837987617349130369126569987641039675519513179557235948172315485457520284250668942841931658845418770535859872499509322495000961910391260803119383467188086508535258076098666906472216277937603913664780907521397853499886682673152894954072207701930601262826681266748755813579593997213838674594505476115328509478619093342402516381781395223352505712154861308957423948528227654094718742507261597370489289497071663516074339437682107000228756073860059498146049146538729861594491200455904866597308760427167292292751899714335264182146477143106561641506508337828325648431478410793964247773163991802165217271653030287537569922238760840830731805148991922790647627527858822375619453030183976825157747751969109706433539878561923293222926145703507795986049504625687486664691811188953457432044005943916053662042754136387760426601857554736374352468203905354740290213083608107511689099295631555317698125840807233604487031059405553014924157620805807425925186153244390472908823313274184681053704582884787238488261954399026977857470814896479652776786529639159327239349620536443375554324187126219941878362228585163149830884855344703107890157411542414057328072677949521033976372217212402466875066147382423463363186753371930647905590127533583317860605130065545069344286431534938090879935745029758815166511206122913442453933035010856095729854089803768934097345328581893952029451033347794683418036149886292971555048644677761784825944135514093014666005273701277703377222762522429184147189161167040150884102387088218688362484301731468645993420082999781199805204055050870839751716379125070362602873680075396721361941446055417888416255310885662700056288330709404018885224399730621368697719834718387595270565975744651197964439179483068504944122262844814576191392154940856589275699669701433571213930143673075253441133769867678436120775282871173468077761723316866853338133844016071396151493620514399898722525163549602815834919734885250374060180924672251568735383814401024203771501005417275463468375329741773116119306730279535878627604667539959252691709864204236814737414235573186169901391179722323798453266021632554319014055117758801978713310889974555775658310343067107574807506350791823332236217001887427644463332041732310644610121542278321193365371825998259521354976905073783492049421898910325107784069289628136257763284103755317827082043929444331575749112446979370823137732266193806653098274396416419833268230271235325619229000797197163040039724712760187908411715761810726161697720626184500135008365198763538863547981013182239938017982550571839727729694046866026959527106504580874526067965892277494937051560397261713381350471112187067885239698508760262264835547668597197665199542129612082531379238586763894922752244425716928728972613106233336195900731230236103481195799585572453279773987772671324629967216930318869411785128841320504622371037837448288955477453435754748562038936886708628520901397543694849594769573326596610712085926923938579953216708306940281265966426487288936400015041707992310969142967745099394158493229597346369197156989018534613049798170730892678359650244724479287508812277373923502263930477577985967710882792480911588996414377558003705247383153915082595351011700891149919760927842435733906043650527276147184214807056266519699945686122389083264502805352783687093141497104862406315152257360617854543511621302994453231781089790983147557133828916057377745706514576985387167556867966227334544574044837171503902511322724380864337441819746994473810361199262677502130229736066445075237112419753518254157049562507624981793593001584378741836068790568296965350612801773349523635514885356284155257186922267081354279837717891736197316193724396418746195298257305333099311064010467799970517267301938597517909703006778580685705168821921552219359140952833573662587875357176410287943682925129303813672120357839508576843388108967166091945877874110576342226738842930563961227006843549526797394723913990538785486978557035016876659020455145233221173293685591733495370383566085527587412408093034663769512081812387092583423618073689908510974683487536247480430464165982074517611387869002802782674138617795293388289777683069644501040591063528567389735330134008150327744514546735033065697928830300919182059741660093314038063753388417215421790239136087910812305856110343804742843901532411013470376926426666239920666187065116390224356095209734748506573238093744624332567325190363451536519361508678642927830520805306246878209413436544583522974815806738020086413696582323285857589430986331936628009849876609553759962519845605276833619202717478417355672821963783678821902309832544077947718018877614753284728429007845430894575970819587172325880942683033267686325292557464056757946248339323830101504835610703850329165177113464857763256588502892138608181054944780591468860502627800146868817730292124310571164963172619958576034805509859837995570463873408505800609639325609238719358900865816327623034302190737019326924657158098190781717756110738144321422938000084802479165316397223025966384942129178800997570006413071666737311315315104156860878726856257868336393035710695269601263070148851165069595564635883180158826492557989593165861342567839653297046484499611683550512867136346455614771749561326490711716273183736748148639692957105065567098870317619389162298178954438697985458440835570913075462965560797110126623466599997992976869708499063888857054236999932992702201655241232505427242913213989752739400278458481258516086119694515844484915023387422033023839481567690496513658829871793914952260931777407278865523559711901755462656973087099461685006653150304734584434473209543756109520498969326144991478139949362241098045585344845633458188132516422995201760497153234886367113307895758042375239034609800930020488215617398808639903091984571636535349918773190096127667838995481397373419297270927704534555441724859023737143575881346023348325784272648761711003080470275443108354852398479212355412495014510698241408051226648015311113290336957780735565358874785062548582190136385561582708425847536922132712670097512359324248831360365746166413410648356930672203495109734516926297064516439028363091381665668845124912703363435194300639043972935629555465213492632997740749852925806897602471008020369824393843037255977339051514424888028991939605391360782496278545738983976889420946890421271397512705721856246135632133308536985959227558025795278129736665948213478794893352359835024401156860786855608744805267945028340456062179311388943182188660290996257099045832416317221324940513317086876074804464871578996710336875339968542215484876697429010853643562580534278515553383229805392191140527275756819634015003806582168303939871761749571437972854868695220771738082326591190091140190508179153104508108922478498666255120703600859702747203570554584304433195908751064604796432384077959101493520323596547530664874521932062279573479823677378577556303366303367264553834858700979541003336589450193153494461652038837215658977209456886628974505958781366362148667745512262690509399468112283348416585605116211147797004095229168938359409563879529565693980784805316940337673348050173753478339208255520543935888305613521756510984596128362293828613291289770660099641294017036144752866568241320888166726306514487633887959479895301612181951544523037667851654591078301559784606306466094024848808445043566613923477008369317315631129442175615514777663526705626864988480266317168292856283025094719386472905848515464235736077210656028194888351584617448667339733209329004652239698556003055301227711121478313675635741826755311666823019652772843231829841027669567357609285048508710820597621885472338138350696979968691536575007919747617315452295131352121002450843992711960215416633983218148683131224428729893708816618006652077161093811506337066285363548337237839861960378056818309388820787632509728859574899295888388145003371100220866508844523970452022682830896893540882922409143666870462671094590519441031439447219985069656506397430231790366129146083655485021891128269479448590666002807775100920628898340864646235755982727956345240476224412448017235029356574662452735113713557774412719224059875438920713679077269026148506711394458488718654005830929052594207416545307368447384056238260571837119890363284879684322672493303074111552091038523722687161397185186593946047126767764429758218685207495970344474664514289850915395769920509355051221652487981786696538284283162745451590825978016846466930937546323181005428621990358086518159676062271987936292410032695565825053026322864431033233633075245870704766793049186982520104090365119410880174958016917971047293078123068888386465756144838926639459749249985418141091430954317635016880510325136945474502643674237813463351086094703106351049073261119136587102052413178819195179944761864663956517972142904318350772779505337079920880038460097287761695581663162815517952989704838394159441228020938027352105872332816161937001252679923925437939171246078909023881952944520658153306641546750766128969912960539263411340439836127167466133523740347805028350117680321451459900031762071488333417440101996927674439760955295098346600238620480230634781295679559801624102290888207731559114664359658807224100960639920792095244913277987049048442041164597661097933687151320464215870506991340526265461734135628264959134877565928276764001787840170295266063421190371361187837139020669770317998686519057304588202069777600123925424200160635623838556884316005759065590168421932071992993797816271571630379061181779358643314222526292729862665970498311270135612606094040167435955903703969503904554891549379484712287393160697183289463826910263358723075382185849823019803046960994506164910665549797161116244937536521256033366873926617453336120173818336434446985412938776913047363085627800491500724683855161566891902622229258475362161503629327891266214904812364607563006278101373166965275852269923528698359223124631422561026503160080325434610105597220679036787178596872123881577484558578168712945900554225095128530070020593571488153051910690111972589545220474349397993863468643687828063850230926366699260921003218731682231634721967571452046739780014336189192953743897033734413628798598053951475238852474515832016163727996664490332302886980964682024206367720326633995331099358575947621822568373801896994664496941366918029960833955101268302729080532444864720224403504706143636882413122676531730807628978502138294024109479668590354229734257591032622250293062958143117647092725276691462983616208367348218734147150535494911662584832653823119018740509601325299076667321459620098404067102823719508572879492386890315117460978356567851959113496650153037134184217891882547263099711985708834353110316242142331079390484787356421412949057858676084446354696439999764695544506808887103472258143710087188241764175893968421756524403041373369774910474439737393361281174797139559924900667646995376459382829203953505355607195280150821406414230542918923819805784334127079695412288407840484253982876927895669895439002149015397041085228948449729238168769241918611346106857925152255866551121948914770524007612124910577281419345319884581483535269888109259426042938633139648643609560534486583092727283818354490018076457248844799507241342109748603851078935715829333849652981199392538061465026484777058488735973321181230147302014025750260495291981996219124522374269405103607453032254421958566338283084300185961182449013519763228735862940595098783867140683371310073571186788510406831268395557130578141215153062179501236381123751155538495956074474369577382306300225060985645518151742623709728600732349712092580070196425903634470216314204739617179845372494974829967089847057149830489232877637640021347794967196746122794679018447192530826532843259850240693800445514380486391901261669054276590123156591324625962024226682188957808983987832981937323710161114955602620841327555506906933731818421202161485345301107588494625357690704952188079497187530007170508251144289632594612679203738460945362949156935078023002995138646787727933193506759091397787170141935587819562413820564600899148537511819180340702608306428285233507140552850866630410076248672858350533663937851552054498758529068994229832398490398759405351715624990430074436264248584080209465732896364197488589665757556735764860963357457936436534849732850191397405748955750183593909465583725575062011935998005669746250766769187079048256170954107795043542916659288897320740719759611371689607354768751129479606623618093332698226504310518366793483893591820240777718592850786703104530545793311848473734076819463898366247350484859626999772576203098212785567653926571201254726577318826932499056091123297009194814360295709340883822474957206842440004625161301805712791476399808477157147405081902827983795679491996835699730559669998881091003126502995477491200042076878469572980190180254022068391488386349658142732163133857772744794295722240849794769482940215477453033319789564304771592738368468162507272737287374046274458984079794615804232475949443459047782472184359852348358469382389664742109241106892350446317411594139408424112402731143303667535961584653133895589258086158764962203772426189518365440303074996248386680483886119662245175460278588633904212616734414254193065852644865655737831255407176946984509684035383576260920489794221862534580555934492273877220637990376938812327309179476910008827629179530261706908048389242042091182707360678039809303749506159048691273957013362380234791914872041464816169220374302229819852441568702714197872372402339367903555429742122227078832661125616651504800613916877375827943990351239488399354886108447157919283282337089891237168779569888134057752999207539312836973020681672401612268223648386956745472233424009033813030449184005107287056298409811434438832630777746189106427603181299417802118542711460695377699189776855420616723676126718261614567925641075673309032741640117302869649493634883038871689530476925793911472567116570773350405967366234118409613608731531520413171694162375554768668793113897871204542572932052601651254747323811678084647156019457108767177001786069122667795307840285659238397632183398353720934667324621950750453776541926311744707698662537932893835260646780124195512174101662597957448234102608484655964636953690332911449377369779632437358089417367906274604906799268293087196138339618135433325171420427144257992156459269465417908457887796659286344161092957616707208898774593475274356533765441155296954044245784380784363214705815985619125547644271130187889060268044533356725241454775265118664132976995679876532424187778686960897931774101120723725816735587318526490826068870668912907541098340530959325504201152750588521389825572538566994858902433211629199767670930830814637842876293325394056971148265369304009316180246424785377838056243764231583392217383322681428104072184371554377548820472427373041878774921876849996295338597409887642481269563150781474839048134538774717408344240009863170623147294825714385199141467396933487608164321714224503231237135096515925591912915858112510173957056211379137981863043237408589546439975346310033438265810186647938658143823724452274662762050062919048555895266146706877028428216029723612023174198677383159771426051368795285030600144885258545536314270489714688040650636672121697239010072088479732502038059584953599171300780513407854651242034388546747609307330798687389296674093438650553065881073326727725725061768914428726267352217176537903549231461755134786730291919601455074869855783095093176466460274236096595151382621728873216253913511911613071364123581822799178570590273422388167637822072258428210417011731333948231106504153148852951864710302144964739999968001790728976352967615762900214454966790700412611238124999791705825926087344560510800787868679652202148238973850340819654029478902995556385475154127266959218403695811720930468449133376747352973101558309345040999119453521814506462130969455344204068946930830584086017249355221282601869123480576620201060742539459036091086682717659514317808031922170591954822300612499723116002541446419272674871183013127451658103611579151104552490121450119693905052003916753816083281776209752700494588711111042419906672153657525224802242024691037393853845358527691808737238723346911257100831324480014248049347291079998969176963018563754793955326105206235546877094252665448381810877393339624596034356777326065857576835635991917056560665345647840890277121304690019815650055006791519075138146793518476603104106219607075104254056183318451852498769091772761749733699303161635984262673540059302548087769996472095588636581412660950947076016024369771726178294063779856430732948005507706570553756764972753026813415473145856954977563800101672985695908280174609718075710513252203159900227750076713381162060884892503687815826242064642274907740073408595325602865910447357423136875929546216397393898738461611929484115833553775491428083611387172286113601860275332958999979387013161033887150811131979052619198022631586409233109726275359847741745585772888550949847848196694560652300690312005049589833336814537907021550294292129184899509075429036738995283632224577636647301962778352392957358059634023562556271748102998210988752776388680362415987316326172093685818418918232410999319367986440760648345614177891846260324758997079767726198012077337920021753636878149441933511997321157036458764740955937456060158647795058842281528265476529652202668432435392535828392275189795456657397652145899046431260369063029285328235856207920513056835028106193027665343279396738983947130545193382600531405962494392743328740263354594244276697761034136548893670608124494543344781450077103674089626557681946263075667445965047607567453430278342402221430092356698956781443420645192932714306886056889387276596269159281873540853161555570464577594794142432035488971265231537994052458479589399521787656495068409845811122749104578209463867597985904021553107889169913777884003649438830072559529947429152359029318903354554446116183228048183445205812707808080688352120960970092894039888580585246627452250985087269753521279669353602918876450660627833420212016490542640007017225478527101832569570132197573453454749312144331733115431202438602767137400533177823854614692067103293436918677531543612094819585858912799526633247294155974531246381479600575030356271661342942523084724736494606681516098617006057963998517131370108237416273904862234987919178626344677126359378165642402982910650479062847933662843388093026301140213924936279666441758191710118591644436123545197137049884764396086473732675688757000208254748488667199578679100859369288255544723457368967567667364311304869450759075515523635122703137080594057856346799782310991505772103713307076826685606759933374887003046449706192454508788164125831838045785890860936075598866038939332894265611391761326168715061147080776429472757187816699747562289632592893253438982426178411720016062104819052140110629247524002814807653835959171831220201721137035914896844915882098214359990497940921426258541248640300114065507653262798893652653495106978310081868282655542743271425290580670572639089960828398308719719901179545093858715525702279696166672706903398380002895308756034165880656487273204528595335040927719580895739134845647338845433489056485171573379928416799614453612931102575995597521822167892619858128566441620175092590407005945001406696868533299379328584157650483915341219390851298264682669045850387059975950346469038392986672994277794978068071802762434225525169480319343810176411358097277200095553745060882037595614496213828712110034783869685112495756408950221963638497646046399955065287878508225197704333119791808076993267056118502332306635344418298415811737581660776348291701711193647625255120359366477052600563345113691758363075140531806161233942916409531067225521688686390723770394769948909880415882490926897628522072019002238038935429646462801636574597423567005894392983907781412081218990567958318405193625377882142906185073750611817105772376907397891250847010702729793904511213162777229491728773842457808871628867098577280294522905753699653980270112105818797480052513217656108343214791904474279777564310980597826537001504873335841598182841960963717128643843009697162815384738966103845764676469495107199684686107921207130166051933195577995650781589686552972804387433883745369744602695751765224909785925506549540266792234600431784371516300079902096576355271397959124196586281626595868158304344944351281641126461790880319279646462442661321492171262843953766850962644477270586312928836753553001415611028700912511779763130435424180611828432331020521234675807909927455494087245883333702741283051353145431293627977632371331812090830650804257330490078332065989484817701020928938132037115719246652472865230360488003607489442044058409100965845352484817040708967946778959488673400490665533201278648859680459792020370276532921859563102437251042502300636653036752537705652100297111355836967080356574565755113204704728729882934076127406471946216160894158495469669526017686822790621645649589207007422384946597205663471535048904400386969186471341651730394530391852722146500065713796179364813146927193066642848375250226655482204816646278192251329547117622104840102308379190536171482551831512156493188022097451259642014203685876887775029685538967981466902537368052123234650757813734660948446085524587510440516787802130557510066612768066005563149850223943685803412409687866504316404189575485986778186127274783187734820751724082930127194314560656034977525284367861264814479630020198287647671024857860621315353861386965389841454520868284175500984667369536154162254344140432048230821385621739620308013447436835653855968177864844615068659996895731536241835724595532047564324433874880880146109957210728429439750350943299459480115861195371603619880968274060586791743661111133040922775797783648210463388232450508074939249558115803797515780252575486316177343804930540998816818568635220471487422631495471920170348823190938823941471624780406795806956959315233278039401671378911905093935092603882539422739358087911656156517931293906091824365935743448501693438305704564413629340072330575936653351962071072969348421033842781266656453003999495735029649292224566180427235593751074933709406986585023627100968024792597270382537752462415594830222577986286823259690344203371332779378426287626709094110349621784168657362584595948648906087725557758614310842574136274924826162354156672557038530824605487213170570186844357348952000294642814428514479819479307266649989940995145072151004897399393232263852197290073791953938180734946051078696591484025079688128164297191937105513565426406707272231727159441332175132283950366474126719044250700869357216083057652886113420017522635733330587207988980348183363894715442598518076323975239329438776815247919762697149686155607284978019983860867409323147498618466119039140886517019886286207169887031079184788050787761618625484574808155621014102279650457454547306209018297723778940783442616419267020687806986725886280407351991223912842100951957034131408518576130229487382999312704988627101819027334212795925392400735715828463933810165272410805566790808074161512013006635931340271056450600563563480112563195727870929709158534449940978202510623089369828531166596573183349281152544020824685223048407795056594497380600936945690353839946478305881251965591069852695284969342351867073281482086078118010858005534571603303622126531332117859196736856169994000483454497008170789449038602229381999834518430179473051261287572287784077658171354898371913389579021260950862431900950964191944644422044832282660867382356045516390297157028124908088458484617566155796593586009134827487026777842965232893987719541529787248092781330098719664240049660675457565354714564652671265929129623396235908305822688891786919527739973450377990775140821126710349482558626138008924265221331631952325890159722392346083119979130985488148129521381903140564990886111916232724710598285471592826579004760821898837894552790015472424915347048003989746675220438620450443111886097670172354810035080645275895477245626965637682039840504079219681755855906373125375142184724901789864890178833519518422983049186013685941405096853599127349587392912597911714710504408151294538651117932664272595825171048992131189084455710324381507835176756255377194890076591487322805942329502024976164109153759108857020558550604447674436771295545752905376467662628023374806938362499869707101637770789692057864027337676451735041341840864305175360826012705310324983160015270812663373143141593511766763211230082182182689911164262589367811548114988667389218244860090191742955530620392194545201074902003607086386224373757567655006962659877499278008625873037838591798016043073118989070300633742456316263227515158946447948743724033475874819986670306876620696899304110751658350130412417607165908188381828575021801687119268877821401958209846115795104548332843034974649573637998241816033639520236099798589357031383401646833179579652307570975567328664512677879727928583290030133777760332706633187140016772657281380341502413885196247541466035203652726223165705044537302218598135055677193909215102022222331310804849264818240874819541292279654381841287972559455525738056854413464378060419169062638368921223223738192636320409108796795398430345729752323852694072906842442926298212422159147701586833965752885047436010408355888760162064932651998041757833259120709048493526849375691840344789554940646480787812277844441100326700473612309793294063370684948360055210583078113057016681514375595855864817674887713838159004523627624631625704613887838125268564839766405724217004243602954234492123519978990026987793155019671377854935252759371436182306272735755731114460304332384336282090822833948262151081145544632295407651180982084069282408380365543411198036177575146172034494357411655759538615323546596943319989672012704316229993174286766495103304598144012230474492826454633234702645525705419185757591755665067616177570862736228930537722165800188285821491348104755124775249399416461624574010930917624298505183282985222287735110023429298981237468015749249455934986949138595609048607506605441088352649365661295086520060111133724190620180703155748172684256315844286728900948232108252883585374921213154834184478880152191832790550392432515907988384141589908072513801083496459074426865920210088446656489641982583190651261859970351946041201568568181686980526831984543551282270265030179468342717800062767413115854674925305239732272571895220755872258165150986269615331563822853391337664591513324956620563403293951516112717389338976739294676758998821417496265418332254852899912685177673775268950714445979154432137209695478523409282436185805648000203385386607919632364701294013112572448652214295819822333193219564594205463153924781585874097913607519625700540213074966610866843741501466851755612613415261959057292161586654176510272151294813058683184680796043959074657450357805344803453692349735332568725398306125945597575229501108572503271482610536227586879176379696480282598435396940129946847020526509345291002575095425028967039892723599636230108661858595754604640059961127380641718374573759137965810988129640772398123828415644281559159252029225941447375674526104542591003885347527491748175960586938889598585368759947970066914642862409732700639877022658394511049474238487154501693060949890741035526502482286860214725347980039686807460515543662819152753105367948082460899693150422299265053438610530145858501836139805432058828149568821043033046536266620525103813995116218130748775531326372577834109985853882584179871396209283850960174509044353113011762851440366800080957578873466604029494209068371361347941274778624582654297417386329744641925754492616514891520046030829153460102399167115497837940005138062106406146114092438302492309258773868950415255620724761659016860330665923256701763767357411395839184247287141279369194425912157875031217917944635386082439557161070656238059829068282061460621433750387623215171815444413522478857709732437635697078578551210518110393069942482869658900387951144915387833991773229817801759092208289160409719534422525441154853556198833954352001748024525787335832866420886785408569136303265979614911541288920573858775075644900856487658244528108458339156750097176715511181613777440026662690585654649708870901763759754092829468211148776230801143245272313182129757190528497845967853836041504237458390223100267760417872559368026227719230950635800833850803942725723228878980202976310111294487319763495424552826844527545670162182346287513600718230336018792525077331249028615201028973249763670193454271513358029766059845778879100664946600792006713717935609727778170525661698750241748590009815936728310358809858875095573580517346568612128554200010103376628945790942872753944158555440449306544789247201333525423411376038182599647245912380236788102070177593777384793678693968338956316027030049011400245825341134908450435502730533424425822983373679767617795112182602463312053902916232820447022864577199852614243666496251246342740236146977139120153035625297091006583961727004932483035766059228823148640086524052994196303553749966304926420994796882664406226745877226358817919724096101042961838008980612300541681654045442312758050501238004948430508484875579094858128253544078319027926299756714942309000820491425738834021697381644572494247259025714660414552903305944419098916991007727543219985240738790886808407657145265601629183932618787236237979999121982850481041492954053396032466584450409788599891418319121197307460919476841013313988801958223940232057463921513378416606123688294812995927522871298498249039187372391603051651639927333343782093639210005307211932046090871373354279122276356393466987222918722066524073324449818965324977928582634932299145544078928159384835225513741393550682521544329678674431034097084146078969432913695312071416302565810984090325160790201968201248101843618412967539667424381324049966772187475947262683073964889722438955851574006862280134259850632873221898116642014608996058141522862277406004388677382941590853620838880580310019432693046897482688609339235891968053700014594550509899931175884201882925248958598560237653323481140760390673209046192207724140891382294577818316503393915939197266228477169708568750663780804107790520172422739184560787521074176549250012442864307021262107988918975762613929705831989836994912987712335827734898099367448124414604014837285095051032662292411416473841699739077532752853976844186716367860644465362699867220013049741769151065056695038918796709716281479599865733506071136753412788092823552004133495941821129781678426279742868095913528243663271159011704136865431757984518035122589926387941858521162581637908022666080191561476156508479827420784134810541630115867525025028555081871683431929175435268712308542671993240224617761908316448674776333193565338268921753410512878825507103547137712189732733191045167845454440555941151967605113024386142153065297529216970072625546610595936510452558752238437147425766470865112816205620862130611477124423525144119458252929845699660874710337045672105800784525912683826888241572683820547719112225310037888844498444886222934783633928490301453005065599370244289968546513612319494771577387655297318269496949399848000218714449934781018185494716280133966920683018879136379259790686705945879337964023289473654651499807961874426285809086407687563145408169269011687449719970271050626768803975963008194083592889691873013194239354151075672982339664118801560368685205203423918025010829530271454136078144570853829232170236864445959919969703930885328711651552749030463260999416010450338587187855769871422307751685455419370286276496076316446640093870235468929063843376826123701776825018510644583171671137802946180239883057473429612884158706547919757597572617285322669696264678595079167280619861380327299847565313575555138903760989727649359003739489443529205313075317187904346378295206896837157659851202285461695596750869122545110835563504908941187186946148543859915047491854528246143402364943423365687496641674869290116000918108385211030936221627484916547117549206800660302480415694811222654081457242256417971699585229258655291104407924043950869389151734137720764745335166361590700343196242145871683639258056311982532059480760845693080650214762054292875497627883243737172845828836048654658470306117281338869280751692049635490790322200903882315299358640149317867060370251509980642371701729046776517663918169932404019353457044645485952206068709890477956436326951178948776979396782812515204006659362971839098689710701188362577887234949954177756850481034177899292432292485242478977881349420411196025350296858095427392535871870872548067809392801130138271608551655153618250663595137466631640420946841102939093867974644621445732603856158578222249567129378615661774355885652803563776354825492535810960051093306131187013339888378137967569737365702830229142271322451660381071083332411490977976280716107403230683164671457705593888892809444826784254540001424306163307729870157365473108441658187539282229549695894105757007595970950211448324223418171062656160615106242739374390041786478086976712337882907413546021253377688601062524467605055865616777700876072017762494952839201313661477662853551033207100979312380673949550231564728786299873849660333939926866995871453277723430050379995498806358951834186707362574334983093001940088869721732600019618653208835400197282626021673389912089685638274423340081526964456616341646076717450487507979715043333550198268066229871153097825029771166936095962292213190411801108389004188252435869258325808212082777708285549740730060747877159295716386342793663912756381344374736701965222091031718821376684769807726407111079658544440037844673195508523989339082633047954663363662319052319682426779272261577267810698120983914843949627008157167782785185966049219452560164326333251093211712175130960526940357325887650907119795753747284084357471826166706606018479836106672658768656243757500477297248171044189560088273949479117107222984666699849638498882109360277082650954732708957876236516940034943628041860677910332864470498156653708447010346722708522789581116760183560089379690342613233931937013494987547956126872368636620589879783894660648282623793698687773493307418295590697442579457071023384980763651406535393027025568429707272675157563213609400305829343646628018711643828918914348366498457916520360356312069116226853171461858247967446859084121897176515059636973509529063110911526598113573219726806331381538951588595899810266958724450444088505929659531876005143006226025223865637838395810676676640647492615572696659086204560451975175877480995661910321504346493307872520301388377354071531606920199707712950359445990226725735467336491555027599172507299375863154206604970598280067018057039715496489709760392756799328942769743941314897582703337987360337372680514896768195601054373739734745245023686656104003935232135725185052826779876876802713759572563138426951249154045395607719840710608013351641717295753843390578536485050370547470325404767784398325228982069464740210055980467697726406105597808052276252868414235963928648174558716060247307390913206769631893498721621282532771356116080320599501215418654782837107382739213854852852281436457762172623965965455616514994825631373803370888838301862147566119311372299737799753467284732218964780892713248386094703918954643145815473678995784606019186843928837986274651624952807504606607114167924888385143128176105328731172524219709112206427472877163527726573191383231252621165281252235530558062015868285806436659474010636315099548145559533814274684775970777776193908825080536714417002546102472253112703063883528794331379804455232000814528896911041329326990087783071213443069270254227525553726268202639937850589057879096366941287874562977858056018931800020743640228038919633539622456581199679931825348468826656304628117014348431200710275845344128810726231235057264977437983321641163857450064754050413024071306265542388475670434848330561179347378218305915868599303418237319751840799277256319884850598757364282774591068999890112019295120557946879556251892279340910500504050191833709159654569196185048244600658543408926750986911731827297943031190802502780563204194802630057580821422990720813325081552536880889155025570431215494751284055900496836984490024591316167222412649166687479060468447614502223842593668597685742807538936243575409899224608550896339894398886851722206312069772438928137700620110318810675689965648631973254305985895356913535029654847281153967108402658103299427813251044409111858301954348605445866166536115449874322415676960495153503139298360936931750489197976152101519252911134405785795082585037162431622838895028607755858509231426202135572526854533325268511584139306117308229081803236557677863046370500976194881910944922573379838289395073144383890781993514289500130099605010904832644314306482415569088267922996619531084343357017252286800459655215245236526628083628959178583383071247750800600554293581020889557201887664742120853388053811965782764882278479901433174851796640760621724156101459249807977013329214907088873195474112660311260452862660119635871230624110504406624970503292157545575195468732367206074476963776885609264213683794047152446288577387982014412096568790076542202634963184856989746443967225858425765577791730128121704157462692390200743705721918413991389746440309660767884196316124154306852983785895833516442267608475532327053260881390400974229323641004259179624093873271389230324409613624860888487471978804622553351878924882034463067755726611484858835400808799588416208395784585527624069697598054041353809181987737429095455261898088203675247382287484512220111128496524725305199888194780578733529997718882376029271550796048460223468402665347765402397780889200616492552325519508621364661424088772758070607831736114651064929692250607966198676816738642621264551959849767098677219060704391657507763304389602325596689165666336009477718628439492932620683162167451261367620049079753575553349000799794001930419449844573425920316802305975501307640893848865909213594282316991795920197173374139349274345046341698766417381627004172741709647700685602899833417782338303468457514304260300339145317828494504551419822684477345328784626868348222198335740164462677444042849973257800404125773678447077919859328645187997401616411680667213636240572191991725113752139821077926847515451401109572880487831915226147261947442908531308293131343797425342550680629975280489821242329456884560092319361313132407705888354922052429576120887477099548583380909944304163229431161377480512069789331572335833748228535151232188085849341951680665977592915494670725175072767890238268716765226906787013769932300403304639170568851907687388545828350046526879201284045396319152104136923671637432067402102951274322404509869915444970899232450810137035848034347144902450677931820066869808337111173006655420462245148932872558192687278280023816648598329130616278232433255785941254516874108930244168548697857830417835559963729686953017178890756363983976939852001718930113000063043622047285345285519886178482053936903844796993911542453384088529648432000274782084917693801649915475218887744849347154601630705076542222801123230213074593499557300272052271527553832299914837909477727432836807270976391233481626228074836097382816313129379958949356255446944452902813470827997780531469485483308032516032590735414857499862901256109988844247413964877129696939061133440756513726302887066780343193804580518057839853231703638103467507117426165614984282129707795373521878009699043400591034716121574806548192516740714315931314986903074369441076633780961957842772625257785635907056369152933199085196708405841528518334393415118427257294274244023893586512899941339914918386630143065064023154792164455751396148239115538779454720270760330897961281704575599639619412335729340521615195016596557553486946842225580668234505902561959274160305372419448171200484397415170512109834560720181547623562792264663766301749131018855631237728216162362117595818879263447725749861917111029398974097095743219255132203590159404965720141471895980247936196928277645776362441556617663324189720956395822325646681268156958883884579688382191270346997923355875900862446417501122592226866522774999261572088054677647840002193758797310121540102575797187623125563837820073820756959052039762526466987211455292497368762365087585315126094231837636558938387951548324142620984047222014824235144805611882218440130355234123751359722345511737190555100508499559257121348858371518405817928625445402543670320594970991561810388893990008724518640310959254113241281445858221845457060932821297928788420644090524947274182303256171924923008328376772655385160259265514672084880720492291448946020836394523757736906059007723244640838415038439655419494348512474138634076188382052372437640765514589077995986482149675592449622401970916221477704500550165880732672900038102834892268475127420019075028534214810315843301219479146513751843859397034972875265751612634114689214486700747227339944624778455948647732643333866467088029248678664964020745037364154447695395718948227072788305752552109322958608712637550970515512127112398845258499934521461016131109054364244496481689409946682631967886198032455197709082532203399213116965307184609949028672371097591203177570960909393928542107627338602516174482682892064252803126955349576406951946335122206737207969332619081462227825995369776745276802685223137939452128651900450533879457934390238502641615326697265141052044619551665431372154751883585226881493406456436210279840670747325495418540100158518676805937102976569527471358789510063027543454088022738458385331306714824751951750298102988611971036161488137267555695446608571482662098717504791757082698313955601460382100725700309764851437016422700171914689037886175708398810965785841615844461261907091761263587650283594229103109262069191369929456397564062926015945151647195238539458012580029111507868613806760972857270502858821303289217344597448441901020762424635359973915845068573917139550803011457623112154221114745091075046065945721451765278488162148410118884525954387271817570415856516721705634662639369767199311897631239319232980950517716694960903629950661166168723172760893831772538033808670295300975751267171401853376223273045598358144841757580767123641464896094236966355675558846245352911855324013411189608805103837619666393044481395643020369282921462430248180331292262892594747619965581610636015375222250871960056429906665389269831412619319929162772520704103567045128556029820433154886039619114769756667996310113698148892710638980207609738893128748140615246975255869736650792468092559781526304282218296245948642053517973049423532033124395612489763105354448081703985776808704021719542737410526881812966447456767771526048856422746859152619845011195635131090522800816410316640123325082020324258407054719655492957139482859210665013637805476582776288066746624651626542865947080213464301628608463486282704953257941068608530526714427993618895539334353094768520584517054085417617847356254005884410718747156428344590386252064924007832447115279366127821041885354406282359940592761124517983412242959437926979839432138740950342344666289225461635217638013703668548792891592228350983956004926103509417996469268346629310706210953284581000339183336637979789185297014021897657822736865934730026084141408548067199732642094622797214796162366598773376076655754479417840056454823668502054164942691789028913954297869274106179156564075175338842617569478220513105616106189545742193369608155542043274440945942435070618774237521481860163684424473145586040297238401396583267531576612621812719301953495684976601431553530290622753737653989323446734309072081517553310620013281830715106384762840168265149343630520698400599390006585712692522462428729982296119258314544002030217097805597339275775378150935217831151554230545808943389370162208691903907455339625503130684131028680212958465482252164994479253832674394968738850762820116079046848955477879433897565290778404826348183818201030216056274501212873526793285633434498070936623995102621444581398253790529973564175914603999506829265275128714208283386225228237148458119034534936800212268377744203471327163162261940189429390636286513303842570480614356204715666849954445855220456129573643157542414131825104034838553101672710756351657669632593133398974078061593280147585336163445859573635586719969236920163186831184200811222595347693724966271926637392019249751542784079915164861188303883330063031611941250343368541577407168926394046867214161909431337102304165606430064613973727129922089194420468736909088826761340378486298438586877564862983669632161718430040260884573723765006032853104456269055848563895676241033834772623680620775686310351365673340270046686348949439475977726387643313364420685172097238646871155110256725440363192122279293107505331013441836874718408751544075866007138448915796040283352583686924167878641286790176836347204336928095875303392564702679491110175530631736290254418026041493000794567052536887952501720331243487431350789069885675172235373371749450562683879329533944170096281935818904211660414900580028430051863198108795560452266907617138333915598089628642742383957977188734932316899097642895325294229968485386786076113844102180632852501497147990840348291231658655879341617332120009892570122391894925256220047991930103837849324893488747300715804548558095582109562150878581949142017295794299564473087911281655671043670874404240124333635837125022259949973520588263548834845268778922809480280266593014626802332104566738178738021767486465454521850220879485815607462365065872663260639880003566291055955053270253675070263123821134904052627418244043424007912880491355604868948218429289259051497706555104572625108821003296956936763967654987716281870819693874629514649446405551749773703522469336352538640612195696780902196169150872499669203109567234201328769110326507236564549747061855516669993967782754022811224808392464340167485759053421159530454774546757807188568724751096480000359296803380070838457094944225616319553040751466998367632878522033134611416578301900153352997814472721404756768488347016587072201704736389167284082745304977290851502636857109568040095959007888678313606813446219274526276391413625456086797469942399980712288061784308947911129004972070377924844031138420582900829725638312148079284585069201560958501945091426511864157951314378752284311997202198011877833612124482646794690500573918141177807883853169618557003453842847633679125183258473660493209022639763280557555496956931565195473373533523390621931356427374934569354458847701691027683454313057597875064658796682716686968695782847186100445302668038472391693234878368989820041510694347707476220700468512763180229089863341681174577245255558477400537380900855177117339977439184316682385653389271513180194097360017191985180220548875573376167215270456541069202208136735562085054050378209644872919486481737546556760408618467139443620512359061549962503864708015367800876460505076844872628241034298394448527274620078044643626527637257896642690645381733580853493880312224182461555656597729587039831920182070467549223310271975998806589374078549676388763146966103737811265360444128903183407880778187877127726502263439104649780335459838734603491458222108156468902428672510420061316486370173526181558057300120699171459258830017282049858504234118237621445640017909835538723094795795227985031269580401027680169938073134300375101406947198368991696515641774490918845653314975512750526369503228600570194807872079710746956558086173798309031121580590521699600204509792675717154577432841609447833064625932047225349136298792295334092522175900784706040936114952889892295785785700977191522449208512261707408429136655078240304869595030140398619441363822117079050877376285304743962236159848092383305522327187902892735189196418145185212258122711539487124849768415114372419065386812949477824497446928559324784815825963366936391895292173032945333714033235921034198495825435090474779773262082023910087407975349353001471797889099535375726281204559663304301812510526667542797041313609266759790530954976197821137425152311832589305085690617647209458105127398353627369176124223294294509721050116865196137366709006758145816053424568177383213073652043669083004220512185539160807501911940938276279125099015883753142091460235980637115872816174013778577284991280718535004721311469968830386405654940039294617447780845970095861469486846956064453420178978404235972717066590654914295446399309272416439709931856510210376573254940605231322775993053522049840329547252056558404627463178217502590207698642140216115924866290884765358916271711810889442929099362835512851934244504088472651749110761505696909716907964815844080850899294847395771822437325682204996214759003082908547617650750180128382926158496283540720691081989706738947384016097640444273544672012539364370643887626735330994938459661226080280851896436609515724603370706531530337962603892367000000037262716034483607169015607095550467196338719576864565732664697860758122902425261460833441559037228134200365853618111922377847437479469882738117990869698363414620553803104972764941720392591738712679927445473040530807190788874965861117428052291896979759537021239650922464925280116673029929412827518754136703883280928098157883225322570680385457668430333612670811423175324106421201145529991945230593051734253554021650060867889163587150474323472513327136092075964225693557112407486084780905903003506167989505745726085460413512791012653951935457299378100371326578963395172627877067823357912705389065493587639098308407385743708729072937317344628216628809941710961645505399002848735852932516507177193228937615630831326171562509124355957646734730906026745127249379547033096185530107225130440328731703010545112972258580882306257227036707538478653416437253992750795046895267189655068609364975447385983216340497928558282269001098140902005065168617141042213847173510286341356005303434207687107184435961135028430587924690851225188001181403017594294628845287035870620628535116304196993090377235292991521287566217124996443354545485057066967380964122573498629610620343861461404610970565706199011479727766284308772837508989938995054636959761890066336848210204403884760911529436744652110523542629668064809014027079420753468727768910126072615352861959261357458651972882693752771637588966087284307620465218879078071404628943249959654417114753308970131237063863721021678679772750769726990081476390833366540618978811792037598015830140076592503946180410268468355066291696058091775321536169225599110208552992414570780608138062486108806673557700217062684683587333238651830599397468730897265019318239467418041307425838766998725665352047972353168179114009699277643330702996141910366943702142241226433339227870894078916917354802585592124181692354515326208392977169105525830257061588070022695611258042173941376841354218432689091235950191056941047142871602972790549952906210938658277911361172122371358418545393187069516891761918351889149527108314122624817284281427221692971990963563383006712134131374527645474664745444053696940690123920755354458281659982661867140181428116021465972069800070674060688313241335892410302205139605176209494929200977756154754497839656368452092967801609669935855000097350763209227690219093833930739357169599911881039889248656066868955352380595942554882845740587806486357369069119783350411033184485482851086993061726369062862124265873200875056102894285592763148269888722642557523551022166729692796640606329366961379499255876761078363864471117847511745311180583986406237599152108921019140144823662211614550480843746228737019601605395975706261048174045179334633762779551236688281947873038217588409400928229476034357583793563398366174402689027916191976722960101128373061021286160842299807636108829802886746014133659809984520708725173705008180470952917092357947193776763796769904585804641470555951948113423283456654325073037100399329937903232083080596499625125462795209315464853024092212464918479580705046228408465375362292500447234736033169479308338478528594676208862270186330997121492603993359068022778672520047533343271831905423317938697120732722428936255834850881000214117135933277689543426685559570978297420587199313056742411524891439543258888990432800828422669292220011624227181392852986571379052591819471940203879166979461470671461398385258168082830703775721177503105413843842340682383262349841058228176887683348389226314786035575032619199128629669978292694552717468262341158014975632967289173266321479249967584867075204132568748352491594064169493267821149838396712923676622945854544607503006015622948194109070525585508017506261398014273634329133109575687270283229772714765827635777943086096677499977641846917790394880692504326547692997509574759458508261221447025080224827452768308425372868790840892379370639307921776707615059372261256736738914884440526630849163626592533422092918158706951817248969199262640680343269950206393891047550680549472500646680295906606934858047783182127119211209967279594690379807903059226325643499932404569443352339081270359221277837303844082160811632044417192521997019397212221886499575119014501101484070710989699770916433854348541924599442328207171996342031972898742050139894645425011869246510022382794933006395803937323595377051283811769526451737991694930666226985032011850074173157716094295529475872649733116110628508174695276284193116617024342698467443512256211172333768876193534884902645385875101376700954183539989183737169824728293505554815651538787281636635695869285254090396803683583236410033346427765742149868007702845596185982381369932684405464175337823030437591443315540474993746618046301400051278498053381169650911467796328135162129001798574538814729695060709630913440917926389565735733457546476866191961595402574594595198477579161326952304449645232603608504813852434398956333987595686075300750974454778609358250175396892610776816534345122415054151918249512244524358440054851430753425389122833224216062279605326964424662426707994162552161306690503570358897145237548280790426947886147331534504659894602034615141563804673558595786991989782150855693468491698384506382269487458312717656569461974241710779125669454776414869004057453559271896642674078818072280387042434187842419694680910060748906900257252019192325361956623211441919134613000924250413234186498505576072186565826034970947020000337348798047254975404418015766715796171199450269365787958388296598313765843755519907863453897405839334287529821473358288602386116782687489234229662178277131469534917664940783528999217724354146432687864071020692427991121984774610689710261904752672025451646075422742473115878598482277545255167586748832711774072077908294132260527979013120852819800606126246792025208248966200401150828152009072168392321223807052012665610319660322774055410658000536006779173898720905254533983216908986216761229228893801738703854175117761439895019172045830579194044668484945460583935107810867704155145463240954443604428575093381007276929435687777408735341105656124208852530464871290551727507647608459579701147631402348162802617519654069874978366196256656014103225539628441358281025601746269921394341046087222631616895564063930318863721983094595310098406021950181538489921827923472202510712420287806456203220812141589864799219950269220203419517557380662183308222189120488674406867157993950681018803341968468052395844744600022938875778602794345386576096730250183567077709122376881151539561969312831264477958125943287657718661407490134560365175986632189837254489206165536614969994515225885265965808182461700968707482995168812927267071413834515034756442052505970292694424207211559915105049939292077388564325165290829790381592888010890179126555296238198406305383699900654425256146606574902273960554655976159431409006912595640113003992665374953899218846319786501843141952029202299995846024614961570175619105985080137964803672518852548514161846705520103867785863553430311070598531715533781955721337518750540039309893758950971254807605118271425887810154803397805360627023926062720629641937957941045244191233238940190929869309933531261220958001098144611875436532639849178912849622116094423877789853162037681640649814076440121760005673356191638373699559925873854145805272270319043717747155099797237238290212594514397034048124606280611811312675934633334221153264628565366402925841615800301775188215378246083634389406881964413950636953352863633950556581953889005590611348681489261904668216268549373658699030192344062658304948549390323429443886205539713109203539087822707793959984494192692329183076092478051024904415418209387811118922352198859977279559094736350274568756791647602149488103729107787700856785498307050953231338291474936556864700598922484319596644740264094629070049243938661920131400285501661963472137327157112308115642053810301212583822101437381764340911359518260951208367915609166553999863087762505321536619079321752215984901356413756350191157542067740251496745059354588648973289909833979498180942880402749679553065332895000661425450395163540685172307001000243379287725407853860122936714105337550997818650282544487742177128278834820496824584259152446931875555081529311162918871603193262421306096481548128918655635060026441370767461123383611298887580160684217217870609621826325959495264000069289965172049685861790694622661479590971743967438375556681537068470721737685552468069908056724437819605219747032961986721257519355915930260356195829725242069403783228390383568643111993216622980328372588528759317202501511513098240257783945971719383066148862504365844113166672078130188447110510494646408884537783097238553950457089312010081092566337787169027133557053447072073912201921950014683240388186513255755909688455031180415838680479805255107034839642921356174338053362685105237948014222263622152010341236553589518356323023986172183596808023447918520405299061847211804075782716760303789212482290575328440090245318002562481673757310106951538830933927984700781644822913237459257323540083990243116273556900978660576974873288245989912625492027023250085234990553853461241378892322647588301297123767380832301288182883406741283971700204227174101318476396134208002529931281893334207582997700493044612130946286713352801158063968018638583764610803230782357580169004637632923518695113537198761367543864836817335294907978008214363491557605307403290205131481153235345371047753038188454313288201150292171174195709496896371679146191570386334485771058155332667677702831073466092799485310396808490141216761675831081840740899408750551116195850206907003672082721976425906533794315939177843141486818635385833552430675300084547504836748209703670698278886887434934052040608569383155196115790388455352660065938030139725389249855114147297478544579290771340003996331341685737944470605770728687914660070178244012314040055576505515033522446973522969105055769382205466654933955228826838466957135697699330299257573804800446223971339140174128215497600428485446247799621887486331948079625974318760607537430798900296860371745337974988992646590336430178366530162245080750480125525248531275546336594250388926364395769092508133890890044184393634488531266934057290148734844613330237481421143879835450461191199866595409706950162897745119033951646437285633199692937959235023696903405492958859500740301652777196291650685063351565313592128299220570070034897595089620817038591619354343460224193120894857397195749207783048410967014724566711779874116478614490021382122945652656304434715324351257069718997844496985481076455556199568083234665782601106778260281872912562136387052541755391947390062927189420292852656380870526073912094993376337510503601603716226612704722107724912749559597802575729260204079833180781005046859065055898657995028524166969726480295260561997251495521713814022000193214974640789537025874727178297188734872452649218149306156384219677667468839639082115491662477908030376660822901214926002797402641164376622774488643779890168617547433550111673330486271724055435557474031460529538385484419419818394190701568972693386579498597915826977711314086240451074049994012965961721479574551778751174397438334705714905225164144427619200708908902723517674230638357692905943548559842813295687218461944933193639738457549566090071829390243679197756564839415986532116694084662148863531330251711288118297547471997829881306293186710181919190270098134823644561071486494030557500878304163018493475267301763950543409471788995492188138358884929525230441895832446344090002951475178590143008390881877823386008065714886676452737052631651161459879278346487774391124849263149696392859763658586739284043444911796437622981320550426134658407797018832676687039844651499353309375719750081897709381138520648543293924109145805965258080217593343738329024570718957717054163050368214924355984947439542974746416005365726393473667398965278167048082209868064530742158671562309583151260756595161612336851902642212195322081575395936780850949423148149508285376199311110390634322753290886066715469743509301183021439385717089932736677435146616321510990676829390737734523934246044379966351724603536995324092729787260673472419351596482524457814571984011720238343609171299120608961754441361955980782218097002376136849777208311234225656918835515301309162516706649205157345343935568994751250419609688381372677354643654371328752498376879583102093389396143387667582212727522623341420013860221606455731630357971470958845184749880947426781927832825325007476065232333539723020296984520130166441023058708702128361227481667741894995561223319116541275264616367702057445039145097966413652688744990664807305836934379176047425532618849933519968575979191604454970201482178231429302824172016690740228086176127425766954328454327782010586143099806625435859312025917497313317081646168268611213903864876268432205385627360594235376162935668865721763062264622918939225072015372309535398353123420879068125889930949689474179835602196179308908357701574928028961867900324072695622664592888562010398041197852885314416579346514017078296599397748459749532463256343246631305330996885483940050538901679374474306013414726797224765371564213896157807194105619241166764514459757536777844894223285120946405496748625207257283639586272450134570941547923053133782354561423851837896096738629237936811442883202559506616210809932884911339908650585832306275457685023543168802424089669327036118516188460239334982918471332556770740520078906809003177285827297217919745319063819368946260615893423364258792506607802960201397164508361000206844816428494115541906187400855487984796557086843835497366922368218533266579701439010485874016543813714785137155761386096658704838905059886585885288183323316490226269291657821809724697850309544626480996095305832216916830955028721660320896181808659606675859347755838445888702603937707930062202552925067476529847646929566201095981430970178159088937879032535337344337329684635388559169206069319958794948716747367195824095356467471790492077495431776223224084452000964161244283615910510003700036546967785402664959342193984273382610116723165107336091565838539426143486518567380666655211231571135191831769919439650589501209333608667127916952093017017256987833632935690099034252484399458445092905260888076819851806614512326311125389804297929862915585939551223479873279175569921805155217621564488761022256163540825095747879639586065432030094659913233832987988834347548891192522371897024291507104108017417215070646197780401228925096413612865489279698888938530992444781726776275106256161280012056023567789255818450920363610592984323031255921478286298114319594491791320409734466013946667149168183991113424647083403810974188805473077330384309734439772683518181331891270614809437911419046078868346077002224634400136904069335400774114752899427779192648584707368824873144109850956640280306645295403217378001937419850942505299305496693755373368540843368837472757557760922501699132767906282197376818999259677925533876637412068461443061626958835872524874322642678628868310958361722805156861958596994981892819801670823311727488065773844448018059528846959476559774332329776588013389007157711427554466284427685836304092979111967420564245899361370779053342989125015846050741787107889084927696064352724741957281608454035985050078730302652371931671582476893024118571525513441261623853729008022156273013833768472006481255733660089254766051903692652564525553915780197476480760098787362870276971949437079520717782394497402354707249167526159363589457476396510260506875662747499153936058915736709191244849209500405728953074530098013275713254106234992677208767601189428867800313227891694261431781541935186993903702465918958235103166688760401116092561853640795019451094284153456986172920970592452106190007422130338895519033582328812360431103632899234120729577700391736411537148247047610770983628070957635496387350115334789063542322955146304347709199746884175581865604730282989264388491980768963410828178983024712931429120854975986522755748423747254411641641251768093188054750075614619704300982020750438236680014537141801764516265355729896347248910646773525700116228134419325189330578638477896386280462294149075292540544429151168270513762507746720548439050851097890839480723034610652836896349569163266338881591509267056688543150632803899138729414035347440934603931509954792984352168207185807894820582484276126510493777908075498385680513237442218747209839846105702141930825827107377785313635534935515964949976042261933923310585482586434614820441013281045687525849293902079945535913010070833213574047154648535044366309090379812506733218403046766905922779584531284575031177497501301571389013402237823924356133693255679422648167832869842016431912603049280624086921791237864136787357407727136854154971528509101492944704003180013367968251104975459569116242657955752028478364973085147438815586797926170633052223473869546961467834588323130785045847341176632712584597868394620001294873330884885531715807274462097777231362070978318559648178007650017980292430727967639283253340618982459408587824469430713383499040504108036980884019105578694588130947827837417572728524071299001702978908221694007352408739465729901084276958408649347730358676197741574683222180539797932020075550034293715843475295073193472381894364029939326444985668658625555929049141999722402309720266358261917210638817789845811726734564409673776065682023159294824791873371582214928148521070123804899829033787040207790520924433133543616198592394899369710535782172586686883059080477432545793586209425021916147731674645282887257365671092890683400614085890543358985596957278184479209945324501246575959430050329325037603502982256151542941692518558499222499265817008849861415764107570937154961294579524441028567059120083760404402402012793366017539121930720953458209294346041971097430140841199865208025162371341283205770695963934704546331900907611903000330323444259075573236149346767749042134754271102000449333051386766030853162500542603774009423391438148900527045307408606694593939837932058675812905028628734863670640533746216369825453133790727503681943096000885793146320600307270426661057869811124633789231604664917680104434840680921103072305798995786718952836149633464795853330141864917872534818794655318436384145285074031081563570616682696018146905060769764797964012594282978383389722717515344952469724529332382355210271964381576824496893954503575741884794458226215631118559676102559182473074824076575257873280853893044304299315543873384066292783797943172247965911002872474092660629068705296372566859382527224065293470920848967896830731668739963759339134892088614920112840095520475544515275561329005182868662334057321805825799321603589147803315484091852774085213533836644068991737461959782536383269580315694013356084433880732761223958731371349035762748536516694846841794205142252536027171401216305144468789881909221789197070014033984379762336723712849993190877250618282973622178748054483352019462271526585998139336995835183209321649073985939785863775768100842219583971843165730635737638082044420417764882657163008029362377517685108484748980223336828601661769832743986003254874056426344669581750052120048179044249067780423583539043712204787125408022892422260792938343847081882305703456297313307241009178410414173634357035205071510243758951055694497390844150613087963740237588379327780156860767987873424218137887244871486623091951046337693564882771927414398793353420934343534637145973017921050564581352505180345748462793344849743099725986823606725967965955465410081030785217785313546803879779557305585331678033322974718515092221177641707021719234148231662960563523766597158330698245192155437625470974452745011145986138508262897136333548508131299891386740403811701309262194427730729207667471789358421573055398670418657656213157211395370480107912654723038981179400451350295892432937318654288278867637370685320369376784433306565192582562862586713667650420155944757797007806203127189157846189448171835964376598574824801519926581169361143860854837700553772876292692664657957123807698611740606778610929971829707967832763702880205707403414414652267819618074477840263886840394340427697919637048248155239893778351115025105333937322771662325985661965713626848169229298046614108053276124210653128893417324784459633015749383050790382655452949380105381008191939214806045129447898304003142859189750549472286022469515130140283519301455404684398197140208632072817037691434659140144255580963014096582447502763400798507007569641343348571785815409049194293750287085059856763538938794195086449380843143422461305386482813797009787571157779635885641161410681427168622238811751607367765351775245800149785977276719869780158664207301774908322467151137615344775203532971705559356175171738587791551541942136945602783887179124571101053425562062458980893661048277079501478164208193787787841774703299386063840950464889302503787322422131629015963087097865095319909364219167897545555328136285534937683826872177493690246428765800286392045924644429222207360088416358220093010822444286119154069477978417261459744844273280610246011553561900528206153242630898708051735730363913802062994405036704560309178138112605881624971866616785549159832306619467116867839346360546135748809536953552744565827748861182735132961362551645131782870923938448716820763486909854931074435812470083878815020199909415613972451864434487674127213919125549511644920086212023671725221772218529096095197059840064710398206903949535777289992643796578162500623934486897392919458606778595799608879837672186832317286680463585453252503361209948628303789947537679181446937286855022617443946869065877136630784578963853563295990537750689834612439490931087886544930186775261272406457340355706567857874954143762206896713041014423055878469584046835302514049981865753321716959131625311303377402612402667620543953979860762737377655123383943728731942835226537512115860419378224049207317739362873918245276752886237316864299295982578522987939833262729583113068648731211899860012404133284707534348270167018157582052879456491162875175918006882852659309180398102632543494640939906282233376227530653483401938886340971860006811049427534148248204853413283143470103679009390465287110077194282771493115570788259643190275053834266759570558980908148744647863192892580012439074165425092267049702001349668560462688789955405697580927135026669389756576311725145519492213445136722223373277218870296927176431530969783670346813822018320509595735159455886510724120570170725426257128332590095975014370887771003305780327137846188755872664380807884530651425900838636243393361950100977379537925567916109899552384098905883680711165032537069965838875391149564884778783215935791217068989670244516976474046755628443972288621422086205520920539051300365607222104221556862123219277446247118047268730622821541561153699820457417780528523229044505687254570084533562935184418997027915644324628825343299666089372572518516857320175804489489915710474895078310386019986606149261155314909896419355734846952909128839956047626847479287236168596555859672380424951962895981136623113101294852433327795531850859870548012645854339416193778250250739767085020823290174340537297851760369935427602246825066070887650868120129204675979588316319823022760398826924351830279786308296123883614135726802298079578271170644166579702073798473593557276491661872427691943839822294594058730565146576405518804434246613840335444282000770851102681316437914515508154773734273053760650428353538764959529182118788174117753945445854159611141081014240571742209777584126399404020521590915630310694869994114447144356952163801062496961814977835018768903879451511820614437424511391685826198180504796938918336787752071000465083064768101638576510515269501567342211153804173542330654173979090091520508405372736580516751106889963517913395709893536376821806935369118728212467735635448799551182887865042782118947671175828457003056610003808156050690641377300579485446577324625468954706735338303205255200552210497849920851484769868525710845197915354680379669432816115352912221868439328772796678966867412655765796548835038127545079621232385389878608068758161629460389647709363097160462485176498718225101758145136100387444862297602737943394848354333656491241699044448747960678206279064376090732102993914241814667641543810157658347929187925834811102470300121134935517824131560636642335181446568586221684956888931074602017279046512165639681268379759516828364413872265332553844441196937151270511966616929452249809937749696060403516133064198439685981940632343652409674121629202297682312306651477793895246795930715283756620078500471373401728554711721649881874581261973219447348853835537252109793409849101810211555541666656426849546737466312549358028515158166679651233437927032999480462865087348634826235573911661674305582569389769204462566511934700827155966513245523631888116570440262978162739917069947219521925904683969629613658015790495901863158685606375436304574594991687960080610581335794180516009248464070199541976193224904177124598787303874574693498494051440087545951662163017972521390365746976517038919693271639749814635187859833001261923060467116263338080192591881413775489639579868144551839985780330900741782455889072859388950360506791628053701961880544477359938862064968891473674479292807932119940572226095034150596323344262376815687553837179047631702589410131222656632014638443989358903350928659231529196270773620396322510476051325112434268577474386452167345206613729100813032848146611452655587624429417583915925754027046338258362281675581516495782851625411719237147804440253853688038486821346102307986314887504416950786865796367284306421432235979614856651585115818532850685236769431746412054437219237408556875170658214947149796287560498994317770147705900919588431963699384343265046553760672451778868785444773460470347220720509777358746110103440626999946898422598850763357059557736910839309076864512159996820194494767165706017155614171844295179841919250087737693778790316751117848954888108565292479619367439880157667617767832423846142998713554081147933359358468550464803618884468916081941740272923544136252643055429677509087002403330694120904576457828152615509604334189433376003529733969431151308699976156890745346491123440037285836541208536230008082739923462064463680646960162049024085046066858165530368123931350531972090691671815053865463135643566806923090050812206863258953934065438620095459656980825751372388891787498009097894288751498096184311826301850260155618886332287050088401083470096666052000092771530931652631653060218320075622442615815297891405275629749662785292169801990329432056352110585470180784062947566419378802206695518822161310500079489637235044636459549697101075335754310721942463055169230520581399704976769939061897301570975998270646280971393440610850088869610837951379814563621796790942858093584769866131985743367627561033277844376663810945768277245500093895223879581871407979917572387510527052194602007875611906940196540540791184676798391050100014077244556475977525532711066133928998125578162397772373433581797548759002779769752755804048961436048112810809110927798440645563970245528900127305664580654977328347026197116391311754539411922419082736710118094333595543558785884794651189500635880089490731341304435045760865816016143020093228824019882431589027536352012227867412880065584625885340372160068860169414543847552729304834649568260500526666856815812220945298865119262885068418371912707254649141325677290546876466466551765540797459380139379115023323853397595853616672421474880689228214863279492670053271038194507485943236163168309572487984891554685956198855617290357025224272642788870450022059474469532519795445439883237351785087657629242939558086902229299924434171962427635798713028956058260596275011043447887398816528447777185976554214819667761301470944653378394122658536009602588945834685691865658584632501772416576415533503137945208887205350675088922766644617417122827046390169794319382466428759546813679840174601782202330126265742653491130654519338021982294027791856366981216681183255352538436049090648466142046120161777451558873384882306057972840953737244210298769837964734648590602585558195615843689338717818046867530270571844867249603819710471755482950499494778792786648442739245950860757905136255257769297602666125525332893962140180857302140710383623361248678646511512397574126223041600324123251875059851083429480933928957324681517557330396164245035589058762875833986050973071252293600190311456878263631539385872920534082420443681026399449012403853261323745598691474591085158276466819563407745834580856937197246096646958740742679233906217102818766284701105702421196684373243816210027668842380090781358633078849650488720492561384739310162294663512909523320810736319997495365426756408769456712435530716281879480818137154521890380178616609683038378608780352447515735276363337635406698608909499154397194772450154193516273536696100109643172244684033171471319268076276179936580403137263417873111133673599012280343412460708708348184282436324489233287403247677875684492663173215058715355810095734309780584234644905738089247578436195908042641435023928931079525565569122860465647390365615419505883901902450988059141437154502354735194765559410197456726387997687190033819206010346510117215175904350019595744477546096907250287727177204613988066949838356864835943618225289026274684831138194491059488478305399468245744101571009067745037349600968837274780371185179604125014700418887135891442542831093908699917745044397954208405889840336829183729454618297483634659334689850176058567536807242302002306893390565589781486346301329825181455480714819817853679523908945091336669781502898475046806832492134522662071564198888212492298210570851322618256377846797922664816822707917792320970271529721575662440990926346683774642590801872409831712347836823142955568020898910783405776908900382415805025816450714224094830032817448632632843970282445396427878201188330908115756187302882097852133621669205020337099734472584406231942965338644818959251631452989805141581307256226352764538433442207350997301002689641422176817829059246120555413078254071080545186571066640741981747077983777246766900116524375325929519861779500296739816828009931543445544119088929795274478290397574799663382148216224156575599968357483951438927301746420899800703688724535837249852268338924810040259859493964535368266644412656635815005159975302480751452638019659658337387353894015416259823015793548251321992587000699130706940409703754695227720987941009567972762242230338984257487280518486713181920922227015558238516092446755979526994578306126899634954759680412144087766454925446418038301262868906077633566395307120756429145026422949721172481013924502265709210044000337912586487337423868976285370694402872331986719297498194565988466174033914655514074288685964539591547923045230452328193631495062088527515416360170926200798847122852959818733558641918904982623156662675035660093676877612461846557341307111470245055300824488072784313029102584427626126130485398372874825738132093738092115519408551532494959570730303493021012005527305589256092584149372567370832068301484371341145354279854469657755803451381766661454774744954859878687348351531030436299489270508652917437969515198933802733141835812789922842918913866972231464918111770391188722720726360253573863397815558201574753561911899149206453349638928801946177101163435673307464503731908119475780972296279881990485848492688394996051547873010330247976642631917757703951365319100959040861653122623377038638332209059829475714023541329867540423096349044893084117605831499335794508402543169578159787167281452681698658015494314810803392687493751283607314007736905361325162574373063281379080832723950564605204524972501223386514760197691140209825419880197605255477942357125152927299999697428774875233023420956902158352152930330274321290667505848785431570888466776749221568321760583104064916249642245298380396845978827667109944860451630000256713468287560448237544710968956085758793886392234179444142327351389540716451188043600852119013792586746037907158385318346420337731085942865059477887380519147166786730534200780914132216528040270303699778931008795538799971238762143100276896673367454556125750333127817657594520750047511971745906669622508564310482529939042381774444736069200041627650320932360493913303072272790956818483285079475752688473526102563464290076369907391546966711684494396363564743271397871143269833605902928861177458710564177672658415612935965336776776775062957146993108188866190580960212426978150814407870955820618997680374283373384379847144696009296994011080766488302873257348975173487586928800903819863215326091074752438314448101821777665433628170887782341068023466510496202538178744929662020285524339854021223102385569072450237741916051827763871716369283556434965876432422696982548512843980762652002915221610668138636634244506421925714651028877888692370261046217721332700475617733899173616070263311518804210070026626219754388033705607872348565897718398923696302586408095182082059154537924219345181561987696790103274825312233030861061292920237043260125102028051949236269966832357025802648693095534628636497404672803113554676835882999773833968423663890481050686665642173287611320469120891870003750396525320638747250096249859532610041539249213644609245798482702159978202431572915980481366403021092467508435443635937689859899859877927249501114409645442727029597025570078396183055892638495606727175958914061143729776118389895646375933206901736262999824256428441661418110254064859760148285518186375854475211424110920193960498972277344533600690468578512169242038079581124836258299610670253155812102932142138279375893282848135701844353266695980558974034267090854138814422569939839317342880442121014193236511459924673182392339661773134199099153031789935822375297030712388056160758278752206694822686806261913246904721402002755576416706847708674604607477426547857285264669751723669080964237705573753542232730936368616384212433451637176920799659893761878785999405850408389939583365485329050646914595913303149499720214592936614757253702061036160159239273384698886157232245752207205789331860177800856626425573482273807809206877796127975327151751276328057143667319026404145336504005989562904831386222828139423233655714341612064915992665165009575688987036965090018050330623195068611476083613147682396642026058389397008596606670012694965717127669371906265585199409929941578616246778879292048360383593079225116121223019546496943823062574302504174522440678252559758795372854107268487365611570066521276389639280499076514348172120187667116019982511996071990447557860001762402163931773181003362154112300898006903343881017150078578092349435177695810984032424074039661797466722581263287502322965131551352803937300031715321268147212086179504738332959233340124597597461392887138190707859501736778045099454765536623314662776326379953771070842021402998135232114056875989739611508934469946354886827678646954477606087286917348992648359686851147181794836944954869127749632638282677244930346354772712601971570622458385528567972849750967007290459879726246031569443580158966071674095132484968764628286092030249186734516550540303696518271100446518420858742273432466977583801773585747299421074021827047259135758711881411797121562565372053090451890144121251265738011785945627311989784060399841453799307477729271330816946380599700691492128617232684788936676690944393823795655540098228593727991931701962567715664762305587880895862341421248142790564446833374361312150104020842074485432830418888375153859206757605212235225682843496262469160940596529177055182250699878780529752480970675923994770770056185420261929922088322839521888163894182505911522458799120107233919728667029319404865292794908044055434744437998730771363486846262508140597691218701702884913950567448801314979044679206486882048846716104173365362152174287851165226106772719986590187160866143107914170497809110709852792353693686824261033990549796862166931323769600751828899707961532471515315600058757844101731040452282752284509809986805121003508609671585422178314801543159837140602596838713881288557329360775843355878934457869006139067244521129862669710352236345260549677844985206723150882690190782627585805409308687169660331896723071579833838193275338880412502807053817667390469672161460762619065496652409314756292423827237600044808285310060012799800950595184545171682800717796527802074462574576650772741283482305932108702563969610683049914229499734340507395534809779919088654734844292203414255108498735184206277400600362346683463334310901570559503349251589386292532819166526175330373605846827777258319438128139817922771171599086688101903108364263841697444082774323790334018663610811971969022217749928897938616903255049846687611568934285902513255753065779929476196302062719807193310348474071098172004536303891110749536415832877841316827760564586644778664049988273429993881787206329311823289857407871539374689877895450992760771239201470172423018415524575611748305634909354831949322234532009521018334053855667657957270907528052704314589398297056757105701925932655443042019755776633264551725141892139878543350777351515667468787861339906549063542127395862030646915506160822146600789415052357400765203617729115019893113621028273243805113115788207990444132622722824686363646884410232686305219194907409580639633243523354360645236498282290255741228043881008876770558063285993615917993157613834677745316089688532515706699852852135535137792759515500766983198755456456839771402867333179155497835960997152808285447967790890544927676357512946788635300520479798540906910849420641369418019519471025268189398590097093017737992520732543676040801533467106253125980539073264716926285408563326610020893309994890181089553734590230707550955395638957063042954527120769397176413603355679493071814312656541512339564666769373290812487911720187791998569993145780601975575732175761952938120355511768266982358899665397376466666826171275432572106596425918906043366077322456308909960137804090096474975316292668220464774287054132730933729224339089562349447442235492571407347384934024839642956423072210335993322177653577382033078683553594130632559574466792198332867676144413601067977046696788352820428558104200123360092717416294460447417191761727536263325553942815988591380636723548626093892614310350220931906776137389546430607270534821382516132750554930497969519263820635480093142183401560634123739842730441979060104513408722612563549281957660265749790342924682515928050475857365290340622919425497815231331442725662129774572338771493054780503106926218213710267737172472295313900457703579169178225957589994517168033154033794276461170822858413871364529541206690138434583740986903587720185659495704274217906276587795847711549603713730154815182590832497032345641512061571469123310415812381899813508018099852815277680308083616616191759812960680648948544670138130077660578892850131153047513061021663767733190350376521738424328232551520614803606285419756384072574303200603517700640351722537860433706463365731656432952798978819470866013181291942796984631235919847088621908251556095435377736384737766415703389094641204361175083011049054151600854272916309640518960422258087172502759500132590077658472802835581877495644200722679599156593651740661671391908409552377833155312133487034839503267086955821392876747204207963599902601567409979644371702138272177758272952882685562872483707819483646253449355727927493754052214522072801357025044227089746132572880019346934354102647601491616474757466803203851374122396797201300963408371446412808114056023713458000939625409850164565790084363410101853802826018309013264410818895636518606987984306068096736350715965739458683012025557898901033672671649845129083942285736865131112799088605304406727899801998581742329735426268256591769931975785383698357957130668703582059220780740647929551916978977820781256085059054703784877444298721459874728406601065980761297427323273317087720661617324413707647455811884043148284390122500583358677371177471866171680652650547565574999371436215842891425623983896006699156638432163819471610306477324310868142634094077793741828484525546552608675298003698728194867580123900979022169889057027350975673957347114355379603418794612310101513416528987767319752205319904245118912934793261242725266221304487674356691342033344935170942835775098400173392773003053380068588682634387372993264068032567292805289547090706523925182579097485360775858149052127423269026522032890296382551349554718325799546124790156887389884520354921800587593684980691266963328450573949439444820285358350143883911916181855397654817075773842741051628678522370591415455122011119204568390632654342366816196566629929979173940452839469630651751403720574772389531443762615511332846476837363753432874871517442615855720747788058868202322411705085053259632915172477250172934235518962191069580926406873791559101906079404308621741346962986566061707620863937512540280071496141772636836635256324273326482885239292072508228874737825074296861325984056568455600501465959323440543386694758075314643990474348142900905288603852462812760975472618001685471505334160448616927545493817155815989964147614298472537650434988403819278505526148901870256071134214938814267104312093869970027809388815630546708727036108375436327994190569797924357598933970787566077713081127005870652981796254099160893744432757483199890897919064895199630070589797225686542188200954065144820300618135932302590436882008133192358216659691533750928428691160304282753813857640074074396918133059852696431506784496636359257182097940597276694663762846736454882421390128684210808603614384923999385680702906248781776584747144280360584481109205133344302519972180181464663576747582101826139961831421972955557235890078936629302307317163443631095116446537881433669820470332366716061661747762894813954529808600087191403053001963669156079822263625520753710525784342878188800080719769586360043614341076767386102484045849105138038949917987328536561485010669566313367513979728407547910119986036250236638767049925713150573930740889099455657926574068436046240613376631341131117223980502473228654383182178236037168858229758465565538429188883954404875456978131746220228609043245326938950293302864437772630979419489490122281078947786087504846886750652398771553788924731908433294693902165823253005896405711599879782662984133825610779380595161704546505661875294509246915579547409222175710397875141709517955951889242787810423563451445448641993637561352282850710515172621642774416511944518494834054317522164897566324416936062637794172136097248764907751030636224536860657824372293164679926734150530851208970258916070131385279564343241162459302458860087946638359593637848264351758655930479486506481173727604310604210314718539653771796411606330647228103837873098546164732618201250961550788183859817034675139923613316243947685799587518941928891038082051151813200955573734400479204186875271645288897687543117532552101429999570139071981189026462034673068126560720527026055981403100714335025753413901226958881201139287908600324757516385699882809114272318684585935640001459023590893006707313091268032683891126580969535950729194605147274363785119966522052304607599433938498423421602387936985680601774972039412784745972840475094531731231328304239268267200965922024234032771911503504311067557032861196764468159018509892182192386831060637619807864804714467510749888535279241687793203758087651992355612906555932219766094000855669127423640119603342471330177246090844250960563908260505310239843245064146352744090209114456812904222242753090469986140593324349774413583363315485680647241246885427652474640585973739566129776792776811425068310743482606262550009515226602183811067767070308372150246471991518465317736558155953131976659631190064684999923349263820928630857805545438761135923620268617199934012101993315014041441243496651318171525290780825275299531270738182477032276007277985679820301976766906643698568848035332539141438494946570948833879140790955628840785484709810635488143288008633354309571776810279223325263644701787703322714914753496033756535124193270923637114922914926439866538784529675342193362393611264833729439512925320170443021150262356707211916053094451179540428398595109779027588248556074829915459176166501058880232906647921903706803584884063677171582599372785351035114687216123721671222606543095493923952973748036770278395371992246675864178448273686477906907321172422915260332563552306241225785990568742270569135939761828930911399692315497650263439319708712760140108739441266319007988188428405223224079711457513732410676599245539026957784162981307695693856615280855985867509899564843476019822078603725204360430616823267983082558444688018034843491669391133586675007422857890878291672000827689778883494030931580136095351161649088741219514457769205305324305797982588677950284371782835179596507670725719548068600728415477697295259066033226356628561693083101632251871221340443687206966871593316017402347056164105814325493436569732239165799113271101967380308833956945072124274238622990784874234089903443228620798717058904219137481906313592460073823241123087004699160215420214128599246531807273111588680684608713837012277482326995755427945325574774681145932155927815653292091608657735048665258849190516559043021920963182493116265564414007946630724371892108017862276106844301587512443708986915266823970584289275538732062593499962821016883879631272405612180675654276861234004334718546370506610065749578991256666115724294189405073962916075623198214176949031170822814584448935714874585502423544233319325452721559256282033197414056421351954914871403763827170100012382766407753749877170676733953958902430283056978782050759629573354361709717665157532319718997086615692031869990245033683907657858120010222451282704197393643032614006651211201542784663229596677887020222253504508512302067005296548611026394009194704862391083835706072547914577584061842730583966116856950527092447562790371333407437178921315376171073291593155901625556460784699821598704096809916262777968301205994104173747295892390926550724976229862388267235446284766195843156637150209023106614194352963113620770241075937846791878258287497366505786931850717584799017629684432805825955350687946391138587712052270394864508507210873221210925632147465076081599757207326093471088243537897888032250876419524988751093152672239554774667815484242745681789672675528943371969863523499719446672643772745092269526227315623799110970469343367363458208419003595558107042963745664536084994713033662100845749217111654704986199646185231550774493710921322015528224284192612278754726181783737199712354934216477099479220529668813187633996322582618766485219686552618619882078400936642685866208046904489147168303300567428261266785867088885656686697938914342424756747355069717784271053874253070584076954807719175090978125812062756939671587766195049250714943441415235313076605131628882190823757915632279143278296683227189636151216613567128695956871581534907774330663198950803242313496682693503049781446657254750071016005663911214881687925383607397980968325531650058925262148593252316222465123101136839961072881664863358856654550303698225203572137644663002516462673634161769668921855382840423674335033773687720398724275738970662952571743364613487366121434227443779933013795819481606116265006761387096067987136741800482727253723317498447219739177327197046662095309124954876938570282149724263094704233849165469022444810398158363672181537730086788415527357088281084753628806716461447245513330193360118136103179373312626475242760777340920084090402623759761707675238752776837819635748180747898831530268936743305147716903505674985774482804160491971601231700087425329943513948000030149027100996423355462116585553832473359263086542873795699697732357301865809658104232190596910185729460779618475904882788128998594006822781501377659858307799914818342612971499586929197624447767871981592369717819010914781596650547512772789426906147752580104257528508216304605139561943330835366924795964655356169756952277201863360024608529876846612897405427183172717539684792106959770255117038363186945798495605697704478697485215994867988782688207472676709705123325908052619479720126790827017789917119500442892744572863090652467867235693347417775894687872961166913282972127908627249456042297100604016307096749590692173696252594886535052894523503639561293740864745124530048262116055548295915912965455245514499854099553151398547787688975268354299258550537180644673353494628300238251237940535265322333379369276094303658014255101452380194263260425904339828560667915832917336348609780433983690852698409253837991287987306920496092877052170582468965581085570316049300593603210407476651621356154665939786125077892302812600495660484266270645045563312368667249322922384947080606769523916085875242669202509223888521754459741656108804360525380697905001633136369634007296216846845159838867492789104890523257105986179733512005216637588630236627409793143034872117558117025629853023096038519041735085136608250571216062771800158881478119447937264063981787711893964591243940091765902663496647571671616859591497582396859310247040686885029455286912446866037918006923160087802562023271876860053171807030425878910752808947413160507810279320470138935641141662858904946557939994965960048770374853556079639185142457874390141425385336544692619685452040410991498100425177438578360089775673040470638084034761833029026551856156796135597482452735730341794401783423307467963558605302591494324007583460692707401547802563685281788864313771147060303506889331912170025092378482605581937530157818726879178175448126644332891136182622224190928292580177744296483907253111210811645068735365183540525474842948382938333099449212473866634350953692742776605118671513753475314189713479387229413806260539363067887459216727278683087154744890169888584362681171116690169059518543160854067201567232271302339534325439626883982907847995862761854316219332669357672781424322796335468059494980269161342801629557835727387326617566324848331530856053074710508285712796142234850022204944794123908548046489562081621461234377169266456454038830262335269613316632116622259484868736474383638314100853536533949511195821177731633318359199230002454994713198595718255708743981788819292703415629997643015989138824510509223501656525851872730480580481555812882431640506323687957383939933593509352715948237651484357716142548595198209982226722748742288442414872987518238551182099963740347341950735117649773106806212639263084901566414959649409574991936798122674521104363326638357970378054917903315347842494519338771763561933796061396209309679898980185271908200028723229855615012536554768985309204593827793378134495277368614104486998458913566387293579318007660126788570816916986891061807421267199305411756458261241880686021567749912823866818869876984930083017652927529671478801598530400172847691660743539853833196371775439033514594733792463850001315779856460521312600453095972264378998755258913178898420572054065766894562446749748659181414703705076651965000788038276402839918181729585709370898211024375548650543003046268496090895083199739117684548422632711193154233341286588591862821178088199591154697414625129878326798596531155934669922880105605823018755459023013917014274337868440788743581690640834454801072701589607846126009674416207267016496967417386542652550950814601263362333921247438628014807159813385593781131792680802824190152491283901652514723214736865021566120465620159996485788218714345419989714880132313430834809533711650317225255338867691710798322579716202577980805113099188259823110041506161637660187483059653552585052727790707458210127649582280199146409723009393979576246329997568487181311412654740582064708869800582352831272232381364716372884044283903780617855652988145949548185697058099974313126445070003376451678501583621427066471793441174867407395458813785278000901226740468192884473780796547330796888109813001631342999737130428388263319103753888102973249396601733841419961618737207663436119292294906858594444095946662807711784741521872664953113846863749133130253094876106638457574774195194924337128708806385393633887235244072624127792757014031637447686423900776134479807063042464299810512691476676447372292378450445789291184803304831170240894179055050117978814899223280915473966093009467965123472108273751946741874187638104335680859607740184873238076074560436960747322748945030712458601390510157668212451606912140702352537518270624287421969031444052191251295340035596527356660127551436264540927198526284537128167814549650492358401013640375711046454971046409690011976194525129866877789841025767175595675873808467928409816123979194483735100522258719457949337846996870997289568248575026281045697647083206753327918720760807027419699515139415455258517289952113227458250725519192368981440745352041960345923767747458029069397653465679969606822347908871699557324880395169107384845397508369852662259091625716297814263705509660863324141402059512078715835096430492526241954382593107136555967789680857737358088190992979139919723884392441122614200638111768705653168467874794877782497146803031201240331130871684197764379999636894807379686063532254562065549821602840224451955943103668103304732544159838156485359966428505229587441732084589643279783951407177796610758496330281456707619666297687921224188747978577817649467209339664402621515267515723676695807523833534431277104912454582652019942336871791821901082180329107740961500740063773203683175948898995883274124434545210125448949491045652374314495524896677033060826875175413799575106647041338335083979968508714429743507358064289436395659511941854380513901315156875884894249969556527930829379458703181887108654285094905929170714233201793605447456764858350809880407327009972744356026962489038768403396119985455405400854190021322197693211650951414884481527038822751341058305536256243736694654369215608282456623545480348826739067642080005436909300285794239687417313915524264879486613104293208062694130565445084863878772573875256061444568818963288893200705876079700764722081721049050251906486097252115112932420639396876170069283992664168785891387827691240561968455525460956485536728692745840008411074520184650274175830725231626747499085946856311080185455483651487779692633589290133617809635133557880087984540026598183037738795591205375050346244768611091114707244740672861591698099791480977941913458332918752496887475241354269825196683876334271711387037340127363203579475733034051594083421178025085581897136368889760031374699226894348389018320313785149979264228198542677700945958739255754254191073750444478620200709163406484786634846991066269261188690416824662647654182236123436911053043436009114178630082038476630691054824245983805861327832237070280389843432450317505375916615924468297503324100962560122004146102336408380314822151102446419203879524387635620450371001991766287191046375574105289697554387202239638768154014192600443526913467366788438514253534730170922674139225227596800447269725205051594163201536859557664651488766033498276459682839750636929010054485060024990814323630512562837401132002365761063615872960893582721386745769324815905755695142934737249159209198455275154310428580198638205998487095378409575741573667112309065257213436722849448936229436824810417364637066643430486263752161610356280924446097977954549023731562439028106404698655792851074325051396557432680739801376400046361912958167899903672212978281398205447688796284941929589815580540294322391329734393008555612092408615109568021611639252863882791102134848418829336455099448297191373719017251671225851241874080534470815264170611993285890257175724933076310365293261843029794861893240041743527230699303390974440461615672051803489076770904276445841195266501948210376246802799709349001326265641022846612611255068604731006220329746085842969401993132301386034871526610715252932964678970997195819451581031334931021181697359409545009511476086167247261360476357701322488280022407229550925574055619447511881599790248651245073773126620919602206769782335863729007701305314525021876779969444946183697060178068639493382382239369774404002228187550695302109838692891523801206549081274588998440394002145510407008332888846050865009598229183830476892097879683211569571725202153849485894556654786524244507090662150180132407508616779416933737185533320410607069170080207482807311720794745110048551635430995467477002862685650309676277038794833110844166108759419606758018092931371694440684468620204732376081043263805080199556980468175076394592323356864094227199567463237563803239991197605474463371731561470731276454002573600686079465323352172651461933010950315290610431524739220936580714083356385102096931041342283876319202422737854822093199955461018427960160291424921698086388902059618684747075463659770496716329053781793605202492120302749063832618159720134956815037849657866628708222032554485410306075417470325105127354622080206110339180815516993718373685928629048557909070705146279286390034348411613845748878714680962764938829938473173768625190764881284951622918625353306688439953795953811209506258400206520652689063621134806347114327161306744069435781894099037635752383882109054495717036880621952222026193887445953825270896361195384792173233021639609338944767878482604370346491971598440410407221104207521723437903936659909616881669816857926195573493887314438491241530317804339593311625417617154276793846314999711011778174901635219979193122802068483072119426859285229535843621541682045761254342949548419811645864779331688102646677714708602147906365713476538590906750914865838466108307348817269188000436674515818868305153621630576967665518169353357273485528378004330453551066379626889976436172252244449137882337468753682304049415752661254048995915798588611831111456773985634588891556678000900864345219315182291257450234220177838319019333000265891738513993048802308622411184624366821764016799828991051867194240436761807290611439259681828023578193871040179758916645986975683028101236892409129887417605681126280240880239250663387153721058614912575804591290614162129889241454540758140299286161263640536703283149701580104919599545194628443151248946062678950595718747582680515730607382082761511459034014301328986308860756645375487785496259286261523748432276402234099720411472080386422117511357598514930385420017421212996435113619120147739044303915343918754368961915919765796949332136173160417148760796463510572331219857260106880842987491847141898991817646878213759749215877442725027360347067449200272400995582842909147754478595301787227547134110295991143073556162258480447187363902937289487298823022287369835065637530682414408958065970602301192793554209634130932781688690344073452614516139022818428315172609118900365341874280449787252103301889490698126610840013351694319429183522404670616029079392943591693783120817907008794666551097198215486164336138809455248733016896036093600443454564425423285249038514880136061181988904698285080025332131341620225188717329198577742808621893773885571296020941099577710904174342454584942690667843849185920937866280404847269935617702463419366092003959969119526169081916913286125508629700482041691034836261064793460750415316698573686584135657676247740317150263248439466780259033934029427313680508696199844026905254956998880203231484772352734829394048935592868353342075124773883495831443831602031554546153091564163030992449273155472422172333855756427113583011554859416183977246086058726068695550296028194560527702482434789780714641700427084532366099200056673798533354320221170123589526590135156294542537419893495025599963853987129715732556793121416355759794453055824049382565273005969151175109681456704668315139409029222592904574726182356175554927084794663386633117927198554844086713947561746815777278254148343395117705593516066355928712978253928895662544703274396199574060425857961830609116069776643395868654735505245129349957818365802108457046341344862107939014415977021003270127181252878208916504980694450288331449171038574399336564803594331835566505819291150942990509183281795175767426626092273875392864812391200576646765211607238111576709997299054972847927744585411508249434809961989591973788291996750417057972963066373176934889924710793125018852022798204813079987540980555071102274963123418716138971080320030248431094563279004939910441277497069228237643366366023105256579140862851264458913317707235294901152188795389986535347592501961455750640038069795051547811518066019859406589295120612958847493012915402960741661882716881227112561725445961739403585733439482833860078070012686823937264660518721744770971602741512714583917215255877661648382179680968944538587965392953706787086531314150215666783841592630667182750726264847706388371441615328654189947440776968863901570815746011201665753673936502069934000060178979813398981958641825620451705222698505405570867852422428376858407668857835820790334299132656332664998461599956259735816800634485157313830683297257362336908680161418973737066898315907603860434219231884563339327479202520010939563260359667876590780562316300516813844149189763127332802233147380752425684317228813194513915691036133210033069684076305905383160113960701698701997884811810482105501369641409854400115484828509113288389901173795525825045386078692260861264371037998687328879782023373859217604259291727491189251940083234050583106597089742775354889937039874369557321529716781275346254797958778391444879720766902829556026377424876898992508075795694872151051395047018932640376142023463447508986261000971258248570441415138629913009278671769213408820562500805889678619593582278356633114715810315939139905256347901171575413902117916705482182531104679904523199963874811812376208614861302448915883749776278503012777767925502634274985436510661357361698786941428524711499801037230689798425276072530121026466405861649644236159628530183970318042403930346189485829612334579248299734382651585986809416605415021076910780753284101749216532554178014144686480437356461991038853063423684561519174989740548967776251678068782369310112606089005979954914807170295073504061875781422430736994492729481857587697630632439031175952992209519456921259794590698104004588918462928911400311184703580718916319857439965814280073854684684199214963585821105937623161295556636240586975645800685109524391988745722903200408006021180709591231617067118635694993019159140211093211587231305406210213541145440816650792381176410908072508703844983893198276876344352911665765003282433124634146209798168905260254885495526253776806478221265133763574988764816069417222799394919467638738789151179685912361237772489556196273608727305622640485586316659704773423266169667862911732232316994870020844780653157556499099806780793833876235241389093335511926393894794855079881028312072210054587958751975773461144233385727637578571323421605933416572093335741857232298911386764592726373955073100513457913966528366316288888651214838991394647049595533059905242474689443843891485843186035975535979378038099157697932082742609892737673048248729263969739335886557340565113859895590137768957003345881724143323732417741243251458243140078226205381340819742951111056066129597797438630655832622306839111275847282293472400057883870677151253181565184031904052632693338843624650459092821758099876278509610691833140778887713200091630586955691415906063260823271724021322681291942898253359439496135962530908670895962536735825174890449764296262073398825732820779853824326497828126912274155960052075561487637348254917768094968025956240626101847324815674557428002204671760991295666682443846005788038219948011368411268870010486546537507805748186217107858927667527261236895579426427272439204832648664258938263685304862921544316288577307441168819170552369222507718741683089296631906066126091030849601612114799821865186725492075197107344445693938257677910675091318071407512268791513569627141484229729526898114841317252805513358601603704020542593861627157667281867009577308590966807443531850131519992824286046748934120507851336417593637805633063957874613521522232182059662401702158786256360904750170150446243733418075601863445779313705064205211471707422414815982471422066845221976364148732963769022411336279711730964251562570138391082464491526313738722218705411198561471875630485493520752952921714155830292028682471279160176480539113055651862979405584880700345243409619856095308111018460460579064103417011354852165922013277832118533502052601360899861727065980426324391026847360055972592281523367946146512971870508740862899253923719865894549169369473458373963089605565531194192368981977597136095433002741192628700779496793515908920131711436804243498060511156973876957141707758304755928835107589676455118363409342578310336327011614726101499652968390142394447529718014134243611222356680157355068311242621720966333813013477049802001311786074781039671934262023153949258070852499194839441426771477745517879297957989443308252235258441584183427072398876334419930082240493438564978545738788910299553795345808379217526549800433885347494415136068098946024680552029140887605352870726260788718109988620901165160017631176425931729235257855851702613174609157152716044897943698249422464332173181636369137399686630399312168175090232113124747330185562094481523948080511669530232645411587941913931733138969311445503562094841649614549103466213162430515012158092338630224342996106548460360022721226143411047567829998997827226768282500844862607026465031797007854812880567423788778836497202145766144535114244391064651197102266089097233772774173540180979408444827619588767336321190380446261109248420938897906491754441763004867229185593399428734679094345681134662411680996088226884898969132547470641631836579762048216501205985449961182025827789098396188571529132559570269064621713017624890403626014286788182548184390456187962092053832822084608656324293388575733500758927792752752650178476491811395386028967277604006645133553105236945469771339847429535694203469482735169434900956210562973138061788054795683807811487154228394665050708796545487453889876236833213451136366067654143416839530102090563427878553939477415649945560024961227443369526823230064675628794406494531426615255747114645954375229088900142170875231381449588673212655833606400929448485462166923179439655897866611282076918520859741720890314592904905122070637361382682177874766314405138730576882339937202000407460672962640740938759343836814076891340805582332627105077946251277019126867170442575049991592702433258266384133001215857357544198028408578490635210239129220308840321063627262390645175393164434369136964958878775209366381256163847356054342200844326407758945385045511787294627977106447900350231395645287456095459457215364710514984113911518910968394878137621116750067937805577375660719528127599579434340297447458407440301737223735665535875450602715866957797959316487240376817430486994100565333108654981478143146019685746989432810853470052525544313757310452767886910534191710245634123447909268996409004693205173102019060433118278979412374797185474827923982189144840031896701510935148036214110066140496131302392494117271366166698584507684823050991912159037843012303795181061212737451051553810602831551730429807059446257640203606896332336584118117116736301804003545762003951736279983738195577866543728096388552282860804625110450227882030194481488637286665412421136597497701129709291054488850947295641722648880272059558813797699997661199515921374657736581465453523909566913653772948570316127467733010786089588890910486316531516201708944965206440270181823440954669495586308631919388536184020303394954710216895833740115874966769545818241273462103322075226945248680014447204860914653718144071092036047524761289677396845753059312351234000045868519379072945888890842590335838738325390600599161267314291068989997136996876907409288235260941449498220505443920522438271837262877157100154649524673233305873036224937229720069172126364585674412772167184302126165985540692115261749973140277909478487294049615408870097244371220192820778833957001268349227503291344216355793189880661115248972602620616764756790847418099200384939465835366140345434254456224507035865427122453327717865405324973158108589978140233354212492652241391402799002956582808042670822534310702037376774621517289951573407794875080726914697744618413794496540690544690928218439392219043378051169042950284805354464818944207850137584769738309101872077840662632696279650435827173016936878807038013741531348099769924359493668220082609408861065301827624363205774874595588222033152079797361983584173209019185407990139862773654843446213010968505885015289288065889594737831595117844607439923732383471002394803700645930224465697128297667807431372792204217948855299379174912231526174181212363662587983518603044514912115223877155977272769534175325247326275714687786109909874331066080179028988585945229267572262856093141369695027869048200525356386756576705900851507304939818058237797497673315542373393434000530327370598555596733687824644305940457549184498943204487342271497086909491710106698884024423707536747606114179185852422307008869117086871195866115367341005583991201612069480493157739206540573351881881322595298475420631338768213989523749277470989591724815352199016096097529643218656955105727846679924565437035202989224761361842051473177482385733633313796831278404733650862107362168885587398537739468283922551957810909676064813542949861843245911091956741892267646832566062266886035161542781210762929487940491506971541524160051569431205496585175500219398864945518193299998167833158770858297987903464570254158630343501488043540334950204214089935310935267437904070170107130665917307191400044794126517804528291837402122915212063976000074637811103862843136367883865172159179705941223483986174991513127634425427775169568731759913375802381630250901273012739110059341950313376946663319231577380142397043835577872701221013181112272897813118440393399855890229288918976088993085162997237960528959005239235175561954457093618471772170951046622150409411300768552584846494001967550906025491570735668297984162638908396065061939174870875278977815937280348248623514445528006079672732511184133371487609032211160317748669932715707791272582467212841404188803903787444589056361330377447728198244027201354253758595627121688638579404690598869256277185894197597726651686293894096214983634459059515902246755152748236476654544550803341274608621884733971857536134283840262471043212956843511581551572347201906781666068642400451164660905099148690564173791855994326474258449191828782980362538964528165592639423509146488960718315073854729633769043763375328593926453875774162708458483502709367846015313619215103473469871704263722565834918660633373323477764620476240604580881059226987656060486442163840672604629343609673561734132619649613673649869291830924447696499956452007753629754420067612580343372751810326635768967615355871677880230394313019094555614470115103312088288837109910406975867664264752699992725777487262039515026290679353425997913630322966006000949659405281897282085684845427049347745086030687633537722083321593960656052407316812154295373102340807670448645836183824881089410306503525597382781407513397402372691159147385292055004740658721947342197168179066263968374886259290885321482031986137783982652330535219451290868272746678275423603158987871687605105806676180378112791952577803340208011202649151903110565534355796323071794393882464061798525451620718378771694426371389998282352492590123533389723817811939037129761993486981125107204876354355844158468523676111603369246487588249120035436431983587786551925306824496447970438819203160775585181459793867785512346155171349151290931058015929994184700347871107147132121091420674032828443934370087355945411450664639405797586158251709026111048818197522664161102453779679023739655180110822849524387430412499769400832398730751052666322707974944446334278897743304291169113690088027263036411047050825804796056432682504969148864998793318493900804800546329869753314875048507299178501454826207441558905900571127862467255433083660878838372052446067453454912642237247554943231094418671884322120028941852349973172904180989366382173996724778892434640482317578563773855715063911363281011500684471298923130058558339568486461306646506041473589034043263185600100506102221785537796734584156294825199780702658454779755832014108398605026110516167442587759821464081817169038902152696532987016293524822046212376329925561283922905650990117165030721638776891145086290506482944683384874390549116960113071784737840195233736879895832720469580754422935247222244163559514634449459838308426525749326058742572934929513982857163691996855454596407209232267256830155726005079156089302048957693878719726711043500207266546625930943735080617866290442452738209415463460902340978925599588443741428998216764021853808115581156071812739452926209312270546611047737646211561037157206229979105393602460952306391031675551827571025722263661922890012267849604526610512630032900560502961486710376860863281593793143611210871828375489222945618786240046946181262635335313596642180172797187565275171637143949853896611741516174815324169112145146787707375431680844883049795396629032636857874632627051175207978463837105807832508188420686621581655058968569919249961043962365085011665514693304039473331304840769403994024916782779609973119229386839971331155348887516035921471394642391975803434325672374706580888415325415161641338379864099341093097089229179781734603133079561216488415602994393869588809643297350110661661671636100101363685544787004433129880803574373518315536339341720829332837753748944310421982860039675211893829537160791932583888302462565676204459236110487669758882812212779995053265940099424989613119625251222756388561301103221417650419228010128437861797391247590510775786215344156997534343152551058563929003233578353214106766724968655588682535477650014177614099933593390266631192541940849409158788925755034297078620000477185905298424041225444252988367331315394014892805777922470667630109697311970348632957736117540962402173530225202117801317925665584606686093068626026493901088933798095018239269365831385341205769131854563443092324367847220627518739260032727014534679394048044641805257302539875340761044188797750885407499151184561742352839624968221726826842745470850444002055684129720402492905502263493215027759033722039543624603740551846261076321176875661891720992701834722815555495357564886525527386177400139410610409781413643146994887211386660303659332175727141805419982634722143632418461620822547542655992995060460491462505555715198228412958667041409577972854851369330671075095973067382281953681613132485282571543592141947084616010922886146343853607061176734184345267174344986886109890120667200924864839371918160860838260632572338814532902056527767985108277195660834703456314795409485473524425656075803954316718192788486362351497596275174721528723209104263255279759982060396440608700482695079618465875679747017162953624203617326017486818507438325371425346551862295844386626484077458090506313555023051150277576541725155244517379738528364641277220903382029642909703473309653058633778760710735804194718499861814187998591715805577735709850713268095171788247658845099362027470921659949733531016752055843916844761978136592437489291751368923947980819743352932226604661201163800619821243514180796294670899028613012145147122664693889814684788806240542147381610242050769066454392523474600186101172197628054503498920062377588569256137212389407739527163902361875813566643268739965338666323143858874677946065025335969868771063930049176499242706554050494090971984074541258647803279521403463874035777563269861809254324149447042969352132377736824245759957960288472753404582358592273400610798481314168670352719717886071477934062135006598801689931072078825950061707128386084255342067356584202528800474540665185125257685401909128200316522526910593370602668285287735420965764591987752397265912661910217294951448281063570424599394508985672938577115290689749407100554113742916940393590885785587682098285619387107992974288085757188933385392828210484166850842918995028772821407991015450261634815087457395621044451290770014261447644577159614596192644083283132074925042048142552723285149930530804209070271489084298676253328542653700066073707305464268212369105615538187106149480588745718364689100636874447855060238029724792899886927876340965716899941948491367320974444347579284956962434825709864416968855568818576741928425583698748789631064326237538350378655701338353493856395634098329668786927628347937264069919711278115584236438067532268229295573452891950566929293356330089163185707125658121422890712769442018006504475446696786455191478525513847382622454267279089626135012703091887716067055403913919733597364059983644966633290280819970714555412971551001212692662948155568230916902442390868094048404657025868663838082072338807180043355929538908995316807595051240062110434874155275528364999101592168964846541301624892836294197427441909614068427702371048536715810677547727643461161084025973710681832768214374223351075558813357372590871960765786977548203906070842464024440875495937517629021188546446018935013451806295702772025925982614654827652295938211035441837246717495167838490192651605278252909735784760658530522056395485413800104473211039324712613799615867457642742223754845956053689827696024125272776312817372079415559065060637130325170190459994787968908295770423636210106191721193779245740033952344508465422185404729012144861755634576713122023421036937331184004722358467044342585408885622692024183976645357832233401958328143657581068937921971917221462444411187775469021250943163114807245472329371565009415369019428730569355719190046231677642561336841404089567186589967533869176093082960426333665697451910602313788381782903530602411634833810744095346069963276972630309811616232645252437188368792099290278224221511549901463429087144064244349484803692004057820600536535992545429734887265128464958206510584542272790467240354204859737908337428155012473045547062581556910031805966792697989658923783857463638648500801687484101449922510638420312754279824597251823861646061531934256729592121478317030766330893632742073620057024522572865580519483214213546062258979769568304598771731887746643143853118158313385200967047959352307779918777725273903705529316448845838462301847486070243335401412829733282672650270861823338415000521057092936637332827213675764537551849812617728622736064927811590699586305863147187300434840184898158544881007703489734469867931308638949107959284686797612280350064878851121029677368872599218340514813859348518642801600740076509005187911344924002790255259528681255780100830982649914654124412342951565637676649241940749245843278270621534962165867157367799063159457446484215804610159617506451111264173869828425201310989915747506333896979958589270320846328530115728228105409076503814818156801201303985377128071260649033944565924504501345563056458890480573059018752784750245238184934068510071554815295784692740579286094897143472755556567261323397402295980968653765856982336906742006887290804464781910175796775736750906296664423245454216260921544709106916861657960610416528926002116571697503866301213290147936431852635773159338399478064982248017161655820939785123584635203064809756823267775428409804913774282564505490578058302917422439522846958161975583859648997799123815863632325115184993888525750673974333073114565277716045338501474566050069966756335104967838763632275611002522708659867896362167573011058067266441095463132139848422165655666167743263094399143003034559659988145531510651828477433929470879804579190205596528151095903313406890053058457839427685551727970097992542895856982243881371586800520316267624259062406946646755001406745243803701620189524061086065935585885838507396020816483524833458474470964313962034916756495267355241733969122520643742891184545357232203183280215112617687617867910502164111013507027475577192746228085386799661474017615789879855187319897273216005081506542552564646592345465171145569474936874899301022356525702954197883101915295378027508984931984334138280933837529829835125091212124852466645833346005720480155656094612591612605167476464605770345774466770843382118761379985192652760074459634465743726070217526062188881280847740141599334934256013911600332908232258554218918925033192852342499087032083414984319981817947577759541430388642500324421414314908738289433891297501807848516557971429757199674894916507696734493456971396856352191477585772247126675704953929505293015602443456115631713859120545675961970996864556819967791579856720669243836228008147492487281765575990738029242053299104464953781196961910088665444825095002746162750232663741421937007145939827264091523623330664985566568049455181726420575902530805331984391547801786958334058686299812481385928201853532953319221141450976138628999947639147682545748154635038118277940508808453825913490100472341463252883119536481069489364236441830720447412526267479598109558512372994370806945752345569278001071542157503329463748600627466063566651102393869572953386282252124049732254965427596175243617145327623306998905147910759970969939876525396580389103142308840592882623008775839410616223671678332054627995451869870331978045559831873463531294642195526620404022065112491746908479300768380260819877306452312288835120301928781721046936637924640179608649034423638110830673320498247339280829281783160977394519624161679902346825713861773008074506320156538591417020615244469856573411737590454213377334813383019798837368689500074036551738418132429573944009276004376801588689221524961015443804791221347371428948287060185457522826847582196689833423338754309138572620529133546776703479424444739064177827631843716735297487582279693743143259355221089756706272253808127086271921260635096227767793516067433770899889150881952444004971077563048502223512423462225430839779195347895996792350796146848028142235004160635929024469438676201460172829882508333350324135791641449456258003602426076313892011053220305944750715051652092714052719979774818311354182359322481610199459566044670925585588163663865430532090498011338847346587570620284130205472764742569930491825056114629902261460104444586864421085372456175767275168505964859230421009569857266704935021462635536884345336227580389419672147834247684535142827314743546398760326596456210031775140642627859277579785757442412075491566083323610592342783852587224419864404955909430824710737716112958719332553126854650869182359657802131505393657340045978912296852219245057509153343905559443918721038246517106931052373938429359434981523795840254685921771171312435841332078853513519147132636728661922265019518760289773750381590056923376018579313367492433495485633885654147123766773930771557820870580314603180608284106210476653164201763701452495893100693200459364343021282842688874848224848035487405387462118759165077976261494137970533408887822170732616755896450485582531080679982340777387134329420519633265870534053803240277765322490945749437340960981923391085911235427244444592667105600045459106412774826691540044800057252519904461817510659227709200575199084470848918514520411261392034435527684241945808153091693023069930409321561815911563266676664484030135548982230339076898262993595374356877340302437488478365552017006914222164856291584286731451958972127432321491415526040663962201812781136647939433232576402901163992283901464009655307166736194774540314624782264542771834872083584677341139448562555335125914273493162104645001579825835251203560150261525260136079360533878541785506006974932838857340207723797499983701723619850408294321462763294183794303867711684372227874862012177884128875291781891239988584323737767655539862675559291512303478164485147596311886259539468165413452806813979597523496156390886520280758749856052766660988962799215100308498841931841075762138110347013458071967372739169577739609420037022212271830079692204387972418414783520933576876162165489168163145735348033238508856424938441564330344273949352948444161653790535228883282319968780582052331389664394073108522004404540208245489431500515942370614394457888182758681386919360185544887642169314113098971502060815457336799081842213986273248603261039947953579032287668336255738233514074923248112712437619947951215219115760751545740305190331917806376209426191211713967895722406152900701392530313811175457680994188016077250090425463733817964921981772566124838930639185421616932050074887591085006654428704039644758421635365390414225134912920671097129679477559734001517188918701391843878429442792795990038222594162273719674157210364499282773360433984162138694562324932030452490915667038451324120975319563542951979565965301304266363346347684463533967696051537260306289402028579903867877992854276496072101461352549739104487707720261500432815291709939328311914035064377766335459832564490109071847407700634450116197255168324435597567773604222659691666142565611470554970157256137168776528049203050595490983511605999176926970417668794222932429552533895273325740161046658120311923061697681876520490603656676619211114498712348188633187097542299823688614981113748385119751802561460557564402695906747925326883116181816653819201653416371739140471450811029156678345626697772844473481221902626934002397273153681861022534837176175023104310015004939886478955206303892572265823629904312612761052791341233513059082973205559036768886966506880020620991155937539634338705692740477972319389073582237718412666612533645268234572107835075737870744023932976214971921783914312238218576012833490556312402020092403181615956480276412151745580650411886127403398280445009034114074853852762331781238441266641301305711697594252556405034468401853332844803956001252287381690558796648055768013276089623101726448352110320828663188250816748458155249338059085954943830568148560313334436830332767767037467111977586803903906635998876970913896579991533986317076205263470928325185037284476102214257171783288091230734918030414311121683594918296980055491650930167913532880413010519734978701116486010551223414051255557937126205221925446760482263838320674838003533695212820991329765849622857075157329252839620870232615470844835250101432543503764396665742150618755527346663273335700304715510924994780701113819424370616861696115075204044647748994844505697689213216167121317333459750217448041682815068580968883943831511582409030296905755631879055352950988856137874964726326463065360940599721686020961624367143500596099312996734361319335572228001797500343155966922320468756643877781318893874367392867984809118517328254631867733540185806173297068603580541537902900992074921569199735446953010566711154979377910752304381820668415786711605686115554278033607781013628889772748054134417257690417822473083023471886948637616589323378155220514791328552210362888184387453598259759990008109023379891113405952642187419069460276366465955510780915618652737035494037262992147193699104370840503028187182982310676775624747236521366918512364673669241910352321420064103735723900193691332302617255611414839753277512381516831337161993632809789275505963163665794299265870023997085161597338468341383138373621701245641059714140819167970770329703626191593458271454538580034757279885083994041724825588307671003641611699172662825429368564822243092953247930381937346306332804250249500590099036691437200508721946519765703546712112694097536767228464784754772611967324242672137467648860299604024409641495008570591522708108461679282698713486781980992475578988611171934318097517492954017241032896531060772281846560225699688212852696313267504920989172466806108762967979878919892068656058229503352676932726166085298842124154578889865768159297727449412379302870769145184436365974064903527209359959751637120130368143389390453282357273297794827137407786858980302379726234715595109888156340984159569807216872284609518013455223743292887672493678323424043363376474148668161217459759257988357405466375317356598654430819834177319774925915222091429764746291253016845425355795693650607638482479454480482564148888947275401812671787178541538193980088089687660761681823021105466089440930739741340734301551761238231296018271383569287777243078635799235737709714599792764671496293041126061372627655977688163880993396466059401959746627009468462600504505504570271827772691831240744536006775950592724354850796673358239445195629587586257538957813240557790624146789676408656378436283273188787649515605121603314922462715501085398096925926386333354427876640600748574558758785102766055031507605380358249402553593100027565507828028160135008566747051225459973124866582230173521194528051805531320753803537927634093355146874796300910980193553631700429036845585184515982444807330723799197726107166122507802009896443372166654807241793994868262884114564158147678068561432575025090779547731658302550221774549433058823632005136731360177894908654108221533922565475237259702745000261328060741841946909796813276007957695401212954617731389228184406708712070027326215220428536163844839444351961914271192839959484535632150446374299992853949571264090409629769777128495574157350859193082239709361490223231875437019354588999865774046542683948651298165347614822950898506645672627255977122796527740293120429037220540393296670999619033415010673334390281571627829905254371318882636616468599359132405598128281579668404859973743126184043088415607876700535463698507395853172937887077488325346732986551385170837418433496657146672950598422649217725917636810299546058308329556891310389635530981552808948550448585174564396273063959991134506934662234944540526574675006509760311006602920648630441380068378977134806357515210205195811404403499649195087470165418866348755178353677418907742330572342625299756417626520562714813295574108491296991149740777423212931516460636358406691812682112710700704337890059424263604845377793498601151701929937721582705878903897621527317849328438960145658426623533774301522599578019834628850141152418361053091595848710886687125500983138495667083575381067652156648532125857594679867194938205069270389709786510419264724379332849131983822215602293991033087548572608865402961971335545358935490117479874494602898271355917052605937804125884571275379948577849236068360479773837263041034538550915355385691781072526015548123344473880999508166309644213351016435887625707634780954684140096205223046145639072360473961595739667409098332897383833005685889029634694421721548489971631467395455104925602647039897733579920451882902032851657253830558936510941380026827001590416940413667126320832132898998198534508529940966096327204502373168719866638717549279034646068110119822764372366525685354837601221798911547703088080571232374378429545393322701537999237419856285241735337865469606505150482747852492146678338613541346069350725605306825128342919990901872823393921106066997334707357519586552937983128045953297363289864308428446802331078130832772707574786367862743812828969164031942750529142540170427712834337862215597582189044591285096814143336019297300695255180329533071823789909924228601810451031302471159726670954141643632801246958402665196266382089521518679934121269028786702812979842554242318551212928879356938130063806470877345302767287413646909083702748760152231440605418904688782653397220537350484174256651782637320616751799970272430793415622510791797758629138894806350047180753875139553561568279274291072155317645851938283670463846647148333048534804749904294171732453322320373110391755761019713852938915420654376004855797705717441487263797041017079322025177868504635619393127583878071460805191584704008597550084608409267142353347607774778852227528928214794415061106776702629491714161468688478476305436165517202620030835278900402803938385190710203837918755693609375699936069487738412542001848627443789924774809476505471876754907562862298682505964248017908973937884128423379523123053068441427542367390192338200857518698591986726822775959265589681623882568938292655736760661505367390066598207629891073511011092326653637729139976006990211223299953119561985606697343602476097190497199713433446860945247253027292674171410455200316574873755780161207969526629337619829575520684089958463038287181127154762167411244396624812697405343230692684326714466421196378462914189122071497814602615432470940274826540900326292824308336020615554163976913041148656276045891581794318031103413886200612018146907200462831840490652526873280708863468672786369668464575804987636027862065503638461626335132346230748002283849039342534865615387743412739375511095878468673466087565003390646166928658433286215759312652588862071603304313355846244720054419655391959250156793042728509805798237532498378262115052509448533411077959357119533275651709320919229541390140487954572645952812563895994779404187057854746734021646702318588886996400949488476107268815600878617217934573449246280923494056568340772814403618229793331659096513524943056353318784373058489450990479933345704793096037865123523709394930741703906839558394233855029443721129600739491637925025575161403693869767944118338088826406255998921902324267186414640317950364630740902039796737027626337703584386917164433779149845317776351128031500041930652907302966944649005123022377901253181268271093014574216956647228429009417190050450303395099665538974606040554089760093947517439089349663174525103124409648675835614077067851584769560504834014040370110177282621930051909875352361724456682832129338270408460089356654788781892015234598353648195842717734857681413689337707894660487705071773118973077377914137881554333028455267467302731112759361276525278782629950249905778066823905783492593417517693332832124465892439211794065270209783345293487612457152134493859539127141450424041102788636979117017222772232217594789472514776564824322771529634761576642969710448735116763144112622919240321303894347564100470720539383687180129979224676519816991590389221385561066245526214815760998273336695110691963426865450180863342923045999427247689268569378701194768462293691016989556608522722728071140666325083821450960267618170874082352381458035574693036695368752794494805342738947491583171469213334989982930590012813183876313087240688984711556831020147945138253977854406843614348722580697315646231649686260838500795329736021738065759537247676631434910935286575107425820973124470576020923969250337702129061359085896202839429507547788528195145598808034801415448724932948085059681050380680930137569036613710132245873902454762453480667492371052585203092452905518768543376563979189117854117814859426005444877619028637865594452011963725342695252244782634353301487839124956785688218765725226980764663967910700878766032116585446172703067801952739839282862458747262259322979369935000974520137378158557278637168538969439003732396888839244351954040265178608264873208457716863309021590127024169806619141714573244160188318344876890905488622565621013054570427191332186669942966443332629776881519320947503848658578995506727450136699146632618705295516393353565556133152810947155854143138342490891504946543890236990243118368653042518787618485953801629518497907114319319286835234742388100855386442533752132636104550488902684941815045178444618726579423947053223712588434433751478167312097727988705297359774799953422138762556068810594622302725428306197445538621256659345794744295110426018833495237933117063294829597938662889150528093513249607094216613125404312355971653867668824186379432200216652001370499555077167403833806904846762278021251844566497355938211522702239604634846382135376680663931869261040409934646976144443872107563318849476864061431395810434615990022006770297726621724097475988162772583395428772441796815877684315658884014062708360492988060221678101682561319227587384497799465355743700311873278599234419001654864359705614811991956192673576396520718948838690739715397396880115398078194664687357681934577408312158606837350666255212254879085315781996557374281665355867915819807294701088518597505970966642137413468217291387735877111757735589746889140542551711892189989203961163580196729752676368974565890464144706498277378592661591467692421800264409897730357989430336942400354273734135255509943603496682412256722569399492725502209350653539288291178229210888972178209654329735498318016394448075100912134835909358246101074866270058660822016927903191058179277672895189116805362769031493887866578994093856708406113765593507676211583538350812520503622166713064346303529831976178457026667904065017421027232861257795770357883265716526299165092541164144924154248014134146242153581601221576245500675502931508766309736210046101366394552822863986224577892336363114151579953852843451364552505787557065930885637907284177061129125077285431188953750293676903394054022506667859767659142850869650070318397276785195201529547306734269991667961277401856930446354168066844785197152643221797201111093819977320448542049967351834529352863177689413919583934661558629544462226137550918732100250277160212482815774491945921737471081582275680850883151416221661596248652401504930683549655173554497935933579168370589233171548733001492646334835948853321554805533863312286511553692337557400815228598922297338627159234170819578502257671666248017338922896181166637694924014602649762843706199989116867792505836928838232850507044438543909975032696408571980050270338456295718557525473810644268631410860633503469502974013308922093716774912776079317727600034127216990240275941727140005742996168755240325423904609636572444256361301906783797041086005198585363444050472237321498896685254552155124666451333384728250552112101623159789241784371757788306749092130038115081524945535672353076951211088749326736216621714796738864549868103213303097575339450233434937407785713353749772577153549145154000653345353459689641049083735439441499711332869411279019665414156954590282354266246042791347054030154650547328810884349162819875652953269565295349914298622319200459933531220091672744877009591428460077320922245211501045367394317802426934514832914810033270615902751535283134231926866638851119774069654120874544486579682276821783361859054348341732149330901166635485248430882352947145323093676127467238714963100482967818913422131958328133637620283607282776562977998175781962673859567140767175443279260843190683286295233741612752424785138420094042962019994311817529937538888598385114845409253864326467943123974821883859604800973731002362453894948511413294264599539033607636234247209349189786703142774519097134627113704070622608082053502419687584787241379875087666589001729947873730295883093538102226178321981299137513393280360465364850953039935279727282279678550731113551594500062942514997756667551277412348505543976908089475256332964767482172141876895087939357765275395236810820317777330781566465581270753420529588524092363412764101080340742081144777874365161409096919584071672136772590749426429998351139728491446224583638171033477606441198497220485726705379392990143595376199093280398357681454134133996632293772736807486806096660131204118748670386770581350181659727321411635502057098920439660450987372928105261573212036168063822555197923228347769732889486595629784249489433842005202128191475990912395195579708578797249292878429635998582583027559537152660010183033043503042535018963013951612749905512804748063107468771276620211048947165033661708026605232185929865077013213100540498816391837001004783347123018358258049684942108155963008167592732541626716069597819522581428455796050068910910305345573984537615645956946714547552380723465914170881814020447321586252934588472377674968231751002922758795160087975887165818782864480520585749151226595209366616166999314611678226901119897563080980057220111763501577324945207409749427567456131426033755680857550511611768478724966070756734786491529947850579003570788338987371182840852001803419840009721205639112406104241042521668316859190668361255672653669901736837914133587380353397346380277423507709450574928841447821172449442437248430573733034816812669843455822397447695709530602988424224699193023051232102467702050494822451519943246995772212303539496988383890177063826424801786743073182505475205909397978748028608795579105101796855358951249614023896794126828085150019947425846804559681637131966700258476414143207058836070965209754474423374677683402455125903682897468702410362899159757255228551997324623992054135274240609797310721636787448605950545140557383836749016260936461702030407215494589716460803821171203121573090150666870672287288685562607405227428761429170636547155919698261093439242092458057794464230826076261366858135499203612488399405156653214407367429674872479241520836925293599384827511789288139997253881349428731554587790810208774675902908301440165633472446516303253753770962344085218573112306318322620927969267137507795096368342128127685056270607637938783228121093359349269132111862896048966553551593338714051829357790536300773073024678952608720884021027979100290419686619646263485953105380299476953370449297567618092940882716123718233137163913259241856350531767209401798646323843461087646891531088111386972664475204270561228672301664483720140820960128790146540114116658435746691469512256208738027285281365769294324791464619153793762678668513831314263909337061991235382840353981682288448963359055683668020859618270791521195552848548299231721960790947643111602551091852478791062547328695096916597605596730468225505429021118030478980314821254280123110744665433039924390835620810451317562330490212182748022333664074282635881979123934703369893729997596449156728207711454986314076895479686674279157132426498896442839907443415375894281278270474927922316270143407518085977088311180151443259152568429116678145343343724952145855243769582639720415123804253321568577606547929641020951738980198420259673571981118819182360445569669706322390054202582153673896803389983687354427234542355368399077793840409917277721519496998029219369987782124829338973548627794096589178006135979324443572690403821388487993366337824887354500552303928481697629062463601646811901986434722644503123626726523736135776230283177538009757276146352876726403505263690644503499146847888889976325266810467050007168075801604984575727341182092725757485100634484490626498528564426005344421657264888116427969699776336143034812557656053379703535464281995023054909691637342337458982303480678508087337290685223193055889191870266830143098102868336901888708857687832151589579703978187099125566504081088388628135328251162393759167676889170778756840520347636738648367064243339054493448864074817909871180876059920929228762450571092914288259411667974821073530918513742109359076131840718456616063829258472860623576118342390801076016384364261668519003895253313137467125067388955817605936890176542038516790063497451699456856417352680756345642311191429817336729695586098105951561964602697860964961689985021851910049420274367149943823689038954866154426229221273478861242813204298875656203174643726289673678357843082573079838159774447076259872847303066397818579369416289122872273217067820708984971502213295508983557480605207528077000872191279958008089542181577296132465642037244343174691951777575507714318295026489926438161891269425869382394568149528301552987062379090649206339211426322602793942167267747703677997439254893890472638048782933121673037892293751915851549708243811039754270652780128218510770083970724500512880801435848357719059945310477361002939730316215999647827603154172064360676346820980702293134017199630836169252593225278545900134535436536974212539506779761884464474527360365890681883294241202673626570625143646492448807847481220733743440551694118839599678946684708882812949300042013204649960617995027313134510532943371701739459537396999351580884116612250532302637492259289565412671873863869530908655272155822073097628559643669153077487842022466501783059429108478970415170635720420759326249682433025369742998897684428564937053173071095400499521777928241796844949036339697415888614663637047682704737446425939218142344055408725412054033687688222848582192121296559937109164227872487111397245768009774854409327298265789223720040728141399731497052204863454592499523101189177081032372613056890076221412055096143097660445931880254545100063009070323641758972554050236046147314338315111554198192754688596571418609084203864655010007723254832198391650708852681074305632266805379957485744618210057758272756598775583298474448985144173620047934858910059804485827122527602961328260583103509799390802856404567035463310580241416148269649628570255250402714173322628342732629755295478108335723253425726799940164361213419664793680451419991971205852994655909324778755219645252754535132689235327518054353906219260813784016365127737619404459525316861896841894437553684237541324565054659485641929543920065958913012041282009107917143269634831684342503840898445384888136884007489239063526258386964412739446626100768443071782292293220818570553262214475655098762483044383598562757620058056468947879655930647204162711679410758967229091159779879830326792921904306871129980384919993562503778113162104398133268392127236056481178692181844809720876131887857907146708646305419752752378974078904292049082980970172955205890841045926054945714929371233876647245974592140400636926228642301145140171630890107344755666332650553577311420335908796046043361461053250974007634920759415254513398122785281532881609449824249345803203330215169775827610955043102111576829451674980087002317157448926963793358833664280488374281963952814375797361555280939017489143965025632633827982040863692386054367144688580351427251687637886264293377957640424107008752518007091092062843840155495402686546500448490530435346370427080459734456190098513450821279780165261421249535295426172317038731124427824191404187089660126553416391508317419673937474712889255070704389732507778489084255927451509115384936735743517489499240515791078542835298529953181697463580158865419027203181901880784564385690329556437111045993117404006645244685294555833141368466396996609989307284379926894683593584310406803235370287110837338801580132216830668661101246443867150075617490280617994252452772256513953246170452966497641027906074025680437568636074491303250344964090695719419846719188433631882039692800894843634700585414462894588062646077416413579593284555383751525470551022539887509134965141641462580731939672044322843988406235912170603709375491323312319097215792330324796240991884119458567772973771785943405838030571502063409820870038841847353062827273084292461076146118800609529631794730789647626552770571510152387891646321908552906146558978663889709337760346650055956089071668981819850149468432186444277875605260150420948983344589049780136689441671359052996582666683351159292069465100426428557450880483298495078626882203123353657348908183335397807793399666505852889843327510609925505474914848695126129917984315275442176308429097697233245365461006256822581876356532346096977105689551681294064431195474725423061997833674524105611813516169316768204525481756492274890623676382715408394707756372598363821468060291812317366179280430037672321629412196571271013205412588612797381238521868148103191560598355684039378452856876215912380892603189518384919110085495260022597266476260105869806370350935898471953213382008838947490616951644586919153154747065287826678199273706962636099074331039817478695895443629599531002624634188379385660698276331658539993278302369976587138633686861142341375563116111945248663364879516178858049951946887657634592407840799759805483739025897186796649574474674970927800040527108514904883915382890677090062355227450631404143285276444767855741103640222809295336758440737110182274343373400083886615918710764344258940660399299432692779223323105618632511142798999205634183848489755234353396673110217333433087322892787846290456636102012584601978131917970724187045238714338031343026618249688740956593901002086831381937954085040091021228424317823395845478877079491994864026626351145591460977435734087784148443391294566758149847592247653263709675986699609125610765847543938845956399760686777601065050385429044938561336101797377856008841441601298792406339358049328753888292847557710921881975697707439987324223750348202937927801707792556525404438560406871041973489846739052398361798239809553940111467466623666678512019708582347193630900673791208100085915299424961909457234740358099486660050818876466112109427220540576498159294801858500852528489432653264105663169604042702093408289070353892006228603647846042336735274195052530300721843277979302685109711218428069473786607448739222796428226839765636235626408774326716837498552249900536291128277663773345122280062117873759649854670456022211345325212393515816567693925197684493728214021717614597888873866378757955394634583416270577600796193297029362074640368655438597060049903868181557448897332753407044087241410682787211550530321396862043922712404849326314272506480782078140983734730822284981402368950108158586145185680959103697182222295865878906076129611529650711703950152204734992617857586390091190996382470938398949435552578166527217512645094231159820789549687759957272381470204701006964872296805730250449899328347012525775482594923488923763425176254993009469243310664713973518927903022574567132598763520972176110278577656738111086521895975163815410720439962570513953282636493032533083438452732987064773615874639681118338560340418132331976075375094262200353264184615350010620198457431252456628626895684259572880502224380630845683114317317438681668359308634954993640073290521467490614640576852492109641391466011706778510761992628153358148383146608143819446467951339786460000801996782029682734681744913440889165921466678461038822228955020461056349064685964806354515449312956192543023226178516949203282457897298759580430384186754548140320984621595560554084329948557775756213844980616625839359513067798608074200007994293218989213577863900101131246180582711118230433617246032110088112509088705891789238210183608692028120905931231448548020519228390626422904487762406573182271518427110181255839057964017673644702859165351822661698641108242153373784399549253499140635552180603308712128435426184196278184604402677875515921703509988318522920393233434743961281357847943069857359098436015300023454721932474753177182515631751395105773021785258534205878977094569731674309269856910444132039313589419673179558253096736581620745059037442537269047675823265352814992533216774739019071257884398949226192020626720798580473077501851308415754386974686377287492196100553829856543017091406652629031509047565292971895495207283676238606152587017708318160608887524307076897513821547236625476956673708114167307298230096290470742276796884781956944752684310048882514913709395955115554660388470598439512040304619823713842891698521990980479557950729135034977670291265730753209539116547579223697055752715450336270062866778526271150968062111569854364238161095891571877644747182384596053451104969944263696142842299788213287398369517352590542509248930237805747568414803905318124465713001701521742652030855254256459660040324169730580416897440846660795274126018645998618291860020482665922977243544662553863226647168107844239360864122399892809283802753506147182693646275255158031892214480606970977833698870113931274458267326820750870698521863848566258074143684978836339256297474103948148313266552704912849086253125721990300492391764534281396703887710351889233354386810894831269819849092390319855565922937610101374676538694902674753306884055050922132599229527844301627790544356042162423467950103422037069380529619712271459898351899826273267271547849215125272154621490429292953981675361949403712828736308529330712796265976596309488456399523903024646772802485345078153069180719700457266464414875160112332825432189803585489234824693170436781934605182348570990964637045946881367715318396089267637598012459136851549656123467049879068298866088700679097787079522732339941874855180546198253389881015651883194508466518612524339455444630211830265601275498077275786913137380500075901551489088735773270386674649300870398345399016303003806567192143344622338518867005278741693625815561054188502363930236733908845483934241379960120217783443489503837857696834489166731320785449522973070834845960407436909030414431410373500961758489376736043377581602138389437644812955431676463338316116581401195728755949930889073722855083685202417295379453431729444507173457299694731991507561296900363656422867376017454703214048784370370608867312969943087688957058787493809377154297433445858689498211623459246979570922204085172676724618324336736975102495314419359381505666409284991044228909098888530721566286515737264142113125447184454138522315030512063602483683704989142228672106129417871915833059940679178693743400179629672639821980499939257724160443672366395006337114416145075769307706943949512038393508931684104579629873369456415571008177287350294062353305941404402230718363396849917564652939096425224199602087327802686752589343971044677093912586585135469900377403984540356147066468344951007455099994976564890020925360166979173445531640107906414937844639170570986279058536289485178277543716231013067655538120074464202533751237963340998845911558007849583294153198852636265117044682067557256140423022045769710367742641258855356734391551539477471219751167768570296704623504651493349719864570704119319510545712978474031478310733603695320197507991745944832087691462348251436269237003947500088217674170369751725449639471988911387346658155704110903507422300724468885990259922085801501051258266081116312386180881320246652272985618880475722956478538009352641425377118455981552977579247905377700490490626879885448468688718859756663427076489111520034439054061676025686857105552047425200589918514885792976984683880789520209871056592336948320966885357434024503220620745580270007326852034452081280852190292058208243487868412985808091833595189629282585823559267591924738832470019566211416288762440818237201168455751660438041145211281371425573064591719827323756858619624611144414410663722665830801270161987964760902573022426721585046302260068080912728062406713140231969195395955619356053919085204790201851318579576553226284309533892826413399133690696144695634194619793835768028680384341270283903317837371507314468041381938783580632282746750344278666296741025664360127634845388567653869937137158923841549330534288524640416802771381582341703916742774611571301535026096732789445151321286804785857730126816252554145171346287950598684630521081225588518563119538095428025434990754394680602574116332157401513758335029725655964463111604207362857109833149663406262808696832493143564754051701047351056675747903287742597010524420022817926839353317757563678630617487343748158687072076560830748115482635647211595297860898204100422241162764352774603811479728005413368505223010927064062648730907438527549562079995411601825630372286001205012097635273762310799469126543939659626005936413985066445674228808841209187526347857843767353713394140464501843807785699964201113764415321890038637153052120306889101989319708395164896766650499434523371684098163255729295455203273094885649090951688330721398000622972258780770906238426697174581149890499175300986575359995958690246478673877632603418526067044512625798495308532165628167505991659025026695479807673908135462784530353082412383649396206857600983571067330469791664460630737486435593070622175785774737469097624286445648254506942582729046901991065161238887288888196466419764463782413148355256813080454205362763383595633258697092896704806347606075875856917987108313824297688272766208720817631734764209975655518603872851625569526765755584996633484941465524740825990960993109553114785015615447763433021427568720357452174007828423626131480885785468567893754632718080724903659324757984772281674219273267094588774046469045273995619927160318987205928526959215161829723485503920908445935330001928426085618235947870133908924639425983035624798419239564361153000274420081904856538638572686260767967633798942205294926000102269370400681137762101861258110349297834238398292984123225321770174556430187237882440333976978794415989938507757467467053430132645572000691104745658236621567884605740027834454664721122373903167047169355077852377453041313232839545571264275620136521948747279394653079085426506466356414114961920598644673556104242609843389557941497831165068529149351314169862027332914326691024152563327184893426777435732112628631368964733438733718706925567476801820639819685439982394611527655619742743584270483432074045005699201260812653291172182925076549936596856371375688614069928743492875421180282003859088284363495286292959426078575723441385761030483359036137224532705038446860348802892079265389607536711743590312217050961053170711237905667226060069239644721514764995730109309444472249504908571883312913808148011101778101238859626453301811089749035199807941648290748225650576878706090723585325193418993604557363073464454678907907391104506735445207316854023782609050912624529756008355594848554816332881356895685734577158123492751377889876110020098878896729287439260148652816517719530827873005238584139920335029039054392093608317190081380001264933930776982642278774967295147290182562980330285176237038718886114328879007594057445818385225589426153158753002146619134218029469292109817293347914265078682740995840911761208317467263627493736922327452137812870701537609857127943698745753858990940133856711520493821809417363583066420950134145808983270185362853188279045062963785145425983739884099434204248898741814102807246442089561120323917446210186930844190941331596375236512271798876733309898075953035058753896236640728973156815064535773168685287301049453830127691191602651471579715462565844870128929530046603450638263630625339626495765150078828989345058308862500473306347855233001812819913852808595996314426059203735646282757697997283235005505703503163500425134753666451759679982409263305322978691805582370019234337837579676573134092218868108190208229774248224404711321311879864151670516077772509288597399287523387025591620762596137143664841566752695635540914951237687556842994094649160926934223617781335785687697841795692647669434063142356081151354217422880570195652775151739172122979649304736404256124659458362276968738358644541332741553850650515679025827569409323582489348539661173845262306824405525835006172171393202466371679165095398481866730431772323958217691528715767063160565820075095516617389342462918467226695826651241271215186625327972604309796616373643272894856344284618108604648416344110443783551660691662314994224245267743455160613707322107638239282416448013050959854594406840016249418241793394748271232415284553841077070357262990879637291086090996653906880517785184288691201439322631433185771850578305464296026048161047686041019960448718578971704678478968550685515936289517868957201651866759216113009091900775172327960442870045712779508720893851062648326687380816442262568793711724215815458764829435866330213536037979586190589713925269019941715072072264157190823594021898576070540135578103922571991191639313416989438724128407457198280334221678619020943690784750897794826351422506671705425475790452732526079833111507221299447767300342633447743550811046600438977228672380575521562717345603624247467060736783177849925057237904981926109541673730475962322217623872223855903681605291749575842432919566279421214131812682147768781064359518040953229533469956399410039499351064268696542813324115995294098984856847556081833570731948280708085335557439648395141717543932844331295575733331711646436061826729312272295837240061697512842144758429701637535905162479329842691517014014599534303753069762096382827537612618495776471170351731469332964991466588699729396836572840132073615811164626273323721772967022973870958883035149104831411873910797536965700397611962166004362275698438578326734843546092393040094585494205896081807785598949552980027274189728393236722976364374946071993407285936850706801097067441147240742172330579627988449332713765848945627813207316668520794401444784840486412536709721074937926994261346715853027736019099665344024764460756265656328819463521708735856893610121115239180166020026076096135330350309866783010937486360611836317825071178657876548506480728963607570924208227454219199475066512366376500015657517064760689928019943787767717032711119529162514848842497380299204043683036548797452562973266888805194546457725760131008499005250213609694487904797726917641624163997818332599974132541483229819125249628446692057539337748415103250972921389778433562041260900324454730972680150604426670388965586768944508236969904079427305313615697129147257413193679705970420147949457604006221207662683329708384157539405924733745068371412605297939159440116081759653266734309311186921921622706712503330896460020544797082203130082230702064115198904000201838500754578446477864284654519113787645794213017089754375858712119917995884965570551670943475749924169293102661992001705186052606191737429652584083250965318079892299798856886658518934957500107328989793403760943679309343654253747734458869957132202731391089094940720372186034730017847208727405299794697478475701074990331218075529927334594997590902279400717156816660903730895199137321446633326409315030645474566880308026866533310343678879115276137783457942696860694830107560518176252668380951546749732069732596421494609803319102623645113889295747478786707991587862366523910565899266296646589496581387092829419879693349770496423646795287377650719372112379234997211441550145196609164033900253754524275889278895734362623525910692198591923182203830676189241879529337273026991101264491076572289563039002935204856204972839177515890669935932020532424785665660672861013464913430162345683224550556996618772875257383752550121342686890171336373395419794604220369418463159356056613423575902203450395069217338204061518820373218255124672263860431836376108071074069655839821966380976884115497495883636110043241103040694253729582852169488827432914752623207370792025678460661616393063162306800801923098876082386674798159919532201531169044087160087397488407870647730325860780325496669056176211384728474373371671042701592715956017965133871181262758302510850884428450767684945732475877637069534975905208647641620116538390952929203975594751989862517820438171469535992670491476051612807331903597410979841365164573023500707643369281027446466232976590680714004705090847229204364935672284929269121127767502915084317428434894817901920991768589021918231445861124069354094878287146089333383371602948409293805231517044124478741882322883773982381209622932790401717329415643682303761969794934872710030777160999631560344046913354663874444862633863283656291347893952175558527504089286048125471117871530462662279006596129910780244445633511984588101202415438982231794459384033908389684333746721313217645524507363470967126012062770797919077175792458594791490256115308292300231452601610344568140640033339059867766623630692398587169975149879406208957935368865373328494462643895714950761417247038882392642956783361186815516691139263953442313587120136117537990283685334478722568990936103222314744550452076106195067169791947233422516601430718938400113198116928893183388272133564883022170891871518190340488203752748204893653081857691897273711898734227366706679610585173044990301546250432287599284575529538892387081921260964911634895123992068974934803550466193413634821454194050029948695220915115288768558709631824514897442477978241600157006051293634806953745269383005906324726240074714711022154640137874977542278314701293095147113704537299611860919559513058262253802519397997792266525991574619277856890341018578294492659240331098245969694548076582145154627656365627731131030302927806918479662150133173679563322066496243758296346339143701598723490758739206573778477851028119995178462052836944023174235772659586561510626080794438420389021478138563465279090001972592176363224961671768247755517821524685885688648419007672217292503293628399558762977539905405561692309818085426420192981500584261466110357489060784137252441666852460370381643979179727511974628722287185878868015398417888059435293980431154696023681551276926292301044037554931135088736697233919107842462214750998635876955977381717398619349902707817409650306304818875122161355888313850016248510490612739887263661238344904164127287886788509622872712402070218873203106658022757362053817239601342956503998637941681735446225825092260121516542844624913090075005019428180382311161822132002448047664151027349284922612224863379435902732178545470775428347742212670554394215219669164246848796204176508981660910655783836075927873631095905614538272095350432648320271940831402370915429133397160223431106423304666616390135570183961251157601555932331190690008675850581941884816876908003375643792800995694461206860857651491436803563568534866214414810838170871127993510089641923551286599468013874032906255685813766859042517251410941464731985584825251266769263048625178410886336614016834040265665141687795997205509443820661137667895009388016081315720306765680792817616150605175829746307440133424600850698943298035279492157604093377741606012954326370708191284705825155855459077536010345459280349519858463135304706063199729094921494497665492684159748321542779486592539536000031594707055333038349795249462548458697748535755467791222384809107331889175664231691226503636359653928618758735485250809813640910806202612206432869833672543744140427784871794460581099640021971507126664578582354665934539996848691950198183012911628752660300885605011385600045398273604642867540537204998679501350043269083599080188437975911168684974994160983194081665912518089094583179381050562898845468977321981023047545601428639724177619582268197101820736936840316243968563538642731314258671212824642424158940422278369914236363655960514340279668447358090167691411403605593404835137150959629091874927518797732762471229616615305580066829237166205412468454397285211746363490812008820627853783841028218030387102358544432023110881396763058242542431388036929601344377748748444646981165444580845846392061816911456300591184990300182304631326643603262626566989636486399252132814792302265362649404286576386333287017436647244438417001124034818927631368974880011975855776756649622172762599139993083063858824304686132967459840578972575112676221019928377836088145713847828851601446527836108072795670393394191302861327350829758236703166195088021087355724919695193746630287834121946319575046011399738259551895117457653413724767176743518640347165922956816834667458857307358443834411713879425897968616318564410098606105689588745555721495441053951456871795824541261847586408147216994787550800565328092011680067297384623783110355379247338365358554528515920407257765175238126232157899916847097176711671369193836817788904094492651216965884458561206912075753886669578173546166245083383392312146071052411958385452898451194252082721608651392172950913213215741274231027270162065233787354173467058447960792608903175187179700431106971966954192538893043536407738497200851999541099134968009480095421586252653340218572268953789191545769943726064683488071987041334198362457072835750029369533204739060061206544749824748139321237158988491445310955058437754970864385649979746323479992451195249707018618848415251851303624930161348987349633552688526657552478394681085632365226557649331251710252903995079421163722452534647359032583640161299240701667962661644931944110183020550438348288451962894682196407436922058888602375383964649812244938175649839990996647582901856676447109450085467551390953750214187167900683041464212584717339172489921943700534189405383018452313112008740906046448003196647556013651173486700028809429647878171832223634029106304849073745203938898333475360402548729402993861744174601335547612017887468550715893693383042812314056588878577767639266994133749582244035325710956174390249778611324819107871660862486444334922396868735071206847626151388512373100998928170801052730609494689821145939982591761825166605020536940929718355406139351082906659861142831274383211262052233855124736309087052784758939867535746876689532161125849632304082581185999262068623417185889001229319610558263180554227905602425672956079536689082488615912669989368137042807145166459904679365727812948335199467185281988294427756539881652030746765377996548144395041433823595019928389195379883379619947154756800829316391661514817859177970541553898589580832743316786059887602844104476209104817131422128511997721389376100391284765819916021971111744538794498357173306147710981565414809839430853324457189670105803165641863168081091310231966054500902460134568150070217687856130532126719272969772715166674546788641528443215327537559715300935726922552530984333780270033665621489074478886805552547458660245361636873792344741238570226817724310854881399112595774212089309506521137364979706925073726029117011973184129526607863319587777762884690011037534045618134054041589890054429514781812734971607645080142028472888425063637996787605668121741039957392295532943432547188566692399254670788561599187317748752178163407715633054979991260296271679410167085167018168378766618457439935064623023056552303912321510655683833938513137931631885353703906239651216653996534797892115724893031709877676558759264384604850517309819704787276716419677099796879052139426696804299489972284571512394703649771313574862189194338264926814688112794901494761635566115287626005260153209547494395300973752364494123405768589543920135880838183325017696378812678401970722979645100897212175807667334390591684277460314690952399002277513574843296217384925876753346292446293724263836437992848285954730953863832616955467037617442546361244660331379727563342437794262932888076155888857105462732348817475125976619047008554825679613812061070838385715589456696120246450015527372616141345043125534129534626086923128634495635246277364446402723587187389895223197757294129588635722607736726594372911590676505211903655073643356159542828000554299265998833225359623180299797982923168144700282046990102566980179392679098133301066833748710906590217829366995718690031139870536551519261870673694414567009558093893565713072644671066203575163923002143045403013772176856039189942462852362327945744143855712759808554034270727820338322839992195942741403462081695232928356607776050121201698610858078421484673600349308724767074005155328931800915659620131269884754956135868426555776086857483674550998962673818503240626984240038170196810883221729834983832212552613264483380474695379484392940672150122107875477990999246480088929869108324494179217565845030234983670525199860424503645898186676825935512173105596103258956428090889195521544605827182992272274139868651816523594426899077324958632604896563416870499799422131805501500811222560770943328764834836449429405825275403442222336861813980274976954585542451706194830262508676555855413859696032953535967545472686389080977984193066948687006939561373762014611484772637614970164104917283823725525355377445202356147686704870547550911471750541795338456015609415610934067145906619034376899821546061080718493497683171111976101814621959224536814253280028489249580242652575119349012900741017294575145687164068093970229633519217913943039997970391167991082218575603265181256193006384466182732371200062865695661643100186485500431733609587229023456093472537823205165166374629024980511905380792953251090203530599230497952366693831781143297701579954553289414492981629817341177123845058801699976809601740497912186039447248804078551164067397846126972479072337909540162853704933692850460527248976943585265371152186706351785574084705967144357873913038319394401510936263560884129530600269729993988037937780601787162658927042401584694638408129206435632064741442176852571375804860824632106622994748040876462828187266400735604479842063677186871878840813513424133281720938364683302559480658091012357577636612344568893515934588656234821850418116234090910554347863521077542529235750070230049112420238818545948744536570103645150227030024132920178270314461206127162409180790126524000540237174339888260016280583699113424775319034316298327249854805260205086691537721608336894230841261969384312362851080003716389316835913426743178966678626090365168149976522659754558836927180194911284239913265056007716601361431366498860836201506860149053729749568436218648656945485597910748123586384377854679870006383198283035654624642225576049955831717584364971700362845133674176724322625255326566936274694234879230004365388876926033507763839359137144803738712846231564493411471020142255413661614042732347823914158820255614432846964091488515802307658018546759164363087637868998876475909282353091034141868822644643041854453157372554198259095273890851200488733967690172158524380636348737255934837554933966771810935022815269704532457462626773814861318616712889046685284586586209393410654423094099563480475124880452555259412073773557627743791057211639472052217484303593736010480201049297423642029546336925204008599829040145092799222714228026932240946972749403190072490337366145644494944976380733641608751083637318734849129945389824627857347400883796608696642447905582513185346219402005361069720455546677148905457181764232711083071206348639965131036861738229408337718778175285391550827321112752127857271017675622563289582887363426385818315496683408782931910963125447384780666895229819122218119639290012153481268304983418911577785215642696071078026146032135614889977695960020800723455613390655484290245742738761889079761143643557256432976894336045507247452804372668961346663132472437704007859329208835552363549325189267935381859658506059811637144459972892320704802569947353942791318260093010910436259322538395041558717712971284717242427324912508233768077880259436519331794077105743478189073549915418942662917425204277811758829815921954040191798554497896793375626301184311362560159286545020666427703118087917029696659766186270343675116400609692185482413339911844485168246969200172583302572955057822753204837373160709352539039379560369187773773070890515146853834657183241696799362952557117745734631477963908232354547001091557960823670257518539707902487723598115540249453345897271778599025433950232644378981661545000980933155671968682310586150712229422835237604684798702994732442150999079569671116618253773518742508752531488801586771923979714757496061479602027770469236383180406470180920008565050869577148133711009215683193640920815791780232550445256221027070966207610266685791423565219856409047353694584087500031197403145852722571679375583186275448128699535488377666026886974892374858287712490705079160692273874297476048792601621403283223476738525065118510887276323672699748520576883840338429109696416768136202164209076091283384307581860202058418251245094567424693678537110230910492264137061757804948657559062075657231357935236598449855554716597580711276226852929517204199158524670834781433260398368333057606733546147305155555353771167963892448551096835024151686186406653158160619813201540123420190353527544570836781644991938315664658448530713656042562622959122836449596807367331666362775471803339644207423618926827358925066712061233970868406771456284901487365976299897749668719410914396041759741734787627369375201824241391082655820806489483473608546548065382512536170182506900357687680886173055543963996260305561644421618080762233404205241773489701054759835693000685598787335017016761314301727168800934983482775798204637611155889497158446156174464241697038452950767731535997210146308642476247835150469647429043061299006086320698519350824255293133532923804240223826136525262807845385387569716791565601172958266139799177642673340334433364257471694184881221471888769451650510811975662670245561146247619129194083229893616164755544929626899226774096132503392467385244046159506781592204842536689927996063652906044183187934553319504114578656437621885541002337227826549064379478062238743285716785371912241014953130837481265375272495409389665670582861073292076368594105954447690593508072719028803760748641865005842059421337846726374345635250193818111511404976994878023509758546966704783064229937178276511560622261067202023508545905981628721608262493771685142275601828383161767617199627258964352880904490995387613070706510545651786713319913779435474579355874289521815828419894774601624318240030237849034981499216526493654443302520758709165059146406937979449341812406043104655265811710943037659188230039462755361445458375591851604795624041111256199887714883558541210702147957509398672090708977579298022643969587847204385736225065244418685291359233677458818236288801535131299042460564364249764835198994318516169004754657891669770796682674451651067349076602251067304922877759964927882514503296368341176491609097380968877015233406140472596367563881471138403623599900835423771879931344680928591634979859852844285032056037521268956427894830645160972796795475085192000203219407287940108240871583473614156358545370044469483378342265749072942337247254488323696855009541934113582474918297233377214194972988891943128596108386362720979838995647963937593389911110234054664704505969449414335133342150299505653882070885337692776682571458669886516379109941530561114081268428238016618739934789131500860999864431008448795484209054421129949930012828014717385117419416946784587115003301999080105215510760598883581387446678035567837584038262257329966662630834370461869361900817451023310085759651812261095981766533436754619787083445926404372922728188431709960568441466250179985600888249513814274839169225037653755421906346912321968768278479883622074932214016435894446953684749831021500237340076546315392144558433127522212401075924727829913052180457309920924811200262147567345198192619738005656476757569765830804495497346485410582752185317391928857005416522469647679375596266407958267205500181376701357086276668756702678552557350191817177956670779388039583292981834487341829307896918470711765156399703611706632503546521766221270839635572872380223590386610334504800691587582077544309191861688367252244108224424750030141402160485726483361670164916555668862604919158758442959727357048357954743121664346231237164615073097283396403673288074357305769759450643908218655250404660908286287834873995717918099276889213926042078578142400424205919614278130294829699105637842165566381280202462402220546936659519995544094179027426058293220727283413614566970660816982478199516924114278927713640774199132524670133584863174082231583313301026705027292114375395658857675602211264578648403532941547786370787342983563241267515348299946551437428613899218488939438596161661974623587844509798213438136554764785159438745541790700303763725096939438894255976957430689376369226725301204452583444967731943026777405330111989327709708885233966473062029222046416558392580321406597567242964892243686103258935699715392830392996993788861374548289412739890711772082820392251173520620124766530275637370624478373975620822483585042424060177803185712689483817398024448715098578453762508282098859378195140165519142596939253604484935708010898801926668005198315920916296467267970378855201943614507528741994264948796201923023312696021419467984748160033782872677114227969935990402676101791620897984518981262484178542227279406722076576483842624069081465818252126390113486301908778585815881764350247424845515513330548084075133891201465765776229850178590382529824088952845030028944511871615576854141826187969644789413168336048142593875736833463547017699798052342919311049809204043303334002053576024007079080805896152623838343810847877293354476544673505053604319154962776119609981146700134413874333758943588070950385000733235337080564835800684715452689181794834343717366496086057651887251024714906423661964132251243921513219689983372553538224390101920543864888743458224609858845575056225094398844762564302997366209815985178170463802185923507725108835336569554598822538276128478577190831335183655117011571054249444059096695569867249747163284110488686097448234593480840366577516056536558864685329623279248134351806450258109212604995397833133454992694182656873471325268529000863219129657301583349435592982230170217461187282575015301109616040169427632120511375762965575291326243623722275803773285322277488900689941473252573390657909173882869905013006409003684205359011198032128162261230411620339962009389532285591016976584178819717705687890983066218969473253141060002187839348729022087397039315311730515208955074748400225237932436439940624467904228327430289840691636742615898746688467053385787365161004246304050372997089551599829232021040567206645769201619317495552235065415485815115634232935922885964299640014234475819575361283937119200868210498975785230666971425781427114693385649058101551093275563562113509880778178995247434759384065371021912064225842413286365312107064442257492685153798059394081063426249543465928968573437533700915415263915996692123954739592757990761298838847326184633388493463421566209650461377909909007024362522773371261112166993547187849036184610397945558723346760991062911891046662026472803054953865785743005759029387754693230564848770695363395766285752291427013789927821762458194286257630639477901452395742128950969696599435602009140032257775049329387751973482683229102253032967647627406433631730995095166368051707042909967055643907701396369218856244632953207514796433916719898765939039393558258448428323780572315584237932455045977937824583779028236005581885532093173690006426013805848135403871636391215076653493636496402319211830812508820697336155942337601588515465208442434523823666175122202599535170526714261187994490120489136400567372951905683823617396881375293206607656596551697625646809751291314857484549751706412760582831724678890517716607520456269753653645024838316484013951483039495109054750475852286558893737962719719299974727696947255197877181776578763684961443216021994489802197098607812802990281720878142691461282921737272417726353704673092483589752400074333578539397600846539673094822648380537323697831203094410038271326745844720046896467722542489313480826126935005502485964073600702149141338478406941737360283476640806132309697785348958576753749061256042379438979093299078550761085569964054399030013649812246354778952768227274016429326899518893839199030273929850664597559368447598006262604550455394866415823277465963153963563398946961028488074863116629925881000212799137126404774585660391838223954194515119246523024710532415716298211042277011489858972993868199471530592753101033432675557035349430591683468439322442249016105197675819564584841620776479825056615513038381401553372653906800050583593071511657119415145742302347513027755945369885623716045462380835809399077734869068926175277527811524715500036694779572134994742769498588916891745893437047509658277653848745740293112778025541901253013647789029816080953476005790667038886464246910613017291850727513411976181599129768727361466922760941929621482054916007204014138652198391145491981493633093611128880018135864282757468729929220313575842054122430101395149056500834729927198170900365999979999210210668265384944541874502790059270964038996963140445458191798153193915615645129278084378019828224539970153963896892579366565785677791737981673568366469207283301289847539868152605691003980212340162239917252188637591146201041053277975231721779479248784527981889651463486113684699082171374474831862480671591449368132176954175667004048602232518618208854629559404882824944958325542260381377101707975963075406582820209696856629394782787173271393026550031119337833576455428409378043256019216049344739317270930371869581129723368983096943111309496250143391841489326222248044783968811217047420391721983444858799494687578039819962190111045238203597063491148554558016630180020958577312172790118587044215575891012640529630150928550792473959612230362990375408477946804869810650966030411062317013401489705357884492070534508527686684979201974713467368970005294531344021830956902449199942250285952464033547677318068270632050694924741428614023561592065481964775161232533943265383392252665464341222915496141483260857174086616440462877747283021075221088955178555041934505337735108309887154553117876540606526880821364212525403098290791734922978400662786752307071688472199529909116381171115246561290509130262563500256815530785667345681105429898074496629964093416367316453950012013608681987667132325945604501193947682295254638343376889957895311364341249876356303809900425767131782847561515135049287298879439268373282674997983904300804218962309109185762153744785844348813506642084705994536011293504030735073991943483134911188058032643626685579486597483927072283779105564425409205494677674792867318592498155313211348891649296652445091686817057181204440888385994748302760566151498005365007163750029534787924929209227151491106662570727159361462680323524410082615231866050699144466974909548778705238593218607559990164685010229983559310730217913163088446445161888027789119989837356588797075900199154836464033534227799053933537643500435140847872961446638929495682834069937008056792198559662272200425645564448267334948604121522525993476144550564918955226799782185966319919667456887525364602216695144645191517585619729672401592313125363750916948651040807095292308762415161447087974113364481171856752374071192889227397837762100594549502386512078486762969654724983344580327386344208502606338059593514070267871601304611840324910771550702644469769157005991812361563790535802007719942912225147103309005113059708297982019943133669423450002920150409635012508986216654912124368191424969816109533438971569201797114901876015885847915418965512302305730562488095290256608459932654924751306536908537994768469985138051396411994113436225022060408245787232353435003148013107134491980922750728449035193011997912719948534697005964147480072124052943973567515352444921786085187023182569021956538116085548991138114106904581012301452141007079691554908289223715617374279815336690220879259817133652269802687035254919422912759631031203147728975114825359855312241144911857907169905081323913701048579021041809492804053528417446765652546203963720080630498965603077307290082572722558645669692878413200514049894946948409539163685147983701700190497740543766147950175611078031406403457569579843226796189883449522095667121204163372011393698020896288147365927085011047776534708249636615371374495674662486770286560110531276893700187021702605531241726561448260663816476885847162593005635382361599123265438950754876642992210751002423973600353197074813332008771433512704723938257234708533193668141878421881442197176135660170376172616139104855021709364482988681615548030079918794628668732887907893511443228882912967236672188286088809687011438734775007756433909808896048726216634163233219710626428012388782037271017984626811686825761056487913802659952824161773056061619413427857930819450973941529896629972771853217119665572007353031329709736477086404510264125101052131954880294789576779134449364358904897720649682543460129719375047298764929893367215814487937518004149997231199425598256046761895773834417361195606357488693466447502739985194275744543580380056540502411826443861002192658052120966149426609056175793471392425882834946606430171594917944543403698686013272135039543671317420264896759812887331000800574840334048160577195016208976139042486387507554102251085229206457263376913852652551917017118219518395724147183001275486200519365264626521289656157728945031277122073021255295530463328230023468577960917283745940870149076369728008810209337899152592320694379612527049184169364710240216157346833393719707162471442340901791769785926449606638840785302230658744042681896157470090699003257450956868068969871703405360297542482584611296437010119322186273152072583522135801473012065478981195371535485292903466440170171470708938560354650897955132648554119462808372202550024716937629901181523101333209439969132427170628934636486179389014219759531902030654688923668637803554273782228790299922201701152653907876844128667495251041014168978427195248473178044030657824654125322202927101534978343158760349480410516860522474101257949736184580350358612296301314914249260094488063171832315912693457187072291026393186079515196545323252355103216714498905800220754398132999939420004422681262489125144516104764534722789503214488528594530408886249567278366942657316949453984073592530653608703563863952387259032435209594365756428475454536104003877050562195074281845147408984924787052993371446114100160688576210003960238668822548881737238685759365675456873927589894992809482342710298091983523360609865381575979079126717912363263501706521432543637898395711103670889852106483796624339081374847786843798432084294373467631436069273608636414038130131568682595882298135955668168808030547052165048713922911818227320507709729506471074044505685910313382076768908397101182212230471450196008904262069504463371205496785301856133585677604010839837851896067216389141172765416658616564087822853142133286587329189943650084084221459701627469210571253964309925659237877038188332180668878474099489084971904805981052164374147094708416146436287856204451748418425654474587560102889926925338196498174737852152600208990448724145670975705198222850545959696314016291434390125662990118999501273503948559289497595488524240574123107839569071998421637368090860474047250396691741704282397611163541806232582744708188389374991441418070591864836088181049721484423625973646863858144375678499573613443813039823662083574466245841786157417034473884369960506811893517475235235250062333592466330704785794671738705230931008754843286235188138579257859462657992055263308281592975079060751535461080816886667045222486488243731130011794249576751537808601333406809526396458540155568281801316361086857703556394291077344619426346020653053404392027910958504516513670782445658915665925595593471019747806287178542985353411763765144443489899391291318498137200373892824176797747080279163374380280461229893972452374103441099809051346362810307885654410755101807967999953901781454789313551517709290771351816149594773028613374764324830328643024202651481155559149289691530527769218014393248902830708468236501568136575399340363429596504945687254461670696633590421677295595189565967076252743987138587403601498597236082369496900506101067532534494416535624087297833077524920473338563017680085123443602689575906899734008142555426802563268106158873411221660189616695911231700029061300539913905038797393631516032578725498449068855548006872236274988392311795608203724237821815965682216010631624874922167534830714732503183947981857779625644842880295019626838986464125510843043047280326401226802136438089453228440082757005604370803765541973890879353634612838808572320150315316189131399242972865762426307045287559841020232101829839838934894997247841170288622427153807815715265403353447758809262371018573813128386892986794319191074236120168947332856523098905883744679076161025817854388970086191761252758424172292107941963322897593270345591937385261362353635257377273078892678986456739041908002447142266265470833234308532361447299171783461886099729616543067246087187488802652428787467258514734094581346010234255108065020347425877493163051309118417496234891753705236399649704006006932256114719222803264573867101050600946568137703951528851868270092786529937636322183477309634737508277690487479626148532250772234155281964563031011281464819514043602734019182483457778502347875986524405499639494306171328285472473504081960743203518972767905743894974511078034663643283036285482999742537918985773846914254026754316845283160971451028094646761800703348505500983494771380026178587630363516531997761708448174067049343955735611604185749645945757661365626010531276966439931956982970131904282948882390222191679206159312438962461837285484675773785347891005782077499472864998940288634170046113638465880255794843517581490093679638859916699825107801882157742541135990365925255490353926657681864030493068409831614318697920899308959985642986120798458107724954236384441637474314454493921251217210337124583721415605182992382335617028056014004278293586010569848625690776049724756387506288438689722768921258620352619859412477698191728241511416720314511013623918161402353480222021137519439600533277638365984518466697747703426839140963433504075906297354331792573075455417493666603793258260241947893783832982753468103046304094497083701953856535807317325112003734998575436746608008715300429377859868297414375109583846147484170947344075167242876223594314288302996154135342970971177161029538943822657253677255642506804311250622393100508619896667396052254317173405678542831699943040447668681307007589669678275645094597960214744008434394044324832434168833479841224327707002955201663716352608581913923203155215502515781306470146523388916289542794128102533031299179403243028428674688779190394960906686171552559400911441501351435931994598228082843939452047036061106911876503032445709918763474970249607524897970958208922536124128783674163593717458491367751661673260608283017694278218672052200416189399616670693205837884813026752231250926934376273115122238944580269054755430839940183460382404953164462665069447775786820884932614193327414284966833468000931082053502453047838980186631425723938970950703738017690951816802844198430025272765917382246587177797147244918475209307712813853223214022272758191072627546030623330294367484420317126609636920467251399135976628633895279173681352015818611108669866568563239844973409806196190437583309675068201631113993815835881814299253694504713798094020319097751191380674416899212445344420100925028569457406004363187601324508107485315972946712607093657492801910325767288217649030035019008682053365008944128542731971074924992206170154287083605873896148451666658466822199130093582629987429718247166330302777833523474502190926258014806697021852477530697481097592140140556450040311243305326985291741273418613720366642209508416254117339422994850970327619451667256300877437482024837490756361186767177486166085402959053843563004976629058574192507064367316528992548118218893984152099863675685832016016976600218972585923803229246815156524826078228547258780711143261316943824488337909861105201797292143490292217134706973829041412366640344045303185480135272798858949827793962814993202193438881817578137125721063431380307653473430800974134291247794914493245953193568129083321146436398558562550493999639117200333795183488517739109786722000311591422993025734080724190827156037305472305519814798878148047676767880487983731321144868255227630111656270476724505993333746170238524112303510357681257565226519919572311219453778097016245221683828673000434053093415278453371868417388695130120033282384397084727062347475899398617277512713060776477277881025623450844970469512751358863114192382901980914008124321306564290074970220353115474140981742848044419216959836243004150359829325205438252408157353636819546796940619558708175566486728617166631796237004019647713536499082555938457563804682652330498660975692850027039772698913220757343580940687928145776269954443483945697037299488407633179819814868483727369653619349205541504830187854904490442975363715841247437331858759411308218938595187589087325838936002973208942026117518681681398328383829182390051295993593281301860053031296072103792058150822763167131582371183716069044872639058325921364012588311711622721545251340189246803677683366133750105740047178986022588463290223971035475942826447607473970570115082917831016456086949000057545220059118225863548257863152609416539496121660632616237620984521801639599170712105742853276432316129886262213338954136652212808021241350578759214756557039085938933979744096394510111605350882628657967165985828810451142498453112821077442283770632488381992084455625410697222688038536337024291470696604523650026848370847685995870487255111589239275159556893525614052897900682255879644403586187164007794098078086981507470988390396745675178597251342207848947877730839485756935422636510438361542478173928612324612395394942342208142258017073688656628726851711485661575417485815159952818733662523461115374166600987010193222837776144485120223052841877467605659003562634352599880548742098590424457447750583397984482053963865848266789063038357295569419782946144123416814143602127848137920408706534221455617308995865110557811966606852572147155454246930788500205223863452735479226365615767085743989428443638056362156909310260312605597052560424680836974791311167855459363133854116684297401503004535675059584620264593515262379460876485721257884557476771834590027591451785663673374596425006880347845202486157369832540769153955161042549281954853285648034643699560601885534061572803399703698492559395618296622261415434452386317386901280162456523056487748252131932650285840267515057485305760811384032457285252220814042765827983990712799752651413288500551752751431936369787031609173027677322070572136825047604972138767271543991965880707703281566232145709538604702125717200721804104507792036440587773730713863316553640284420986007777733809111213854597550931176977628632437622115180446383747433903021382174361870304224436053151194448198386388112684342112621008241088481264709250307620827678897530022695851619014107753507029936182757949644255646025606573561733271173953253451202336077030537355932099615994690187671629211754984971448842753105254870479244389873995349831534385864966712802161248711276174037284257683589228963336091972638539460805573519220446596785686515795139905374075871837817630602365602985411841616365349510878318244834973632208192263569657510213607517351796036444856503477806957170000494707810004859057929292826871547442821170871776979379792400722231998151052797155187891630386806366538823730511379519375289712811187406222738676750498239559293548375181902128736116397218603817413456402828824138879907744881262858124673394442995870388710508241240264729685895364874116689731041696079943721923923017857662076542459146821982379585284022892005486933680796874062720380969986585436548792323296798310206065788814759323580835266708123331589065237997850140299844877578297765495420074966728891760746931954872445392076848580148791428246494509468818394942332335615475712393274671194065873807781266918999744381030718864235138323171816959904051433438213648534787606825049796715498978320342296782629482916340195151610555913380712774172940595785218889540932207880884946579571135080465646482216282603570077812426474306330581375995484746423914167613969374847754036181412745517138259397791311804352217674982238629553321646720006604587723558279720966426264763078330119380855103129572461500598897202272540587576887128753511957003699261940370837528777064484203305305464030388476347480840223039609375749224835728904942700779127139925173046463430032178438582400464059156885480191578936313367484424624005843671459390136111937647503268734426934176575977137106828184418726071975117778786709857981067556643497975821378208741756830139344933172569605272746590085657166402609479502671426358347107519494796205322184260437124806903450016786572077439761506632307693657789359970569070344973312008962531985275697397086654908441308553326181822166978724719965190271913436212524441735921987351324985039337873752876207958290454798509211303685561059138258167154998550131460734883669593533642239686658006421990914371502300567041929229362669651782727003217896264658759386073766463656355533388675538168296450714082313847016104693152533216904865154674589406080261256016586462860713054905191840695958103436533619887065807977557830153654397358730385205747955590637685272255810428693015126613257391985873989766421571384063152583894519249089668888222352962483616807440626549363764330843219721539409581652663432134413512373011479278111586549475389554250895665365181996357344403101514829508204313636192227350609559292866663352541044438710412019876488657544727738575864534533506917495217507986634764965964782035807636368364218147151956279576500539625455801673162824488486247922947363033733353071339764388587649667026681394347804492349973493477929818530042911073218739239261825231642381486350173063463837587692913995450330480837509825657299272646473324880001356259184693339835549713132407215425742800560891502401005263995781609731048307973308804416125732348109603601954708616441185564102684671277182732698535308502464412027968252414293520666886869804807416948563428009583735155367689867375097212899040476696789819808817192393730126553672539273724954373904039762704307144986908169598504854134415213708849229173784107896273947111759316145723265815438443492749414349509742545589864794507868862001493967987096447820230956904207880415471389081053936894847582149502870833035597781481470882227578526873255382515622096875117369481363823439444777064930165828510020551901674050406270568176438583991559157889581397862847385660241460748868811851194700217802550645573278589536908397713646583421315907409876247729000085330605472462052366344797841696423528541515408027335023194304070244486985706009715989680100032727901442680514150472503198540732808247598249202141440125583244747603272457334606709409861420013375003440143452309716920155735246522028157591893025625820759861887867291189798017168880691081193461106125656551767031352870879711147372964774587762115431971157313878554868636525985221218441246974261253384082118650215002654011128742403503102630988949944448267244480355189037844481591740854953386314552178133779088417857802402186087969589273599283226762491818470271766033556293143335396383327490319782946827502384942589897304051801117834117319141802515285188603765335354513975860863423274028853455318173787646267898869771250672208081793942942882118231695266659719211288976539662015559309015829687192819776048771749686143048410743237235690808705764338568160361233482645794034204071245016334585441395874773147491962715283201621516072634742933485858579656479077067062876578914596965126974772094362593656830450872901162817752039893084486587170542357756550462744186486810883122349534679090206209236288177029940120575162437830168239315572147057636191339456924492062231191176463301262082657273862471296721869691688552025094043268527811243445053137819642222993634518245220069185234061244551104382285331737852089816479361900232950787365694288215693389110053157899449722806842022461816182574224531004643884994606820723993179966940818680903100312441198999609051898313195495066489272004832791978304367433792990067574988283395309705011235917089666747899882632074363153462706510762987751237399695774054854874502000866838976994030480732598856728689371158733419366828296966882734716100238263577538810717739119229990861400395919726932096686397901914260033640143986241571414532570563643577175280689173737314930983596817684983276271826712083939646099333913860160216104375759979598493451561774706712613794834181105845225587525117519108506842579422380869165753628304960421863225501457798911896309879805627500280706976296888700762593401154672378411855159940895498053259464609736760672129361077505039110366565158351414957966090997475344059712920758668267401042851804862122778232193880984572446153675924475974166985967329701766660139751742454548893292643105054047015830513890322306663215050616062425323535439593007067168107679564788728015516621063357509279310433002733335342934923303509116185980095553850886793588594775821934510044700547679484983799033121474523779313672798390363591809463495104163242284112200942918078640096956230299606939206615207257226057973862094171194028721380538848048585782290184615039733759645752489813346045235032258486307917661641911803383405708819025985226794163846686210526526541274551874715151682911356171294159975426233166248098920830450446828414035920875029434366729024575801338874365758556516991568119625845896882030529254338162373461272247256538882692588494539969113883373463373325911117355195924335049416662318016416539904714946128263498607096667564823543961466012559448335448073040286569208333203568050564107630718543696075740043434169909905495292986687398862690621010535542491238970676318811352578927014604093563013452241804850487443364689573506855955394942469220581739578698272766663191787066453133223574128103484769633226512039559927267019461060067912270503266009435703973074527339890655730381260669160569059663369155045219680859662884636648860472643407094882575891771842030546575602100247264923321279166610519441945663225124798831037381214644745293483985510682938167141025025613427101451312212710328401203610737882756094567862037588821036803459610034909590152096192575215725391529489781474639457735535985397846860472760303916439841265240917617266786977361731799812018867978599801295993442053933414291266571932081361255392946999424171756415387034799695338793579021524999166557430933275121757919109868580102672541763296236961342942790448062536897933594603876958217017952156700695122266752971410391695035968506875385082813537076311524067062461431139137637436274886873691654176355900998266357702955120556170576202770042445540507210150562497677503239488935477758309465325648579880859956626072049493256311199931298681068049459592571307743586036218579211280005897905250072310468812057241722142462800983395745608703862408154424074348286241492363089475080517259145884677500635982550773316688916459072741989856557008233711169557879575972069875116756688289183428760189816238884905008290266339979835964116757545901473186357312016635036785925327661823846273681288112873600548299054974456634595621911944807663423442879492545779531821372295574245254817231734210374289462794923635026873618915680149394807126758318305104068644840020610927179405704658905276338915727946262781198456619540571209021449406458069257973129078052715850619165330312781703128301403389649645419920378790008292133029296704588013718979811326017522338269724909247892588795422331428173324941063511920834270623884217807267538178022184723686299849892767948903099217045633488294761073187124705793978975352455842544021085410548776005177985744092309101629922145929179016359045290249010341601979073159946691807054553255170977207102633799893930744846863792917505446467041592607265270072589235427840289030572910811761993323647539073620335111011418158638750648876620946345333373303096962930496069757276088142815532458756489718358136585705763759096736013493170686808539616214166113024695702010463301520880146778745911644433325981098253218043477483436299842757525066862487521387129928140796796839710232509731722626360309327972135470931433051913866666096734564972858366942313803580374858018528681727471596784809465106347520678238378701430976734764329815531664719555924983559693423447021211988184196108305099173399966116081417376833511092400553199667658258163119850829202365374363843318867106169928282225638429850058742401757627438263282413877122650120555835612231045755640796795676433784539100476276026233555151850471217339267520037478149269158103954760034466979212233152726145251954451524447918747020331817138996662939013595896714192417572061084540146937090106563412886869240448781379893876769396327863683296725605393288676206769628068428849558119446959868186119191210665391178082558157851984744539864604767983224875379852044152956777117657655660213748643192486292736367109101088409213319724979102684292516219135991227983111368404631988987542612437466302067084076647967383595208285741775883362666231331346281050851484745045018969232216977721601538259116072754495732891408808634952471399993809209983269238587742397616129789294387188621682331253040638088417041487389248818940243525322572106143658701534447436370474510917174635782719393578014876059882081345195848373083222872435459455158779985052447272228010263562436585168120522633545444188945203128496857380879138816078715446736683154021985349289563378865666534857303110784791671145137227039974264552382690161464672617949522877402417183297109589824458267100900658269084617815615507987830629780802799327280963843092486465684203412879772477725221473268216238764031092794735301564380822536456443760918725047928092206351967883127778173741447500179286585992416790930721102530633635881929929257343260745626590723597747279153549905937823686744904002610351487326825434574421449989948606322159648935665767216480626820537594828472545540982798342733475113322291358561926792452816267515859685024186336302965410373755658886392586353661509526767369136788373853568996303867209513819144531221509549479515814575766635995233848774274596561572019686258911060222357587824495693476414531951344792907006479045206261164514642231924345386696149876245473619535639915367853622005771657964579862411104750386211047302809669770071453593491549317205929340558687528185257013980862589558158667720458799956982809976384045598502588790454917406385409748147402838386373187388237870166407819362257699406771840426516559286386468593144068958073376960282598262097020175798309543014472847617447714303331968959848520975878875891380915568276487625270900337473677743554219339690315526189439937838382015958872455696989693173400899022314138441137923480285221523075639365424109171429516014419104675054203744179228466293653773665923582920661083534393629071920650650952255940109995144096452943641526460309404597008852553914388131147540943937954722078418488941165705755562013255540624744669650729836459149439923614757292666044737460716312527125738833258421016193149035362890478757429862264724638192803853543393405085550552850892581314210427611692133360139805718901543511390816115835201823642517990705915934954059427844404885777202600208603166528535873261468442435380538768169245711629147064031466785707761890324352445209431285963572782657160431385620688414001691238091062598969198347443936305552153560751162210890604248408144972567211552635192986172030742067512918451250774886022471192351984034071368445008384487568025337714528430926316575025792418416144456049997430282453171386667867876070941741789161194606893056838460825654849392316062011224245826890449490128606177424675997860859107617465623074812015940546942317334770389959719688886068725520725393153180548653210784147639643297651593086258733298709375353472366061713032519052920873923039590440251902180341768206792229042034825637011289966820968164452615079016964367132318169242528390723146339547985614770782717936014219967069618011332102682216388464281627999918560450598950603295723910302791532836897267648105361104845749278773923692600598815493234031687865364183004845118145098736346846017349805074194975029195882415886978377687858589775057435083297069103890947363549615008287166027316563724082708109263222779024861713033263707764858685097264703919215686638847133661874442085035515527370134982220611459361989011012461194566819644250350896155050742561915101705559959013065954218140698160502907120297990117265216344334043623225965539010102238557058251040413756222861564729729343343347066593171095570058466646594705942742728471174851126151444849737705365732555741637817331668818990161048553566824617760236943369929076400185326497984412305098505912409747557329722986851701802650553946465302509675323815951244230154924340851564654906272847798833199114447317839180407313122542536302526325030008187661037674717907670547532993948670651743690644150900193361200850263262262970942328082062108226331138228196885273162848701574946981266934858844117523608181074997930906811895129356844640663565159843962245202332115710494583736285109482822993966606237933907379081842556018802039759396595684025316299443834169840232627074912221230192278692120880215080285658008413501332913646449941996682519173717681213832967766959192964387120500574657263869519640610526366381245357243683164677730674978880055971278544542900865837155730960012919677739413203308309950379960027200546698913891445612124405528510815135854177371040870234379576652856603320612961917404171580542722968118817661527023502400881520438130614521794500223069292994597305739436217468145158354826599711085245438380495369411452034904611768113069505102200282977511565167238963203209679205417578414899371417679520989699055083566770023364172120100075472448869788458570117783455848691517362245485444961409199500421546683143845045600171803709816612937056527991860986351258783075012128170512040859668228668572408044790356259141474222772153208999348536458570355973189756457787073613922810511468285953371302256439272518970030045770216305714006913991963291658663612957216425995891041231272513150406550650968628184096692882585434076886087991531598696771170227504589595604426402979349385685875508781664035714047858888869840995913195477549004753327302000704249891431743253952755259842709050444102371037430090810686746105495564100686660437688251279062748745035031447378208551093940121959181356542025583225198522593442184441084007004421997692709389531162912244573879917535055526709029026960023921805815386773830883276817034798128594142862805338133315290756459410558738215672725408716935348686096169639450943644063569702621443428630994611401377996436888807514092182647975282217553683785328592758110518075907421363644860559184791972122476605237631531806011552093541447606565624346007690268243574175867556461132507316958719475793610865268588071451909026233574199772515713121992458497595057501208081737935158293967673005662096251688913340348763824825075006516786291315689532821408078802040964314414463807798687984132055971039825248377441590362781480016560988798247646627339661331561863644334634877855213376496789434681693278296186801802269271733600700820192831586239465787919495790678163473113387365115808706029731494468324214742667065066790587559680248640144513956763760114860853750846038775726100458743164053008708818054457098413020992389412488078362669587117484284572305428506338641121031680487374693253321558194094121107751122502263295722301506395588780128633054581505110529178889615865611316315819061859378328797960846107707434090720139181041171712032319769080451688697810585678336737837243821524445642427712075928132327375584441930396452050964073254102308087674393478669286549574617316499549084117876696216008784187640380089023358778107590889942683875147089293418983406310214721871804631159713336070965635388274467479916362311429791837764104322137793336961588835462403492227952617024613906191502149616736776676067701930644611184779329439464384353507368799731183748863365531828130978445031307318797317637500460731031983144170768529452150161157282716322861781902747017979615333294784332965489735875141884118032230816100272135566172810485417745308421469539360135175043982689036288293733717567657668337267185444444582368927124703193272190504854669960860800816296391404293890537563974639533249226512820489820232250152847125815205072101706409166438736482714181081408606882271800269041282624770321699570672613393821567984037388766642959075328897080446681572391347999791269292583569685642446508122227908129524759186076120822857802682590259204563097890112689091966770212643292734356086014260233434041847537869181086058565647345376670369121469364705567758937495965078126932398727987351690984314080411037679589460430362051171714012475584034264401655200896269708222633639724317449992761934050602473114884944430479933363786324536435395191236341988083283908418880911315923027706283963135991261603425898038556070443758801872981272207922832319426248564049831807522753077320304806033022535883190364777100834515506029541767300349702337081152893945738042003126624179416956580853509520008933117401627862265215163418322861983079951506220466582789599803700570720131578427177279673473241839015121807617281839475209177428965020998341860813868974766774301353390174534800249146249146271975716979568098561584293565704214322993544821858226408891256296554606661371817128545587693009852389509752479732892246410975654787416045149295742952105769693062240132719297501225199969981265516745750100310333574722588692366369647981810267408507205040329987142284333215976364856921490086060280159504600199854421539267780866033799155619608456044160837567341499203634005347931550318060838891785667446112547832757863235007393779188075152591206864512360296127842009061772144194854785051089230896565118425363212948762728809999572819333942820030642223281137261318784770131064696627583266627062667385953034722532887731027706126809566965637366667385420385696273340437445198170900650014171505110002317465287206397694426536282291077048899027622931053163040657858782179124808129194385289234942340034050358994290984655600743319554668466102340675264455799611592168227434268910607310987636093320758835721771825679994973989599160236835432017388341387998454786081795191488748261402983549683525574174083351185171977679356356359867534804307670870535298153754334042316930182943539313842533679137078876603463578154195484984921053644892515847545921364901825011698144306488100717182539854172163665361058203674993609731375057376903560604863465142453932948669129323479311653219864741286354890192620251710005998124917312920890008408307854012741160935190686599581287277502347663933149304959088333591808195113772984620403673537823147524188148468790882145089995092387034597951476618608660861778396350606493952609907817182023971870926671950603859631311502070913234963371939684734349208715256780901932394109459116739317857863059742940312468347486018243297906107084834244997846621342758626697642364464046842937039495258751241707577001457221978683733069759080279684597037890764036368818183013144116914485130657674171607073705856263354977061595757071300933299689524473127780290621828547607599032956652267537496606271789794514968376703064667572852401509032125410951316697750261070262880591059549342725835307353411744249231339227700839342114171976220564079914377796009296386012184249591583516436131606601490832856574482035731711057363933326165721014186139174916889298132160401201809563773118720750019668133343832679988118771387984590118562321732580437924701760216001380477526553913310659592447359771545056949520205497303386138769024044400823697150827188952938049185679575300891370762868332317042683099542850306231463291627739173567839523577014316704699978537943025406211560454912810532853772204980608643531496521805272554184205407975934593697052191378394052611619177719874777978498742073601109403766599681274310980888562965581236576310832824524355514380622039207643906888361588967082803548016344338577872710220536233235627452780882010287759180303383878780902443052874360430493566034293822603222349444816094964853698468086218011533904830440600297999766819137250343664121799490116073245903968177870981937889487931015430543387967328371552428778690417060394635191923881939812125875089994349191498443509971056078891278073159829114866353345919869217363161860198991682678293120137985278496967061223701563320014623914222381939577408083896132252373049467254488427551828161864965654774903557200613810214275070946148046132233017353355944581110852720452063410316048540439511344824256062765322163995444042853745236499726318380288956377045283721827183783728188086243952987348314021589589202794831044637717140953166321666546691924699553845899971273715098142944225058535981218194265133051784364052631718406510345522474632447931928369961430227462881619049802659410732362091198299681432721279240063636440699213715117373000789556860833730759347224725985319048070848061403849458278815008227761245162159910039756341553383153837396443463314001920594692561701199452104755396604454280503383136054115618386396657852073989365599933480747058215281589186275019342964466617072395700380651117467311777956867300737802998346351915351182367053860008938009416506211979426557872782896295528079925724265917191187051270030000035068417987463980105035682994286140019585838270876683040870229769596549331968246915154393330445406547345302214300407549497897379381648210340602654399460129452631080608381793822313228614947444510728515683855626774966177945427750370234665666211893758556196817666720143316102783283005313531892556532842712688970950384728900610474377704959163151349028100436873647675471094994394626570123856409953525883041242127683364929411051909022306628550768062459953220043893161422920904285246466108950712684572483653932661027900286526994208788291028867287552809891637004653189060074763335973353705332220785558641852388419387055245636557709220346267349074865059278628933843403501151126212285382010775409539035853425984257718924442969603024805676501700600094488323883336248350006723166343671437000571951068862136326247760470871410306045852642771221028752418062309089519509274390674864461235434153106670101168222934740409007976616000880100500420165631192548586652476552386558706598945682254567458546640858584992914021764206025279855999805831917741265243888673012441412349597750331552990050163788590441293377485872013395024087520425616235042822690232800584499031318424106515323589419133494357151403167474062489520127772028047084124980478172305737995003154706655946383559335405601525622003485756001240910317562037380094869259253287367721333842843006746698340274132058230125670278502516363853348369625736086342204354548088670533496715243318826075594646689107094916891872800970198890242358185942069670809014852167792055122323339041073821563498922462181364197087060786713740468733239558697572161131548300979834408328772611617359267040934440942885495662516263545291398194760855250318376270890563211268710678617752392972329811244235844431423653284516434443068772286877044458892849156226041923487322380380662440033888103895436085694695624179560897708533655109433745560703125946416747594178178208421320667113839978900384101586186362136319688788614217998113618695941904534969490977184403579262781056035416198767362677596522496328335575117167695270102048011693668637099207398182726506980105354589742466175625938040371969886911135787635036326971684624730416889512130928935001690058880738388672000827554509216405425460173348306645683754735132420636918319301640577480421435529786883220904762272046313714355380607311271249832509559730618206188751509743624532043270197749189057749259482363628925067049738913151995588166986998246039377402182116249825975045767376555686340945855945916965915208666305878874077322471387086708853986479953984573090237452558128073432546719558197926720839648507972321261486074948242307536334362394685689241327040713291818361246436522286189197342657089448158228571765588471655835148828629785434488383478483204414456238368317469869705672481401072896886714489361549447447471969707765355395917954236884029233972083985231362955906268277354900799755771434199037794341498105262677663050069751724516639538654660587416579530800260216477152201460196753394510812475053446268884226490100284559893567458176554990028035681064599840950588403385997745250138371689311356918909672131953400873844932238482736731781726722689694317468934626426567338777039157311460961602888373412788522711794499641408340835518621569817936818447243799846547911924983579974070835570879402820402150909944682880240243387827173941468190997404305621772963546486544337689662683886064147273135269196519738810029104901140917239199861474275232056493757359956182851543674603713833399389776304812681808901567727698745750952817041455851922683849096105527974857760009284350034164121979645322054563942575931982403398565168116230874637260126250959286313939985639288156652238515142065477482166104378670184909241916978254882431807842253031403243788725045429389341833787477357204913713710455010661841197907114130535762877468050160604648354615322841721602937736099313233957499244148614088546781349443159646922779925707239300295828967656803476557239868241356602825640200255073475832252451814576398477718382922577018917047496291200730633349320019958585558504613419660749504564029499097171621919853705862113362790089149962225359976179881672723578729846153806974805820395687709406337947405315683274003466136115598334106921385469190739552382731434346676608824292948654595687846603981995545669796477776795798516901911027195164497463766483277965744462343640736090170950472544488315318859494148681690032415091970969657016587804386856290472161073043335325238440777886140585702102568982816884825119448612854992513040697808778450365965226928171259235700690028271018840311720147707504328971891373360289854041875519324755753822962724610498767168501791755268755277951642919493653308986235318594716976003495737113250412992972214380780636864233129368422721861592244488132879559052778424601434904939483396608265162459151420671997113986605945832498318951201653021196398462406962718215900984157912339168176192403975881131196866140431868287218569613259995911219735543705059437885140188900583271855654438336936863885506104310499528696230209196941537186634833526436415203617002996938669101593343637155560447590080659475945080968826524267498290080649009615597080847758134758534050093672463265046939458342927965964551660578108296113908861608157493011083135538943548071676742316732265102083589682837069623722553480214968655525432273694245610188160909074139134980108463421104658633473493270319787226851890016586565785887427282675794015704178855065648735177383724783024580475298871298266257558818002759427713897793145175642091864062288929256185812954506029167383658687385910251335450675799169515249763318936039227788388627552078595419918180887800730691616939594923163356671507150537954485273712062771387539826890977342974509136876848836448643869051208841760694663782622993345210830811305136764760381964830603549849848804408077167534680711313788235712644928425008610460554681153161903361156332348738451369600361574936222978952396580453752574567141123814671493472234168561288151082755072394349652621990036843843018122967139959384778544784155981035686876305960880596792735688054511482176557078614357241968933060020270254315732164582984635458102515731508122537574827785390004440485230170771843802640152528836663326836975440940303054090289248757674391222104280204338812597780250412039735587009768722391577620513850884507306788943546993243706961080776020330585518452659390644630082417920267692996655632293482774275950043451113449620924917465779231554092746768168898583029276815859812248961542591881390844096010342662922101433807922350269705202244239059916490606628542637931655136172472123170870983270567425336660379058569382559391092033319608580885702287603656187603797483561011700300495264859525392991585338135252152119001880547208383030772509922542134964932634213887305838311004574131974474724947345597436357167321505535710453417577722582841881020959870349759794359841094923570062782386364146220369560196906878042030227948812473148211594603433915469405015448543868299987812241572232561406340533222348382830152357252051167127262690383520245593692198338709286199569395513162192560556260329978008023165226283930889264809768359912363216099841396483683982620734840255874835627768330121071851645821944598233863041209007570566439546869111887002824729513119964558826867688823172678656320377410504551523903595334702280981253592917039981691918512660771045951361267655769095053748030371167822311423160145915525941565616427255817676299037773340036142997608359202890490044507422086312289851323044611639796711647541241182630028564712244275887197912220094393446684130091179630854557373738212819409603324607561237039459643166977098431642127272738744165896378315638909412029998138663684661242902759371811743020419848133133153551601180664307648464104942794780762489511345380499158260280618805797681789428478431763880408974137109557210223707419761541680434784294600775234156275189939403362880235962355392084407285047417866659376695715549796065492854454987845501421737818968123696546674648413630460741812014667741124831215258592824089506170016079386311354424236195998239916117428071384387980687494869510967207219951217808601839186564472588854338142288673724406244068293674898395757305651378429386923393710835231984585402516946853279460396794754812858242904935068936328528118999887578439125941907450989096560833528408207945191920533296541312569893756031086635435681228330915270114482592537524222195836472788730636278053220857252646313035361902648355151592389600549364630861115170760446068336344147360739343102033318092556479746282668267803570554152601099255750509817706952795365231747954053882813108777467607226674222971862654010202223209384811737438367768839502060467141653544486500974970635831881607000886497039537705715567661429283958633427874057124170367501276510346218617709761789895476403159385076935551528363654264846530497767381814929976149455364695981736960345825701107725502319677231736941050273874713038984661336871595870010694263867320194589782109965321570143901407830091092624297084816528364555435701851690783594054825625313955418390779437028419154894213837715132169640752977272438788206109629337927237071063903105173726488009040578247919897225245734337783262834248323848603849753561588743212783687772078854401704923310356259196828353307168064815497945589658873086655650406190791997689708478721890256099733832166148643833361014754267191222421692717149781376993016086591408085399488809895217113382400299322549249612956230167734950127745699239395196434077751313399291363700985131649491870806159889576847083249519300880531411078697531757319159779466293387655108477828751989334050888247064747957379262575004830846328533106482511983333130772390368942520590507648245485722957859419129292565796426383577607730472516710184400310261609884320890616901635567684248620372381465684580581296249157162905630666294158988098756854500663857966148407487129773458291337342113325776392797277224827283682547474949455641759193920542946776779233211961267356432354804188092094413975971899109606793070924438961624370024659339188464285885912262085920236940222713359182570432492593647642533184751602107334804215515054074742686629952076014063906560282167555110126341546138407918979446467280284951485775703190029470903395898488122673073157620038317129997753728091306532143373096164793037917908767372683344921824525941993568424723019794387151210860662458380630817964520666789062274645511310337800878746932242070266553019570841834190046949802258034018957939054825628634852441083027492860028943314836750181036306979685872930590920003185853794459533668955258956931376709307964739678528305521386075576516567189699615666107061486870567386954998691220557596366629813476490055977613166817961482932081102539252368948146144297635898511736070842283008151048381940054435401656286271094146542962005572331305506484226055263116580483729954511314438380775923930696036364822496932952758636205949238711404809605037381608543487407085320754675385585421725336635770813122105280324164353678100669870898639179031167388507436829209850526261449934797678769946849974963266515633627664356552686651932044240473255573062978912541285918020641342823399987493191278275762524397408847485400358013995980458126446896380807937509370696929992272676341654886383904711183409541885065818610313867342631089526845585842678843405304951316465950357864190956758632716255431279068813468441268799074396250844893827421711301692472480969022104070434806830872685521495619598575392343843530763060848639983234834099291561635055326195803523361411769474189604491815669476251817275252726302079387106071194251862702840049478601028438153491769221210869187852263269161379983728095279634433164451281235775574370332421100101791897769991511901202500004139868656461067313340042801674929179356411198798258644322414633380839717462214791115953763029857154543693816376808245425344412482304011760990795048601157312071311210071555377152631200362992993360856549115526534458661194259980106813485518757978470116406296339112842192043097543918248585510015658200689690894729245637895053841466589589928094165458006408172230570819375049866812620032301333858982599469374316027030477458326708625385312457910021673227825783954529574489268006449881759999537995662045110941018043514624573072259285771539159353963928649053997593557751386748253887754640719341071289215147886411238935539212653402274389655701304323127448715713760637106657357316364682557209200854718015756768181027256920089450356099601984401532135100725802150920416605859108208103842648809623551247045166036470558756239723772802806798543679308221162617788994196083933455552661194359738053167779538009196064166536155997816556226273833903332170863749420242196624252945548159043802447135931893149247698819036913476781335108548127703194532256502525477769104486256355860790758116288808248143083111816893498682111584988885414612826757057321901772998515213731285650099937463655150451162616622419566612440252038561254324351217663872140929816340756450206433357697687988744266549556965192315437533745255586072123782208508052899409378511847588143211406116383294081677686645697314845274120508929606138606453143881013453942328710749948567034450591966686604999384571053939284981300577942672695677761049425073100902869477698733043454764860948858455369956231511194588478401247202782760587955282427414879593234109328117721095203211133063530893938825418439284449038710602053461800412219949775102019393175297108326402197332037729095693734393935483681334097576416288342824199126372930206491245949851461787642808382115814224771990906968518315635706729613542601132635071174621440325329781967382374489269891211849666655166032603874910462772540342894600452706341913211634816741358379625807988164268576926797793694829843693021461232972383818335617284531564270872675210016149060750267496901706144756534133686652419423240656302383296421756569806043013332508513044023600845069364624863100071723749353674748401949954712310686119838487493259242912471853462224703749252177185145755067111663367523141179568516564623748984932643483775458192668220232988347597697996850924473288168983504607807551290319606441022680438005541203378143325018698675657941653025686366990924251280664630333313536883510849880896688760622136297137869851900151782205229226209690852286431764428066438062523798483119098806259417997513900105122850751033545918315350452479793735539650913544742801722142412312221112718207632115003901878026361785263827908175008157271784672248843228668241983469382634239816922602316422772587818189150127787956744894888603607319513615917735778986139671705551503048895033416870127298850879371732556497069828383241422159031286277288396476573530378374401604281222536755733687257979312089805072821579373186745710256428123074315074622735934495356561539546527329086757505027955370910974291916520709879774863382907613382165151994381588122087380257620442613093014211233513228936071375664638797741389997777456281001929512534528827608066335098193491156337018114417760281153168583913894103663772857219771427021470577555610231901215907743506236513599634381099324962205070126079883380973552384151599622934391494188577549731752233594333551442401689080217499618580267057722930039153643621530270038428804702436935900804620702425238337187806056594431644576448599642784532156215621982586986022021983120321436998743071072083032960030024863864437615690890302962448980711880294431594214740693228006238602904817101174734344513269122222710499746805770710924585277064731461235627350052914737417891842778625772893759522206738737756007693162457551130119899986635409907642686249420722265332746510529927071462331956248498927927176690305706575299250577528009910055419883237737893792255773796845200269592761500219317099381850758148094783256982696575042063680321606900244549203328876623403600276075878305074039092303447145521186965672378324360100337819740523336723727617900759668318124974603023114441410001071045671466851031643137045120851683739806586211885314413605661596665164905196423836319240056577161762012768785295667430997762867013396710480662842445519848585036823999472372534985007196548554539312043838761291530763082167054580721548198282219270622233156410516502285471345994464871724217980946603886510778208722554009262901102128317556332731979814682416928563982095207663356937850402417138255423060806804094336345227318992582952720018487174902331357590029844845783771410120452835927365065306619230672014181703997152189265813446249822278669899408197541371834167755904477528618596997217568526530884157006736745183079982839765007360537883744008226246016285135130087880044197361589802782412667788044692878305593106142336958301290040642356142103973257861981879246939282088702143603993145157172100349500797014609964498516780603562650087698008825427966875248855281061171471061082736547469066576203695715290560656761842903428448324797214228160463877103160470363440031781636874656744840005761448898244654522772127740260724904771053181398572302109986350402383740163886987082274048055374298469192130004144699604001249734677969335181716978280201149693513777779550647830689471783952280294176437184095642291501964646104691802668422255441965595893988129498205469012568806751943957237572025392034206731033985801170456092310784585930229108990907447632161739641004622607415606203301441645257577343732699403758393428302665003702480033546614796829781126262258158909058356107216576315451413231034861654153143107895774021831748609805587580001591537401008604672985196329521488222201587741425353973121379642481787677677499762344539983693007856276681419466056912226371620913439777359062485690547997771949319237053269566596649964000395588951504102510266175159876099588709176983126375978089002625556943080404701175579365214901412076590532496535509151024969654846538766780681545292600567034058939581337719729750642801925161909256091983182471052937044727652064994086250743467789197621011494697860399897153273549597368964279783055918694449595441313780758086889962528008555122230130894945160833380231919799795820019876232704723923576330348886161662227191016597153517585854072031620696351602999598939917449701839322387596928951526221433232755026476630327158471874210499742066503360491717600022916447414701556022783363954603305863877849583774770967499529913258285916934390792156105473522977226088156105986981210567691478478193669834815097255232299559542022317313745956528061120613478110105998427904027025558442012309550343484898949472398115201838411640394706076536025054302872235946792907457437700199409847680834970003190387210590167953576737783667203346956696340700450653639917711147178456042518015672608886301745152603486037826561702777163426978197755929107087730596905096320158757932887635371689815915687585041281777109133116399479633304518905147629788995816964598220402052016466139578390102783180734088685516204088756079940245080563837663070036055383215687127388746022152930783973953063934569156510087096951543081812890986878991804728347520880165376274842848745756167633426951201743976304950898418231675269007910948017148633753698162882207972805024640021965189759945955343787690967789796208359166850981818703842275409510210323342065343615653381096189467925480605520987539572138778933791915967437589455849238875237562762042563486959210193387241407810742276820765994500268582947664615057645909823677943896404212480882094045060200418876964392453061908410232214395372252143669995817693785111753617947541670415506566384472573962504063738014193431844852433983709326141015783488255581722682051616938548629931883058431251468204447655992693809814293217162361930544739954381177850269498141307734711566342499235010167109017063896262751872385187844065295149668540800456455549187763110655587100321807085165607543387832395880939796696493962140473269059773296519848560770552780455486183464133863156709264678971673035397141481174426097779478793981853222832082388223280141377061137655958915191583612246026465381483358543249020995264465887638065475289989346305123137323764567083027361903030199207571751386411793521393669566097977137631619806449452038040390760808232876150436090332661035996785302647831790767088239117139023815474014580731289991978634886393349416675116547961835231736837027596424890226793085434016243501831087950662195631615222249516568263414876869420407380696339737564846193351119705184448502496016622552076367424877365192019576055218640842892983113765374330295773314681390297096575829815042573168182777085864731639289700490042217616979277218764477393094008565603126869197724452089592922285719928076765811793848688584610428664439024126160636395686906053866317663201339751461557811474306410442742430639468790903910444860700419994169653973989848815963926874372203782573334432237732466889132682865766600660059717930851495426040068750743126702774906182369601196022075683072246928887855022714659846222423002732430030724056404082162479578071846965994052387183210218293710652180552159030599984616513733054596999693463154284638987482531439424966470548695934278471965675695352589128093145628905059245459641878814320982579295816155435862100048367466640734844957791316714770923275689399997616476041706907272058828098265007948691624986404510383967971766662546632110503115277084611808857157706427534572069858242387950747647463125112035204373068869842864370278283429048747546434121073319276817229362147699207335818773774146734431538073112390471577622896784835935670535292055615035428810632886385512821983133371530242357439953919984230080025381491816555912217849209767825222311993254226003809475207174782010624446717393754720570875327126964941158435486703906984112726919912084270793128480557056786169252615560489654903967818036025354940179160279279409544613990244579281104923350364394702434928261103340351115371493105640530821443193781562131225655941510318632900437753642367287841720191983501812372411159702110986298119188629222437792757110763478332785860930269738924155801605380252948701196062841302999003749582255048317963097336367302495226145984019081424617283585468156082628569627008788108020991657313292186305928243718708312151765782828055965750695604784483127656164188177798891783369987701146951386199584069568715363111115952767176209954911939678675700443792821084465481623023657701116025118488888551185773121328991979910689628167426202044340928884419034426011500765193155760055343233767466473502577484802834920503426407604546990264834779647829899961677410838923146180455287918603485341256115455530115010682107494830234007942963266908657085219457692917436919413468289894816163811192817624771265468992599080404965766996273917453631930053994823581551420977526980311804563678723218063137073972660811021925201606000927526358673337060237747786796092477644700973079151197360567671200168694427365698319099324322681882796314670241293163238252585398482914730004519847997526802218994168822246580597091785946380524948409497354793332554527618199818885650055808141872038736058576563992837175262454593819634498651569119018959172873704797501905647154115830472340539827026238527842888622433471856714568302092200874360614103314125820563930906533580243115633205709342526762070277926884468943345005101548873994366757241455755828709807137793884964578865522345339010018364242843316861638896260686989048972046669588575067340473297823803156946020150495763939548423494810077064569506492278353412838808804978562733888722232023221535801943707623812813598866497754191296441581332332527183288432460996392623405801841983170350580761121344570931312728113114202532701629954599113572216878223993790750850959348241299445501604567595881164530382175387512573381477117698562320669998529086625443367437978325452977923404705948246163179334385830268932946259714143179514925505320526432498466058387205453409107653944386830877044931652855283141760179346982857368694150235741430456658045655948375676590005045545906350739117435773725884010030827603986722263472377360690603366511550777603354059701673479328852812460947359532885091873614104350339406105564279196126042577062191997279192318417869943473932296056640828274728449028463622969799562339310463543966526061796705499317331395742074893024781294814671151116705854521088186124625184252139337507479991342492460646038522304933764719194076533360619269354606184537244536894405430780578049546502523534641847284949797574444054154812268615586069550206227422648083122123681456475525286036830178264594554862712158739803093094967057226552016364669827101015812758112789983570392174446490084681428836360834912389196128271044736105450385836321060721818330184014627803998764006486005788479574894064052495115157443474826898069852815606029293569709078224959215939528473181367337264416523279578284836772493796207203799619962049011006319059943319742500157556504366077403914805638891616274695928260859182076135688875882436911403159363931579031681370927578783360358527244858066629235781886402488110094886613692303303829979907504595431573223975295181208803692398273466481524228882587261767026661135657035884996559898082236106544017315008391449475167741388925893846531450519017507428383722582732531868460084877152955760076923061239165512413674655678774516993983848140991529115246237431442447778027304353054728895245843088213499780658646067588528166125856631168429882408347324515747403513677476126337074178073479894544741197581143240675642876617651213939253059647595070091801526938593963088209566225248875486920373118910826911414210583261194805437118869558979725890277586712491698313242068569099374385790701723255759455217956913333329191381154264496561830104283330986816374721525556012221483775273918040912905922384899445936420780761129861842832110135547896902728599140205250692868742117645246929857842642246516513834199099901195705983379891660823316099188856357223032509960507522369559498832034835667581346733992879205601879579430191476744240353878056557499179882617463023907822316458964670505647736324314688509517853471617624986466893352152471238224180646183441006239665847132197977698640540449703540306585981256752729438011159669724387901011840975215925641488214327570054474659243200976465491105489574297954240389379807651766814803854526757776415162180619761052194998359928694322159089366055776906908312308521784495170536198471454535394612077230868681423988851977339741686354813611558726851944472113050497803496083414532575036138666346004497147661526323951153247213583072792473892461056691957020998605219756458662199727648190663310729256533204869695275087353542557287595092997257898860699580805421298837388503368001587529921607978905116791197073377711045906310223469007787555196420082069777115840608759083256954708075053197329698449054908279761246111686816943248941347493062147584935804041188704178751237918887225027395043852459387164798158621755238442834972677552567297227059026460621999120562545621953365382044738062516236833560309994184512364185112352302838527333304327894561065842108577961814586071917781168698084473206595678325583463206389490351390353955844443520673614642145395743706870835226446869637326502646107966932068636254225423228859079204146168893427451958439080266498316026949696519903564895123479959341541208717704790223611798470117033280333414991351783590453312526121663494950458082880368002915532691137780847116404685065221185875158243005257440640679525666842298437138026476886099606154279248465216142293459292681171410746126034671379289932676477139189243906557578806111916942427088486875940196708322709463120096348342372314691694205620670232659120355991312427545871772505418238132800121485108995423731962349543545997673234392128562074437097106254602858061564812107701283843252870652085474071072659225923376163544740327103561857465728009138432987773583932753288400457209871953303256286229183246765588394063300701816465787419317278214412679501437810043397508954465831392217624839912818158080065536511790286763907844306397909366099010182621372800577519873252233698146443367654924305864271155686163360098448490972309057329688588378903389678407569587765270565673408458484942925738675657451250284453337913894943968927361217236889239113743749521215907353973051394226505256706491744297695493262157892731927935234269923269265721859260070064691916114626008847271518154109860204409300534580389174340439654507543014221242593780548727868729290533269626207316701967641368244571338322224327393530450652628567873905375009798299542692709267670070823639662068805442256045066959641013700000383686934680214150342236819781283795378672295382776758262384743409338395204440195170282830289063521468547940466497604639466525471152961006651330307695535523539315768372983066966359885681612564087816983580586074734264006128913800325697421402057977330399542592708374986519041281027111568489114882419918301881139098229768166050580046431626176135121903840988531578682271467907169893556920404980655502639454048153623413852273273701138767198249145270901015020195365563141346925510455398592734143291657337224327296900199713896464388075434126337292635313238161332582897670618344970519022819015231618129870418357052229304702022566390467505293581832303152358681961287493884991042029542693499102051498047899479971876597684007907855970601953957535054968592374017257811344973734512438294774556488785755636818535725592095570613231751862743366130268952453248900506896543965593396833629635739495474420062305674345301416143005023291581277764138998889029225849132259682143137363750420114812480923319091152056766237627183440907013635614148890549457177751283969010068064888066068667305710590307493828100507027405210893317094014916277754894352123181386297285396402092794410669765181866573516017795436921635349916935121775137183065305571516131420838007530676646396783905014238149699708736431308525384284335400637920825583672577802475487264987792568779812832482090008574225228699355497093601872562371985668379659360354535151430100386846148235212613707100002355173601057246358457848263734845413011413049956582218314038988430406224466924011073437527482324272901559233513271578344155199920918670852393246103531262503671080255547267654746754604689326665283002803017126610388287196152604686700577403422153693024879356555682778280662620523401796366811406588274977574944360158203416431632964518176807901944269723772434224438824828883813675109667285311850789425222982762166725381459622044610533120930814452399914282000030471419693679507289751221984959088711492597114981010494834082189047140412779249987987391623446946073198937169328039510668456038551420704651880893004600148342607799241993197821532048514765207436354573345754294034531354632753921309939170756108080649617985145376168140757861623064087727798632121208627354735899897390820316698568519251798007933780305027356287260836633750482804269333268081426509959283217558549310011268303885588809120587479587110312916088494537710999303670491337472792483301772094410076552089069190222166677453074934446850142205507326764871722300151693067502779039426102210663777463209509348456102357576349739944395589847548626972500338316652769792869514958776812463833192710929016162205302216790690629225926179739185012973381191353615127654916717619048651251352836197062295711120795766486885123275661518170395761195123720932496531716623262544851003115922555365400306033600362896636112659560333159085599081944298672003621626551281227387775144088157491043067236122334373926661435524869689004722393632499803067875936583618109077220992900680578936390645326393245893946093367707986122071297466940644208562785794128892092152404632497878302518768207838858245927993633590215330738607812182087038473288457788830247837314083706999233552410112123680539788750977446414675816680919018890558308636704222692477562548535725031601206012564315783656432347204730993251181518589788394250002228272871758403488571544345240394664701325948177441451321547365911821366361057931064085147194689466417875382871703572355274148157648315512421061005977820255292246687500152728999509382842438455909552141852939509228442686224212488189335230157724968605609887638456667172868366991810154534703047449385851849320163310141746622067103928713591955811837288257114922929245310030974950446782834903034697677592911273015788541353018449521429325179753732155886902708138427395719418869408335173201105056698109896495636334752740636207090379497912974583971466761693952930192254093547285184668200924757866701152729750720222787141513202476963607989232543657780190339597738466239823629607916648444179078721770629712561524494473848494143840701273518658873348653832291439627434594993382811246609594456219471331348512983171788801266467342376486794026283590285248055422238282596885907798784603155463775302715373916461667176532847695226309283279960448194706852797319468301736464435523965657236607521026142040719185809221882466127972604692677317836930394290174301903749962969113489124969888185479218182378685401255010089090993719733549313632266811961253213147704263302290971990726180968505719440751451328332335294741651037516584756943954502014691206224675811605493330892815576243250072079341860148650053771439401793439188309998930998010196002911437975434128781389460639609911500953687808164201519962305518452814767263452260022990497531004095056227788531829191269034814683583330479966706024390529725507222804298605233759037983680637814205452747046388781448344399005791963921201759428353233873802895005424049129847632477099221201434290652298006856919464413672644771014836790452219863050564242526141294268031600390519038779620010918672817016440814420247504448343483875552313411987906983472507727994929393893517240986575055895813964438389043803123333585203545836628070141890684513262822673296763129895858500380651140413482917010213796896230332412684961260769635096667946376061195847532581905099702315723746766539850209885943786590563749057771335920848568256780152173489772595199335370810226514558625258217095186538386055733243215539810034893125557713151541203279680321505800957532996313357648357797331846169358647776285904297641872526051002123217214820982316210373692619364803651792223783298391518428310801576997364328117419905588770743490845337107169400455824769864948415330853610897332135495008473108711592584650503054062122303074797348779425945053878141379607692308293779713732414121383370847312010096984540365913542409963519610386741052322338217499401626411210068369044350316734692349971194802848826290353830122192417396694020769309089724368717054193067408272328126285381635739551769787066699110480619146342278575330333160730752604576405869179109942578100119741470830542974732534270104827704030708753311888070154265686842053325244451162892863272700522861335256660722847664262320114619988845336778740663755292890266475144224789544842960263874761518085159281780929747324575668728014334010157252348207895062708527864518284923661552554619129943304840751774280653541851739367862207510185275994540302608029605515506605061995509477878107979798676163899115273574589469401461667683850222009694990267971042457208958766475551368512928345507785406229906417413467864898993058106567758134463284192168172089073265017332603612514208160941699348191568229930066862124206868641294847353468503624237854821593824924856295386650239998829992780884326368289521033484291676196194058556591531676728304761516650855441167339012683451805739017558008940836179369624396212427851791975853750813899755635249540288082407566464872617609336383196620719062688200799014452419529174012684900198484642017610960719082495543251081616968569653947035996512680445420515671478445604478984315336801622235703178061729108191429936694282433262281585220498231334127285185359466370488567676135552121331482951324369991072568159214204597703128127203580183180162704620294499294751997576203215771910948101239143030783821818029111738035494362045638791375673410506292139542457352962556125833825260794154710021000636965177444608362138351726679676460585729063552626653235511073477436828448175430809244121071819968229018627523088137054055074953826934363922333365202027324387624718284742356170641349681834817205537711607671393720448974120941747184871835565220574464464709234558797201588426009654530308668499515052696457332730825645130899597037579933858933969739226807234937178664851137327486731337324233952002347783654737819176800327404476141357463982586931941450643618734759481423510540101251207208088126145545274354907125543722697516715515340025207945158704818004649324444996365715322544875219719996050320158672242640162089304745467318582797050047576900493416388674458884563418758585168463304932040649823831639653001830417430917978695224915823736150707819077068442673803030294701319376073704293023654302285219457336614190357051887749598047294985110817886940444982845591432719569122922112079844629705201180079494071432180380988811242809669248608694054971080103042843136380701310960766378012433284331825522259449890813662145161871635422432450658299370566043816827393532305999405580909897351892725270656482791687078866212821852468012742004596450202081601662844583192941103823427202478503325707358730476890080071787035934544223588008001475926711169012491977568221001214497600483253711285337988091705748920145300717567452207027872555868213965658418189718623334118413869731253949691773511935687312307159415760862895233952961510722108983773414142933991278741053153005795525701187041384384289209445214281084572683115031287085690684925965437185641362781614945756297849307721024623688129831262422832933865456882502856305220777771911749983056151745509381153515015489127985823461823311816796893975065327834444458645090713381787212753030010518953804587524007257104274016374371501787645417379449953175376768184737780812373484204466347567627676158097823279228190437826779368569530900220534377279910582893916614314709442130146606309259097845277252387248675181654582175086186101557285207456004506372490633362363068076324929416101572257117165640736802563449352101880039466502089449922949472895830143476666448225021081415262380658124818153247851653469595679066054174985165427417057034262655399865632209516828703009704197023971303778091186679273406161403821888608787848883106687981238674385178828552251630065290432720195239062994347752020477624465693145458597614010220906305445513570949752682390755172673879251471653917061381962481803667249066070370407969155728124562058307526158565398551432357971166686950498744614765917021664800051200271332377173353948930555424583262828675980918418242839043317674238527982568487622675764517844336073044750820580429427628971898858494939033337016090289577300781596392837634363397263964203582609446026558356861516095966652359749367947765254745999720382448707176982815620975703352428584663493953709428699587259745217725037921780696824049289129679621889628037869936764102811265455042662373509023797326823320757033652747095326693703806236356839958210389300876169053879350077066057525244250907834849558915090063050185597827109595620965347758325831459162590234128318145339400982404469249818727473597876024000467423017499461328345566581583121079119202819893773828167266940363102693813767052723623920331987077960875104093771129317496130386836901292358194891317765960132761319435466176055077266678202174409495932827420236369982119962704633914786297133738512278306901832773477082656974826318901912183308676484657647660778961241576094193876023148618283776281868864381707514394034978859302551387136964639735949196928579531833602750546287952757074470769180059426556041476742692938720569482150176616052948322609052419205752868138732688462022973241665598214981959325634967869480073574497308258166719305192932572157673811689131414199095926628045946674095129037116261998014836438816802470474599000834560448271594565504579949271489978068869776346176850939431628864305147903685863421974245104449947976897478619885737542457615526105285582173186187999058245514562096049094103471350589540335847700064445932353757564392163367747365886313244479563997791239589792710942124873206032516531474456198822813019233944982382534474426733973241289687817656645529260330414257366740518941572894868390565841457262832454473571183630772103757230462721391026223935523270247747418582818198353827243098337504666324874737330625883530735477399579258809051585066782635366581957039039105870900144954277964211047868304834486878221117365317412074879373278441186123400047297199060253872637795739454208806113751550153373054721181328653695171679806905557811347976804722902693632128165553327827799590166572066923224451950958508233439714589377030415708499462231398680678408821750215189373118286674931613141381780443580877233422211352798030681925649701800068061908143355647487128103968945984840887280025618512208012741591577614347850497310118345481425003744572838490292899106616437722234521897075799545397034622189696342173719413717516683056520086208772442487800652036474403460546870305213401420410238721041598908786815687538460715258726678194682921255377755891129505162262407131957698893836022296885291033966057100220589771914088309103308414321709386724305856906590870663936470800076789032812602862549344981174991610523714602226003170499178620963075070763247762608798909277895895601717630751902523619634086623093983172633265622901912861175009021986629278952177233216671334763705306731534834147337212864355148847748795123209833678829268512106747096071851881281512034932066217282981900453559472641659704522345303688097765756661458660841956404212352114631766437055848923605017681352526198311361427720882197797029285199501134930970792507081451838376961622161548352635755012108683068831235784639707566339543428595712944091332521551304848116267986335978684070312831154055646246942807724511841240862584443421554375006243965059162954333544319705077498454669003027885981025387067412295351786104471129410343660337125529407675267044635018210500702913881307951623904422841601627505975119387355593282568992325894480416826019917149276204819881202704041104425182491650250440030218989161284332614290689790193529805014380472596491702988478500936940966373007979834009090296228896543076858278904890107483911033454338420072510564210298123529497838154998247364467399523580969442796208096280185777274497870686174267500876233529796407457751255139258665463369034701694754749046294802490396792273832504941753359623974776450938479948816013533364849530899140437576821372272103073525732753795856972840616883155586852573196840567241575894987459700648883714214148799002501598568067290224792852367523193422471422226859862720688614595595636952230931955645768089265613700647504040099556066214016815890917314593169218695254069861166948024902032941208074967211409710316890493752813241836454429473512315620424065183452660670481477326813811208928775215175771236747510422052476651513560970909978324728960281166569877817059830185732818276529043288173164051762296744549776765325924967067472096481014234515192149574370698429500908140730018209270558364217076340623012694265860307432097733120088131253001783989866480766204369738140024053470768860060564789361319051084618665223457059801354552887267883729634759315730577997423609362705887794038454885790369412853408496551987276625406117039554927758098797476867352984293999853162329232265058357451375579852277998272492660241823809817764923928525976890205601787690882020374534010829718646820746339875328790501759734183640380712560430662721206074860633105643428255944548983169751244469984657195242881446161174914399123719925241267384811632746262009107962772630825227308256851153554886043784425263033271911629397964418460869794183573372344692174457325570829701990174052683051239653756520346654863071072180428660133858854652253532961024563798535471702725616826580330477565748764354947640453842174432303410505128887410158100015363278622825673297547998904577088628502841677947465980960357166323433070632380092607556171916611914395284100244828984677650695100711302528487856347187295206344592959364172340883873855275550990875032697930958034090175800540685675094823591435192098561424630455076218849218841353578299093845390630216166009677311924353153059297401750410240450990097718926339984141052245995378803536077232858824408814337237789893529956662077193010648417874416929106938812972336250410700280534022191778402193654712534275869237166102625148420654272692490927970646953253785187558346278796835701393130552901785181033426985183524154458298279224706512394027429550831862309176153500708564220603877444396343522484203913990342424833257887212018293304914316227582177155909595590274968786212034211238552689602931867047588144373751477929732971660048348985198935391611647233378543989575574324501558435843549531649528302394515068692914044474420617380177342442584073079463509714372091629678833849347647398879517833416609546722819091433774897760950823927563045133625027740355972813680396578448148812372129545028392159113186885195423522936874439103018670269071428865254847314241832001658823873451441786975704272493355842967641886915048635561692778336111570209965784809615736214640330395417309865500347901831492653858183142484170778623515918262731601975196871965899821942169675404118393727731958951109534509324649991637173450175703116319492573744800891565695366992332464388723324726049306378138262475027886438077698089511143072966988929392630795783456104113892605173010520532343942147906730975429637485406960243937397775114185888589767072177676083428729017471932224446053811018145970449092858360616770589143995664752735392443104893318936491580456444927368130372038805675820879828134291844537221491124265822176923075050081990864563144681435278400648922464806411187373413707337298902353304630873131921810497678999823170733523037853610902544020201199693500054229198147307944058416403593477916899635191189114393965584126528247088791186433226637775869187331399828538224414606805994473892136702632200937422936885584400105412747101146243611168754035483238886945572972561496570735724974360190833661368182318851071018511910743234541733135373740860875683735819639878641303324575225048722299510764169757870946162737676192008782328220984376311512530408170354952322950194666511554952987595714072245474056541996510160534296973901806515270530111225532773530855445821815415747489307705204077803104934272848090674261569546209870089547228017268520697907991403945940663365502440029398310257317619562834440176753350556363498808801176991900074760754561697274977442584215157589175282917130382885647389560809997528037361654503380959046915335216412623463505581752911958088973599805445864161587003188552746990785863627261840269821240172887678373552461281226665584767903726707485446912880155387253696602015794514810282852335120290363563460719074597941350250832618467487445580493718957752384910164348672292899533637541419733284014325317596577633559673985974880419775688000693734053693152376951155644945246350061763204404499822090473165853843279618068514478338345800977539232035939984936261188662529431444481652941807773899028962957656132643816241089439420418779433804499548174218759465967600725340263374292786650805015698279831137576838842399233750984696179201832646479531693802312932720378850381588486631256279556425944598635939471741522001217761136689788168649744233988470150178933027249252784580539356475607730762535848363991490186195581854879863774094470537611979909644382773998520603480855427177685299902016305350112915594037098454089828022822799851463599444308562570173853313704606721392471581699199971968614011057901937769872533643434008249866407855514403724973597628850399738245014266821338573459749786443370669084857872815377501446781669530103717662223372675646337739735789966806906339170669080998005996629539563629788201632932990700416397242417423216243895817177215555077988215393886040670039793138261682782722052717625242190529945080837609759165579741675998345203384121019714688142022670874790361377771161773146424536598799478051726820320830024161085371472185197450204681340126791532837380279469988403599323216490832120218320631329068842617440358551238620438407641885094920791551688277561589595508498895834189759973456097295762636077087947601247904202153741692160051920138258351966999176587258840751130902661804676604328258232014896486627095872489562369891511941539814447852793688751722523563481775660200368813694117487605812839530624668794331801058725229044302914413989102554871448839636285951380579032542186905083974613570707808479753687110253929054535183726724285358509995581722085051248292419468323109360500075601051508058070147027945287349571915117286721686221135129914019548233420735059580635443584194354696782005842865192013093620361957431552810397794650451000218751852314076266481129401847844819598451008253997899693738219585079661320477135675899100143193259194538544854955285479089293563700970701456734126504526889500872534564321624548265979213132562188042740443517133570155805303075576746200751632291293268106839029366435847324810863845462665396670510298033392440269554899135469763439573546963252702428741369144619307319032802768119213308784055613505338221995712513039316953566276052622209837654378751241670529481454800573684347677413115475012120365632819535612437431553211101253719596104101194363225920734326042404683776869433434774840842166639956683772066235075053613602422184659833487705438817693493802453026137817965879463945546346718750416932557744580623616805488786075130653780365975029990474589973794357511337226671236926835757363478754405720390908424861781352286160531880514470860710010809766871942869512372304845963365749920261916189192753052145355922051017356102570495237167104048550997294634097489870363699678000487352615697970738557598963841016916469477673471589187872312765112673742792533020067166185904824005092581327835469557404237179293568784517256453635639229424480223626543730717534653667724807345013853409481465120558309251643669683996719102579505896682896686887373162862037558366011646027820393619548666955407091714310922803935230889156676914683731132586490242421261523454706615739262210426304178699630074481572499568472531828428090159221937986234456879503710334908594037236395725576007271758173288947990737869774288293373210432602685933120368913188857677269880516575096957620221147208908163758075509137457141941728912333933015915957983991322348583431606675261677560879445815322144546928967989073481191988258311605646755950382244684971073869813209327190742666427413998766224717652136138067753542891923230588118788080180865059197545665708690600743189127617649676222580690597147677930192826435908408334110492369190562684251213925896373187141945124993867600040371190260059737098585250802278075646008595008441850906410525370373488182163147484755797105361835828043769622393671513285952074627772420299855025796309732792317245278037718607601651876413705360012035881244615777815468783994918238468167221245803217069465993218034260918556186756367422542164332910396538895724009376029665973526634920178230635865832435367452209852982455054923830489265184885904760541220045679569620826621641949754424560040055043089058947582958285569410238043317121058127052097467090783041355702770479998634098886281777867223158088133969570555176779017002656396825413445409167992349984577541681901673869462543782822362581996555329876358705608851082081149924068566214318695616655393966967276389505727737498910600071819755879005374788074274919558084861089103222595880428713826958034919803694149175673927954160656865643830357217477402896245195100003111021540436932957584008907214494858763779601116451200791000315686229634664283482036451594722526486596594835910490044630577741968493800247608327104456176179648445582211715018671672995841488105307992840126238510220730843740215127621095155244627025774534890039159295866418418499875210616754964222764227360726095520529452566654604442900407140208920913137111320257420454073264702910962095944465552045288393408881145064088938863989399938554838692860717605195588884210115894308909265454144664607847867969003731992531909648510839692983000285159484586187222712025281999476362230545019189310918256113349028607209843130933161891091594457893690486619953213355069720020206421245827409695385166660288014948709052062188677608346735659464253753888733963803513235150184258804393031300348438499158354430230389906930606257454038137897870938522362876475254554580368234827346993209419849627649950461833567042724472588756019652533035392958698837155137178655320195754888269349804664436419565703822134461777699993616723807444353883877170021638491837358359529753438067702460233480960825528141915194433190098782791908331760152774091587055618289843086014057574811277692272971441749245937013142053141488701142600001477535644370134103185909707791591091996495023094336418770322105676319676319109240677882858097177283940028942571223771673713405006694237587184054737032923620300621927700868096479012477012688555936512910543139056437667482642741935920358421166853990823023577915972906183793169330363024319782790364534488987477245058433993220655938829982135262672411924198797460648894299442436524643661401135390825970631849192865311852794279852261528085791488949825082771305310389900064691823482401435122492103321520909858389571040032414298819912386498496680495237479697308511923760743100887688158331498897756793144718723863141820037757255892323941087856655644484279539706098945021358106302532494096293736626894361048052945970480631620629358511639563648246432367209656967505752175927049133675326354658494583746314585570874412859241852906877786850920746065788910002121896414213572149166803685849260092229229718079570171821584098343901853254168883793138037615074430576880977858999505687669141710728225228597444286048019622565535888019138426953248093880384379127449519027201811746917801384992240902936528188344708517493462416542524897542443261201499270410485076399723382529602336347263401826597025027482107435715493334187180990237643267892212069608422210806679765830147751993319238730924145589764524219360034155415294474156575982189853195262611570781139152354294448217498352649641889472169869576951466481935365322099640921758796119662129607968735618904265992380644854692982153855944969393954360408892464681775945758859744551535706604285537199926958408214331130716122918093847719632985329453689244311906848550047893506079983922430072510001798819030807778630373005317336163887590070598212619535124427674149536703716705298116842855970743120596196510472074232371468178755025378111843629651205739575263481851298139898481569579567398693659621653657938266050258990903336494131706374366754855885198989104681091483996915428195782409217862866292973132397424165111012015327322670639173330379887916373760104141371101968490078510984468546081658924013253979986303800722615154217619653033183907774933589881317362755009820464312788966962171388851890045663107137044727483611461331313167021123466065842342912448804773969723044033314486452732588010043479684563312034879995333458201762251575064944958366222844669616364803080699843507558049565823068203561882279074882629965861142367691214219121620892788479252728273081565059727271649931594241138391958160000228002131904706329036987646881014033497039405297751711333985230719908525781290115358977290947006732372506487821359162487327173920488607565832682844915891409515721037880937677401901667721668834799913438478700770544761456186295927360159169199779874688044605033968889981955112443246185672215004763011255154012727283724727887446154888923023888555922535411321763190981977428270964349742381646078294997350856300208703123606127743833579621736095660467705249144875003924573970451964915697474432266460510874839171208256140232454542434771160990166694490352476261805203080993338138101110966070491564947160491346972987957719538074340370062553588826773330492856137831823030805590355765814222896435290825566124139668433559784404304971692080273426837190058004280261882330497524379778410587091253072627173899330790006987176299839249340341952769989478799330112569997374050493540515807568233389783110016279040052835031797467456935522127086094108229005285963045311754853692391109494445831340808939960866673183300898973478731832598237669415464548603977186856632157230242078371563673408618517925536309718220325850156893371177465375847405395183774107169794403275581557316614574266193020651740653166460350880291726040596346717324538193568586104048221426128527647944344654330977168765466473863998549737626941383416528638953770402919327086010332058220132508192826805092052977290709236824482694907254965449220688949600644037488983213342329024840938261772435706063435220469970856082702184427916684108775078950195421973531865857627711898409473969719791884451884444890988325186782327737349613416338742879879497660601788006254271589391773989898431577126445704638372554280661496912244260512717782543282973609595130765794594858385642431527166923955204155998974790067262026480029776604148601899348117158213661228957350868576032627966034674891067159337275370274691274233936419351047973866415500899922616682236699165954737940961876824851067358130810573312253078377732058939631218066359836220446393812024150082835951721315320084110019076517323980420699147711645998899826252908533594933859956975996918496762227527222074220515569439066690369973499018761687066251776539734763332068895606107154267761767343753985849215409525448689664643266638082507418180876348752903337721226950666626588455063584980193965442859957445865677783136717309552150893045370882006954468083817431944611579031882548239011726790925065274360083121605203646084060600524366408271222201150285112739366573617940009121670225138256068190292756487419229489777725772587841283429679246888565685744938641545948758005791132919267750099906582552518289921257823749903963235242499759503120609939524885960192679800182992122949211288787633254478576093956648915496800443943500789183677124856040603352428469513367288569014497979843367170542522890448081525758226602989768793686108283481836921519160901135239454574419422254757102432677230856817981741088405445524934568848344660672126812581942778513927705604813729673048312795789268966145476786179441619226450067761115509737698523411122214636418444694932074605955101771846192968410339170025291757465615963606553517078566253725259863109792955047766651374070653132850252219254891963918477762122732487217984775122822058063588924527855465582055825195478230339404627835798925104972380677058084827136359354411800625512114690168780814236111180706459689552476983977365569582597381169613052983191762193783701336367627024556542610967323275180746833684666985789677457292572790158138158707402308609490388828236787561204410199501827702734347899723380256654958502670751489484234285061356293928216408477595213901617470267307533991553572467005936731917914118102179034509867776315381254706641308176623935169765871990025320152281900138116598601609801154274540890766339632891341662476418375182315329413077999757136394781521168814540654455487042188463084123165961032544417155492434240693223983452564682190981549889567011444153388182274978359232646507328163283696063065262807680582318774447142242104537346555276868904889290946225109818063559323429789037484737152168734954848289166778379600325743370211072183049466265556026092522621764908988651837325652392384617295897883651379671951505639591576264264384069900523097018029064378858503621209066376388188770535744702446034805670243699227393304048913099600769808952906015670802768788332784813652126424718885673776667857107949711471234740159976529062738667115061842729250673544876826214164059613824962173104096293201919749243749131355994896504274569409500815987453401377766405798907789882201198046552171494541791835189954098306704065986555742748361978876073768859567070911338380629580496280383971030674645556091304611598817778172150865777674873459805094431096487107130311403088044236577003487014275964166934933347960028668480610572839429656089979896271888356416720060913388574313318771357802491089150506026494182723744383301880394214250871858973707038940932064053650211790614790507902794103038141867068959541146228902283667548480140944749800228918846892602540402815197549240820994672989450624938879529658178421771587497526246617725995650430943114538043378815422543625754413362764989754597785021153322642216642912642103683088962549836080444272082945568329930819900016059176222271867429658271228544025560863462364483187293211269054296002006391511776954599554590028201525296030602005766287276450471740827215122214944169822630596154172395701826418353445661273650240961005771315701103271622377829010866228339231133983575384615919078082440430732190898525161975032599203816839231911183805170963122032866654135601181104913358749938440635184375739850700387381643857129558042012744303706830605584377323775128184869089893283583796098813463548776617896717953197005029788271144945239215747415104381849386814849185594859919391722660005936160288481667492195669152628058635991046769276030302492815799601102001700572833317969014893854754120102946013564581425810455078767890223603480718908100524461402273648027548199865775233124121223706470137078032641429978455874717200103986836848554025550582854463787507902360910113674795682498227716796860277056138619435939927702238630087202537806378066222014504916595578330350653887701476947182010357568969163459851461138225356192217958515798494648134629104008807789931435124891543573369909377711983866196129883933859613859532466171423712972824811307449181887324057564869797730409419313008224764213522415436635097174192512676948218314139669629389246072734693903188042670965113013541998315781012269766990965061396144570735454232213897096581993756643037812055414274223463437327476322617565726558906256071324123479794010440369007758612927373430579701208119284425462293773558798122143508393456137186844269176753791892920034395622275797843377011415949871338818340627337306214757601806834455249505660398736335608878986478886726460465850054713080359470942228622742921775563134306090551457967826239134423843771285444600321508535145957069146536324748494445627012701902239585626979288133852284116534388228311478903821639421859205864177567660500147584874910644687631876792959887448119589482669800624799541412109917784834207155449486100356529795255308791981639142254917408558183628737034797726931073713615779508036658607664408824761933660400494058323343352304830834826083852670953565444515718531100466732476664157751539527025011875482194097148238714891293596832884426609251761637871922153958826345304974213627484808403037807939649220114278385445179622410844483996684901922764660250333866891062558040383163086622159944583219881817491419343407226030239543950424125303507679581731022024584192660581090810136122914238007617515235318323736036944221142663118324983282308682970318383453942363443532574389564246849920098582808143589478439758105361004745278229311485777194497895735664355835327718962566473692002224381778093504588374169982516718622083608756733281214028657618502976124106765884217692192175532499445965067903883815498874650597868752345549149047440906511781585184989820885747915860960200324302550828154327748316751474790519687821872955068812546731599411264358098456824046722924654209200429036771643731022320464146425006862752599659513106843971637882642647058753770294624701830881433580580795927175654980482308038820975940907253198424682564868861578103910069798529892580788610146727152107831910356466538313462443625715199466880356693796609263495804003112700528563266487167637729902445255250863531210504928883490894358309686871653570082690542450051577353802725987176180341183724332865196035744636375301003106361943090128445008456959819012238460137229937191757801911118075397769002739063515347795368394342863395592705020325182431220771800368327319033518291861998850627876404272400479685482437844349836191251943691682529525259427298084635149087960520658980125071184147997208631283704267024783643624161797614312065589912003489207932013647291980212696321177795738624329307009099744004892581443705802240658578979446053081918728066157483243003033626678954290217197674380669744482001115632061571627370301099156845804061519086900097402437862550002393238305270699345989936927406011306399483907349985131219523065657529882619207438395994132313317892357508173465942123516534157576285960796074458284381438469586227142441200701556231897310863769621727290184751637429684627219284926691324644596585679005987124741333340229950503062477100859158429867359908797501286886781644206969409665581001464630663119197842558846928631926932129432527240874167352270853920093903712670223319210227580876668660761693852730551675425251104797310638939857124615753524875288056297311499198858746962046764944579265257949366224826332880100235596151680504286319304803983958630552651786756477632356281368148187092225082738532965379417573713509485709001598156943451619358512583689475607762741188901156417761838048099241640447060432037070801133798850183739556853000933435418694210028619068088477734238691951192368109087011972101795747470916017188186974922666198267051733832662092860747321811748272691719316147058052316020423586041062044533795058101355940464744658706700167215150824039747196559134903570501726170354760213798788634214762981989908346070551449079145498369066189954067924283445668247083755360619278586421379408832712113218121342173408796988565107463942228864638531367383189449745363108786594031475051989004226031744655292007949884868280495866273259694946409198406053553431172128668780027205630855689622601828917013316247349069816775312522241778637432967671604892547009774281734821739024229207718674276315628322144233908041782800450644237577036530179723216946369839058622480038357426463345802939606225203891984672242390082495509967646393753203671420639887782359255133826279450834775103368725777591798744723351189756316035743333847730723563418188927616534536764613264500086551376193686675586710374068070667224963885566715871315522427290825985838796415765050551882126551154756244892710533658648429316201317701313012083692384030364404603633857618971229208944952431359979633116014959820700912685117459533535300085293701005045185273956320590260587308252529593244913523230342245022047337169659940227040711351648117863153216347771767741422964368128210629020328650761392752531562138977176202550617470071103515814077259085387208301151654051061018768460935032857811723673566284883299565020454885899591890224394697052256657856249190133840777914480477370238364507424054423612503548249814725723745396741308730749594868941861608551427062087561272438539393122956742771783984935310321322197658233887123748661613817512608094528220165362138920357853352765592643988389108456257663549555017724410958675731917472744376500858393939272191231563303311783203888391742912895286776008559500564637843357367244225098252114947334153735110851254009592557939727235889420920154242752666823852550378865891189886495124334119568513361635576173820191421121440087800991437256998203492932311078399547126016669120500151244314279790495613366631164648031645318896924848398237865608585676254923925123216889592615451101004414702540004207363185303111680534480732703751418807885491893076331258542502372996623768326113033271834370033881795318875815559989042738588829516622485697674339558446251367011076139893133150415902369360303574624392182770744581444180929985985385295725842777178014198513974053364918177613042384669819643626843612354386787935982373861561103603890294592262854305905291338486306401141702439629407941086141707701853522229834603288347351313664902262349039377311073155102450735634742873167246187551669120648101761033015146870780751206668313651871691540472750830862605895101414039197291542324911465302448805910110811171970324315040759109584613600736567344744274360122731911431740271018622264270829509988382303565852810177944172178176770113756527545839214367200439489551305915657215352376156348736156460726739495313220798563972967809561189228737899328295826051810814761165836329328337332950459740626263891693359074383015389679304025301031119098883832950180462029561663925806581604167586215132707938313585854737461594714030750233105378771321718379775233459649315628146145549539110758690540666658046643507235185318587510060216603194802424413487684712895915660654021372676788549244805345188023914247783565163005836027465630258721758529941514717089824501610191881811147655596686068252798861532053502934758762647995891953704851890091736829571262589349626860755903434155238393286293815564629816423862242941324594184932769625282540506926919168423522853414631528939945526728671014792429476016170708357587091958993513395638918736598635521324853601923275972771758501979585775421828209178699728847128617336729498618387531188220411324215720576492197523118819934472589019861859427939651407908856026890329087800848318891079539390539992499212855079437770587085060122222665180361359405345068823751235969725738890023657959030021394067499777329961068286561588838181704251072885018876869903103141428753525646019582467326863189089155192050852128173270862155669664574213035055971885611422317090430639257781855504719816653064565180288164988051317168527591487388061124735686927323370862952599565981802986641198462358984162244911445650005479591055509473727614924825253761259075154480956704134180292703222888926396512805948724199748177834101783461839507826735782624623267693530102787102895362653046953760999143918097699264133611164787539607509768454073826060343951834333084123968539618297697241222747236583355263662024537717228487932250187527798775404875704955854361089135339547148035992501112615310056904008844420523707062753167700092484106381885019802468902844926058214739237146001733213171919637130454104093644877292240893638804071279444013874641903022624328447117014830199054440267493884452539971530471083201605361794031040635518486645167429434991952075732407344994324828185392459398129566863558465745497036681268972217135167276982169060177044040466009131813993256091531575785567294719712883883336823901914412470495817334406453334551481688426700609036692136272010468482538150009695694227158000717761001070772179333597272532530229345859765138768230992280096458370506382966165146679912992752049839538222367189774194732000684193779933189061636368384925098708356506788431962172084714939188091571638931435865956195606142538504224060115146070688727754497683605086287608123605144941091331722601797974768659566459160802255704373041974464310979927797184837590661145782150226341113516149894331919654708588793631967021947664053155245427130818097407541801094192388633862942446256069181840356937559910376310242729695159563233642658408776341760727794570375156985041695108128482826443508070201948917674280679433821789657336987876070783117598643347727271247469649686607312829183472905122271611841025706739588505616534260782240448874157627961819237607369802850015829551950134972889749547013777803948684303619887349771011227958865585348354516211577437901226274547235797769840641738812918660531156673281450474581895305213507102736430128961362142685587442425337604829480883835403879193269210107007594961029849035603160713619957643627195654607335701252516696492182721534050952161236591960605802289194825396807019160406088090458588599314966528828964366382447748243092034138526818908267720797060248382509217312732712833847077872379028261546333313108738055628084502881857243365926975332913289788884980873002178467211937100289461080362525375105134204621430541340880407444539703087902580147900128118349862045226889597658436996743523621459069829705581892339853078370118964116951722380568481856200699879544838097287979235588555702430018525500853600519404945827254367867812270609194736070469085419909274002728332810800606300200481861340358201931193731449176640025802865164584047320631666792266875403788558558532207548959825978981519912070381341005133557772634180115150610395704110372900643523712612211861201497842284733794082718252195287233288598035477713798381292981688585658245476805477635603050964707348565883223572940592755193959316953185198584889699041116344433461974075613417360648581756163589262947270998833725141883293245211674821564302194731878426528013371579976387146810440639147515798530173481841790914557947953525886980293364943416472165287881916966783286281656666423993578240618883966224325077131260619002455903448749879663443573120441627963404071262970727625485512130685711771068629109267326541142250624848233611805924498542650625721551261430252235282338761181230751268273571891457564410111967297408742929977500625573170964330465933943832889109948248807482532091926967577297138306171078389704969920541704839151252429579523482525122318233211506768523553688704302385681534106958087131491207847850205231197073009164264003284713555580886967109945919316587153321464180731607105089025080097854255441489431358578278361674941118658619022060906155263500181421067248858781832249772913814093486824855570170356381857097295986989462544135463611129759250693226320405153295863270814288587265800744585719569906813637963872798036640666256457106708604054527768729169317719856050873432279920731480274865182311653504928795794795117991411000590189577862146659511571760136092389532387569041655597248706153599276075480380176741875713257772229085486291833597232615444006890581762401781357539353723618959799185588956643233484284339593037548601743610415791434658568954748548138326038809956136762114050069248396511802005040386212215983531716068523889322682425343534250953302460121765028037982383510821269651275634564383570241048168392627732222718578178929185961240829684197423989447169581705823008982941016681992839674450481446457076603756191437513337173211821303260013152997690774877003665528546942197799670240587165774837693450310834398876187960867770507256888739963127304000147475081808213706609968356771998135619395739303411234122472375651952467527102575402709488855678151021893964908053681089131111630212296554493782112668353355610634749026000431010448721474662442636346412256451562956067140802879218016769590867785710255260094241445485864427889464845019161717087295751933123070187612223882489824767187619243587910522728157290682155986056171876629659344839017628165164496788331588652118226484695793503958114503391963149940807637013246695075052469164354649777947163422393467078218525024099812217434746057129683559056826082683740785625842621394136809884499472298256347452837964362853675300054727402020185819982563797042505319000967265832738837819284555815540644262609733439840146442530186003763197543189588016549206743230374792958131675336738773196833573345035531903149687671916370003338683447271626481941059506576939613981774929921286012418481403245705446226265551323903335889704974693870933650080461816201782500285034049263314781798457817683813864762303722305468264868989147313973692823957863501599288080329770493628828641283862421650029429588522070214313568803948571684804271037933175525954181000689583012680531699281230004222262193846909108587932354648761742045602481198327666184982252455639439650754270169117703864848894505375158059942234638142055433925787756335606897032338351005007933613867144671559982563183832544674462175161284342374727996806535286495170332509508756139044212888225058111119588408544401712720529856434381938239470098068734523991543151988278523826255714233865045886108967988384592846583385186397007964674273557302686003937494035479906641050059957015801262190161996534952240383328208890615989947094877474694836459889354785892108827178936520120036613984236544793923794329458310528284783475680731873180937305395539214041208796375814587943694684734631682726459336692215802022254838954507809362118377193192526037873800541199885946548092964914260439422946036843016111692870567013082082480429145272958390516779179844467573463617301790844229791630517790719755275274349429753016743896273375847376754187720730881959902088010240130800907117424029071192876188581521544446700096044596186894993939175220479758502293948396523383890252397725846745236737220463945673557430770032870576116192745070346246854568572177705199285212443329737480291976365140740466423724474635633034320326600773967764752992533090480282268703773788585604796504846940416943884511945151100305445946087713542826192928566562277943538896026021157923994602465884062707173917627748923796524221139171412471093536381272279955827122906294380099312835509427494637789466256615802140004482562962298314825496623035258885696049060767934544892715639428348278659339090051081859062974084194839679772857813268621384109484009666177365635108794345402442860352234420943860148155020469040622886793076157014307745533745931355478797263838093843057558570435165207818284326711029628622756805156232588705337111140653915857887783559733421164831287384934296702001486761821624772772381719897226627832171340042961853576978699930006000690074824827058515809505158622036527634777499725691437279683873545441123712277744801203223728471587916463637752893002057778393568226597209266872400644594360830456711682108982038865523634297104090438836092232916314299123764728790739894763785408648825082208743777861763601776429344319246306149535367985957544864948994383988518802282843721586149148165328788020354920164242242876624028000174460791747105332154243409607744968930622467699781127118616241296773916613895786035209585330316851952312027072150131121413766240703881303420964191552111777986048827113743592784070587293600680554669640065048233942756378022213936865333256959955530593184767895349031849253197451690132058628354243895365192880251840317388213135192322548098307410469865375479403801330196154499406329370606521325803708231359020107511248290227445013046831665701635416303720083532968321166871192754546903925222615641699019279931251492738302915586895225461368412920122021258646653257536978117486878732360233266669618960284809719951773975354920502143226146864038137229054516683331564472717805983072313834211366214108881794644801190738788116107058380881476439603351621899829035438604349184576137862613112105407704334424201621142595227408277029507211761778078800666929700334075527035157726448707874989197451166616361010016367245918928735414732451229269472986616186675092981040640058871654595566271266705031607482702454636580206281793461753598904380245757939740660692404606497249451701349730722166560158605459000827751632427560499102295890490194501087390297182249238873465380680183278707893468194993798113676303026348479791555193046590860298772163726278150495970622389489403930587241183751520595247128356787075354775253836634638893959755513529866125319142676354132586317515511665608681018394636036245901109086891011134730647372386639738999533953306797715428687282803286824331002115848920174561838116648173707522604225940375945171133680394494824416679706417470039105890501211068109272379836298947575501627799269914364023753300130049103249699226375558557366919623599768493743340271833122811051590619187088500492358357011807785563561469247398278974285137982674935883365650607605102026998543419648269966773208737282370582754624963180869429957072241380749979175775286377302391597536856823567139035277440446187696299576474718778779308626519022571012190462883337865484425897686217853677509480647953933046871802375071220102954582884388187648688160994424182595543050575044495655061865248345958733694141426785872229747094765542930927286337526809816699206954656128083264580760666110588428569773666314530635400790981982955992162970987803084562469043578556565950119020068506225280841080013233693981776461327374212448605664623294947763065289808908500954377718150054029882255123355207707469384166268066882101384943360127911091245245885998477357868453011077863171450210877897311000209104193179485591691186930332364354554846960005629559159950321144980136126593617515570536408455966441499826462046757050396415466034314063552843473662847594322197039932014584133565653183903384909856262001938116311729802574026620019330992330425080451013545861137790978387853477909382607131976777393599471949230290490977558236156574537299865279311084944210437843531357001398831472969535168653799697032413060489222552361190768963737210088671538775440326981776972928108738238044640929895907109682971894657295878098311617030027106032502024115187651277294687306476661795151590726381398163786666616374038897591871981605772229580654546938855448588788506929512554240479778185930652267635925016465708147615904808582398112324787224532025522792477457526610257905583261319084264263015506820036999328210135635480336780839956949772500679384794069082711875484386851541890699070058387951199558657226027106631272370288652199536291548526782193452805141776228671041524246970637801496439614203660835292539352936284093466894078832043276069787630111553229637983972816564743404628994895052989753760256598775644709388139012354813493478270620695497034888310751831613632031964599062259164722636131970713155321611408836417839506208000699889694371622325541652960123156155192192522660682217763962678040925205128250802418676399717431309248282239251235759781330696201498767819248639371526095557555176095535348841212311527218689114795303852397455942966528410250940400764313885501089548343178093792439960127089201932648402609446493713955102961403177860136311323287366262555128357039501586980399406692162619640265290056469959785146932016890129434066623542742507412869686405134356936035964524864041400900983168775271751986738182568098813240554694203624520365576419751712099765226555545503384585058852509686580151683413725101428810085099908087083151051774024597373500911631412560334877949921259300207472097370425084194352782872523636831021482712633969308804034391832196078351630058211288150164678614812227823682621585345890538628689592804014015789273541779185396500350731508832553539468835334052856962416619175871517671925720477715396090809188051064326389326719632871179159727932622845459124745506896401765630275986691717402660142199458359415350805688440968332840758757200847537725729383107811731804003615426919408730746162696083888078886560003199672698615946860033832114168907944678922402344248777394163804682451381890227527982344052026542610511834534239074814357632664711444545076982941542515429600135115529540187391388464975914788398079629855256798748881379665955693651213243581275751626965584118743548101143349905366044805308066972397027453778300531377848559614511640788775542004107687593147167930288382850381423162075307331754240466138950603621849109296982324358555999905238111073414476953191640100158626367845730341807731919012167295386362391595297356361271920728868503827244467483952486243854283483053087470202319696714774083118234947880648863385867146219791028232151495707873938852933881188039884368412975374639590260052251492662401389216307107590467266223026130913986981126846027809824073537947557372728060928991267904687849432156987157700112498295866841533819412109155631166817617871393125141449616813355406972374287681731936691170596271447477998213907940679785500704415965311354882594398390940760921462641873109553562047172406712405029653350198107937912222784494300539571603095875436136816259326744704399879737785824715104095590257925073783302551840329948125784288094749569447626096749742987700228041227006940140973849351890923297207801862426883473387061169719208415832256719907000900192115743258485403991814070189832802814758599929009548001917191562190015152286574227655177761111945889897242608175835499245258256137099856733923381686391659008733479463855626935986445337870535195089000237303822179486156156806094986925329544748351504033145343948744395101616016246318171643287766284511706424049241739866390645653747709273646728014859106935162595874669920938225728844624400109417751678074710701087491031593139767975530310047982771714750391898495981451614964859964668760619402578842796665907945785071931877632773696479722071204617552576561616030474290367063863991354311014924987101576441041886214983032119136852746075972976286083412677131652064856337985360612694991344508401803218983066459678895481998300923329140993209666774769173803256428454015117856329354088652724019641389290083895814857664365978755670287338268779935862767191774859771377830254484712530594002830053603747656613534663550420498207711693886876511570988190940453854142919160413524554188472800033654150887069939554748088125143105454929873412300716169940682292572496900990441830839766445670131907969037286830547389871328470944933622802599084690450054128681475291015939976015064847158860069643602541745719072530030927485169855779122664585069920940044534534012069302686340074943038151687567835104843191745371937296186954005569436922111991546297202478149413074953103852377066581259386488464577356832155778115493129537537578175247344314649747739625611107525539638422372795733445578260988741161946406303592274242242714872778803578203549095901237238237726200657888082377724244620370580530867621103618914071684914463337846132976905613587622128844686753058551233905421453427257259041042749163538407325552642559552871454344078107188164243625493237505504696116410515199614806706768903167891111483910641970167691937105563801643974308119052726421654553356763912171979763553491593855913422622766792333354633054971837879575561457767746343678021165316387345753414758319552126081644237736901388899942725368382749221202207895051690370143528136231888887812477966312155650452586188272026069230501031520031753437370828719916394493924382602607671744799593444497307455256598016707206685912082194951098053591227746434222832218088475914902403259358249544706803600858450152071935051847705283312636332167936304581172591807336835981545844332846064770932119601586968316205086910595378192158300075649587172364536322732300823400211708393594443302873807730161822700800295649325940445217526889261703221954733214871099167412374930358726031474517321704125421123412260448882006592649211173797771457034216118688162711795382766904265666392961553205596923396804915194454706135057566811839853849886510043750035745010194808034989957470417996529376464198031316077526957559789318068222885855430608606256996148665228333058448806699292077263131390772431204461179140775018076703799410548071544957605390705441505278278962540522673417359166260738205412912336630687155491988064598400947418281455047603932167515592675377931323533919423543357649305409770750237075980324187165881481514355730202808803052434566995739254954564356839072850594755312607680242397669659712871796360766717382564686140875510695324043173235822993792249377592654019800754643353625292106368560998357288417905747959542128855262347047821999074225240315542960233432755069550267848021872294535743381904682641929892430820193779381891669394880890642698033364464482348856744991247195541497926135525913855075780709684175858324145112699340570271918538754146468046505774851038406246923177432122343484564984254627117017843592276141309081431859862344341231367058524131327931803880238478614948605530628463968621401477337046696104041055725574924594784173073957040799434386448788896451363999357127709614682622057417173638431609278444265435969172673068073316089747635505847164219155508188082065347596021797203188748641853204691467606958630798319808523993189440978661056426316289825599675967780000585697067123528924996712680768902980289449911822207110389964031555358569700603995219972150481943466576013365022658447135624371891170910539762548845417077900064863374882750941572434766236409927706424533370758697782509302552566067971497125550882967987895404780096376188050093979400793731875688884766667989860065327994486228984193272324288871414246738889811399771257373437889769959928410721690805821016810628230337268043200917071615167017428105963803042759392221198114409105194740678723314813401667706998890185721101366765351888670676953617098786718484278340321307398979762060784321804481879408479668644626755666004982893655952006022917986135381865230466081790659452565277804637187972214642576606139770630554111896227465325376551689272473754281270384848167713918513569407007509429053035722595745108480196057117322051746883534955765726190036973119677523680643758476571245611538719051599830855873859467607665337182247406100751780466662307444648847305776733279229415820711023421751775266830253518121581437151200438814508264846713895388044291794609996751956964212778210883918747331946250127783256649293226486584723511042244634951379536721671373291845493254664657981952111607683585615071971475611411202941655216742465039822215283729612669157407053931096673540027603812212559294303168087022332837788375744657638015598669294989739539021525669040371804776255881845628601340961520537004522479144786383773865910105882648340536819051388695133309226250716729243075331444897003516767869649909038858690836688499711249935731627210929081008781037787536092211005114177054990928903175588263476241974779176244815817989456085740839149098822927575308320340978343791589211654027367440844725491750509239817664971247602100443438776514231983636078630462365411942462724111169593772965587392972341621767820630071898026789113924233244475286380301421089208801546117588274587243497462553599196140643933063758175118277877753019890330037340825583914676833483773811449582269126331325861869559109470077110334133747313290629506586319591036656999273697290266204548115353367816514833827812942354488363256779877623421549460401160766858444567381538063576568933666897096262697602851400141885641128246110350978273455167755111069346508082568271520692848463398814590129435953555072407677269441177795069200110939517177761998574449783753239553989016163748432606211256150885039591131717197884919094534091594954114306103174323884415569113922855914822912136142430475369120697760961277756954557126162947884460888315934161382393582732230852868517761695551148321148080357505451786795156175945101866422950346270731919147466312980669928625820000441865292398615393807052930805224989994580988453665084854322335412776836431713617527270531921267219074061340748196216950218196447674060309446983461526517852852416043209849100112856224476698588649520810950185369995073507138665690442271376142058354517397233673756609632735430597128383059083801569037482871100454847193884938633894142014217341835308283303870387728925276038014637819841446925762799109349263320800613396080321351250774762473294598438512176044170329865008095307842371919803938682211031808802765368792621425939399674780429544927035236039400880248498326092718490881552385148685280710138114806565698100762583137217041295769921822997571299054719548282545416053290717933805877173391792756969964220294970792009333208521704838881877167178999265374661638653049381506408219756825167163411670934894362146833549270385043627099374515672259077968427988368308452098230864017486452614871483969578920166728661651631400081586057045126595196432474963194339834478387096962215042026770849749265997896402006357136338277782988233270672237019040844619117720295009452635170207007090957949695539433513544996349787358170988008928383301785056505998782935169651126494996399032747395591152635262701877663634637308639778744595362495759398472074192726573343792460854153116557666629985446510185135952550307721371947078007490357638599629192876601590459253738188567034652107936899807493414181011931857958687129809452235386979399531345343549170007525599396497444189269393514838624845827646857985693002769981827005408088351357704708956764670635909814056597519985945930885242636978868140560270227489071343751263694792352889790977656050097023664148982402831704094165350836127069846958161615850715941047523713430452850764962546983269394421502877419734571482715195265401464797162548825567927034375864110542924848069896365259807217125016056858441664272806570970629175154708909737929892191885617087880683080140671892225547045033316925559691475145373406532887558317816078667789785805279826698230114225800704049325772593546903098170703271207694784774960021108087122618835472206668117543742319979429363593376977983600972821121435083240003287203298909241997322891009681731884947487829043835315909421150526636341080514178209534770485718404349369088108321520327381067313944325897297101379191371797047158851301927315027535623298541008603619081415818352625608860414815441402945731853557998576961245942695467677692115694741321395927544290203230044479387295184487244988317601635006090473550863986827684304725878114636331705826428501355739701445244315689290499394390010517098613729930234153263366128761808224748214307318654422232190045383208747526486912668140639294874053563107041314607086036466612436733261498066845649647335622381310225878723607707711256679456605670163642382455887915242196603081796054121086681058790955071246092588593467049910745466739985991207757420996494791756912644119118386668616143088196556603262474914918321653844788914905927614074289173325764685072032780544143039104606653695966872797951968862904299163249472636941231317560536774972086395276124468340152308063997905302895961427403283077661747588382525178382552194120297032307791715465966161008267421311097531994282486349573585245175276631391516106752849761167433000145470018021325876402110213244673899870893377630332384132742477053639924883664334668733309235674265315832102419377094162544280822688481662255921147104384790398059829769559996614590360376054009746923039676927370173516127292665244052444415694018668329001709381226459570078242495482188251812274196605403445613449731226211948082546721256615920241792417995137039175796929625306369513107192332537038343765121860337110413043787303913147909546377452912502619438744866004184590550313753809004267757342636326018896480238607476469632762498904215295685728040990612930286503313799967158494374046521957770237026194978825145086100055120584108927122980510158214648825619583015053600799269059721549630412545305018732065460501241090216916554671304625305598901721271737696732957612834144101055964484140219618682735418295962980746019051477329151196155594351334384176789555975055200464455188911579555902836742809991057869980561213166145859336214970186424085793040858455609710786286258028574864862660481712269868736526226468088281458952842942972619906333287428489398628243988511758046732220186537078934615378465008233229593469966218561560750908848530395282642726965723641812668396808702727966213470664504642272816919565329892035577410850399434031538765439974075832377023872599896096349645547689847852899411058737680488608721780385064991583925387603087213697894240995173514942147130263313437461573018172463551066413297491052053528413606376439598239597265003180078898151618824548436627599327843785744906322487297734909031138004987143256147586263858489737811880131759132586896475385796267525143946622075597957285431168638699624380955701244916476218119937065341832917991772144356720394916061146894630334300147815139752018451035676360541087600364424536972211089570208626781138269826223114472386291634833261188756678953512334273286475406291724657838552859324244562380786601869642843789063942291482885488191185300570236473514563876103969668353030397219567288153091195458089474886263372765779350101336930892000552743682314560692712332491437370723925876197400970744787621095179692681118451705464829614070883509869350620083193833841022022706505708387976548316701754526324667905406504900036916705887001765913875348666525123058067251992727070065094495792120889729337805396580263837033841821006324269300963886622438797337125621824701807368588290656654514555605463127934976110370072819857006294586916972300175445782052954411516714249354404963351204632856928306116486748831504746584134605100803844064351204177689825268017893450563703639796823630418294132084570065857616119455426150891282943864368888514703560211851890215613270021125534762719827368621904410032097462599752361373001982413754016584177709570118649458287583661024795270647162321662583639411289782002115422524200466491307837873204626018416328869824996493363020215242035088835240549865053484149432362060758001526486621005051264167486567901148542573560728157489043637561432504811176433165117769536747343676904196611662282925455938501888117816893163942768220923474572849801399884767015688107584063033446218234959426711959703317028105834371198002762327056325052122390725690970615912021042197757952807000156246915135527013596860572411793365854980764445338561821120859908271752509414587780486757758957881108109721031427872577595247149417968976191047742840830988231851242573259686638179740748683364615425827373950572240379133277794693012707560258165616043553186873996188661083312326849665477555961439588066459228265087938899821355659709094856511698876492160260965320316485965922636516082549955981746803345929423347424236946851608870841357345024169798433749605963292776021192310766528413077107889878556097716782512567123285738292518150988160770776304019918308861518836704265759605212588060571280397818121424062941772740619000546487873758647000441609661380903590802511326855152983583303559601714829335189342928632083323465252940284923316412722294452063923592881344785750116731312814781785192600910811728227531431600689336706659245310482053710377967339607264314737271732085484269896404871444883891833406411739573850553075709591028170562219939240084372835715980237602749559940259371072166150045381101354219496724177281905570330993035527264518535704320395979232306801301657580592597775186979675509124927106056895749480042446687851593847288750225335722907811511680250584302204856966689082509329065494754960298651535445934524937073354690793894378921078437401815042913897793816901067115945636117795376461888302752518263455702004908578213302746991969259744595579965802771760063761966527837304766397042916109937179732344656666029704695428687409847755556215264558285792642731872112128133972806674261524213177850467079181620273161399671595670050280820220304935206703471082528163495773913400852820220462328588482935045257865834434874774545380157331186850678415071950337381636659452737087965842842175175415778619181356391641798609459955133786604373258273653420116433890470089468348732409558113893716133019793750780626294946206002562082359772800176139090401282861507878292985740179846839672516564515081356375770130302890344103636116222353025902913477333580511042513734945876015773927218672607626042921145111690424553783477231578682008345213626683124568795920104236798650309888231193442769279578125384856776184191295324625549700612922077194552558642080631368510342716339640427206792971616134005056635841654346149214661442629236434311470587220415756616161377080297723677516516362172269220916880621130680322674439541033074495756779582041384984000910530867066511762299290690940845759700031508486205206434810596532019195210842641846868700370082577507267563433751551510984767261800405961101266125965856641598575689472103504752460094856830699398709023177316266806539815430404327597394742889756923950102925902484859639122130415343694625335707565377116971266788192929352416212175392875133035515021909090843923752292045512012572932607096520090156145278750890599041994930061006892972488185636608261119746366067828094199902679945894341671453839217300310870275352958468165869389068050014442126208740651162537870804791608864914060338190905844158989597396526609439102141332918989880857863082180278108263666617684423564819960602363350492333946817029424655602094504267679272383801722302646320070552527390912921771694341626746881632646071160604920821920115208201962183267069294871112020823051569464146837422552030375744349486148625876331795904830013998295367508294290874534650029309152859190959210459092861356768817166253231671082465078560749549479030744443002203108610606219173168284221082980566529590056502343847257021764960015037726794119998400724542257666404159573494945415000490618340498483610490339546243851319306241816883242259416080636669180615522155015167273023019537839143321823283014898636084643030101168864865449123189797819294366909622057611182284463251824623572308387171130945572253321930685884967554033335097052355074562461678296731538168059261401598334380239475209871294329610332399498977340003951330566886801914535696757034880476525703393730592643581320898583354257558794155931775692794712080042335807801481713115728646839987867430167097188591190419504083933349669937690494745790515981280717864204638685917700826300199474160687188535641217173370961316267610795760893354302838999637679208436642505185425088365277242202585109168342726357952867054098070750867184942054322577311767930517869925780932555888653233667404331994987204363139106754861565972656831980876200944299116107417672538630090748813798485145795562680313446667749708408031296006847369530363803753163788350612566474832143579600829534776507199701384564457117412368738144674760360716406832092961483795566466798755867171193015952359962707128309584614454316493505000877429082860726697464487979886588250957673462006236314279126461607956679689743233023536768636790494381107831579915820265767630492869026333579880838288503462939498604034729290231599607507055740307924675084710459359889993062222858071535395369310774584406197053005882682333286030147884923585807212118074118193812290184796209987703764148459004517080569835331079678161499060944240615001036091322165087856138769868659756378311218682179315256941441777800328607097148256251314197436948826349685569247721300788891874357163074711825683704498930792243688145864908071824365463398913650244833145647870435824808676423448704351884054831105041973378073793878794708784015971197742792231935826839570322180813694615964259667522308540346150307409933795182795503107788277749291844089632093618031734716735864917288700992765707464499394217813450146198163576093439229004701910302661890439755243524383269689506981495811787771625379501113528756935615870113251076097955118905922705870950131217489219854319794394076275491031030727887859487677178079760697140458555106986267307945113830358188545024620568287114612488918510057389150906115618917900246209491019125530126539911762462036146004481983256801718819883570059118225321808969554961025945505124367934400130729757661906969690042220427667036460369980950718867229816906147992731747495469336223969290475305769929310830734512846466700920101476532189251381253234962376308243345310071135957517954809841278292350269571311634630447315569546829259585672043600684101250526153455397155652114590589725340542350512573196874698801547072333586338379389420941230776153108195134894619389835407412323778215076650050196240879740888868623830233067113535708250898591946562612508152235877666785508892429494202088775903494496274125084039696354926136132712199560812927784902613069501142984654269190299316006971494173765529875148278361221846366718455535321926991219058498982115346905146591031609860653369925752295883141813614651666689139851336600512500960527908622806952730885119581670145930147913065379521462394261115289781468315206748300609327166836580216922336028413168681478942162996302108319551577019213076702685739170727873935575550967613637018375604786510727678383384761452311833151485655872338935593195270191988265241929407836379096488828452239142670330146861161821543408060743318790489134981111609698868511510194773672571254158488458091535741940378810158234832275472582056736338891758021628357309606347742459937707205319303289978817487833931703753176429389699774665253576023170068055024777549634360335549737238804813433698689261890550578085201705627204026787592506251316980867838894003412015639053138047723834949450614533378400961327182307024773487942145287980978213227428353823389413493830347492423952499946981129525561888026608518000451513024226472416382549954488523643716131268209282172162176517170046040274335579157385848450438197156306757851500787631602168201407474656934441603556099296301214939343290660089602112816072397750314131262962579714723239430470171731751731842178154026819869552702453415429266389437816437807599988304531008019513815835821410326120661922836979479146905150071294200861973756391203321962975493142014437828999113488643606165983760733423347755782660982699695588497346533210960788880393142760391008823407521999486614246470707745431284301901779060641441089747795228960888693087825591978296847347890263619042901398599229219694638535594419584247465211890074265865062794298311105951689724384769928264909332472938376805081550918394394903076321430456783544188674133781459751654409887716942960831410475046116802020786862596835233202319645184222448725803663332895583348436982257125344644565579722501143339124669574932287675090622585993401609609246904713510889088366289493409945495732074330461922200580933473871346353257001589707418763889341052820620917664681188180441015618578739620907779486993159224503836186313607438155696209253422232112700398376080303642202376360433612961246110085766747862505234029694260940756533196778465778700111328175369927594598138335291995164911828868357314566254153026420379014329252713953350431582991190976269165887372600125431328275829948635871827243726844083056462643934680519289529028004630190919886380126725091978655248366490170964034905838169789571834901060705718317027216534986073208360946009620864614791645287383270982388827434601850738747675073544054931216760592432270928121559357342589213122709749727082535885887447751110052135222048511420044195631814621242882569141379124001562640153216376505388617671505023043655237679273160335116902668910389281022127651389712147725659309978684057011868731831477028592141466625960211672408933995142238050923744967349043301071259101585096059811326724983861633807658039078406772625543308803215162468119058714896206317815932406658771866344076114757522637616599378585956323941220811866141394212089538695853525148304649314384201754999518996983691954755236114292266904718783289671521471989291610803725887725614451675019783361946020023863401156902699185534153270747158703183608960874619974758498825515583485848438413777810296952331845483298525733410468828955803064494691639003622102780978014384454336213091366611121998441886253482875902375573345927205509119712499407998336628746531509783351671148450117362419539039979786823648324622058251842608816189214707349663961491524037090866363949704798894013949521179865763327890710171204727855801612339774383555523676546292979474657128210681551497940515323747430728147186436506717396233643143083823691157707942027905046620886506246407846411689658123122215971457868743849985873624807487723823605844617563030051717286070244386532750400530832677458118501662359995569342165149474294564644685971860702126544147564538812645012544661692727814724634866944020143359032496943611186105230516433315800704187444937296185367407423784055884645807175648597623912106565942254916953107641888951079356430431391579057535407622654602935191279828654068014997764274336031729786519822375772263530546304236893488935872502558707060937792529234962286189545583831333355593464176975005021943721512243690677265940526134043682930469818949492902400559536155931094397393910167133383733616526059549151551303913406688155656344009244243545422027192538477770879118265701155705375538120946756831851960270114140416222616465512079665370930587116115176129686434981728807910855509430409347861669117396298563792318516717342476773938671995850964509745805022690758975749938715680418789241181494288036558000253121554232410781942641285275401751472996614681003433525318041412280293515321058426280742256677050682393419416768133654946346225799495871906684472587473378752842218591634752542640084844373474171911676943113178573938147288665976667228337323839595899974280492692758262229986027796107470580839560079147323744604863043240444135448619742612358178936713647026469934266098634239434143424499226618056497707915144856974880840346092993341025959814402313294877024173490916036512069502444992638535490082501109450503064768589594827087992394365721944440417478930785482624473180412596021485679237762054882955863538727066366578595513748241816978499409841610388195149816283883545239109895438441867928185831364097955071814937995079277552597991351225258143701884009564308606817179019668631011732137485488198207015022528466962385058371692475559338928823604857876895674689112675785779936638292076960673459569718862071099209355013040630478379877590859095587990043943219443445561039103799190890673333490202703504759609125268544676585108346178967992364884196158111761653870819852428924122457643481916919092854034489823054379700265440246847179598659425887484374275114896345612804306717759079445890243130016965531929400358078472114081231086936873146451843528953284448437480385013497671248363172657180009419453959063065185211157329541315236878706263772977851020603754119874955784935681861137110822806450688287633973817171075871092593749288352031055415977428762849036751895977579537959613713153492714952729933615871160418853819941941323777286229422485668683779743265331270765066017549325466369784917267357150888779764151695049455619698332945180973148480790076356399394989044781429577708751949024958010123588040271132182933568880791145374665686820828730222816591549698734098606106959559149100478646593519390002555498331381994710827152780872449260163116607270631036452983155248768911327615069091013034723453225636731449899697817835896648784892542926274568089973520936828292676285192456217357906593547748421111011594504808599615451794969641603231542274495390952656489445054423861655655240475819968872859022995521836263117275550172655924955144081776467618951271865310134464905861025257396079272084873326789120278648436567152215803966999107563993058361395386099559492297003185630912560384771043761060836303440024629606343826195274028189323102407634651780732908736054227376770715210241674887006674538458358755196417922370520811504985898108061123965088264921923047648192168878640705010860177380209129301000737221566607923853646142270352196049865584351261225088231547883771767888955978302427052207866615405318106248400661029306378153649136380186858451265349077080959206409400519858917426045777747247667473059071609347552328384020059715019081370903917326088932219352515078170283511063789731768310673773505094245215370770370227187695381701390642159512723016155117983269791829885685462350115722649699164922140837228187034234582049194451905005801571591243576448164652464317103741600047588118354202908674548715130404168262965603367093964167084000523440777324742901305758216975015375182586165552185475508677489760680080053957167898731973007539967397327510254040325199288914414728034228322429351515804934326644133707185844599489719223582116985831174633067978917444573517236254268451161736317217882731107093331739856438960572234616914014499981737955850801108261790645548659834493310171166267696833658273553285594233039811325530454136511552674744888347527612337567988428582145344571041908873911818278377690411703432629616219719277807301499418481825883863713720071408085237714207574722834427634460946690864286364419474261178438681224600923802377290556088897636934334495722676449037967618640041260090500510021831506995515765692272965186541210237060007668896436158248367637625614267050279659866865706777817258475086962376950873177932740289509383261023566972738538505341629585492668106219154369472703977453115567096014956985291851597707583884486023934069451802599289856442448606733281435074557787056984577880172144551465195363202138975978974462051226165059170951114838237274060591506610540255576345339266961736670871886363410801106144321704286593490691296747868950117459969169221291964960138885756044121422542424073372885786652446598725910025303045608360277690177464250398443230667013562752952352284152671388123445171599648860844125933358913742650214295023824570337171191574371646819380353955307392099361513779011541583386394226033870139033357147835324533126636758993847490746911508886941397400405388208983582279876666873710984624895441337116981974377175352911236308953181643297318084981405198096132953612807210084973637120919691721669007594306504217088609762396107245566577449287346956996067541342184259982195291759701267271918427081760449452691821426118492721118666371829409663248098035420670317348914854622433194367069796367828727960572583947061532224877894477944268811904602269152753061945366934395553188336156203724806586844551939027629626644511369118119940287186891022784103319458757810672790257235633760199742779369068809549073291659768156701646753108341927221698397756018107002112002692866101120513287691013331012152711436889573787681621110563134626973657990794150304633696332453002868285763014618396501779824333244002597073452170822904837849194408655334618670047417375612254583128601266053746897678295066060477565861312992268938495082180484257589512048327495399909876823499724469145426763472257034884840675102563329176271876761256886700235428069453789073447720587009668201469734101972829889046632002028305189762039331048828836967674800720599269874678274025526467379583021427471590957649305971354269074621491669358066362532271302025107984735012968319030696736084153565666493404532169574086869913199428661589921193704338933134788054011381968142135462287606423234479947054530229192466182644175580592055788649257381648599522471752036092949823549979800111224175479484731056807599347611482463043933197456796673422384303373813868147283334339370449422885696459414871073489533603891793234217450867513273245360070361216386900248727179502932080997488527112996127006182640622592031853053217129175220243268846732498198082648438674722900655137113326410242132282066869575243746961293593520752638461439445096822585574285533756171762653439269258157756251219234573470604806501665357408956572510203857079238867387976254983428170428542113236593397931858698832882362938057748679293183098354803494971414144498660898014541290233910458843970326584646464944233035797190112026341423083747859575814012535585910051378009324651986745816631872726606189076382892091861024022444565371808037318014191055503695116909945318558230351217926475269291483154143089172866029748737340694041881667010995952726364125755773528318031243868195895100638512669638194222224352392441460489409866155785989838448608919627446953616520294086628727525964008870073613623620715358117065356759354198994635435901144792570272414083565046754314352165497086007991211610980953588772423178847495564996599486982504083110697903654247914599336776878132920461297041345372733454826538396103062998527759459071427744713262867345173507588327955552841779115677845410794576540444385848078094139368687971230749076614293359334656481504348501219369306844146087513436306656758845949153640424883304113199578327305338829475752711653934195859488969521606252719370757020461871006987865924080913332173094978087397685281690261438688895246864262602214373904033869659062499144453451230153460527988280961711473332604462996338042408261922101698517046637142448778384410871138171305824640269594713865004489316581617557353203516783406460812144765722985208122680507172864185773616008782051385664935739335463117259464127203195714809619918269830359266442390608677271181631295283174681360012689648550459674139495434825359693016938935391224904845497148009185831817733756595145083545119389323768073330514176131988020416250970545021922875865338968008777585093605096759611955393840752110459973904640383145752359265862604983940713913446995942196756316925383990732605430596840847060588265560965687056051556261345395698827753731435318177809995838365742320036064944507566545584384638754225323567674724061445640258887995268582246487413950306568417567366619122376605479600923172653787220633088741447167909002613874077349427914172535326333481297933787602192592627953990929802699940777151287264553308709098604013395257444386161794888830820103879494988880967041446951039522139759043851777392360732532647572803162738957271386707735658714562259002810358089129283324430149563144787236713074577595703930419947054255630732824432169466505850533027878355184685669280254639096997513922620017549910961924274571202134066726032868783459730233098678412553155948872823520184047722191525640300445826791709549002113132544621173628094760378472237969342304431272300422863052601003269408164309516372031023781007323686118574522569614204465231286578268730270522688727432812020288180511299792440940353505908555047320186318223818297364248472198293822088365284525816472479224427961025152275528321136430249524200602289951675599199754265603089053882291113502398961990629916381212002020209216517556762755962276975374820651467747968291060576592766185215365451421481769025903031404887699158671161811356482994760096948432899083338389743079651255471110278329923079009871032809852489892530620092023199145276623366876532379584980511964568338643495239202769304217516942190966446076673614444453880796325235729475652770175885542852270240351008922815514794153620010659350353477889097805644867608399609562507683377974041447137166219518650707563352265999954439653284395094203113578450711363581174650521265349359853108958858457039928949764061528943071048662537203356283574887995460006840976035889317750711107568825071291621873925836461959615732303392295655410205397101163656627760465605778488174732936159251643757945144340949585616913756538849449222650509311715708367823248581247823939608162319487204119534282424667520427054129522871100760066318104994389893537463110796143543082446107368600141816235396231986831293052123289083937571321979142635302117518060927531585940380508890999851527351460656354190018782139071460083012623149970819396126998974596422599419773636029086559798531196904859629996405013931885567184537653953034058542587780391380182794953909744530882493283353405947574831751484575998212331652229239984846635905667299032087123346465173205769192471125445874031243795521611992533751416335175689118318470745530894728622238057574796322390306274442786232194069913729327029523117249927569406241336882852770036683836391695458454612342407253870777129774523271053355318058374800586408698441934544252889934429193335509152485629395126921953315813976940995726750077358733150402738303730548205721257485994754363520438914294576168296003855797633455763635177045317239423727326978210986961851003633867290809254385443883574523892770943431176465350091536454322214559130460638409674802051751138610496825417683675212570030853977088502664868582665190363580400740333662155748033114802872545667214989923683432186726177009607686327756005969151932302104999426100995085382746981503410639553720096641484373490708866038149516969240234031926956667815547922617832050139434298258160809603688260753385114639468345225877808566428554613010602755984402859575068723976624871363305426056608111070056474460479692420956141175819832816746316835016622439573652796346384949071882910607115136070113526668171957764375879156396588404281680345735869708575699460358017335143345463289209340769869021549955928472853360401439222508316905331665021851503579615963109394949825916899668836201173676806068423463647884798110905311865190742943681837196775127802151844437735057812375285529398474985064535943539681623530585844673397029888054920424009326151924477138900336802807255892235836476181106522339784938837857496715534119477369772687447023431859095826140894094011177292654580555398469911952934261383358517682433517762148703069144013413771131927151272173059499702558880305157101154875087835602243679179407944238676540055703868542081147541023399313176105809366963514507411812191865258525422866394835193538970336700040895656919248304760662103140543718930510475593481266004600670439326896464720857430987084377569374760130449344525113615632690401676106996241706814472187154604056662151910073490501138946304544679554271787412822420275065351437801046393562190375593537250496548765579199772692086082813743679504906500736965860324476347979708086173126833485470416100654510624066333263252162088586968325125841231468817245067118699769990623902196647934448834291950225159814165745587228428312984884790810423582497132134451068951007973742565146089235097067831912408986380689357367332531064857558416772245315488822902542949892208937601949165871102525255427142300059343776585442948884008632306708259773453076464969856188307760890455371487594653556012203116688758398111384039229780606314642208181534850343742363381387161147683910248759096681499514306193955160711473042075754188828785052677322960391700025608553053279326218956503399428309649945939051775674430350794538372719755286258726635299333273428810903008206415024880251255150661984681974897039618721651753943230719063778554628753516328983155825354117206128111985479044304045979181643732541348396573225363759866050225459353608069511814512363577865891269907606939486733077277128712911717791881619281157060896427179931772004564950863687450716393619916991177884377881817986094187336532066781064179754859231037699387798472942492593314193835202155338790616671824254383120022434263093137764214614644769564547598869372781052250390788457889640537390569561264450862789408428268009721485709108706188025732611391060529368275628499887668352057059821900984340738050195974436342434992633322254858912217123358564899892628640601240248609059061782305975123618366868056664952492052269027797681067816831456339987971209206932999479688372700128701283685612873138521576535784383026181677363572372981971760951257217713496704601376940755377009981047096415616365663389940320856333002740590844160710362291914200946280608160306305615017738171243253714416757020476436908659571214840489200955053048698976243613947560194803689851653188238234110876761668081393188099190714606654605346193588553063609083491721234362367595289435750051724662720084199446810952768018202298605016155064465945589890849116812462796563022812706590670925894910021197443233123167798707417168653139064538275707748585003736114475555387058578437585773448639020015969929348171585549167519829609242201366202987845091164579304963719316278497115430491193561713720621378792243026532722029957805106172661164310133830533312551321215584556005281415932308004507496086013990990278068963604246087004488250017082151324480808355709507778880987235727291179648632938697674797039980219103597159646391227598771755102697767964241363290059673871354091621484231627313118798661263222532531915438780761036344859453287700985520991793013646307153990479608103045181185957178625445707963272730414330644185893436802472007540101233370966226758524302595181538614591765788702872032532752441555302881195739980410355611049979278312896248093079489118774349315568977459749114618838644856776629334963064841490923775205871782855414952197418793154961495808067076681235556436737985330855484011759161592614313273500907961828059334323224749269252393755333775785812496693588522317826744359997170019012046944852847486412108939021905887324386448191808306088384738891333080162873957125884659876991582275061014803562113643939764454507795515781112009966601961276485744582004061119748362200086311133005541333226378687817557117371503447642189933048562839643416624176815484336293790283245317326237967734302883308207461219808727087517048441673555074800052108172860673815812433392668858629334016548651487225423133003074611460351697715616712749063743007501020642247774227393436348331637504102636484883851083377292779184374314805889494283370377543608553518278884906471095093624064759906629210429591747284774535640452567996052908600602284238458866910183269966396201752165896390092907665435954200585888233689105109898411232407603716869151385379064951806291501681617239409374126982291388544262844997260582607516849978171880061795820766824812870749525098891946627766015495167174300138042792906418803072550737392188240506329980602676107937819695351253386962198669236259882968448222970774971903958758537858280219322854037781601014733394078092164670571704127315501930822782033106857671889967879903768812109819677992816256050748462683700461057666947066940726098808087815021800021277177011798437988335572006288938897630148284247192236705488526544685163621089468381992397207387365473881428523257824855532938984700863810851146836275061867510521793097049828004081786150884845639220194135273995424095896225585530499651406083217460355006789724760534557322621212100948249234379572650863590308637739547450922743863862795960321395569354539233809583937535153384732815643084386744964374418617936674027296808244901577530954490420950838304713599231869635638764321373818378746383276920995865478576711054404272159756188568216469115206434196959851313971412114542884458437490766216877267175975537022942803695959260709643760518154579096200472011510457335410800866773681816134085214065783832644774398450830715579378386413580164800956642166630420413085352292893082514514323339845487853317399294714137833629589824934036860915698406749822478264562939243914715168031549119468664036518674464194209652398825465180508911910624839213001888725706510408731722205262049602576609006583985066721560039507804888688230791875987662261918765343084724191845568489131853340271517950908465079602293204451787423165747594607338065548452648127991385555170651622258016019976578960688629828985126884049026450519148815095771269531213983348648171226226209110648007039357816448143074890608588903838721727093825009961429464146764634228404256324742257930536302277844155617670422178526266327541427024960539661239967303273428292500166111694829305133519604088405500545528627793239949283717632670236927229587317728442572160477546335534479556995233091989566251517297942736405852388135378789687333566562070167612809634901594619590968895116571389839232842550335126576219336957583970248681380556472496116060726985070451638337912208312712853543947272018525085913939592795442630259554565276757236172160645777536511635625551870104990534190082025542862581699325107840868267797362008810982319710443409336770994677912092875797313828312381290390450255352143741797650402743202164807583068787802355093596322407273205689504466156758968824154194770730885120408530401051431397865030664931746645501138286680519044800086004461275286005431656271525093087424894129944634780461369174559805724775220199386043255947154072389134839318739361622713896692356574237571854235500310269013102311863119900297812521986385279707170306508662222396725745446967458332473518540585219394600976956869576600493988865336799576356860109271744169342350631353152796878286996688347841703820175133816668892011104755812543220475847006165876245497366705388345263046561605851486435204761366696143084630024624391730220000292532007656326735172179196947702564362646100543682394498948377262291595713013531774399111122661670723139530524669195528507218243484576218707707879240429485762001341414843470822518629531492777262111943323543852208143821224467536386394828738080407262976662889835586171695733857031644389751377838045497512232906497499266633643154694668866998560530055343926191588063912712023738421709390896582879570394321629106419952060185756652481842973168921461016522644461020220439600946651222376574258889714930837215362606875050848427903575794730977837678686251650578495000592339116656974690841752156052119079463990988053132208042614581368449309509612068016840053621525878371638423317703641447306443091237268844842993153105178508810202287055010514381543001239093679102940766736849498096754664437263592484787469230878892330839468915738591346815095901609447965939969925698237743904052373434176172740087223565008614481454463928592853429689503044649407481464708485743368685947744875227414236443561538436703613984170887593850957951078935268569714464956523399286461950651850727535739749583156700319738291504281038589955559971034470747317982602916877426144280390284494987241125725323508526901116483015433448882011697569980978341716675660145463093426703236128581591710518532861275714880404763981912708925895987342224692539984010594248207712442244250163480687765737616834391337723949612069535616381336501286893472960259833422062978332536776727370385638771551900243054143781902775591362307945981078130443312933944123351210005814176339822961306747072158193543310871440281622667506449320410842341094176613302751186837018334050619151704350425810418383275842349751045244536081892583396060102610221282456748067510254989161122205804754860046211587835170666363708270852140736894936841733589194387450565687761331549893601845108175398671424829734359089928398116011590774941127042639207493558322542217345067748230455971260929898154499168854789095055510188569279364095025028247810342708351818105761866716096534210793103699021889599129576904131340029051071041972628429544078591602592015838241186600354174989384117388268347804621290559417065042417052739217048419044170809883628627717391615083228209679022168205970084482496896388216111350103529745113912113296099013624011376526994110553333321576805480810372453397061058364310037729435956165589118615502390877380578684695104232092619163658639273080404930007429558746516368045007945038785651317453222947721659858029958399265222552817896900695022225008064331862410830394164623625136529032125778385804926565448078978816743042825236271412259143030882003816560656678344637385161717911080721354996893870459297031535233384177921285318207730037971837617587564987334156238355970745601578389923663160841255787903642783189508850139084284823579484594519858183860559982551068278664773213100750866807697191267172276337972921825619071571526956406577448398324568430909175723500223758609087129753581328287961287824207769029488256326392895633944189538583517080255906995379687851223216547643618933725917446388303123928875092781266691279915079164492013710654326301685147102217077609270725399057947766929294171405751499405144798170111948720263787997166554358235784656114439676927664956888359611545707240009823066451986199908913027712453586964369457651579073183189251113363273274514660636610706563444419558681195064841018296554514475750055141935862415672093529499792300459787896009568687260391275550949619129362230940180654277194602918798077046734667759069419236544273643903238240531197849475977172211724176503073540698540050460338640826563361799343561557154367758324597767110955082542950035913740034026230907405355795122984541492041796015864266193782571803082021400711736959810939230089782659254664231786482864879420262026970366980334881171520440149244440652297392351541720165128767410957798443552689085319036426423510491530431047910917279414137582644223705693824884324232328253808227947156184643635596363228442570863542315461159178114262198803440542613173698097526158530611478804280103940113446701054063966580307376639519697503783424356599545999495045867502423364496540744723133607982025717291038093031215336656358791754113819114808032974295331218604152683145671368465589592626866203493797295774670053137094824665382157368606521823757824543846355411046844963850331093982714978771916609075241331694620325085082172681668410503261250156416752343456049329938626932773106861282210586104274461279437995606240585499116045934483335797965161389725148771582769499196644383102586808547258314485510469702719013944416179966739450074976593413909424300570285757862502192525216900266840717985853571753247724688892997224726383104974124012553348397976766748090289135442631874575264107371119783693851748159067921867466810432039008994468079923943932748459244119775366657842896563617298823076736694131595366660024942716849413051539543855782949110248685839932623465873001830213709021141411184030920994244760484082768655150421919769249266635543268041172366114265173742464587032461416810017727251046853460329752248062687992462249345964801181559584733128136492556728617812327123740777135524124501164644780040902392543887115628419971096580716965403067669684349848945504960866521897186030267304227640783277893427900524026709403756894174658446785396947249713390593893838620092849473725957043017611455121058955956840563147194603173044769324163227362129755095389188553671003909052115333698610665822629476892735420111789115514716119160020630641381538160969896890437378246026878627450656331284035158531768082552848141168508185559319037790166422434610297224498458623235826466250322038350351705130475959031354117078150540401184808848612027355659505126990307056684558620683151194988115472152873802338029323705643114510131464090043768227106060404130878129733540680344962996574742289265548597894001957928909175904874869248081084362963888971990839882114445910780670308157287647446479227936972571918439116823988489457596187668920235343661862376178493392420433042968399319940810045024189480207051564071431361117084466881072122395788589940920043561129889247809643003302807205783461219815741034398588330831546221890603196062987575774248405203666498129353630374630579197559144156766368615038138764814631277155065348115117535668329018613733826230462736802796935803355794013511165588693107332294107002969949633039349098821776668004898447217141511232979181622656580484995754401725439436679104845818992193818342846919486150533641104065100999891041189567301938012310948038200749250759629918540049587617050129295352645066857805606971775664987484835203820017019710486243557135589818547723995681991458568019597803770810359494630211977735590876347366578821818955572543891670212576591943775765978462151905774719974346156445167245574878814979837431820694385062259859095607094265795066802267664722765710289084104454149469652435557935025390380407309294840156277898481297177319500769398686031104595378931972548483963342853455172607127360602479221969915624385470998975288538350323921383749665123189852017666562067281440129720968397562916334016924062038887782756294840478704730263580457128453525595451107040516536019578759066928520710858207349319804786814443378202106459894540851382134694156653165487084132529613460349962521523987704926509772476128253903958726916647479258884564198263179631207554344078583862027760092120314020242979131955875680256014434636759128548578048205860907258597267705674913446096316973924361366436158471086178140715117626305057297541637415044839405241801023144251767140518863659563983366422480309332970180104576539030620614595104390863540722760022851886482434062659563809387255584210988585464930344790809078446393705215038163193235221313636195425127532069548695758651213064525925026717773529153484603076075776567014759203026579798401934952359417038099167982111312076525275468935057614553377178653025045963896538357156464533795273386355659431839948102739666721458439415322146619569373511535657800539119264662870597038469654191379499612743110170013065982825808537095037342894006042611492665621219118965149562238890768245652600183125744735691044462790897048672737906821119937805866347936874172607826253673099989479382410552003743909329485937212580875003366899899514070581587414099015934635183514857313830426041034795122379460130045330721203779517011848617102349661974111889931180657928356010049360426675207769202815188531877230352484658029846574170370776114334751448446893017554536524390917154543850193485837609727891624087481082605013197528236505477829592018127912861364992243358723465500698863139688894650630167500049970996239343048902018398224985368901433218964871119109398163016780020169584805734426712897792871115825421776119879314736432435919489346690563842757117423743740779976930304581709156766408448090580009532499134517330650755840564448861891561572386167092368011746561665602583810082064998266447935400971523526184593868383474105703880889672497722463338372482603129727245873657447894933928806655661785077302410778711984470986747267097114467321208018503925955869868334189548289338080620596679158208923620179138854759406494433953457594786475883323328185249632473145177293004535114787776677765139310652459467434155423160274660116371818281742139953691091302448360325255123727085637162018776464917345803056032963524660950502708419027965542665332363245542674934737652607308607615843419023044555158492597770944808180471972412161797450278993751692379853069303096085502698572437980164702532858159763651887020872217796835380672328243505518350025243002874738416217119550749866493169874036040853694802429778075736093329481138292427908244262595643561430421880414720841536956900516800872881392400688046293185169479721533914097830344431956977247298681343402404790579137627680025801253032129767503381149109097503600414046484196662259107875193320258292375589655021525416187135686459325979164569841409176608216983122799258430482195470471780069640959159290083242336063258148898526507185016517682847930541322660451280538947550936827553229523354647098186748691860026125332564829419601353991204786717341187714691200430516615697534703822224553104279111644921653094624999451854041107816964636756994246570220510134206502846178172460684687219274563880031158565769617699282635633598251110869618636248233519871374555137994749786475876001565639805764303279634509196131897579285549927820674573600647898836052700568104411818337814708096626520831531103449394143208464264840810589511996874906124241226334693042561250387094145369394133186245772316805954317007473593790999642879235890123017111082464771966088828499516870875247401871326825269367247411127335818294848015188217052394871434990217080448285801552660420511146293043930052422462095365281449345743163010511870176341166080198530075805577087467498882192977728487915350405436911216290676947740897184568219385789835602346804622183141951466240842944636652303272369339406871436339318924094253060388568398670629037552895468717719925404929984819265049756168276028962147229254783734946161037441018606349474650996659120522948935535940604433873688205905761611028235877784941131237510791614027629394889940311661389513562952083989208016238112497201476847828445970091718436325758717840773601618400758887416405936612653927577473086974369624283423268030984575977623378151774899146651422024414131691428060366227742079158918023204552447143290731771097679333862059969593374830959819484118293142043121722675850017955857616788507153597817058359031625120429519590790446914186617677689447976411260549732740602381871037756720893061879991880728635141970628331795925291043444991319855601775194018612618225863726689222666406282093666932683855527105853549991630516207414915139472909959240350323690055535010192762919017122783070026695728943760309503770153094216772101803443755362543305508323403465065470725097719355213465146326360740083646868747082497031479858905947991863890649747517153001834132890630156249097295556599584286913806128276622936802620590506166343684632919750244542475898533932695592825288834727916165592843039665692597651856626005443744000112075256382588511963543433057774099436632161698400337613722994690271715885582474837133497404570227337951207000122753981866585896831890121198388725150205583319496826346160998063068810590532572633583766762231585430695779945671246239962520508661157220246055424497546562124318932251758681197322172948508576688399275810439315341138954428989930058990227199776357003195926443116449549275729770761379089281547474771825985877111383967386658276796267847309620795835555234866847586473873616188959546408573230609502176490819395075402107937830533594904645533001908555207409245808523156692801248273842813613141382663084241794316995121587885399841037031081918445944432114445981320544227050341651220379675037590640131893419548226382882688478473110077262059242780144338142418148968667899916306083696836164525864662715132143623079117707795809745451715825220000138740334780818261775006403365801324261108083377826350144287766852637257411272216537453734863895327175876484755178626660924749585693232852523712387157209021819697941792622213446471160862164900423182033996129008742653622923849334702166584541148113101125786003121281608356118698635722425209765581897080328245379180801136107861820175305440809489479817546867440523403420385902211576524613370994487820847254448618393595618146197384197403585312962531858304271379947106279062564346105527537730125854920596883977680583130465091032291039668705262892614500979990057847383814776237439908146892617565099490096757206632154661009024114802467095185740281304362785772439776647436038965438733114511690558695928934253906235419174333446879721778910604937160637338041605920317327052501754908082958524826744282584562754557838370315219711917904283846271469505670011070428498285615596541557480426386978801219788422634298238801063668689919850301933849944587864030258487935611619001303044206702290642996854607892191076964595613848021819695237015380903366105092461503326710057175989501218986972226266899525865549558556590672282006847718166339643318714159072622192095080591765636179407673544710808951777760999950629538584594352195262846219718709109318129779415463583876080051042196582409015814879851932426661921528211838092459438296836767677077122218027834105346710180845568610396525757785620434392636268293457878786692549618372697557547722079589554096196030829769170495002775384882390842797285581849233379531253314584594793575899128972085782329581934497927524810161128577385315123832170810874721910328821656189031966734788720861592011732053294162738906560185165189786937074428936410798996269775413502992816862135878695801354191735163046074706322383642035681922609327395604365548665938941769598219147462114687746012913878668159722505721178034058775890978967309646379588719457869218760455424471934344401271593020538652642948412269223747706693981946990170319123106207213831856636588853158670913006754451592810714528232372132796074895150829806350236533051806627582907171245700803193833814734157164687106358461203539856392438770258239990758498997340742233924131814684751190425935279506017972841461797654195093751058764974781761550352048844230946903412414501500419562768827885880919393383090393952216754215709681020023033382273033155383772558677033745220936032920025055173161509371291028083613073820876418847935638220758030592478860463989078169856326791912305523232969900138614101742784392125111763722009818279046351654483078170214628794086105532631433647931685050109885847809140631068975988537312252237595599646725764893042977939667085207044710063429852423841123325883746997328229490589585807447528880897944748004907273410294913465980894807213916221929742619344407352513443308015726772930672967876126613401080565347120266639846509323499191610617339778162042075342901075161557520622060000269834761453807201203106490918548675796207779243975584426659066170306106474588129768111787316501501957638026691279756436989102629006108766680175346134989713599498536890125076053246517584901819249819001653963420738913503813062173390021797873335111605320365025469854508886529780766846162618170386699098382407590032553893873110060658612522385460154263993719367353778713520687715042772731624263288005082767170362864975069180749647434609315058969815098256414536307504598676376501537696862807112357930046875925103850240286043583314872605592949588994003433098775854208209049331994514664493245535269329756165495729226510600479383439383755280688669145815797994528768313442983084311824120051484311207546244736630622358939176630977795902856891853645897010506132290671985501276665266481524577768252418912424140457612859272791880839941641852712452239427975257635375820742421443076995841832732585782340008431379266287728096616057495745036648764550472441315209864177503749558589199748425215521948323996623813636140306479565978067294656026016509050562609988817751832632864949358699398049279835495317528138710777156854251136743348715512913288148401177881040282386182948937745950399922904731133626165648788295836954098173957126774158673117274571941895168688313112279158489383413841451024912490202888052060076838763910621155639277999872372899264991194373508549744240274071100749806827761281250801391063028424553572176634748648245362213116677741569871795228129094075254567300979764831044807386854611480164245310247115669560667003416961486415654179911398379349298188243954971195671043795991643284436668841895244606708335463427646762632715989454189870033368025757863931519492921979199185618894819289912327869606631661850374030239603639069369593583504766919283586048519937980927618440527869986911304477466731706202366017667211330024277538038954965505062654568839816823250326964763617165796675709399251793099587604007634204626467665322673463683200542154966449230679339561461142383090040785926795917188589078179465174125154240801590243437564535453396752573999172418755231498527664043592055418221900632579834943700391683707693436589686304248893386432208078734888520397066961722002051309873865783426531338639453147034876529582278711750678246611409000404440250340392391612292970747782972714401819513583543080410134308081823206627325531398514491631389853537013166422208756653172186107454955878480021683451492974674823359699996524393499965629940925155644310538009845989406480455599334599825939632182226610658488270944272469029190079066589741908552183451293278063214388620170696792816049225722150095921685308708176438400703722860868634828857265189749991592290038027830549675813944420059708787466505159615018909674265798417825834192429053551952105468976893986569762745603708905409254431224146944162367613146583733783983947794455501428669378480597739457530543659230390491472166117953931930387619514012628874349348920197293932775541416586496696380890380131508118838312089293289556710347645887978519254496273619543855634750509870658727547492450800494607653977113244363081997182170920287766405195150475019916527894595558729484201160819437639022294460966268928822540742077446307022796345295474806848775073767353236040591950137532135238304946859175432910398499201027805379501057456519962616257135571775412512880258445313237381798076977954626714772299858259643750677696499949315491431723311836800578624806189375230139416251016186931681468881977780116072729445724282536398854418775990271162177973867602360514490550095666496625211015933223972385077177692425901495722056999440103438010355598964673005259262002614986785138639365474603958262463100198203223523717300620616077998126817910314372872478166797937731655881086932008437989351641573715645180594197126610973784581611107730335511337353634362722380282877528633124249358836719478339451554348862357224636378716410575011628578246652486636751265072359737686238358219686307168683769038074774294770419613398637534532947983134552023120524010725144160929970447479158573597390506341417071795116664609201201449051198114146960584318540010437180405950009100831585635422538691273494739774184333403459560840388650698354122153542746666061600640239941513037718841748881282615625102971974795875459729149494213299822740898167562913511418083515668098154869162959626202508673370327551418656008619878906239375297984526022314618165101123056352592204913190957615226774072459207358473518563505631611340137594278029157454966199497113870092503325081169440268835931127526387156111185092103014997452794789007624696722068879063058206386123730667767656060374044920597595816440685792671005211220651742387375474907605444101288755787445443463216561145024694517052099112278747737167510202133842247112169405863230632426879598524851881369124130909809819020929372298586496369523546049030809494733594955633064303269258886084496183637519560871429509592007040091953195146744618510964067712789950412975745526712885377173590506970076254894332853721476449696100454563274188588844867158942983919001474653905313130800701833030139440811780833853789733264303958064042450293796271611071792446868774976638971897905898572265399891702234762410837674121719200972855871985777764004486602300960359559670512317602835234254147916556707755450743612412075262000453814260681261922425548375928852075299140640696254451094447697490917943779586254430332483939811240623873659935840040853929109717998603975962043596001039753244257692608849950337669961733956656707503103088945465250576576776091126784122114104986549073474135912351367550814616536549359432331992244308845861469529876613554980487515041898689937637948364768196964935183140090477010377714782939275687018231469771901574748228392417179135461995218433264445633838107834823153472403870263321034648386499804322227410235432770155626887127951080576564319551102947901791858124899104702698645519732969088981273970592347993646553875058450302511218890892098119471228461470254677394291270849216735187625182465149556711832667008204907796583144987984183337314037635408044229245727133328122017333858609811140266150484981639638345921797597835236749345137030652208916107843203153669783360119203127368970741164351367158212638368494776623298050339583335288264812901787704040211543569963406985761802058827571143310518331258838941172472513107995542251226730948126427015925700002208190789266566709967620013107997255703323782369545019628719885414066560638398676463986879518010861731363129453898354272829217138237343187114325574325412461648770350975151496708495265315471204945737279187308642695698862616994886233212023292008961622605772680151445169300999084400047876968905450390816325988788342721209112576791860737221170383112549467642843067105070356805459195810984905543840337501772511475388808581388743142969525177047442311873030561129367677089611707564490757587546897495613218046357219870623266559268058022035169996585224016040058226307305553976528223482061189392124451839083921830070287683031159788477735733820487950778657303850477500032870895184928304740694019368509049949470349442669848195791649047434233325537453215831082552964047176210595549278763603040398682635744095509123669819209824875796763453805412583552969957879331793940231086551835362261725545870491523870913488711578196880072578602689882933010669413408126708861420147423060157872767242498685228549344004083973749566394538697906831809233470716175232820743547084586884786772868874455312510664164941472762259062845641672024365628701184524165488412878003791471006423326625449834928392296257977551615509816748553282170450793873084207271624873746795533163523082500714623163843115038719859969347396686212567495726364316390267864655494191641090422224207174532093999870857094872010360413860742399886559944030784214476786205621360271250249105281905819788210285274762585640118009940286572636575085558978627572197325472526717697177360410271871220249546315599465491568409399892455885926534002884316749377163485430400811155200991024591727155764292434219936047191468826293869923121682253017411709332366770391016716651317439306907900659404400524733649061194670538370263425441715200197023903704208362768725907973569745197411164158997059921067578985158952530539800774394767040662235706868786977098465091164407516569008156912496462408517580868438706333545841162665345157024092519612696969980095305168263203344486362317806108991121284103359020777880081510631279981116677104232448392203132605179801053185920163222301001169574047949623577125621287884677813991896523385278187055762134069275331441492670514979836767351768770383773886178717641269654644563593524478197828765147206389829997586050208214298604751336848778924118355881291430607826057926402722797194652457685611000945791556225657135104198001616849208585031518486619170767551407421974898435651444792209627382074223875268196733903121614078622824144751076500828020298460337070417064355274539296763528165549624029820923354197448279190691006709933706956269664393038009031455878290010503938730377961361366378248159585363119262808523337196530043183312622962198749059144193689553816209691811002028162264803160515851530649146629274362948686020940096239499849504008638349391110446155418405948335658884914890808460504698273094090564934655243325347791473224535055080787947623348559387408452271523556651233927567836426941049148613025954374107632631383636044017548864980436233342914742519185275067888598700379064606003297323770192097720300021651328334351181852748801840251654714772738531867384835977049827942690801535381093950276923804490859814003245514032185673200786253354679005570891470692969411407944225674682966128849304155669323825687030537852686035885497576489811304562559474963954120049008470745262097496438650032185470613156086673906926189183207045535540044594588600107041478780269331688118126437332393001281316777638484782416202379123778004098578106527327203640970822164895925884719503975620299140735651604511791465072704607805565457557587243888719460391150330232564050990326645706515190329980305945740873868899809636866629035727313763284020853875657673929291014899078119002695460187521962352150404392683579186127847068388009846787049136276700460029930419979548050691860568375853594346510353539289045596653660295161066611339259085575594906837720856595803267858567717510109127279802908458457547873302477266785651618600242524104961841630573889630941142344291958533998038428592283515167669537812689068384914102593589407886744230161001657725401732070326874172701152692407866617833601052655953314409936040026601135614548014138547608808561817901263096414996582576883818787973825892010740690776467563930608806330457663376746762935606364418194974206980636186546699071871168890747915823600292323646323540554079160224586585619211358104895957420068348561932758779276639645161333164003022917677109334689522247075405761418749508569434434000012058209818825872895825369351175199308102698418467020286582691922028367264920313414352768844401732199235504451666660767253104677687871422439315704239240828919917196605038983677094549028328076614868449682019089637440109949092970030866243080254668854700247063994805254855148804857817123197075116170966360208321942626583501724236689807950628007437129551644501599190566148453060326251236927439535811996992067680209993968216900080674591656678964381268991760387170797868233608873202147573306989328005773523126231102815347147547363764715070375645494027378723950745359383864850692746133503175846472123450379673453159893130263477163822263422022834332803297174398227123870709078033698723297445823356549581229933225169409213883343059780033523564967029017619962993685293321449835538403760397908574692798421020909886836393097502299406579819411833963910870537344545206464730883906490829767886395515048037489861153452799399943882251625448203970226785661776259240026097820154781570867188387094520538215764824896497570872298275098548145550219515292797884847913558290888900651500543066244900300627027897230171346684345870136669656602292391359802637785055837991875148621307871709116765546624949122191918992744465845405884809591501891039493791762238674779798284754629795963472712515708448840757281916289539968074940583900152777957073419402396667949035524729275937015344886407945113331876610540843722066202463700619730720900176671985346190349458626914365697583863978548567818184362560056014733466873199049988427513936701367307156302599134782891459064264368609481639015936491928841653562816489515757951655042527988229141368218561324661505226606706638150356939785836252480955863925289017487557421948506951180239476419512857148784966752892328054134698377114020370042912480769460575882232082539218684467674683305838810888952200716485690633485617018794542609280036556625283139604709299589369866075438116944149192159502597039144144651492758598570052139767315137054923565767681301048014828926318483868098041180884672584525868585361122351394418503088782856075628149393158953821811404787980909442920400049848099437109997090418313248296912738330731740794262724044677126287016452409762352431113341129305345855057198720728728036108725754557826801531429779491337545230849273720763387083415315071967329659665452224043036685033315696495078837473481122065793293995561916108425913732619884538921061588687592102524676627791787815337428000675789683656911767663960246968668275496369168765689859549742847188689436611753472354653466029782100862735347879504569754392375976481461034903848630818739514143450939031600588634772475369124186654555837444661620865081353326637692189537754664716200744959149042167318195183866997103295298144765162829198146882498291381121630107667325048273750921483060649951872971094721398561681983572360679194344140047352245868923288660836241032505274490217882376579810975120530908281834358231721107430581647272134754365731564573108254958896331801673157001150012757393980971647063326959250592740374297870642294044538334518183972118536486949293915400261521026732449267517570260520135218347925520876472556505144626494138776192870529796239456829511884532369370597709596533231750900117929182003677360059417924314650363587534455264534577328733801022715468631791578785855180650009311926198526489470570892198708835169986706944345852419247335857888953866693319293438241768160398707235845344666882510319600455872641753314761092135326174512812132353852042281689512956345494404420720576502334350693426857456879528624578745157514699893119237675950531450749694504088670721209290784891415478817690722897863938855296275877316725074391052169348461563881523349737065334016055689634978871762279718211193586949244133575116026009777584391831148569491390959942010947243096517818288263057911063030678279190310759392079120619479944914320954554720431676374381774496184670791645909282430069735854057061848910336695997038042421491664172032867065183828121345789873780675725090005069583597589733930748260663383466831330711473532974342766952895888166965824175419971742098483880350571587978581385950735970856986346822026522737852850426136247090489864577039868197542011944185110431756431243541496216638629305134263242407853753077637629300648910955528565639853202756967835060337146795658149784555384599263411738092492184814693374643011098513541571066677950463643908132155704056192190985210401526909565177038140323873213425334440594231516413476936983493663777097720840513505861428136662693298703156593274365229469001842530580088951612984218705856907437778065824982971906655469530401065241561131332781221716355524568448630230583951798800062342990040999709303197683850304618698423654200557044847691102084090123907032508347670035626511688076047842685813120992636164867762141646235435452145563373206354822296094636274473358257442909604173392194250611905882212232651684627222518613552649368951088893430200928175287275207848022861778174018879957347701078179665384584710652393859603646316085047758151732376075716206524338250708701808129573001162440612998035503606704494391981783752883784702607090929735519235496537469748089715181375830053301999196506467069758832419689290588626244182268745606774969686302080593318026722160242228288238286146027695105104719719584628406180738858033068810302826018470172739608312179466170099553769033380942935902881808675671608617158033870201566479399726405640608531285321440613186031152586765303815322624903844801853436280064435367329640683078193932300222080936420796978190722706801193570883321796501266157892660002610780229999356007688794837470434066888862077918222512635782224288415272066072374654921284488254122832312388276950046465016753151973938013630435234426813960422498408596027226693113611177470609582943117986632493271141041984493292385255755012263278275150394744359377340934813297496352491490954396849177404150331407373261344102607660337446325744682143855295056714137287990216049012851808854925892495419517303691116668132293678601135648178282928981462670559485041374467498443118765761943771742731289531469345726838237746229739350813698743366740831166871104302424939868311275867407181913519239978390035691099158708624325730768735478461779810687808628211180518934698199179668213604101713928430793475114506418042618545364417450135938830879380986751320203727446446555489729124223668715032764570317387534617514015374619896442251683814774355114673419648857236062680859463216214159500250146714757930549858728232645813248579848347989803012386164215482400135101687041762704616793727866268234167149872673572484965866625774806522796328399754210897519296596489491166421280887898251780792130228183845197921192475646629053768158045432930760054099423633379977295708146507465559604734225236536327029418128821792231137185381617382455129326939679721712875677413094942776950906465557840032929363049863569678304521057201900063668452571530600285290517304594853470295820846560147015727530942212800219420097249556465358574476854854270876031608777030470146813143374478288429791485367357602810563184340773015642344023633236065336161943066170203658787029971352626138019720531780787541589752279585344511783153720787092854442548661420877939450482104351961009302935103409352727747194230619335632426598021441989448064330374602555271450808390752444577131349627349611552815619369373586104152643251351629289960814696799819968470717891883281778695159024967314644915236561642375196819542679652295432571051311951190169367837908527075070646170762079572273044139355131886880801979328961885212944890588869631600300483811320466004258162302493493767044532724038135931942986137652650217801554172962506843090002650471372390950972076173726568131828702276044073379344468259350193529104994878250272312875477676215894025939377509366806642156609659354200866582022565503363023992028258152799725351696310282550812273103945070467487196381058061426841165284776448660587623281515044061249999943013726257764756320257022596320061348128951876448291122434798845841893612880076831749200583929081075312352123353903122147957145848573366809691763913870794990107244741181513932819487730418923682791433628175936641745819131677014904410860592462712129598267463327140764143779322766117335392697418052000881688509752812373308916681386753275174482752062415265745038815501189601749917079577265630882638536588912132176527623330515509171036332890975101954641180643691011831037872147993364639253465354582037342916233809502233844988803003543571810436907959060085838612647962436102200723463760407019601207910293537648680985148086537534894780923752154319466935131757535654736298476896537005076137375688945850573718578214693043037897240553511432733860674684066677559648558273384351424530849807009259711836161220832436501838692182553553516103355276873331926376359861825892763672351730789635743495359152292405091920918163294596374644620277081067606622267366982266596429360365413371363644709219784777327186973415787739026558469840608550215380583279623601822782031722834043809567845237701765592699226479090456351589812027741147327930572807146326872831902836637814171105945400567963898026936254460574255801032378642547019138897375489869690554393170207820410685790336844349159614986824417463792775709769226220875071517321787124338587835702454170985143580316315306794521027902550569323722024626286116596348512937963604984954896739860317780546751932621452497179963564397833447050015682001087940249762553828020220656522298108792607016631910013535392890864665834842817158686517812890407416304128309208686671436255805208811099966713415196332236540198680723358430076898977737233869846049415692681038393085338975660040857659732131244583667115155300438811136909337104638228788535019097524478947219388003528355908338496877714242145990458935932208136954722584894162422665462277796470875235638140693497928247849535161558383423882275192738527766984545770078375687930006783604518021889119481622434294100712915279052948930389145364243238441953631936465189728242499392818236608546474548944745885923800345475724495999758528484402013804743485757649291643268560187828027874932850492933866050626245674309566763267273185258087896798567655802110652163048641947926186109796714251872618434367977174188411531327991653871912433653288799442309834056688048627076410267876463609636123796068270929976407985327724398450002916272551040653696999505505898188847247623091917758549985224307986832157763713571872240109604131945403864065808985255054565431805320571469513477883254388133177323295867855265963592814628718529694840548688574666122725312358995667809486217651069743819543837177016422031350184432864146648276512802025557168922124318954279169018496480107703933976233244875799601283640000730406706656081380312683957429890224506042660488162120702954432272164006219028751206373477261331391977546912961564201581609607559588624061795661621217596696268386680931364735605462241095058963512404525503184585178268716953820244117021345837419042473127318211625151767200323074785564123783363733762174130804051372094322227888846911481518378167907437425321020680600316910741854131306111971290699197088508945606640992951293969215581114910471250635104938890912862596046031847295365538162465717902481674715281539136980967890471200755929745965181952689183714788518319468237568184269033538265424767129050317490364633088959861386990726016894257599894652596994572552817198108561447022153308633879317897356471604214255684198696098223726362525263053043294665971510501547674584633115950135772818924284783259875322416932284161415949578255219698723561459539717026358301167076738105935467611697523079261383759833892840513376599464493875651383731221332174335626927618060296761924533667057893929578031447128746352473899642966656350463591574137382344191626185761542474182396104431356583416478322312886454126618417356294656912082491506629650351711089586105498817748231181554711025605689372009150264307901263170853987396059017135882282374376330745982505704120439104335123095599402127349682538282065428872487447669149604778659061508313810126389635467564914817710168196363208954092481606878263736343362984048865802600259628718488829883600979230293263764489009777166006184901593312496769405774570524384489928181124536980485686794827409027225406241532598420607980591414032631551408445027729737389081272123788885308645575938582688557649511623116671588908541045138133786049268067991548594084083711585029500491702331647345289330965897991554072048645320201041568379255283761234258866555158002258907997215339498877404112850565834621987062678918271584821667644879546015290262058475431596798367874853943936249075682130597540598012454180261057395627261978336579405216384581802053770584203573579557392225039363698989990486991439345831519022521104852657170956120413806521401451366586965517291504395039408643078473879805109115377291794950666798921924298443897862414660134587873093119789448150127429726503567493918718119655068606134676689622880387783029946514956916607309534699968875210816268562087516747211032657806458906522743525732264236375890124663676123322754257746226459192330169779651909353474413879961524986601895388447094707271026391118327026885040975541403162207163263439706584487946537133034098649579835350463359993013082611549343315311462779845812619728746481938294671268670578266342197442483591288416570869952366035311202677973201233601428500214840649246062534352064849209171285474530999684166821886871047423454882204101694095974068230668069561338096131143075413013856580260670537030773346558442770965193555720695568688190506837189205181389237025736518040225867089546828028662088842748146023404505524521758235222450941226355158014703915688060611921443868266962641336793356694308673772228714653921097203036909435207213128142857734824246362021780156434338911963153988930422522465644685669218543621486176054043582277223755859622972820739247899218047991727823158056963642208383145991628744787879898522837748821810808237033363765913439703324633209818054618129786412849859390199432526716573538302155540534028151169710925347069779056708888524790261503072604537675324589495830866297892170514900165172616466578693709415825957099461539288860259192222692454231083676019217582529659518801619213641488039846732997158354407401854344363567795933392210096285311232003290640895763934427395568598078430264089511510079077314501021781998349711567543374180318701865418131701402784762604301394606822748058425836713305725240451825295949632434403633368226781155636982553764597577387437733312972688512074215404294668175684736053671838239494005690573446204370807261014464515418928753688715121127023005192465688154365324280823235258812593606354010201961915989925315892751960376403734100433468274156578675270406919531697430678558971847527461445712621916481793605315920854043454313971003909354001032688014744279608361649939811448984464878695592467150874200485530185024828468311932998876738019118012556264233023183351516348470891166821744515437700175221966488596523759464986101193072914158134463193928038857499438198022394657803954339711795401012783793774704394082014402216840130753424809700937649726635224243719145874297843674636315194781256984235869853496446406447124261093684111192357122339635487992809504832064089619483970199216471429749475605263973894713409690664286566977251787076414511354524618200108039375114566001581965613986702283416740349792643958436772452516228312652257700948036161576642366700091474452300668973675992740102352890518585596637468891312461063410304913748262623660998788766712815390118749134016846959421495203973831350464435004336958608553216650171295119121431697019383256046492317242086600715359645003664330051835145681936657694833450739422014120053184918966068208459195227687601896529096187089465135968196269015315848708979044822930554429149822440602194371573129198439828447718824481899536318419287622151260936782618525896298919359068248654172106835940575403752085077175412025137761531549708141722881831125553704752115633866403222359317386301154482695988873461296299513281477673110890950485188884451772008201341541969984957885914549886017873803148580462377690521232798013041132631071488639131132558679389174114963465485643409291237911994131347964897319294052277274917940420072028811054890830214209127706909446679645604664682723092790595905568215463573459209577377197607143828789909312140011847125408609913680760629447614532318049118357430960212992344445284815591241709578088944664027070025983785359165235919973286569436927811040838583092153074262650601248120626837288974445179425618808380248787755342444057394539217450100828978546774670080513665010899071962844037684071806041967748162500570657442711132029728958889420133303459850587725000294382816758455283955271138610487782326915465983365881903430716293214634156793448030677494435150121429309864410922571517224663032499956968400320643595243591532452240353993221467330190357642620853298791365297767669523423542604202782951272301046234832224560322031701393990546654543080592193484039529867439225209396372149307483212311650153009646207950551463989401483116225885708053375633201707453143660707638524595284487833307991919083674210320508617732214847494891864482672039779623072652076739804066457216319773634600164176743595335712831155334006902732176373826016155390754953578924805380069625493193806797969611598988279671069245678068387235287609349581012818116105810606157608459503459187267153741894148622626742142921221782462302518172169012585484120524378364778790208229487637519101939253704362417356733794468301234549476751152596098467733460686867345936606011496708797848602013953613155419915918741263435324330608740605805022253925771037503100169024819328463967743534060440758203202588037904524427979189807662949757606924504247006570677209492455796013799338309148991633876439476435319262678355804754123661451768778430250413531831008218034526293964684508541023146146620994617403849959349859268782755718327970860240930035393906206059376128023886571339954645031365820870238827430798957244300288525338532921110066557397536227350261967141268188416172761987796425938384820297863821789798446240039404963262141753582208089723851391501182267328860425650039556205919525634159030992329959075791578860791097615189351476515645927734775407816728931338348309672398236678811658264549744102156738968913438502192538436482334783600775830055445855943193224253883190846851634953423602556745087050066916949391202537113147946139275347870482744985211264671078550710568863265248582327688355336271095626793973913247804963243786220418317105133613868003103110417814125093220790147263962846505212741529217459735055584162207063455779942612348729967535993344222925109258685241980446098062291789876766076887393042129847054637047342574095320224098271370521158216477911272961472711074959564250874813585181752294067685112736157692150115599683050796426678732868764164269061882481473244680869235284285993040051915144435809010076561533895364766451744298315840619169448559823678964263095378216504814804829051072574961795789546280847843492637147061227573564763397865342364920594481738000398262164962607206545420476160549155613569976050890626485239307120739208826700204108120991829109798207150555356906467056252807171970936591300795621445345939908471512850268251586454460171126957182376545703853571485804947575722870101631834193301259134386262691538290506846185585091452621619643923981231379185265106638234108076012187534351475706166257953580980327295362069733075818411229251916106632723593962772014960858778189313988716533678419351661557464252782042473061331552930076732157681812938030923975864693408277272904956790156973228153452229991056524826189993204874744897485016835035353201834075533557251057256267143531137596316232066949354350178162286288532198859106272310371783038181797921173216105712313361652444849909255436949875245980000151508613699748384826033671722713871250605520408218917372344918349435678593374486997426515354179880220335912255409813294845676259335092794705168715006683604970275660077613140046597240355723170574144549889287243280354001670529577825260052988358931300282873347798967669631345399000632070854348899662630382021263527506421709518959502418544508296075549812442350737792576159587569874473136860504411309092741399213044338304145647643236072902115673799833843869050605667331113799694729529060134457720554844509047394530004700495644986936487887334346662693495234877375298447855306636019983493341939311838719571100840165738729239015961846020432374712696066183955608708291356815728624534861668442465693741336689917478820364580087624237159196302412453629866011367760504500641155518246008920053695167903493971941301724810210623224101498780188151635061717260584103234249222434693260837280570072317528057883663145396416136663303952505267479354300657294156429490179018021360228457458973585373594874398185439167381364868070199143018756484486177521444166567175346632193213791173047552735108866155091012593821060707214275999664258495589693519203236107285877495056547114124355938533540356343316332800701511785829720281713242851193851173496657483167180027446866291467965608269791612031030158191857911952116101042106243620011699714213283017485612069481915352415293305047282858299762990854881444332158725575727265233471690881367485885600423556171253511205543245740212924573271637091253364208706240893231489580021439448923723824281049843114716873832611864544678818941668106903791404623107039769783842047016580862740121556164949411364651646322021827649345111310376167388325084104697136036155349730870539339620414883466064625672972444329211437810274290542388001236099395600659398719693650932407834397802845822454301422311802023819825038332957754930629210187198952945947820069490631752628418608306694888794393392615320698001204816681935482782950764015913691517846345617126260848797427313797605994018463888575025591150980235839165570682788151959029531648771246242017087466243270198470953025834612461718442858868039416962960977853189448332087274936200517227972456400633526882138761149356576339193066330683888694205985712075500559362798467037925605044627794927033721856566300399062457102380421740167789462253295163985363059770951257449520705493903751585230541301333081766837823914158657927754872675180879266215689066306160763491782675649904956324744608262914124659889436277077808248972265496217226086468836725113393897700933371794887861801468532117950857331636864322664711751825982330102425388610167482222403343495054602426583536989796514274530367499451177224659924925862388736385006015088433550984052498822945675618961364016732912703314104473251270781605629816101414082978989457143262252899346130399199161439467823969858472580586342719224881526943973075257022005915807389895654685785372172344850695633551279899606042102141542658216469100702773600099806568119801179068519238628261236279365708426666114465774598586312665156332893676530824537469825022253335162176506266240252950343265713303271707000346196749948676855795854563744256699748926752304867989676883837338730555942340783919767041462499053681080517768309206043350037227101354866792103373887594365309551149686912808247042173670639388010096406235874867760772960656168237844852293228296975649184806312176016465992435160569490668459625421940260682895280487670867468570259727803871804800524237082072296690394418960428823359355276809876370333253440166875882351774147355870899451909208236303347140776088522591236502024475474155394252737422364661095696278200870066027700053377671611352675300146235904643482253693107140213456987636339906555964465601697005071713894493444074565551059977501523517345381146491745359641985123473445380918617888300874776720514799105356253450756987952793866626369700836025013156707324237696640886826823795933332119199818095856823346552055314978003065291353043526616979391142838720855524523116522634123710346234503426211699250351588389216245800331431231460867638083392979898411648682199771550065054784864137040773087906843073677949255860356887412521696854190423439468494399682842971761758499564894106563157080238428630327123217080968263342542103488709695744842937551442715539023372065491967892072242456377726356161158564459485473335964062255458011061450295836730682039561007644458920194226775715727400749772790831844587589445531873405369955886510901280662979603772279364333239615679164674148369986308043006549251045765808546035799297179635034475058076806761968089037264391959817539173864891610274432123913141009606312774500215377714605012027120407389650979299752954177931984705153290541058927441389519963101467130524252530432524418356043994599528406050676720814776088081754975287218370552509230431838195992093386329816427088972093639500330687509576245477984323950458916777541470136786869844051826255511277424368507413557140861124939826587465517960751660421132008824738709323520826212788228152870445110692021888524723641714326024012147826412651995150639360268543481637723696075422318545586804767581683535153001436494164746118212560193654052170856136340920198141876719422599294290487638186930831308351215272638069142809617280179553016006263395867834458983816652251993086083065053570245136131471379538028040084969557795520951822090346450737700863578914443697911500157120981745846661280126917221837444077387108183340330093658902061181695862208858213304485084776638369049028357731170189226191879520849151962940103732320955308378834579057489575305132992454459926814029954761834603401658214146133792569064302757458641032663792730002840864060579163530283034292932995560693935340500167083693539265331951729116377318664800485715834900839718586903988273906285044299954639811740185017333822074172016384666191892657330783450654799102096177464976494034135025845789165870043321812732671801591398232534786055043159272564564685841125366871699212182714807018437264130280776788410880640987417142295360703480785426056538512606268731502264478310493769283018240128760467971307760781188718476985819938945322923978153059856500906439874818562341766769059165051913383287641839194783048763763344593634859069325716799941490282203338309458059231205614488945632550324699478241030779365342299871720440588688012904406210012058119840421039474941198493716008256188443608232048744572247588692523270928954614546987097959883516738682442685918370290698920575978006835753572456659868608532762953055616029958022614686876022360087533917667416883484435271970636013118330365553992338473227771120518634027851580663074959035916370055492247891029969830864364237899875635267785950085838361539320860812514908184889938185212847913542946101932032845719754173342684105084870687269117284958202727234598420988124570097251791544593222465385750575645707917600795511385749753760270633121325572214841605697130509634614985742955773713270485981571563079406724413650045345639905877316996085370573678853740572604983605457931648495677951486750189847451113486692821244186239923594121786791731206919094629807804355743545694250595757062437341883681919463364266795982533621083038440897715942781004261665347263850703974250358279773689069094079727500693320363602894240671450787378213153229057665710400144583867045610997672210680372045247077668699003238796495638930403099094058690859875167064901167342132328314907441178840692365996302226989220571195704199893507663622898186025641929836077688402000627327444740737864847059481659196231078525217970093316942436328600496291867313206104474326179203048208833689491217441529820396408414066847868172466156294838938242651450233392527624481611060877731209367342485435072037940179907635450278292594264071225427833146245660277548914126143220830659133404301843639156536924861220866748685086546742573002681254945693550958901102139740863941087553099492685174319964029773119958409097964936551749625922728107837421056194354944838316803403355584046758328018693315875810223929278974878475064585551736577369045328932435087098043895402332420239014961726235754744528989416480204657572172169703857117065188837020781692229964087013427336826760141736578863775232817418358235112254363270611417842498947613551141668506248133665332464693534737869842528872779026680239756875673850659644096397492148796666555391429935852711780045401567221676049039380918346660650770914310369711335100046300455177838928755817080917014956460063690825293965106374359600885232991939207057268247408644860726557793475091081549608873748747844785671379959524300161257428675289075804163175241652092774306264480289079104448923591944870261672831331741327790539409127391298574755244862045369284897709350475766023632393394774494056112566765504863768379977902480780459075548576078870026618499174558193215332088454629239277699966400264640300285785966696165105676844515369240361634359061123879702944757104568494821842928722855234463180080965992269172966587467050140521655957847887487449330277719480314358107877940177216773922989646676552462870103654239771752841678991366957456322742509034155766004797645931170198782852965767740770649812983076368500546948707351835244080135776018866204724576582826499276399040461436080711770570663554088582236351378589703608921605193847751873143591186559335853131625588950875301716389801579232854497344952675577633281912543484297779849397431318060020678909088543530244494904502884380478215233436803446256739842036261906961569597120832693984080073464298132653517739321016565938019895246609726734089378934542943273360044692165324459948346325653974800004036719998937405488616149315440283871463008667498415388440411027087478359493427091860210850089088016781728670049795419524801772853810043078175065259117500323062430403748871689769201854842316401779680796473909799521659289933016919614276737508353230271024062987253435072708138450518939658004067522783099337052394590529952784050985705576302937143176424307682275115516834536148975733355671672862288357595650768722620148739839214467634372200207574932305718305620323217039344445237365717938076743541000069867376764953285718165002958970138856954851016662764918574256810877073895637400654585764253353985074712384308820111430868606430447544633896294791500041925995012453135056035073341758830189546750318048655862488327990324049583458437565383578895957755157542476232381735549359759048008997707510304076911154194985298649324301449171488293378447736173786853940373650258108716706955114310516678036605816087852833049798228373768662822332285766468307988981498085591225862066256122808153145597074682221519566692592486669491704236576418034883792749447788789717735663832998334168372798450639836803745976585413360097247539925983858289880663924310897981655528069154499402700196761598528413857790614626316903938212963750060437708981903877941450527299787880738418426085390741735518685970568331275714622671203677351479312299696329785329630072950092822640088846542764139463474750897429626207161898865953922066365110865783614235237228629495130436049242508093220833996191278320283060755995681714458691767785155870366534189654204057835029537205270735343915138280111387178582558938622984485991741993284328326148447150597621427930660028062679966387445763398571761947675156054726089674360753601900151251991644168706423337364551115126610189081103190618389026275904939519789623508739651630924676007542604991622213457814451330580849637300121667310639745672910991424299137787479366903027993857715688826104125590316129469311218506834872838302235171772796485046239739148642044592861429651725742311590331640879944169014730901797029654657885323306147488679799119384899788958262972608184218569529010932554268275197143387592239078344479687796336368989086290004042698080000548954919746711254496197827629611367115474441150429297685209858207880627671135903961605114629782727945942240101667618648271594779422004730312875840238154956390182275053519077540413134079879266040053067616020347520927135870345749873201271788062659285555224157911985551838931836880858132805189788330748448978670237002210937296944869011093604914089584267376097904601048122108823630541690416661751149108690258010734953738214360062180597388863628581666872277375823303190097046614600691638387075683993096590921057163275813264418017274723352521854536504119679056550255323008443678459104181201359924777737129093423608884176333841299809899024587257396046040519578190706340384593007257555062725975698939087122492564129844634016424451441227115803206540888984230175763995828196454115473626010081653949343174569347189214415252359593856188551426391737115768952220411812642661471489850718206843041557168664251510838155050719938092163598699722192980329794049113237824364309981074542403300560320667741243116510006396423114184218677897281975046866936175942601752683097132733956819001431248553339386637924845072263920043515178517410550266584720928758248307304766396087305940708268104647787922628662662300970207903320188112418235684398537572271971142820505423453446217542637601491643286017810613438091673096848131290945116969373093280486382760097858320914477580780628659250963056887972391446527643181505640407163811952866453439229037511028515468458419823008440977668192938806672163552440775616876735787301905554570157616253605413867439896491954632446266451519104244662443658651469709238462281229411352505253746180104932385969868733792289290212632896865699088691907469688303964123272282339402403497326924820105854793894128592572869837430349821630713013787251292551638261686345843224354616533046737402990415230910295305920489431623959571503084817201008403828607648140742827538396838921681970830465138623862364034873134157556731407861072666801795463392954147880816229526440221681607602013415859098922693429564929697899159243910891649601482314858421014570450244458020380204313207449510662526438597407005828584082047512085294767148758282768033350084785312960045637434999988435237586341613350845773444196100996957198436445089210015383773213342499267247762240183064500058222073354383514125178113501288875235705275624932974142658061314054476351239659971700259213489168472813247770542682491995433747465079570103664403056029099757448298924675584495500334124476653928850433579232450569092250027408311603095607382759489414248908209952969528385919489165587361754982983074812765655930864571480734623561771417835351760762570120269365169663131198072657773594800802576002149124924118622388479989728059571433583147213123803220039484445348896735010230354754149379594238320149933741653752493219423900274936763237254645544235300929145446002861215726543624040642401123922153412360056438822906360511997323488358463655598499838609302645073567606939029350514336145889521593180295605293155865750925972708968929665181128750348381204800005841183993598648969780946698584790002310853918890493616634233286297112198571406479292414578525519586323103680581162164535382543380707411445772820492292803641691084599578861774410365991257610698443816138942924433295020658135526645993536109041143193604943979787058267388017271518076979692181606464767698951231205284365821204133821874901871213947162684744221276036243811303261120536875694552872506520487496879522954883196355086327065554995220278692837946736593356707265041508799632863309898753551448691175266107608510352512670767522767445298839362689041807440864480312867786795960222324593163021452466582939116020449505880052919114927386377123559974239947576446652386714747649756994576023287174034109369222077825885146579716602039063407275422018701397712012670903510939091134682061018023723860448867955487952358572521886063848797288502031652538224640489432647137533442907081277213395535789567670866208920568502552383406275615645895276302591590556486156399187023823609592139533168170147855358970068283543835272770827297683688832589614655483916109246557581073562388335678489111107571078158283397166029210496592844241463697860136551432520168483422288987714467237552800812835340537029808594962064290346674905813299267448681335310553278926977843847696685736784331642574989450310437521834688720355590656454642308947675676553157444757146236274132432513330908660093666543916795178141716383120092310610295718667067819696407049423096492610908878725215388622253804967864141498761154639017917789987286879468871623407424499115816411140306918358722337279201300808541919561353253655134806065177898395255519067826394078361974488450066464072055385331281320873917341798867363171264374841272546491024788811609911876131377158920871734108942362493872580459761860767706573560008213226755911811503120734728242078599824714789297976999190153459206649242991321120372924315444365121197164738747621911960809181025139940250916583504693968425323483810662071616148997361723956253714953682307433873654444953090067697291952815256151732191621430627311616419033323490286980685317848444703041658886132637285999759545096910684467627547575238129582708750039064194321498044506974200766585677866578368917365740406097193481730054310254513801305162914051942246187114514868643685203396234962962093355322973291739905006394172971749271823019112511436574356350754763731291271387079507254903903892302476014400125861427870618399337973385660914639827950577062649906122675650852731681739982301639033934435113481678084259028278308457131575629248695568566127602965719349029032007922184339715462832249038356491347238871548798139083931223972830239428606063122683260493497418920623146264581088822130092184061855692479982187530143105319355608142353970378451532010207709587471521591365712071407061578868796829540518124274557275235782259837298722459314044000233683406184997898864869531028322282663867298277764468161669554829433747759437644108629078713844660026437482768377476821315407836784719923402431089961435769999245009847628103681715682042116948294435531958971326404008154349054351392094692154262423040151074680528009618764305971578879665868162802540381931623745587893450926484011754600524965022517186141513777337236836792199374816758229658301652980480517862838568144805094641473329671336699146276848241434492489713906753469938978295979787939101626348281931829323505440111841550203132899760090585528311041318171842050164755131527654450804763282423019402040891775109325179883237256947428237245836230853397854262440930292240010948839108354063689327232235295360279302127439923350166172893580718535306007256179761010203809438445251187995442329508972765789502664797546469623466221583286973538760842852751073466157768559918595425562479980549318683407420115521807076734542179509413443011643634727858985946141522449620003628176441327107361642586911616517100009885373432791136816629090007992765930616735440750418217155654540586035850593702851567098347376272451676759752684684716927798528714408477629373114605130829562195591779530663495666434736548326910081994799848184168745300111685007252181125075974733272122344414079910585883381488060012685841383423751527770935252942192301664169910389803934441038763517119315111160892226459817943586803406198750066687188436190336408205227081791030981419341503397933919666390164868527827682867625948176581579884176133476952378035040339904712131443639577952786132440175484123710741599855656082402249249399456882289788043243279185261882738378023097183583355763828095026806280889652822444975296011596929800268962710845445168603376487439575891726195121612988026910645023007664934981642684227992956411239171866711102679839620777818577357465178461790921781778442783511735201267215209220821141133299938520374449315125597831769727535708209964089504040111129685703628931111193556827160793459790248066245961825596753034758247633693636032688025798537284842577371572080661728079190304765979446612928471602352224925956913259259853149753627012079089536775445357184385578423086819585786256963831397468538380573730202336250971709898772008898091537681733492686664367037254220457526531865538205628437272725606949299353834687612109503537477733714337001175970697869130530971174509390906519229398194881487273865921255922580113955087412140641073175686326296852407717446847331561291604748368175556970308478104010044474488252978614575700642078753602393445299344546159985969665642352014084596793710249931257051259830379287718865582384508450155783057886899730310322457320288848615717280256194763352210446889604505421215916501342285206706812823768105897003917139705524415723799202808100818333043340905604307066790650325292829979787888612996590685393143770730754690156282426282910588052595198178329764757346210004035634043625065128955901597501148167314451804351114837488255067529935847383743393604411412418577448892201201910600475244804678585828340545231546600472051931630402918176244980171223444682177692600258263408905001094435976447783709955757159549091065133428234876495399085218142287008184985758314311867087182266268043746780828896649813486476572368312665561619631098011304243114667831955714120978476223037429776436335890997082002935375972443145094649881803847469757804492711302138207144432072229966518583902441728700179581849018984243615634447669702264856178037700654415914341255390006270391952878509441025352845140391854917075194779577844577839573046891674699787417610223562247338205517610518623669015950947140380163043599305146010352316707584263067447865687588204003004753226548387799668059371177789361395696887354426764229285248681961632591629143905167630966265790781515992382570966786844441269685875784133228790640544438569219287444531599377164723870924195099748896762545381157045045003574309366800353810046422812591690582639383113643813060796883411677501557051336010196894295880777410830912112343479909324989647597993203925368391705370914062611724286555177562305078192275828874430566600040622438212826769895230061478376673477081275929036972194981805068869053626747736487722027574183216843315979542437855105571262837926054184683530312449014428469150418072878628896278044421690967651380933204807424514248068719741310705341341388651519038230779501205362581525583224431741132947604516374204385062490238979558702970596851304736053230080994306739138456214261241210990200235516743110938609162719736625345432398971910999743480477420437446509074399540878360140435800999246228222262162322415547290745345217409735641494887307552168977718084738983826617372394062153924617996242440693561776365544428925168714933831808658353668754046677123315767411971820481469460098900588921702279513905491729463035868382662845332219299467307435619722314785037960295690509482088616107202775337743053177792271514842126931852408680968549616299360912910511181743939086875308435468118205219750029029506936588899596814161220754390272925077458253222643290869143807373989299491366910943105179481111882151145521637816837296987717399499010103276574063005010884423150808645339826318931618399271544343886262378931494054325548136092154214353736463833721029788095242659044521821572039502732332884200155581794656360404957562453474109526812530999447026634962429790417077056588402140781287071236519276827586114122457911054865531710365504677882217428559197414575837525401923709974443000616737769687309726910037718072408443600211745220252840460972885645385221695264620977554758233624352445686621139083706249069747143796020067769005993274244240666103076205556308806572120981668629970434160553518223075257554907553472912615520522260300386765184903408867775333385813132738405470945109896402639237936389161164601788265518344421584225691126687618635264141052635469754235330083726513571934585525365579864991260790365831022971258627924018764642371846974794164193980252448004335544196477812642325400368642100843130869368827559128825494664269746540349277567761682910895636102920274548161797184863353941745491107862870816458886447705971864190306124073652611825527548402555766903920285912939334895765385567803524840695326374040396813496320359310626471860589697669870359485738492601648177521817353740522890335943181272351082961582254202842451247395280926281117536977682879559124348378712283639276690302405446169339225739585379687776311515117688235674242933655946803580557776843937165927329006983385200379296679257698963496677308191694681681058115965421799166469044602049217255198273798128788136530383836772913798298670548746346961775923226709534190440623224445313711866241930616181520321954675211049231921718001408084858141189578153296393977705530684243966919555683483143337420669308731482563336371067036939982096110581542173366117380626860137401509081102423402056670207409528193542611491127939024143103035245159585942372489762701895756058728242093937329156081396396703548476403230950303638843849101472271231579208340860259170991356518261998427407362009544015314791034385544049313620154130654393825401883772301796318345483151471908500151895161043528993630860224329435803060633086165779751092570197919279005838746871999859285131078640250249594630522432574192036072312903415736270666143654179777439411283532538556371862645254311386817782684291592686846505160931479792736278993329822311560039854877600720386531853426446694711330745871100489374256570319694667252634271378547125122694056554533473326330239909734806754572217967746552598516642812502214100902171206733192783609634384968577175440596284361307855933006186942392677915364739211273566394313710611642495341010590356479917735088819500539548439228585851311476542235906958205448429398995543161258718002845257247904939830043927864660027629891444925463461181738756777718640984703592954484143113014497405188205832516389385321976862108161839153707771331309926151828026712387705577887490692118240331720872007776808792083210039823097492212033414203548606641590420530964142632163186028035184883534157203498692620005199144006722743190288636725931423701060635124222702499787468559400742992103020989524475927695403674720721489491050375630628248993711657058205355955630340165842059737617624735988882172893460815889758755280457127532406472489081989153868883485976203492942439188799986070057646677158717318181512863667063852405328269819919114156243752029292825900745867042335267634962810338020527435621481378482885066508231321926899648130230178306808477643596254541266699149815427310308361772329398287092144739443742748104759245004229302938755306187497124254658620104919165343700743866860728033638611051558255722135923298039576640790828693698618149171964796969315359890997653404135377384715330191802908028973305676944090793447357837115904346384985641690232791161792015027018732486827764985253212057134322727066486707094841145312734573486940734264193791525065924132604836247220758335463808072719337796326238971799893951431366485142710630945622661462544002482508827812536855716184873349843208838252344433975742471433062170097939796684636336096761059133329165010939721834932892070677400593178898806488015927986416243994279602324946259550251366470289740435995288680129960038573144575347620200524771750304805409185218729630618202412447052904872704261641645858091937012108122698700311899359106312166639737119680144196414772764089878830002640069532032519565379602526508104787843885940320230402690214508130112435646416430299095667774887772612918942416789427600050711905778564420820087646988937098150916750998882607394188707771347487409073018514337030215064868471848863395052135977086105456118158714028175997815050779112674134755054845066311253209697161864616185197159891494704877277251601161147012261359941219184463426725376590310485046773341938098265836056456459354813763968641900788619895729779547773789902633922435540405053896190655364210832872356319092826626793227263307666472759519014563478372024338182870937241117570911085194653829376778117536089413833687138187242514330949953287752152081251791780446125839129592645626472111832851139815110286713045090194278936752482784244036679911031514010528990562223314759960817496308140308688315623243413037116399438861530523603284222586146970956096542791217596797821566511275119791061072765588823084555715348841945243086314807995761822195323001834372507032798589249521120585786695694560813071226112690341328943513495360496295231510375114998879064783817049439859485019234871783781670338883263348958440632322668151132413548232802644571086844660239344972024044814876871546770848738933711261308825126504255530977592903283522900274863582799980815483966261429410567784339208545617235108169168314503265374079759650535930307726197086276581597893545289641037552861658905742290247603878993178541893120607326580785282869755813723411215712883568556207030116172727169540220660191822641752584821380003187664234861840049532468999942311337403032665980379927387305460800658801986668229524659155023404220441765453795118069479352763772923564475402530329742941759489651667719173371818574090685499753660809894882846556565303181320408555483607283074788908955943404855500388173638608981590722729012300742934485983202838098507268870468781590129156104283362102064326874224151549836150585814287084749398229120539364995952487825676932749822939783278508170188795235443275811692135946110262436952572585279881740866071695971048400382325148196069049057243903079864450269825806317195578344744982109537745509083391798916855408259935472644987421903213756687763609255505846512936297088146708343680427553968374511718581226127347334574269032988443233041395062083410845704823885281019094044377369569068531433484934887479646940037910929213600541042273794557459100321998373573966998847441954495806142661272170159035632547953736997795587436179871858956360255540541531360336581656281102394375902093492601520574183135005641771217685063078036122845035887314595827346431192235880038089154849146931409607121181906102413452074309476487397429849319787886185987675321585747064290798548956485925667129888047969669287103234931825952365689302994882193267338590727289585858445641038039537735972817549422877124201095239357081379433559631598643888155534058525829668524651339995659684298356093453435899920090739590472505439402321967475263641838810508516518942795726498523338892966786450809166102097948136695697758008563217534722208985552295567584303034954787133697337319272540815925514622124091782980387647951192634632336505880077460245771365597279407649126156327273198668323836498293708732762272906585381097928561600435374911177773672082656233577421343707034164964116569358002280019040798358087902478721686095181708177062416396911278652788080853539715479252418478345847438067190328295319254140643391021380277305529261595032007063535739372698838320918444397093791325943453808191004692447690497340064992168603381660251635942971338978904846751175172881866022951608683360464106067351857377857382503112470626815556518277536492479140791636285965582594456929441682970661034733286206001258970823921722293466439068982592393452185061752907699718560875697064872986029313968576948409963714086960606368947187087299764522831229253869833907299143474361955325989700527003586934413252706394001540772790417795297689273608502696877250282667803002148422706650528293746755562048041573970392624415718705358313067904382133865170453502260401566264079653829523507840168573958024823342568570775832652208377007368201429337137577246481305066748883868614214493220395879717853399080714706619004961801158370717903325963287878678547700136002770364330977822111449113126296600353466480326682761299348332139138861496621326659158006888773423981478116442787414295892138904177559662580056142972920668436786912988478068537487158201175388060859297889332253141534923310748866834513896225664666771556582043754943790837263228440683167696848530659681112365982740428374739836069811147162547659694164875564087581817385052374834918163639909227151254708694562807972902308980305843946848112233182546042585735485992209855979336152018117221348786148210777770103103787122792870710272803115809243179305428534422794833697455254419165747780207681578376117685499711707323539659368024476945947213669152960329884329549563345924617586250699871084049355963983001062816134654782333943861830193216530626402834739594980155240946957033358033302040140044776369196481944607754110596200663667390066907891553570702981330664868100741858558090834996185941581925976259983530090110745127680174900744874997484522400310185829071925843242040128835178241283703798989351760864792571446606459149170230833718789310633590601343087754310023291317977706359459200612268967876267410841527313768817837222712335086626756081837789858933834816815085619475998418037075109913324239577606806823962769777967665336289186607212275270051530209781347524116546354168029639890473487342056108860741536376427951617595273507808049285817038486559575759398397651870258556427726522860390369761748438685724982578181258411864790704306149850327621341562517777048738789122725754933124264708788580024838680790329365847837273787034923124077537538848858259365474705010123004080465069974550184053847918554648568600927033273785552990432850240645717729424179113806409999507455427641974380689876001758739375858075622493884356778751070382050137943460508186328710794419560100370036424565135293199724526519200771752986014874991505817228841244715927400102937709702360647084862905401616647028466961592660674197102442565180436427394476069641474402095135014558851746668495578591191741990509105986358616601150413546491163355173129667746678935039438626623482792327195824992489829272164995099451546862249788193564801450692315053350879964991896675112687442676311403667951059611861244112546426788726084241887844289867576134839824274058163343761812748744812558120665733464493333253527871553437516247483176809294888049509799332496540773007252211569192469678347364745424767073089580269648658342885574586421440548330676703842011299495257185612837240800152734080774664805804656955106331736395413035940741510489191644381812504441304831312979325757000069661891626004529968360214046823283433818320903266859061166626531403713967396030123311499434159460149635190078989809989353744339456603184195493960101495481209470192677651906662931660227194514197921525695686373569373981818100991567012889410477429709286606103000359033057101089605333837580452108299058136107611321072479525440608870621393664563476369323692451640501421283049533402779337250909468535133028538827499276529007171294241018911095398321405256097003622781244279603593445201728467850396537244395970025985975291118178582083605289313999477331112346750981562985362271145030911460530033738553712130547406972133326683634565579948020658184255704969320200372727841712331232487598046196119275472618320249894959319443721238325655007339165136637966990571398444531407411349230813340493492026090294711701536889553074053011226336632900219575002327313314860354324139946322092489698173754864614417895999416669651963726581100609911797954366641414296901653216271759736570632724456875774870177537795235300498068177739809325005158516171562405389046850377638957378005960835626248935356021303673447905411229577501813935209284595702911863526054497547804165503255059198734927206926358981215577308864075796470516605688175135392765229717980452554557257578374992617468644346091582531486467080805358572440666095462377527395434800448798952327216607832029728488400194284278438930267417193420352416182260244622398700193464356865276510914529737710843900092425675188343318941449183131374544154692362187767668905089572134828515760378753337041191509609721268964983651309228448461092883009857294344396969028283930233157139501286382782030832705804416368177342231981080014475119862160621295942084795347310339089578008422134777506236266233674739655538016761724361427737750073979295695078169061049404824830386995884244718368491209621294635175423400569578013246286717333714321178593919588577312034898072263519430875766196167894833527618205144550902104911937580514515217027705525127810527886019809167648601736719211059266090778641687180761916352733243347704200537610107217414656809600270208506066355955416480668372112790322399222911153705602014082076324594645158383744843246955123772493500368269360934726898469737072031413057221508083822113440768663866370345956241308547457141270209641507355563014235256298864366708972407626925749655774696992218907147982251563502127013981258484074314541598953701473565837831653871529082300939441370158349124146467855688010952316532707847186531985277813766435909715063093597583108305315993525307048264347860284396546797838173792417039224359982198119334786019347359976443668603052641659774216723823490940641581054659021817415596791903142480210260136687833547321498794163858767889518288603264963315487602522634796956231019031142512352515334512474935691349984613050466693770093779299127256157645396054141231721193742639982010504963773614721464155270710172846757909131521562332805375850481337495193493996360326100940482081039189502176003618605736803170424431360736597661539244971353198465385393169567171603034701606971716281475445532247537605888110721044255394274252037933333110670027889825408379694726608648660536152983259982941866569157612760585260883274715784476419055414154108612085222019362439357317998746565894361291669532934609347564256850077709981237599708416514649396830320356040536192213447204326053672848799421345996161528450868736127487978423227652627803434928410323931384053857333491426503508484704948577855221942054703691783979594048445881929649208088515879316019508550300079971394263629848711018975170748050700295285950288826420626951285672856587232047662004656506162387783601165038101721142951185729824702340311337491095113590076168477211964213156363193452612368325283874888868041097030370890949672728311363545092463029085614893144360720103110117425010124951824701764709015412675408128873448772810640666902084079754495430530454991922588817694130965174254233268198098206153946928620272121722483270212508257874080319405667786607297763454217881755556032154995796138572441208406431609167644282230349760800301119189295466973747993495325288807314045888213321598446562875615832232876471129555113489068389178200262496251706912021733035255096834932638437006936522475342816823429548685546383346655190515836526226075411579270643693711960980498464935528274207325118817787804429619219789957309884036036938289683909216479309139039651717566348045264405424396234644914962056114803024219356799824127773742512267535785987564028946531888449492117160515739115154951903351616588580910576387634448820594217729664881618003828923474578512506473970730153422642225249436668330181283979849839178247088493949431540362144685828929593132373286736472466276455034308387149063602900951987335257040839150661391287358100077350073865953533967503678613435326307551539350002505373674037329169887428263068998968341575736124772739229455974559741560740385066217318420966335939290255014660388918861597226099959514835231813117735651561078700029782602762209549581253819675538909421121398851313745964350866344540489375795006983417330312178830050052025797469210211037929507018048370789351397312625652917159011192512070768387937118774834185150748760485585871289100841607402231354276989753416913449072028255894641198825939533362582819634435610138855643578176637963608011207473892734326323395374610595648634826216826618462302295264892395777674680538005182489631178067822640967435362053898251254458863409477111904030924773266390266193760964806481442514511706836592107215366050032416852160367603990756008919192361430594334029947102720292718964061447858393234564401256441083469152067378494634183754116050115416017183941454804899739909240699970913190914134293898778151052630150509262361435743311770684693266219252217073416867132006104181051736846809119273091899351906122553265629352079837912665805113651271967908131088541210987958006189369267810470916825656498795060473519122559535564497656245044261122140682336589832575363667072027708072049185243042833047430128796636912522586258697144778349229227684501124935404349966909042291082483949193443323009917962468723678655809714989910668729367293868550862151630689905291186526133528072469040971408041254213586871725798175895410205800371540062980520129989542763593203572943665493894453294707364616497613313366528980144695060313993028242553326127757631575014454975181110743117438918580010284866031706736784793942594981072650984675641034761318647306119785629520879511583098195219219936825840001343520090912419642750965505636706583408098399606360481110352623834072466824281534333009836607030572247563539440561585284227025496044856966211896489093609265683688538554465394262309626182506089640186712753715070545524441483188543751350872422023858103241963883363833869108705801095882385781951440906306514888968404616698715667164911169518601005955801166721514922434436121027785256786782315709962885204237523029622642670073856260110016170757479985495892632868194942672284053415099167416912882885700974837069062280424814446068912639020713213377784485388406864201166186544053547298502148663544766795616234780462390664014541042979530704657618606381850393698337233445010549451236202029577187533244584770496559959359319681248173775173108996981109358946055145105970444044537546929972281928666976648253164786828586298770407772317889713730156194924793720699473092858806113796205526817218345234902970199046796866326449070287974965768262735071866110090043353071045499613894107858943986935489695512724071130246453144109060704697500074217076345869934010863476258945701261003962342743063784425930506851468531111871521106120106339640919844381818781233982078221257867016380613733454120607460125616537708054438763531806162216063637119620600197077841202442085801849657931509032860569301471117886922436516490712827602288565187688509151675132411883119041048301687995816160900366302695269265275130518279127244534696827714610073869308695542166092347795103711259870146234655343752527207675387095756777439709439335302141575246558263370818386706582866979741566711638860725397619013982237522166367195281885644661202306699968113060485820766478205487209194664401440138783345201909118954770512383580394238304256616340921736347301791015871895404544776696420365477063437955802964012224958400965463502541392173506284780011863544684111211820129990550940908921318724916751497486078629191959716546631177671835732076661521376589734434058283722786912289520412747524553822946216357912213969996116394960671662558921062735359941127362311421958152533429368558493078165236747623842927121990028747326418052662865158325458370694614381705523523658517422617967365456557155855990769930614950651974370769087880634717042020727058265738673365284425086845028212491551119781764489875279020120987571712737862756942280716514056396366009363775136599323900323252775105721669400200690931367785455452970383066640887110303701225154625545329797214477564937124023802518860473134924790673419156893761993692849161777853015696927746949697258414929168828448877953459890144556190867343851588573429475063970887698567444820288759203482448359629687893812760534981273729664125983921954374212329032658569193753514731668363197891856358203415008251641302320897192038096695085599657758802303981984516871037416979305015984085367110368228262157784527428065345449492979008756551967722893858092024751495254844579471934056177464925640712606018848141581199543332903420083314360072696535454628125516293373662992439071875229406366999524656092349003946187081829006001430608301295685811124130936849124114070752272726679845234967225688742601400050627468490484467782240473144004715754282329648148283992679970522653825139789938846653692949640144939455324494432461105456585218200736577313632554242325124528887897032365798376276578375528022504054885772234106641990251457674984787049965850863480262038962299674897210578764852949459558819784379841462435979882862197837008024721365485762298969349596297567927755429981959306027763864067795824394004507348153350579122645858465711888020601355915108210325632814509744929213519853962447574602296420846237936077064285833612383689440248003404586611716920738737750546488892535753120237077653482841977403614654878700421317089421752235017536696851022999970797031410544035676763151890703501937136408386842399328519716350379620823690742142843598075389197188401331197330392499106793516936804715118671811525399804892145974042380540137952755533007983127097369713856839021140075373804157080205360864250166863649847818308651084274094539902516480773633184264194247323694357497125043635690012711675346665425516201570340140734609764959585463001816040727893246412993047161171881707378161604703175381842217494637208779248895996905514932302825009508231522206976106932699535638705030536345183186278513896137754840295671464554792028285783788827639773376659615982834521003294547282287014424054978421999108871574467939933355280866983367789560898619357342044780341762177098088985281364614816854761756428753528952461668114491033102478405979298993339257381633605604722206077012046472050726683829790968265286230766182411839865536039587922509673408736280723447170522525661860328893758017862928338747342797731468201262947086656508068383876467571329474921887640022818656101292462479138478239482832752631734856953358211343408109209099790884455115214584414063635150020437344196542660250515279240015974539277144583495427229036956697402656311103388680022161549510133400043783897923175641409220276905273284743373505317451259870125727529750994585094179089111321695955905045146753303691430141480772167251212493336701597019927970965897175486312879898971516099541993560667782421924376477965465544828646762043700369493883775139977675318797025303130358964164016370113172153803303565087576997443218271237410108270462796750541814777164698720406138238091475122945860144061237523254034074289402377419667167379197827330669396350788484463464059262305437339777096304908619866866528746339140417221267103772236395104011896414330089845783586922319428810269141739283452255287261583842911056945914966902690925674003343607243509753369615007293948005381671693178355381791067818689818931847558010092529869610731987531719840151537472960594456910997448743691003696599553538895868768143359372072946392592005002724931980219648921350490742283179454413237509546938211304210832426292849519285629000428902078192483881076237102405666172398716733227257500979134679980624597917872221907379872898768057485175896391925485384277463702763330107665141297596607918192413031628417105619532258268322578559239171468788706060042772876606266459394776471322730549333492633763482758898878745651748990765564627369825044680115026135134339535181401286779558082437715556262101947294678343515586621809871138240270162710486636074188659940082440929736200068021238149176837773723024518168693876292285087272033127486050012406833710846322085823237493801937794743931656726727565702122032065169270777665048371475614557939309671327257321434742121708975260287901696267450633798500400431494578399787996732982382711459279966162261934670045193470424777489602144196820822770916103420641570901828419614021327056978803540127801149973703555345753988869414027776515469664363212477308241589906793504947593839977952147223981241585994029059896663776100542359061769457239203845326030463609090093273317813906977078867646146161739389264780674229250166281556454048366687144789325833354337886291575158807371287264777900112212941699038162485871442428153100258909975272759964293915475427365574019891632640839475528234194060468385177917032102115213535340194481725896701348354004006477803249320110586205066028067272520704805395660030786630130478271395121771156605138551623785726155531174175718183790168626556325537550020846720387416364322315075342369241883934247415061609598755277819408553513253258954462388283318389808464580276804840772529714791681390078970679428420553450491995943530235645609069028130934687632445910285507059424783397414250857233683260522334410734836858066235088126299353205131554332309762112461447806436111907164121969354539237521014666944142781611973503241160491937162841718877254388508233458312388309814447924782056030637816784821070567291843766003298773458307395618681952085332876384817002807150855233771106985647873736712759834166082330579637128635539220908359578489062539646356349451155564986444577779290648012360803764852711670069405892650626553786581950670658739944491510780292683661442279962006534923328223289015088777863001673762050492885752603270419291850941708466979406460087810973213046557084430359406826812752815088213532802165416140552073076957817047963740325104093694349825285642838891170351362708545572202432595188694215785674000389434553382948525927403408003017844066325223716047574979271616523164313944193247554815488151567901210927472394131900666186782857448328228135471479570638729825898368469361173899163467152842025850545855275153827267972683084071647731295130037532115163551445608587211550931399062368433353567973504294203590804155957418032794827718150663496573983646770391242564646986519544186902228548597085195235230153173840787529437525239720460373550152918461415419395260804001346555108493462951017433210070860079407894640990566336402254353548828386756493849211148903911774186712022633912713920065521871721544812362573129517096786402113734014352299033683579737763536342253271742621005891270011310704583345946387456745455689479603134232860106224823858863189465084338051868887005797882256999690129242503844810983106713143078702507542079094340278027477525185921964425106863991422386512530987048864961939179874849077811322846313660579198036908856005228847444660534262920217106167331343761836920765186016039229262082849880596353679093370920505014768318179953787167365744774266519347826079198569775461302739764299269197983296759935427146648137088309176082489016107592237890495544653177418613144546354917491250916501509814028500062293521887090953788039236130734150428435804865320397939677006100166483738220592850987473055120750630456019769825982240104812444401476427927125288942646164045831864998809401145487322037250632816263616983612418582452320986040002666192199443337022545308760292003192289822694911985641208896894502409167240936417684047708337113056291923753207234212082803825075842130157666877460658265989990622431338723241554629234094070094151080721272227461751655425331024442242078767633346193602014438886555407768915619295573026782193336733847117718616256528814291683124778778121409586340635463636411847773712948329537749603204970679781269341853048194661127737522973320174312003323242114663236810883348737623781268296968142178338947123538130916055183972585507100713279552013197073216172131121431187769205813823759759307635803316471788117899300552681035733197188000666760216178848356313000581382729743537144284207646943295211812146880229264972869390514719764889690727463324987712641732027416452489600701099503445653297349001189895012640195917629064783063622147973984967200304656011195901353591046251919849490843973813219099984913395603639102376503445659296163281511161611771790391162193512428489643997824119005706720061169671423384493931001372616993063871123328138447980452085267918140566791849221730601552536259605646870869863416487768451052017415081981023793016224545841984214953968474545243104388383297264203839631956138264284208395400216830479515336904752662546659987074136596947804040179422201073551128398698511585681380051092121787825578047648882354849446985236190904445083397948341614755046567078296992880498175004344156506220373119151586629590970237143707286393215261724284970778512375899524171755948531718860640193745076387252429155395892256494054442024149411797757735192894122869490253873852516969830628422383915788893201090152516789426916459653105448818164063343321825660820117938465035681073210094415960890631541024272828146082587100417585706878865476955206777776984929011816295290004391050044132645650195875851381124477618789820161393046743269345539697324877565524983691676479057373487567958405831925202713230379243318337772503086752108409302711089469339533881146090701914897348256258138940733284840066947955007163538164918214125900075402358098224363629806863870835867462629711170880011041890237303801793833038880407332774387232555410228899205270792713339448192817620054218923058438481476744528902928594063459165684087844608498933129672991065718334575872740550636607995615591020097154834598073165943091925733383072990723941867202385568540297421461548047815445858583545582943431476837487385019856480506937754784462069596423453397314556617041232109785876026338793286357860138413064674511261412505241165230348598567041817335044343684877697048994847745732287779832765307761611821877132068691379874411214679916155153097604117505015133214744995107000413926729614192698188468228808818838072933832155970331996506399234915729109933579836315123308030776531821801958106845831253003293471682344145835156361446464660375594045008492758805850372967414579665707687216690687051193816106888620863008606205621629817439259086054023021039107669804416661825096270117983222921341346077100073905436557674997281103769881000615721419844722870103551498779935033020679212435447627832688182137778089731834969304979301316843435293627058419845204535504057306552834491611425904475166724566009647998272923101100807579213181344945113612080374514606270425088367518331630288884760110160539807272501447901148755704688599594472009951367729406263427856568531855662406958142989117206097090696672940154919067574185695191981835737859856502294476401484697036011667533230563466352980211465557979176239342027014105579838694641590355882940708064014420618183910727174699510278824424183887734789779078289740033554286510767915959370778024810224383794285445445282897430040133054827553334969630613518141307324104040701798196179979160330096530040933253153384824396544116297889981817139613723151849983698720853139271661500038581146189532374741993470190283415810743718349639319290503375950319259254423828326788151424276271027622165784262835031363176224754883617575814627798264397219233590904921642573358800839970490508681586420858762407154634409489105226520643857928185904215533400612005620878635824960042680357395277001845148249584717698567514462278914769372956771682051293610569245719311648753033124814511044451565002630370866771201863483714718160901155630744017917347125080757128512939024149734783340540482134011258663674559986736753553491036410581072999585164398441240833727887013250896059848048085191790487133680298438049079760837130793240674722886148185756688910845129505160242560580919078097021170059398402811545729254207168977620171182371939177314979342301961875314386717698169871253771450060336478018290723567033602077774715527106108427404357616653046243218199347919864238880802823586550440099917294522570441978683994437840940232835347269080410951336560095958876675332395989369488118060793473238252733794500667389640407638538932778768035115260419907626910072693016728247940278304949460302803208036019627887832941792398323414732344354964858896102506526440956154196396099082101783433519602076477774827638843476590735808551011000033093021710208544201371738574232973651313322925854515980172254275356563180589415141689401352568752802861944959853534731047466752234588891390487345155083676521246274204044220271606242882900455341172124946865147263487934897297008968223664680433744622096672824169304239714933895393559903182869961396242936376201111876898874011272358454164783978268069514466271726049427724380909734595461638595638576989794864415160737554317106906648231043182630902274727019881227846935042999869600677250872006295000078308050810845607555084283972743871734609858150572903100209486020419335426940819503333923842982178957614951393122370234409514208791085054366434641126069119991128237098016520787480633256268863714281730546896637074971542673066820539292307223283019292783209123781986219132809240048332484971064726921766657854281373549790875049098169814972268794199346781559946414230878013764226619677391100560046862834862429472336298910265114007408780968964066099308505332996706225883155748423637343108751262399677934465150822271417758925927807729993560948152625339083102144734176503865195000698506905310489073156824658973597633087799259550226534308166341574108268141426560255502508140696428476848563636061164668968159501399952361167658528120291880185918923411907171950326064338964345669600006571344434300847416149299088353934160786752741933970863998341161696915410825945725271220932772509045471023066709963530230382282844485367545177091255207435130708997387618253078255845233751728385308523909815629526541214093247022379046262065903708362961502927739359477737915347537536169360038726825289193922507278652705454253683595740976296436672027276898182554332492289395123019855334181411246477828660379229094262643152867481212690127489249456519069819659788821727811967654802233270475963160437145302480201900320944820097083533721262390576941045440359707567532176543793323945316132901614268248298856469616609712306937747774949133765747883642285083422204127893101465270176932423832783966475979913115936915572240006489247908413072557333170219838396988799890587610417984806181795223043868887663273075058106387174976420388669168092828454827517840506663426860767090376874435990378367838744618313799092002399615794117674584069514973164874982919423324943048572404773740413810978102750043031511645608382133623001062610489221804731980539232211138332346710805413772560099240495109104426085783990433186538338009902444119896070319794600392772461173388070863522152297691788360947888687851663784181857275494391332180309000383757454423447964474241414489916997222986478868389703328943729855526828229110100555247661361141718999014373054458973910894942789830671460539601905134139139577500961094850291854582866976535877322037031793094691640999337873728308847910098479289885105043688606463242492376035793422753072056393587041834653484416438871075696163614168538231998032544878639846872521476511364107334488489095223391061709682792519507628239086619671515003221311124032167775850669702777974433009884443423375656409182322549143942053563747419423419354197709479455177012123701968540605700270256029555247043842766588875362650485610389210868924664489251290049391040251974917910387021260003981881661934929249533721195591988117088293409832161363419960126179660652186251821839453263349081865620397459870033009346848188166784796403983214205714359010654845015691129532128085512486906610535382924112879191923757806527504598783042784481734277623595300246264872020865289298085717085246667384456036070391124614272343974490130850481548084776578021878373812748985472504420125220379325468459958787317403487221448673125092644267770780528271286925490719370367216843529524433554519785766633868030454185811096745536320752921695895908023120480900026295725578908267983322723677548325248104814751855999574610533260171114210629139765341149473461383249718031214146137566152446760550436739475968211763944471529174482751407046636742922302715324630347027065965558225499718616101585776529477730038376316277727409083645880281943622850349407806916246610933604549200876695226379911827714464628898352492710583123131302410780073330508195498499367847420444160647129276194089896219721624843048208304477747559124558521533709066501428244178557906628981997263451698050923590563977833657693955137874663231540720886765213143962887381772031323227497978337867385003938766744494218620365281982837963382964376619550266807037864627700344323287143601122602675011524852225003242406227624494965126519677055289904528264007402843412528740712255734737298419353055676643687320776449385265020479456335698489008103592584193993949011504709808656832729118536281164514455511744653718498594711184965730243064264406015757887119333864070603579600188385993525656992968530956556760086448199460026627642795113904768220356705428341789504137042546078520747329661448841041590306210125670329609956579051052899495408972081377925854321960658713250897410940173777113444618787447306117862929492971696498473948652445708115323861773293023156209059677768780932585286876642427962804900455051301615656303270437663299893760233333610064455168602192443063372750421630614599695708658784395060197628298301099233980316548649021733041011081844031639905411059413486514599374995158915555160636195265470367016364969967051607595390799443401029038352514607123211841751516074901244157580530286863209560885427037541841080079723733507378809527709084027918202533403218061785582397014010027549178100225522403537538676544362595732401268406631698685331111348399196209160892325582972334775560145548429242800985874986658705540265530324099642065792947004731999686009804230184226394242807228123831072973240048728098382781935627648057205701420465845797628262628291175224637738654347649697912142369916896031430653264712283553288684842871819969217638706890362385793604811481064523656419530506867939661269273050688631137897603017205594563814145921543076090250123408183842066655381622720831267571745757790555721107439201991361447821270739788790382888841829394531496848639640061802051697857675573847468340281094571939885572788748286761264166180602911993958247430731180371396075314277160063218200521282860294860229894390503959112018898641770546758507089949524648371205169590771419013251243897980232881803952503401605917395262843505679648047911733350671649489266945219288061444259143966121742588759527865307754960890251382901800283971113133953941014572617267789380313871963872275351120314896363056529837800030473307494828645683083889044003496987466126556174425256150561296324102891356605433493150507631839609291712042779317665931262794019213347587458532721078830567125218883820256802210181727151661926533864410740070178519042652460013590460220221614670774511698022339001971779128152123394450925978275584276430927958432261503044020337797626159048057159800326750997944225895677086378645788581034975191942308544348972241727224238018262548919246712441460179820648330162405639678724633335681569700898678062604069377949770060591111359176517245711621198120327845442994480980161263712816092073177396402934507640068591432470159367665645696082772731231906581839434020865838998581040452249451233947320454092682601156230911899898061498801804277736051989064124911632631386288188336642136355314029456039881822146075483491224330537415797218107577550463542543838154081919284329239249195215720798631853137703368992970228693349863560048019820725640767755240859845279008232753612693386845200955749445966919689826864737662795926565475261962309292809255233698035005875339997845216074326091652776360746367239977727325138711213491722745760828522391086103234991434728837107605221483187471711359812802254063322637968589412115901492911898024300134135053345929753800059192466819805290585954085485563963270358901273579858880195556840446697480301638479350644990909311972697685746871050340010123086460065573069567553372278895440703740656418877935132677808916024739804233354034605436721830789934271551520951268351981220732501222055984078898989796728529942505103649800507055952919663641422111810175364436342050861333521024904127285789663964649819142204319291690095010336222169975359484408899568170431817793474711430192257355439407694278825682288363040054942469123194067527323262795393894645985148510983153988175635647767623221507218009159231601337014678021982830995200216462657616956494827954342120623401726902049587287199203600420122689011109000587918864832546302716369488184389065106643519303536929585515728528053846994179579682777729668197880549052037871532544944317096868944820242017965424129832239040575015067960185702625199034872700041487507299056517914478723509304965176440344486298506231353028518609518162255198672498175745805524004763639011556671687786893879915540366685684856757011856205681635035767774821089496712465787499361498849469152323276016333911342101297813271745305130207004417446544023919433705735866655054318327328345282846251732653426400566250936458188849332094377133919101009503326205822108707331112912172658777400371826052104335828964207011773153824128597879898077652021852061664550449912687045753281155754907015435940134601198477648331232562108994924754219880388930446053709597601960745319991454308094212068280479843197420837088065897762173274600870644501971871098129404136998013931157390907945002838335412157050820074723706840388248757317944951116213110427084726523977434589200945807598391402908306509938478247441007843069415892483260016492834547283721934165255892497568343566526153469829441772420621610829588306399165799930376052716166921130849149747511078906014728941017775146934310951400879158894966850756270047185820870095566968030522634338203883148273588102711032404332855019468210165234762315152442956018021360569284057432959103925793148142737784150060730553090386720595932280509831754363909805396283918109671490947191977084784305514011904275637022890907566563590451426281156983904083780643654313165333560350319730611234092902379163266843662421097727567234394653541151297460582333903210802090646777814233922998932018655017336302145603259655181993714155639920560536436498948242193202258536829632455160731773907667630141895301253840164889528830203702756914266187522633074848453599932727283620878659220779305316977437387278499606855070581417510726064325654929943804796022115029150631767350609600792374854233860842179265398082848107278306092868318476719868424736214532461168256919015384969828451552230517998704739227726486797161251357367398258749548224894838600793992441625758411482490183144086398136897565167604914047973031241164487344324889299445040927992053553864188114949083485300858702099932800215561898154756566724044692972318540774823618508089558593158500080444559165718023320331453560463378211702283715736736195388779301624557290908400947513743099344957888678333430696716853243406976467450858234912729145643299986108627214473667768909812556338459963359612745890735278272680830540186723475683940639748792834136843639987693826705931674449753393366422232972123710620940845243483055599502363124799962882110838439554524013221152746898273052527900192569258935781698877055650478674637839401824505768978945593992887161227154795890465842880190356665773516166670065357340301476179779326041616679054989485579833332160011186526907946231148648221791003048915676378183076341060240987267550757885949955804164498879149854222236538256245693752205455617893622408461702354441169147332997750453981486771611736498931841838666524026958431396554810117642534726460040581477267716854824592389097162694978126245997258177243549805250365249418090522576672849957082618391987810227987476893120492274771480380107566756708097459725253973195177074015191342959335841233356741914796098732744202510387771095471359366381629784679441508820631901096816122004800412522090315372601678055113113381738485606875143366642975540147814967084186523981606266548983009742256360784103746203954311794478057247014458520463476212557054859780801860847499856591174984755546355649696517574877933987038933252619860072690567975506090585475931335785614754815162396677768434981611763008140820234321700347161164517012441501953790889061997303619230228286912467356950415820933093151501750056453171422598461880783286155677560877520864571199295525195888893675519581655326438095001744765448890670460231810718712487660774703924097990799773290645879360609429555107824882634315884852924648785391993621086720686183401087060679326980378942595360308445374568305434792591554648098554859388011432833817154031630659505190100049995026323864461724333228178150228554320834785776493649548216443468082944900007341636314518284485427126234417256172934772698827892769189371592624103532362904010173562103427640353921994029864899496494428915369548823781030970865910879619468357767887808732647974364776508896523739414281140621046850567897691591145269252637519698737496265718819079914987896536735704223490745238172097024318719263270806817082986369687114986814874456955048207383729020194896436426915976975910313289583071868245588106632780894375741406578632979042579065863955764380607141005469872267476779422141247203302875188767882056555006237699007664641272468455524335450836416464209846726874869600607328107536477918170980142866968855931543216664936315069298713042118545735896811332634805064291191752165075201107760026103718655969693523770255229188451719560214548893036775514311142236182459463478307470785149750591626335745359573083140095769958024454673429880160509561721594138738539552372636944676780897075258329640406255641830443784491510473463974036502408262310494950812584342310287213170764780419996871614923664590022219652932492559150400031697417543326285371174738949271508286149587162563641791580337638888372305562100089269532492642579699115339624591393921369854309388202019119914364352536566642504011890847540407456629417365965897063985028620874941640979413282684507721809062213294095481581028332557448776387945768789200230014246847788554266590602267498303880402384986957730166906789077875189204850454761257547486894347472677183631365813329700324752110185500551699361003476600677280654128604942088745166113130990746731275159016636857277907916347266901721837818328183879405610550061368931013407605495467376793569604089233543369621703813729150600974044184477481194690720441785020078843716821180006105875504431089806351172425658758576362665977716382783436267310828212277014699323525972976539034118137549459924199826011113931112484777414632666772722028752355511557687331266271585425289514076297734263163922030886937799511593546958052824814556646862835814835184219637688239053921005083554271657940980601727877548921947376742231577291531924518104126010159137206885792741766997608880042328409440223315181174087258292109378188664619832304305156759849031863168475742566989174282265090955047780317930056789774057763248442479014182476077315038111852094608449307646373301845224705695065825165159037243139238082459402201508442018009950720120409702289716636420262777558493850173664559280158987912980076534779273395846226143949881651765685005580009985904406719722639101214481341378197689626738970159989689585562031940675927891649326103510627971945432400564278717694150077673777753486177578951710031516709398059557071584130846430800430191133372709541934064758275195745052713067764878873178133851549278069756014684856858400516251213247975039587698489547867220660743404562494815152168359993364178914244547615325261127826655218266078165744645866701982294085268179955045620582443090697406687591816715576205386771531560328870371393369845378857797714712489051364384641428723320472304580146526771655900614711785579701304923414051054914238363971934819192815129017915054915290079869157549508239657771088222261134934480759139233132974695265220440583750375130451012801650540364047107911352891895688030048555982207694068011885844707875325892068876324474981464058552264479630835837279921295740656321582541795321115770210886919541617109880038969314690341022469469457738717658550904115787070122307675575449957070736819652758588092302398376644619033432882132264354468923522663496077054977039978356268645630783098884520400965728305644737050928051848360152870227098764041534251348845102842537461514968223436715393943592715045754917904467048405384873924210125322294471942703910345540216541023060952575238519029560999149300674453819495076932964646005937432218498274909668663531950947638151742939236396951163098969818787866792251963469393128999962102492602998916768016331075091587879240890280613580038121268648013632167826141125710736137347672397986436774569211371784964976264122078782714137713141265555800612919095928000613431119163892574858820189282016401236595293413802414639512259228130414569482236084268652098074839870546750084381676944381047554998814561658389190491081028859782357856178576091959174690017437607930227676520887000109280878775390856600599493423980191455478732395584778962266028763885112881817241852569360206964654729893857661259771400492614540361121084765488199694356461288197513403291004536811756265131532970122968454700724401872441497029113665152940200722573413641076529183470505040162024673160675695247164891787674429308324959710465443306035310964060069835983403965768746013237897219932890946437168919989501574301900481969804859342824065061736293702546798512354747877309833707143087428708392385984510752302262011742832526809387289641911089868815723448184823725260970971297838981262140566824694888974825542002080559610060461099733458859274965217968539212585376160444664073704467301660627956410790310425456315872800949038472976055454579850161280879735582866657626039213595280698407027850175264282687158846496382274887968590442245725371746747867141501255500194787327443308672400187980620653957923637508966251018293554941811664646360862227841874406763254271861134108161530486979337431386995202862350609305484472247941542294204429652854791503896978101530718997424240957362261100683860914705160449954231444595449978647931641770057071824345267976401350547731181308294018565985637871572777514170696666611241155150236089480971868360703795223964802238318643659623473959400808995145924492707199204733687237775574001766007677885208673888765833709691739443638794487403271563866850173256175068902993578661076365343693692554667599808008074822115887740907040076952065675541476503499013207689357173354702455589299806125926358418045946393364388682953657981347462594585632073664056103170947038849660179146492034516887079474429367931244783824721621544778013904640761119990311767685269854432815551431031223038804710667128626973045833168524662011988928686136288321254638401028201150334904227081729749943736104626835444115370485384225686982619325690924394927986928888010017214950929973277076798369848741787732332991686198712858539115209940965997145110757847050376866162862735648782910304574135297229194655290817479573512224654923314956175006447858477670920181662105601570500609190155213369467231430198971634227437302829313140133952791792600459078524602533253094241209088967696309601337664570240486780198965522127647185286876258545387610389984615415797880761382206726300981453548950062075006700250801562445615113026762311106703193720847789281573333315398674061447872245052589475348460364208556271718301861186240055791588750003889251823728276956894178216618334629965113527490591613978537943330192778873137088228291977594219443581895846133262826874820791020098408635648518962593076457541394292685151544492992642018297243593052584499283645683189843330237078355139699399274673283082098366851723750557843530021196666537112659222833936686315159356787323676046587808842244586064136316530129304179225980673177837697146510431297968377646228564234718893596668061324509341676258159187872352427257002451348161181793616124166762087452457336508518845188879769432543800742639261219055999519325852075070499771506843060386390684662813485993832555214080907659494364831377598399928060910336014946638806861178440538780347185787733608147260626125140639978399038709498100934428423916427330944746704944173648436681672973110874518999318536308887618522555444966124477121783850101435031321743992849897354765918178778391449420934403334849280842393165498773173449482888101273998881031497959289335413753731251034756773407133443392415505289874510691591293265305430188852779371821410132337347946959213642778311786464802442666958750363643237961778061366332557277916098747593466961952294348696368573054289869086095871722783981441138493519575147933435756970099526724130482973794794524833526869882969969558179154241569668005175568252472293002340389422579659927119262004976467518323436962613977888915351860005037335335390462009944978975874254570356745061189494995308690762866705669133759600188565174593347462925212430851445752517741435726360044474374948538634944355323620059274600813108142818576852963425879717293475896218961657375950255363863495489508694358345106910749467686378482921443614870107468851985231981274214213966402620965108303621398874750358109577069951434007999996089049012092850707208008037414305546293485229480283898037767571378148193474807915028817145472188905300240772164014267965530068481471868413082979534533696875399728031608295555510196446425053689283531292742408880123166461157961659266059270157238470123235295305572340820776625334737100858340218662658849898626695322199529258128670280655990523059120333142311650535959462804326687233171622449443313257949563030755592596828582764749356676621375402825539864391688782230928837312299508054775840091056737972189785734773230673870919865202694651738603707129967426301010002242966318313265296749917673397602821213145936595093120436462673907150434299795370481820175563670644267768377955955498969586664934840518684687347744488120836372658861043419562145810251763670640300509808971450371192400919439884111605606635312874770944616387932123901516847472118091088550737955579740714027667745017735007385179302008448530885598887288327077097134628665274863807952688845814113614732211968295387938158013143748440914371369759694001080424238659270057340467278963341470953125654293621342797019186633781940268189282272116577403516713735081655445876866269716910908793131659032993870333221388793500019200812866346479037043566803736720930238065893652314699999584850245753340417713994634212939423486770744243183759723741840703527190260556788924240786598331537164814441997251359883873709087898736766465882343893206889551231507340195928187091198931241815777707475452105141155424679220855234636591845983820122382256342120347773844836301367045150368763219425708157657723946315946238463938286064482423624035066636551873671458171360018009615202302605729813684686998971076632128738302589081901534309642628763343434332599561236894023215191135925411490615301208931026639123311465428327599979112522080607567822820791888463777265976279667138053157978298230954101577343239708182211191178650375595766014819321177669647669636836995648096277764817015820216088300249296417029211920832377761427775018716987726452322819886651294107998874439094610637242763060033562718684794093566323448276376902738042988174296207069230655912532854341194291967383184574245493484830490549883748123506113570203102926165613483954391839900127771890917820815478608986518274688228459586873985996342092073064277653991575856944488538442219671102764591673815163157002569680645428142044839578140716183998842871664641294753804659800825725388106198867686868117455848113612417995772080738100719928516191826896165123885561646086579396473414826981843377146630902809895843712155818045405368725684005988175137364788989217708364331616514823384768409361076968849896417756387363136556722675784781520606856752524323451643848964372142577712493737112731821175030108550097369353516483915761597525640575395394620848557687295445430439122380706860106311899673889030656089241899678282532383193052529014815425835536172306339222876882380320123661864448114186676101101482677638991738190477313512159656575097254225582943837475936515750507606911797072670073568540442020541485050337489291681480770426424371326300205963300827053727401630625386731921107199458304623171194481082533520756418582285800540024879807437305226792397585897882892551357702810321744275463256977660659437124730608575509953265243000595622590553133077189606484418524301116230513429838470991181372746805148934389666034870260567111889824954514933015339896377557486898058926403911798770350536353538276511067120635122966642417877040174717992838576114912217200650638519091331288648968700155045147117722428684820185841273661891285184792945131203748331396351397444504859863836234716805474067965476150117334001897294963965341348409771859509664851634915269904723435705504489351106498261242468484191128243688766935623620976469309686422523586222231218238601160737360232498752752954477437195891540259646312422220103073867078891244855900985352776620189641441176726942620185583161837988242300148558917539242910003417002501795380781944158588882324028104513276232949547604557455853484330605231196827747740364357422599928453229656529991863084036543796415629299423452556412812079863804416379707700141789496113717182162073639714052489226952583052541635033023386149571646733732522634993376920788160815117110943788560809532114033051204965617747279603166605266370238354682410360872604133842006368559703371802580985324439716047380744664909104120204894826115860488149387423578564234440712344253498729289731303111752085139482496335401538614647433667773588959348049480660626516844216845518942099352274137083939673793362212734361633197004042692630358166163597266846569909576600572035848078862849051408910216473959608834149477765579927030673641144188255001810334874287670418159359955579778413768014419324013906609092098390038389549597128379633543385545763148146117813822953648289212512482160269048407486650237215286771773652590497095287026835538807228270376450640752961976852132645196033749473482248872971102319268012693322751540387439826856999296402093939916667701773867781490751963588402318204149416906058530239871292620883695913032759462680601850187052576896891343488418426127722748127379923503474062651257961317599767161769635955751247636892407580565652590652037651505467447718360089024759201481239756611875408559834350474303172148105971683509483400992977113543636198873573076813331638504802070506347265977163035123961684909505573160641937914310486117633440602852950194682006187211165923295577099005390164026665005628751171520826110368892295792089621178573286363697876459884903541916413399422304836195939946766820766304699951700384982133711312448023548312909680983651297396192897610392201634228475549451755922224004089881932923119067008970098250030577128656298884265330568488084371680922649763755585114241726629997710987550065476151983159045591650686302214941271099662265735090899338914920364124334291242473394598105438371668986342993671268414650226069915274523400135146276375182822375704952394047233585736257823540493172292504151476134622590169973764831285202835060972129908967628877482977666758474355907915105387058531603887336064322634589839698444451702408387535949696968065752013395289377942943346040665231772604995168433397880163977513685709177063070532830776999492239746125816574699995658721010252899050797670321713971468468392163870626301836433284556809631878431866996068749218740516986555371387513454463511357418580759883635107036811884042592118723887925411214648945397400416397159322399720917287111766901838863710722423129618519006008558233822199002908910846820940189075839338037970945068250801952556610988306628459797421798138823124287100264972559626859486555274465831618587862621869795342892826152304936974361272881978573741412674852929099926600296174183478393227952879809213877877950284061812001174044605835670696817102987646581326497901682416136898782395298685734586636236535523454354663272432730838094303322095159906683416454494749326140486892873914235137542087228790277689821014058064424201471369254082322213015211543749485361187732735656158186980471021367929839040662756465889724684412156174779732823097766128319232804372977811597771642092048745004603915159621597467552657249926630111912181666953427838630578822441543161599341222486662240831807622478515581180187990487572060231857064629795467083835796804166729237338596788719139936599441795638844327458780082086357811959112612678638815396500382284824625688301484636637116365153042566833006652479588456736573371615606967248168676405006200042339481047882333191218321098224451289938776567150844291205508997432318699817744029232751045645705282482199284110929924145868821748821629861444088053162176190459578495583435910088992070868906484383518942215915908836512890734356314676103727179780798679856757103666378505760221834151659799064447768049741617567248997091664414273796353596811373819593015369059586575898778815709711210801731802667928259526070952619536574592192479435205827026512446256588092251005769416159181040686218478958723473666773155663722902575439435868202812793727429627715946335231064862385353939839293347726538099014263336993483550991832722829881521030345298108243384638869115686103051253610230179361454646268519444702982398514564755849730161546067229666479795776288122831631533559407410642885056987550466658970035436766529739921773267829450911433933891581692857843287192386440269047749297898295897221269077829867959172365324005448254342246141730517052510284917165988594151303095309663264409730591739416047329072659222501872752376882471070875816105414335891417595162739910298019733169783604743708866622492231818170515861031253476088052366334128724113655249783581631275839418327163768240953485969050106161546341375384077395375934890388944795368801295770878316243792089311605064039749357408340780957276147299428953506577092074130933006107047265620669422991079286622153945655398262617028543888101883561399047220979434889863394508210195324269508042703750695938414065706437943340957593868781957148443576672701832999814720128505061877974553022200888515846835290844518849963853089318666280306854489486297790349356804673219810715473677637522637073904882778363232647250162339531496618264585736460026980413827836197029972033105319902151001526554776391340051871802411291218350520273831443497106773791557169283558203513891163485223447370506397047975079682999476326476975745022984359611219783802929907007019362401232324979921607209681110809183833690230070014896988624411504083314639887214586074024853991944509780872943819431306068823972325098963353231570438321493768937603565127522748628278552246078539353717182492354999112107359449126368356850638567104034091624496664265682712654077202259195261278853135531058663890251193694518309378825769058648283023108688633887687329274926079569399839757393838390530419777563919780609506467647776993113683580286624784156644862184977281033338910170047523625796117133501495626411864056300046907754869887887886904744173541921186279762161659434572081815777696714133417588115561297552159736161835980142104830464810108193181934295714330137293489772058698180572287332035023886705643861458843003762474163568492066483681449088911172537059106998809622482552355766157794187192548020562410119723831226008492458653256412133831081983100009821670089331569365815392310164156576080602508605031188817891034655531238077129669853260618157534297061743567250343255242923845686124389896946002849662257375889578147302385427828783784541806228634711191853329736647321177872094641963480289128701859515406915995733121627138723202411081549896178159946525614543960788831334717030344139552132709688414237009193274332805682281695177561407691333012204780676438748519265349605011832491338135725055285672559581064275743309023532387152702335910130132819812280379016475557724448953153257679029920995842167924642563012639908235532126401975866947611045696408756683076782066556309489493183401773211602768319526872552349995596564758212569344110529932991623120164610262435730069163108480001806162851850589669278787996194579713909323290611420834834389977395388434384496494335211742085289511556373213509190901571855926994540315475867467218661165290505829970118294884681784484463043854937741122169387713700174990708994333986424903963169126459587025103713588441801001394486196241672284280223283274971613358936360747050555578009688811832216417874395213859633963084752972658285522798762251267497927031798840510392686603604127282820740332713724133736336671555769915259775539107824929800308274016155835098582090100166180116778909635659805607335696909050636151490478287037766422324935845093721131676657512162909517907545782576399499056744014529403906684457660832038122373453566282694170808737657667558294689357257458712799316186277019146389643086010814075137253398249126066941458171549047022279555424607393642260169188070456798326282808112325324412434714927222423216647440773935854952445217740254576644693582511180496343221883429204940444035312252497843675456467150031296523246326525652674375884697737466273992620799756852369042916682478348942410466534293470435784810674760384938665229160260699523237084180492762585952942057626478072970008122035526521637291792830344159723633527337100466695178411102060849461462345591555501065895790370720700796233421883327008411814486000443437452680231919373907320241162413147547399991438876988822802147193561438215360074020421304214928985288606285251653994757333967239286094937068498163047429908319588189187293618094430732299665357088904477817222065882788837237717584316558762024485200930963802216625179839821442340492046643988609685461033844250409963439874633333370403068154599674668390465483057546850101954706885099005995664661159384537316278072184424824661135390801853234131484831626598021424348754950489939865702799801703737985676180337672872623900768276569673293016247783947922339867680883135276967985173672468497095840507484089193116272300922863759672798112391212103880927431431530936356412506412563454192491692025895606747039093625467934590180781375720073380874446857547784992753161533169869230525506385928649931216602070602525049798937136124808282076225543558954189732583345692003219312767173781714796901221735693900445571842379430562800891474480263245387354798690065054589831880647016979964368445461107313608792982670029760566798890280938900403078739988427138366781506136203671325918785345166713868916764569352328945786219647742949811341693346556028489438934917704917567511688998096349149527921165191273301496060451018348457409849930829292910545082759026999711566381435669842866244702962472742662874614623299627014337691672598658018048981501502116612435029866782035602622406876649998054959401644818400662600174686940303210133195841630041506545612124316559507788001522572276359878095402214330401886615053275881101600717259456277428903043710594277509489478106248756484049369271425351692221210083627233956224407721678512480624835885680241314703218626310734079642243216046549283459553060233765230920803906677930825908045457137652407543040471574663941119326694307110087261747602267084769935837517322946606372844317288648365453409185579278299347237046189249381238476569315545814796720460077392567234885044453742408184091114140005071756263507465734850523387881984379928333971459819206112788895433246953995641428382168976974680411800363428743786963664683785540256826920022971840860836825826034611787073278505721208892203996914751636994716965149987841844331245026705592241761754428675428092210725420603533120754538861216717177930167414877997747401862329934058845887281200744849555961139308922196167115269580135360875551096302025973324352297846751790575080029429194268045666245070294893962579926018231695735053814382989726780127802321518091300345439904877177080460168524644669008306733134662275465057785951181665754942772693366109508175006884790673548663405551346984102201292794400861659279078662352044575651384666383941507265772543266533564080043957602136612734322431555622862650398103298967975847978168011957619185923931622977151146089924363983621116084939306833115373953346051491905253913057859403260903042850074811788492994453792321393920333681395252979801757165862835574269478113460600431208088309579181508874222939146074141987205350050817536652068982047292911317253013768891656939745406103416443897228199939025621184845069500167564530940420889578365400410970762227613852384535047148129666469617875139099910762479431292069013063051600882909022453672096060866358026315639124412350983782954051149534254674843349390861245145294848326622075839648771350272407177842161516369838088088555084541073514436849606815908474632904603320128584598215145057392969102442260968194412060302020344660156531975315547639134123910418390337732660083437136122860600355833421702821543375609776587669547496668199091664644612684745758637621811927368331444023202644555258854557954119525597020776999334340209789091486967230062768752007384850809169497322393295419864436819341761827938951299459021805172297713487791682779564933743405823762565384110195920943254638865930075112320010630765545941103840544702091825859685659689731504313009022151397533364909078047140439583119761519996055909752314003371918041893607694807474226062216314434186729879768212331494758541163064238626356968532093941148080737102246353016313139990917719365858427750918404361285569383444772790906594809441808125723515887006763006691473912689479301184418256332945256510212352280517688310466646150609647741909125414326396455177160330061270619592262023944949717872856981661928921775770772643826099330986496848289318578395379252924756813746135924009598461416235824824295943604289987821503426043847949149190969254030233983761203336016814673025139703027408578536501762076983658800220099621791705793777662296690412337977436536097012924955924126338733945805077021612250954155222771239485756881674152986895744068100840691043384698484194250393010648793111307047818793492387567943812788738624434212446634848146138865172761193734356262092054401247930960621325798364773859371624067770488147465114684424021805246788638397631017493621338815553161015880116101340434854192639243112059670875883766286651660279319983015423340671560382069249609627125073801599148816923121521595353066270219282032772030352530501123425330664709946098339139655256243071405821170359090547336124446199515650356189654837717490762563512923128779905829045860096711970471061317006162799204671350754186120025309469193473785064919625138306786391015241302317638976305275398741985209614705564979344282840402386151182528593247839867106156681743444483636495277818970821953440509874179966638708245989281214281394504062765545242638753076070681434785737603877668577183660392251191352089011711209197755464596116684103561823050903401388809881304368885581523211820734005710314817038167498632284984225254566532460633903653719324808176645038759751121099669667799583127481954405670870266239307173748345611570446799628902450447866402497812470683456313537207782411523657750798600217055138248627796940276208203478197759718972284316344139018513891755257258422944966655470806135937742181713188381416287794008243857268195707824539441437966745771270220550414840988443181732771581076778998945945622009943820321552385794641731186538830646294492849630936558206969125171819232699504889223682871990639799855499873713935702353786445009360795008939280423262210945127022458969332848719401974971322977256408755951983920250634818331451344611052443870310123008095589395137929611427532422763545137316226993932855651506009342132644931580941263396373527812645712412795617336059413586698654259868660123192141806979824397061062618813219896262099000541556632985299413309775203158122485603579201884890807876335890890962037708875229578464431096013242624469922095094449997047114517186419454173822954024831153669443406969665435816231137762998568497946344570153277164423170939140010332512383998350422208140561014136767703793132580930313419357690585843218180804736636233141941937699168501972046006455936010297023066633411544488604548506560983693063471017481327396073941828282167245652683661685584613630851394907359127242944228695411675102357161582895732122177331221747816466711541265920816374175909355831997180870871233042729001732107738562829370968393236412786814040845439193176927829382010014678165469051706357554706398722544932797399185418998846489481897869504061885338590762447531352711925301282374083822906260530325138329011643078079683269245622521524390670521261778631340671606549984953932971450070713169882284163152446793280751194927959108713238121760562406757646228595870170257119500219277858055230759624672492726125831172683257079632796618268534816298165337179337710736925281250416679415527326402043698736072570669800981243643514570955456897783201674508274644550318726001124079422835861656071270285392242979108220987747280566666392987298749666261827777020453441779046310995151572168133525103205157373935358112500825043802631414626161903044859252039596685959082469864825575651674569169619463178086555514391073409635779958853029507333989423403204610879776563353882189584725860529171570126036151763063738368544907435541750824648792683541088522763387948969543087755814577694639052519453478504459327314621963086488114923877984134491070294674355510823299029157059991288844516888645728822235551014645315225724545060132441059878178692521148425837185427666014005778045968448991093159424768963416874407796567836120553133271421177217623511385103051935582337094838971780307497570895794995441508608225173128509534662933605610464753066606268779740350286086581806412672054922075825959010001625070556134455713091288972492349591138647568548437873258108228865022360588066028548140654728926650761597844098714038338987480884722572095846349924573543418424061142537858640490480236366482336597154217129005719412524867287141278194326908710309354826717448846829796821693300871131874478163092154774775720718267436923582699920844774834056514043585893237581357753534113338846715337797504751781414588465555668901097367410721517408215680700101330010261727014280296238239423519857083591671726166837478997678845233811406783021181732459870134821436304824144757852967712963583787589538081513075229126492460239237062744248564012423605897219020279019052762542514482844645625200019841228307869021050165194224846532354220112089621066520563153533171789855377315195100041367587488673191747318560865411570869784986421266459247583250720672085337725884651644604442035473275591039210717363789943457442101955287562300237806390693657810369890008763777743169335566931041507903952150163059613884391943087157417086419431616901262778103470506652559821180193795980864474153489860275565956937724325731080568806440652438054889136701724959332763432613843479849149721034141744587765591883669203882936691087288697009779544508427390526773055792441128768930918349893032444335946701692154129822792364399343809230970100455541612060604451710272434258233090003738797877426892591159867546373817359703735791517714533454605589177897669254434083236440463671340756583696045594461555789208673721354932323057759877080959600124998815645017737070549871579610021963729562537511611465321265444754400296084214688052756460982926365771224015702002705423208588392317921594526787497245849908546403269430241600800790438344594937096534835383438289483625840342469323893994919623934975161120559786976169978812785811327418847753779445528839917960782706558863307077028930150916002894995345447065729440145068775115436588128421137776376833543895407724463422281518732269352019312723291954885346774924255950131941619465761755700081021822701173194284573762208007049110616928161184376578888239873976886270332361693079871281861188467522568895580556183833416056415821190528461100450224635958746598653749678315988442273178558522771060254036757844490627731786807416642033569154295539828243695528947221399118349968614891742391459628875995326301552424293103993367445450377645598300998281883659158484585154684138891328303345989046689344383892702118123487405909929082000385126400261874384072786994921225181513173875620424337691152063900639057849710544204983833023372027774065263883304456898040577718376832841711542853682648793836597644215777002412823693858963312097936683784753715641650719629602132632228027677265757017721690213055433256015100974558957492496954747580910189205919637820238679931492583474373470435549668852091344205318543809220472604434819301404973627732094113002142771957705931431133984127550040890529677619012543396891998571779211637209555799065656752499382055600667010729270615881627329412911491422128098907238292433034248382320010361023387200530526230415291492338747643367002719800645223565415759918372604575950983206867533828383342030258131896950703118124056528030633045631615187459940271442025639223439989460954530536354813516281078358788521939539694391341109381617442563079238839681075919542112231091099951197500823982023223159351171323103881280519008903906668475739693640133641185200078780381346369347312829272069789908677426590232785923408749142220007245779829036761096723521389601927145179864726156344616769464382655043081965496859695746627341660834049883354735963967644285243757504720429945493622693166965275329318738441234371923668281450725821966023232819787937135503128206739935219628237019585789455849831594807285356621199694673784648336609616712720322038747101882263965894713754805170305527717598922756568234278011027348554096487624579298552408072090248139959147212483380913740840771578590831367368169024468375141843929539927746372066613750694421097875636723502874167534458320776073281076668275892382186037092525832756621538620383599250696676310486504556610955959807264835698430837480077321286894322000639933894076021015246718910590525272160103763981333582689361872726560282435085639098753745821674796517227368641927688210687015774630333340577519747395016165718388256851503108074066113993749044304024129492661575449541666653120677092114400524297405835628095717947708727422679494391542992105446911414791399494853785195840118337046481942475622598680651921590794192595349845467327443897130959662138894808503519931080015244391221502517908449960217577977309236238866781299101130343262076093343145751644627700135686047425413955242654528527484374901363526238289585258028043557753611364095862145562438969459705847568526158697383052460781170597756117488470457965040188521128695954975145145723836522298694480789365178059591599259957963402457275888738063940037647637476069342918295347761860833874389578543136329648414026239096770472976039971712910298171767676119891970631208633458025570882968466375821101407108217823246937070912793009303907390644644172044163702423801362871572747040039707778633622544205545252897517296685242988609043984729072573252985823445661502139671047646315890795186021527577417564973680103041044843690159799814331884018225085186517367112712756406354273127758180651409172811412181822923461379659607460607121959836585910613000217546130631127601054825518121694492006744386195834813422377650428023100841776873810422813504804685709501350397215881859847890574083615680663876312787795777776213591565167414848274915226565501467619950747849396338095050007233175840376597101909546239980940406179080404221143630515163780058710156741915776456281180987677660503694253077341357253705839027455448865198747673401695469541484361824379419411096393006578131883111423744661016228686246508413209039100660037364182879086902861181466564275915215011009903907286442709679133341175354387658571586764611407002338451667338811933991006686215996827342772865729761660944315800634269210579626020469624252885050610645897259061243164800047933846993095157234779527045855472431571056039724432617613560757126673221731254765561656975901162891501322842658055316558525904224062023033915744342836341921183516312515590821611701847930512385623540711887939694398781895461249448731844943838980335723369948605255455927656219274075285268911790441604678186969763270465574004507099281024780757101744323010866956065673257126962008740456657814590963127367839783502538674059848178912644776545297927962958763065940007226670654045103301905223277398876834003329865545618219084837690686493123583206122021851750333206143750405805692625433553530844392319246475755854387270779542164191579074769093800964983787644375486406627729175448578348416014442106602122279969515101231578707987325583498640224469105691914404134066612470912889520252213306680675847090032916701365465356883476527110676977359293886161127748899416488223758637278791066767275833535807929168174650886589498274548555184474535698533347703785965389150866018077007964201818608368166720334216873736611450378396379616706167591696912328552126066800647176490022320704454203886531897959842328104155914106964895458060547072026929617485683489185489749327095245068077345064777852546578295224558103869577257240866307207648049591684374154999683434538194728812728372065800159859437825020175625052915277740022583043730332293065202212016151573379844598091027733221947910961939199008415498875765693490494456800927195339408637157771727468339452825888687358376270746035208536789103282270274725491598315217410504027736724158208684617031928737092190740143699488284390823874336972707210688328155385495172202577133578335920652304822820750649627633010154204695192983031857783406134219474148465324212610160055845400435915122837537874427749139916251265166491906830566865657001631805246291503068784777744293013698976145599435954101086811266217724749769006041079300825168910550214276442419422171521227703530236382691445508982973907919301369907549139363701562850176961889722710855907658453496627231772090038698948718259086856335682503995121674903835719606104197930480335344714930688380602812270931762175154489902775951148680096580241214629894338441700737059451121537942123417751400446665673635644527775661811779573186968300915462941367472378669147943870350540462404668986630924109814596284208805079515637582306383887216202456015356530203699185075178159077001260476402878698847180431253904642308017836262642774482811344906420742806717765638950267167508553208846529214731854015599826951653947499781247859810994208886534405142962235899965663070583412211868985731448176763869144335553204228214231787101519791186697537885451495890108906052485312182028045959867325517895168591091107544772940185150583586981779565669573427459419528917201072600888989214864091764626188687699631013529372920775197497574198176651476505289384177485231744906374298023972686180908049060372549451064238610805867277314057407436046017475004582335124933253043536388934629881208437553005343104256013191418030072838997736838579485864444483201036694109381455750936111769977526310427679176641164161409779347910280106019244621564252834411460914861537391504798660175534148333992590583205963564732874194704674954897895585792357992388964523985111595111789820636900995563523615924651553146655498463874308614795315471185005156101120988399795024093490572179460455588544155844449072804322687257116467893031311914648580289243460356812584352824855722295072012591264710580232355213084538168286083494163240103821661120348487230263910725189963209553542216922331318308581179873411713939546125763929413600538780228907702577972753521411968758033385208971396912185089393866023383705884730206933012916871793184287858445905897447432714246179729751908384883442983123394208456118178830444239744697409493323585933700848275697960037107233178907027156863018713301060545167790382015329665061736134316859579550357813157407618100541021895353767008770193985510037580754649951333277702449889524217274603026478101175260778691280945823851481077078583907670888797197703809760787923003708259293658698272721114700897185432448039175421537439955716599715079340284716492487064301087666807170821159556253827153200918477177071434908526106855519130906588394027861338257133414321345674305138014545492295372616307693236275323772057201737387801794742337142855731372194256227048582967964172819622978275322813462062962103129735949413751624505765080332134846938662212601447576935514607508777879758613993463692562806799263644539773120245592133848783841136991319013835759841083811932604021833562060356381694055402711783057142925200773643407787095489697335115226960233948718926324863639413908623742080043121044368059079209030086603764362690298781483117537487891483051502989082284540205998811070184364579313409428478963903144808544471341504925378184213490072520702877265740536332147276966266788421668957303548733697716097303432357050183467335258397491218111060292078454493155043254155275514032604349232599824037010924041994137598732199940150945158723868620258745674039871008626869540450416123135765615530034132333585772021028588756418908776374835731219554397951798107835863920766856204373901288794734052663731667149873582335358049984582063049514081909013856430022263929808796314895412209775554661493551104307521848926789516914904375671085449241873368496028515782896552028280725981534403486968729691508089111193967741478563919212010185088209054831774407513239034447649127416342459333439057774903693750775337174392183106848839793206949548631668749109686621040877467744139721680832078534222443331755317672014902187672310020768722551916091927481852450117290690541599529961226692352324088642183950328380795070413046898437878495679920097500456142617415099043584025676744004265711463722407473290425717000414793139752160678795205961465688177177363450634460780678728059873004900394073791006384378144878180907039874670561385031066378495029955975020172279883091359592533892187221767939166202176310757135167890590477309246027193610069818460185837876413733382269470556162459472996178698290432981605435189832350496167247399824039435202387223587056222975095448903482322806162571642028179176089027536667685760645054647932292475057544889367431225025876211751257386499350201433784798480804557160159419806034340667225744684834815743228284892551486829186964375982032395650500661955155734517257173340485080518198682842146913072960603640134347245459428643311612642985252945342919533856040156901350853997461158527219489272180983433712861217767470870040135366546502054655985603603622494521710858932410548299837415415826502514389814910763157902391809458240592308743333728430651523360886478493632981437478162220240920871647371507143121988015932203758107400733408433093897199336744010217992931411146679316187551942828911256842398595225424730744691562174581700066477667189271564974588596286597082292230175016098422272066159357250381436590386804552289195377037262541133320479175852217387212681022098216812238197401496067143667296591094575094162724822376524914357408386618964378682466382938543937746090606556465098882267129415235325542782742137882835464841365865146015161796850770522472989189626264755932649417177374339617248800921398590571487092139835067618302685960042545577426659614456830035518740304837861681629935064963651514934778715897286920502252756075216937960310303647274424611977269159944430240612554225685739927667085491690771343127640935387492202315453241579217329520079820022338402296808982119574102973084499159834699676154408837452730867310172225731171257520540840676845011366708267564250210242715967115256189031709795859555509256252022107152164456154218808184404898890325918572684456366243696637488954264362466850501963122818647338598294332888750625180670572395505711186951568290541797352485764796729484033498920263475132539556589217031201480623551676592388594029792211946034370354077791526030661636686444017406387268558110935441740036122542129136486962655327082905828960744522038668341272369838608772564529754582827791995626064370175207495360886742605400437626491320760526007864094505313954942659659562886249254939756705637239580123443119596860461063039706868798869757630409007146072482309525971772405219277823940529869328331118042552509534623759289268428872098425121323874577255152923866456013494115456270176272838133597425799421695939774523925104712461539837721471151817534548019111956264270358614647975423685572513625864441155546112136930848636025257800873972906088837899901670942943840457205010551462395414350550414547610099653888723094193040941588345187000569516883794227954346057474083458164549811508295681217250771118923328482415101879225040384044428481317637961775599815924282085198487481272861102721507165442481460055462459330701221501714054389680264746138143045138541854864741162345250487078127719170397631461290868112595431091624161428488611194486694459741825513524761823200596844072107934146371594398315325249277608473923996435095398336982383492639392146220423669045681305905333198973218956374443610633883967045190457083517676333242286952218514352977453209376402569346455742869019297502461712456074047463051377311617532928668332846597156442254597585131167096194823349446436559462358342252680714548524729023658708697957165081776836555135543075117288067670997210881638290034348172852202948299348785739628250612118456208733715842325880758240066264319450755552990112745768935622682329547717101187872646974033634441820172901117307491944782880091185718978228357560509339847798781678622812054396382529827403887093297237447348334660395139833436460021871729200188825407983572783990994066847419589471721602087361597895353953411516027893492172960600920638041534923181648575559924368259711155486287703169583920003576971283271852400262440490971341649905808578802206334081913960356190109167845329922010383516742239750422585049757205987575378338859794304152502476790876653788664039206929570071528483497595763495431975852304589453896322331123262619041996668748581680982459562306955129490878036647850628255415381033506882373226605015438748702925723201911738896956737648065384742023159649024191057740032927552153084409078024557240953241664297280319114273896905818860481121382333616533646548645216328612798376479125864053547167452314225548964647679414159184967335827870738737372838216412940061010798926427270587763757887497805816031526754041806330661192445672665410938106465008277826173353103673597317555096754651120776050900367147295642644810153238157939185262563797991922575994541785408176326615562435971261074070598795660453964680633590418507485155730361916816809452814381496688518174379385660290795833725630927595078319459088627846981550647267398232398993962804095683943129747461598676772472928404240963386230377559942306986718210383531106077944777264628671935329011390516698507411478179415464071979772642494626402076830735740057691735134075152692707773799836945995164821567180322598148105491957974916895878927238663762564299970967366634707108400601409027071992304936260012214476829346324850734611181851843672554262425930577856017661683980650161651252785030463316093427757179662288285072838420952202776336552206513977459787184538440045748500292068668519923432860953179801612237701265119858550692186857708214392678086304144493873881061966402430703031443760414088653220656162249039028555619664996983645407114203253933842735606091016552815753531172393692327944847744600214273704416514012802386337529172518256497351644274332362536870533756372616138984237844437163315772731987323234295657823843802529428936205429459696736274373082292948040671910146585348009416399183923172868319105067635138573098124692520323009587552126969021620838921204424388622161886002759220883462513190957981323409247959545184069828888863808716780949764732129454168396616704608705352508182369459888878859875081318103785338617121437980628420367014370555450815502244986585556440611065175608790083180197564336114377282072819095963064802679043568364733504121650577093090372128322746083559115804910310816842267513438906872939873084251182483512957803192181805973533827638842226443219552861445095600147957806111819902918622392286093618730838569257449260916781844329854966765719920384617895201361891431264569212134674913178106307412742583372129695272431934993402171267029039658048428349926960379093739777002152275479349940169386196307886822256339743733993711747840773574862339403984196532474674630598004944553331333707623749638909216513987545275629880803926908084035452164365969954991262333769258104295496314307793006208821366664300817233389324409997785169185990805633181081561598278090373615628619439234749917322997536885615701688025467243500286270917048337462542954794252812029968820670863387513718103774608635559045534253880838210730763440988992297371646698256433226579544501367350039187346410987868634399172463627141614248561457223393746682362415757859206527650103771130051738485098889528677998206947941581380128074439224956430850320794493960831085955280693970595968110088053153425889854723252074042601117306668091526659936546912394507288105648042464806603204254384801695241490932902734986216767517622891498749549061692467833343535060366190034682797844196996729055390447176959041770650936109809064577756185540294737840386043286961444496286221473042724575030412033635077761492717181933888231528930476850699497941207120704663052395141864875995859297716025322195678831114064667397419525688250446133401347748913365665348261336224229722363845730090412626279688993408634483039731601632672621952158343064367061865973882334198547099513328083440653633444395910566053621527767227128279410856081466540336306627217666872332473523413609086885122149393505254495156273980026725746987780320256976058839188729909028347941380249647516926733017772422085211601979793707692423058618986537293565186122110855474683160756313078204608550715314463330997323895642818261072801779352490285205737919700120951991563177673944837488858735593563630381904585986091329122356612588142824395696768317694033614134326052117504664815771244897127055018770489381639831155918507756370584160261441235937003693557160988191777936578009778249600951285377731142533539140052158624624712909380935242452714772782865432854185615269187768469397316413558937777398409188545857033295053484563912654689525672940857469464743719245677315520489436899989539037385219459467219460767869500230594845582046876792511819076857638653678185669173723457556361588454794886163664145659576504122154001662308330787666358817072015750536688248553983008711841407376447122245293380385592042906255597448567281447245107105226191873846427423796110066854853865148395522580588806281109635493954208533450220775846097551546011654784563569669090186683380654544874432178334069810246362693040550557399801820652098436093646197677857168429077770955344492928435463802702595540708869328928194576272052113835682937824806513704612031613620364535418446857702892507559506339072945666998924175659407498339574154836623855136448723516233433939172538268125166483004938417333768247025141747037354321776143329518066867808384007150789645017687218207320153781565155799051936329420907549357042361858155380666667895003684089820949974006560587835145261117747195497670761186420231795874073180784177651559900642827736680371244095983657149061360358094136101477573739711478964066671642818679323266188891188113183308383520137250748881110257420274836553552815624146207840029080447472800492708876161894090359166723339333846093381243270785338545988639124568992323895974057967076340256208147988804037963047423192215445018596610687105818891055857542829234247240815453221051776024310642047325962146869276964841843026643642660697124185456945821204517046337518545597415092178672284951226921174177103074366041827795892937015006893442413150466858870576227415631546489097613255657506763748063070684015979874658824153327473691229875871774177312630578313928789995316080519263705674816132315774782226389139075698314679078087964587224711627844002622976284107566548330145163913857546344262989788155005186284142921973053886350872846289347493146687907001429539387635014357426444210763051238056771388841947885936715669429234412979467103771531106120801477033537192212388897909682548514211312757651582565402821250486624181032622618096370717357419749842004400272678349856870576782636049067499186241252292916519585637421377158453207215478856167029494670252550026524338941423991169613761852406043628028348862603664788146751881343446474156787078234554934145633432637875486335662937858374659284242115504841315290014738935189567533345211646399203247480109181121348006309451436629162098679675860555986078912175856640187125922502935060287501009349923769773560082411682747734081341358673011162696261340535736909827019471027833385099616121851236978434791012570284028041494886735850419870327409345036335198987520787645911264318278394096375320295518844874588705076432070985907256858261806686665051904756685911147481153344101329205717704105436104985489632728382551230268706391785460350001432346918183503505905485768965826997806364311303783687774817355917687517877167475991843133815138342256053484351260334609427158766968232851114393991254367356142804555269739267286112873641690006830709482168567727838017750414771308873197820742363215737583662650871129970095775878816973193318192471765442329547750520155000014314458368954310265616189792093095583530393548292156105258904439240625391919506003671220489920864581789385043000696065267659525444518161775480107657987807394829366711040316600271740962522783759347108408801135661872105646279159416952849923083099117355586250578616834056991713690520857304558007210658838523850438165318236207886643742871311841381559054802222658238600009728361615023007920561975518223973213423982138791280490500335425947522460254413419015539450904457098911782452791626554646129711081921448015027279538004906274118346630063510403417161175337038108605160668634473878415753415330655637625128734134218033636615453804185326309995873680083288290860323564267877830354489356707382566020331652269541035138270898982716010876966475144880306485701399121963207324755611695665944740213313390317275512296516881118693240167536861380346718966786417724243075739767915109554136705930624851831698802053221898386141443089928877577335965759524476973774567756175974965555557347430607285834562563072632901546327833846034676338020103336444604144017437620822371803359018920735351235028412702578799912726292235267873641095649000155237943071096560219799318636491216807891525356490275054519208676430036586367250097234986390078316542899001501568136097802101514576977112553214790516439847459707785554999370792796560306297409025634147927665847798324983973710097375179487989953930937791634584587962231692567200288526897067764111961575133989093342798052772958598409169356443986971237136772356955280348854144017731856368009022560543553151581090641264196052597400586975234039771792641001628701305035602764095484426172715630192123694157860436402421297313335188906940579143260459518291177846472680166574224071873824370285839814707030121022502284841638187326821391685187949280919669657504518027447063698663893393043694149304596697190996556717430407446281172959337976425818850418812554421846767359804486647778053231719139786190197006487377022195156444770518854557458208064620077747809928762668381951412788733974353216897132443552735183607887217201090994257441647270917719590083806168909868269738377799750415504410483165886152051203498929992586241096337618119414895014667013787335554457703240697999187000253446142776708985359795356118110086634420594676602903685312051810050949081643805759178796975033940678240180332854978782053245367413717775848387618449426580645922206131470299731120421314056794858214544861230133696188556593593452106405205338124973747596997783722046805688109004904243073770628011544103874386046926182757504168760486124243061702205409542402258310286875224439755972788496704468971253972103427485704117315434453148827566753266916324515567742813424521375373532344736039383877780338229666213439212014343585256467503640881670713283168752459262454725191855974826824883016508678098507251930767721617189566311951432266366563197373736904562075223773141876724901531122262814107333335932234555484202793493125243834862143210659567755583665496118326872293399272733260684673490748676527628590382733838391220783989114898070250905039904648343413971031218131081772176455449096301352198990908966562837050265748787708224709083874519055363071404062595221287866646685647887344236187829155640898208101923582950184603751129189262897930456201536631154891990743134094156156996920723587242824622153766412399891159845283440368452576540249284762212644786060426277188942638577020515652615097553295880566618654796390631308132612598019863044951100470839608368863470017015910309481280745817641408441379430764755132193810273018622317174800295450981183999250737708576504416804059143067227855554592048233929903099826326390026378388697283229582634061126804239384230870585304749915322852366584099039419045073488032852114310556228302342514644643566713657701631150787706678672955333873375389898515794342186117555802395344693251984056532283703143540061526316503557245280302933429753477272668138682598471655729452171144269101143241565818239199299701646713603307830197125360519969047275155639627198179873750347205099277866969593877900282191862973057836316808830037509877895376752904498986280473832759320086665630246576914244340748918420087917750414203468466290259705077869384065716495754716675153893531507135122496038456333602214552171498955806907227123095386652324612515393547745836974720426320052604386786194939625467525381130707675416561242268325518342873901470286995768591093521412125762858034123111393168805538081197356468867946325320791385086212997905899993986256313290402491121014762708662128620348507824215895230588790191749969240786936964469878035997645125183025410568854387360867630611361693788296894466970128030237254409280083244681502415113050891678323864142711574602249183527775209954753976263011700436994478135627376148119130148137594805578082846542581910655594544312220470766576818106624249160692626026886690959273722742514397819976032463019485820068339098700422763274369323946245844871516730683460546939234633146545741098981012558796393161771433069189595654223509621153426993420128207301714012087401653066872727676521298060653306177322744348710099795770293295967171297190825535013260394140392143084834818605674874182816947327379296657025523006461013072956294962700242722258016891350984723694449212093069934983766030776481644431620032306627017843672226021258765271822789772897514652142918711636129389604223185439293665314581850201701512118134142177609555698177961148221130191112064957316438717496704677439351588723765003708599228021931569685857212182190407960335179749311908412590514673501563237354724135726274558029470419197961319128418929024237452412587033189488206899462371314471893582319575515824587301719933778638237732091868974711185660682458025395449230962674809311570401653530481511291203056557431636789732217334175637298061985105833764199102672918142650255488453839188181418879676310779074737881605968465099481141914270872580311970124713915972052519419388902549670596943897319354398809687048180933612393908216871437579494367090589193205817838198787065499611271768858250563109335482045636259459081016063341672007828185098600078245705491777918767137795715731779949267698850012080093936022999471500596949268201731967787417703372901341468421870306658055775001660460864882537869537553892839946365009061772272434925056222175621896926545714597503119630096634470531795855636040144295272858746448459968581053271374021934023288692115504197896219280238798365586451353106047071138406803525425359115467463032228500142220104876587698855936717987114988543663214054032614608214837864633745910306821378641763200560983343863624892815033452363025566070839797286186857742504052468351012929481541988278694779270579553856415716359630482196522023192064858564240550936838344750136254249787578151840375967792566244928681216494276285511314147935893554180328843815804802293379248147451830484608737229914828394452929842755046081534638219772531576071158745811843897347738647666400556559787899646204961936321235923393766803967565528660597719060366388652442650262650500843667048896624968291639442897530115619275665246548640015181528068711420752186070315177421048885962476880122712236938912038816237893877641759655608500092139563778722162608647242952442330937570815886010414885045876564258983578116166464869890500202146017192009492059472159524025999590099083492968699748606787888806135824325674453788505021600467733712797294653405709869994108056315397358096377595504799173142212491809548086522193581302276573274396275790372580105672311493374545628222274446706591698452482780458576255683196898366105743847297862990115329147964966261598864462119215211761191697803577113503871840165107260830932069387340559977959774241891773867663070278175726724136553765876719462327535264197611914906714335024291349559468821426762988067113574137765901742508283057537636768185767470645795702072713906827397349719930458786098296702194746397428225328052297038525541375760969743427618474614971879617424972834170334815301120747426211337817979989074553529289943210609587810597006784021045836200053631001921480717133511332014354781610199078729825036533160055743668379774887336769684540730557660553036704090061910797930790362349515024327784089319978941063537210534083841681841952336175398586067023847943506044717770173638020261260955714732470449442274681425822541686165370719062951612242588723416133191079056173566149648800787301933162594868853318134933955534478058595697825705575332562985375304929125257005353813203768278599303095073982693842817562004147863785915371865642847438196649384079755756579445588292023521623706465732923044117311839976750440119106302237308904670117260173768927655369982263033485409311300070106592643138199965093727005074988851954088149575136815647127360241071810551245208013291479282197387330301517428012619918797956873006179843142730990385278683459792195551231871966345001259356467613150966237484214024351337966595412557485749820708815531583825286738862153803612141923090590552684162240823762232195231379268162580251732161973239500618566388717963984430306867253613677369612501919029677275943820335883457433728247814229847171508729893850345903829514823287537161093227547950994901382577153183340671092782375801418460228084026644188032664332846285961859128751034231872062538148215525870266376817447192577675470392866408574992103794648692963093071049375864029335140468328738458547943685774248795434353414074224908678447643114733860836308700636431811886559348157379208792483144646799057762122758610989971591870626228141815422431914752800384950763392260840461727081089815899975350001602147532035354034485822987321550380594738296605589522637933682738260105732638079628819548451808482708921622085600471191420366603785507484560631653779816078266348033174095071103980980513996995506496144380707120490316393411736750059620954863574834235853424336808122103605660069960883734870052133335447088342816811909824004516431574510974199645635520459805192391564773123171470638471270939749263029321393621824896924419259543260546201319849415931124097572541058925377647018016289444545911382348767425574293766339289683926276001141373625364523979485260935920364481028076995221876724876091743089943373717479784765580340919667394806180384001661549214795398533831732648780903364578116234690578943770771452434615526910756531133232059807220276161908646967540998030361987399957533949515309660965637794480613136255341497677042348420501620676365711724197211499313180065687367292815102336518895542588700332723656549216507452218200324442954183996779142518272628131955842229032739431606066406314967498062287534253143130770144953281047790542694793912769095999352061859187623352921948924052234323413561083656767039935649572769423641447419054865746612118518051299123577344443508828952499298529547903866232607390160875541198886285739472720119767312282674115363736506526367003247580193742320064159716707860243164827450552942780222910366517186863055443581450224509654897289359335390454132173719555493626646409933069778161349583357815881899118677609432952078911076404918033319516702673654245236577954318194668055761924640278184380966002209905992878677748190465813919869140615998477953071672657934558600364975642001177224981889470925752800577841750520841585969080131862184261126673681484111950855069999415433903634728881512341730317194842143938756788551766321193213282341770293748568965305236109265607060918877056136271867621864895354224174785257226704346470857455061936609101715483821929900478716607774652507821651106588042795118215459267066566710418718948636913734615581177235978533409521112449309513839520642320954979343300687850443240929069175472527479056681390846887274480524408127011448839566723899234506681611685471453928880218741064684908286029046550568420618993470582390231337773466755230092618433244092596787959812916879891127120674650630347694134868687362031333949938053811990335554330717881511124868445317531412594660141368479934908713761381962625660384407540555826726481961445859781171553487266511184995148301635865898112681441458569099482762208471626475136801880984767986779784807106177185741950552012151517249616012915636619010357256764234815993256403358833055619588978387912176004633161301422711567068817431125385585286086133375554880344314787746534298166085638090983843379344960576273059869602526509968319243944117513428511966690865942885894883816595154324640186653530880057943538077932689964400216188541712682596325674436018062924239819761920464851000701147004303320239203292650099274358930521064921965832231909475241627279062020950063520367524746589962680466392751499404650779291309585617987771613408125385957920817686966048130118750497338638497103713655298245091730059851964434601656601129463698989095009960328585085938175716470995835606061861414316684821122046984522114976661736395903673992606197461472907838125689996329518823921348700251655038972306064213225171327483118757411935557513825930346452252369111106247315385058468328442532177615437759461174005816599900634095472776084833121888790914226777919284168511222882991001097579742223845846214788716587671472215509929289610761816630985968774906491061043599601443558437056193683675854622337024318467096564331581912591044294825364848128280767420410639950328102978144443546278655685011691117712616490400753595243481579213477566636686980310699521926234706897073449856989240829617339536194467061285578209917142500217747603169783186646708269286453067346410299882871945477113770606225378623088635895369377960627673659357548255534106073352716164557592025302133938260267663761748930153237317218927559646559611464070299323778387931089396116210460016366820094746679109914341364562372218472270540615963637073377604577378322619850390948778345949337536183831618011453245736684708337679869546113756545801184199751897256068225933082618058728606113935565919437745577451094967760497131582533196118791150986051514760966287413448241919300996099638951285633632290916061718718950271987159967481717194501643863876323286444578702197556060043563888444942416787160789308167495195877138171307045010893387094116582233621019915468766810157776790130786595534487387382786278526613339805849537995411034999970695627367213213527693174815849515081059571928124410311053192278427830662573245900624227611566582537171524538902913415262881036779909046950786927848683967505962789018558722106228851275296061614163366525334089695009282782043017648410321593966901175528296481722134436282538414663942150250922097447106617204644133022925608209861402541427636436224942901443419065100776467175538201223804241571028687289513004413216727821208987294877320395870384097451280044410446965617162829692295984411996900921388089740792974611817789588893246480924828300989115196112790862886060466262616431748279589060651196066942194560069015508162755437930627961285747624864475415841524944764139626618982420845107364716702274214332675766915030763514941223192660429902945469504062593927322713598493065237092914579294159558866501921979957261600306561824234905255180336167661918763449435419969124056281088666545102393896691970951096185312982963296565393449535594793202821486130112168215549896251217281914371475755430946352174546804525127681012570802208775146029863832826679399177310723017645493534056385681538604240228734631597632337070569152319337231875250090682308158210086515207601128077309243486715498835182161744606311965909837628087291040452223024451750562343771301439269272415558146130990650207595452495914938964235990088583809391299565491631663656566261713453245461908962656679942732806733738660907129308312803468568496655209754835777333813497709908088864931480580552187201222053047467052295549147940823841354355759873086747287875548396502289666341314331016026369557351126144067089528865401866875702536072296128368042292841240862155728868976660145125241656577739926813444957464571750777716426110396166951795716010102287863144148571905093952012039833994115139978860080823182428273907933386760504916428298555406282699143887214766006960747010195088408297775446111700156759585908456645584178331138090764798858100266252521544011856775158078422077818043289125181336735611082336009057080735587588808703834096315588327040759903482737104477941866260115576116564416911144431005930293208223225329574850610774438228368547864387327254669295493597569414544305386936592562348732351811455490194633908701808011153775081146491904913803972034493411490934126976739479991046795543343700149882420283766956503497513290718839317068641626667552059987405045525200420581219797211476919505826552706198422994506439376124248861465209128757215380990178994853749744233142525698141196911791349760861848764417329747164350796296245049480500929058590129721260492353106661580239663733403382196253990826239799899574549517999442015897531035834750752147109166364936148476664605772574248689306416433848896685368771776403956698978635285330798985914159896993862293299413989442533038865981103922190648781744533709919067340158069928546820787824625740470735513416497768359908433232291012371747750492986457163945066466190497460927030978049220551006824360176847754650486859902023325398623050703065735220498765742065090647871658243915698266934681428921896935960335764577028152055541069459267284622281185185842257129621086520162611202499662254073332982471480773456053728354076875081113456649106785363372304925612782979525711746801383870567386993144492866710913193684457327652028385799970157849720437036785180751164333937337352564056007638455344274975042221207438162769439855333318231497524264778855841744968051766977083060715418402665516434366747132458894363876029583064193673180835916307987826601068779744607121563798343720622354086034796268673673491981360638052522288009094146054832720845836372609308857648746745614262091640404772407134606342554473446420786773553753347907120385359857250682596475275956532612692401094484693904173000250874703295520167864249751750809992000428797103816262982343307617208177187908416951776208248979727162336372069397232134069270491552434415622596282940103618624644269476807896401379604820271675375591081872859946088624492348364647787276376076543667900612986547798545089682417862931098707759314067366384159063824888032307219524528535534728830695588258115649265853195217987468931931456504846513020758966781252298157589154243200583431655303534213267972101568545010178252738156862672556029690594353773464224729309856300623796204962812675693028008810115118799992674603559150047291741342312260048500036660178362475205564890931743018377756268660986197259849083410213760546132067388433203861565676008039495019955582395395108436436866050229569321119659066473847154401065301501057568682462313962747528379083748416276509310910592872171300768081595242112206752864792237421803280771678976958068705203044881821971513977143819071595884333487582492187494095864436286048018793105490964609000382579756186060023391997423712703601905080316178740302003426398375624283641079859801993514899699305109153891241728640887379763244360040683917635799561526383700996402741676072615274121259513012594274617180070632776244937715070123977971621849336917001716086840786916622266156116803757672831735894935832935051257100062710073385386470502243775937103361769015564551854270584712883866520322785240578350960075254643359195330418364081355320672955725042585013335797547382542410355540374364740486921417830239168535637019122068737494099843800945709191648058560137919972966732692503805581348419953959844639910146993068502919616284226755801743452834277280341527716771370645057611398133773285601768891136536502559541305275815494337079077000409452467578252193161607603785031573253123106920249236532782829491490530316603686583839802591103521494018752537329518604066789374593259418144219889238057548248994255859808532561708927166617852440871779261672414815769439154543678090588808048366536906301103388695250986339034603576575989970072720831223590169692092250070223914141703507655812216923311917063687023937198714083489232633042143418373653104170161269887059318094198323252315168892488804303299075126598714667321197236415916656415965307461202279569478241688718796817186827152763741297733691016422454253572284669118245521027722271038020691466934544509739180027464218402079327701463092940393730169872943428247206163499531066199555096656137229356751669203375514136285837001082209204204222738186911880822467905710520321712452651266632794824120842657575125820522096921331876626857058298005951608703138940519367494693024701841964039680671874198149747880323259819577135856915560553137361909406636556348170201858317619395887660404433704216934173861726642493136535389092882436597536017778164910037876381804980781557939419608407497573081102412166853609214430027266273204438646741603166385364933663020143016153651465570532405448708113873406831501729814088140158655937535593291932513094690097296788742381384799015607969573818447069328788451184056341818400265903965102418094470323358093916113538379886169757706750221034517659710686812156630135980699437715885125681579953497012697312133958273382693525698767704509751646378000710497134003267673688560073941694495521834830854695272182043500285322692347048182323867610932447224397020663518941519412909666658365637541720670171927341502211436075139558993608896089486886526497100246037875769891290319328901101189023487224939114249902990878506012881476000351209679649603224848794008624934053062561124274916562661871284557128154907049892287844285514467831858211099895290503773627459133529976109080969412130683731254666317255654055885495621244615432264711449143963701229915622747778267468932119505061476537206761677515249424214660841938428566217765054270939160134645613644994166607254315491906708857122885363193153096336151687862868622326110680938334095369615483212027632511138570594087635080747034952563434641153704010819931332442295848903397185887088285866672420304763949492467131889329481612516461895798629113200795029629035500184233534961074543816454080360847860957959212715770816499277983298514967952410818204378502916959991765509520807737795630706854718108825784340735062025063120401040176751375209890168118424406660518075053436533049451738926868526059343972477253931747441926050680245717113026713038923521970317461311682898574826082229366604958407739328029350929158052845683815194260001515014734363540137960255896355299061956340010566116828607805491832974761406751608301397053240699823903339369635800642046081355484338726555482469505622889954682776762566606378791667130033141099348467159560330853140769432350088758775187105814408780180486528440363318125262790022606247217769633863451973476040680777968817224122202862398134846294051248578691614516816828740203236128819156888493099162589612223603173204338121067785925736031767266712698682183870024109051757521161252928719835056125013281940649078817602803032699445698874986613388007741501573631875845368048240574855815730358551951176845638229250160500756631944245643801304683935129970797050504122132051576639406156431300947300086833521228134500104048245812080516151793943445717025683108135992636460387132730242584924346550243549188685249536627945142861112901737024396036200740076575895798102901522621494556882586041051482938189876234986277665198003352159874442340740712342700389084481748422163828214426229718120690623062657262348064262551796383658592109687212137161755623911701205787349785225179734638614029648001065717852421224063070094482697920751441106393899791320362373653940762971763189308730704828070737722978068082842500972196700601911169744527225321980683645689062228525469541560190849449550523862516055768927949919390813494750969243215269356709672088092693098623040772774493536388469363247872147055646216542306617812663797246598204961875780138095830774975297725801583344275291906437767243130331759172216151208201909871244419834599853350511653983283694562486000907698860558674596535232882772138256208279895368676770868545103604114088971233334102686878544720829594855927734864463949822559900175837827609308373366733662601668375194425887121308912024288662577934195206148804476282584620774076491967525452088857328212750664393878787858583325143775872245803614556788164257069570340100692693592262487850280097109023876075071335510702332663548709273965152812492603100214581631114643893802766191762644538089844200315538004503679843035009844221148035726813385038627308249204214618724821098203469221761988856965715668832202380653381128338163045769863071361494901129677870666950336580524620353289158964019477440765336131855067983018895121256548205544630843401879662620950044062381285945415555485527893458926969393775442373354869693831914755138294936494950602927503269844682780526666945759333241426256765791309025965857243308163161090659781145173373230098447445158991555734769430022237468825570460873099612024934435297071661917004326023587023883838497052114310490216467126007078300358166359782647622476041807550755165790384649970250737988175919426340117597400317223271502686243325868576061763476021189409798368237970223242587028957369586604235925682210606654847574139597198295935547166374795135450722693496155658106620772382997078236118895710150135663659639889125299300082406297667972761479684788702410691509110692225554527359193391706744636794109878787506410629078459514375889845718350694361168115464779255586397408412434522914687544838688229998386755668849204717275795049412461241863468581812745972067143919279306398234960949087837470223304304069731937085020093249681076659536984910128799797180984905525597434933325714424686654509128009092852857724147297288953619989411612492542671723768861354747731573140906773189638625832366044184377287894026998169633017810124396212590312282534810822197399952456637437771764334792930392948294149950557065747002286405634702588890206547471855450884570947630032725706952156563810802112492015788834902859581611347449583674259232520686428870465799539166472006110666267955066728012388997952914083794807001689099827521710395002564885829210079130747309519456961996578422732790036487678691527866521321423514948690130413937534204256684091366356236773138710529612893278746362397105407059961518143756767389850904872875338887922688217989683120123454524741653830341186841951198846705057326723623678406247339111157534386651591078234631723089677561596823319281843535477484398114956945450603403004568564308116296800891839142271230026848827289653896205202975296194587304052354005165200474225951678380012560297479825861945198285747798514483988560914068277917989249445114519875813558789447670962701452007549591819440524633932135904090325899291302628595629369801995997633297629074921402561506126876323377739986943269446636040409862988642567764025221210599881156212019163196235217299996384379636765265960240827876520514476283564324752769071015460609702144259404776567784030460574554525477186261648614433909829717938006410597730519271783810486716477354449419018186581194232961829077777005624178293303185460329850897587956109987229834273718852487971650608909064150127854591940335842177808579669771029206968011802429783779360147782430481265764250802316590704989687571974735594078498982398276702268342656755914870724560114853136566148394273207931654860983697583327815342438458879203815552674599589838390543978129443989156512170063539962795991028644280246891864734687943270323116019139304392362865737740483958414357194570687975574987337963859766618108919175899557917620094958358056174755660814423299312372168372636110088901824056290269409457347846434434410595639458715265078223804947565620026866962954062966114923664895081596708349384883007853404437425047914648841765152987206850269536413798321268684383909762298786577792064376278873986459877507488957015128399427499621970660815906803708013490517896205090543336796548329351754354045800126492571944993907952029605459894588152839790529258484497890089114451647938479802122302442460619064171458623916309402419609557132071146162052522086234349422576857370479744833829092429311308260620398017170891676514035571581105163705582903759074808025977465474348023465997560274280104322967249337882816143208789168086309076644459374228464745739258875505268894257110871868897526683541398246430186432733532366280184535430770156126976259822432857257253818192985272342477666796522480459927947107497886447158174894608396566095331942250996607643939453268696716557592142294914032015535189750536094477358307022299510008641335123697291442952550321575478947222289666236698208906633939502733241258679932316657260506009499510069844041604347582844902444576684558950221003654142132405178735226816789183326483031331704238796209854507968087523061076310521494492298542420457672297777487399549363252446368620825739033786845198927155586402104681212775794853796317137778914181398036510857070976148574461433818271558402329658697719947616400669301747515077002918192575474371330470490115013093671042140602555213829339846319069464634572747737253235207688682212490527573104626026848513720369731058712143574387164452773459648145747748092582919299407760769763560033346175808502545233022736004511046129280520098195639950345538533632359372951083257007592698201748187723551577279036052348220413554413204321020455017211189038924480814445286002713506614148959592465324169362863755249431594099316914529110225167768909728315339038609418027457091228544825167470308205051364294621981885049055595382619962167559039049299773484846559756496220802145132478202772671400317450693314504077858747151652084426641525741455971673710548926780186868475189313116274284401214675511041700873315614652337510471136217609680411266271953904025759796697864127617383499574621999074534939106624847533316817444126613800224484274754580568423534113241525295461565388012542364726384957562948290279983860694097881586320512277324997284026359200023584423226005053918865635795981852311610024737030535026184103694487257503016807380425421486266967246567399694534286655539284469636064340554503106781395183399993935707227750097953888022234965679869616066893066333862976988674729757536293144851174897635308119283975715119856098633101443849412494108063002585191578864780762082543180433574631218827906727963648855347611462492060586839133973395669037677467151754629513625049712532412892715466076057674876346456271034938920733068565425094174127086990384863827960224132096524385337779332793058701194631890267869160111185147548996376199624137037420494986454203937454660716412544208114158021360955180451578283183265529733299073015577719122008945618958182709930047785979214457345674187563837945562286366876898462874946891384091554820174719948946823538922411245313370713178486122531225225506788830483089705711831554657345814853444386118738024150098698740640540193834759841049989560842458946473112187073099797682318518772677607779282089651802346764527476692395237912203131130608793657342993993432164282001244383921472969333028506249826427860052531664013496458071226546111220074603117232009498527094476920602633161843036754808989757172251436026372177101395188499054038379168262275008786267916930087332394126430188184066174443315689571142472590251577701815519097936253073890494275100301859968122228613332865310365407787876133214563239369082732237761374789470448510347648595947328457305810768028739974103237776720111907802889710586192394895252410824550825670756734235969108745165076611764190561989740236433469116651942581993254427456388368151314435879681554239983033996545603845254009075221275016206668825868740911892198459603118817084640837140738335617282876809966094605506902512230867616067644916415205733305340248362716494896960877206029279898682024451554051880006409624280675685857781856205823696266623544441735706312822743137129254102982979448703849568754795838443500413543668741231599337723794379578645432162337493134024459831251982280313986805365476706873101028731127981535902427089824599463875560876229758312665255906681157675698983601817231257727356960000767169718015588229354391514807410525274340341764902480833301103456686343566508183441582618865004381044979450765945317060176000496861141531581626038021044208259341755177584522019034164980731475212144208385777951587299486954240417607535409706426137157654708790007760041198790628453934300788080367317842503817128405409958627073504826512262427609634608110113414163582431318036942542510875622553126189750013944312150217120952555972430033495479524374493270381172014007441604506010776990719939522834825613926899705404306214323169029772424978836514030794478345381855438168790549455823061728173139816003495921172259400470129158549862448166507824715323634630485532269283652924037031163381910591707157941713165750747970733556828919849734145692866417622495799602260126343109243363216846333849654603836414839360188834931171875761451630899190064476147811077200330880755244768200330037518344393207127816364640707267961924552309325390622404371155184140983847088038495699186796370466790459317811560895715445973988315967451187516982723020233352337379259636524821216754003088000765212730850263998638798100241068200485186562738533226755306154614170853802295108234965105848630219823578183681331813146831383186614963119240839782774778697930021445735528526261434048105602929589600344514403434277383465965223596535505823223994235710127684090038597271088910164870662694188320029051122578834559558264848245608093544698527668761028832412099649988046924899630962126961840876111942236099828727929330969369099169920680520618339737344080114964921799792714961345250695880218647376222512329822733634715642743560075010443962956253176824329359043533419492591674698333957339033072239217894260484326111596676478845645746964707265646387168175044245420105235606749507348273402740019765770881755169729116977719329563998720371704076002756278072338840715559478567594472858487977736608997812185986627147356558954386228033898197964498897698133570201525645266094365277737047326757364404733165404930543434937211437688792984794720730372981943263711931086647729016294096891144919509446263482847103484420680806026832832308696651189777290427235306381950330863348517242423697870362445418762314283020042823169849197958123111552566305304239016272492188705431577787291003144370292929533856741995759565397687580593496836961618342059172535564227116786090802109259053302976198345698352425884933129682118385569828694109851944186038462420307525515523921496484210558292402387697978632359647384418673076251913996958283983980944218766119010327231093541005800278463714415990989884687836249025852158962109506841281789800849308694786692349351191982798974894407123143554417041785568749717930784969602243893801014083972953712809230895779836948867868263119114808345620508099722989780317832199485615115911280402692025034099909714809112636651284828306783231959574592304923561198305980060280887992779688595410221240556299322371852416182141018645210340316072937042269641321433413336006953619155307051372944006103494076970238565320864108642580831295670879726925213832969698413002131799515573136070475570509439252109420455239829922242703958478650099834948818383865409540612984454478573520803868106475164993518861007194905093536485452755457724618833262832619905175839317848810658603552770435537877473101706752319348159942901920543794190749935015218170342396410500512041000791774315403085984239807529931056452937663249420962081175032962206507557554563539135565197057459149077599554532881008037604312310983272824753440273087772315536545434259487967610125732960307181159953321440286009516160798694485952996442881858190936830334093542936328260564818391676038944591424053013405392359900746613487597329006706506521568236894938772551349200779512409821342867884739840579334218387696134131856304761704056672990549772442125167864125984179800338762439758847617940953764645379437502720625726996625237876517414913656887643420210372909185062131216478863372814926108168942744891255270848220496758478153067574245285009644455892715905943603602396919365825605450173025871585986922527837291018613749438425272987921931868648513972759730525532715229008438935269726804512512506723031570592089791914204844399343397440217846932503127986916294409784787440705345969001532943233526669557868987202816830878393823627638446834510711717204623057816412417631980240073837434191903292428275569249713973902168342145238874013198003254389365292792639248769266587398887384875713190104358894783269770623288151731110417050051948084776177122820499596054062020379321459288939418357339825940898297186193220029360386473180765117780718093867586404499594509734697855960579511368695528923637679301061322216825056878209499049370702413115962959240909078521626261025448701962594683272855496697136781915179882320005967354114387078048426866050303232998510360172795536836130849202433677232679059178237387527893179696110722763893662501642792421725201144127323754365922992465813973821313498724186067665180544806842065681775133463365555424966428993582471115256353623945118594840178735440147973497693263160107661469743241467258371084856712752797180288995674366145352304791112453796629607742193854418056353313223100000911082081959199070650899915007718669703805211130815340177580125760730719069987169638210120105080406028552963127201526180334521599412501729931308882745182102913981429456158797985840281737012152381242266175551302753961458521622848262466973772244935022481399578541882928446953540622974877978279782401444566574134405672508102228063094305547004633423129758874865292212440310325156224496055993723891350712653744840515601218594111828096880646234114422587780129909335942215222128705367367353880704588987620021873590678138333726883128784510733794643433473681912106574733861484416195459996217100536042336414404641176890953812702798852662842859744048455124479300206923066540445374618746595149204953864006120540881336667433224327980567440618195540592813784321550454531194003843214471231031286475618875193557460524611480768713637851199325413043640400117025068363370377043466612002393584300180520094851320703426710021091950238498072639838486761893315743800100444116721938196062108258390135848009283632547236579340296004012758520809323121516227959691323637100026733550773419186847124258163629468393146743105003439327830177601637266905623226727040626011979171913884398106028305656866447640487487943686413458194890116793148245670646867776979932860400058487723139786296195381645904107099016331515905767337092116012498987386400511758440052045117177811843729473838150362477918272983397436816445761033510197687317151524015318695169907092794463988463304714080649400313466464419703248787252848045257161119516055624590249662276735684769023780583251141768230777892535886880875610037984256473533291243205608949252241625997937224768207212685115238562068076929249806660896026941958376591126129166712760973900580524907216058258763374524040657778156730877965913997389538994274402754609167005977622462289571855493662133126479459225000322122216585656084063079959881403868853598155155220138192954438172237926127959113031673470136844398816671950985901460078752448499842393250716822766481201211834701251730915255102997487618787213332999246025662886130270874844983445002938496616988065706479317150301359051421371979040144473560895791547864481995467384474527842054098562376914027771978145296216306024229575360513409223010841512408418718074350782031583211035553221031744102099687334042300374325453453733835517703253851609441524660183713402728963729764932086958168408680233062465044603525467511235733183632562062911865161548063024671662594743434016221722796598715526274000623081487300922096306845401914219642428459160286953937197017984675159031972918751477724979420828549519399765900023475252073007899612965481762223015960711036225857884891441401900157645105411712619188053215438055541950216107649517156986289146442833016661401606193099689789569622118411792363532917123532004533721065401437431615301449242507929321303209043813429373046239296962739326469687315414994417215572748482161521869026539864654752787291569669989323974963596293557705415674151123826615445807384740692331181443920392854456582059358287459832497077318425712985316854538102262542392032058899645097289942893670861700043973450752564132047848550249143168285879493525553532162565899816215960876839157562323178113181889441009920167741558910017714325886862399095634048159993234499234479936897635524231400486727150130537483342077641201800746095605841169700114459927382677098860926695280134689379501617997058049603055168465403556281151084014202869719705957201814826236897267416433498977911084294137694438029397954278458696504236456197706955021656309689520526283224127931201826599770688378577056024177787305359109391621888464283236756102358659874571240317876292244703635846508790354981384504094890471039042834214447610726571381428645575814035993347283978637292377770942247565754310606776565265590307497620277220498221173266891677192269249288815565436983986898762548860730567494103727441580354002119905842926160940976619543543026291111834818533982378578766352469065443876323351927728556645414502477588999879297382233694662372573686156389357799152531380296348054418917624006801681997718043061309235368142965703714816523640066126648922723491717998416413177728662803720090473004114827406421350284971058384651703836752432290781356574143847527151496548499586559280381883735349815080150989236902627005007228666404017225648436174842014951439335832925639999544649236888854200683458800244396291280251487247175043753322574785971489594606266818967435676799984171308332301321786112299111545851448112538601659196676984522972616168812096687473516972159949938404825735686919323297550327049643232474309265270353630255692331179722876300513487417103915437646253213637007892448844335328731847800647321415398221350124190405024497911150354941183474760124628554816231823464078193373582897486881183304265631862252590281812645192598456686694578899370708524615952108369378289744333776927158147279278131114536712641003932866957943588509854497333407101061595624320783647964984587021291768209872554897613647537321168374503805862575563506654770232446788093798940953309485589259393936414940899847576023470921752723501228948950397817692533549552640476383951010627792463616625752675581735830619179921829446912335834707396093409470290683498749475680163135998237143592498603577748732836232873199799578499379598601809271411139629322251248947635526150344712016057104667498929028193103861748833463244952375348710409755798989869012500097433936628885902453479076423060468877869167733439834584934181418301375929960749205923136667830576778588827138940875603004507503076459735322926750440985923064560230423893702310724526060066251824022808965616691462539413616559083184669195759534551683982132513728851369368164586032819134233281429475292038374039354448356069711897135609411489577498950262581520860690372423276505017216059665429789056367106983138266082880311242987725000659972432810978927873777771770450611273057628426142572072657048190741040941737985881397691347153733872353185602279470077097542904466488969345531923113460900492877327401998856693649699720204489012937967848747190207430015396647200054072723604402251356662820960943586050881594215326071858859183555228179823312448118938130258421314045982442247417899870775692808365907433522570644464274655136203520868609238996548309934080048489699807037288016254783835311547123354423461320135996560094522167384952074729385860637395030773686347549461506367026425284148381803321814771673178254187288188475562196384876523190724540526938482086795449816053084152498087543938513318860491002357744912966355792612947977732223183063846241124501107342773970914334811323076874363758123213725615178689426171425823675195437119652510227706603987594215693098809320805821943076617830545895999605501198565266161436488313467796303956193409596939064071391014810140909400960544466368196144092647644351055578759186494502381126183649712707681084096417762432508054754129314334305145907553697227064336430555414322765697636643893527591666573595117482773810464290617678610754538016441971788832450664693093187734075260731882969474573198951213828500893130304078626841828508359004970102843742693877067964429437045360673598129971626799666774882198427478015391048020115314618408951943931918850491007069559958654659194144292778837112623537219193657662739506918302842168556533932091339768178531179137904945169491717809139724831821630717221614419292794969302648205569785690337411092141485527105328361475199877367764339259649916772769627335490705843259804085417459581534134624705707076484194294194373259328591465179586898609212592516484788074087626711680701274158757130888052376166343079847651477251268734107524991958371210890859831057492417644425585825715740494110179411147144582692080405854779577061173469564032245380654329564729742733565106879364909588741738516697216508607499273819435657859835134625902077370940473511020504825765623903805328367871908697793723573487435277154322772156846305299766624406960881004057625788374796768803105031705817189240684898498641568791599054695143283904302925571302842623781638834453444899353258066145119366660394488882661478387716493404369972992219072628895454549692671127493869870784584798917729696419491167571119401670822473092861890904913359192917437600320035255341366526977800652607406661936141680890320617368643250849482495264934421816719722680056951944261164847349829156011235485554877536764099762410014130650221251742686564365121527104495246369006722413118192384105022009448913142583440557401766026115564242839786359701747518433947601079782879749050283171356651048857771069320840796669139207043790567916279054455153143036035495561871423401369334574438613566884866527359360999945866456813460171068393793086530115293584876044072808213496229828240129144967534643817795067282876447751348111606470906770511750660571474520774696258525286444084420153524428887306468099420499756615214115868211857258601109505792862926357476842878926286646448422023883373795771545732093328979753420460078560810118560787715618379485040678471066364463701289617823068546761976375149470220422104457434596015260590298823296366475606389598312666446408759046141425414006350230902608345866375169363362159673440023031121067724650743600225206390494332764095633919383845579995067368924826621842672680042164505189226839047956083688444497461182167996070680772557953059637148177071652985355973823279940967682426537338249336256260497004073498891994313510955813193403780649955931098137603215385658495675464359977623411107853770573976425469735266836881457470444608901369607536033298161416459923745092016060227038173741405319474398614654767863172978556285215601427881889971527153327930677883654213879979092403063825372613250485951160637473237968529294387720415332598728722419365085601989883776085186336989067761341832117980503622432971713184253498551867031722776893874436096647963036606604384088841251033449492352517765142941948787566894657395123005597768618812847612437671298512338339318801810977838278679913888134089823592017928121390171144405581814063160589400587524600067489986736149765780344647412873025171284901718203761629725286834539416044325304553463420147111600656068015294195919410819122620953726292230685355623970150263418591547486461824815998378199761286665030270119273603411975789164533083187911123214674224879433356049124958641267913981623933686751552511993198138234713812406811830405351574912051105568323755869866116480212158813578384932681312463036023185574929278949481118673149564871269715796960278069141966653244927799444500851386470925785740785925189261713055917298566027090976105168352922982854465096450647000493363441950349131853945289013081318823216689250659764884571461566151580709395210821320000575922579548318235363144964245680369637069570802182414357930577320669402684303855864028748795581677465429170466571363158937331272598739216403674251004930896850251981050491132092881295550608530756461159398563949586741820710564147327783086282978353405567909151686647462201373811972878181980382225394580970721053332049019627297482084024434209788007288467382592324314085237485748974194454768895702189888685668241798218897542730719390149122790073606479247735888252753296650990657082418939034143193794389505893120863316816521813144670107985619093266258678053223548272908046876876444077671877409097511809088811059743498936266522794864924797128984359819880245384813289387254395262301135433745613567652305090466317053725605230162281862642436608072946293824021771051569796397901496925589373974238052643199706379385654652604650245231724510900191078192417543175410862655307794298350237597933094662525627858756153214247816790021489589810637104470510899029181137371856121206600637097288758146341950034495227033856251570352232048258565081337331051992586880213310241854679691667395780663743937609195100353033594599766982721612733397643089926541677041062200122588284185958683909030596736889052286420381585304479703895339020830363815335547164614497056020530261418717401710884785253765454476932469877248864508855062894706633610171573020646838272889696510918598413987758770500637409185711622747518862677550769781662816307125753521253375010286236548635788172354918934576407369226474749875767977161494638947744979167725485785176361335092850119938949998561725351884346827676632024381182423555822136771504543210414222088698491757025662702789033022172786415849833262709117081285913896779005301442458017581984507974312698903131933243557815539727262712873185570762945011863934543177660126596593399124912687836692250151093790911537913477378607747740690009746219345405129286349927612352302485794780477227275340402351506652981365439941561810772963394900664293785775788008222972449529928876474076325308753298768776641603671909442816677991056050703753059746479708890839206282732876529582564369130494949148718954377828717139069442580603177153869863372047986598199321505961127658477935985639701320983805023745205757524593715085775507570959274736480030352429430591114199909860515646880266286437634624272322338285026879147598688594173864580326519386281474884142219206203842070987587639033818211773188907751371769892500440091741517738338472910563005215298178257935736286730924755118510627606654187178087140554142847549153195772897556491364595860668710098542177352355471158793842172469591526662320647362130332424708873444839581111387036938444258217827144443697441473211356431612828101372396293696236742484935624603327276567332604694482372504044869622795345319900720179878588626382536672756417451837602072123090735870242635840310348624787121770354267506995532992140316664102347587461040887143097896101613935145890262744110828154141448900266361748933396698418968950639387851554475488780422707784563953430839168084577886107840413581391882184370366068951281638120995829944118237556098598088675702120584774918688833855863326587059880558961766472097892944157397346163626936463502828524876009544205003928305714188865251194024252024987303322505518799110841176417664115668558365575364736089890557720198090771166182735132387320790148769263540889765642309857027704614257306124032165885066916657706800728278113159824562569100454852750535028047936250449921450777241905097353989280261810374069856107020239070479662725742477554943551147452483526270256690499424601625944194574598308178434402870805623066711418360387023363266903564102703416235495746641137814663292732351584674320240138264022125049333116322597740358525470085634694490287091559706701237589287077557480585571268012900821302481895218148843388824274827174480976264526529346717034276216583427722608001747214893671863147359497419458485157447206293467423036640420654518691634733156068422577926464513500571552292191252648695315082001498166340312230910120123803986507456833976550997697477348955431612641002833310461402450853759965864030489986124430863789624218072857126293999279008927550102268287339534169420788495577535670606530210587075970809097763935252113109643258336804926576494095639920678699373507069913443528305475132598885983610612743835777494653417112021285503160683583283240079885180900883541612512527139956138987514668197396300506273474359761427269391936554324496724089449310438091555228172096728732680081347980317112501276806556705876071026514947276630552967424369626911973407073686340561594049249056679894016915204231166012521899097200618910278886870878732415090043086866631658164181900961789380565859131981834695003407109791306964023247313084179117738862852207593644840623650939027826388341756167579393378074986437443313399552997821496058753561987230307022210329727640433395385422737378802676761874964415715791782406592223591109308538336721745327169222226397175753671033781317222367355235054272601277460218433245450671089500294554763656762619186015287192229342592624243214139164555587168277076055502159167130629957133144366160119272783130874839299566790748284000068806634717222058676110141042696854951307399490438458077611136081597034701147656145670300481069130795076823462904483876319004193887408824623660668973473567862291771999164164179213617201219477905621406322197961164365547389614432007576575570013032690298708806662722819660457991309569807042226692685916242397238325717907714295094317388259769404395133522645836952856231847286603508897378501381288171482128352051688933749930189003774602938652247586971764008966745195107691729604171629688807299918707381602628606373682401309971073957666807589803364688965230573031130381416206969271097658128114974280305882313716743715841970229094385245267925925495185695208381504312669523260961860062357466802983038112834999825721535351073756856982059999621975713177830266962644522411982848858722529813556207760107322366780140174004023241782022544725490959244290027076020131172369101213463329313391024499637388547184619627108312128527174136018475381956881145482288045513855599982584144007400321949280150869923257853870085271406605515002025543664880793880609960480987834512967749235288095418075521836399932819504076297961103098655035373139084441917847374013632364036465057284007360787791713073458844377085294106652748214721925642936339986489345095225581164491326522271179359989788874743182022423177348934576774935447454478257943150904469896285603594189455423357026035154268292300248906253388483866935981532604513857913242316293311461503253260832843360507429574557712758220819117449052387995913123975197223028300344811996100442581155275170526620876106107339842912334556318835852724375912908839871188236073900441213989112352715672260026989268617104593056003149876730199546482201724395198453924115142939879013059050907236946574576036874401104348252410622432196446783408306441577199395889881457830089480533033175920619469383271456005778890167189386808163515196335369061804485337980717067895166556129368827466465175873781051328135580735338218779711268247605297141569492144079548640871350309176072525689551242344250863787547216015511473122885533619671412100768399524650988803367431654241936141607452983655946437695466686368256889137853737232994738488849289857758996646778446380354477651928318619803497494602120720278038263402859133615166129126944516653848789377375726411411703563550885379349244500181987063075092677283430490934164347719982220268676353816903781905991844579760676728340787410957675597296474365311582239683578520955926229672278688741844158928742200897307668415831510454844736303522820488337875522152515254885400224381759880844835798090706173399035351504456860862993144504402020757591166754925487966151629547290730607791959813038446928537320879433297348082095826524207512507850473850746601726156979060072296712061216701503440016958715372245219884182085336822418876062608827400779369751026858485296704651371502207530440837690682432027176658062889794729471667111195161493390537171713527470245311348725313682926252396518314800047038641487697240237819902143837861110706207899159598512703749686372546684406740324360709161982385308140662605030544111586709453279791229084033341086495650002528284506773751928236659567576368302883357693798395771474948917365113190139802682461279347248127787498636950089505015812082053241234545279814965265915307382221606378003433637194691336706903499798248655959676976844307688474794027439155909463318875185713884234913174166439859336507639819856442488988428532673175332494428975791036285664768889519072849097197994359497120269518317360869919549205781036396574749993569771864152747783707421579742773094877011605721814841256200362814176149026817251261979473036282037819646039338760795722116026801455569583271626915337721596689174434120268728348243486500239907273460201082567303823720836554184834369699518785559736798322929624402445236152225412239105405020539463014395132186428304286735506760977758306047602033004364746992746177972075554211013391491079811340168688808514413833281272343277361840090882109366898626551528482665985319463134667904574482425203612522420107155136812399367551870272974352039524729131165661030957383113588820142733941887004957016434253684896969189723682389933213311629111494317020067327392113802266152788113134988636405983612120403500715648066535884670460155707945417169417944676907401788255251017739024473600738533567816971689236083815635663876825214782734685399418052839899962204413264354478861535638976870809697275842218429910623479758041017553605214063794225459651191314593893062177874852340553611324438796640177800275069398571421414439329004322458584639238208038200913312161113404811128143927113509419287226643879676355438668036261390280757108132876493166048453877610848945618576519069649428809869880314440067372349541123459625371842520798165382925916275248830457802131224836050825542272407560057881433514265863909646299094063920404623063930344527814054503029104310660928114705070048891624255884765658192656550031578057832050133225380296503496108280875790002088016261881207767811775888313129350810640159254040511941260756267407511383243658779977395114274909101390643922444187940309861349663999547687976916542279815194816565747294217103277382187712579335592093088167063091774257592800391320344983970783266403573174080991706192408397647552523512600392983292858175473405216069660114723609154931560742141748964636768679687557423725509103668298961450665140193528705935678544628749590688221331858695030944947244674417676082404795527391487638072807239531869056515460106990197002491144812854877791225143928597186216568842637627170956733248620074538393163007313169431795871227614544992722079819112290985114812230501935854802932704819826628917756188787448712373105780871252344323311870147526509768950283598879156844034373920918550164894627840753933544069774692648781173067348972952245163490026989998373761122333309958665161010259552610440305392502585660764385340967622239459196794739479170760746836463558251166506436230452338306106760727865427704087463926782861592356745469261631684891151910981831008865056070954964878399890118980028574756264816044695519658505768623383279355837254238659877056591889457545752002879693526734272551025842995806575258404170873174815200966687641795171116865142272702876430450079013836108584591421967631065804131174902627428409499942265620893515502661737419384252619910024940502661888999898681518191183909806918429900584307972303059261231506443688899218785858370935722424112141354022793236279832224286659817856290117881447239595541749946655260298678020697263289277636471503250859161989811938241330649302443823060390879354970153616989532866740196971767302723976797407112701858943091114693219326703396132298517969573683876946657383240436690606271158523818611292299950322686385771394950321440329080430760865882331110512896786053045605114954834050720375993916549990460273511993315117554176217174878425334041826630469504138813044105292524704082690053391601902599146924444572013805748200016903827134629923383930165004326508498013698660267353790935063161522458520271807162336352984262641701737486553790992044930875238220463720053380709206529234976109073225200561617321186337138236346188524893778172598865051184760230049840132043642062806912865011717572416598013920182540347597911180164154540214137754195899316415655959857962313332151219780115573370139343399260666544858081561463891263043496874021551015926128996144546260743109370857563990866644674414486066125965362568075206936500931145572473482854907405259908254609044199681955394254831435755156222379931895395123319516773527392883903248110825646508505209923038006456464469746423643919731408579504480859356492004094575933259185415563339358483498107317907885342025928714061403122584459649900984582196520055345974908460825304881368543072585652889483516850426452043716959401880297630291342399752293904139504498000870848179137651638357559279349802728587306229996456858571921865240391853295568598842990748971330825063174139818015725436535918023882082097805484273946230966435817987054785911730169054680814490292660344137225492309770717901651466196698110957988148293726591251364491173732746742244446651578709081605422277184631505567019617242195960292414237805442957789414698443660639412572810483392453019373761446157561764037994696338877269083303849967448301512394279576672505455526437613286300582610183962208832254279623800613107315254285383519308553979336571686562489627094809396698599318373758627272704154779965491017431289045894373045666714777305033016359675731202970917457887936848577559854984196528730485212987806262864964821552066091566459810299767030615939125656923226788291702166461212435984053714098293672513784215253412244801124384674258564465837266523670502537768766584129771878420984403717819986876389835564619369897924346141037563924645488618376833252149712477358982014679819922446302671449704542559393055362316117997451651059072195463466483242175848742973021105422553195908428703948188052352778768621289484702281144933911952681946147723893486878767071612274740054460989015521494089249521989720593332707915856554204398379583382301784413695243323202843601868520654742980550155398765302593514576635729932417097801336504590251728114995169373835352925066616071792782103209907585271220218821876573790879577353698882009546120834633180154215304096175396741208344513842988002411651436481043585298510318891830228209924804860479110699824598075520383743963176782019186328073024964991443111850288118083793503233353194930498959419617191808677349244212761133419545560145089842460418468428572457349564349319073615484718778925468531930092810706432657154788016312341501706857832409101383771670721316646133538543795280463781287275732675572758426061447740683167360808363671060937529513009220458939085862118975019573406686365674102346258620025654704164234924726198321173764350030981737647125128798781641293150049104694018035764815092783374412324350300684313574778305038823841919409164716675591004748848086768575475300656533668935598543956714835496039699569672486326702383196138158407786045893608944230545085996811588576492005191698822229050624370134944632835210643656716214513372077144337744004104261076149344731115070572099581786347007564023070662543188406233053671892324037164839784728448681937749061855636397212741349541538648016412234024268797204899488387665964744260085312831096353063231644306345702735797444103073686819554074316086271155133590675606730859943433444526975250217116589407551797677444153751209248175735388141600661639707197616945851873239129020154664010196583369152031078953771169278451995753633532929479068424268734374113931565504917162123964825157598897373513737948729798092993245741212727090506201968837603475385867442590011025718239602700287009244656795270708812639542513956555223490942492633739318876147619428294209235713518248386904240636422593029727607595871602963382320582136212643811299487231152807710878132102209597744821896380863815625790256212752512887711977026632164378610039318752888806108685319819281396001667454600276751621842385230314071731248143966398194703657029842015568088231983294614111857159215028055094452921878002348542884499790192314212321508397089437074450368405889266638178096901680665675614178864222639713039005881609378024407436405819282362337125421070480472550756444816958933471224945413540525614814089421396606225088442975902438363266469814488850326465964788500591667815135606633205269333708535063545064005273768375866027100378393300176696534062354454791697424365521741404366130517208545802527591714832173081318474066054330691006022449410531147072106242681344155437019972344316949929204705582050938669629548206775206583551259319583276012072828290621445908933494765924701485640975217182574794685772221692528325457678479498999468821476299754571436368297508038142082526365458367655220436417673291933833340354039762009665357987954454567255076355903343158424278697044328297757090254801332855963160075121320666812496089694917851733889670917300443844917020452459066383059177413929591404992077195137237221185662187796692942992675245631774221072832198417882285482660324441832490959992869412210425014750204964585761580344977631222480276134148552399377778195342725550711595206183056572213487125939819694991433283169097926804024416654962902039385688313968471517831236801316695632809837270144640445534759010033490723964936352652925372333600845929227113634995337325836799727164108819669073231138060311968503819367575494840065515429670913010057637790027545910746833461990327238699393737461112660420366999470530581615278395202788298700276529779146863120842868241457807612421371189208782485836458808334361148292198937784124574999545698036567522998018274936357307493477674828613810954578957467669041801670796490074251703346059243592592463436400580983237580737578408798728678388619218388625657919894331937977175749140262564456700893874041543912207725445929407044316891053253456192770529536363980507498953809152041460279328862203129151588060508774970046274028699374585384540400296847012698230927129390319398055664383983801667721169023802537866847235493295029767681705825032401851023525395415703927292007270951392299579206506824439012100391646137136516826696078573373127587589248784912715717130096429499331101507729104080010767192391418214403473501118392620767392942793377167469178542009939037969841793355511398279716316289088577003399327552645282345172895540298927768396778056677204170050061290608291536645836155296420020071044978053765993766168103151765092052349641819692047283911768512105510482618967841464337037689239632645021785643331905670201885533832657609621251439697487856337205224509923915835574878480212256063121056798310448601901768298224997600166171608572638667366720266862651029932349486037302584474123632401670316419936837775364370988431453252596146341527828980386298919860952701078296385859128246678174442519258136732152906956501442343401188312065899197145634378088892770249046011083975601543934141298006536726270867794492618984418175686259743264307035217984991852849897835847608847567946911896653301777171812279812125665212418790872375926926011068356794760053071195331626843992274089133508738905618295136726797324784300678631315646202246325118315946991690505311408264010830955892189595606328799840744896129737256340332003748930541783844652484243555289338014753119540906473937411592238606860858464248611689138542346263134987803501120078260781187376404324474072066299271881597574664397481344292132655626363489953540168174225137788567601350646551067796468510383125030095894049136707692537403444976286746235870916950414282075088667068149582258973011434335805863377970924884273523498817517762205614731341182399021868817413575260902779495527048994718477309431688516318891456593414849673584654381598289366566530191492067662521533709457999518413549213937226235623270686264256102963393298880869501186318399415112465959647264732968182270196817593359305157866987696131187904374440769199562551692252230358177108702499309987740372294006781202932441889103021289567088042482768230184999217650497197748173891349856024597204922321232052096764411110196256366059966819580203242872918374347915572906222709120226200903869582230276139249011592321289368910292890635312350129272740630861975687940137836602417663017090698210478346594012384500522908967300508907409243219933771860715145979996187321104136186432036286574690616095841780040348870304166944033270278913278614062595159257507061087228376592539100197078573073156026822343430662961409168661633796295600648795370309055814292263441448960974778261670033266162817104093772910892592100496070300811969935047351548212832799300743756679213624665077681353591713470612435165280237040969781743744319730141449759261916506162186103948761736710096790099520236653461457040144172926281296028494457672112525836112383125538754544658717750849478366664273147611367237301293585293966576825913186235849499233296875135660530456244145620687107194594972387456643074680338046537975904858594011071832397042523767944848523719819801782212149700850943737353964529458456144822328070852140262510247973317811576914710202999739685564053521098870459123036365685578873501655207547237702557675739646570103458414806347865317781085187925397758780422775603403830893266638716185129493912876387694806860786647952600777812810934398725173789866930218037443259866015603922339244639766750332176194045454571712623460020439213645225248561373599527329145790222239145682215735328584957658986668298339585280485044110020786720144188608392176458160111267169358173730179785920452369219471419123963599656834930893845670341279101225025738466048800981638715990137656254363473248604279832768237975844141053627948527655937719077655289393186577560528993437526279497648812113032517551617330943525913742110521925862586968172410295894952266339824315571032838550552779718784024864793682420158909331593622842839808781428974010905053750210156295144298627269901631387986839712169266220377409213248466252714725608325223763297971508361877907647754132381047968299925277036278124289810611365548973863030376446993391423866959634395781194689180185844588040944448479997185288855138039661514035049583147608520954441544114226785420422492507372849023916815592819069225974116043085173845911933262622531303178894498449563650589791357859288609361280219993962030153182352811781974059356008141091666299106096823134429321888343839742705598887277190261541745145722337812726051167611894087409575896300660464898716745840169558016500352683427109300376407857809800680899841845619860295202122792910851979975751130825617864001243859257082766601380381091523638257793456081944590513582166522857170208139515303590671616396088205214144074698161037457368009655391123079603220437665711889975962752868907770329578837729409575945331355096141936548406046447793581843783684596867590123504783542495711924196507016763205985390229992916351941561584366439936748577595483794340115740341328099729216676377850994776353576658367387557388643793498458040867519418305456216763881773429498299991470963087703356869258251128266046092376835738122076295978385455133406221190332685279529843621994549426397945728416466302714271727698733807681014746877801516162123680921451569908650882436705175604095372381419791618780523993071371364005115100811321943688216058126632832115740738851386396767110026124849427643672332526758393030150081032053505307251739753636494142455630783964825678321715525244738990145192649100097770238409272040053551848447658651531560465531804550377120304161882496618310899691932492613948225723596756318426205422725192722212988059965877493840234566376856838263974390600549634495916811786413143723759138419659836155457518731959300957664213603644972481386185773182478754297147935294692905569918647726739084501795436503333042019302972692220131978376304473640467430486007047697969417926102839461872948786010524856222596433849806791794200973310108962615434940726965646690669284440328123433685859637660422274398228643105984323906847541823176222559691734779654589566524953766330416947475572367597206204401723577674651956100081657308742414722937139157963500289245851599029290166897899163563510066293890513131892824232281716882151205390501136552390775697418140255162352907950819784790647328124560599350993140495064304321139542970917094955040452771923905234105475134645308422170811261638465175109335201985508337219753410133576116183862412130392558637928163622205086876297500477487238739897885033206296279645595307278458262699432272312963031168322591238585827828976172336379158039862669827724428035481770713414108815139610764074126774690947856128615264684475193840898973361735277705662836476142994986903651256583601611831367037290951265123719418959757278701943763510704669735226496325164200057100461025376329097952258837261553894169624739123919160914295866848447927479921862459260648518882333851514674985964770350896165171963056356735907338204618063821089344623267512604534032267225790197703562225423108517552600743321692663076100830396425640524329877189977297012239034199012187747396192975553844079854241838418514690523259737864559530374080006836796415631176932350023529485491953908195435120572641661440364316179225903821984697793154615605621305315830674372979327190700707760466063695034234937389040109552117949261845479418421430783812641439331025202018837843517314373145249142367695988425662573029261197270294656654569172249492510577067283257878862585618455320307902035673846419441386843476770134600043246435619528859979615915275652917168307366899840592785679227348661311683567785479158538667507445092426011718638697303358797053668723640024770785045794948918494328727092556523596363110655857114988727663381120790102720763021174326675560790440817779433081373368250640066925718185510924469409532163351549546610356141887884124650914639793268934311514876223100863223524547928166513499577705372236150556820057094123335822669602835529608711708471372310711753815529785173299381460924948351602171764733542363393390103007172846946259606193035054822550372670758609909363295167341947142464124246128395050315446821617732424181655034649894105988005751495883089118789822757027434361165249420126019477141004540916205255090912951685746604631418004423598915030357034116141634660961347493168680104906219139742127585994681602349180476420635877266589505233774973693402209040740393233386457168647791108967468391759377048947061650213185058537743676249123905027769891546471274541340274528897760350705965447601742825835602695179281748685660083226050072749863537502589585973527378002504103082415552264298763529259581679966942879699004748967704683428698905608093265001431408301783521396741387940950014392009356320219488789800521675306078757577175949365653399726423063522051955969743128670240193346668997829760153443896555220009026450308482518435318216781917989585081204211526044408277543977487530757527549247753850457924527113442489947815954175626967380971341207246579963326483719647669123788697559331467659856687284147280668053663402173299766808978566170268783398385455503226203382728139628808619417554839282144100346444745931854238989328986630056834081892745244278901378850734658711238716272774494599436676800734791616591806084202088319395815860072286019580294274964433997335878926565087809600462967304779145451758924966762329954624794527330083067528966816601480868246703134231936822748576448613775548105920210342373841996502350209034502712926843835785728003260691966046017533309839309549318363177932509663360993628595512209593246073392164765955598396715324278712030194765947318526168053377762544023062314348133895333544336421711373475140007655130829128481189312656863801641859834651632467809131012041168705235922023087753503630406913912100647508071081020751771912197345637846238389355295961060700107929870039499697307538986448833786641548793024309004279517722361192194088852055283097780119139895265047336216278390883190929422401116868034834390215860673135427537377889838055845447028873783407111947047791455174578899186829780772368273780619522619868584140336144561099317687513795886033561226388097057859446900524788505579608196541098326935863958046199949264770309364733926692823559061768442264952378967244156292112666739073309832335562776095453474727915931304476549406330394530085711953649894307375173581924217886278198648004481574442429904280345295782602159898454749350496384229441888214079945626239206976921982790406994503129847556620778083940508550397818584958325932887506652831124935129299005860411078919241644096047148316890590980182365816150947055448400610956896086895612951495608662097338208831716989895294803164898169263941095158452313077993538978651233483182612592633589789559675431710001741936263780770988191920434047499046499519393855998098515317881946635563846397860215059679729729338102459663088238490242695125927213502170765994700366253649901574415650981591206739769157322789366882584956068225606892256368821345804411065212776701394300360073007406866795183386577738808798209512973711974705756719371398947353907836734282613829420221250988759483404979875959422270774694527227617498455848180851519547221735439266750024230007202674974381436429372060481851151926268802601928964932496240584726158854789131220340345813937206156341048742691812075007987747383884495253198084492489663925225166472950602094475009679602151550627418754287299495450678589675408170582116013671007739928591253009093036806033191403973833111076160661172799625682267261878621106922845994230578027823217021593608682412611059103335647507748858804233316626824146675470004729354511568103590045505433498774603193772938054874558488999100987183674654204070753719850692457090402711686313959341598084595192671265558276781236307903387241823200141751022197269536543564456885427588880649003235808302754300985952192942141922622202741451400535235860069394693477182256219757439614035060762879118182384588042352301784299932647219514473172360459723736104867333702109941484521085864679555042126290096599495265048553907208939752061251955303056345232954292102557569798245031230132358785154385586810085570132456067157707226886716213792372123520561165087201284040783734138840901361866444304510961460216032561863715121951370189713770772406478355378985847548698306850117913254610741050937138970204174648405738553701184524845501366130707504734617050563654885339729556997224158127871510783823602024162424420081920978098855908658168055131415721609018569043080003171702386824657649415041692024314841840548843186462280779455209921352119565407979196789387453449242145818736341864782180275418315691115237639435902210315262491588262794468867378436828254586888729428134093418700467332272063540253041749764902670122396118763988522002480885745260187691223060177349564930101775612872068326201102485801107753889661445674806766898573578127198953904897627292050189840003711784510422811097268982902547604557295815127743605456217301963358125499680473410623314590591334014993760784804543503351690606936700620383381949229172894545635824265396183223279331274444160749047241722916765587772830484685524690856635997236136642943853727377010527903457965928721377186318740580632709290747291394265650428998879711960139463971813408285171716222193531852313684373955531032311821595758909053661047356628418290989753755137213085742614923345946259935716062331898372472156206720083155536704589317893589354812204423796547349357555650849799151074572416810715939256628242755701890951837340834768555310229556442499238369714944012847252599430352602603709494415826294590567911649451793873272180777206083000989976988570767476921088886187695068909573690076325250153957832578543632402054755326167002347000818244680163965964134902102309160042154546740808749334676527578812630903114447642671200402834085061943025591336183748764372023545127845431104602763449239883711916954717173474745796293121699971830964692943756570799378972812842972343931981338972066488852456421470859565820066680574601850987584947990289050337916879143723969405760158492467791640714089536994898434179616155820230816788762924552501441742041749210488571040028114372299510718377518239540824045905005767205163092589974112135236696141826219209526466877245961361673837641865921948382065132247476620028322440308001901732353179992735702332077417300278778863579153878427233275393358082673215804046244651618714632450230925040976970815531340584283427049735120111758208447035450978562000203515867359583446905248861921578580819560863630041462372812347702233154768099591161069289223787425484890733269100637021099911236426395864878167322128504450202379848917397636256620971617940010583810416856631437052008803517067939859755529345533815298452660520793790105544367422568428780881887231306044752277239570588892391803407992152069139968639777470824802925211692305519611734887786114383380478383513103527722231203418057967008597655828825349540558208831389028281340209970333156857666507804512809876404197842647391326060449033759311249671754156759443716549532095722765144980128495646641416561572145414408076022864218566660038353551577516057127371888666640830955415758029330091420373574136651619021958228753005690146842562542813642002267631774886891971372310179907081071309070651712952070544117127160398085745993739045481602646102292570570299197786011703281857842912579813049503357825027842556417887550417969458299199807513802752969354990622129840422613481891207925863224180000350459978586155003307169605676121661825582409559522224243700332646459700913375530109678423833701909126370301493202983646114319793061724856506799003015209806158022587408370413590802435560442373908008770339808783217846113656268942372725202742753317113011228380603704520654469918217588546837370351255079585256941438073881488574665819083426259273709686124363571353911553232413504030009418678931245759412189309505818092008340872840954694693966449412224456107102428493884934029966272829508312414508341133160361670208869840855366469543298070265599522240404795781213587608298017714289295710434723814764825413848272774083943247864794220545028669450644728661590154821732057397983192558062421810314625200770913126449127860119163362291067116601790129333747701864853726659692902838053088615205829120649615292935336082073419299917322419259344099632765159567450961949785439644127176199784845064601807738909123650956705884477192934817656266535185977473263394552621100493087770062824006748959325975883151348871812207552884546199913238487398083891457561255247298440007466134794390042215621350982469041654056643839679539909240381599647605148387016914733717468492350681722569211763496377891317614531945873953751813001029914649345507010473242831487532874747695794909079549413066936587698517590847727883981036411393983243541474236063236178835708088551919361131269674798049956027507212220463948447640404178972797674588048358859204082998182521521888258212694092063700435442924756541497323405145367312466004880419544262591917856218425726091993021265036435869576813099437607917193933933037359489328197928315686364621016258046805940649794297571256847425988571492758892222737357092879973441707003840495951478795354915331222281453692813233391852956302864472254102800560267988652479107505589382364530692327697617579877060489152948979656467472414584829711192830939986754062346672145789108687064441815822005661693252398683950207082034385064530388874958116346788037521644918846603093490514359780446476771002437656651222811588071605548188569172849245902088953771220394726514895511625185221634445734109078255373540457872586329109835210589502004208608352215061201609301271223074377051999356107042117029136047540435404362070650650654315175466629358565742512479802699271726215031647844579057184761111548616416474993786907678169122171708325497493536895054096384738989721256299280522784613653927022248858961716659420720829188299568375790815049120033137177461643796442065885802273318440145174694075944396458627678244640188586197937466106401683409668285552163801261859384937021085631016634695095464235195992844640691454772567801580672514634202117594356843846101648246293195052651743780555754016349976927309008931181423866204016589697293873659859725442766422186288532281485955381854938164060698723344493256759489501806972525658318195946605934038417430087466655719886340065939777532215766843003497189473599018937637459241028590343075898812442796561541317896311557897863222832001429005404013060569321942867467410800354280585650513257142714641550884396394897593909255522561279486757486549281436200030715521503254326161450470933541704156231504095166653437376979218909364592002139619593736043750839922886031224582515726281683153135230128605939122604226559046055521918709951316194021170770212429486050981531673405717462209932127798152437944291659629604517003264279337936497835194883511001407441134415351838368046653661552459954674583682736367717825597738379549612636766891881952722139077402099307509629273152355439874413475264059220424616231178560976076998383916566249403774788329617914256294688255697106942889574169712095515521865791416225811835195566490481609808979875096094799083533251919787512159890538932959635719795321923529193373942397488654034008248464534535488127133988529938410380298864932627885483564470534459953554450039898128333013231176451137718369344195296761888035908513943238996159090777543557674319890019325143444022507592084347309004505522719582961289221367784397971399060336725139053664102841015355560304842672920315468537752921561529333645794297902785649413726870904009837466275544125130976394163841225486301295268471167547211516202662247602589332923871259033063721568467775762997972678145088189082581742723223437608662026628263339639977732106039647643525670567359459945195410076968136484627864959995478206218117855334840656783689573403466643689476429015333209397077983070128433564064801450069803611942035391661579282992737063824869377447831907272667453549408079660365671863172900336296739544540252516930855747632263858176592775512536727136121725158892356193465744360427342205586356420445617979327741233272948180301792808034718168537966567278157104715718124467349383211392298670581281373955746457726844824323046664135032470507105201739674997063544761824868989792174402995136173515136733596134725929417207300251066156437501348288244876293638921616100655890793315233442734065712142464123315329580437466498232216269543857337671238958898325347476578828639286358953538854288278184983362617974039546592707316347674288339769467165529772017966259039412317416950197123461023755672823307171029648143413247002413070139298215534541809945871537248453842590682391426053617842465371261073590465767460663685602176360317902067601275235886316104866858888735291768619250829873712042361100146623343763480344642618158110407097433678476100980301710329729640505884057343143521888074561236020634649659423442068988396954313196135985688635770868832785104341430934197741321444936440653627699972821621959154740725393211515520317255717463064738349193082384294436679357456480998444937980225651780367300826814053942989172035239763941885038659366919952561223608416925183240715832419530263528681548300808971544858282491338324692370353405856282081835728767717650786906990496053749304776120745295545844660351270135516022015803369988269435360032299981483337834918427591740479522559954600806668485702204243765604074030828588419500392527703752120182700335857024826586542513707294739046763763953237676747797313646407460868918471452169829467564747502081410927063440902326747212654899259242952594830936702325636899999960853569135814696262072437690817292387832090382062319914724384479117947232293825424911654929590145581505337288405133384386952793772159588107422538109345560002537726301115335723476170649769654148943642215488453217599767462248709060741513959771516722924864101992643868018809907186259261987806929340742857015923741124059411991989819166472681217404369526667381531499915934612324561289222532422033158063114697796072677494132987323049087770799787042910661081120724173006281515532133392000966945711197659770233456764686243606402728587007207931995449337474617251964435117809685609742354186938962593307515648816235442141085440830377496231413549395714702923565659537413128768245872256562417342274307776713243661713993412722353680962224710506913406528748892281858006673419400857642334923987311114332288708714204316562713753493049751731134293360269970583092341106808788519035340313724037296259992304694103191885588340398788667783991914742858024303977890450144750356547208247394282282617443858022366233869685257713573175750315602110676872227375842301104625946300800415877168393993092684199553212886977506550881114519064691146432347009029742658215357963257328343340754400988816975842506525864863062913377611545818140673141308033081825404252191178080326958226068163436126119591087484564503323911376397067973870914791993831690122311318460681090058851620892452881203630856052695158240105580225729660658413244015716962947297085683777889035985546578999966104053673414053451923939198692383255921372218264476877668566970331057784739208239819700918570118980099751396371016653032401988803579438318893582726974109959621782487259308595963781010058048320953878665855989526366844338125876389030816962312766729151183919001419192032189227702999042329983974566595134340801911587315427168217353476851415765963029489559550520713336651253515522150335510029015337072553836997311055717325781491633455031594289155238923684875676647207750336300741966202841761604520306070514243106161046704901740996863125371743878802718212186648345273498484720289468546398288925464963519055149682964930306785170310705598932118519021577369544958895445875452969004307268628434391460396577447952998512208541931854727901554855755116993093548996209789990611932166390472605120887034937573850794576275390111999914180188761531425875525349118530512949629339167545488828874583456194373770105723708716973397815925799651831300091736645173223617243595069747013505838913036896200921858713187033481883896553385786537795468814524968462575874170865355750943025662625301429900385805139155262976638444581197628717575299562090149293030205358352638841245815776881837601520439890551125707778241595119804958467418814745207827527733756490572207075486873204237332864358560977614839168242864706616648102410699407762873365912503767946938361894887627587820163445329218323459045349432587009410376085219186448861341225068458112812818477282420728099843734902046807791746127028082735505069708329249606150030563246353543205889309170706219237763927663390757575686240112340186805995930453148500316731945332294050294598261692957144986491235466192272899263867365370960628361875550594480664320005240260056652366017074461671975322337981715255281072670785314529944890247240969158524942849016275258301789909555346522232833958495266234260395680771304496166733410506715002222721864528503995993942255992369743183904436170139811181936968918058003175325163661453372211189594290803101844319310049204352569597430671840536470709378132679202657180452563581620040741071457217257992153976837811183330631520463375903275092254563008289114261078240490180585417042309593634597382121390864193480378287149947359049437434694940371920355760728923461515938189011209332853172418968841682100877539210790534355094151008256543784579834074930819833123891769779786215402447417348238517775547039462907886584867327041694331908841390441692918088581446979386497748559338042013803181692222058788790391009807542946540486961633890797816253759965845728432509466091630903333660442768683009191824165126293290059145930911485819997640677160719798669953216544774348368040537887651764517858915130178730505904571861545353495894383106844294023822764251120130055226807762888671506121813430027838272556509705442264286919726197016789346376544256314561802850008064178029371815406810803710773954342530437011367285918465427711330575305327520038873831872438091699160587819936313924400989776619886837928392368723198842591404720541974054626158382618226949752977891657067570767960862123262084482949910083048659906245719255145915173288670616808094733379116208325096012485311826358367690585214417819791413306913622293025376356538099674002392224817806557894293147246043516787905606437738140004267751547713984374852599760839698588704356669501048276497088999020485881839082101652023604958897995591316983274249287822417042762724177150284230107609604760946506179405784324074341553765193323419140384593221042086859697237997989622666369345571434902147035011266186587709885626778309089677358297367774613181171067559538669150914123326143217504495425675757214985724825321926146407247904314625790263845454253190497731400636500669082984310202754761892950856955531346706211848107421813178518810508891924085203000383571431589760617761578771449488815452635402565848386807965653441589901549009746163843931187669378066144231405220315931723239561024013673658304743905478872032831364487744423882306101727831944348001117428068536962807786253546431199446909143703098453040459485072634745800004328706703059434140186385099407398053015625079908606462397808587583323589347856866536789257289037196713570140093363432861494601084225558043939458481755417382799156835586124937727652612840459593773395164194499533204900266098466219025065607949638385858577273969076611938012147975698158573183576341208121405887432441422525037849896927339159513950950718278359619915535562915197227405770726745490194370447093649569856901453659384278497668628352429366224209135135875575878675719385701751081989895830750687801055583263610055056797198186933789618559233546959963713895286387662041647684432765017465651958018809763460133618423876392764888836660430207112160043756113617746693093335904790867850509598995698663217953240294625446178879081698693770808259638732594540717873657368668069332493354521253182475312306004449371137865827145352201936110256829624210016896926157456891887880965550596615245815797163759515646116996414809758899960297815468412761419745050053550321774947843787446443749340564996426812794913271532391580767165668055532957624420384149646411209607702113980295940227637664226784207699522808569367437479181622629968652224646130243641654036355529289132734351031390684899704438930180474583028965796568802832697509297990840383841476951168251673967576505785981480136846455808520775303676449865056792588803942653184021559183125154786607561236374290369888566594803926774242152027654152670635896319657735924652907855240808804005537287277526005541835461855784378500765569457200544901432025585768829544448829702204159185648341858091862149024297577245912800025571482920323179309623451003822790482703853891542251986012716985082146879091366251490502168288854488222041230197680345776914193013247092590069627343279806284118898969358548256266753304000535852376619619300252553229823694413251880200677042716338806508943787644241158745241989017512671144094537132544754286857391439896362645229713295806037879950639569935050296436288727422004070195135690870110365071883177462478934062186793826261650476563244424568372740714992605590627045317125546615934913500837760489571969271440246823904611634057356952612654413843462877342025296933599700775919232457434813840458492153042494599517719196630922554952162715103147052919539717139465416750992517931929447497622551767995785886543391616352084205107265861043331675641259425096859428506246394636864461556946135687944160896384286288652875618703094261292490969230981890769922208967307204782065206388585431196075267438665986526024512133521114502168073428699329009687785822268072027566619482966303624658692198617256855372125394130750322381486794903668569242498151910964520299929854696402715613432874020024067929450046246927461930287752733190087415895049877277286610195644382166862427552976235818779560921766682200728096145284347968469677575128445151934360623314165251770853678610800145041094929923955564890396895411113027855813708751326400028365444663214104136939898305413484277746913507063012191163726649434745476828400967462950095434097414755403935015830099405593422797034264501175898353242238676449363603646132459904041048112796782182492066948945790099871278727295266412780676389027569334954144547963250711396082095113428167694805753020403736129753085920765982906739259162192830916335941174383373097210375584054300965472139006672306068489930165007892352349726835805785416546794332675274367459889597854446818446061001282873333914017941025734064503866263267739675292552353725803096251681514523060049543914401265508593107771701263007718486205461994800664317134259310818622986452303706839220883935904276315022346132886960627997125953990357884963568344003553032252766124173241541596677218875397842939829095781447894243381463751719655424145192574145281002307772991532149284788123063735942078326975656071631043066098225011352976624358954055093179082332071814053129287826215288226745637315290281523385592072079192689814406576397637982289559156839680042915366914837039955894334763885087951876339482764855220074345817783832751889054365292345582219401316661272542190697467515485739018842853954003971662761860390784344309319167737888461737859177774758357050435035332442750916840276392675171464933047875313617586950958669974518403845266055065911693169028221903541270693203095031415309291401109391933484425909731488439815260731305014649938052826513707416445085553132640151910522014129637733047273033465057526400547170611864788155404178645499587438104634599707268204507584254726959352516052700013325488257946479483326336969278727291941443939816350611341763091761346780664517811258873091015110037355277554757969427231093708018409779330983782435762454124196504066065707626205320036369608420237286361083093898955117006831906664249196509141790845410168012653752563979975433379790054384469156020215879822860408920815673672728211017888333186968647310867840436971311600578837588931631084375048745410798973829190545404335312738151065253857927426702269438475858411699256062830994128073542209957364786388567374195892720583059481450199830111716086869949342770121477261498479721531451238464979595213837421980440219076446333068715871748186189779560976115583399447332984807570956689910483818553525998853697728001072803222992154477602150865695122779460769974094817708730124465203784335611153364800768777406474162613971336424936014380731785275968883801581935723434761456588525200471373487094730310682484215696564574568189740718118264771899841277192143228392233400842411996680631283205987130912843553512663418982414594004294831929342101350052149717440962966835697715389716579334351746776128908383643932770743237847953061495381920854381556223866747500456822236229356598049469278118010975351120339625037603799709049864052666149509288509124049286865733406854189162714253911854610331487917518946345460974773542745844527333743074257134537434338317736281690640960345761042784553932284324871704609556376212409945055109040669528022288921200728041297613743813049285686509703242210174512328197946962417792890736985942350090982598100504699168376113303642528772506467973610598294466916107041553539645373927133465339740193994328266483252985897545714870708158938299562506978134588012349268050418347271184329718431823257088403920649305363698723562907301978253353065028784874368440979474548283280596710302004716844411788117665487161292829341892870928879758838034393977898915518210291472860845548399052071505433641678131895438661490073488274287331060406922301080400245225280805225104172590835015943660042581354179053502255733988500818769709210318172449349635210421411126091750698994094628128386604028261118250874012444802676288955187683762780275123962302587427034547542494644588481987090731806340960300536595654247163107416811678455564794250554385958979766376549561148214896915099746309272623501512102174656116942796075507939371355803510453942389302203096961399355682927538251845567918927166298971104638474257008375984593481710570635985708124467700885162104622950535276881809854899539312083622493007148635734487497322161438725293656427282835800729513260689317864333198840254493095603680991721036582865378572906245020563114268070967181657979826283782536208887108336784344803498709180261982825987244210177482476214471010742474186589171475272946259808081076761379638671276618837408572713831112755223223011646639825658903286227879322641689795645700441570989883349020824144916148442979360289663414656582248747893156822810992120177598423014957319669184997131881169591622220712200709921864574813271841688128518085260845827087893865351587198592993214554832699249817188487999244184538001013960738490864717410893308474218442994522262993660480093920503934907633740171033639021321612170585422694309792730294791783425914914980228624243167759119347723925211705845474695820122649565775744066526094995575668516017723264782684109914714928928743016487570692154800194164515270026588936696619931078599697535709562649540471745720615438675054478391361962363284907395449445897123773245370936020414064298637536245338486416229848234152324527137357327901127984222532924487200292237929457614415464367371806638855216960949496609300208008575855033408128866002513177008551713350888096021307672701321499526172553662717518713382481812604205445160264833878041269854283932432058256139451384393990438447016072330886468450186754164047305751837186646550851034814263322671455196535174694647649060753554134627876987996763301815899258808731129926570886095255102733766760900385343735101472281489971937312801929037635020573331442242288090969778078336306900488814274119618631154063071476914779694358184711327315483692831986361067481369419702546399717848301334964031530388012212529926590448796376870199306455931110995311269983540873749841970483150626755111501818965710467943930018900650649078920578953010065559813045877359873918143943468412960552581115978046720278542606253174101476593299434027812578039492553078420494185625055880715000667862686099478826795494949555022540101265413926213605491274484323949173985579032476834130522671553115029396374111427853191333529833067191993263378281964373036118093784739127618254579329920250272913171844824839027124488524384170528319514026323756976711414540138656743077045828948502008635898245087848493649881174049965689966027728172528718181605387691094705255753117966281578856209867780685396089472094263255561265403726382057503083231092122851422186561401880308274899862181719822068975441373936885857882654765588254549193632983196391143177576772192515349055798774576923908164352191668455722437027912974349980877058844289616332852242223847611804636799255054558439488983507101537015795608564513787646587543796853753792377787576495525964275757711984351519730159577393940440814665733215979971328944138797619706619287929640659564318233030008048634649457475915396377715072583328852224176436673984326071145481382266243832055846707919420779734121651926482569395297987521443452857828322761558783173169138102500953462004305624207987867817573449908699737309956337992698033931907441441491030762624019421868480407831600178365894128882611962120812723315825550967994246418026235483079169377792973005860198630888029224999769563596853105044302179920516629833854902600613905268986522596338003067807929405309127265775924824020157455371687567320449703815640440832385340790908971311825178954630050819501174407714232216426140236021791770607099753966335635554916662304635884883444323494301374690997739523882506807349643066528837970435685802716242014681746453102835665225719193700717789739902116266192085181324380893754320760476817817603422828580842949972309359457469971330287406988055003826381610767438025454705212586277222085152585964244251688434810483543888547642899385082872283052263524896267005248252171749474960105201292056013148456124119241530655798810481141935501257302592130047447851325595757852575202940933817169314799137672192794347111756284836128734296214723491196365439847161976151876530242093179583379097022260889801224009880267591339687613676859062137645444975688029329193815191231679384315029575539476418813233730856155456483839358550864983181085988941996112180556404322012078090563684587287498089127896037501697980858554552361828163134913152917267049438961853647324837539822053504619201206725603898408279502907061603538456620213576766561879819261030259514500440587475720823416914768910286577222004567285932527940317043880205062998707870124825726744490078326920280003578183008168359431992972431575821107894094553122299914276381119642986448945477904741806123094614609995776020792399310650023888198512570871293436633774086469585908392992924480486096002681475376358709217227817359680949823224651558305141148295421411068205151429298959623958205640701490786174549222554188461923773362587053329385924701382942977581606158224064131899206442079719129318503939782509275544342129593452228685456693175138654973191132423758834050757394924627910181872618290548378916799836973408833901457269863162395986551462816503480850277874385628905825452348947946916226173692262095859744585541504562047562083134837504553911725492884990439896584610653249359106268279932112894370766888497256362997397921945093094751374087519324411373132678519053182311467921682391413364574563210124810324790928692541732875547755182639476083482022763243238893232815864148953831075078575103997507595239049756944739364797830587206717143370062900910818429289932164287985536229906692238657330029746464233492366342082030773885710929295487562944928089127657970093017840561853863401338852445633116546524092850694063630956321218118429529363786761915177809203830219293352751842943997672920637084056609256595321176805543621330676055792870583296793434383892641119187795595799368767220318267309969933134499698757395068264495572680175352025226057593177185171478816803043232375502436542486875860305697037652387340861671025154072593105930922128352469300917020220276944776187314822329945091232976298655101518889118154846219891066012819460267029172480318834688545392241187151243051774187794120438440094219528741275795871678661378746649426982955014613171993647709608206587686138632082618885952991761683043567205225728671038938066854585884548094604406364814715714218058166757044264126476040455440046115060430539801697133508973794296791433919528874876814507483403910165404636080460149621217524116597581879325372955365954361796387725473750708197255384144957448558603261264738692451143305445512766031789079209293682492475026785397553036835499780329046786280205136593770186410506825198929163026088828638883053365441267919466496646773999080555373281387538150623425059359731766490273839468040183394260744157132758102919529243272413051266683353625583462880192052130041652473374157480418737683995799462608757469315655128991961374259301002887514142153745694676015639835973012449510313768958486927339457996415380152105970514780856479578979936923327911727557839933731649062571639118603430335316263545851864325353663333938118095743294873449063118613098417033331500029285748131555226152342865819388388676037460636838599980165291430228405667926908395351484871178088451540052736155711032887255881352741233528236661112012228174778096756357817103013737773145122012866888015029200106720904349474785968376938272760924383905099311718250759264423213739319324212468172057575029867278025428993514711125894013865716757691207640078647308399336467207355732008739788963272353389026084613744183608233161384247344722366953605700674733455547497537820427577776700472461892652666753376677058031578911439590312383558974157610050254800365596996602282361973948550613363133911292926021216848110793437301388779726150746120450718949377217480153440762516763517128801815544396385875430575872996366310166296036162130166071988608691221579626483864710306602149884419233973155352757969543916009130656375436764755803706072752394081002920485950880211712567544162317502613881462355138691116414828042146738171445585740857150729784830786831656100040144404179461166399391365649953941596775476766552448781006603882128354334082477491494465962920656387773844030012429012269367101982719491854536884722079906736544069263435105535071337642443216124698762733664975787561134455264200763181481504441939018243615412166555300954067300198152794295028982769863087057388789569458776128377176339808689544935053068217672011009893350038353483886151899013976195877732077769023914429646097023254188673377610138664275345508034600269601878421392005544966598341493330500105633426308918389352811060663729310050706759999313920218061155108635915857833904600795196037838828655162637624393432048442423785123201575686666263639333876600762678225306482333834251194001933595437367265710820429592589794163362309927356721478564624914200234804327434960682516299535528447018267995143434613869497937710347782876390670885646932414222071766013002064385664293090883686233835051386136068823063828635170527544507222388907745652328139912085758718931329721711552018333746503880676998329795659822783160157019856908443899280085323636643542476141950236758265434823245415481323646145752892226582636055558808531940702649144847362693995222146521703740635384772848954945626547681683356918574548487762901166405945041227881800504836148015895663381844403404782390308524812065879133769503597007749912223765863168188202056099809828199133976026291641191129143117192467746768518445606050807230835527184995296430022247978956999257037099848373260311843445283218118648629870660781546328240548616197295779169237565076513529711508633837882529433104333171816780305042326008534354366555169724078367482780702954424153316128934956001324821752983231960506462509217595570721531514926502894893846551035579786408441538685712200608742777132737640448057726093231656580996749391417033118234910284862549567569476309975806370488072543446750184575433547064389068597978247637770648351029746779083631755433308720390363750457445963532533465824913641561177565794339001401002823025869092641333772138787905543238594849178835582887506931948020879937702977567367353398749755900912356576883584297172541461169794096350213383790977264959816644600163835872109977722486568529964341598452294650264097534098280938120939193810758269307223539333574722514836310143912935738422921795811570125285295622405195186840053426172526974068352400543303460601339350622656768699456790621467123739592158640134712439679863427394957903019924903232870505071237924279486944211754529998339828301571502478964046425334488661999634143343152147641681266238904668952517619817526655528777054215128693116101780740614490667423019012810326852163335248480004951477397961078446133525561226226294085748699546838365989897607292378266019797244274881165449820709792062981789667784862623920926071929890498214494344263056075279479557956434705708517729249555153215308862606776038244384807928072067389929893753341342647731459776890053281799529483309643317399332598833078855044636257222327665422373150395414038959473969141442892659759927454764661223741893556815032090620060502269427108169048308382922415075911210576074131406822608316278874625470696914532134469494544821142555483240179271225513129609761300985266406374371360898476402973922873625718803951344426529778192813084175263630000442344057206957458840518798368514459678540488761362670370051555641963246939461555923102675015411242951588363186538775791231666971376054142454817130534457298996073768559457306659932103588154901348098295503902047342575262236283015243201336273718963312240502216084499558791167814959831440812581765059379414340778253428779061190766612614740241128769844032370157530486884492722514264548996651181449027507178737413330032654906424761768446799049865721877482819001088724549940910432965970385751087176196393926501009019034493618422762943806454003513884389307532592822277601888375127045346022359792542731379083192125298400464664733236102719310081046291583820226892100539045638902201560305069824462847857042345824243128892639804605958593257486480221586976593285370097713330491225276518992378465620576193980761931326026961840724875371776014283549379215582966388054347693599184701326552149173154085599596580320191360882076885319028127823611484073605350958474135913595662709296958698821401084981023115312093999628249096379953238509868456228084926396562368100663010307565898786785359522088857362272797545516095240876678879000399717269493636309356158808867851686769311968562216482504227413249339123831668014363629279266185527615140949328523838081829754450885584468253961224951033182660450576138175320263019529636007585791347712692052394411272545390850312242935210339394831447391063744618634502641021879923389268075424061752645084065364342031077242976426094512629552176120684899934128126479172785851258929926468513819462069864833235838309741516169732938967131144389253047174563827695518771651256790103914080559965758297454283495900514860172050426016926631392588498337007360700210454061333518548637283145983506663519584541521899014767718135005870909619007934575065780483384175233230168966646021125625740056214456045550025951732717179999642019402721404432894256240597519074633065219605218538173229585112388304491602609276782352299192327279348152153931184093673904506899874029727509741763453740807432404239105179255486530685160084613691990100182820916935365576335608410455727535459809718014893662421507387709514457834324232008650519256360571623898653215952643670860989731226864283092277136970661969659229510433549391185522954105342622075751637209095401982722108362414575378858913184397033643439373957330114272180429862572419268685901943754202627563322427072881408328289053737818287752329479976654654095825054393671823021516970921791566097980659268598698579793286877598747511215086912607003726975338092849622594277759970912054184317777554999984995554944764975745974753949738290728866324819512366958633581363821848305049323923236635800221897581360659502048905158913215228188815059321341933882863822106771312953593079910853177313741095542457236801549331048703303637417276441196802429906993819749863079458451658890208206963025805701842462460015839348481803237221368834775223377192576447421623161781355606162027383873975450180753903718158586338591870203573340919184034542561145365410262320263378112772471185089525696940787315353287331358224463556353344842240766042231373367564132459115144708667110955836337939911258561017131191577087038951060513734009334375198519279804296161579111656803343047217615628969936600426580058733014019827876887823040508998955379113713988938443059459362123674339071414266808973443951873259484143787355871171440802088202507430382390235018347869966740277717981822713138443970271344229392418424460464503349637283020667674516243343742446488713201228372359083195219972342943691971584513481517185819838813780205001250179143816953211780601083256312208623467940967864818163304774555547336213265035775976920426064441791013604839523842529243822577620250897515714198503659188444546612108375664964126076758363475846110542558968727771888058725679569420013641513504409151353523062904319489268785430446762752563340510046055212066647988012626647594933014712664133048876572654682977194266392423713592816679216497353195255300990370108494858227804452579365211392578267548767243557969499388530565977198529881600791446333623593815710776150543733477288776459687531967505615141422489438471719014380139562396118154010635148450755320846410227683814480754471488592040864442045802354189426985858009646133165365240964025011942922313029983477422157598860580255196298944760499269030511575923038057193060173199108337808320023585564957668025267305635159487494252963427643856156185454911981504327385496042363400135324037840776278136113287090164415939986615571269311802304872548983537137461613587563129500546959458230699712301870724706462838609118235264255155320753512852388051369469772008967585167161118423970926622683018781392486298525444283699535040877274413519222673407520979294122500838279371502400132701439511614071173435497240986032626380602703040801189236211479913029017984938676404501922436662817993428974821410792136763714817132138816595204293607679286852617993820059991573937165076078466004096890496730829411792723327387701334905505538826833590526469134281153093389758258942401015843622872306181372480124435216307927287670352796414984814276139047657080112119337692796119292389613181169688164522071979526880682704510584730850733897422281833702657358990112390552213142726792379991086928434879683486775443580859524647973923433426486842829148375286638137497360087130670390901211740741794220430292500213928419643933319855214692583833440050282258221549476879140604568525080939734421803328811296626385131985276935887701167258235037315473864130928381494350814892047075229323484795889999585648746462470062854103399757155008577686162521738077255627753040825944121409225303945294092912775496537116403386221795309045760543067976675560891539790093710370854762269663877781729028696462265202610763857809632252150041462323283872747125639510944549055688249850586403137196180750668290105965183436569248223528707278082477147755416023148442840828390844174599112988125162180889807467799978386773586183953305489201634147937378664904417016820641694979448855871961841042389763264982273398430292360233871607731824022863297109712968569778614888145384951973952949718788828042386755632439840922187011940601912302751427151738932474176810009024047393089356251639733762600566884699898747777459103783337638409011712324903490313325917704142840316429071811684122915419255185247966892596615989273022704511804426861238366953756613088779513472580360242335939162097203867091195322425317789637461686455865574409961373415048748560186201068812807891459847044838638229368005668559177093563064617517585416359092090038981330068899843267123395876360553225106717974309744990521797363737454869310031283106810472826000318988483895074934222487598515465449067499142483363671249475772422050443530859166596080746103648707929274466046795935594916551045698330149710296601671355357336746517448846734989482109673652607709059885937988303688808056239040564169088059093663647676265762056258786900079921233457477787979699502139075061945502584887591977189068874121393403740976943143289243695082262774636312609078520535830699789930204850733638373544397707511785375514331489743577741269265659898109109001564080495339445027727891364524100599462618745475881229440874341559761996564213847296643051950276245237920683751399768420675638766458320822905179401143926211898182879776773191221842260749823139548546717693343269605033765881546442049165313148573461627415981659657844519355932365426380888206468399693640800134527726800602900068215039830783078865420488540211432197410400312160314564753345777419005984369709716549955706905772476776296765991756185232997334111355986036419873306870395220172329612112143587001691863043124627888264996857201771818640817902018000212736539395995522347179376660064957359791313310008278758882206003895636356219308826028139237442869643694191029220078267986775856077201244018929461717627924456074884229434027554367898474325280605818660587769549984203061050474672020021876878125654634388068505205988316799974674154570990346469354190289259862311683312345263006635455660609507293378779990736654797885785956946057957311869291914858441492175048209624508797206502096515378280363282068223945239067809992848172853069822241264087442860424779313507065486761974023785281331328651488626951328618244377764056431820146045869496134347131373981770572510792162017740005628278150394048393398499942941973814459752677419991434155344637515991120596832633213431134817518090097509713076733177379293894617700011409161838581404037459651425851999614772202019296555425107313685366866789228616087835098207092977913544089088897191887593152727900771934330724498742766555374033083202176483883427468492104967779393604004973835937438956222327412746452862928251302092298473359023264192248696596374116055465540951072601365433823328984228688878433072881395563163774408467733338000000238959297163793468504171738193724865299688701479211261026925028858468654503414700036999800847662133391188549486811250740052579170425415794853517724699026266262865358442591377994457823970855655493233001248406640668600027978562539652043369300851349665103728504712637590787629776930228947751620167679521847549855819626486088965610304546193431138108093833068281981890609307358937786184944020193068207387964121662437625292844186930452943827504202930784956465106356349297639834703450847961732471900602056413626368443487143995611338723161361790866351323865659774365934605370167818053617602010454938098911723529564961147672594042678893775332741697900695020957044378204662499667920667507583633483965219994397669372700749024190840585330568707116830751045722133818274667757244246557897761428808211342678933879803814305927990255428678573815052657625062653476672025656224170118048586825927362621191049954904146874255775875597762578767846760710062910975527221288446747579123411693564983241854077446772814779924213830697690825253702313544812418304648037174651002734477917712389001568086548169243966067271723445214696694710882730961211362367372232764484609106105741081971489220299268677980915275136582755036822834571087492712299137859094763060135442629062475401837229960718828118205148158350930585896400053902769318395159300439125285619211966597186851037436505979411344772672651808663046874299585990519792416544418690786934059279290706536704947089841218151246532578981773942997303460986804289853743139180304981886247804398535479452309298402446448026823792572505396400101159082995091831422061560970003513446477672258113510965929107471674015121461289322111724857793964931180076043574933516638779599525476129229836414220750374576334609037864941636776876772355911142944783433582554440383817111451769420419007238230665477906156249468550235957509174130034854613792371259578012463213977384279830090119725641284063764529263300866424324809663913049836897979807267182188673331027199486384780227054377825679249139522067095948086039444482635505731810170274695745703118890289088076037877982204162834858308336532169200124742144301959690250528314200077221755067313341100053796825820339803553192298700500492224578876375746980092611312092256495173395368265298671048120237957988175693864710578491569123374971703509243030814236033783911119408050852713681291812979962216998349824242615745863900536721892822338181602804758740332320126455213691234357785677395616786097475042498043123623564851804249337334824847319894910941852297924001955307858056828862664270164855516015320208298982676944300059387647913525604384351165120866343866620889132991713767542696349970202146767280224001551442698391561171486380977732193707608946764129037824277780406010470299815168179260717463983596658087026270633416590712906012073359695728318069471475794449476476053459200721822320793997746225017249319249984168592631589692949804394054457601813476153230471015073501295393888668150206841146582700527388654729855508262646061499554557434082114030674795015598972613234006505529336016405557366071915358704109140047831919243040495676072916671277780057634610539798321064147803429720706444372629463730411295786457104517068672643049661707384107722553643451913365337594353808853277255247934087583136931526581966948350688757251080556019476825767728862834346870680724124967600619526639452164460954416086855559783539028765751082977126209858187121839011059964907124578105568088454429088094697913478622102613693280621476163856389535867251626444522523539949234205304054036804624030749792011397237466390141722368466536011344579076145956145442438519106149671043788367064439148824552967116968362475344188084180943295770822383062525148982460475496314046373060412094263496946833345393700336210010189913691657705784126285991643665405392806709061744120363448069456723639776846395311905406012458912458436159169524448340408663373834849123077514642090713329009379009004997520763615678744261822751185062644368338039824533191264470174050275724220359701203233180178462736419649995335832519985812940187262928311867917715594136812754265718414589079686485598380363208366112901585620050642195177281345960657793181720363357246264880599635320041082793193197068934917823489889591940555687652877560627274653596927624843860699686581476801623101652519290631084522422843305702700066059583968738762285779390175360346052468668163537054340924154944664814470067876505895919368546102355002957584235791807724782695733443558990853489100598048461686922457448225529923402213337272666015624820177266202892830239868822335844157253661302154722643636859198040776480721002323638020367378214619697781138453119431944415652162699620058631628934380628451004957888038691331259426010323666159536716588412152611882273097044981925927201123724100242277901681950936120014000004942088238144923864460508631036919859570487558339192837685748855870904667399399141514574443353362919745552984614795003503813468236603488198966932173065812883129654958738888656041753220195621818860040079287226289191395345585743909908649546513634755327964008694763407656472033032110118813253698014013715588037201030034959285506528165581355911084971652929903909679388305700123979046743368907822093945030070121402735955330474986975220340871929747916729569014066973203872544876062117920275555200299319758903657920530105805506608844079815382606825315659470092117151267531860762676032313793724867541541212800320970337886663177289170135717748959796790243069235588957124867475229568071934884047272070057792746093048430580437208661462166320513467620640765706372639624139292293313718816214685591304850510831703536300584111510845052909827256606126515768712625207596456432714757597567921998549602369996796408983934339677222083685710082025548625926573829575490773357811741913626267805840663814658439874652021627561641751634816532383370734257192006577687048035306371056673832085506653958181377097453733168909562089899433009184972778773786583406205209567944622225039226986160696679853619470492714711680447496295734920158405923442276319424781272145451900041535134374648744422000196550462686578470512838438830457668679163423861080338739436637246563526145627100663261134290026966373400435201137650374462034611600756485969179804863851340310402123063766592344206888137389724268289302387107494633127712808779278616699789576436242255146191860595428674129633720391699147053788400561817729210606739849781814214057471993406447795740991186900606006416859373588057989372401041636159607079995489338208970430725493226095556255456221003659882868690970442401964275541521959285025925225936195807160975097208688788913677463822517654748209076324068665136743310122348212825856178987948827126411450237480098523733679228255337422918589257290803374887624030829999306998236571610553500921378623725319318463575124426414111969173600591770123514873220005847882289989577643942457299794149644498889127224854766539258142144596872844914062399903399374448869158978485961855628465701122481084715745474330273281398358460718373568543894223851706677073255328426925112113437831837652303132541725194796027105632662680819635518698903112962264074191723389111277003759380715686515814274543168198230673807915707581176684351730435024726532165952874449225581560727624809421586328521367811952439823571957663903121318626134885410580557728833445917403977481926640016418573009177949617768620458132112711610179627938723073897457363213154083368565989105236472735142794559995854800710198088912276356940928857555476473613835450714128461464759021779359256842073478081846032387501164020369273910468982641058099375128257974457473908443725350354662304253995980683224795851181683808383408347200844783248650932797152303138108093081499190710401992879156579741222649781430902941097093018212692682494815848915899562240057316243377015317546224080835020492103595860089780780764581613737875242234216499830402306869287045006972162775065204000281621400888662786302806499565449711963654636662193371539597162849425558417756398989456857468810608311769656999579157819912895665766087179657523495138874465003038228377036014889946553536750583633808301803125410206634497021974853371384934395725176453752688821773942625293117636678118926295439216432310855947937106922602263532389547305021228703522680514095749956490110773189150874397372826941991740618135636288898421029456430788222899615712911002687555638491940763385994506925496510114215028576750385993267326882071607386537430038551655379541476196068229057072055273478600958123687322802465804528587632107991879623478366663609938422475386558519717923323017550485475065619689577881321758362794326035920680748836116592645208787969589323399696455845134340247854528435177169391850532613326076658865118124402383375059737988301895143957877489359751131405436166054559467479230929643866484267556757514135682218177578706864243338417652851015881199381717781459503186612667691897526376906207631770327641620721022077242259685538782673694783711385498826526174509792979655555404708216902513600554617037986532067923855091385540467386740888558081763908483675114203490891963923356068881125229593471944730825091411987277440131186717965515860467958038554520047985389387698429787756558419040532142944695597958600383350936172631363239721124614390684924444407841026449582190698059676740056790654779601368304209382248751139918834215380286307133585075826322052584195778282687437791477162458739289586282081541112467705140712920968124692522131470099295150086763295653952523758229087608695068059877598635405200609270206233858521148923980893674456547493111509712285399418161163599553592172899657094393577790053355378662316381862314883969537538867454719781470935083260284765799027140496377603141853535453986478559173053161283366816455144213590040458616888978554414159307028508153964047760127003605478386606091039586868295480964190933014510492168187196452746110775622475632588755471450180674528331260498634298025856515627612373359862835294949433821911413852390676164216349937082704921033401526185731103954241384059833635481689906813586273682984168723096201824041110007347887415921842858572118903766627408712652772373792078739050219417473334774489497482494806043094863222575684127431709227015075219798394556086359513988931148720360852999269241687315117439996192825056421296267150770520821718203534083963107927743296273119969979920579804269244917089694605941506395776201839511719380643961117233829503441715213476961750337673282915345546082914209007665558227906333672027552146490453770760805427927516967386369907657106988861419823552261157358806520513977804411274223756444951457253948114454996327568045844070782059832708190266890447505257673554274352912140750964294427116707421808661451894882834593978662030688008352725259647660718805396642048224599527242905472897941578877888135398631634359772918837349473011545174857443805378733812261455806881883512018818357157254274004678026944698702452229273116495755119526902672299009370468735707864552402819550487924004820008773825576955958867390533577875950579226973346499264285981280471664935708154709122702219228379531659065469986879385676304100329399568817825342956981876439031490524060770394726447352420132363076249327066359015365317834801799380928986488645547425705580950855376821144595363415547696981551628046656055504571889553479672938967356619273023164707894105946555683476267058584492873810860810702099777672692685532609326199480011607387547404715392648332262057299693673262516227153467152818225982701792033962595513418425245453484678299053218311575135162361302508805743257940289707395415890424316241200025162143214790339635362625336145272395514760418269049059183281745015466410571086297427495780394665349806280265654892016478867985301090369414221260009836608203020911413532308696104081103287062197344518228135007023290016263505323017936670671598924432742508850247960597738127437253778208582904440887848737597139810261530754792541369497388125632894161210705653203920215822988272540849326917979134051133848593824435476950383412644084501097001641956559420599686319120890150570231962603246251266196968347114589231213922825435405516017717554870556406856318317433287825524354587393500658286100222214371581972093819204148447988519583783256430836688191555844668510031278615558159615915218550051434487873156686823843323271364113144102897138169825847944723624682926052151693132099741802104144527870608477296450399708752661860113280075757325625005455996448828072840090606225997832597977024968545464284239360065726556757450605745719290608765852358006233624468870728199037465576365599987381761909541745075855185734338551735400385563851693695767974797765535136742779871422901655245397428799632755476258430113602975107051791502499309160021760655271920303647768289652868411758879294406824799370523806862523398364000601967281604821343332526874817728456940055832353088600673727832268600974370000879884219043790194513471464345780409107311449717689349837990713979027606037744044123902786903127589363388509922932593942694994836059300656535134091915168210488891553022837146988185223241433987825716246261488753822455277805216820529460074229355848942122472415119742256866768147350434523414668347958984522095787451958686404741532131220272704414958630689179610358836531965867130692790224167865617410038824535438258818789417167753933653706411316130684816690283251862786537961649378969631732129848823626925843559912053934539557302800784721994635508638683839401758790789128701852197888423984927024279533203354116591034651704712083153462321622329304960847068482660668975501410604536560088447131544355627183324419682625109380728304534476515671121759948453573272514461863637643383760765943931789924285295905907043925571229285097617693374888077368489943577210830887952758396768193882732530497940164778982463887607572388796990824946663427787450483578264166530020198370074155426346205772139042774043904718806202641755352933896066151260734212979095178909185628158583392346035353208173413668655014612723875689367854583782924293597544377718847490574755745808719133411859729757243690965466254375296229679943469205189636316204132685539452019159880936596218788623830642632820644579913423790170161517766561627706866488938969866600807877645842171514411121465589901703280601178272206889119291522469445509216773589978402896675825339232507654683288036974091829000844917066098109668221493826198193689268618187436223561594968020060110963981867619944955906417103270571300204132846633390898053760168761041246683198886670699534362213481041604532900169139300093083673687150293780220591840986124735472384202290129028167870557319700520539645647620712585627702698776317690475596216792310154989296962541089250574444995588690264599754252200731283412379429206309643059907537315821356787806498215814586005328971416681987612328285178417827077598703533492466829379622451402692244356106221317078478094579062585179029289211187087911331158865348381123497711085645927289169795171160520473285392341603382670106390545258443752412041302618725518328341679012562643076109552241355255397507534574534180056376447203341166738059186954301748667208592585880946376531467757436319917511886643204532800630409289305233810517819075333077916505386693203932562599253461680910290175198892274661498609549117306701209033952508666516727755898881870998769674294693677034277756910644300910923444881708786727033360047813039307774028767658887416942500456977474574305615028488247954654702174518235093061494264589671399822032196571703415646046797051405600760966741215313326260382978620832434819956354522373632892898104690552574025781988427839067582630165917670548985870211332372857352140306529904750084433035052257589840846934194021391695210813685993040744129966944619947019568007444219436997402924145229098855740423744186855609040299489982710339784695590082058110865297106523044572183719362059174704926073715489411280799989274405511266936609183801310961525855327397112320806274177953328467884086551090198512408513844333093563333930589349714133318350176098168662811381106131895617661322330958201967767305446486518224538918194240002750482660927969164161837356914787487506966182965791558251550654302942132104786496762390810572949848138189419163526004882172031040022162228713764710491321461999877585651605137943759679179153694119272022606343135454873352483826082364635606798176556433438191590525834908998837916844165644569489471858196844115803057329084656220479750546018895192823941149086667229030387925543734617538097140370891829089673102441477366759854373431539436781241900757612900810243023881679979663825713036550795371230719442976207741865618107245107882178703579204996485726603237747836321177786098849855648721212376795270358829660314477791985000337962758734313213005792904825708348500449204419136689585423048905911469770178364490095364939616295515338012748038563596271638514905732532877311326035516063474983407844541403751264952953279020421258718343996135859752953303657854808426157988705651852019501442922299395394501732943381255910735863966958966445380533792887501576207640762759193894046166998791337748724930363386158119468698861742680439099011843450044206900513578524922099141419485714575309383142899309810493352857964449368525218579017185213175092420121912472376084047883550486874932844653243794280873686314723102338108717837039966738095822208234286231032433825175708228732687698615138133990554473574027439397809891367132063888661866734347191185423631522913064262444281012444785756639695272756797824343821064152117010943015329424339936683455039301132288705533992665678431104190266070865530512328872916748810108496850998152790570776786245202468377593214297458405616860036832373105456945542809687355557986747749744056081084586437359333189751913626977679212496030032355519249396585395226195537903643900304828231803225556937664289511734402950813014478037055114048148825345486482378097308056699737219774282918206163620980213536248317232894802460134754636174152976114877904809895164713496539695621678597541506616106812684318018595822361025044989097981136492451715369636013014092716978696249233226351275234125055067730642006066111124422793773415574002611446888850548250560957898872523871351031413018524868259444813586611472880004397071958173412812768194655553285975051456203900615820301541177976997277416013788760398297320452052334226987832300418739863257046941019427421284596914288056260686995757983782910693916920227102999838619393751565250162270939399006306328942167523443314096677438852009275591763496675544417427086858830063600456942222097619496517487738222526388986413866515452181937546765438534438137718801478411870918653845866747044793079742764138723477749227510601259023228829266155043710065437224752068018271313134679587533359020821031362414719147627121747356454250304370032002123781839433349174063022122668269188123987752343780548521839679557057424147892110503035526728943420282000025987241939510288610255117074075631319493875031665414787119252319784003170350908721997150197852128521711630051754674057971083016248157035173572493087444479831804848345940615984384822810642510986410218910840094247674638956623055819899832350282211514069002517942741795133130080268611337236688719701127950003220987347286439473692302378926005786537092360344026997578443258718143662375876528527048092917355324348341895371267738581211064942979736679612829172502822075371295375029685640905298333033854928699272398984367833915786913182972078059878586498119501238477040151939940300209392319594144937541600016026646443184905303921417058547098503275243068676654431354649263596989163488259405807977453969137320073017348483223166882684123914732624927794538991961658738169688820844967383372386559228952294966720171206787469673310745452685893869652980180420863687146679851876222463219291632094747652548836889077795438634404982106307906071633461429748568714506191930603441037790100696737292450510218931821548461219699942515118715572702534221679820148033168526471476464427739405054210635602508984699521033697348198798569498282402358349671818810668086663472446015120156494746649057952216205294926352977391260012820385752018049985429629369225184595314898648802930636823096465994998862857979911362464867910029521443142464367326157003931371436310587117841249292273291511278901126511851225931910469197922839257253461305378690540155735065517347688881273284933747958462985438997708375697046843280073807481971359972125154754284217469490861683716752172510074721335500034460941533907659781983604342791764594602466251448293735792509087436587380734936376204959171135876442613135935272047991877414835826979886962285376855716627486437299814841459868240393472222455411750553992220625639026497583296722250810617725192085007817943294937534061399458916815939849238049339365808870435228411679894118598110799342827926892652128142431195461807903746449891294943637529631642385318459145051428200876064563603649873303242872569424004496093552548925437437222240868426709913569671755393207961474935852160804852076764584508550722972020720478349086578320060514670959194534142076509316358559265448335199088425672058619772979357440106697024014154474870590662487220735306501009234597388496145494948032279059663637218676839536573473916561738143909106962111894928708117101663689447316511713139844167668574248805989482872303110880798915275954498905655573947053811575349526111949323006773658840534226730067791511193504440776023740257840626001240660721769403112563391925631251780007020317862040530542886445722098494130495264975414513577583255621146248587219351249009459476732750841133527527250554813009245493595283007261954532001002580985211146767479654895059968445648022038180354224916714808141137597810031830953226897200693153613624403289960350565143950805052093446489572922122508482435516938577679416126441866614893313580294667436804304074342992519404996142014535765167838123171848214425144611667480921035311111593296971235242416270462799363076244718788314077471933698322527508140109473853622276118814487092598625492491886293710252114096795805679352082868295873046294427301556894719715812180816760114677527196953805845819415181646917349310352704020300492057675860490556684269776608461348748781323931342102037907727973165418614812187950589931781183280461773590785627849633176035057799547121386430316560521371129526647275338427857583322909360555424712195120263233991422596238759604455302115087245447686924373140878060720217204288272362809265796257808847987465155868337987473054136067815916942591903847687048527752130054890624450755237689321727179454150051416682835722449766460133731900674716703000765315831447882676941121672224534965450393114563742279285230861098323874900765000216915549350194202518142070258215713945490457784529570321464557543276079647646042629798692658352190093817010385498742628226326069256049179759056075273965596460060263859588946950143687528421757701277810663781419007998496418067466057724524920394841143433664538779175044440266458014803501522158938516547900712463240738884432940864585916152420753066062347119189879749756757354598466375227947487861194807212185982727511508931797260485198458536934139877342785601550924783706799369330865674086087722807969238484341553140331336524072345812967658601531630679573474114675804068173325874509632982190595593789760629087816174994487387392196881511992220046209284774984413245209561244229976575604181990825488707063353622263092011296904364936405749422932909446803499177501236563570482692487115806227100853623205719727872650225890524039930301706987078762882266759262286871638713801170623275690879012465057220866305535465417317306020950648237304671977184138727654113722762034732195821271466895604098489708879189000044631494922690247952463366157401205121672063476753950235659690316258716469795602818620797013553577976376772510427217683122860471085537952867452522553975999694149854118440456827355950513130996472801039140733100006886732177429027217419956135944820691309815417205548982395536841913411584850689557853301944579445979820414639153106468816885011482431020803218962745245024223830354700328016255038682969854658472929641634277704928392714357073961208543989077764840909385130745521407793351867020028209547784049532509387767051559389241723145670276816027702815566654685682210394914419793790537389917915145125652792730119816748493802976586170513033304259242581816773191392944678448039158570275398662187483704438820089898501274465462865284221338228062714682759616483903624434204507643738934760340794197356162520914167295245541134562994328332226709646189179104216406192890761764535261098783710653760120372821821700295230914922860436030117268088375390106097791108349015109908608926733635688029224004708081911334752735496706418117258991790549967423666784083430957998602806428872247404722331399323847969735558319456514905689431242909063692658388701472543858326944104057517677441480289867719195148511244226711898138803047158788871246114826963350477258899358328515206279799517790973287279349096456515617272889150747143104316054519752347164121278381717651862242488199096942565971436104683923357581038590038578173000793229425473062978220882140313491477986210584229670200543316191107560303551930048194012276681637879384076755959733033593075227127342440325298089218189371049920701320549638415065098983363649788976881681552993812479934171622941592496810678798707706455926763125014474936919752136373491503023018235835828664251409562294160116881737132011624763036127100430439759688121708712918004938478473903736623291207125511914663291589551448987407222877928641485686590232544642649699580946359599956280567651190211661772555053360942060256757068796069789275583979291572933926826279757427691610869474277928765846229606156890759281929461585032474825936056666777976372919066492952629852646893704525122803402466650821093379876688943487571621685882034547672372952309552564088985122075453995656860764636499698219901770652009697935152716578338946678138712800592273845541881212486087056161980462393923758816600670389773545890623208253001483544432718355146869598452030689923635000110416705355130431037683744609500347165184465700155867480843587154417593696770385265868812087790775408118430867627138758352430508167412016315820938131793119246506038631973585418321581730055438989204427094342045250317334646680409940829093851320986084098603090382974892809572720682640768469647057054429374464247433048095660480018744129179705260972378500012177867873986428709862104552015040804238219027055270266039234748919338067082077166610612538852790549752984279389683982395527542408867902253387351646170113790840271496068038466605339304112374511000500180795000138761166389784428363332160036785320228180826632923935171571144452307655919411452587459597692272152551523450023697017777897796489498137906266803815728707183084168140366891843632036085823719079360304931091844858749561439841976013793895570610242361304280298789032105409314380242081623108939837705423189819368721967571713070752643487422091280916400241665471810486116245140145699697984888704121270227964085908411261534421280251770378539093578263673224989825961598697972895148358230946937469720335184175283640293627696899803764173338707283741681924853694630837727841228755060346845599334055427560310656125153551097952840772669070907759168529633324022115661704387673783172067534090627042803070539335610920352695042310642029828815293123678571963769998753409634982983464894640288647914591831642720628041947893178618161624737040323770257209344447287897770946431765170474826072734213685808145446261471210224855693834911940482100778377589571717332135911064598354214016739951699188570393775289021316327596939338574912546859529561404066020519691748819770437360443707099875634541073710307348034727701544650909482590029019782568001159490750036007359801537606619374952302568348071572547497783272028859783375106893131725125627209243852848712165237108939047515417501631659733060983389519205543853427775815738276200645361406306814122253236273905715744334424843570607671916639459861708272974743250866853084399961309309496824125740146190256844607716266191539435218369396658230639311437472604523459934784212173881460941514390275956631393806964857721669954200413204981064437219934808592141123445634919681163087796629196389256995853168646195970556205599112221773071733511741976532383327266567597380789375726461011552157449719968328796105832999886135354352636775383995887814438398896061767038054117978726467867420352937841457487836166060069576791438113350925092645022096022057573945364167010999347619759281557311541687953724660617520067189866371787882871954262389819741488145203236669479162466061102817391940276003460599955080662296469064479959457140659177754007918458982078098225720568879453805436131606656879695477996778138799035889255422022040168510293517898612803084159098592873985840893809522929501873921528451992831269150294852797968011973452015307070322073297264947552871776102088281106538351860413781183496441301689279936655803866790166810087976902853784539045537915034984500165452156949167264319531691386014699650489116313836754950502990067993123287668513191971732275317931926565401782050143995633770971056895912673109571771382442692333112150914787279700537427516762933428251097764123558800862043430566861007791254493638156811185951166016275552898562078380289160095668508847518464071245666765320743231314531144407807421837483056532986088842532039815636816909671756330028771870181384026767567144870367572485920627497526361502000129930662660034886228995092298245405729856778161221090483040042948456772164940902824592162985349823391811981538930450295581100608711363723836915063510043342972766858839455582761363039872752515878193212447470566589096264674513631908355147254179108074192008558698428192472532391951628885890345831068856748221624230456243878501028216387500368330082423040945131707722278886905332888154147364513391362420308541963880345276008474959308313041316309183453612656523373341738709486432292493603976316217523956941565702748749383357540794793597286441327316243798006162789800187358610576461045996972851492864361905955160169166460176676762061851408385500715318013202768396988417359298821454233079360143653686251295510284545459795172363383965768539499260709128096821124388194894815042914006107903082087233722128489470491214001019873574194444313809401321569153953862532548628594073870524654082829205146688092077811509358231426734021529284793086422354109897060821006203137716118188873498181770084844719388052343873741549487913462214656916815922177297749218816285537672860529146362064959597801940643433424314815111177230954537880660333254910152011160133776117725908863226078473877808692004722949138261856718659617704155004679890935822241800176383149945833225074708094963440518577943756979294681882402525416747932082672695568331149124750974081166136777947741476253733257917221182138888984380085539085111165982673703122060975282125206308823358573865976423707874027612007014558588325221430633503657027242822743260517551140831138038662347663096972518629546033887209222308602995135435882680150646341964589924492536534957499356141993629277447138645868353038857460567362637404966618391675567184895280509660772634675369853222410620109885796491282674904954158564174188047396332124836837244512333097742190002722687055350770537221610267257115796637374565003709464302618350188906893478750933505610368598614821402351746311886389852030921210194891482872379761240714995694831247642528293996442353432338328874054253203308973268021903221362615684564516886830743240412719876843902382366406332636702425227809311372278377260664390756425430231205567751394419849216056548473256122417940534060561215136682155341876639961252309275199750722401364949126811404325881716520786926097106824617516586126991384459802180560671587037126673594213039702648091638624720863178344141287788095669684696112274225930699233076308384688690712384583217816747762635086739409685728694124505536153542047890786061150861213882453298469369167676856295980121259145107888984770862700418686205844163385814766279525727437588347308361710616020362246908487293110887588097232007796024000853340397613478856007849429059600650611457517543094878971032669275148118695083583115749624289896207509592877856424165415639225144927053600457745972918642614196367182843691643759911589494705343176610382457714591084302446440238895241621226359574928616407099963710982802289804435855138100145473372304318159357375232243011753622646873609645640341536249650653633009851609653463651248960502590554520035712446339016990743890189909043286207867602921533102603265409770874822487333994095542052970364809217117312526879385587636376508364648787381949228532069642474572210377197838439894361780927470820628847920042255061213096039562550422632549648252839532823726316786011475611901581083341567638801157152149020268398303570424810317844860850136165091100971674147196914565480772976122257214104071490708821257464348218780789667296468765643663856087100067483434357150542079885223755252485021628409937458375400548530420124688194597714335893814371271150567480283347215616649632503019954040889984647999138802155902574610390559425287673807548035262838007004414087377585239272093701188174547311774754996316684866945236190043456285388545375039367547134915774658972775129241525668081700606503293980629321534417343106896691879177398308800848944282890644813685032227535258430604274390954929908231516441301312059622399144664088145691068745330233767250477641624595222196386257464675326384700647858389008736267986774102361122527062704284167460230739795730604755784197857894899851149699122002366778583903443061582115811524001175930742033714612265567043031193833883707811299164160479179936455794628646888922152027685300245308168878000976343554504429493152243029383685377274258194479753477141479201542314421770966041359840760461575855797510047617574107821632211973266382547916476641270957436348160656278634815718961409537039050764382132542316070696606963083409393897614487472235953094800608178918510941721489618351921535749587565059530342326618039147688542227539400116004029355083913683548907917627796457111296740296592772448789045101056976201227074926626042188989979851943314997181651628219930186395849900782046829528750142233648531533224663872426182985463051260906711804165760521632176236905386397743119879437932164740108339181997048668079767007720441162212377743806172313903716573737314063731148573575237599119000298616671572407692634867788274858291019970573238848641952977788059277186402393972226441745106755644036135237085108445192080303168458498135843107190381742830241491894615141417151710768531460364369462708308194400052320943982781901837503787936283071522066056323012583692342922111365086622809306534850853335023748620995040697217056964860726248246727983294411718939818385398372738922739638024493287340652388156020431438041689371789436933885641144917388979816843664869913817912038720618660497825308009484886050837036268355049792054625897452219532747889071614699886441005749207140319960902147362631956701443510675285253736197743211778128461697767094214134097779079620664291371638965515161536627235559097128182435139349745811383750220871455372514928456558716127280815830807622293909260600090566648169194077887289809094822837299930135823523390491129988488704677979219904812962658491117288308713660943665657071988409533333795072837275302467951515028210360009797645422471784699675478499188736182239498853818367556428750003530451412344919919998796845690473916984603053694497433991560441456691229332100127524628364994642477228319060067375390253061632055947934654097889197231185541236029527624764826859085007043038812020189181245871420608648764666752412830287551869393821284424870697519306679645876450095804037147887804965018354303668733817610795726551809403795666563520379260655520493013066872487135946314634159451495930161371207927904878451705272183261565499962172754695887688565025099657090332863851723872639846160823036755522639336773132407619879491672291717616946684874324011399754477652618552593629025774218118280374663460159304573289934229494396629005600971304304162264985827721824587385296586564549603523287187798539429176003327500775830111904160910488977895674977772668499877875740341005149687732294395000887377041721959284084253994405218353130384672054052927702582089710554333886986251147616872030606940990159047201164094289124445692155159084125828295748575407251052328043837125503808822215202080557714498970601377889174589206647135422853698657574113464790022445857209829860713534550292130976148204886262585558141073042119660693754084706287352787569546571356633436586735273055052434941038975319404172092196314247468588072226413650354230793453074025892435767015249900140446793919240565527858690118498195523738427887034330874395695800564741963469686046999110652121497681756266256102016687840452572779695791257761597870699485399786741710240558526709136459340151420687791303280119842821844762643184228939838330418123655315267028686271504334192843197716018617438000029969362826008565087760234745946705575540871670637678406157519957180818949470507966043033059885889757852798341658939568137185984527135911443431897983653811368297089787135800805854448124148551662471779782053178872211387443342857002075012961093045892091880452729428353103962110858287206596491879237652674561703434089632955243362574415840586531920170084670813956106906596706462890174943917426423355553255408143008428743176225342896649323632058748285736457503800393502724644349563238596283667643033638697561132550545318897319344135546007137914393692891884449163867654834853952850376877393979427486733851278243378880678215295844755758021670226784856185692383756646619092599645595014846699363592914432115941932596416509409705921574938480270550091028989560996692128567484363490664604229321025600296337511067150198285117198664481186725826470963766556354739767140140090403625316991475792954531867050140570066463610877089258399401221968675848671340657356048817558130719890733153165808863427440033499733253647730290806122306657250740016612849017726944723634175567737581861026692091671077697665812000898242005237973445069161930184090687111716116720871673999833492668840180630813559369119793634856677695777077100510893160183364287755141603360896174857728342839797542458369161484887327610395017842713758089509330331759473109206471686845061038349698510603198809684421538342650199292640493489814918946393312964659022940347417426428477932411048725974698730748511055634470136148222965227665152197587685469071707268870450151365656510084684642343790032871285925981460068237913935544293085089478955155952770625414212635316008248602596186763047704101094575620674425116262688562780356646391741648460545748036545073318637156654939898099793197206972754161953723897950234188045285799423752760089711388675931737051288977151758084003637596848779714161044262884478267974108610493608117736488567225662712655682902318792846469764042199348835369379484572097174938002085068896992249210924737540695090216057238471503800436765189367784402759392009182832003776113989203898355053443903622294261892067190668189418697858677193843772891050375557007203519484034188674269809950157971632283504860549556283114175819860889046269559005408875910328173352528471819579956665861125790567045357871288083531320730452333919510313478392230258713633116566817834517590977161028047722381291852619487491218584734388187791065454306331890853083374312291680417442753373064008599867477067013000519805648012173628240973432144146877606952371078951336192392247907047760583478618050142828751819361777126922136669928918144998437283404222799927840379043672845704082068417828326501667531753443249493562370092596701648441110520854510210021416130431917989100041462169527078306154552312474116759916318864842202213562803657868490824277200807962670018372725660002796481521882815569738879843171534682168858342323314995215404970106096797671280914813079122194013629431548597036992674168002736044461987161374171972814964863224344503664698453164003646729933473521121322150951365759551926131277689906176960175407563763295341573044993755234369457118212351576482684279006792759512286952022817143084713107589839735770589068085819478127371989145621166532040031660343602016192177303181968869982653441840582427657610042860421874314668320850524010506931830011853690125168231937359304677494548411107244344135783607691203042806282401581645699856414641051961737933790705213719795442149429353456878692615329729669945273333988492246255521843087880822373113717076825481886250161703487216918182998447576523671788893373312582349987087920246431427897965382950250180238911265559758770122955253733372608682109517595833063963862075878177527989413023767183309727993995707149006027883928506744736839884353106273973397285242112608566173135797573810952897951669337447487576106220650343070859925693316776546655428701061112263814099670584474304338329656153821840562806774903605967969278111743988306519605360718761765585231004384456437883440654888151650038561305249977121818861040634815957295592983687814263144874715315038791965214615651371783728178657199895721191343126327107759273063694177446763016706772089619516694683160858272272588513836391125408564692983534952413148896681421559261863844065998642073213072013918604302068425576299271240039890390923326122927886956850761140367024928976167793072278816285966834734568211801394046684099077178925595534973173652880110956057600990313688415166391261974578103067101619398412736145662084353594474764635605680935829140390796663809991700192386938171530088125728693192440474131480254192476956359032698095499431208282431620360597463370562094885362861429673363355818998758239683448534188860356089269962876971635782904205018966858099043796178791134387793880914686991491524948227839446553417127053135155905820934373955985800502694040767284726845830609074446967889609507568469436273136539125021108812192005955299552392093294911021681072541572603627031157076788836879613118817813924283411281469516457971408474739376749237464078036057054231415917835643161149202277009376368242373857700431003738211802944751080564325358412437809594069666395517663527120453999693018152160324383297698059754507430496801490598436579832247022705684342246445197633786012628277102256968516377684451331898728421340643750544769554640219923591444548031782247353642649238580453869812015613030764000252820326812816023384106673684338516547416901335092343349535505188155096001233420585668320855080995813110251363033992278150278954001991878126580957879314922820922259042489627813985991924712759542325392126727955110777764298000295968950864239237065216869701439950693892447579124339208575680495634284218169981420554430678078503845838934468926991689453275482649151500291831613966420139462323590617163177599759042686152758326615333244114508948984739747599685673645341923921874210646378855492527948720680711801217606977858951333950043471419379029239039953012550050863055915211277886587508495451504460414716713928336502641859453286997178125058612353899129605386816584555886620238095369789354961861439406222661919505153420317117283683681521046532861651812601108406516467048199835554184084435982266441972218846831003276989921797140670067062177578170374786771928136906591407735372642282625244941296566980348175149322323425991662754427602343620604312750290436754566585921535382868310480158152529036728019991086791366597420835435434637162631235047200291609334519639214357231954118127192013108361858987761133934564968678553319618460625002830758791786056048819287115130269763580990825875022842667748159020175390445976806791025909097419400688844318073537209152983830211945775006921708799782608532134033726267571367382064788639709190759757071228828252698046567858557111378900700655901817719777757021662175463274528971570113463626013829017767338589795814988530964525571609380971987807000439259196297942371532269313440840109264571063903385456146181534295750496541534181383977629804339643948043620205298230899664101104795791768505614453018518095736510215227137268013961178481227216894662333878148169041243111129862732890965536837298075599450254992304126839672168749059036456420806631023454403622300039672768714076189329807559069111846211631533515999491455005759031333212628720148164568133081878766243846118613419251604716147632288804613416212277409903778884619039128630186358208769346978455523937308612616701354643817114441082140514582838807631546921481723664210742414646807533101716286883817397735652647720579499447004185306297047614525365750363002538090570874574731054907258449670743774111510990681302598855324252029466571173960346420580017938324602717802266150150013886614223947669341132011397931929307701522591495629674451230243194564557644301708570758921000074751757094248164460961202057750961535810014596677759849978590377000293896741433739616724317156234935161505826451997929540776932600683266673294052164026414442804051517629803185358072063028511056276897075907609040918971053533982400090059687182040648621171315342122882356560511031419732149439539815753231304293852881073393494334907661556424968906407731011861412312440564289291570191573370798105721067996497426222190172498328017410007252662882063354499660651777017678858941698750099289370057234511095908144670772273019527608425127012044140072125330663066829332347335085843850340136304205510711027581090698574818300437260702431758488531284687580126609794041686313270804380459377831655143356883560946895830624395666163386248832081565320266273257603225356495984911365934304275201325575175013617920034283050602165946613413941331176802569117237564706192943246338311558150116933895897242849508072612319880951385671499558171842445322977362180569542561018568300088130612383295803140578566753071786163092283054463460814224558126340196974501230810112801347684967599238942501052319246923345447246994019019544650169511949520962185320311958203040334591709482577804679617283701738725718743396735710255595052400364887799375614044987216948357103954311550871009637283134918169817532442944935020294972356130391753638166661219756845872416827582090947432521241377228370116517949394994710272134390126564924084709159036070141498679795051720009917808337225355777390385255733835013950840695532571882566771857574223037557818035400980428987649202763674989093719882203135821742558677540540380595644491364244149606053541979980575674252769372690654652391729990647136668015288197769469575333068452487170253586909021859398456329423985388127761602262399138147425348198224829600585446690725588802258703800922248182470903976446381105997364341896300165398130629254978446738842844166925655415906427121926889621362621230565295205496154998348084499975747740860289399402062140540371143497175560516072053200916738889279432092914964862976913382371153693233514899400952342444392536067392473315306559452488684650060626542346255977135187831127617667648987416316483088558564871698788627062905701676368714905379511532707824738652009981987482896335750843463161136277899726107381759826539750110725653304838635844294735061614933939738208185427337105765112520357806518772324815483515626547310622569891703181543501976986886928474563003245313313169636462253851177364838712242547426126637406534256335523636527456363677570736316544372224833018027889690052001589799389230094014952049663953350937953591520729548747366699654810242167924852572773539873227465810845204733706311294014104859286029236083126410799203893757139878330385665946955659789363841712158113174000446848014931863517659357552623806451844464854065356061290328173477787274679969852130955960590833491966999309391014953333477951122523142103499408775623817354514233356252099295195688633858621044737645151093053871709443817709659375983881288361580037753917984533909591690485673964892711255694062384249750771354360608619703843015475125743099234158298410008961898186769859385297143171185187270937492764798801001804572536931319154724140503587156237038800039542410589687277824770222825917893097231806652846506986980219665022403359282493564533790443298252578224726929934927652824112404089459574263626723617881876862220463600587312943174134545668527434255576768420735215107845694124183072856043456645047650468702996881530193269409618449101065037838097666066203438276164189671483850818649912719640363445321470993589882303080016914917689786580279127337852013485274515110123523664663634413638751777862753471305233924792321548746736645772760357867521988226412660418215646172150394719435207527820848866135040199666325708668788614367405607291241142565813524491225937173210585570405544602308564590139251200127014338454143204907855725591764175287559464435696144444024599936860196997350022782353022201213118436408488162409723841019365776733221847671829298271963177363305099596846303695252286221159202579079631383157519494702881051331610446021181829975062637566762525105991528481918546334276362192631642727045175648977012002133008977129624157208127315466718179943775984436028939516129950611288450602434289812524442081734647419480729981340616486728990073372751569681071212739436139369224954347996830340427834641885032135281116090295141545206293658378608707782687315475259738886623758212254439383464744711898383812157359452778782223043991499773159551013890771442721850210996332554374852108002873517060671503381877248897319911060790791525358604706444319368433321845304738388696470370693659673302350853363255917405541343271223342161243903509760576139635243520045651094197288624084847672807086425540550067685043260145478200651171636809548122460408514176235464901129896764574279014065858362852582038554319392164325445067959683720442957200999619483270836561238848262902678829912353197401913912638077981183945364772959823578064902856655673924471245922631519364936611727196520386740367174753726892280934450212595208531705519646267611230071417025017950364336046737316165144405416919983445299208903551606177225818089850757841053822006390484189860000538681995705695467963244782695380750732137328858636112833575298680923443496964085738589917874790809693722251945354617843983562372118808718556366120757003571783930583059256929179005387493772066951516694583963877989279807456383986856888214417073971603331245244656620692112888392350843339921958014554147769517354495931271928289198783608062990496118154671969060320620589899135309827528919929958907124302458973141129081367359873100513494475524405348865125475285183772176622582870124465759999424648213779492273007371635573837818053725265912481875153663400517456900588635871039834706694068819843157609003396235920542498405159364057681824146851826696477517138564305277474588869728839309910888810880062220316791674549577173895040669619625982051782579861380840438158376661339710741894539964112278604345322026580947925478302831520527598832546616976741970897250416931912663000431321141785323255914269895391120348709718446610818336948945059356121277426679299927524398512149459681157770984467154698894213125188662315148057691331050395093210331279568649394463738096281299235572581384317253650787083423273409820927341591168630839099057465299909309245987119248498490427859977077436174196215664177545947757962419896753454987459500039016360814930511661249259613949210762435905377102736847212491171233093464265716595988866873382856016942547035006571644445704483615278347579777924275556971955003980578418200111149442264939756019352933147279990043484810785638345978971121898750698974537452379929225788640804238176317280538232294962443566723359218189055902312426794811296344921035886648088589352318590233637581750110903750253088618748185052323074608912182807003331624837561714620323923152988288556212356820653728039055066059352885276430891972467861962496528944146747777537714048218752588077977707534825458861214878806867126452109891742273114515875008794503091735276010443869989201585148473630859832519064107110054607293274717866784105209322562998664603919609944203135195779664611396119237801614606618683036640102606807190170279368756464277246232325679193343724512127271786766123214570115708853631718275365054152796007419410467878680696138938651104108641972183890658413173448937716588088740574508459560014531334440017402948769221575248919299861866028107699853832712263247694808811040697092402330686048304593709353966508912540681396810501223680644328921548241463892331688948088529641221678821779751464307394690669337805402144474307873656140586756250667886977725119590074209378669649920270672825354210877924316189848842072652964390947654293085818406870871003175560451707245436679881440206963828025450507450541010041053493143146745724718695089341687937370165591616514343575073505932914307224965194973275041204941513551267220636996225998758333855039503121191403289900805604440930351132795420022873275199248152688107660662026469668781016306929767797513533624489383171602690847517364543051575849834932880985006460564624270748875270453961082715624066939333533579188039178933722355704729015004813783064938860737801049993775936169033440556607487529344161331218992705623208638272794979569072283005926964615452323583050716329842163972694573666623042126885351566209324092741406289911929754020168892888003558045707573658456338203322360659920540177545755781697484287308177756349614857638659898153065393476948507554557001790082371782771054386926508788768880452086180126865918668799512269309004771570434941668725309935968012217245414473824223806262581796168157219701939788758174277012809199534497517693105613700793139404749417327611374521210345487272365236986955751803368152947370905494468625594521233937776647149796422898238465190558095481478014373546376214938002712599604378760241780359676189658481065892206310652289986413021145400624605463111319636605333830177013217985642166169418352268238108602597126853007034953478508889953298301448143874700402417964659713369731458798120650130834781101952650814765436934921527480963981910763955432776056488867949847799122109043710199541407194506386680198987039702677253624157699896071136751585654713610896901670985817286852751017669391286211996380296146309075033764031743274445565138015727584947872934026101964744893422329205619587532127008756822671152466735961374565172913588088084297850892523056386978906563584786567975064673763592033523142519399266435366873113844634973195217112155481929572950983996368267193251801623906501543606318267874135970802841456690724641236628377576423783187819023765113950217565785360150183392632488099269192843436384347990425321651985161551387656965062397652921389843723478719450972715646251694701633791933032461457930236501068311826065217845703363643691467393363857713135353174601481995571830663121548767557224474626102780050160571431674042332498362664166392359548610950854964039329651653610024845747778913724575198042131185428278018857327965233510998519033299719602605614555259579992341129888786166090671293467847271031999605858643936557215986686540670055372103320887828707121712922373805792961912056742345878563719255271008347331312036755127686642320938350732931105677241696304512367967603231897304138737695975137591717981004266882023212596485701321482555091234979693343349573664415612625094063901017764030577194067256991189220968081442873730358489730372832829069000673943418926558898086611850886111099392645273741732460110472731347989808897293869544563795586299737406019317152650761842677066696731193140261753510206022030639509825324951662515036029582355229701798920000653051813305274852486355076364354111875010320414244236540482650080830952795416518718319859475914023740600325151721987911070250919751428758207975231796728597708056089710657951174089183277915503411058152502111891990637661018088780046748754904504044124092156863917288256424089088774560647424739362669756111109073091315703918541763575246165292631112558216055099353085776199509778775096795700503031537197033450458911404361836372169822003150588128103008942677426540990905884679309132596161765699084735224670418042980674556447285406404411759550623022966816687874700283960199060825792696737732896341745584834065975792173622962625344104423788341726707051127251482661787481058341647691389327360953267170566205906680601640902556800483798373014621125124899599475078433731446221155401450132506850189070637762939581821300146383980393942763820365602668560707152333625188858290534038718020555510490205173745482965378972947147183291879646764212876895484862802218097768561039841645176686881962333231505242900630556983198994738217254275779895952140934218537908489509829604742000691729944610910531324268858738909198121361837047729358985222916046219221593794658032051278438770449245801853782220217119463631827810486550398608410764324407806011367127575844710684624725699873329242093093445441750690090417048111778007392301933325926672563157908233379934665135232007680247902593137114172236764723676745373154378789646411929489513289897048688579177302422593063855638626955700275508257582453734628334042022081131983266540725213758469050722178534411205983724876948612057362220667910383576735367036780767950430278680416471075861710426133779371814891963556217337530846915840522725296455614378249521748110281835594914516277484032221298436347021434136091487643456597397733438299637335270831168525421628284835163561109560650758466215960783639808930700883121369055910770936261769029233504269223447838137513827240591653703049915103529329029346427784514287044939983557191280132920449899138628004904765640392393032515898330987609495497242730077572747700369136275536188936954806767892288509937691668454298294627407335802107526157876672518761532224610956594446504337972214436426838601065198054011106924441835721047942841769117401398948634102190952941003889934221542050491320655205421293636777678864770787349048348673161668506322318816736998213376653849148717122404873773039426128354146023266075249695451014401947580150207065578160740180925286348132930861286074494704221767023458318361037256372566527647045706048618596677508244505231744355920878949918558695595382776228525858754334786876814509237469778980645600534079220154068448888304880279095916178484773304355840687580017396043654643083054040833707001560561338508499022483907514391286517461870005256801976259100911873353888456541246975965587478680791919532655031918121628935204463976946853399465601576599463957304080809326496255818462092921208116474707096699474171852693154976521277356992269437241975533576700780523379100388676172502785450135939404423457794902225194260760354077060878643405200628442369415279729315279876225711137431758297179794481466345454866072134405403950058990918835416307267150644307320942584718624118670556667539399021413054136740637891981099803646605349649887714092897331669425481571942455095917294089532175209354372103766975828926776185716194855753685132667763174507122432757818514496634013409704878570025599630588050691355622819094411016851939285834307877073721409787429144377663332890770151835815018483512629483151131461247008183734388682203475673475710108706663028985706396632638010393177867141122955269791956806158319502542182214620343305489936064065245598801928799081823418516083725534813017706253472106806709773994423627648814756397395590473334904460726754759572926043422723598962062947189672579184234094142134188839908658068269190033119690193280702610607911173409809631092554999117389023836126550698042607514791141212759780372445741859414502004640184061109508864062681730348314084994643281507211181989242962436636891671262639114659605695377296209776709643456931202162392525463630945748589577170471436371298906658070321663664218420736016993669902206066108579198808875461200918772932660139861425586523276755663825717536601614897500634243954210019635847616268804025424080307968171149273356673927632339241452477301484228005328875088404885494327580664044914415583620966774168911368169448705164867508281310714475782068022090165586963876227391491745011934474267658186575969793177481721308655068091319946436913997970426302907034493361308563244531923154750973416360273259369278698137363296588129931026584608150220987483783599645195699137927707760505084253241608795157393437032271649520255049348535138519805982422969540425884880423554922478564936855842929092986559224222582915317305027791088302962709001132284833747268569949667575408623978475146339342991686664153237088688948144154068243941850188534965288015524959746768116827178177809537844532694246223058637899477243535282617516195997138608285071122181991445242325531392360973286288145116506735536723725730894269572534998688054148208480690365304276655117861568515818984940068824753181626677147688965208173549800050900518507946538180302973052980333597242212997051771500729187249100242857475063109692633148560917383403999355023997260033439336917814904491863443941345386166082846626764708384751448354559018082275111591799295876865360004880536145612659442917087327018607497154000975002610233640007719601963069721005072456345347629998827011191893120565766824289642376487958834545073814752423589354348044134292038656682705288974748179093189018378930130867936963020181752592977873443246931192309680104771160718694002819102266851983482004054910743762384870084290215773998836773978744708929796185345370801280840071662354088050338696231411701913719012826276833134701783166022834358904783877398921570248181767533506959114828429540655304150970048621082702294903895252238989676819182953910345067091747082412341440422127090144340375180371993629427278359839142106503016933862496589363996845218981631540877579433123936482672900325495233893425934530918604251196361066085031214120410122754730074588661871443566233403812248459331186660487612563135384473944206226647600339206760953543705300407858385211630486681272775177964601621553681475340869220948320532309054693567626373402112657022292492392016284434219876256563243982634508825563767608081201693115740169001424183106974273780956314118733734423622615080227168180861132205087992179107237540436753259435485708139216043492632575384697330929929277174903746624351572356912436747092904044254484316174700031976002871734381686093632112360554377672698670851206903273196523720033035286512259642241792554429597825985376070757097862559827051242541024922037152231445817507211715917395179851294328668938828079281482078622675015276395385855267687019343475760106199889966530887138745905636064661408442943329301531283497386840314722862121316111649033171733977530780480099141830025046459300416218715645848444282647007328897865866506346677411943774319838522777067644535120861904563556336632907789511307853865333599904497811359079853833457425324992801510184138363074886423677038446444080517483681783948529961594973252707061681912491170709399860799689661338934533616383981021826660521446147080418323614103174815418567151450308815797654531189832559735864116664366761692694756135788137888203111999159145317625783451935201436995553203510890816805290478097733301291626045847428814918475852468784084100054654281276291907554270760224435803313626396908814996315931327538861506648116299387382515301017828666455761886401802270042832292799274986459656808697857345788864865451195688179074020504931555472362922691110421927877378903409904966501038638148490950325699504743351713285349130849644016577794531552622896113803299080310317711392401333909751732707507697575714361688506154462443126365584688907103495399992362085509410347860562529528427162915183805580179171623309409275597208927487592898390640962953763964430963546969670189674228565817462943317067219142722576250408224136849346770827548915904405576839715059008267955238968192112486422462701680292613309307858078154471170189900780135197171590847393074127132734123114416423622758869420312520634558285348849293456033869051321401103873726209395859889898976306270310021017422478678644896874635246660304866535890854082306727613242698747258952531134496704451103539550973462625537015184720181906358924697391887034417633849060720825481201259000520144156909442917401973669893318068029335501373962276754659512513842165141662040927061986368106407103011550122181808363915266474838615622430980584777428631569306420630074149082281244449590594807267191295642370819264511458220622096758194602074792912871840024081291777507929056104130063779844759396766384516049354177253947661641009521510896567467531929028671629291622871812465686920841967687139733895602350923108833388644231754063170351293384033659736925178875329907515876366227654771076175389963551793580048571668121791210479276433126009122751263993812756621366634982187564961514718366418408608853344322226322058429369037019566916172244224008413827983210274256643764279926334155132839877239710539485838600830231717215718664401318875498875270183094022308461577765235553507088349992138679438245135810731116499401849189439467092684904420810606721141758812685231278797410713522687437597668477026653027499500019535412981277319171398263710041089378237390218142761822182396885000968009103444820676020702200051865949573571253526250601155721689988917829556116198890329744119708129821483732580285766726746931252739393817875397464141869346968473838988539365002776309770291326818447310621943080209255901667517037202064920918557328719702419319054133880395876568535590426156423101790189003668379399646472475753816527763725635371025825264835874794299615782971468974311224566182605923500139140394556183477832455713920418130997043641884873396022458470562192631388330462206962778190671934428156886428691891447213856149256756107822496420656834617225060911569452755019651280399217843372675487170158783056731811399577828783497472244907526999528389910391643376139800140103833752810179479786765816027408743338656838669265569547454297821138700833930810553736493340763543921166943062019317936280625326636414367292202264359205220651882028679385371638592817436314618446415510301470809895362645827569616149352599587834821276852708684301811157511908037929959765565896553036930374606562348998868306359297540511226071546900728058214647314838193596746344088728579418993755380135460879376966393729875411140858770512785815766418543245733124373681003377819908610948143472137802935473912800676298658400206448050187263583765552935424239616449850629649923576867445559480027957613208150721302382179224117368818217212373153251670409983845808820481754230027993056886792408780768548568566737113058561273092112125162949967063180452216231484279901902713977589157098404262487708424530182097942035800215681206590466888840122615837596246810473975385525534827718368573763907331770862683670627300566455686853824740906248362102351857363580706874780549476833300225548175058543190591717817215043870829175590022519474204564381349263095790731963515694483699564566000498293285698712192343989939768802118215018908684429785848084000678701073193699691042706177055893466620071246478164616288749223295121536155757654919900305793917858812361120938077703101342469708719566516753548296255460187290989472275376214299604421247495419326307392853661416607460839599705950522363989145135642710132250087625652896356163764216511563808713981736808412590520566929380624414002988508667263125564359627924505756012335632038231860158617360946149189547797293248503899607785375027397077724624455782648329612663008434723644272443766305642412077654450485880566914092842037272272560005588638839198800187278323723041935270957497659928506517992551199372857007441653767021229221766312523232267678132447409382138551142295474717985966040154742397230762523325504631268298357356174831451772562416161211923286718944779975032517164183961341659048379047878921312301730696745203239993284645986573377140481145643920504731897935271633465469909107553839253690898717847814756836326857929778279568714650610536579835578670964090118443882977465202518526571508865600983877439253876588508720378145065329140167955977706812941130317226312145040434925554936297012427587108218940037575087839911327815238875604633950686163149740162857754904475086263453741833470134819525572429393763729072435205724643098278560908182696027733908889767767815621179927418717405465394044905443655025160761113616126341794594910210915751243909327600236002146328852270100330732297990101556846017676601106887020578926124516149599952529481250930305504449477044656506222088355868409886275662406537852257711334540730952667529079949023872434761879211477769109367757764550306373019979586145911673033713401237784257230193650375055797913796215457553214399360751046083925105115747381387245499346725267054921240332934127408745307505413747141083359893297773015341510457748318769205009324987626851294377083684831297624694320196174952440309490673683696850430762130187634139542025865146355600516739822114657819516575747924628725148977213903914804285148834488104755157419085586459447648010473246321321035344325849109042094894985116232568821450337454543385459341776688443615107485701909288530040614441235903236893283797334341990382462662025216310527837223346823854001003423063230181990312243287651258188985658430281988666852884066498246963651403212761868364936312223495322771275332601205935502358691794392281387197660867837336035466973651316767515219292967152485861752406670352098323154637893840595540818273427893503619032268605233449098706509642706573394077405755264580603993126138891957811923138280713102565917217915029767088342313622800837652523967098311374146149128321877066893653164903797951157252824763686536140530868898122263532296699973436602447908304690125908860122407625569633469168583044641904147411357510134614127231258318115744822566373192198349082806983290724722258698178241707494527005166512365056323505218814646807904374479346551862571687800922991694361247708861316400604778661556315119530165890172521665321506289838357456875784030730758001112860731562081761790275112131800770692415900477966993585139108617598184400792533553747252834004375385419840112775029847379331962559919150283979733253577680909469168821706503497747503813062741295942205943720600579018485400196109527446924188470957438037351591254904055071583048444280648386674338139439468843735374074421336160888285321555277502943529006766236722527601992800739890426616775266667124958192714402815141388795748838742553439504440160966694690860316484060628602596351422199750805144559150946303500950255624881431036048324237176427616343788611075245315545928324262227373967368031847818085596363798949452901226732616650977280746845041182571424608859124100865754069182320370615920375002474692141864944876150342358882806745732623462077673932035974468298225669540852819743212542558012346432565652730371659055982059846816148776850758030098321780667360489115000606311082970198767095446511454429449662117079282989344537728511799260530795057518780783193435800373632683030814793917806805558552133923421981099956886492963490932205834374625091650801094077104381978003736104451850250471973421698221755592479978180546674989441463134259249388898788248546452870080162985672243341396533779562953907211044919089514905754372225860054078912348131224746276822421579061529393616192159988522862243345990755434284355346985721194885278325857398956941156318419618162316917388634713870488859084752579009538103385551653394245958322794641094435099952388650722812937677112966792222213238806903354938127861259606323965357371400061710174559574399149817517204112712030997587855129320996298841163902158732794304203883341333009075506941106439169073591286534046467232409378380837469252870503376419125376986630839487340596209617131440444339692671860089706796691755861328851442164138905096362453046582525157529832195500175491655018473496560324555831678754726362525764390772252253877901269330933172098451094204351764836913263827650581718699415389282611870616270402978692579318445642572480059846088601846404333424532964940286837169103719772401467714806829000130196725561221940300193520598907660978285208559701536028660366984969832756104268891418971848897424923621660810472185078106170724944312100423512008821726055162307211536363846022112094948992106285025577672795511945852651917558663219763914825599278431565660895395479127366151217692930030463686593944458849141285987584763528116748908067083667618092190992876650936855494186496542050485995543084798806704439382111338653263831791024963285517688943795753560043940725240540030157556244651336965227854613504726640917741797671428815394538090159598402702865631269227910801768107966508003018818402589012344810883791195183476777460258268285284982895074620481069255808205269850749159606899894801166642838919950595811633897744017584197859700048137914264979835045412176212262991739035976957070780702795816786228025122586890166152360221357638108159444981632926600907618763239701657927547284306100482682362463080359825597683702398125635879744151240891210969723329037357678709942368876164034326107296139141018005421204555527573765074595795941393567844844525384871426227314480699011134887090773726400309954980868946462115061257056397598662844545251793068226475510206348974455607225739818555666755516114089785035594487623597446891926900472308205044270111450344837195622962652398258399853945841513304101520683827294322952212493081442393154507369261367242084614221605847309205025135813868743399157453683996977005687167019928494644598208296723789672208525803358735733284477159875752376701738357554183306021466777491890512838132136803774109406558503361446578551061868917646264010331566765210046835842828533326105319711918469127285141408104090479314571748296149509596471353263568221452495815762431207691149931693244291072611027770910180669472369324296693352821034630422120566033631420090501880678104086663776875117698844392133036124562479863483399336994103208652932067735898316022734267533321108351259484860751218883548863966962786523892531018116829353885391990088218568859972981613486869088047594866423450739882313779145913607997719323112219903513224782717040990690115552596265146528509916511999311808030765008496778174514505461351302851400326800417746286956261842968576495670225904250307077198547352704301240644623274923359534640576229766440535806704165678794158306045183410865226840424636687480307892048966027785482582943839785620111674172394316246869371912960073167044204748774805886630253567349291110102156481528473283372482723581987361866812504493529879215906062343596006565772154610209864760240681470692036062867309238433229011494927615364870153694922458243640145529222587180526939420268096041911525380738177482065416759385100601234578785169529154186081980220372384154491477471524170767422717120657525435596700907699723345159245317251719909730643653418419085583115993064897119142016018717854633585954877513519683356092199441878941030265327187601024370483667425262243554656593759566204044216025102437897033225597646726785884001147854218685641363800615004613640499546556289043623080759046257642308057725198221336626397624915663038369751293070871113434464955345976791745152605121891957870117138551396387529817846750643211334696000428997220808987293649388188781304120807305449617713763411335605279157159308771887035927487004142282014512816533448295669802149462613384544241368797278385541778460837970367660510933505364012810637807276973925646121606923783250628393612607234754980668934999381421625977692808675940159809455374954186865851115305334337992237335272251227542287603548937456581263095163786902333690900366193212579240117949347776063070887286192864945744771259778352797939836593641849995745620796622626672328250521830018923440843968682954978886953268352603587143507406263477775507523338468063880920763640551557881785523361068285256299060127392876596518707071042328300607205470694040267104112049147305275337156559586710241380346000249838341404053932900696681827510892417178031512265347838466470680966466874735620988197747306883855854750736992694004232848260064779887746987497712647386417010458981406454053399616138518169558383656185653823635202719428740986352099547875493525614080461474659461063079762273580391135338526614079278870474066346369266283571112111088133054066723143126036199454776097964695741967614076042389225519606962579304261909952142173214956096215059848893745384191730512755489166214618896481309144198417505231832134231232214041033462607272061838744198336764846478324422677852861861202342560680956931386131998543208130264756010758205504599547639232359647947609657097880685382410116928337671891567462533040622242645594768688051026772228855364227002293112180109318775261908981863297060575638632625435437968488342233727776856700766263662562663874592309310737757138016348166036134473868397472166576047771254529304296458919101186936071137205318932023978681330760238206626882864359394002710260447748229600865735146150584904990919657367393820594850364144488222263989175555198731223999481333573804722854494594413693967702752237496021231629212569620115592221700011721194728152498287750340538901388668035502965566887444037129852226520698168112891112201393080702955601813872825588434004888440323084400199604440406449539916014407495925263372714449317787751657277894795340030612512285494083956472371320812469114621630263890724255745080916052744273265756660428325255832025235535559661026765536206018865667010497439277322510024314225142278238519391681369248414621933197340494575169145624432479757602325667126228698418268055119702845994745961521097072809266798298737110099238028466392398404521487261399398581422688682666643096646111927385740697491447365698034949220961472407680243728944784874078538953604144240676349999612148891012358016749428610852834688535478753869598186001279794925388739492986259161210880717155406917200207875071632562555930704583211462421592448820729224110312407715254725725709392670010969270130858606037347738950677507137948953484522262947448825797913212256476611368061005203190166296285334917288237893663406661770973400867725896596122641343212526729984969543897704294513267162777346409558540387225407054313596292800196128184946726633274691910582264772199925639024614910631071149560404825390930094297321962138656800054976373145195037756346020856228683878782016441128586246728797691196906656627392674186762367562063967983691996692498796534202533628108758461479713749620854839754046580231773526320003780275650927429870372711237511846398776543815909180134228489265066202794208669447779893166475607072714672908262516092839559470127640330051637672056994519717778092716652360397723968601852525301741190522152161377693394713278770790683557004959878409198783239802674831875637920521532543079957192362284322401706704980632664043515798998150596405603478795209761101392054587799819389339124514896866237435729290993923376817388946052288086617395842360262446820463527520239918943513821919532770097919428410955724821510867966928546888328159036011572378644505950154022405301184864990982712732048919194834533307254252774011180315224231521180462494683987734886923980894875727895508731519359707602654392493865737675027469722199278378617983279522309740262515374004571995478884660447368535756109314981398661082429231063063717300340446959426339345749957644596954994375709079471239374153958609637378854485011362122527417901345099129237149668771482286920643815580369387184831321436433663489844725820395794810422095104013553651062327274433006394177660375827302985850625000624656715797549736602869590067956069132202865888914602704313046498835348220436777509139794500825682276553181283625158649963864632149835952127568786033684132412087215385057875109750843543683280103728189434370336309328989700278755809717347035391003964009855157708444957208839112960433235833155663329965995672408643828958860936718536493584975210993847539847474878175726511641357050779029609722856335405088055260739145269186768728318225784785447408409617748427768529770878556365703788982391553798576290297197230099898797972009521200620913088438334826113973746518044105519511405936790643032545217214360702404220114293970047592346010989969690393827362864531448714905767462337975819730298059336122601955058910049691631851374975993042164074900564187293580769140154420216377952112683622028723926720407372921191691183764164278720580510368586644146162731060538895148113542485958301641936086968706441369694326244742494730643216783778746680597486422679947639349157341105076949627594795600807521201016907086948682976991076304580494479353993491450203906354432264372421350762544714140352312399915520930254184828537831938182189441863147755445698857098418696930897251260579106647216547854856751814507531901648118245845447177966876807487991756156904792773154815532669411046145531502890107246780894872625380863045644696598880950002723501207642586433351006537743247563138586690772465708764826096060798729425102365062777869922304804915765278842666246861327792136581318830561466024241862224204965063535747289270852223372221543440731933697369436805620611281956951128311433367105167613631918033677085672366329996575229191420013519694365438492004348215704775807143230748442097922807840258061407319377574212953035757054408205618473701769271727184155003046950229006543288279335852253735772149541979616093423116984249908607430457160705295804301214750252457117951649275925688214763081366637572327081936951863452050622630749304938195295360270668895916525965649594061560875949000307850118429189531807866171335839041378828965489948145073386627610733690139172472531472176415068749876027409120560008340199218508482541167402944423342412398988625106020451124974593025681933817436497760158551543913546649245343561194929600359258693372765152661741680652773943926220037636384043804647079255780193701406732810561481058065052862803061992108740588228478709096869836793918341979565105717807623151953993604407936822376533437967481332676056338704608716472857710001559605001920836789822768745708989321266690351483709830169330111997527102920755705402090558512386311311488599987494387964603368574766539900341663251177350909426353327008073900757766399247049106272873358992859662372390443808815507122369425088633127415168467764902948039859285076766322244710979925873661163648886803544431560390943037785429830897824150553463215569114045579049003731030713385941253416855052614536134031062988389504659779168791009181207488427246104059375670090709907550945668745218767938336735706291976431031580131024405353436430427338239512160637231567814741867828501189163654312839862149397124894243733073420566447340874807374328954344218300175022864405141635846491849227671523713861913590892863846813628722371311599942916468438442465346838326451081753985736196072175902420544578476718222214583225600820289083289360743450494063442037299349894700580795101468206288651937416688828851703915936312424771746376984635996049938641505059446107494170651048341616255629568098894989577079933509547858805806827058547245203932071884020692083193890733130270191978665091223424262091978312311711637116442027855638107520960309062877367631435103988005394938596066400338272793772462874192590331810841068792524069015737905758772443943545723473043197203491415115093109510421581618299387350127176392900315687802565273556746960297586580827434286074874800707514811716701738435009675583201232171257231828172655363034883221139595702383276093602969320468278372016837706875821124753684382571133157046775025187029825910081755454106586299646672502761283659339143968041102578323324519231756254529285283767773659846095794245193335305620873924777458922157777669505827287593121484854304456520359334246202894774991608639597955808670787968783031263712198872600167377166134086966120150497098708482099514206473759231395075227320907797849076025316877453270611085939182935528865844747942110030275439371488825240140621393730125875360757616664272237294176556168860489003060736453985704506413267921581633651006496240319220914303953139422491326270931173340774798777520268741676113681972770631074886593368319537396009145071381055897440704437025959360609593905406197894184510160946780340089541388117884780770899735399707979969122967545819311062699003941594542188907823669036856498081827248815325466821433418585761999228640429070176644760726807915133725301334382172863618102921675761906254376176764124936370024944554265375764779836539437271035745316555958930772800390541058948207070208559718388240469280560535203993132815126042926902846012743104644651975995877589289088155576403529980863747195128719642285721110614282045167263248394328686227425302240621750678736240177658719951344988499152209555233010328746814599773959438659983101007484761936225603836423930816035424739309299790907303779382519938217776577249663716227337314585221258387061239158873137185983420078935166320784042110770543240733320531424040947303440191827805647386324540145110340918947146374325888806257305429647064101755118308687367354546474497909987339281817742759081768437185971239704384576292436343831366534536303962972573036614554794524357896261596031228659605707578267313008894195356482595480457654377301174936691386581283460701895857801046328432587041559948381340219178472223945656081467403354265900032208223435496406007813378707965379678783013193002201457307917504316049018815803170626566512542978631342549786347338446530150951029369706778068996399224650531016007661173992878760366121812822111046881497707407682294631868786350866087598633516783579178794112250839841963279468461669564860121998412616951139029220594541279491136795798716330440354746335461596572927075505890977937160841214177864035650540231950455875762978742781961495482299252045976136196187002978143604869757477034381029075211253843879446421241804769635310610558996535968962511674075523581100030379972344079460847710728569511468302224803533978366867894850280032260602113844425215989447582957723837824376148240327545251054520074707339358500772913773845884727317381329050298594958360697198348874433035811710262575451759771641641266084866801977184979028727969718929959416456074033792758957547579322983709208881138421528953499302157356078110309826571093520519056427760553814515470058846792426094539983812620019776243778533476869025688864026513646002620360770588105902767065837892708014320558112784670273049554410740838637717368509263151652092177251484434146419121137765966856515649731521583359257603036240122847224233440354582548172899535961088734507547618896142204387932274316781539942434893954050373694060862433306623054337741490703222167722181614360073550893866826380261159350650467523528500273913793005555064917061439224353347669636575318791943196532398135582393897997289606004131055802276965893594058444800577037135409819788721890649018991558980986548769733037973166015140753514478355304518041527347409768370621338752149137186752090205396504759999566282037080197935942219923473247770678077315626093600295501491478871437481409595735033190329429782546647236630627347271804936546773180811944897011459522265938141444188916437992140553224690322004911215794428368543940818939209427274977246696626457604085422675507910665053599210793960712996912181972773748278541967268046118855472651722705192059936071902525127146888978935153355413757339288909837171846666860416142599897952175659519852990069983220145793015407067628104393081754415196846398183582353342920003032757840734936192551894951952516927096820513392526604334574490385184523533426936884148679295869144001281990508441402085868869158084567898292366417350203124011892075553901395500450692767868658499502261044010667922104767214008875127809930004474360099380691067757200952256826625477112665117456811806690934672949078543492326170665098913730629822583384538222363808361371911358526782701413904484364467274204618007362217061930916285498278408353308708932043802614392566382167355565528768638096552220843206497835745543410769632923283069976608618456527878227099996825615690355046718277821409992310750077620606992504765649826480417532510298228386499155486577716653958278031619253335654747827534514143065234808544999512550904342128163233049150574326652306341826355413781886880839846959032777164138651969418296469118113850962296699201409003982092172955762145997825825071587777304814593482500575563735969327564145828916937586761609416890036396232924776250180107073036606204405851698688789892602923118088444687724048105074432740185370929543558176255266238863480845249918002073514797073539257554130900183922806424526900098571361177763180134655762332567104565163863993938326777247031256499333752003292521228179508233046193833188878562197798184373227512054469149173417631065423848331792009234460249412834145300051094864957123557276341637890564895860621871391206467635493922597596045232424376555015864725478965046922175411011367871408969632809360478212906067621727376958455788482341013295919430997467293864345292494386880273930992397148349175044045854461785539804687930278832220032138478306792396193649824517186392963360849169397405018443747933075537409405385976378498114054671167794011203960542792426236255325100781971578522723781295560694638682470182667680603456388200015906690732559361615968394511759978416435769870900819937297203226354357763706887121411817934944501751553407176944780919363853074761385947566354283712044040758179030875304201064272056802782938448626753840551247689030175710682261544776219320521431945993705284626815782687948439845640053571297795231324213028789626944796349456298356707359719985539694773479671775716276550450120802066492518611920659991127446409967281833935867326849005563432736571866538332670059870359774718918981424765213661017617243207866525198513363491080906570218124661063930164356523939091442459606758625796852779825610360281487920115107796197158560558268481854571986139805743836817846220165712695209222496887255519405897895542667281054113725539963343944938265566562873886856490616171129820896482704396889982886772965042818253350985000053521961357860447428300601707658893797503920105599317423458060475105800481454495512566900169293970847043712920057017277057432678423646932587616566221104743321595948053564043840968585443477844033624347195196455123651503040070949884942841327011163890451691337984997236897552987067230975702753826042829048529477779127848542722128555517331150095649239169497700117026454437678487466125600853880335650981530259845264556514072155889003164863206363732358738221282802037885427305486747611747511443640221201144805050583434143185883462807622551249171407850761877509782071901020596061808414269658812781088451148661647661976255522230769662348850629404612978530445316807899489831552127846191733959254888302329528691611290638613569356799113598825795672287778566659387865725392787756577318257140788176509837084145464098726711152184481359628209154528989467326461180764117579690388802859764367912541675813339774611928254058340667939640680603670444055555959162366028004019563853723190931671913485150539711757689628237208702046056223809241205531425126175339994736369463167477430778721057038479006863785624733338958336602276434087418227722237619635061881445119644090909955157384278572449723625120625607996184740675003978964019158439566221703812739360640750125266262121571965379936027963919900260860163141047644257630499401932253255675629812030387929620871417533348934581882223852072438949334587786844059531294652111761266055648436876423140590321572272159580569147120469697733392211625778845962578573204025000467700420142978171500752144467070444899110016990622524401638276549254859567153432861022630100420178389682245199742521254597013367794125682773577000590214505686396743583380406037041241844430165394936312531994795844038445290403263008026678326037959989240128697554836066896052039663455807508011239893239340739652631355019435444747124993475288766185392683696757685073994444088255078397530434961480805222981077150533265829354823440119435722768362963256978939494985934055890075727539794384358118258564834195860032723552886063601141683340980213951746888134035290844167524287283242538216206307426777941773110578399771877528666802473795588955069154533157944323215599865454374823958422031778500737487803860354608796822905663746277905934346336696188735714494195135676519659404986865716818077383331963425108818751075140986210690851302744728900126686769488327562617888047996652492913336337283152927376110637926772502562192660623873727060514240812081248500264894560333150025050178463040635774696311761418591300761251083770824158030946248136511789056688763076690088470767678912992393953512177331026065082943801953733487601368795819632504430784646766424917092954793875803718030972063616358656970752044429971198578713402223119081141338675958751993293375462849320767929701895762395251024152240122736885282988913707500645959774526876520732747872860972924581332591389268960619950147095739886065715235134216128779216954321820723005173639579186009639401825374128708880658472481317666997196082648693477319007435657657034437529792856053300371999895076359652370966495533000180868378205018419514955538112402332887242550082604889266564602845767591242315438457101084011904941369079446387357563081736088420594158708536629633287672507959077562532156197272255590928430723833092544449406596433555555975862848323201383046095560605746320216097312192241895941234754347022061442766896932068298829918858587723257110435354621265972596339972062938124187281220772215971653133175940893199332127558558146981287244901937058394987143602070032279683143229823882216200862491011243188927547908019341069235619579088398965101024775752960166318386142538214988797245147451279927418901875492080012974639488659842986215561379540467458748224159806296642575507002150116360565622462204612805275220977549960817014081996160282866315021481731357933791874768040618509512636566294874628742527548765923235947456410624850062873392741523360377782476139860289225804063657267465532778497924553514068625461573829921732501204910877318269334004433842432765181320118815580817049094378372455444580069539296407590151952069310905301027528638980988073082777724206113157291188517097595574228441559668920946571496756033821077711770993248107780159609396443805774348302147484500594465731365669894298238824312615006583059394841090268263660003028847084727156451478236925781324803991675950923319808669029278511400420028020984655957087795999211120328174597431198230544148737494164233515034514134878714165871145810070002166109497854483775366487032176636989885192473194931781400873985125838042578170868029774203118131772337241746218468922082134918948087238318379596132446142975609870758714507225238839014836856521197998443835883606276293666177939336391450035313335277571432049468845139650490448687666369309969294414302375578523318643238951315774083331152365592960755207182177638539755869117932370794402368522492341054024950025783506840428442835612902574614099608667528800127020768007397108820369918054701053782175305930386866204022245829921323233855721042786278143080757798169339771188483085056217372379318863196629461215728457042878082151921825796774601669625665004472317503439968529988442081288553515325117757416134369366079249115474408191994882365763623696190042436971925963349940157485607753398504649463311846794853876277128380246759867379807834790925046499723471382849402378076703549665158783364543130171786774939166239307747400208565310523958291544098385626623220882263453569398617308025737335555135362912879736531014561547724442760687520014452377533527471091539077382666646498060333011590316618758729875399985399960166162835098954633536093513915163501912392727140324521581088850747246358327047746035951244943585593005644170511940367332973726064960481107757225268100922759734339709877345502325169007357923875151700171487007238725044535026905870974211425811685941245257034769085206958948577357439126922937825662768754644273945634166135200028719137976474372924395137460839790106005511304543231927939471367102972298599297979249975835121252648976852988348737726910285040236994547397960809581557625006799449226040594738482448892215597174706561890283935809301419908332535568438244378340091849928893866425003793956333271979887736699140054004997527538884629157635338920427810663659867966487218088556927167656449146503231075858609937260619302770027090099653000024116784357961746770216996067060938547394327782866571645278543588790977133810673159321898613919166678258215049568812742202935054027895455331804801481900509641441904704472267421526062625146985078932219051813571634342373972863548114498811333706633448140698643259764456638023263271231567729929453390008718679944832557226860063070224530713980412478443040008122448987553759820209338332940426091630398675105693930937699917874105759116329592645103608028376468088994616514494537046059481671259506021501319036891797620555308734226725319492768340434422626837117586751559274078651683864586079588238148959746514637462146694124614158988315863207006083387793019833519841557752514614170655742881783706821930676019379525073991757132502831649100015260895255717744159774157157991785250007704885412771497224649516840141668993704628371494780130124585725515090626543897020048036298972035527627527024229123212354197771340461006737996845842776618311988228506983242448270352986586611374994796123885723294746531862873415985905937252867106515608725059561985712901013231313906506221426482399729558830614453551910651276275837408969093866865750449659075714182169756132992906677259965404039805741310879616401688134025417042390141991940773046035144910207650194281051153139063578264867879410153044755376058922190116353496915401698910796431089127861470321126376345169791403068323196555761600006955649489195682110943792056183121597884326122185487660424356918238605290305513932879428551335044792455550396530514727609199396109289214007086945270594356270325175852846474758278001469168244052969938411188064093881149978509164370688511339354402145292437295794516039242079450636749191597917611613784396901342238887374148348719165129778753771083131268304301115048656571713869361976395698801497874127444494545240394740913952522942760652816058612202650264919673893025559693544564475257840578828024493111117499448567831474880574835422583459574101988023117450150985657121801886053801166233543619015666707288736031340722410547899293892889214054299191605688472090937395780304994465621498037137356109822231832729198412946488162396974105692050789065886329415652564002758211115620756129476640140841195863765573776838150419957498222429924114348426153913817446720482476090817237079583571520686249921353095835152409712204551235132435563642069525567983591728938214571896456083749789369098005753965147136078975505979404374490199186288409083953134335208885609203906676740588341076837086394657147365739795288192163778844334576379526693868564892626454786052453979476809179069378173541444673951603468991754527883294134151296735028991775446111018827338279843357971433587363248058528958278666790640972733080292033580405064770581349670306874814020555685110779856006754440094334476406629116008657021851709290203936666176815930800606341987258574015117695676630183644532124120400128577758650222465630155489098555664733036340511988280077553071918878686302275026379719178452252764385905487812646994810870168115350578210992764194828251837700946407587172448855538273940223481027054365086339929776856296863759626216043670757625027613319208557349539713184644528892409991144015056329432008803024379976443136536109281056660656395481197806210865146234361240203797735321471275014692092592993630221169852891426522829995971886449740631112593832952715841956264896287274595395594804451682522216899000126215195087118455204221920241948547626771127214907870610058352264960429545352107199237590368742288403047432624377625531930852512943210793813192025729363399921479605563420936080509132325903986363639854925164260522844986146048936510729753398712721798450633692609037958407303025100504709864588922959119333085521476766349318788352114841757206385578394008174831342008711631884222892390569428003408675563694831147714886885747640815572906626355532298314453052947476628559133426074041604541699872346138513893489761297548046770726076452499754194114901850880452671925865475415212000479887513572502765594977488276343325321621007014157057868643136429314502413577343701379893893661676907553325136981488184792959761934533095949611596669413090238164832137885428842009035447282480894862515045238560353551110817507432852950841996135625924593694767519387659089280387192980599409437213433472084734728124101836466497733279079624282264528779131755415003322644101655268155430032816589232658460648465356171196313097425271088876219769507020195222002916295179274916604141287832344981127005165687419827018337888616293812897530439237595113179700271176075138406021298686445309844984380113324541835251522945096562889225479511723367592456346663923007069658701785462610159877897243306916434665928958043731631208626423671883615842956131061648961402325500130486559585730159561639642636758585133097406633366665505087471870181330463787137466577778067766450355031702798407803981760864936388747713528509047791060191798972577337325348266778136863146330608082852507807979065900574118615665901551332474126596630277081575914863083783426376611251762029182020104877244222894589942234284528477336121927627920277067857353451394990623741162210497990835628680074506971884175695108828337340449153240309373306446756009214301920277944260365511191319589215327505442846642724947777638388917062720397534045133139020044206337337177285556883680271746331197948644778752236390740361381834282728195271912766499195910915457418920920236952000880786883950617569236399971629612717115150378275613449080420989238782774400713925323233075704190526034960935862535088474594612378771964979305635049299122655381820142052452749165883143671606300743917011792730606040155870455516359589288808435062698379886697720494023907020478091500836085154016543802150247310060656811975293699178752139610737805624578914868907181226386491226364594360882977879851219017721954098544835638129925910342194792047955366353897117799178216785786394961184774767346164590595785401870686733491599478074137871470717690792660801687471629277337348742372613350164420690718375574903058212791677082663798150264327350537135108317026189865132006768145276959707469283094968274104716881421904399936137037119626027649779861216179206988158922899074465182153871944461832619029307291893681468635602661012793629568451026741668610389387656563986489671349486085565141985591742873385310194671932495971924682488866664368603466589764860651824549104132416324704486380745048509412223134863314855961402461841153997538851815891776411100480421279978926635934204904586043196512455703889189667498069253189059803762772098347557859844644139255128473994372723757716953638820441368992347736251981162447693425112787132512564671451262935733102289176367710787671294465691862539897679465773648444070700933493832768333452056387829181075006669713485803410385592046946981962182097342633358016997909108803643547738822443470822132772431108621165259646991772961107365818240411682261809131028953002201120067867980441113644391108914701484548054116934208446110388707389808949493818248161879761498078635713856261468494764542731247254754209954901699008467557916872093789852667290695349534019434479121047401611160384925697147078988539421141374294137491960192546927224546715764611879868764045023617085772633924443455009728739434341325350456667071927073876134706621722522050243394771119059304154101303687506665751376173034486845266614185019902931148813804486417157471780261772655607289981722327881518440267328369340753003046155324532706897336868468562980417820416976952666674240835303287404180100973717545901709541711262950719974099409072820184970377556786641739422227001295711749364533436021571581678423832685549743870702506984407785198177664460254635448451800785400692432781207890441753685328282271095673799470097551809138203400481035323366852946162121481226766126766443349517192249631651091424273098808177701614765402035174234867222046935874618334731619459549684380583481738864708613807475705018500855943651788241666128714987294959237825920291288535279984221731080315281425351316068942278565861130120654401141540534275440505916614393543933813143165708609565930290714491378208409279915038322101146245754688191601787938654877544713772144575373467268588685663879773629879988511118479900833154790252424009221756679126608090879555645843613970117596334502098801280578598052592527874512385925619431766729001990628797121508742296424753608452322171793344992967584177845968118880477960619803208965525402146825564197485632851086108101844283248858502260065483327442553661598250414451089342259863257978257645631639011384403466830851521443198745842045833126162531621074972900296589190151760903173049576386419758956963781952416207693421062499393437894854774229565358710698958103283419553226549297486963217691373992697091635151855168223298623249933570357703739063520538240282590131680927469416610010510562840547503215432154629865037016018431563365318789583558589052208369938456472577764853476516298429299540675547362499571785844423075377482721457354306526283676884103870487760989626200391960543636095617293761505871784343870869070824172734522336164288435849305893335840382048605359618941250566770748781707521549328546475295026176198044958447377277219707199571856258113077966419149681985709937862972072113267734236898163678139632366211642723061413111683244891541099631495552699174783108729851621928692901328133507850058103452859714468434826641116999649338767019409760274616244440286907788199019568812954356730940916146944084932505317481853567131094813233178393839631276481232687598731597054702856127121913352751712945719763034164141683246820850655371131530680407553334827925503559356552818728589587338556032344384740635591440204250659579675634964616238131642865362556225255206085081147486642203850381223163823981972734221693444289260273618603499575462813185285998884293129302991109369060458861778812364958791814973076101754474332117105652180345054008979520466216768721167678898633116063705899140668038654021761725348496394682963820952620461739150966436515037355907484878452355708182305796750307755650952594901094259206463281094474504717890422586185651640660189208149153601636745849613293577034509959013142904531035053924678427556423384815949016863909805685928198431439958254453267694596786122771853397991744368203159757882519670752690268081071834038202695667933060963962817212408929374303837118182560183473556303724850168448100579898131539917262165678768439133400527948805214517927075923866560132074618806365746535695580338028202770524384974603254180663584309514566582233459244475237660672819962354042829064597542351918451142190437914499659714847729643372643456527818405424825275438420337008810106971693892171138897642941735325454856864989137862683468425976398817257283209794930730539710607886465127433518537539764892666188684519008594113605902166562514639382071094907716865694429472578155589023814033993177187227939039788041060115833549049659257488232930981462659615323267948667266515725185241093099352584292667479616765029065618656032466083019483437725410405545946179745501899617215452610679729248040609919456545971307608134445142807661132351694347712911193904707749118996179513679878118935881125055774821343902568432218745537667273195312450946969016673540906968858219458151678672981559597394206609297360421982681985430977427432414519691409377362214103527911942809068745812330398381032877894820060477869203674261345977362591862179164912651865027791146093645166783774734770902777111828793651714257781173393109845407869386788429262948030062268663376532040954863707765413456483946543467449583338689141102676209913176399134102543219719941368826930415304769413087430383208108808598030903606480785758816096995313573359065187667724460821702963361566622120056596967972329315485172872174154813780979131628973268029777806926084237512401832005049886997547634722560616484561462045247100144958512739696702385096143956662455015744510235761279315813939419673781281305846979296381477266439713112612791298652564150342707882292597321812773754036179991256515061463480307074490017734231285525988020680196892807591124666849798509412834120298480966349764334657848293862853185398583612272392237838205053680400666615515635903751801285319612773051923520830790036209920193005767805722461837829913257609749782887675723695440997653656781143471303879869959387729048719684393873091797933363320863762795414880516564639483330864113661785034946856889651535506757635222450035250596978367182503960889283144683609650210182881927797716933400956028389969641255119038743968731513910696367735692737854740694952953920039230497381122982794832370398770828372160682437368277580583379227688430239490449126716293484742104796397943882481490144524819486073228293968439481771078176112108968733467423941615630969692154300614098091920463491769198951142729538980505127277670926456944784096105906482113137967554467201867716373263767146438592265045451882504901414198973714457825968630519553325528321002567630508449158796170655550535019556538368855282714811069389357584648049997925273374480995415935743185480588333359284362265870328340848265744594605403587016154140715252185022727479636498619177236776390205981244771844658786415260757826458920285180255551897427332345275704349948718975522942977175675157785819004884760757055846016247481876380063977252922927352540066750433917212521088785142599969421418143356598842239395248170973031503472370296171331658758521893406525305417819475228324946306947735400777991476357044753780843180691364455822068252618328857263341226767833503491761287535682437875885932455701646996497806010163893226140268857767849598345379479420357676075271625828249108622651600327593846272167228068605967568773628116992044387313572019889622834045818294518297665794074818202180991212633168112881575851785312361243647715406336187239336416334942275887632748724969825702356220965643867557615763935582869932224127247383221989315827099543132961464314840951111426888003320175660691338339117566412633013666075978347453119858781390547445535868222144198378821826069958890866153586678529363024347619372343092690723264133755464350719032426530571691958524177928678914002135382223709132737482253464980497493453615357001250572472390454070536022631916695230294837008267227029300841581391861779661416955615740611842237099364556573934925043552445582523042146501386683759379606859199945563862202413383276019270124657014080242271262943289906444523701870734248581149184892507994335429779673020384923109697202023034307361506218638247163600709595847622925276831310049614936461534610452022010875946388156492480410365499213259746864816781826237246215695035239508366337825567370227404556539765435963167532715454630189462119850334728287247403963641953404691202965287604989831242959920937715471512931046002101571461074069398412970092049144779051796387192787978227000026297433007989822472773770349980247404585096294142758789713799849769729432438309977941815575216643711553440829959131705886747171562378383714852118574049263977578875139025572821394149222662563456889076445659715791843592281292623715763426778580107838852941692075304810430754919651801976778633078809670813565889981520675364936811310676520316568844159380201198429649205600598969395684658243528260194553919353788283662270188697957674863822791851041306561782135367458396142209771171486371946113561273292413002212787619466957988656185848882169789853037682027806602341349759477658375377847209498403479056891131050945494308463820692294115998908833397826452148357182450537502103359132319398593809837457358599822713150082515645101637364344903550190374703137528406185578940259705514347798988110850702405259653222997358316931802983674213686399701755799249619269975140774194571296168778692403813790520938485215248595296229648264504640568418533795515763798606829028333172438850424010390809777105358376318544769759661983491633136831199896573065342106110350434881724445939717316517889497251336049246194971448679820949297720055717671355287217709949005859183422148130126232625404524063222251351154852447028800222519309979840782247634077597612274368381426821814074031565580823906037163575596818482708349756365376445527541812327101974147480107108447240911203845692608396818554435331302391452324009650994811669366930201986944185650358033214786186474556245403232024100053909032883618120284990706795601751326149381192243017087267552515889288652824861981251866139385181309299901954038688817442258755518511970522818073476444337562411693573264162059935424197595781217698860594262306450913055040676690162474382996321347364740034275256469800532645982733885916143216251332950141121288889580702290875715246204935605464991480396741610520528377450177121686292755526365899331043180438102622763122116981952781707677487493804695439949263198061693008246084608591019060292591814538830001629674034504611727033992864605514420860681726971193150765357614105973516412603862914986689396834880240782411144449233713668744578337100340914591924115490533565871869298099861749583604487274243060376978294829739493639216820258040304850535124642395895213916120311323662864710575044449224164803221608414936166491654632137612694074026233966656427217169521453837787861018963466765321745265275836090008891525385826173035411740747715355471838264818986049766972646412304502446000637663338515908945004388356407181605918716668767869611151618533990206726900316630245679658624373704814291876352198770988339444196567652294575731767900654647895799519336922467084047707678448208536459021272529868508501522759456796144673183234036613812303577346599100372972618052407501388022725098196730460397186257940925636467129133429726733711573468709370496001967882368889229096598864943568471258666853236096032142787529442498320673689241051339281436658496927908177937289177385735952162295567281231959893393200898022873849663135884196506117627144789822944488340581422428444762484593993549951280486152904096048382234573070319708385021248367960017506116029226689714456233065357159172735709140177015472892842180916759339719545141075080620577827991553342112329583608660533475777784924156679582606308788879914974478977854914739217649412769129173474307462301323770874822541334308715809117028539722901131505771674255003280100678515115196920726469172305955201427948000561387987955409887952363391692173475608463856460187611539534899112112946839031447040487859509216230867558819686150909915835703246232915408995962349711728131899150675221105015462220207707585439922803730041190400589106053404272533194306318437657939596505682645958996643833189101435000971654482843193704141049581655632758613413271495134751592540936058016975738545849891334063785172527345992829414225958415451136757652485464292100840947327887731535563844336424194422050970767386295419236077064608139861532965968958300018065288286242756540932878534759493370931235484886951113336086537270810682216437071509947665190656788964210150595787096136094652704407320151863467250966075225631496006180938045602277353798587711119014378156508079842071902562119922123284597085804869709726991154701167060137240009503481098941382806704369853921634811068531802866056045904384117760175693287081896805427538832645023437985130267149095661402953221811085714884478982505251141616594638762865030754320705622626240333760631793131503328458613683510751428110849248140592720786108379863595261556290460949377298582033309904555756909260017039035817207118691064682724551669051638561455899497178871633244699557100913980372503393946761621628873050940632498909384075639418443662169963749875067956307460711962990563277148499111641902319682446809257166668839679961588132347913322339604965144935539288376953183976068918783189878733592315736963062838303601259148252361947864376150122078288432252804365679991095983087174240803211210846275075647981595376460736664669228828144215187903951463278998437905167971145013618980585950784137513365296957861894218359090672696401734584991502749616172216067188273636172676516463859966165213493107001230663114180272420589497697649523235621166841267870633287339434698782781676443836759308288746337765720429920736857579140925563487124724750833852559700715880135725506081889850557098183632415100894338639082457706957782819739259996191226411551445067691212170437105466209913763703295796272674249508863040053587505936213882907702442921376732178485926325652017065957450324573457165647871667038412540219199541241612727037440143305069149098002509239086289766141647797846383440923515853296635510803340748418316644070963717330158818171831541062833377952826514398122616098714924906765203586023711155326622447068525477992002740050065437559405684000579826214573413990639946588560181231599191097328748481691440747270735593454278963207218863144398356699090568226666946568324078895836189937448164151285549329764124647275866438994427837045901756106489983861663215085431466979930553641890095173684146418013219077790671491116597824017368388109372843072327425200254347421908083912157397118635510280904442266077806506450933957716158443609364225494468918303166976980501369308968374178396330155728017554698227685099834736805899782559750531653547729594123518911151113138332956320199240662104012045902834080082685812031283812874543579271829518966881544151564469566324510466237892558278921845157129907461952784372042732648707710417088344771233575057445614426403315612290969048765141379415281863881233553658032253559957664702359059119380616530682141005508989528362205636745525929096294452834275626714904064465822547471916730151169529285272901595961817509214741051892666320912410544699557427398409592067211156841520758167188998084878150472814345492571160486892529672137204901747191989067328629223284057318552946904592440747791294748261492390328236727162246982132383075627585414265777006424781806933717875735972050709984029820589192210816653952215264708965720986888389329729330199126981142133259460306464417628355171444747204816451591899264699909938729473351380651456088485165122829560981561911255741025270107122371307621104639972101624562271874472026396407538007988981534551036891262619811839177383331359916833107742184830574401062927201196169314404355034867348327724414236364150351139079155559519594880524114315560152824836361601134125414389072472185868571691774324708877801749322677438558479189999985003628759992770202729359022936638441234680874108276846905762822953842592165769284769885208492680072009728514235508126270541163519629043033900734349948382566977186100047326863610852447287725302745932018625876582921636107839016903287706017028182592317500012695227587286724288466030473146126715476931079734021749287885714174862884508745475811461251007058221971514644658659918935996232993968787335870188588513196871846654217723594069848157402770597700506793490015813779141432323462377955230292328341233718284901636349943019800678603069087627171425290236095143327696972362503939974498358357081992215797243436634764516126108738111609561711868311377393398216546517652731708290781975003187804898844513738439458101298836343621110580941355523521448252206224147601315957901168734409882170228284021546118226167807837755465486648653737354655964551005894241711952583798593585885595718995903875521150361472965023537876181866553237357818501387994579859491432327409804022461114232164306704224476379839748681164835306746168795759519046696279688129058950965453532771565136770322326305421743224462044036831253489149834822186308030408186699689593152860154301256968658786813658614455066247084529265900250681729139338336392576000422515124024031159509087428136689081504692563128261002889095551534358985658199160159660122867460390458028534350760610973309023854703948910337613410561970807424417857194534487367672037857520133476309556098133367471230203054365797906251930320130677084734862647614435189624830003175474703331545584942674513416205196701702565193370398572997703518033151808513768878808556917725085206504651503716794234895299619723227470717731401066899177470163878124139757275978132320914289732339819832852850697179096604293738632902930900895422015236845763993340424709337234973524847192386712201322480521435003198200592342171566807732385438511785968103239010492690879870595787483640057252200397086694692787979233269306382178289869116598427146944202462143243469928382679898130262640871792712513387527501904867801713193024456469338240218281876366591392147971101157217077179032356932995069417889025966013998347643940356885856280377206998701821638979958888328912448560881988417371889491403011463189503990738805853092462845686178638542907851620010570445590284135764833126703501270416364517060853659372211778892096169724122635656323210675398726826871303952361659845554180744689770818084702998963839080280722225740690225607935831317408373574646567292897131686256098287419347174024075008740198919148719706550707715686301209393900987798629317956457397974696024731237370438612352097166297773167832571635537522780203029230974542522153489188493672499545973098980992276725617559637394064520167696861690713522664594995663165847756010622407074057806041066692120387180981595348767193761045877722742672714883691091359705770679011346298397271381699804485475389441277288552682522507135468447777649475865130012010466574604803953194042264019461838494791484668589342721875648796556831984206699498876764160421965516981803807056837806300361387273267947379893708783281605661934831378824349556624287380495975722277888582421368103302312581891027322611795890213490284854704017820195280904477779037041118032086736975866755015582009289434472288056876726643385241208063063050769470787412895526557100473134154890106680900800056842442922833732300190582178516183262285203422484799585097765927813845770561394729747675184905989546088012045460818398812853951721168507126519708343531543908074246515151913218667710905333610272990176532463643647892471725252278680659790994086675388380353962001178878439869984901769640856640460841337788849261594126293703966328294595792421335603808751960091527383199995880232478192665057758835891215672351837818469586568249071461666920579879409508695824396081449896836962278078981675044300929675464636248141142517467868714967817718457518677340235120718957715295399637241608360426656733733783512267612965835598861444630978243714199417417848269068362962952196808831855173436047813347207607646204010613555482954345471110366999035181124427210712178211903859954846910537925419089481798856391521488156679168935069515478579007919776938046257205661716618142683931159543032825660886628475405361881748147073735173471380954393000017842185119304492953888013613721883565955754464867466036451685673284693460180233742092548209060782670409715337542379740218628898592164212286244429805714087746502732124431581804305746587189996566045089924868922849649323920814604681631479590519811211126044713728399684453428764005736916719797297593540275717990602743269529467184705132242534552508800741643067681503820500406025143267717605750328919135389853556872509551269186996477647958289592070789741721433488436209508086853726455823919955524352133639939400571898784976847131590598820076558638646420884323043957098880845946378653182917791158649462003859450515501824273662073501081847590599347053563372055112466067825964408238635341231344072408345455463249358027645331046961234594634374498604446289419212835923580421724027853554883722560074180017799953765158298389375097072381601055854847896729620416828431957919820156310441419612105499803939490938914046815491274005879675724343425215184131407506134753267757501447363213919776767299681586811349336758147830857857008245029546065331567749503120178889769026900369853949766647352422486299061213779799125093442985469200818474865714422224534056987313778071857420072726418286817160839640014685716447037126266549348269079745377597203677757682532114673256061979813137126317243072492776746599170492929754950290162245710716799167243991747503853656093177872143433099989498717750169648611858257456230945885228767362136894134954186865320018711097034979316622578211160508693967168115384180315511407969359200588368578812211324962082239697116353404512200591229979645945768465345426398965790159564731534909001559106974885554027585357620399190717680079869750516920602569624115283744884177358988902667867263518607495768292029590646162049098083623576235299074171167971901469682193802246508648949447883278285169734259510762099514122597749715638353567392822983487065214375475973830615855137415359742060711669232880946498385545378086916080093803136069155343795573130960810689880077647511791728092065734962321123875613351197723195981721077641418057184262384604522493900243103667432919577480682707073052859761909537209206100067492826816911888480728295626670121649899971433315720432062430328197904826864753958500874762160121464549396806047046736870079546444412329805746041037500824171736899420836388584288261987290390162777212290315413035958585299321051071950658487205308435557763249456815249755597907128644883001547524300308100696951145317000445642307757970096396167821721613987124191527601177744375151318213271823850038392972813127127876857823149808519583344371300333496240211712318754587544676307557007486102020011190821507326898088448057487705151298153107459893848444066062069184926091339192625333732305264320243283873739458569737605954174860962776517138205731714776595942465748799379879009581893544102459084657382295796213125135919206491739126921711910176568025264382034070898159268864444529237251243039115354523511688615840903903326654462898971691503367578629787194136445966943280698677840772916697284696653881001374361812051509143432527664716212922514108287345048364951281781971135458511630392838718053958796947265953746232863971788961807543773253619446338246760583991107589058250662421154148277025982276562804211644182730372496864502244316207523880349285300169921812716051089211471639293227924383119724813032182546450148192150450440927674736635924926054996628674409730702844072328129930006501770507542426294783524538720668955826128026631554135490259342270594034710068697280906324399317641158115716570944844723886442139989463615982586179729363877113205796725412285784622766946846229348685035120725705389277878534364344079441046050189803881594838929196157849273282568766257227491650576519441313992694323094380445299441680105371065106620665867370766713799199390703765945560572836002619721536326960078466202977398390414012168536508428335782657660592590067451897173462522444971168338632197811687796023788913821222084929067653689461508545532299187937647579036694496571942481816045689377492762363886588211986916153810435822369164310467704539449193921435277308673182433579406595547822845473593008656610299922001347772718115085758220247648383879533264041522207087452698269480377676556380009227548120659996805838313672086205225551327131437175738520944761947381908209060607383161009672478049664336535226782707835714870700348074355310075071946639363547644155116393372427814288260643808013888866145686384645910305730755838198043659033503580410570121128789232785124790819988972704928681322349997903247442840154166969816604969090029196756716328039751148578501941265504053614896475187518667398920438065485522358085083963847568346633977228507534910839949529306235893213890741471960835561169499624427318770989944163307410162615712438864432248763760908697947229901699703764235090688959937135253218869749310964168852277059224862792678605739251198266296910352084488723006050313454222168668915085029590218402226040266239799917467948206362439609358464231529477191443212038190516652155256716024951726801906147986157810813130104375602092423188332691186436625863720362349973827353369361198099140481503908604525718135268651391584068620689062276907606450162413529417496529162761344538544149276392093409064696332208572482535663458692411803483660957186672094961827767808273151846554187937674020737206867664958653220547060073256483017685375517370259558647003501860210802279245079335713588052940498948374655705031433933001704620785104516377560087301828241382976197821341974085350046029421036193549769387690383064482707922656985560533971690683637323136643507329623755991947679136650949900296472372490580118457291869847137276814610685228180465877096212314566330293592306603363942267389591995245541813021956880350188272656292756967913900603540808493929553289574957025987189253834888394795600886291143179747111862706244184106365754841545671922360572555309190920211276517857777077912333417195606611387757327900758407727837476825282670894134411055353254049857884086094566574327049423765660644099766492265820171760195773237177687647580016456846249661608981161315832460991140780141976358783002673958456058162259707985969691815600271803465719324784952663830478303573654601672729323058047164882138532881743209393015788157762642924674535403673503142311432057096747904337705286398287968387768237577048868049304502392943264564638435771963985965110790714366036013547146024114947890006839069866606497530251899270491533803691402461308310713227722051441978558011850015040904165230629671034608999619884236102866268057672432012694504396059057228899502219709356646077535740393918564102467439955676028505920508172400188261321074443599789333711302321226200050213212633993880260018334548266214114878143163045658239182505766708096023343869904704155486776139958062689034713058952301466321397610937086953075136301468767207322587438370920750189872504120450640822638089776573168055798044176490159322773358881078036442359071697286241653554648597008711441295147801771016872556701591521356904490745659558811722384975831516011228038089445140943319691203010914975355605544686562188201389667520326959052362749646234303342859468659361008972324138855172816954598197652524719376918345111962246334265488258509979820570399953433753246594206471995690277871992352089726039676460717021557086201716158741106967359533765220994033659694773708811380530658203347955941031033494716904067057757912967901949604700025690830923676103831427760670143439980640188961832756150694703332138504403783287881760898396180347006620367983445568410603413759926629811950516236033062401255244847857971627804544457107308698127295204991249102744245824786204956310899784105007845995292033401322758959856103836863865995481721739570532309631786048526683266422014444420503791053523296029396821416433522553084293943414798616149157855649287504477592195727358276648932753541332490424919862741993169230040966665058338374695152367977114755630213097235640489627948952654917147517982614619982102833177126315288931728024883093081426300927905095455537686349506823276739014336605426979396185908414234583162691533731863571423257520730374122617995568633269728377690373912115918885191019198962761880464992583170715043289478522381648605355322970512033371177449535243791210589849963876473805946372466749811657071847963001486890070891575558590432535848941807659941925354660219862939201336664493412182763848272372157879973149086020694581630224710832405716288153128091628412417686666738152876151784630528338051869062109682806171406717379705655568952552301425701690631774630865807637983176033802890919368962344873851868089396678286214059772062271502741579253665230327333356646687442118192724540924294412339006845456705127344495713444619102828929910155682757752897142048981372535430083514382449070544886227191469359949757697671755414396361095402469628487157431502308257763802000141396784195781628514789768498786459435710913887737963249980221075910810509756450127786814733052168436283159904352107949990853136985742478738101309111534538101406435207547458845514739714858807654664917377639700413572484176049476703786350687601597578261028879277890680348823573454734090335603351667132602425731670821328511424139438135545737189818047548526838252933470586997836014545785656680757592160811171029879546274598054621939274371804352500988953845767756999547002694580718373952746580803391495427012695922132390970427597193462840543176179964075426870759418507507531185858444160245900995635467167016168329596428212331258110154522718344667877546536668352789468019837738242167928284868668074371188430515149839934373690759367318832394783484797271655482338940598480599803775862587111206437446492509940348703444159920396352613532139182792641756032764940970155536747660674159379844015832967736860380292087282982943288672467410366704298843972493907405822621002516935015639821203386122994940880609242529074423546487258890105551290493403696157049163068582340641749003228211924739070120860156653241967221020911734187010901100580632268540427577055038013976126452682131029790364004080938649661562069961966849808316043492856821834357766837306084836720283363800752678870669808577552714819142866026249042811730578759561370680358110192159217243446198211749209137558376671978689279010811898998068787775854847864269544937596912748247866827698042163536042706097631594386769167184500890274667264942511450130634226488572928689928889919058748738365033149449761643310421515596786748986716916392931084250812429247358366065958113314126503633726800865144489352525928573216005938423317387691122405041391262745549570609806801212057480990113194722317471938359341582010742354742999839137509075650621967043812255861933397369465680449736175084720991495310728757626085108266584511830971172233735090685254386034583045608285497436654247443007954178114985834221419861163027470726947445428009325266002965540929006274532302212535848858959360215380947705853288716179717029491351251870331105953986222440258145952311695331486198061692624813290993898643932977110169074296506755649534927575062458970287966243583944512086067587547506431068179529335398669232180735535121824974102387956757820793685551161616125210067608705007204783503314377350213391309536841477849475692771490164825244501357086703495906668598425680892720259427426505793064778623747469029298254485011333832075942719105985875863798102489196205422155323783386112662767959385035390684968973272418368206124878631294810371200593619677388165192623930540422813158691755021063568293129164218001147105793678287492119171713556421744580907724679791657086904707554132499019112642330937932496213480668387184102704707075750806027966263701155187701761956573270534845018244659023110038466417310953410780414181381479805635595309816777748947087279767782313002086370339372197423585612535163240462355883336044381069860215301199287485925229471324029750383838249274992144555732717315367643474724433980099323771785757258052650881032092219619331578120244993771941473339185475045728278631990125675254573594817615902274504681937670196156502773870079643310917919879572127093017635625962683316627794596389427518170051310262653925630827588098479567672542530716884834001300031159031492588280311061111909567458516537070016335467488043775496314763041365309134438468069610458002622501836129175247451807707224686755616301500894113642333578101329807906661300244589253973380574838838563153655136860831167220405130429459745137093409012577814209682047678995050903833670230960935915738656929666346976063917460641584210399552478261593666436636207449200399159063768957902910722302725968131905277230680000669864611553336115748880481254503937202317634148802056883770377754919316432393903453582544322357277044525430690318257522093429379757462357547573332164471582738283245650398188416900228008365578565995229524784859263844656724266121163172868846554179565174297873956427537479421630224984329875865310787503715680717010112327912058462858808908561243858349251320308154214442099142266019347746468326939753170753060426888089760302771881335341609778135215198251806328561999764495744982357247757160559222623722206202674339656844071479884998540872472316979084455089327669294151505730253071635949232127639300166246054350900499008997800093204122135198215818758346638296560082111525670515005045673511735954208717312197964748043863529445382774650787835303909598590352839674929705341068760125252450179783938658179788453188148344714952604883822547152918467712710324338604542499534540115281657071300778422820068076891135872474042535386582789577174210663292957083704889110623174403153829093038062718023915966423439769032699697558569952053993492773507873667906235345447988942310398544598180067204970769560908939664405544550699175281428844519963240610847672102119872849425247673932908708977378988940673541015804696628687923840308059154093994729757850920714282336086146871720936387023153319688319974585215161544382338651196460603923532226938877176391650010169120599444113924938198278761898058152846482309826133692062342906175843345929103861575857288784222472081993580605076238930260450577178009962349041606373634533126769379764553943913808660371448197756312097021214412920170148774796407653725341419939666464202104992854550670159021095726281092832453779107054299385903629547960982297026798521522683053213060686264741311560772060596894486614213801833665972433816997644133675579356465011095981737337100262376636082757290843441438978905197577372723292654471179625804169343956107067161845507500407562836709287996405675189368191793779328061756166616279068940789810094314850454948728121286468508819385203722905930973894290065369959368114131764885651937138353557611407371478774432387709457821842409323068982604919018996355662330406304129059523006876681620111552261244156839228093382473976616836758282856072342905328571732102797210894113064262531360115137528495454626173729766036010623593005975355966029992205961147765939660218033205695957890119050481654463236349313256745229569419166257859765384017717448891677102297522439263794749631550377292440766129625479121302133112857398952932386736826816438497503973883141339837152646015245250121084581663123335178438103212032375528303141686211121181561199263707763088636802874792138169002253915218013021087863786590201641507580758048700943843927161976125645296980948429983060399652760010446200346466799323374595442427363678337482686852228575664441091954296017913449612616086238740474860852584422293284579764608509697637391519786343124492126320617282942030557305653449060496363312872837252783349415998612051102979195753762790498324685723262941078536363823511378765331304216453580601613926650191257495232976043835173326241973673419107596668945738775543568306794684071026842620631684684427225831815545378650482540655928549749421091186275395205717026651954511374125276785473432346436092739380807117564050335761647280184271659573666262462075635363475856715409010739067084830578716217856656827225080333322789760404340572869726323050667686448778534127401052115129668834519947673674350126142025622676737511270305374452457605457099465012704479346444515430866180138051498432819205396776992625648437649665687606216344120035418603101855510603034165679324154255639486168004630648655689703073227429236359119958505197573212595465213300494886829146369158451401150469240561518638546726159553086622873388617795140156085710356931027175783513911619350635290925713904576814538968362125476202033768505443418629979472487386321273799446470671064471905273151117960987757992843368846995958405279676365570028336300122225285499313505845891777774313848882011362750746591331823881229029720631992567256977974175250949900792130108387857586331846925527488009427143124097494059101776167307464630405338502649034824221135438139214273504099312292769579465281976666179558548918339228234917945492483296975727565681040550588788698405232281632083183460262339204801066289734068757132237965412329563459942217753818117768293122104485532918119342478424832522953204928214324639457269046085324901966376060727804709143649138033512589853968537666536669011116006139890496064371780383140562573460565645924824193368493231951622250271818707059946884364207474786948461278978222601820762876608745457516486028372037014476548462942660100208415900867767079048905077087108590124345691992384042132903083663591682928172411773510242698155557386321089719089421327758113290508732114395530702048414948325390696712373523768227178994580146710147108141172816342226674760156291931180858025135231209881693209052915704797699837443453860644507693194631926845702619746338690548361328778121975401136285256910060529331151587762048088350452807047223311901094535372082163742672154196064155594482161709890470801871147701129260188449362327628235392192196989903615757734189576173165461845498638522948962482172100890696202369823702317319925015486393688016265304009571653988350785261889016599111608834450332451271669941641591345371133941162540616601042117906560751524674655748614729341655365636765138572579217360299719169303504332104998599451586568860646852620564467250501319261528226009329543229429887171113796077718406810787820645165692966056045525070601427888932752444196362888106947964816091565245875438577206942608229215940520007625280910368592175629667539494041382304100091348177819426351962760171227839983140296715875152659537175822644395118458266955319346091565164710926489004924782289020031215788905696674962984538383285191599687400477782769899069120536223250037871057498398204315733266437866465014705104997484296101694141424402817969274915310751566215147229737513935150185275667567072592572121930222026418679016695444206387490162096152981517247103382764065437398947510198496450982903855575632658264114264834875965837142570838334767900814973830540641062244982475655621104109235526315263243782216491396365219343783846738216257266307493920910813810679750093746861236065864354642073269051248840580905396745057316621191389222052775097816522287780417872038496053354613183675375168613148375073666464487639924339665274786661744998192467550822542500060922878244559601494782564985417092424177032641053538733131106436092272356854167033569851073108335915789302709493790158816317042712122963922868638923048448970872048773582690663905416033970124750603745299389558410154666325783407591598416732512790065142474968737453518250031703574214236271962361840551478310125390049237166543775195581296171008708571715626751379322387170619755004249823944174283268811318457945659090452484820476377140246090174479618932448090113507289042125081810428478541529203894479685361482056585266335635422051782054940795755929310133961987154235657329139450709283249460567176569916776470104517272039634291462340896396294529925973593237786744672659198209718540180741523960332874476551097082400599197065716529375461355757441839544175580547424118135496770742183472761287850855795015832592471451219697983113051830565493777380856960154487923513057742127551186131815448478337079890277252687415839327605704909825272335540063860384822732462801133577581037497999969659593464018221550390965758474849388059232876873043353439367991160352807666729504115734087375492936046243077531062940920119856574603903086498335126561462704861748492159396958802837669855431799185328037017814190840554209760888441467034433725378393073930941353323267907056344984171835247918772588763390757367916931691647364142698175067265306648869823208607152462298646108861173880366644179719372183618079112422269129213021145341390501903329188663138756366750222540491466944760032524406966630666965693996658064392895083257686754711402630750583499173219573959421058668269071728209983641749620814837599097473129062885555530097545931449588005750353549674453345085560036568028304072715717406449374647120880572862167890215891973475093156371411372839859338728641040995467285583382132438913885401654892457120200237341974001903205311615048436452386754243480744315328546994334551221809302629808336264187647434053955980988997597149989970035752845215208860986013367676035842496906388639280230048923496296187572841167196987310779988691282371067001968959423269411328015110084481805513282379846550117375700447763201623349320337826398910855292942573755925503471209912777656222680304490058019151467335789519058565315078472308973743127002838512351025339039219415088196526002958203614074548803517277964361175723602052464646377781404919605618523253944758556567555563749374995632855488438457353913948309219481695237592579762500344176869350974016822890457639398232122898274821505813466763403498345126803852101402919177184543322563717768335838674116422879102778363244092552207118554705573566577714657947757691563945899969343848044383269991068432551861818910418021924251080854680647162048020392417580663168589666573281654793210146406821297437025640109328119648092125592768567704500084287254389938823552836393859986521484371581784593901585403071585150162472486190019261594818271796194132554648353754953933662001396430434972027830984892139632319056043566346044091279319147730668742047869375290445535530282961281479449219956141395919094455371995719275913110335076710122340666015899700858500456108175127753340240005789281308996658996866588500324402224222303144627734271728884702427285748945952261845152658657259351585653726134943488117516914925469455834253673833855619429906072669044730834901505959323560567406887072914448705939668514895183808687978521843469012760594663185702104039196682746280455902531952775009797250469721958700812084293000798284972925012447082842486589021703127598517481668714837908946301279288367447647307453698795463733922537786908250384095342041890930293204530216617844336731824698725166342964110339108955394339257608563677558828101298539360515161515802345545929621691193970370657308468654686041300283806439073159952035847349972285446244352972170539821214640926420156850475956845886416061737522820336628666262373613754841292452545757424037938690736585630699980507592302927944711622800105269195525091197498284481753779173203130313082852988405997138851842097758272124452634761695648558401904675609314123789576502485377805491644694362720761169944488524107419426156061329939839166451781024931897837158729731435014570112905002681308662499777331532028897351029387708092409963054404162908669615751846055825364367501413916684214571532098695071657577083657193807248206506019521342930006462908903053735293684708692099462402171421501344804700033873272096287139094271933746087379654722001221414130257744207275069596057007021823103179737908106124178288485077369509492678958960217454556635630125321010489339989095624516981381451679617500340247707491933881989847595802202688014468236180485733462535349599683515261777173493247353938174692293979475505057357871233798218610102063795047498886764334100712025377199888387387175238037579104455895222725795237033753748562686003912965572366735377205259833064138760816394551163776576845749659026452702797985730560595990700635267000398641275876322908042273848674488290711998027454702237373990221009043934284027697307587580013891268194868971496894546786891281984442559433197188155748352550714838145625777795332600217018607273745669740390284829373938955215968424007544165217715250484561543442239802360610065529589752458596378070413430371671466232952004348282233439097661920695885627207755834409953348807024346630133560662602807878973970891303377195319194215459937927278788135836348461434498403059852354034102519719245942946545523147036740472918670945378605565742423041713295278069773541555222492195432374066017603143440148024363955870271269362571484721002833997645403470432563814099913807021611991428353513585967764991993423946936432431699125262115201720349643104119021644890929076913324198331913306246137063536096488954937594302870670952831697510279522945106304673357461762110431985858383580830655576218872158410233862451429322624961684002961609580756499938955000436173204940013951061729177208553574301490566578885601445714727755386145750440185369317885986377661017748798235897597601644954780420465216245139069656077227281035277695758726239085757671914193970794995572511092450818240948526587429057808395144115366053942840083297764928132360221755346792668986527405117850925778925676529703175612475499228331002984114646366866252650428128572902941495517714837987975464368832309801503806678329412514514288725802103923745365158087170429726788420457268594994725899716676743324741468368693041702489669536611577667024061091881710966391354375663643256162848852177290512290196145435962899492861371257775155419726290617198538656307180027616713431316076084092878615055671164400878741924966156192821084685221157516413119079155920463430977618877831986158192451174679060431542612396210052188052835306904371093723942662933672457560708001975879843945829616825257730770750298076560336614528987137129706004841109333124499122138692523292343392476341052318095231620983585890037509810434580874556160688334335991003855878264656612379706012563322635174665203082469618923884628386270382518902008783217666719089579152058817254345580406980039595524771433848764556652383445589054996661269882871116439118514834180296159347252462283312194501834033443458089923432006238466144359927491574285422571992370072439012190115930002503656394213975032197518491464306667561524307495695681474593971990361173162542083031899201502973356292071591426149013629564242323636389098075514672317392909758125534671005892772496723402613851298786698859490325062681727171937573859479878170484305257036559439382754770835554189696473933991280188948102122193162948120737587539513493006299065455217037097411575786855678219493187377109102450864462114126614697957432171440419482285876703980065921413684482606645173504732943120202118481728948693338616159717578052872218987355924822229786612972557788201465446725705229998374506232401799687701818124776128351876241557504797658521435469733940843046075166414527817382401915737509742855969370756843460924286871190925832759327680146213324326835399826113677194858483155972528670119849779147418466455228932499780257362322408177152116970829487239406170309713638291261141507660137738283305862008663248413164541451105437136731240493510977196797567952334475126180283036740827783511969328849176157091245480381095186009260697457915812708125760323396083465842361137548834100816259070737769842922672681407813590025885570467213731536768540717388039228680314076967441235894732199368387090750156069479262490061133547903847904124854192027284995070443406426574395855909360376220511316869915195835237788871458942569234875621837233391167827131630816153294594098716229138425598572335770175290334226528993075891348010636952660241816723993259196498449309410570448679314994235090758423353097571844867747876330704631794347891851724197783346131243464730529500089488932224355293206715524215104411201994062583275464144675943312875105881406683884140545386712656072237234996462722052592828206888177602674114667137171834986560299029892697791461644477411969085369008808433721039823305951409639082070623371637229351700408031510857184114814176514521310172058280241324034459933002210512069298255305771619069190317601439207252043225441236653903248129197156948834773132712442993278502497156879423382971717630051230341928250829370093379199417903433307063381027692245420417174376925313442988327052893920140975364159839215926512380770495307009802829338022720763085938096218434712356975243357491623579183477881846451412567629669198018469019702831855189323222453149036848567244925590953555266755551520987121871644235733093277251749917376105881073654070664756601176356283518731220970456444237793296365940881861774163615835504479083922689988026022793019402134668868299164952874974213884230022455584700983644574537975018417356427421894681473939971204906889084406588821065931089738838629110558288595480392658159387526777489317742688529544420657108041297793490426497318209802882888713533389381745779356488095164984105741564948080634890248241382434147202498563672275670300167457381746099454664528587649548725132229548371751567234906083440433582746528886937121533723585562187719133342126991719235902699521038071164027111082112188404200259976776711539938582373335304965984232157099211625336077723847869806293755585124525644844007852691825845306482557928441169737019333004293547192043283783379221675265961444419343935871391445630369220296068086698002389930000198248722355283724041905828248559146426553041423025938686090302324573186812095489583296171938655951669709153122890366093786368953591469601803964097014438708105963507449569546765486648613469387024004804566926231417705157533422655680052568206011648745978079661420414078914127485027444150223053061323049002240185390227884845522613836492159532408394925720902917997122861025140144057146258523273951619800130836032953315873891326254717232348308131668490806939848210435815218062576024281290296575710851761109864488706559918622236969499242198524568644445112948115499929696443375015169244094531705591933790421144462397471063951671766883672956819816314767386756098160355716935991835384075650197577275226700981133224162587273141446729245977316104395338379843424626249128360406472299574259100996173903413751788807320530545462909959409793415530995944881598897668493873762435695323925873617794302294776316938023195397512986919840561430494545367181996616131878615318421091686904929305789739818767861966781618844002672115317400477261952216373174207362275419797506690793594621518518602022836404633387873936112491971782977178464620705921312766914035163762464108991658069454994424421866562920846053552206646568394503303023310902854779372889300520720576597349988132692375082254456448392574605729683684310343629648137211650724338140973510670336991054294915234577088133964245618018663111164310484411422961176999856249452658743194272911082987500451640022075218942490378261127458315277902008888275081281350836263490116243024620586294239954131555328197352164944368577379840637694270702754715040926561445706867007244618449220776538162925918145502854230340623045444746851300597793971087238750732643189502671330775730346001072087014124428396842272555904612854941251980083793660971887661864732650424682669066336678981910353158795926511687790849729275325380904895320909083050077331322360974092758476991791413678927636299889836613792272132260156797951402960180189875866297506511522788588513632496408866388588071718252365851649292078915815188110632976212352983823464622685664411348412230999444982862392998346183400813014087146514571731760542694606587016346856545354482987681634085016102622127518616332528738541553848697697747398805230227052205218989454614725902286601607540728256709972002070708102152027932047145033004122386988954119524133207394160233780593963994961263722169962044639808012960973285337926505383839370458611043062799550180409437258766157012166233635509938805409436177315095035618019357036083717202840931145706295409797618739012388611225793822195020428307230941239338234442205850785211075008354899988754305612612909623309056009329481366139406008155642969376893231179323652156219778341395138848945249300585627123231806842467844831747907625875728132774611329349562177893786508753819439901943524074486137521330588429771310098278680091048884957774206706973031450191193084072566255471498593345822776923774092607589340435570780171345364313492596913160733559508900195296922423634107648750998781865549276735134814811991216888357707106817322243408875085803135976269729066257100961239687499264453256718530899136893679712185348127643778800874129978097745080921382331779093308311037134278823496703967609713372964075415902744887373355072860510271820789392275472876263760393023421121062676136742380888386800080996234265339942030359014845371980277359015019926805632618759449985828808240073184776294310617057579311712033963416336761391799603466380063701232127736120188313196684950057895364979541766569628336872695175483138469061247467615886313694344813656601160387686574773702471314001357837793174336184101405651744347891740917922016877160825826118004060648644799877400047836350581697878733551314970483243124705504191579958972761976205872810078505400053701682490307798926735445413990997082152458928991160182238793093477406085613058193347309773386963068786738340278710709981758910598949352870611681360424980970640263790187805016180035315183096125216730304473722183105412435138082665360131767306723530361511174706705465535001073000679579751588640903546476541096054519481631411944405535608055917129978799044402535283315323078656675781713876218846074244229315398932395386530308458891168632940856177133464290553388395057396046970641131582927468821567719142859300120565959105198332750640868289176006345534482208603253594911101260546652712590733706642731923327264614752349735769651668921167653207894600240043498658825677263408770353756999123449481756014998127176002092772709911476278285077170680443256523310848835748021934392849752425171664352819236897896495000754491807467447075058822166354297093231609235835697654297920862210159598658009918352756791415978754871104112291099648539784759583399605867394752809630629200310508892093826051538879340896516056047380314448053571320271668961396335557338829618266020237411833296099268031192627477305757704043635647686258987879232810304239023032082364372220258616678472446079256687277911770450369008851258372465058388904177764008306009179335161462057644583340301335015825549972295675298422690284259869781182923182951976091796120920420154312586215967500135465738895284177284361556368572844413404788204560164113940847695525885178528752970335672256478083135111887199094535667321076982605987539516269264818090854317091589135012821704120535911303145913456084420883576147917917060275896674563301629908100437732535147635704202618385550014911363722136324462934507681229169513528207846076321242497045298039143927418719834302031310403768337963085237425545680908433997907708628464957369333323170507358793253480987861952629436467994513396145303317425253276182414963234970651881105780669296873496206642960712977665841709414323240034918192416821816855560938731208507518301245274082231728274419034631186547562900339966516174062069875115276040638792910724998929195025365756542508067092752274265186149234563691821626331972161674540828414813727149186076973332426471224710642887743497277964162603756452563279754004312274914126294202266784696266701344497084903106252821968234648353483234176391986953927618764493269148674862652119185098980739236286223613159489658460479244189928733898378931361248414929850971232852958464734013869878056058624735210559694669320866153049953334009369260012006850756630285924698284618559625085332091436476868188323847219427948367562619268956242731511102280280575140451433715252325222874639020384175053170014365226959755301848600941998429431170560359008193973074026246460867216324649042776523040237011836849948403650756307946285944614996174033497285853064327308050859162133319777663884636365785880032861633001374271033868612725206246172481714972994313944223300610294197540579935497785395127099236449119174979388645484083625383472669659045910997892966805383489787489452885862703129503855540867215285038572277736691776111582266412826113085591847798860983490937401583615049483733441231334969565308762407077375748000884399410095507647357579936969736385215019442897459148987041388329917951107255551255103776368186314526931717637387572916747713547175380925170708549214926076887648890176484466833463205605572990375475118741115182531292069637240595837334847020943786925301207751532822227913124378954669949575468243566667309634326093296446114145275607312392439859005563864160167785212366075751745697411344387857732434441055710306236642245501758052875736582235041171461337593423109045167555155430690663867748200853778266271305622027296344763844636805918171371483210106090752974020148415179538637770429295157336577001929216775486444543547348657375457791347920512435660387967128093514739280856440625005095251323109751682488897946651075882313971184983522408983451688142811970120278573541539437004386022289975183135850484338033827268037743873750457240265565649450383413123199790225604291251119480885206523932540386080585455825212193903641374367835988746545153948056198568990327971248222392193742759604597485361406229475963168977239746486712591805150759389412636712251385979054629442069973668222286757842687224226271844674866742557901974543430362245091344615793071887622724315796719738971075191636156821419240026306374501266564616465395428885641198917056879038419038469015898229218772518537240680952698395199510340516703117364529854584460198550777439995899189719424553702892445959156855485434147765593259569726477381873326979612345254244825436162955193875063698045544834124087806389257900954006065259644678917440929323557333243638390314740095230663265889606440331025581672307147038633059541852557792942854773086280013348265188247508950120340341651407847347275779082439750449219690670997943586361166193064063441732862785453056477515891550452592703459717368191180683796200642647260815277238875222350438882803360020213103869381671491197147905873728436847819611886857876477554848890377563301071688949764372985912889580458726384039922123018008194426568787627723696973092937803996110955863972050914635065072532714766583019033180742056280542602091623548224101388207665218993655830583531096189251753057936132923275121630469402518460194045683491265609844410684856187402004638890685879786764552164978817144417195113044151410995192103977611302920760504554111209632496984199593846330166777525160392590694330072023068508801873678985565405410413672142543352250360460641379272184335113867743825602498599552688860401519712822891452983547663466219289039424061498666708341880549129241497377856866894141992621757866333709114502672796021129960514586280192419130767052605264463272826285979056002231992428272663976644449902949725038683676838682862592617906756977649521242323137121503606746052687285166116992476986447458876491507803407130139228438615002670219883593401202023628910481538602441667129873716326204201157602797256103796012999397083621604814999787965360396064500601206906056859260549248793128567961720893610317098525362174874250647097100409290276569891876476330592735933509478602721579436181436589659118146855628038096067816871576691830248978240966732656297437469918807631540181057302839163627489910011953020186727957724203135248251448194757951015962277318789379618622559590395151342163537677619611383754217523842894558416224976599041857819863069503835359072537996359838042716781765301533590118319568622937556318111423838541905585107699564993953264304713703450058076313504971287147600341926167099470854987237230497599936556293604836033057419905271379633439827053465724784283223020554055138291399133757209129534638522131733803256480790502763744227726074601983598173439693914606734817385269214733694165880542760183638107068464536503273029348540320812670019865586271948717621381045339329410849214787081381007349617469909116457407386161223869888199810623791325530551878468881339134239950587375874208138307537235694931831151077195179993303271126408323493145137314685967282658059612316582309564258968255339074171104831013292114336186615509703810412619725184346843143480643672151567390247120669481747952773227420598144484924750470845387225930278815856041770135609313498204765702865496735067834245098338097107929002306864359396855089431144348090828201327849585201032041685189983093492845543327248554730884603838137597906652720350552958799829066799537887555074526534986778329099139643148733787711597414494247478158814817709833309640815311336604117010688355713341735782185210022130544183827415610585466453999436800233678817663705087592009847533800583202560993077483487678869606841144807245900949108151945010323619975881527911464006122801427595665661084062966141127202909361795372664186510899498216803930173260894220712310320719982130300341770300935594147927637230728141895086770421989835941361952507207354697707085397739186839246854947489949310940561733770575261734863172543395021835831942867065695601524627447912969974387406959966222555196267094053312423901667534427348530192343905722036880400412376276688643492428554579375687421641608095948781854775032230406010041943282854764062701780034372617024552965712734105430852821732002310745084226119898258962404004884492335868961256234948690677890675587479296244825445045337763448346865853288179764604644389823054660735636470795375984937234188000807078381872263705756163843579186575292504330731404865355132972599985751195414357342146481446276241749438030073623456932828997978048364101299807817807687058764036659275149429335138927090375253761456866049678122380560092580972949473197984528475642332312510460017451602390548863583319004081171655643532762423213858823868211829283748836413695907518695926148509908515226669049608164573817225788744064689892564510412935373416594346895967964342901712010846510460346603892870341944292571615557054119842570478946860366699803367607676611636277908971463403218897976120050310900182667529480032194072920895831433150345496366103590240963501099319110432545301955335200197759017837337323029802814365081281586338357959624121821274912053778686625750071839237740770212165618543269145993294108447491368891309988434666685820228651774633614935922244963668695203024585847471406558567365850391797901773255000146153984077775761920540943417217179418179223540122187025302851071350118122904530831228048819324006666933220495516950407029029693764473330322721094540007749270194092322857055901333311054137753825427348119390025659107374590690188225474138213754392236381889922669974192911496675365412114778704074977294239834907633516719890361898761300841976492333931408955036589224184857660233789131482170328726610682264499342334070474594340324369580208945980382957731492161228865328297489284081529793737967011539948511789793787511175369337820872869281571573167684362908895839077231532030389099265937238085746421793729285434461142792217009211925459554763571641700026318343518158430114467435995850834892893029310034635636783450190493633352184525947104902267568035605222109449793089496948549546788595838882036100291020775457546092582695213414516132251100066997219515355958356983319825430711795250349684514563730828936028167793729373144370993975189818487227807809034921073435469320285285357762076690816482482554912544833234902986926222800262503488610978267112775717808370653914505163877353290424873510967407705515985685869073309104718197827057583333052215282673660908520087716526267724391872198021057375345897252119626754027629567013971046261040107747146243732755583748868303549910788447151408083537575966787538543902920734157504450700131074935940785280544912090456179935914802231672724675116244639370794445143779242921009784770230547569013531781863448209169826810762661263937033394517558799463743774691461308402326015666346205412828389340621904901225090536832923256881511199635358593223112645168795049886735223694733541643736856145749605536598131645014703676096665231144772039710334856574988095140607298538944080598861734739583583720779755065016965225885513551212715625569602261659794960325825897706391904954766008544139970660709247797592772002748357537990267798944761691671795784505246058857201266762455756675747540288153180677290219789466277066738962160999812978298575641688221070933920976308254239086962883396467860098833918671800016049092392985665316490142627376829246434906922145771282209477039512482352708293252695650366689282705455752829903821569310243039185231226650723710021148972064568900587516924174344493464449686110430086034172284895619487603090523857023818620512823793957269760648904975248953903460073672995848728621535527840739549235791201149561114455147992056449635402569130394318904743318538755475096391404585539944635485436242492020519824288929174095728912824141333347017442573463249944486043122910909717358851034199199826440564720901126625145023802914412172295623439892029567587721801922803513357884198098782629939249176695538957554740679146476987544847234181096818386849408751345023976331975857696093958189851980974399201605647412242971636448522426568364539107639709785149062929868382365439768614366384559470144891069967731446650840451435467354596414640295727379171711289771255156977010084334828342776593784928460742305811927931361490085843575592450242754634689573784139013153325139456668010473966450935855329984136434713243074971172320995884871093959142017767270814330336149646401140513193126055638344771404397080075231796389287385015255057679034861588358993247381422928777877238957424919424703594901014471156557208402956596401240131367204409554114404454646007803981237435160752749168812775858951788765037514219769264208476971024191920722437552662681478318007893625771938611498379032011951033632153486900809301115206825005600790596357907760052969413444973364490216675792252584106378371647557641563084497995199423618076151115833190719889450159438828489553123932588588807187898864264689102132024162046990235592839117004642623991252339392674313844763518513095214809691305408754236381624731614455277272268704958123291856019614634252158837817674245736006106629278707488167729602857539311301814545125926513848415576452377534915270395095609378181432233538553804806674512877038521318516014539859158992727334733465901099500544180855138024723392998261822344928682458299571772199087041136547749725060914058470863538971949329965248855232079497337640546169026950046139447777665284940681370489341088665367210045034152730915052433622764270985306919021821239926198098256142250864466885276443425274217519014617106908781751610365241977572744610952952700707584960914997084156278430275782215965472515412417579568857180767376330288371308296720828954893943707214984523733528447275330951099558071497634959419021904188915924371770889364023446940829233566053729596194112980555021030631134276061869299711113829157835731178769163185746076083382399054083552955447181647785165344571395726813834705386323114277459359056823603157488351813331529799151757515183466503672578011298432850614146112214065971377930624304942740682719048984189219003056963143539934551382635783292814751723107665473851887469347373445366085323603358598384546043440596095938656959160837934649711776106412070823936777347810571585588971796324078500057879867850789875636803153208539577718584941196413816482741567018957144477790747658740814554157745195229196655684480558381653753197170310010534064295830905796176868937204445380691007086141434232376664283655807144785654952534332410019047667474765841561086564059090475472634063420815848620750445057194773759595700140992908709712327597915559320111924101393030905502406761985956845870139814152080039250902881056815934303306257376389812660202190596462688791931509427261847742605861703481823225647235785400216904076814673584718894299103450728304290398046915032322145231028418951006395195473297191279491437763721478464458438916153556973358944233891967419912557954433018279938684773470010641173756886696741471684006336982007255651737359232856282689852589761401396713741976655193498317730334536949982664858419936890485126977104723631693750649953356305147294605184853850825117833600422092950659488476607518256105223823797175382400822211584537340709503213747092010637829873559404580593859345715370531062359157993172310200861145953467791889253726415862203972303310204039734140443905037869508103448372699402256259313566956841758896359942799282079396280645518839132257896720103203058753777650209502146483324806269849401249543488424851837662713095042798816525470546839190432047682277695733268733878175183236939252994248010279818343036546652293314938606486556720240809372427255827476380086164472612751169879700351523951350619051878420204466055691156572381438640604387874148004335821643308776207848518638156079651859966013944521577139545902478046845921021421700130730422223505818175202239774956216301667315641987356950602932640482583108482058661420610033571910130377892178779619952173173592687859749024711767053012478441406993327942308502065138318760075791704966573791200197244571800264122012212195941957714508314753958268518050220821373283914209718249791261077394131889466822049699300401317325927284100800920369594628643167122315349848177299665991287846674580391620964635332643182828179264711099022483024072990070052610584062113881108502668022934664840430807119098778881723177152825573422680270206052534764504576157966342411630644897800626859450740196783977019925747785749958736779652411958630726017518219825674340952891173476058426566114165757838595824471720617823848132643558648727242553534324627499299928024658130729196568448524748284508850415294349237565301419828213334887713072676239768177996178337069191316403417742064567268717583741316274720364817583866167739418854215150545508483894375513371420702021738439385697267039203564135470288495843867986136432804634224953811851751135767166375888948991280724218976430977808089190614692925801028141914919845635080654525004640352877440584071496582337455573849767825095443595511699515308488111271834912144885199373962220643544418104375163598877529182473573026610506718905433630475254479545542412271492605033141652145213902686687704492557756109088646899982560577748869132428292342828522099868730749997125866390148687499812034222879555380405755103029575964710998505100088262962835201398833178152643840347703733699144732809862015878180384379660156175569602805759585234512898575350270266617172522879099489178272569463466101045378287518063040208632062949588562060999812164193849825264301413614057715172788516116974487778250202009727495500767872427002401761134698644411847007081966469883057629098629629982054501836269749914745137955054328473558318686042952381555818212158106280900139468189439537201911088344863262199501713896028873015373796998125770569044141333538893807302496695318653856155802646244125031079401322575038413571608541985056978696818505440376371926020306339782919003679433597703311500578002659298967841530156429838975712200923115976958038471506016751891226125952700336690511475263368058302021758148587760144286330756974310698795433536708238234786229267723597099997080359995277728416336826249511558654002151355457090988091005166959008074833199969539789834859711256871502978181281819746626725567521203806065936755282487022883765910728812068244173591626776594617996620100436614452310061020421888546857146283549030557603655955873826104936754125450693494561618322175620854825563116129301063110587062861304711141905049323228013948994791423537886065990172518522329285826276530004028573854647483150244313405607995327554255382212749319474885486379260357194215783696031041707652882420377447768326711146145050240606775932931765447538323910299809979183363082347603915143518100203023650134128497428087735735037567895764163926711826697724771325828517740297788165866111044407386849956458171085298339157226045128447514859384054983164424995613646421784718884210179631944358855643466962028993431545808614309830036528490617121555303415112781331323877931972720147932353655038308938871509097763033492262504102949209995022024295040736475574377221422394990548019499749344025690047095473528748605303247712137050822516488158757662154391118806685087747305701594434391171403109566057294321266342642691585076749236226483842269730138676055625233255249363016220816850611667609656480357156580868042099973679865790972660727492788942752048458609735584220360286394767649445407171375785829692522058623685854304347968661333490074002766884959148357291194268701837319646349108927606104651165806259727603485610097824594317774967309766666840200664652180820996244270125300246561751236645889311876849879951993689446344518391601907631822475125990886781480617649506621858267880416132129340037945319180356496349953877377006230630173124818930274733712064623726630302443706040146897612386056282143850539350051961683551019096578590039693838117261633363623708886919501837995987539575123792288062894985275390203416779513036162724986398396690889092029986223651156075906848771057691724954558628437236446759222762496997236204105467510045441355119202507626164494226472479226587567149154617507673870255034796706241841465582287898480230868892024551269565757853514698908108125321248457642532518132947643210955683818626871209768411799801145065077598900917109603663114804415513572400491128273642480153531435658692030101164025722879259676048413874540503671450563454031736733411550096626418584638309021722999819905639670996267813072444623536244629502489723423653426364937578386533518624712505600025417438371031177248017514938610018228094868023034660677621855987462333050790302151856088574003292190429962332144014442232370373430686010765764971143933385926668095161459246984159163589755898249220633502727177707448281989606528644541344343461287951477682462732488395040429913772705317199702976074669288093077504181963827605403757492714734287440660217064316672855387236989447145931825192417575522746422417078901943409051211766789524080697080047544843493341877769361061411571642091844175004343778923201352478859431249891268271742550746510760266282918889613050423687711533179385129437934250248348563412292302125530652049818525785764924132582694154040772920338994425095156466100463868135869768992567850037644082637016737171198267500063592866189931629027986422950847022991292194192166413895816506493147602998827680500459854483561286634873311323030939086078765376606167105667832977277476513977118855633647215141971720418881774627839256443466682475248727786869973791341791997812334534132607151741727197049771549274717602347127470109450651859621662246443214454745193708466552204997341683405983594006259793152751349389136282190832312561247044338182460718070936521180493010533701032633789949945791164440390860096123054462351770232680214898716527583621627339054144952250920806309663375876881816612861888269856124447590589877555803899625886413533128655540068763398278389599792838748867017161235038860175000904709897848220735964848201965289296792502269459073373758672107053682702339096888796696950573755302426015517770249967799888770986131780112556168296761635792658627206844441087626768843835372860313089340657796908397685348649081514640481920007471409752680566147576392586494039883149176854790318679992850499910627386145218574021878553117498722741678213446693818322052444739698314877647618395867036264019113521648759603234178302912860982177751860985199500323421388198957509095182469258608306273150668920574080083385407977769649729933602961806367766084320143108312046141892203976877304981115365535017118953704643344759475258437691714955618325577601500623096038070930852938920407827812102196407348880245872525243977035507463586266185469023602670781346883515979107068885905126090404752237248758555739371085448385485709061596948148776087991111781752951175929053914793645925171411132814173038156976483993346393869240098725994078276969941387657515334737054324311284071082569886592009384634059345845419854574458091010364995311233962352388208791408984875399578630055766764855120880904777554024777457298044824222772352688858826184598679103796693889210408307514806470883163107944270941796102274206536648320835206104006366324598482350250863939855598153098794682754584391117090720107490443087309914281901061754656477948277260134801520921425971249441945364519456200467487984906416376263892323002553622372429814074761009732016902319464374189119486923669561395794867936517764564882858084603593041538992843692783460230233534935168591807424731997871405747273747003301214095220168313020999976149089227902888939961519146472064148868733334916359588669729469196398531435111059359881781913745850320650781886309436902577863392581832672950066411170959914504905345276401960887132993623997664754692681166789049818694814829884616579082012023295997952096870530070763190683101002667719995991438948878567737466411477369914143358653600883330746551520385317664369253496175530424484224885456349875699991372988226536660599001018365795509783712184897484329791622643422833085962915764673275941371173552940607515238774398042440993067432017050707350430017196289091019629419342342956755155205057133925025915871131535223498317413126518367207472405152185660101047763570736158817950276614631049186970444683782238937340285176598909849288111316974374198343060845850631345730580869707238151462136445115478862223926498433151856885184649354401661332032894885872917310056560787364081291942493985637273826111501914802677055943092896468196607813210562997605918249110297077719429695018495629452478119793109723612882503943924810969818368440254864807730447318522506499036779963694279048449438033377717233085763598512335046372762129314107179388802023771503764348375849764245814628527430350534372812012056191251077636731934170959546447840671754853245557265185342901238946844624666461887481474921051033707560220443024723454693550973233173288670515052818193460380608104285513529685794396960597750050518008252781252780044717821550501175484729549091994260803038565510116408947813498775637934572557371356805890225504666808015451614800326307029513505879901905381211333755982452777698477408313619053234698871547851321485855435335734015760412844120217489511361149587768004258099398705728233617785414749418247549207820958071429113047155126015307903773190030672804507261282864577236496889992298397407240552422533482133241702062145700423036324721898600736798078957098317992177416602730830932871429377804449661383593757393555077895346331897607670420037524468845719470784416533024207940079725076883711718850910061847853362440431980863315080167524113852378564455025137803808691023152458170779608408986336890984857246440271614850285556996415826695866957199082222163404643911257687016549906229970083219309074132700297011290045545885239856053118798800905924979580358451336716725999868136694918152778264787767016314669041254288741053857222571400558601392105139686213424937537558264269125056460212544643554366089425207196667386921759715382839013819202283829080295612259315037796153959847834050178232334357167538836419326457199980335607656150632911054674367868163962744172487311232407614665441544432326615320615825339811464763499152519576026112877939385613873991921797677338787060371636925749105425204522268903576545325087898456854441124286950810446786061854289976899514647786132838574759322944013037345174466691128928534087691228519886912739330229427625075221419856855798300430509986770695758316990901693060694183399534362092076662996480214759585997722150541737090893685870424999536577295987711486983088420329688426440256107356346284480152954307066913728924083085763886638497818000338254629327861450297005026474507430599505123915857266313907892088402385039777843213529890608672465585912080287377286886969385079093078928455669504739013802702647832238055145124526596836040906948270044130346258482720513051899123105947681681727061838391299163901561491241149449886587773727705128105639634308213914330590122725870829454854899127823993622027363793227094272936721020943004945069001896824531608466749219244938539227399812070291753913283079451728947849394570448568503729763162153136713833862822871932289615861958357635086527243555542845962032017435939999420018420527556354377930063018214730865454768852892416085845434218816669196590603351089811413592526357206013031432194833123963852166592198792932205383647229814810380215269799154380903298452913753848728665517946582170253141930877001235054376667247105246284351948829452210061891717390854497662597157267387087733582116556074639796392658112657568742175719217085103349715291867289476837425902895280095172512296663054108010645470379700413506286043758027821791973580812772821474852156912187353538114881952503089686832427051695133652318009897716215446454568776146248657709430750835008298193187363032815045242196027312842081233338413820748828022107033311077107921080291924997575869578710335157332083867471721968034233839563516287628840320319039972921919992286114607617943410711143309048361274876451851618284770375578253564387077563271816504814818960008014048296769688447436745492966866496463310227782535011552746602184375521017473873125002025064961834255413072112636341528415391619620581690942529790777201312628712463024842471589582108617547851433687673574206408567788336066312325449739133331627507435386231309451129023371621299806287826005667648583252007239948251094577171446431888255145470927026269512251820210234755501737925414341354104948087499176328813543974071721827421302871812617866070397757540935815487683873621368700491041968886562853546623916432648732188015323945235973555300923579179306386409050633712316001376425890132189482610360382706928712694628867621743587840604660642944580830189177597463771567716539570654227439260491699981249243802997696377187952825205481213585000912482957052810850699748039096251168554899906457301256587700897423603470713324975348019387855292565166652059862195124350057610853593793216294862301410854287604881051825045528240153777504552276207536729005738836967599751915806914106680312443268916904720962448648208612908213914910329866053826531347943967776211350623562547347583210917816339950938850251612337839788557168400987035697794287615852073941179301302408229074102329102462393132797985308010232530914145509369293298969699326962991496468964253026149914471865972747565827060416723594031383859328786682692269425306850417469525733229205857797112598683628831295077154625805531378980441723024681825798153642008519945209419547113284702937844929903339067600020001340161214949612897734205991859690195457325619876030475839885693648896943707592384190107079346329318095945341937170388579320838247916625795462924459045651188336665307631179245196491664388043042563540034914751959244209903838713492480398375369235734268321165036039309692292581504529452598084978048022618578489896308690028119690442585709789217467034160983364372423424374873663647901965844196061497197795360072493425011598253654513082626377027284810851417125486657465368340918786606653884964368239679896174139354286816931874587527099886105922595590073074262702058281928412457887162268499296201081909232193576858996907107277081371944924221172109862350798343119777820061761392538561431574014363626940744441684987265339593465026442906401331116781210927688997961711266575925530818242644244056052809893450274247277093500637303862747736567670080813731624163407810188063451338158861294856092130827274879373581160114546528975832592541590556440723385621504378687866474168651961299213342390453711965795815718623289020320545981339098844060393438309346508283306398679360746202137342273235597832108950513428665616168687019623400976260260349059856467196729096104199928055543916513500421680781276401380211392727370469513621831773680110290806024798318246910033688790815399954016716897008334602423861763422956692372341039779927865566218552200913081635685947416169943029207791650166521168821083573080889552371222945084890646985275689448450806328055954442562623681653469517474622932897711439158623593759400365764895564736709534407309758020468588130964819947151575583897029896870006152472182162421832994238631036451560340322072153591231476908684087384693689829361551430550312288536538258459616249074119016388440741403954202514569929790641306032071886646613708395911454696129848819305503960116072018705704526581768707597434176652828589741174969547016179800600517612521407732758696085735132498591782873478829106057046624122705140043288520469807371618795545130518828960698462428065119913585540193167477221775625055160994976058394673771715697848661433202923948783583506584196821200697395516462568740123641265606087133703003910424885851954926593617883101751407013855511141489923191800695991385300365035187838614745050542623214429613130411568797909901073323593930495328860145510162968202702210990164387188627801766277211802096754440222144564236187635883967393708969713598558395288282647363621741818327878927713693655348381767269782634933890847785875700561504496570729650520016703843739169095883184292868446899862931729573438764698211677822092189146882858627129065766278955507863020190658052415302317271990870403759599968412824877850702930796579165274436769429062868010781876119211735929121919094984357366769800425563854311627763146156262455688046807089465448527981628067162692290057478463251868546754388762448773629706367122134867707677214588140455917052608063318284890263306800255172849784033752364312898360055670514621416451423212649513436555856806297214554113272564993990983476315804658169635328614665325211945414902605868294420761172509853335507106085955423510684042699076809605612170209140819006501328123682218552564877468744842365050767624945118741318956980508983541565522224400305497503057086100250032159501763343345383508520090292176201909376619146399494551619387880926805112805963349024703443724784939342826181711712158875393007539754854385694094212118285395697822811560266255126905862170389415022156487269392299052619586242042525647486292143942727506011354935798390738214075883225559947228511422936414470795253034342492870170446920530689511324441252169340029127743223561437845845931475052929427953977384569334749754802175664464038363726235857711527264821870545446725181376709977851360217385431614221004733203300742296428446307173637763813724888325023209642008806724037082958465440743797927208146047571454774521598885192385951652349850232325137521761493032236918391189159032120478992023396991900563549475721513686018274203735121398322656202451094795551372494690843360017840524605018057812116486572895092739874199999247203157863086758885755749192898424686812512371953766041602495169650491870045422607528037005980382693841937873543469449844821351198945884442872798397404791935271916660352502668247186968212931821173610158534848904397930778196318206964012036149580928421049877931459830997619079266702542394532131565119773068180821595721498734446966970697081721505510050583452913631721504187996101909145869439717840173106278399092664716327170868457600950100654484141183644257870473420405201786706071768999006887118394133858583771671410249773224571716101308808523236576539513115778127358890356296301931956934684099608219453503295327121578033893906742777132501208045243794197848812626536960566178673576216699274526560388126854719697620239373757834801458353003346717235306476251432518789009523910587810706435634196197291676876568675894880250233922677677096431426853642121940418464001390261549330247953536158483959946455180434377311018781610219303112568470124466915321415079809137524331386822631866097540765390004859683774538747489396510157163893730625328252970299255302348501495741288657292847625297990251354683365234493828409535281369154828339389141553647128257038360958280490045768273787684501890385965181170283161003234581711420065712417416979387588802721421155133250159681004559610712476272346179327696187702676646155937721967730071371058886136657048456108702755909179630934404096919654003978455287715818894052530265517889042766674536224405868120479139448334870721945267305018824581390773523205973854625010786820958689694815286009707109438123826439481310315567325726929275079697878026465940223744379979809374410477838486909572212899192888756349710166289091869158656089161833328360967191343044805495438395955505050000732518779106258012929791921308387999046752029775310662988175573983953297821153508352372493130318036320516983935910486028407933448864191284537590065103414320178662665489895902807419548424426059415618601708630876591600984746163722723614400661202907177723424124621367768111560217436054209106527782985224182531063693158298860038036453815564225948942324394231543139741327146207454160442980273789209133530125387619705915855376001182665434967961940499421040966287738306752632216727384851685818940692792705311995252848856288249318337365291464860356618649754483699280944908791744071890730045065634557625760296965599209401943146582090707783183242634693466273210727436670574037208399499607946505673025387784772182288971847643616408241740412248124537642690617643961767463740091200729050711959388773244708963740447885713387362357397547328243019599120788411910935791639662792515666774478017575819959857991840353528009402650720909128771708330835674988593642457513939695586682012421598702387700068409169407351376076361916581139482850473936324655884246479269255673125245943185032587808016796530250115147208197041856923973002378302183284486852252332946970683370833867272087101712770161257198135079305071751477163697022029667063694081979160024159196087152566907582951530469616099447789632015372005841763040503085611026185292489926636717740149135113186458084036727640150090473194966477687602856649136825325470215856773297413802449417998315589449072017420828506614697750171400243716082454332140918599209468990221814976902531503616052540239496432393198409582190980696802303437055613483186865235155140219264833288978538743862363052270382978434066651008874062060719063147895965848810002542420134589507672888365900914484103332139869287377311132381648278612159232402104346788940849564068087748745174560255324666202840352219009907856624828538019755831741439006097553983918426806471216804758455967560487304507585907060199703503047819418640563430789267871380724074141282879549570230077832310886636176181066924206985057101953442615145372111189604249237193208965255503563210174897321773362085594755974957557141221059308629255169557787377600480711395999189991150718646520742202723320438028439996478515693631098690906148168102431612970148311678630558890302623214313647940148422529537880204883117015008174798303877578106463343383026247935304495340448762375427180716609429722649375851780116136567177000299625681396766738651030538634813147448089099609852884535556573463603148488531638686511557984758317969864352354496817844544937041932521239971776899735770579628044543927935428809022185014352548082726608018243014482308882610104062949183053436505550856633115112284750650362509276604622267201885679912412267487250973594595546594178002418701320432631160436324391233686476756426514499703218845655258651721920307230786878685239918851895990222228422893194211960978263879174646669777033861774978122015134529950376596229257884119586096756641368581575865754709524227331234460710529382620823703967532616828645844024636166734759773276932450381655711878448896422759404658691415873638422667146911288929064769032453373245513819165184741186654597088419435552552965896195402977597696014458764757951704372366734909210026310944532177717555533769524292193015393065011424156884876827703651531335966065613076538868253080962228101857007962142414353045267411988065015543641467716467066679929558938614004492781814830271095713516703218764446035288085943456934258311805577801741351208576166203089960066411586059032547929327788181145051973887362629274679278278738559274416526083757812359946611553439790388267072594420654971004269629191103810131247885198498475719111755291155308389486520752316978989686919296797233303983411631485929888268560888572827468287811965967896749136929322371873451590878369688611124479152478108362759528562006362134647265423654163205486804791694679251734344749427934795656338985097564240998999394004468242913240000670945652916875600935162217041851712629331127532478128299765587728787173296031121597482187913989986744316774685343186406435749850807199730440240151544849969781402014745482540160847239810729717499525784429170638315578995580875189818913071496304577906141654074539069762368460364608370955040266475467153775755732784293230296119391079438209500574158359151712496805336926249969083878181170009645904587175238044483221615184329004319993762785962282902357870459502945219869329077351885530677016126680311119802228105435341957190271744360007493678129473745100802128450618187200270972664596320629491883284559052761952542358859058358929740311679872565555074649322038905019516152750358022604029112280991364359927373312238862321044138753784995109096761626477890695126771434460391662399822783718910512415833085036125095938299851705001058312407315011741019828339373683004400727356860850562792261804179597404962481371378112687468277717889231760316271894536880643602605057696019943720472598847184522503275585604852389246111041070557195532875208667894042410546818463563911642167164752500154715536757092212676524814083984632418573151762081550709101220150130097243892048814905869411440266821660387044732511131040411490642610457781163561244068055523641541728342627742531908696563319382841786761950512430274622043512288094805014555348468925704791862022708734335828956632276977103492675688195729787325268895882806919870709466744211377766297116998697385216178204903115213482517186809337661856075708073165826418657341896876718874036536423790132371226877236652507705110730668372277152111350975930626725210461146369678988780470238730942270431244003486269408190386297453395034333685529511425947237747912928472277627303322146065734754782465882236748655367934095337893873281077246584598015754590599881515708775854971581214997070581194967997431817607151821671277073115396780818019094562369361854786827605517327992468890293110099266324594369098238214600259331888749707675837902644602220005973257917436818107399077862318340076564870187854344671749581248499904237548979739835837424124335432248996217721210740839986886276259056300478834743883598056671452908191176188617569685498769304807930665605495072305950708167569981832122815678843277028575802174082437834014982460921525431987834108391407136140895444381525794681659364173952971997483174086989867713362875288322973797122381872989310177537074334125363255555674099709248184208359671881781853484105298469926035088426783367038276362300307270479462954694474000231737471879808147456198021555481222854930839126573385425629737010967772620902543045930404352879326796326870366443043649006638918193507541545117982054359151707793686205700268337027092726162637276485074846996124477398670018444820384176251117600130448471882880974193338333775623233486077441712475488717085732602882897615733227230100593051812695656481149736706682828056451259813168784205602233876325085545543099780919240447628753788794516504569454314427299776887313356666639020719840111020410153339857329547865946156879275102994285458995473542171207477695414102415882069185928975425112288472192898244362261939435113100106972165997358098956145146269474162901677533669528023517086265319742464392480228576799468459379146512838239600753642287886575289808534002120263490132890796647702425247525107873227510352620730536192612307177669201647426514911759060838217058602641677637684039383946624299042528230552828773798644525044091059271518322051144369228687951581159863627054278211423755424773122280746083188868657265495280724482925780883545165961389150998509946472273977143443410885605890483861598022692565899457768737500063171082555322324248950587904560664892586170094339502526243711747971197620821559017832288871759173330831182433344227857388868033403667079260128581857646944373701611910835213308281999798420922929525750272763887844874544900213572037927772939767234247941705235938916418561862353835853923630981583974559886297974252701921362283688458861966457507131433347647378648847797957560362734011895458570121635441926668244446034861082674758539430704538637883852716016282720291898089148733108787365376127214037550100944393626413333990256087040107586243076986906607536367630498201374693883332650071500015065349343821289573627559423628799082327872354105095995874384135347609249924526355370621690696067177920642462810723751303936913534028054134004502669723370953055706331809992396296404033684024511739775741555894114201714920058991709246330227506240969509684922787327261288751751076940564386663846007067421240047897504409324250692379116983968908519075354564377463127641309696758833934517973278751790412062075225162592931920387863433793200765892452589547488121838032703947570720600613652704634908177436459359533700624732574248516923583063584937276519598537722528448566578043986523411048572707264656632301160961413818990962318238996555995516341406485642661528246749136636390380325906614735547739292602093792932465798139821124986320024869408808720614756217494377009815688895357130618240938501348615822489933578892981478049611619718605987526425691760464892995690989148731106242630201035300997710006950325141127532351910008260688566224132659311753154125570201661216081271149589800980797136049315940286747185556841040818116374958735112300799040627313344499030352501437656997027436728191813022472054320228877569070767823064715615490197392622156009488611754534754150267910268266738728647601538084235915340142890751265346098332661602645892941196131616341260368366276583935326672589688864990276089775489518462763387269098555597779012393575610809017658027489461593688570890317250329520343099320321689439758780128772438903542068603182342849090645448225262467572649946317861981302378545863786290953767857285629086127378707763484305014434628605441581073516191516674883252271856383163980754320737734696152772871965468997456063526822310191786620085366546484070407091318808372445551938039844583486930012352031203427484923178349475418480058892778202275131818129542109227892363040245425837489360018695363384356151417631250886758744988217201050060376836203220863064567655673080271654181604496552318283886672646521307571469537038772982796478828514836988382021359921609677850346262504484014062552514853139585594202917009452515382742373492294218357395846011217641290530797954466775951806577730585303506229655417479678054102038917737575382072595191936833952780683150471706398106023619059744656995709453781958440824619865002209903760972581616843000956030122562086122963470021968645175672343356977028337206373319969014074946647201536979209609675589025045959916140784201072931512442004392822387788150270422015815840017380676329467612868273348380179941039565060202476046843987004725225917288182722762661109266513041675967561015661653746749326061168037713314368980567545062275853070461399074860021165721662973606014651281315126858019937515631199975780965109359953941034006732883800034648215852977616186777252843063727617677169293082697781507721735982633935709033251007071468915012329124149656202507087600820529906477685174263114915107285202676222862078745495010083369177463343501630639227311036792279583546135123013964286784907305787487602408029536966506797763240527354491285415382567587766520118907345869940300036976428994000693860855418992405220917829005973932597227208307193578903419092025403914024247085403407954352572968517250113018975592097314266863427255074902820682857889002603266164528096634021220022050626856778747967671720971205626228057318221966356804143394005185135368055441342419619519640734169131773175181443237662814975677926225886873881730065765406646581439123765742038173323858442833169151152334157832859257478746636197280377226069069813632150149000831478507854070110936231284657903045284230783518206928233878980404559278343017503357285353147267146737318975957520977196974991568760264639329675518224119840988423455247199013269385992387094759063881078416265871067155232043994040159189176815360442881442328711305035639987733984519164056883399100122781947870119485328417224860027079538379538215046709497923980781101129234196588329412595728038762606813036847099867136903658473172160045990233027602983058498789964949001452227763979108615623839186813376583367185612314496192252137423088677284759622417635044578068296115620807483103660170459124460613633945406148314708659300791107766035814553066131181038921824251110894799137075551822022936860496510726907269338275096496036501293855059007856418616093542998379765159465823366681891715240587325177650136088534619414830419943039479378900873057791693392701637977706055318681196376036600850736255671518102266279516417657845124300429486794123274800363031845310376327999352628087770563127155201058931966944406862056811978579411929757314033102607452282856380149297234320821377189709456867424297563820364956277129354727851112942084551035621429195869628827290000659838724480397670975353715812268578033601887616360200573665398387262486029014385150777092724896802936481481901796676648663353938294433654008772371976468902365750480741799027731449159789255596702403031962786091375847495044490111883020255088101741340745678540883802252091623351851011050299434310375294266387765400249382897385710767898620713133070060118271449054613175308376024860895709372326355722702204427646004927532387730108459773419228417284969484872236484995948148099435901958996143331188327244796199672259881479883702847969999903650678516390216140836952703294784823526714829093328774654990556171761294821733744550542822268908989955522855164714779400005583206802728823668912292531412791039794918018677106368480494877820540571961806606275507740303343126321582430924983172499628064269969343109269070576187278061530942471367932994969767012801603515716406185060500496052658162252693414393285282366288635472192844411722303174433769531739983310067337619640573732009030704718727225982119416466639149293190627727468622271369356330155550395926141866445961535554718086883562626357322922701239385398000655006799241538708606650314347448115495057315804875687677067682246768659828080143204977087740000614416765430979977346601186767633303775665517446080142948028632808301160402008108248544667063276447814624211390853759310376214996341587449193133566890359289474440303131717675328236525054123085416730848906727778338280333520469862221880518300449500437587319407308303147567388527845866560376592591913024788609103428329798522791333089278400156565179025108015778974566090477534523130199100555260467844336246448140920491089068832323512053331313571601776149769847781974872209996268996388639809830092391056048335061822075477738837220192507081804529935072554470061883270802793675956218295832463724318298406081404867753540617124966325242157396447118170831395227801257237790743508903793991773292763647931551711453487894663118910913831291106032642396582432539488892620753931779230128845216474322873414653018114590741340097555472564335595132084174060577943807515391961448513660483972293080244239227784353237068215809160013427495012749293363339611558407606107167577755409158766663202459675893295606754425207018357946831720371694445399183394311926003707371171595420717644101945539588602510421334806942621523239984565146196308418274522774863752392939985386098128169839250630429057413511652043175206941154562837656463686682216139338614489744367925412040799410833006363328516207824537368079250749016693925417741698703205117966338876890910858235679705626025574741083976179475637981396540517188860374215588092572195444151002321310770699412327997924464928767603461147336558135449698041978108452143224241338617669891785537504348584157112487648408308616029628525905857424594552162106131984389543089221073140868732286689891319175769025097187578950739888684278401066157982274536639757321006385638490070494356817588649141631152156507750970034626272373877877218725985966695309789786660196556707585220042196226527974100255574009978256595813887516859839063297885154514013652114661093470770684771518513356816814235994552702782463603855627828739382027744720288995858459601325561268721628483943651194222968801217418799117098980345732272785118030343507762525083195798317893220859688620811800919323533382854445069495915214406813925989817273637203703662676472655633248133030613344915932530865641941625393589271681971435566564474261360723028603629655294892167459359812939007890458564357800972393048802191796812169406080454213739609552147845804619047599551233217611619368294836333389596666280588976277423766788751155367804208013718354548546149602311671048909784256669385211707053257573073848444479595080323081903905623452361485330113534282409356580875062156877636909221533078795085028308373038543509074144425217037417571750598103605696261149001499093709855902493988285463699600255345395281558647576449765088108003951416122555281077204096381840775646817598144582746063369556300337601603145843985516583126635308376940658868484036166765235518182826063510185536215640559078099343364980195735088188687388003916405590971397008109543766132336495968156062853145548946496717535044294181473003322269490577460165620440276527384050834266469460696653679047159468241502806029199494557185092313776199312010926459824006204682181407993934699450915443944099664095888165954484479975095807982224668846064387133881632414904242033864053473213221060957506865441947259277848474370831074486581487136074141753134421575051962297010500113695831813593889831656491556392857258321162007830484680346609908183150450116777523683821143657327169746220428255073024173197714748317253796877553757813801811436062781702935380868956029370812035019423365356802593202411705596924374455267791015856503569560392440044976586308889318245049333512410205227244777082251667718045860759649069217429977637630630453307025462063651274786539069894323493365626791429346515693332958601606289848348204085490284247979742760203711307573588950528529047947273901388508592434345049884365813714330793610276742484878540149687391207158379501479499596627871750477561110661952346034307093116119614675975350475100994802998943637116983856283098087106071289253938932382868542875415899018615510810554009456432003431681020967999419986867178471600514773704525464109505263412861677776844627564521391047295061524614020314273776168968376444012711989148268854788138519963202418446299791657127167501606041144659329410535047424721588080933274880085264610220584976654058290563312697806394806475650763852680091559933414660192292418075512356198499834978039686083542697830452386828270555595220249086752842596799916060020464062101673953891597345786864792993651171936128239514284099782213797937564214496725136059360326284262938691801917340700425261902922757936088788550140528946410685236944789780400651479076670857212275978811611598467362395830319606634266495542308980094304583702286432587172373704019282681174123938158260691987987476127491769815611436824433631184264036936911445249873504576943262262560871506362520251902377332382333492455023984819040763182949581356538993034631985096237889520532356550672628758026662303350229676859417515377136326640574132493096216155501984133508834361716781794857321084193105550324980244501876063739745548813918758320619323511531096090023600224971074029900080810779426893780967838527646202139521871140990456548301201747392909627033511378836084964661699204474386688101793329147693067683593995298906782052266338843800121056659406449303739146911022751714093298774161749411561954511643571315015562598656981095914733821061046320345851764595955897717980739499130620788176594478043574063119485787777019143513772736143849659667775071349768331468600905744226143383344886326700653705579729999813534759077275460739002767039539760918733182411521917202192798824918469989727973114421513709892841182770755474368226141475058386293845748653813106916868079330347029583971249891848523739264714195564813078484239143271995205461658564339533064304033836638436206706593794547950634475060398719055172210506566456254072260254594733742549046150122829234609258012622261969500589808977505681650629138961407636461218429027052028363065920671979294610854845177930235496879185080017786120342105927028145499169066697578230606725622848862962266872130470647998340512381949203881762406702265663210536879249426060086560142736816574760577993410061967707466621647444404783469003340535146257516873605401896739726202729836296134013079668186837300123716937943410622211984811767338110241972716474918919675148997249012273578790230009063073389789890427465922825648208776093283575233973883816856252971670492333958485016603449020265915466325869254695216707168044271655782387719231444933976897870549352600714817276114295867799700956731259947848786294234519857789146485112414775855609642982117189013486823822810769791850208115271966073511022208572530145828094352712243260966815967525418807803657014952829496456756470643659964464661088080684677675613916012277768541408498029116563773722267539841806085760494178327024844316492146641690474946920902985622607814285212814324644632773657875671986466193688094232432877154716674266462354748546012803741589254540679178728404630890809713546321216603649104381059965612689055926528496611313430579881965351306674499058664906282712745738553326771821192125468848567392274034042731276420847790625320417173008708329587365349909840669246389364763432431214782276478064462277601826466140127780331710274016131770610268715468332206126396004216993694362913631948386650067233438083339906801554664354562161672612074375258008718411130737263483920431490136712815732642233474923301318895267106305847867921621093721273681313622721219713130829395479377056180460210812906701531776606817059618815612526132593041606149377966005932899169709435808787020188993958810224923102581007839688903854905727472019486149435674674335791705422844035909333415827889997146332248177997101572144679334429102816006643460037708464770681183106755025122254733922529008343464885304020545178082947716855057312475078136075660277806505339732274657748837275708516820055915712383025808484672488698984314810434503454400935412230357689802750946456497278556908121770355508135318671950847410637671183942641199641690911487705899337784467474450966990287218699697570596653818553238314052816955263467848099139161773817793278806612192604741190492008715439245902809111517199020578857817927103024145357447864837164141048477207412388238705618731092264013121777010345766839211740370601039486776851790341247093501312007444749181088820477114047533041547719028650956410683648087419248273305809171236262313048041189808640075061680818389117199677358083212804132381885736630906706187404957132390557790197790197185466533925459248717582208692304331448716310509276868320510097252614089458171449276343398779720781962707491845798102881031460214303313395089378520017905566584028730015250102326904596071295951832165367987753370433604301242896009158177243199329583514973656360180410280653389538265795128474562005131000614497773809820585828355025562661100441692317677139991481407972840931127026631834603797263225075383289497057017868316609236631179269362574548418264869350859253446334156553079049398808411636404420329249746516372818744783994782030030492827161639243262719998211437679650429405125994694605177156410466384740544145284211160236513718806889192573493921070593761884119393572216193140500069850120697391795710135937357073503962992527285966641752832623302608597537540333896614436653538446323987313619418996190571420629230031517026035632982350520058622649192503178438781310120158833206912738407166671674805047117442796808234392672850409525429526304199641022999715458228979966325999823976377051590437971060140587039000027043853533397357739655716266698190775109448612797639315852040002357968109772542903241797844611011160111049374268904078050385435539573974899287691396460167224274921007011444882219864239870100312896478670197553004294247619128886739466305972538941283371101135692138472044955630197049592134956076053922390061033358183986263709929507496866846301005935018856136956571929407524995198370683287466020647992378558228866842073680063791957101952648004055676692134141480526068266713348240432482372945985453675300029907650839052743809548301309244765555661383380062739148748899942477855094332245333075341522458322368520094573646904681606347535812503948643466151141065375433989152587647163219960120179901998932304978880052512284055266922336068738685000514516521722135927227745598013780739805198103455639060567521576266828361619265477545011968617235475522695132137243949179254800364413180502930705729679741805820082276158535327596712063755084752027983117391927261471493921817104239240103323144130886678894345009136098092171761197747936429108431610718529036303871508548042674117343764652263808506254062383779976584182591198934099082984243932090009269518556060564450392728398675955745815529811825794049027623271784703918014589520047747237901698207009009822554140565188547375325889495432809054682895676250495381906674115654637143140602960739343831293697678169136940428485808650697547662438170794442224506636720679714946325258646484857364179020101247699009002574973798272846201526652900449449390200551865998559807064894605024466505036742142617138924174708121048056991633040298110475855507852189606493051260974544188679635712275844714403217234959369838859778340457409592982833354842738102064727966849515650606468652674365209181896300384355475428349374240798340737105526716822186078675859900684018439434498125556412267350707881746350777709214069938683919463575776021957435939195783768286125446075042067007878172747962561081197286253812495556635903119945790689018617567158234213309644908262533687383930340354661819051036836184551181001848527426644655135140280947978708509157712334395487073482217591266112944761196151166018013635850837631484328759342805661318131844751640142069552778403831224715396136135069973676374266651903884036900604547152021365932970149659917941317657712862063999056228727876565335042466874643876072619607272836856235094386998415432318443708785205935073855103173753135074379603408230552857810284957285232687823447124919453885606319736976332032236577162760865899271324293900735485027592867689600294313044400007319511976288974688303679434190977305468953524912712987340052851760598933970545934810592979604107098175521387360519339734172866582405072721276447826634654734635696792373051543105919281942378587459431336222001437428754098152402768275785575770184576961113299057957825006358658186382731676628667868882018822908443999388975746108936579485835412458632300265544836775008226195543538450641571108494321152850338551136787073150667681517861868171297790194777253878615923065545253630981566236013648821027092435101299459584009356186150973154696309956452144875406224681663262138208380571143998320955254870307602708031449472352255120678692968698127421406595313522201349902367531588110016585499194016101542567142763540353793388676515192497571902899425416626882343222255509484433490720263569980072847856478164150897907573853152699957713418856056309483109691963735078778012799360549278923948892614486886601394390898932375803044238074049776104109453672821355900172666518768367702277117589739863229623146466559908410644564422276104326901334679347068231301478840958811889086163967488354156982927767460047257141537105347888760190438707816644288434870031513580843882309578266412265185398881723798762974058306413419196604243700497737989264894987397692481038115118641170482906635506941946341469245232318471577366273795378407449000676587314636045364639678990614059613688911320584900324092290320569742911394579520843811797101990814419179093210763247641373298625959412709849893199240715045958524589532084596593185428728556996148134175077230414754092703297648744248588019088832520356552937980076456367092399879013791285669609557069843310074289128513528267430250758018774695793598056124885740811165254248442097326409661538698402516691310273446468357785988424667225318744332013564794259605673172852420232755896830644965994576084900347098695660484421214014397888693208033217647193804373643609217587143330676962422228956792945687965619954342374463079918073685312377685760044975680591349486632173060290970730291244060250226302551858092441013532691882166581262629292910791348728883639244342732246622981214611827257782834067617380838946335468383280134231355244236686166179450845362664578837535658004943510834156839884340483869716066714462147859504925391546468443162791037812941594255620392271836369902985749031309420140259586293370665636049258650589365431603076774886961247716362569927309085489008148047760937420621685355317919493377921859940828766618766307116425270758256740179192487751580805491480630887710537970906112902712612829800464067133205616476062664486993596629567161468970374909643475962162731239451151972430146062482351520165477371397309974501333889939620421439164789311532692877226660214818429622914034057403327193001902799433875637574890281172676784070596467748590398713728855864514428226469117829371626000880425285132186596279493371017911995461588637130490463912938250846831771949065073120204632891029491586817118759338609517744042025830073579803908182469961850325881791607504997148536282981295562843768684496816102338994448582839820489679883003670102535462756213380044649095244334274741837246041200936666025129585389311457931419350212690700149442809581237435222006490196603163701370849300491422412155805277590897906030464287902032328504006044651635778972141160185899725308641047354922478497970521578040976209109794660904740365729043253971257011947223125062114422999312691525050863361877868901510931196073691161155851477731860505664401924357670579357576009449331379443095805393755157525144960549523806088139480036904243306152758572616953612076152402961387427813929246790084035115571883552273617311195480647052257702115377338096809849864731902647249634651751991784620042007777489800779006097732033364956398505560441324494230706446214842455549752831201362954693708448555581939823372487440613645333224116987417214830936396013850480445198887519032469230525742755502835776560371027853376972066842280636717063840404643982899049300671723316623796022792776657605657616969472798040650797386592506738584872237919004179958125390974566531009753080507781027034244785580611706568016543332528867746142004899142209646663052505866381215259962002376597988053867881753291400812060389158699851972079389571971446485995064296038133490198389818820351738165152061893041188611057231639252137189611789793094971894171996369736892758284805022169082222684439177788403130836085572230872560242727002745240828821623989849711470772955247437398012508624132750927908179419233170832462427599039818533006296706622785908296037063680732590813838950054770420892140151412712081276555532523685213720649327907943970983808462591534172724214232804781753205299621397436820906305266164225372872522077338934565866517647912741106614371662688112581419216266074794956042428446491057184215853418658853383176421921503277796212126138200124483491856401453536431757953207576531334568961998316916698020789647735150561204084356805479051021099992676194079023272783532252941028572850311953079043089799245173360592997708167890471839064718235235176515616077345327573944304083611352012306080877592293431922873467421889406296369712345499986450633688096408415339167396959420068999833616197257071050475798738101764978717298570332915193487582556161117505379770544588555143962354916279248723923722444085358019912940549669135445692047094551507286667958278570267140042140536822595464836476016759814455077958877379635279281068042127361673633049023714295838884554410222483168523544376535500762765385714505390809149273329627682791914709488007836318628079090744454648383382634448555419140942971171098590254477462708593058143667072233741174306671694644146585144163906433868995414674248586607049523653523879612386125738113200929211213917082120532861707738814811835777832650894770038867304716470972838967964268850763469174880378559490058644347366979137204906110763628905859289327321507690949240475296871560551620909950457061515454430944106659077385375137243221598217483279142926767489138550197190057365303459025340376884550713065336711393100186004460229001621309398002684374904820411035609724331303538179038217612979030825087552193360757704636658122857359569009354041852956516800935838213546936577669577737429236100044927917573222548739597256069146249391402374653178061699931646995392361764753551048139666333126082091657663884607975504308110895613938801356891690300632761560815337035267078666876481075888415657803727327705452945414906055730116399261957961628785758093940512632275109018898769096010038146084878921416073144226727288548960740896801630162372926510736493858633473391044656775446457229820773444751337205977102311099419041823858573795555894929223159255053825029727489400937748451389870025798726490986567321542159263030917075287989142884179073575969985257910543744421916459686161871577858108680607265926191433179846840297403022966915194774979685520304777188376272804327986949493102753744406985373289329119192825612923236678882319928013494684289894101048560201517784393751306217238112278706465187416984796393877257044508708351592317432704273202543698886659909301083010441760067218687563560158990164250984476162396437422963307459821182330218713010462198403763555936477196355919395910702419396730726469503455170205676361563952977350321827062617354169947774638428623780222177092118272578022162947679630873481163421565450904088899952381991939153334123387470314927908252631027590678944874323222267862130686291393971459133775261962979312065865710796368775905964683518660554912554570049352440565018400987270498821775877268832495562144230830762031053495076715804913746622206706846206526885713906976318751945023674383421140889846265075599808722442289705352977125374539410423699658952639531632893523946850868683706870097162033744946464151472042923348251735568321557005410329947210171559812275993834385792361612247258219960894974289978518268501991322351895918353442426484289104177567680087133396378545233175241179776854208708833279975903647498614838902782272256159734934587575660796716981427739416941192584784546375956369436018417997384891099352053022782203510533065434889531548067358136104628033854076686679611297843878885482698306535099038852184596646593135370934391482858502726003213260106716123935596534820717680559862354528674050918095443742592332442768748223197143276288888714832125388192124836816909680644282926848866530880520170416549149927768425259641665483805373795265202080850792086265850668680855404868996805572016634226719004807542957272364353761840364787263278106982252635047018662516392088809706897146180158200136601467769997051303258325535635030014051385369182124060078287077167579223485484000772883654619290735060026949481289764318533938887217375345330900142489289999950353707618159747087371252187438367197338602324561150841354746648305516599680758962352515636134429824048032171118371605084911369601264220150374026688563343710954382993236053406482797770224172282274641073025013035732854423308549717533737838220258303358996646263229360438361152250431914849566062751552668911954723939993165656963082046375472045656248853585056191372990223082689313390677646915608141008694667175744490233463292890135795826200397429066344032861790229025482414252987488972545664534364009082021366166491775026507858089180456215730854083099670647040234674685279763088185301456496160705992601878981970374197389049006344623053802159842388182971880229063722484300747323302324068759635701448715183431598581091029495259434189151542398594115492930831507847636387484814608826172690459180222621046432171725373330874036288559278432397146594999152371321339118883192184070149404208375370457212325731953145717372110262454330109374556124871836943253205458520998857428189907233861889632553731408344391695109978941735270119928565496259754210538782298957296817608249405912706331609676591078833342418703060453222182280093401135819121243749155173410211501420161615424107225395251902444465456429188471290849238139534460048973341360439306281833385093530811590371925899404059879231051882882164560111992789908943317955070077696061589797666573608257607370203999466021900302945230326298501783565722016564044923202420716151240594299916151673233367942938879061257747331399524910778020654767729949135230170764358138666989782957683191211185599254760695693338206736156952975870456251273020192410047786106985761372235193172275540999229520802234165799162121996649077337863419969545444595696909831148152841410989452295052729883996198025710551697399128563051688460086478561807725041079463747470376801498362807091436167567624190448556968496739444832230708151286775779851509141419936830644751737461825704296992049332351515731659357078382277498286256520170955594833824099159477236277804255635993219110550166271716506451679722361412324368754606702745680758529231576209184816628503430329331256429575627397558050851421327693167350545630185086483827578662477113411504855210958213941874286941571601285001406207842260728333640375069721945229529165275812911942685855695405994895951452351054768400385520471456940351993104311585659669976328460635454383607713581449260976681313498537449619187507587442962709142331577583519142854881796571766253814718478982723295879915424443869020630347340030582375126725133881361211321340322626367559070429101958727405972133771896500409772736782948154547796032175629176830074153437760507769672276345303232879235653098036240376142429791152704314016597266088326458518469600928346972726937605929970881029059127054220850973520309750999581080731545173684808361017334094618026234228816359737232732138283877217674203794009704043991747154333274491543649627095088542583024353928841730717305310519043762361189876914570515020430952213756418088672995578100226481477118134303311661581467818453300124708198423245771890049817930856239377265912540977110791520575753811067158281564957389145992640138625497330474132118454544120784077499727196711771438552988820572689866382583345757873871466526453502447401684603829440742643535103531333125241958520176791755154715497342096403805727894594235856771299644578253774746248430132488693082811455254680385710298102496242036880949296934347115491215105447194567297337399296776458121570609810830490880704793711368631136507042192531550489417355631458464869403168377821982636286671283361338952668227238284639153183404053423414275510122293173848184323969044706729184058762426529793025445626862738248409900328112995246495860079037377068683120022906311133850564290073034536591376897227089574593690068632412043606503669920769282398676179672130495206971360525733012917616834839520344678040878150793133119360479172015151705162675507694490248708123215648185157493715337767365468223653066358774460959365447074461323341284906529410768708201299714278271822980828802546715193108780498437154083825371945206020037086720035511082335440164604855410358509703833920903708775919336129547707614120061636417942831981122483545597724807450192906080169386620907422383306969906904727802154187553939607404083400231238204996073854137537800897965470417258091942750866191105367263140148529110440770140156641337802728843730400050679038197020442464779301840106185604521597869476349351901735335995230853269108087957506207307330152774808119907545523774291133154316709242765230200067216594407171651152047625024739113863038117258513483214338995841013085390642846820114381068868649681304673123240887717110365563820087379049647268875202414743344026200869221791816761199334913145414196590536620522578342543673281285523948357837821714196895567267365924080326525192372006123384625195591954421342937710922007795681560308766146400309171580459501778017888019595492954562301023993408555072663526195858985656913481422158045895952463911506792675070715079936612196478854693710603838545954216113350849277289691304510566498577601165169319828066179260742054524422480354807638973978524472866746560171749278633728809966968816341148925461754434254459692466572521377349343925632062264809712829480261032681179520141534635792174631938210472985705813205271668890638755189801076674088185966171975046499253784725063969004399902836835358132409351586822416783378566908286221382311686161858561422646604111260100571723603918208920175218945168803828426588822214749419652016103082785898722149977632081902158322552793165574845867229744477224559286751537194295894113865299605858456065700945408495490838385382993978823888638314270390128991393364823634916872155069339178037707758713392470458449393607095801545776260735198963586499300948502237413098671052221898902834861019288278863784446217123089453619915841666282942611406643589252106609707729192671927143839213165181253406747360418836990419704496069521136851554996633065067062229299715669021444025524880791103816281459681266869916410722941871459922847718666205385407716587414048568764661192287259912089855303430020534356083403154671283358507430852192186561334006094289922234104851336467939469124781902391132640512742452092202363904711900427663443468924421665317621196188398116080606090338844116897344669037302437087332143408035151974768253626539609847369713677166682477665472771893114605527429023505946298597343151814965352413923801871122694821593623821195738738421513914061257493674874836523586187422451292788248210697766125634503682302220115988758007015082200568838771290743821618446563090283127219749727593613316023861088444516993999921732122979874169381950090003581715725197285935883226497320236562537056736642641175710121392945605292479207917760441153841055004053808510352750489198976091145158335362204145092308949693252212119902483601231982114899306001733617993205633243014531080825432574496284520317425446294884953232615613197678407992929654102218882451640736639793668695618190938521980721601877755587809356285501696382445021414694527573829164736968513230840217733551051048111341161635484621133537545665243247209716305619734546274714719397133659923359034062310685048523680346532938095627830147589009422576165785081769558452237620385260073870012629881785266427827190035150197009179629265186074276760375274569816494035951462314663064073372448444181275698181367969506125722649632022621270044837515547610604687969634385956670929912589947878656386845657712205020054394840185035732115291914110297963255272716711601079559534391370305601531783994673594017570584935629259633008226537883158558980205451257646862845871531430635804275187223713521714075528133616227886290327130377407428311949809145496011975877704497767608999299446011117863568973126249663076237906409409124278203819054825866061442008008186080422762725451662869121096684296245410666784502824740562380454386207453567826417208716692278398098017912884749431148076682014732409550292722491809988250783069058738042244654084664742869113476994519373589177514981028397578466838742109316506049548487515968297589580094692103891729589974033968437261199442430318158701435694130211596146898629813414790788401837489227010276294695462257421545752656023507957311520451493585298949255831047653338289097976239194655523383035968386351057099053141050721376479894763305329200346650738939788903104999528253737154620002080231662652157109465888334675131204427457184936074900687958370990141640220820507199575380277373171193642149117103769804522026373165081539582646005598807192094968669093735627366268386961074665120760475580906538422390431617649331877665863475173223347984938145993482301306329516336799511116955970388753484446872376486998993543836813733341828194815183111504264033097137906309904276459174698159622649069659364518396123281148036762052942682179859004091517566810304056336337163809201389631006272929148446476607996744026846686584607132087821830145646080062216991700649317102547576328252199220529046401527331514375940993810547928035683934271809591242138612425182790805495093511321334391820927045847549573632937688642336111836398008654871682377549557677787260750278159340401431757412638866037148964673600435211956892375587752443804826560397729042701951567436715416809429264199549746231876294463885045481289549463969441769230480639800683872774311218374837007782933319652644771642154711408891557495980127317051978381884517923822188831396375417614549322349189244180000601627831956188567174468954106484430353744004679329737768065945534107210623132304926864561646305716021533478766894182289542334651657076530851101696232556716069513046872475594219975232130999351128131758658156140336113065275353635952012793843371715380602967057522339978864165102215037000885246546086732189486814636520011872325144263436144586250381467063453263532450055779017140872018608124412447354224228392155085673427266542915539146602180021875007474655942666943314121361497618539787986119080829536714584364909123262670563563309752789198695117294767426740024508867481459115306323777805499116761782918325207171517613774701262580248204810565491094713013176074939878596885119109454615959957942287376597476898347688670545667960984790271294834725378088193179630718505831746496190037177190537329155833122840328726186091341292282893273021550753850342521282059011862618576234929237326546639238424158471173818865608317830515697500906225576528296426447246945120461294161829537774347210058019277760637151028584561623791940146147987196541713114424879086238725361461911019273199166110909056189530876852144469418811209214733426339251412595578293323274858979139378904880179731727787818735139231097107045082520350141211479363366638479817124686965230760993511961709339249239108193551322179970105933803072874190410323537633315899611853518891841219339009924581692598992162159414328162561197213632622091342269968859584020076597051568244536020344822847143081775324253702609767796282861702522595421634071494696156547057887337372665339998134558324531608483337707424491865079350052504856556118246405410022602965327713445165525495734031699850949678896892303292634784612401351457614028414046533410907499523533831685261479746828246661674819237204037568158642375108886945641933594263162450043757577208662356611213637518142782518501894422717098013033303192329545676991419970754310685618125468134228266845813940701780325426376629562879753085407113094031487484604912503220239106347607022694538682206448503993959772465178906343144462034310079796912752185628330344125286593240110465062416448331361253663231680191562496347246809900572601805205104398273671105632768588754626421137567683655258222507253410390363647924805099430715844130279363696958079537273804820189957328331799442567206016096434117520015256297631988765668837709337543090024403705483509238781804176045459188630228174119887140215020010236870271056893724215028706737162305418376036702416215859044130323298331737312703258023688254648619333050613947991126829775285155482362398076333308265485952922834248390040446087148344271571086166985575911921566195961372137588462522467155741640627637346942230567833598123614964577455548323719794094586041578980934597449179808735947412243085034574804208304469694889409041364757943360321949724934291593522874579214063631443845427176862714544997052674666257517976660268680428808185829708060444267510089105710959004799856559519439669908338722080098395675191030506821399606442057940951785284062595704909281146696271054157993412571241130401133031323197366623216574110457352721494705493100071485176066176286426357854563871522197764334001880043395464252783839160402908845714837410686552688184764716331743861985175811934914415883707307396790390851884633656616479096630813725666496406556258651296697017518936759720657551216361402613584865201932509256176617299582391671998768499747878270452899988581735007962034893191653129312546204951467955142398411309942208538681933427147528277246207018623534570105974840776884581287087217708236471388272736905082974922395984565271635970293135614796399740117082763109254935246727004240617696078768352123180203911511943931518775115219861645253283752354473257900389887382382477222519706565883950308121296607210196964401327947684816680633106883651020552962585008784346469383103248483407098588956524508094008957663445800192828179272278172492250729625626931977874637270215901204140629045883351321700063232130817062875786068458148009560512021286906528952364758046896690270183240780386346530874421529571268704433026303323015803772448684937997848167148237851143320721989479427425830754292329851555535433070724567980233756426446395467814289912453058639282771759567595528957013425790723566940217937455309588508950268309767265672197977541654786680839454935591241748269670002448712241353593077037135642801492234381576519153915928343400999419865359815614720564999080737830570647183713225020404301081331073085048919737593247044400474703307763239949349308013294434536450886618727731626165924396391798992493505643031928969615941881364566599300222271089793161164833592547073564088849421962619308931479974755576652225282356284030097904204389949629987021874880812870460883234028740035369681348696992562941506577814796992516160901001468981971925290254042643135885715650240098799434415833449985839954452943318831769000044366749669865667718848148338887918894814684923172682458308556722650400414382907489869805806477831172374152265716458294135497279060671440793743965915183749983517312823004725778268053728403295526959783229928835760069773154412444827884081890236953700387267029364008982274174311475428095320374386725818407003129645056149387653654156066736231898739834976791735393160805176812493150565994396413769424038122304520047205608594129274254365990610528546901506469590368779189953402868218294448813649682339845869041776563042744444936094489664339360998687126228777438864956999739386814179229199695353473210207786825144834060642018237705725065990141530665499798945185091452291702084699119646132366113986640782172557154965698708277555109259899545385218174409660530840786719602212918971248895347062890603927011604298214412929902843635867708104229141060340905053934052082667446019055301143838132135394699728403896546770262690992006901194676172593418969582435605257569764026912510974035639617042419793117041527415863554737742016969030056534286015223304514737053445011704681369014239180993076509363386403695360627036251604860478969869732426884177739633588636522556150217131935303277119701645270630193568083642145026680695499236824156347115430212905640914643712154215706601379874509634604230083698473104636897306421554399470633832279644479665058324031852341292010316973177471782359103581574229377280843279037617803900361906110030738443446956359553304320860977168110851418674472836065150209895227502022426152049028031699281963790656167211588795000565657672807897403518002571543391521852617092659325346730222955705816378329917805138505179872489127546627824161167281579743278567009163910134197737562530368746074219082594558011383800984458820160894182783688208683297413146556326499747003052837290434843793806103957177516513166214382470123225317763397130700860136749790201875452130246437384060476408431342054660403432566815645362870235202289541336518398618404963143517138767859849990934087633700083294581156974040454885306538946186574666094804301582305352997558164746926240542397063462002183328091719284703509728610452501146971693343916079054754278043270122599631856582981631500839145898749639580805216870964665809133698010357777562413856139499674412473008610377953715614023197714733866255696993860217470637638869971624945428867771960679603194644922394033370790182769079609036017198448514294991109506251004925008268328004783434724449982761399505152750718993512307443380811376588005773782621818659707392117895037518618214738043022055468543749466048321557733942865952467350935216287628334501429691920894734745334708924538905084390275069009164664211352049623004907047941176741525302128034968472605707784675507082373781564697827106384373507587787973396012079090175506115491733355335579313539610625265307378182488253011632836758080900056685962190226250782572597751186271815441613680539049089272360286816818181740220177367422038073072563873461961666519114829127472979678646482136998348257185350352432534116681278086708141938311338507565374558773167164714657165870382470208310392721869548602219035159099166390625911915615636207290042577088493524209268895922187397664231972098007282484221972563419646485671809094490693286422487391826826897279308238867389303375820641818982220548089578014765049948950818807766722417422447491745625359902705982287844618954892957296262551903128487441215207572365955526890775446344128199608641294367044351957740366167094099325027630995293139512036906941408679494172593906725484652945974132764918904154857137057059661621041315956054596419486324946125505741326229625591830800944897453568233908220579749350026488084347556359089721067261107985698607079116194349163159321036767913384521302248452414343300925211716717935690397001420751206444936848112753663426601843308341216130372396411557587554151136247976696478275238884308201925188589045828729155654118617288086760007027741342677977858411090138403053420309368043533335931423632966520205447092879914162768793220051667620746221872425730680656096137825958765616227528481011701718426806777780541645627874566647199254209083372034496048574675446487342891418819400794774947611615164235008320322214755841225635118834852742367748223259930224104285930914383244338086928757004673092692620138689556769311389822701318249414260183617007253092069328316389146855751202065101996110120425664243129825972081175774696774521037168088687464797647123127237857086645944223603775640031747022020184737401353115016855048735710434463216427851736102837753101263466368414362908022017527592459959360325692346628230185809642338346447975926624552606425465845626977260802295150598728884718034356564035472923911294996645629659839684351548575912909155611375104067670300507974380364854412145869954856080165416705836189931589561578363270878131313586136380755039884454825608755324253661987580439392923760565717600885499554368369192955144378614993031569756777828564337882943548704554661744400636905932165591959303418239403173501467347347410655436734968195008621739004578486713071057096055345183961104230935760453174959798210450677786532865493687518042195663193375507999880922882960692783595326657648065826616267377609837086780683532260868409533875402102512755493147024636042382755675050374566574988373957439635405725545052655242796355492401344325695530016855892212362149979099340849244316098317530767466516494323021033432151854385849157454976573737202123941810782458600845010083770060848697610075203981316312041224193690841877942374371666172540005927286062941503480895748563005018498496551654618824157505137494688317518127811607314602050063259195296481767008785229246878425664903453287925728091923984806923564849581324083980326857617204361696043396274161860136227302897450602503017610285500795403561562517379499231927015756469898387408614579407012739040941219257510282151205983265689823271868752258550792159322072983889698782652422105012462580514627706708058689820751435905625360209075715837694342572332795302885484259291849363752972030249441052983723296394155709522213089209563962769596737090161946352725437223315862624616196252585164263256063797567950031918700316821566165623167161201118516837686963972747312365065075111384076019787000024792301382267328239869690140643669132109309172377568361520530268891154274278403773924722891172990640286385905289090278555009035241822961434925107487762280504254994059448532608539153048532087593813343213172755936006568654877786667628550066420290493332957057778543164030445263252535863565306422020759898794244891237673116629496395498817576396588841036007639442781566988200160969435948420472477600943462710539582013075011941746836661736371937337892903155348414580338015323173982946863396574377463940398577831395730634500960658318008958431305609522153471173296007871917000373331384711153441872276022057491910789833693484029457370157549238042713853040644609447505782856072095693256543706100196027342636715174812932392790290148307016812245261914687191229394527539868048983283892514538890889040885548732764931259128316545857324059653098508737548497697750372473836509716562593340842169443818696507386214261401269599571869599600765750000356961807530490575561096840130697369949388332378643540854164076070163730211753969873334842775382605712895865052539565328409725317148135201246393876451372888115503330275239944740883886115558100467385493922359632074985370603848896201437060965091340529948267481458218929496491069676883565877198405141588821296885530800083442685530424010939018394672503635489021294573445116111302692916152230788244120849969559054787863162444506249382235635687760539484385820241291936888157845251081217304525849127852422537724529546492141016985737112224873817358934703297108403076588657104142276175565655913149289072124518862972439157748000834936641109011651846334909052249030875456902671506436698443819593911629375165004704056094957548022525310165177445632902137519444588380480908701596451596626113514852252250050540157245526530619499730956791304172775384285616036915288129541544567687164792079540936588627327802005970554156707683812296175898803218355783079441615640014964816204318870500244932055857943000333960849990554642682970733010913194403984104043473531546140473644973545819604045651436439800696723004463271439970342017712403674185660370864324183131795247968097037477505767421636519521829243805246999327162362518574904027751466576824050262033020774861521036980748652680292549184633987469895244894475983300794706284955488832840729993518365664730763987442497343504698345585686570890385194546611439808684844635204870888468280416283617072309601226302910878748782968781320108357552680730939886764295194104887660936963748534659798655837928755994968047138979377300106021037617371241518087328185638965254401660610012018872062721801711091212837763710042377143797889896192145597920803690306933094504640647855574225587035462089312438138151812141054183226284320281988168607231916081737625985084282841622362928470972423449179324888283261684159285584941682161143182852460216431318196254025074205573708918221060725200512777114276017066613317299877852834870452772390185473969931617279108202989819293596454585998241526928513469800658443850672925023264949218493367572570463874333008516130241498580548584068827649410144013304974702969617180291352095399766842779755430921946910337064405945781055534487939569897521143143346972794393302857842338208902424129329229104708420893490871585288154183729797271167112232297899293937343654887198057572354307905023706329150368495093640177989875633887486267727701359480788745593729894306936571147325592779435872115163528690713769470208206969640641312680805675833110571696981600527595071469599803909147139952107353385948479963685844746747703251174955309768505587692572960691508719738554312916166866125061322991749704198954826693728091761760242723945013035681384504747565730004752845131320331390270944157459719149155224296748549497952393380957740110064725639090539931725062274825151963770668011766918378198391867203240668646359609061004674728154697047223166596422764309488159426653893858697936339418206558209878776183458225969972880549652759236689367814097280328846689912342941143254249569842881248525953220610280113580288993485267037587197790566875748693495110721882543329226598642344372002709635306984369421045594166347917889903609313448357880366897369908952319062019860887331058081149482475578117551466608623743962636991095888789344538511749770567067560111689008437594066716256289518675713709195468193751917842066993646274451176675454492675346408468933344876330220514100792058363072065875512377483565494431037181760593715234066132023933593143529054991416996635526574129089025477113589483580635318779755573050056602329311686547700258736801269285958899607958225249517351274099769290892989954127587846671457864389959181717672287705267594607246535786911504256307462709060472533455588611999279331194658733852139191274718454623037398881993017431009829260711754595633519633357164388754649040285836752204579290916664155791241899779687414981833900430236171572771063101491130433377287067445573833981999388720388608970743060874341340418487709772963723274418230561625256950576543630071818785001685111542604524227584017353627057229085641830331000686428370290541705749690085055808655044754721568976715861020129437031689324926012506241234132921788666910001343832120526499130980692932501519835829848099343566524370795031698895521833467125213969066043636424008204388029319280653194660443419012065172331516374101614403288530441688750318284765969176987373428628958821089883455321391010624204516523571123759904385204548271923895577895569695097416848569135776870843275543287272332595153960545021819548526244549671040007382217488197721773910998556113542437550173540080894914716104703708879580695534438325051348784567342831209490973960989376901524721886899435173215282186343002785215580920396904864493198760532305169744874449916379413232723523614014079923585835940210478115826797728440373177596655507107661447015945029110282100886370198249672366618426600665647036273541355449783104269062829368262815866915225496150464308684012742726379558741328334887582402510254300214374966449785645791841463447059523530496822532183932867923423341395628151929995907790945932509168480108782970791698608248687528854403474455538899172080920719023725880475556135113694098874837569104519270380261623206000535449549915307805491843423420406902641519673595480289436344364010574867498868318241911839760138555343592789921391453215281355236742521025047662630006367567322687943875181651076587210776667734151835118684166155961206746965958364790939538742822898329732450795148412304264440107991606134045552233496508276440463399148149638827203121423171985024965891289060500135672811593275621514097616639970904764071411684450666455779332368338553631551504488507411013478749926585960032778682748407105145870657975528660589210744280136957063005837986972040413125790816834162469113435405811474860773214809517460507044521668726928783580626571627383745920352112427522688422376809801418339847038429991143501947026917521947319205949063515535664433465360618330133613351768018667917778395488543994592923697276751595490538781850315677151103828628029375061313448723128891551597189989605720299182852593312357480663954905969448273482513903566128971142704916701131826254973433268038081153887736833807852681673772998402960607160434482555499739349655455030394059058293757853610807664115647665913998912039297874417307344376492251788508484602890562308672814662869771648918544173748458564478415512578475930633490169925887811745565686611540543763247570656099306934609270890386888361257197671686499309265933652698964144006376484481454227852811708933241961489675123572514587161755165317958943348830919032019025583722637957633504183528056473245739883675489524912748387239530205700043983867498389323969944170245482655322643359456563451450598884261981666145160107633114802320399575335367926457851498199551962193685035844409350932663883897239557511922999597440633082996677641655948806501876521525128024916969362394980713348834818764930015950112373736190857633776643015039219514896876762660136425926445261288024479824964745171879620438296229354981308921368251274565812998148615272136962645394648567558205246846235094043157911982504462994393660362600029267344764394474317612185965970130047247752898006879626393270773945749903837942502290228311670693701840115987615543648935741871433726763952361992139500603150898129773784346926273761668973632663574762059044061446618612354012797012918001732297237893100522363423759227928055877717576248258173751603791148763572472668860484285205046076278300574839671203526581893397668778180956631325130250556486074686889059371828504310072952571954273217311152823300765906686313369219554518712645660905187176930281565486067446261339779942003366079516845358298724785841319497030874861904269247617760592971581238233221156743323715248534481448787137266143144911568349403161875684629336004663253283005923689779822375842802359062882184690091559773212982893215139712496036224979224455260028304128110815872411906979452900268864554540153113109065031425759275724201834862177696151424427886973667798269379612735390604728561418267726012152585350028731227819087294092016506104859672518227534905220877139347291595536517551330361127909077836252350418311898319693353790533192183851163643420601723124495989800572117751959967667165536402214225618809307979971238813153759475642124164184128920844569045224297596082136530989961513184622133713818298150007554075857391212516208842259069237743855133082288202674197951040104198856579395981040375539994280084349707775168854077661171985570922022078645940140325330916478675515359369908936004127131936345758926114922126234335498981159382976008978548835214302248099007099338078977443561897287298775065220497869878097018506198315779225160114132820839987302349090787720233361420724440848769073056487170157973117526023898716982644404421338110900121015822375411757348784912087655561453731530604003771495469942877118233521487473054602202123837689001898137245347374154231738984568612964261880524863065987854429868252595388710737414147566915613523145277685963203856134713337760055368560653829022459613422676613744308409545405002112297386284536730953475618598875829676089904485663879722275682110921642173931014670506769342982043662140141977101632520714437172886070658316947480092314045092379564145750321115269157002053745134763518498729313803192938425983735101192893613546720742622266818738754322987548608575041814334346049522108881856935315787863050189522802439373526304658723561358479938503269660105391050626175604492375520118499952957845840019309448773257966212108983044794404625366989601182388909954367018762381848324355093590845100374986026369977925854995815590663367199331093100466747357690518183789462687303985656614473127638567957176482183820688621289001035141406508430766829841041162809510536798684083450331196771910777183752578780153795470963838816021667384245186235356416810402657895715940897152593678975259128299838523033461769624032130212917299436982504375250437758230434013857135220432044032988685218140066886964649295706104030707758901633053148355159776312582836910925989442387907175981019426256114690175539225118568820138298625992205330461982090869655738718651126647653487203764576692830047171901036687355120823930292172275941008041655601053523935486227331273856946397167254650321612256474763647783345339947398781597418162397903279925102909744832623914740033585348362952931482763441421643970582456414180552882708956963349782023736854364462366886039110078607099226475472308326684844896737513269968752869886911982726649084621714303264601251021183013711367268605074091189067599896502530661087382657067525799890017639616629107904018480816366116686419147215043960002421179945472336980964851583447747809660973209248978989369846209360596222884898695899226723764905433028704678349561594901676975227004894720233287245495419990065933240423645515811782771378095263812051586661914376390469768878839387749406870996623611870602831041599768245443076367435463107806865027673567244409578350714699758787530336837812196787274468211660531869991104540689901598423360843093262847395501523155144259265172415972009890289687175798604695851945627328539042624883399148365546968838411055209561092426310843021123883200898452014152093433501194711333991910022834506610197900715914801715881204348673190678372202238906752859741568244892753039446442992492376975975399503587658906935930647058674432831331976745273005909652191330665138509120865781439225102599321250554985640057207539310206577846202227340299391636717178000596962860059728764436167483997250489418190890014427540454042179799529310351734527963808796146445959786806302187363617331548175319065975686035187973278648253126041393625196760135870887679457359033222457931604033160397289851522044237482550368118820440785137587928921948348827868455886244421624967210064864582530583581440962286893997641264621612234657056205424236854071440464801886859952292506659894391171644069259343349309519906996518579162914672703933288566835692752321262947523457055353830347850293602212433605458572799515204599278859477433657440539811702218493420495172586329362710928642171273221752827555674966136282616661631444939656921559621862918302367916428226427434830913500845638468013385476366743113117163915612329818503797880297552299717645583543643926615840376903406707616890191396964617015878557446321252588166450173739016191667109026374566230046657217864029939961942428083778096967152180114925588437892370713333210241338086063389598653183838526070250699682724628575728600942215212934921318364897770045967915580440894606158231378171758360167122989689993948141259230332991100273663952646506331789591972016182124249790808759724531000207742659961868571340353908594034841755678155871688638627000370080796867148274751863925594382796379971789691571438473886420483787123776276395960372882781559337160885380631668446561788494862770443427919858259423235368340670488341091426999652571710005885088517966567744544759751464691257747349634991324122402641899779002999798955194688583851042768668352568081749596109177341754512636726228924650638745856516366595660070660761320958680100941495630443016302407221829987520742892545145495141502987233364491693549829746874249582016785344145404519506753425748232334690397597036782999673200088146084975106465902281106940386538123849091322334079742670578587617332600187651262640939129722194335327092213917238314054191033084572645544699894710607660226518605989244393670164449576547302865950239716457458826584251145641544617830252102338786649906230155095757950237114654655803204072265987000872626384809033753171982047399593834519405200421414981138120811700963150945063487857871966077700493924806476176834262420670782043565931699917167142163635209014357710123680021829474761646571536034606728375676694756823030529466428856326055242466616955758213471897127338768403648730930828280153569226435110252909608831731610433951060109483511037509404499661723163881121373645165489787630727823045093689444278852166249307772660460886911645715773696044632470562717031876358949506944412330404908495665581033481420479278248403285993705429133953522815221760079463915921166276821030140856638353719948814089117483694020595347407032073873204110881249038117442656659923988939857690370724743837156451393530122928631370894741836203515187539767251354834584296180094512912082592945593847432757931857714305206171894922635674070618871395978353083222481127622153552132879996929593885076007895635764995346770019957169161180741518757020518534457558507537165802269091689888446647732855104287268676941467917811274012666840239813654038674751909532758365547979152412806980211007438742468694914587193621227930924462170025155340570624267657416432347357532470090569735708464573895977643495294834148799387910503499051867442001709181445190562779011065076495376552638873565466289504220449714472918515021793114943965523415442255558470334023003936664726129122334573602101931539050056879041177262463504205314427469792845326661606082743939155367857793301249428840150709161419028057758893697252132103588544536969806136476364555527342101723443051530159453139217151768465036269315633127479892997620590995356353455128039310090299286057019391580766276872810801933952496851679452174902299189831711439995332993665645368238727906576778169423046710942043086398549235890470326481388711373833657691216133896191049184431215538265824822580322237486523341320965740191233648924913281635678803761436631183779865759653870427446559291771061440790502952816469121250361732584077326748417436484759803380594253030560529055931717269231581638460944868842032339451199207637590964787890009700112708953466885531071340986591488827981160187123501518306238986779470300330264574504756734064215647762143201688697068030305333627754505435530024118809664983234813743975424434340707019622510572668564899228185303612432529195293814849882944896368892324274445125664007450069048757091267846904417715278046201221212258447100472603648927021186500975502803783522562257514993162117765024298730082812316632485863376371233335318556441171910457460105275714799383559438599538742366747236322031148833336466417620511125876102428054455118509324286346791898576805558453679218417698193648558277520224239666953819673994455780969958817348904762813119947879044708634553324654267660739895577432719017101268675437027506097817560513533776574592617311051763053175834681773195989739095702094310678932721831166975814720636245028427637441352653976708255273435721739359063554736488088132658089306735278467326670782339806605560580525860577642435453095600193101683730028818102771441294601929876851893407077069122947991709857706471890722490442180917783302502324336184653582745919515237419211121342125911029456932677598041701160347201743184695637734251924397634933111484985650350545433758443242045058134449777652169549763386611093242050592190756017631601481609552043029937938408140630215688875236390120851594428977370512782362797342006689921249403962019322998996925946265527389862388013239046232463281446808650678707912383800075858869981023641396643779799794698094469771446407338344015534540452773071485657205161871308966781890775177584392497709471663490325688551559458702115198657913632949591782956844045863158003085662701917671191021654358506962228846896333076788233955520150360686807067537113553760139321837590187061514533672196251583569254475173290731494097269181959864349457183413403141863484121369779391027691510769609488952912137541618556989385580115327211692873926394885976075324551973473589241925501524352581614950972575053178013194665645904202568420392915517936469215880153664586665738974375869656900989915056334637412961609249946054702353737701104682916953735822270116195367597259835340605603515428617217191045331248629141508871351701492407899680644917706027505667543277239630261299110623575999846280076853464228490345410916890925592984399898971681243687835275579696531419090227834385279840725978043822130033351004526278892201912304858289372855446943628474543727821309684798073861711282568719318994465195193785187574878962477724707972023297176552647025059235593749108331337285784367778054005917323993788666811757952984416538257723305313350000191799514996612160147672886560499812187630377419848392116739002171150660817583850935559437007739404481923106552216217091242708389930304751498968417875547476508624689355933631557806615599905161939519511085514628753400481949901407444853953308323980218489531021253158295871790586164095049240026166268809050901115400377519300739734638706670998434362429075274016981656282688504582110476511349267056600310524985319904671463218978378517689361900350494366868878053118661132042782555013018512003452121076487737413950535559129973280111642877198153745520294476416733002780587027049480083638875838997152683270211308110321170196354859293668759538676860222820939490924841244421276657215080383792472759211291940257153767025070095924795735376676079461200819708075502785427590772108803119512728445548347774676197961391384520941806159373433934606436580231587720443700916686482758924062925861934207724254538569643491984761553495078588463416778479377709591223233225509704579842162613510434851310831442587956921604716244431058862785901897340138362503949952257528594824186509769521818946909008843403280527036869509569886045195142008583011773000384533839689904685156945853719841510279217637243058967594859771116898826939807024142905174818681759130344879192478337212244292584759458533553349737058847921733349904689940255855025076559418724830217483405961860454818489419379337729818318624490265422039023482412815923448056839359654601514511221749418067572345879603538609380749475627418235151602978236533621366728305429007374068110458044138306661323007457408330820938935588323895704336586151406726535581658631665285192909167800093421571978094775351731354371116299941761928751788936749740345728707521369198032284922014865869189301467113885461316833939292875506975477856354241901925772751485250190439074947704283435655393788672702466538732271643412784087649820305517790465242698241790685792059369575048910002098699312946765623763733798938745668080746295807329051148183952997758387853096258742527813824889903076894078243709430903478012322824904813910408437400838320770814091060979185743277281463165664105060417458827164627876564979516912324011155972418171417454248735488055204805932902530565470343504632589784960404783385412396727006821313852847361828522853027828728661021761999807592728143328024910855108830073761408552556730292233059554491195881004619715765995179169705633822488758911181556320095955469822206793563892163634376492289302738204242027665853204500003092946168161288693438049785540257208380189143800104449029582465405607418320254798905030309681508902968498479507465705398719265527656159460853169713623409430620016167988939787565886815056625399907635040609114607819353603635703752803173930032681943713019199629282037849364648175914238953774360320737296510430611798257413258224779573835660797947742879560355141785442128173423531938568658265923379902364658274660205997310460638429848365458728268237646988635766907419028055926655018146872507329759756663103472447977877630822269390243021813986638548191654655641158019693768546179259720218308322153244904865318387009288605884078667782780694965123532217453876691660483207974208968849056778215678329521748879226897132220313883837944141830307484693144529916543987824050449510049630147830418249072592262744925954747514941450498302381848852006236499645627264372154696077754960350876044433910700320349672936179505369104423191171300578914460719625142155411552894286581057424678263906384159772464897771265929654648079501865371219756592302678742188261193412963220949042231617489009637346687429209624659683661253521668840311139617451231720494856623926147019465825757479196970677227017651753792546153130362892349428424684756037826426673251663176952745496348159471997989234744348941823461665679919138817883685544535061266924873145888184129742400568833304740881122447829366635513100505762476627352810011697557446002907164969981260897161405238259190902193125410959972655917546745152245792733134210173791890840106988120330095989416879953000486614922188625183077485534793560111352932041632929474243069655706907012185867159116743304033030855041574597566195868224175133981909350929170150902340979604477633772330367242705796358649984181618220895269409575932265043952637419552703482669049901517448484388264279637198427907376861352222369119527599566545228624608290611188660477308134560958695889503956354284116101439773887663541226767671399953735821010303947607888128185821902210845085773012402373148810149795092240713904499546626669450156516999781340821427567764623185404582882871637264162591883973117218673125431539127747378545724264732383118947877692780010050315776387501346696451398063333628333825341785790536888778461938522760748953163444925574193965057224301838345229174402659891343071462143915032448612949025290792815086821730491780838536143214732476341205175499246015144747227873119217870626889723303322633686210766699518571579503711923377016437908616014849037413899620614795464315394743060082789128223309230912606241944091467951178278728507385948259172469210427624825334094535728655904537832301022471967081724018693380637732036903000694549008013659982617565338296139823533740406575170192296875554799291008301733854296023116714141440525660435619135351192195874867730808233611586416224430605248880321987630504467548737904996224007732243671133307823615172783142843108941036822046964761095587169038676425570192345590880853299436011852764534200461389889859200679876978155951985122508840601435149083805809285036727967608578272367349652743496217947792519567200915633685101280660155364182612308055231352108094929623922796818114213686664887261386140576887986076675130287568618989282353520609702009935975791537164595040027960035250083532376965456794551085407608593130670975645446739573718411592619289000255106995683541023784392671401592525226771544396533913476959559968872929787989633345492445835272034137846370705797642722516449281850981611924209955305948819969949358715720135594052623568518408745077188456438941857902547130531128283429491995886978034262041381042563134328772777889660689188186723663526652345261095202126865830428512335223590654897299524249759319454916563654166765796748090105272327456690506421166090731188005560342309009603509167915019806962857434638518577927003725820003930497889055188098139342429458411786149959478869681061831600510865133582177475784626291947303746754112115904202998825457180060016163735913094837394865459896193145311763073274177481722093180622661225048748518625162008454383231550249001498749819278584693875291052253746355328902745537529264873060781951774269267778031691119331599434483396301896373497357778428278602117681034927827048007339825761023146535658888197516356366232537157749762382845849189873889166187944428282480383966479399782869278267060960959439093235483629180058006675225246133377438845202253028009170128647748927439128576104442546182917386266683417326270854423541086761332186042579710000646437583207611639205640156807455888623882501494519599813123719826794501915177795998897096562864564161681532489119844179069267079706346938894498972043410250546371909315835067966234105341697342672137234242270129281070492584855028867908371798782125299385539350899092225650702743817531336370102401189081177443726378066796894444555547225540762153374317183858957931048216879488103144222318442565066111742370876685346679880882381628170358202181908619584002859133770763635919348995090542847941035543650209340912392903775424304980830069407555245411829315156299515749498893482223878035371640284326133498054064149265510793812140472621151841294902572847423699766295819243816889539532170582655489633927149062016715867203108985571062643785224154656791749770016560308501819294457814091657492229167641465100500923843599652136290529348428082162129350051653363800760281058784221486382717618574142447898151894419462861353621299823684657160256292916797726390322475313809322798973975847687390489646138761197667106025646523234815810049718850155874627134936727936694038134778793022881691689441266891885684477740989412571979994778410348428779505074384714844802253690483016198158246994468678448739386424737771005915153364827162688707443722966711919985792004865009719954268547990465445109496675087105964631534138490214871444798191293083914040586019325431564497715188599418232271173965353141034359661840818403396518157315244411688729794070296491282349206264001187183014008776016789708190273717266931597080195945708363171424687431871411446005455068324846494660898331557938220514206962463177111737650500829253151977152818083432998734533740516208775402877403511702197040035090296010480215241134375813691681038093300776702783352565035909269861365828448264239569645467417414001950883948118329976557167497599292822565915546553218472958454337255171691168549717254849417364424491009180207453921982540171952166772167122769552911444436183891448860131779824883575736343860206341822578593626043735953881759759850728339542860186932560589747152852191311875104411527517943585300539440910232095160300513205607933692191795358648783983695572352288549453361890437320202185099636392885867332709732356411778704261447756686874533704877616577889173546823009018792215715307373444942657548027244421405514089869395904935962109411359403456236475017412377079874110180397443638558679976540424136822232251971741865940203839982898895859586326398039307362990994749640643399985846604632787938499837910799927335703532038819607973117000822209694042686595586666756854879869362664222471039326882754470222915215102375237948409397657302318323065440992107299140200123437423559995076207414667499382527715086892181236592113113967941157970318160608157808350050983485405477412727605716331154560189809979724099485119822917541923426052251868444401952919282458591254760167122698416182584448364750316453753541314037947716683380230877531911177837957569026244881662637844561540613472641355094018524387294489634495826010082517506426019186841531687341987874824984449322831459049092481757799733107104646682959206947851089229748257876175750176984488805827276929931974391005227606088483930181396127711868619778906817622693977592301287816750918348939447487846620317933991612437777744304355951484331417663548523805827589139114531222685359188981968092995290063016002452014211555774200543232055896876583789577181995490575189289381085255655492015094710739148495544476191675341534158736554590970987200280089821323829097533851042303488857770290494978340943986207988677282504423724607995141937692640209116985966847600255573279976021652389325620131588112338720015953427026934999648997496653563674414437118931741297964827280272723831128474587647956302294912597819437144839731886668360687156378323603920841047873500184975880819299140854092925592193420209906604091560720326312773644737666682650659336135601029298829404535255213609131782271064140726252509705294538113466110697464220700319054850982197352585389272022182028446991104152714359919587789939008207432964514493724897377498730177798052264171224678519542568333774865137055274458639906346066971163088444866835092320098220636695824417509336765573410159068528464096979760596480278371024869127745894326103070930751043278684546964360446876932011918936460415886064383809209303935595839879582193704598296616874096541241325520141918239154096672627119210402634504415749150571565249574902380367094105726603594928111233107163930382564251529763054193123959229855245326878294835033284482403037399447553453797119822040512320567096049892949494957343413936087205220823032576565459704465327331606875330475612362538982858768382828271550635422668265282050698454919931138671743988368597266707890449877991468668627180338977388883816390038952345581713293361284830540198107541602612261305793485121914149340595016538194699051959625419702566013064682977275664308657378264138722229956126827022649304810197455550631565843237466106664917748323749348062402952715886434179570652117254846589515914648890194686074399055809778307280927825869737171094475244528139035119870463185382360818300569804494359730473242001715753211845460620019040340040166072145069669862195868698972964286131551528722229337825497822181002068537253678368395322116782320200417794989712189662093936992936842616133987247973552468272881017374294056594439664900212476960366391130493153863155870453815872769763539453665343775771671598075127285183296143848180678582373238187352313517344834722201156901301625907241637101311376993588169709315777215613570738435743339065824708033645074502407885544177295759142930355593486467794402796943222604985538811717714442451557355138322286215312433550230833816644326775829020258111341410521662569872731218783300676436338496165361875630945495540343716636958282648821759843036608173465703775877277817980477486521343093154820886404136545358088014892501959041453685536132578431837339981173363727764631316792275382812323198828907382669992254064932222933883035244971343852489324402846998301455223880031739202745376790254714977778004488147001783707065089698491162639977420212896548654978168457417169944559434248409625346775434052184967122789100637660500279480129070570650272682227698816699136570238274723034081927997035081389787625405599885996350670665058560539634387587250025769803016117441202762857721283487400035771866258938087903385701327295340570019365501865109938101936497024114798029450843611801344716772819875096522349571089776473732980776504343542140681077749693651767786339993715135386275546986109201689440580445492114126867786716955538074502396907088700836301246024035631169179707100027229653036069157002074829540705424559291070656940772020159109313360198181667097719780693338335355205667347065896237047754745289565684102667611379942721985194970640601611810007250220077661798698317880338655740593247201581130272116648138245429744037722687032430358255346401507933764719419205267961133903807217957818296412180741271114619556216474481879151175846619025749375634387243022946260820477309258975594565000156242835923786673180769345654182429174426547846616407619920901393327488179960416032997039665619461607062722451746193733185197184334030811754070504957135131999215942932655067840159857181385641049205723807507113395571911276130489302602062646972502905462922836053246662036078464118617802479274282739279480640539961189251493067590868957617579614034473709224258227317623606701891326312883880778544825888785347780321800455181169468874263691879097379072613412567986498750908098344649871230435835401993962174085641564134150010327490078741177875600555315218246754030777597534819132563526599926768482423730081275510758168476343976263737453174639011883981434707403629026622604410371212264123534715612456038742188359646422336413330254675203380416691659241625091469670963718329301912164819190003804829167823938060657330609386166128927844765944284412700314805104030621112605877846015299995210320484789699660266321690559051515974641954718599943363807319679526841488438681251690387288331625802705583867312609124524611865940239515840789182320489870773709660186441048822003751248053287738391014748668293249063352232510824316265261253444329197247761618646246674383310096812090806034514246825844882719207599465230437581990645678573073374746842494404592598214545428391082996197817354514900537817118365902879753379333864319382688214924499053719638925717245546992531399739074588708143963998662727743539726246648760628364429208196613537177331282764219497450706848224157472998197979559307514672629306324865169454701518541552759802661933574002427029442084770780643263140658416065725722429417879426515042342387465351517085938084901701755154036833655980334790439243460122006413526131825586265030947861174056586279860885270986696623166985829065635714153903082320662129598438035781299384960749751598418577695793682378936752848025025596769870524394459102658051907603874211664598875222035023927558681615461137249755412850970315412251508527292275330479707155132965521948806194052302708476508310836469426325589059823583127255769544437431346249057806594170587092259589950692312435180661591464262641896811966631567777563760435663846826142333701089960356635714789431892620396876313812312895987737425964430957111794704121426254791803156002154695803396665501964761026406696439967424858927446868439964296023881983865627983081913184189435560417652428715824418788484163269231891691185440938251660417898877580928336843154426478493295038489770926894523072346825695197851499944366465129096459512564563741482110635878617292175873597779964797064132881637847165745176410159031894344492762104552588332580792251053144831258586434422880653296532125698702895720750575390062969480685348554353447889853107429913532904496881770447608924219556317999054726185062540144106259960110217842363171152037079408650635201979613401148849024521499706315617651701887614436416248307746772596356599636462977717268769253363459737695432392885788739460692179271994092544843507454149132524535808620024393505106875492622263232801423810989113174010659965125233637815569137195334723001862972850113719193234045961062244518081735023476066554447794871666354325011919844449319866666300309776696645916506669591552087663023518509997380325625154487829604124500611823746921699927356145447156114815001968933530482118639285524207540108918192594404999119139560309883913250438708722820691116383819799996351434656067320335427592241396016086506571800981876097751742359597060764927467800258212970272006066050648359333229044026347675306335122813874615105146896673390342998067345185129176753090739360472523641451182358545817888367271146388850806546602661416936054236597616163170274188539643890963014434748665117815829543808261077540733949525227801164740574334566140239522873514690950117547052466310410428566158200381428766873112381717089629597307436031389071758359555580428566819831213563993564930381092066039652360418903985336953222329945213874721072579154932528190862679512733410570289336276739082022124056774591411170624056858273888997858573259441531861573150761090039056278614008733124219034353266401950241102824578941098904048190084708404752432696230463946396048624761051305011958282592572810832255988192642277036339222839148547317585282577628551168959050554613895564626128653690848131231019771225148748226796067218910915026225282569814637606518948170273254514531312903832128860568980259102300910945611013567327814086003625295667642774121477649161571565015111923654456446080545782647961676016140848704029486896449352968418258943809050527749146327891975835233863788699750504054344447557439292214510576382155492057776303371975233532412836423882920247483477262232313561926574066161709061481125793179828552397897010733233756078171272078834656996991003883312147458750484514858048256919974243592749941190459896373971028885552232820353037489503442140163431299203827325109732308589669658362720685354248427036247963898732950480912951739724784922004894864486499325028108208522637582147603356631305650802615432348556337878695015160947154819850693612455883921884755546358519597937392624941281660617154466173996091123221671853301474300108156748742687577968734236848353820109016065334103452553725892832244633466881381300352554135692857540742419904222299750818433925832018232757651041185544955195809385842385174878527907859619458111393430351281309893224280537359748852941246177805474415023250696689057710956364735178159845579328367072801414032998267718186750759278320495183408088566422417553708601935742970857241531493010888103088744465722660510464315936858513115796661028888193735455279136876084668120892962709085728949764634574122004114532836032008907710777140274369197674267750599597750247037836961708223183039267082318343237902844532452409288929986205810126125009307824215371454360278073083540829673063428784862740097458299065463199909260237543045109783601162052870966824336030388801185079323224167226941901681627388808776037880177668517278799641291961797006031312794776548207768656845725009573948249485931717788904281189547405247988747624579839678505632891377795737998555460280618783261720080849353481340688867893884525845377592455578053086325677891831595730389173661823550946073685456613031173603317485463297013771152936363963927546883917979631919599093332706890596515100118685835335342728541958919132334291920165530529790321138963531476583299658072367703795860183307357052266132923338626761377680817877921007401113493910460919282816745067502838501836079066231360865299068512545975483655170558360995423572688038100507264419484090492017279746996486992913773420497942656311886077734583610371835403178268949134945693525293784005350625897022540544013168974634794557106867794284932993346909293619994704120682982093591591875316305102871323984281656205993943964404851745810683676450479398334967444897223973584398950193452501318869846981202844356419111928260268512561653161797461352411451449046227649811207792141319239875552942017158392184729022252863424850111604312054353856271673697806836834446336250326418189580866957815724952590334439291542425481759093965476071577369742314320984327205971322174945719079648485040641737437454019116808747449060935302207347060530143030687107047524308446020313439817832715463020152562123725229850095749289034139124422914157476787374885604909010841023934251790459892204533421072283888377996987920092674786579729534593094164233878832010382619663377340713724905851578022381666037039323750250897646255458548850265372515628603247929340739938090070970000662950206724309628577577570264265725341010922141274188507802655165908250185327925045105297521357517362087520095802657943809613048570398356095257765644983768634540710405281509256272003192025320381591125387706808526988839460959315361409920534288044121806451222375616939454219392830567914195520552117846701316859040431825590145107172392164647515660670524965896890116413129055202738868839362443381941863181908066953854752428303231053455244494778584384838393112690515694311298335392724405650969660536348010435754271396316856358122990826233523949114574034353921428217953140850031536423000591595889797075136375758274640905200925668174948224879183362628924459288364054071136456375310061613656526049023224330726727384328592004966858629037637288541189166226596301712549908655668800979036884038406264487802024414982236252736270532585467763562910996531174010548839240263480457498405260452856095908264663071619180755505161497479296903170393784492768583360385738804055344114641045206659990480959257149729024615351505387593685890863485551277805982970503613031409452945481496994688269802783176244309147501757929127701030457166093304454732908569903043668611343704374953622971572083865014602548780922464182993133893456163484146589972283725762236000744352369004131137095941062088638693410744390077239485105973945048131573658460081604702018505656414937154548449157629056250881164497604920218036955944202050558585995950375651321870392758915248196293449978249558254914033313773357403727191360270527115721903957151671153428783940123889886905829188401254894037918387019222305580554173380371152855157404921188684043696282799832925460813925695614598325416941464877174601554427748191219412234427272530392143716702650978363379053113387620846130841994651984700260571059087012411442964689730388457885166980279151279011014133027062073396580651352788239122418073998395416720334948599320236780987200205865976178433392935454014677436423942815276259140614056799591455591092692694441894353522419046416819836843125219207293713696295113913416347805338572204476460545783149535406862789028158572720622402395316165017519571724834778581501014832393908328509482864494947299303736876680467654654927975834672009216371497728388529958979956439531665524023341435025284884057534064498714536682668518551777138827893215652892080816906457038301859882653404891246284230075760979749832026413133264876730816041936462928461935818422524318689765364626127356205889830927278668858131419608531300407738088022099120344916633696730722489989207041427049868393192863287564576823330921223821013159206858720605606409446995754575185380138077675541164896675239544505327085801106359617287972020832104561296535062125555250783687864373779637317546186234338141090194342732520320705296204516308391829774043508120760747034348755864078217758719594725965865577264797485037873204175851490878778804987851106269625699449859725575439380830919672095853112995805107591423673345803073969116078353416174830230810709200095050577480528559582270515322503468441140945322797814687610866700621701234070785592939832154561889391220373001593107256574114869587701582957180325637309408134898896037270069414461260946258613191582214494925264673383127386965204664477019985068791659191068033889613107849610244936542271545374231451378628793859794516305826913994064728245159476965785720319045592303596999139282406663604362748492752984671902330707420726852004112911269336288654980543965590389757089328710594242238564788686765740438187606641006281252705629513965122606135669158928408222163735127675137106572852698737724884693143408245134144265429451157533812037924450589978664274434850709524882555192077317099189849566442206039844285205219089477800692323159792195971560696317222543916319313738342572995375024380826483826071671406699859742721834338938042114193258181006598579565356513436328101603065884258501243853182664904480216678550272802556089764046011444140765984803016445425386659027785102470235020594573983338464758704136710581069647124205544216135026444992575470095886161266282145898285786344061233299314756548344261933675976129631972086901248022018995771077631295866961073477144049644357517169048661129320690456806365688407940887103715147534902437409341655026648792142570399522665943343517546137193593408113218594662478383580337086896490682205435337823445931714616763476752590385191677605823998932372158763070621329262354504732760550260935552831876244681175763988840786778682465911848910422548442720035742908418763855906190166828626122692687765197141725451649040600839581391237044725363580526381189279255482438641902774017042572000023404186901425525145655391153092663248374269664932011154384132492078557460552198457169522962976066056401548155653454028128873555554084642097739796274553347817990106880490760926000777123597653079949937807126818064687714078927099435291425220699140399699008545257450931332542449482521849147870570510757284954549556952578061378931485745108516578241680506764118912418066077043093082792878815528784215292141150356059023015075228551320905326035371099804812427797038331368726579000241549932999697384036348756830885479874101762803638181328416174175634633536859486935396562938075502102487336549158527941009689472047985736788117402353204825261909164585128742587246093003405488714721082946290518895371071767921545998040190820628348845503324071994361780889898457972421649759521950724427685648006661665388707268812039028588034069339890552472882324739939994726357094079970088880962284098329090813373824994646864609188157612482616644381010028179078804481433321951496403312566551959202141313368427529773394147511909020650917929989905542316614166566968488881148805183464411316609581717901475483765844014582144592574086775160292059536410714061881876941341131895910049783888815578930440209797812188015673148880780432948422429658882193723568309574226780562926463530316212598709821004649544688864311860974041034285568924536511509203733050622346466923473988263432993452233843770096993309822815458103277658828284707195744620221625777483174261914375531719867174973126641949690616975834666123759120991500107825708374395775118575917328356004727123316893318600019581992040516166504191033855528238192242472667163563917190543221774350120561076961683017521939612972510995052832561844130934450103446771543012564679671810189407896921662354393601733581765319973674413803360143489041341151161320401939876972600530805044397112372392265941330872052255609387169128276985162328546760471590359496084292238950617710424056256197777510789287814048896980374872522759940931646036299757543921328173718878900099667784382346580857108536821841971188287492952521288581452395533861764810945838524075261242470522068041974919750612927111397901037582917237962342876239429572290091757362185341719196287567791938933200656033590468797359437304993038330094790164667860002011464261680292393982449805050347082232030383080210827439824740646054491991844615925431069997479059896044881196415895083365448888857655420945489801968178587336402630904560144347207520593537383399847347982379005197734780385148945967577826767939700061824477073843269529517533477869478553985185004946480678307304648796645518797313124793639496034925536366613281245585396827958139371784296680050742340185359051025622280696396697736060931145344051130280280305281364142776257841268818603763372821335677255930338747330686379795509401868545351477897130075814822074889585883089958377184508099930340138416823860329906471867305663458540009875643904333594603619258197275357009020098809041090480752918309913900490499339950855033155216198289751358172633492120437715001282091735066606615171426663910074082548039364351742524020095474595329524995281202176567625291537341634097428404407198000470000072100936403612130065107595399560761977274380349448044802455701438681991712758327914114314802532168705041660138990591149242048869086525286098602674531047940061279132507013220156503785494077576636854963086644259283601605752447959689602785744188451565952158934323407655679516623813607679030870736167140836559458247671893848391709125179437103236267902372336713387530917840809353012398239423733863972767610627005919232566142274670025644764415444025032766497431066834195052526938584764282948928396802164283253770033446544226533752945809307868356517282841056627274016217470944636647405977824032352013346345547675651270435987245241643115836008899826437541949360683803366402808601160146490396990206274773845172094038514221792181732021663386598810203118798707619836763853028236161677749159375025118312142456810870225773003639272911573436643457511822279102108554231940670319141189286537762554591445075238932597166702625540184863046076607876910947175622269172442587731072450851198612347572681233394392491897088025084652187243333529694102071342687001908947856965979088478069900235898716298383345512026716700123785331588380221683582232729952442448914547662151329745113196772548007540617694087307572788220258837712872304371441850660003824901103817111307529838415400865299923621903237618580546128900077151424696565411968861257665151145121780855379381261011234624848179886072612984438682626674108844406014600770653620941036588437494384948800753095940732308482933045109149630147570696526658815269719837490687065966205497697892218536522706258258732018002998739631814235218795627612341432997260823962411121439656317494975916790733496434475289910708810330705076975721422606601148901411436416832866936537743772364282017489453764013230848419784259812044339605754926602240840162288851636816315291001294005937063185483897442065119326541304548416633038426624619833951272003654428906318902541811501826704354973829529528670549491393432456994494795255107759325595054577228515060656364556837964468278741867540282977803194550527687492096472766953083733486203298686367998457444831820792078919507078014327238136395593336165488541011930632282680868868793602201914458052490436198354571854452585861880290127623215378076973410436409413222636313584559586243566415127406812977247026631023001088365048517797471378347728331813297540467211776288087608968574431377647223446030777022256511225079446957694612269227153822687384356736853338267972813578357223810970597508866906792463314843558711307396967069311810214286889626050848074407910520355412346943453343011177297282723205405611469134155196233491698786038437116114726314899457313990242422313653779175531700606818925217146197190016342657390940693914605714596872711508033310273179135815879392477269010694975458247539816425385846138216772952992225115842904096014111522533001048717128037609738831018436312347847772337251826391021161390124573641050830555002298478275384433515053187935607480306619126306477949134163881969030518146257592586330605927229824191154316490161052369369689311479473803486073153752739808647782431548432779573899844871961373511713325404229783473597805176703190025850587734040962554294179989125812355104490054144587222150116052511623262407709035716141474383655684756135465845319600185067234759297339620641519494830259452240370212395616744942956402025830983814957744414103496847435669920338135673026132759071397439091802001714876226644041654396133794210024392475431552746600395602978979061154779978495568886463424542026280530894843179432575375383019921195722931741272162873661142411366132217498398914135153782293891122290133709891616535843579580991539290604692053475531657065613958763240238964376375010717924732350214211471121292716625574944083842810228064576033253818430078229145876370008995049388726782548195206435958396656126887612644307175898661513160712735321592581122628053725726163379841381860423736871047663783393497334013509894176228340267210593517302786331383042026727457129282303748116557996175599438705341475561849277029720530150264599186479667619682354860498397078221712471223366959863156668002905497359002295226524258363905763076434174427164372481718103148660762301914506500517086617026802469621034308696343307248831473665945931410000865398214553863212507134242395869181781278975082058955209350932917593870904091368925483706319385451237170654658469909248187975488897680449065122456681196873603151627195869607508648876402687017031476522165084378249106555368322728445938223100035429293652857071028287400690128779215253542861387400304291482043725772233074058442679809664896602913277400642253715631243894318292933488351670667767458921684828898868308320495029798662474378110759014384294646585491402658138656933509227072685552580047803922871671015856738769663796001518307808836566787796709800180506780505476901767181831140154172239578585865019016173103567642445137105853917480704999047633368693710979530764276572083522496158840426951882467598423604207680730504717682755617392432513883885348696450348838614593319529186134967285488076300129853805178419059845378613060356193508123124730860801678659921837902522292435167410466868671446727729508870545433171964913883214802185903396066203498376366743361190233858516651841194766151912770223711498707156933208285180637294128611076219698955727523383477191634586861011144478779955428440718283573669267666599112017916267973226826604964782588832780022223358424719879410453055495416586070521483788435647090601999152325714173743700508462200868452665966358433635624302750913675994636334297835561195516802388544432878041516858023460575874327911531060162331470388128237676734638659073046435776400197495251873303338629159885772067051311890718596683007183381683449659066834059156545463069335477289986346003010608076887636901105388658299851142995714025764304879741155449528028182301273814325690696200520790090529359530596004713437447686482073626112337314772423027600822102212818548413366423061629289494593907439224843630361854111072330293086276478630497494459268905159619119522690525751899250615556998097642857219469016347677914215523886853947570719435921810880532056685114381868986831928434363456220731168211703247224738100117773015748674419306352335416043836881139774889109322895442696752484971191260069504588339365058270311842913106747016082562543069743715647365019825170360155032616810260034220916991288862910155901213208784650138034629843254408482564599297683621543384798780306045113169966553721408683836700052099595902501607078628054614893752447027059644645913765562426735658936096161293692292538556688621558352072207238464501791817674483636849375820967694706024404276819476803674771865367352535988907041845930546278451460387249875864807909593095894132924308942537123295416813387859843750139019754842979151840356643787004365717989383679286470860402855698816141482458594219838665063080118415958347050249625514068800442391563141014929320877792437080733505969252338387829305901886282288516522565263008694853413269240943907347399378640089868504103837228954106600087386816900177648981743199792551819125080379219157387048918366190976091933188584239582105225536685760029220838956364613606637427329423212733351943824555120193916910422969187383784373190540416014524811217687196350922359883230483356264954976665070299883517517308915240567718006845736056249134120055624619431207796273753027073665882187429283739852437252931534046208010314931842131650921696616338980051290431302631336523987609132519647800588132525563027570857208491382785032703952757443769473035670852383269020035933165848827878546340942207096693184032888958839807716288686376215105316363927369459369486185463171861152729141844630253971980080816993897356585451628543443496299481841220678471778480839193668855122002062422323008895509282262364575367985458864879833037203448874170272438493778265900980918934100627505439817163156841121992967419846900609980711609379666722335770849483206747816227451583663940526537633489202388892262990497720430537717967079084253633638406043324959290877986191484740618227778405654186998731731407086567883723114212726300166543473810984783013545294683229645850142158670381734632102327060753229565837337697102092120142229597986986028845472942522165361892813404757025984410351377282472909049257978486524736517443688284706987446687326117208477073641065510962937309888472272062175813055841987890577539712743090411324744584030160195613317785424647340163549619855932562911364468025378459124455852035714652414324236151918171972880232318151476870543471800460871667546565184324019868944185089407462749810262078482026478824366484398315535273729432143305446589043613604176136661111594313134527151765422697379236634766582300112256671796928839702196042681565442077493202434037020798733234976435773346169382014204126879062316242889624498889070299379937146185007189771880244673916724747899142699329515346927107948941341838921140476238776854814960564772392469788976883505464586007604586194831112742300840151469665679181535155760208150737429818209541679522635366521433074588713474731223143986880274539235857430117661806274705105712171824920752160573803956955517575463134013072768042922948265760646186067291686553473089806567982654829971230047480309495859880833921842811119938175320887269121370697263678095884009433368103139640238668434904786982865782200061177762845439070520682966341875768265110396193012994512642461187120082425490113216476588634698490747672452447777463607675427651851272963840086440639256077505323585468136604623487654910009704432268051617308166034574491842141784585591464629416971710241622304686749508299029407572097700051342076301586496884746634007409065215099133175459250010885825237991117303949884875043921840769390988532054478883640224322245772999402065837550138451678879329202643762570805598706710244267858385010103536386775307865484587159437763035550560846735056970349502805645322320762722487608315019919407402284858371003315591234772944774572688190872363058472043826026904675969792863610206080193883385454526979059700440547403737916020621674011035830604479704103680428366380813674589356618211394973554755170195852695546135688200862242146669073883379609041178197945477905185849300954194506336497101282129373847289311010686643551501239846989538346315110646394612216855459114967416784983439152364918088132658892629229541775740038196797688349605782631852666781767406300444737247116647938084540356105930081118275260437322342318128147050112613204068269726139978261090115886022689272745008921061689488566572927449970919992682337971133892874494933843085010980882756461031693852648252813249904731784150997237943014694083350644416461830176965825305250728133698181986269761858850763572842526805085298020210660163380176669817704644629745290652165018067840028380998321199225208462932630534103720770094581251608651397469515719581933447454160140054753706513872414178671068618779136293193340961406903156367931240265832244368438694471044882519791881424848030398920937830862611323896118624222736746968763951462730776739466492851092239645937083214555318814490134435145647904423048754320233927451636739605285670384761629174752429074666476219369163254658041867497696355092283551319950332713307052830903373534559591370432391302385104320192845698493522580675320235477012270867596251289053564366554925909319554327431707870728825860930413072459223373108235453489689037016161891704435737480935277536667248158551186472383642846961746864203192824193067794192402231697655877449606757253751073932316692090328912071995097408259662502022914447342355751919901827593743459713124885333158774887751623063653172237980334287507737704779138273269028374979500217522659615625503325690163473794956480046712654104762202624253080393909131201958251181627881217354043378668917704714011597219826039810584538222011354901669948671886229022735918895620610571509672941434471873777272294076376049325237947088371457989371928396838090984404739796585119089487607303347390343557461528795725628506179041425393191355281386998403984085147443351724288364961618044729888758122333972414778563019527874357642883051434574574546656656237844730260081423933166501262456298374150114121232127168423419257615762259735070381120487347229825678158358786083970260407235971116212554690183714069660047232082214461389049058601182505372956958775912128908022053709093725827380016644732257217246817161556716484968487099319560396994276855473140378125838400105200885767747621710480053109224718592645869978407967195086942912498459401511076909779350909161622515990479272246458605184023901367943368123795336653464896409948802529381694299595352665238460562555486628392841980915496702539859096953008386203725159066541123900429607916968240907155692909184469074124834787926397697089305309779004766431984797132630493663037432346233259908519140420980538971993100232797911947798171536841513386673182040366097176679164526740486127937625474762815034400333908447613958891376982756111568866115659245000227309011380874751876761450667372757098126218287514721523415166483391657225463665999348875586762875923566027599142080362052463699691926350639431703346888640738187558350880641232280263879735065110106564277082907329127897270993458142998997079323518547645533910829293533763165958781825062679949124736762989012604498035695698032424094165016282438090701777090434167393921314735082377757740556531608182183473149277762691521241778424407442262570592366244753385800547827415812805223502069236565713260213801428449482738080269461362618500054130518547917433773692995030095931472584350764573124329798967856155801038626720631906047672459570647685174865660389332026498497257527526698715604477060910530276285451754635235611703728765445924413858017705978637076627187375421431532322065110341281641019384888256113955575548964661972980863620791996357000971157725738062627140893170248812624211155442734486224823708728060123309321246789542073423172358382290728530537846991430120817985289563657930758133434661938494559313327140747322662822072224501314340063256284836997892635037089774722417794006967504643877936486532880404339615637628993275306629201465508980784929132017080625984670691300374575935820467341248533339093255706205737863103294172117623142840881913637165868503279585574933873323385946866552191151703583392788533158505098988061928864319920403478671919826261512679106512015143170545754996948639581994548027352468840203870049898715110593004174178609185978928954275566311090054935626131777870905667533063066331436053265107922286987901031669708653185541578688633796493605246417395082961360876187833799234842222424554927297150989832707451018567565476980868006414489056908144473661494281992143113738306759337856572534704015966648720941473286869323261449495277732530980014790776699083483128613527025418661917691264474813763689101400080543097468091851725763956425916052488913837620900470790185616603657674326159615113947012558536091212277832155973077383436320342575794202294830204409114049689630820216436057940666523916836932505381713138814631209418573489470007481643329906726670638294979447876531394538107014562839697194149755375167016317876938105748931407237591525168742730260698461703828800923716945381584048509952330836018134893949639811974049950551295078020318044976448850066358186151558597795281252830977395670182724697388321118137033331817875446065373614143149281684439197960720022493432930581249398360946042695969840442892084646367976054073839989613876695498239165760889887237730537989726620134974745806721591619420839359512954548551471625464127975540950228753650523574792427725262061725885433969886588219366512146204501289410552975406199206146914855821605146574828301368357185706831210551137616121561296165514814856856666134247175642281345569033882357616124660789438650976421759292119036061034421373815938408547729398212529801272483666706568803514645437226648414436257118360633871591467798210408536085993076697303505554966406016589417954263320246337448501004238560799924122263697426461593978967485128661997372878084080215364782413391419177412145501094534070950423414181410182532144879392894355384511575473685770184303702111228294288841393853281060224595529487633847894862965278021385357443049411605707705962585076514266732581570027423760107618606298227571466306845965584578783240232126777494538870892538719499093597557428139242175241894045880918254822958865163715877243736697599421593406293306513432814109977444877699738151472599830395958722397175202177857431223470988226079073033575398393471091366199238929254939371118120755758200679643122655414692090748839254838959435205245336931544060784003973993925350855560688818727379550910314400753751144414472757838931225849776343044610736036106730067285266920153679877405732410581960648887981928199939667948387279479275136911429047969300282839536622843216322230656351755630270782738529995567452978574407625532867780524351354261629745467601927367788311652107074630213687812369542787102815937192081919568694612497129324621683294047098507925739800064995104249666684303088502124186108143749106556778357881564581176301020035823164643315173883144647959018702249431389626064546925640246912781305965201673266735288936333211907268586435902108039951064206496511447977194957492738555807728019569882943959764451111848095001964515116368760583552889242545628546288418339279276704205971035190178522320275063074490016429792448634483555354625801856323524333435021847169479638259767529993359631472821447062969600531389131490097775113108014147060366207652564734190107446431343938888555887258285396785210942708388395541500566829196431119650389001625176888765146146234001869607462144256674977585524247611458089526574510108302794463263922239442238295148901108010993166776648214814827545249502795472729540330330040403814881201523475223371498350105004426621505014151407112328038127881093210339383494597335523394835431008421572700551167417599293555072815157370522410694181894524355749852111889756844183964090548567333386341512385559410088541020071778959313841394903470573027917423316367418512049262660091402267047736641024515358540824626677533267841765815359191903937630768510112949740338171041783415630796450456058996490922505915413363003654214473594687114136265256217367916134472673312530877423989214354777620885642286481924701534976674835319722112254354035245591213420767489534675501411376477312491484341174603614179739850235329627661654792531279141759386962698362761414230302381208117471118141539238178632684350170822290506149637855893844845162835433612921789976562775475343704765812852642845403905558903194821700805518604436481315988920936754893154810635154550726043782897615410026568241288838045484198613068503168906902939518569631417148427626874852531794580425886980864351152972376818088523629474010613063426858186529527163518930097443961800989424704547584437333226906020290284961986380547941436792482951923396794408125936167537112832332192350424100558134865533242279300064875289035099809903311886656005876243354811036938325137334911126273241388272970709416636534426361158642333624505659749566792440495128776148175540668304657726620884788982258260641983008401481658242761275950102352867526924744335855123375108607699813426036261346630995107240888789433038453464161028218833286986142392262319775859691552911944657465822452666599516702670361826703184722355021210303535721058937426243752838908947277869490725287136400396551269366190823646395177831516508309313088762861431785971853704545082620162042291200498107278325831448975863221037929650956771498373728070522851532365765701453638853751589099006669818669476482575045421091014603249391971527204703796115443549537631374494257503597879799063879575239640687953322126706572118786153398977438280128084223751705942157101084322969312644189323348355227315092233049337262728614288454336631714283336391908315460437581573951487306246307112690671235557576726317319797679744780185733748231742948373731684496317532205157224284117842327766684691126772200929358967069537140436904105570674956951659537146807638354251037727748710918093853879519330010404120891627000004282224788613886956248652297219708733031913479668021240924720525607262543628309608697422198221565923003310218614455330178512411093437586198411503075283933595660723352791000470160347060179261763834367497798491581274931862419254281944524748267431815657756041126001277288902698948271784626030436484655394792948357362313700247851771052376613980589251878796509512465122774182915013918163835895994970402338089116268958627930403264862288481390838911566029752897204689468352740543688160949849674195704364773363340799388730685271254727763284838228987958280934654988251926920574783827711086276344229625222646872823255213191159213159687707968258124585723802054359394985942180222170504649738186226982857694153716805099686193436571096193380180830539018971695785638348225258882343083220744617224709508594882971587143950985126220563044032357578571340285015010993488475880544466361308918187793215511789214279318712819810758415646327834347250992546687801832603405989057619659796786013359735314529137785175956787060546752730681846680305854928750857010723515758439693036824910170529997349823101814686706550318475858076671809663060019909441520896841279558553617240088462572064372844686997720419074126910039691689168387305707342256696419656213731048061046828295636974208690401958600699158484452643658341700205634410771044104915172507136452515063571158859868981666605865762152832735100397936224406378229294721607832776372415882516367996739167926184849211714309821148884606631736522038165586630069985308388494400738208855014535177424159484707897553748724982590835924208370436933586164517317183096493305202240549755207399741962079935047609184522865976924776107629782907947220622130138825824067632686135993841940255228959802819094991090262827422865942954083279276113452184711267505501935271404683812501363004885218004029035633003892264041580883451880232614853267775980653489163543533928623716635990401913767500681744860762520214439299917441129998552792982655231685287912697787016128025515030501965400610995595993143331927389810220657389221109584865359053115133093329607835896453995365472523958433759447363699031272796561401355756010994439161091649585970851025592618502638165856837579230647677106759393788298980992776746515149388608814979714951430570271785732917259181517642116049076623456970791082536909160552098697834263088764194670917337059662295604570625780127444228866240226469318164682427321066812445204294193185637195836638964554870748160423247650013682048807348039059654330092184711474692615139791320207731218209710982439836104716883759962915346507347392891345412056501980072106694548691095462969370871597280107872628956236786937883586874241028682559932821821796990637528528547290590283644945449903168665252494565233949482714057558450753362950715636488659985747900967139357284518682915809816897985526545953924753999846513301105080843036528548676572951227454887831381982139577680414066677297817357769309327861645860795863824908247173758550779760823713642629445803679008168419625553776810090525593837129129402921977508079075281513687739591593083786164684161891691115935751903710088646746370272483693300246681847487754437354730031549970994008395483672830255739856622677018285226754293112256380883848428149598080452250760491750797533635685228418583342172878250486548980729190523357622013571112560852758425764743234708043713533507035613230852825469076071074890183756921132985949121785126150953985752597983944282635594132853322260015501023692517422088663756250960574048885317479257147160911047044164972912385347689576801457664403365016235864976417603993471050350653200514452369000249524141987623808624507651891151885577625686001221251432359976209660572089706010654865108486821335226373775189875521191672166384782991209107905004937457196157752879606803385621465144810989503864714682411719825044039207235524815362891724739200155911907526918741062000535501034590062292835704945876296508096757047872714177939870802258938005138519318564554708242229436129574267471093958423160534658139407665605595165471526203563851981576554266685737543146689929936085704014479497583701271564637941450107819646460810901629797875027089597117188476020240986420683673842044033180884105015136171100729405167549156120022638908349434197594845105168787759234702391298548721818871800901953691903731256587556741459362255963180173957424261884793436437496450904910169121820213772101280378481136899634778188810286920761446320093961685102252969902361691101422739085978644711632712850033483511752640507431586271602964193386742448420746879108352148376029879967151136012104850964821145955953650113816541914753798690672497150912813771991572868213654169343745760964683979466527518262091490918229082510507846448230051646289042164667048191173721849640157940248376144303165066629194906702849135479589527745400426241735259284060090409188905436311663544941057087656258184579923587319129970777083028359994988723939285845073034819633622014696501214349529835046031221902204980483792617216287933673981597178217648068545098024331253021448635481133611652919831275034126281487344726420079096029923148228414271538480579159083566530637775170880687574036875774567062462656737388770229181925563232046419915106236641331277705263796546793705652869697457627205955696166873924056836245285719748296476705113097748616026301188865662792966172250780253316887286291442406868440699127355700591348853593786959796476223462531133931337654429087859723875655957061358505008898940519664457799136837127987650506659968790671944307483804682645359166566413604118328516205515789032692090298175545084837413763720497831890069916660798369395499455736676847253899855474111860808937245002283675041946098525155478127886707438933351724240927800148656670164987464602809742165921505934271314122182711936201210236721221101849667909905869578777588348137383507831053694528931540771316188039466903055855802639670013843812301775344798831003638567332812631187159548759820091024347050851181843707379427252431556766614160300106328650602602858255815011272966900404060136444676064935198183444892982521763489828842857354752571266369734351034271271195805252016883417712403494459719047843669910084672876095870814702561496027716763696596841552697990812389650673431231711167543612449292706692573097961871496978384803278737953792119641407752311300398217086925857706154284451154290963288755779339085442638581561033369260023981659378767951737127375676542969051890598385565177257861874171491503639039558577739902260013220676672055684745365514938485738635071646615532646797579253089508942924344524996770053680749136680984839864055289011504576018536918298403585822166923349635372079216284871175274069582824702603642837015839795420742132416936948322093239992887654640880355606422244179250066880850224240842575453927868792463456873705367547077125428422623316508991338410563489691975350641007077772550015672778296552537236490734052132349015090766831651058297451717141168067112404242459107004839533134218438288234014417493078602671870593579355698833982139475611604884664772654306281323120690108252064316268428448153579389001432930719629789022762953679486485959516357456538233617548318581056063605591360074350164692392918569197098637689369160152239441021215797245552187970357448442780587199398941908714902164122572111946261247982097722481170296818447062221864092633116860442524195901544421070486433398166459688817921280741508155894286589480325143156385026731780619680707009403516124542987365199076403837949845912256172123677826330597942268039096263804784107462330864683210709640569525129045925850939231095070453229208840794455918876891461415652209893083987122977834784050903921006736781767311646552698183619390599117478621150161579968935583551309741041346061568666254927448416295936072521135227042290413685200475440674201826731076732738571662499121285555587077189649394112477714308166379108412777671826424469481975559478976575044806383635068411485766234904832910543257296289806379648237221653653845733931346634990483586435033090133712069557632090728383242675290328233702332162504052101026526251265662913628895499576707311396859042095540445565464447188304563087180694747327916132635607123261457269808278163640687783509645131782160858214857215172638685175850288629282192632809220680234563410639218463399448429278927899893197195214493766474672746815161661009852232200968911478323329777876908051432224579627967202533928814372327356141415064357638273738925983561525742766024379551608586640575906406733696716346491665364356797333197990202298468734029455533929904606625230351877190569358119164000564396186055740508089136185346555493741218913625199693011423815068357688689038574326715892416068137031568515414152254936488116863105422565420823082551626381568791780166027232632703866424209511994424382679714602728077184827297738884237184837953908796588094661073728350628289616117271497157253420379484376437205591677128674568792028232290576169728561475553347934617404094363942328045977737164827287504268430408228505669050476571342210334164323979452589523061147221318683160497835548571126633699998673503733835969610679032849672682798807988773940416584391608379859691685249025257596827825673568278887299140275222607743862459011506295213037632469390171813375151408682568000094630956759999659452771319386571638754706973536489638165676874373977287619139897652443819233787951009958864256377370025621455135932101354071111940770616912413491920411012518695515090848575489445571934976242839386140717666722810504952958414600388250271965889613580644942580853743452740707406104939996120708328008024210672554828635659735299293511298818800757704712254509273376561827793302004881238526854523529820619186870680824920222624973233218171853270877942201850037173190081778408535567780666995630683731849915083511804059720876297152503926866873835559457320509013377697840160597426300204669701897101011087884518107941154787734115814890935340263236165845736402458081624438693067836047480762826063750170339109685704820178633994753910865434976675839516913285079421569431861963636246488897229498697736687257435772959958327525682831051989333048121111056718973681040694660409856467848179628251168425256548715111145818472700236112657344925004942683838607900164260580382934423737648530814367732508917813648653107021543400368575219271320915198920608234564130572503391993817523790753921386122271801623988331386846309816989284224108487512179027472657772247312578818249488243403495038817371003207523682212810500268609488579187047887452637055922636322458232067976679316219188054638243682504768088696426496283363817023419592465401819943737093574809251829136893344056649007714533430433547621844420465545558950755296213712652393156516440023849941237948495290501697862929796340861475654382141709425013657400407361179871665712764415959074741090663703193462959498536120918392701479009433072764585105135386737343464599309610492807721241448946874158955969579131889466259971845889856855361568136556152013586205300945770826951030577889484441003957589413583580006389800924965582099783768099008940678210527916301954023026064711465360991577500779643348776325054846215921947777249693114325057557872802827001289234368467798586280878748171716045391230761377542074469687039722542484517424654126135129032937980422637784843500162588331595021666622578002057348619149423068646766523281646739029165499016944448162110175243570734655444277880483008873192943601971828382745455401482703996270148288468007935485256745491432864149577245227613304295681133810977169691369394920482729225632972610667473127282507669692178335920094975419903862445690014405001104132765381226567022256168212719847647296449534242339754381938578489924048382860076800961504270671372637513045910013417328346581400497827542748444167190493901995214813877787120511818471285726577518755441495141791994630455842391794696488369002355856321208742648341326373315108821903130384865909653197367569870937454557767017898870266631487003669457646234841602891372071695190653407944875954952495131924238760646275111759445325047684128294850301128533047530261719273457070076855984018363108601744949111452204397680716713820395097259717692814068586913681841651678235464012872040554804563047082038694819606968148867127791827184109656450095478156211192883789576313890752568745129779669621105061908924240350456245087293519215970444407829630930601667155117960811357478169299294058325206025997743511772412414156383243718584569146050976860440540098585602398762552046135237925449683038540301051440897312832080641462270002248383828993050625528914510173482930702507450246451363986283381336905344991751405862064888408553576454766867606465924773198629106132537249354775462585567226356353996575357777515129807660591200982396311510738660644188155026648461259525319045930688007920941959467809079466273171571961254728903354641023488677486301874274064006034306026372974281440684834184349712087063339656174863631829160223993713439032184177654573125058678888590386741447048148082017312971625862513422601986497934213501285978927967784766006860860577364851465999403160256350403564336890983022868737539922969795149956987794105283018373001422655482398898192754991328550189201808905944008751794280003052087287415209595977259521051548509723377702869125232995822624374691445202559683505825295106101549203071054114081824009807326159909373651699867936829846223486553309750024250595972754278342349954716102409469796138182550322258299690176260871571959139278608218697539229490317411946609625240582652298578284346794195489446851768433717276061947684116612747874667092924913603542183577535961077986859770441502456011150534235444587212735424484667237953714367385383931309999049146095228000604637630167155874268450799691282444328524834221931873289281358215899737373223118884606868529135449735238136086601422782400117221155123447615831351950356307034345497491685574311595441129751902984159080798349390516683209801842349729394230065967494695188980925830754172706998468606553421551017635471284913686846807301076093290499483263559542116982906435469010690031506717692313346370550462264491644777808419841603058158974974793875341365640039549692976657393554034749379396358016137821474304359636247048479590258038661895454500363911668761891790089385241767631074857815823329531030741610698332966243268391121828733752999662090493545483496590704273588026307689079184128187585309218638242198975796254206679733025641176565244257956903783380295643862538468034197993299738971434707968728730977326080579661595105783623603150399901525089563958023136444949704501727241952801938471122197283026265339124519424512015947596427814415761243017103218307445860924270673801541068883883361344965580225568357186888978725203379784468344305419657903549946394932383505039182036562143786324859151023864627076385812675195446064543596240002664896706087468359765057894401945245444151810780062820741924925778087946156818205617457601303951999561771999431514754654265405919602892886341740560039255689848649766252120368224856623906874470399968358858879576039350096246664479459200105040155583313863794098765784455948028026223514922774757557445064987251052056788815846237824918553094810386954303814478355924116075033867803466582719140119919367980612687658734758635434165492395689264734776593534765403092017328715807721504817996968595194862207224090134950963879189584824739380471022549707101178868465242155464590975493700575882869920170594908366908086542715843751078386341078184596132370760080064964740979413662463512416088954990530023560749578556109659489136037369470224579759739010420320778101307312394542818575060019421385479770429007908472260287335410872524614609503635192003659420521300378748148747181728740987039171670904809452749582683400740841057837661621150812855008090805315238239515769512479134635255440919568031819455241661221017554060826031559571555203124846916751758670294220317484248539351671749442759908488423160955502819950551482141941747401045264675715352703146375324999460682719961027628058801219877634322125860271053880156697108913444108414506478325739113185468621037764282587138075698713384881161170502075814016265331767696030082928013134020457781416555122095302602147521821473437446903516341317772031320051628618613885536070977207274548078892936971425606058364607338053271306970081019412286412399330474486332156780748526650352933912111793844547730604610729443352596742056010563516058927272340587732850402246865944508914344209781186911576089356794044586906382588208668935464886520792809372018774929613042751137933955232913828036912397080415106123836906451443031622263604021384750235207259386430885276586098549258570766341258221199403309692879323249544597818786020869200081152266798388618189668827148408152390541625628894107795816589152393167855116588062833863326129281402366329998373257669194367436723198532712375455262775915296372076059381783256216800008595817789672609765062544060903959014330366516992635383215805553260146774250266111399349233360723109362516383920909806764651280401837992802212989967053174696698182183250551312055981241998301716457844008136120707467113910046766053708851011525809059205523169190261894149882870875797044912815951793691715037758847893521088905640910728339678128366336969027701394189405744855052144464053003414027827548864970916595740300215128870498019962731109159965247111629682176544325563904869847135884062809010636847424462536862918507492213763131728649473348398478735277278918647917753770370325802001884088465279896614507113071932113446890146881616072296639270339241607878658249993819948885420077699514988856715711369263960037540144007280481813005637743736819938296990224453062498806097225483568907926466059462060220594194180599875892649373800946638717766966652562992361755459211764021234023848200561656362687314208948672249010549590905956621757560999373421940961688158771080530734190526768611357651694887275914388465947895796329665126809718685965308893100439392556738139094861946831228517508642014275056859374716763344368264497217707742609949917485948201817740855008687600209046611967094224522028680552750200658766277319686246966614004933172587129701491669110624241451202486881306920491657377633921533143615260560644570218829902829639897504859270480630258391360324073525175037693062499064542017477780500016773577940073152744819870993273973416543080133759369693424831404473205632268761718505971524929884039275394416114680728982108347259428957162776448101829770447243940744587846448818839800638026530948226725179281635016234464800583588052337443687187518158305647955158724894235314952816694311766468961387323120171014235140983003642274223923304409827016360116506637002627127979393117085005926184792058990340090213302422262585046840558565313464894608741028506361269626274707105046162867331233021580125361575201994781527598527204215252501834872584465176948618772715108975992533476541629046294119371169504731986104644102898467363401887486014207940906525348131082098514612278115972657814903486822278837571077997350482310208874323718541378929484197979129700109612796101928415037869329616611712370302510410025394974409557669608041231512190067708619952768269339642918537349708994746600840530880654690754560422124135878083619256457853214341748823624113861486642102238167026094783097874087875740803529447408560773684979136036446476609363248139255007827177233314873098817585324230978631415508337166354030585959567871719916340666026524121276278651734275791303423757225819669607165070417082444454687055236993845635656560004951602439478022961093952498275285711419627813889879421201248543590033626334809383913126502892433273525777253191389170882535161855523296370441198223890183370251537765687337511688079284608405892947935106255367876574974047212724901536735301582532525929839347423410759943824158854360422045812485668997017538682630091194081781241511836864887907057764585482168673817219716997397597786558462110644066793039924563028188906969882345088549280322729841951723361975868629756817846551732294592516482557188297384311127453625794095596569087948937040149514393269208581415588648733600054343250328514019709431115405299851401797515490467086057843718772206807923925056650031077396667764676662681775282412048613930214394119754145555963810224380793233897342149335382087963593610023607716693193380142242379491320427092702243808540840094898973490161526792727376241384598284589130355357598720027794696148775232104035759605965382523324102085940703648306094114732123539278820692583859034678512123333653005834022964703137550576839318339338824206208177532003106941189903256120921786470989996505753013461340033809773659023808026386958334242895083102132464615232238451236451024553522774346171622616301256008206210745795517687959967279110983506520188125973566772765540124739544210250251598479023561416796680976872914046333401278233408179550934649581763757370580835580366290182193083612001517072756744070442194071299725673991460364168537801106520532678289545888722898091320702468905729307221380781192525217434422791163129570712116731144735712133960664753142775545140900815028262668086309267147685702343192360884033540655964574164541151536704236735494665676973599749745219213306417061401237409649654831238649857322674003503383348204193305688866052767072402542294145663062290189072040542286506378463261265252130508822445105502845034170974907744537297069237218082604915897088850437651118728572269876694566571281874909020789668355181010077754361414584545500133688844751982015726407241152898193656721714815718423947214537129227573798249825855285948776656011429834202085089809778544759832072052538496659078049920164011849270323877885095081191377820383455964604278828846355827633105630229757077412920074684042887525161701277554734583921664826553508254779845127185161311004498762797965739473272114202277654932626010959174405761297021405972358995169488902974000286619705630016664397630762861737034522354553212221320463170058454660966898779235234884290773219895809515699348912210701870984643116300757068460765945169281622575428576561361275998416397228086372865392656100116572642611649615825068291579458157108387750551237436821664118804995707739269975601288866539027357715930741647505954255318314205542491521260849331148153868427213967431873780344267026634590814999553372774868638213403037222658740456866200631032293752163255296651723892979289277744411499466799443300286168683253574063607358227526730140564916914527620445272948474967960331185986744017309778819974254639455066052090741573276334245841117299169607576750216530164549297237093454229975071092352628039260111940101196545475607099236413471860462609479401400469753135800484905418065335454398218711955471191083556936881620350476431565872153759646995039514557730845094139944709056890803168184744006428974242900296578967824171565007063051383497113374485540083348836232237137284735931785680524901720508368790138842727241013415033080782392771505345688719235735238181181571765175185899454929331486166741318896498239548034894983933251694632083291437952551940986630888052386612586666760935244261934033816423612684626419779492834636352475056087168841713115675822751387984580581125052596547035225663271367757902544930838942664682771871322421048955584242132836753062056749625384897174242209669455516298129366734148124203849424186959234702332819827539474685946085767466390807255789291185436671176440639716916786511579408759018521622833393080054524052479691090993434125562546104382659353908740122684266183775420357025012835722561821795626361612272741920365739075341364604065664127711638754544069750947509895774902408473807700285654019980805631722114914784375376110025413301194597880818678146944559646678065637477356063816620637121281424668082904080640385791655338370745516339645399781279983089735457698993093766449345592250997177257663198093621948535954666250371816376799261797029521887276495027580100852411946528909587611926977639906223165508494519043436100462501748412025300226596677602194246497269739916309493349512948006790115055700537122397336320125875482826672432318895681190625374410631240092308417177725523148948949413355705233179139865951006838206005375444311997333663913182963017181414635817677616402843213447429958259690987619341525802107211574214344585889052273280013757158196318897210517404421365027623217460358792788325715713287228244945437587286426046654269934442036278841443805409122948899418578204881409918926466114137541793414443038431301741065093289110863367721525693599951484533323641051893601739434640712121086678474362061314535823673829442020724222632994317880404262554997951168619024176520177131443810495880213481062461336996805194751182301350646106682847751761007842200247889891839099620258451980555538645062976541668617756786293907207105879555645018786399412731725213036906027627935382572616606889867739218423920433499351092802447367972900646356571797912896745590038980437337975705508020553889640759959461336482757819507709627985883634932263440924396299518723721021951825661324316192662557164308946408821363436151237616505000080439475700917300398055631988675185861378829709487323316931149246481632543931512893916765936902849217471788026508837157271208757980164380859796452882682907494494181507884667873559653272830287528875711199526205361127318494951053373908427934645305973325356354672663058866700862813161840898106787507819182520306758044879617885037633622029323282031767806206483624158892722250835435373484346195792126084665140222084664283043395852639863045996745654240490515994969210930285971074422211457658084552755074201230837824054159598811674388753940661384471607638059630726826184672522629702164145091427507840556998140101581045498419148429583177127389182145607532740403435264351476694250144344331252221668813820778889523527723164090601232163161189839512492838311568347061695455946166826790106420086162768553048206299505799901045111128960402188197513617638839318213488281274729685588261254018969933514760600658231025199979615261492628704805643769857802223950414814012187175822877804213777552644137615575125424179096669865944638857358604686183174816340094879431656941813527705044130842415226232025695290284627932785640458134048907116227337725584850528390815906726946806950329726220283756432007484176659081472188080642692157516835722090193001629645239286443447870340600192597371628364614658802984404000366759422142565812344810333993257265118172910784470200894882912777993971735464551332204272111116641678217425515143772491586995528732740433677623336258072642280996319988606272961811712900345718472572187536999947499618631962774172643082596875883950016820235663813142457577278475437600538694884683727757378637058075302675911351767455736717748164515798305305419781949736463932775707440775285290745862541338298207426211189187177583343854667077947302842933916159107882699159762896639422639512287927580058914199395456821968498967624961437356252706760041205310087092546875998029091004862324850845428576325633083191655853866226379472640222365296528753257391489737504571708287005149059047375511308194614374614569799377910510676324858786404553449845387761715663626563275905385747119141766743024439831465737735978944403371131818962800887248758962959912743449658139391862041255315438094942737818695403871932117050856663211820535069366090519849168754415605602314417517086082387196819094246147471792124665991258658464353759692567491017998735457429471165228463720804087856857436997984951090525044102566927106901757933539679300692651188891386639469981996318645705788748261286390923145448479800434144116957371959296215715911138882863953178498051715246000482664765672056012190740092203717591274918015341103485103642487642125173579157862854714545097245909168083366482897470410012908663311263867488317014296444086298452370945161529357505396966998830852176198488299177886541606463445407932974187863343379397075899738140384634779184369145191383257230635250929390674098949694208879565057199553926087245678304352276346323042453096482468512450345657919476778357002869153672969438349304497154001018973838549843003263228633897633067135774052608367753549040563332039239161424568842727314039256922399875909439085477167807122743256023891042167548751492255255133554477071530048525971153448455173760197800337281486494782392567540102622611586850497913268471216533320920725350932783257930265334379346982435627213436953007080298523157763904801681674991755690900063501944358121527690587234889670940826842901114107462314054532602369410909103913576184750628457278567377558240827747783702112170752323448043157672864423377774091749939541119914574710233800442442493975874748767837211384960785508008674006471282338166476413397726066898047283300309561405243040363313081653411359371092071985530316695517079315931336373577762929735366504185996149658341305642621341603468158094364853126443182692380875922253580345940863492347113171542881172243527760213380913240860975170767249970695905940939448179767723598072334508569348230160848974378940807417963520964805766761038242515156302825244776168223680222598214580449303933646845152746449256011321953937467803246536195002088906054697011465676536375370022960231692412111148981553601794638186654302348217594495460885992180250213412066239558912171166052523165638589051181771531588138137893786029948132404841437457464520491111403432096605823861255977536476377406196307932067724333072536507818962997364312856089724770065898891975859321103956371257110735365660820487052645633324252999098440930201694515157801475110705612248218594897607030827133144970893942859093053168999851654830897461863913456698586766883503487771025944958757447729386812538966287249189214138105744391572251072270535709060612183282118810195477346276675864918108881107175565156265746907536100494954104041352490012058407224683707305885550421695144667733582389050580320451849133401175063614733801834213049714792989035622019204955562210361759489322585108607527616182749716611705301728913173380990364422644378200266210204224128989499467214113058021091837680512365891989087964955890385503078889893458202591175646501637191128440968253030095024096864801817639707137659325057925048771999397659721350303595519021983802005749632247667398827536321798148572804654239015153388196509245549088998208482390474578276844066087109648024966162694735452183788241035236242086947737095859900885786768520621848290221955765895258545552779167753079152004504114343113274749571967895510793500223489956316207013612337511426586621888814459474778563834944522942452916896760363883005883541821274517125183497309574929811248324991064813592340548648499571008631992567711212536173406072287229570537880845832234981862355098066465973778530385653700326471613512832405342725831621577400606144926789117588110333582348997670569394995668286904013768527071252017678424288496495813022246872675735746772341037621825326298251613768076673925403283440683032216611112142084516408982530219164809405474526262857869103148021058573239983781399492780680641503484698878682050648202008685699162407905230548268640337381477556194442310474130598097343127666114181118710677412639529495852067430106962340492136504491832997969214420501000405615570324155111771717208975020103150712538554369863131736929029320818886930226643986622176316699430633235061782430993728658389215323020887010070413684962242367761694390689608240717026393706960306165366192639611930504916815601562798016053798017394166822079651871833758348378109965013270242948567454751196383550519063978397217257487922648675096136230879352676485675793019124586092614181001663152460110512185569487566489308663140016727940387351012444996129997090874426366900727355070380122786165979544876419028353643253709351801853048883073500230103542999008389247795813568003206755186758748599449911295403794464718071617381671840325577606995182504061373753323861751201543699484284592120714415965391758160944664269251362344152119770537444747455981056667546464366599386183694337882502907439297945874650644208410050847061780069842895081725522066205170911997640572775668151198005306571907144222089647854695385751317456384233171888576470443276593844121083438107300483381371071468904919776710517332324186316897256147695843834292604781100903262267578148183202439381152993140558729181840515660868266265535418873369548717767224173962395796038355054077176284406258515706531325908233727373872605286745084688629938198100967101994908883091645638325851510511900560798222418107732262100742898661753009309809435317936620061721731724989352454439039358206014531445885864309722211083914535044851457844797387896488967627666135407369578411409416346693196804682709059961969832713633368618182890158052932831130654478391229971264313056755733319869198497590738625161696149535900894624850025191603084189596495476671624576957409962274595137048439525127114934947725866500173191824943592963117754701523290826584188039517974385658180683711393337396848015030093287712350605216859345177353393466777161788363823419414388254317061679125973960350297446534958914511334240243335584501752849307718960526419378601232565147227353005959045666921132376676239205280769167950218763555562375719095146665455267851021380928193086518908239591157229284308545299297897113403113765960598269190627474619188808885132600260111782762720032947948719722210073055048761311541365276753442244115169501234152654219006276966284997232264363226602420953369880642932774510973449126747817157137211593958893821071922705087073106993449807014256991476432621910041153139310241966091566925510801968625620058567644788171816833720358034762282659828246994679390218629709882788846739577055361277191921548780519487450811591137027522502409242177007794444683950599827423265964389380729345915645807219943642515689583795463556294717652227872080820628652208936655132129825796115897633044684264835249442516733050437683735651150141828542012902512015240706838086105014341306819176636970662983056016767143632950374265780030445507122546495748466007200299157193919462206564675470962743963590472446303990970965803896667336838101119089449561355161931100990498905718971437378983344237705886378257992299457696629859486670867613469579891559682673638625242638039272073868405747365712957828451100117032904866434449131094899051113055863672540158114008063785262335530798571082236166210808937973515408140311349632105631413150135099851912877179226706419197924080062751498788107625729722880634935624074917749491021247650710065367719609688099471018520707961084063580597315303911271255843505273703871948446282754765115920982614773469688475366143576438194185875162343160287198912423596333335608532184031080923589693155498788857341381873074818175961940911505058924356652859696974144742972284586174020442237090068687038760071160157226074765679127640115343254205914042827725130773775523450761482975378416235512808745492775347030206428050470271607040965048604472911008910306411511203530624991336976251445974307427765448061965042760462941814703635505236015256016752870477770754895981736583467071958876705004206458002728726401640120965087221053980663324913931840082546440179479179369858179545533474554890089053200976807881905208692520095340663630641241033229621553225293463262432447517155314957337481197331361125230324925039243673530938409197197211031092050461795080567771147113379707499451785593461957543420034454322257727191278808676511334500577336175862935384935328063953351528397980120924612547708228766754049047331363430718858065739654764680623235109282018824656974145213639620844281638505599502704974935931731104950290177208105242193854054856426472473164499771308448338364547941902146822557758133654585622975214658066016710994708391533049040106484686456425365180418807729759250341323702306307284115895959499659314826539853279427042723251367593698324256404899037581816771581968936342126080519513190866547715750273017192915712838123079214770930996968138263651483019179226401220060707533523242069071810745361753164322494851039841074940721746057985761902959727854290876229105077565862406128150387533659716885138760753510774640975083941288677667788573697433287490822854409058871597714827195444318841855276796921676419245998688635328262347705690829129119514736678775279189338004333144570498552092366032208681959969673516873564935905352361709223665215487536401927580708130214723491835655818739239312507065144190461055331556581219270910477424104604019605997941857403335125332554988277351192317785508660604674485463068548006898458953934362859664962618946527400000383912323722330625913450874856087785630301958979334267902049384721756071557027981850948125230109484571886395104696976120320581772399164390984228238720187484998021756572365843331443334814058467621647347660719049504579024813284374539817360792186233485929355140489691448681749647961579098711850620608094166554215197610092944178799839267929010629962349626215515902448422069999353961230054199802765669780428247215719085017790318665886003823702647672001812826134084700175770545212811748150811717088982746083057621323717218316832929627963320718922215223666485516321851999952515165166644515838139777945084717125099102069347713094539499682871241862870632520445523896482353878702673159035524557859835895730082984220762220257926023918086461183150363278940701018483627689491713700886212160631220761801343176720272920697181787080377953755419471763534724479877370542081591050338141801704567223876964288629414971710856245477944631638734508442866256423141389169242654780142012565689172349544169363475237908153003756887203210087177816422957548400996153053827432293009970578180798175866762495217111589817159536877185212440520601814714081075470433921651649909618236178965233045443937711874330543484820174032536903737262360309910025126470002228749199238651903804980538996747731682484986574808810457707263841708481693553401958439899044537424782407612339209197259482222254852333385024440088086247090856827687852277331826916980513971148032343258875653423390546061757935435801434590634830126936809532273569171431109048612086567205762542325123719558119995757551336056636570058048545551938939558764429374947355947676485984291633085850970957149717738455085360927777972669394644176054402569937575857062774538596877495027912833130607859596113693714155920603454169100366489112716273039178818045271154895472493778878078565535426555565858710660630842660167344927962137000822849137381039910682425433319746726058039433657190939502225656393079473044629618003576497697598360579356886442840517677970504013391793932465290456979845126071162666413941902978720670405403860846888421795386655644319786837681368192645534649568225098663226200319852272285005670532606647139179815532270208163493065721122489209204626847377012800788952606111573697969587263488584110935413934120723116870904185206102761391099605683648193447673161966842796498736860259576013165345485753954379961214068391198721705947524185543998907401175665927321595117432117159919369597559494245247060148789576762139998614751319448081462501658588146276194220153553583226579304260664976061261815120762331051382350864235661844133100362298044955556336507192413347844334557385836009591311904015348948109455198879355729235130520735023811863315564062038593147554693817295500983958009880145474376551105931313394917218197063991771635175067286972135365151103580593250774493349888023537262967724052826024130210880092578976366858602008090155632915487055236989491853252017063792757199386183108503334248855494419867204776157697285822111732324283343228598506240102633129849857123306958494115993959104502950675238287523017878686424508091524409863667430479432115364709899609505032671938700707539689762990254724689816755040148577585896853751133213835040662474286516123939189713365499730489485167168738375489165564725262963649552572311572084974656403947816802187025072522392878922880965267756931254990350412210694052796189388309096243727992953895919914646991615439736760857550644344042178004028303739786800807255465548178818755736484114215072886526940640811988463066711923870058669457530581548596333480876699347240032229164561474447078598008533192778959699900632371093470791306059735450810554879698391752477992908827889241267127530787186707231599117466421262383095502603331316241869731564594608704498574564370047851467324522441372643338354729011150526477056579985612282763081210162636500967884384200730907022488352213026675877141138248701352655685617951892039814070445478317822142957781592168407649463018836701491547075152757952608756287869738947536131905964863845210453979751868255992039248501172304458606220625836917706501738019877790632403477209162683894949725891000416248703584950454707732251558608474970564969391961246745424085235035356322306182063808405926840165769652162791457735814418339400010251478643682080028077098722893434294604560654394952143983927980589219392417973456193259781485935620131300545670792535906069359721388075184887658673971365820616317863469435457694021082847886521547679945996174570673864193735539472093916658131042945937478505597468511900918539206520648411302036187416739077294690052730443141374979290529656829880258606403392998161549944919754451222221163649684914012623581179121607974751170942340813667818928827030383625776482764492093584730046015516534566686062405448387682281756111443178055134882526169971103204206027856909496566504007030751261954217498166887163010760158983078395403898808842982184291146375930389360056310143239787194724402647327184582252583162501894982857109881632722885669501835894487951123317840133668609117424762250959808480411016994140545020491090661337917776425394160598140259506336317219187601082608177278967268869530691847368471592438443835679031224682324411475183906727645167186284135304238025194138147246490818063116482025728458109423189982284262983591264725287879003296395574294706396668162746644789850620566775568674211783419500661203912015083577246945882990502190602195492346915932883594493589303491643528300424810392530929463018996836180339153232110153016100001222113494159889444226210162184750289056369828505888789772087213418172692646076661588151272720969401732288683389163326260066307718862880709277723475050706450027978116525942377686607453457268195801968467565123518597256409311222344610100315619069841115375204377985656873413373516266807528912829807091742214940384798466664746477418989398829427362090060889440135088259341318789834020011119827554848906195056332174966469152282959198724015660553720157622030329854460087110477054832527991718504359044842849901631616375206457111850302205949472244018662165099104303919250080841950614421298692509667438838917037400504579988236492342753296156375238264215515266895923918778659060847816510042222794485224695729156792227582965665535233208524820993369090231952201979458972768434455202962912052566978498276764879135936999010603291822103280498932445145082509507005588906470249153050660388488522318502618083771768339134351146241147627284837828674189159048746401938815681551876150926413903086271896561901407085000087273176982652518432237544600964776831504281671182090095400162597299688789188639260374760640289724414804526157504899824403863909711193071531668769109778603423753301334699134522819637056082009346355384426310529627332200184054178532609695797116298479693514260038210277440162318432710163075702230737564791144424205466285895462577386001216702024149540945937034018382742964967105624352269907770355866994657444407445430812241155448573001359704341586227078258092462580739754955953613842088821452890819598151554822957228421429282428036865348361994937540228613075134429467649499968030430825482597849460151610983626220047991868983861842717305220704683907755999660737895521247161462189981530141768322896900823721847101213259245019194008369100779721694804444687315676135318863627502152214518546719074627336402530845709220443851933812660896830743669789590138970230685386490455881366039829306102390314048780680253712524172317201802825573226947037227210954819623393923114416651488475020937596521246408763085163340727428390939684133150442071233159389489269966607755367126685209737427459875536765218733304298640728098716525160558095902672627132837164021097804962811078541788491798875782235345564165641366759059719529929367203468853822303034547013283499207340457570915261445107326402459102278532847105564707417053690400726663660281826219908610684318523086833791784187958372841605192295685137776674651394578740456282953430224263174204567945587028839772098701136312037174284068257738246070468559939217721641910051587424579816629224388532577948073958962560321934377446760125857758727516563750831689772175345242809720159157034707418293155737899578065546137154447052798176719823317819150489765763854390868675944653848227680747047724059901922843621617489088604296731703953897251777815921181648990918011045247730696077128709204283853798667767917899195199999869079277621533648714513846846989409620434949158315695440439137422981568519065326114030506594541046652735094577799919295151512508181777574629808208706520701965443598344514055887181280721955730359055319071919680269420300471282638893841645288706987079079350294341302239305492934646352108662070524402106759885476858059965940785019588132465210342654298772707929596155319391945160383253041434826100944404650839253420340027568412111437656832189814635486265773669404569866539383453293600896415535006590582518739038865988511152782829707502636274003313402053160153108457186952112366886427566926079615611729571942745355389083154371109915004494874313504131515584370110188848594263906142181953898411266387195848867877637697966786673772621542982186328038793334169558046322195583720396591389661724541446589674729969517790006852974550007460689192398938197012333315501139076108699689861890912970692620726197336293301315818322576643281334508000300160470214010062202380730718223790218404062982012049439663019509814334052871771994793347609152071337250574795523871653185228053425779434502281763632382582858247839333853179920092581891708186972715725013724824409350064227176942286313534976171911269974220262177768127290362138844728884177887474459490472810650743450242356696503351610325423759485010285958224527796093659102094490524606779994934249696029068287189305498738687799702919006328197677731656463658802099049052183833418190840494226428619801980566071671486099002393468576073034099069531381551901293273623013786618781367563507124979888812307614006293243661870599331308769751344797932178508895553818721152655490699538206667697401380672115954047639498568345395310441263391378594857462656764989137956960236498481440007593616744561084657302581580665266051066679753747253569030613496814785562877875919440147850018729698774631467892020368832481143469847889051867428228615804470157625463534024878089614537553408795621056103453794870233594420817985400767341842578433074349751302377117602257862248543121141311871767567094342089545284926307184296186581207936800387906561328327976493627976075543722160784044250756721153785811826549595936455226764255908577352845926499110995720744661094418996594472882188795648927942525884867277842173658640583744729766116490341891186823324163863781810352392892091619448240160813978115947756174106466257342183386548445732975970933071583701821432011846312423384306653794782675060677326718218880918673339808735651469012986577105234751744095929579683127935666550920242141614598340832446294375428148889067111866112086291789355355588392034723066365080425134413283345653786521366562513614614074469368890764798680840490407848115281365238097303886599666284794521688131116914431671061131425705688148903569955336520926258241580322307682595201029976416601742582459004615311523457012935408832960581324090765736222485795425657759990569826701394690290666256574818575907304442221972433009634517709974644348860258671850868886801099505239277848740651948317883686962864066960506101779323581598472489694155371750207303091444591472327199140394096136125041761116001828998589364249332433519448875144633147238336714485098969113554764604877669864341567697872174750328804177188793661297181166971710948853142242192181133129656960232662752733411567088505053329702570100445630513383057314333363136805820330054773808301758246316701850425175408550176707534103076805945068689435170260442465582311754187362324402616281995152814229306584147977165113945169324527464583325792074708683707043620158222426921046389022338216375633546888808896922656382890198261076936444874702860462697533792736593712968423867698885259650263992013109466696187605315458249266221607134388324566481489134880487998086703220075560104553033614080958100535576881257467598182950905318810963297231238113125499921669406840060438276915600241026489797603057833154579351768290899150403607761816481488946361378833264779544173568355539560490192357177701096531988716662447397663015083429806764357753654804461349315406156904564764518890512866593546567900694467028156992808747044656407523834309195336796250795517882970949989657370021875842956916919051066464180193689147805241914432054379219392846863358959156989700045958270083030291754938803272796310467193005434999312663905487511175852992322327272613101648183542057464733796279130068472877912419942646214913065434676662413750501842419839454889088422635904255353600094476611872835173472380968882445158505739543891699550239339031811981840104302483215849774364626859554570274226493741813522761565127269494936002568411328084507940038127386718394599131175229657074314288670744334432846078672801966071112742853414883199394048465349848894170186237456882865199519352994229640401481341216729500337620195311924033801993692222999107066335338227048342526608923109851711407036557220998522387177738193502175235811307217334204068317571952327224070732034508796833932029620880355575799896161218912488288945542672132950996345340027797540205995023815755637910429940284247123522961015617323149854323330809208151036517455147835039407849925610164040335738240181257853335962354332346744825986766381712630447553665949610333578957554585865563981606834397564937502472816033150387956612603357086790275524756820982355961048929588535409271723405723546641349967062943350438069191307100306349821675344737749713839525523235687945479312357618873466463821117260320366786531267709442521566045263299405987936906977529325449120927125128476049910779270072084189552114288594507748470939235935956883226499308639859501662044570964531804057782173321993132842455263388481324860947563994627852874605699668008041572272605299715500032259913014753850872529632365303606775864088372698351438263830731171716841707820531868939717229435969042753629366219152972665553204455221358646421729419560615155069387523831213313866786533524267259803224532130092403396277985331653302574925035684337860238214250033071145939386323642286805853545282283398202070655631370800245653791066859952153690598742906765870911704597909853940750434684826210501745941429606545458517498269306716620778985437220961714737379566302536178435892848646943893987925980140018973812814608827500862049730741806255727935492622650752677795966719233853658299601722488675350561693956247533085841316761128459456026902229873008272909566048908909333959919703535011372640254309205773096934368295899123551960415442890163532612583237584392782865734769800101631367562142576771770510250002872872673127892306987002405069274570528279362181980493867911652034666245009379009021394889067181321712951101648723250690131034702657465848692873635941984925169135153562260044646590462646795229221047925528976570054593825695019610444393530796684004404766011785417177045358142352042198442734184155602224597121299633156423912894460950858366179490479919155476133741482017468241623973349413596701102100271662365845032184831425735424546632548740654428471221770314387076343706306779767310950016465160303830643137790756191446898765233728288119207529616612331674250175720578016018151721793420909348950630558398528419829274449771084275845578432700346714976942390569300736734259985294951967796254259000999954805670056916379220658719962949654076544883042769022172566782505359923811097982897470879714405505313806071995811315015186376939674302425817311209111675540779237679402085991515981472982727178246748083725307320611866961653039752995797942392344629822264786116100571028010563121301427432352841076213217737044935392407087755178079441955942717539626461526333380575068109125350844064286985204702129194008392297805845911223152919736603512840046599664030724550240871484321238046570244493310883261968480203279605267776945081229282331557485516881198369899894411263292084448044319056939351786632786234377581620162253502182534361753912857283841356119814583870489827304477963731727442134169470696603987530073998755050707062787108630848213599302852463863557041607285772185558848278293692527757832197771590954810792063678993455620487931056840666024832753420265076404157201194698021844145380162997123475130598805772162934122199985216066358787433875237681016022392235270318369554972276216458258067229523300678648976365230582741274551989233495359827271259081863286412457596345132721900643254108339593353081273017462378078347350481205074943845362219585322679492605331545452594348655434629104394385112375737147720069735578875250613049490336281374521697575485335004935531898257551788204788175077733803717420615126622522158587487409101904143679437646641419371860372373549398594392194393077689056526528190060797709882763873623442056806478635599042222056208365817507944936135419523570668868570116452047707861102139098622635306854639210069181241634649433941392903257144895676647465167647657962563993399095257633896408168078627714744401535681533891333508002827777060662838527621718163447302226304053903973483749400576567040872173901568517463784795693455169950811334486324963530361457152806374154507417031429576860132226068947013883539155688530466211705718305497173755424842268992007837757267151880475701461131916339269020676255595188720742118319021517506272463346279945996331057869041301262076409265918861711318209551655223883685697550628700493899703505905982784353422567544256203272842299718681042242682846178558681487867121782072577036469600301065550923106772241319421946768574872792526706423515299850300942652713884804435797558357271113126476213168281802066957066340669574421364724543639397487123233688288624438233799405594473208271969692879598203346443488867982755173786525560879546416234589479938532929338898110640352317341998112090117874199267998615660902052081731397805807226308126881120263241368690402450726075740810413443298931340258581605704629552132503562588807569980527894462692183490698710559019155397982450753633973774697818782241107614967404111921910440760353288203327229752947441592137327839567376691343802418680727104984940805696273200401794970572674950959125304545026358324924285258562891090500659396512191837810178387090672260315297229494053474078086326233711758521595404825595601616744981327654869591032190277829707660005784191967694556373488920985658560743519052989847255240744699112213316655477219980800310843405257285359545142938421616997998091690311650814350559174656970022995974645656052558167902638106484177946733106054532402230124403671279396159048200349568448744560940992746008642792617274086746175059573701381423545711670975606933144020561175476848833240843376402765687702263501254910811829455092828436807784457268990937140536677652146274142672860583072321495435352696184754727768459216064861082759345738318767492052902973429099529743891318774317354251099350033277520638655331388292617862605320122644645126683033175969201919942512707503244864100444474425531004842138769188914438572913680249106561001228299132296655289502321654997542458526302039851370756356203437689181024125288917641664197203063969643309268482850496457391062429200539319701055149855438430888609702008039691102729501690723248097020465490867860858599146416254325130223870773532642741287713197403356036774672841839063971364170707599221080219499368635106730830876849940643517894833732432988761376048122333548356024689520518588960497647886641365702157963172549514159065354768570480104417529092121639157492639523329447560945603055380974398051401638105693515120624437858114603772868397672214282575375337023261506968745448987659240482690457973727687168936026532388606612221702952167569537721916405726366120568266945701843445450878001721719906825717365677945892858010275965826361198239410082379422980060653842241688765558267430693188351841067039523445873256519713931581565089167188614993779840848453944752010099925411176662363287594633601053133657847502743766179201935788448913738037752963558565387635877557957397811403702551613598778952654017614863081076951122213536312161636562512471041447189207797655184258751477700461844509514198596962633348503046021983664761392296529322768603250977376079180825816800654795167603489712982494195571108110344059124063625499636863305061011410717489433801222182145211742110551728975360428781200902184818089658553597261896119133550328614170034633902782534433885860153509218953057008032977201718020761834383724951192722934073166912195541147030021498719694583895330331353828730915315726117279321911237059818525919380715603292218023730620795024471182758894915284246657204138413114629746960567454537991899415570550002352818172708777488379111870312827560059076191078524208055552648242808818823401854049992348002504622734134155782535680927193814989343712583479622400380303040994449466214516068273801449828687839030108164024012359134823332363921966299722502350104492365556940235474812576377496051291481231184950933243629039637073936811087647132267814822410561061721584683051895655528521807785901905725720029275153697296351901200421651485729255372484582526811826474020191360855964602312684215031127678952504486095623835390375325609696806204950144967973246550339627769600941426716516830873555012394804946145090591698562154587603355104409064294582609274578601913742850773160468858778044810319792410479869163261082548810398697089304021016909525873628440323666247019408839167458865681189055483375020101012532468119944345335781646218148064700275747394136101821866677214437430136591007597245574322105251209069930414588724904851771441914153590656848033843177603734098815485459787691203434047753766074122375200674286642558636366096673048876951637530000110485265719769853948535800646622063030585233544523414207164199679169571448436453157617276008938734819601044223279522761430684460949493256092606472712263582757999477994066885257310298789966074546138590475279874182065698195647869554107249291491511493216264998212128232717271213342222234976130812056030476615044640717321006752514336723677621885400527493635576903229835393706496457779280043871828045266621515539939654843558472204692162516064783616472609111761029845402308523549402602926698217691411567879439227474275461394599602573911594221713225455787484690655268544196009452866058777786027375809332710062809448275201562164260263026014535939180259332915193572443731053991575203223022806832865416452572577672728672097945224921330806911256951478204417335003608898233583308034536175027159163469039669993927453697291351647575456829792129663775442388812163940279532337890838838075077718569332564707265272929555804734246956445397884045789016586514387819648467224625895837111478211328510872721586210627737379197788380289029936129952778150354000681599487097185318382457219790587220195322794001149489764353673960673273307332303410042590765827909110862604923984460460143526435634712419347952355001588854067334297393584233469930797008969384013248840537356669433849950567135139833929005155644602939072744878304743143962660737248266859004576463781419706113338749426169319982831005207605267647672260652975634716708886918774955127551588488783291228304836143847495297558059345678753859015742185405671389326226729684645486709377876232606788508642820689145011967057346840780608792995699885463806710499112687937700722609381500590115735408898354220801701796615536537656025385231401694253323653400160292471596141870357124635741787564914611367364218046093467947177188642624522649589277733650298967051268883946592309091227884490582928795650209112609866780193053547145737755250584392387345725765372191852852348837062352946507011401717341274636997365939270418399609063726862695761329279697293844443082864258531018244213064412568827615776336323280706295748174412427905348109934049440568477184647860927161874878758183584688308904192533937984401241794429229791569379204705205267896984772515308770332427635955727662522698341174707231008829128743362473621013282340012134814785366116195385553519237353517483173362590951157310201526141967333327271961422261347571320485682438262790239925492209414817293926637701636479889254316588811122510387987793289859171304377030969691300702878778069147013075322702704459522411841222186844427317313125513769892266365951225301813363334394352080223226038745029190914422773907136638756673029648129389919855015316734710133118289002422735935103586257655524165433432611562846321898915133995816886124572319256114935339598665657019649814647836920549896828163681111758884412843755439817928561459745303103405383280597362197212545109420748621523459433489284317047360542457090427080620353077431313431895295734146662629916026405382493929502194416597913209673328176904163979633853229758071477655299215262187965713486705541597722778300198145967522573211024798815964418432735536857627617508914150592009360995033332614572355043567220694141569507717986660530975212602858789219198404120329775991442492436728634630675063285820122399712695440692534478057279909849552098990884375197309440061534579946481592691070297427101208947215547153380655965877942263261392555780142848212287662899532562224212853828135566885279005873461960611623440040835116991306099831627364090355550833328718558895333437232342559022019493521757695916451665338190109496956904072861226440287128676449782362995906950694589078520361287386175211198265921881118369813179520337566266767788242208506924226626057880134346512533514663556599168183021862492569721609228993291755016595422740481077223655688142323479900704629780756403807465164758613117174819006537546459318840830394402533626626871144869404647941140996775646502874254959444850512527981390641647850906036669714239090032786981779565644847145175965303807050197268929880028883730022430200922187598088006625773964245355137815870954121535994687215856325238839492237033909118509556603269297036062797486607982738544644440814215924849937727190624725835695082645442178425626461807927567037446733508363240431992206685177994578444643692303155318974510162713228537894621217983882968773267884727754087003901958564239853898358549205542158771757450219701364545546328818071723874584075619365699262168165363639574654412378701378354727430738585947202282300944857021769206283280671636264028022495510897141009749329175637153233244112995945209366126256510910086741657815685614735001908537759483544870286766062545592831336881478165312523981811240967696495206814875049578644678676880596075599932425220350531341080680442797143698686259240345023190291085268906355843087668785507483080081794683559529480821189963923253239778060820840115170484575173578025743123436966216316781422744952397687344815676923017180616650621054603124309648798639509058749448208670845567027559185330705975953824844275703030914816514087944350259974770796154492050712914493807400569171186864657911182366003454331819086785157233571429625840969954882269576479294687088928724789376317567673977610331667183500798001533138523129998154520218611872928292255302066838715761462298128917763423524184639071533600390414943866182301676780628237417890960009545312418302691939428267099491827115058677268368748364621634816007762885056210032834540146120077880068583039238212833175438774150686785538983320063974364608463965433924110650675100978029622086227765608805807744472077157622485197621055803110538205782273682098405175825899341712238733566905929521722674035777295390477082555994690147694926150828986088765546931703654683771637358562175417416513279488228439813632325466426552527477023098334901748614992059582818431571384532908775197431094936190111227688440797937402061952742439237302849901994900170379539913751996876213204713207808300610248278541591481077025472226383731096047738031904776320966556178279361553189827031194769049693904363696845268083650347969721629594839205694710742874663223788119024160230287877349948685315143003350040637270598651126823437376912087567920689115511940432364952653475722393421303631331742800352082799844325098851211655423721080718862123936574473808682726485258111799263334502283589465989236912689896480704838823793712076963080218949317482158695196090357173105118514273565596841705351986874386543735263299523962577206701447373250069738439997137067205217651884093295880405659392912200657560690556379962863508019894427809487246910733269266720278233183924095797727400005325223778627375598118414179856043870087541411370001963157349021128541778689275757301530152092123710109330795257561653090875903971444125215022274427602671605111038660056520203019670084447928085169826431538586078191659849231414302940997962772433419113417071735370602873114222613626756894834845507669166283664221679080341373646808782851408445229730780435534268320577644812048183246788123364111707774063412037982488329962597255015866330536388269176894484116038055962670047529389455420948480882053883839981764040667898829361637797789952042451176787681625507130792656509084877912645802958232141543540912651268479254250072144022184385697349894006551631824116350122039058140776828114581796526268982626218303754593157973016540747486895995945229880326582703842328544139807408868667702610523403243870201789080216878682913980561299973183245819849955297474785439734005727754038480731340523478422081595554754772921033653999870406160672807790613951913225442382748682290351416975406428322372256488133213277101782775785433180820068933718037696665809035012280181877495864349444872742984641266791202235529137188297402427288677489026147270225187226887036196716554886334628308481313110670755171121485894567837008292545550321147027930969581423814629036552369901282322065803717737045763771514072410507762248181591381625420843403420358544587891320080829765450238269930777203316132475970124985096417309002430387324324045517852389211703187873348879475757232753088802647825287247684123750054902018765653564708106831106184502021296150910567608227802695476995813163703613778545842388623555657240996671996947793393017674275255009758122411142865611633520459654764510208522820012532965779513410756184077247092955034632322776883887491464525418492584821032291855435479099253911101669516878168355810640704405790722985577618247281896148321275754718198193766999917648720715379832401487952479660498209163713018493582555265586171299691078354773280200261307588240492470663400793230163603873826384596837277900201052546224236273468551116872135381001473822223446639337759106566330581481246941535506254006133576583859293740522599086494671786821302971690409161461282730686620856272497973514843154245325825776822237547469750256220226958717756552964362233556160989872892949973899764152977633178570946971049061118343974976919413907302962279557391116974326190603681156212067828511538666125450946889140179802176921547110551410950964402490003513267026553461503005174587031489750579454136722594326082912898166022482722760414410386409807098620211232394955290555659898588935051281423529716706144156872094523912725200822131596790665207526421856193539357745893782738892313843032427639261365718294786567038091922252908862731543786686088444807874878633672844121719898603129240144660206523103192001371821769625324526841340044796175514023099049109668989829458141652593421494117371860812820305972405579958359486309288594705934952889439356673219340942146495592741616320985337438524287903974268274547652536873559128720249907954176707149549428585954755492770667615079929280643710840814208520370741778664191893197300478718031205379340278616454759053288905158811318952059064815936226649574757975326170898860337200413486784965787891688316243233623623395161844221151148435684070310193948392662736359667391756081012894169267165433008552056679265066547812399405563538928128252941168062460971138028977967306040053396474320278047289185571680390611773506315432807794539582587837666676084238824069068709963121471583669263354130541236452607756643139848081045745748465534562672156759977225881125902515689238173256788627052442531941281843632530441892491856982351519521832467775984708400077261155576667599750221621087800476748751386284859033718450125658989014584858871743916303126422358290386744922971169210658940261902432540229441470244222765484937895658878113468780685491521071311195740487100378292168095788959528388109001680426175403863496418475766398186554318959910888257258844451418674064424887499795159872154941312789654346361710154700854691955248477104516959397775304247503462201922918112560431753221515695957170903980139008997293081266905569296404941495314982105812689654384194116883062000326565734364236456115551724162281927167741035518438110183681512516971373247417861484363662123967643256924913939463208344815487759734988601302639605115649204316206186845012095070843013425862990375708726186426696431541467580641252751082280670144606070311706691686000995921798051242277950463748049446003740559077610524512084028238286743754202332319019495631761978917473842301279923242240764258663356054709834555576614890588385462659467539072421934340694886459967869234748731096472542183895043087178063964232476497266952110105871973370174648927004775048673540766009714939862092241101171671039003042814117402029342099289365641412849362866419469537568082779671801582649339277356358117289635694454703026671382769773836569072823044792303391692762403560948436776298140310892752938934444096059791453723232202754484567553625112681003895098362812479926639832395039690516381810688548301024217495423829206054215118728357356284901338227752989486632703203921759442798668850843060915656908172625564628295364599399845283354951891139030661534330037002152688036418080103677347402511389472304000637327130805742557158459158953179103476110044974046096897461347783284713154528353887275036693149604370919636578411518218952567994340824920223879155902828150966327998495878312329290441164712703586928520012381270288388990779763695426999008633493468923390077689837446654527942826133919213928837302684432151169379051227413227943055378721199043561446389980216545489589022115287887469557334276073232176975458360797120510976471290000794212723298003391205133306835348752646377335444780717695547004991636261059096537847436481820422733136154818723631707448215574765975969270034397500146636738331358306840492282863831153377508223850565172199844845093889176750820532292540806963532236397266370565498965011141116427251712987514834679671153412332072155275256475051865935720061159304591218005591971879819405180331659329796962755848497323159299020208219025852147393168452113382374960258846827950242384377693962150495033847276418800439012655210846765146719107107248327151512401321904480209228801013593016244106845093953320115532466196130815149126207735606473025296294454807262706676913059221676032690878990664140940934451354072092187459055967430268765132893860396524351091511580578682733467602425303387684682389697024726576806624020367087929388625125806806898085755706142501927300970269196015197961532145737706677577690310502215281954528919117100025493450231734577877344927649438823027057761468079124905065427527102478375382786449911104534857564744720487849662680639918557322327109429801138491834358575988899448408994469798554702434976023469740713187631771122938990623535851691404398411400197850999285606248509592432574630043219565186345492278164315894970546222777941961317797852337589952961031679328353606052775199982933348993689574514990621706385310031031542194510832460128878694643111620994330872360269502219534758173314197108609807060259087463588012947056240279451586421993698693531374030104037375349772214144122274676875999898275973750663043944036677491249574577941069289533244578318354830374028695983361743361137007260552575338496918977704458197752590272012210314271530087963789937639431110782378113980680388739287041335571187046275436024195050124824948533471609568699666160396613748583431391946156799199999751127162516353985372322817879174858940611080487536817424102307796752038840086092541578074794041717648199914022104628274447264752903477525125301392625296011840675693930093414098705048874145653316307035069829506553406991117154880017747630469185835791577715521981832818698431562207868601411480213811219888879137744248696997481568731673193832499985848525492465412480391925421707158145207796102016154060648788938689998523615859681912391940392698551066071865304015448338918357832280829483867060070788833141110900724888145012871935450403988290883210498643436841823168992107617114291852748016118074512606695550375856984207037395020736414251934270426991771352631840095227883560913635825753412061031258367526709259410593978233485160816446123839593983998536427436371723422490788962051828894780046622004003017351651068719096922559364430123304233773642356886160163649270060808245397202912213205043382305871767970415393341140736951920950731744944995836003160271123846686297393089506092539994539714724471554191153255048946136975615297632575657007494921785594373130210313118664074624584630442161591235429954842050857936593163709809137623212440760270406639759270286043514010401102529521992655465353624352587460495254837440710760736876961767652847048735693115608781413846636165505974747698171647105841800527581551829452020922829648769575584892293069218381269288650966739669994160334454065145018351748503722021867762002704858598549444584615036712187742388342849627572116269642287778320104366934351923804965437906772768534735260919263260183258758405401091475153646281228206998989377831061730513396956137560419369001850091508824409943190231189321313565213447414506044951354051299707151063554841633895858949229888380865265613396974789832059591660692335258575018923337237087947143500272682359182047657677018834566867650521196107112295567270388875748722732763713597110368567176192138143377479724843477354061066677281072517745099389510104339625112724606790518650473228883723462333047576340408682157513705606570515395313940392412257487030900570203044397043808236206697979306588386552807674231873365114091657322167381054296223248065084280152854842916107168555930607843130286164796368177598080475802482959697848153827229114588041540945538676835973193265559418013406319537362748153190469568951412267243130447887125774768196206126492422555486738700517409834833172618871706044464900637344124643098854605681575428634921541141021950718332844871213722830637414580198775788094079189810122784745078120350014190073001258550822433967346413760012634762943792099878938316987759331941993332955145618632798904255518892732473454367627342309705328969355915346526181010698268780223607918634129873702654316043754327163001663475235795671025699391950759552950902024503934643126262485859455087616212044569979814414641334359633518047652604687911821713689503361893901780701161354833381043586965168714311107941175447641987938483285439070217071836038970863693924699360318586428556173072162891830299938917727383141489220498534454641299760004736077740697090386890659667380393099981679753419219046554467181537526502917459342269180246703411647518617956190178973244867783808057526590668343238136987100088562580905083229448854514927740229460518164633295134651881489824609892164585543786442622218921162750644401509360569374505006358304536968709518753951064966344451270902617477879659848785612016143237404542465452837175207611480322653351511385173467924461491272691312742145810217330212561771459959563911723375249533733191896258732175836604614533621209389245998429758297005168516459374030036974801666529878480555268199591879632929780403087379892781831248439348210811912874233658343999021689449745773470165600236830391102997098524089221863410970957093608458840725099534095719247628294349023863898364816206182616276067521163610521970653871455504121704931688501219752033787343619852036233864623728190456344838819138163235416923567974524774377343688163840962296964798358644647878090326023369469127266463599565508985951902013764940911204481851383675696044187558759463613277248379750852940024523073990378572333476773266779137804679045356752451984752425284397463381829888391388507161613478248668810288347987025597627350588470287372167340445439796090427906114211604321774416981807092412755278067853270300905945229646705007669014296969477306009208813711802275400150171691125483128632087190042039860932114883507182412559495615905044573434630882488896476112705601862218899973372912409444035282822992471843278186502238328824897066516468934162558433096415150608492251772626239502878866569398426001641966070799797176896597095477940803332855134451617997203042095461152114454099015191539099300208866271521277925450963383079769312933069221140105464580060745165478555325796844790870774722778226865617299201689306227628941497921853547352508710522970152042042523613766907163276288926665735933619535879329163693176023123776243944690148363852781824923970972570226821300722550769929369342700966636650700301856541980506815908521523338849732597689332839797448975834896465474727086394220329591502076517722787100990568770466432763011310255472703182990134661503812419191897050329334299693965739370502893637836690142136089474933446946906749403122020360365108540695433186829684845964047086609272622890186829096883335827741461380298931564572610308613188733500648459037513796486908314078019939690827915754285146796409652799481509887377700161848171862718764616052517705186670622643652335573570018707150802549873481259648290193039617081474955092034523593436431598819646988043074150090833552200233308852737074477575588225573118610612464050278579985333494576655726185886916275839885905879553635176729629211109183951581358012547498169281946765385445474006223183854721028463750080940926022953841524188175231856404571375598900838716218849904408420448516468808713949545995915453897148906250986644146386755555090447980690873490625389707689764399265302821830832763091881457074532277079404015764990100807032783851717669709416632938543210178602690084889381442803441796809941351155186870987620944526534789740789000853821968172699671655326746114493617916306609856623975157040368843969477790857720528346426045911395184414521480773785697554984629199006970590009383401636528493395962881124103748258243979610428394449103346260698682574418486548838917349946821878277907114864244180685317739998746682828663390228798068792802064089310939316928906608088494157595493838873925069352592482502886201288232068578960832673577742668323269568744110412879114387520588924467562582363679466374654764559662309142651775370548647656515204567371246901050804558166972234632981328293258193799323144750900462597093381239512329666972730459516649351326518882177766607609162428608564760690043739460111403628395734476107731356420599743215770316333790161139334584463382024985201469009523708224660790697224638380147289918382705642993719336982263135024181461395668023860189033128890280256603770565444024434040224267870841971787044067361898475560380121946759563626766215837250139305320939865064599079305997357349705839082178722814026778248435478661550547155216629889255221227178418527639487952857311772787875720720186794644738272532379786848009735859440902372844309295766570486612791879669841977134898408565014234865285635346015426383878698688640884030615684175051063060640866545058142626185395229513505544773517268546944126098973280619290643547570754390435540525038341296185130107212028756711363123984478520098523218798771777846192341244261270612574840434468782007097935341392846784989360259457928612648412463831653146807401147548556839738536147027195957462439932947997175472353105961992062259192468833280268258962865236870410271973075342671396405593888016733205553201505299980563239213979657581351497565698604697805600785853725388165548626609462123992220195993362219410727515050701517870825520418571007564269802790172031952311989683615351126976537360555487975571892988356943256053048433012180610297082624561832049263592210458353686278700342611695910819817936647602780118171955239994198473612733024091439981662862600276912047165501265299581788289493948245687156483555936795847845122306013910474907116362453505104402688229852089047835357276440485507833483948638175258849745111747740280883534646295356149642438357593595186457105511083254472386929550964615729495772933483769743852149045859502655614869671354843328765360772191005107361075280816828836106458547296442163740105180052749153491935421108867115435109135848570670702968872425773092415045685334117691998988556704558560156853706565430489977006160383326018201224058219553319633115964438680507908189579843765727117437513480240271353034439768548860520027510958397195404011384789665345260129769105594646196928830839894428919020623508402939842783212300887283055085568520432950609253886844815170417489950812951127849048053147988993499464037493561793048061053796357992505162588522600594241836494183465847085183548166503470616571225223463704563822943427136044440366859233070824798528695300539693353955101944131921522360371330962159456665011529901058906346866789551415697896611123253121191370928882779523526306977056551264107139999970779928487678087261198896705875232800736786347296278368065396110112614548899654106567276847574894391332176729716294372879315759520419395087419071188448849241017125171388734267322644779852140261143562215382981266390925589314438116747613962043121567361439190166606879226265941751485752748731168943247202785468018163183799640257438026351810496427174846177010642413144645303557121776411113777164986413914253067540044198835482255742075647183578056874532985141742069321806350678435516042841569338899151391744774302176869823527017072991171814026242443929886382303818037700010389869765130720869173995146110637561190776496288381697504111781282492513558652171517783300093958422810470363341574559844790150326839244561236808298894529898631255573719444139836570656266585059693503467454032979500448017619751329074719531195253704552034955462638547428948554612900144487158419479293292256231835107314292809689499250747070632321045743131972397421817114818463513671359168727717339867676337164116902375315213554743401007690628177169682802596617678464605593683669105207072919681245223241615437150336966273338242203428481597744249927134917707620924233466281210881990776242640519797448877863193862344994506826604974228375762320290862705802551316935223956064633805100320051354449628336913293397589219859501863363764550835041172856599653207279359320408900875971061953877707211177489353346402121023514407303378045702037847680723535215919223605033045343044250338286923034317415385682796307529252277217738597054259986199784219804091228761580374274961295216795765362384204341724600158386151834428663581479426693248778051252550144057593959690516244552544375907553381190230369333641338492077236755033799818035983115219238785475714486472817471595984643195039574570064971884709265043803107200959680818163876804254641011431951236744986716439377036331805921361596696560941843527683290716354484246973755907903956207819714925738027762051483737518855370666787651452893730259627388726782887200917529490127208844712111388551623136863333509006884021758204431577188614125876064480148058166611395994533308341807932828064168670796963912373418883317909393623757096918470887550273653424488537819595380944142269584361577440071867643879945355151013397989284779994067528753911732725780756698972532757136824863156808299747350000033972012447717837384396610615395111846453088065623066945044066072646309955884736879243006561633139817615505818962443076507622063041347715496368253671589401532521001808956308739936178831586553941231489544285986415750455368372994168061706973335074153187297171237754329910341188485099887987849775603519065312700355726892814541486894442317796063866823599155264414247127098964909464393129180661280290631554244170049522462322922127409158697549236245163782567438723256476248715875166256270618918512280936772859940902201318016180811736939051928184186109780716011623181837776987035342975630469229750517661219503449448348398522283812032793146602435606752643978063783339920277134656852884443843374517760463660406553283211725133212163525526835367465281999284804438958763455112182331385446859380137898103802833463396315772186193302510481600224557905111696235033922357859729850895185558910096575897994925864202951654929345109470114979096190878811423573658095350010993223465728684042117844115412092450716656628081776722586671069470140326997914641491012627085170182562119790359511136400843537008139886746854149806099726517623171222747223640109406502591634763777107071092512287279160086475946613757613313572206054486507082010648570259830393229159171535493908347427811322971004422207995384541037228968032568608998888923058053184438305661694264908409994096810529923860835983692918273051428419099843911012766472796789547394893742555337443928361589335735669133606662627010205074273082836703083447776189833018371293233451553862644548046081532238774786739236584304612454499174434924924582014995256769304770939963768228492301354689946821529642092230958892447514802640242649509139600848313225140359008878746022344007131664207896994816990912791915805769136708799523382083686373040971420938784650987874958930849088986537467047419137024186639547621489353724803652096221852000085125889534026515745754543696203300070700343089295133257773708513354362793992282038488093344598604488988279778326286940595393896064395069851448845397267751194347918538455627834456541402556562490045540333958273687997190708024947198649444644453141156802806312056389709736559798154462096617248600507637070339153897076759742382436028700093935137234378358464169368111472899867796893187806668740218693022381300902788017997081267546991920393762058824953455864571749749514531554540852584989083591775364361311632139529835301741464085953885389301207642765133004175016934316697347440872087949500427299614654138507984846273290685882177238972065787295347227487937293816850868957773906903381162614642159657355576623852287681866399486761244428582775701593876594395905747410074758936351408616335124823508184282089770944825433693282503172012588076570084740477227471098853858746311742580754826628699216859797307423419088079704970153441522610318312096558913276698947186952715997629659903902350592323360125357904740845094769121347241892100359470342326386652702547162019382792357441419954322031207340881091246921508285202191721606232534271612160298122268423885570915706007156409953454038619849279707626578121840682990956373332870047788300595308413932538064249644591681002875342846930091401140855093914509752816288766736816947516474957380588985411788603202523310319474718630601053228261183323216680572135409476059267327939329272136511303566344027308997585834074471535894404068301656997008683597349321004949754609512203322351236922120516119602473713727682125180667481542420336390681956628225517783966384155036801964562839328794775969970270097813192100793831858728529847432887601586628994279872804844978181912325734227523105128426836872886444069158767222359801749315015218223811362267783362593968718215330672962547102024084035836541939856244504832838582419137668450319167027984924883905790543137534556952878969082920453232996862572726788756229939856680419811434321554921260647278194537699192699306630631326913875420106938997667469110847675418967787639707235031230805147164595371413259325550430267616404555115818784796787742454868557497541939909309599098227204510022874491803353977683464760013362513870478574015325691738897024641306067834065625739596933033504542789316620717307206965266668073026468139996343352607090709253698095099168530017736875365936647369936998105313410270262240153689920619577069337053339911790334586536589474308225515592396076153368294533558704707062904268664231060185424799423466302737220169431891256624269488987794331502753145435777933978798213641422579413513829513560908060206936897542778200517774222365374186483674247407474097521464074003541432297207202950631984507479626517352669738032660675424365085431850683225637986735669949480523843074858425188707075619254860303186659169881009900828829106343838203983913963639956054798714870005194006848529704929494347431237855527413546059389858872839457796612555683231733804749517680627754416854231424451494363247722521705349895252171839706167895161533587749898585659785097702629609876686434925897092395517836977995474813651518413994236045230066206147313256677480722215833080343608308996282149363213619870585171661722398135138033141947236288084640536577584497806252122187896788276586149089933552698044167732450776410499807109013893087239168089497571950678621979569957488602510703966905022354877338294314195439111452081269238939911074122251594465193735935113505480219685717644457105850887145285475031711869843771137911184245825203588596359733867602646036119938300610052049827868519251789637805133433823410772892195387552654928477530348000206438447890510090315159752065467668373508933556049743233786695992484226146907284342768705175133609960462789634775437104067657936833471397244637171169636274210276181912612229725192478264216645452579662701412674493809490343472924877596834693599841871462119661280138084675709557791935213553292481714949864735267796634736409519532705395051325795353965752174482918646677969262810250329974962076356925590182931740726963651608003528084801578089691745919299251805277068454286095344203007611020972436665190426406950680096557708116794934954794624356328767033463705812304989587401033487396952089729078478027264535239621736916216740214561707013634091827972709526048798673819991597494356429146644818170806259181512952524347530472592444688675423579094390186151892460973107968117486982588952821264814798418269678324398666315206458062533050230121196303526293965564769741074602324009421887463293588280596171260929682372704362180100574659179289820551212302303894119867415906515698203107986306452217811268659925499896573032120042750930758428704091159276025499429364202933827755510234541047271228797865188534394126357778162813450561019909815265917056387300040149462779029635996598646354062868163176362300762923643142250818667033483101303239323714313676114002842211572579379237910730599053660280865156307805059315925762412254764279797729080479181899619756178230228395597254304252832758744168109290591001674674194478046656377408159587523725841912211045780109340143746352734867773440924573851174886098368034992007120667042531745765307109057889748979586169307017563672531169791977129933334118412598527721792551013402200662142977174421742352019543304751380793713374783756983022644374465435998356723260227713379770638068505190657041917599079323655164053152794448808934844656080834365534759451997631936868489172352654616012987546220514595875553667235818766448583976695993537517471525799257635840016974850157353153170010876409911851389446008402115749358222747819681679388191636214460259790076570381899682169350152799906237167930285950542117491813485541643211763457952881247580399788337009153497851304930028026091403365526216295194991094512194291670106376449195173599207876833389129370979319992221397183472961999723207567027880603753001504791695860493152248571865870512846483803805377606533210118136913297609830769464389272207833811359693669240494323903261357938682799001018678483260488975251375871685104151457314188852514775925630866549454584659779996861619769339662262783934824532396360981464781369907165509335992210957333403045421991307943062081894351522891042337686042631355788710104238005381642772396037681312051554297266185215235470887358552965404755628670533406582835174223109264830538676856741407781863932164356920814330458714285416788433909696838879641073413368563495590047546167771346280328000567476156808496442861634670300211858614904540458848160532801609227860062537046982113050034145995820125369276171074520173267918334068314875160016170898198997790950210419768166573071634273892924137418678326507986362283387169500553400890269070646168792314846811329777489486217923542294515908196902889179610593279363227166406736564412487916547835946410799438500716146761286392584004139220406310572218485231040738666224016831082126511447281064620262994116492855313809506970699429411947903628660729786310005115343879306493716012610591922378607092813091802211869080391208391244325015825325701260551657938440317827348801333214611450180031973751252504538155249474532090467610509960899891121280507174003679988715655539389430521206715693348085272471214578402283650464999009828789787481821241699002792476371782105849531652502468138220650017554451547783324339364489146377606052051750374996095066589123515476027001172721437298734538477881206871105517558164323257252115723555608412612355435683106101094487557350738777762703599771083006147004628091738734252309118113900692172112957616993590376824145135962944422169515779753188751594292847102017971634267279614283470386069874285202529396613502119737022053745770721199036239266255958477391421925491851707921546900003623685863230201059985440220983460521380284540405853102026178738796618954215528622042284066059707708767789074072854334649952284173081657784463303673297670911114406571697809080366766952898821495946127784939237216708134070393165625541013433573155456580059330505203909312224869799061481107191430194668344156213376805427170495214362466015424952455121590342166847652900920856436740713955382266878915105634068518110962815415311695364070237055604700910803009334031402196677650888356588127671854812732231195254161778250886086754221944596829909350665575109211890182550046009623611261247104228973922590133825029451568630852634483839385557497788392094600923954570532257953319405525172347874537136753879156548770619871620169107532286064891189538351292097687308123201534056498759867989144822498903282730822323118183379099729086915978790116835283479302329758835204429091366967057405217017331415288243508901471336309309962401320436167168142726507340595879570816625557542014521699836095954147204479939708350457519545409688026948433827910962396920325947003045452387270485084759608216702602527243606113041329098698849964985184897849052537005445963783021294521768689338017708012507806382488264468786245693863575152619726596459892287042887530016252360559548102759033900192323771478872151359072728009791053982549202321931216935854205368248874083792453180632103635017174174049877471227613778216237103434495151345535883546138797756621691407708980607689404736727476749710813535681686666461480029539149903950919739477978312315269001737394290600217564642721520053108996368468683361241908185143001882572119431671274925222414086728466572461209923847762154478830177268653143394690723991549654220927967938437196547236642429981267403138962456298986613865302794547235543841759337295057893153477968473547503911180335947129314915999135962567132982510295080004561323045654534181098775511381600888508426970038431690696225717329701155444964093556108897127790784378309402167311417544167846393059546748186459371964410119267240190901078697316488787314451132856195282086652184895564498022765544563017154069576146320045076031111245339024086799011995446754899417525610578599771722334595181109078677485363509746241488439246724725654841554497508152556791681901590126964221223876268618956698950865476894746651316348087164755817604081531375552114402178654614030820796656251969622076689910580173739568216549664995467329436923148773633619382226727294152305940124855071895341828433172063770378788067276146786656847054834618118178134280191152773012679738860009439489751977245535147271390905388485440242961546951575007099052102600883912561803798697011327256372234851320548546085498771019997622877743722784046357193381562636752731573530618396910365316033517671427915535805978786830758455887018519153028645200969152172893763200490405229349957147159260171422143557530436152584692638002101365751136728203548769782025277135001279833631322413848546531212301424668235337814914507874677482131424221305505100982028861698778460983915400686021055055650563859745135091827927700051372436913362709527923660063695559847224481321070014168408153746875408488696811527718697916210943223304296827828297116630205318051667312556482546848687259289760885587974454613768597071881960521224566333794828287861955728604363667390251350110331027279181857594003785208633494922218321764612050540596173594761234379993754050146777532222301360250196604609446769758713973955296728105631623722773054666616786767764602207188636468206792492852050333181992666254155640075879324607426734866354104269703212182962699905806859340858496314480331416600774471424574573896584747124555349342738424019609225422908281186034594577036475343325235181897626900197564429721700446965195917403589462554312760189600363468823605569309092666269966858541838761316863313997647482141586920644082982012917397524235845075188944256693484329725152709022168620746290804863683503702124387428282819474042559745452866468675009221369190503885748020264647277432842199103863080466007542310435806660877044474344920700808889878127831772232654412429792925303912480608760998942346341500480039308137788721988490213749952226598033762646734999198073456144725248256583508588118679219125437657406607795322029680060273021321340406513709305093571069658640812284140872060399718653876027055462179553672580135959732143064658731491528323855827195464944771860991851539802580380711740308591619277318906850659870653405051366810371492524535262992310381263778811623729311041946921132177679253164055609247997589403007296782065508929429199106971572970811579964769696245172073351631745002966686176241058386597999429783343368620598027548184250222251700664761398403495771560690093291629010032361410915784412040362736028925856294645439303044926119069988074004923480050504746946462470629671875695858523871663959752526904798250163357513384010801659039098556544186299168489660918015801889274273624460021720741184914792167377407716535698883081983046789439921530048362798106725072302290866958227898185034141279015570555039693870087916455148561103243974647456398578672642396535491722196574790568906935098082350999573737825130625252630144461224614311404124186057648188425959529933249064398330602050617055219096466093869525870048978915674445203871127578315582454819716230490119278499651176678294035807211745246899389040726394327899946977924005613600996337705982869520844405567764919321749130595558005470897021522220217569815339996089401865672179624895924464266623969184546312227061878845765270469136171898466259210252303120545665201883642486855880931162795128145000444001844727636237032466875683283897936860201268814186582376854538862754713510465577460341198176755265617804246816295692153491201463346096152658216353447875517084028879700428029094062623997662953229120443011322667749729391652773484552177175806595601641237923377751965765992672371600416457926107672073393959895184996108459640660470148849802999829637879278978390846578274720683109383574146626144181101421160441058587236707679524890249217963144154580219998628252463002652088178616625694143856341047824045191850142750277598659027043106235724382821338647758927634543760427249798849719948663102390376829924924591803087683031096171940828449913676944864584283667437239879531192840435588888624212204123335756888002764712726985421973647970125003172663188259177040082130812254327495318693173962584155294497965293142233316567293031232343305968627091290021325589097987208520352476128462650587771481545235905363425561163384468513614595020503086625185888532136765797916500315510532912745781261595611488572653117513047514154572342358639206416083250793807408270022951273724156212134597619381047863410173538436266870004012962674834746003751067415255569445913397994716710284357734306728220504000713777458782341922241824824064842585402991976640985988423996255452151930983689785824069670613447315974667049971456416834603267569388417445713719346640586452123195569115727555045921988441560690248557134090589652887541736007598851037107808364165833817359733015375115975110710804133770778221542043029455494397884617045880982045621452128648513825169734488797329329053768037419208483302612893048804694979628459552879840217015152240593803798797752709509647106163603897714127441869141364237803076818191995546136596534761434281658515831853788435380884119164259143752861309651260628171298982247864185754752539941318565546042278445205236246644534185317322504074943213502717645310720600987635415725591255266369778582905629242446639854471758397662383457075922931104033166160393603785319688648312012073932250055688086774277734516738345969025749633168649792344881788669974623915574206583957621210471289622850577413167657700454814210518359220058330412335083826487906325299166568040121636565483800942567595681642778900790442985258326096905699825211163415572581501622917483669622632651954479772553535862682810129871764147299109983799903230948222974676312406906642347625198174222882639570234275324239281738936518033697607946474093482888342252103684385073568888497564699455007136462481766874001518882264132791843151963612920502649152947416152761068377969117464053477493765612061855252047251669158997169361896758116317147504914674783561436504942384104306490994406141278918360607590108997156573752273010933856994959219317341749683154793450105838968254183890994690254502121908093174818775874871966039647706891622517605303402218659604360273609122449445678944546547249708437449994576268234858449969170065511035521604190046656490283592904692190399951268280508188866621957738509099847169857472375227960694996328808159569085648355045775039220284722199006331966982292301168968876628414472377471764846610448259397593897547619038125931253058572590206234555753580606067599331887230190833078590267336987969981997663586056509384076999933894706418946672003189261734257338521561478959280151725616037204079265933751412124486363926996335596120869003919366046358196321364763180741165868638867857218892852892490665660865068766743940986355131866404078259964752154702739147978708621062864455283167431095505613184261656383441564347300812390938282711194459615942956903722152757255761148159479792362375214057038852244135457273959026206669134513997432088663856869577731622908395182572000809799112484789834350660769420195345709826567033007653785321440380861586162763464219686096499641213523732363464077557307864777378904311861538615001685834602471495841623225076126975327541000793076495724837286712165805740301020110245274797960436141505964295534714006662505935018117572520687038543894195222159013874461970251833916682215921126069566002640704521557398007836304830584754185369768326955719893413262136208805825890622271295220974523718374250090605443047359968631020963438507481354673044945638471450511704138082353149147867874292147504057827116956653258728317229793024445019300558980346800787388078643722046960966889890994800738024016478109030968034021798198864870761130478335189067120993713404771374405869379974814061795251593517270813839881436813043541844618643383735747265586674408456650912590282585398951232846715024111706545328029280045294741703011991660522024236551329656262888273861469904404896634025281420584294597720216379683337100337695751452244242166392991540316101227238983558241214941633773324573150389128360957716290831349094405108825516194232873961380327390614508648179283045080449935384178504392514993158951116002705940539542678079950612284600007009253734346951729192397305526408662541582316196605684055813666041163092975827574105226872818749630812255035638380969256282717625129873809421075676018571006746895908829373090943984587774937931566305970511342013055488332547208832165610583959918366495080460913447091998708000404651838342251761445532141574243889275163756017532080197609779126787566380550260675726883672811070718554284587975709124489220604601980391649470890322042287714674371329730364954128107197281678723835206786580674861291150629063620587728532687519519473576400162342507680545616130045755231700934306081623270323230708584352385734598423225775230075030609970323158205393276004460923252303334068897118868520212866348937906450558024488122653798321847106016963662641193083643038373118313649090796564354962146651639051510201249989440634475415708210056363704308026109873705741203940615935983405829748339748699091069915623479246505132799291824592713501848101803367989029195906952541364715283237492937178037983323256022201142341611146904498189830253203852668019830293218842220871880511824989394405124828644294322108105862518373495465658957045051592613127572407041154508945574407202210473282055119516304635570300333986484925700938707228286353719213992239014655136576649560265086077903252120049246448191744415808904487104904523429405937657361806101979545275005261827803110235380058026542925245869389436243337787374620798809365740952878378468299767290401936765879735030555710746383416268282051391947120211404993535420082827578781146600058051751951476980793188587404583942296659425636796199588646704277256790105921446368714054383331067301294589551352988461667721906527923413951658925287961728269672362567712605807879311454834150557896799820277205813879908986737675820919642223249205699719374451291019140376344192569511925965814071822709484750144484962972386813634113692503735219058527957201156226654174701494957185927571181746005405074586575623672678223147762918131322738271057778021986222551632580972355625155417801779137125821042311353181361323377063066367302614948813599710389326697372205523716155054335056733050069584495883370326479038814264195838605531575230704901465985021836205215654793366726612690666940179834636397135463210137824480659166500258058759322261857324093863632266470963445294197749877567558545850219575037822597710157901836295606869748923249896004537645838922446376235691654750768081717425446010097216429654322982697364447669795754863805094538557139361564343877609322635567710971705257192691546661706539638821997094506080641645260974319117209398935737153905108848512332394683099554988582612428609776009197315882630585800252954786443182258989388680296636450672491055269466127738172180478661072368582618547972839298133746063345258652372345381512195269403298953983664462891148443891024515647653151883490550304476041379890513927676253675250537296882111149156075536242726730169093705764083344818640253831215783233054516215996571045087540831971787237785127677192508625486193249298324970987576155000939001492149126638342947473262974210373968390574697752223358603790988329519302241541340422460369566751522570297034156293463564870835990697443039254302005684033080926006128725832793604695458114427514399466017547536578962537020849278289860271839249086812989444586030526793357752193933695207048201559716781597194135684045294426384411730974957141007538141553855547091498561947042414271527701891412951313236223004607756924754995667127161155433540247436531819463039558892887154652987786120965843963971550733600566937608878006454300404641168965470372049084185648844995632127001328906363689706150890562850355974453009227292155221531545461100574881292499964988296429443845898533062292068992458699655053769976695517103843594522334817041603502474686306515458540852057772328066105804714848174090692828916110659769245312933912909193818383828479947703420494471391131411257863224943358504750526737736057527019335690865022364645448026742880455395101592477482837649888707916465250618493679072031348455416860794143656534188435163390261365441523869224845100984666667267294340905603898157229977989695049819456498992972893799664268629508025631693229866152072993181309788799859230468462116507795895904337989449948070192597021520583042259621107637023027675972370172172833306381658215431174997241254628546116413185494446982868112353257288397134849788269094413640842425824119142790220309309644508992285667367863360289179096783212500977866013126063839772978507106994270196489467966251184174999752854462389580802372037639372739849622753888602671430814734436331829174088168664248032142686839643856346178346723649678566011703877997346019080745248397377417914036295100514836574368466182430429117480719243723910611045282566182439605083856449028482646070935487853763295369826772707201960286844095396433684707385638893899775124647060890224186396336500515841079939446801410650978276782718855998301211263676904945075565397382037333394300792196768079145852907171478112889084070254415521301524032596269274516973692775559655321158526509725374131650795371214328320631752607074149482958769409007912906129263483063010612450141944384516340608684538888651190796357461194930238013955511778486072390219888956963281130982256834487344024979444852445248207335318375332716983763002262828934023568567081133424687214338732463595714741713311479249870845114165923574788035189842356106485458340458632152578700354395863310802744755240143166926778952852710944410895727920135471976934033021266355609294558929106320994771980458991723328917584512802584677103179388412280351417109324684416399033589536823346434298066326186611923902890975308131519951378258264090465674486281343676331518497480255779523491641361852513886221560905619040101491437793285626437805675317340177404357834677667494221620903465046455185917233610943497370577202261068129897996136984197755806485327605745405590779450464528708918471114448713109959460973471554819597956036637524664291459247906992675584799718616578326603963124362237501281818570568989613024788643736980144374637389421639638885451839574634800085513850557378384161740919839139980160734971984591778090247856336733502489116056645429715987784779455275930004617653901976169184211735076550710373675847449959135179057537426147453758300102485397212339591516167513857879297502605016262268209835739988892678951338836317542099693450745207429443908944616442408620264689263870224241526816100234965789260368254269963043134177946698897233588699696343185950990046620976568921441077577418457942528056522871251235359152944968325882703447965486432328806557786506298052177654710841811444922238155397090384050257146261898110154686425105068737834283038290786062595078246128853288966380479552133239461916986175441430240440469426596485158273030486592946315869483882492697765542302241266317800057769975253422522333791910402465214274327486143920387530971396845862881232393630533974885331008812900158218055496738118629453754354507618862436569306917402060548404183716138780481254014193604952994950041126097859594355540326314691392942857819473390155526946375972796294072067971488526170879170700069823787342467850763866191605549137876392318774917392374332698636941650788319792368841558709676592311010023655053992177088582626498741846604949864581774026500024247814926390264388804008372659593988933513613115145195431822713594999228566312039898000286204601202091493120602147158898730510312599149562670738009587652719796547555091550696204260609912150402911472709206893294898617844079665984584792458038825758837498663456090384029010780079501299347824195591985681471229356399488114010425266676666705899756029733816700920330175213214763634529503889407095060520646585219304642549724265552317998201631107253866983191240543440081178953781972063513757634828430898450566129548427049575339335392227856503668336145136690303582766125321391061288586693784313330103727085177693054564016734262709002384107298143573170847253299185068497341904182524214294789944994819007824541159004099106547531919646434621620646847225814186911932939042757366673260473088146513609076026564128312683098886228027297308503275561114719789203036717429331468851191019247663955198106263522358828126920545174616810861052636950928218787374745977603631765057872710629329936271405708822687081611773952333489190017113663802350808532872753403056502705476699851467763289985727980688317159422622636883892365241483647863269917018429793030173794037548018438463516294169626832306460230642618179589670319067305151527514567209614361333862920897429385720665397273112188600559283445966319720530970824239425899461836197016555760097509245983096419855940082375041348334142177673762725013906916093985546692180025826365205704026055912008860765054961581162019137261379674388296870236406737048854807419695954628448891773133061507547185873319908855384234949859915682977106407024685326641854490680006637547797472365373188854041132074143423411959324056346858283412613368146710902454670449906916285096318147712291467609864230894175000447679272424062352705103057206463922400779312125263720731176732963417293537528667685213836701663787290735001796434497753031301211604338714953861754273033256022383549673391213554799483281406537582507752535854515825622912629814450922319267436713321528442383142230049809240672950494588668579694928109723399586709759560632970856074583330901051271227977618286299857897637706509044142661733041808716204086401124709781631162617441597551489287020387666240491655600633944588167185010103617751247152417932480048994697048233127250750222601694862772756882999310756418482174604124389174483899739881583142949304798074525325439394033345760107402774506305405496670718246279298400160160214984211750906033143719182616797224514133074903297166608051969363541230484380958184230386062084656350109062276814300039407935895230230005478993105156600028568568983045257640310808683670147293977180200135903581242173961642589013747034501238529012892993674974066997201715450190070429467651208554567386757363696748314404875727543617411304157536312839496562502341644586262619505207335651720294828480314880112559169221325951456572404493009286019679391480893232655612594460849517139176167222614614942285043495473927023312444005585432601963936863911270490089382752210329545860898501804640588399737514658838465788781447361037241863304296535045801448349851995089052407549249467356873802135761677653027017554853714682857423213236524455529966788268729782352865107578886104302387765987646878510703286171160814942440898888641765126240984667913641168936142174814432178195630562516542982797751946550665886534406854979939382508462262061800515290024048342700153570016999102519286120600239364534717786907471197379067358266215206905343253495524323503827379331018652954843988727166541745450745691578733406243057716220621917880106257666939421683093170417599980643135062167460035294176611487641535484350786335872660153291661932646077794162419852409381528959380544330896463837704062839697219310136010684934908939731707448246664972773597098575460712140867984533285961394115800066777327230266484817727686897757081994687529853464589276407188456875908945391056916741343981632851392019235575185946432662041113048505108156041414234433280934242642647876500083319702791998101324818679461116164393131839470190655491339400303437175801756083002000954280886048474025087090123981664985422203952611429304307149055682565862791223564537251780160468571232289538501800239591897397115519410094602163599150014233468748619418221341076365784700071620075940301818903845168976059203749892573031376069587576760701012868980397831608857478155921130852678986315447938543122704428710084277131293455030379340439921504553244471015262739409296611838836590444721352243911840355038086681703747507687865227014904920871064807169069176393349321545370578582379193235489542018510215298591697387155778487885742866321331825761463095614533934153470157418163434810562937241926553967724180384598149123363910205759151559134344833532985436193784240847446920614295930019302512337762191728730647186210812118949374320265099839197910726240054311032080202536550296679826328417188101990392348100473412034350214354198698855730010172094419950502492921248313503914161278429141758685012390367586704766880819098012871609424512078855091648951021990936058398109401640706238520118688242947344839557708483984918898630010322303015032486867877140581095945358878060742606814087574600214940197660352701427377445203650934842973585046471301504287111989868816378488468233289783997428407054117693200624644969490690362170711977766038944924979066194156695988982917964431800175239509879579563786433877835779027871821054625213565164937756625747896646585064012572174028480834906217885025516734647874854783354714176426198955976096362811042436670690689676450150185905077502709172345814510588496720229837677997106717325039894758791828852369953630418328007440723179655510534613298495872356996237824880808506597159767892571128498647286106195124077312296187298786254723571021381017848000729015501772297673354768161008222581319369040730507421075416737037361668795815572023478251480653308458384591562072433712651624916333450831499463895454701211603247563583098943749742066759918663301968110797571148816541077288189164741792337673081491418035343339436978589918544901215345592461356661040143945853730395595662530337634271846801253421448807820481634631458449649965270194900643670675891546649885385803675569694001938281881909368560592891139667181640705589325246320773231405934990507860989265705051628064354559240764692656011240360362007314941382372201961247610474479730307595879767379353670114488063766490443336948272312466186558033366948156399638051712694677635884732997809582012506336202012054015939389890159403666977209110519743557611645662026138331609463083122923516557946286708314764256702207119990916721957557888180790731950393737240310982891835103639027093520699371151984134150127036911484438889174192448524998552997660227056469552885605084930913354378629441910418050546638857978754588838301062314282214690560449840950214225164544670185630342625723738279861192937184403846575704298811101883258926691362690550537388687417890839024639002382547472446553585441217018086556508140554921954109016326245228826585697876244678695987761987857067284927083977738232591589753239974952223577349764967176561931100240255699151048128811491376764862441901764856899930113049192308200860102791914448768676755519009535317595307833944383054707025277085260013658937283401999640524718455368490289221020552942401962543846657224415668015415095553397537231230780943260419356384578965343433008947513889843023719862872186104481430845175864580625113722125641866199365005305339662066398590834918569639538910954545120250614498077613818198360816186630261613049445143140663245577979243988367248690580271720553824061747692564553849485218861888724224546753388251910281466660349531077647414195140030215245684711581837634006431535725538710521878682224836303359835504005541177351230369315860094991716754646959376578340522131178833430938063737649832233145115584735656473538073633172260647080287990679057436601128362918762588217122032718361689417748897181183232911481390446801674198094562257047502675747208402653753429506256380269043239290623993419186751560963340307006542611422668649299676543697806975675751028609906649222290816857266312065653492590979607181152880652117866306748010211480227142752585724314128776403738012584457933529106413546808622330678728268913210737449088454825875863788955449039288148292674044368574105730762858164222419995727655304600395396790010996991745992966826994711340831868644028093504873883355632838745581119881803435570224694989888709986025884060505800318173462717358087575950236474582109676342593224139826428388269745320383612489808229421263210041747470394723460385191450705404374515156472362579106046291950483165219878512848833956751745655505138711842527754638535512499606001629480242447069200956400338058753579683756780286472509007033660435283664119356362461812895532099861038234395428686464512320354347904156718404510760566653910239953718991549299105508922825935399769995394711391907725543843060597623334061207443590665416563432956924974135789109278449235641075033843357424423055041748714904916521375402626030487532830623090038381530460321550326111341301553642529837426474591905408761254405716126092882591336451846077292059387968340159896252708576886428205208846826544793147685273319538550960934200489823359163392693609827166546756407959120911708460386265076336759478918658581013232492508041741493513305525391826306518420633615907248405409311502767322349345507086612704481369782349269375135249691296362755816537886092240054101226452830577510733800194729932181300612868253199357160688599549100319566211590762577979190840482161677511345915207055209694162541205875358480012746518218624278183237114003528526586326692901580246480670825507681756605268430904785968231205102969654284619574908439772177613003412085925961059778859082885953992205792617279419948670918838163956483930874726776422371324421353594164855790095598024595631250674421118910474750092172424881668144622969589676902368079510401015024534146284833821092242394222027585925346741569604492953320945454842424282186137974841841589138949848820854430277324419038082118032219294324879518294607779969748537210904956204430263121614098888071209541012723436644092645222098005274301791353884699465722776942377147124329277662157392691475795522765348492235806239229024689140944044983907970453577120329813020084593306648148408282960159119650970268466495284636580019044700450666009353413227736612570119547640570152960128186529981899687970438101351741869701176805673003668641255948831698051626860130147754259465143164124053174885302096989600214931840434643061995362220859375718186688516124300522342166329185540862495067664893215233165793312086701603028270020321100441714154666457247216205017046750872740836919668602090282092385750613315930264467237179395997384101252157386048972400416665311200297531716051286837500402177855284893785561088110146445599346572050035907405962791642906322423766783784670780242173521387601801129949272744303770216849772533286036816365378125095084271866171502873101312222139970865876864897853262541259893804518268086314268107213837703286221329207626654404637413856159104903835099002614875874002738347137412757564441933568880873686012147334793862927332267838271160725194762999357762676968481923301526324549939219682066056917124202667487250774363619010670272734123508559801599975211205876275552833516068022971395440591867906506357082988499820433838156600270920038391305991935996004363040036711585302160320638562245082724468705889375717068456427435655594515347336089667787837909451746939286512255188550283118144025646052142371400982137990880813600013182710320536630502349174515362922911102568407144448130469399583918565630923710042484431147161041083180858709930965151238957910027675326363931928312673684797346641625901336390096070297481999469440719731756768420743568826927184704833375771439876516357337109940223723375878583579081721420531809084731878478529605511757800212993043982321557720883951743893213839050772376900037838364284265413179649542264685550056094729814005969319140954572820748035543323992693206579767820609585490910073449421940135754908995208193025975947126499228435249790542827022983418674110086623900674816909052375254860325370301375597989169100899736310605866987462413600681899822525142096978994172425414294739660713415444998040656244937774293819384745735420682780452754664805710009537543376347088867621568364679785829001360091988881009876388273856780452187988626217130929527210490057278069327701760794164887988977412826445736645085389148027285431001356388501820417456739713901761849829013979410314434997928809067456730495007190809358455524252429679461930403334167690469901907596547294020976526252759628922502319997036885331151819057870870065029793581915750975369170620237572804627761186122196823919902808223492823283881099478763609178128303268491671488419189739771105259723827443170197109860331871647995452961856550048282038317308809876343964578108272498930798820714774155283251259793691665959542892205896005201817548103206366609183832732015874728020817000684825774098630949637836794018638659574084460773874552356014639231915375242544084222640719097959398871252826121679102384584942898334713699915172732595841348943616534600910646121370818043993635320210721960328642964869977313086341226988544454236795323636215163728199396046452966234989140132285972271268731135271046728993077349740367077884880431431875876821005291025603766577646591470008820370041729403214112322272043559753860042557281216153991629415135246884562024239465248445279862162285827215862714979677419316863136911153474869338689249169195765863993050476006575746306485863046206818766224482653249581137216820783642290192465015514153984391525687325804615113773091610173447594592813667210555010409856168217119441940213117057490691389890751178773232766843126971879492283815380353608992640520403925118768291743532953359167548211271200082717369166233295061016974777164922417506582132051234351848003314806272149110400028011825894311408779831899878070888871207129481220363984382773799361655104002130734549571094867912088295053392424626871134355232415367543930863121925057028865425790858389504707061418428919811475968974389878891828707296501175564877474734547996630961414500672081864185269846799037703345476449358798589277622172434506056218109460030556474846458126557804395820114375752602465317731902262203289730157615020243430223889845591588407461803837708184189412421359403936186209129605569569119979651160689226554299412660208373657482901024145709017613539269941062996980741014452489694692095639436532194556490758269040236653611789737944401713587117497757502027999100104016387506784394365001013147577721920551375690746565603922060702046448955608692020374783493088943077522798861693875540046326822846441357802757328086599610371210533113649724664689674956662284417762326255449228087596178617256132223297666361066860463519214787774952471675203317392255177704843104437930746721749949549177125462921935807504913735370373795115953991045862613413534821708465959650140540695182705024819937108679837297553744533261107943029440349473967652742696916271735504465205498119575133237308175103702731701148523775353098322767972541037576106707561330001252341095489976089402826893293191262127186147271364961171038810279868801977576588493081811531458237442851469592546345873980458775891249593432689183228904785923523133667004380563265845283410144867934378701182446765212620230739221976198184266284333081546898141736015132204069402166466499216749531300695999018568319069920856827745880273553810207546524053930058225211921534012583097347726825862180350864977294283399526830638317947721077937434518569051028806942302811328355806748115861079235896202865711315705758658833085174464087219372590041303358990337859414163777150585138968085233342198530719979112026514567757517213619817966283998426104621896328852183383207277692254827559495501682779263121722973371117454815931331568860077305987785595514530026305809843963461328970677721815863763892886327408460354281353012125349101613973778833430725674066089988600045106413038321119016964020751411463932716585662037524916975284336499318096208994034638555034440194736522790827873041662977150312844662415268611266302080847267829836315689996537081857501305234263422951600294452999033677623967943115005042006242400303616434715357276513029298110139920406498250557215226210571581916678157327168212462854475208678826150483077106368769096645975528632266185595637260608026941255873544466415248483747838354827367224321643193845652816978826637357305459842560933997522216693333978778310994682018174588600612481608830851296168532685172354685715170639983007062545458530228230914944393082410430116277272737016600396183241740854322387130905540089180340727333662393056803241890391558982933868766522988763571648743733142999474161932037436552375388742924984261199728928172611313843626583002786493310583517227529390390593751009274248837908871512583341025985395997595123418463309482947647893705725427582019631419378279531561177222982192001078126369959895872404614632342409374355115198397279349976952452494790555683331722881215660171385649375148514210854275069056814770115310847638203013379711832667216270352183205688987995008618513936349837211446538057388156050019290514824902044077363950723860262673986562845926162241376340901786376484903471332107016580420382560827860013528252616516615704119286675295341997211312533059646099347720659089059722892011975144849212165024530252487638878212294959866196305242957752195579707145010525826500078213231373086404983636607347898205181201975527036149469977108278359174129695599386213599385088479378307958696422016256821966981608285533053224743458543592982477105176416890782861187632026275212917135095815200816464880872810612543075367861096404275545170688736679304521392004102697018354414084293890959929511175646510872525349125904110922162371862326738823629125811866502812035672760643897770524018621063910415344986972790012685854206979428804184058102588336130123919557862581298933466757821430556989286238774478048038272747321817296908033745463713265602648284181885745583157280563247234449604983357292897820820930681840282394832034375310734491456372388155467098137384043891311388623251537306726368927149591192798002978846593240656129369676835814685802103638632727116233546583497390901687782856693537249686555219011736744418022730439806348873933748868075654473948503230675581592961556292118657485295032200324102344445935367102791147403836051388321862579493768645981614957915566734894170779254112048543522905203111055483447015333691982569789224112116571698184796856874160889948024507352401709140150535704776294152456308504948793158053393623963770123185414827753602244045853468887296603937298790761893826174170159175331291756674129942540260317228114303474778808084130348506084952612519412835129351879247590002624568041882044307468788438231933150092367211887098205446108245886880834823742722121566287431786730716841126907139305942608106101240091675143096404057896809344255879610031615513394294324631501390105429955710149229402021140925571900966507741842245266231034389497126789392730448026184036148064010733156032655035591707695616346157071739136052213851205301516146829648315879369568786157050742289521552929143634855417968994435961972301615523768723086890151751433193549435734343971044088248626177031971386167192978498048587540263042336183427190040825473988467280922403213865223977473888359177533566686846426658434375791983103287911182414178990219211143408919078837930411128605148496890304821747229079960377266001675713705411722064268505642774909226506530939254995432786873561023917548443994772928615224811859721572630815553989613763857866422638069153445811877347719760706591566368101791994847683015689627642499700228989746442791526400528022498598423173688513292720728904441408953136197254477950670264611206100972679461020383238056130771766454444691721252013595366876949899043979429736624388766551370270333341806703185693431248267567559885811311145199813467540159294275186548742823861156465344108981276522980672092744706073994135131271578331227576990436186125861810119079512884481330820534988308934183739446154532924363574308927317589589275929485413025801625207061836339387877409842980787669570099892474255953986466782482089118054303276642261935960766049928723457201112108804015185178864066333648190509370977187260652569200224201644365094884441472133188102710992959717694932558987556238991392991549527863086220765933126063911644870183373729399882889269928122758972974556621171933494638233694110827043651134476433702732689503663443802964988582699703361753245008245574089510978758192430573075852199096326161610252968911097897101807761965566100927975787994277328728749154402475771794734992729080489013831515979136028128744324569254491319919554882445916925331444323843523844686910107144260480084527654130731540705230281947441725278766773147649266548330525620138920495670933622542357908779760701248534907114876423899095853587511561469930238845699116102776716155925030312760887968992055403394260745842666140562821100065702231961880882464185659814976386800398789112156293791978360481248452904445805184759617099010772250944580127732810818601163506115677559027887831785675314862120341461797045232924093420191323177467361461019889802908890442991588753891317280501872348665488675906276941270301305153307925012214334836728499416883733434774414026825449468639619041183723538855063737801572200391540676914403618177695771482226081709690781531837400066041910121797626330348014970791630115766068565473848785166554637862824940425545645106329785116420469372907233770209616836489478116870205935590713423309977358531452467166573519213049071958169390094151059802884745243559515255060647417194138838386330098541176221463213005233169803549577686952121587355351597391348255904479513245361913220461123626672253054975542378110411282708978101763428108599811243650775108512501723652124122902078803622725144578008501875717480990566736059922883984314336834556023781805192649052494554546800687384005727909336650810639296510598912923648536886359549611419363803836989084750062882501159736259317639057745382614277032468216776657420541680574142017377890315981552083779779483556879703389568409538620867659507389435174829458495204809169773537479302694639234992647608008685738670799749354381565051695766129114752262208250245184037814952489685928425614548923763885993582935568668887255512268258031997665289837941144070958665148154462230076131772314184373488558420658717633314881334790584754778501340846285215879884558567878943747379581584728319784544682955374166602077602797919509657450709182118895760620595369585994072918396856588356372600810308522967859831544486037430912847821011187462304113231757834832720357365635582511065512683005922821741815632396038917499742715286790061688838920719384480289917624627358276109916124420969398500374734678697585224952400938581846199540384132993621666232276365000340359147942574593203903083442420314061106239764701943255639256521507771418451698833812380352573021812608708619334206934558852004034064055922594262728976684138629119726027872015283163325877195905173009109772830729536904984662582092574211585590957190213075703948851680916411649938511919422545978813322555514617771982028567257629927369452918924796581529836769498826753943270224804034624375037785231459459115577961870258329436023255852924731583205822060103038840574280694770830236705440220017206855748203245730559335472361383053504160983830489848762696564328262120325351376756371840657383792033742436886713141538035824393883308257601282010088377885113768098948535382732392991718847086657119973607314573027121846842810518761021304159788547164315346124156722407191366711842303431091959194024801175447820039917790980301022777485068215478791436652535762652798010630183710914484666587475507632903858427646110838801776230298056835054098452654105608749407398224323367557084730682913412282924230037267681479070833818694171601823804236757191498452953458411571227837943780225473635356445085772337886331139441796626554601950872975821877498195416277384237192065765317716374141931829426118894418231836297212034261160264929794935759688126438898717575794724106639981986657344936449033187122036357728011077612889897532692902806222180686449232938473893128029192544696541319239739010165067997205054890267030719048829079294249432696880183155080699374598992860437951119635710895953000568156327615541860525490094758046411956656792464812672036203773940246000833924399273055998553027714412776212005600140438139181003060136288020326699720322184369552488017084827441659918911109362280509462712969349616537397971629339633781587517306572701333868637765317446305516783315536226522243151301934373128332547896657626993095670426496409254747711316552343132080731909824743527970514112658605404782336883797141826855429944857004814702701202697327634996064680371993532168763861373923090527661454079288751701620395799223516290877978229872978002747641299286938654930913681143358279734874798346030710137924258671953307762766476223696341022136278813347728949345992833271655707141553946874789287533547936999198083666870377351590860462791737389295443114181624879605692809011501517232866168301175999754566025874175955172556914225760167236671792668384629207604986353957566475496198454318917468534137799995656036171587888796750803062117063628015438682976332299135273279374808158966448904870538385653610080859641880667494232359975799262362468288004886897524098816614611463292992481426461711973737115457556589979373949706132299551755702447197121580388591156350663861168584043933645105329944602611500451439744437962925014658816938400034011816768405034623145522528466064044799374313383038956114858704396504998529712654859401620626582284546322862492822613469377595441030417720000869371834239568998154278596118702041935140711669643754169294552766704493836865582946710152495496421125558972971500637096657739355078688753117600178481679523039403196704623437981256915401984702175431503085362687016405698122754980383265673288079378893854669319559734135722609646526777351593317120552110357906521816213538769080905966200598799423329562134394749330392775016346971239698355927912488607046559408723748672509862344143216770578977838256494381481251681950221503727620442410062043685172060608920625135822716492363862913862453975178330198137961674518218790209178721465400276365991294500717570229662705599322814202178376102115665546685785783529324558907275631040046895909416925110952855061378802129041473367434763081849021800865468942842319005771100079743147329559031611093509559825238088735841411890054491511565662418546842312759995963134506583700888082898400591966065665832020359226333095197483584517972847230600717351900210057794593077170042732950606906519411846753948264143019460734551352462796129323006943063860692839726885384342436439229495302456441798531317113388052612593479195510949355210452766507314529939489473070209837660221259741448624386006221062600235089600069363206099305295673731696589999075924363384584517739311883391095843920124326358054674567473501252855819898866333797264514900050970294140210926096267426890944420633936527285080484864149135451490586421301168588457524014428151149569219281664011432904031348870916875049937958845426916148776375294037489531564341906701488311300963099665465754884869462121670803784082282170939457807088983279359149751124306727780011553300329044457373787626083079375258623190213225158150301293458834467370985882530877410750620050213961344056528320169755627774274740598486433098756343807392521996431109064497110348705445116210824581817776754516649673825847998312657267725026760329625803737437621465282727957536116977759586993239869836533943007229382608325746031729893163274811625516344683007561885373267402739133198760546118737490715171728753403710194096319620704802066047583713607139696015523859943847518011488360828683112336597560527908363440904570315849985018874046757175556593930304408294510663753090512663646307981181794982773188142297211506904252087059336208599281974700553344505411494504306708374206746342538836272074201302656868761852331413736016543243785824392649204447062509990819783868771095104485017591001133749814183372871888549056078246389538942866331915938413180324946304150447342628453210610810646547696896629532374526662578735068948877306402539690109357736188596718839539792755543929296129438808371890670475440072072361073759112281268028633605867887544811805447853074805264393545174148675821370970145073040671849631267600310598428353025910213847293092588431243442055021301109723345889956238165186428160240551157482002393438602665516269878152602260927659284028721979997123991328375425190393312894844722917290081806013789397005727557267165632644093010634928385924266976593349167295635904462612634190619835457344919842848561327096431219447062056211884962690150582459441650505293076550173983383400329530362771245835968465729268908997348232307490846807824313404707942188027420955829651683006025341316067509849192213117185992464910250535595439983495960031549862497292743803712287347161023804179567272880152981648105524754888361721148002006531055686983261237396201495174630353977286673178064374784993322791506029773241232003046029224897124801547516320278458352871189582718090704959975984249130411121856485408697291098029856244709095656540930846122288394824169344765910320934888589438161789905378608310287032965318664392152339838370225718463955152314738815897202554579570869551404894478033923666274769206921355141502144806789634241551435978880907719087273322399035918264316211281015276114234006978716459502604404189277650055804845503742868507450555725749167238027361746322938916024171495767650245349044311930472657405697898980001698975008490729750220700159982695952389336269012755924263727298630759344098805966297237355390750471767482672959935104863561526239006787381899351321859086132798344614690395732864138210570709860669495499704050888356761719004155665157787767189208900163542850316820089514328562486081352493782505238075935292706100022074173858379386158537296684688146898992830680637504372075900239244867055413655116315560921092100402940895775962221832840715685083319659554537376475881289710195474676153471658603748130728328673912555917368424456037056594862842080591002001779667578617175901655180841142926898243678169328418696806109127177440508715871192647341175082134662546987842756974503499955236663711816901363744484166589013978929944173081085713200929762457363907532485325480973571207667062601656642469727879446470989016299824107544113719302326192155113665251247730675039688291870655469907018982668347674363706923804801556198112905753100907035413638615418130090659566606365776302067970724086641608528173469071297903345234969413047052428086803255335676895359871169645829000169995418475552240058624274982886951051588939723325729667239026190091826970456210940658583340684068531798898334825091682864154859108105932078854565252947740500233775450544522283609052194214959127578421655456347081525574961558509419131599483191833256161149085956863682555802059699214066337582408120334122256815721766839517498927063762594352977573094930521319209746019550003930102385904940345267514296542140123480061846603624383163157402151486327590117191536818554230035609585763557362195350013066156657098526704714011315218901455963942665372418336674380167506490724283538568310200285567678269921343888958100820613635777651924522284680432633142249468963996459234215443171851248693167545731313610055831112262734458615158263370940717407203379560619049109499768543722104278831428202466261082169272388250131303012428716455789687533358659227842589176835957233793447529365840417433526276338088149113548334590798506373859568619103122034389278451515480078198693579900978172489241225866044021646118901176171972528390271753065678829532092475569413143581525031110019264681314560881619296333886077531675495263742584352667437936306945459670128104312872745934299550664435549463528278624872807800690825319848952889197490106928416820220653404452598493037542503250785400399253916099250901288189816384343725065559191706424210793838889429282694878752193315212057754795417721442479045664406030406562285423044000726391571814233179611537212955749750376293256489592233293788700418085949965708719977327686668157496674425434521397906021712798832343147018165481279674162916951282649071466726494392555021131619982185470394847012795670626877857780163955613066884363115331068728910453521186459195748859796311386779517011360178288500622563655250433369156257468831625396024552440262789670437626112007387570094825545396311674769370241120104701501745568496661797930698920707320829534865328469246535988829265688527075158485167890265971830568300170563325502909514336441722325237351763594343741211792425770203764881486700057983894215879278419747612980146968680763175511092931380281560304785671275350104909432196931483032374739094215673675724529011524153517343028063612476768770819494900914316339125637558991886828384627532587652822102060729179402336376521856273981836166075331315243285698773692140397621673034290872339057604093561047705179469345682064762985998443602126506295457304733932243155080684167849241355327078121716597775709554278760004740992939185344946777303036851498565673981252307756675115991326441919652450010759426668220535423047716442545394249352275816008846434379492182262769578485134457672151854142076880596467083915367061451241739342660852440350576886068789923029091413314970497544448104981196549661265187277183770741356191610575302588339722050398874239703942577163479738423807802204948438305349462811039374088250057707485564335376165263881174459651025788752467608116174868271633048159171881223824451581748469280622264106681057152252688427630617914685440294773425310527869133213770543045975560291077048626382453377955843163368891024943526017092603546064806398013802047436877374340031552271710408752711120442824421983183675017751586392837696349738983033582681708722081420804638082260623174449425597633085857517553186345467319846405211120882439890661513184992982525072959272189131680350038064892848993821679568045655004816962686492557329630734991843038146035015290054284922595472476307369407355587733967198442424202551172025477115789077436929412750246542329512766390779003876114230017275643695929942448608623585649650052518287938205832931258851402002837094820065938821717561887455665296087654608237382455768461154245054068115079237572783555966706298876796375375152458023545051300139604253009567702022686587950178027106425037582369020221845869474947971710237741399072246248358276739171915055517988915248219690407537980933592182544704944002148791352444071431361285510575373449596429786631154631347753726908645720455111034383352696730548646100773855408316055476340644970792257177830024330799066614281879000308320682208411510459173174180311509837263139498751617637295638465861282763967874102619714822736713456708955405672679455906787889859779255138993124764825494362941755502885607678207399010151271167261197196849064939617259886728438647147099365721257611999812538901093822686927133415593015362438477143275153322233416675828505446557297227087956960141045620660603320966819625052985894234360505617058544809890496406624996597679423969965513468134328464689487006496850577114769304750199064106694580778622366342848168377545640831973419652881372408652236771307446722973595066713556123587934739981203080169080895114625955356966129727027960105228674576635504077612648427002697636710480224244897785776343948425776451208665202698058333052936122076199511142350263664280110932778545554611628633923244919968961647408989827607305879447850848614726304861203650725409868016948952620796367258120687984528032353680858778155360721555781189848964748250890142530354588682946534804858013507365942147119677813916115974541842606792856963908686294788342429801921760213065702623083305512190579450007736318111549536827884483881659837119889761619589393963635464994652946027660364633723301097278082722441110739321524382511301017162072257862140804521885945525072072610944026889042332778523113334129853318769848992563746922918611055024654961755514629463137699744197904226179630439778435505974407683737044856320518113617267855256683599666366784826964077254594439081622243242220005249026587142176996719477269640787999697521117361420106223775085720036543049852081036153562434914580035374483300798505898938624544417158183520600097600134906149078333256427898880447246131676521125842317812609150577151215421194710879676708838551511787471884505193926502078579848425838508139742426722110921275647913994278846403278709946535849073225547490379139807528407747010120381574741168975761449906949692392095346617601268225320483737507018031362409653053789503663164120773685052585431437821739492271964554826465668121192705706177131961126506670691142817392603849853066606779007904175123870441299457874324284716695947399191785790135477943202065315876119110092062544048467635645070210486598370725221168459028891362130941862172856314982546703951975849141309661144450867499230012004512664530372738231263221154341974543926578077041318593808549812142940800358460368081664269527840838771687740910663639218122965177976253350863829745839020269699317359959515550550279502564606216717316032191572048105216407307447764680786886248679404011266206583813574156322209386728922326837937616712999896393871508377867757636619367595749226383985386602433161297017156239684174610814759149959769765677889679430673882830135314799892488652273928271099851527623056142542026140556894974683514412025461138625965659493710724779651462997753166520481378042519320507579138174023600353225216797702417793740169715952117100046148828512032377330701320353739091916894524957511325274925254797963731779311854900389383214928222668891053198544994306065657454799011328831812419413145487629385195255760819370131938614876501193597307333858610707759134480026236999402761398895379803748815449233980292552557362107064439635646105135394947701441025176239739560565819052980793791038356430958039152622389471330848988531974934207522986679726164843350653600702326862403131948382599305964249994796550111813767802183941056349613952263610609641437647155715592169495492637706137754324564141022038070957208872608228142775635391998601672471267165195568115922295877323425598430999179347407123053067136781325049427321536301163130632188590626640131192384337568750480977931862322920361364515377267564479700966240781010841988154396319063161682761444801181016339173941903405036540023622051789711336423544714675284591970790264429318839384618319752386485980657302914013743409558459948960418256296430295768486749336181715451252453240575445372181020123425101862377543251778838947763339719458066126859707880339742926582404503823285874511109880251621361729876418280015291338491380908898220146388481879919912690377077677618633035916620876329722416808335692695977325974286088359414650887070422898698884277638711360034572987115865484045574285581371444540449815135405605050724567684187488832092699239632954922005640448560107777902560297703022930789539802087839564937487509249570082788530543364054531936368992709232296294121009944379194036427225056944048161538994639914846834277956892124021381593172590333110885456034693209121285228523798307501216590091343887526222821121695164389020034726907074923890256920739526993286869372119586204335927759413275370567773344311575282475686326693329192735563890117543851905572083250604105191845531536188914421213337105861937345773801220408635329241030501421795506953967326296665778135566520079184298999415008142774764616151410309151867475158502266817960380513716242054942145706200239144530400190206171329822871100101066249890647522519995865810675579115731676193386288118184473984182575161140291211889986743041771771896888687341671283099226218404212412356562078088482396313709691093089077133856225059509351852053854595215647750142055334804147435796749449756596460517275323187920423452687439002161934412521193173369607330427284560400324339770206720605687274644234003012370610316277982711111901901385242002909809280224915016803424005103692475599698747925950218475774984178033259267802981981570124822825399869449701242568018762473880923100079638884305753940609264895956797867997466968846451206063179086058251320558757774444133362795066302597279556247919774014514468393325410947690979114044314510172396453262441591961599062787349392261635703996051982783237191219974572385080197600436062844889065004349455657023284700518378798276758292796577743510287906178005477753556858081176196955152004980819018223222220477621257302657506957499461451580365435305910421047202792684364748220653618957032649108793799218331146049243133749550119660055499606651791427612250641234574915880710010307933814789974415827009778223609953871189398098869889818208542944718362948918474060144358200703598535890073056527254125379209501002261430658563960378817057998916643331203578196493152373194781634508390911079781042312295029194435461829556246980920396754946211812029520079822062124101225408631815072417751253215589201121896596541436811001034794055362144232750051483080642230746775285637179055553035938105623142989825112650186940421357893578437672735712254004829082001627897325214405510988645176417662609883822150861490832646511528391332229307455113739996830021447336310108144315097483416373588362537599371447051931705916561206793846854772907886984149356024329378011331405799647515340346730105002184575123140744229905210857314022104775600056856129570120495434743171718885071042669095280963831182428094289949139678764109100479986530884435878471118787277618296007947429749438015083159397183906086063148372468173565074161906855503285306694517372665028636419094068291737778370127630581945238193946517087598400024478761617168588475551419380675008926018158730312772934201844974799265646327582987281385169247091109993130945678854821589496641199169712901667605592734412379292227584483442443021099114506147238794247468276942170032208791337904501413309686836510492374171646366627323529828061578723170146325981151463029043493537920241146661820640465148750654699661843806169406379681268770802647672806537723742959534934987254522001777482551359391036260101601583585950326915373669658543645780743118472165608447241518535055419648687098499244448424598076227218121115378053689510583605554741369772207309434251668927162830813035893443677118628934557446644740749264486561219591056698826276812879623737437136577135927445002967922738140209146429660515787426649817264385324065451535618107098622682019960543054414256834517435911241284193664640733144464003508724861975347528690517955583427929466264608494799457311858781930893621804476340170955100800922507250106855713997356485291349026223224974966162570599759591720439821802006788723191385794429648580783868511792355184970856572882794184411664478045702717635920215575485739723013743511475061445005748582966159612567183399724139361644064328544862487081264107477489858771908592812958637312048376027266762449129524899444282120077998677584871962103916635923163159181511666903633997564399653029515428511838297310107259269246076595300960152819655706719363336757240974218507294358121107228808172945727575159447135433019886731599071791212008227289742083759680355207368992611069239536921619718630325230816047870687008198066512154203085053887392751244258862328803729367407965730681122556505135212198772517754154339835244182031647288060905264399725910074067657400361441671438065314112229277365262224316558508137395339372822933904609046985494969800579237793198081334695243735526660661826016192384019718298556155197171913490577558943773702757020318898597335352031299050997504337135589350785091689541713197801913425085286213483156008525256479453512778264662188157547677713941356876044843546027854001717382020945059490709545948971523790398027270520360676993910492295688579130522520223384531998334639590520663108319702923082716983954509606354240826096074673415321227440428384184966740175507975597479048330510380213005817975153969207795327494669272672793831648432947693763394672688169377995940356559285267272137910034803985778877716647576593974518221141660719405567212256323753266646829021758951620667647649444351722720650305164630885842281003489022287929232179841056839629542694305883481686087884261653596548438838040757528466956515115459589316109263754918968928400129971934324209982085953519000548855615884305355026392476304736579792011644011410508741844563170214532493370819596939389454534247402198186228922354578413664374223334479407276129575877909929868201809906132095321514621107960469603849514619141471962751876847849926902137145247003773901044551409299150699158817683750154781007707526610968485627125337441436808912912199606954825807124649226177070105993403881628568526195010958932121694354603699081146546965445751246158680594113622274915366870588001198352398465550532569073138881101204182019639337572345331761163335751490443834855059321490233724201132375976647155726878067104754466011320797518760716130647516003799722482636725019408328937529967085627021623049417692512274792182166074175475919766997717261469217726167772067729792159633839642797765104662316221174794945431732649323772788799389450890068945450085209208667094809518064340489879968527504037236016139675160601263993370421514900974424088593490822950390665019111915313315981890664558684403521425445359015763190569419851791378048431126314435873778899956615270407539764692605473852732484846773943899031790991544438276930500158416444987042417591543806651785692673081170631731583304848249560157301489101608257169630088923310571718226942024462546138730390792052291943263255457547690576086709496234339393394040049696871155475531782034367272241358786825185243846729389797124934932328877784994091018943099675047772007708696149786346447038211394311787286343152496215406863580027613073686482934476604595505464425793285444204164401467266170995601053303905700119169434182540619193441762070291893843251790263497049819391150290144377480499771162275313197419625336772235498973049017718139458052257751954510003614204146245862052094276117924408575059746730335465997845321872226322298770642794730674947182880330889790580717233861650312865623463168850335070594307380980388968088381257882766792902960964787111236868441800987515468757259527375109967787013915723443073582675040628461569245323360772225092034537608138912248561011287899710592735372590422644893351239460370088514082512357062624044005615452242438713042389076090619437286164345839645956290926450151344319410839390418659202883962142158640973362888189341612099536769479020436414803733011344785481222922348326344837700556789740826497798785477497102538577952642267020981702618084778903440466612196495020872439821287960130089056771718862507565602440021422475928449656609624048097476384790578592521786453606916350754896000591924851853397711158089993351622096919936252257957362474488292333220978165699669630936097985930597864213838717109646793530216211544665948653973332049651565536500572631542355783281974545358185812250792505795234029103566341967277601041260387538842050127238891349306941023143560433813797247967256453141040495093699759147822836518542213377621310085111003498633437199984717454228613651926427310818966932863398392354731471397260586550121743027838148891581104574492456590477505193882754771803711656148983119672243567463568123217205679018339681937164304369761429654054445881562376103819593102504860513180994135308727043959183737713926573772637456150572240211460911929395580648229888943558980531697900600583143778691118877322055065112184346215064755689470118099056787059962419508449777381541454167448880852648337084126335080663983816789956652058414686629295759121958049375147119949313038685267194872206164853745561691209615826470456601633318391292885423343703561764653133484025372208004280073530871881471099800016759897234782491907600861132542514467233916552571719925023035736240208105250205036304927325133079875613548210375516168872584592887227005914006516734950713924150935789091993069616482775697767233497726465859293146259763366420987539586145843799051027437080957268049888623860642313432643540781622302085034000138335264523109853617380109522089412143395485394660864065157991995238882204481149630009038252559050752773761339039733996294296553691183363993000545663750422195183098355157456880341130365154430513644152540747629509394521054668938993166776181526199571368455747090242430124979665888037360082478322490616876211538414697482687349535903428535898519360336988570399381736490032537483474235978720232884163063229110483590603083783157307615937864190936668127210722296202042886372952506638751924597803542161169162062294388230056619315405265551149217991355481934742126197334380457257456648001308960823595177715851345025094755023991737338112574757123107335471689624781143027034552598258777811370061562522948731811329098320626895405061865926131550840817788489118429912445742621740861226930353518389394086066557952320481902604785994086888905609149809884887538869252455629852981023472557793077636769250588928340660761443925042254065722679368187243499151121826798624527450971418383205456126009656591582645460080944025906897704981362459872386832505509524288149023957479157859604969642275634800110970211821763932330696805185030325695677157272244931089891720702162722258455850934490380132895231167564640442879573661382522050834578569121877021714954183948062149807226285067739393511105703575089400431586913367594783385059941399544192220334187957431626312193367584545735646980856349997438067417896295464098245452017747096510784163420041661647372195139258102809668324673944433646060395111713665220648774605859541863881829748511094608563839765691730207469510343025202170024707813974874295233534893481860889968481780843149567081213571959084375095394353991866267451579630606464313750269078823307639557699500203757239707380525504047418174133290612588399518501788630084595076033885741357262502958037742907830191419651601043641387154601810265927818838222279927434718633377187675437386827475893657411811657347678734331808270462709457656875513512604582451304361480189212615478851991479629433210158142723024689157980015247864400159939178862007382931497980643469977407744642630739955943817351120134033016595726496588537741255668034809074569027637137884334875462019706270682167547988360219958324041454037429465226828791222136682573140145915382899527151055980784034043458382217399613190565898523807551788278518984051966708926787979326954104775617736871751414485826366796083327393128378521703162687992560723262850113803840441670554367804672957476654643176486313522819581320874849870577728032538586881042331264224861704152627679531866698906592746807630919478304143796551904087525975963546549356449093009870192855064277534503593723158758551993223743477538033913467691748895707642259163224981732673589275923889811226051099704856596473631234411477239951120544590085514160005755524773891632495041511806906158695646529881773327842334967544253387043488757407715214916033767423870713502241713983058987755970884162815499126182203336978173387386000960319713738781078416988536365206904818301468660444588154892325650571045346241417296963343775772227047909879849254282247594159881877493659389694687220075428165596155469535560272170012080382296001642737780284618775773298413710129667095097152427312959882341143297132127234850547876490898448376614285739934593674404356485181471872528730722402584137322890665982428806535495873966333967099296611377044478542319893279199469216788192503648902169975767958459079580770354385259950720737555859292534752237125968198846618827949036957509323897243234835362039359176064678033502247096189680382858520915715099422942582341436267455372915311167718726967526312008722581238655398552685588436323734852937081892244892844285487817217346508873742634547650479649684482981196149361206287346846434750877978621704107171316255650028336182253300028202960341649242237838890489272067816739067942800660999831668925306321326705997310077569658209071989492246291301875526956157263027832009718488507095337786891115427195050865532987109528360254078286292766047826032967241793233401388599379136266885414856489872343499528497597021703315746162969222147585048913447394905693046646442839532502985116130344313724892032818891271600005413251463163332839423331822603041943798315880045554787238025537080887668761471321258549835763890081609353874578998843971721321113378193544216298861370121745481971366553045923536374803779585346559984764183200964204791909956656721905173402807389079553220400128579804695692921609655895941790519624866752512408621915015586385493382348649274206197342465996426145905027513802617776364157965367314929428515656857068989788490725885381820590227612761352875713300065992759962979612526877755910507765000291070150642055157169020730037429034128250495982158297748313309619291585442261269308591023102337501738722079627374764028875874562636844580857332846794849138967865699594926816267837665196454799944870672690944020734931969458024789897691971213297097644642406281839886937995682685983071559054252013005300542599447073257581171330324181283251361629305386255081344341865594988844379723225219035833677654985043028224428353758236810084476314083659204197347872203330286166037639645458140887332495146518060113484541918845245015490653601510520763386258933197247755083302149481104201013451091193693239748595657096195881385545905070693093331294182736445927783128606727086207888643608165711980357989534763888301593263811298439319081583063531837203040998118686008271651191809155928542719473057014959707031827329161037412184378251419155626929569214993161300169282188413293659521041299289257290633836932270206387811819148680369021024418675681115471264610671568286181208915642816893707024873899275942945854547707518136492934318011085296231878309844341340657932139099543937742040528752631768463027588610160548905225575649767926932175300644492989967658570156885427597810372907147116941041169305825392356357962198892631925415095431770375485590181400927318136225390392055286292511757584662437378486620646238154393534625443520102515475873792082066627490999999308270997196658361732179504057663495163565706240432381541068420853733465992644997772930422215125596517670573908793231874102331629878737686435929598420944754465451315997764880292795535101868031018148343394868919921698356207458811702258206089155603677952684033931758664583260196359938603613989715348344253829118201612255118613261445710779057506079763861604802864360369356929200148350058917768410009511452647478766984311678534232781960617893993159796163252715113110837684100928059185928423898119405695883146742666384011323635250951680512187515976533530150164304750977000947510229791212258691727682868079180256820147508547190476566860562522529224381886250280723823638524488339449706097597163987632489367240439885309427448149817392716299648528852574992548212962503717578748269900475055293289146313526685389530737851358936654225083523755047669729923042922183094136771204010427888104861374195728634228177862365844346944568632907244544301679344056812097338785363381003170528248925137353374674291402889320698558060927453379445768219821830146530943655327096464282867235304795287827904590943968792144778303576310679577368570420662781914058568155249621173504846501790198367850111518974578057753281931053493660312211503333435231983612314933914413953660903625204749479424995132488406087583729549047679905595513137991110479503429869597999293755635234587147441333968397522016496830124719117399171698486487391657108141160185955018044272601196075031960494883326767290138979613855156906970155070655602180744206923404787863180048626583904058388637610577174544646414115435530054000375270318317051930230255924789237708843245945868031197827998220479381313902599814588740106353535712985749078888077316190171654471021839272227918955268396488164021241444393382493065240292690022049765740372035607453850189995383201824359399902131656641512659378270694078474331710078467122403059912714898194237659147450850236785716714028633565966305209561601380335577225660692318350606787525325313689345833954462652406358943000512649786182034610143285653013361009360136261699343789899752885987745685893764098525884443997436018477606024333818726472844501407089366145021016270092925515902851150970573297382002496358066510301731863975989585716906094393405390020132879206800219501966481496799724862216523103870873370178495246675360547384666954361772564032853691083088699280766561831862122129496319712681007555654950629875935574063645368247550506470670704784137731797252167196534208910471243694461773890985589331029332527783163974727334611653375118473836491360268964268066370454210816901329918230490637438388196126742675355763750583424483918280139667385077770699132617770624016602372347884401112202491943681150778055767108016269463269357639997653972744157572162695795341855974967139870792791687063624005523242001551842058832536104218526681034783491013416196160899938373311346705257815173696065251563088142618460667172775540432922262680229955743519522428777851706879939567168280242750051204829361999632105392909355677937795114927288373702983282329564063431775707148200898390719003881483327416122390383888412428958349575514947570061998537254835378213200579555763237806266554056810393590453265996147722565275707446469753668507201725445442262289697431432945604528339678635203722967355387487631312470381475079977411849572721699482842409227328964675853755665713125735314571967182025105162639790411402688535411884778509438808524019784422720094462973275520595108403169363414816152877875433579103782633760930962003821316551069358630674945826199379394268913949668259010893982551236075024068061838280429263793964225869426837642045289055931600964511595466102982865995643370513720951925650162625694788560955866601031372846193113314444675247308363260756584141340667205912487288201812678784013518616361607509531612708042837728649592531285589239104822886091760518245582671983337696428477255248015507344731432725594010743547952200656370644529483245130128908650445763506460199725302324985122258969001142696035592116805534829000683970381989242557385536799700972381587622286079401071332108294252899360564642536685671985502207230821727446277036686716055502254838474985614941803897442241243522459228878037485431314757185565838850833555070705311642308757526732847505470935757360291480932980577445728997086843625929551709201542514629313780110246923139686524115310254245087113308760842520888244736430476494732362536238430873928998406908997902230303480668894882025784660260210524195432091365009347708438704656960742889888202458738410038210325269841181801813076029488720218382310237323892236461675503230645970663578592047350215361837058742291126572418146208384315970828607084588406992769560513785898440235164422228871566363754826107594570487479668145557439611489965001285266184719085333632033836034590113833569010289439997846099112780714020770647638652031760679513316447029681882014505306510301711038945803010786403961866215460075387239836775121265407311316402644238303012971103342739986394623652599986441536024236249696602199602167611651441818709735632900134572953060554773395506954402748977593357821608787548572161950183162814297100169878381582114205951486907471233981415419206608859305178584133609456054199477883691126238248400641331108923969633612748708772367363259985648252673244953768429602451574046703866945845784689377114579486299348088594939501555098757402721632640271342182172093984706542624468161793210955889557305590871174788742926276496858397197612791429246565505886581381391196341977962708637828574969844875116245989132315666062030230323167766859353446369617079235860706361903174024552449862381516997339146769232896116208611570416868126684363378992191747341735199197982383796413695710306076158411269668516625841325504514727122412720036071507762794079467223615509164786320394058858088013705853762084945913523023044726575176208686538616786599782873406516990338224207084565331930032517338024641733754804569949339930798533557632180696260788088728362049064513832622695795978462311540596161266910612454761055881437514218918059844294905595603831758126858669334458135591157576276050240275605624273294858840806736595049652085804847929168600418241674550278027328289135581564517082879378432176656478752299638909918647200140524803800791949451235941560266383954511134338870473375818444819785737229090239010005482564641417403420447836572712382327719754478083222255318765227497255173824666402372847325729373729224484243625173724613401916643496969564563381681026106026048891351112931572431128794898248244425114449298039861875253631936668901701405247502825460443550680285379729104599288971898672419225037505515568197462598589350976682459283930849500552522599148015084077344504163689979620968784184851075155911780696459911295337013367237149269257456976229461844415749282184080800486331126973004930180454595356101870912466357203653419309339450905709821919729702709468535317053656468426679207512063994314999978740793007031397453492616974904240547983491053303854346352228241242535940846950331885822748659672103055057215026809041115105634767450115441371989159310740056161198286105702990954789604281572411117465965542408012623265195301381107758765430907907887271005761782235365481243392823794896010110214414585935520414762963045891909582318362307937501269949552291852236619630633662258036586063504187601380769656222439311553519977926937103222533337812513744099882434045210493224382907840656683871190483457151107204995674868512402539206507952224009608869860203787357350839250287818820490894754147151477847339148643937327526526901654755743065514520582245449631663910801453257906884029686741806906103101020933922756189501249939171396874554058555373934329735220551230213462952562206391492520523565675863334874981019414441135106512168715199110571092099329542804160495798702902748444481304083166241209588203296592006861186455373107293441490429447330303034425840405038191511181330630077433532493682053238043202412670409383408843394902861005951082980726826600909105846406227662626923356897268335484189344721375346438600839465488439957832134808591989391426914106074002913730197042075034729062241658023193355910166652217651807830102372387873545932375694291904336848111017072949624579994997811683451958309482119015244342697795516797319455711464506911755128913382136489586839378664012440776467878968627922089959629399446426906695649027296427720128677801652945877805795649993001794039131919653369872303897933068369473287535214899410635705337148953555748458963169929002485212867785168055378598148490947392571368840294934247674938977650022064102435713402012187822215177303771217979982885342576582958801016110871917938550382498601404558916571904398328940127739144762112299294263281674617823611495632473059436127786255193386386067977224189064351889493743647833375951131751699590508009678539064418597170232717590574252043191080547243520486427798066335652227859951166672398576401672884793502866014156677928073443456028785811735269674945995879875649666808990032720727456817954203049717529472548085856109562692613842926593617354947081604831351547023783766201508302593247290276497287025343592310008747623650831522684998952593795833099622584473870919686726160274532872977233963972573746974637828948077873686076582893687517319126901699272527089608908732673121828334534113006216551853704850195534681962588076086810093416284831643987370633250384764453932406088179025402115966942016282715994958433816854448616336423641153986738734196672313397603470542469648508888094103674536006791709730116805890436589469971112674404517697500957758963970980230582493763055243071339731377080218491574215513513472979278770258709951815745822796035337050000024946545303273193896394377033465225913433550280293060338699673777033064180312836041649182584820324559830143125197766588246323602508149158087940568080233547166109486115169025980103723321654245511084451792974950514055375252125517084692088481712056952307729332438817910012198915794619030917599992006199496752964425174868933776423601576013209358278799684319944958109872057833313967452069894332173058225965317408154698618708414766006137257136996504549474090013138933020114236263630033798432414112901823505337484501700317404763507243652553625807538299749080254624963788183326797699094417435580826518505606633453414350678809509728515439658577792663571865397545205384288991111308025560692982774863411995345072730000813363466557189167903843097589617978501681907105674550412516340915390121831133224773013992931736041867547063147260668342926158231069542749611321780291850771719725872714572092614742521270503953407266816886005003491415666375262495591710436557400579696197928287355625242103129813033207793478118271997632964599924127855557553690109282201012145660493458418655043532137311955368551909081517835517998433508345026819979993798152066500815299738403552579034417299265034491139044705176051829766745344843191901015189291170077017857475028135395148434739483784858253203642005654147613357410307113113609578944209762959959670991324844686456185734109264288035500570566882045948888772119021628468631428411380411776570514611634197994736664428882954127672120236007380404740341226577053639516185880124391953667655758049799571347260157074692802262222969516935119723275025111412021465307926507985274261281464485125119130000728175901690958638358484608286078215407226799425788339136599369735318299174821016058944301458436535482850461411314545445767529717057185701587221506335507299834179047338636300848615004900713935057545976747088066343759917622521212290265681679487641158431117282233587701290634814975279170875879461534808760290023939486334980186739514367827970083231367856166622903951004325721360788116444358517538109794041182587787686596923905304657196245371083034317082863895567958952342320764387787170595706818611691301617243829824405993865385500943105407166185007367253529656192369118631446694308252763585604361542178023436203051108195093626190222388961627964393876761206288776709983402616014452339357439228595664167988143505659547111528329199075971441042576525638321096684111530781220917483282727103575378297858134889960057034023692134360483318983465298284452261583048504602764777495337722192066426885629631543407688569521907411060055646552647524714589218271878340275260148835311259554528972164537970576496070495460609325190022740901133722610489405421138156208930028372964868894465821610130005796465866609377879842640109797500148599255707065278636029154986687766705958408091024256776741321670790288419180871595404700347710931229382750393468537015667441948009250751457265080768631444360066083533016273508943975520205688103984131480728250015030923785380284118225859928933284669188206274332683912606673393858444549225442176283848199267784621109323769266799361567131604909359167642148451008194265181891282843631335611974810954308683095178181155517005799387500129540279589575986561840475069836557428996219663240692185214843963878399176633855517813566437520091139005073105677923392759444898309627337933540573291628401082553405797726185716105264152723434209878456139674065248399238956976639639484990319577399467677794928821864636212406514669542036718212779175108635628289181141370533367669093624693758669679209829389469987808266806562188031518929098723651246778797166815893209240859254012757365539747796213240194704534789382594418477097135799963076214696518416663081368691853375961819347190842510717608639367273504523062663374038874487344231387150225672424177020984793978758450861483228715418582094537747095012816483643893020510432334344895214890321725555423700367237183628593864475316475834925840767152620882247397826813345926976022299940419791764949291747529485873843576993715639761991789611084887900160613384175204270645083284236206251630739665406414324838224419350744757449909618365843437515340532878786616715701265645915880688475350196149367345809442019351593436261731410504944083259673681279405086864929938665919183648706375377356740187887511264213420787269377451927566046072123528740031898633381191711432912340650191529361850472406680285178086805397865357806823302310715501919986871463266638086235499769416374872390311904362041179048043536998076900950388336514550760604690620744127811409627016163440281090391137750533291549446682665760473443228040371484847202918389777448939161090589399240110388866098573420655632333264647020458463838577946835638589590345326732182595780140077719344697663865913348377187821367296756956671384670274039746079122011447724399423964350577866087326393724051257795862119659528655922281697260924358454962689176003288111564337790638719661393455709502587784721003133242061897353214759502754731654842996989761047943395589586213355784920294083357342589639766212503658441740590995370263983243739736689417247188372103258880435060095446855160594919060019518853825931440761454426867648164775993198328624086425547865252052120060154127763592287752112626359449104657124757280791290077942744948004907450368162928955837811528146271652786879873977164833491954884134933345509863113000036835725770439845579150103937401513120006657019543710127817173662103196582471301560641997269320510262169980652592603051905477772754720252296683494199786801557969799103193503446508373293556501258407992076536361208736566412203074674292654395882481813299787807329841053576146521685596323259467868129807913787677972510541687380679170363429905801456136604583645186546403145667717115745073874965114597306874792662975929470641953934903436405465240176216793006011736812125140230591237792093587578516582223055860144402214761019590986419292126146330809673435889302043576086173094385548891638660334743221242497137773152349306627677067595406363277941673019972564249244317537910899489336329863538965038394109251316112914417595573447169157819800796876251929388676386542048288258350094335110545941260752856260096844574346167029025896228730682600029569106736784479977632436927812354027517983829840266412798483777825329348492935521700016199016975156553096287978643751739423480393094419321521050522884965434472910717777811839002620247978534366235267777912031452976674468664582768984283010606973701999859515881605795045728856458319495801228915378573799686797050730509408054250348630927099609133409719973679259174536588877537296279245668716606769998665832323421977623421952927563091176698945488811373553542262792730390654577881640414090819397748096787327127597638131173745689681105445853209615657651662634733011021801986808333299567350355735691261449192411322944261386881092411118295960931703563887385930848281518752069001521617064854249010754815320461644698160006816951303557555924247243527785482492957509070499719504694481404197497455214149117078730379527205173466986580102650448147103059298022429960923250142945871922463216949187948878650778721459568038064156902546598201864908659247133773221562147952063533898291634356466744249382097546657843064523316768693749969660245047518886559090908688881239077223052522791083334519917118213423721371576625613251214780827322952972439608441393878664410293945940794759313802377387046403015598210689822604697827136992613096280202590299785892650105868422614794880820748957825384518762573800028123199303175798532386965485959932769370995665909589186456556757185243280431410786443941443163867753694879814548437353363114262570969260462994202214392671580972446154247510598310744436123235231159392026414401360624152625800777539375005324321343427334430147947961391719497601006754345364995640188932021268821246964062327330720190183371042540818480486337092640702813130081962957735565573171331591734415873134176482385862129818825504173115552575360446789046151230187369839916830836472838379412132105657556156628487503713223412997454269990224955066007825844853795183681538785248578769283104331690705781631106057274476959978356194249188771627608924958081570916331121405196890589931378570295179666410985261172821355888603069907872649628488217057305069976981944556651153807886719618837337449191583673473386628373295524276028759170832770778365411102256177808057220965856418410157290447009271744033396815643879372180707136576727110331671462369599049155618229940616347734671102395690460326129880558064479241077075653750334893483165678030893306703311665429472179629841275787925563941784524097044899427838532291054714145690449984108439446573537767319591420093304516937390818385393675016844512402959425614718527563402271617488620354568442456660536101660478158269118678610473763958376660174104893842185114197961364280138910395321792563479091730240389529445200662103825966800376288926271148532024125733214532677637381394090552904873018442938171165348509214090364094351422452918339959000186508830466580025002976495663760976532814407533850058065686559107394700524160489689185517983635730396005499099382869511282932270800408377785036231802036454108564619393973248435966164832581702101567944916098537907966542470345866786781181003067449126192148313126805947117281371626612743114626363274292623812215225077308256202539898577584347812312625998731934746995226228782252755633027756875080227893078807803123975425512322423030666493017239134225573660370567023074850433208760239900102887932479863916482247518076236996312980514721993384751741076140899814643214427178178047520904030791350587469514139675829369073408098511033413569948815413337737647514194883518782158427084016488715057491496107798922888013531384866894318007815039204065957850522945701475500423664129339538677362653258384609598753427943195833040450347471682554333161875494064287412749694989339769478370830700076149250504858789725015013373833911016665555467650945543874963298484613968681732336366330281471344432291945010972989476142305698515378127720137385300506970774820515087647012235409564018575184413388882002827053648472756554577783927995024649970558041858828813572067694414647672684348530362664000354930143897132711873528924908887774993432091080029998461558332749839647499783628871955898799830479077693817473198603371708196133709712311162858423598268202851548701410355584239933956156479685187592886039574481150579336665810858698517146425948562936450176249445395852780751723983480417147559693941329888247686778860690699051664823349551946304264313032868617716423305580200234170856089758142688439320529045883715116034142199565204817318248825989306934171127862489944658576046178185682828689598383217379634515879798685349759889120647841751787515549000122852652684655045220357775347330601966363433279077521301103445303494537628062361421787308076805032240537942022756309585569743377474226938365813801712000779590538403221835672683831865288581851482923942201747160015744939010298650689413986987945387418024535756259487640981023577151066839788607056102386302288232217096650759484878019008072495115082655500920165693690524296536837033172552362908664868713184275090313876495119247044428911583908901763339318125700232859504177558438033281658050846816598076882322362176810878427086098904547322464043792851700647443132541988900934424789300834360361877884932799584620531947222350729403446347446996394489147932457230965788842031408269072578606151928603586792507921571812341618554109708177486484785418667540829019150648753524905013240035068867901876370557769394751376055462654736261689963848122997519933109369962950317862587147981191661682803120342460084283436053033592616304136532501878512056603093421136993713919038183789112224955604947438436282413257710269185834872093450716084258506058542486805944957875878136193743304826341852980703385756542602245460517551641603893796137509315950458756837976856441348932172490528801469856356719632753413302582588339892614712093567181434034239045619796952126414075454215758712640162074675150535176857660241290423161232198211063073120899953664001971112391996783885968697131727870870810910363275938028342699089545557957998492094558395640434866949954137280117792256538705576216430365733888254806192201508412414756541558948303212619095624007914870230875672361246975555936601577321080973617051452692476389381773392328506747868050586342338985307672057120971417510677693470484550539550210277281117516604208063810239746107029088113831707144592164129878781230515782710216135801523072187405709590874586254466195426207879885146834246458967200296828604057815775344363597365534441499242168889750484799041645517981843266682152566795650650500647525940025793573693744098943926946378042853532452926129649282897381319490712027052518148134016462764531749426749205351146882436276202741141399238144168382834060739727939781750221377239153933860471787413261972843013712147524746492677278843392562545373047614658467443664020542861056111272031994496406221316575995419916582894553969189747448990124687481759598938775653281615640414176362992166159087565331076112117526148019252771800469868203147101792073133824356486766903699632842847292397394528578297246116716348113965321638832597633687515768040317742439976214644494977545903721994671105722494515983035775368713228075007107251044264535159281675364060047342057639173933646731289723017603163538836313865369970498822353015633427170537754532407568286027411128709231614425809352310933980419245369170020823544658546494954944078977953551471243222923536488572346628003231405293129911683051282669373475143500433633114043397487714160965601582303129826960812246420387327358194661451825941275475555358146665771728704518473949970357560959170233167651034258576280701829458198753119965218704423260518406730817344365813526732267604251975083474834783661499741566698257047718458573426542093150997079607672553557769676294040231255186331749766869233822698321069058394350414071481432332991106368929969965111534807112235894852554786466499453440015355038972309416589562961581860817812100835209129655216528245097731482515020823742355912585901474344474648493475618963999254042776422303695327723465338752682531760593013368007208052813918149619915539246879851714305703669346068321548744221268309394988785278438499473888870570460724972044296690976619310138202957894530740533899033316282286110174771978843312984340959425429925017482993175726564188658726867579225834434158442067913362740440899747460499048775328908406472801507753340174212480134936330413431109381380088670933925630234674576608861759006005334967672254704874717954301361351676523514954823808549018534041461940032961898088498627696360330083462354062333656551470437486985736069595002544221361706966737757847273308626187818630138979083212415664332792033885519224295093504654326357353062931026317354451200597251423899213941287150465070022140796028831909886746198618442540795474888567840186253581728674771227610396157595460733643322842224325544422741088547983581916298960848721518162904148465517753149397604142714781564279241641025517233852232539885824442055012937068598292460692058377672709349213007664659708286794705874756719324126522505274400490188923123739762076487799937384254012646196710578169727053513603788639329076729728992968949814608801126887678522344749782743674916176013488433072237036007038758059594048007716408656554038869076963539013951468887955051328385917513838460745339440615641742346223635198237994632945654443761300064142167159289939864200764044541365078631847412818970995301796251328144949031825702180848648118285882229422592489190921469698563295240347756645717043495254924419380645439572484033643099959107182263789702596159956173943394934390953363247835594992813723058991023009688774235221675320360432325031548357017548199651859299378752041186473327671240280340480349580363407071772749288210190878183285185423718578340951275766314737254136908299201854257746174444596247082536832706181838052838525317930487160994340767050401629354367110781086845045758228350502576408321585879207849257628892248232816163866210395873769344717961837567656785145730825487936212676372937336065846574058867903841395303125909566819225854513719248095168451025547134292940170657365281851157154345813398133308646351371445865951894305652708591757026977049550230669274922116884162443486755998185757209933463184155411064005292620957164923039487408225449995896616914711200552905341040711616764845596347342548673748244981603397790462436532089388632642184018290097151651939561368633893651145188312191171019729749904588449775359054236613532463487027499847696438510241612033628619709043184627423974120514796539311542133493810122625113167359561741576840073859475210501481508117165419583998794358089874563529248361577529692863793213719996928566238591252835141876458252041796602747217252089665807513177939841773865793038999414906805766297819481206553665417054236776059143200933729746595346132622521135792026330020754795883749194446988895746012071077240795098335410802307093058491612162728631609657349149397235830157114946906749900534911582951121218706201613102359985163401524915491408869148252418683033208024176804730142318244731573593717699404592198889668956243035863727179161971454810925190631211104484369358006486081739651195690371221920772049204506742340781785329619350296766146090083511402667828239944951202046475207514389729526763664481528229491729944361998937740740390487571763004221617395541491334388278198914175868798125988910264642120106035595459074088030490841853706907928244660176248441945575697441371149273314919638431931852493374893500853996870990340499187305923989016832011339648298348469658375370565252339032525063701347400977923557185819444957807816189851579074258660460000499467086653249916844321728829220797270165355087420903688628920280122909207933679271695448098942220821576928260450657352602949822249099892572977284291821141655471285485936503058078094904950814398333476555661304254774399883808183256089498047413877673574303734958002380340301763373928185323292703855963431150403490051623944812649719089298102432339637614015364131852638978841634494552554102622803445993620478230463924278555504845668709284206405437673148269789960828665615775025376999602216057676384426624856917002837170611963724988783787426618255655115810593062177244766047740949675933025654238991930514241683472849667087649289461288171913971513837089420672077962516977942866390863043941532286592686750575885018549180234833561095851129460450553811071925081873357657038324554823448070982603395275341392760985144576690222217477268676134989051472488604338404858600499394006017899517510558047809224561539398823537027546148785367658191634913959398359814628313350472612160430212217929021625487047040883206483893121857969523700330170044316285283818365541576172015590163192560946473448498775773456170712099994607991491192294146300324154577034036422285730276014017357194806045878678184433601642127123826125036033528949961638673725780312900087034021212304186401765338085226501820011993401520377958066238677679968138557584913769267581925516780559759492103435924639173970250931596220492743532041351677877279045206590940067174343155491908780243743721417376832764764465676759438276716378831203408672956116847563257170605847369095311779564505794038356279123211992213133865334855409344362758595784336216825474631260000352412771918004366693122711405223549659884598542458118292091272276250059344673226964679965146949171329167667374134097421548105505961162113093343122937515005722537906367756825213195267489310090810260463410591459192621243852888038630131151955150018938365162856403503631846157398693041792916788182206087109292716345159270204391787528834303616971656204330727252772608210156493819712045859060542446985647993518226460745137061076626268448266881603969689493535779429010469007207048192245176248132532615508192368676926862589148085207565553563184633372778936245459127578065954224127693911266910487056209501186465546016204068415339781337309275650703651095011745647214439749827286092162368850468059493276974258992674747085608201210241333628137778293568426229146267857267723909587977445729802889621680264413885709141625222864938895466424785825504321078338832745933646431954693029178682648670936407683226681986423943062052641927033193013022140553153383944343456811621938221086225160434072520418135886479267310434445115452835400370547438729469572361979395311067947280754720327635253682909082565006191376493394880399672766682574627680314714829120681465779996050813394010210969495039981048575787992139115474319899786680521256616432716504380947742457112101087257079941663906082696054940451851331408388425063106416214887553246484923267533203350515362822169729023327371680528667926789316862806563933889170174088756440959201793393240550955301011480199797422492165667969560473957993937540324470771612372949877655905026960711325899560080853764882968844422997630306192752308626538446961859303256369962331961925678831699700981387952374532721741531804988377356542887895526806032087587534955992721305278882149425896825884251113690201482031404628399298746058397646590091094859684203865833004138512879087362377383622438297994483563623743131615801982839611273744093298423118489583868040936838503167205156219847129115986388898138475887298909131003781859170573811618842689725597792858524741859019887044102049113180659399533241423518027093088411902821677475157409107500873124117135576532640192913691524955823717587559332663619547491510387474527321071540161436694036910696424204909483088359620811217018876312130206423176048061890808544268001472167351070873252064001350739011030414109860531572563330173750414023225927751509935034744870806976717067719509281971726003626433458006899821553444949208352524481689691984830505193731500692971909380075771708249772816957507694121264235910576958784325106698047989882949772551716999393475961315496795122273652553352033252230901662736978631079793538445066530571324564936919982254423023149455194163428610515247972454438907093260735161226076580051129713306170273300362082950221660412537052371841707250527352746262796742625879013537153275573851374806613937286209062765069553744761673980633935463559594670475229600960678750555124864767758344679416874849682751339024625697515047349283725429368142650795825904700855853999672077135745986018254251465982088394069296651813273468187643352657602152389950967862335943636701727219196149904928853454124406409026698714820088468568464621712899200809277967858939488642693426556563957075570147633817678922737517121079997335097609523181982412558877755081294546878752754440809348845242789634246109386632514931520263265559295532908114995508924020583685622719834982473081539683671350443794928060880773585265728850082420886502521644008629259392763265364020694538582135367958877859884573155959226238777398657162385762390733675400298685923083847090074658814977579105285406883651152582356500475981064092301753341592124704774092923524156715197200491948868864551540652851545289712830269732790090142091724170020076235065733244088711076210779656805147120729057398654646275745521648644946120884219614892853712065887368007479014362369129627428775510087595849692218264580628271519536863920898497802621049006082150615797142696484106657190400361409343414808466688358373357004838485493723157139223896816869327242069145350470356724744607670080092120675705780254268976543349322488063405617710132479892997282956672436780217401579388609511195684865309910924654815715927523651507503127532932054637376557015023986081588666978074907550126962434433599215978707891453876164408303671289429822803408881880632080222881881926281323929323710266125996823074681641408310714107782942189583940875149575944999749233307382458200192882638484460502790956908847150932103805073420481281662560965645289380031187927656445059532180224505360028979162451053837645360829035041118175903923888863164211061665713941425305074929883881536817362415915691528064716473320625649830188482485691118480281983809817550599402612047246619591142520112204247123326747724263004085180988980926371214398150531449037262812965521692298967781479131659242189789891270095446610804362168746328216986067161129159766072748856885394130639512403341810044065099578966868748838089019502693050920086303033990621269878385323090520597443207044331695101900299596976256437905210779581605220194651971830565193025536138078211597959755714907206344331428488904479078231755683467131692468665416708808837595697132996612327291484497385583205115091837049435242568423282611674095037291572082132180561680533508579904984113347669354317235168790216336339070762829311818932058142929890749291761074811202238685541284044629963701337307023901612271208904004382539953727159959201747360189596597244275337212062912815961084292707145865668116505415550976975443726804406604663083832762998121048270970745592173156421329024852149632115671294996535423264539284669116318550832578640381295966868174425211427168873566313599618485166987176848957556591889094064245135959137853881251977941175976467205416416515747584509574998788229632439541950885304020315446031477985425125774065023760437047726521181464607520940526511216292793654097232470259110681066746449630504858416946818456642625091980785380805732341824824228042647695225988063363547107087224115102309280071163122022271111222882865983343825329595168550741229277182780483774674989588628289605499770812956250517144522363491326025308927634962711921621110584770778223686280461432496948236423313990505320029405523353586475078909294457730765075073813668371228660234917914265129842429741361040310307555731057666353013784072833528652187722976930976077053593029967247778242285930294946524293690616253092446464002883282279522679058559241264198958789515099511191103450275005998105917544155011342061945299923955177649431301064279053005658352882700370915728565727084583486123346070165089381165273851160369985557738741077593111776430754763708116191536653374770913529510527426973471798765026834667030254884187168442756851557867759991234223420425570176196718476852993801504912977714651680440631607671763506961472163112001379818953650332906092858369123743328979356418431983083093413175840069299146951122548723727191014422507502590713282509753642899687679727115967416129287780867106759249341314679514947650467598843621484639449633689161686130856427660373049722302097357702347135453649933863817632531511781878975416538148495785348239691459568870013345490800899768859147592101414328239813764466027837355055019866029206991891650575556594100252824399565600681364515800209210120925636682775018996826339283693660323293018670590069252928440328169035139888252516182701971227590567299157333976973449720788280807578132335044194277377546654364447537210034628449410025949350284608065539229362488104988367538771061217452309899732342445092274097099805766308196469269305685832216334409344784029728756812336106946341638202826636401306803708848862920154297339668927377761574989618527627030589644606438211780356487722745224793755198840349192130939423743494122221448589644599200174891155927770320743625222028963344762862493438150339432597591901264961040475698199054158429743429846909748212307524757082643337654503244139067326697734220175875074735531256454613596071809528455647739581993165428723034115246631520105681024991842771726441576387047508778405253015476845423357282313033730996508501307081606783190535532297113931242065540962927799205547605302574418441411425222859940587202125634962599659987107365517355013668207362042166929113591151719045039482925066687070845482782909146056822834526760053869738647282758762885661701560877394638014565291664671128030735266845190437061986950205201388741701087366589033757497385705069573574323983419737630889389339581197825195570244084762707419477160328178929417581319087765288981254521429458879496272720484022806311784463531817601214907309106540681293741214536139429694701894827317287840446162540537320211747110300788478825925879201300226638593842357633136807845610548515755140681317560366670111904042761593047262251094188871666596409746046156587478352422261409785160109091990858379850158405940647674677358080457481597898295693513764791156831523004354224230454067160399629410479295237152442923040018288142087750929237213113957223627040364918888836863797197705048916424395632187639165628326337253498776633146197377169576277574123179288797533997966165094598384880335444895615497393875017443715247232992171954302339764791088490047148997096272827427681044016455406446487077571014956288585745974348858367656674551244569788249308382017803151766660493358788033344906871593029025820213922843170909273858579512559004233205069526298919364349944830389867991575999581248757287503831756461714645331833671664606771362498943221754999211704090039694933111015145158559896872793768297590923046964532623308660926798411035674117199199504239263126828065892480549899302117965142438241647728664513351685333235661273873017858093042130347917336921368097226853392911977712739146476557389456435939416689544846258114115252970900825786258966562866585613447501542459616072525438898031727046461542148233015427187201141439115724579596307348354076802031548390723613497342892981704999986714710021257045029360700411325246344673831928838073123672041087763285601038158641791821901178637812892898520037542039573942319638082155852472846085992608238844709641069785837627703863101364537993876075844498456939842824259023549202707617204240973166404114748561546072037815959590727458967586587070646347350384876512414954940511267970508626219030514236096765220523392584020290510175973992983383855047168419822896098508082490711549297747915701603099336805842735683113038109339850975571720420156209149566039272774583438275635720441768559988212958755282177513466885143228024202204975303229912024019576357361853840638488716148612608599560755493518844347361280188986696637833792912650083662797903537752916976149912374907938198847235022374403646549072177211511644606281454436454498428223573190054720803514347075971706329409205931526285554491892727434866584962548344152068973064909155061226219651829591137632942663542333450352030038321406461070206041295131250468352643408258207458209060133381865517167804969980914782432422718406968611521163372440240891099383702525094496026118407076497510834537419844308970115062176014612797043458788463090384598985100103030812669751182605328039721514623843825085850122650302679519956568529592383093455252808802558403953066261395741982982785653747389237662181387826531139066104162304806998014067649280141769800988640572415607945195715661865296095216277682469413484139235046742079694603678128247055662378345202896496561739454574565766917756348424847305286786502856066763597594942865565296260848988716610027441141619672017958546144584833884192241047098872824863540006348368303351274117204823630837691742050277811883040346782567321813498814774670341970154106331715933215593812533754435834768568596048977639849709455672781369415962651459585599551328233572091825210346654435316492187266196924521570735772738755911362059511436667826677702449326163015918050174138983155374431223096741904880957860848312192211491939454968784970387338648891390674519714209463951592358903504681683133674910830225774790560800566294987307124176131530863869824828835659907622937885234448496398826073370164580462762511767693089666060297732737090894843727748268026725008363877949974584205084418117934651156680253057057204416467277625031250978166820861156085705593857427009442008287923718663943143183966813057317604570437944706673944119635122494197297194300362191382360374462369486022787491269020705305512864420974873401619635784296450458604260409804263727553727614361006503643710198546990029043559038293070546869002123638096882316237945500253329478860274985810238289537974424196959927172765995901437141424242776200743103913919150453798039727190986748856775971235244637020433673371619715265357439666282476433572824592986002761416514373552460545272972478251450969543598824682652408668457292181837546477077560301084162541222851320902706014388079921533089254962716102261592771591563345014765464975790399586185744041582036541365576927735782461021556777237235893047530786006208269206061424929354653456678874394206862897382337868279931098579672195891014495536754766718228257603937796808832382535715529261208878528863759538729580134076775864141554543619486679996267946132382194719642937373751151505819926078053447298154138224382036890566142291959870988110188280711629059941464519127614389464786352367692977670980395536071005719777822669453436261384132540640332975239131126203339659383640648327342100052402079148491224235148491613042626657926404999215406277049959029660676060258772214868541308941779914858200859807725532430775262603587985637076544161629208622741217487306652589034608333741227963244789694410270876630900858132155855445245929613466697833552944446938244831739679787103635988769878852721898177362276352407884793926016839862079517010726098295976643385487984142663490024775972821907789673758238253027621782956638190340085225235116823673458577371380299573857180813729871210289493506607457939525485458717063690863919547957737848195148273544506446639474964559458046614535964731760245267377467496630165809885581884391948355900659777913418683580119712628497698542373759246955704589236349285306982159311402744782075795864036006125834754413976312423960466252208270965297972793933198229966570086845147106998873099263730965013279399407643568897729648762961224031601599940886182258684414665349118095433361075357824709366450925342040760708694613399389206396155947869712780036931587377405318241292575300805926582308087753515449792516670846615524635163746599630378211949277505627252734092479922238329591226246273657531212363777917201471684953063506001118011783644464886624818247408622192440097578614287846836394097934720930314610814798301130701164138223581244794567305308663598826217718822082512085130334714322430810693691535485339894495176397878362991625421955444624142261479613826811132955978686092691553068413312110556417478276222324852563717683010329852653361389472957106845000772604648922942815639243374944337137958065261522727626642578115805895968836767268217254252130738721815982157453094808571871042939865054397924932120997817416038794679523315307806344350267382115103444758312698361245769408302146156363010353259992096579885429741217664270451406332473186721390586433757374691394783018081279069056878392072104623076561892667064383142612748539061602710969179237678693285515238373787442218273461310429727082205903853527616224333305833658539818797122471856544289863941386176769618737169390232088802867031359640859947497372035479175921323342927474042881883316272370195799478461098986322982448001418046179343935468086732639528553829477647254287859586636935334593329511949767822896768733461524393280994637237092079425200065623298957769420783882963432375445333668892995809283396837756232529936442204469583269599798623010461561939988903603759982966278351613447618611497104741798164053513510272334145812583525309036439878640849807317004242688542986376291972823996746112968713429791813434413454087210992513445523213387415186388466354476065736475984255152421911604557469640714178250931505469236565657548510487848719334950540118920656611506530037787629633797347621677842356855495289234743950022039679016358596770440128699827749603586294020058139626687595638237352252707901592745110464417532179569520000000194356639854788436942230533125862396498287853294046448722840438390183768736840510392312857895133191761075950570627046862192908134140347970478692449883218539878728554671222549111007787864739337317937327596727425027047203138802363860149447855837430829641170047589310749599687383838084936517293916771994612874543752856534589903442301137005979495746512130994211457743774139557522607545688675326635969680459146597599222030661175068951523944588643575031882393348588776146815376006612660901341630757717303777783772175207536756962274989351100134878857095636232933951435409952536970590481868961227164963576672962239131482714235395024395591236976678338073676255140965221500134048828219700027754883826028232307228942913193500330318947320139745317624766887498220017430352530962816801475684370208728543943740326749657918849144783787223308863473513671725453131440850790493829313661299235438875856856501677463732055958420572366646824855503293346233333990986677522963470012570429233723077955046701762054699267973679201802139897199430178760789665640807915525200770124581455284185003543012809039043996575758413806769653849473749375231009496983090053651101151847513760062407411183803572587824760722797277864975639802230984888631373051899324884182787603892772757511816766262511559729894294557433052412191204935022510427555901259721119987488793740649367276411453521228214006378101026262140752616063496598611901216316607640702573071856727830062870336647613335359067003083464064930480504410176247011563898506025084387630733584675187922305073327027135025189297850584640359844364543135640267772832683667481301193443273077759568478440202839861531008301406731949033353579617850704876052189841233478082853581671712809401999110801829610040260642045632615065391255579373751881335228437203141804264750153348614018915907789285667125133581518247686409755980125270057796828235345159708417539737569347995559492950527977357076317384388729475997792879529520692203325079859911323260688240501726700744473243142578545326838109489532596141305102631723971239321355517912364958251149014710234153400803740415788803061321394281055207034375413830435336327283002955252426852557529631543716574008831385243528684387331116051510584983954029351044984697589673777902208095667112727959058450183600157083298784619128279548637198213592925865279955238689677080113827785614256362850491929260158394426131186833225361861663297114827860148136671388277814776418373457535958628522338783865910138906180655618520384035722860842628966775974755194073402361690265998693355310125695569677073639809643772919886302519094318537699987601588391510306135471697587514384916290139057835013199951770837491542072128285059177665889713632032072678550014688010942972475464637818967050652961821383716070594593386099757907647041336846830719628955056438194971733573717146376445968092712157287713776223420035594172192884140146850654445298200070492825715087666641580335264970140947898197577078768150091456695130844606712565292451755761324127448957293122575419988983499540702538734252354097649317896696436372570316137993604892762609636037912171198312419266624580679694164324892030324820204639216815367451632319367525754926887059884702150904221552932643733589933784561879528941871215355054015868650846232011680699137388408139326058935787010867950643463191505550589472508864411384349143802884366197942317345281117031634427515195348075463097949260693690722808588859056741395264869508806261360582189069732534189107128628565728826204980846178145389146902856231259068553477223053499545813154195673988710339633813786412804673798215533183211501528236435201886564562228762248756684761323442374879262643322803475934096474769035249361946374400345679483559568407952496771302259790563257189748870727220902272415539705618051888222411537610131762141649329093938054364664778516653182426323762425273621784444268583170775548512026721906450401916626016113671536293736704900392728955475034207473565058963337205523632097336941043972917883825028622688110712916148340146704783424199184789411693361726016853338573179468755031326307871656940508806597982151115893050035549079907658768939212151508461669175598350187632106263403047811034027084778980418141685970337525724384881807828462318709642955017198655841074621018831416816630335980400423379860563037113374520491284239979459664233992488634600774896919591200189723949760660592189725547313670236407831979019155171626190177154544170723652652983983025341484109857839550320575735278442676131030584634655296095865726904422110512942382547820704534441051158603584718594987666955129777239086944521022296470889489047129747613209961555729784369311109542150253660371459002087805911411399901466696630921479416748821939401111026757511004923452400615408716432946541413621814946029102821105998515803754495567144278681156541599816942297851953483610689190662370263951707413289555895522216269776542400603824245739666102587264001427078210177243696013934290237256868628902244313177141782470525225421752253893149177825150737694578949890655367376692749828517814018362647588377626943860303262631955121027986693890518917531209069775632957712469028006880604872071829637571620449488563221150055858991740813487949606226718907111948843828995579544957746466655762779349048040713602598552889152183822445401025473625372113868909929615237976337365023578352211716642364367911061884345779202054264116045335731402695508501724812185680810564058762814473327033652025510177640672413898056164711162203005741918844356433454085533612802215668070330585312828316454343706695003594793495358785967635836175393036516667924094246122814576276602160603823536771905266609710806284463767749846289226909253022958395653908848379019987104548375323298410369631999076766935677782546113361226915723394020906543739661394701205294069916043455370060110307810089581513481297022720250530991692483822024099590480011495650849814293897986645565800593032985768930375329115685613950460905297871379336770753932030500941328354240997307839695015841465264764792398124319646704925683915680576072380511901936925536068275671006970231683290421450593145134157454527742620019056685659452978079052654380334433723398254292140588037353917027596867053619537772561648987567443382443485664580547641241597290255312384536729571061626906541358315851739337101645947963333842055961332529503824789959407419183728280151821101520285854270878538076401930729676657828864754377219204619560315896647429712125409107309780250280561275371133141403545240167790195526316459479777263054877495225613908414664656396196191499344668760717923732480410010555202654521356514506290722827330306039612013883672524337325365174217043951573301777589221026905099196464627091175373291140967405345669576465730482028438122082529631477339900355441416777092300106569670695535997811397993909936950541886919483531736376618254265501125355394431624728889001466919828366641119249779735338458042616685319276244363547646750887450137411219201867112867082691064121805182719715409652257269207269890447392245090053645351236869484053747106948929557231305729299154447756543020475861257338142853541780324565048692022660551657093830073462173024203599189691127316195336376308255509935198990488005937839009499508204944971192276103807818248030171613475558117111551554348430006115121881473094239012785122413181375593912779740780337092094400601044546689775155546208687861170194790634780847402040253598522682440962100776460693224209450065195604800738484669490048591594463057529351254592602342558360854041052229039271484329310856428296113510059583115609527406178969798933812472677266714625758331487777963225026011810180160626683742762530461553992180013643142532711556889137903291088290915306622720575954822612879621612297821190724463175074371304637799511966318904573251141163026985410202823528175544026449322706538298334908896788181588292180804642341163642706193748559762312450279791457751154973251228993558792719750490313775499196982454441926472787311362782114966391717096455915169133012958402384768256701861554370397579066968741440164485816937633011804174682861215214259435352001240456898066590457489782594517429856723216098992842511109625907515670468370551062065059095686007719333965574053147937858604311604911507131869652393733126137355318604480916044636986785563304325480147537591363022007946709057200082264682170312788768055650225763297334428321218960052131326991931042038312607016700996415432694997775426083434517555681091810674962709036780064970157009736056677983580267873297103418826305962041903849960993851418155380536283949533688741882764340474880490451426122037511957926757484948976636714444900794973496265406780153128735652683387124829173976833572584670131857384228473137903226970916820904816554411872849789845266830121151958159994893550338266468078378093978942567490563502155268310548256318582981554855422838003551280000879705689586887876257287148909310510335988789084701137476384239519416785831749389010000559750717127961518796899150566978958930647928284707954196435904431531230146445360628241342947658755105549199679053871189527430912735783707169155917849442720455118721205306001873528145876752572968821199258931559580518974016664942194816033503100789896464769428149995940638248531035031913541483749491862402801233501738677950133930295166668027850593530987816525292183746196426078776674123027363268738740946758838210339760761293222690019966723623423737443715435997790391514951729990251431713915903924203322257958775986166273082850234107317181323122175309001534034825100875977667037263978368224019461602620708930953579661472164993758706488386606328072963380180509846787382081031916523509873111035108823550909623864782177291756457940478211771634382952295327899376086462643822382375062660701776731994266947642457690693124346561441302538219645759800753255338917176560595041534982057803998320423489126252526821530337422441606832280824393326709593788770130422774795631512157278853211626514555187450753091587641043638458563024140788819058946472470951723397675535990273763534605428169560993343643896333675001768048113082227723293522694125115768094802522010163470167240135871370373078044297790881019442167853748809265563577163807660071141671971581691948685571506282467165888538500133279374583052882359985793652475371482526451041484146259968032233917781736916768181682633341586849698195803931215026546885565325512103693595693766276271528243816905301993414700470267431732916589090344572402776924946925668829744492327975693027714847138856407394788501447469769042816820747002612447746985323849005896145334965696107190853415043975361355173150245675251599031112392956823272205921842304993397336378818270872675034231989391101424405405764829357848992832754893522437864478941437266234958617615344748698585352315469409135686392279732555341981660324947582661166488144936376751101334508210184960459315402746457360425101030443129233330139690868218094212342275248675290842907377618250147091204647167548379845196336637228179942828050680855609525966004921494377064216715794224256652398041863634361230082416953328125400341853887867827187173957325966137757710307192929956510714443567058948854433314774404146837851124618784668438331399872023742112314691223021608842750204554567319521628227930293726511007213048605145367137370227073904327316919185351058835530314065129854959158882871509272531223279843374539083352040807128512211754353557351360964100871324286777387413344451423786610069179583591227256426740841631441288655766718369051182197550224526973324374953392195793346521878566360241286750753471940828640860931155256091078195005859806681855698275220515170143196228440779666180165554797016526652129512207304663601841625933927593879124535089923994697182382933439449755900364820054231191580593025323493233708989515963881268746673899934383405302054006197575484955786529087838227085852926898307435769090873484911805044183185763773356673652266847156100143881205961939470711896369080912151801014338467764854874558889398377693775271766474989910448170925829898092745711265213442961293641565412923820700117860306197972638418686609750489033486471683287160154766189014108553073244395932640376479984947388586072507394328472333104614552717969996788309936718851836113545552661840259011513525104494306721003731538607929625152765513465314823151486841748854424955347808080265755573749122560503744308556333712449619625450066039029977718557030751132211991056496348496094795234950664756846693779657288450739692726494075969233687939309213084298517689162293112787151967144493442826859122379509361088253630241318779661401016082988290502807712049110232294444913185425500260851897374512080383798182615528165998017165109603440490268912128251017301965933845102154682688464709206149349299220383666575439436530720660719893539816966106302308945043453881678907351085362366670681355268439219879740793385488391370313739847645379147333438916785704627990590010724966796282758510272876392890405373365657094009482370167334312480390808711647298526408437373451714384188491702186970454469019118714263102710598585330083384837532152755723701087417573654167004010135768542974502108702598714954947584101960230276786972308325707504098183185562869362761858869612868904145295473241983941466464148348158515566904815907643221388634647386557204651295549136527089903899319003528739319565748699131357157226394162474466946194055854392352811778578111699566582381708387732772080706764816948684779217716979022642024182476451191130821354684584405168329572757109346559960557551451623792497015349939033108716157677768884360486691530969975048517049693298875037275367318957507599491828348547491226561914760300477290143178176225015110806819495812786471364567253138212998857586532172020522845025967354180669839123768098592273319299081221798915075788278559634363902789179471992182140496616056811844448445604568697851658715854972012496500801128963604092918261518332187135655692569380977230065932515728809186965471437603380491137063583787614837152089956663090616819991589006405304100739171611099344179785595339966881834758698223759256497035418077580681732514116277706881049263602922551937137356689945050075215771896016312121049029432855982225667904712102290130005482124767232211942893062903789708728215609568735312034824824249700893506248096976438279951589578198809819422822288863595693129730923436966078059987016846969038115747749414576935774052006880525375349744857863669479689548042134025578068118290978403362445464914485605170533970641265381845297865357549654395780366635094457514814797920041208531410127060741848236214415735662184313407331900156175440858196593300908430444241396725547211831762773631935717987116938261684021558485988483268452497047732513858781661286337817990622521838079982679070808791510079433413335167098421247557427095066250939258114846923121789643315722208701141210227839663436665320447211447445222404090917122406993872454741324603921584624181941608219871558829640120559070705444406972276747837742887564288839331446649824296649912694726829535287681380556696370288955932038912601472224852293208658852801555125365788656811051811343739944351713633353605614437798356409483821654081068425880469576478292994637873995219853953897978402851209211334507147620481135441825794875891464162022979633595584497955513519637528481075672753221769989746418847050307915679481478583960290667521284398101022708225488804571434383267532462006843598571280404522981465400644803115981196121716874652892641177986329026238635096405611536856030642070673677561482073372968117066102400497177302161971226428078804919594608890676548724599880675004616191901423048922352529926167175825851530653290751162456341063677316675692071618889016676377906425022289955046491675802118665031842244497831540441724340893017690821317448351501532790453594542903670748960679417865585166949716389504780961679333212339300816715823043701753335428100687757364018547473299458659037934248213701049156596757715258839473996833216636783675307394192767734960032788635077263500814175276532767406239423358149679848534496085581326055572378110045863303958506920327773528892265115526846660024518968351859081122131853960321721308271624732484759490635278199642354641633146146550214988056197515442605357230023831837438143393848784369298816874331068349700898572437744758608766817370177069053357625741968970897662284369935658213931938955034487729321267574313950626090704113739201049782701042142195618628713800927719955666100183433941207653780113498788595437874131449922959041903558150505747163267972497537756286703911687733873694520485123744389773347811031400124928074654687574497983011099696034432443116451597701103128612730848712330725896523321779500814534735165508924489878105999372280906347938521561884847411364633925739268792422452399094206765549916800460022166333506072045266784705375522682829626625821624127333225644641796878326384385524307395100821825093879242516907947137689136682342004933707094733523277638338080854811032252334782887031897402830199058390519626840052116131687973053902109124759333466551815826755431625325675034449326467922481787893744601559290535328500275599345731459062074255037826460608664133258739078837961253495201073345891154915045396758803544286193478741908087422236655585427057286322738471797875089509012115814996524491278266303155740836972850058899312848482899916361280124577720359058932308838512832408768221298391838970954749637483172089819422937716790532338409359143759828597683720821295893926226351086630382013213741981644034396851938752814754584582868046596575464195268906873848559630521023984692257497861587466935087979081893652640688056242530251729148933424667145628842200567236800784184048557298075573720482276456039081771834481212525222266317893159148448674950338313095811513046958001029252860425322018486369382796208862795364651278314320454217941951243501352477883756561238759621119602748410722716987752480836963449317777652022263602066356898679050357419206233840295096684531895935441848527130452933161232432078736934470124109780545609803792688745528953960107475816715177375212202112571461948409451586897051840236571963666914047513094912071045635789787902802252832232020557455692465103024228236144460094763501876098454921155461528709084154176174603893702859872898521977328827127158489453676983436033094730169733502906125331825650299041239957172842813920069500132816718826448211696233725068460594946043374508398424778934202022173067419620877978463322944012992988772355555814885630327259583555310838233581088994265787189895510342571306304987895176804698957080745086318611524519009198455931380401174755392918409281376953551238567006307057229032119317550117719384139927201836956835532276171491396348934705115224639004647133892335676472231809649939624524256914771963460256703957060824405765936016921019975716707988557941547089150763566951719305547421678053387557112928093903848046185524411088597280365902932963474042116969144893562083209277952479835494930859103660968763917607020708973452429910483018068201045920048702608381432178203050486635481199100217529098187542148295046712028980611341890491881465199202797552599990597811959250249844407940043452087732358707987250018989937320222279290072637519321027678720482812812576291484054572034300342053015028470657712862374547894001505474606759291639191968820524683579241357575642224296265705556912762970097797154322204574703808557238114202995084895117345263639614928678723544519010660986455102181121982421880155153018167544268319665666653442475301242623676382365860616016184524110389885106369079711446128298377835824937824126997128486049746047027509671275867073741448926279091269389476727097328289163911469613355075470138075088848660271881322950304144967535620557510595217640981921788256712789641669770094626043223036839387564845822958457787591643363792596263533277259959505249219630355297640364490149166666983082720496030747370327903409542279362002939874160410533446367258185078127469426176170431727500360125753500520033462270294132774116669091671003115437410298456457530866352863118791799383602484779648617608903779958551179623842121384189371982615331199027196648964439293393484498954360282060402526105382526622659967767936753442940692351692721262258051829419238761077826211080784194652203021467284977989009540820946183635362545071719276718577318795071887991651849309740971441192449106294300661824848896547253768095842035353882150596487681297401099921044067155493974696632849482230301715227447792922269028383301428627081476408411233462671250493069887073864359474861970374976169840220295834509728490471991405616231516616076005438098477003667415817658028788316201717943312716129158195053304372692245174118005278528013039687415663074426153012363271913506307850174069746615758536355496578550459401107963138739341258376352867128641691356107810412046988275285306458425621156777553696464256274916450826301377182176237976595904119757623003103961670021612882869697386095550596749967583072135440838445309943585193927652401401408572967843939521817130430449383634935552692724963611669313838789536845425228550240530425475627377542348207036908323149351108469598462294431283794398566380165465309860018277650268032006082912490328829822984066198581794652472700238618529185092793367703033253587659288035899544160704802000864546583317326390154012870943768367829784655016731792892805755156163536269819173679613431034514070273559982358896596250021912429784535039547869612191601097580765108969642861078370584307558057419122832176176091628319622928767508013096103169710880880241907776675535579953301749977131501340637379307718512652453105523353981143082798429700462643183810169132587442379028099135487374324759483611310300519942214033701069055232800960535950296681380797065662711809507640917175207354495639528598016302283967131760298972998439721862988699236875010822759680776568467610877341275448818809844543951840928749212386463634394971266910850824547034239749807247005922199058060526480878443937533076923615710848948782550896402296878418174844992102656837872034779746358039209485496568978324657509269334214766857064388580973126264738951293252051632018157517379470347802162557655139687904561269317628663568421171422375499760649713639993772776141361334018072873260835082314026311999617171985580218414658880964494638329863772531238024988081514395077645891609137661690311614489365140299992789670226265888392861933920618007675675881733558474543730080223336050911478425507750172894137646474749106465443683047201375825064164745610983984413657912098413044167792144481724511584868423647270582936746816154258337787588367201430399430916418770887993573641518398518394699861420652591637124746150830609668037917730317055399255531640945604159601876172894058466641309990328001059438660813104308820209636633047704943016630804390786595572473072790901285694837442798836400619565154815012794704033170129575865940312329179337781337154080424413495083068712669126382598322533737056151214489484467184939126326351513521941665743762754768822022081674068748710277091901260435112125455966888307814018820571840948930764852035463855086027549440629103789940640506632703768103653066849962348565754959611584746835953675068924543061464733333459255722548504424044843385231261474234766336683993092336510408798334241992741115992925325542862962652735469797769252798708759254835957738344922622101425891487725739604880800611366633772070256654828892433120511866285902858677180150425643821833808705518027858897289946565827809877295401190432469971121859778369386103303454968497800381567273876197806342807437528047281224913103708472195633503585140628933613629780438935637781625774648726849932408522919017479165161787353478964128025244001451116797028635122003928212369140396648062136585084499475501603828729519932962664694440332523842078129975894811848354883492645884099471789002465720303309838770065258670331865565206366432272276469972059447033372999466362079451318569885387933290310162842237984681958028935446339194688317773275786002301528259398446351326595078623531370655225549300526010809285890837813072424667367268588941692846231643594182564749866779415553266028340210739125860543260313381403711467226368810192566251441339995613615304536172566804965645079672697466785483639315491942305440104321148982166960806370050508864282293746119381193481953331761395342633306976156802403868265164905241392465657852192299570385915081720789841300948699487126231056151674605369368755114989326674558273294823135800814755092726027505518942393503368289198037668045658144711914272315157643686681203577284558504986297362839956548202746616184072225497225230157448963663554944333852566694722076662693981561124708510170313967635219662664057250373873213892753529418627875311422642536255052316869401367576092380357071946438106910296156604237470915224033446565798343929200393517192916469445049890093249479055205715994548191879113819653393646158856798765394874068343982961898835854458884416789863473737503942410353959355969000323629779262966340040425300264637868944906861004565916000167095073132290455292205026063062021873456666064979591957191376036066342566290877573192032468954489141753497738753071869935887102389586894217720410042747676315149242021506497943913464449886462242654682071955782406932546008297849737570621785804958933588670226586114919282286556912080798731739674728963082505495214174109561939631508597916201067626490430734568088087564157369875750987309905111335435219357172209456195947373776593029429839905169696842875955556213047513289536033985049463626520827638714309011352773941092081273164872196308510124753859642024762423134445781009680911263463840246047432548114313761157965745369493097074812231607839731407089423031664658785863707053035638312442509371102573441655469978697648683524992612290587548151162738902902463447790334525884840734630976120508024443331614228284347018718652871258179537626936455809119638711596189982785327402902930139142665939038642487543804379276165406783730607106520119814987803245835209668230712085065146702125339917013532730577006148408891263294506477225696262184889268538537122260738309367753354330605540461213317977413683828182113211793364883942051954675709852074009940323464339689038293067594841585313935248186849452155112178635703006267467377776889277071465756046276903883495452486910673499654158971685671214431413333551276434468977632949782732756242517935191070015954820972650100662675377772941878633081553494933762221975162677812035019715294977756459314237100818234626441377137937285068647585653244917997341212887911357967166879793471790864520280441058390593745668811359864850242821065523322410566548365886890140195520857781787178302136002726236645454836699153136073481449111796834935306449798142979006616892470620262038438286970131932474536254921498334753425716708922537827408559608500613442661523592283084976228063545070969808170064878854871346236067296644396327361331029626708473357645962856203874053786914359070586096439989431121817609299881643473042292484237985379853851413392665365252032079253462807796275281980805616662959632843286625681116820471309293429248561617252743983122721439670875977634711311637308739533709036124334919172234075752798472931332953247163562712917491065183779572571562186078797486348197498593517527579844475669712509804611075630220878348557685909405588349865107009814684385367361751971944522018251793394262140060455408413576342858787599808346203945840715807638098007465478115821157946065555480477563318084188536317079784627580088297260250980006628273309715402453250739400366774445307749852566912726378925919754901790243999545800762112253112923092995206036566739360080670511642196857488114068891169750755847738199925173239743982857767250896936458362692128304107430483516871289058680915494552648684255611615953468079476764965061490873063698588876298271591597800715170706359482319157946198560798473161642095835561740600487104074247676709094060409354968928919748292062429190020683099261595363813003855238484625004978679749212600797963442792449307384327347965784627459100876096432975261322106894666891062781003838830197607854762290334650977168164087061698394651055014108419081979821230363709919678369945856382269232384721534213508333512144942405836916402171520042481076922765010566741659598376205616322387493003933855453388710466546201696522627704704932324874982252071013780740037009089289363130583818203450805661877323974322602346951840499865105643294333334582378493745270494198353302170995050027185772103649533419660527396980595089690174363177460109391001509611056626923390259913083275048676422366465218528684491774417133601054913605559592224671920191273575435213607789278811123196775917832075664661158233345580752348019780394901166514574388520041806682048495462790714525898384767379489214677785589781089933691240204758090931628523228575824488604936603852805817799436287608786576044062812310777425473307884012217504334268166479784764026249273472659461454522496334563719746261181131158929751497707210541661814378755899149121542963302240196827428614747541513182798210927562597341270171057094923968402083751639406683912114041278518808039440376804766483435590526134857200250680568988963312558629925525487329251675621428582126308279293936401305272800979144776492711425322330893938567582929211464735277500256490169253971821742040679067110944278050195380583482620706577131547969114264736766953032796916860676842617101054576571072556965556290607332897850226870152357341854350388587741629224120652018883779703588160096360022513796464265878982628285773156994541840373379119389217109590387604446434243378675988418604258371805801687612293954121637482351676176533512917978549623614158680749143769290797779280065417280534032962253646521553812214329811827918694125368797611938300708448258947685906409941081827485499895497702747547193853527744266408784354551428485666674816176405117329937503198694065499073402553037243677107794756187556803677720321013113319063371300205295619040158413493808472574004085761224519830180319487835898139127947505810930535340834555025086996946525128114086556770189135713265439956236817769775698690650250899592438619247621388396237823257585825882027012764943728272618979767320998470671524588660803929815422825007385357806572294836902513573685363581372449742403910742995162425577100041957979231424397165526848783802877700818643190629392192485157755608135457139381797430213629069895385117893333837320894356565861982237213238721016870965535024813597719510869376950507784159427350305601932354441152407265948283321188087499699993459794599821292164526917662978441336200173786589362751640923583760214414365619891597169255097515082589693390312097780707859227969791086019423143668390298901017974713177580168698174116145677963217946794824682563749186372113228255625014630436623361912580663680973287656552457072360133704405646595877456282264834205534295426908151731259530083150633944514350865799795150767898074903010450690735757343227694755626501023470669201223163844329894533258158049381639154829534201815393482512053283489789354859884827477091014265038517058087405765514064359252379358614337506922163756225412556422792227374914418305927304827560527829122628368628875759549846830361910307857966057240615354951573276830044380106784441863464038499855096908657744372588147546442575216499089085444860125353917081499426209369938936211605974609914637016773404054574453986692329001881562183063775538914559595487633073539024707378335783990077399154870091235551911020412017184868138930480238267778571909928777473835342793639740500198846159455504311262873697240805269204830375542488015161782097456371987866400164166210665807787772488800892194016433688334839655484735171345745116949415107439134344081537065614793020905624205973884019408547576045957193061996784555358825444795253782327747849634130092444478456192475193970609822173564056098718592330576865148824089424905350494916883798719368174946011309267012434715831135778857608716725183971543550857291164542159335174473998592598812171761916958315982482808839640657829070952343259192727708230076856739315888936014581015196821057765696408270858287168289838083826776644112064517506422737814714689307942404934682278959155048589305646881118871659346150596984806401834903997343140895092674873076679559230602702653530091050903081715778776863705402632788718520303469166350869570226698791953759081526780664766319047584901568180557584076534567932565688315939453976219783338629098577195063149423947490202384602833412526322481434701106536121445204578682592085084745229857364083332875946513039156851644135691921576942986764766249844318516325902343765293882622308396319026764368102683112341859277292198167886594866786503940745551019948469967026101482024150496438137876833071631287617675859444354319570730020815812579668117360558193164539895507164932482704448657278131755293180972751488400504513727298167837152878597380537755113676995128843628218977232326470321328151950617777036279989542708539008540174710730363869903940791106192598838253680952373846797879830136169905488341392367290845712656958143381485418508234608668284782996752022805818173136998926193781715509547884559264492308140794824300246413043356399873966330377098413804661742565673473724904536868486717312147388720514561340850038177469066466349018297144104606075423675473136894385288434667018135889879964350129131111600552303914534237069545741922812247472458324930914162455678952231527429669404865939394333526262312859680813145797668043531554423143712356403153497454077686163612656591310205742411852993291749502553475954073769446429291895939953431595334480585819948632609782563240545531630586777367039300346456500631921276419817148256830526818438961474740604265509817673857852609928898747569801246836500944499842074214600704663398859432546934069156809431881198869494905366277448043001415308578071044373656932113024008779633078403880473265106017529584714599483045807531643728316642620594802167189267856136367112241726553474402782118303750060612243923225407628694159455394706168129700608446543712474892957202315950152219044781636156862842301089356084515058803602153747645730197937609162115126127919470778200816245163131418808040045573296966243570052878912933510413274563954620222745774478166851450552599518957936685496281788607046228130840723920948697603440352801430355000624121007825789596945772942782190398883296953446589221287610081113156615363838799853000160716015974704902573193689209491744615502084037426642546410672630020898692141108931069047245623806536148487618796117118845983249148629477731983399933864760137831161151436758868556890342411127462791341110819356037001837782092360699324856345561675706506014123396121800195036577384841463217313264259012344158676031636289687796868146542048876922755002850399043935818561804074579067066489075643404230945235446750879309583121902346408552677435351892844314446695367880999779121652150919266930727894862667211674873879737575331515753609622279420860452114151456895554947171434929648516568447884725564839176627737468776683154913904314041514768957688372582069838558183961727502390655856913671239390622998457529642448990077432402628754522089691625102877341143036054735719948192601395291391908887059486981933216413322574984175070562387319555616664441344528481333092947527381388250695021801642390161449970600637578764839664419806619955406903067674237405427990050255375320396773251573475047128993184455941953083132920944643437086028089080423272690186588683184270460845396767890447435749731476641219200627610501781375381979784093896520916662896894782099528267290816184281985339197781767520764003866976574777531742076667150324799273855625418895166032917731837924857474843838125977896208828287825080253238586977498248043024827036704090031293183742509691507664363157836540637208186272555980025013508381565668594620811548511119251989786599215102141187146257763771531318097373109216644517799696876638698314103192633258100602718950873882676804488176070521328237559847555602843753374248961685706612451020394813709920553372159359813269972216592620947540338264152511330043887438951795890542612535083201041073864325008237368560977909522680821256358659138126951655340689233604522231956319035267198696831856238155275877451565684388987728729323325108641095226632180144946237585395921114090316519935148217347757282618184564192206059554168267553982184826823998852593670261495551550190172539784074250781944445548213515571310152522491719432067165691594789626745487990836268011707401378899775218028923782932205360387685871050201280838331070062050092501892948720516487272804229354380096669781602272387003144479520864047107596057877542574366693910421219124680810772835205979183386733891498812569319881360973772977004893363839491521992413534875857647547270233416872444411896301701138027441849592102493437145901397603796064390914323496773589765936228678546579707928621108536299019901657954023818429616082202291784526280463824832998861836817691798081734509508507957881455611255900290228172203712928503793222111706144404244216520623794060791760583998368238399119944527225480321931055508646747006515854796339003146546364303486147682074924493507079252075515615928368382508328906548901445045152916269224865532133476312519322316290535271767195675433510588999153978474854263716861853560773723556765278535102106522430025628990045777931624831243818769528102301953541416207077497391863695264287590518994114544327455203522583339062760198667689029848704488072162356164221928153019495742960745574545284925316261171746367573080548382301065489336394958736983333535983191061242140683431799512977813974464591425634140494624957711773592909424980534713340254320339349850069770882633204113552242061727644226518204438509914961128868816632817944061434833253722079465395223936740467092527487063762717427148329745625133075397144533272467808784379183640224829401381198099726321535164257960192144955266874314585560744375817860349037483810839258687235302203772609459243246258107386657200691890142347948683614000754212600148843145317676185360756167353084742772919299749927198732867096587441802016301687926419226350321238196406667631630993424137032562068236664244533195378676185111674722834624844076715858623586254133545080519167046404143616369554223156394774671416053998806856797421501703932085972818110362860125210764459229999455720881925378123823375173387103744331876877882704721249970042358475481212010155914510335061917015518282274818822072539917461201663803094173199969762821715905615573689763593453702617333225272318266339049711865643297335003657760902169045358460123857881124277850223835849259992156106920383905033220108795521464302800541215941512731514907624821758151690696608441409104098551916711228905839513718786203126092736611945005249389630875431220366740504650328711368439696047214825392064380920072040436481548510985305875667759861725988776159721389053122015562013176182514946084459842008615502656331719921271368824342138485267272371796041940281032649981722351167955558075298784157706680347010206877655407804142076238937461732374661643582332645237070384486689390193828581710984364473065131713036604436394691561003795319899591052926160559150461552025034821559077433943876991421890658741964185532699939602948041212553126996108467325584215513100103498981163043728751806852491963743536831932322814658393318456364294390747822089357016531352429778770855664737849688212292503784090540941468309470437766068353806096025445025925172665452323532626460571880241531894602236120106966205151609198275528825073559306201386565936738327414359471978159907526302458786753671299371591336400732107073815105901628089571153984932320372570974718937592781158499531591168271642474229815947684871916575178993900989125490226570441274447204805069972531971952720483032035889306979381016885110547450863368121249805354560104800616967778638785454743418901620302591072720890298027876926914436608469563797507920930187107129390277485169472461873461126657363824791165995829440907409145022370965862366512369881628343647007712986913603502919738286652490256370222309732569551324346970684763733203221471163229154230338946538970298367366307839573017730158035368020539976559942821259628986091211157609234571021862034519433937739575131163847615658374046467949384933805323265054951377856290577336481663657611927529727841662943030840606782215060601638009349047354158835436942644128694699591561610570222205073966444111783293212867937682733750974873014486588750627637126277731914033852798093686577021985537118563645432673059758599515339718102563765009946221211906927231440733855173549252760596115354823542737816272708886500370420201670544706227321014122576437384702270740474360509973932290062586945191652217932765964798685988194021710369155392929693863069585604865694142986152365485413483088785898554972593191904120729344988579029223500244168454633496089485745747414265357082559802625871909536650554355072898095387522151094786342566477850551975506390662687626193932804651228648394707193477337972195912641502047709007663541255590754218578863006511882721629192106998794956926851378744876783233189414893910763718784112692300592469462188507138247676045503712550511624008451864370987553957256589008229114932302587368554258190458963933173836694428687268950577084060921425576449562710228723740986696181485563342119395184675014212281685198579383632703964873140285095791414923187064310792834919821728607670898988917507378343593584990679933914574898257049480487883542392051454343489336366301080118248613748982586590574121519344876477864462562265534065195828150974399183618619011094220648565190354912395310993149899939870534024291890340032548523022358316785741340223718140913130495182738680900004300324062451425458922686302575663577875172130343304016997228651605900524634122600893150427734666790470740782966006669367445443854799802723400300108012543681034929402844820424278863882275472854719407419576169120280153490049895091707308848411644236868582281038979490740399276926294377552929062126686793381450877340467928803206412792005500877986524397372660462944796511687743666231105789437224481287569676039306402259376603806673240297140289183532139303626170094408760825048472675544914045657277460155187733410220549408246713993310757261841258658659751642887146298325407863380076449653699021043741318422770807350689844030027326383992141521763132980657218622799279171070702651877439242525307116600752831971075078623763622449954112781357757905175215626826973143476476046341536484992666634982012771891050369021858404716756982812414723013058533842976363608564928348597925942270577987216771028803743336618623737396855120639657702208098638968869604124774832463252371949515593532380812969230841749178594607439422714335526407291506827028383570368556338620696451686511614824409548368954707466403827675091537481771103431486376969247114394484177255145108404605363502676716939253561188958129813935843314610111806639140428352138703948306442102276523529588820339509359256137119034620408688395738073263976284607607685810808831777168173886769928873961810051933375382919813229033885264613735631001078108272274734252886974062976865408517065395669420698168434347229243737301976168938549271656132252518137463638690995641010103556275340446567069514365895164173317644308974325268406921030487378029275678898770915190450000213907844119875574496513321735861595381038713398462452810305071627462695382421513848959002662120050473880114878872226830077321834333530123875763176207131134639769340513397376229391389064729879777165378809000053537724934104927648379806464952966595311143694001654371067789995855293692408977641831233242985885048129912429997879294504525826210353555405799474107656258899000388541879444238464855884962554910732272273441750666053418831284964119410633123594964415442651760624138375918764804228568563654232488255382104893710291319581284178966219983212929270967361502854539283283768518187305784155287020079481253841557247886783248909337914981890196206377852053537704002954038294312020208040706811640876143927080321965715376704664236151740925601017034547211029405202270926998190331972317753364522433151476482232021930901911301149239769901786569779698027490070936705262392649696266095475945320361521228397554147306325098771586373679957599333540188105140735924980203969254447721143457930133956960337126747878359227518365946353009798884636593722434789918519413040706550718818412860109112351115071153373938466990663113412980071335260509058304873400699129246586048247826519890616741554982107072726501958783993460393840524253054321201415919996036189120173301675731996244819094425879539831617467127342442799351119704503620690973249843658880317040138054703491427257170345062063312617998463750513414358942322532079670866703498344192830891372131754187354411531915230266688359364811263473102791029850100545765560795117517429411805694698184794159529625681072323801720361843959270239955200191632844012056460563795574245955240875988687652921563949008769011794263033538021500497251954374724350183449353115518517472382539643247706090101526240403245397739003003647488668749490147905366009664340560785944422426300210547780295589333858416627347236511085212958839456741218808181761724152424694502299290618357683825644959505595497163650393101679528290520607274877219977636002109609803606786194330733344555674930196351101082489573972815015690272179272377986204858648020781836380721038389066102498463521588367300996341442877647989558511988213816324917684217970091737071538323036381437027754544859362631403372696145790581001038649403577727071826408601853652210955704696589012028320681978748223065899119927838171906349273438112826929824365958828283996706245092292378661240500601176853962304815832089752099116658205262351704012010625543669507229707143740510953523663792576359481135028808781147753038273711641424773964523779396681580083330746308143944713520039277232950475938773623687070922147923039646188854432009057672567404996557127639446152537881575594535400662106748486209495051064885219432760029539260235482315488177698757992522720874801803138610097611275981299578515093630099358961458518897580388120643296927830757644941156904680885030863170270194754207513833009628839795593086686222534954539519043198588981206834384012638862583101867205140203625471528421488444017755933373989168716670444481971429158407798878966151454712303629819983371634057543842059828063976983620014000506511619209746033956096661491786800266556707127283512902475975110045191789905977169652207428033272829252933147926840616542287647280229920328163425487258455616030110252078612775474324217731436875350960879298132355248096486213602305839297676978310002343594090388479846214581293404234356635331857140167734091823076324880248314291067404645510204815927920322356665847680874061819764764143755786583418089943884942437197316916489952718160517108720531353224378960628998382999794523342790296618192798738542491773196605746016273451448087076755452506102545788668371735743825148152913368326783332658197425184490382250690110683341124375712848969697678657929579953377083285031682073546632243506445443895927110607907930219642481512544601698736598929051851411139161101019276806448871517770064752557791951882155370473335333645517730499152471192311074366073094903206929366239930093007107461185439263962708170028413186429834078274620731142752977206402944526231054007119074907109811708824498487832905154269577056280238853891211236819433745642008744735203362759600671662101117262651152630553309759388861299406730572847413653625415225776573325158615307615135785358499930742349064913898199758965656487073748902501249722577958404757073937972999698575819180927513894410282945948923822140570693046160451851144473619500874464667886917130134015684159382936493716171485943145244129244402458461580124728931069414686399650577814985229039538711812617111373076300566789366105321273273482100548920677128187183455388509625758426515828509158930659934769534667993021369679280639138436305572353623706832342509708693694895151101337059894973485601194064492319680631605324775627024729294570436580287697153796248445431442376147676490691539033312957383269077077609593399273366868538999240754979027647979285266953573645842239533190969840304741015872125969116713363811252982070186324668265645411883886541627214064736022020973757817377714375121183812708783151653575717068426634324947632576192439946189773829403099280158563994556914931029685347995894342468356359943049173234903127104157357670688675170880639606120126268483243512729056957940657754262725530340583308011774539474342227511552119940715425270731067864738272204964741474005616740858485662371057197679407236356928761479107246427362504585886890220304496583182457502167767004592208595697241251627233567286277218506797541693193095807785131945825021470682115061215947656473752025459506721219874375531717398578630357870815419970203506669591701807696757326827239655268880098698198989772483175262554587828210847447483805526097312109383073254616684218636020188438592827669234879071255141811090142074693198203877966420716446602482749031798325392141201533860100509874827243094294051191390883907206858386366671220953568157735280308192846256060238751165295176623342938651680352854581244721462195314641218504675862903120902525320173735940781023082098569347621859284830721419716462030864977310255041768346796353023567432026873961257088330328203922896946158841564327163100493484745703404310511147918792897552670390637533395480571730580052103004297334271038456961239298695489002226249779193411272426119869130685826718508636299896951724624552933042633236420910669034975717075932502288981205642134413454213688000886305776547433003096666536652762043716753676451063112597042185655684441124896841484382039173399290489952958980602489960610084009040120672138201253859593746402109199890358816125722979727152881942739385775528746586553298857282255109794619320031033590839447538150041241168003660503679188040223952145116376904179228671248537119774828108784672200789151173591472597081787536700094610083652789910261543063614450035054312674500913048575751033426547270519850953665181914137769744375791641570800233275205596698469540764996131894008577782958292988304116023500266868362517803298638416589744260412416303758440969485366809431379213753605956562715728676105112924827829508337071628863236019683127145138063166507588094427347062975332625952870608280483142487219634172479661258823163346297046436873274306316536610911666540535131360846981397064570895407588777375800148689493834349826306169746144481445850113730098647574628030422986837339218291956892185402573185301379797582213863419210337160673338315655533526172147168693657458132079219605039484531208457392783369663963723550075669032175674249966235552635787635086166286659015064973127679082204029716404530791874249886370392888724223245584217875054641666555078198034822985383016449881492828490922614704506812143224907922996018077681721012724331585169051687414783736994388142328946179710016984137567771131593289325622733095560000700324933800846085891370282173041796625682529243360296076587057755691442214138727306292891104457066203726583797058193282647550455281128313538807254385469030036982650048303641361246491375403816361306490972735397275422514487025033073600275019135708622457706731801779863110930361977140369839732590062683366982009393710537612933788369842429922719420401592255202378569421310738121669453683674853227252954700424536919475626801560731871671299076029059462024499007284998467234003598170493016432005229103394057002748804994444622008583397265014806759923938554285526396552594309292785609713701474609223830118280571489936401110953483932310412727653753028849642181658469986539791294046212222956418629215240858769683540017100900883627962791196307320020302866779639091082725739486695306971896483225586413257923214946095691231384974144656553157894739315484278084703906891379307748324193292228156748643704537900356466249106732280021151418264889123890251706298124944615555015901908758738082889486599346322602272123803773393156990883211342514591576363829851378718981507776832704684963639931257492968774815895981039806886883291333279620742975096161248085232629587778719096823797586412506626285462010458157549351878690376913564322737231820573295376101714666320184032779985723423275633039960271625283379530208691158236037265748277150477866232457092567439080468296638760948592300330374402759256627551678021961072610528214058269291964259018186719003388350911437054734525342431956088390705610580320107808369772611975397207218952062262352333643142235186901662367870273288269612036912252588597046396202259122696870807757857021123841070740913337348954257299424625828826852896880052114573944539249065195243854650626353649038145989949850234368346583956619645446729959986004091570574095940602590490356691010737345855224103633498346241626567119321699256812190286338503526697387086870701172107256392721847610598944726659023152638280277491296288835472195860459656565430529733290822245458541364406703914270245576135297949684652342847117119523106094372148531494750549834674438684835758284444308155589980999732798257386667248452071545224021667628515617057426155561432273869275552513129038465569889949694647805502670942842490302580686519006704160748027248158235649601271320324849350984045581653179548786160521489535658844262466512559745157453876071237937631906960534999034037154834414142933966989501329796438649622531990030846512609032885173013894515803844302967154025654863414786180431784761961901896408912852096950641257457665011188161442982564243500819278419085772351231549280635762910070727019852678005926238252151980787420323606407611021429823890824913829693299707433140389576236447922920221422091780595882528962852158619026230575604197809891441599273790987958140169799715549127647836249773217926242049104940499175088028531510606783389145175814213070287511155008836149783208722745773061642612721994787437908065672520827746387412614949306961257221265653204841129184517677334274654226982273705664414971269067199856790066356058781414469477023609703483150979864031121038424213067365357895946257673929484143162860641729165691749933253597419562810025288463524448026431204229615395240762492344450962142571294781199894094812369612741675453121339384101875959857985764454464263057432439734957032110731700437472235811141062928250417638721408246998393313788684275518156983190983486381892345016361679828110896011406383695133062385527026155445771106294033458340187824898040871588054107261671417331675278960210847611734827321802096998994296799398047255058499950399277192413250916193973866322942120557160780194939399248109784102479361874933347277486927046822244960991028498956192435958645377396490619793791783191287067174820415326684871479395877023507104913528740394329498415139536845509514295097551487267212054664539308510104357942888639352348470234676575215499272888253086863154998428711388699016635246685729693541063107607363660326090908320556354432852074994671643535101511171630555045416936306406725932571099507687223313036045557765935300762285977538809653143859326278401698605575174474322173635924394383234975923363044721449838559401934155672385819109495856036272621503805408436024476305530421670518821937581449612441837347726531505091676759852260759248253262805961272207650617623314305508113541222827596412704715763011486031914241916557848461949498156096393809044542167118954886270057088852229966348199608053012333190221402902026885274651630750780165451277849956452629136823177925851886539025304728787252958754971517127178796689462434549663129291832978912686084312194015281182654302671965789351108364923976911165618084609070662529486652417460664602106086482547627855633870796664117688102176786435399275284727248747448442223085533826402474783301126710671235180673357935454540313166357324548304763890579790932773008842125223568360170934847018554160102055569476459802912402032909763121917684987588126548079698626044651952542798009924907837252167306512771789697671937849259188026653121304414987710024296934194172917972619410854321301708315000403779212563296447023722329133099327427954251051029048589206099751376700593626989856015992259952382984352701787160484119965866398047074354660727838134085772654575363363231607764895201106602371606045868203961513939181667443245514967068084368004918057875744515194574131590832428552748281157961897483155418651170647199838303519103068355195682842164826981388951260142454928592975785149456026431023253010900870618476794889097644693686098713033724070124390429272813720047233466090293506691765154461856860733234083782611876926189239150499823029874422149952578151698613000472869959251115364016742046328948789888827374062178045835465832200709411445723238156857123192803842514578189393321500309463159994016461676587830595613530844577915881722885525417576740130774693292104779673490073070953199919515691047808912066601630720919019062730558369527504921866142809952596747038586607715683610391558391884463205907111268138092363963226803601147460956173872792060830808498497841226002898929381886213029331012477288279547291549621249808452921086194569917861730380484106925839505703196653683641301156778370332432286055334599486243313447495862304862645539873949193490039674187089479008454859864139912860852672105168001582005389724775804943577692565502443570222478882831833396695710681991040926385786380597993822311911450773343192709507452821976972857674508546235867090707384148534124130903539579194924162630336162170261326096383505319398093183294777022449957787739669460157276969439103724025048451387310216957237712344493453121876224797068764374998885942101478867136996612553218305481066390634446987303188375592932682626439744592357026723695910147259108409592705502702315121184015470556151077844240064126268175760340224577581748013008970012360308240416175344996459602942253116700767976878214912275618656584444086770825087676673920918079173228462310200739440002596109773318601608490931433086786431579387674426339935381921620615239454617900306166573102316842535287034915943581778438489718990722890379550700633104139233828405759961946300586975928345327635208095768995017570194299408962451523737192390675453045979867112342801151218073800595297539942250832125727635779471765778557506648210450266788774172529937359998116392707157113619524974858100233716973021095828276821412915781149260464184298807683708868055160341467912065262045359002186911652210084425488062526843214623126248827882309419946581740224014598246844581011197104340271189027217915991915036579016628146042069129127368331162386306345649650897997516011899106417265589771825843074472967432780052800881983735311600180982396112822501497398878231489390338682415586379200073500141729976470988746344483988271533419153972542374209995561531932853554279073681281688311308075799970726070868138792156660541105927239088137344682362331478158711813698029641550006356171259039894817053132407730406162395899964451296999645484099265013081362975582496286177738965547830832134843073563575768561538418626948704309150709430445287176922971933203483080396216105195663163188402699817178783812390540815423005002274129235668321766220138286670625623821940796445770290725670506558721933475841416004767122209106432972313185725397416463403169127489977752526470190614563946322613091472014347233146234453685799318870891745951299667959555973835554984148011544318405325244456375249897769340787779539102692265467556228769449598047604698211667047213027792388438505591046068376848296618928227820680565243077437551629568862652476944597974071548441732548455606967434946276178923467805211058406586726073222159728679757038433506545800734625041478707654518928542695726027742541581057328870232021907262016898791008323163974869142896055585184243553815485581475914357358048114438181332554306704157084313494355799565038881169700910638635132761889878874640175178118903114929631020445304677359917100276407194762053419353356760821140221179589265293151015178988883719923163358161465137144400168501080312739003602287094728894615282856252426031679581179368899707495667667656816772014028747020557556567885690248853913406173437227666901202130770500275021841070031696119469824448945446290853928175081049400614910758005634679077788390981688585395041230006605469233997212375137502503173600007871951792044933835741947456810443336076065568013262176637333089367491711923999093288569284848272253276429198365139444635878500342656263151582832622363585075104211639412199325533526325645108487298020477134359588133069153408760452865397694908904201553980410966006130434193147084947197091714684266165997938313743790798553817076152980544514364318642638870254980036283781937166505591203232939470513752092867906479305756326393770845002980421389609685211017664173439551401973276526783821780869592680698988993875708927143821671781187807304861356938523641823024930262613004212995077588869900463658938178522676786311885246350828875469433461602992072345364992059731181599837416916383226985082101255385590541496364635707906033967453307753567307926332594995844187853240892214716459849637978720700297916357149345636376877134386910677550102649523377256452723937228965834582893802676300221397554298279751442846625009427811805910870954833349321329692685395815779650357684344112263465001842330040237998773331908836920218009715634811752616832058724943316988146380172388555483967287921473737473530407027036328216940294485668935356392536073662372902244763875612753737937928070336511273420167788279294024225117285480860460476885337259810679706016160555517129524018875586922424300138796614483321533014058036430884319534939284120154324241025879043256562938212585537565983100235477149643734769545507321001463622027476265935953068234191875333194890040452390294500463241453475586106935058784270444346454377486920596431123352592812277499473043810462482150319356358722312113817388182709553061636699226572941012171567718323409487274633952479006062064312456494774742456139039981280770237975293448694701010309847185526832857564771441354560563939304508137809118320015766349050788270306465091570246080446767683072800180879829624962834397130531389485481970782286019807399494078097835625214889131628763630661275840425196156471844083804473463293735164334871375826850452113147380780226361642124903916864888188927653588957179256562013267506452432820025538412626398702976019663774198747523139398153883860827267789002219122986287218797174817039062621252395197251539518425078424044045519952936651803718682361261272945034568489489496963666311128525077175848894364164133269947704064407433889312902978890679560959387883214232773308359533594830283969206845236549327833022185556930760145683476544407744316589460982907024233551831091695822461183326799584016361585142156104731364190652117048339743600694383308056802271419772401348821838862572281660447878973270789860068987969948485336659734433402123272299493733947303806262774092699130079943338302748923037859275434426695205539402437774000464609961613651439327125245329396017504000264979738060350290303532250404201939363049177070852928459581640747286759908085178306367282856940255805697018293650481855891701728437363668177317451430391887847572731668808394853538095564737761442059318925267336607631476827512897843319349676834453666712373943232392090143267846712674680087162002161881026071416998840855068473431101708710761752644612619723359952205191904835997979270561468621664642308263930676739711914567666898630827681438698114628561143942761891457675308623153000409750491297628925223666950853228195534752911673849696831872155064776762073712508317401734494833529950055664648805679252033840147972390320566219311213724218587213458530844894298214564411342161033297473814184364138279486622938598107267509821014384771438514468348642901513514697490533281008500525693017188663967484591606140782327271984241658579869275696310064535980915551935447743353640788216744174941760826553652216652337210246485728133239562827430402130849865075428814151231474758922489315854932966328053849408859947414375488869583031347747837601374453594451564997687065613887364711271700381131771140038113537840777665809386010380906470421466815988086316993348172290745357148117677276496453757780325872452133456551747273608323638252682548064600239715065475276423406269464710697799955351765121039608023360514965008677409599445966410485254132251729038607450529828323441926183143084885490244616948562809398715933143758566248415060764606267582184932441193625297330316522176499641722769653386554652174953063609624215008349583580417302000311994443290243743512856318268541020656396809132924217994560777903594039085697674778394750915219057976569404898551868648150326062747615914510900591656261588480312326632057760780010527982132458687333506467257432751238774565927639212612334596079089143331539949970385680626420220316065999009262540442068027670071400574888550081724481650965117446887549010848188793845408412887327899158806568217045944017332143219755020710795018696492963362503644826831334641380364501952776880271927846211004186565438291563230223475604957915564759013850508616374218616398939437611049774803726537923370397361505271714759998945092374591108063171449511292745439157508216618482360921657833311621315818134235767288860328081954619951605817464642577356103979051083546150234937220702693301735865259207021831822956820428243871880624367185037810814517296824211337001432497143335676127907289054749513923991822056359418400359307144620296730598710108883047831784036867207491891031476070806184054108324561553018777392254196878773316332805219832793796954445740181037124683062957119943287088194708271198997339160318022396354598958694641528385266355060149870362706081042563878210777328883844383127869700647849307214589617617449918154757227600656960143575502898293869012604808433883374411386331023832716832705957959061662224789934762014726778195470176189595532588256019518744223149163031030423054130978606063263391487066586652517715881804606109753503783808445370865052397934725073985876216700579175189035671911742085961158818663171059243735961936007824266248596261800913728260680820100925042156255856334378110713229789674692870460931640307139737031387693028176960736179305732296809541994506365203650070672347518023264733130178294489757593859135018700589547524573807298267508339209208020124255797941518011289646826439100697637001783897534803171393340001987987945222993391646576260249845518850104174174699661868991740462202826088404768824065754240580650394719456404319624611200840615310039507520482600288563262950014222740555756226144826926951926499583211945833817287166796583913850814541773998645244537472938192872469764167802923263225720546985998093629977217565196565406386693581172611836369327760603967225818966231306416367495917779843030466793465499100038774085082450132294522262682036592661409857799474342794119749245683904699105369558561124763938545871032187973241166813670741720044740801730246600292632077116290800305176415929200142382397886015922190305070482344217372814736060529771002642098876667195473843786266369413523613025254066588793166685561413580137843362066026792454280742610002811017807624640048496884117917399299160754739524586981481355042556221923910340923170476174157332754739629779666509356024382322530177882106078758204151686814427463912783433104992921141068923837165717417055315105668075659410026928905126321394045237653968918800055789311661498711920552004734685148394222624163063239689551815364952137795505098565605010815756182588128590256555779558362185459361134029972986286640881600171746236747115818512862038745798241233018341931602810544539938545229215167128933990985634450077764682118419719536155389131793602687597233482155269830950455308731457462857476617133236011534971554314293730542051928521023728779513167423328304416816889997039826283870792348390301950676536581733085085504833391343132349159606202140232759806925306957802405548431271908902323793247771081582146625063278331230671616963070623089113196983080621006745032118558898760486172071448002793996032838897428832709691038954683683950240188827909811236010604745526606468314318524112080661630143142196010297382168977140815572402898155199591298045485073190190988598141591253368380161324294517302673470144086739889533946595903342354758653956136420700340612630923686765442950365007301544499988673310335648211226764749463127985600786891727074308905577906596717286204413963949026941989621764856564850353292660316703517504170901719823455042895816905768350900155012234559772288978486039357843111793208364579429805221183306135462301318748167576015270449729059840371131847967306089030748200495163966560448270971007616871408329393690142812394285240396290242554206971249655992958291368090267165006278349593144246465385208794022599903210521535901361876486010368311562947162559462058521409110086086659308258920166175228780234910428912025538456679634272820423517316378337635577881606221500389899939989402912532937989208513682491552338197591276197169688314813823101755525886648145415750262053116062725210189000921579027541599408987553149568410087324472183210949076211765952804595685065511649861730577337236518651272234410584723055933309094931873410818040094412491349001535716357492177750797948873430531373535823838664281770365347224411385524094085678518059204502101058760780172045863165550535652846869846595655069211037878135750066812473418287663937440314452301076803806613026664482985174695483007194549734040395483049310559763830371177308269942756720802790508976154740046542675908678923407601931016946900769732012994144340645355304540979054917102731283174785056570186363018989274586873560894692383303663334337332125103908218800740167717307181813237009818684130602465781313790218415334583354445845005232113863217455142824827472712684638819046087458111166135223450403813779480793969354826216791445544580198695625905352885008849884854677639251692875980303736573638937250470604041434874548370226117493207209777092572098780771095327527216122034935615318717260121640841288141355756361053816713087500885941314830493575377633005578867729407630568503006148500069882010658096459054069846147264198092335038291116719061218928185978900539723628558817879461019416248566692133556762164660780422818373919208368845332421744540265749857702730645407386906727417721696620812395453612328245000174724000920197630355349730932945636762240100586638107523418426277589855535529987817199401752855980015398479697610467338135181622986660468935187788389006150217610179965834446322243879140530009422557465830212622031930959830352528578806479204317999130917336490764356511322027635390240152442900295161627384404721197451019833434406938977886080284063787817295715884027138593708786889375536404601387147645755491147632827726160992781754627677217366719483145805755582916019638906128784434960474102411837350852507505694430805211914512109813830803136362126232592460396523335696356304409117731524974511647765461069479604271169134807654380402673055843447274444152337438740462375754335791410097738508196650045108328710936657906708611068354378923612168134018491702607348315487162276600827364207946680196042942785047522984806727485488615059150446128957645252830868573975047855387735348492622264331391680954158304595518462815879960907448240830854024131408551190009186506240737983143997092302767469089909780297134489518476152990137542215668337251672943907161510873127113274624343183577255391647985236712100252590263608599655977162927980154487698712502770940708681249179191976529659589804034781714030707542359892974368156459027751678731603643817433383888510775687830718012679754735209049175017650932393260707277296558111382256680083885256670390562543661037986447677228725987052224493639066619325545708418523940027026376950732761030410155438744157557691875903965515828606071167439063547293180278714539329344827907301142326440290608368702083072641904607723529646699023918237064068910836735066936554462970993182395304763049838918378870989116315962705112878583106662438083571605517442377360033851295220386115447506681511970924266000678661913436154597776127771384860446842819311119442190812827713502081895546645479452830760462579803618349199367550090470732207970739918413537321767161740842231740798979397689755323178626257010145083774569159351785809387140007746586509597972269536689865383430711956311570291738009307153701560197060253008441606853255746136804438518590670476001658312812310858957325478013163437236977804449964159506534448994052623956912040474983082188330656825471548193616247556957802311984284695949052111991733473429452489532608183470446728813085041257844821343185714226666789693430948030409785260076811327048155295587408924796374765147782163157285095489014327788997755494348253713217706848287200206287118223685235936388564950097612036172104900555104081369302392744622416077936182089099373009941862632198290145959067674741437124001698662739144626957567453390225773214480123510513220298419774959062091380606869664901256360165422634724193191956287082754190563782586484200922249775284149110326002543013567155553247641618931607584921335828691346479689052968866287900903619524655677366106012711571306421416745635939137723382617304627227549376314339750133898518010118829717015701306218101078469748950383658671490684896062702650845405553014338599215816579430877247824559010606750690936677182063931168836183476084537229065908714693143654796049292333604856395520254538420709073992954416889260017335344775844022047481089811024547687777332771980646902850760020244466086424786243397570060628214001698569650607112893201833824508383093140202192920161423255437442683803434899863484246747997967890972551864964455038424264363530260093169634773878648373334096195100275437785724580457406719108763023032922505511158884058990576493419588992746806028058629074905635249195127817588099242963940889563745341777036233304138359449745421896674002298704638767243182281382575529370104318252856033823803282633365284434603354027899263923450760224993452889103256929065272347828689396459676358250422626287257571539025483858573503777944842085688364538445447420407681131262524449638091417484367952106870717732724669028930042666777640331458409970075719867397002590233010416252012135750852518352932376003183705368571408732131987406776362481280528125501546907289517064408640262938006037223116475813296306017812275300203730527178385924916629443623918048636409518615096366295015983675418746211971886699357173106295013627212797269886365823410742591780119710413870354176654831556734805572771264459082170032461373624739667899333522780724032313317231752618695993941410702455538890142553819349993387534199296850377075561771470659463149852677269325385284175789563424482138369424775850455290832868965500902060054297260286706115993271755499762020967272583100091218949102786264240336687185273026659546736333566094110385631159791748314829603812002583578996775119531442147827612446641335512884033339192855071205173658794813267383017908425361858325060964593937492077260717135150447281011062175076227904381270754646802888915977425610333761526341336106556402316704437133447608841343607295471211534800006344538500219916187667067391465883571111244426745856443492211873682657674107704397226056498885330658880972302915489626630082246619757134495887794534660279082665468055170173969992971210163203576682535803264515494371526503215695589849490745353792421066563300154425414953641452411582052457875447419098244923989474980459317649998777888845076601509745640712007017586199047102391321885399566384121814391008866714474931942871423408043280723599780462571274345212282361592899963508557335901610658793698883497362414000633502318832243199735588801965582102919706312890662339567591709871530606125771334709008371797885080178483485752999611536458151773834055760048312035829073813592954468995976129779180287390574029626199242086682015351467052426549373075799607797379696439587958888144701873792380715143569834223009849286904393522539025678951195362993959539998861742084770833446670386470737739604715936444153507154271716939377927359887479459789857737024716500293705306223301448835347970970577750961443455150791120982591927789563138059220988102599407585439353199908493458528398908713222035487574475996440006390656878089280015090442552178227788683545916262193396576993806845333961365698119340529441548968472776477512802580587842371869159379836620492494958313859972797752965753767329372421992339954878700087160394843080935209030720466423047603098944419708822297733338049871931015491855075351513208490283513548094497489838350431524824774004754326055947965812462050563599189799571637413963532541125586764009602605445344884707580498503921706208969013887940115151177439756703346771899358002816490126510216692545104773449052270108350947599592253145892144165773868309460237455347978155577031306501155539030151922290248834602149739873815457628449875977341806976378440925544180096254544054297523505627962220895307542844577582234136305825960037911435611265118951127960712127496734715104755986082927508640008478351643638636740678104421905909288682083723496666747962086095710132635025638571720003758025477420383977483639078940543355583435258893257374039679070917703975068677775769041652974984961384101919029099533266194712266684357796214459579056155774159979592412786491882115312295462624527887671918515671677404559838487852428487603400947239536523403614053116694147322322769583410882253063808410438662053675019012695666764161651011870772032753520184313145570425179806326814804295734929168106548250084051375299239302096619731390941213310327112798974839066871549022748909454636977936108813833177031206922478907999343608855095074316782546280325877449260987792241066393223727815379070915153729555218322974848732430039102005153767950944663099499101902993064695019134104499344276889791763975438252315748521165393415939224320251658972806199631439791850573604281151795576749183494070236966115130894134773480919555910238162512591722171739152120195874622470271806602912110257241399526599291323572124657350667670737047499050408839292764372966302302185243838939263059764588513461603689978314385884220861362535938647980975247446445376979837574320848598382725260816481779851897701262697272784413837281327354647080841167826892718405726423940927091197219509375924902189757808610954421536475857676616850343339029814062843852363326794638141728533930743891765402748683862366684770928815917121514885939845561625691527078335075429348735820981435522371828753676663667919786436652977465711128289764621964057362113738759580547771792682574076534317345937442501825456844849895196780684025734526451908935108210844137339654126557136143056116943917710956497523380902238019529929702421550763705609725675369515651023700907536099081493347135131503134907294964023908792245525423635541104287349023799144972938484239601005988915319031591590702970561256493338886660186835211678326521644451907808382765798038702033114432534893370077177507269787642687743289178690845341630651571671258514238165963838206177612121219295662957104036131262086420746513378339211623000921827418094512771130189268604156387533824290798357689214893879710190252738939232171562926073037657710030913626604699120776635780417368248989949152610730399711831228013000749955660685745839505316623225197624409048044370151199042724444831443360720153793445718043368118293195402134601129222705417019595715682786079723931033243389070557807203486593551267673170812762551755537033957181454627641163732122113142381139760330042917457956489365426936609905546662526503839034029903061987527623879540256165215496456391979814268322674274217968714842632272169862300024521362981184913626479781524942497568602857757347418417697922602177339221681878652611018537405960806421535167353751669850295736014098394949421694042660890335101939502010624342815102447550948937140917097081924169288604335450856355105003395923269959279727972402689818762983667276663922145527774533542392296076806862587717643787263254020178127464700006638326166974472930134259039827722817619050101137229277006674417919526691711342185163440572000820759042526296272678964663351517998923638707718467911642725254039563859447876933458563904665418059130767959152196570284672140452991423940817931503676159084802988698582211641529435922918636969849814521319110103046805601335855302714444927443907134681649750689930712718773977269659402363173333008155458075872765067593694326775797826331484028188594659062347741995473756578382283519310599107121990707804852750296817579930341853264952358525335593560864660718008252116571731981727445486700490604380269466942339501338600111556911674436011263588172957050274481270403202138702354546169303383204885377528756046514794617929720715172262216052502221359877244644698291862938959983519323087023457753329555187936462674267665930853945283009318984241663155674490545444736906373643610068295896639454415304484759659523435093702047926175670798425105953799091128444425784710645534202817857014794108773236573388814535271819088075023618037705773275396723185297055584463263723114426571479184307036840397135052072253689336291771209980856176476898520630280478638249367617595143308612071729877626244072953919095241467364871497372226225550628937241262872184091516688875402549344120023147919513307586878840571531148217908087849585597209149496054200882096253642098091798144228246634807895699010232886410765680733408469909094754305259647888349212182952795840209817414115835539600560978683470561237249855862000686505668928055954632193333286013190917325527688567883348520172171906164881782005749399112909054709692721482513185324214691063424101918806389961749943442846782875433115497678411624903577166439315359673829262044935231618472211581178389985717038698091262413690585626398834284278273293215542071005413664490112176524439933346792241316272848534136378372295377509886892921526845293167193281753585632850489027167841927891053806013461381213216065782283376283207436027613418230358957438758824710024841385101469490581176260229031032372882483569866473905797321675403563992041759765941211608137411980659204345094294360308702608858004979601985083617075288432739931913773606073485625780525920353741468305890153511108114542593467440814420971301111401125852803629000862171937106612249382039743148832092387803807060396767360935163294387784032467280117049092809945392436482017183703697821225235333146538268882921451249402650021861131127738171934761529090572386828677558444829277233967963005034557240655085562705183010377624795410779788308585423419099760366730200216259916788360473318742571705426834351735021314697701724000917942654478235545583711553333679648529151815420399039969441962318728665199385460124995441131149187902711313161328851970953297780374493888008724117353627362274881115983137756073252083913611419539546642943386142972172999600633500807856240518867767702258327676847281345996041385459051251661138475065359908690322944158869083250581741920056137505063728740349691979082184361732648770213004633364606238844322627521540039231756671703936105475919888402898229823994990821957339911142607779929168867829824081178034923675920175911383669011249451292664020182027301468107176847121121724796764751546965317645794310066982597725009865384313147890943011746527783035474870019981603633206388471601004669426296675183785801149519475551019059497767399462639728235033127506258514023717652232889622413251974690158671533031487975736983579400202321255567343280492927978125442604220222072687330108618295975988150670492833365630272764635664172333054970145501355833242149764184157610707592451132966250513701331466108366022666987040535496357075051922172237156378866096014992978582457914951298623036454887655948576129420182720113952563630640812509169057670074499689622527857335897327339011201369894288264514628671495955128399286936031917678816719702179758757274346789719208321828168571906784104535502159743143017356911102829506950695847814300264440963811333776163722816766037964512173318331392294098849132593461259034627218235540765284660616039434311048623497071419506241708350413631334781842567405917894958156976415922362459031615117487794044802621607722529314379391654768790033607911015228603228195680672957209440628606254524288096028079925879272098541341076652872644015580154438309128705521925740072860299410596520682719780118492410543378991601383270185692963967658376600535147727856041102029328917423513110589982024011070250895132582061853790725087813479743292999125256097355228507721758169886046358960288133671689518175498508970708491363812619584736816167934074481102508862814173233638752311143693731900578188368885662081719504766954955737781898797333026694135506197663770618185777817207015691246865166060722017966078866900881358473984759876815622941075718258481075221894866391708606170359341193350194584250946803812750749503586463171398361756313651510974735099960978902737119738167275629463920994847490703475236976698187829250265750743927372348182049262324199379010511459203899660919884098514082144093215218934513110856054582273022157654605848220640808649473535926447596572328846525458448789485688800461063794949677778856369751788646986795676236120389869013938305021238373317251338273957950286282213369094713452373137087636986989108209581297056733082140685115992813671721146239365271927395057813421478360704586275527391468831662541583670441690022449861920230953230203283502311240765009009860484625234477475160828573757278108759982298735702735122667154885726339168214199860472859401169726212654423571113954188576462942398388511217978712311307619225690002115108318231413171702898699305042448782161345010691675815602905997117711868934588384160259229834575267102701566736076563918058809404317920213432193764062319302933662717952942219699362117173929021568496770842485008839903160353512962636217592667728312305920525829247826799290508761866833903482294052217572739220394035027803617982593995222467259516988581008258634097907464256155617388896119582296481764108825500447744056970214087601675295315994614812142978045439082842265941166324855179884693793910230628321503155427940287696771233858272834375088919435855584366433789173619144606587792919066876328536641599253444572949468220622932653060154163407342499866209508513789306015495359640112483427345130189630860736988529875513392189587692863898351607540130541601426076578038074325687742256362474278904012031003161812889675651064128621575276348050646589157871337597393469641833937268149295553235112272200153107646847568107406365232754334083283122548824487609348508676657148439879049410177417192197277150055580779453296744853223464796848426106538622973332749309673412935511307149902072268095316077093717080344007522712022723394144245512520475720484214437733654336445745262256695936460247785590307319845008275157336448527138874342646567080761044189429691288691768263264495635643128116684808363729742525806021447923385227628163503444884200970092483018492578884416617955630214362141074748773534268301525949165206561492424217588593366373997932636130653326797640521171993787308606539320154218423931530217022539059899135869140132387301509858192341017629321916074463362398975617021745249443173679302340063095454310277780629442372115342549156543483144242675458817540180068328645546215257588559423932728696963960008853815655411796237531784299802087967281733640801568324001747052085288184170800707832218574854616021501308533462173467776750212896777542707428897138728630441595724854603894137695675270340123015709011020776254960800017621645080497456713549005591069475896715585680242093345761873573260832766806132172395352926998251048311020049382088101397211370000351947372346395885255283360341977611807355817189654431476133290634273005458060553292817433002263028873452355994696217652695363054948816891373063810945642389394686821645807691578812782365016468669870676322019284986500559458531788359378267394315993111970760815665230971767804533075684419611367526222236814487285946145061495268680009319527658512045138896481073555699333816757989969031222670013093018889216701802063626952375360473990309252639868377457079175901902694199520062662008084614740163238456459424696283752293245801776779881048561587116753537759570010243875415818884148173975238908828620630086853366931478571551990402863769309912142930208938298824132722879974261630107078686738846896388783601084894515377889738090206200812286559287301102119560778998299995468151218701676387227492761554022799787646029430449799450349204883510741705986363665200392766637874004541144640727990256262805075066129054967011070520486814332082709309614194882733593449966151588069317281624181397488135791006618600456883616493605933793133255669475314946344805038163262309460049426314564454204344841407075063241516058424716016124319180602823853596283922196082107807495561633628551763105958928749461724977997389385809884490612121423609905686453286566274983529792651849755002458801194001007536265402303217752275416614406436684715886165442017460477307368131610579995640949092963115963781295382579904588391128979853926232945944727991474266245305828080595012489911469757375418205544253744265022747208174767361824699722701192594811425573020132085292580913911631975622915112804490689812154406170868469092278720329157490429636690038476862355782125856962734788825495170819231656619921219288258071782022236524135005661703921932485998954697098768498349755202818323126750311448595944646526013276325079871303708271032901328150974149817497734581382485405276427134736619630671094614355193325584338332705296032795794011790154752315614567224064919767453895633457863196424224746542152268503951550205930639519805127838471863416808597419140177860480432145826462688305336798084033175598005491972772904080602595149380320678253893455708803793041361510961026347182892633403540765951910259691613644217022462940559516638511604135367300524302402914395986937912328960017906735980355056988969486760514843755099567944265990325609374007643843258313420203693892999118912463073572148774508008848190540839654991566932627249169937577545761568912785492380763254316927918032447046749573993131760732861025703877284682706495147606222611664058935126051576314892133781060548767210510279788904995181670712029664472380492972817121027923075152106295013917789154519141967009558721751407692070801166475322818956832415855413898183270026169138584170910973218378173580293843098198601274708644554363415310901589735406196876116116318313862577656549550910567711176609825522177309545014174584943702215843645308266837142429639062477181119016698659469461312319166632709956841186127271508362091059678372715219332811102048191566353604708406485778528187143429525420256759473225361542035063270266444152090223805870813786534972257338755063827891571714251126958426773549760100962255913344656379419109370116375867163548899309339810479214791323885872767299906050243826613034752737436307760767329460061697929588053639551808901518984208013627825466079976458143376295309944235762199303127695733015300449244379381091689055965672864251531161622567917078901057191992701624523696313878947250281316755356171011829356571489216571782325262190294525089688814291336347418102665706020840676979941641933121109045429340847625202887278044845365807074122145621359702735888658850784980046702728842165799798254630111153565828596847177107262530564481778353328651887898679698708796382133194317916834325162592663357354940071410275320921601972663004212897389889452037453989499104606520518350389351339727264228886989146940794309154807215493104259023713575432223378263275994456122365482455501654283563569792915629210721163495759691066101334364036729721772533885855143781934766607694953887788225252044172969100596674399463471792328971969497083314655104302098212616162500517519999286716913663531379962236948276596373867764041941465486400352999511554234547390311320739444148772568013189716786891616107739554552930066486990614448609414247720277232879535837640597841571801070815206930376774366546437262268696993566884320164504377485309095535380709676954542353873547871066439545628636617899375982267593873036933162917872682509880856694318680123783402123293535249484166394406281957458952117508454425658827332331276240890100175427620556147994275875538916002890516543030229238434920489489434263857041711628248480186728348275906363330085309369687099171502121773982227247636814478158462537482775695015790369081813986593921181489335717624513406913835638099380609264727453954554650724277101133741582179637741069342360620783953301092026657728247879808785086528683722168984775052254791375680765043820616967361088585560307987770302750455281851063743652840293044371258062283995228022422956237065923332684207701655522143568204037523223817222870001620984696872397217648988365757384677385207814691014348372336869468055506339563000534829166757839691674530295997525062759184274327767308570207209633817308851423737382351428489748265292434607149920580704917723711137964849354176717671438794676623700721453959491134631468392836410664886038911974976476146951851914631527098198337900520529207544560009902347669363952298713226526271257943718967789074808702940202563128200262505441660836571759132977435121296486394655019775820880597634813796347724877217271051455044165596247575701544687003583419200243216833270989694047529513846042353463178653077154505542219785656799469246916354167932534868102695135460470480981808061243258272547801814513086188360741515801789341535779153457912920258316862279702151387720187068510667618162164411748078835338725356506575557822324993875798084558192881566318789286354404010732678250600466000392715901179659041943360756850793117887694263612078692153111729411840200002615731253267048215992639227153367869819336943528319841206245239116088328341778092045945743306254566473770875129251064338310890046300592504520866550590788531419974495894419429364666483160902889093501592368225723025554144015795610320151743724319924899861022357655683578387401832974247198819031358911718769626581376160105976484713830088505740505215135967348679210666869940715540198263761827728671635738043360254689967275891418640199804811578161917770979386311992312212294579667676282439151040245629962114112192158258506793074911008969043864748549972853324796199759470938363584335878906128893643109011970850545857880069229147595779832838216680109149999185534350008376724908682168601927458850662943651502202180128991997124133558056142371051757174360367969189337509749246801505565272498820814533724103805901031568286284707123331979717988947064518177141772192695501523316636372880314967413226695879719796283631243502792630934902584998996212200409391990300223825597808113088904276278067359773991920121480625151997466105429557965912098278060796914879195846851655496228513578953824678019938590572437622213172202163049307530114125257832032826599911879116475144856062846208589274937519583853242462527084086165130106503005633827948124184718445899789538470786452828117969754981981302198618332459483825071349776994635669420716452478128896792602132965063299746122086071440923242802622096850081367117528041101119142751099796167840273256971866794177761159687705131404268718932773681021951480057772597767627272559604921225686323877749374780876938374259556905936270278285204869142100571805763917279561430286198184731259788028730720501849439446616852065532954831664880644459809882231857913225947173785453924963607876857444100881405678427038576345691534139621532932739322018294742327733816395640396096377345747193701028349121547955691247753193974111661828511573190570273590089519613285241017216068941636425385792711682747425121842285108681522994075455584616478459384741703138936016055382473854384184767068852250894619500452940467653556427017425833535972416002900927023714263220712338827812122332445325696079304968215324022609973448946646198216253307200604937407723613379055978068772739312290426673244204291940982450883053387206636508310828115808603298231928249424988525940197006788700030699602012678508530366419727552152762655220886599456276809227091029184002144670346608904452539391019808634419056241739125590488662617999206084870081836055919009130074758894557643511927818169331388110840581671214255823159117879932650734480802991885040270492471747366270573675152246041321166173812092636104674815987614457976792052222746303504606668969836853834437570674995905937000857931428992280272088431362645149698490851145105327425515427916681613624065361337767146305878715751043376663797890270831335171919264617479669250725867387192102242877933219759589231023056983180459055012054995777022561066469664063389780835408645831074005335367796729967880487589307940484158075748183516959971136211496885585423392631971190960065401078112305637455917100895370432367976896807144131589261474931388968636162786739550481300096297486864078497146942441496353606103909646339460524582668107585340014999453248399301826317629078004588636036635932371481339812009053091028198926564914127315352547097937306372054461750471189208335497585223249810217853004081219036215661396378961175531147064144489576601183642920361760742599489922677913278899446265603417365240239316689392037075452097147263063022152882841571271605596531786810300684090488431533912118589786840378783977443271629792260470531579432544500487046716495874769989737390277656433381631879519503607443410735780832974629728100844579765522938218443760037405203436809763798002057382295948826447409679445536050590911900589249397927631999486268026103638111182292483263953881112224140765923554101432439513349737194196291795762870588334374484522879659601205343966057513427327286980692487870981521095759936886379234786833315494756501374007842673055275402603734815697653335067612700385958756226743621099277790867211428702373807690381379855254744902275294366257774806377659124239998766875595805880537012719181910228130370836331524957248717760977991152888229891664078839858580500445085598076813688631255919755094640567156776451722765507417689113522237488411751573719235657427479259929019160420227686587433882589725779015524940343692966303793082341727354602596684715844846856048795930070075769282141820318652090901196885722752969369555874051306325696059825212802267828277433785594314284514365897895275629283908445119742358136637363731370455617315091918275318996257196235192118697317368136148609721665158255880155076434888984942390487422630757192319971201684530278819179191794715815196229700769356881159381322945805052837023729566328585293676298641683210809182801790720833540265932819641838051365315140680079209357025584406840309857624343376442318075886506047782787444056652793128692952413061381047961656132059974032064643532350425044345631906578863391362757325647975099880882518393709618986077895967507469754638720688453699142266110238500093056422976953078863780481410626162705955526622591087427958109705098653629518791032540274776020061259955750782418248095328464157924892994173921053127484647948660938230313769716021227466411815663136728295038650518940229245933566861842612447502483868151823440843294897651670609712971488665165666661634851560083780853416172920303138092324769299981336085885835131482660005075083114773753924380442018815224985655554777315524101253601610400497029674749129394350707444914832840015915891380832181811172638589562524820244493929257007678927056559620143907066802866328527327915752172848502610049383472886526500358990761744193454738126369618386217729099080256190760392217924164401902032109054297481161620915622144094563997514990710005000741049138820972052624929075270944218510694204976116982033075143583514962176846653845563568904270614322858634781339090960934794250122683830118155305449566213294456819757950205820814687784792643725326883248296903080088711196296224792791788240004415066049478220860723496798223686459764436035762357098701608144881473292022465942634085108226699909104937481090801420761169458654809422081229417131087849789121363727722557909686207511815905312040413710708146708095431261665856081702109923186377173300169069582382780652379078588516608831933259057018358521510455234441994849045289148684114015707221131559269808854364264208668843323737896168502189977349715370568991967703503892959455909783239553831154439548573477748787443648432754356858390868091283358637055751080248903556943062564781815148316907289048512463824532367742886315124950955739517642738808530248631443163665790471978953531043718441803114241082069561734155855852810363902340286638158276942517577267363171685111500205258128372063068683369888663575568779730614698409210641940467821696563154141120148785638806786201648042620709154151026483419330976054173266333210139796827870877207908341565059626173353164945039457933148970247246677587281498567853319119268489384515214562835132767926970861369082088286702135489894294249111731077359206052472480836696315574066632308477326670541964151439683090325567787874822124326810822012403248196889968100354733527183483000795995397787279200025355815396040214509684968133289091925209219584814513774393441431619637730529322425667387978214537543604101623512471573696195752310230572126543000655991345382770454604059828173624946898205959473000932582413596279682082203378857792386492008193488356881401005794251229922262397195920278737961268687768103054765998873010666400747923803794734268397410197173724846803379475124494194722464798940694717057796636990906692822160525982125774518158994223498405732833706425390321205769779545214772333642122387886789629734634379519820908672443785662760416401626263207424112409757070801565016559830203825308016002203406813406934702383247320632597802114957643275166650656056040827079036891601051952915716031636213077451041312774599119926558382615959089296506006174067113778614479353257156869878165621499234837608313531300041108523894026084809236514917213654420969953565578730449981535328432358239289343486986986659658554474157885319760070539929973863641813592136279007073085506204952109278589496538244472198121339335328497888375106139357713202082097361083889802266704904380350642711238244334052920000051535721568711687839219563875127455106276139126045116777349021607665585587968184394264093667815934434115956001742606289420624783734403473948742322344908049111682362052298498824149966461218496582658094243157953843959804674399140176969231156960696605664513759692267140393811576466269226871010926536497620833393727377678999961211181392469039022239235031191868088566788913657645056093703629558012295258138070381506764750087144160668606868051056144630215353295490574584835231143362189489728675390203825000964729482022864423825659186318159153826906535554203886256941703232399584096378829085300392845814826325863669570005987647063056779347113719309419068674160384739767169173688367884165452338167852670259577670209887463286448598883814792564790224387905000136965598648406410741942507802038876220017115449052999230993865144700100354155023995839456287140477323694420656830424041128211734134633179835710771504832390214429047751112151611199282987357104691414326055723370537175287412777857819838658896051812280244433610728408466693126350527861616910126893575124381934212977867156351854045875221212351398841015980501855447417826651101202732132241274380936165819122784855922320209476417356842668441619703514372879732999157375437443908552308605415886869335849874528551872783584249597159026410222874163209586166928487594183411309625527026141989963776862471857116381870764914395327964426687135596384600548482204349709316508700324577310050605244892702710696312683454186810722940267996008516282625844069465317162969671985449351719158207024426778357805017043318175692811963991062959645648761981945135717252018279180817726405805197421993264374594999512750369961372499756215353716720099908273399614344834870112008138130564908956804420073655646953537244377091761812579552367095289186299268584029622761825916495608680578625115029064291307120381479243735569540489307821805592198473741320429303601705832507652991670036732962004825348008216435798992122229850867013216211658651126941985246814852499839392734862806685782823497578564019788994623319248677439260993313527648995466013956773690260046263982057678741864139770015533904624629759259979095871387259464583484820818358532497616018944291833996366541759764370997187177532148868940234904357831455674112897098471249430339452935123817162819015266233952596224684337587857453858503402136868988812975916787577786343714417783286119216905215520125980095784646936615660691417415294525461307380849924511574595874259099027792736184893681125762500592289948443406811111019361699713130546060445199608815873176591685089628117190552841646349023906575532097096568796985084140494264171277528595788440404903789234737171398842948404810682126564861566529764093860722726251418855253372626088141012356927549850627682195785390193035830775935461120505482309387747907560135346905621413960835512502050644023983854368485859015532448786084185980368201738914245949398193406698610733623611214322888311508052058892703845571532725883343961531266413400331263729078158725238540506958529755456207299106149550773729903838686911306843105388136830450536767892480407470459096917202802814753688879740215486007780968659764598805588044909599134987802227717267679699585191151086232078676685064003912466267616211777932874718641321498527652561783368756239199563830405532832332425524598670856566054239248352807842775083203273878895552236857936694160403069929975539594191994280046210705693219015551620904801031351647878707769617049235889429551079460137182448768314474154313803340816671148473448437297293191712121640027844659077953178092284999445953260828464357250113731433765104665906285932147178353690577051513428445702269502500627811845506938862887039798586044303038685127496154443630486473525560004917665697290355508632064953552789248574708291794749677685723711078124381661948882550946665375363585629645305640315110967997304294716228238046510553270509716289606464935669733740318100201611404711106448919378908612390982579093264210923336624732802197247367734996395177207279858437629572056788290533171915592916412612494559863520821872690757450752921171137091095986309892205639141713512786946770780488488970556705036474926192848013804402196459493597545291951839757038190546000221724287020067401315816107273356694332579237708353272045026854986892793436991479694970902127124620370796838036231735999650390478747119701195486560886504758691005680643176783404509782340483039283159771462282990217420116431036649164247294903433530135072158311211036650889155552625266948494406048230322657787141945201429460760595501893857767405411748024308307219499336284576951090329100580454345530532086733271631555695959771747745554947703851112557670135237580150417535802860620634275836515952046484157113351713576514099700648577222154865395182862426689649300679649316237677622920397143395089651785989160560053648378931078341543729313210058197507778098422683867429195812191154230262986530628191735233960789935689714242873228389893323134956869528015859435036024121652014777015091840725962858719644867652228938398426247128231207788919194913104700492568309318574082963940975146174164896165902993192430173141220181848136931130585505815236545354222052390316138806370201541595075266487238966958300901555641018326818355410987934091611841157749324225334376916840721194426491492992622636056002454243261004607769514388418459814070600511559201379506512989392658630447751281145281557705990008756252801638079658188345975456966128133327482213989197607598545628198323524900669756125354974061536567163038368876813898247562499458807323518139240227036145822674965518100193929292785263207790196165519392283906638611438482611380872193124384772701134754738860700568896726600007038888067622460853201803648254473740017144062706409737897202374312879050070435118148971737268965174366727103725898457145800012011226006376397759473839139163032307854066017550607111780328581051859278242239125497894851190331632163046149985365049637651748053337886954635977764806059199687678865690110259811050233252136616968105650074593765393806604787408524296417875817462179930505203574931281578620700683973730379862173577409108641898704449119026785316791468586443959481559774241386617253420176241138235866202805285274453203707988656685718442249344923780303974674118760964374390877197387912543547239979561688256710070997769501257712863015106049758064737427691838919244962048070460147471351755044450118188375854011651517368300846999175435504732075982338386322982192377322360656417133414344788963016277135705461601264662716008315571591195001966734949324115420004873020332527488441711411126483064015281028564199612243832906938461228664157998287708061430152251902621029203265877386724495867504107047772441552457218794572286135398164994717371323615604543724736748317114608772974216668583069774928023202837921857044542318117233852931730987450015088543600574882252422533168626162315122064925798871211248269242626785329063441097235246816721006257897387947727836750801408846776391890314936288361105901663567342210650844598286763095452916934749348567287407227583375131513584071784783605004251511877086033768248576663877007526954062030495884861390882968943917206120242471456303257187988333333848070413782229631163817565945602753733600041237630252731442608174919194223318357258543057531946496202824554969486497509682989109332629772550159863765045342954909387642371255648290485368125005232732961328173088616467418326361097371334901192435017333399010906267271543345973002335622373252081936848253760969373443572050994229317726670384789763735875588017037621843455242173318369854481409115313018055485021451875993192056479607818288915520082970606524889597799685374176970005180951011738441477385418158790987234585238357453346863280718514769341935880220773977251263782494868557925078196910531779533284261046831201069572520800962849474658715695276088255816749675628502471685922593178226783882402413146996773942685744598564373282148071264734790408890091465363810643128582626535597497188392920779030131778564585465902116859921995987746738661459489801769399577549545658270442501814985316333388546501357055472373850533783306685554158312438731133884775326548400128107967380913210180708799444021917794340115494451471931935264089497020124403983379480607689948955978359173272170385660862889300276656669390197635979635935326685241668785431197333995286823538941097811443422276723589813257449559304922730372722963611429273699723489344795806907453460241443879146127923232419646994550743100535755173313332572054780401731586875810085324517761284528675527561210283514500206277729506861979099806652996159745794640701557845898951511132398573053407063307140188626926444488940531154474668073039470011577895272872041970324219069286681508822494272814086957188713558237741556131890401215819918317866208244507241342093132992502381491077100187007284654889837998669913471060557942163974949827739304993700397343739155492817868148201078341432842450786323521501691911825722660095407016640976018969480149153456555478991639899635135998401362637035456964455567402257058070602038824597849638143522825092357184038130430215801390312476465919398818597107409063058833429310491787671701195889279123078518006253837291087850246630080999576256215459388398542896893429354933452619037760603967133917360205150339894093242968175233662045478013213173175600267837601616529404388031623214563135156357382181790394740277317262272712341598368401003232187653404751663708093066236771910562501813649478449198400499533057363530657930082107206535365836196867566693216841100150978985520664493356607068146186292945258432315815202681018970714630370585268708089323381389287093493778989906605877468807362082550135966264587676885483589435434180702465581845043061457019778886269669554875546001236159668314972748880793822981515602453169426774475730332471302516696429100872653170610371417316359647414735705115043029400688249949141637014848401948072137494143871061961366827599509427061664954435361447343617273901551856909461080438287532696514616150349652320933021411750233092108585695079663612071217243766917561010398508779217269434211330884180135858940980439661909850154280271228286552582474061089052119518167083519240772295443638530059709935743821832243442100821556158839650272381474497825720516933918582926682230786054424743084631476714360233479973118193116402655963001423554715845129422210669117258893394334872597767444753233059467535071278694576544900767201809639837081820712520506426368476699735921292084204749745008989911465724492400430223879558647205537657368394932810625557905807135078608125009584085112452162550529198658589873610759548073057181522339792579159824423079358083398830264101478339541726066804735547295179885982813414207825629905483500181433456360486155921640230962568863437654320679584402783825074135492578218812749909065944672239940148534804611771624212192246557470681773892056646516446863523550875110567685474367234090236071293811184379451230091859317937709278307222085570520003229802497877385698836986864318191274996963915037611766152383219267645147066263303742913539558175312006466237565940840465231938667708325096130171904013461182051675617725690932074644303513300414588894930253604276489473926135831089050480533923561900428771283145267207864216397087261965262098493579564253872466023113993766418310336111015052772311382169610205817835322840127722157437343210716321873229388838926589590279982213643523667290378963173310873000219380055191346393355000593795796305906299956873919016470319144156598703031658732951389712617742166366190036384256810991480757656935079045429446655548754174915117229718422943887718794171445385515786600131846255805284070371813724446922532596617931020044769222306691909744363041688554589554565837270358793090967288679603023283265338441104509682077814913462988986563692900955578785522656828290426212739882004046834667248168502963220024699862316921727331890464472865425504118877014470365644088994892086274156170718239328844586775717694155397292340541945385490580926795780318554046041582544104964766971599011278174892098514249203336286412785394928987006950160235134721040911621840512751736691451891047407005787243459728598180231806428661705045146738953763622797274495004947829301779705180294635663010819132848126451372032860164671611333342698620891005197475184488799825146705562405513605300345383246252006645961591001798935931544531232004819868405392652627683421099533429343027695535567458725058356154581488366094419590696427771335389754970087849583322327052407773392410924113783634470628275172429455910734817787759413923150521061640402753789330000556292777053433090055306057081158383901542713795007444769680914275029321825041083586113235890783192163656578259775132751629259348081603386502017720499925142012936333485242149611922989561936447184629220182070296895271698177578587710919640164821572455742766235773239164771144066179180915483787105405299849992585732921326950086509149366173709758472486543968601364230601776279530977403307716993527397632978841128766482822893282502025984252090975187801513360253337080963056426557029568957240320858872617343339081012932411913512581769919810694669921095899277485427649546591796563430117664272215766794838506992871547777452629122225673943270569670236741221843755408357876147652032524240345694526486294112786665401079836689207965062745462588596670637310265572463312410769010888763903878781560780376369554116453317994226583274378195323550844885629052201287991426126895082825413350388666683924522012984070338118696990524309944644844349801841902228899735667159362229620418696964698678300626732159498539591213009437001401031405917115987218808310965168929682811095211900815596166611350820545206299614366330692037743766937483331438474234009379264688049720216744430879234043161742011094411454955345818071412894987625374067299965647017464686469796475388797396752807333628830294353836012870514266221905403957190242991621201420455611408199349713411961529781662410319765361058705512025517620008898062208060082976421023453216298517064981948356401768626543200496757660320343969549783266405591709576382491791990470193230124106619362935846166870482311277213536835837456185811219162724435336463074868253932900403441490099442933401391300581064148386312923288801253232408205493009961457862898500982019907894214906001113094880662673421326286309842231117862370415550529638906761504406282927704797007192860158389449668086503799625021113294184072794833691813301803932374892809098952273668427965200390605648620165980413854210692929833494542316023043121954657801178671055433089151344689534168086845118885150984301618905830389346084854512530089343583104854759450820143040492697424107680289381263136341820424289498615834440813904508361280801241938773255716820208119771013813661646833887370551283018431263807885883889090998932754691535018079004630129504918163030706612274838211444494380176502993216318978174467783691884009299829355008765758664512543115692882471038142995094341624821960629954858650553552702984648159471002710791074150469517814641533958369028364873811187331495617448251437976035845505890414196126072111068620048945663981917673944322944237647500902489764544660691619778503195594266803008826501923329462146721830526528733066706647436082219141378090251502558121472754601724539625556062217465540239191254046450147027744424657260592300964244995033165703216225905600452700365011442601249682403501252776798600711003505631339812929616685023883073256071439388682500794309457149258212294130837646634747047916751100154157976340080404545499245615812015484055776740990725607106443412518843354996050734588778351881704019826855964313103310394167109796054631244299382210202352174678006255275381301073321992417249338251578245046254263782281769322549940638110967442913423332908875738309367535751382033505970964328530854026667264786388624804013671139060987942728523077167834422041442511253596165011615549155915470576947224043813367664056497659243198810107188454835659440755878035261959698331005100535906570606284594329489430982937912278938326435040580905944334189210421912567454718181155853833193898085665714075412701337926611711778398184304227913602073851097326941556648660594994860472776948951457696842228675345633788871897838205371761849129672484108491620188115695771151263754153535713579743436186493467553387750920624719904576922743764677894992540170502737897959089408460224364389069716905699737969081249503302600820530026578771052615999540652121259979138635202098441729873813982080395444381414047228485272480294791242613507748401853777951759320361968368127816499264796183190349337504214748682238237832905679692209283279421750435172287979851329583005908761807641598350101205432885354804067733882942791790277601656932338116188803354902697893455212686558253113664370165200895348591541575511509124554141186217495582983108327880930230054415644158720836361100874079188899364193296688038733690329635175478384060169720584320872623695530025869987632185376689491024051312072582778908828589563130972799053567202977008475825521484510654443611583103779331950942212820743211832900262637898140739618357393187965027879273438143990151447552822360060338495104008220793918848098818428190180706559324888894060612571669476584413105534135968686017661847736503074373971947242822310627201113901410168544960401806110419065782996647688832463589397458371961548104027254101610745602835603847096843076334357731910851835463139016619604178479674521706001519355081065032443909428444344612279995100159359697683636364922829217141659883451214959401315406923689155629098315113601178647602249509497122931235640890198276660204979502968223674474279165880914596569056041466915419850608614589686454553389347756551597151136597331468635092857787054058151012861163230705936863885804241020630963324440305234692622630676132567631191213300406664310927071785846368465098062640145956504561407774526571112178358757977916288463228786587383780343455239942480970591394545187374498569298528445018177935339740220233217302881404131708198708376812465399980557390156078035166728877168211637311479404377485066251631832986616214494923316249532782678495259920087000886502014725867075917311831317966419931429343832093355069387491423814651877463176382477492144125638156917374600023487883974190765778986162229398789399334834604216037472792224829200618332283707852714747139786457662844653394860523267844076112305638043352427044941621737868895600957782746096426949385899254221994169135374713437180194924013740492344818258318346615716699932480755685509267666219284704722815085491410278887765066785937532181582111654291596089583521577891084454736143263127064352474117652956397141821720315847329852637620541243501207734620256079524108136534517205110309071959867216424263944983763626464911559868801084526395690323135798647215276311186917504863858594930494714680275472585815343906062120878691329962740489013245700276809863824199806507981872137680317271297441178475030534805118681491906383872949341898763296032552437216031914362173370906997665247032545960642567194104758825349517369530311485370223904298000155158033906094001668854249479927464484903968111496699332929182182655086447990355208944339109652313239091722434963066324125481242540306951329514761405469192796431461124911802001328518698378491971581592025290414686263422787337157962470120932984528516396280184307695796926794427448474013320148704801332670436998689106083217718335089324633051869609287186006545704870376328964178381948043922206531408219056667135581137852655086144540460557108031378110898439907694539503315649882726947698884244302537737057214805181985521364497194781300967611997260054353964456871352056185769341101344537890256093533497697147123957261674352146632343791947131565714644873833867298797695647575113687223662927283134643925165388837227640224985716816140839884516770230116173844391744776267044512067531242404159880358111785040130740122524853486282406957249100184846949409857907409542301068088049625595320541923795142547400299167112710011686678804403188132276568243371489202520481613788122013411235023386462789556878828766709252111067674931265683860369585703718328901056615441836927053959849412869090220089961217183580524580706294699720961988285034735502365822947499578046532319023000662282435296336641678529106957931239868784051693649409093547690847713933360648214013188577256869065356138762950752449943979237175490269398664232391598968210535326933591072147148079278856589869786065634696058153132964776433876042485371828925783274314272017206561128205502312479775191661774173645898967497282230604558297455681524777794175001427387737371990860931253016854068819393659752542393139871570535798362818409732349398405437077114223343403942743478665830158841633262047135459986156452607355223861635804827211880216872740072957088052582096551015381995395624165119616282072666880517973856309415247993824575631118867930636321700024025955784946562715208041065080294800905743624276373142361728099292901246663548348636613669810410238858281525767295982635921343860091610558861612843696926007535126874917189673752424171216488476388005853661214516237666161586965741421401891733423453541710264560934827410210347618435137894193336661201572173067687401425121991571471419691493642920197826937821494989664487446875293574934137787082914900946089664208228297604799001813416605508042049400032970404162900260709569682945489208541930849489766800082058737793263491923653992529833246291809742756149294741546252237553242112815890057813157953744605156077907322041948974105933042201324103025992424652913197715937900715365222248870761693107589238842562433809658259136418584208630087300926212193531722119046760485858246315643713480338437938784102457385521868135480774368313554249353602766804030766520532508871765546787848975246260768137185392960247173851664037145227777415402073812563785577838258143454223236246773743623661576688827618360192818909083547085177455983913565218056954790967352100506523457003373195332638862909792237260613035582129514250920179473435136802995884970394300681562560097673120649603888787277997103126408872207608107080251205380301848527681417373653506956186366042612949112900529325767652762552878884612696721218033817087419851431306199615320933732701740167082616943457524642901652424127096756999109810843785039618267951145548243687527434321269887632563833755963791174122141521289631691209038753409077673825633827683663365918336877405326051780040268659127062152341481311017184719393431563852042348190684881467210948109811245263038389386362361719526190319137419975733406571611609987898062900803836934964517359651471835338353877494545376189843042747547257575618580794834576095696417639594966168918967428574761487680826903762205809511822795833213956692378264347139820874578207293594747851072398205825805089113896817718503381604260910973560542819764739909044020635021395231547657867743539133340719649015802633304374998614270983471417041366999844870291792909864477244271722449654674891383060578894315726784141113087281927557516974784490289286373222926134521219461597288917297260268531742860708506661214291869030150752022957505828764658879626869896336110319898740455949490259340996325590872564851817769148883917186250892232778300755770665527038528416567362350875974917172928419004879064832732894291731607380758521226724358380036168556967292500854321850308497662044676270396610393766221117241690758705020318562997019738328569453274276913185468030638749340116566705656742294792663207741166478124400446012867120599619142874712974871036331781318171203779774693422160775577264329740385375529707273342318963367838179804723726040390705082369502914204953880554251237252161684355839955673121318457275240848867468894924510676048595894490043336073338053170554889174390406556751151386682206140699467009406611714215341564100617297030587111546880663017726376948099698732559277263153005028445938822608431803172559423119847760859784323598660667361660921455208339128879617367573141948645931932844679976239233611140569442121566620017053345162082898327455011380238116742953871070991899143862223482215481545422152204776075647431509522725136730176523264881990905098775437592984083184506312947028586084014836180041469702453199389182825928556531459374701195713422280265814456330085972454176311029982975593786392080281540560582347894564312824647086360409071883078683260689593285302295082225751273208802144954220526790466396941968622878115541584803939669186522033978660653693603415106890950291135041274340077189436847143514072092735722855213666704134875416406333298588691092701791796232806271942106860957798702964055315691691626650579387044479112619345566664328085002987324819179912365109417260266517905657088897985259190363132568079776581617925084435684199595989585101926864654238022811929554927987156951110417439172071871956565507294303098219296805508343956726136485282037494210260840467207888688450133525602094200712707168915370185352481151516372961992595852432959967085619460214190871581160544456802674983773327512134976519534408215730952519618408886128469960351464821863435028006841887536503028241913757824678055438376646502986962214568602713167838697021832300746399114148276954189423064184359811467882245300982637997336931812703658637890283786948679625446152879100656520399656829092091801486265588664278277804703597241660286119932543844863041662032555746954393112108532373759477561376315015235498905362584659205208127116938297650650755599448079048981273199340373767096444040425306216085071514361793353969912177222184738931764167774021849199993013015811266859249174257370303280904027522114288162531848025524240337195052673233431046129402012732855050249738460029582441599864585092539516376507449801540400098079061430879650235295126842833738571405565552445523570588718160146604089129858075361448638825467403109090433132557716403665764711064063178374720076816206775205230078165461695010413157720908285764596614659803551759141023536067788579029131624377820775641763946714484073038563187294078010423374405204881386560521025830656761733465086664395391746478099479036003908766074415581985482418291355408775144841077994269170177573441590695154898631750636352095389730364458098959734119040052279284615095679261296935673729802354759677305308928270588659213531118412856238880391305399481332628524128857341766037619944690848856010135371629841329476930494080234455203684914312192150375901784113141726894122352194974755425086415737766292751702041501119927923911152947285411259947408715455007015498887838036197986074069726684908396383273963105740938820364844602471525199360830802513325186098539213748243981757994903306908427544665219237312628520780027713165664187533117435003258718018864277786551741491131101860611689690995678566938029506263453797927865073143695428316389770321801239726573280582402371450729642595780540637593340939821481437229879165333105046267233082411949859729925354139669326189158013734292917427800869682182725662024629368912787799002331360730603866525715621753142789989769491139195013284799761797680399449473641012130310788419118205295854127265638258691748914887838978863304918317340454359960990877627442998391797718327170133306255121678929924507724394495119192474322848291967591364324438423466282814901184373779097641563106838659072834579631634312568587564063023869060497975256357465980056322022605518300458763708146813786749920626438693728031214387530604408956179922897807582942932377438299963059390584360251228717226915895780244904700792064625882896291792712959436428623448078099888977888998683319932091284207777350336802474456035261297265646477978351046000036904415112005995723275086114203988687535425181462975503441677964207870554287202335512157968722945846755954083310043823870142437663957444066299451607432019315880119694204875842818398069794418808612126708007005925980093555196561464718917332595864337478808263781644014315527210567808736046376650689523455008182240550977707369929381006650975751350896422549535439910102284772821065559597146307098542216629093623736544661547161829936222065660236173352087436826322742515322916025051167196997170150074539904134646938966434994209600378694413143703429925386984400672948018843789386807265866330154409196195158278089587266481372380984377487457587219237456085459501663930747696203874192252397604937242970619548549530831729492143851278537881984570595742821915397405673819507543728561582076676772595380053969251199407458873899415316514197696176179207164037181691029728720766217097136664472844115159962583289441495877308341820615084469399856553306020247200244384145847484067741131741629481764833581447621751616532619841638556527179163859815710248574296686722772003251819042328734094784032595282864139596251300623721131619762495374263498786378901010810226975805200387831591714381042668598281901201843061281834567239808375419139685320704040620512432964433643552946572031235386910905718387963564526973033242173820666452385114624630369434542235685439985041883079847636169530199603361458405869214792812778588156046168263172934006988769725031190898333178447815196454723459829781769362602541285778236272004237888727062397975828540469719967250730543189845491114436953439031137391605666542301284203694211342816974630999064727197806922941304672771115404532952462301431362091181101487552894593663153411374945075913509683926967262314194833779382846814578891591293907970465140406205386650830022758055477981609631034414884901222637153705134390232768088968566371060292695165206688539455593472691518391038473005437984837949330828470607728056342366184953997659517591613273266257443026005671627245573011537196421117521259625423937805861419637718520178105694342427748871884525942483556011873808380167884234567069141945559184455211415472640179917768888222127349562267536066856757557765506360155522824738697760598998645793776190282056709374979492892396470526574109162560259243302993437878148564619704690733855760930389502250335023756136920743632753239745588557874310649755337141159211280437769454882691192271159955516298094244199543009663234904192313277726761805725974668973358161110242984758365560847216631081972345196745864310825106928754523730962363859745644903613556881577771569877282323045842693911591697719706602858534237952713109049741494682515157481913714877361629605935060982370308582597396439433946782832386391083041587925193363660162168348846332676484650456893859567414242374596846338176464425131080168233143594908649711547286072103133845186343712289897158664140874244489811586829515860476842107494002393640692487157725228549871650696433101318648482098897678905999861709433430642318008204926420907598292864336785565153214317620923910392233945779493424446581647351002770978044738265421251037305532737078231777189396036208367274967146782808248625406057863579322686298038670008134919431214664051326426984889691726340175240986990113203627529468308707834117080710671409509435335452575750948550319797037341932684761428850159480558170544417565979701996124519500595041544135320737858421242143299374527415960516971814270302513138119112158253617596480754974115712027645755211243035299627910312646203080708216527487538932414397070957470881816544838912170863621077812948979640984863606510128784857480457159406896983260238473547171879390400174715454418351507570626685341578073493727064428545475914040298346487378735098582898553083158805951440870931365709258081668915269036914110745875214835816070847688736103195527860421532255033855932362080156975063343058301579508546827863201022457706841989526568588858430625147144625255333587561365411560648701801120632124534300066975317474282662499607779769689335116797506864445481997548020746820847365528923398540011099524707426007293541468120286462912138618076498950601916012728530356897219220755350622318984239291200594234029838702945787210072612201172946974304904066920543938097903653794737258015210388451714978257245745220733816955661268982932208596039981959906562665491761428666796779553388181879520350693779720046132480274804851524363234419755350949291387187950313904975981509878341464226534081920482607344811752908450438824236252802599229343619408811145616319548890657832813811226294806198323917305565201255249023483183543575044074409432715882955147074150929621522444258339798220210780588985070380755713752489840200362639356811771108973552172936652034899004095644689356840084541102083548602045202045013505375429117903733718580144671321036762607998574571753844537165208495234167969166314346873690391914155900660738710239815911822647498066970876566515820844132015493595665402080274557736317778480276683917563105213480010628359364200195381815603400678220356109861193610923778521890378974205137690699742824352390177228067438598261891197789794636103567626260859417743822855499528686110245987276383260051740453711386044181703024483734886599769134623554951236550702623771440586188001711259791446889863204316907935557496450724259686919890830629002747372880425931949764733682116587706850706913375613625720043394208743561451127707092785704256313248623227096454134643132679385561812390383918422835271814598908286925067821838937400394549308372571963715746254382078577612192575880501476233315248127257142737129643106021300782751647819451956622858427557330802754412984679142466021396525411801779546916831517092938854578697184129999256394065116697817910667123818133353290576966598734718373298710282638589929606276552430622712230113237609677039456316105834056541759284622255126220907432467363483619577022317201997544118425264460585402775123778576496865982838921558157287516947965541512125566531842761818626320502370643550968945498112799328883589634604980003862138178611800723699927539891623388650571248356506010605342505850303482365430104190888973666321898032279882158243647095428751376787942776864574287016155714995616477148270367037116396998737021093817320493367592487564892997334208120171677894523160469917538298335652441343425700959044104001106822844416645463455350256676224447493557329861706275673591093416791685608429877088881509957388753492099210030167816330627654900702024442293167587063088690087100012889852537044738700993777856344339918368373343497258440053405461844775982603202101777216566323822453626203428271839752586952411206923284717706148542195010650852337290480297778397204896527951760538077976151054665905205624194711089632661255107526839914349783817757155513763914776170723295685622270767272043953191373496834849599448426138628372233641676140229652443937698957872449821859658935000805407320585451059764665938368536122696966787377897241542484850079687904381118954090243439665661474981038479041220767155956066602697133495844281507407666170806340868236134270729842754224955659880412603505394488440876165982310432870577407106773893488898928596611108287201453018051729420557311984103449287116685183320541019263648062942339600294518419364072932004817285870757421665157210008487581863748187547245746332350348069081842007840865127234165151930675924771383496677543374056661889559832305200788886064967847024049187334865229003289466116822653647630293484830749185446798970086727328876272925253091348594599042040133449552739904658108522873826177010432003627355364799228966038131356523858817559210810812443935909874746326635417992304446858213061822607441032110714667045060525914805588131963505120337145905949245858071288992586479294087914642756691183088147213005199684591986972075145649792767889434306026571800200154055189561922098659632336825524663825276865728609254693882490342172522699677466487996287105833241715500908611134634640759654982744552465456101612813120730626006147677931782909633946046762250127727817295887771512580099343209166691459561744007485552296483803309481874370269593766226673908366966914554183243435536668055622682725347471737596490607361729043061151120600820677901817786560046483323758388183851965967895742640153956396966071197359460595003401796504137182283882690834164853456957403582918493558417488411307009310374419274569616627450699820523344089637067437472286092714671333338739102248604123298854628428662270344530970544134287379420218798283669615349050179359871144818208074750446608718597487768291481582586280941346929814505552677205259758273525055484073421290178478874705206354779298682257538537728130224393147270809678603084484285201568634313562549641513337005245017061318545398449792619771524016603893290683861070739162108997662263316318235251823356095666609763718232009180489492485586506984456505753543145285925623459874243648265688952656593358907074849434067751705883534789612704345845397357632793004017350475178899850890369429035749226340838258904491506597576811224574145953963092995209350947725696308993060378435361126122096608369462516323057216829453129505785102546332011152836981977333626496543917071022206079917272060356313593369936152439385823998947928278093748816499284767217981195245540101890104250674824886340714546511555628544056599770101315553679459024598281582961224668695510678303165042615707635078707476304080545092409608847448274259743403765011515556882934034139224742162496117555149715345838517915511145899841644804739565207224985058991719021182299424948791444857801014749731762717960782195156028885378962874297150088080370535920772384448780813458190004712685940123582609610171390514798601929345489543158485141314587180283630801745628751778797345905162455063662900277653360235800299359060023439880988924542325385466383147087094047480683978359044575288355276720998189062900074961164011741377825673273741351844506545998006348105834812907341130576574242212866909151891510414330746978349346766196202380963504150452675508505258230951633665663917919848607451553353268770834365690774353209096642045808802717720393597448156461184864385812376802909958532601887631131798394493913141885811555804202750678573107434054218829223510807379476423629514721777165057446935426105398453749412978050868457322159846186208648007515886782427386767123527333740139847376285742739302260294733876775135105873917472234065150712183611242174777389674198511302294808013843776524764454921087617035462479772221890215701208686907338548347502444074392068564543021572248986263154061645841534781330220762008256437026086365786512194680999912365481580907502384035146060956422403853189740233354510260451512974930438751064654206056553578907968723480619851092281609396923162527005712728210807792983749324695437397329639198845618546789588678661119979155459740103787845758419458465995450447039329511808043669943866176767105711707465939287822800837952062583305075671024662948133642623396272733401945313612491847821794705699307237576879567408621114401095370073037640211996657348141838410970855784026646344307891732075450788778374323447893886426979685735066910778196214567370168663700881241758882875314152234665255815498129345226640883308166134967450845182537772384779420841109897128490298873502505648778979008251329824135532571914611753637252358373365962992459459771520562673483479158489726769795948887935290563859894580784747245794215219963804531550998742244570775429696340409436873892369348538428730656315297649984584980810257806134839231956385046160830691734404361380068164973030522612040902970916797903105150453801081191616220112238339433467975314526502247152602214260740200692063656292418633937493727073954283123990549276254453395266701782297941942840839731435516131013299432650843760269229737713079023760533988873871147233069898984944395746009974284438378620139861481989851321089528048294868136305715431432882259366734157159288795768977564182058514774974782478479999280584022036763505546859548878198436903813999268223392689447553095328756887880475762803935713107777134848611174935085694770198381048414153696045669364516862872782846700806536321308847177654060397948203215412831727368990505010033127338786255891226812119791791923931368893596657330510052026984545572886281096090371938971786433434893552223774241113014942277852466380068208985867134459319613400385632904723862700970325280372058527973863308884859528661812946434266679181622297274062336373813386028833408681611113689916858955340583043654500029351890924793333794783735433684409539769318913395744494995693554427217298644734731435351193619442011576052814288217226256424402899854340892435011563308540071326664524957503570531160986353642873099673573780255170795833816955807437299804284681396886392363385212575641570309774019059315657821214460330248432181742241594839169653370641742483999642206058770928345438490671397343719727197924199976891932892093563358504432312296729011965418331209884465178163465286716895798715486693324723959192518957642621105655822035554019599489784413884698362819166995959734390284322377475147908578505200098040449232329786999998578463231666516044865812549724686442207476042974550136088809433139561917435529442391566681488621013424000434235441557201642803168258949228698129801124723579871836740748144326500550836714886270961627703236414174248042265180952320741650884524524047897374138101180864911305369142991318748458557778451104218269305340671674872158040145143787162349314825613248733037735537656010394108046903678715431806964642965971583541475457412815414605835133573816529397353547225717937675170666500378490338465619622840181876383789835562925669928194427844167162580422919074391486358676527392173135666989485333228737183335543178341172563421322200801431279494804690748088910963495938595864355121640774114560455222758649913789519371258606761603596660137395068646964726727517743245675762709427961015018150232981696527659790424624280873749820036405487492386163344404918102487292324632737843509390856971812499061257383851083039038844990262137056015115024229050396128918116916250529187140258987080106395515371359825047178592129200572941349510610027255555101582010845256225364165889987514762529766286236739601147794810351241233568984073761698579538669888519755282772056014044435177189242573549981191687101264003024009205593987131952602896748873622693121179562346733869067136134054761003639631454457150366108337319458642462067603863054839491001995594925148943784140314231084541792505561938653408456572389338163970098061786258304077779111645655354764795769680775797507510188811242603904830682410470438730638513081331685971927766450759493975773628826734355265479326646749716812463685772506761340683672242130950656217668735017733557404452893706633692939613747771433205491314818474070051433493794652428848659166483320763566829820698855751836390075396403671132239405108077583301784223190261984192921758111029802765787856088864637976365055606508524230985670228662163884291105279940170086836361484038308387463795250372388173110536694368290830887681532633922025996116261983530603086330036490300528370873929520006816056719825638984712920484264167212479099444484010084052353254559104987802720757161070971279764445169692305753553337256237377742477542335906911456567608848485642086257444834219951534287346901239265290004147615805668961334065881115560489152917610065820356277733339369019911268684934719838494204506495862338238365413920249267513331406108841089079568038526723677731669910409836776285307087499531542470574701281978656627152197164332123774499201141955448590582001660119744420558643733513924683869601707813686882553239925859695523197127409077467849737656269052449242158496130072415523006660009094218583499178070564666400966528322820470958476973204989501563438966728009649008321713993308140328043161801402290475283979659436760452057432163148610650191822768177081948750248497093852334838696197235288742050179445521755155257845073014515576753433812997720760242381494367382083556699581869041915009859515299166005357005269122034979363631589393720559519514855558916054263438213844195290258288481771908791044022557324424949507103412436723492360779212638549167464936953010091673924537765281389917739946700557105623162494790503914972534701626772697772375903377873044218954911784394053773936847667479959204821465558289688049517154645411148629869421358774544385045879980199977719062997272312289118960384882099947866977283173568483538322565849703455262540559488514156515779769260564254216290471751713315458342024605575595118245857471342626317171543995755032855140332216997479014873911681189030600273472137220861580087979296497116116558925263377669782571649858302184695981807276143726665539979262977856839557557682008280622482674640521797357186635695288172550815574820713133994002083257716767137909184152660088236191975824098528287756159703354505569102780172232758986126403189007954600037908254967759613116140454551338864590011756688356225906087176655477033677816186577136921438281390683834017552119152773990805046109702005157149237720795921637303590871128393606242110071884388979144080352505686021122129716585329202834375939325872478996519492560576979852946548031980570293267157833099438637728491048076827769149848585318146241523800320616445747183102638412911220704712951812631163588691295644957328344564270379861211236053271434135511572382342757647326389869213848337455317961756433954709307099725963131409942969254554609303083152378166833326620887821643622160495168094651481828815668965872967435429924501029899310043205512285832466788759097381953390263604807561410745729448039733125483825760384130745982319929194256876261727483026174909674294680741248975399848591480596062635631323513512541771750046395485978984729951339622374123611301014979895035347764032223457288424631021792515782811983566112681613384979340017606693132393908275530854495218039011638604299181685207676740759225731933750149276678972659725538599027159119234814648272406644843797471669813837307994891256641117813299189491645577158676888815381697108325795302154425359507085731411772906305021612156426812502604674302659031248221186761128533718009304532013169765190857011170463330171389824120613758188245938982689121488309648081468782599507088512828217832890476260799877899320661973856789047632525038635209987313197405907870316511525803510941257129328480449805762554367189945115099559346944909408602916090104686329895521358232128148822085253275768314695702400721410313229323438273499371991980360484501385536839722162241293662177503120353675832305021358863924624666877160228668567121695213318883764755401840711991204399973204815698734651182728439757699625781648144878676162470367440041786074008439491864165443681566242664270659872675961641644251532663964005646704811477960618431071368947156770412961270069253551157439007959949335957199207546523536351924332160361260727674923048231924831888249135709906280283114619219286949147197829946328786728065001469367216863817470915917263200442300155223027357060415028346260712788994685739444138590489568702363293666591435729744039766877103551347059554243738672344856828076373484431438887515271282333861667740080749609395214185719836228512780986841716961006762379304340279643841647144958074662492446666444138151740202708660326286605203483599097016205194766219386629041566598676236320876917163981373329275840275722357962257842012362592191936806372983653968235880907503564874434258943868492564492073606122277829433519016139382032688164882409395335765750017696632464684806160145007755685321043565674223633408122671044411676536433766531936113289994887169279807302211030124881073148462697006944429754591646478983730973024941746270495791039757381589689454619199648978634158218513824897076922071665949783488245541099521723257140404798282650161843410836320114102238242940034354573084625626263096528580818624500324004057260632974147797657126975345013384101727699344256018003523043061690996406879433493593977276122296046804854632133487402841025008479537960862001249013087627896307457612280144270738896008019897093870841721369370969692816206982089435739998025984410379447867764886573417376854122109733405867880224267046367208931078546212743841459660301985325000171949164910377866887309468112277468897914855644568449131453244248539372154785575377284975126360131578383649254610510560119652467504986446697955326767921498264484596238781606082623380432246993212430385351700168069449871552769169297338069012400633233741355587765695617043013793686534692140269580438739222128645673206437636808666987641165967935130166355576359141204021843682814210606491061232448237336739439425685884560082790382818866563101826664894274027980174303803876532716245828618274681891817406985643630666874877705607739973805883857016623485115323026608019123635338266759045818538659272385410396091070988835421024439637009631226923163049398090545931854681691360923792115224193139642670065589265435552138372288066398153485746720869569507753649365463903303814541504460500321371044784555296508944226839432853550042117813959881950134855365162895919605483976298032472744186976985064564227807143194735522502607001915526138602957284654475229033254121018418059490327968347837068583652885015695212643550528285339294363607098020235323972152262330756598690694719151957002999116791804961387624354731521745615988267358559776627562884898444392608976199690272421926961773861715895357043978306605930498082968553489230776615306967283397996799074970552422539991068169344106358618059625427972198629019815103624210658854882772138823640543812314004331771869307682705159731459020120627619798010556350113555646580637655063104403975055149111897850405930649777426578676806396338152067517618288791316974100591040834899226260109966854053279717348780744523166782219158852683143808269091994637048565440020894209511567597435764204808501848222045613950836070989134059577185581695948945062187673299690930316533818781259192415606657808693747273953960184122347861800123208300228527405129476439801143516624742233549382725946219580124710788794871607357226039498210704302213008356394408051892203944908459192345805807969849600697877276165290237999695725633516674905174086092432149030646744174266049096579562559886458838376941947708303274717765855287574660853528492188010359858156632598052340309661971049463741235647754885600874170807839655760276962459402974544960282067274566885230013014063823722475641685280836023397623178767467612876442715438532013211163730344116366488271253083564109240092709526692718067730486356231579120600994355930654238330901464091750108225521704792979810501350296898172756143418090590415901927801362707742416735354069806606879955394407857509034005586202999698829026293983383996871551741939609931384189834929038827960346328821050025205486818291697702845593499561104584312494191443650665644216307437367980966295355960147816169205490381439526496731315448711213657584726893791150199560117984625056230112759573200045434709007826005863666218350776146479596906923329550427739949345418441835725802483754000949321125403479847133929291119254180515931811066826267699580594667947112984420282073244418173351699048877670061725242173069181777527096825557315484160790220711411888358530275211390903846721821104250539372268160822987659682465982497414252542369490652067791179309099216704742599878001263570395267101319031640561749561723940929512911710270720315756906213213153120153819464953446731760425727004370394913188315384462880528414498724148251245704511732479190029020738684729838877972293163074120713620591664520115695970505559174326402413835716570762521203656388470554362841927321849857025141749481543104805102604387158667121660019151121268116863756220782955080311877781531548373453972520367492293112430867676883577293758590929450390050117847316118311878122208099686133290541323654533067582137086939585036932255927264366200388710759541583385082186067542592146095567042141658363010215036001757055766051652049730050942649242279119773119006640763908372939781426548808031990990260794451255922416747379719798203609905793581320560592498881129493980549871114279451663824085044401956546466994595256177996821628600852062795588042179107588630129555543873116049898506358631008190809893474670213135468624556172749429379157369592677134275929080483761474251832196489641929608931153685112785770112264173988836719932946094811281580854103359287268588771234867727773141827563848707001519929285510313267027268920843942663870794849577327579048919997953412643659193990002684174525884460785192434328341074302113899648884868175984261406327176680628121819973784397771892416857548857177383098862750603257600880911612371453884670701721974704092167097952636459224813496436082780982454872504667790677335005950574230953851895113245412948298793177945398922388675444948894932743994787142556391232371940442005816632350935034852726784619859646325572005359432767653598879635515755639047411833922510720693358383656431228343543542155905390843192678305891398125331569547586923701833924115873867402938695309893917485341823284456863464732486473111599180678387313879077869979487787805467420448497815718823514984310773256735768019962023593477381709374088079144265194675162886650847022135803260740074685875825745878310834611359983431930350429098911752736129446130384797111778094009245214813822103464005036989278529920361418720695275033450706026559016279377405226376278019463397730492171901231621854509757586103664365846258997910420101096374039202825707755683434161210739467864050275009378398785170463358805188631472669743272723135017255805508901602574448302095127790563594746768284572736963567317037234515552018324705091261167266089341587157182363392494464320078929684171711170334794475234605153838161959003855554581204208538843838207282344309073331560665536081178461060629018918581696761754836157913555804921742197558027271768708628216607803936155495814146855747033072901461901030916806540142239061436649325639077310861688282305449521674500935647842156869869779591619931851874974640195945955495944395517461876066265444123252296488110743996183296050386490091942423598319654204251335856361707103644454735386726401650367460082619925551547954255225950819949251742902891196706123716602934763640790645469891127515136420077950085959674601193005912259573850868681038119372029678072179035028393519894628994045982760335061274317398557410947439994192777921267684821529099046743809501260228179691663251599077879108013815223048946271236413618701817800792014260837536528531321257313648732895326185636425391950116669857465588376153105295210422753944536336118193352057931651272845977351438099861605828277655454659554848769210122694938354714485888966349226929284318794835836081256594721515593724626732918236111468350893105944100601775161760375790582881526503297597716249692453523520564329510242425421465257998535661636989530399146851156675202584265565139751772753012193942596253154558529959865896899601117176431360260194948522199452172839700713925156368500405103196307385079575654078191772287446845237035459735101513743304704212726146998207748081055544789603645364284421543147774870328934579068618937753674429998621486377511248631340910437904738757325905211642343600967168960839301505411714145355088444369238536226755056214363821104077000769981023534413030871992356950742000893512357379444040640578246698895252820581566889726029134619257334417249001985772005612035029209910446110591010262762867614758542876543092760956840283826148788871141442243696791974511369235671449672054362948565872586350273267587375236777467985079626603671953833519283947290988124967958311118883906513158590317179426161232836185870251621833402408942763129956547025852608520701702668851773037189593352203223747225870018575799468319952044746735715523226934856661921975238876404803420078969787099250121328195129377659592005394855229278482951808287833766249488985530072355569518648538526719399093130966543464479795249633346590350489903636031770421771575520408011768324799253914435789192666844331590327519719034689130293866481134691980876646011218792531014450488416729187692260573210683664525717964106915406554713871646665205899736435156638960838600248079731044539367234525620329847462775444961195276673148255219777444021135924269680714651488026851043677124799633256663310611444986314172485505402649564544543030912615526244523567944927512453241388466674280079287236103804797639088523633271746027400967081160128033338499986803166847722906358008596814285010376035493428206172192262720187356408472669295511509713070057764306704819141297076334104377467948723020574884541122714892678074227925043829214938380950830389990896309884334513585115292857006312417590169814054236898246237172514724891042285040850576340239857061400507263576505044801439192954616875823243316747840125303786667312394286013336590109209828891643519680233413471817155178369588335654124728322461032713296769798470105925309238190840401454739333850093166004674202979830719516774469902639740517485102582595101065734357899711323096133292588780797134725902570392445538120051075442964491736770210820070460487028130024477850812621858364946232198166149089802795047780684480261421638738599829120508966547944338132613869594276070598885312207340594633289471975558188760344862658587085827282599450189945679508841953153260868017604732127076928058895509044233170131987094178585589122516369622133988334683478639779753309360175723542019005792826637152460944039491417844347880912635983278347905786196287084577532760375987774673576272199596918379592845386000369601539422362195871211811164597794506968186381659032527126439984405731376600713557782449907674020712327723432675166228671684666490333782274372811685386322737258213357822629720333055257149520472278180723344944968419554245580849466720848424865221858901137810387412426239162331514998724374118902927998235959593471114549622305723912942547327194354719375213603308599752494546434158294833768506143011651464799264941220319827569893079942586827330677420288249052161236066769918933522054265061396676028440746585234175746077013670440985395694514665676561658838548389086886067774515715263501165885882955167428654369301029967543948033382407681390480193655105791029423032765956345350770462342686260517846688459666829623297661795491609708032448734580772779941921213491363287787231327076875460355275545487296056886791881076115767476076672297599051857575861915031118356363990881102459051350714882927975437602857025108400355654369065390035779818613275797412516029572535057356460643450485498013454097110082377479811966951083807924833676338728303542995447611559962637569976454750986312975211449695176077190649634315813877530014590350232898055407263549890275299370450859468112551353655406997228835451584703499037559422211324173518912233654731110807753662759836318784330669849961738263420234235947311995926953052826146156155324001155000942859231196628675513064816280931930915666044607087397018202270392100296001022400036451331678304677047622249173036626551253339071862641718773483697903525247419821738131363364079962930368871926477281016844003762151002300880049339333551516412160177244167123215150560259640443902664523659660090834236730834671388788428015910465939677808448953782760961020822560578147922182417892435254976584569357661751301970580260331376107279919933715906645912674356184749075965210732082165916486042375338519584388113703624000294814100635405448977568971562179884696159675579006152992311988427121773814053411464128420653871605492238868988691772048118742465546422929879700178236682869090675075802920976791703105768922804090764881551240709217553090643349262210589201736102528421863160224874347065213517229220846288619654496122778555690041035592642890519898586536301282473899025972404984051930470160083373864443072369008007948045938406073758625182634382821893271782552456286652134245305937456010532217482842799733323771958319530670690056970288560048287568416096519216401702817295186567556171667826617816336639627279777065287827636056488537535645606788425582970210128936439480777957142107799579674794524085339736255617842632749409955812852286687021794823995177105171876782583990616688403456239996277473607213587295140158264732849617297248961127252012853808115721800642241699357654949682964165047165852198696867323804803457672291269473043481012136990707070968626713567194058931740557736078691961555525687165281907518492156030791114332151272550797569371070481826639439157161483193105706856367965693086300848648811511511198266915680273176361187436610348159676667442175941055159974928236159862229555088487818695648332479413494976022483660199002629693464428561798561078786927368432466439568054944773130658806603402725954275531164669491657719783997128242275912264739135422575897661359078014943428149773725501750441434202795550595696663492050473770672396635217509509548805426378926239823569773322051557750477948243127871691179912733774319233431618470534715749519826262845526030621755879598193166532722971668416269587608792182492295512042549663464814607245834070157616398968346044741146285152421430547645579447373214265302871012522154259154792398083482893099658281343346814768928903528064010135581648718038588651895453736286802136343636094195084273448106235821072456621094922322045643484422765330719591071123712281197354083325424380933566341653772715976582269240110629586339829953545020761991392443963413803654472556409252648527883865724127103195836445279254861427693145256134992542913110321993917871817204429049313292333196793095272432787213131326525116767271800051962445419093925416324920572809617043606203770001601019247803596599481631573148732287131171873624080318033659784215643926464286384192841666021417359564204546159192786480131140387080727444726895263185620906881669750434903076481834138958747680547691120118561784454887084144845332776131097703981229002343928690555073070894617203486395829714839123992262080079736912341115520207366293696312107360333713386396338775348287795407660397747401542085299605753767071049088991695285286295397137834011636512513326815154525495278634495832384864355732689917669134088150496242379105192438277596078613746591046262261373081125593183588699127471534781242963834047689588809698141422909536752928919956906952777653527739306592134352553300464625437550476544753132461918263850203191629406569323332705058684942794060600257365817421330280145603920919108373150490348040023023646458029200081043677258989690784286387075765016984850102599184242126251251612990681310732512345824999744564096542987251886281490397488138480789822531352179774735362381093676245059658540208114198125500702239051797312131997020007004541510959391653631337716670257880214181971099410414421844175763864260758482963320108411777277506026181162695809924051679328863393023276553856404372341783072652764627321911510464441929885468075966315116603690191360904588306314517651672817531194508963749729000424116647097640185153852142440377425568610068869493017048923309623348092858175952444526509099447260920559356951936222604015254592729967649930897660294364321735689791939340795308670181572841053191674329763449960101004381026363753669333388650265766209268523291518346635990577688906007818093367078414377097936959971845401672758873287593974460133900898780269833111905383725080648793496941579309710354744770385106785114805746559260530465370209418453364433766283869766469611636710118698621448982088148382613497817647826164809996373415846194760059287293828820018316311819508946413297951155776788263176230404448941387043949322230441624172473047948330376914338028479248024765078440003881063252616052280766782666813596476783893725700078292236589447511948045495885735914463080325044689980732182901367653599215622591120136501186210187775711666985431083037694638367923833708729586729184509046798513855168760510873050244798021062085732090241384961811952820623286936532507021659317383996226488951835754183299315460766537819369739710186614764081371056164027263519436641832537122311964631190778354878093644627862085440281691905000525795705310139201702549158766683415061616011345035672255447455914312553632383168235487098203278647804530255171169385353458720217903436215688684236777172486487088557412920771642533893720314715006068740162069063332335924507013652602650897261501779191084149211279498171507624836644689049573373483668321297748158186789891246465666554220402631668147291299882276137563348520073859960095192446221449612748054330004732588366922730520347828748642688798432863819169573389814634135841539948122781314125030509335732892083587685371675721202553447049743901409956626365353119515404914928091796429251918417290071643702308916248925907724001217840124706987374124025285676946065410699644177256374057172026841964919197795320764765560816123974586839334372745751189578140475477401919935400296565210527736602275720467321025587930101407838381420428951934182062014154422955594638521681975381059879146950615594666765720188731908629840318018913740158669096350185437524426618900423427670914279706665485342144302550114004610050937223052482020865158965205826371990771581729766367274173762467440205029358667979913593809969984235872426966904357888239445274370783840552201689899124646759510202061853460755861547290666995087555988574335081025574198835787144460998294910565014346368599429077191905195436303467474371549277954456671032660598203921271798535122332252490448095671769243694327953556770557997152082308045181790592573927862196943108408687381760515719664158216868676873849305669299470209478690834015987384677479283062106759501299884025492146750775873714487685137872470505885346035308402439168866166889190771559769254858388782186330847146701860946649479749682806049906581479597155969443746256266065211012343352232173118152810833008767896683334144977989240063219054428121474147841233382358340783981152648584772552769741744169815687534328119586532908987951672412347989114284568869676637433801676456708494261317626895334372649009104776975179114130822501221927569227516001603483488934004469479505718062407760506544452168459664039499688403982394565964291482318562594323276099231704337213297659418754924939519848938755781800597659851650963001911687116277508748824271753598503921434526557442329723010366148216369605627646752524596707522441648016381146058496634672218793408455218662172702645770801248560050536224786049701881328246360050712087204699389277421821623552265590222202943195862704404264433239767907435731818605062914019496811440590279833789912947106931216766603489941864194180964094394739169038828043615969904985463140005741673712556982126859629340796952625983579494593753764397082050281448612064584461963406163035568351137024745601077198280470418946519523244471358301378067677851473125690999177171402323910623110451606994208561697594706154889672243769808189211728006234362723384099097256425104599019248182436183801873913851726682348937290232089250565796350705239393581248175704741704441294891212846236731016092454914882216065376349900608947616690550903396581140902076474322131208363037763255172607714290039278341966481365378753991792852448536509149788059184118620161917005495240595311942763093415543798319192476508030273350283102480932329846375150847284113023218254690024912798514261487460418964216487827891607127360216211405723277698178356936562333130323471612192473490753813036366051074912359653842281773591250020328041197391674732055825603247716348721627645050701528096291878745931328984871749656376461001922742388843498694921548481402346577592993483713778433596185549823945181589449092335915078259002003975774764841100263427239150355519104797834930174137404721784299335388860116905659340383831387463928745451144489348163200955845256468682043078935035693099461002016759745772235953911142149736885315573689338045838482486562975937158811035167975946841816896965707006891220623515100173760972809135903032863878604569190567139284254744559049432592691666830392836810916385528009026614993807104918952130998449848909213808796035996827856934031312968149733872671125067872910536720970752318958884468543134572282952116335952881508840331058315670681145384388702157381612934579515438703551628007120226348441200335732819567468140728311267695634716217103882140484619116297831831063261541085481742943832570872358762681805138308682014944991920693211491044050522987241022383613936367914291560169857627743797748705628330926847066318814864333853710630498615533131162177936822387848515937599646388104622856914270238882899239065087112047404563889623418417736522936953556746517251273658642091174481454513081616185009405001304400499337914287061538339519912705869517597858317501515698426965724883709638057359629938833812585038174436637937495463300402764147933916062107357419614497344030833701999536736726963341238986767739141086101534058273790611133173411511109792298431784406018922104735446554707872455956405490823646332034037838704049765373744461641627209248561127728848051246566443612410658362899094767912666927093117522235026732436825909113870104230672514380085460729895306420460902409459284339895886863518170929651129696804381930365798248502480404668107762217712525759474002042510573854290815871772842378491264435171265903147791026808817733453964950931465130284667582728625325783924738268141117995633741203795113125038609231909806590480026571071881588280059992846080808985767073737160088307933256760893372286313160580394120976693013823449440591620859243093610591275610597539177341105761060513738011726429579659009236149343392435125508536228728470199380781758760080831637403094745760378036506619367503234215767057460154931467324229003732867876357043748709905271777821175407146157438349246619341435494341631758134644126499336116626817231194280144586701650699964810590934511973769372544310225687818570716807821912581241200809152309942389539944386789937427969503435086648326426595357275402211059832837509122943058886813909845945236130539189366492824504381643380229148949431456959205704041240198373169945179222116302510583784442099530818796114537129397176022066975600853660477422206921981125711390875730761049658207246108767890772307263580191920029339978978610210306377860357806481717161500287162276544580358558743617558482700739742657549901902573401476994877163769896228973396721008152869460161905008421084647705903006826557115119479187819391032709289467112085035533637167171353462175013930711618952762419667481865500598967998278105535661847061543310128443913507719763906243364995532188815441320460928128109557866421733961013689645627997422309473935446202441764053177835892231011140251448715299827535209647189158013690493336651188308937140479270345133374838928405767371782477334094667335635935024832641500823870785717321395681030551242824429751441074705110944467701030183296585170283922370853289237775672123054176971761538184540590021500942139404277860650531728989837159356482918799113594879947117862531094122371503979703230021273356154358262818893000322680166151649940226227147623008823157029722806278935165400956797644540966177414664941668665834025898668470710408772992121610304906009581960672358188260193521015547408660126559013352985639943386984861111711273491350952906468325733403579552020169796420710134374157660455823702483900193218822895643602154152270918572670647706933104363672228289136702496702139239114159468182394729028407997725800645113464570269574804962338534230943735776361337404611553957304521937932364522681667164533640089475965294793541418619003370499130363822612666238704979628035321324469437865692523979037646887928055771179226041210824330948490571683466750836877843468600702246558547681118004171127878801531030545421124538883284519151514003638172390683546748660646564031670314362564013639203598238314906168235558332762318481905110420968745163023280743221009231775912417907716595773067327929650520412918276785340627152627521023519649112838477280185450710840682358673290201835537575673804554738491002400654032627548109779177772352737922833166760520711809646701629141671713039092267146868790938824006822510245403181537989934996092356995960299907567466935352420067034346416875677630183646072413534364370563065790924697646965858926985195357262908253486576138081173662400016997205518085709756834335520819236843183048458662842010449800242627401040357316609874609078154930084294482257834382556217710436938540620466089646422661041802950470400111951685604888773271997866534601814627438605032704904741787827419871705484556821632685431364514035621722529039124411597002575479685019924744731188881668244897871798774213207621278421105240934125125523635749771477361348759540299420341142232019571595113224585326973822973424217153089426848706563256879764171745346000910692103373434544385605399587570813091658201247590822016623330312338711575019175632284669165495405446462494321641475813523073425319010118312378361218674755644090946088288300119118800181642513859207397156819002935176333097415566291396554458781871242300543563733863997922441304838907411880788269215186899472353563573927075304774648393220275395098024788639569133429919568314032739835575432032060331269302034028107609375833961646053971264004021137895328840885602710524543639701784733097605799183180400322608236104168179545819338314403887093775324533629735921721284881190297931964502468774040869233566400553866471764723393133302104431390979166847493657146448387009122108210414944371650489213963129503135462863097723355351506917951455847954826519632735210381591433114808023387194583202539670700606448913433348051461401034370912269358346646249314999280209507395578068146442124700814635475833407728075278376244888089762109333730786916940854513943758469351800330306064676469502698146043492112618850504977326125956300897925542414677945295036503050472807200452597453364164160221497706258497043535700522226042741550648553804517295445152618532210002580826905336740569149858500041389012065741651148427624542591985499968573061701219165255855117423042717548642772084460203438955262920759884717740399211570076449253524168501612051528730276763195187798542403677468628675654495858436858712916110500593197457928996833007717707007332892425833872523431921234259967520724214171174958630088341467470283584057482497944396851135892161357674441352131288418745681970960716623489208706950095168223203900128057166766504720408827536791949294546110321275621498177314921462659097264198136216460401866644724976985164017632529495369519323356549504585476496313622409933927935310799800736172918042920912477914219242641894207742246621399372069988177356574972009853033010578120732689635196766112879043325067646437064750109665766428280734689816451473069163631897754021584807852032168398598033990960619942856016867625252845754845165848710239713077911350925476748027682287404313297687600069299089849832408534519308757476080916185149644511322874365933533018516479580013924479087048428167110049039788666860001768851983884385720536047258772244513049259722993218831645724624159320781278719036796902908244488191258529930625029722069330845137170963145254512792765027189950104851611698654936124664983665251699188273906381640616287046207593730681812428376227595458829147153186092024099873335266093663609281162021446378183664673647101714528422638476655792780825402819864973775845950537545158564966961979520820035938339822582832249935603215596887328142959668516671647772809631366504635423880855314998982862435620566904713857546656352079947614495922399091875338260219637729497242823866670106900109805922002078161715314611672372904491603253415252948547151714336128839861803189476428456909776354992479036453676460459079629417354506836969638703906143859721245679836204663442726622866062259434445607842210302987953409867583839150765827951116539234478884237964921888248309772804226204496967651298796214441887390276898679411046510559854438505709087524669935545208072553025721677765021183860738676128039371056994295893525489054001369741196720142727668099431798066294093800484992565745060190180179956655932326179668685287418087895043094859553280064831085195553693904441920775118363630413197237512806620322003520830166752406410929961835850539705030364280805145172527832291093645267442790087280343574638337124138679065605322522807241342611080149409802301649131046957384750446439239651942231328784472217183801157787124431641091548570120513537796948097800922666908497549704840919837646615069998766229994315518901498866634457842523617078366413755232160684770453535866792601874290368046170909610644124366580353745601095781310562535533110837152483072116520740008737366399877445428796226176764203573494910999609221052069080993780294744516886318613100720627171477793525098308526226977965811237360749381287249522742710579527628302842784535087583416228888328084097693195778017834547962025718482919013420137693564294814235241005839383198818540248775096739765593821143016576842235579166074283901330531779548575454709140133828876157459385793621183274769789379433509456853211594014787224598822029302821395694136866677519969583760369599109112405097791492144157504246060190595158447435463141362709339592039854015527395185009786089366265944428096623036589476520568204936838915702757750133301550247791435136223931515263497204847474482265908592077259399975255884609909003649269435511238446620242488071330521500987013330278622136438592554202878546138484032744104424282864900899656883832658425208317785174278500046163033090494570552948210334283271396978932900531899298003880479088412571344959734561447932606650704941658475195547227148625465172003249126738597281082303107273037839682940904906988977144355166548640802325073743480034157641831747902771259729979837031783006456931283000514875113448104642459802009009747775482532451764344849370980581967864914373883234953005731315723170813821427046967636334740135315741902422046721247202091195884072743043778594900428699865582391122411663301380555157685127238256400669656585756773724747105919544822349645503913502623409162737280398492240202690958212476399295214407245601101079417145494993273220980001833780393259334104296502055588904547247710200060065503087453568153437307831410704799656061428723414645606595918801680721315447966641703023962828279159069607000513525947187819336872428346326365909031348364462632836959182539211367936039963033810500291109162071562377759161977020873622717821397924231082233711472875637175035190599295912847558597737982108887897810814511871864408329953380461727899408485455012054362333673418472448033198560664179494404900529949970131580985718267767871406095989627714108148678665760500031415168239724504500082639196052282014961853125671714252748804608581600336423777947244418395822542167127679173099800761871068023975368902602095822910568174278337353819474188020055903518031155227107832334926503394798409738036886059640091412580127613590212656007346121773590201277985818856409159732822819572663042240914855745700906992041233556191256310868078668398434789496720081550764655787200545321286385108758243081319576837716602048388217192896141683217702767154723301729832200757453015573737445729847058232596595916094483634666247496895927693813061725846987556708724769900199684079332166554232379571226646766881740186276149630394681931613320344682172733530370969229405597040748601293389973557542618715224760764696280861416322065012099980548245335619753585062584280841168965036502082390095857681179743353904989845859596729968242173905675034399919631715820301951700252706598171901683158317847258671978841394849165454257123350323526124652242958012328474347186930011209640441273725261740494857653348705784058166207899546432212092629523454436047367789570512351908357548019410923913196506902392970321952927041706507245950919670607663081031655360123858787220020295743630686857081073005919766551821810089136492968780649272446276222962972277449028408968012312999507516105470693783509455590484302069942325126666352613031689942991931832693218330236977584497236727456124210907825241597367666922973423180592627352378362011873831414576572676201255957113171599957820465076089330784430387633090633627124255853899419647009853405625757198964522997964531812294088664187223613270568994468542162900248341323905635543639807464282360927769707352703846303891979413008603250091127633259484278126958907801296002153742679176251318793306635349032340696147319083297564621396305456263878533539809330625847877738806567387981866961413264625139493454649011137632271360930855203222103884101500298932395514330262482066452383650703704895592159523613203461008981899050481242377329434435321333911264163196617693606879060721593566926159798389314289570286568642407033153658420655750977431521815736090350766293150579070280350150251405271419225754494482802524561463829035965095389460404726703135787085397368504803481628262740463534814959519332971366005689413412028580266354962664027427912591334924562498270094360989661955994531348295299503558689826908416672679796637213048482230619520480754298612409220851929543873868965842159435335302460208126682602814258761924449341473047104258561261730894409715931596454928943317330800102227946788119124846931188056495838484931011945560763154400915101985517163947252215828731285384511169848374182684103091940694225329174164849268381491484049468029899321058894785663434985481951189685314020465939036565365124276745734395700462170176019906941767664056897646148154559032683724491978594587384735435786287416545669852257001609908455629014312241810673714773761280887355014493988955165620626706665338272236479843080003771601857952505788376349539326949679972225348065549764059790201688777860363650149718258536227186215400430985477889358214209779610127698919917780663970429872078049734510040370278427816873376230163529401316284867512532302627805882721783978303005795096413205111939977527607395155487226685814502143938058557319099979691137834348146562603498333125303929760514087722153675442765818383184451614049871418806733783501079961122694179984376899556302223197869709953183687720587596274256795605595584105048186986022035951324556642186208881940206714523260971767916287415993605649359235761688715007653081075324010596337230718225687070343357082389185742627841372682695181543975130487463071788559092914076556176425485759732723478828320669130263977475291024124307217991365380313661808703705239871420837034302666937073080769547526611037679988807594216391525655157408573766599518149224155944747313795104013999932168503954775415838628389909174063548051826662947909910473742000241386726891623186506660873725497166242480013908952247125426593656032368106764790565894227332822804977538262094589365924478068496636526284333461384777651597599471619389715413069788176645807111404449975404697135306365516953862393159920661784343910930260599242681825855816012546945958192132566757163778185468255246991966708724516903774029960022197475803282182737961702026679368521646684459185445922319046024449419520345733210061274728169114513265620264496235129776449234694894881705057308564183950637782070678321291444467592517237163820842495951265904407117262698985056529026370308727948708441823664694791112719066839219013141620642187390950516340510055780705102823330859232431554328895152745861667781272647105399335272927993714567711675997371758306325449272776052052119059659528572034388807136640304253955227263165664734379551528687482311156325196562182213772921007486461424940078300178533301234636649636264568979766627487036929108744462411516196569936756781937395150371600945472273114723342519319687791483683532547909230805071104871792368963632359651030437032634799953264990695400431076904101081922530507010903527413344523424389843154742640146644904219802874863476309863577546542986085544405440163715772866488404513923224218076469557348351322956630507289472097898855857073842812128956335466641593279496766884267520711280375884083222880922753112815553624040852173311725364297037235470868926219478456854262187061455113727864243008452672508858718065565046004195803282394197852504259755917050827332665430249760272705876400029702045312663580549395258754587483123553499881456834623210933509828072006303238071395540174340519076828655509773620254633204173057077982195049534174786679725231749749261520867739859063343623277297775302555869779274654682343977057918850066779319771269780568876846856205221654139940158947032663605323676090116299204984308594475997128822006359668463341970558166477639831345575857827060096945089809097242411853644182286045128848015503521933067936066595114799682450554805621185445537039996012472245121123879465960482236168404590128389046786689478092083582110289084413328772101500994329199763874865659161718798069361340341284288173306801128879901440917962293569008432048893495219834201277818325001842067617858701795616569628688844620113772499397127117597002693583052511119166128356626216193357575400992936870643974890866195172518456807298437091374172619582158311379161028751980478392966609284427684090715382424464363980322194196056433677360278022770786499002572535551541799227096218784194881900276396585190863785409152777678708573379917571726805853879063964920697687362988822967620147800736491963903596349738436477620492720672540049621136395528898666113072913712514477758669108112306693868820899664844115935136438586466292892505226498238740045700798562161369212676614043028722157451667829421519409784899092039617030816936170097248613262546717925348197944450097281550563080644612547492350133855321042080052599169334971320429273359075866779674748913636878513469298664817353359868384154901135324411958333437040526348961501494642705701024813150236708656816124623246682824262324295865831302132566196280531410648236888214992128483923661791050326629262581255220904745540226448188855275261719724731422928863342265896357845805591612740896462893095888793168224391625074571647062661940545752882753535052757497317220340329013352817844116852269021590266634424211014682081032625557681715411837127507063934635811907748305814285519027369375649429152345759447951425832821196856625659557982740015393610205899168851582282305119284553225965126339919933502015957297283014234662759715603683238431804255795908564500891506053510009913533523412903569593628973378848225680564874429649153110871951682851416706318524086007303163698539609855690547305246368098326932576977841793365506820621564883830715324878491109633116186617322778149321367029901950078559146163350762050908421556344062367947094327876314774133124060131828825902125947055856356637263241044584059332834125805237249581508571871710622641760845372344099015360020774676770911734307553327695449420054891794847478545476742529595843013854229023833487503098289483455500191845001891022126579672711873600645317117080956802485170179755017845900246005709031805678204907125378099288295099155592018120011174205370747408846578082785947937115877073336879589889541372633805009172031814102210044424361217452655171847958397771103576356869459668815023187023531962991383953809055183815071851466770980667740585261023626704834265682006378953312488999388042511250884908659128349117580508023469449981317837581645448420974240472811663776459253868364718638378124593765902781331101802050644299384304758240924646958251158544216392940997812845382937473987730038886102283993060031725349511070983790067453486704301230913604579096046277116076252737739534517247979299629525547091879446651012477195256460092683995275245778737829487709892688999828657154435902964224962398811670818090642627637938230891190328171231217950718079813418740443751921739008825609657475720337025750046819854274937192480518157451141044083080255774180279477183641532600085693987651826085568379329203617467031258104378400703562125648493562966353824727013349035980451675537539478944830229389405301013409605307092101169922775342678697237854397990274501878166094865096064811248958527194322141204964246439124710206137409662876808128182400455490123757758997615728533387599892960714778805151194053361577930311211928189332486502998052126291274435508413667007792793750985014948250152613532840482220086421046922568138220121522677195828154248194697529731292427587297826825065407598371141530859321014738512442752860691589178624843948158195332191204785178459345751813274074368354753835053946623923420193242669458523022399134304158508604142984939087391434319366354289308491447853837319961278971234979436583778684328161666415244549371818770630519482474930546152478744433199611914950410953960869423695368727111671715947791140087602227087936197397402057895197912455967300481071875590989819657937337962075820592417153742833696218662009312704884758258510164016343426942354812812027025322255700812564483600075961297479711290779434394954613182485229960210726253607105167413018900400746116857487807295655056944690218305705943997209009012446424448141215690508819670711129410796095113538511319951606163829552184011393231161274759454988236364766665416706715141639058330588805752285775909272707804154918456873389933152259508865153491028793016530297730985314790390971920264991722284208636183786265368741228624997443346876300397953292855886681038304307085357074378163123192757553308823098739804954221381181516423944559929358300014144040061457876663794609530114055387835935708132976305404483545995958035667966072181508943366981524924264580397568411821503821388391174847717077207904117636899805196787681506946747537066840851499156230622911872177468927585383007685504195842722429667032330424832079967255135593073044920792143756899272167668457451857792883614003027511086670062749242111689602212607384154466973486678652706715794114248008749681041477822535392567988183212398671486969096636682075499448616777817625611173025495718727165199638909237321684422801504675416833535913235186384526895180583674496755440272014108506825483482630930904513663545693231261614394617157178196393489368524321723061558778667305543310566847218550467515242494300510461433924718592477509074255241763987202438996317367359574142238118936353683821181662980938414114054953022396185326433822862605617978013839346246101527703021998436809799162649223781197857508625117795992831975024410320242668363591114037493173336956031249538344786477500487125680805692484519004939396416078538645141417192138511561849196216699458563738041753762365284337010988638309431557245052572524044581689830166880272298840332955599991864039246787425728890191201781451889419709814658032637634291244179433434139367697464968108393806397666055425239348511247973383177207739745196524846903016567903847698427551659579173590529610137662841415339376944788622168398900480776472838041988021188486232765878678957800161000850882635099079163451262000073480371441612013566495198747390131829732788523145762511560012491770945631651931331575696280133370068660920274841017249902701141128138218110376900333446023606811730940255578674631207569981665143884268665148548016592329325808881793922691029718944066496373284853080838875740226979827126233467927531609294219293394218097604696041747381080088310165453813481844388393277352407896165991945669059392971614692834066581136254785174224409190078091382842497404680691258767877271637872736617440929903626390635611268392298571982701443291756622840621491240882360083240784157140116364762377051255762802135947286596588878556536058510629205159076434046874632475661712331888090518114024666685919263476992958760847750554041789955414455978526443539345122294171390328552194302501313284280427081419757222268767829019324631780697771514137875605321839947709915261221371888111918644256671606740950443015247774538073828685776619540286360461199367199716495329508776815494783936938327081979308317849037348371823106305589431615007399802379514636045278670084879723309193564819599366317951317110217785753079404766967842495320882128747955980629803963231959492527209722702962718001617237610352719504072393255386333989003307745518215805476012243687418180436756407937910407129807466282085322652561109157440824761516028195240279068389928229910711245549933168177996920088587200915719771170520147669245855690191899742841434601294808207375155789588184331329719586797147160857922778262318904300897652674354096469056453405402372417049074230684317564314091872529016979734890166445568532923409137611419948455620196796787103013777909880122996487120612550752773822311022157525624272327129805426892605965656001961590604855781893540867957173479709284425505696158699489614686464086988536354392703267730591036966483779843481546003378463682201916276532879814842949357029344255408017676690042394702964202486790064336601078559965298635481685089440455188520238610763112505516800656684094362001797713576612243455713767556278736633117929282024269820497449674446869785358994749498716850857422833682813668013614080477169802995016375747053530294843866599110783058871472804471674473564773846871496217709280588770088102948497747491073667742770817868497189315403094408649895986025630646268251808803218708557751646016007435584387634446794130264026789863349188804526898137680591103517604664169878457234761044507349628883753654551620086221288594623120527590939646783866039807574440135627524135851570532763723277292207540384562059842060018551243508717938026026487112076812646391777605537038455871453496884655173734391680460633681910571399782306498263716300749337171906389312558920277677214026836325471853175940596650149288160737659163056353359975936702012714685223030623052434349771270273068387003682295323047365875183842180465255205682404319214902071737073076221291112328284252552267367560812013960192567888712431566962978370329320437977988970123737422567128629596617525883715985234823457306666682677118673465424360697610102683713815248701156556783082870137900943073806876999670989773085995386732395255030010406970218687382320828016544522268951533118258635603806074446926387144271275030515871086580854714906278490722935072669361397890507133958882312544503792327643249593615665194688911206677231947128470419432551440728269411391503438327714396287920828157649743272138456865979171730872273112522123677678918027978494945646951989799673507771117338962925011869238787701753312888721153425032597485340657866453823426107871135433026639367895104390334454626862745137285889801098914488409433103386055182357525093450696905648731230788898402610190238885780302073559177151094658805631447484876643216945467927443126657198169041296020472535633967265609526278276125984339198605253972422047826370225316497317497440532886520548670722988261548205172001966832735586708239099058838483215961144474530182742059765138606272615180432202969014364163517289443976732063852447761754546282536236920823348470629093311552223103204947513993314739265308294290246012471632983680613207193037286394828473008634938591363900931775086317165588750134090456944364315053367432485169043473375693451558935310839976638794378933395353747867703789588161189860473321383124088079201962030066532059101224449013329325037058961399206101977297827579582329175871162507318839785764743419386941815975858669983708664657279846648128606069014856585543700156509706567637943550608745206254597751645698769059307396058920441966970053930577964739095344658812389439659388031101938844918623908009430185344587493800499571940745974565488810468175303802874622164826273012593928948639043133028704214469061638732811090007806424189803908555709505971150125365690686789285588289340773953167197334281542571129684715935238547781205506048404875236793312146424646538651360416212072756911023892177288692071885928003650055674590937340591821769084270073008204081826733124904959402436273629304550259348092675641551436902152793703954179288984447745307748112256839442825968960715894808118227915398930054880457051560973413804534820681642830857047885179632781324058039094952990070552626688983438141864891710764615032326341719934528069042719361778281096072395151404809542990090333257469449289826841558622743308097382321219027462927306578186201180675045828580030842706320633709597657965021625860307359454449270700087781257967223204889483618143899307809907657777182466459488048434609548061561554547670331065326091069634846464289420295479206106785623718361405727895325951153516823534733074748297561819168241074713807901675188409240551674940217441090264703915586162241495739745070396151182352262741893680363585818905125148853750798896917506286187222900034772041171907974721435700863346770893616780082843745897498649546468619364142146544713962784732628118250263780409535877126324066899800873112438221711086506635559026855535194886589016563198546371725024787848390316491637439741232044949533671481280199562577941585681392699696239864386596813261341320511947352948602480128235313862758965894382189531550356075240504256752783449062308835893633865948345565933679502731933315910792848667553322293293399075933058307166243500249848670619547643009339117642993807231935794156872397033018118689478476208011720428553765395783593840534084194973462483507027790600956033595176701450178222452272382765624350070789124481835027712167632332012542071089985324286970455070049018016390475665425981241922468752063236613399345550638633274462310251684636181168087136162495510180843553127641548667339222215402556145515283051485259584974624678666398056871684176201693714670970058596359595260907616529494014848387545524391710115369712911596215105146401773465304278977544519043739811080140507025738517761809072785588484745630276995540940874424947353134338811374209957409674083238480805305970177755507508755380593958724466466367538463669183629637515571297148182002759233106696444905554963025409097400597223597313534245018027396540183865496337072882588711169232472291096328220818738952307776091599973227846957878420056549083295097584222538335780349231534787748112973695520150318731459622859093537540087861186260829485326500576242749536870131680120846474835412069023205499595353524526301723032324299212878398189362258099100192024801173986490593775935471505066929793944207602318185199839157810237428766576114280944674126715796062623108596662561057422866249307869610462136291682409037915308485547399034624468933473076842907091724619935557439515530285149682658790623538201457652308447664004996217010148299415396749508821085155403526658143681655547648320969997131543997668138718540320475757798958006885567101522546477840035394028526062982476024347248091085399498321226569311308284991848179272525355695671501816076061801987774683083600405954449040338566174032320093806803300021149732679023073383068813493708125895966856137433207751248194724450796338823122374833900278140917189929582609183281080549650147692427094192385098846549875802237910010057028584551548368062152751892961509399003610994402202961740312107204499807694497352191705304571054654615330955636452637692312646099826703579191383671403613466255008975226558912677255970681070705854993341040988525591924794956520938707713863589045493512904175968233478386419219018040602241060222197904150110726144025772881436826528124072080706357326592118291794627071057575451300823408492853124064864124458839653442904156840715961204835001358794244305470961147125476415967553333778709408854918820702208765303994508772485346542016962195112666180356712347983022299379166620720031188167560850725107976423952213410858991715705723819689210785033871674550814982995837310149913021857205456681175768816658884359035188102616366349092664916992016405091542196102221969834889094885617995147405545343144151732457432092559050675259334364912234847270976299115283029814981589949848181306213155676123016382306555768273675052958574869600886008965831264880185948713860974690213237885089552358896144804561764007489937309182258917154251038512701285696657968855391406467995350092606666121301854164814991541120866351519995961209031765720545509351299818221891919532440432623099417989467482387023287253665690461434500420904250920475672318205784288636155941005021871429907275429857964788130728064857836337244837224571233333319998078356953442604141412956773589010384794277450923075592067005869602177662752111151083494175764950871943713047334395692706907958390204750732635787698952786703723956742498897956920396599806193110069110835573411960949643570313007870605533797711347966514774754570396485227578200759052080461125333298874488523586807594348099583961394816117315861649590042039365505752694402778333083116221632787540841067745819162505241956206479416070402961642515271463245953217488290092885800190111417670450481283103018209961567986470318084901931606003284137459238235368218147317018463944218196559653051181456809227006214541275664535208052502866345001808782802917195513265039641484819549210218444984636169021789946308747406299834394888625809981239599785624910736547130341149155787603022472964067144436219653827408160439687987310700285264057502176908110123108044342436992480474502494978156694549763233996184601473131364241264234079797169173538085621196090274572017645422818103032839605873966170045556401597922667593390979421070648331907159751775024276408095125184559743704268088393307130049427264092196964212586311590012197119153853331395530971571204083860625172332291523481912758943919678817459748362862167031701560041086101695458558392168558376005536662542008390745387389359335325188069366226074707494979712940604800085762590573909910439707138366995356507283624404322436520522378018388647325130449100533643838115214657191042318847276720292456011538403066288213656357792245339665786542061795880375059415574035426591984593269321870107839823140026446679202983754932336463493948531031953275598630035940122330649202286835179017383657535940492704256238917579878641911634358176911680643202792910672281744916162557050090810487011920418855300537807652590467087943126663808174755629738935649299698533829552998948696096930454428952743154785341150124601673164603332485220085273280500707466053208521655222761053466290229940694556718534008517789352703491808770743968220640704090827869734671864280057721888371661794219145432979881748495640743805356042569955294070226933746994689437258240204329261463300084099541835199737250169071536848216672332342690577286902774731083612415633331182074262657666022137935986157594568881611419554445349096001717135444757202491653627279686213307407978471237387809370359888872431032623558111713652603780701443451428219334383410897834273740965616199451315745344689945877621544076806136959308301526033658210291918972026122612933732244966497088525794414019058235472524412004316103028723208814370861496319731114972870916539580521893323146345952738534791318740326587042127292278994857382824571272283516914985317790476832783577912415857422298625945850636300851056157253805660836561486688472129822359970252941590454930002243269403773292633560606180286706771156540884555330265741914583614593668225798188719723594194451781649081821038754771481389358785940336240315359322139093554696138979299463587118258036085875503200424039237124961053994965961135386192764446352035414528850667529431972040683416946441251890039266013308066002740854232027801138514000675909833562303640869035925295427931523673788605513131657011973414765093117149328223545018216352711377575651481172114589643901847571942639821683315277670007720865483110455233684821998394131492643595367630399078779394889564964003699406580533040723908908689609681078495402187694357752536131381442156148579722566091795757076202117145000294562166794815449453298853902550825545549982299353114074643476107072051011663746030874056525078051669220928231163832772549752482758030682519558382292636096926358885589059875486363714721852699585181760614914673913631005711626184702657401093480947755889728739928012514065280952648167895634317942170725951274823738229225305817197649140831222932309596870254513321741864873441473585642873395978097798864057599599095767552267844852275167390777641351747403001018961061187976016477950127745572459865718820721857188881628725865058810346658941321920504553717461052126486951688163276581090651322068565971219722304161448350078418304846471533306685765875377184270569742128927348395744445730560432520491639125940979192375542619430300149526655423507059500595287109417584851442202719494980950211965701140226733674564426473930834050269280898227485860580918717459685665759364228254775347825259531636279742531310938428497136353331492142218175842216440439048372535200186841639419281607619800721168286730482732442902444988016602948103711140477554598077836594751978020425278346938678130667534177146152657565804904495778794674162474368019568593937062347166100861245360448370042941236661109599965755596487838325447768112479668852279325225077940157514165066614829859964349334571736857971945737233821757949900279190145144897714977349460662012349091847754096445038264595947717512802452486441710752675110507837249154309793947800570521499661401358067687279229933512265271367770555957608128831484710031463729183142167520348029408592207050291802366588021742122258365858759284522889371715140350106405978622224900941801543010477200061974900642983091514733361813083743154813637474870026628010912181245667306826261788110268140517199879443715420216235534085222219113594272067882426661787254864657000974965911004583091837013567223812192461548920921510054721782128887605761755610443184239523463803792145600984150029633258294841356766068743334535383080055464996532885730318907489182291061886053295456711031629436504235538286142808513230775170115750252663298056415577840686039620980873814108106055398276919988119222617657763158435839580792513707767040735361388189912545811152450228695885382724502603840137146870779688896222129236967116451207774777872576857227598287983104603291964681554609027334513772120281881765555841814592092891961771674572657987656996961320232128627298609651852607874243443568483718247454580633207381249082977849724658583843842164465302732897937998757948153687291097642661481172955591793197929722160006065851380928808848406167959834539036941903581161975263076804413093547738860649138367877915168967731002334485030680881158227838725319264054665085188091386561301076492586555919458726121971090741303423389674197148272584428382505844284617081260334618416211421527401614631231218846028312547263462855306078543811878660252768089816017776434517927207762210740117861177528964213387746952488935964769843481502680407690933351686810427322365341739089134380305895100891284437950630920729686553705674221385833378248810689649904104292175826474538260710165063241618127551075561348682601575048989125892260302953188241448370911033769949636318895232716590873024441653430417555755589690128909274372217928864802466130546988990829543156337379028817306154961098893365692161194090889759258236355544222484715738314028711250560646757734112950264184507171637984311440277840813587304855695539634489634919785106114929222229431067379354498291890221735191143298079199067024159621019771161688770023267439100025378830229876682624816175007136429290012331794935461827904576721625728562522245139536188746462342297651419176548469143538548553113737886505910093075385026624947641586016059862925354869892847573058758396487262628923679251330957442385384130105475845325929033068779352870922944773124578767236528038799316211292428195340769802823048119892592345192047733808020355234204308279960277104042687782142101930035915004123668865612994070846195149913347721960614165572579911943121363656809570924504216513237499502165628366697859507470124543321911958374096966226509617403457423436006321563031570327538573835229418448043774580215678098955629787314158403495393187840445362517951724561158380084549729248203639473110925702951247921076463487778127672414713059944965093367171860305868316932002282767523698995539771576196401751791816760993771685717546124428612607268716497402532765658415786062710131929305366647248904475591403976252847285309359601929081628807305992935417684792574423926531957648460983801709661223104353508673549513443846578682739161278673398318251328678031869799403606868487578732640035226319096970305824630923314709949509397940660919182228634904462684542221955674380793319966119363117759402470430095584684666169940722088570107414125819760319524135036054543269886318402119622628731643686100920647589156249303861726567951317818914494887040604033236941098896546651707638553428506758568854077591509348422270693022116393237077546817984401657271912627801808081320144316188572210197431546329602799812312189509723934204006990623960711014529328817700197651944744309735742961190981911769475861550990943095737646099907306030951217649726319119080566158873502515046731447785759735842302270251635735193370364078591707778905613197654467557235035036054415906621545397746486499044219943705759911504935178418694425525324928434045829990554807469913538954059106634283874822796284624621613315663816518701786917542037446470957430668971744208022454364843450289081522333844530819863159568063502517525925780834984014578024310915438826727074326173449279291173069732977037121174174912610339654758609616267189468878384470646020944976351164711633276682218973894131068880783424602573272187890815269522107354432652269475971595102056228812771331597246096516784129084490744331508555386886093626561457999022618194960105525971320332904916470970618757087284999861691366547391260555113182008158935397770489924181673262175044917554877672151901967550341544628003346849485127269298395008115506537596849887143651832029896283814878656730561843474633310126953217990598945334068543244271908390174796635664345229148752790327334919786755817962225520358615247039463356414580342289842474910412606596438270853269580638115741115595231252988890305103016500512968687367763027420348350108470948633320010475932093025740587124814132361968165455991502772312319008920736937765349070181179852440240622949818599303830273970246572965998727157381407729852232170332985950899526724909261152378667585994512134215940852854592877686737501210358420923618370629168242548444473872220096167857175084127577097147755557178887904822929384832257729009955609298581827465158182581611708749997083685328703486300929697171729754164970726597673911223829646875666711108965723293279616182307542542009500716272493849369174213776002329227844508047419891468053770834086788156256527084693117753102692251921107550394321023870675765314718784526285777690195269541618217280391867901998058085606185155763985336192322789471435876472922651945722608081812549759951164225540032127428899395552752579520045339003453651666350951478137336340877692003045572454091376695417994939878569478581820902274088318871226524185078117326897363439960761775963977897674332777654923304901649211617372589905659655832685601568776770248609901442828685740642042318188908947540226800492541763674939260016476733437800243457306605172773626755041925408713554356186950588356703840363534446819445945062619342044163813767519296867204125991832580467327591945922998261974867054066600948812015305575381394036252229826232306046462747096754648447469413508801017165060519686797105864260817597945127900969649665913744386303559930037248209669689967494289372223321195232112317559368170547782898999598101058574403635323021688908562877608855209452004458375323054129415595605848370207783809868469052420324247419700057833711267033168909472405422972571292635386619252215180041125899444312203128705519033638717246792881478782392793347165874402120251100072406034439449659005422901386119586481247614837140139732803381445075686565264945306088084413099060118993074340592267612969950975062030654862774490394540308156623406554796895867590877762371010329764737146440542962060873100794576262088424937248161647274721547059624235289549514013221613047852146045040652780522365275868230486976238640948497583462301662235935655078569967482758369333842363957982393154549961932279431753290780135094121197539783387930216987898369283944468955479881303482428721702123686804503684660380443398573831509320651996360261066203890191654534871724756805983660631348498870600559659332195813286116951798468311702923000165596635568994810385371424318872184666015136959147314676151661278938236081832157548953231085574162181673524318282745550647967004253680527267640592045880767258500978239907913803424382598587064958631406114774808603138385173757738025652391921840613861886520401442319453575108062184780236746301429310550680655946584206388829929410771907728614831730717459219029466287856181627198329369320615827519082622813627472611046912346773227277238709102414559501196835683548168718265067058031971678355733621347118066738197301665048021567647528859287089679964524353938692163620088935637380647078250601139731065511387226691956140884150596043458251130669168025226010139972048270156292470766750387559731383982032937002534670018942217569015952663903164816861178397628196491391734991691558893572065391298565909661308198713603648158239987203842419865219315901469077818886789563715007559310741087013506766402130766361752290824315116779563379129541216999356399094776849004928932860170566040585674024211041575405825468965523057805820710589177737104909197633166231456410178692422424281083152739697454611130558000086487340783030025229189615197459800695040008285533559554982064521643003925171652753114282254003073872287257362072607144136098836064710615546932140803909120917965116742132220598197748375879775674902409343797708138859892768353608965991213161746583309352826265682471442410398680920963592439328286503954363536108091080613679196399552797513938984365092375041418252385868981090868973357751428245324539297374869019164271670486793823914800160653989207343381041290963564698043484476718727299033241495791727098204486112176073443703341150355984522605695944589403440068938279614553770623386045214309721616425663001763341812346200070595399348872642707481036815177260366156709946305957247860466834247004135015209494659669236397481396539177199071025017018150652731116720417008133894695166894351513535497377764294155580839026266500149874827605267812523187369764153485215579691212417404592546727685103658358750652767602478657630043901609336181270724312376692979112077165484565712119845553245730798724552714022909806777890729122791971441080198685380102998557544613798499264340159660040224977171044105849059562891636497218920902325547423946148560550383833700553567167047613552189227463127502552758708494318923791263416323899342270287106600897825859248961293788614114806111029141727682876143300156065831597715065601300540321660107457843196399999706681648248682976758263350084209092083441092646824094131017414974862025579849023771260934367335273362449747929918586438441143437085575874100015112771988301872848116722952982600431475986065938330987716480775542888043961613979570023840098807565296728875988276279504607502965959172825939494926826054283002617780566090241016379788365498581960644345580708885391418328891561908864877376144101271971750127276042346534268119319020632188362580149071844514066199792533760698794836041068986916081911533804122778449242250052105809304248814376560156299154914952852673184716386270302043175896251157920788380263484274043826711940211814051039667028416176734582786231641833708045205423283554449211333534043135663340262774474857509287729924668770496083577734856712835887490534287996542444592277444862422560579616271300168722836985049658860006578532540722917638777921372455725460489454893514901174149355954018675353929559046403888860285987140295146439881474442897022354113199764602014707772161645361484273944751262426754311628493827895826724167637134444062911912910218624673358661890426544795403738060505302094493062524686162726274150549916672931385340672129825597260148498613624914123220420842057985336773187866374757973826351132541062243466132669116129592187666348182044577404483854986650948162865103562550496679843554227513940587660048213900907097921653837553871825555578364946923873567806816558477355877036827402756941832516981435233721963151604351696258775908083219753500132147158689083772734209525198399258019781002706934647705951127339002136474533417544008319757954758321957742108651581483733244704058826869420313543868314886932444340763202394817177416729780838146896645115656323133397498760997717146274450569846875417177101013430525868767637733277503464855476005359361319315426923434567790699816007044475598736237175833589390855850210298855144620614566244985752167985597073954908446600778623226720536996984094725936409262609465928824184584929279623404215893506563200402968502034073748562326414205233291545690005437143366787641899758363215387129109011652501823411805912968102348468971566930039955801094210128473179688956457645838284835626642407956005628999959715899248992174271724691983830192172184891085067545370236645754138618772965600202627488363402424931666271123903502340229217222974671476265352200101366204351656662566726510234490208107752644067450680888292957823881194230481100234966484390009433122687025772480102012763633245964442678591032221065256105421039011730695486610381369557398921655507307959713867752265879998986639615557554526544499754218482064106487557137428314785490965254763478517625535182530470400397285556807175731901364955820218536058615343293310438094083968085013869111276658395534036272549940473047992020809642690995178430759640335654421490807391168325456394189127703152909812071989138504163227548453386806862055233596854157764464154067728857428086031507533447779869031891483798675820345676196101234773093597862144537797702460577434710746685228920077371936795803709200029938751609684259318687400024411737671831138435736293282236505654736395887335584273943615702622512792305130958918393670642761729264600898156246140214110416213131394603301818554310536650744599337562575711513120226414808442872276527008182245843109962270889897033191516732785636857132334619307585909615634804281977852749868334630887974646518505663914654400581637883870185940652571996812289332509773597756431179042071937758276536735243186545893270271775244487056844233343439082083527844592782132185581069044014356529924732423143308356170468807254672305943494299976232539753300126461291527554735068716850530234166909629050796742898283303752008210843683782060026375719641968572036294248588166955126181585684506999556868612857796796164817209672775265505276261693246354669089313142731676539829399220464508277046678643832215895404642991276359485146431012678515966627665462017517004291554334574603893922940880687029413352279341818407576252953857097113604529574485930831282925823816528492708586786474482045251147365412075715994680433370853488817040130318183384963012292134126280445469075573838527545787317746148735720867784293146954344421345128653853631231120696122293564953503936742646887296108337267817669254677972724897128789064892685115888478189595615077100759592655085261678396886114658516466539489449019229221095696420196409827625839395502103589216051826780183740036345996475536863873351190914220961992624560903041553599677281233042538279596221033751357161987733942835561659107975725860171638196480583816370512127586296645468859605074638019164800908419305302128589106751420259776065256159452641378666780022065308167432616602741956661528318553207647155578975552776005820018006443301149229745590331312219895032516768996000615328176234329419564056136242567432672588662000022223853851412643881487541451400860978130168333809230752035660282100415757965919656479439390185273563562704846888241896078173091154607377967936643184726016357837520689892697755324410818800989590183641806230786644978544991055236417657418103980222081254361391375017293573702119315785608261833802754149987776341491806656140637052496685260993332144550017042189966957435955640466514646537842522637511054973343706495145715091896266042468468723465146023091641409196805705394464695212102886045469225521343615976123962577244467893926591280189166327538588872291484677314969016422557632981177423115619195975008000522129436059584421463467336847016511933557614717438699431602273344944565747636736324524108010802890822753874436050323831319172655008035535860926352686949440245099126183485087669300803536427950653219875830710454180042288379770185721313224623245082878180860913917068751899879333784069195835829026702648892880606514709123219936059194507062024701207153771209789952542989535251784807645836669473223545060337752754985555723106513198993022134772296153662270924301669640696039510553875195900880317647573672760576850367862623487002908542756947494559477512128464117273257012335270571534233718765704660418399713954534237046241841269478056071520669338986597943145620030255403963449260005821349801553829923012300040927849792266688225259825435508608837368995981175651448152241038812145672829294444722739730839306138453937350727820592199739817453955820708788203055877483507484113763426059787358123560116594241378398428233815004012165683878129072554664819646558843255449839197452982142769249698924059949066592738064476708103661594694777457050926221766144048687522661924567925397126006693022039566048214736501579769169808921550108532614099387463980621868526052425483025567096560806252795489725032486610510673169120341040254793916035316039762334461841840023973522357558064066359999864133973474469056401125774162887899916892512645588265235372988225633196097430952912379811026406467088881868671315916742380259203602406868539165881699671597774044694662361020742964054236621540701105964821548550898546718951355023573228008693537509731081090619698586697933355475413691060289620163896371201333368675102239974160572951431299580005832440928278620271466104174905622572460747500461755141055040390039645673133459532687647980669085921579589959566169181571767299906630245860698357903827171080923395805234136585951902284439263461204243124232874094237480106460246910836218058035692880604490606204269393127994293705743951898669119290046455088191945447380392787474264922211396065511028901032281974651176337097973497016066937560123684221564323276836450224244775485201961832064240203384210206795585463297331727018503630151116094018429525228966458361003210092732746210659920729278440186104499492340280811922679406373468447038677665707239624192756485201934367276451358127608518200597850869089665282686958296799913333241314561120679562749330694020034074140752703873158585017954946637037036267295895189280036579238791206283823584420225964826835622190030608044453551504641990793952768194598597594728895386584721147963253789857837182436247103294953130304764772920459802252910526119862208860165082429836554252058849983816681312502754782346761338401625264979411903364742352470291564390780703979314946843172977832463447905382199558709506620082531096325433525097088355813165556528973248636121738674300793233753732206130943967519678484046889335578979176297352522363991989951047134369920985896078109709625280122746977020962542055554113222377718635253151493906303977053602702551067349815759647317769577269989191003063033545729205468147228993796544629001454327654546265139835195854722301088751552663696615279472251384135277392245271821968301883503320527233730633332178764061146841381778615171179344313163669886586414985995127506539051443658040973254677625949324837613446766588568277394403879989913947053280967184771593089887708410334956904717223197274295718934489222143023190448056337904206451326198100723072811940651151089979246116408742501887429184911768633682611596521791901518558398526176666213754435848291049531071761155038887221572163114595201198639492418921224602744113041174846047631103234644511135427750796810826221380710335601667895743501592041570562766777181302723838228089262686672320787092133800276797567987906243355966276497048690385251792367594857724174955329120116241091310900389207991327478584311196692677055884155315041026915419659025813855941532864258219683574914837817094904951265787679786660701917323259724929097501478393561537537692256466870447133517489789897163555101374610282783068271482716209791965123048847081179940070097004752400679913017792600663388919099286908634917698873455829030299579680733032136985637435871130073446113220647916003512237869073065248585444457627751374973284256323850711375082774930725904577634110651755532492126130522993251544703404808945901535800214567675685528596949176464311676993514502199241894695606384606426082341972842092003372090937815245402954198369482534757988327376563257383993505080215535252925226414725561732866652866209206206516981313387679950402340252529846635596012700655817717507659656479112044043673885767614081546572108552196551959854500484572508828363786369470079546783429189250291488538042713158182774199127094612917680554654230359327692700618099340333242064716717055225141108177302075580236685629325446067519995021385539365051644838253920825056803665280269708635260878036996188034067692422511243253956264829568219153932093017615991098635169583775964219831187330923989411113297042797732908648271357868132828796026373348100570167940257726024254141435856747672905170114538972516009433501629788261330420089043030624043948753645679257862701269002746672325006384495149928563237730597134991220235470494304214986830208845562599799657548239106999469996878784182686757066355518722286741350817553173840099907862338456688585338675739901936743231486458815335897347380684633194212280226312330595905012381483005681457563242190831272335131313768746255764212872129253289659260817742966202332727189249539387570219933520865755215173515974684761067850182855638805989304206238368285246649207927026773953446388822062014027845047646528386830163787013541573306802023854160068941287789883604292960357684366345692198162264703327490132020460085465434601018559726054348472862681612196252110881289446713895334370988127779917940147535835356500198138208062754825360379315914520125905555548762359874454508133560372753772676341233690160466058035981642993274122647241153337361803967572681230331395391439484696257302208604475975426954216165274802754626038149191553472755078050218771254284216966065839354382497663088833214486612754553900127741635663890985975370140939684757359117857471219672412646732533832756142359456162094126889319859165012508604011578787296673933197649009938189100126191499758145386568763719379459638787774503719754433469281506009029071076753426316802314200135997159088825872182161745541236916545643508250442353923711816593603737888374021774840337059944320392212957556198636772073826824775660848297840219884932693981482081864186845469729792969369465533670969012784311496969823525408481584764232507207292544018421486520578017459685638037588939901626711875464090980727466990420321712472849095889233895022043837090575425226359407545365623879270265493693685246321030602174057588709779169778183651631081525527277415884585156141286811425623972273354745050243489211393279509597378160332690774722647579325725979723361362720081378446572985644605270696129807598191204496493061723550546789264170274313366715205348129464306573626514283223602964031417304763185799298188714041894052832801389717882303445895090292333897150035078747469586007012412473685385007962043009025881413306529820122098199742176452289606373965478398317913048676515360972513237912984921246471530187920301623515233202240338909365475011936049950391659178028979742974105841291969088938194147547395533914423263880641842692574548341685734076405369213410166047408416057141524309432648247699302192746489109938407771015264202141345722973094844473884848131101953015777143614428954514622603729504318020076029434074334627638150761152091052396814851600322875438086864725731889232296733882368193259483452467514953140209628437535643673927260096824921304250706506941861762509743627782068469464678837958587585875249254890515063506290800797361182592459510835861684791969151885785938665816257106388073892271304712653399566470388983796533036159753889576360192993949092201897733361742231470508990549857003645260309333803923092444108965034237360951577345544261857680096731772761620652319520226861492617862836833406815721390948491214427885703096749180218509337967500064951080468365841559320168264007857052413012808508317456253599646829765536497296974421901246510947654326935952487540944115986191142356108536524247120880079599909963136567851225143869613971958549002195707364786435392906152472416650570285389576939866193170784036147535806127823354540826746440122979246355664792950273159854793005121233882955076865019658920686812772158830732984794843911588624755860149657258998781474631880592675353886395171225609519439543461029868637033374258880923493092372702517608029045262182466273707926720076658196468397732011878080361557359119795637380620763864984422207613613434960867154964503751438360534077135747894167189430769454076011715952592564797574988527113216132964663571441644665291446953806985320388940424434986865739876949668761530590352440515070316885842606181970230391219637920995463693111417561070880658198280801175680476739351889649526327775021716747830219991091129329098476035712374974944773574173058179170081083933892088225582821773900625638808423976816904222956617706725310382114003344663273848244674109271461566569485263926687888367520291728723282503694048636603712910668139337240944205597957804338408349688849271796368302372183982748757387929435768350800949660118075761600224668720125891347111779277201656103686226707975755786945813081761758168397538305752966735735017415491477623431421103873056647688648150432650762192487134358490865153959935184094528218494307962454355835100409718128037223369527954401419995411120448030807057652691102404374778842736514035343612654233593254548398562061813207044088269747373152492210701734584932814505250001772974835772602330121268393451856683218928126101419915286569284475132599305551658581179842989413277381822995056487030138199135331849270778746879580803560651012092988088584570428366921993912244418587484785862425903860429934321382842883605554693512597508323092222709441664375104403353677440290590471506190272591309418019014138267427045232989242151156884776079074195633822912183034670236822147913460843994349441600047740112017388614376997483723377200903109027117333052812008034558029412471095730765472764528339523750707800795723693550094918623071620688187701421769641826280845965399042417944314250658783625421615267774237460572049116528302462104348476205527764088648763339339934492387792982510334690600039142800840895684774490415957697121715631969705727862592365012446714952546526312907487798040144703039994000791421039379250913570026913991028841071466820172675777641692882039656576364161947746110402170393290449042917421002905079357280533738136085215094884257341228461636082731463923458824714949318511723398514986897322138686773188825282201027159311028261950584464315673866768233471316999737691379261155603327410667020397565368270885284002333950008173719841274514050111574076275473801826930852722578314356317404416497528424303230955538918574047116195482524229503283723537298950390531905905253938910415138998845239636874992143902196109617374388255197023550315820791081362975137500584812288932697215036846186766172048565327425896952302442104918315591022079846138834087374956975040227666480679913127866239001829420225378489273202247454755068688081377793390981770859629288931591892999438591087180240043372452061194256283270285317682864025014325344427919656773074855104617075126594206727272278885502576138281206540083262689162130017913823282225616247188512068731247770357528253429684153260056309220819081209826371086393410818070159235217263052943390204945991508533368846678519447279496963623667114746462883595795664971090845520308873129536956363764030886205399101226933689072033437486402816456875228769936367265514510739152349787545791543669710261406414265826979965013619458043932995366786054189829758096737641666261593838622820060348570787872293605659491780084837283385385195216054155782048794721918014527402968387148388076551453596870184465569782714603948060793516214087744049994271183064393175898848878361138361816251915813821119296701354647382503018356241477842682849085995752336701108990089312845634479774335744492764448001798831174103577541971717888292523151247866894459815414190455610979721762349761032519598256468175762853195497623841923876984904081974432138841579541430467173611638111919285887625229788479419111101709850626336447807668802202990580027533624873126753545282009874457273720813111125459567117036263413122411110120887585556870949354098618288503812195268052500735825946591226448835766079142282187234689712897897495439670781720462312293414268584876669848345101118933731590175567949362841260159457299607906355239740770462464586775091218681007325761856530988902768353417393651884833404470317548608978200847080791775229947534926289500610007033798354929017777051270816097822373981696335503804939992620072255499170714355142125957847801405528609250638465222603419686368633699627498913042088649799676077415328714938104660113127113362002198157889067495619059294093651106890741886559632552861525538903847514884107519858745735381298179682366725024568519379698068935331690007119117232723686379663909910994696604269763990529775284110158647696987905568955582310669964222605082716269930315959463881207044220366697383978393854125300392077711109974252440325924790348351605867676074555710111205030973595411470627187425331904825034391392091519113155790580407199816184297294141431310703390375656205767476046430385980491332583597791962370198294234424800011893037633384570699011524039461533924094471686657748117585957387108614504482059977586328091151685651340128656260020678489361626814523067656069704839816361517419326348934129617137481809235813262727309016406523022740913643638640223402579194572720209174389418434355118590637336693116374155141887953752332756667249426387255612530784100683379747754179398356034324497327234193926147059950300556999484181373503871999358744787226821469228530293012646400482863368717546736690109851890851399679011680377214409406352561308852788960271921492055261489366599038870589968680022243769990498717979179230464991393060553163455930212975926411886244720452645877897693671689569475974721810752985815689891258774952466129104448382494396590067881422965416874445337096200780035187454831631341062160243765208544616378621702639755254998879558833165493823489120682186001232984064732622482414262100680153665429947580033468310927683219455590816065434917308913496619294488052509325605330924404598772756370442131463638846884598001573155011671088566191536212864725460523061183831011984566154599778955805770185152589907398787504314598214641341965071774141721988700579093042306477709381237575193428141357783348484540333414793836812163752115430275952642607935493821631566742397909382645631646602984464940866050171672606681360582605081423515892656265040049736737019580725207483490297503877691871003908540354101019763587980311277510941186331246907867330145539079300249833545454828826095311867419219025620812320118784209112046417222988183683356877398324735300106363400073299791642424173982102113576964275889766078469813601273075529610238705133871021843948962183475921738087456894092198526804556446964855277835932625973057084384325714527091605304931651905147309761007156761189824815597325017399761339721075242822929530443372498521763910261826897002028032396124165051424248589107609821197888534963887117980252996883827820720616380733756499472618941511535653516860236684746769231112210428467588535288322989453259100356394749373053981026887003105004913834326791983869644519876604835011448042129532702031779921077162277258386943147202003030341636269150580803731878112002908661811231664146664668677399301251709131009012898050453681063395693248923777710069823657622293327199725489621084727543563367436404371568065606904074771710989529991780352923767436969921927948383943884759107917461869337272121415017211531945769370768277850404194472672813179792109542811653657520323659407678328459528365744697481183428209115439084649712160962308217579797477439215599776040665687473407753539109174737729726088082383234318987726278260712387335544042973464341326169074861769959515551639772613483264547479093055239783743368564318061205882839037961634075211592609299416824286114752494660887602175232834229000446583074585518670573226740762530948105585860648509087095614378209413271988394672772417495021558979287492827656152650063616952623265440306581654690621373356375437327290415763012223380447116782346530467040867354175973182691568141536761057554786675867197931217764181764597253490079190637607545707025148263797248017767952610530154974133057496278495864836546628846827729345962299208684949556166021167724301252757453194928150025621650278689031380367970285161680234135033619879961095891362914804676619279094106846220449664749925053612064012091737052182110939743875254293850940829160557688196359669381640455561153034156855697585394339193043526788536905683169448384027098081172189127201609125875660148962108857771100326165641619843286417752695330916212541859454616897267846717503315314695686481383616314619493368993245525219103853766652130292274679760334893880261262969608818050809974305295146770008706766423105059428455343339083666624028008287622564021520510639037056687632774324218853111281047092010758146678755693104565460104513524344633964026111801032625651734739645201651019619612210091646274793448488615890410645061002861387753292589909147087008241297786554800750415878560688849772543854909202565424566050283372387622940814849365604208335534782785952422742461361036879616919215423078462068339121170472700681810154158753486915196047172602555791175899697341915072175000913218805526482470500537565003940896979653786246659245317546642783001249073362945343416315357727145778840573105955048790563536964430584297600400639859338292217452684637231922068896049161213608803333950963127764957087026582124333916523886527812461675129027697730235324034112579239789775357193072991807344604534993875587664020812463150188652863596261342637190861147469300065098669592661938940104999332636655277151699132271944368886957483439153881519778816328868234495981748389306474067133909042360933751288379627871846590066880465095126472400621999415085750489815178375438629350389482523865624312431405161201045208757675638631718874978901937262977350852528478986877280219921125046637529432673146331112692171402519161931912710082264299420515251661753285234865946223426991627527331292573503325485611816174754623131851112678471383292110566005178392191099968744352246663431780221244699032761662146392394313511865871393314031417879233336194239810869522560052165366684142390690317735027555637050947679181962403696626235901268866896901824942206317607103643328330820843676546918093982024660262876257767803313105380788066285085855211880027759005862536753983563723340983996406386459327902946333089333590443020973105155008392839130433118762915098321524178972002331275476255697320116736055983856591477206621047759980597118785790618585429746338278806736600413598373260659255447250537371488981765513148985437607416171692508789750816341217939112248229164490829781977546781859905326679271519859403923014180526703666202601573344129929636669315401281275486957938901441169632900960677160857090415849329484512256942375335758686869252633693634974062786841051441131177952134266866647226210396657745504392952881027166632773155769075480257519380112081433128443721313202648035297615516213714147929565650005035904037537533891167315018172938711986119205689420081403371146616111551228824248128111697108925051588334592608739245177886636178768691468740029681370890375718525029006569946985884778606586570762503257236639519261282663335783506372076198816821187948014153234950111233068863693756468240475416631894210423945699855236996229718722090948354369836433880182716560452939282136174743716793724387422530320448246924649743629893298551325761953861557889213253327264768345781905190270676977320565541106948718634205983424023339574202198397731947660343111775026088396892955679098844683982429303921423019289236039848124875278155019184581903769038999056198459122611335996235661753896464753931996810831062375458191537123096267158267416273005576366210024368262724772108683592421303907716646683002039781762684085531072418260990833261421692300291678961354286436258980251559214005955193220217943139654593101604482186981767509658751860104349559269415403804188233218231528662305396176189442696210200922301774879658996865459929569001925543831331672670031320524357436091716590597966156385997353846718037145235904715158251353831004427716917501030180873508033256455056501995317632940708002761895989406545260631770992148207853822273756634919185859926293919920873162562108701592982545444183944115232175831267410884404586421440938428890412484880822330380517794156063431021484602466708646876998383708737546254277810127977744859041386185105148288787381632823709157038086154546846343784201106187939517446435776104963267790158109929372254382357022524409898972281194394191467226227499735596010116760055493984873157478913884441162941498359628231533001909676368603707658076714434474461084335891076355977064762626066932126699114504513945726695948700609782570390397451220549742679045242187559419531568076191823100891252666580295568734461992113920543325939960474228325875273394090314360278820612915708127993554904331211871691603909602195929575138583881026218799515749988478284229632775061446023644444110184491356509297898076513006746853538542657535796397661474621475216380533497414903102921671062622285522161490203727173241218623609782734161449926922285611272475456546976075549035688946398923619280684452407106959602000735086511150732244655012034646076021132634043169941144369862492116969398865315933986456063904378544323813543039371406208463511362351964439336130585751162498257961666217141641348883847344928037269087993154578350161813663415271205459978604292805408399662805099002869159803070370641825086487294802238025877821568940382937092479807245821222243303713673856963320677143785768747688784394205153849086863093487864579479062311884190269404080166656714813893973795258132191849551006840588933288858030107453075457160699388632106793447554986122822640352191744538024241564032653907229843482776668617331171120934150486940825476383362032239297170644209787137191436095859698529553264738917991728514392117134857090904189388814344956948301061877198944722828801414694563841241255987723529701464634942298191865110092357316507242239677233706677216330597448940578889361934464044427470525614887472849182195204721215358949273342453552704288508525638072551491031807253118958079783499754197651978913028792817465200678751448197982962599459863497866575450201657807548319887715773934470464542139766132080904895456249535463838124820294400183518223513337620438678620082009794807362797520207808777706068785277652206042791262914207293325911597931448452312857946810309688569163158945135324870011287647378008553326312640561608159771247393481886457390252562354205713298098237748409206470800063979916313543017252849306876764539635155576004872954755006356276108138922114848616579869777884655572663304004274016722445296376897113150501771824405948207774639020786642426309894457995356728708285272282787677838733379375006767590805221052099351817764303235132206272373282485945591312671696950092785322159555394488854485112257843542138521265713612179749588938200239984267445461588447493399806577869051296036995081021229401457478129520862828210606900492782205688965508347104688551970238310352181086032226735008655392774848206038497872845552773353977410356915535281860014596113250702710543982152793203521771684804215060770983726097212806365662803216873568708461796323045696046786104075310096915116428714733055895541319500619303612096007655035346305616666763464125245265606314587406858678702402362618076472309198619218177992580344482877540282794446322647686602480864612342694867940473431586610876748379133540977078584588365274519071036896806503345168172805653565554351373508691925440784668453857438981949225365698391283878019886542863606013699210247089627252275426133987947484727974511115377047624691522243639700085520813118264201044005406068758120567662525910269859043822047415350209371234540323983109474965247944448545089563720289013858069347123776146860328739077739415756074111530289908743207611902529391351331561356661774917313693495526251775380546942175417807441939458458294818100529787462691355703967574068092125270744959637085243564744912467960173027480893425064213383582618045692302425115004126952348414086208849300271933336354288048409130270890196623753588842203869837819591436513872172923856031221501404659934740791607424586322897551528093282099454190292152257762584641178152607697406096147765221133293197091598229634017399190177656848851225947056064105552806736924344262660122880732817525911055750226931796768133501629496800943616083834808498669951400221116760382538063362195143262066399586253438545812806547993696719031074358500002324968827596048359689888676968505862566535810150115992883469578431474483363888547564102859935328034723581481504034918376897315222065981223308250519241831002374090645033186006476107393526479462519335210942412098247219586195583718877827977165635271116463996514934207313065197647137058869416219705989213141232507558751290131419615809088828489164910195106117304663806314153350859390756542488235188066122433981656144208410395132766615226575714008991957996087253576163377145820207553625576438435284590163135275743427645329910937533414769646522277704013346202372712586780431583427468137811150603344540625842017009622335220242814633939468844051710882188182914852990906162170339929443196580691110367465521367789683082084559174812617306878476301964636935795649778853189317202565248077946815292119220325739784924392482171640823999455748420856135134244690941695088448455668058942077339131652032583575605745918187346765019738050455583123709060501055186075619597352875665479296340165448959927725554388882592993940717576212301012719585867687971001025484092522147192118690905620958616330919290034146123918798527943183331590206255180291421116073559048186672342070900830586045247724057849350962677513995958171886952598176535600860299659150845536031653477471174304582675807115713905183427953350385079389711192227216381959156686113511534830344303848873085459389475618901501055946023479558950916823799690002952394324805744304641859211668063298045931019263296836092083591592856728325638029018001823204349354099774802118456056023291673788613096141498421595338856302264661859234043448583416084748372855074402385267717929329648769290082529902066396819193544445332974373795386416894407577520779995831669879116002799530178528149388797953625718684436332277693680845969155420781285862236519118752687047395225176923687408116161165803687389139630023382395660392056343842492333540245856360633611712190660008294612421724517403242972230715951125184664030702195345900866881459908670325840192616552951871649822247255924050478776982685966593083729919134612379804929304494640420932319113098095629693786229233452378719392818559707906673095416442003458846071730862311017687847286485783890802303015188382263528745591970353727527929974059935460638923245693274795890496322584123286102206343009816484898536063843222497438584257557041357525061811007225120625857043484534021403873277162243402833403091308563303254580430590557443973772151794562389649977143106961399078484785899106774541623274090658316610514775577435260319272487828280670032604127928825587205889230206737806965550552474949630847067501631793446185123753338440906199590659960788024702654587936691616397959117021112859355362158307823957598331981576772298052049809391434181440310789882747194994580824726598918305696886466622423081286115823768413884018959080393565568783312186105404484877596593022761432668669013816647471917345569096739000722476417561698690452126275939057411942888084828502378867424652582349649177666070691306250226018586667158329915748533909179264066651236328656018559439141462932876897039598433329247527973486083263253503652473768714083775121146810574857835143773231882495626232303921685417944664351762748032334331542650356013541854088111551507793416556168847056052190429934041649943727865559297883050838212680204461513865431362450307672890304347952279054859010180118822717514723906179254930641465227810229546180372534096191776555291962197348602996772270709500169896789703994987118473844102231776259990514238812492209640728757358984404699305968683304623245493034316521667498151801811881051457728596871797754543922198150839719192868971304135105583212464431661356516448519631570972219593516666039299247632133695991306561838079156150419695931270201932227140586044717845908715569080020191455397810063057298556030401290707590503594985081532677594496518778642480995952138769979590635382434688616273951671886030670263672968913507231992651787676676846232826310021362992577319976956337281228912189131586889918495486365136097550506757613532564691409733987380428064552316784391766991859559544611165490834521366242176285170144641938457981767790498861597034599151777550341085897218967862531304052425273553202987861898180437013710784842291026654786060139569439034959155114076281175535078131132568894232854793403100554290480047996344370022455958688787943712977504189720028699217565702561612655180904775291777250300826324296849277589601970887712055975890824746809997781164150110267106806145400880651035544071652506804214687291005095098698882490361909915036378711629374294012700442607996741228972317389700137246747175332375369045338274472508197755209919766658481974464849912213739016173787711882389525032294403904045627727356179565985571206823459060437047097997058021219840699309305481925075452178773909946565876853602788251287109630672691224649018505317696496833697748866014667604692989673402281346402624832897808675563853108202528945724489896268732654724778365732892412264103356856986031832958584131074008426796464641053291227224455320437162074423801572764872962620579003632743272167686777508013979949163044453199745571956972851725710626049181290998521679118341020080085258807289814523053167002872845240186618160024440661359118906119319837117125934482083567130009283170094295273121550658457389935191124768906143782678113990823659871592868876048951955625944299229855482332768546497633883360262615855743481915983383117717116173260165660781884997297094066279321061527082170456581501733173104911303028688537185917201049131490106967008435302585709569454586330373324781488351976176528613622253208645246855088422502296905564088913349712988203963500194112612116416454886028147548301619135374406650815456233261107649313594901485167475586436816664617826388589478439010607762948745315186176111141386488011429210878557179179704496749653999852766021597010913397345404292423091189208119006820259116950873173701379938698283379950396499444448685298171207539238714039402704943921728552855554263124289226090212403235190968816841978202473550101584243058071299814168177970733783288538466982391349855963117892350564633095942035798339055878222646690516196630852680337206793085806936960442734457544047503649132239607645636083548354091973600072471250651718033326497292525228322245615867038933725594282437782189708520264992777422384258365212155652966783950405460792491017427980424110874700557903665571826360924545442589148862552331804543765366524938761464473078547250638312964856700942915678849067367692720292184939131071003664248311545641746438061282791943312674834082504334604915037089136761762207052858842387510011608539922016712840684318029146700899075036923855549521057026683260446305214168882153972042339063501074520476751825871598288600438809246408301944100447014305181831655614017664730664781015527135079140736567766353779410624001700992111604544153426492086618439215308084038733873312462893436293817469805625254482909110101110582099539801020265482940474248257298967151022417104458437264564489623495788940963935843628334633010253280486099055921829539532495335299568675933881602961167325224784642807434954093347421852134575697037163448030759414976759916523648370611793255801772528711615255775372402770746738214465860601934247780292110518640559264794899229819286865017829207298947021467838003650093829246438422662224474110520709027748172343851925953280532406159337592869924035193985170658233864343897571086267093611218526244016323948439867883728452921483043954796234134146603929459442506466902301303051536840031163355055755699850032553510596913486939678017355254177841144600271814956635483387574774798597710806378667953872358083865076020799097037590947088187642869121972691491899428589320568551252031082462868814644377514883312640868883823180217017584594908619537842080573519222445807500016971664149274418008281829517609693414339865927045500485970084276932512661253204531096365717700119020759767649633541958392016397372086052007908482782702409090945864444492950591621518924634744086049477167980526763585610501704980242757755274252123872337840558725738873619128386299890198373132872436742990798019913732352061130897734269038402677326800031490045141003832363796574177208659778221351155176000711964045786809522856878898577377585500244205061165645146248848596722128675198253908031534533596903791070222103715739222050184070351290575196149938639433319899654855361926348425821477773933107101912910848788491907766094680305123530900768152474244364763610008093024473790100125589147600081398311394483960313935283877666915846963929942801982157976603598767753031245855245335324657019086286780780325328852067395688904273336148530317220072305019556577013627305051526478930137013070185307589251376876640849068046906831107234640286470938073568123223688163926785939629779222450987128738425377071628397305471861599685894903662206893858780586533042107704497319456421133366459833233459535125842202141832749158485530344191741303801376650010415788149733192304638555075522469879059081445114432227071477408730075219167740150712536795269603311326117763799983986044018766727251305397860676735380531950496118195953440718246344528276939612391167705133154896869261874663839974712430051189405756191920459729054943936824311358335965196499528920928681963132190346518759467620999296066910433239270496253028883951042048508935159285565866924013878703328833326105319056683741848680720682387922264519508954175225216733310245471588822546657079515844762825108059549919261924520740620809525177982391816781057761341701907315494212363961275944595176293968441793949785183365294699589501948114557422283280305662237322751227290210869134823689155151431295185886179978232376368608684867894966056272940724936236208233982161083840330798502888985464496465253279066758676032924967991553311113522074663627500153889628524375568232731846603100593019192235364145770678748773540893617340451045308151985046111055442995935754894209574025537710765821073879014499812454229661681183652900382862445823027652018046311389211680666367434614521918074236239226338776061135553805706654060543583024177832545718024277524226848843401923539538783244293898473870301049204317089841301909632484734689217418448570158978622031336259577663817837981021270424944142314210638504701544102533315551237204826718404506900940407634994479136406187488740672325898032272236295665613010234089148801104185996090763693658498087581489575768887422688562509709214959482216581959084585753472008563073962485408473949836787665665417144105932618608258879683966028300573992938505645460345161914741236475347721438700048863963599324881726812460421051430401863544206214758477779341130870477994678595532444706671479867588185195091193195065102816343297780961462997862470306567729602704476039189459843453168964255542924173526461581695995028251008493518108757124837340447273391795916326549074841363376205628426335131130699655280459418132079472181301399110808820263222463434397546913626995454651514742612762306326837450851580329008796510288836057596514701949446928876847224929464240191927734270093345994429593507322587898137884109053355743564613623054580445163899713160449182621180201501802125007152253203146285227453350248969260896545661461664335031562055769368399642455489317017000573395856584934659686650418326209379913580731397502294390879392765773992138388259585696980776896532674554513517519692041645568767331921474371386478785818654033236621552455632728245371361121975110365304192885304013481970421259549071729934036729936994403456880071062062221337440410133164470469501764383389651547583450158896223075182047561121502267916708130948454939196634844975961892778174408119223557269409876361581986579129515215649378672428862835683198325362306849682630567651982778918732495830227561498186100610679480201814484910186278007519184778466037904617178220965614530489565117105804355387708456623926582213185830006428210161685876283400651332328314292391103490614748838694192177115502546190417205658126176186266773125581532350378138879125247322012104998262332437891165977170611696015848432193726504115382752893666399421197513174844745066314828796183518211341515531475134822286545881815834826436498923581128829142912258836548774569632178472269545456677281726070159063387988790782578017396351082230137137387344649404345295489674391738225216778473708081511088230169631283842719740191097979547104831716969323555729852616240966533604251702772784578594408734320807663478604480130299790427901610983028078029043643264678680727561843806004490819607063996975518053096097802447804066440492826025944847176865178134882367567303291717906010873625238300053662532170050019697299869569719979867478651631424004793451896964603150659814799951336312986176101642240337329424196321404273432675328512375123458234275083410077208257393533333654035350215526291694586993703111024791571006449331700998181655968745835567154874825111002639287721385946645721483421954452652108524804052122959175411622128234859303765793898208195655876960818672383409074326827881792457581695055464886886046917152090600863338602934475872478266300829884830958603405148402064185560865922926403857881264308821745067438774681612615952846606935797171609713124282333055732448116549387976561739447718715693671699885469540241543241096128817296139683637373374697144259989890857578415553994454338127132947634091024881072212957103734444298736576454405287553962902158388732956338685700943620829316856414931814826587644495264574924836486088466282387231055612591248014952599705274697061177629340701689799826047950134381130784144032800284955384529523693475579788128012952156315946500881952155901114581957555803249543134712022486885140507770934314278261252590425887826031921697368011282186556351029718917233565975666739592691640352240408675036053940053694516842971132542763745776218842579832463213222936698001232636683864140065213892596181489989062835849463086635891447965070572392671366986215225077048571709214628210329785254927694888606268875679162327249875800499185839550409803990826915872736066962260232760879400626455301216778740261064042080915455878062129024704838570601351266396726162660018823569113480252161257614806488140188155328633003738241505920506451972331671494030033970929052151453612722039936357587543148647187952826571964987596914117214822047121928342473026815683705932759347281743650142986458555868564673624740277943275286406463681553461072935371118095520322107263267792600235167511479649566338932717445477627744330460517828016866120525898736992248461725021440704647522461446187728987893235899645558121347309125205952568178010227700035697961662776166673598311472822071918320451330953885525553109297075562639759752203001832893829677013959467640175531404928506441735281018888794509897924420023295646693480275609470743442478568001279739921714882249871944239654479136383194863288656648225689378418096850235709578813730724554976591451590918517452716329825434474072246282993716945724614513067920417544108801399750290342559322747033255594004784379966467945062045181648563588990359576900890512865742307525989533166795351648768431170885112016032742454553680094888523216465995663013121977291040682015451662864751555045904841447509293685054752959114279660347312286276409814582333176832537374262294986824887397151085083216445959917904011963182726136394099002998171202570286580037882569437007689879855324322326818922230260479764346889617658467775319220143926421861694808565624044189651802372944803770466707411780582225059179338985634781516174989382874776405140154703807495343094091200484738152346644781088822861443285768890801928379123337543668749906799769346380899265798282677322663698140311381177017758106858063675857609682801905919023832890839163779360378983823286188295016545360617505598100858484201557987519613864350710400848534438092862787218713624523388046874951038782725521386526790592982935758742093411892276360196590535564852864489979727179016809477589389487124394008777300149327248314924112506205488664836961897313522461750859690129842276949237840794074817500407611252912067547878122346264130019754399239206613850097772684734135140463229457998309034606272517562992441877318929508931757402765698719036201620683102021931784891515198559615203729764901174256330831240699794005343967465712308318878197797175005579680295164439769196544209620950883120688963487346821392901835672625419182560717591592092080419031899698396472456883909870917399002788236793739053019127077416545292077387963928032120133624815915468255686627178233296933652407003240212951959780228105212377834911829835897874462111899891128645062714080879698675426169841216116567713386985953727043410708482810397253639832661729951056414539685130554906465739838965644064817182011928800239791969366450787271896084817941042538501730936438841181295548818669929170156651407824213359045971642548416463976339226711960277805205154973022550908297468297362998593233129159913304941080348699627327900896833222866386840664102181924091279915181980375298824478390737763124333934957413914940145976592520785931853239657021518764554274474762815359708750930308001954535293554920787964830038592722361178363450169852986869553075203040231863255547074888479619458608968449995007093405128657086797132201684381347618064095222759092183479358747892239156907676285471295235802854681015370567925362666686286696319720225465350834325382863932827903292550839651092434004216938070222822148782500092934329506355375975453021406264477376056675650869349928067264740226441694241351688439868216055297463790345289229633893499082180342472420808087865646893094281108165379942659776766551989882084878103452916581513388198459303451025262343542444894614898222966742797854396265459718515332001670170302559512588914267818114989539827274802552112286207362859353437487332502964740780329005404462779872625722269342392779706535331536821850376642979358626148104988414575258076172136705062853575864825321810097596053361589611668094127368384217528182177926325686047359756020948179916920361897942170009200286445094018842267552832623362303268138330767670055235104694525476380165520090870899895695153772744475917900225955093522895333983770939873413286732475480631458360677000292641737853792629354423787901443588935305616843244096034095990691852466848419185856649555079927606647037474298585786120752507639965442817468863203743617712207261299137980664094120995676729858531554928564231576055476404121336252807654626553527035071721088084714385846765868839695918898311178946874182937668403888822078117896453414988711837507024894715963423439184888090342794540690311163498621319619413505735868038630244374067336669525106588436679193325053928671331693659931338679249684863312154114240269426330338167624258238028316839798917172067061859498392124067829442702788872766771446860587863291772955423432720151198456870402991630286159362628081554880285339896095815029156848013892722708209228562291915896576091899026570448130235063129769590727832518257118403691795909911132630848895538914428047660826477108767367240576030634298720107859149609337252143112242372835703123481403228801425917839326785860765085675503859920972401758655757697952899887713166820945966095763391501584629507669469417188290779256348852901059889160928963415571789888337283655670791884891030647457232310042790677879156103517064198042724823011081886436914186606939114128501982405379913006363546080543928489113286452602851938758906728293775381390475184375191963156516337342242413924084912409813390926909325942594239323696024264942045624781540941064392276761309028289286620203010755846306985600770512711412208117535450372870343921618732642853375912329466654947730298475119924931614193966358719979551200097351613968299839865361449799962549852281224149447086705381667379558579877761197648874336134162615435503865314552606291489639640729465593538334605229937591801263636943127350714043555966702253428064465873193555148627691865460252768322851402907245610559679990742120223812365180311173494604809347596910612274971916692181679753175967891589688518432132983478975860849586786944375937949857473819713198550295579690731281682288138317878979173382275535985450348212266346058550717321756063878736492739705863654617250874252074359208420241830803958536216060410222233528046935916828790074972092265429284604777542343780152499960556375189162682332408162778526476725764647379054633770386126207181647127624427578443487115826816366999825308366647348585029367125517278146237121695237223033628948827455711865480449616124191000827453041678807690185995046061686778785317612226103665622745577576877443899808100893867950359441664886212586267032269243542922187141409230268174661796120370998196227180578154594354961736365032427107983913369696086741435734683591932960501425896191019524495172091621099644378054721414700212249292271094882463005233761043073636370917291198860836270971174817938707120345096689418475618203116057483932024010417392635394557591962568980032266941945607656607629942740447299364542740092627401612632726090567151533033631039638334055552434095123617755275003123472758142985612914632360357076468508783345812261268936058689598833930214887157000932292948739312740906704676566909796550683850213260094675873207949515674570075119741554554939062946738573286429559913261731804094495650347248609750858471510651891374323674235153944116302900852780704123530564651782922757895523073895665737998263320095922257992975733031658702996994655335286632307368326298346090010087916287996219195362898718163414017091673442855088131354154234720625988632507586556230179277137925757613780518549666245286054619875055758063988029067459978831808225703320513956566689172841584441498805957552991177917836909620041910861477306663770702857872916131119870473632299217198031749063805907448580020719065835423129917300345694819354475280004214822819682910129989935480224733124279819401505206346133427487154172389329791801429515114276153875423417205714232158811254391039707903571323601407785272979398687261008142785754722045036411211806436389005713884450218556467562611716723978125093457892718857882883381129978885936185744477773304434194253411895526982147814520014273213584741184534437224094454710572541497443670476039929802947117500518622637466942594082459790238686610857105975272977045168197803806282208977861531068885137317196990201435060645625166585500568644217560721974840321941169301330217234621303108453068495800102901676325450616647090719243065482765270597998187751065431263392139734976405233432648837342456388304773804180829952486783894248105634115949185386776666634102799990640999754926706328947716349928800908827003939958788243094324167313989615347782647569550160549540839332394561878240095747986729326665305733326233094508515032156537747230783254268839542520207495954094911780509226228862142525950536684791526996804357995935581556539371614990838010401912938580693881149170804339852048545440690684920051896928110633835514858112178858694787690309326198612520382403853732261687701218992315321544368942957783543957995615532238352530114913244566410947067758971256121806644465117268316958685846419069337718207626818461792621988100136751855359848386076799695369463337805767376149497075161432254649292717656715536603615732525502732369845747128111898615823008026450714443042279456255148323856248230723977459114166612263112048348856609929895838928230646839853352076407617989431619241827258742793829274877294239713951765547748611043385873886145603938115553329654533530325432021415348903883231928731017020063217762083069233801570193048719974354491045903276989486402062020211681067808867510025432209661135211066759212873515013145417641245108144346117462858558570662115061706541232889683285418250967563540955825318198103814036585405106240238261420773471178287549018940744163216401435980218278530025224827565267153855619796761609822828374755907072995193493285979900087782239474564120119751519212152603532283118413878089356187669706176071542142865587876100771993232119183148074267598548691593922124899457284618787780980663233182780820267651337255221228361055843124199695972979789823304712082021504611311936658340500570966587550449146298607292686100844050364992287523334776257956463135623608222208434076981122552779315646263391269225325128844660401227341479976971396846610337388563346494548208461750975690613836261582898386521884038565954546339200966208717486285577615680634721839478180070840691809227178513778050628600501404171372808507529703398674861931056269066882469585974939456380446764786583010895181086472965639849254574257382701670538385882844456573819739206211443880990553532491494872744122856348587695748564285604992947422081897517896089623723091156287311183855003886607721385703008748372276354772516294097382416352143579033553742109412236693424671100102164716873115232476426567794014472009567605945410948933482526695548193518669780625360687547622913995434841728417521959773608731942303196275126562782557827152262441956247062947827881975669060937098778512104671865479795967952791580938017462052916612911388389241209664004428280245242442679788592262125772301046403670090661086309418251167417388854156015628817197028563827623968127092556773020994285307164031393508183407355100872788916899595802676808067591827091425592973232869124100390468701857733807208496818051084044378894926093258369706063641126756722802144337685280839811520977073990459254369095655723801674813375925492155213360885417764552188526909877371807705270231651470979233378934911777419473958973930009936066337796937068222876204480413876274656334884704601061528316745850985800703586877053194884929359808735410901602223685660330882798904489562915117166922846490084189700808549722559591637655230067274682212901020795552716602720686971137529424257156608349792501253304157149694709660951409566133792131279316435338067707656647022873480403731104817368178392855398326092869858851442982487755121672059767415349083625851468610025231461830336232950068336185813262868991258756933981881934580894774002187041977266003992104378439908558793056357056794169702267036169080864827979080986478301070002966659675667268126035942230585241630430692024538070966311173081918204715939923377890810519797069599961694569065671324208996038471361714072545365960459233280147731963714771284580115191588662123085263532539505586306146024768556459706782976041374418656438130604357579536473111344614673468897957283155423598766771877041595430332553265561211748862827499958314661908105736161298008909024085674487815733459205407455209846358368651244804335375475376562134765418924188229898467690537584769349415875908665015138567313364862448351195747350903170120442493676919031564535181979429335496451095448168320206167692604594334984247942621921768156240550479770196429225771101561447197839237547111154470754710576900126912642893077137706466874616281521408154397868497892529499698825569623888775621119851796366857639741793440188213199026415431986896944847146020983561788406236772108638875885484378556511283649166436341440982774212232785389762635874588618059892586058790920124027304790117925561491200383005586215788877629723492169619932642580790284561577962759232574253286223363840851304426810749863517990031890385388228623904642398504331101572049334481865173547104975488779533909563792905351415491815220184705457965442742612356387127560618958668994929392489813346479801281555213713680681851454136065119830283071575133888823228272981012896829853455814357705984570466058795923845692274415909573221427969818603649350508351655320818346708283129497617257309197547925583237587375442923716065511947895580340157477889169404782157036950300058046735257612935719661441834174317955811615577775268946323449133438006491090226299404050458977184493716616204458665885550062396504992047475094737764526378042617884398288566151816029687953622829845876287644906051507493675030354809240631515307052759601968179347016315817917812268630469824970839024613685220157500690832617386134369869423042498840231226188615789749639869055264368534423594948790897580384719651837139935949752624995254292869995389273072078322355406828458637945087548789985152238730866662072010667250624074403375965057473824139895118275422487659608830036809263071776291388643191846772883461388792988455473312371918596353742410442314879798909157587985724164822459736805081692328236280883863935080591391145385657482019108521298771088916604865250696068420810292975858446015440582611768323991817140200805545674153864812227194356141129207966128014986439111666937787028801467726849976627890616151287052386211487349343324754213769145148930859079451159403745352699759256635807425412161085108156046061077701353167320280468964123652000866893281886714771755945226608356702099911357241050504371913724390242790415746596413460780291210355634043391409741152629535825721447553055365571090510483204585746659822798754923639929797082239076703955416291068970661615461053826593548895026829880833906975289921929204611135845243734883571743581250822786061106987922592372262406568207334178953116665168111980744321591127663482183763266946905125354599821065430669694424555820702463165520188377880734484350967141595263884060531724734293432827397685807159978156939392834016672503283931548639503214026656716341252645829072319353514932849278773427620328563776572939103487624891187358166254565851919890097980513239562985734937374654336773066643556285291378174540251731493621986779525295886502432264553458334828700922395564824961886973771393809874921746526361568698512414462298197478745979707253410569832536425854820073770230168605008917870357581566806245594247426110836511638206818091870583343244591337626975205486728721354843942208583274576187467295097173379541695007252557424688449856403549625846790523946943679570528634207553369965538740747391652412904083640112654105782801468488236009512042399834212249541646804339139468120165734453851975170932701797966406255424834649124623226994906560853589723024693509219405521476582548714292031679059618130926067012372061948049201789941102316236438613869848128408579677671541743757106766331184694287296737944367981359999843532364182189901622568105600930877442260912253351224336873370818771943471723228292548319521060903456381856094725524736394912745178671019409937113956860437163218296372848160568904749006547488173856972433321865122743586984105353000682306753642870220078175872289467351343995729111860904797783857233909818774485750525652644228077841260473920844724384665074007778871221817772628086858981456373133066537264505935314788254502578736882567638245750501400298243000314002437376291360867287058354802422640617544594398467507052903511948833630320130978113665728360401835077617263060756989201480733328235209781833159169169506186385722879617576804373791904286614586482104029480995296847041788816248630268793321038015505965964932590374500041176971790896648708341199945843116949791762355757634624345262146338888531192252667253869614001864967046433786195508901851628676684604987564087262921138401634140299280794628830142101785997765942899826879887412155765835183125374515147275503284135204560410222480111822178931710821267420518775374517892380609625063338610571108958620243282263285943102478320471142449558762510972755182130426239275325558768095986849019674602692525740586960316853685912809759680380180650318284472795350065198591992862390907958536047319803081208851210292442834853850470977897901430635705550647081261199505208631690054619402090668913694341064595204881278814700428437777898308355790327272731077501961802650962964264420045873518397347728579972298002769640441205777981806724178550282801818910112022507507254704001425205278497937965887311952315349244721734065804784204194281487867949413841534088355208167584381150041036161400862992320164174676935527870584658797796995991407127874526343758768059442008402210608830901724581146755658239530113662240504926777309675725110479093147500506906110691538875434520903100401177620155114855898062818019312672131504155340488799000877887958984313348989621201526144701329683337880588778328919159779689682816592641212835300869439399713674831269277106650016808414803001747277527572916399770623378920529808583885501271484893271295371055024630499077098726112661260283889580642761962553111735169359389199892477336539415442982418991516051201249600361296477782922310456039410898174333052358512788185465103255360519237930792941374000612097128991178158102226767173064892718726809917829061771037974509478765295666711928620935670591830353420947271068661005878427980209108869810399144299312153514471185261434229382629324074511658291897944145481657530071453095059051783131180036357260623097283433905594805098521636527869876360928884619136413406471397068846912453956974964918273999642021561624084675973248165223881298384540505367561963216619638186234385989875261449240869594721926870721763002672847914164316619879641558945189139637254165659662855124456293831903613118100997327837913303675894440673850564339275115928024805350390642056480297064886347509270000977238374575227946884942428797805392870089929161299833924375664207922188490669795162176860257397442824577917122870102957735502012494978667057793826813649569277446517286260618176695552349515332861849640309322620032462524541002796410718990406413698630648955004789136059385225080664025628041535407153356095924107461353169788601211340422659761488063697243428678049875365598704905628483873353842831916158001312727572700249323623557822533136240370701494741043006995384547071395617327298991638176076245031426513399336966717841344378286026099966293017227895745032931092396680837414120334214801368547914092702951838698045894176474534321985521789497683603652442640679293963309979169657422527443470472768403840992411955877800328186530913476278303231769438877005133775384825924517828967263292002720459268232012496674550768276046164989460368478895519000757818166144812131498897659551223544205633161220336952573004346508305152541462454344733729498606374157229378537530161275828458900919717543361816985798373977209103973818273676395904185507551010596608966880750036099284690784374238256185301916473915556900171014468857176465330015961618238448976693812831807623762173109843630833307819218575140462553416544835196898991709743094439993287231215512205506071914198964162222161137917399116578520030962602584650698555124139951210465985139806240695676365135836691387701503120894134416861030009634680304233642298624256547171141242938968766825606633241440973018328855904086335531962139727544915986834377285838294658853489327377281762992328904508287612534211124135653805445231770625045942007100947127545285308945372993634592571350250014437237416404542658353427403534791513049261244736578896599928403933722300988246904959126549613413364722918298226454044614353716781188441964411451123598506365817247635298399736616790947597359371207454379307015741943656315777424182879439858311882264674992851347731442803981909457789564326221356528315384106199647693847407195762797196091614705429074642385778730027734202336396836037735774479361160290187898035594980216866039708726002974466193303363751089606279077987656100471934284553414473432316755728635559103116359347450220353656360201319567972350265106552131539976862715386588519684438778735790941445224568284896205576628102766087559675548805059971258540448163189826193795779674098558336089367538145495395720440631245584671625469267535813605608079242856733331184804670775096290178362835910054877110050106684984831945779191770817393311937146660539111687114934842894198997112170913839518130512824262662337802628533790298636756100252854751926562489346396715121078060876177848670350908448167735872132455621670133286189736489224390259647435211903233585320475914508073196201868979712718438085021395921391014852419499300192339028032111664105351226084536682650687868787861631469678913919605420707904468990859729909678573886033666515908808348826961507195407993886823785655831997393874419856526070531722307754532304207283632037350436820533451786205230588340701459406774399477596022235078938042624175054644787020467099770184480366443725189936300326634800026892034082081268559459078981228562699010271350798876017480514964988624572011497601679971702450399830007842645860652381600523962009541641586194418164594731892208656572428668354374194775043464622126232736543650169569094229382752601672449245777536731602245855045527775903991819226288141039572237785324739047307395617194818860270674362832954139209594532667129379746107659983461259377123632818602169378209373786368428050655170401607815389061860927181367646769770851146925536719506957031597478146286562071820481821328191945696974418918219755139550992943041454843796827918958581437241934653365369438309727175512411941655502802704367406418994833139518818051016700696155059864180935850571579286535641077184933145402281597933909394388995030237659507077328758267486343024035058976426616996483818460895915672796791868886474113615319056028738190530940969644915467290118487921123221860369769190412778978792929498196462450566175364617199114400937036311906906106561785319787860060935189991065332802281522432465136240681291908827399520030983026228443875349386538211734723448977200356100192351505942754876489534730251203153033274866753309659151662167547219218277373579203607822774445458040126981027194118663574072170159605202749468007605747016423689849882972029179948793544712904965416564470202544608693302403548236213503678529922641655996749939835811639263020324936711682677700300014860339918959583479402688126265148488463053331354360215884879816694473197199705665800544270753609220909863318116626067488086115377129173497975974084411716948000258007589753507181197477430993565851261960373122697889863704246475989185329898307006799266375228867173116701212474334578517295799175284169125664466828845588978479318917854293966603574169586864641639084276683623835465669018867990654605550315073828874488654055397726391594586656735543503110603288066038429327410206682079073592565680518198249681018209457983702649086573778332353504444573012969536828190761914703222552852973672541511339841185861531676681124189791928375019325555904996582469705876995118767186505232979436628831071153881145397941259174956247170083040563313034138960394980260059727764131100622393769001958209984933930430970619417669660351225242512457265286147735256871765196888907394909353286880924781926915848615643106489249844516894340120848943049723334681902359694676329648242731514231235008142411734759312949003146136715319914093601112919566841183712334541181235930152960811966640430297141775469944517829666615727177044913078029814068616172644803168381675891338025826975071921482786663933285570255627313162379127732377747686320022317929787060964169114498164549371673310677686783730227212691880495345772895070466718267176922145144311593140443307466542652220969283707685839988504280509193414443147688045900720946986432807908040815578762551450429163363613265296141084229897825239039710926684774799289420010204183869538915401306052602419452842049137234741775242090901926130698007805353186427412213240203981419245532256246247531000627310850767026367137542064844077879847821445699611479422365812092787855315140798778547238240495317072591436083914300792426543736766425467129179049030947712253223905795674642094925390236758455409276105696601899735444336687771638611705840380347790307891255897238957666379716841165469369978772289936281607508606944881486922012835392911951310708339353804986568864333376031715562699787229405858178605861131718594066212367462325879978613543615598235304244260603257680502776917639288233220639725180243500853531073759603135357969858176873162962696384099306076070434421472239485857624866053393508501263758918459578525350412547609550973561934737676012654732120679075255144085874172578638619769232085065360501251070839153938017941537574040053040927381967880338876485149481080523209574367489348120243500117103789310164789069344451612519262616225703853626044370134432901428677277007145371856639252718572072197382327175841642751874790611119526105596511419808112661349785623192319154396674346870568632188365048569561030327333277766893062704451901161666949612153618222783142899978291224427138957901229762730508846957744172168692080780816610545058930337327666506447639372535236862965998636120728390674020592349556883037520866727734729820162518910483158218462426100704397053651089567459126555056563176163361154165135427451996312087716975319438603659748694013183584536314876867331881207170978395304433084475959857208846543000032850032421034840591656360985486217404657648880510963083430195784986262967228745706643720491229035716105486760558533514544824281379329514475408800465161029180003968747065491927804927024071574040120453517910531479587391810398495811149582877828749235347431426810144854702585032453766540514070758413950248047339248479934530569008278360535955544903754095483661339868971810622072323220654438136947818849329104799898149724814012030934828662444535859131663631345199699439715474895471300840988902617922968134410367480226774889881016517798060287453031127478727424131718888718218355623144076184038349958196230835982416276110676018391199698632074331433188454629436446848263254729166457791257188905893832960869852895223662719087561217108552542002026733278302222030625171271036927631868001703332928273923934907677874663044614466293834730248082092617413962945876974033958453435528296886017574572087359809945436713964359942000983022192439899311562304592639246127510579893741936903504329922762647855748404537613471254507999565704071856707975824820821611271734829405996812580319972337633103698832042139295303908997357008501682160622162375265882683017031674803852623490504515216798155979829105825931180180811738826952293416709061868098580071150090351645946644619309539548649635400830944081385314131989020882289200188904629846279323090338143351155866642793003712807350349131332409235693200495465753069941033274814711828461296896760077926184979665013853386616664078761801250841767725877933408513766406162081073835150123950735959490607645079779911896022235478813029637572981110834236084255703987591582786076040997366449357061727566794155551325331719453434151270231993959438727955312320266940996660309896194003051483498661835200336829641867850934440762545986558123827962554202419331274182930692175840590172304598472055410173036799491860664057359190101204730107003987997494051331786544601761103485428037852572684996736053798130602779014686382523653937973255440595500030498305603622800153962231327301144235226190026560537941417992290620093909118070670525680158163152467580018519731699108121763353924715935841794146517228531856383186031672355476018419562964422121121648519120847753952783909733136126033665384433558978186449246870985495830528628799176042360143065325448794576328544456269465593425503507669174403084673537453166881565842513963532488262125697542672322082587854155346537990892802083997294172348479691697765282566934667380578316317152157954512025142500202924860737106345840486595767355543188990916113583597041493673941874445505921959944071330140294092911790711796158491357583387149841010132850713385067469512911617802443627560992450983428810866754054696491775628197560580358401173956253982238779551226183400693695357170391970140922262898461512269864431874179480699170567154777243362072348737512925571331425935279554143262108068449877907630498025644855058810370312465574217265660502811380880829379797568741691620693139307944118409617362037526179274559211235609463456530661111015365776965831073980966211448397238240200234729031685502575036983891343367892805558999552964060203672061076045983080808082232844157558477464938191605536581158346519989789139102974624032798524409809156353301258562317078764346918595421120172998108144833217849076418998813117560866697615385447654633352349025717723596665609619320465299383891783508398967247060668314961931737542995757855376971168108845063975482037148185650481017269739535690281592317362467452866242597600468483605009223374641965120126790092109567043159805856716086351210981238262232407713104264031698688395039375324885865324803789424102694190063063724606795967551031433745655190819695705028525084771786296352266960211641402702959976972153028246306131296812357682537235562438309508099063115290900580515719722783954278227000213314483197128986142023947579888668066628963380703563265367576536248286877446567348594114003437661909692636816736940014870895259043253460433639911670756068559148815012278900639776671743302982067132317559840719378336953290905748301899087837696423823823716359095398959539057103145562147602404020314966038823525088246967902072209606019871211980307509742779553146024810569557643262700206543860575597890699387354390986201612421871845454665829744591874254060316856806231044458944903382706021538191908573123009567181017502094050421446810552222513500998387552066569150049565824400295900626214635567830122424621953721380095937779257168163722784742383255339758687730141744297166757941619405359070551085149006027158398726879908836933122063287233787289532355840841667741082188874519318260952452013893739682026207678440505811609453627294122218283064836823665945069163881581241620185718016286799725592003864869776264931268508120763958041447967457971568243667911698754845197565840764722598841306557069024157430086934711079378738299086352915570843547406888412095437121917473121404369893560131252214995886108203762283868729234254365129373965968063810552311008416236008886852199485506737272152710017394554083371387630113472982700814719834492724190481844758164046151510727205040524677087854564697171556000068943590381754783098661354188752289331595528236246481329863838807079675603114136841028175601755559097247192681385756849870442190283987287235280843383985213254139375409449833745369108197024432866281738619266693144621983571272390101431338877884226608769838862910395992779866677871749113547553128936224287018272708735696187448003202226123177069706919789621679267783931241228022378522285798991209029242397380330158265217786999831537291889107207847038396097348674297164623424215213032341811809060289640207675319424715876655154968671827748145554654282033770027286350902319288629169435431069138835119374335462260291153898792267019423284671271703103497468564030364848281454228007663173862985422808653532832239930048004999271716738390474144065162115416631746947146058401591555988712222464386624276746732721329035736751118758309183924478890868148161048054732609580627444143793751144880848107498346461969427909441156016743115994992809708035916606830952175501101421337817793075387703443435134157331453320316771053417607376557986720263031963543788714700617706844843986690282966437144313529086456695721041909051573412432536512964194205426732890656781062323108583443101091060658527205767824957644402739812505423598502603477321274212130214154174805779542619104175820526162555115527204323427897263481145928478419385317637902016366376350073609738734819784776598084086087673418613350474094246153332480586053744574133487643376759766707000817537250473618781796711653355937230476234610722608182607633675432156417151823186727232591383576439562646191071302758689154510295512549930763030344964614154626283210729038807081807265210334889744262298055991137467408352074854134539444710092973888217542823844718769691578206184327228216141810428268094946748221982257682540841467085065876862112843956183488988822705463892216680219473838669734629039170669366861704522886803362434399639849680022237366101864944142123781133347808939700913339844896443484024955753031257910979985544726182837916653011365333024041784960082779863940125053289315978642366262482669081965428480239307218673137543910628921221966803653889054817738347858250265244800563121583252484116100517113167830384323886503606145275255900114637451876913162866531031676195096459160415682095250969845798144091130560241149528543859601659988694893918105404704324921193718085098639903045312833343366775105406902847147488145062118848138281711497548696089399000832535631105072899510011048328212087751533663666186990839414744366260326010557431075045138053970727484425879015992085242281072953800136571655364524516912944922146519019619749424143783246537214032425784543426638203574446366193096241373972810052458160240851771909165159301954022386136175472300546026927113374634452790605838593729149175496131809796544773685880630186592110437284389623310750960406579177334509860319357991628631823333154572749942813578808436678810045419260728146033531311989902181682581736040098964092163793208204623075058561937314714948512735200137503196130346757066382772427469811656868140238639557004121190773815210153379227400623232567346327217821264289094155176874775690855776734624077164593051648359303285735922784243310512531703981519758262820319158844149252135366314958132312213379268824588569508040411131831118686264632606376870872975773545328081084765321440619673989217185386079442438167402104394868833856992507406105313671650456967817349617163409551955192494732481724596932696120212952691195715555962259346984345606490317497848704046190005533450745982110823452136917592559707240779681168805576845147674850103469009659924290249537231277608937918222304045366566213051481060611612922877693862544098865221206190200002644137477854976341433344025716237873798680745383804465376545254467073567491734753903765840938546841215945688701294453937354877576583252444621900497055489097149825650528592853004943445312348742225049795330095489177235295372528889247650666294377871162327705456649213260171618174491927074518420655728891363695632488177611421821355582551169376664799114414490176610992185389906556522333037480743337766709960774129137839432813327578190260718069211650401949059356983445468917175169720952787942288073573400347779922272006207176620618795272831982308058569569563822560803968230562015379919703567721867030083938997043832918852142914591836581050853686433414662409079453848376414522244183882257037270153697464382078437320126202685359443141061609352285233018571256923108152481365274161244083593771122723647854845735177668263944252258341843979140303628108348690523977936637988158466453745916431763083345830122185800131406454574725489169233911063421514526240544530841849793527214578727422100747438793918262957959628579482881586287877082337643379216003970296606959370292127043091862659891166870672549155110160716101374930056324301533751836894148266342524700712918083265915099518976955660134512761935767841320252016141094406197924932908671329003554517278898396323862677422894534203850479995774250232263988787139298547724248726749848821608394338394740313170403046417181321914127194765425956625470948575808045704618863333648980295460838276415217730055274385954706169810566621235832975420172958229743557685091083867151221207368895074952106530954784032890510361792315612781563008605205718940716507185198106183898564802820600286032640893154848970944871028142093802662426598113565416028574826850485041065232127238453539470394960094409493760214568047319990035362166767030908400210500934016087374660761998866119720978854718800449113638700722363986055969772709731312568229250965054364942243224527208776156529312658852984246436870587737960317587658015973105642776185862594334237269141999260591358275680046835120255951926126097910595646845412117511911841855251885337276166695184535737652273407629315801957840136967867110507997411785491910679863201423317806870488331291764995355217339766935876137570524354570253471619592097438409216767413699175523283252002688854207588705780967808844895002707544983609500194238533014969344193433417438111367961904913762741892740138407287535124549162434785894756330584488217292957599901951245925375978946120342026038246140844383447777985384550025454846963141222802905857273141877782425420607231989278015689930488727863402536913535141521118810253601413537002445680989890144767856545157027161157247662870566140498756149359504435311671481829318192261449222343830987793193157284715278762262947764923142659512313371641138207584543297866159594416057249729861894742205926610996575472668145965779573889270207282418882143147664577992878060507665720362786846893645100911568843806991122930635928194002054046086333439326503048195463853875647855490130298301581116732279120844405779357278244430763785931189051743870589116767862505175469591756268585744020383578260857800859010199907361403624597853167425118545354723722146779813476615459816977503287450105696411622107039303780945679850756289356610993839476085721182733185976403159237697576370067641962728610238904656491050288911565859074556005279575183383929025864404930128398860844093977635798622540499850498804898913482861709128658642221082129222325456233081027877316957618693976998839784705372294363478219897166282622228046569808296477240056570697160810851815993053015765502950651458217322323437898725282436878476113092299431935371432189271376816097015392744435248379842812619667566363912635370996221468240714161569604739041083713731242588667740665024715991907626151374204222766503571497832217904271119954621503974296752249500643906376194895977783490168695550162715055474434194169909517810028659960672148360196829859324050891349306251170034291102092552909026639774439614106290903291085787686284500568952995023799250476160328173573191860420505478585287479935586669828976243653597531839588724980492011271112708353354404138360106770185129861066552794758490878454153272347354686810092684852654987177145627542791082636038015510041060957947035342501603541317543353320063569875120798481918256926032069877938154643781488614340428473636271905449959714167557160645069136028445403816833433969112489970295406592718848243559485691173829333722153255237056681571732833587053677589239750810765462745431227421771897869268774083050510860065955104379414324824522808572877930091364921178684472027530127807938977623733151764737154308424164182736980911104786236993621560974471276784954367880257131965194887454754090529170887217716379661468792694189146865090294653268822034899689117745781881290407513493196298656651434470942613079860279945015828577681477798884320802439029441112990253894485460712028805523789424916470745734328819102016404269921102474544364789723545009339156469137349482990415124113341549821107938451752761380764355782334661363511534285539653314603072571774365079885927820567469925007237907168655309752253872878737692028040070759813804027400218790643478752510262896540423868491510574538509607609592414508947429656234747550277749244852493614052279283899141291368005490753015446537701064191863330358417529265288145561815913280598071794729318176257642642076040257223144957440723165111259085348186724328173198464268514600830369529018708061502698353647611438851819542996764957838790639744863007635664232932523247011975443815743783124299173872720333162842848917311224553259300323664630990037149638625703181778365315019928017891961536470037844277765176362832512646356492403838105597232840320839456978137166749546088703912076077452583995725220776628447746844451242891530521494747304110914070782190289337161580737047440519022367402516857374195007001395420886930211487323641059620441019008916194872202599599309475301260535041921769022339554106866852023922120082949813253150469683579528357040173758369496669756619278120930206647324284250523942012117999648086163429725726513692157143595751819877142088048421762463211405501518372961188307145940187343270327143934134139462054538270299301181716120055034680551216398811310760330102028442095323411472376772361712835653232417378001753866913425939137713784219347443887666755700006787534257594314033524324114582220594399377544530348181476306114495043627139916486213579732498978518606339528696402623847340186536466859763765706385255187755314244073996636973624990603009680165998092529564888279598208287973316577609102323669405588229731277904881822774410099193625763626552013698057660247943785894472986166316093851876580923551378296538786758979926589557416432797466502463105587697503753533601544198253791173399123172647753150795732987807199404910521551407643395021304292023658998831659971648146560549408237161353766199756018688252107579582206070142189704287405410268648958487318417811293598290138446903154880666971257093567627939972955872585346914996574324481738543596026785513290874463542129485307556172907110348438255101639657419271802387284571692522336840760168497730294638848870204901680933148051363349329059934916965167220769506105725860819952312035892425556795485048686570662607773549921542859222732112709840652342300890114679138674240629671224625246364842949275008223824657608121404304868866793582523925950346574714628817032856208807467920588008870221219660768207268694871567993614984604937428362320410468397290121356057945255883485322649150748626902753042221205763773747175369900992714482264566141332771287737676783786898552153977913275806335965851650165545031552553351921577740956918208993372913138433758042625810451742643587154694684647953615488133598060824089370910265663446737257805074762072666958225298474592353830698673172581147810082633773123092713075007181055002352378933587940705624061060974177952940925347938758939844706248204967791140793051206422016391036842844957106662929085781579378669940837298820970657168069859614159081238429432884987410872799595239154264147492069724287506310750870078349432768457450962906464469044436403485296872578354914075609492439069644402112133421778914890724944500770919176767702515542836188921488765425663747704364494055153699301187773057965160228035502103958435543598049417420886688991546294068322302959061147787842137619654646801190709747183309266731490809422851023537589876581716071158343998631662099882901287884318430233625584381189877641085729927904348091677924670228681716326128547612939116274362158218941024994987032825892376840113130588839643272865049703558750524908991728367855762122148241453618655563520361982182036371877646755078919898478618887936959551572139352108044460558757858416804683117887146129692381293330029959845220493719551795761979202078397472207839067338056585187170585283183978364002040356304926451431286007441446136471159361844474583489619390085166573136280914818339556630710707516305153492790276500635244108474912533561593000687470679363236392221314265732492348154870811782190755964654976085657534018981591328762227993758681917766373555649305618885629578304766053826693160386181901101472094794372194636323317846725960580515877119780743920289303076741621169205293381996538813209072977365750506715639532182219074715776745553303221579412996689551659670617752823686758298938871291484154078118825855112396462773020656684767842078592574082180083414263820808305936415255503284584072059810173953328707156852658771761968058337635296859769624586120993742401714078008594286675804627015837502858501398827061756348118294298723830509377529646084727529005340512390773923916515294388171248174237831888191143462640137544644011842079156488930067945591172370741025675685568743669177114694554587778094774638688586468039637965426911000074667114726341321809897981621105608044034114432917181384575730897376662929771303217011646054339278158286320570369328157353033030404850147381769457510609409189905624023822418038448380323693701570528461197831078194743108648309525283957835978687357366146316196763122512705348541840124058616995241221904121244331712506124668082161339640033174661302149850696799647943485815234844573654193095010847488583771718984893059446313852982852025198462417001516290962752497507282450567185459934696959299525675622417343959492005490707468669728050671316528209925951982927507506705317979117833154905279719307586173853765386647748842752527824212625283708704212950434672362319339329764876045021579156959502762977283421085577268155629225412008851334651146587409275484279719621105394274497877227523310979572682796272000198756100583309600075281516966034074707089396969005923940521981501362284061903759073807312559040996823181329207518124936319068696064004648758795806305176101390818244147194387037600521057313246357717761777477898099694256561221740761439164483878273142700603566667021822411401728602766979403881000633834491248976551803729052468313732125389107445828660145214407230362149240163592953352623680755614136322771390299802094962798353715553102915278186359637585913152739529599275515840556473517153641748415301593390665096293785452505097598605009452648963019639693584798579367051671730339341284971502738699721965942125223950937205033367890580179964897427535974256539803272402763613741305117471155164194938538379327465306613785231799149205469780313294408999720225755645345506904037028253508859301026806522178087603124652095181133959327351008401776283735015661438292714805499678720753960613672827475058234175403219914584450310996181226622054585476640622917326112720460479398062609171433841958392213952635628724059278259682730824907773666438799538934254510588400233258582977017691811061630226622769453109783621619330188532571842442526767008731031579326971790295783690757947902602713951605920817810285330185668253443896763360764652904090827615336251999125193936901210903386282462498319923125628634916256836300967290339893151387671028152113041659670396567027624425207903110228696432926195854415083219757890495647040001416928405776039579248593293253661864164826917784593414340374799430069627410316425865416527618073643665465965721938085088531134082245304291920646815449935986470229865648537269742377541781706719021873611302899527713022768855268234640897015035230834894836828114972041191499818082205934799098926512746386551182058988113772547845914747639312933956303381025656918817357528361246870438115921401490267934165056603187863832965597956478904272728191333066677638699502397561663376134998225817182894025611832972359362333107319467982379655586134547158897251805995888754989200857191552813529765957626706595497737596014741643160994665241369186682300476804410813792152343513581116001641795311163963691816314024048363130528913226841408125480319870788355305685716300386091592322478105820360445768120623844507041279242003171091194224936452800934015429196149540623238677522987043331311578805276828156947787947566090006519497199663810423352436148962201493534302705363902850866671983852811711515875573659552779325259215607238451891585872128200635373330391729669010669546093186668266194985791378729810571732382970602784297718545990151936444876027207106536682026728108467325093863484727592624645668209451066753170399399217325811701162434746292374272302110592482169765808164563007763836687349353776971904564321969838786129136864437495122204576137094276104541071033345435321806853498497854654872199222089886740491830872222214978744121452945396035299973037725957849637578176143836272231183324371899839374259980657643777996607379703223359071711230826180984876748079874722602420111906994467970148164221808681932293250132007647587801316953238194915615534499091699635700543824785302762610454668410432509510952864437192827842869994616204469355813623987821066264300284933866348672067492221116377530582759928820391172943467364467864261087042697870321377890499414781957652933538184976641982751394762866596845313812541894103235824538363069756459264215525057414700344112463419693083857045833740579014035579459914704159325017135027771001698533681467122137756477983125373160372603674186636643605423296687139859766366302871230395381338402208926305693352030106505720311928777349877488321578306462878086553202991963242577063393844898709130568530935221714713661056047549500018434176929705737571303641476277830856651236383420998570233073539553077377180221301832115828469041630447605777169261953206702737636028161723392919060314564086552285007037121148259022717736455425147824616025214378328169638186106045069679030736419241676731633297323015557341468916764984323713655087403164644116888325307071425124415769751947552469752385244620461358013522371280975247220415475115716629230245411716089571275773549691723295700174521907712180279197572996702894307762619892006645306298254138448485862029079761090036449330300714844531815020581694722928695188254292418373429774947276091761297707233270850204786759607342386547111643064569517830275769084390939392419510355164626534458989929591101182321550008776813521278550492092227598160923731802012590000226630653417566347166384262832394807530147894016868477484612352808718211723306115991750862246569379301997887825411049173168601587480791555294622206624264201141640456479145763452935789518200758987450627728607877028265751346085238464568907110947966602236133196961178388436783945293082910433145472283716495050894665129665555342545231068993491799905267922355989885493400828302852453341974777140589450588632845092141775780854032757165951848144220114259752165019714208053395533585846398967790920515301195586033691853926986735903100209989499186177401857482542523891616567309067147701522605204614060281683279089846664959067758720175410706165683181410718561132817674385163625569840478412477324814369704726955951908362017886262527811520779776117359613373754361321940543289267229284565496167963512548719786525208225926953104925872665194870522912763758982671395338596888468164761501662592329195033556234035740057925865873420239709915939305611183329195909244648617888770219171008643228153683307242947208827673988127040519265624763566441713581843844974100937818356647748268805942734549403710394532346830780643669615288104618259243554461096926890958147075732422911576302472669274336326120825564832881663567052637317622253252378743864566363941159064563227926572580556359288034700434730158257710815414765820769609608615488539365329312960990261779557004973731018638374308556711988458906577103032467647676242778647035469528793260015004208596145757560285847730384125903717827125289872226330772456263304136653809428535778525128776781851121439375548184068694822150082980203846625891905915263808968212407940625946154524988877163351139011739612694762728391268264073003360799456901906805889065540948808583159559525217132654417293102923650534040087510671439137891952757135098774405302997971167098069795808178208886448870352745836106070317677065119180263901790492107170454811913282687074650232273750931571250450866892524905149758979707760021438682149604958696432644754922011729961940141841596211585695664018733781456464234657278961198807406889744414021516450648926348296957571814940295305389514502165624077505976664709111628755933305322986911490374704890225462045666512617508353586459996093118642632466022933652703688448824946962023422903292031783180554268129001787572083247217069074117584526763964966054043345708385419371518033003040105954440635035815605430711748651496631786330414125469024148984409136834789447717488682780550363705644264385129922790096380336512086918057037573119114894340688484181265147303918809576480593406273817247204220981555030464407656359554344566966910607283278150992322281571973957798296350185663443910046510517938407478101941450542073850368987844427387453904801729170462617194408677369994142120770081917657422606509721503831023800099091861600841890629559005237471750366200115064792325026918962486922973253445665013694634202554715070283048427789323342139044000894478961102779393239743809802044720538918109509894298681119481833967615666510130456961787380188524224462093191034414728998928517485449424838640419727332201559739648632397382771047714135124882668035757038020129996448144659705195091664773628158254884809335156591412864839588445539623844149555122597184103262654443423060420151072743863561216275609810482061707026463703514125887367118950163873020015800189367008807479700127903137632510925112589762582130132675737620807542010544856446253708793732511382892870849612652285030513715619129855202501118289569954154447061433870488340865415878090380607077409332346394533903963670936934177072056338320301979898634090648353651395452134856108675232733122814852824869926200290725470599469979591107213774548782803252173746550538628005641965154131896920017568466489648092580236144448929758131554528571964378578163134849912651395961208504395310320205419791471838326503069892709444366437249457575507650297047047130555366323004255405431038012618834738680374698947445652477117643776654383110036006894072449670701917535385520744109875866056226864841602120262514577595825406388780798015519333763955047956774095321528624504608938771198976485927408490315024804345536607742487323899244778911735935859450212502038916851987517132542686571513434496285062586496683888543085495454477193846592075260960154247541749751535329577834325984197376724546655505540771636113973297749685358535162409797889934945271539380267597695457763710870565134158375265198438254359574325388697092201367647607822993377506356769451291974408482171942215366166681793602811715530821194958390141066804514314883678800832704113963577163344836109108694267940880985379972336384418513262105640362405429170869613314377364586048145774208358904664837436156589897787403907259885981175914565432499364387098921217239742956083844853909408641160653353362310964255816318902981044804805635130191559451673339167888217905046037819071797378104923122242347854586397651710009878434124970638546693204847875938883440445475137999001990788641420126231575319672722968678728830095179549372504272370050754314026230354904958987107421581971054686014205336257775336740952785610290495566666576084741190135808858284647464634116077171540063969613327340477167980225286205806052562771014005325570963793369993067611414626651725818896299914082251115072850611105884216463462079576486365141252748373268373561012014969484605707967154781137991764629645532818851954576682004523895979985543810813303721753972248914140990080145707932979676804381606651630936245516718127690131093798457027208688635265772212080747772396790698846227553289811791592279735022974688998344333245366786842637186272763161052104981187052901819207498117845390743166179671964190308772774037411043064668480961304337244826311782190172307514076092366051486517820215822687414940775587380650107707318451948805962420288994673615610600330563230981129887998073853820618757113793441233695555512347338032047189275013107085887794728544332804477778781713446682583147674897852121383172433107590480281380395224167872911068515031933448411563779841738276017599301176497036676199643318508592665566028400225569260401736069762597934823044253009996366910122729329246996148741212545080646011207297001198650294750014646990415253062901017464203630286988581379748211419820711345447774621998969721299056872974190186743328483384067493882220700497431776517065316211327543058256895608145612334267809513272100426295020611034371170963600018755238607818924957533471537369250778844701764692339014641855883229576818334900270807133563131361639650346069311488879009214664588340678142535605122750115464701659887046089878589963848150956091414651060610965680873417615920356292525985711918875762095109712180702377561737505526443040530315832628058589984033903744423922694997561436862683825772202603293558300647686953882803554740110225025644150581803164458553879113339458152480801895790711120398163513471404886673434802288290814679669102573800075318915307562996795135069593909058013056554353495878822377294910504868858322916404462569683020190880337075615158852863758123658198013825600685171237955513372153468925735951097348804230572110108222605075460685564330125390358482118027909236647657967192129399804362875910740106537314786717040307647576454039553722613951317610529668338420797104654604504462232457941711898916529221314351498584865797764035921917656749354194272114536190505416893428799646286701389990150774529347249492920400029468870630530974725642254582774927150122797816077253381788509738025314426372897290597480146973124845025686256831860849257571801846345584839200635399029279711368977490210128054276922043810905765959496072450465730034208504628753070551683254605022120516179461290824308859276746270739523122287764566820115318090622843557638356322796349083091216740647453766376764609374198721186991908551189113549587417776329210148355450443057179205014049440686449445519794161171108690850931350063908546724245418064465855133866080473188594743988462912757725054948900364509347592297164014453698322006302229462322535985389241218764066817282849487215928951786408021825043481958754726669547715813927195973070446277918796391534087530568351740601179598683736448169799628177510374259682795845241783706849068225460176278833903157750346107710069488282822910981526711715083670731456441030503251889751896738088335991175873628607050979119486741728463797642315573571340826563742495281989690240073146727127221135252401488952123137284577535612116640488491746857683950209826820105339625390919696804517614457461654096789575509811009028294526457981538382004127304953923784458588642626293599739973964829057573601201576164988445885669044732724159992027165421470342640379413802261299252279272389488046914853128832488295031529515126361413018052824125119194165074273165218426594635401377514054465367881808361087554972825427589875600736781022832051059698090869074456338281184143838377733999506346166046470797331569441389600257828433298119250888534820446416541431115871838610812360536731176933603494555562823244669158944578569370585233737311219098100556003499990897201894641799829157270570664445562043541206918285460391178998997469050476867975979517353532105340523848396934809319218743054257242099179752204494855893494759437748372538209709861081244382863462795923480046021429216083505013579703344683523202068099865379483411920238640894911222421544891031224174909779958741901251986065958930593200123411692550678296031246167051099725980216742962905321379756283793411090656381636932393420539822236048286989857224939460428003501676045479773461226756774992419816176069294805869215252504412940017480790744511363518763438605175726138143625754073134626632375392931682410601570142221978429902526904337957599438412956949608438141523202859824226915390693166334352728299606938485668823963020516350293592484207121299039215026574632604213491248723325290561862754046130651116899756835953580786472089533474921641489511846811711631280040963048634367610523869570578587860928058282093732313653217918835316464107406888492182541335441789764606657472693022979264306232816040755856112187236051472591502279985934316553243210609676797200699413423185007741127566631194386594996264010221637832704241645880662241513101851672970429116116144661729903102847467429715158612323032621245295361546973561824953185641008869835801307154186295162714571362980647176434882415188494999403276102467254918408140784617521446621018037911620370848244926468225912201906358277975449527842499194831423648728546793996382918685028885482622227824838157794125866405772863231339285604893761496962212100041627862691512394814356601884619316888820418328124939455746399398722329762074562784691882019346935852554009229353345037832519529983409212953835225315099508040101218820866037873051134885951748553656126279823608306853028209066927856610571235243299315437890344564301539215294109858221369172894164685109827502093214991759030327859086570774908839459677826293357714690558558060026746197642249533069735039984598805451496339593608386181668642813357439434401926401990568274107435824474505743515989384651664600046427923197898546773633236334089054476522805214572770542134679743194679292813388298654290638892616965102817704819982613574277882948081230066623186509645475615659609266910176863375434803330842516767705117756765223509377952988874972994138542049934753428669176431246779938510193730678409707624982474805293368045580519148063954997767705198804741719617948819843661452475064210733052986287490774726095078084731896659612958709447930430322645286130398372411175511428940831527674136030837620823059786406321423343845983609921364582301162341561281774389516665009273489941425233231374619963946197339967865917939687001350180254237477542527752633412917718904156483425384533791314330462427289027184199810409906414850710020556281897358771486209534601920351038408471032671007736356878840341744867727796427266337609031718032539996634954925540807199222796734474718292287021893426068199214882912288315820306434575454636166670106213416511449800708381971828330810808364932954430424596930141038435924534367898065709615268254453456144127913215060658504364805759420279800423941720105707909968241024236747959451538134805386970237765023404742157323995483933143727108499651161409688942284629535746429165151164346143173146766159685746554956437046478487439757005648103401354602978456085946180440665723033912087107136173698364404424515316729074947112213318399302137731423063512075297010037862042493281509851003194960406756939746281016901354343973590051715895465899573689295161768223835648744784861761445183333455687936151854870996046842766980546666510163333615374982954637497338664371831469928144757923805189290302654715941942305188122056403580892256903296135347290766458310142646044602200669448788203004280874982473221297560280749766536635957006171002721602642971889994105166012582352631861892705944144061506235580310853346153491780301275100754669223081089558472985762011682563042624206182838072949416921541386391407350975085664081146057863572389096117120144113045112595777900521275667686861777085988202924283053955996132545073431082170444414627068182686734155264086502363380535437250078220441767342522730645440990831278590010445395898584806882417301942460789796731787743940161277982986717313840519638382449693344598956579489594896138573334588421972957078902482282153940333129460005417384187460171257396254393522557225711235329805923363809262967938040252458299040495053211992049370085147397508639422097856907758871784526701234797773951393089955593078642171782899263691273307302083326912704736045929084860467309919650964026694276060145707034028536581895521192931777935854127665649270583193844441705165623048677041626056779573116494998601628924420117563956605129698920000432863243973676990590196622661010090573707422521596774756023132812284259684855594980309822798992693972155385444204560042222995911624007492511838181070808221189680205300144233546931664873305758282192878996404343319949312806785437944108231164764763326986720764737956819632769169884118996864055571287687152990360135550829414840833839511801188241780636693865055512987005894341024923270015694907447586018088752237644330790106967250776956779101815422942937661988195307753237810586143848250131915004901931641481017859787021678698481456711816781962329687827525778605132840740699320185380075682624053957448017728604398441299538773565871787558997150649740780698156072259157839601335063845502189658741282056298376513123450790234742727245074766784224102949201547398857118095693040556043725460830422172182988961084833177801579503894935905609945217871803157209072491390894255037053811655347656037025723091848172391344596506533912011430216246093777125634915212276306069674641583117918214137994397505385263153143301629712458157788122756375524129500356602583121369011073490038261181965730023629964941674562534112684408679226402640834151284462009469517899759393124749978348519950680706678028915552983991956897748484242011044669991094540597005932669338314436972015128736822708878959602955740708436180634982490867165240265890624680268173729907395719425061344819340749033411589140170011732847217532901021379193553279758613593448284870641916691438422341146835618027841331971778660457595288915200618073884893877472273311505224286464449860090399759731400592275362379855477869740739384638831732110759538314286517510715004806448076921979155079469130788968839528821765869404323201943763473638958153192117205776058136328765688377384309990632530396126145481454594189330032507940987529420560228582653602101148333947856034900560767919171251791879197958285157399447806984500430282222573752703609719458408604115121892690713369136606968860617193018023371637021847375566185034510362365416745571679001181842656436861979025187672250142392860305484948159043712110892160269652891465729561004085850151515727707255282328688608883257189128530546378124481975216033393546098469181789951466979656144366677063123315209730966261956007621817728516232352454240556019988949662476443435563360211933794297279097706122908475346408051732687472090590567130862249161254182708112887651937503731295650162759844014051644281350306837132583488854348542078588778778653089111095304109623539665068972229827241104110533794859986511856748320423131729247957119726604038989821348677094305817126257834629059710612208210040132328370050838532247487628472584732392355192322664978074400228987435809247073769713891390360748560772881693701934693122301561252512973646041558155810919815988800898691009351046419089607677088389896237851933015080492039980981871482499963339690060403037307740722275468327122616976352146847385103884496919680409207802203458214509963796438592777527551181649770138763072318064282212108104676220961861795283395536179651717543833866713980315494511487699417076334365162191872251055696375838623310909154644223143773700372086036059313968144933088400785302719748126935698546189936717669946497507559379445182280009981708213791758522017210826835133464938477197493164164747897582390913607407352038777798254966682755348154917139839817511102235726713018167105693078742687631482240357811981656817711967738627263436395472500409292528824429604266397764792003048199449560447934034375343671526316278104108947152905554772223914099937463752143992342427643932571556073228246562671594648586175980745968784569062594651025258744920366382381543362607921109654627726804536763844442995590266804154582788720230680252911976857899961463703462098093007381111371469094058893877138198312380023318974404283219661682140003787914015276490768385198763945015768697531640857228429753924560738210248245054519456613816157267920769379449802278396892620498937779400842161254803018444738192877104606120800697750159766759150490897270626810674776201065430393526722012094973838208195645613989378438497587029881356221964454972948323880135445624609027837595699626036612276759449005099013454623704461202403925819580697526581496377097149438418292988294397629849140720863379253742900605466546894167671470489420158112197423039498567298623808697131336603762612105195367805147814893577751676054750454210122937088511268558439010611289131740674355525957222578788510618528514900541607915708105536831273443248328963843801773728971806826596880915679865225080134793590924308522665725346970438400154803813889596079952683990474988682618940735864032278328338750667896757218786271356040275929720578377730705158196318416632915396799273262296089889444933548963704419894787607258592427813125487411531592012827599127420844885106579965022100071662031266752797296569104190462442864310724383559679524787187247824198746421091203004512982875290219372890307846720111113741849118413885172194989204351881165329185101070582170725884595329280381093492443408655194399417456192140991095354482310343594178625225101929322920224645309162454262127206666842330474236343443152503358166834682813969099873945363131768260420509467821731759716559309855685265069461337569588640236035861444666837278719876235031347014075935485947582521849434894742990332844545358554598749461337415730041821616581207088986811840748934802680620921835701106115466215288181648326514078310356733863372202021122377007399726829751552159418529420856166725005689342334546079756547146172544704631004787079937927125806224631035030391328010937071913424028359628219495163231639624962779262450416798814444778968043120086388739646056773024470513229830438487415825159690786537908719907402486331288187055691186875716720437927034337001232619808903440435796782229291525135995310518781210360295174639474707022956130514392100586753661497601145602466179155445956053416008431029570940304010614706571155226760131987548683409278937927695566466554494388417600384680030848355777046663072130672269008518131647713102562686865542146523953632057531289341242712714568420536721053807686075834514240708993093409856720168654776311215344440801179493621173062150245063487670306787523553428921812058667842536903978772917603663477248744703349236716496412575659489696636583073749667140672613772088752316645490834398450315845745842499631963057726935702952759942678562116338763331484892704002104467987997899851707671323442708131911379998012609924600758983180435102086854302491875918016944897615939118949598639391119394589960234602335328664682048332343094810325458015655840063467046846575668817017945013213374034831106128771527198276002482084627203956644301305948217385817009156118904743987529103868316033551468471093467860739664787253867437435809796161581689303163059746032315318591978808997834232088712562391111642698151936253918332855255783751933749084676988325633551074537282446633447531008738174727646357593964769152721878389090120995652722705048918213931774225438475445333952980374013469581647647039209949535553624233531948458425111929291481893819058882849744990804972103535864845459111803507185495009224500201610340914029735842216582496683062318088647993810794279796706904688265922119707283116911471086656587822698890486848912345278940050038584262634358994830241214673907530444633556397723884667629451280605864889650862199460880509881959123285286309550377214528965091804349898381882251937378520163756405692504109138004692082076879800926462814468173750859773778249667406518153011753253453561502927169090248067901241561452754292519753152220046004890567333183858357669984369250556581034862163482978063239396987127058626358685586767140825654289044658383290262943031238402621196633773989314392694710399449694203072243519369336147617271524658572681136634887629546415512421471633447557935064825833887211771301506745638792996527375657373516394724065968181004092328329084263890540828693926554069266863159609548425581590632833934636951420723028232857950871799394994886337753096902303464970000740286080140138437937862037529490008395661358279976515979409135830092472433460569343321775739235697981381207545918116605981451286668391428650008063912285846218531789334444314135124731843157391429608353886966580169713214056843626253833766793949830947106562142823721412280483217760673109981418640586135693709438791140351577365164042877191782738978688050346389741879653690756616150125749994858522095456590804304570941145190907432490597438689732938392607932739971839423799751335569413366165543376961693705162936397347332802681614518610712863744977418439720296825984070918437688745871901763679462891186635256986862964435257251156241205393217514972182032186547449801742214055392260293515336453080418603739694371016634308633985671108654126964559085532685529893648257599008749387095251831040411179524514623677541275828679568144766545720358045886354289486615189641462435720740828726206519060989000821221694807991326024956986984137621032527079535647996627344549865743276262038163748521041022495872684110632343398450424219393435851698476046222982622812894301137230064986675302497061355804058370668414930111283692056163070123458215424625873155316769914590843946452023586690267285685057953032002599708335371304822045701340763286143755606629402764671968381513612036396363712693641648221448883426182702976546862608887493520654241850442839489014886240176848134027446748767668778079739648657730834339954620338759825140060351489694389144953220435195902614861120513921056015660947529961772593329803035079430092574159939667947824754161407073190194597593690104909294730306902140814992421531776434933393023939695026438846948554442223803767275961248727486849101032177655100889622142142410274109430685022345974658335886189641843711586855964844958580227138950846223552889024167445395390719081639474839446859318292119029601177114420080952418370993712053232475423027850134596371584255980845527241109839048746741257527816946113635221194377852429107314855855143436463074229094768530258289087685733279956314743609587543232855457302832965676148749672898562412087347516990562235387989737571980205583667221136593185602018949791654173854071484379574866639841798095912380491966920313920814150844271824023900193733179286858105642804513526793603659467046451939270353669178988309325376355348197741301434142260795282147940439909913684217247385157896712866852324134133117154363492164725543955427734124110160750135204381857373481436526243711625422295356218398174731330737841893760176733066585070383808146893010208404822203604086810990686514881006304649324011895927069733377337581622404912046425129244616019885228658900979833916915140201160729530799191513597593754336437064423591010999398985157784743857267303639140004401756648791690179352891520183559489015719220336780388309926274010791998716476659309897746688823128740429265740755029048266994662215821458312403801943108430075876207787474773925390142914133018276723908408772835554140211356847868763081635649003082222152629756505312716852318263078941751620514024290078054000141230676539465864593551324357439859692380364099415593157287056380674496712361819607756203500328888043821317587716291937364669202502024675149820507294904532306614435933229475216222816921895564270654262543012730557180193847390772426983020557255337792917760746548589576653688778363862164139256195623000758374249092790655012694167678120187857059187271831020369544134986946509682409624007922865993343896995579909382651270257503445172026318382232756030116609390809835458543774322008508845859123685382290074463761320907056684973657210454528264988335919827935178426108557518915714856865049700107813331196789126533774927738186499778111474107485608100580494210329617071506389216786258313154861916444008174316657587460716047065119938022731795297224994659950950143461108628409737195504906247290161881442292202972056346352278689692187014994415603012810006673951283399908295898775709230040908134011491280459371230363429812105774270535616396267480237090028735668424961850512946480790532310932290109023212776226545884858008121118410369626714263732051444289581438807963091072703444251486073336666432506353023371213211372509246924473570014516236728191744537658683616263261919289482479478204603328394427301332904226203392682089435077940921023272932759057192218385142267504298654778346805238314104889313207184862561207307166174915923637050613921538561851470232296965574056116761405988597518855454750836710723833522142451970488384360934488552306835525294785025998429393904969621784619193475260061445599439968923732854837251197532767319273202629027242182252510440533086350289193440682083979228904248502550838607791259458468111872886583960739187755609865730941654481180653900013489711871650140444585655787974986351123900050173452462412683168678004997299582339789643118678758027626872034574656790844341536854404850849648753223283026325810996325207423108187396626119701588781787880145430939566373445795081944527777161130935617758682804332694417940402123830866997960052356954640836588227121976038947257146744762417517196468148295897774707979529345800681102839289078431458040675183870656380872580101174493590791991280251087851399709732437939462249764743558299864738271270554243228407151731185879236136714685433852030706424578730036869848041600748215929160356199667411674102999608370768485134583988082241954696624132522786561439276115167617234218036998792019715118412438280858886646243063640108945417574683313075500419250796137996184418322915525728044886253103573035215149252930462906300647080939622610885436793354565700337068742859325894840917907213041832941958983010126142181633788393524545976742559217272136450663711214041336785318428628315277457980426323995342427323318049237519399415587014995195910760119605854065253351226079587137420912969457348340217048211857326369777601811088354080379310005870357811085209777063747595933682516025523381085141999122482923483020148559455205935555350375538974791017746556210580048971955628636896194650574262981419103779417838652959782331140000133223055679455541104063519785303974817036340411373186089908333498526248804833251409645056894387879201927527827061806098304150031957790364613306960425341276800097168168518179964618518814782484194322653860568536165197848655166944081501133939592160398705241568556002486196064649361503222475722399791459402178613832093384785734583637134670358250555235691184288867600962262496350687634642291470763598650150517082873122570027759311928043045335530518912456043002310851807853677951177197463621865316207208411577510090503081841810537610222728073802904537705277675189845707180552357130639620402329856902724789156308259139188159358124183650629024975648330229270474236100129633553367762626798300759147275063525049551534821612691885918479550930864953381228660744941833148397478415878004687174967591045247481246785733791336409779240377939053580450032727580208226463116167449895128217883049127053137299239586533659657647410769433991698453024657540881906271187679034102283258946625201062069302123558517162607477865500568056897282605586002776618670604154509234350988064844653012134226103385357107325836201605760259460653829784786303848354202671448505320751103505327916945223587959841259033804971521545469776688193570231667870058383913247873664469703435346869956641651581034938817444077840315154017963154070572439085743623971783980715031639228825670376331840137225620095596106598313969582322168654508104730099999468198291950039056906749540442378725948992372638071531299372459902289098304387452315971654715294683071285065934367228605828790051170116266472826323370420598145612829603336484169618487465717766556643739770222188114892532235715221414547035190888732787528539949605577487077841970408130292747060862749645622403894683473978821323367839209583434680248604630242856187104424446120578654599970496893336075157441183150771816670120922945375506765360637620148771540867182934186515824879877322706008003847984978950470311751628282458203729057572803115119468620156902213351153339155071716169817403757237332472230573024032039038936213623318087663378036963610256395145456279638473161143949380616337596370807969649232935888667977140810200047327480236823265881730629786290730934364303175445663741801599641143377193913149479046169209649952053034702698065723188203683022256261070315719257197322784122900569666000832277961889178478751455025496578849452530064762718794641900591860807932306470632257236916237748477320173648279868733522178882632369942661415665371581181558510423650561609397382079756876063864403439391267829956268165281389762246280717260303534911274453410788947797353032757443973759111360532924642615887774185941410723068629029194292066054264917913146439071170744918944908385294788726463761719080658301790079707501258264084347447226703121276723619712696513397363674861558295705052094366404805858065641013123054400589662873770294370426462960658259469884757034529072964953261867167578774577203866322534823377875277600066141523589997633785698357382580059219487852046360634957929143420193556411336855066869883024235671397679540883439550337210263601574496268475529233509049067729554408656253041596030222775794356629622139480383588068718098291551811714767821681200972550161785938430444038656012370550096604501365538179868038967383138449459864269414500341681051073988631362524069645273229012042029280663499877273729619663872683624836132905185108561592537170887806339679331283595178491922810039823034332992230811069943274758843716088785249177884563007467264900092564895838640041507875955550082159295767917274883301664590642353227561942099719838949014592844362825868083596097520142188271347430782781949385462080401711323775147081623410557991479321981378973196835130345244220586519310711483108212245322739442407503320227370739337563290106317689632843631925591271267801459365541597826596384887794599589099795686731303813452651686532720171573899018128101758060552129248221247783946531143164032085894502839149153716251834464193974266971016944306756009184717725992654440128510162084231220602287549814612904402054193332699719842431984976715771544471804855262299068096911485227215518498233412070427891946343175681883128568459646318168246062590271641341697398361150131849269914474877788964555505269751566677502351077496183138189900733237177437469023245203066286818285621592340575098758469259416535597789608412615279431496126179666001065322204522612575347050941836647720468422518908432781946414457370075033261489799901961937841401544403792516555033852920564031394025126830737718496025520282149298440232073257150693132052186921104110078535337005483900725088392207965353676857269369146095607084972852701581518772315426935296136747472681275347651101535292392440013460292930736021122755900011355444545936804032712586886542487944571811932772178177015530299431742502410967296740651282925996641240625901761518495909281887993678871045630213942082407037703761566611502965534962801863675533057508834300321873261276664309600146513771253991859882319183684711677439562152063587465353196316871813005912968010095899171249056683466715372505591226246456807626718384536383601412681799284010649883491900570792887809824018624847837009626928103474836799883304392332543930590714241070139346569711886064159293046918285758561589460549282199696700868841561482273000582332543636015209235777586496032490910414422068842438597613252787583623962313681642320649180482630349673728152777605927350685020872552829889150373427661868078499995957528813930668729012353931442706457415934217199508151227965339340009911784092392784568184907013981718849106297649764687117104118621259550177131420780598366845410041201812818043863443424202897487252962170784563029580147906426722295862501002749991765542684365443496340761672749529703058888008144424437572761407202082210466720240832445360211344507384558294544817087061922348662182332786899229119309339206720016037409627138714012480670950767040822757952439712766217875569505929861845334936232755762340177578217233884592336774041383641933653299762112957170378799236783085326167775531113868043318931013048865270729662166488416437689580724391684197933391583145633558191349972365070833246105215910311975713227227982053802328563461247091812856036745598014315634962115416586729897821717733615249909506289225317835354650959854270746143346078126507980442863848095856769440920392274272961491542920875787062059937004788918688712830301554748408945343583827989343226818472360835494858429000801637144388751300746949460482655545459419303577446667683887464988927879178389216401841170565909354395331714638419057843351049868026920630477000870018782898203042700401783444006337692938135573889535875918513594101346688057310631012462878903671811045264867595034953970769586699966321793270885243282885129941020044473744274573790787856858029550269696378780645917674209521844042385408475127312591385186674130828137013998357476691983825850312835658047254052708599085826694689440321298435017924569744375957335691901337063918833499614208160376815660300171508891329495801968516013938337804909026093455536327010202110498371712546417326182550296988831496591727529521106254628273357684703809838401594403393558154249993832363078697770757660630490048215569052590470243541809056468094347227994008931184713506233293100336920726915603999941934036185075235390991079932239197281929688899788350279254378527004575030321658263322063671179912007411780259987075766120850902473380600247361264426531511425296888911303300609669102953530902459528094017630498991285727515407902811343199946459250807287347389949787068579089062763060800681502961431012671738515247371561797965116922273430856458627185467437055462004253769453217795057047798939604997852345855068909974296779546118962783633369003749527844627468136032640373363717788691475523484109127878444743089542286304941912770699556237817984787130692022454326150440827154797421311720650024872156967146357040563319606892196571788960670967804572280892355554357991539247884378807388246441948527568883968538072940062967413343235822792667151259628370953622718109203622969178325226931152785194100175702217833467327874926261331249312990923978349589406714119426130566410717355030014751835198238084035635849276607955052319144071963646528930738588257224103528852505950356237585973861277432841287277440747115856909579110703208580924038832789046219199732011962515239935772199395610775327641681253226310208913857349616933761580947734906016290439064739152288271160200933983595615790660442950348810027124723083890850098537900089945512388490422383038515102826851850301806541928601261573331209054593096947048122169057021800358118308196142729953547959161957317991150264558688084051913827022786768726946575394388205645879937523127233409783941049761589612924507015945218867101862190008063082333223471970228910052972344196149741010225142590802095063064440416574167523253424142730277823679801370576741551560553434680167312817442162467136074395286749137072554287277452896513334935035113132373653896257524571196473835209338287042584873817140965573404481383332561994746326365760922906405442587657739050263759383692826600121005428836480999676496173421513185154148286570085919993933749868235874944199029678814103893768735523984598381018797645663141648898211216267114919333111677682981747228993788525134127525833460989731532852606766520219786410122175728838685488374010039080559528544277801385685982332190320440142789359118528130659142814118107502972518762935519145958685985593071070399520326486189143452705790884117347223913516410547861253126475194074007349182358571426828330426877197340649955450126462433462093687750311875973223158637263873274313355520533785284288913214204847005624568086784929335923195820352977326186527385824804253699225059726201566888482305098723453276452534762630385108814319902460700865715927466861982114783301881164455075736118764537780987718799032305111325145419644937571125183858312138763076259740694252776074421789109601853684385449131439631942777767025200333678718814193440133320497183492281682578017796287300280186188911451229070252347706962906076819049685266806121292187416447646304706883376972172850309159570277144658722010339478270371449465620886228558850121455332157330104423713381423405730907815117214250679605239216012841155418325352081248369301163929395587471273135499765844324589904347230789128176234858421024555663906068992319082700840462968527090375271801179005517028296658158598777031193912646792630777872390437977283452055334257816590471546848411786246461704650258020580361015362961664731823700922050419458923505056855719800794633917328121471715018495747399602785890456419649043291316374898376122315463450841445363479633889226137269288253109744103071098571938600898665726981424232625597281784616199626435549572571638874798799287077291270424736186829165795962907178250348874554150548178883617803486886817553751057034871128972162817455006505128880438612197760622449540335287407771608085338048819931194215865210509026368347930661347467438095225799408012810039374353641258610891379114538671368610111548243875094141516944092342372541772702632766108985206970758932894646055452590213546975107464653226505610797957381044786558693185828630671919462779991939582905413286384054433159297196832600979404368832334075902593703984936229092883952297247236903873182254655432855477302426004093151974808667478836880800058556080173709471423724629407262587133061448156041657277297421652839301874409827878717478174514473104153964414736081259191811891928991332841122972940380310820702565736537148238271478813349070429012993138057547385396797744211947935199605126654391131138531016582623817571799003004933562997082947433255454748683581184021315799382778746259379097587675449828155145528550092960284006918506641620708607915338789063298784158484713861060515396009665645815425894685975404740151614411684513242591124066866705840414263722674559913862370500510019660943018666443250913812515570518125684276259458032821920996406618540285169146088452273169736564738216743988596667013948362302681540645339348166225830377757731344768558476367953625146242848370682710970613867919716387395328882826920780289158789794242221346498982733591934036829727837827010391870609492895260029945071804440295683266251623450060155624670874688721248936692968491008426877472062088633282244726247378518038082659208130870559992556140095727778023969306094492112593047336697121733044234645451764867654344155311290502188264739682620714817047725092355179085269185028679511771194425044591247920308619952886718322113099072977479325506089376793591293844033201409378907310954354523983131478735701290666711802354464012425101197999757838689967701271658845222370470598567297370689808190599755674569377614700849902306565845238440995868801782668006765995945011039886002987625060011391343947482873965932042097378355108453832482166823074421108894682378611029906550493404235356167194686002138432395232009399469887283831275609551440030625886811559966334181167394127176347723264610429988293116522422939826231655504162710341125607419225275814366671055478926372575590969505452779636316275697114142841489530310308967683968621983957490869904260151453435020022660012434824386915577962990068884685616501155825031228950912198400517287757100148239229035893142207778490584966956986290183227853082215024992179602292050931024007188954819362834855638120482459644764991056377655919497991283993966448628900203076579116951694751784526796790702262795464232276594557906813973027573890452473330719504393296752438715940794004681369320470835428850614690856564532273319784600741981291502887591397512952426524249816867192364587930462904902756285321792273159237370631279496828369602012975260764531762516938823403309052422804509877695364177735031182682299789841057954958202861094525950864655367576662608799196363639580167537342867197463984270593553789246176612570658377316788005709168864465617698908444032830692606399345495780778822446023909350748884125667854024025086249794412301663571369128256854480677709722660426788510311247448652229940631142400849999242471099731004809128642137671315848123596214570943032800915971421528923361923615767118606468642674016534253269338845508311864061055535012607177981571629718084204395314755690360583809883972839154380089969705881643090290162947239538428336838182449415015385753792496303113003774337943894826634998956624643485244857991292629679040306672271951389202325317158951591479279912209413315699635929745849964077783398715049959829207849117734387797669746423137819517601052661285011328149408785521875040680720973192315273824951769471409673260076928462872364922276334266124089028623032431221472145803992792494762523225467075865978111176869642213015365512708410431701912410318335115490954817904330758672330101743089303288132455837985653867287186756986519761637127214011761128784772518721324108756264592393822891923458711823296261050041126923583252289749015851312245739840642943742035554944832695275908236619259648159936837535167481182839697598070996742806762543444202135575056292494444497890139880768209827265854580476787509406404444955594745252515631844828004079604534276974325897032547927573278875403196387101380757182594728288945343155563131057754237049785514657666975053947424342200361416914594555926362192689996966959640412887374013223529333608043720931368054375637634243750074416400590621290880755804289505314860359544412340112533284848716249054943529679048634270916891021041617850684723888311325029664845105383069956607425486329027419114991327973400542216266340018838193359993006596157016781555709811358160835825289015120895151992163948006227120634937179098139113700511721620069978002212654277827073252317516364708457701129259167124007351141602253953136815641635135934438018141033665058462984571506765233605556228718485682391310985973088809311400518824097493967817349322504947896874677258387544742473432138751794108162170165140938068452073984554424078255810608938457856511311163189085576428108357180417809475518878528066437728370261576986521081754117050983720416319604961093664373989385826835792923406179432929985507035818281542658192214297181661181085997843989052754223097127220489933630815142197435377096749353641056223421820992571970093839527089546274841013613835674568297448786203735977652058120214488097177535339745318319363473883291214508812730184451295221053401925651685206621287117677213288086448218771063105732843100503375175892199134198831455973637502802927513502143741197708995489391938764538803261347713013652511533757914565625107230588261847217276726202704781370848889619589613778916004454615661516340259072350276447743261436116455079881502233330571894164972203273176876655063358818637636573539677109834547837905387489535615280700805402094459028197656352605055554969363407907695011847528837669474838900808891144310359202332788839558152696348882611247126309982961978277082281840227269768056443903803281621290950045949799914539468103939507130064549259524634973033601699333827424178446574872213202614948848279769722211061214944710355335076807888226693974793462903708158313449854634966073862848397439380239138314017871453960514605109804582750260408142077240617250129731286664087919500671285584977632699441405221078187929790877512910670752759336081118019712775338944728131737523617593789889497671294672300719536393097326407440505785156758842285521209093649605086762516046542337556315628741788106897243868967137398267939632622583831435444982453091069743645934266580321018163287411129529475420881211593842841751426650501689490958711079107086872899546900351989583228439063142258254251511767850958712322905671752202819798524730948094914865217103808594148602978927410159143399041256072795238695266814841059537294180418665484283173816841672574448936596771737421878389554970346861763038973265393918558641467566584201675332216347284778080448290822480851706384205774755210075239389051692460604466708160257649021696302391319252112958024991578867410407119453948891606748108219309320820173098891732207929473462074608501008510490052170651049886528713443173322942224717863374576022110532807415767470830178049143995199534509777185056428098524575822799864406328935401910784348750799581447237319271110853875692008454181419665576542469805124187623991221710505757527467137055559581688532358690259322338102330670991619132260433118183855100283215100901878940164312543230832889057103296282384484458063779189928099972335873289110696980761918858444574875244760153295634715376139848997833250422544036344220570272295984960240237159422672817301877782717382590322483315074211790657516514586441295913112453846516331240916011135929912404283949820065563985880345185779590657408432911459392018888940196230541851105323367002447191741781660854138520565561716210656425207528102728699210722719990838553683859804687115191344220069608787738844916234133059887654438465327469945654385023386180736532846035779603465013379602264886319855801473549197961310436469703845492274086906263966318225531543369187935190923992712823515717662561609849901826626270980716193266368187312024285121350053715263313162304983817579715296712937329349118606667772858960443202965910839837118678383627697800491098341835493465638083303782739487220174313125329331820768032581007001555209632273619464303205726803116166954017167604832566025076168658900939464505868902993649974339835885188997300718237935568945631164139458873684514346768914784528066533212685169236380574662707628025800218125553813411186846360775815484283828229060381242904640003083721158596548750152961791386096058716004217255325590223194091664598727007046534433094360404670437694704946334281508854262534836432127098335127047869197622428940369143773640717422421189497526294939578741097166145175406919379866738533026983965327459463571021596681526840371070394723175499662843122074258015987980098038209030469255138083577767074222329984975154762927203963996094847188732066117226943496324309338193508636122393667411447908039436518562268392814051934698786134732593428995006667706083123642041299148435109787171051586851816640055166656253226315776484759146975547327734952931308000167798609791743033623183305913799624779841317071841084383879828256023110478669248688226470719128647898264204598168222995718800498401963796485637414771350524351348626637635369662219789046527428547752932096319410789176240959168206735282111460802236816027927421412191714858956246581265041572030469640968824554388108028282857186000554084651984541681721428268152715725642436517745285080651979996323700416132917449960024442461565335802766411461472466876442858312069806612439387426226453158613626761092582642792477405168683334397154471750031047867458199903330089425501013328815448167125040087843555862202779743398950758778174957954467098631353713573005403396751050730537960758023576338151867926120505703499750384065914877950265312087975407961754238615429417773401896430413801789011508568861346964742935943138979921222827608517843770621999336367961121097846125442870162238265331702883815253246953128616247058639096474347641502484687505896871771226085886605052389892899466986575098714847634572190701011971786649356162387488319441612897208903169280937317734299971219217910570076728317933707308511613878338418634117843167431553528449482936948904724042951327859547715960050322136432201132021805002982482971302852857749058363124823721374380414342031037525405444004972792850178135419338158028234330300762530856646586156231088293945261990840222871079181740596786239577556728957504613678434305464129079634634758192579008885551956145994364521877574234240213823929800753162016996911950120997790797853075386232377416707168645772632745769506397241518820157074842660802533838774387263519075955845710407945186001981037983001514320957152356563232765027283964218667122241046862879064107241374071812227517978960598214777859280972829179131156538505388608575991360517925278327506876563323548110320148778711959651524749501793896288074824761508041867259350512276553363185813011266535196922917777488274371737247984157347827968554441403348267922558483052351526465997192599365996447944920308849588220747693361171529293571427375974239395942845789321471317512283246578233315223619409057383242844095109340612725526193725624409821141942797259560867253180657269220202419104740838484294830599330139829125351869038301087941366903512226747098617122570273794637672289147525265835679874107055571664770474558181472849348153131060171076945256087306604312421387516508510942561719055423963496797938837532239398506395706227078029536152368557712566545586271575872678279187718478133665673170626496991542634116630171074290431503241484851360828072374498017896165646725347861248738253823750558076422276251461887656539563951027141620637121792836071488538256596943090854470801658314639355982927620256316039281416983300654129544051818304849413882837332628275645484701274048843971976608601257559054647959270457058014838240727045781466878460889142016903882692010268777899587882103447021501162390788027671231030108580915683294926893749445842365031559194567329919590734746054916525918614207744547785935652579925395343862189937485552177398175550705577944140266642150613704117852831745777848518604346603100752562071463011035989706039081365907016149420722381320447043495504688861226036472076676260068159623143454270178075431762148974371917101397035787679131217285434163073549614795348061094035895120778643114781601267552418936228398315252841819308666013835744136538610694992701868726732736375663608815993811637848641727488113095944308874476416493577768422144744296166849149010207096610340026808091520114626684396622653068666720709484273880420668252349164235978015711192214576851612734291627344505625353517684954625749631390710539648064539478254621825749345542557809137440511264635861275540137747063934141467051232266579183556942391530161083825016830898718579243997291630990305568842682927706110441949809121087265119478100738062199331403313717807057513152679808030585335707459121272362261169027167840118463907262614655862978666244416520263115022737003192834812818203048634358854611722119805586263098748963241418824651877178605035323688079426994544582726441267890027506082121353130463603432651039683368348639146462898101786524108283032224063054788785894540933076471616780305325895667604461987625378397227606558795708653058309031048756732412585727273428938822151395647616943180787185392284054171576402368412249203979392876960818102037123624039807350614924884263278554288127910053404525612499856599378959171040608026134456174415587203077952724232699159030354698776484129326481126601766171930538338581648539266972638824277376370317816100960479190261918199110172174094950567607166139832171692449729498152352247319882452810410492819599375189784894509740572258278256060254677196446209356956672830314023823814497251779617860530548195246966941198582350060507763670748290166879606732744297110110512792362127915994445036207488298127357662422976362879524675174004209224813495045344548959910230971076542133146412884835008670660660470408016918606290923316057874298266843754003638768115009088984813695203092637479167497456970593008640429730681990053218238656870369078649752248357190251334354546922668174240499383522648822305163372362523830193506321726129308268022602596191983615124892731728892140538695291481479914426210290264904913000448200966168394862950000296997336058922804618773138919860694009910890339625842213037474535450225528629650216877572509270713502614119103088630466948502440274011400156623422600993702918833736783397772025478745486603560637052044191254576024761922099671515820131020464071210170403071316663360897378596418163814090893403299121872204079347574639307386235784976522248605907876234336484473072989990269885879247915898836080861201089178590916646574215496025291250809422766456133495846285850731738262028350186907147212858004664686967999467616942884695607656429115046807103537498760397447698840953547746803452141493155759617996557098176776199562710479552230207751077686463923118097623620844357543962184486257313053049876712486274326917943584338442138200782982301251109314671760662660976369377998170181437851393450742054721956041527488092768564308711148708562247996559791133630492350110632752447975092924428149694899979108466999866326905002436544293139857153594008256053783607429846912845824069522594147561728803538237479399315393799118625967419177735800931163574351711589977203616586066571929176330864091973654860043268346771950724560089470005272710672593735111368867030655793942481731510943464239152857489781872728690215728755584719195764361418900721182593585548984654777827421199687669319991059341052501148418741175672934742200463666906812952286097999306582397944096952720272219532188718420625710812913521906234005931410883144321074867417356427605752019148491319292544240073829265155504237258614270034052172520716401198619317092635377393985733144602342555904086076222087913064549281690112508548123878156114508310929438585372345134946187678973068224907535939288253713880912726766777645388515793554395039766930319195430183563372688026254260957944933549721948574656750986755316473579820323077632953997145856335878658398641475765372108936480999156379447007201191745091881942507244051372188108423975100062237057293435450025145944576151591407710813227126620012276675940351691993727298534969912202368389945077786534712832706119734990525997374438194991384056096754312089042365375300631163489054846447170632187446601679716471240529804254532746482053575371879760655871035563700612748672998300302132460941900703155893878195457956981752452642893826407252849354471150204382313122225637715421031753784099461582778373178689461670366934140794533094384344874111468081532139230366080897940863100236698534308693083818043051983336342083798147750093513151408497114127895645722220098749900054487259518599385729107290504641511907719592550192577023053281113167938269748784090149883225980046568325930640804956238327444383624915167506357164504635973649066101514747060629734964488969078568507322447106268508353213407778318490951816089753000628074587353547725047334794382989946481758982485307307594166058149701317778342385520678874463017815936618166607090175499317649962098981991916318175332640578885640147173248837702706533768418579589787936164301399355423998105520386694171132896872107484192410218607856014939407921034582796062820540219570522742326757196677630272562541564428246494866018328991256394368325831801927780157998560359994937162779045184146479194088798180377906250184294011349358519064825593540253962132685535186137457706569031178745296419349429383209635089788439001269222127592090860121543523075097564783907230461926147231519314395578317091597402143195575602663068365186662925446065845987978104615160209069167148384793246967502265165300416913097678502380166422107280102575895587974337864096416264978554466521239414856601466973617669655615027981038691460341990093155315458132791864965908217320059598500334274108958176337033314744200055143488325848782822975948179668236776385235668801948770079385128726687858255320334765419106898772384458432569266398845303381388925378733303385087282213382527105573454328602991566795745114311594688805543028939051080357690306974347891529584465357312461443593236772782672015970009522968233777745482663438398327173419683662928426905247965127221252724110317471836795274340721032696096584771905540727477269195507707782665781014982779088653758720431153189603319311266394554318451929855568453668765047008917122873729159243960998879309696943163623514502756960361746398866260983325108931019875447708002726385729095073305817714403275297450328699812296820361862261910042561937503720556020256436380037200681202173697593086844453905195867138411913307207179004979690869140247869174334415293972707715407949541280523291875078399839265375326277911133156334652794993312766909448885614728204460186636712397407136514112950702679943001658191062759497654379689016426245951155620495757367795744837326769740962289221032381071433883479463067441026621666925500654297468993831771762904518519785137420862168727250896261986491971474041554164964056617069867520324762576515629883649005838429673227387345322592514073328669617982089148055766852361384251444550940900325160557210144051592996070334593349304236296822352598632671288314532931613042674576116134862402038989846091680280338150349239833811200432536595666050950605839612977723263155187883865003684239563374814116283749805752412934381191263623247190615289526340791273802335185297555801352580340677796822228579948074297296105215663418887124471598251421037483747299376894330752761405400562355222723243907667426011316919565020114861529997059790878779088343529935334625429423318144210160356012796316808407786839852632650918646337386880795393206148934916390693512759962589794030801834109396971717331752160839089716133851375704765381820476780576963092651878281596663065769016540794145220788029473612199231756527084675395787797047687437435735289710769467812036240255461646661082397735559315202729995145386612441088536478357222886253859395306421183390334214466793013153579042918021175225097551849753560625248152531269388915444555022944153487949161909927690189024080561957628069461945064309546095765294289223459135330228216529041984065505355965285801104750896956810135967463854718647454324051590060113668971497927584752545367088651330700173513692884809579513700725656357137039729877750446671500731097638417796909390972151338566733680495946463392995377262623661475040613028587148046396534869728625863319783433320956218061283092892624507370158940584244818389743572377567206400179937962927083698572311075600305161222906164691408706645949186461039219333200639740626146207041539844322943613290183468833400696161484208067679723384072814415939547870578078663055021032381626191587377828265406650922516563189929148726778948031387418207090225209216667569677957033088355317966892414191381739319953171326973978869473063726600086772713648606743534469945602233685494575139949387657857919118602907542892171414441825857867693194852322475496097383022768626986001772237908547695596172911859527537848346345583878912929679976478958159774129545945169041613845940505529366033673988179742637958458254662770487339193289691063498390770398380702965914843846309781410444719567151638221840271737678115247650469741597531630931198760631011238784285093707443030822326078793911250434611779975763368243197927373270151092748253387627551119433866575825780350911041370853004996686091654397242754225343921324538680300335175350538641594665628001511937989485385618067527502317871721155871803482041328953975656793186475709044944519026916833371366680220792249124102879348865715317783473546605940837550884893705639631438624048413068953189502292243477409411938728681059848542275291640608454042565499881825724500694047300860872681015983084980605379274139711927516533105937385908426914843612910187921474294432108485369898066121005609353674665380426860608524439929695057755142124384913621574299389195000943406727254685104081604833575468015006349937412495054813799216138289388608430392142180572660649622329172043719566684920597924322274334503407816965132660097336028445826347237668494427112083169803887155724837653718329815908722572599769010118400377455804612978679718765179675615539304214705012956614428730581489321990748011866279230695211779105060657923666752945736114154201207422235240303540620183773438419495033431330828326351383569861158318883791163408307961616965599945561052907330837738914592971251932889734318078327897627745343523101496655734025099007110547621484584909439488244392020574571492432281081309551060185018515591280198607581544828866993370294678146980898051758212430004577457352265051825466933338415722381250422413710478939330748416866991572751351387734721983072787014103742084041228613534072021825023610868199422247172591714365583081672316169706081164703467565924849394167378075593440577127268978757572642631926318655804187206186560377764357537217046975846168756953034847147930523932427915734983702697165136369285914738372392978654282941854014385551204490105877637302016065460025974165518629923523004096033681426314128097443455499238455359533545791842448807913118762443088370745146229783980511804890492488358179718441698019053034148641943241571591180876026080587549896588664328910271487258888781302910025197157038550409179894733946310204976880985915341846523837016550553870900910247920093013881471131704663570229749012942030977762559211162153307662615379840182567048919226891521737890897573955460353949323802348040597257279766605723851797430392291266645169815514772223417263764893465366348688231111679723685572189535632973662297102558216536226448256552016258497357111331854817065336017357570264733101697971804412392958030226976116895176365670094446703779709029631838932826738521806907928947693049022668882029657551145806772062498800794569219875741934695666476946154596518793715120133095541520464947104876198495066543568714897023968733340333779348026080285809498556559529980183490211450433578352101129295559135441290910503318918526904785464070961552304625720798384842003022108264311729995598551616996333346776013791838390214754075196431060883199366773527985536821445324498408154279141402974501468371339467616573174606045783036035970578325268848578026364027025795915251841888222025925798001637484854129448594951090312739738187355861697804934989599579958330856552167137154569727879453198434947440884689384246891480461823402043135427459039451186655408195043159516331038281777781738989130148549025985036319146594135710063680440538133760385522520593145665983002901466688139921663433372532100252336849385814776345157969247663389780875938802186267737745816255525874482356708302698899990222492569986598092582269353757673572577515892915810891554731893744299476866046770257354550964507705048403063574440330041073522706973716840536521455311082987357850518327626429475548576118115891549587249681116419779697180592216450067624486727096726434908391076582240839185576485038399249481660554037376947412041110017367711058614801079290866849240226901410499133191501755992655678903310872896255436983750823690960205094705561196904588600796520487545399556100713832715651868825674902563518846277252978318704675983637200599818765434529161650335214903043093368430526131414263764414372516061064490093635417307262973024801885991075802449381103438883871493828355093150657714260731365450412010919486736823482673818315160964534586672543346378698136963477815264399397097971196039097604390679849118621112531465910674780029567492652209962616769276581040234041147546790076667261685303593814369897031845278984044645665019996961705179128316995225468312269263041469909292992316810193997723423088615414255623102979738593519106723649413240505836088277227876040072837325262617737102707488873559081648942787346603613530272022989694097445657038988426156504824327083686627715149888865591245547798545529204196795006894440206187871519550195554837500190739932627858753188618340364870356369920744746774789293283476211523332897866677172614885090333590435162847329139269740256525480066827720475137171974871045705347524914175065220785425316260143793675283686170223226530187867794562890473347455956583512785292481612293651466414633556256535798764878940235306254577703972829723907740798503647808277227698492176389183502365730432413062172757978110968839901002832990515770249200119905439107448457310131434050140991508261824811778240249584090945701317121776960005477430316976058750358256156014240154651321524355829066999028588669990749613904280431584579234444444311261663414540243721795336725852080351119918123972174944261469136197924324477667651430658644286657716494792993661215389695887893476415834154782766120606055918785503883693970979888031669719492322951520498847650639203537369699752926985305830327590759629395080947206959996360309311199457606584962621677895061721867668861195380954204539667065660461050162435695991565701095844750641539949053363852625977198361501545483685139545046183201655641314477290942163560798565205484961966992101429963987718674601478207904530548945383445641332668714612255247026364214017619371076707971072945611040770357478218937891837509006309053262090649415836841169951048116468372268433042176475616815035239450769899963287067634586869904565621786180470138489418126477157120452508218290496456383493407729530938963180822924517775997757911512063387669768042026378760529662857690478671559533315034561741780393171827460779720673945226942385165907805524287482692469553680577256001387275115232792334722348623081867570916614537591652080840454323157583726326419541149871684261060578887460326494141635722181938544118164173108069484203118918474084868686307922743294664217769284339921185553362148952738568249397756075792652518513237746514157762157054674464938216223007355088937053257834760802765821320675808631620475811299263054377874129184007136293713832227145822249349484631406482651259679974109756797262032115664170694576306234096262796702335685444251718051254962456669115851123176068866312881437492399205295703445768856817418738444727801692722753089084093330489690486035257741595249727399548566080802189794399030063369039614610186719169851013259924361114291132231840185076127468131097825683136843937877232690214035290414963317690592167659295196081500442120410812073297500591176545972528279853339519711369520571530249905449185903354080177016999854796594627325878406638695942677616869391914381423744254772508344869764348114780349879565742393955548210171319569204915986088270605418417689597309336528657675158321331659074750981766832387082977105635280777338904253671572687256853176748356098232740481571932673530298375981346452069063062916478585298665235109304757438841208532580448662409974061349582640978561383031095174711962530892228052504399170693757646390881294021632431774794870117520062963819759154874721246377655576352226790473667703766110755522318281226953053749847547501767330370177100493854553443815996240500864600760524964871633493895133702788654713468531981544576540238264049723172204409371408913411689685569725351182343561787549355218207087921346302171363889787986324136358788079959137920357295137711789557145152682882459729681962331006768817730212086336116849011873693306748327913028740876186118048070303838953999709937660658919648753959585071357229429478711531470623520287074560854642775089366225497894099442203537918859157715018193172876906785721219615376287268206279902372237473866288805430526885076079950857594039852872262362021698100680317643058295249181989930523163679881068930720714256461246831132521431078656435914162616824259731448098406406665717339725743397444280744034999252668681860501024852660814101458749470801863919700791392489647724185244055905477886134053104171117090848847064443919919262216940614014662634934099752013655445481900264118484415563691674072563976783630439454273577542141233956642547285609423841415948876248610856494381884182194962056802331463885119914005739231895032779400737624481252372221973259534459364577793675211562285874989201465174464740007695731187740990989130635973206591469514155933768036372626420885676237458343130937246630411331351338087336574608595226400199788936206017609173929112171278831082712622480622328505538149270237040219979087577570913178651220707161508814343088487159735623526147156879016439165658522986134808335977931650320405552129626852163355860861087760190690882133772201924910112545809615835693657925892549661513292777238333604637592679993769242840344164123021073210170018597357027205655950374192795357879414466602929095924201861577098167050217255358838007306771237331989665738570015820936266895519783912670491951099426255515806741205082886111796890293803202238753608153472570972340614445044625083774939582427253867586874696392251434760137970018641786290546694282402081955367634554141372390593854135292370763294457150049370124402013685029343781125016066938363941978296601510364404753352511551368948719969098545878546422517875193083298145054373371183525464371866076763730991252991477023189344210125865329966263907746117588770932092430059792431661035735672399160624639892649833485636248733321107687231621766499748049909525679037840996343955141747798394845245489380337072835807113610856298862851882560234971500021039398426283245451125438756472958771939990890657031553162540159624295422803143735159070331138875591967071688201555183103997904492597932422658034525735591796993994454622207142410295554536906582178172606537464236673989281596921461661546523986965267591959142801150691237669643720513452212995880459366543876042462755239765397832272185360801270094487219216028105696014076318681239170941002424546270535330405072003198355508144347181992497666182086983411380864888806878380749271062521120328812604281067436257706602963626103608243808535792898187844933484591219853646545645687474646872769042376567025129340443610822933771937620797323507179892567708033285992915158637071166123726884987477771283890875318992413896361846409552931775379236474431884181859714516947812348117259210464067557828784430340315141173963525333296361295447983269311486503633947168439230979397459647005246916667574654472226967588505799673482382513720974475299125408478661343899328085165970449684077689119931827643623494281141113584027248572207405060195581195398015340962763799966273401790548297670448034226262038722401674624725652082766952397206836267621177616462320995827658625738134012583280244986752057138131673687708169559207913118325700469594327181875059881517506777719434650741686129717432717221772994522683550628216166761793247990211727622938353100957450715270720372490035229115543554601725535625991457040502024389912399316928906054014733930309492326801195710242163873149615478757823040968159101800291604170823095016346385569211022432084092521109704452239661422871693735780655019500510880495268382215982683988330741113067095961108729963820683225659552040575940413029648589751450599215578922290153049426099653183471505298130385850657773502290967317190842206918345285704226271220119393175105429833997052228062052755040595435517673983737824069167364262067035505326972893390277916463346484248901436355491330940927278006659451373602052556112024075894516931102061608080832308874771335074957194531333795170057698078374008278833840096354125761202342143819497467439313548851665499736412003713503746990874046368458751168040984072503430109956890854345519095091895325297339402837574570506588106482790477309608847635961100480214948300891612781805175972630546342753019141639978713117234913522062121296595047874409615183059721777015657176258201193819338976610316724507447694129266490254630973393050211515196438191181473777872782107486326494630103732317699373221169506994650142629143857283270255683254409066924799961799888333150979001126065580484906612082935724068326481581939032611899654141518340190738501909248397435524849440001971672514267096769931002551080740923502311189999312629513100040297931201105547217594041909708183819206806065309787968907933910543775155939882245963326861046406434983296984382840862729000414402083474955510858801724338553532884945444990595836697295061219267228844716990583693366560403720803361943824747395098639776211577411307823318332568952372685477439878619541467687338151218011217061480121782316682568837981287980401649979541312914455926984377639967873189711111074243201756295405578538332112490269028226185269699018823778781931337366054680108199450378473576980166414996289348344638756553626666617366473099627752416566780383104495260855239595771930184625063872908633155130152970299314451391312803852388265285041821254350268752799798323508574883289692568829974672548303067733643590662930277324089019479617530006799704568338920111077051395140729650618547702498754088431251180805744634863808270530358773522957548429863674323079919102525512275465495246590799765608458582249319181500019308349221045020190543938103345190890937080053680539941392089784682794586902264605957278098147739936025350647580275736141218311489318612064429732958412655308326686179487234187191005400485272465287860779872579233103690755506261418254914144599223232769810771767739657076605541239745227265676660258894901459676439513132917081727602258053782817593080210988093473200415196280766671631428778491427685347519207759701712993482015214029779502333925354284143807455717846788644890302342934978523971649249341262310553304803841071736344623531843945602877601521043059799611093188444927445344014338659802135938485862166140943245984028287622626124499916592786406803071683502430054997822576765636459946266833606701751196551857991745459952967181483051777795596028615946894048479510155213449298047168460400331180870240825496335548523147970761589243827299646478689564435195746464634715670711091204998270557171284742304442073078813257988871955851768563232975309507832325840116041815303139551094157918871204037194852730408859685001338143886535716344205763778646057497157620411524970894974342173257722326601005441415383174512364436784919166044039170734470095750875806426554178849570985402318375796227281430416768007940509532321930930849693076623579276785632449649669297419038068901604658203376110547526047057032551826892583742288844967929027560731413144273020155201797233147769629888519422828432236535406464315618015841474285482679463352192117562630432250975017366652994448175053896124501795957245175699862807149849453669743757295795363996546369913217209520940277686142383154775812037340230683264410249289118627193597612182318145386454851401712759030714842527788398081026842105690400093902993690182979102745778828598442284375177651587603660053183310675359474721453404234176656671984642784604300137451603679664326840564555875609309197230546854746132797626648322004261016839524257807221085501486128805384254197453967571232156356334690565847249376268139821799653925378696953984947024951914750880913508487552694667130333331088159842605036449338835534606163113867524474638135976060545096309842064046950919753047199337508377854387548071208039410263186181246150657416620350065411850844119146189051420383520571781635061279652617458840327537666237712474251407102181920715643689425152534683665247417554732911684268323449295321910715357100589053450552061029488967231656696752679396315080339114790164804070798938578933714392282976619546573342192023100718159575638616563001283547991332078489918707971760833395103527609744630393091461586450364098922274031677298603083837012799352996792022784429207321819444440927889753686489889340136600118909361004265123776381246026035277322920791568515485285281585505115454107696823484353593638813585413631005228156640194302596352135816578402482726775206875238563601516971193741125438373194885714166761727039771942169548869196261730871029906672526376736487290626601082354902424461084218505126881362203181167318127929323875315936468350349224746287006644997819151546427553292315315961042446345127911582691331739901227912012498896907592232964043918577860990592324421472375871895814184306078441675368967737635481925967861252119832739257231532063864153937810656850110960293097426934399705543125693151815657725065570035724222356889815487694710928448263551266383129936386756140036524971334732534890632589996127907887031632062539681170668118322724115859340052546244689713655812080014197284403889259142087700190083870029236537124501339481138824713455582954242697074446850368289464598691279470867944339781025925797669546038378938739158615956055605994822054067031862716232052948244266303215123631292961345401660895317421675435728969938894027498687327587501504589981688366969325144769837340930038650440937873288110767439463263372723591665144796477622958680260770036362802676365610796052642336647042962880976290482392562104297680187275393265707001677068323977755183203726579981506236947052293133768343603963082101104762664048525204546497628881389533171567657081595312717523425288186993241369727668382396221985271674526170621669212960280845883461964458983192568776067689695182679839690495397700080998896083581283684128644091075455243722116324503048501073031569421731763970946381228034016351705218787404293725713612286025418172814384134926343758090078543763873876244583013537806768323141300154350187637686669212896480029903957129534696235753659353325912392535301349723402965827076737365386332472647785393390306400697615045841600775915835405130991686583620112313480590433703810194085058064455765591367482207175623801606583673034858016254442531045203542303304448602932778465037354704036136986238590062793327162919282879058627411371028446753453815123878022820167465381239925360412787316875868433057185886767442481140771782738212509286029616362254523860448162549477476944892573364041432169737700996948058241074543169438202147936957090083043005706541143797427604969488529732963216168353245141020290738903147503053816310398939506138003325339480264556070125046978046409780101540028076348917649745773182792777151363329208772066700823478811619052005860925859910756190168400370322136632256210056768180481644721223625468279867995083029176323084784786301160939257021094643557264611226609265110590294699963664474964756759528917913058981650911640564990444702172269640322954678853850032886012689879723375324034685966115100700006047507896650196140947013161062796972996853198809561289969034211570349185302002387776662470023165559630498979618237642920373741924225155115356692118919818262449645876725492548450015185768461482187728715991717010995614170545074707919210452129232945596878481841493369944239875601576513646011365512684691786245216330296162448840612189907640432107913548357691556645761544856408605421742343720361682056726208375254152357673108110154144056435103254969366024687402223061061492962174019157072816722514276083885955740928358351699059148070473896403095523369207517526293314842764544528487268215988201343304231161969868144084852485840809010485427746880160649082298648624708203728095816804232583827044157542384959331753143838685306433322661179786642302121883505052697334169149783017168879826191060592124238327207811797485943499434809017423773941175094101162967753962669661470948861614821951012886490807276612462233761958337362290284550951643044393030325423162672001898314030704822146875872413820567341209516732112868502415811905003199483134615490990990935416414631068886831042543412341789061907756810452907262784204565625727408883625857725377661155473802839089127304000417384652413040948828550147278987589713150366278641030659259633313887233614227689495109735296113372133739909475319830987558432856820184466737051394400532267211424939072218015045646559494052102340250586858304585127601614109972446057833589072265141267614537455781499228619895928919503822591156296905172296068241702474421850565327263219614765386531210339905017908958767172118054373344281748241832295135768157839486216873588376201121843870435838986270763608504228466227559061322270991869183202210908679469160176664867998016225828324547487389083046086005470690137844316400038760761223212691507259358246029966538838241531026912449628103400592355398126267549649115096245980241328891498163908972272136393930068466798411163695996986746813516797619196375271036006231182855142488306278871819569719426979779978582870297102424510374694836205205267316847442882791101597066540032945155906034582327259789502992127124693640159144495616394295460344494039246886961627207509758528812362998845779031549752607560933070795880903992151254328558328580403892817355323864143635089018000724273273227483429110245605382908086078125299053545973355444498607950151678880421983103580510109856639229458087853925641620433796132455734291076538964828955646747159275446332527311933975705852023356039291515214250420621252305534294884978916364056591511579580274187508110043516721179028239444163996819767925381986175041577924994027149953049835976312885917449730792121144226690783133649706556579970786703285191225879906520994573092012858543036533000843388803413199587747352330939300079623958311270557432189752886861214689106431751075344825670066848495813408521366201783924211973494892120109631699397953158386797852855416477734983643862040400830588718510953545590209509396551097364190272594498494017951989955418856929315293380228950286595059778957531637588041616767898151412734907580046839415760213406830279060451861849626178888297365587739998724690777859214290140492293882788969419558568150837753412907756315437064674694909515674797668182321113486620636243155521089252351991095216433640546592862103185923170938900016989013636153427370976504023978666633230245998251821568884213930761097206949155549031861080867629613866565758404194741354304712314831129504851521555118335657844448914146552321133644332975067941285928939428985780166145624935455928475851839500589110138787436303280708677720587507651670951918333440938932011763537715661610621002228859198861718418656188920570948683439669812859320659598696490007024258956040755125802021945383069671729750692566863036411814139031543282994662527530482347195998438881362027292394999505140971684705911176469939369422337214155287370122901192526190935316526041177246510698687022201988237499412211001304668271329517799015743540307463851961020490912725125910653733176064140399067473113842794588176601355434544791864045044091877575475671938830050392394872134319961685988278169285551084625305565114145956313208325594333559653515384586765333821649822480305903088947374757250718481672910265162469957485760990967478964319046552059194503505178508795646337253528242848792133784540860620018776541019906430926319080975862276138100408499805098913737850971869630565768771757368689312787832866351002035113009573163866089265314601117327669218203062256620837995438916812399390751849110577022568026806193021040915221827428285738171770875621551205957273186701740486807165458738455263308305873692492364637332570901890910941106347009118310556616581051274884438386076265307940818994666386694684823250348223002693576257121538140149647041162224139117519269082520696686060842571338584468456753655422371580073871620894884662217988199686795919631766667943599466989254013486818310911726159341702600641729178810583365047710894217045379200517303886664670320410090396062472094673149116331145734563645224479708875729801608006575116901720204358236494783761363401150578980811477319299313994126525263092462589407112097745185512128639727306632109658888662058786987386078531300823355896384673724402637081478993293205820975312599130488190185541572512766110362472883457291895437178901440635361943997880499507979385100679350512971457114934108014092299535191744615641718140324456810260805433260014990593340687540534429384175542728896450289592603703691830322535956409969451733728545660386748259396816047488567552534106012044329220678735901038441742663883735083928926874071017102958934159501696488359742582308415084857635699057633160597931602637001421312599939851945294376370132435366343182389326278725157229842649987534445885636493688197926092532979948622846367716563398809362539209225085323394790694169277777241579106231731039236119075735697630207155835371193419574679942401257581291061118305139630317004943360142552279876051682487231667854062053393565928236900312413897439408853404071021491436457098651963067723972178372942011249459859993930048279083622914393583458543735610545493721673138143752682747863170914457202053285649314170680735010525058885054434473447743500215292788329955572420814551156956751491360701180935177024252141156416377211423596776735785526436740017019314624587630842107752025798633358423704335239516024061676196686556254152470003126771234994293649601822254996798394748799812725755751235000533490995922233673676052425172019119918588728275343232845081898267808340590049087494860959551065737707479405392760940142729081092864871868361749352172004154996293288964113946214630792556140157784397994836089645747089786681590098964809738043439959931642125975924092388466497967311270353992574198711491142690989625851359944091929083996216621131838872831018280474858995833684922640216482583893250249672117646514994561339743962431122803285177817190978324789692181008783152782844593097512142952683175600602556269890442673466783793792254954915190458257327089981724847565847044624190956208706082695323654473673201251974196011458300229057410094629268755206447494287958063541973805130744556415237409455628916545234567458114715650788980434691216770214879762280015648575078277494581248267646278497706484336650316225098779633973267658092327580326172132925167018949604551154738173674375781586323838334294315191300167556917412132352078494847500754963153546381657054552751662681694296591611556289880593343247308873320809463224731552150874525398562070401638967169573342794445746119860871133711914070606083572671166859859996439933925222643017011809834625648044087792784616799149318339187874270261172624487043893316994310821315774829414449543660487630189177105545269818353483802099246330935280796863400262674759407224931460007908743076337045916746511415316391514008178501989427297665330251227617953969351702465091153335582123990692923549813941870189375867034734235120091793939519238090503974518910199215565462869574847804935121446080158543905947913903939785536124374630690992723102278939340258711193530180273512534739303081202857359032890071864947430752417030303760215344528424370654597493361683538121286235560753864129901713497639493105813409315948546539193212842127946522067616894707385058875418969414568099546655311152657474158171279510094514101881243010950495206531899013333053675281478948699252511027467672742107673814161577327127597005791496565745389232766060883805115121356211650788571568462021868200999224784368867800465488833694277324339791909604525829251273458714740524844610854092478070284638466115073287487749956068828725461399647432110766772975190457229952205179796801914012058346118276973490834696728039925539336846531762189273896512439778342320550780373022287467714693269220845910569301722179498313507251110670376015610626357472285411694303900888950331920258893568950778941043308835436266476649148736151840365173112120434376439417201382744099423757194303551421508834421624170307268148453323065350417366949260700616013512642962629645800355111355127301578616615775689724240530591764369366547526077571636734492882915049334213792378752095059966421232487485867660522486610935568454965554315674691119146659570107190452933042831851689719919714698448707140749941470971712846694444423495407894961222132398278451588363213618679864205515225261129633412471285598036348742018788501846760227311670029583438315172616270333430708066831942490530349834054327859732315079829814932155676370988570604461566130891779121817997050736355343074782348688086168431171104679731541495336018185620398555836801045148211899447513177404779136292584290013800598488518582459216730422225992116513071159101071611917681722277479161730597721081495588653682078372163036971998519091032739264789075477658164218201185846375535456633508435040833212544941241434777553569675141801497007415347294584023007653486679965079644332628735273940598282122207049201789688160118927430040174096816683781482115449299337666928477077180777026020173949824568570188094877320468055153414730422602434921451912970830934786837233708825951972893892558050570199898594484590145141192489812400530266630391310113461809658043272832280395720029096573453318484467645120662258213329670237743421208227256812466429202782925310300455181714520843120868940489607560914798518360213282164417995029208745310361024462301614977173529988627109373354149868401973485870335741491552669903820841089976936343187501775528636014175323889968842639927598276962620833468140302128790465955204341968752422348949684669187580122721061261079011584478508304691960886874298980544005624974207302967267626169402437308236051450390584702106750031187387308714441443930637517332899206387997225537298632895370376339914263277892737986219230513592422619716167879450548033637425328990335073820275470984699468004943839360947721822311843744400108242841530955512424384142834684831768493533332815578224964002166245218847306243061973335693283287353638199386580117908182737102898143662484330519592174243813704346464636616564031744735334688053168824656727074827168818681893002219585493506079794157248008100846601769745704646018911233010859661651964399900242672036071350080330585028033027368400225491002880758154487112643013172523920522350553375665848793420960212932572663332760025934926423853803126677580809596329106784789214887049503025625197453937257338104510241267981361251074088825628299495041264063054063400936812157800877131390293387055974006544325861786687050177621339474413363628836433790576171812331485581156100178389985927172333019357301470968533228885768597090453538214974693512085460030683000512355174800795847516046432112139349012760968665660370607916710632733667327864243890806453104060073210063424185423531865166131033395128453195142396597518160265593030720356311162792679863476044790377084149978290257691759381895442038999785550985734033069730432324626264853152069931907682009132853442577872666938231127515717813061741646256610130993040390069679621736775306573344277418227150242934156962529650854797858484982550150583184880819924941863155902023654538123267735372063452647407536821625780562060209698827911980150607490205169463285541335783719282716238298202927979110078745502833868662636202190586305351872199120140649408463683188828205486148954973865567440246134680234188966631211921189728821014368446445437790241964558563958889903274680256735894594111912467822156929994694139074982729393657478953930596533904444124845251330957832679817091584011394939429982532026131728261887621751676436352178363807056904928292256245650826722669534262131985925408468712517499464076353852927927801442723841377351550497642836772119909918212606013269740713027619918559468937366674487252581321329012313403975152035294244408620257747361506550724046254183830199598325240647453947190688063114366531740130823410276526826045716470006521038166001196402924232870170173603820517904617347455311376004233368630835492235335728942502217253294665347184466385092897461414415218673812595889259076445932903132484183658255827715889366606561112679637075817942990443041416917313960477408204257528730398718047961006125051295754681036472980246646060265864972215029300627230226998590124397193577469165586636708272374068660431449814791697123262233276625409170386047258512714095626571565463719712705334064135901142180967662585741028756191468604656979766971843348136333772164645517953492242771530513167973815698906018041147129829491705235231137352415760833663033242854672619750604363220739283172611065127961345950523862668568511017337477813908507142532129663909189515504133993096238648997389908147938944934382199871439716101369107451282561378543884751941976194375974538412682666309590331209842872101265791912528993196993264425442166322361484539388060498342568881612192828034312841549724036596041712442208941364251556602201588983175698179306360702733268720708319991138579900750388357136334579145774015713578055618306713050862774726901653309828218560943524975698524517026789434469204885513283928724749192661079844646221028002244976869556526027466803329991939739693395761461262922035471003955981973567125820200433118413954795090120256525061135756469095306598741907744604209930322011909987366767080960287223082978111670628915599762896199630064821167649275316786099318136534257245032319141454312891072460539064019961797445620682106736257613880405190122853894626146236628147842469339059031060710424401964109128868834734665709378430244417403053278141160009155782478865665577351710466820229567249078757521576087117237026584819889187771211382686184285195337323061353141753954353499648036535655055031181847524317119522461213985865085606026622312603681290534969460225827954866095597273527285806119989371149214693563718364808284368863400963594114555741754050600893557854570966837738151694374484217557460799189036908109005548778279926688492153895688088912496332635208223114698155362032693494391649562817858518594432504924504029582811127863897012238892569023805419108812178067980280214455502787207264894376012501657261347530692391212542900558714281053415718119582846261643792757161212701270591636599641591282522593618103948685423366643911670454392476406701227278379031307571971332728918823227951298314144430485654797289420225170746454699696697233674498708613066327831955016398993776995705060480305584547270324895146359909801225547342048334435944855610615928156001579118046303362826618555406500512763527278061668869314574131459761679741556061132055475325012127187061848914048185427947462382804813770367801501787998599662281412763083877022404426025252576180191167787150486371418178425910067933596736264764213632383833570329110137794719967163765734626265469923132759716373280110747076227671550754553749227540554119922454098428314448834263386104328213882922567550485969067429960523051187389774682172361819505310071409982781473667311933395597938786310562190795383104625193310090551339010216214903843310299934898412965702626822759674410619570284741355706153384116235629412092017499641202560336234835509399334054872769776675995295998960274440203873690443514007712924544449194317622770233172296601526275741831597256082422804379946365570191366438147958782787983335620165518302587200278678669578142754197850924764921652000374997812608024267491525771619114275331995957589565648523236529907400715314780616652501367426956498925555274984460707437314683605219838263350710004759668471712894619965318738363476589286203531935415203993544746128402831097104582266608109477565990522585495845289527519915990168398185559648064618971059067442803313303791403977675456703571876756095039702400934980110040846220137350545335119287803411058970809825843462932856221779197707963308394578409777240757148121987452975700447366631169172106908820543079914333715908462732426257829291156298328831509352299798655241632475556732807098614391198410287970908011263434988196458393859121779350445413801468363430626756870452574068494756492531494275955846275129997206379821541102584241154838518601580652420475308162388597522569363105126444552573732817624503100228912109364004468339770543522649804912898320704442893482998966263109120664603658112796244714868187997188284276206001727732451834635567019400005354480283226441252010304763529384558793320087742955604082159225754553585925197628804514041319865103206476702536888105749801700173163828905065347801979755222404125106893879088491397630037564477730266629962907067565267665590744394314364800107742490880080932116453748219935246953921776587806622622330108721464858893869957866454822400077969110239722665124040934422211537670545147920314138762935266472052696119863473669771292562367379708714380909195494249134695240230604408758945237989330658006762090193680934190137348778282855175707704447773839967658541669201943926311504928013495839963919353716740069826223288603062027458032668193518370861100804285572832647797011357959415121856044343694961188089223764527113939153384329460387749495554891556434469285782851523983562675168278899267060854811833146878725909309972536104082934103057417355655673530298467390339841775172264390765295693868543192700834124682283747575215824107107170009855828156296483447960626340516782645517838187006090840953037448702172605310112179023950122012159992624094467480717670141207352834168430325382844258343355022457368648673711202705812987444567312901702267907677032501623459508600269801076873673837372481334116405478345033512947482119307689410230515562723916314023661775230703753067411839765803234024050355586346798562217172642941366326289951556113809538725077305172130642915516898431769656340106144373796636703300453622148754399444835357292842839838811752365230905535477241485618328730703946429193856285050519747464523757860736249177824460478805494372775924340292637789556312505036579146187974673273777660169590178156838860869534373712969373426883622206330770552170095377319522571015360312093879895512854448428747252210797383526655616503198260640198071240365071165824164329495511267794518987877981101840612098713258405700320189395068865168945184096727223767832862422379633056660249890222883319794127610005806967443301241272803547287214549025737611173514499880169027294451402793586138239625372999800154639706917556064440355468067730327669400868692371574608546869671389732060857512391450333569990048435288804031271473375810040875497507109173806749161387602971957079250421424513727647304532664435740918602724021796223580494373870535510104692046395480853072713542389506836618365936028881643813698308939693863799750973538059012983936094539553198938929472922387583168767487372936310923262218514460341471288175829333026656188948527901268885596732161137853034677959698367247795604447878655900131063548616595614208077784107319363857451312681464245748904764316328797054329142266424709717693623006477315876979165093113717634671592649643170898063591787958647288057020743026174226303059930055576869664770530784684188496783439006419463703748270959852754718103610215164336368307016695534397231833714669152069168182380841446926911688807316663513194870132740973926869432978584380307527872482569849421681944196830256256070753685109211385522147304023560749374043406257232955510958084115164285813499992751277278173643749871783935809033267785411712347136058028829572010979921222960553781426662769052116448647846197902780085586900451604966492197270274290495761553058309639248053913785069489887549653315839499364974529884352580221148802410042268452410579337384423459152992526995793978655705126573050105181121113291097192123565522560813619123278727098317980747805078250979563661408608663481609270057970914678363238521912430650055936264588304826990392100714397792871666802571960016259559630328508091040176392423583367390530564998457798054535635292373477208914202287845552639669131473595615299904828757345140784438402342087010015042603294973115258840184635174709104333383419743462230342842506348228269690687895238131431857625823482502161983984830206540599316835954868662007590555445679608472206039920116185057845890086651378583146765184506681863356855185158274531161297190988528372924867328314469092465979547223311715402825438354693119893930589422988169650343111037362549537230132721971962501185195940797959294578867957364936452465632260058549410917375164669514343016688621765538240340219233782866710410778780457319754399444294796177732572205987797111776284615429808596042281663209198584130410703811788152576139551757332904167314669284574083256236707935021231683958119958906533777569219768062707567553700511482342889100211968200170620994782512006812672012663963100645558397011736431271030689843276630185270597145756231333467896213800916216993354744338162114453645327539908069756215300623538810687023237814486338870994932501749763304981077890626096423668688040421195761606600819619481929258728866637895476221872324618461383112111468048981548846521020713026331939644721549692010284855071485148898462411687267376946249502917156246896334593038323113863146726532947303014499314819596436496953205563378464547077430566890111321055125297051551518044408952505013580010812317498828526074090169966110139202181191245348890947280110046770536006414154044613171303362618743969170660774838154335399517286017984082331041920917050347392790820071475549894274159918724529271600818951459934976885883835136310588756182115078088671579649680637319382365499673797375831002273667495033088872220190446391349336663742234766403579398062118590931018585796940757279661653601960184996792410991204500096638966903491715778624388946150562881233840899601264679071869555320811378358781723014017482591021613410473208156049375688354738561738130762883363581361935506780477868798189804737973632377098908029944702031720325960605144595743083297797739461853194819833237752411392426374358500572112138762315149720817781528438137799508612117439816566436582444393107293273617055099072174388781716737458417531914362878643993681023331275185685948431028845222627112072592936881079522706969925767504709860676488297627564906461405135038870744079640328895364490094298109613049723407032687456995032475940546813868991603622733277033909952408094274033585119792171909782920440864778329685389210714941996306892055796310087089563273208378431507015630407861780134649435750178489383231895967428102523953406666418553949553613987351740496022576217258600311410656958367764947462274624994693604764966558504126897167086918429922441603968054414413076651491251396227408296310130736307683846230096557462399357117241940138905024870185645691060088643566990581565438979479925125805024291255667748050123227407521692829926821614721790368283854662206575877403720622074604539150655076302289062155113212132732482805457756702208817051200613758933205672146273933401138447447836030194070219905177259277415428263342215412938222718168406899998149097407993693682069963642137465694846112850788298663708881780074228044412880879553729886065671033119097901144223704590027130987174650707263016450550663491151029821457094315343879953538652506091356346134643005582326717045181302697858105239682017812496072928925964110828149541213861572894333750762856826635451196182296205432612570382973474728779316189406982365892123468724108048664471494676952755183055041291468469781614952450641965640196034677610761697810552150577053180476561819319243998375860870450337478250090937742617768036510736979105086312099988589431277030626154497104514126236363842543697901791449567799620365136317450385703482698995780294519831527920488773904664006856211955301290751839990401974001537889317478246620848696382295985759267771188240634361706306634250253199153199987403669814041380589387035871004532347732009776436614717876020989780365628571194308345563560225452308904551607870246370194889774140022493358544896250858515903540964768163621444427346277821501393634235158674154072806991194441704393112204180541831891375124876544958677585740643132763988564392195259642185570508139089881240016204977963783246554560608639137064753654421774909439693992309239646931808674795929073729241641378749017358008719156488702620898768857952284659955337592964770448215767727663978721778648407237251592972344461396352973301017550904334796034744221416793370497311358511358142657391362387427577042132597821626649045437427718466239486689467761894785282601814878172050357993179249709729044682872242019946041250030170807437635548765565756997777360133234002057538861085426634584900141959874642288976998980790169109477101153207341434184718337626538915627026592220734050745883886852823651736552463561185581572060735952031637135326987526887512446407564509511908171558273148481404917130091099324820539024200931023071813940637615813409593254429162898895636561976932730044945764920294472690679450610522056955099285062934233715780715965062551385649194877632692768094545061268851640473231657152426180685647654446985410577951680692308997065989546880442734554283421504306230330258230601789629654973870972315309433481086744109817731232937646116276238857012184601185174746515953034819159736121564011082340565499054542108137104664625938158136472850313564521215280084248917969109637913754196085797542751110892185478290904549084602467278383053366034973934120304659103705001139675329401761445371654365099619967409411931003548294578078587633350459588121102915092762874407234935133820838551772935638322545582537989072991172054526025586032662608944756191691295533288305538669990681991917499655639339078498528069524704859080276672315157536220630249598744039979459483187238270888210901392444564990283383471545766036325954007462552218327848080599754743833571171775632406388388374993109652099577185698416383295732525815509133965270286398179440607337346946253878914549796043679159320417556678515058713316874268701575238451150869526280490617520445739235458852490016158430768678180837892171301944875149767472215166674096668452785500606747656285775910409979567502165881176578637402750274349500771891796254916545109424641038540172226709810805159315782862425780104276187189164173550129883073346806679105925607105327078185634008780999629368909814027116364060099940902142659819168532915653557372723998778442231701384217796610953021288095485605724045230442570199222787008196990699708685455732161037480308277137173929855609440360325513527751802508036170165552522309899259661553330582412655239753860286741810353073063208652268255271937426729488057786728795982979595795375668833001913669342286385418667081200630635083058977383014024194964149720698795034256963836471455864481893418513891565063277324512023990433032739395801519520387854041354835931355753039032199250920898925513504732986682919243690534173425823350064363408581987646499384503112335239108989334513079457329359574808814210971723872214655290072667374735385152719016042557712518508990541052139868177985588325872104398774933579066726716755339201358391064047717814949791966730155443939809061999152835154562526075057522866905629348967477035624768787816432086083803187625373876361210967274107876727893209646364755223926781095804880876291253139873192182848338844552114769572733382508509491969233339759141050965027711728999481018087235253225175556506111366437832340343542414848448884003341000709405533318020011148499597478360223569559237110607809528279846764822045733767682364315241810356730315387978749575145778788390699709996193553507857115362532771534080136240860161993712489936510209294366341022295832735024543111338715562582274041655608246681404012517251368920243431749191252863529585668422433568844704902467339746894644952914126745120178392607011253626989607661267490457856587711191949207960043725456145592531043523285788278288451928611203779473099316185706285538945061737562776832976285553021562425493603671005820694486262117387580164829305580104633526081243272991830305948585162702740692958646403033026177122934665001842637203413544094875804501363094815601607108696915204412399332616844899409042967529454843919756385627078930946856070883662215307222014458537973028938665514807275314879907087306654230395810174248929630711042180882400949564183717216734630503278798915308948441144116830704308965465667027322508111410572599833482993455222119075700841749243877698250503639314684814934875188840312552748037242105190906183191185809639733994827805396686162125914936039782955561686895632017561043202742031648804137061563799082617060309815070876250435155889753002262859839758373846448468435686161567295435389951260799045719773285073067024667640546768669168528735209006566553751499444818175506773826010788480977248840310347735825983036925327039260157487530266222271030603249237766055552773093188286046090001512349901296068677674613495185029503160793456148705936770415129477979485744304669873957474472148443698979799434951996138593805948379685768783312166691286325452012550072762720806511340341631755239025696658240384017470087160243288467074012118728729316591505404186053946013351027566412431672273509422521538241726114322669832220808175070030289167433656738481664077021418824239829268147532350747760243063354587074602937897034376244985077102024154098096309348527119159549057380890915249905710334675211726893916733772750446905036886445591730756275194076898518808557412678410709824703247473060040247824196954853066136599364086988674836712388708572491926495236617394356989556169432853457492661825250195567438568945563763626544247786305386009283703803094888265626228059497172344917877362837192281034823422430721433021303951452453698447486864641653681321798868680274605691029339782369717473932982182286199254690989903256402102580220443823085124649836203787062200629386774354086327300759138806554136870478062606354682848450432329151965701172475288276527988833187865110154296017130701674384679846341118946906116682817907745019645971655053761051074747538636149392165088381940918004278794785274932305765003312614292236587885834207440692056463583986043939182832894535440882492035462601001449287350920735362940874658764829913954317341235153235883562705703462791728506682434028823591261219337281507680229921014888105678006793693453558515501587825925129107669351455441354314422633808090104163391049653552573129216315218507859960089409483833714740089915525310163274355791953427930510910682504437755915486081368095161008873851969430923774290120722428525697995400674683444064663033577720335234449889906521873566059284495969163927944880461407938688081760171343197248349894568803949441321476121725859732506273633107267614797184317060125198230952587549310629796227901213264144590654554931973821373499735122095833548870999637640346849456016394228614826762612878314499063673079035129184396152727349318518403210471379318666738343972881862555863299595560782799139101113210392236300443232616225604235091006278300635383063376272913558608143800968772845043300157802500588279793573322752911743065197489776117420438524265237916463658423190030942805277503926042331880326403657335055177601422564927482368149352919718470691755070487354661666334341491329973472916114272641230040249346183385642734342800662384735620609836295424456346068079170323611636102666805444262511072698487509085921947163317525366455122523939591907114533080259466032612199293703285170431904626027151642382155504703878015005845279655078705672614729952089478127237801257228392406017409628610560321189752357174436361756552198614406085203217307954992667918786037880809126889962618106178047752724820205127570960997583414677097193607871591166081260706776663969769789997734162824107752663101785762338345887972082720049645376937203792022164471227693822830031930602741825177115835932457215872738915924308172704665136204176244915009135895720630749307131010296936811868518872268372146444146021002539477949121371379126718556427178564595915759766932177190543857760175922334692350891802284762430701691527696062228842719934110026984874518652949665065145986130154680484287813218229659448753412419091412094733885442100886599241285955604418529300292455665646853576647013138902659166967218265632320902613943520311603587374855516866520519033140724258529746520110123661236111750582957787180502576265033072600552071823014625889666191635727256120707110021497636245126473392446943191160598043404180999674041668687526013999089414012224504663444419991566014170375451119292591479088506009767146104836509684931744693617097624713705725278767951851020747835563029877035071721899777671662789963848064814104446345461747943110671259543333128030226674905319485928764236311558349533357715926818418247272964829174856059678319019326139097850288790261970458082843165601332349683990728371187944290660629181423864500173602143046776367362834388142656111075336926049247533306636180420002427130139282523642133225831255183627599940274478189213097970545210039501117650903704627959451315422333511055955418361958379573865171641470673366035153215772241601168966545459536536379009120947533201697357725596188836124175133478048426206239133683390068049307301706814171864213295973589852012571896211617457345635756392542250391932944759607500122979704290332771996801376046621322495780130084383136021967125099143073200832328154901397265741298987777668652029757642232636312248305795226473028327023398587266392266875492818263948375266770183166015818996364295117383936929238812057285097932105743605561273838562973896149447819366108500437304661619338009359625146573679705204818195787026076920166636122807322338130155148673819292974165668639653942226216137231730605627855677672633378129172689868168158808689897810091825010964478681461510959082351803900921958530762495460708339952640385076252585820248524174591221482630314893549024324604705410214372173523303934994851586361372883938734434931037548011819006549811660376090547963298033094911266163836973663202836577784689822720942130138378125689943051204700627306689417727424870940694750448443142350688908225251907696761797304953303524337566052593377814217853739564917575301929601779501531241285747031498770609282956037842420587056555998993506849661891462111977825388392712193080900803077492421642505471845000924321952196045595110428596275448636830634054289610775260103542430391518437148969894916637668725208831663082152556432802343140235736476004998144352987509482053751715185412949221839372290032714350745249754080568721533666773522744282833351238232370383472453907843846443622176726061121257073782422859190007776459390763588298288884926443233753153034972648457944509871696188366761678793357173612924397037683032791483047010546653698778436773759090493494168114553148608091735354644377173519501306498405779961105435525920150478364737405888214353357126009909333902412301744372353072131166983948597357329195705384839165090427774447032243097529886717947788252229956038841717684436888164993480232583648545746404007470318929315417038066643989989271643451006781123892672263951119298456308895861769872585343681769290732405554783368225967454321583592329069659259581474197258084302989488487275034629350377859660884386436641145710630655522951384786500742848719003783077500311310179723109701128882498948028462077987355279964564898064757997068552498880292913139893118233071560132851953018956120068914654072973419923865022340539555095856444159817384944363231022177060366388678386907730230881650716470380638573961612982002715163062693213957459083425063910312571042876160678535984585380905297790697474327002596495979639184363002684512576222053633044454737586571184206260392464332248289892530825761752530998387680420923212318206635582069264721763341458086923362992576433978784401794245962661985658395330476013959582733855917834810804072446768968211325812635281973537552985409777827528029302146569619910242000420511748760796431226573846008240490687574494586537101348215838923551405480564335653052503705779658513228496246597953781997693149414015399642851427717770831199310203157096506034360872963862129527325465021282781239748475720075553938392027895601304903588848405253666509315955619420284492871968146764285622978283660946255737393126117127925523632856870909173059547378738408808702438950958453295324518936881995217853045736471741078117685380510736734708240408683847198325096978508058212741140353381148931087401265086829340418869231825932313100921914593650449893749079133217544089686279397512529219215413316628312105023004209746914985479077622072657257029599455539131174675787927929349749529812031458766056989977202736281568019356445972446914574675060077906547235502735409049128500598606709272519897671217643895840597614246161352579221590878166141058405575906792572852337265112171013508887288822659682744637779930281738842183486012459084689130825482690630784316148471203616520409355633864242742503793997630449041747580365390812627715262136127273294276567402237268722131412763107225467918200089901490431103523302668223154957206323530794139544138923008857629859031049270842467075179696071143142211223919053403567011212859548917128049204321386753218195876231094696538360976131403008942509083539639817377875543355591842198812657774486884854890787157700769335382395650644920407583002602776620337679554561485572494324328053838619527028720961498719493583409329350653173594903955755954242444568969138605611982589212311357761167609145500525199661654916553627802788450371775270739447274015541766695382005575567706391232814229360628277073764804523354292360362443423242279750398811788767155410762195123103168782797247284144417371081322759743538454663715698235852974452966663948856516776087508258727322249453803638899612583119689149154365189644029479914573645219358672149073740772377376097030036916127737482430041128028903561509930930489666785285094123388394676192907788663884243080585341135136709546632636998470538395312341424862272610933938635842766686214216642710424613225593918904069544347817149541117242691217466520253616702782493576751746467013824566172281824301888945075422732444950800521729402156426330912289305283537385936503969674852332546748058220129011912363570542571486688316058039966152233444301269252188454895828827022884703532423420577923147784399557966697454373197344541963761206467036074026448136925084235493717086677577777587259663291293445954101324040145316650592453066599015555424696220345751661869438823596272536897404642002810907310931804604242639139234445468203421116288891192509870539760223189636084813063110323575325084674558806493648450534616248526943212496175964043324222901825988146180881411674024636822905659575228110249464918273930769841202100933471068541330097664423247480099405868409389179198268783316100195724635676790814808794592731584564816433570743167656757658067640290266201566695060345207371471678978088667577820714610340323063670989989825543831513162827311111934032362844312850765349662334153608898979052505547736355491951244944472099323225295347909195868146107816454775277792704245192253471412199826331506609213195716416309730893045792566214021776124483150115516636119493192180723090280744458380193184580121701454661681363658424838028314372268357734580980870036515184879708580911071154553705973205020472652357662214309021606708378841389317616412719417208444725499854654087054406839581404391998914686074997065557880524874319727979969943043954712255928198520319996616068601242130053998686558987921214434724066005587864691925208952695124247141853690243025945354647500452054557503322241148480173471334281641185509732810065420712108026913529835665350316496388007154954196239431758944397370977304890698141562617358825331373961166422078775855435581817500280025892910151090826744140731154961920672125273889561264950429969690812682519269286261021559105995041973054300717127180832251341377115500071153047475234015628250359416618048342934041643608180804311233889742789115468963771439878122643492249701352907538061465403368257380925826675721537965372923343276975663107904246244348621435139362601902771216888732635002715826238539264557838697067094784291721513501171910010746802247956016648521044936971813290284773301272526602332201274148406949349981810682816621342065438982430310508494757169688780303557279558902002065872330413846653790451057293109542295465746803825577373437819301147321683418417177203765568779941285021584037233787105000858727108355949804698822251526501235300965759571529263159303424961073220646163070416065168004428896480147535704532380350960548383991764998794175524136185519991007389776132361597370619400419891090626957801788695816919068089282253041987555192910122558593230837994684713309385458452336527258482245835431175255544003332890762044955278053100262439586538601130884330715340559962431273994579419217424086089886075594611344521361537447917112489760801086202686751404544389284171360193854403125473379440791454392573892088946858539771938975517286596296936032280714396580578591116045530613721968927094359239090093365081789175786158000193029514069233526594871354297007990772062808875917475874686696577005863399506044334856355278308801283091171355029490291169343095466296761616161196569944333773663080793637596328856192124241294733511558011251214499690377370141762237155977899781529961775732483843303250256497215259250696800743401462202833706167878328400604407864362596165433015117178901249979455393710934629936004490375448630807874123019829672851142181653667057307014727583863047482980600845591887885124494599822045097873296134938561627386424171362330761240049549818051655540895447282906650495116913311136279419170684116972994137118832760414583163306932175471687732933561892341227665520176743663890887888109848694662942726383407404581705076109229169713672838954311128203307301809526724155639052050371002274154547347651841579160607104016031165862573127734425929798583213759725174241949651142805275276449780079719241292332734428271832103279937770162887659000563886448950287790194998346277905036205908145029617596651629815245461761462447388418656784115084939154064004416584942240763364168693529916235608791298973484685743966059649104834670244145165903649920824309302460305777236130630235514031320043720770366934313110959512851531895675972267768525232963876899526882080313053702338102792015658286260586307779663559272400366309740234264431086225396011516421126372496957958058139147485295926395139520920769399152818472662281489820028659649273428114775964201584367511024745261425431549909829238008953406136958648671909551510075349421656619081767130704288948148432922424449470091292474016807144715995669101115667302124899344088863780572978423310617138833077231255790158122806111032756146399304304648388463827946630043205905581640020582200398225376456830439129491182834087843493915424140839242112690277255440720465544082779154627020912336376912231912234239805440333784155916987694170136664585950787883813232878292816605203012687687374227761671153243773480578923580565562785585422187264397822655029063659286116435359425559404662177875114732923469102343111543797565248135943715138560599144084112395854043828802850895845665372902338938143445291445638987120312978709117109614032636415265351714162977157775770877262195359034237565871968303124036076715421850307298433719450527767765420013964006433443373764698999698995190772138292718076172634643105783713210824951517183768801001680111351829408063359065242881739201923184094368796706970857517179237008859570724805135997289437032116150364639192866196608234011397436259829088574760205598250968361857385782529649435201833685461985281721435852286260959048077121035291994722807743521290633161967246862437050352773454959797764269407037535311572247810448672503215954890074244495717633859610232793850919913800221347485021268483689881263186874186783826159897058616002051660354392052154858188062105719848541960304824375062066939456816879479442906449606474253396628179444588143894683928278153274569552425126185337472304234882545970243323647621668928482120576159699156616251500191446338185982245096911778001319598446575810253935846494628112283934666758968580907979530358390357889539129224465738750605396718743126362726608348855309471111976598828761306104622525722389612450092644827732287076001511401074923343343887970381960443345374440307287007775150526621595971724931311273690900389915288976986461379992350249546092846195691193424013043821865829230527518035720574002061452267295708436815981307963896781841739667735590864758561441797140083481548844430064149883565214752822909328469478792403686931682591548760901841442056004290927658257619062901530354124224277740423125089452092087979968706877561442988544174622079172139385105264398172254621531260167451050123376992783597458366874720654056785704707058353663517720103015013353820003073518673565847465302441050943914004608549197740464197624674665393013730593957872686172892142345707878909273738478254620745209079670897177396548161615535900056407474589900074591379255413939750622206765808851599354224230412945145153262707733865836586397041549608997433899995414370232260643123458913777854566979785804725105131444816167808792734225829370888390913886644988158312372239885677452394850413494181820194124871678469714900826407154989821535007493252064698334969706559296695565408014364933795364592608363918462503485867092889309222026629183638107993610689027732389085831578701459005263155079625118763100895448852223129952530080201675664074173624929039288562837824700585922054677483201901638619634293152390368198177784951627175268080177420361086580773783610778367854036646449889549800928000834523558772268900973606315076704174478256439897375347420854901721983936411658198608232857319720967712440158843237311438167327739985982542095658755898927627318288521765934254326899329394867043901807505943266892315780897393258071153034340525014485402673350262780991408292861552398470876905732762802965970344714037864585909840150882837957667474468198793595288600115275667643921506736894770300830344895928211100419063391371313427877833827026309158234435925125607277690669546779820224776378071675203726070084879456723099552914910797312867965566609350043124590306137159736711117479512409817161752298673089624982384431727007439135408888518924914554231354356082200233487304364337203139792969959652946514130936167282726668433298583067220831757127271021853912578350675225209879235924505759138940679023074964087918601242429802700669617563051327277144125242570056922568221917391384040609343261485147976054225542464143823625454665253588226661887945082080587938862857798052376001482294313080713609735776287856409851481538712572333679659810063533052028036605775520883433979205461554596522538697347770875585583961969529858232350757284730022218617491233295102940141497357664869121912771582388547251900884558549604106331664235828290688083778193253957551654011718862126168452756193101805903176923524425672414847109872940912541684978756769861523563547232275775576472353748632092462440010891273328359801059202271313416431844352004420033648555052316864483761898781271602402038798306843198096705203850949516619988890744057883144568200921541886047143027011807717689288511973536009897032649692158837776928960532592363543182554828558804183239546074054925677771449986507248455844322941505539858492731007586316425886822433388988232755007156924263858927254371793939225000766242540118121887136017574745586583743329639438264631581860616380924980983204139436935777834881229302605196800207917396529615243427698631011963813705071279355809693707304849472193115831112486989660257185575753698681553923841703816453551594864919209848100645556823971243272462112279522801938118210898322885807153143047714993136570690733184905810051903640285049623558195577654052104580969947659190212251237982339937503178503643693067348695764142748474695513485108875879233147630831337917580419353946049897217472112130278256358633937893979102675962762944516680836541625655432166639560204195504975693325595897751367161252982644256268373168096503713877443621605414763128170435235462773935204366275380368989822849641540585187967452841080872728917010994795749479807776198491629112281092465576967882162260314199521455601081871245699165131647224880301674161575198246063418743099587889000933085452736227822646335109533676224193206128317899166031744477707134254059797847492440449359056685342576464141296255980076585084499584370035408576862648857573950900810555543778021975685805803441594644262929919381163286249347649601387523330515510398673053625191858366527838578336431264835603157502690752781770356785711497305911972709222687982109254915687853587507962498339899703604085216680604755586516899722391454953696674317598314154383006404092060011196598385553225358017396284026954617855571932618803877441817567829802135052291039930598747567781463547053654029612675314472420586994197681487978258965689347836297896960354926962144175903783160779607235271897895963786924086402315611580749966769120440771532750887045941085116342109131104994869441092879558463071800024672263246046673004404493845272583436464406874153872384496510467703898290350401825682780103509222521965442591616549083689008127573471992100225567688694624803000882231419291577724645624328198148009059428939434003464896503147013946195643182724585893994972280354396418710609101147148354481001449703333669077155805770506577872858544553048986764833961484989280690558884125398338277183822913976928321604956877467310017738322529382372128594864688542929217032240419509608021878304288100592701379334758703768804201511397114066018915153881937899850289520125906653094876006923158237231476244666640883816133698153021609696093943206253076635723165761653373942843468769975800323222868580247301598738881516274325983635569649015216702768122023239879813823876426994525836860080114280199094134432529252456789479270545995504705230558458985628845835734680822151446801762157878765607339965557450601531938819706562624209441631796078785778312891466712218541229124626228464091533228775885502118922208473991630139950048256404523203836997143447683314271951709849851353769672437181676513425510618160760097350983806129569084275924965232548378906682909723318275234868742699423119497301131236916278583526054761731947330094782663879761042518394133715418712717945299476066136450823255815061337024553090075786801413335611657781776622063671341749931837716274745384757890148151995344689300961819046301363714399523076820253663728846461553353578192440160724880800880577840614835322822505293876713399594598757491863161588768940162289194513641838376863213989528439284261148851108669121995090682348973462014886369713591788675956827994599686007827859179494300668034048808051929843703915063112093825178250540574089828431954672836370078659908578217617686566572029605417628634298916093231712745242526110180083371301141538807805707719657560396148074103725533184088957619384406051253012266178669317485784787598371924095042577935070966787132025801341222806184761245178319746854557576822140451131822152973306618878408636034551142592672476698332783912690619726345880162257869142438808948626585863545961638666100056699290838570145102269950084872676790960845307247419213225435122624474859899289634646125394498791175178642218195531152754857524981468793845987779115491905414061164057512448117360645421021510618310871786871877512340330500893321234080555365220172842441472359090815039773533625258957438591230920812619446768678141030227157525840134481768407301851808648249319240492302129955143846758290666720787654963439408067710167480240719901258045453745360086162152577482024852193528494003963586049468595810436986735489510876465131646154999581828654643564518448044469117478191740278934612239224398229914655842141622828963456289702422699680376739931041748376077543261703172780942476307698198135833601648490267058215028216711063546314361694690508280921077758551841836829831793488836391826022330996740552262979414500015694505519740094398741420434272524661264141450177547740646848626074663533460489730253236250044026561596700098297780261874853463133928465382193273748889132238783548191229975328811860735279414619426486671405052519159142503567676588482864887606695888577427329862119698410197938901327962345163282807197705536515169956748689352244526695105771347237270430958743131097267201587961404662919729034996742569625096836914923125146728999416764117997317368345062578407676324723348563284099700696118979211630116192380863258187230692417552833099622606990699021320387990488111598382005495084593244649619995361499525440988089702925396827138885269501069454639968668677445409599675705785563514810352580443463974954629686232324123276889974386308973850267107731837450408460966732907814945093481661445678637035363001067884432973933755620931695383705214810411397624526608455619508174268974065656997475989626690103202554070088778608046470909042755068586909197725761771821430520355272071949858857889059031101967606180131744557654203624140977050766598177893618264043174033668331290004079728619277716786192311829613574827424495016025719551790492440021556841336139139777010805844730043809978298634601472808256659913809517321956879294501996110012619347056572525426876334281626930799747691168092772952918524112389104086473037946128714863698462143678064704580798448747798305910055359883383009771865708993395701981612488538200539112783631106052701519868144984728510549005223430897876955733683935951443662955431580641283774763969941880797053130490734576661497684249092705134503182210388355032125673201252230816193459933785012146491743653660064322273294380863259341899069278097385721670855469889584496142602415128475198066417120514178965807788478740272993389867300774163226813774817876602482597009246758395655438617533747590691547432452363041714797804478229022150091896725540052471745501091984097529672108771301746259583370988481814588901373058240044401246814242949371664777259764137405698735658239543137679396089313155888878275503090792577131353412037147073848217942351823876331868301626390123827470586180757916797651499645137542330355339286050062579697461895925258150394405694023587735435180997281708896222750201659855206878331278840617177731608078720136763401897338996222515708339302489193537497236651345221832631465827860559391778942693822546081820140482237155558845524994343691433873940770725630987030217608453931117788033702545400035087695655402884533253379825634100528682572844789832384791720060925539393088035866765737318274487434555918658219993603027322545840263253429598032064867689114505068550345317826889175941348462671975970864192347136807544763525874891444710068512624099399717672796312270865385882052418395571431646346092449329944510869766118833275981874866470870113000672699518408399019946686999536392264740060512696127412364477154730126789304222225373178104058856710310875090459779579026237874999655716749854883498288146546383733948097399991196366005444758167706211270449213219972551677056903069460931653681477705774753426863201306981939366513967916538981297547047474429856336613320753633930795770027616246286940115559718662017295762894035478796474104819269895624909450201035355319078748876807739566835690778912022039900149160094899716301981721635453916054929637431008238288930978163864365640926723766252589376902403305929577696475931822218911902191934643723821335308443013029818589508603963394591112103370764460157685454194617528447592459979238510512759978305364116691219634849358423244869137763180623620344501948664688240740884173204399207030301497589975676975747041386502730657756822454713382895159645190106676565746600164518185181252039817836836850883681128448433690663475813472835700411373206740086130660609137380398338502585927311055469820241881025379249980710665439618082047240944933350238420918889440510613467338115483404583696631375838244312109356422836800562929022561549262739105996321714929526239237464608299690718716227954225225371093563530997221815283757192155026776526579356292480219956806752656394921449701544515031658415251765402400174782312276919727241206506660867619052399858196626124012435109873490057898346643016847303603391912166508401102411237590109178445138441610493165614716441149486076304076840944086336816644356380398450400407434392688493857713523621687463292143381707782455755360911367741041393581390784653312787202318565030325124950098276252449546935227898196046090135506650058762754637119603642693858036662285264867711986608003223842181480926641005653364040239440617201909989119183983134048984877875638330725291089134962372007967597043166016331792573329147984242361040730679029716088851697997739909439544147172574792819184150976903916872032086597961732980271026684717409618860207750007817582720269754466062347949499259294771763843131696217924641510899971296857044647827432216033173297326948826722918617311448791530415426390453768922274555480442477834359797280538254626305888830079975125219935738790756259135604203590288264951488947888177262317190217263980173553336163723849020419617254467764385470524230183541569617824175824601494937840664191725700524914267326437612271595409981654430451971878487252806707298668434185726957298064945956909794954345642110619351879047808628181927882304503903115406882648173396544464302668714739907430585327258894400046741614509675731070742832461180944951387861172463297395515857374711576062942866910651504190785779524655800116318325780288702164845640835827612642471839842290595493437124972262016363698075617213936927404054907227881230768441470316197934373103424565058483042474104951271144275971129542108603723724378991109141233635929748448685207264457653109351889518908694938081857996533030686277618165366759483108793875694770947045639089050417857657338246766946735045940125820106206654557498470013901312190910813289441804911910947800473316615650893843273934990920146211072691636506219594003207717004655918603743362715832894359600949189339299295393070763708759522375411737268334112703079067164131673647752657426697058763785345375212368016670655126507778562541829901733727951484705558948566049241819848037151391951670846941020600346291149616323188788888019629029302473703245921715917249116548900234377727740623129260549977285458282307120663571601644379573474658009954861387967504261569838113483414199497292937339435927922282334285835680741619462229400615426861000015215813047218778817708016470052814120684074918944145889371796996037341575368055701560026603387237798369148973729334234395044848343258078439521384617980154478487142197698083656787733611089679426225844059053078302882824392839977878462152259142715073298390768929945355317849558266087185088147472437602009319110232200111309034252599020238120945484718768600296222671672562528865851788971587857875693573498413128059958948378364366657282639632037431954552457188037048344540623043347456528458119946248668951884763258573797407708339004167010951114300004647192600765655785977488311553238907710944432136476334590376710690173246937850266027746932761949485208637957980487317649901966036077568035663994438210341882847164224602830677038555156553966699087960980214229257972573584602793046073648961722247400643621372696358103620779450583443380892399875495250890560868229427664562083997251939480874562656847638071605828626362688207780262582440164767413431390576660304900453748472981430894177586240605832589409378867484620138179376118904168649437094498594073992641249884505473477719523988882154298471867818293330962190050724517687038308492287687167488029329387896740036785163458713805148550233648654328061863246298063989633962779522128012436808573688744810186072428218395999547144616240853276321849514916540446185997431832771238048790569408581677598506433170206118606539601964263699166380044898589517891484188003608958260815186342856633150231036577310819037946799972101005247032663771643047374452699731436710618198916193646501463083199494589949657722771740833946630863259108859337383792679976687578846939517274599621231303722091911322297477353193958948952095230387740345340143207644501255802050160348177282182326496599329233395603260004413405160380281400298475408357912996288332009911482506483984504075010889940586071938829024702881197213828416181147079953858267272724596779256555440716428661360494354623487530616190932392939013930777297184365243145309955047588257745769590879401036913137673392265393461306181590894840796849224112911515165214919936976394712425242813298897993816494420983657574603140408175614047230988010359652051193041019193352456727189582814431207406402991663080901518959175471073094914518345866037159876208578677559538860550291840320946170596367935207729848625242510690921626204210268660455495201395433154261403174472822824937669369936237145305011634676350018943127765525762181625934190114199172487879085526021804523250162879369657599767053708864975047925249250364795042091570641376343774905572947591753598060213242135759343579033540232701558466139382572790470734959981708725182784008273185989391654804967997644945616846504091785530935270401227370591131068676976876759569410249051409811153484859228447638687323498893588063765220342718451142618438654651710494714181254194475997464387103988537596850854639868369028818897393117474729011845983474419656354766624049096444732748005711214036755045318247062615763318273168146197018918344758604626074198283438237627688039348282292964005789441112436340559226671361932006334810456918631860572171418886593660140747715347573932413181965246428771511237799909645868776754258991544600606843212972377578118969375592101777041744867370435904432625033739631953452886103174175623599175906332491389776056488686310902261645445749010083755981518179640920308026765649711029631737730679975745588201291044998401768898142749778519828789656830398370381295171369270971018283731283381505164729029360510388462978509741403008716378641183267415299783390824926419624435537104988111013906094410982823774610821170444866446701738566631239246593004679816267500578030961098517749643928581362483900213707671919217432185948708927504780203163960129358328913694171991758019016976765636059004285802287363812893260565913276804360421133566498316069542145940530504387429390006890748473822406050101911462058286432258652782520961378001631291669170216743268559735578754990994253217263818416401410384615280912395594305547829861466032282751998811127486075459248192957394614034338361632106184543588402220027814268651656347838438144076598178481566358138982084988656790000866749510709474512863191303666545337080150081023018571735031365958751623485617564636736996228043614441333135829696852087108902131640423800790141272013875996842741111313714755452058854066375920638779679160313708149094340951372409631763022385738171279353554404270120765721268457044638287306257075163296201052259769399110380999893721377577269812499581957275008165413306972990837804880822954332200111579161062362983821231494906618866145727215933205063292856458772757954877329855974841332325851774262747965175688205349291936375200612031640999267429748067671195983910816426365921096497948309507379811180561931267110147528505306877647101614001575069763833367435005446378737862875515383118390018786192120415081559967886740119955838715397023214506215735712770294232618408325610265549854105433230999668660352598534942502391549540565224386654579152578711402378587287251665515495625758078759434481022573404087645425390618001302945050780880067783816471681084030621239461528084760913023246578268107141091296232906234865438383790202500811692479652333580119802319900332989066893603066874516242450888127402192073552148029896099273955120132173641522420183530338037111756319543758099302454114917895353093257325520788252909471317474019736323596771277900872498356555838665025558141371063591333808426486089775690902778934374162938177664720877709779885608238628092539082723032584575311741304438832943630751744677820292724575707583232324431522084593604621050932177494957803745829691640470182815513886601008254695035527224634166758651108858707115341630419704769514449095853695329742018852772471380195136269988946293155542785038718163317872789652418017797003309941057747208291825268782801377724959378750403719810466483076249607513812833813773686329385978133354185541147276077972808177395595121700069079004761404059726423221424745204858087878294192734030267035258848552316208710310079962161302137322996200660760517439047353926264717186582042316770719438422887764141465886731380379017002934506853106108376156071933518823831354544122936186099830161331603454493297274414999738275190155330768929976672289737506352313209069684159558146560386077156467542559094792750367205160552196048171461234087958061274288331094120387845586826097563490548725007899316944119403291579397276906565700671617875193272068677182251546805309619135185086102188971396838141934042782829244874302168385911379841411098527029100895041176084573577112621685493243172973662729236595037697314044413039867994907557769591261115997931958821249873549655572828834385494193224961312094860098613065725590883869553252796432299889981981373757305312572289857289107165574832870188181957864336991022215681841731078159575071990438018796630727042922048100557264889850574381755988462145681058112610648871602582404120837365675419451983779375043307436096682538069160461773972410852638777858613768707465715958798988089564974929310130999067290860250584486532775645854601906375406389324948789957295061531330035875140464049922878141115746097562402265245999390310845185280884446860685082554870879702572741311161373125993445839979314127713082907737910597994720797099171067994165877190771401959169994801430943676863236625296017617944118292648195132212107821079205848723461397155039739305580119746980657044643189247944565968423109240413245522258840118363657499169367209682997011715789541382076287488172796863558988978822987064905888362355283217479019790733919253110899441041976877059286403586804800657460460497104976621155735637679882921425542306549217970810419861982834977955972874237209949055399339574564208354051698290082321717651220598797306544195351534121482844301280591059018639383106889245646659997626132649706764369063128693981322635189739572253232463405745188795924947161198671214649334704113548936761466204530275337281894111080802652973800373717826668542581939526655562140638545366654796685679101567455652458962794664292011966607182130477493982842124280254554963185510317336112798603063865201632768913596418582617389230627347533304355806765095028579772504913294086207623222165909896731002514026993949200198156152261051385153629480146798941244025352160506439328234847831737600361513455488917275650836679655548592403631310442758540135715434064033014048880845297168655253046359221839575300293555977814025285217462114910923642428496305421445447729165266536496931132599463969561368831145141055678271942770240125648759612642695558172475641685442766590666010233458325039004518934626690246157302796137180830613512389365589094639922976168478969165845138508376833432522640751639498756323803795606691599135383600542798526540970436871781735211283240180742516716371232222913174547458655255902799799483310948576400830960624865579697785191794377782805298107417392425591907286382054769821177901382567306891738251644122294232051165410724894602150706297294438930368883805811505349619016542031415910681103308140445117025359036415743357340327916370506006794213579472313871045850011165624702792741471996967612020302136015147156894623804220062682845135992005425307916423479685833948590404307006838319277097291464646211673586757834217033859492397387306766454451684818620941122886711056579404617946140578535017308324993420008770837646634173204181914914363817719565666797261601202858875674307388988905002093635912280251395728218486881490194231272285659884633638676043470388356671158120760828731685834127193312981599865166913377428927606854570357944338156120363841135303379034687876218280465071781118564800175131970252404138832301507914955480508686918127834432835265339282060564491789236872769693861317921778768927284185492615600951330550173778396143216829208994752724495591885468744282191591142998259396891192618743564737819618782323753261984733637876982065213713458506074277101150896662419622978352791896409895360166508422002615890898985401602849974691945781221384447934470022741344928288605709014313435034140415505797326583801680868203836373816592668223650247602026419766467234815085204103958614208213841465103135173427549325010923795635853056918288798048987539944422083300155506746232906333736044578398698628465412560163204019046542366021920449121558985648072679487037446546923748492835631210257176673908664400867196346825297802508611386587936194378706075002866382757237081682114158842234830825946680606450191606047619691187642887555183054195086197482092664006263879243676951399549012635559636248686011889336222640250561409933094652904434050161016518350458558293867133074964517058727606937514996267379972294732688997503831712957745558018997190678181433960708060358606871489464443029064338255271701608493738660536803688044330472315413636542087417279390597029917515435118596840806786162252327069764423602173380820505269915158403293835760856913284282534780246765049462090227591485416674007523102741503759758239010643991498880380301593904214750938632314071167771846213163930702560258879436660477659941552162409046736028360400794973648736648883267975185645736891095142059310662593040441831292754857655302446326026442060426662371037610425869043758236564651395987184505236788301306231503956436398348412385479297959807341396137723193379170433428066334364326167806159191960969532983138706214698115842742736431455349200221159084450127676933627019154474405189684000695486998447099796675418463464462487197116072820684172707712629449547594578602647352176234656881729278504121259876162624389946185040957613569442041632136555695656714970033754338456424764535985859476974285838949836594443327266632311359029357779699219981097372648995171126832363313139227598629437075337803891394964055777146966161374255726345607953518142939340905273426427989805739353396991773639162987334075253024991971538946394612505679091788398601609813614668808983131650667560210702040048819407715402299918694913667894138953780175507401837972294438869393137580490329764306313009097957850364045456644238373108033001259199891624276391571114305337382360119677457968035734507172897702628785252551743404718373054829746383010891576125835931432513782662682809572110238894619502424004164637753716378426259925992020996702736145085770414468002749662870336623105404207273676804901805979535375011195573023728106068995249153288987382416394432915797793105524139126206715357621370984259347594010650282537394487293208261359905060392780280664089808810805056348210500942237508639336677797432844539296762392084120388813778580609574645967490429383863696226067569627436062838483053415423213908101946033887179162977749293164430531665499794725641418917109271158912155535957013290897513412870221159122712467750285486076419215584143007525621894348164776013104137344182770240374839274132640596755476988873093505151105225243202123359142933353118032004226512095782608802925087910795384551476307677692288202962695553248442292462716883057360217683124987129826954862385229422282283258849004670046419249835921354108804519413548274892199939493722080395045047047910835918601737496365769391127648557807968030347549834410714441944437643654992421190578889929787170589055843639006163776160051253721832459538356263084856089594300033845462135491100355295654967539426656391247295083353100494393451066908900961243412150057870072381259277535769896201428021482001134558353385983020199742078460482804387676959186248368408704161254673178432453496608983450433394041077281309449325543044626726175184904281452862362955446186929188631181874197974068136614667093105927830682533615400414822903573907421714376519250718197755830551349732899036700476455356838797435025129756613441985746872644488988975030992936848957560495881182301327679171544314781280544087299955582128658004044976154318440381249733453871424698275173703392654221622977560175175069381205306429114193318849277484013413327645249863881641514391848420588346763575736134333716325591923280611471903162180851471018459418393443606920025157044059629045501368701017639813496078977743245886091777202079692975801770740986039002709068703398542627476361257076766250932571808569236866434131901048803243811692242358844907863401044372426349893605367279950145238625303860218235846965900702831613483274575159076518864154070468931866171046107970638733479190400871465291318929479689743001032628025985729492051055414794606512905047402055991846870710712873190864910811673365001252267233983691634684868960009159963252391802096355647017580629912489648791942010954781991178398528108952023681948401565528071781626594108836970133356573034421154003148457423868162392739534774951271922876750099609965445181780647811581823568589459476487703797411078999980626511473120800129606257845994382260301719104511057735831158205676687189089048973750809984913501760245085217228779084361154998062542829366259462367469313345316479148410297019793283547340705682977051857086950265574201919247784220704127641397077766017965648691078059499191688717252639386819562619626962715524089293674068747087121609375827437361791645755707322389368230595279374828102216273365445627114317545361586099527273823333092401771970564656915444541112635023518396716789833039584446267201814327848170573606632668199920315791946194673894122031351294133054395255535638207756691169052787061519642263104421996408925245124895225961591071213729086233275001642223120300360413279716508283192095875340736642096638325921128767469285744237407936464366785050874457408281166227605356740963771552897695577963674392294540755644762230799760856667835084711368440012659696728517211898381129602802085627551174403181940097522339005623282041110106706907437045585345089758484263134859611325854235578650886115009922127016702422977386002644070512661546605936055555916719176085401254279352174074660152500119131831082018420894037752176051338718751035327931130189596071780668135300138503162706394999710944392024393286978694653504037654053156511849478513503868983776198751961825520538097773383470532298223541522267574124153067082489859831966633481351199863595937287710021924842233052944791407941815444366693349219100541242631696983560908769385745367368752431666824325821713785836070963463435934278591044903315998509724198616330186370418445785344263498081846547148800779593551778246066176572889781937547241890719287054660282333191041219005923447509098252666720525567327320200235526720857606423109604747369934669903101902981431764259705930531858111080997034944191583554368497958280083802391497640967743329118878315220427533888562948025623972470859593842106846490788390395175838087657755295422813903651665578040298414064899425114632823689130019610675146887945514284015660654297897986170399803006358583937491089795165498654016199814330689344120773694947164816621464903938466920053023351329472579788389584493686123005326112611969621524876488659793092181410080128684531821014671177940657465187740291183122814778203950448043020742991096763876518244974676811669071227067443260532648268349110539366055074677622990094079803892001740651735764635368040335803496372068735133354542317941143275096951555591210871947810971474764268272642071655125448031018757019082198954526479604014677701119802724687754255545472723162519464890646108371819989724392412203326189041837810686395785296363538435392881482457889462064963852452815632997900625842036416583968594063878785889192474332274504778429901077769914193963776284493749055473246485716622960398945169236196380295259371088052346598408204234243514728802731815595074062779764942289752769943561469328680850352967899631236955508191603289838592281071268742464509587699110667662190416123259240177801165464102167521914366886540244623365505917195039706493547464761732714631709210183816778217360606444830177311656247684835835542672397123641927326927463220491538393030916040630311092938792517043876903572363309336563247556028225473246676660231654536631321068739030213037980335579885847193334791739333968181331655505817842252424619680748334246798136030124200025867532365991947719928052758041109378361506390483048139683825199448037015524621543030833619323110517676523317039628390111159670258376485724195956323474312224835996950228075688885829368603844622764670486892282570079571591400231773454694731347027979182873751949980404226566170135728271796175565105918733385923644703368895085637506713223061018226795151500852086388528671565019688792046719804237766324343613464892840419453893666878696422831137704342042733910636864624517490715763795418944352869740906476196628369303197265651471188856613260048997959240025447232238305295606887362523887834459937554648387323562309304887858520423232556284113152225575102999132066779425019650651603214910235396608286807944525124188713620802852493841645335523964587744717668099859545573970814477858305207317338635481314270659883572255942040499105324741924493635968483260683435882132348012615585910833108307721429932420931385868575735133895448033010133402643489616707066031086947761789764075656339817990900921604229807315509491052314112325393622441218043030580040894322028069298686969314050105265115984663299424220995240244325818063386297564604215681789713089753432378248903241331199545706094052091955753685098660004795609426056095077684313494916317598682375488163309509806730639546062576608526007319228371158222125121434060638869832306212303242850624582991472591330154359351390054442802552355932343174027897280101211580545117645500969559780383005527422842474957123325811608897512479029295758504850328988677341039292464351829304342491048450280642328669049181392431510846778735000190463111083950952505642370078409904439866727111908599396174485862264581187321333526612502724499700038030299048331174221821750270908327631957071724218479926727746682731933483191563583839725693785651923898416572393511117396956026518677602926331226300010890501002903879644586752457928271056381922378591185083416457786790321795655436841078366159581703259416777028755065204710913635170378728188321111718562390647333249641179173911423492383128527047763285333213027345577706412065045675654245342708373627882723500339507532655448581247244760569535903042318856236452669691810267875797357441770986241942530366137850758621531595765970681182323408087981681457192489535006424627744760257077244236537477335223179818553566469771541877081716201690778746132550626966941567351318228073612288195840886406246429911706376678141184531396792575255557067782778907046224051494247528846923184433464261823858074024531610952304881953684186753302602355733024088243028944269818850921304850808950290257458993145151528613148149280809017052349835592283933944160750632174287312620599614318917299628092814218005672401377283690597842512127864304466421759590784840022069019762502642078754723604055952972262733592840982084800740555321726198061383630246558371026406296983673826921874373574793843723356848289914504612518206975973512861463384858188476731634850687080208209024071594681784544277083202271671274161329846473811356099141784911483546910911722941712027636641615039434838269620949298330568456843561131673130492046369477306808832103989358213336801968715224300546261260570429193102985916564036610656012364647767600994860969513342253504778029710134460984124546151952718499497077442700441399953132062479595346427147868743899022386092897923331500487232080015022416802023276781319019457237268638856717375773364835020388573961940639719177666437342952190750196690791210504304279701564089153641435736538541300739116738217626734633870583041083513577348694286589821384185669484760571820972354087164267661034899249662816958426075255913439109715587889180839456464639868961197575627708524107388422658117482295369996526421083040195132437414513134448963547361717728186833751145636507234447783954810103805491550928156212410420382982836929417568199842917263130022197633707579368195546671085380404484986690523627289852562804955486787692803400876504078673182144846343063496071762570335787505807187816716749054671323523229229427778731857914172515322598645277609925047500514671448777647240617620595780760856599537621429644065152994680521209851130679332118068657364400724517144942654074880864864832184275010722544783905048831911937753942416907493392675422918187008547004891187901948575676968820046734925611128845046477387229046626509895435581124696372431425052888918222647932272225698345762788744422782360313009578181803710350176438035057249079211270678242710672823011595639166120388830598335695170220341496427415863114401584052397653085336418968810573209172953010453489392976107732261134265114614412950056267457718305087655764000412904360821866358877393561801116742006088779982564249819691070825722034583460009285673436240089100650940805024970962215014758830571697078780292539165284583233266255946268654467743685594333202523862240806696508819502711500722891965081162018569735047416120430285990322528357363426680246173704141655897067050561017218737532416987761984924798882393033937106449022042757310765664187632964126618396451734314425927248298795867827342975264698429257807106309764527965755948672746212453955974547616547340000981160724085684219992352279704289533627663638047151229247943923963917573933282825494178806336026628692244986455235396036307487815710027721443419645478238611079807992070554429103595283604957676507159571292509511801272636563046444070460395301910997531820224872484142946309274269666331688212941598465336779442092120682001852866533344818529530428255627739646295647115088655858397276132997822820858478238029977204208449237116271524681758624968225004408775305396624078246675896256369516497964819242103622563156313051998196828339618002435139951219480677905749872594670603909117876372792513307166247262130148764584685654695859890050163414582405415400795300885295236322696566193377381550082873762546797144941553600911942422530773121093370747968948542643783388191037420330381475913225469317110057910616104847615459462219325627563225040587929607818395724979751888296468295015324803045246366960253800621458097549482550855077204632888976486118504844880278681310389625279053837077070160463487410077135739312123453391658496687227479230237233243516031527975650250148846347230475889183403799876521019636553990202515037749311735948690020689279823075606154537216703862361515762154295086510088914327927996777858198825462886763788213388164520121100425286533510162805500008138154564898988589178616202426558165022354886711088643246161807944288185798469936531110048625991790874001617147267521625509652150370525462750717749277200191772905173611715625610044487422600605641820758957800872211347427133947636241986252971579326459101062481759899519249704243327573197916316155611237117258559937277647265048761183750745214833701801212742538536747146057916306890594375467572864264322438172887235995475222157742538767061322958754507473677996832512846930395924400935362073503765092545310552330037916591477108542286810050348147198577558427284701634531560382019890324737371480275289376758946563555826384589517058641841984630552757173047901624103058292613603115641408148225199621775692202035975700687060752714878801007854133630239004968160149656105295716915477028517313544228822349795449063058184765805941279303018234765083458664658549032467675907433576261476429795009348259675893365608050639651388447389196402056987407749676362188882911825937017969352616516604943339692453490788209817794172832033595020157223471944266233991929499117936858704262482565017308838474248399685448339413475832328704617111095949922259839046417470334381079766675863374573092396500281020738107509859772077000983233776144999540291501774959915402652869797022909600810951777596765782841839596242703915746790423720789902362036034398706971960778941739960937664882795120539813656562916886167491824666198151955562680877202844084371529540298404681999229694444555990884785089142786327087323273926856768273533418959678846617808039269982158852490915101560333126957915504700021120005497422166529187340744118378004506992453283182187237431098897133927408513217412593501223641798072791685747582511780499982830471361952529942714825933896156868503890748372464699234062839528319682737167205333755963451780171692099887433555914153235287436456983446133076355841222352128742775938169382445507282101042027556010955962715518470555656336169053373901100582253506958807177256057600896627546331706622516753449865803552167652939153293655807861499784047273573619077700456088564207402251096379277145952882678106340897127943997900867352412451524514845781683224685895229892002553081231365332570356313312626949796287044172771789268070896526901077777590017270930087986205350866815642541876649268414304039075294530362775943257943764096154402168832387182440621425439659903249645938200703611339192419047956429448967291188806830414605693793274985735778298349818669386995716339324141373758971734618260990300309779102675475464799155321237097222419066336188281568430194225943257541006308709496605194605134315953891785858793499307756037791891046530176072574576853172245281563296408971845705631984917450698388663494988325786236439496635824760041166470353773609216890740158627791498871203409894169722599845666687482743395478961228585202206486627278528817432484405153945641057957915027755603857774543563799748602682282111076582831586321467531987261002003621355733490991196500950047674206326687770376640465093733794714594989853420833034961490820455121662058608751997926195290324541666531511171114714806199737596874098302687407111843605937036620611618575808698786452186370206720741257807882087757782846386475914444058632278854326747616351599535806753256713822961142404866280994399447165063359554918293094559317819774566427042755164791366694540749138896581317233323405269351360357670074008901405354656270187498080911688827178109936314318586636222354016330698435342344117041502311257741132797959127962988851207830012689240845477946472514819004702792311209184931681927571473622077303292292652347806277749937787648847688009404952770394483344332506933085739278068223751083157735003919194985767720090834754665621993230337242858329961778952698238536212253488627881466580323388571134634266068670632782473315451654747540949076798184820210357804259994660043364474622010967143577822748517009616967684405111289870594916471917684721402156231036084524397989513102766919594186857836879917859036113407900680899658984943638039867230262513122488023087115634388320320090765153385467053881250750456486213651977224182748581793088414485410129293721366453615904150837418897332152143402188240554148164866151093647429117911543458314374240249098964818784407525163424452381823152380760090192932515547272439754053968272061057084821379233266172202043484767168268466576237925338394153131416786909185526730127264074433512195719999150865965022722649405029834311860201521800205818463023048330218014075330789645554218803407001838864772639245901722526294068539209448402357271909225841317158433141014938766705066792536405793303902545229776512089234349672124434183963089704458183084918041353123906918381673616646356469859425708751852869280133342830838643051502584309327773358664123984317360355536793788661626471417352988533287942581340621749637447260133875685559934734839028484668324424052639189880681345658484047381873829367555494171943581284115689041881840468282959089709932002810737517172149493121391465725532136221805533888701515573254337765500865371042232853164673677174265239308913380559217669053282037142292224036898875473563311414167265982663049349369820518265986099109397269166634182464495222933866893044081169617813071287400032563373450087549590645207667537744840493018009007225276444020455735820728237225946348524045585727094150490290290420929562501000899554711337546819121790612367916080039921562780509830643397231865805185394651939670361801251059736628024415283959307394678213629800416937437147330053807240340920226836330076977460931119380874173925099051882822689870584956763953440199153802760664181915690313349614622135743643692213962423081846821577352106372418873515775260559119735922068529918278415673075062944056623270627001195504749768654996230771047839785289097436593405431621345115793888021702173733035539176367186159363985842016109799589900728436254440419469924539482215560092535257147244016870188319182911746621677101344223378566433663646789688784900842793732458389278202689815195310554496568572272162047521863893097076157297168634864864495855795194685187345097281293863147993248556339418770093689674655139381811254062690021602007065040306725274329468163675915184774348593869711639259881208958263961236611756104395106116325833711426678356996025020571054612790437848363304552232513576890448527373444766672309892811203815183888222097316648595464200277436610270268961033302955629808215491504963481079054185289761211012534951694567082627852804564228684403096183099478923207021461785057725393362382897316655479594632990421007558552859177159827437541856006845165316460474431387248435265689991706775305089605550331791029005288982745962037404448557249520386804698068711662964806225906325647975642724189698626477337441262537478313903712742523105741170561471117160129914997837562444366346166319268524187039503014724312372097868038066491697950352270683801968389878880924557368911623987175233465458318716720983788092125397264128007985117850295545453647144254577548088491685874173905907015022043255927974747246611763065293610854975464445145375847929483124307705998904620622495201799707695826138666905142399297155541467737813538003441091450085711070327213123276808595938902890343849527476724052436040995437024929571050276479178451075580711113294181163565184376891170496457215730315296576577325313772129234193291859722526368154040126344355078856853301401287334367168005374827246037738553721725812442454210560598442411364332682973262693368623983834950524094827002641680680960870263826027182248622368531042288767612095350515023906891389327591641411523467013197623103746326010641803549126273953937359717491439314157766728776124491232837507704609172578457311560443484746315215780653959563915493749274932458088194378497471675716252144556366866537066401225874814088371620966554085579407962070734626173673964577117164892121811876706105365312845281924827754031587756404299229652260796924998323519965187633243396905765614607551780364601883559884248100124479404185369588227349670193121642491919711971424994905028724283068227712524037204493025658336303951435243445813858814932558513685837839274243686813160807218104791557064912898999534461144518863075761643765387670203331025459463003673798110855121785981098429014380002557914535124627772612813966563927701428146842118858116873528857622112383641201998329027489657793828019847665650454233450425504612243976551618733605701496631694434717288907373155482070608901086147135763969642825801131943310147194697406574780285936616055103752662566473717447301414307456117005757945696717189461916300478893857758914072371683203877035211699052956617459773601975574504401991842170754458179901985033757246544381405695080914043248051042287544867405964659911519945510590740586307584267326494885224022335925849011460426273917609125624236724957674992085220457243639081448847949093275388845826895433933616002518151714157106615691728837598638981995654586188219062758761612641465321135219052532925279752234680466284106026363478248924580738168662112585397843933861724070345594637667212412294651198674967418768184116344632526048381098856351447534202508815060590532104158943106616995148986166713625535457079858901027551906486166686478402544428153911660801857354794002639398966422408770117903811362523226382097574236078684797481324140679584214066417912271960604753535060952287260939670705442411479189628304545130384290202970011315790749884113263512391951487413681544220346804167616252591850883495712844092826010192500936902656056079700768101122395097536495037354607795097716573819964658833939120781231176988015761745085425721644376740181780279291851995454055090050256470409189658789459403585532676825359962812734420048215785839493513263272795348160304298717109147147395248382754618112009238736269506447843478771363165792975568752517924636808176652199131683036691469020976410603954094161463465033734361901534045960211948472963614280930014561629018410999494102051489456630615505112190545264307385946326536680010525838249389625888438188793167334221749628102074933706168337145129270805461519516316791549243063002154144387835378183336414694906068786334787008058637641133812351196466900068359277611429564047942106231612283253925743388899537896488263629354154452631419456414406044088062750646281017354573930550843869581978988247221702606865436492261906047644552756393797675773406861599283129566260781110191969451257222494678181763787196022042863150954439410927662875068667521482838002715777081951627185632740739574752314669323616122680122431845743069377481281431747967519557067181649758800652020336551826039414270389018439436612226048133647598075749925196590200201309576663415273956595143211212934622545892939517516348916336528183301270487382512671491663520377710734686897050170573571851589157599623581983468746954344497435402289249756336583760161472905625615616330367587377342095453743053016034511251895632126385764438226426462454023182690062231493771213133557261457844870643188152557790873023892605756465039032229079076134019737130582496972115824359112484603735831109876713082578635262395101582816324914540198504696222562061041262417282098132132168385529295276111959890057681820385152574013710541772225457266648235441634158408287032210200365168724168371671533388111471230924888191690326630526607385095873507938791394525831667374665885696492459924156058476310095470430335085707196520918799448268925920869225256182148246673986713717725766593687621590769438553187815383057596827475190500271534431661339397566663520339492059523284122431322291467325969173665059251218065157617316002051167809339502000153204544993944688320781854535175564799931379762965013315352849581829207054048082436380154921644128465463484964493550391145970627717632141681820115504160748313195819710828122135339291388864423243157613304686664271660323672900476965888465469918857581205370989876308690276746523637930108065045234538640490759207329100802223295933384830358225585449426444144858887135628984983016327711197909820709139972533341418749960773567790134012900816053168510553807406935945495441929352494032131630361004020581242449728086452800727690456076177134397045502090681817215350899363913168940164620780289438067213683986576786543214667028368549183747099604874815967281017202617902683715134793564915317641183977371889466081287707086859435260562299009294807141546451859569642867647277109686282830460488490670481517024702407075935008242868663579559916934516121325305239822745198877912605652975288150359105068613341556780502638275454490018200977733162497625046230553256808625659051555089714253931330941407314416908203672910491878365511458280445572909037355886573202497598668965281107772038451221492779297870653154113882920349623461860618478645834767407685466257592228222780475002873667592696450977209544414668580837838510449621727802886979584400468073279032116308278026568841283718724050433589424086678891374757801601060256606842155992246812853640583008114934376219190084315600945352106276199029628626296167334592426649006620070020353532159022590979217754348993432246729967662124898401715010875282003355077685384607332293919747479146023688508946688662745194008208539745683962731956590430218246054328928696269895064617767725366503267310812914276737080371719303762871233481593106352620313093358486106752500051558904556810219963636634609907673507110089011535029265884632374431757803554846181979039720318981077579080136946331242640134432332412676807430659484508878331460436482761811155601025328319028201415977354102996591934780130887260357182070393465302669769692610129518484849981256396325148688162725004279836814541759339424399755959127170960752939496884673736103180127554617380270828588762608379784164246938301355679379820046224241591130723148166944596662381219343604940530318927956187029761020027750303736286403632917391736183629972951429398722194491298473912017695040524741190924597178148264630649000342247929596000700715582988148675116078605139794971609183678663255492253690137826733524175414689900589187228021970320096242044925046800440509781507192683927313348840926409405967236723060935643898376436104228554003741275258132574448149839000784125343893124423139147312742631814412144102752884041872798657107515640077004970166328115469010468555977914951283127639703339147520209026150760273045467325254807254123328346623822982434260732540651337396820348052523321778279503862772804576501821572370603869559907600895305707859507598343792966085851788059914723700077080759165182782609317976668412810231532440018935151045409986411184384856940113372018096431449184757430026540840324406148340273202655900053664163731700436032813196507222430633170509781817721195723702453092642234557316400135707989975153488085041340256680047876005413522103897332724480923687986455050445924779366835342715450324264000974086775729277627928804558669623837449131466928607876044595321404938241688749505561690199217538621117844813976236450053805415264219885521916786619737823908632184051521691159548096940767066421590235418070626379897870030647909066814637306861627007239598123223945058684327615155137267361223449366442297917840049996528974487470549844575276390823016909033824924015362417206087857253364185052414785897211234136689632436289931725644200708401220207928643520380288751830629057824584848084508744575232352159023728126695083843690921041266794100899885901599910979882844694721657366607922185826199986287723042971546088191984624590165885323187910306924010523986432381461679843710713785116783890238871379382554470510511649791165086214195958080335343262319106140297721103621849827459949847281714968160299478206459624871025637404634163385873897938793569287624262813302385633964707893603049030483163490503122753460331410658424799569587446851523466561904743127226894379038114425472001765209743358330293074001289418180290252158862167858496264517334480282933515690723736079340610279140862880859580836179315641810128210374435683360615786098393606159551947197368765515912031213760350409776184860585294106490176840054869202720933751392625111714658492288049662974968223829212003647874145762382317775777055747262560383042349807765814911473489446517175194456401789413722173102381721865648288460141872417048268492256701577945529028357809198810816938750679062235947564195665276853958190607815699691519687362465032007022503191930676149347850452884891612934536599450199899858240411842851491173890048594820616699366448794886167866171042730364608763636148762423464488307424349630156445322265463035604586462529436002897341289989007373804996457644654148949957304563560446591388656145555965011159978695304501414939400544984777236276397377733420177722642199560047104998560027207671087569246570090104374152275310119029265123389213670833852235455990272838105782620720889782838840495953233214538297430743630463251341843189255736375436844671562402902283768534742541903164016288829822752028076616185287392658463256120298968850589699603191773261312784271801467142800875504213602805994750190606760467594789394185680466626605217579810174218307569838063669725671978357327167745748870614755751701802663076756438678504129474363596420489856438106713206000920599426046701203916103713352651149068527448573901550943753128886204419389751294284486221754791750147763882831321015999114940850110148672726573650083917799306028857310996095129063630976139279898166222377267313215674559671336578433513654707117372352181029095761847498074559501550822373434356670901839925116806638281287160374768477191317401328888351005296238112943773832751078844981779998647978616654956549278782906130624404418042672265991338143323216820166630140451814346823306444505869013396126855411695595446106753775653560984894142358031248301862589213541190736615940514581827052983198156619590456309714089017572414394569361316326227226723483499070137154797296701394736114305372723330409584268827034695792858162150269419558948765227475367614818164811082244600061217615553245077350608745815032468185209051050257665223364270722592557473883988228933606641922971111512163348520849668904675819763795403774198041448166487316848922267795888300411030606788674115802746979661373276493031278644612952067774149714025613724774193447322559217341518657471807567030522400664010903513907215485278672245538538349779275309989388189883715664364590525818605116250837519466843619729816100550160234794876572493623705448593724894002079959695864008963418850865561816805452225471113158466134717301627153471566612442365564436864290265093753439358575673644186476611511972848683089012475716929215077329461468891816922984200423971041976850956507835283957427823977054097100535486881697855774531994276836168115653442914591806125161533028181042188353691210777752114186385151011998462480959685127040704352898168916448457648091290758843796110529629669190404492695920965937896961645955329005771216941525844382499705271065648291665527436489609021739049997166259079868789709679747432840776200598635728839819814555411444008698460846721599801200718471425511405209823446773092664309538605162068519896043040056371666240863234776325475220851519097447691469412916885174477269453797263688613147131570703960081086414531990247805791377177924598450325389446844628972046626371556759839121461006230706981449357969410579134190189642633411874367021993036411724979049484667784807246887165103623048457622745467323966185445337850896924031920843256330668137267408978141242046136802246920502298224190068034710832653623205060246752656028158717340836202738389771839080206960317613614548042732438396503741034305131490884658028762654172323670235744578959233197638030541112908152153780441866192278645515866796203558681148349217492557976530203293632652777581364842540079429069700993924031566177536405842765755772429636837721367089624135336612128690647806092763023022293212791025336812117925583136513822015282134452621431009435452112229558868075453622203503340725340802840976221950402264780873356527551057613053477427860003644319275559969590774256021665754003120835201924665268890411017120140613787639847256090507237722609329548161911561927489583861734084111324661953761794031008963638038052739404718066451806511680998238460098386337678351612896654496872953214786086907763928578424878501351455610133767718779235694605925506655262871991619033972656314519229530364402003662647429155671084320337152745295966504610230473764852047131417193184288528671655309400046290992760191791670627513904369262321561727147781261452305515156098625324419146155343226680403469950692914006223739076289002186874764526591275046369612637453889718443082891574852558714854256764654374016056678496468750093822328162144298804521037270586664703580644290415090386269831380322362004255380299549494180833135799104866987008039207938917415907216915387157750180827588592005115010057522231674919119296160924673904845093607013863855612417519467645160555156277921484559319244746496243618115316998418230630255846722816214868603662865780451484601586282908295184999062018983123765317671973219102695732157143093110304286366501361782129782364939000919165565774083450598405989011906357850534997901907515283131367880075197185526012667551935310160968403409719320695537729587708022247314269544314534810825809499563308527184000491405172506325835625325321468213057512510806924241127096989792897824335414042877271955870415657772575581003960697303422188289398104285586115736681285891299955930943041408163261759679966329081469523989058867288318919074827726446688922267513345012783022335392360894227893678002798537372838262494603416184212824492383960460501792946280188952250083508012866813945189702717414629131051058382088598043652716224923660689114254714736837822705386473519453098160423560888655299789517834166098365046379151051462273898345584562484151864441455519196734789295967007475355192976871910223571552097739717904399777336740106442308126510986394539727507265805671121776758899750233165308430312490942996847635036951011835719594419503546796095278285415006010561806438029772047994504681698924886240398160585225543299641372051703630975842904690724261154468452394120654369966372520320489332138350405852491433646704873434701676388509910522701111293092375393880208746053333269043718219693692560177707567778003807503433997019051181750049175222906172492547565430306469441098600670836746762667473975678232394548496789872346599999815177423011931853081963743256556994200697536569547781133953500398745037731850251283913581848899734477971009312159745476679037757941388254793957935242581759444118469048093021301695840848327471838670862579204352347980576080156902246595679057285335737918253596837976604415189782239564563354029388797866981523647125608572478461040124432352268070532400700373857123184678152759488285980638675893743903001994596945216280510868889289682681518609763954191603161996599504062317454557378865294179824479138455942219774800168189398782345566270817841937092855219927947469069123217651432041441361595404793080780217622428311438947898722387895224390102560668900633907019997067692555740278782405335292401775169168201994360672609647442808713333041187923871078715765022753757889655308025139089083841653645432634271434321499862090139703303246270859920946907351419575917945232935664552847823409320772705018751548969373586004574134382672980016514638634034712855608930006110930555167341669198845472924910336515430848983161493877903684890175879174365014237255159236136767363078770151114731622017426872279575135284054257484150485655928244490510842318597380561555502755777379713804215751339787064072574477660886683303854945386692810233459576857079314481289693178554146054914956430318219903753348090051580980485198534188776725816272107382155032973755238896690735735885903967614675808541836241555986441819612468477184351559012749741681716784742444036203279778730383011181390667030061550244916276480512074696364426156792530180752608745878278855498356977827010515705846458515449573910656475677955748449575785803924057499533189753246067205085829304860444228689581889324006802032857301415023587218771448871132744070404048781880121189159247460055796040628402627462175228700632401252101053308970481335549578476597573954133831003706637844327248674909339185239245529994117445298791005435914556568155811354068250529586899700388907514262361962938723872541275520764477976827832226193806368133679481705302500888435197661939458996458919555581146286753238810198906129078477168759672155692279671847400154094319838037064973176237215042790626204317920920830380999594912064848028267025460854743202793809789047077526060312586555167906468548766746219134330879452776850774073786184605619798270873839618187245773277024097533443464498165636129624100195360313174802793731922371893475686186943611464698082427902081382234872496045682909142764079132127038979836425788628700623503201074135817727777748905243259499382918875103090700476887332430679329244843844720730013742917465018490206972559455252579911838026337667375679581515784854309910609293495751496316163992583908470939368649949148229878713428074446944091030626160691887436171711558804099790684231327607489706282485628593915179291348905831217385037058604816847936748492635129582807344046533078687159484084947635046014621579641760293177241330055224813765124276849917932845184949791860876811064595542452539025732997825532044308839699866370559752182662509935037584731298188682480006008024269491730208431564092632923809449188595084105697274537757965617799640702784858151339103998584830355291508365885483856889721147284173887695909753272008234075891926295825609591948332434360714741328027792965540116428697962588813467297895350540291974557481489481071649830021937972827136814464020417697294525487985096362888165582559904631980318174881174483909824186438941358598916002437243638067656563059303886410832311171788093689414739991086034058597927265048736981977065571178131775984590198834574630083111647965439824784200086825506781964102512828235980960317960034379658092402558554746509158335774457424476071139023765054103016295881436837674424673881809124096823164748411169181115475676004970575330981268480123653432145782620383463705886612421277770835002489914652816884402534175068450664946342332050605999264291203813901423839637428181231608702921351444612616150524611538953753111327489364471633911466110698742979184448074804272820982503092701043164178312368459271688257543326628417925098818815755484018071625164701811452588964209912064520833709196382529164250168490103517166499698147489328942602301243600213490209209408452683270230612216873329721579559169292090902108563399569367937433678817715469141091530824333507562484147617961490458957660874867271688945070461476711266291051558831432961274694755008919970999664448083189466883011669033553854162502474868228916596024198789814431427697900952215182573221084052850553713296801955015236850774653469659177605472618801465710102406414600007004034045845807813634079519773914109929986482048298415888350269101284048702003597479562117871764614123545562145948208066295778646243443360212844819119485741597133426107342083988498372657601049906017497011065984413297299780010774916997523600816480933757942931058643820548300926638009301772656926979041178500555223926967188174372611782202388559245102558912237158853703381785022828400053092759240359345136983776727879016972938413358048051171150958865980744227226258076714516346119753840620611978994683041477971992842507840470599363343610655720486584779784034090863575316398051494081004047593030779028102699632138961643917855902721604582591614760150513681420364973866607579574034612472210367761992592964746915523901674268747758216825793734495479094455243262762822192154586343868123854700099812556228185353645573357260596482418419436635218285648485455587872897114465913612532115191892745010959111684155453423593731250154499452690015961644329854617165971855440317811527396774944547181004273103887556562235742054611168198837938507717444819499188522983354081145858830568089487699720637393489210909638988278199901012342626930492736450967223268149075612540227106669872835813884790222410011317954613672261806787715363620243553473201575992856560866567272814322345045539606932845643158493197256712815624063429770571197763033381583925255874918952781066880928097018282765080901477023910093901266091932556206028359055923631792789847525717779144918068257951374606152305901799123043583700180388821116888158604824876736341563076478788545893004948665177245317384893919255404234861188094029185129066679010531290253876489376054498206216560741680635239103023455363923662824012973390195365724950045324984395497906530780294429065215716894719731666370222948221673246998415865325392138759753274974057086070285752554062016790903807163030569171561141563578774268206928562692966200485402052248277878276571184645379829104067955212597538583374204664609263905114114839827104028108116026628949056984632045215759873487409245231836783049753759704319566819576916592317288887131380798438995681545074256018416851298855825300961329229888893559472340024250532673635576632102491070537136614854245035711367746916187148335733613675531414177010890914931532296223535195404505678312831244436274588946420067548883545513959865299182156986863374973356955954972984341938751000015682336659773441718070397988191180704710222190976915774885864374664911798634582002867027279034144137887801363317626947223524674624369704197680412187866013278312174223463683568504913368151046377802390427351248156892849944936684632860091890122847604059095889203679432467229983988412244124174929271238687536185337220222066873994303878576876589342567835005586130305058567055840413405513088975657728433546391674931417049968380993227890362146727544124399773619325353223680276175324126942007784599800485457269724270752451041825253281086406427141020919072846467766898659382504811377876214384174003236925319225108412414692123975091256360017739755938656028178077960211526626069290673704640806176960264178020201091100701366080938196857286127250897048133588789281772846167486162258332994756046513445734165715749244931264524512466305303757614922898997254693180944160614482060776679597318660503160453256429748106004843026230301275267396352597109950668792235782844315356580631514291636622399019047216173093474346861068738499015093766709297790190646699474971546205836859417952086219837965432928416584723244907187897631041074235753563663730981986388210163599418380244999041230809663448619478880748501172612310280389730097935465648691238664439407781334537123354674563605776824874272325955459278198629949879518840267137980479119418215900091026124339803757238338277306779698019523009143749337044548325620018768169546990768702091377156907894456660743821548004545532982425104925068532731901429554954594703348482194526866361738845138639373720032818996863605779428598064455167587048203674413285435851329893675822772211890739382517875984629569684602027582321068745543947556777314318161408028380995582964063582518115876058929860236282911171258751104004795580812187787148727931990913174984344206138163691272098875906719973403995442062154144694160163640806121834086727185936721036331054149409717751663122867139495250192950017579236668141457991216776321813240704139636737631843875814169325639142803974708840235947483489618936835361699722734978639253802267896325078309889210261408917664900338235550216608779887649476526058981137780906634009137065190191103203694827041446183579521636269246630351740007916142821437013005083290563332126128889866561209621215543741271772261524529239483202355301008594754175063818207477724048461236289163310905418661511379570935146336595776310883371771403800256910715015836601953971656847762699486490608172001988699866411678007220086600375554092094169733307652923926577158936050741895265269144449603771661582879665058668636591637363730606136451372244652903262493174178206300873766219121203202765716935591580744524171399068110657237599959927044133552940137170289907975684886832386654169044781815869183397820888694027261736602203922797950695587510859749932435881705485359647695969151561225137404926121746054628826395537774375907283677216964724049542182401607873560829659895419179083458069623922025409330596455390070623872290897405611028308716579781765039214763110485318273812502142723182594080085341053254728707773185654857181554930331358184204293718887837361467606429592409091333798547844934047408700119672922778963430097698191785214390324014127678023460015236752485211048187671733699714813058747215346391313749699506059937887725107780212054352926307394989546640666085343267304716310685133407934753426192014858271336368804747970739765826771844624761629874995377482383288135696181399675127641144466250115581544954901386177640676567936593118237386567373057721695390646187215292363144077548788963105901275371420961968763012259590460673603432184041379145665440825429594043262360919367089839991781937280466787045652458220868102009789576574280846408358237690239735832267541952177221202146427280909919853683618086353957838172413337943010262806515969962087572553159979981273172585032885759507888670666026506472685891361799431431242593384815456625047783758206939559118411436471193049064290420756630810493977053722597989074996889235670112877189141338162410148530562043110040392667145432115724667519548257551764483700145086344709979687549725454024192166847573847576769386892330960206926250903146795118606201568432612828982191541666851800035524389680403646051097967529933296032211935435890675080072959637687720746411619324464773322819718865436885734956567305066444267116056216801383382899291797719314450854906915831342009134486081253613315927701347193384617557698595261238411159651170313668370668671590742890414975243763597479305809720019282334529651371746057656409977757840604684174946265690760431601195231211403931434737537218158153768986306694288680616784526555483147293687692138606290296917583934766869170271412954533458340315426810885065284062908217180589573054076005701428377098034926250847373810717738206182275553981276516817396445816488599292522162488107356069009487706814622994502298929562929024546960903492873420616213985097787001881521514629539961345988903245028130771580015129344654022551169687717813455253589022885743907952064141465318142743844734863379534573802877616289430467472928014852454427163688902562581541097094403182517770268493197779537864672941237364456824312528422949985948329681664711888210115712972639122624435890812286855067324143331633975140961547607244011068700833634722576924981000303973963214684733945033666686185887324405729007794507986859993373712434956472259167902559655325555724179110762755474457745428176887245510147685878790569911102294534778603135230804156451560590438506379406809967524934496676634902819485218804293322786300610161152208106180245519827016850805896003854444198596149841335198618059390004059990667062803707766703161907422870312108360030627452813962547110633279195133241022786658591699448645311440918564221779288934083335382988703366460328696390222580665692766191468249246577977076108590257451035041749110132395472325973543151044511513210119719282820040538652690411533381000361448816037805293496435052141370966334858227945095315420125355039974742179942062471041128414269620832047228382353038573985890222753466618168688576843365683474118603331206728846133716777308563935302604593519411837290609208465582015420067137431742350496723602905678205165907141374264431364846486455851505255968323694616796580681145698758417504171299574506969567484206083661933867178242157289154745025227067403097482666131210116138205386801158692144676620717450834958906713538990973304089219023530181184448498391640112886571854008063910589010915186036991614591494059207723282903078516769872959405454382606564798723100285154755459378294340821835840027525022701925090319572758126062042380158970606466410776668119358281741369558124782368628741484603003997124884566313383418505360722795068214178229940540986196747756831047972144882199615343955329455145314810083119738722722348001104128036493154881989389559571542957140160094916081909887186400162744005877683024277229842977176930767296356210991494149503081674797640657151253617461031473322474238554340491367786491805425175663376403704585813949257135892634393933987569918380059842365132854994105491526831058196076526039318659317663316568564615818313158817604876538033533400847976165980041184947355058642803644388124765870945628647220853545592968565951189082967429925262247892622990978357695484138759268517542064057603001131750495293572050419439175255551881110027823784929840565553875933507001148763547947960839381154478775403908859839326105777081035161121115442880988328725183342045478804278098251013457818279265159213830726809484415507686933956726983801458458173875516107163784938781439063975222112285380945891407599472436602413893378594404230709092153341496062036873810821590994881848873308697133016881222516688714580827452201032419565858473246021012678223152459966215050389297689701545615614172855755339920389463697789153070039519085645568693050584107133876385572842523200430143358030364588368073372511679299217096882164647921025278018087304882450558608601406038685517083632133633221341994213870498798905819810869561967277704740369093022146308927367006103054090591698796406228961616733101764345251975294668539184807794566684578893852830564562576742867565043188270159391669546110488938562086370874243875421269591349842914133903164172410629958622732241402014019697814388820429213037729046863634849289082802631942462790221356832407842613429520913120100532204785441419418273265080145118994614818082201621812253187887947949421225601768437665274159982814590130252600520222000753862651281112702582052676841972034669043283836736296116155168983765168519215306616330106081805357081173080129434784733159005794250948928888583300794947082948607285854733591434590053810075154666519109734394537773439487364075730076751658665233307288826913926988350077676222849300128717520759773227103561235525617555499931392399468437275666938890845805350280199775335258752730099856352451695920654261435445849953624982967902852553895444096310729757020981287037382447134293076956316193182890509256155639147987990046418754412707456486095040839941610278164488424183682704605820106301485016789493385414229218490581858733941315643651278853040314936941889714913610364663140050500771322987724800636031609249169593646200747158278873774917904538005214310718267006685452682721133403190487689422775860228642583424738474121228287111188224580572698875374340573930519205830830736543044323831286639899510542115254949096368672431161065785632731899614377281268380192172637152856576396213128625101695260570559876943648176480895621549714472564749104054300137493618734930349450552986119653039735449496338046086920158552472582705161239023107240525762790718281881477448716050935738653461464649915376291815652907070341149511216695790591800832298889611703563602990173459153359782095943229770138709632636254320200981228137474464175190047127698037176714845261311918089760156541737816410794778168288744385174518249578950570934684486376547625759713691274527464486558462108107041582345531248136428487649650797182852953302603293656611437453440622280130318669179966183029381343398044988797407683326533083324863758079973557931373324463082612190259288019212980422940817946731842852684888435919804202393338944212214645248350399444514622923011264194949226415152897900096601869827192448704629757143025985837301068079381724501591208124006183922311012054386122149611461976722159046584460206493444460180612790053887049039564926573455200874283321775154979801760515539496618641124362664287666896754817449148629010454689156870659239052140079258895111928433460483613684620176533391673235643536486869300033688430845272578734685797883257982333711154319186650386825457245222542306150410901777508949919542866859175024734459389058750082775051895018629025296500318381042789456992129682158637759764062515636774524638042464625859313215172687169533063429998729312223043372343989809392490212945675284031817154684038661043685979431169273119215089907796929033793026115224960108969385560611096278311407890566071878036927995444975212847499228312130560224378233130374268134088413678403371122051705029997536519945567949393734517024459916727725312417583548885041862367251823017178055297547092777198393764225210443671142145235028686500098376913764977369582838579730666552385496223203109967837742154454408820035012008998399230972974710340394352880421393553331802088893547879358957972838349045634272312212460560819346056438778998929157674512257362432202845325233512831275819810208128502399584071054541674270886547887331523940120817357930737392249046662435956627572358745407595704972365216401770048408219466433086671108464105138177468095398173667659890072261410667297995610316639715331789623248455607132675438406204461479012154099724411436792570450450644051165105466216029775941191530960643306781521088265871238533556268905367411393821176525824006902267918407673800157752241938759290504777936350205211443522544036830825503157863657320869987590660330577129540462812082326964329123116162388548752371728592819169945900034169172195389953639003436744400357710051090054640274862068469239567367969474393256762804367080984110294961283463186251435354641098434680674156398113768841154055273423601441727299542040314398593750709543771064827408782613806304123484458554179602988154532584460918015768049666132156495877095583349378666836118967578121056403773018784469147651603499660280293314973802546886980756949582452985437644373272746637959300424193235602785533680340476541492885317982302856231376670457733081896263498969254052583537017315654655157960417494628773946299069462794382110699868522656276019366738658194359716140471819296306094017855549651299432020823061681051313470372846091110360341178374056421564431823921834156665677694859452543767080668398610359903551804145119464058655403235364254291365049903587312545421504103588708875417933896560350549631482788068795397515284052658020947934498387123767077110428130188774288139121067624122135938971115876046465603217723174133250857965323534185427671948425675083932926433214507216981167917825010658601246968340802290378765627378277111374786438913402319325232793760567660955303999927788469965534083991604616956506806227931971670516370823206519930226224515609821018020502476184946382588143308445712102455317641590766007066590179882534975890545156064641509139645898965364967100492222693891081308898680825311156063698620857743621569737036548267282295980401010865367645304699579169917844798919156758803504519960493071634983326093905887540520688179387160165786536765684406567631356382700488070309795638486866921452753906201932939450431804079593599615602662268122654815991105347462867999259666399021833372181139167402820933383466114694012901814832395702477467444562233731112609391419376811076636047658152999012301267856265232491988344189167724208149988194056256022049453287109112306616796831802628131056864130037707619881341057322638331250546064308234401338636145482030619361451425362682171874416201645775041849079002437506267850521639718924537777585656647969274545098606165973127363123608397147200106281230741412201134828186394427519833002001783038081521702672991125820488037623279646494406818683635673254522243320358071262355095553550815200719668919894761888333376901737831066934363743321168625633451774929217846448823671218747231141845686174994510291700990891984462036100853479244716288596413178614940400649941651341331117237095370922046333253397887706801844428783734135545778320349487836610189097537451329759695535152987622521178389508365681026972870718819276051417297495968019528538814149998985382210742815205751496936532293896899677524395522570832836063362082322742196944607625443717994314872851083683959509061153360233925653873205787917366169142308523889323176325404896592017144909032166915871905805707300388792165403868760340507883853266399969633538962823943645487741705903862022970879255200634584309038518399212887306089428888572843291012152255865919044858848007382611672418036448729492018902850401095221581613803988678996333505210221685442237199541775392670203148729149114426335343408459330750954368182754794164711918984186405508432161667719038156287816072295043299674617455908441912919579108709083832698897038923086923871435358972455876182607536959410025538523730224430627837520081251060897721055961894901404154530589019686153952667626803879178182404612129178101181672091360779041012849636772154916447187692144926878551507457152881459405421673827267797542108993048870826322968670894201620027018891081779241574291002146068490071749893468854303142490868151011674206521925133544870677690870587329385772585607828437736595349716158073580387370859848586625690828327885809108430807714779909712496152461856013823082859284992876548395330346783979368870352909382329201289527693231793121210182158105766081139547196125366924912777737104708532083832647586966435401492763247674651165339274604258665496343820073107727355374597483655034848016333610904942071215080224922891829251130471773770138858502436496738633949788026764204570480897233494261343604694505705123642844863625200473391879659992972505066613388044209125978840724430448210081159045002304752979883750926758098406892056876674991712559432990164159959876237574022282406588283192554178191845338577377463497661973640645576369207052210314742971656413761057996539898727487470931104278882445899656020485803198700394756754355233328300078253790138506256294658298270933012170067077253230474613506278239353047198719522414398308898769320742033473653550201921267284142129774076205283271097345504602076014075714146696946563035414956479581216240939319819026696081145576494112116097375435370600485521577390704917884689682598718350214179550843678243617371554356662025859422429100965808899255405046992831651876706924613317881923427697173557009155659492405496324489957759046433580654640662372127926336895294318890133736043780765857331963148148222239472792782110880519429770517626144921506277744165207279794760093749740757766539077019661270393467600858541218328926314840522768714936727956382314019404190576307644809251441495470500455057400903369611592923081807496257646966665479657671191630798138069198152611147330609801190992682265606054743533457303821833011991209726842729399807913487811539780053207106845034924354282438185583761738997791684616667856977466678688878799812407271109262389067457836349544147362377680007709213197930792531332214649428099427521073075218225842253205235391666532266927035044058798072567837785660157831969225136759110269725719105186120220917148128854261915476422047120122052776470726257839330823817725771266417116741021512157696039322400700337935530078248373382894297059814171526465314285589306398607366960186800800294176263858321819815220731678097979909001829414138597029098571208650701724911704291586037685686277096241370884448478337167504686360206707256639042611251567711180934977934198269965446193390971944737214415578462762871548731143587722128333398181270605018718401509056334072154970170572176147830058478660329125029113742577049596598071190281573009414443805070164713034003148603742650054525327323584984148317568493696952965662653208906337704207782567639223562763903196109754551850220844109178016718181287668373117004160880826661129526171325265144788053310695331254223609895343576826485996541596293610162329051718407843806536038163747725655240783178037062368728574320626069393493996248383545048152820470678173566993588870911432835046071062134791866751231739006137055352001992691234378870296246688832095673193961681158481029563424116877457680840857876052136237420550345267080242083961412131777647997936168387003056739674643539485904043976379727095420992230255262102822873641020634665749531707947633719993718586764077805623685691834608919319064642621398779260096125082683770089809924938980138643392555209962046215340192383511038550392856507725448132930649884610562401432660936552058410160634336404360663977804234044021692806695181888479375160870720727593256902895554804137125444720915439525983621252017911179884508287758536482671491407211238457857778829263567986489540459732565486584276790794797127781453403791110071649689764051791093851397314563761022808648973997254506054281732542726433316087824338693445938534014548903385650372589068050293075016484805541460417033872952557682793971438415547062092615356205729766818797133680166319672120092240309142044024754567716178611122392538031161469338615040705644348643114767256424562214665465771185196444313777924642858655068906980217676309158655610727245215469693719155503911366117806772418870237975250842956650068347008673044720026007269362710366723506640367198644940043165914055026136380940214097583216209084918265390633803767166016811064101794889668054355169140576801439085333918805958678091394236706121972912131671790932792078456047255328603508302754310529142178631845939374699913416321037477028877736593584795936545151059051218200851360085128628202850987401725071850273677339374390781146485843450456588672808708382851050119086501638989921073147905329705790197176441631584121970613231537480036940808608488959070680206254523079145772827231326106808492018369393100918781950182825085604868708266398316153990373183654163574181585671899148933970781362277094552259794386694151870751351589890299889381829271799935488667798940799869989524575351514120172279199527493380476991146873967414817303642589359520909165034214558744160046939437075003602389137414320405924761788013582011070090156948433373665563696866089083865004359329451963442671629690415442516165511238343431055467295200961577007085060327179886794935801492705682247221601952221175167893088694636852966369588197626823904206187134210954024326309412255884846660794623314169372570439611979859075725927979911509518986593297560143058169558098789575559904938904641809640876673475802075965281338482138998330588370780682400759494275058547496728319746040357690829864814307024423305898114420004916590642516626009588513293934988877814262870976923390140069372329502958750958297195625864412883085577566725318523562653973008148496196265569873381915429006916511927936584803351100649337027736578327795008553531079457390419352145001524655758252744144451058429359299566935296864600512362108814876608120203491858885513561840312187036581344054919676454374553917382773557193060913582150198851326389362664084606465185137440047299549642605841695545601588326785606290331949810128262646538918997714824991246320042237211198086821310434127930900044713676942426913353476784555305521549689161807826238072283917378090908863831409965363239180728307380742811430552168033468779888277204047809879367992253952309294992922911011194023754276157406646459331487856395820199731746373556476991465884265933517057427508070555530092329530890752622220590807773436514582238156483401935063036804825022156759037488395832445074563728642673411403235655245563004878339887074725065001630223978758130960158845447952481136770570473869446340050066178048391931957392421687598962650437843342251829413719789873976063036800055497259466168227970126253758386114531132157646154547318708518320108579087977442999940629021772739766656123731565736582787788940907507494600133893628588763348020946347277030076850374913101774097820501857169400123969504085014543224632308346382024638785674224575828467065569018098781096821319312909488000086537905926485569494670496881039406195042338745649199999775252750450478583608714195706318174595833222712432648063919099111442058450729082604535351602728910148764394808984675194068158209838886452064433944647958640843118800475525080469545134341026395552967731318188196758124812287592372225200326632519094295216196929152136213574227000170372780643187135851847653952891222078796036668662857168935685646760293950658179104653924447643478620564205997851975153012527875201916749587132900139193220330603563766775104386041267432926405531895403424246811046490822515842680958561447737444153962921169439229639184466820827566740504647596342680474790353691061701510930129810590882316861952602131901815196238632343216953195788040272103357045816183925966197482524251433592964019522910875463637834472428717931794985608033612652029681930805635252168440929302787140234451232120608343308143428364639645867118461125267790692154042762885219005577700986104048974417875049529959533060134641915289534475120480023500962780332364816936571828668124445159276149177879254050829274849769899852526082206043781737048633156656670686378744084774071906970541939438729895909416917336825536127436744300530400085759853073271131232142833503881010591396379403338072816411344137333698649204698338051207355782229185865167635347499434627635133116574176966150215936706762085759800305138099771723157286207066074743441525333301142441057872997261838012171586668293766225629609076120088156728659963655990149343063748939738552915788376914981344421325207234200907818229300259578643132508851477528994520708535687371235875926755204502072461164788999454512202334503156327360273932223565094340190281932032006621336329502222941337289944897699532905401758623012652286667815030279034794988458723477090023898376331211270675155356940624325326367456749364067677172708885079693723409507971789118408079945426457410880444070739749133432925720775901419900306407223147360360339859341704932529561543931211861979507649098806592141573436699224533862592061956752664327711621128319572097123832231800032206444979359057705462320000452223677389591806382684620316723454638639846961756666353868082895570417969043093108443274596121244595201020628881249884550944936638958995466507588203359444768948944326011970912134702482108969506957402229675132440313317636479198429870561551820645112964285455550915609906223771458692930040105655124136879414620866625344786276251395741465127481168083643474438192481096629037332053112241963824385555370894668032182502268006275633776303998339656563818353509980940155840595326520340743515128843442794184082475575090851496930021101166854759578274518306690142529519811625394419047631102712657454878603790170486171257403720144020159107952797545810598701120677504960315996568967856856354764596243616176047435979216773171334985924228932860246468152895365502575736845387490280571847732725126943456226809115892708463752397029873364369605014316836320076299546759277760510068606528554498314638753818768354581397097415201907097637078029855649455323208140217739902285577279979059071341471207974985066879694769160430237100566979216348882595299449786644697347331911359377176294920060381654325642352811712395364963001165197750734434579315824647205683858260252378391223716671967382478130333285916277710255511940208331743592403709501104735480178288352358526083085625305468835267296463922313124982092006135488299216646924800306134096888085903036169165567957255386173791050795266664806110495254612522923530610450008671426614636380941916302751224039135969907513492606207335995939203662684235904305486477736375041144752132198261331072885345657252015292820380022566646809355403922600142642444599997171011650626815423066783448479025496852194222472413656233437253497394077416984423738568470259285605498568081632535515740066339605696667821925577699274379463089560478797344534866888172505255095926802229371606420630752597199830736851381543024179207253786361784393377655430710502014561373916885944248729779631560354619426584865893166583771196765390679221974250724494299794014879183016335070649727108286217234339348367823073104449500308853607674284716951997313809081640042177003798679371391747052626051019146293020981482528146960217439415376421993105916834311166369768767521321158076780695915170322638479993912452927597457567792042378699848771409372029237208967091793334652949410765328888192338228879954344838749589533672067422881403246343931536324620830479179679736419233580890963088592512133434444112431892766758332023752900121582777228245077144799670224036457827838069550996804055331323956872652406581085309640396408974176301478233333487388210270059096602767084419114889675695586040099988743598933239066782107801850437595715218020524965095220537554165175836133117184561617889896704176010874799908560324685532071692097607022262425272575961336299838254414683675606549878855670657024306967888686619564389672387689170631147720192195320787120970508500981352751012942435987827922106223389999933172846003264814841808068972820811215685314567145185667686770184092479849624928270265430553775588412367547534818274566706616446252280778481833525586809764548827186464980946178232262195290222396752910493810343864056707904958536600131820553682991779882663348193236599010817969183079466521716622799167387369719988780726784677306859468098149520395160329995878585613293538696543977568645130587630166925675612967040967030016432729049967481605884574064738391998762772354396568742551707426494090031065185708715556709299801722460327102708634140013177742553912167079385998377665443548809810721825659755108232910787412341397091483218302852469354574705392646667265283591314549851804545666702152924202736184465065279904160970298467417326804239040335491875471989210973019831175858967193229387950841601741625763320533834976371681556279217432169687937059550696222672985499397161928460119044719757083219377239157530835020115868350566984759206896444793487022187008781630828350265414656123767650588438918983501760582995152554271034091794520598838226025158696187749895791309002032596974625216191376246109120935749759399306645943639599805331536861757619007297803747648887233694198553031602561789815601449876894949065763171936117439341031004824901246809642335203305390724184610280594754482487067592642679809394106738005925294243998239339540916089841734946951293586448753351633227859548291403742635160233580696274247141635762689831239419254020281491992627830645965317990539532113570731523493291884992018998855208807219410264940764624062491476225778670330198117882553968730850663166412516894965564522314939873966042593222301112045437911539064607213503193761057622710030424794121187917431676419367798400323852394242510647791232273817430159225096246889616424756047900718731071667658814584749455331244299426478383594969863531522977840868970085849697066975762707056199804402913481841504636738320658562650564078482516865652296116339304602922897376154725750698911207063780387520709430260047897245867997234305561454425419485717490291313048206077488900881313156450973740602248414420628276068228711959962490305181564909541772277716817743275551323314627764601779778480404691302732438168435112168958943730991326854489333550161030755884398142692070647493018028111253629503964252911967762380336860586524080838111619753145718933091120995732672702825999964854533163247430952706249574330539997627159823551886903163998782449170483910921973366027789305470523022850207864702325577282362355106623371701271251554363252711084339744697357711484899875679388812623713046746703200684002705132397400127434915321491486656428498344488587350130505683675999925701819894796549178246940279568231377100123482396198930178435229425043245138484582891915083446473424037437617911137993159611097568736655829369035769768990978562849308279573685765324904327692622284240372658799004695381771424429339837871509339440806508911303878233345669230346854766762514691096965079415708760215052375941071977026868599844809865889047169211903599845408445076343992284508515117351019133953660653093802558202071097384117948949236944290534944750042033023277283342051864031951451350032247534279543013472601127145892607778766032984928147588149423483471093430370282427726462172795319875094290225427067304479385442368748106047181815822651641700114098559009389166905254216708840521872445863348607589104843479127895914163377274013734145572889168328943117560782842087943299402920498936714938637088134398003527816540661880511530328382102415889401140890769961784111153717761663937096858982963559809009982096054514841891714002819266071017658784393070395514527191946167326754968792665880178665694472665012360505770251393351860275358719804213798042503150610548528695535994624161786892597865874734024610638908577593987422148275532652326814706827709018772096421835164800749646865696805870977426073007433117417950603424775868639972268722500577735020837391506997722257421918469215529307878322389271703284760447926756646892518821086123245759597116815229853604876650382500982555286147382664807964732030412902641966297085323923605580480558214434959192021291485793049640286946835721714712851117864469452966479796689142825070953430572146929523909244470340217317287713586921698732799267072749399035562036721355280823022931502451956287554295527139427735902326222946878161121883482497444197658896172818185770807538251646948082656967501903883508982424305231833719823535546379851117456523393971763958869146633453770891851439787573281240030683407660334630758058695099110119241292864196411707855595193535781561408473849729603446362938075046610501377763877404168316703039247379922221354049604243808532615057600240491725675837632124152419299429569577734085916385357263941272132114596706241067716725422988653165745192315877797565700247388457107992169093710036000181813341245077683560132836939496646208269664952654981935557456502171455019924280204717799279322026424204554718886651460918339340354600921212573899685640037847337836619776306921932159637540181310853370642220590043214068025098232391018856840152382533476337688182108636473404116306133361767826037640712969450126114398678309946183924219866211660919012804751538951336861409173960405408513892728817252219344622232924174183944148572579796540210403079831113592538267663528832634139363453935331085665594709999936551987276436678214561845937298418212102932013109162631463044103245123527402093860439640939193470719441872020726589601676711901274558234718036183991108000124930827723006682890549553615486653042172145055576112596783092812988955899779331713633627976694615985945945089820289552338078768037594581982266985841860301882115111423273572661425696395532581868461621034534586609113302061596571410746391586221547786938242123203386009984895577313041981039593530866737584227754795444964009327137491044987072642654725469164669630312896817206955400114832117893194489121674547342467143288203343088073079606449228784203921917198815081694371384800162726699883342503651242597682912537297911452741454098538414464431312914681011600777270363614822596442331219255175010033333629340469754861815603280726083127039462209049786595538215239855437022637713136594656329068743184186235060560674653596551255914371233800272894866719708151735801587216059919433130205585222442076949155110975716633736526335806151878528949093197629658211472447952670281853345895592164605118646497968101474299874997978643776504224103613656158839072146678675171530911167993934833803745715784961367849767754193564906039470826629509748137534231833333950791949097567761486463679277328123088266164194615434149496432756964264787425949257123952218996790138247720089901720113762308190088966266501798857267910536867698826481837634716478410514914622312451678893393800832748431498997811542168272431821429197839977901698298417068055485042331904755601916242482113766070328778404457508843787691499272315880528346579091520832186052423159149448380473170988443714551290622986621161038699199143422141976118283410370669540955347228742656924069737549386632717019722647223314134894656575445945759148671494914552596419864306319794958944191303981684275371054205437745978276105638718275921675802674922444049526369720314543285638475164906959251672415078826651986338878390105901994031928995709791494220856762707626782856732267035981670056999286944171071647496051459464633723730921495966403155671331642373277583700958345581452934748990014423829932911622407324485311985603783653948037862304939935212553308020348501320519663429509767763429321604758844544009150745868970269762568464264366434019497720541800693720110088689611167110082386487874830074670389454747282691506976351047451382964731065360264146398419089492197856104580075234597729803988104119940668466250039331096119926215263531319969721395478686851808241427513581099342405404116419799904893913128014046126428613357000171396359957526937337969490406568282735491009905541546300153012618773360401879462768276746581795043469068533714312601013140276259063088608805036900278850842483740032657333548997951203731135334803413881621439368752936209394635377417088194762439963590970975509131442435741620144910780585681806267389261133928310667126770730547438233558296538903991141956665872199797124256061983777344255921796779655127700013048367617855712145275104938018425742472518895886850940333265252899119517517372464499518829580250934863923668870836520268263430863707261173600894713244629243928356529912420390680112070474521901283796894763861571063763126901845809315204078326755190446936204534026952260250113113583409553698929018536623920108183642787966922295895682080827712005737467406643565546956811853321883985870538559016932048089049989796419415576082451355659922913715256738626580681839480102831084120850470440852523827009931117296414080489133401286498538488596300097078822190574935523838574925527573953102753042792136713125158826743133642886102110452006849796717645261452085060563329696893401976637837859782531388207431226844568952271150923588597625251371424906643518579093660852862696699754983213074207442853106421578906631361401013650789510551414252668675735315362152375315631691203000929704626870279521541994595211563512775093112745049602220343228137937322690340665995688519739135563827935489184766781940004124875070240194618914764993549793458783958943992936922673729167197996134902911875187295208606961772309368356158248843455948047635835820729095828274191634302415619479582787144019396270613852407307107624275896028589736464618921862011984020142476160087908549332481096127555250827298352508064610507107216022434115814419675707812732097934709594859807656123142347936642837040630697363437074863831852034159525511268572383138799355541268237345012378158605561222152670673195550710813531186584623763558136115336835173219617150527075680531510318857561522871280701489519346185721590200217977547513362715105628410563797291087006786934559459633434447582078147802438712885403065779145541322994315576731063795476262177043826016990754893188342596007045908414021207719318910009824834112928994147313768411052250486003683253562532789335668950979320450024782314746795401642379567724362532002078008335180469140992957227687433164527563612776518121356732509649521069662954729113607236965776909087652012539450768976283157491246987283910524632966253981470081144477001841638412068398742551049639855179203993268432463713611984944604409751200656675068320184354050443868760759005316283374015560144621124225521443597975140593965428263434719858351945681025966860190753410715996045924346270488495257554786969860900889432358626597569378965395041855260498800620933128578490144579391986536335041025321677287020106440958148526939259448832709224023521604913038476531211503616550794245406642540651667563359458980375225368578312807988377080913329400239785574723566770466512887213456748653834662851578363396550088224113162255619378983495776938488947728794893587302151507229386134434561913291076243695106744867993175766571065649373036944214732233178223100423196278646225474123722843780246396919599387505345653082925008995142097815102532070956069434624074429774936013474443568761950619136655181309866412805276407355499264902192552038945813115260653262266294322218617909858779674769652509920269534819673004522353808076350289701133992623953402287523709792714079029189166293295920027768262939678448017787318912016300280820986829512969988006201263622993677870262471429260560410730723178347166312700175845377870936563496326520796876817881842657574353977516135744581476273913596398830623130536254007193951990805072858071408606067958625531933901648359882138625234307357504201183949845587683064879482889082301256696041792883425406203495083165771377617198667854669148711055145291788582850545748478752538898797278735971115896319149232042190653126079055942364634979473827214782005985395132219438554878251589776347193355917640740374294650289080135980125470180929462983095910714152284958897364623187360899698363599055845139575707278317044609749756222437241790320634167992844791947832757801268325043682343886407200000531611799133843538720910300097513232360572204268858118232486687821197578768804079010372695659862846192431975184001185714775140393934398437232088462421495300294760437588144952687723681905340301830138265649629570422885741858578287471836329945606249469708025872369312723766214768952040286220394827353162444043628864749673559928082981811689649882633751061050867336583836493268324840318352614594612547851484454670353463753781589340343739624187435367871983374993974788646984363262264782986053253490274326138302070100842066218480310439466566563057334807319350556915404979963333042534997983736037492833010679627265881135285470508924385995579895848173513294765497855465168084371496466701803643853428068428981343563519738425722498452198159998818377962942037980529340491753431347171989381764626879437200998329774744822668606738885198762799222469316214486486726494285291410202930544157215144338415633796711532754408572239904192017725098085399894076189017663443935141874476708698401958285753040345182420718453814092464677826102674887607902891639520036918682325514716246102358048954648453021499231597186786657729177746548715247416764786017982702431417511197653101642947383275739661881097116696348290513909484966051128782226121502961258333893108267963501599395289601023020519663473674004597318957326954166504727463091767497830439886883981452608551877537065770610249816812371837504118667966840607314150808962790536970579816153252144875486027576749814901357388431043407147419648568196722269017007234666023759937704963159403989795461515336188883699482184606131045980420752011433776651264136808870918310949228296456211664849699756238723242885605809026338431373032044408617658347878652897078636940709666133085234448263298449491211157645570325257678058710306193909501748864745973850615316172081677012005579519553728693260693297855018402456681152205326019062754733181128529020289841432585245832635056899965661865146211291411231809463074574295658695858835379039596488380184610422776006508940368959876312592962023494160193691617321578987804446114472152460302723507372316751977281721361767266579221857837792781225252530847537908112549379817692239197030832077952519042506694798501970883440207314862936468639292208907795288308527709560276906349935794917577033680336316459049610006914595633992844004603985632621561988694384132549168454538191041880374918637713686062188214177532885704104013645690095095734777206789142635402918686564671800816774136236752705227463149472225332279792917548354990845295025281277650671005755090686112633230652735289840005521627039962457809782877201546791465082368901531375441229209948292090755054730684531992789151166501005757678958228704893116585964223731514517703079006061753244606545909027974316507347430041752145743068604364598952301821406618551543202189437657415053610022940470202001684370198415032697020017578220317897530003539142826433203148359910418308306582716075436741559988778016852558853510939488407002206437936514832541526529138817141109537941044132115633566442732501351472160464980787668413858658569467530391885011058021897335753846614827200241541877253132318387858347848611136216124891696841885364333344891938986473445962702212603796511328988007053902543659048234931979319783685341405437219786028040541210555272398504957641978671585470436026655176596622057691984437656913317609429702110464639609057646674334694530489396798624835977820519909536101175177643833907373887978733162706931476977307040232886441945971007929664426757845572674015004674464404447205786254261695956667989996721090172623551076954484029340589986192141320611292886726382182347282604953126803963486344739293582441711853195098904064067353971018116441145572208706941864140802564211786295659585532541185373734894671406549911249657763145337964496517518727630380879329647420012135168033656565154524202935499928549958138846907143099071520591553906381249873307297793575698517987587705790892456630151320686698702659331932339957827203825811946583139636278017831758507119851717807544840478471971219420939973928373748307192362511900954878847313597117103955217945452968650261687406384767867461692000996041643022475999723230949625229164546825821243399062891575906531883891897963585580094048223339050027132407382865231337597830604507573569656698066633313918285178306297616260449044802897667760973632135274841133633090352189522875459317613545606856346471732497068140842260655234854930206967178627230084454137229265107828234176309494772625179976100884369106940834543820941767598873547579959929924916939609365062435365375725187912360764136945097924385962290020064993553098015650734159649038485332335913147401706533413692760430614480251500384714439655815084410180288827531960657403866721296238288215551230232653249396366023208523860796477156361883592795808574375083253257366962156335371296708355996632002576755946931479471235144915406781953508744419461978989689232748196040630507201042746604298480872558105042647671288615822302462931303551647395561053900235500541514256882325225672326604124128258576484338038813265603201839153586893386302565105654793092759029537631459836306547148451156393060697476943305735778725892706499031854935059770885931517826926274110260796355770869853039179544802810122238455365960400226373893065589872752120622722288822812623071739588733344688195858229507552990078164985365505338306985107957974104182226500110461251709711161832944420847026681869919983804848939358372986309493842134744706352776816572660115998418630666565058707478647666126536547160758140634474659415373310793489964123620100585618511090402836631497642016197850575339873117263593813979425854450382099605523627353885739329040891733130810684101664993478582874632700169727621573937644861617302354804476648474373973447760968492113842723128311196292990153255435510298182419663679182759921073088066385727896439942867763666002967501811639679949903076606223748761489396139286047824294201645791522311509686765385606003733484927919875155055690073967881554039476079564756983415073644120257192364479511105513537796190629900133795574820302061607791058642848574844486269653521891254558555449711967370983009698436539567161624294137112027033796636547690117452634394857496336611675724751571162260464177817728027479276935099557554213351581507219314776305378507673559273234114839550287211467080441427563455822198291134298486476948921782024238677571256147307610520895185298856083775225996215801327041360187635328864793996877502460149187197721821642576891225359754625089706259016389987348040439431581588113796517625834219767353625812607598393750370317622861632341437033113921616907883680644432843186488928285976343640796365161358802172266349830534607656536506820306258554618838990766377582779349130927884209707560639999976669256605034723749120150526668215767605454740565159736289763207888501912376466200673986555990654441359472660032791358127484628112668263263633192446304245351967236589068361295405466985479879363788011702231547356669531944441663444414164034564641538914872160525330965749359500127262659880754052950508572115474556492702767059431381675391659200890505154370441606850782477280006124967700315681550672140485975372502930119155130305388837282474249123876341169799147759206549760834718890948313570387338841041052229561499832207144057726175458090925006786587537521120642190078358385584182394712148827198355298212457710265238194568893603242306995220515947000894881492551946052154437446680427240323128769859476308446675217880440762767004459752246187149298381034796094939321525327433812272789901832078094472098774574160949720449068425832863818101004066546970160174620826777089213508252794071075596555289922834313763616535463302751141863875706532431362816870081336504528475703334961809880330846642785568687981306509646120788327789169950196786165291865971077557716755711664910719970429499357290549602851572572924251602277042609525921372455772262099551010920045721455073982084981196390615336144059183447132473619628518361567996968172660394857791680703046944536229777269930617884416715150807088736816911073767247774816821368466912343374863101136170397579039708605794610832951372568748220073456312619253855984349023094825342879874201629130314325286135072231893672792391636260273241384737853727327391649568732238030016872517549670030667753196153393951352839735337683119434142685694461966574296114355794032220054166500842157188602821208989313474556054722785370534011888819173922030720962485082412008378798030209499281917676108285017650098778948829942425166315117744986313961402338218371993411487451491095902378297377330885321612421797846298273103094908098289952029590657225155263796715861617590447333377699903361166346812437821248984015436402577435813513052400592022022415412906256665787386854297626960246185781068507467724060671167837145023643696225150145095455967615834034722184534139725567739169144306059178178183063851324241214176685823353784495418232654539392414103478791718082491464121322183521454504742191306404846780330020888856513603280785419894054591593307371808626131263280380335511767602049689855861749522959050463782573084847915156941580871709560710051781714626488314798259447800182414346416225919038441692655484069332930305088329602276462393592238124014086642447811319366492499838636112000254740484096923205017035283513666654736929581597992651729870833123879661934092660310231860121974977825952077636494103287957718516043141722120823925494736462366731594545960380217503512463671277856803864460102938840647299008766772350593127474535844058076577454520869149087773612482506416170680509353467465311621199704222287989101278983948957894240760012695313311177307216372040638528668224668712108112133705428207963574403403973249430333614409838802837800365553402632499886033275036977426396691375449466004964217056009189520094293113396258158808076661191817528476208419787819268365044215031342595285840151924289188144562553195408534818971583450498535044971979546278040548218993056060850876845706036773736873381498708699772882300593254057843823200494170078974303329403774817448092350600149413405504982821804200201290341547276063964269774218453128482356381556980345178466695764112439626453595075047226705215956894956998404289160718184108440763518540250924709512276862603822280175727723614754381555499300315348575661144616756501994188436282491953750506237006601896915652528378558262929888235063223996589963356080111194342300951288995824283401118269641321235213860100195190076187848132149269007288077683468538475771815228369803213213495777927379050499899715699688446407616186907855087708657911975366584731519957261729915775934423110982857089776110027277898891141696555306063842627650054569958501917488031587913154996100469833372601535525572245715180682277406312579722443238910849313833543469773839254470143194926121444637535532678275784056910625233966519372279967712892843172585802269519153358613847388251190055564589247576416467898444829381257028337729629807182737612871388879880243704017544649690344108799462615083212503037744735783233844528007155756027506521557289937784182694758346500411232395597128695961319940186497344679124186651866257187605816207019553758775323326515395643588846056676020437074552906163982427454681787604622046051823810984449306157779898695572446259973878238894689950933176507241865931801893006391580679338555028018907776652080761724849161976693643175717040239225738607110883295003592868189019436591909040602788151581492285465234317618880834494673414470150784646824022381327519384129215956552760960118589219435793237132361410938018908382699874891688777122220623704328581328468881518615188053818061840982421920424245995032902530994118194494123070499875821818179538638614018678143908764076889078990294661147513130612161233265713263480073899902613428593532205412184435534659586796031367200618910421697926231340812027179876945294654665343826248313826584046908500827325726647059488180644325186215414392160050185696084349941233293974704758738180132810059112129567383064982122813325958732090124964270770064775593358461825194785737754517545977471049683890190449558550148690722972584167349406349505431401339736959691470712347276546769342915912908615437862083801573856022883632485263814359976797768590617885043671329952088064960696321225561386832356727780069886681833184890326862387952564804699224699031416652750635520584209697230618236022877733798388255763176617925837812883106479076780991413288291193828773196727885971675777265097590526858857947936366634750443228085069107421518313424650162121682836314058343617052870461823669991173672476724429043838192607159729476105359906857729060044025105988448393846984355192812242901340071466250338164756960298809420077993682988926390138465792012235882205559396390450821696234716394410270882917059881220083493565240763199875913017723057952853967374940167683686998327597700675025183873468095105628377099738008104188894612217410838151359586233750155397483638999132559040269279381253869034894683311882275347840629140550814481748762193775990618726850365874633255578011942698225518196574170612744150330222455397013793962571242599361376778856283142964575265552734710366705984557566891046451228593377867379844962135199109978190246142448629791488618307682931723094846891632899013482502977376426557057718282582491049777094122290686659815408017768566783574538738815049364439013437128221318555872278607448100028548191703516268555531095404683142987008757328520569035175289016508446054560077014274891634430370943621184269179222234403772743070402079510038484212865158519354506174243308887319992392344436053569272186767931151297960284997503660336093165320351721115541947255939479545683856145590427166604518002332556686981187387785145201064775576579293688244256823331483851685439569222210985857059065278452999686468405301541144153306444946981047447424932756761349736326004331994385399200422576492907526926373087521413580998805530555390983539237998817807240466401665564951089638301687741550449934857360033633091445303458269359283736535958614071373419825715400845539951284056103117003552285639216804499808730379766779836440138226039121256309866324728407379594160485648062091411581051761227359937867977648370349179499233293101119361456685288703479609798557221984093094497307285756328915180378289460499855706202301496103139612796733682130204506512178001271187430111530248019852023833053459520269432347348956019135773809200502286314411079816209792596610444009835743012161365476139638653746101954301646483239436225156001204388527170583264259792015212844544783003044796317141643577700136519569682626404547780265401426164065809502308845997891841331369454095616851307731688681164900646718221481650201506316614958643262716425286577874388365297299991080470326858719416010095665837303228826997986897274821845393172054554346640226514460980279490360136916575609735722726651552008924718129029571667101734655313930091276710112915402498759547123004122515000945086542024903085571812674726635023088281748201357393552393403401093485593152782507497521754533637331777722275799151422609099079979356099934694396625260379680059203805930007328596735496635889352393984834161026880813019097394490305752755722154184514568588256940201536774841700619635378710748958721595334780599605146581825241629546201722013278468028193545218994087451268866312182727503010917517727283573668843248417883757590343930270851487442226751332139855382429568541191351486987036288640994800670040961500833731356931020628542419906783517565562774124311767352475927335129349654787953774237815698832864042449702539856989877000184728816249367975891988628759063196680770171957977145528945333475863620577767717832253432715344774448081258676544786385881521254022599141255083706487110217720999018395532381255004572673289852398233528489953137785064698138857568087048664833198097317382274322902905297764681363481812725800638341023441253162331022845471935322192279947617149390207629058732760116347492844952115702915851522217950152809898581419972721537214400045059050061597688382879604461096705776021508326684858876810109926686769535309915753820574510670531507234536780496149802388769478058584083305479533459002396756348431491166556780929111683091407858618210298236600392026292033437828222887968929574855422358589588159480419787341799280728184329345412728347518639398831737804533313621249093331462704295608983103106313600872716919517273342384180657415824885092911180515142815134839795113981870387009739499788933203543512910094367038888329406375735207167310442966556049371832451635943099852401684828883464558616656817810602908835175963576420797920571442324873564107058796340420388400192086929915097479116442365093695279555370286035494332034713562275116047883294051926083110588622973951948188345828476765809735173869060682902944550512086960503711166453171348230104771326411911804466363003506858855793521758126067106288065643525568690160483247641262533250248292412038208174964810387219669482473154253170453993818449419885134865478586020309431239734138250016428527954443473171992477369786751439442797431251716211631708330607517533588003593442717646461556708044743068818662139896402925820091245214201256336819553476264244217924974168809721073590718839805307828867438727489090788548365336672299308071515196189125187395821783877069998147243896443218475996700394353028281896508198645948768079319127571219015774636626367311645904081799770771342032147204695098197491444766110670059507801082574763111755086735805663515056658914292259918785934747133576327908987635114776078195017065585606361610955973414917111559296572503558778065410822920736253458081425108195073965618669969429554425726109663018014272119747522748368818321175159708684385849179812092042780878693782728961560224206194521228664517291504182405918836896167164978319201529142516337972112124248970561019764775345362960493336564015719725424167325675805149992722921497901245392107786681907177485778111659322870453485284810237442925926991899983381505905062094253353090386787005872837586870439458244648531891473369971408501278320551947698650532009724024260183284196489211939577029170536897715619569337223000497962377930774327624980723565447426751563214461621203164194861292199586326863200293157107290936162150723984659842463377694698173050932030215831454060682472890345383919764660346223413481743299064627449149834516003265371792942436765586408918261315442911937616938897041968473328548342625007520860363846893825101454767724419927892624586124050873966546160917864796844189056620569856013871416693383698763955730822060760783415644563307195966032227136825779777107681120023899207660401504268902354033644290265322869266265429146402213295152202598955414661284651692252949101539481901601665017103471441157973476799529402251723650035898996894078635828513212584988625521519970606651277934678874972651830744150144500956155099672858091830125478214693867159148456019967701037587775515666842427452503348830146113646976317318913133076022241916992545816723936507764879352916976078600848182758754567261968161027932783456029200590525600278396670243369746872188990766803945803948224874577857516632519455313671865640453519366417964233730549082593921583921925548820916012217056041980922182701562712777423439049710577830612580685177428406768853999150034259358205306036056346783051827395089705465167606395619774627664067929027088112932736752069491246931326683828901842877537847866204598787623442502843947208414967825210404865788641050427970719363589663730331676218658991674431335980003034895938014541121869442363677939539579394358038996581745795839211177401936219382405002376910468991696037671148933570587752492772798601369407895039221364397418921622898502936778897407340295155950991752376676794818773921507432724869894125375289801532513894081510290034579339613141600943645821026163958929441272331067137077166562632058811233626583490307156278340242414252484957674799407365187907148727071127452926783909581834676382374415801786071855556228682082771782218512094250499718174343240593802569802364420129141123377234413255835268110551797783463865487534561166573268469541805613702920974218990654622092720842584884417503744329297470296484587162069463626754218798764342335950983573151316640587211165795451774547877327255061478747413922564419873619204014844476112108335506899658969153505477656137344516776662985988211807229382416951798136237504007180284865985912024155115260025926666767196901013601971662551939332800449481672646484700374539831971183966194703030242009186481649893548811782348791088278803541229351120148508851704538949317378363177906844144990614409095708690257708633994421220854709194940730808532648493408052166262781214554846339447112026851280305127844330648101028338640151056604677766787766398683278494006226307181479843602225573130733666131454020628027022702571418661196190052441261239396725861570968347624737970960142878039429473836155449319322810424068383087230373465151531728181356326471858024732971540472437382816488479892842989775879186045379745942085831314175295453003602658735277925688331197916267693286219835051638169673683641617367816921245791011781420033747599983382659669937831757793452148182730691361245225321645369596939158887810270826489302962755546234343031793085793018977198871788233396611213690798647371719046503049525740534982146994743242647762056957574630902994878765262060197658514749903285042887072621351466299675238813997151157837395641472393583668151847878422894168596146756016132518277006855234587663410013628840438853644747072089443410560331291050171138018795258351087493961692526229475809559315009904124350603963525335218131458857394849350465572902867889498999005920122488141931355648232278389775714842326172479812960909359406563048494319750960049646179603519667477082541966037896285848315498795962419051248818678667937415466695328478808532860255589000332244303081360345844865627938231797578098355006258718651485361106845079453178282224138824868428144825893369493454348766174253064601300832693275018024922738718730911398455324375881373216906167405949588709720023951478512484898808998858881249176924892886508925896984040890827000730165544947796520957293748270206519535172212231913327592325769842012750287796831956123193014952601895342013583444805260453398667223833403523381389330347813561941440063755958174724093276967752107099910295722320320092153849350768162097895368515848107411689199914691574082569136042294129699501959154174689291813408932740428830635578511249806547455607805518665756428238833050438615717820185774714681233036157814838883972248553573357437262033370971190073370680247533072623956684156314251815475890935238006777844377363519845906833532237448963387670392754205533884232776229856392953471259712273466885189734182573384419268556615256445489063765480735267718147702379045200783222177732516950945694029224788048883928183224751104445598744517417957869300619945467882814917999335426877351050850581317401646418831657010583347372580920708335565261057723415612571897888730486266488934556318029674544348052805722986114129983418540492971572164147028902161745617096099120402877255124957244861141406469900406614572361359106628093616528862156090416606583825705224211918788903842412768976261298347785985684258058873268777641337380844303132307748951046797214934236618501497149199707590855122694231794773114945388468375457811293164479864857588760707181856161851058546183392228445555551973446157178674362667807692486116512475490890157341717549490615980426356433079963112703376740137169333710406795677953535428349124729895484875150922957031423592780386849580771530042923047715605000795536077263794643032827427468929591290267507334248281751367227172916008104938758574117265545268494590574399107476108345387346067313043403982764506782561712620687232281093682108092261048355113887737257169310965244050507249787233095529601447790350243728364417232851443713470757962045500109159812795069655843866370232770025939091675839493568315793342824792986389536862664149841088593611997005645286202077716890445458841344047619143416815026728284961350831527779672044680047003205067136656501687476400617064440918996971371369498065411158247685880300723083481961537565573806484398308258964151020601335457236228728476710471752047323769493416713710671287110476465549314343039471599449073461460313215159778540070637900790888924703923351763873308792977600918700300845293750542234812035066373113596716491800794213018640663190482806710193632371665735900892243228642349719898925530803962913865128892710852913372246149250516825741705053904367336202179772037740936239259839671052199822564102386036419123383479583937220126098665428933213280890710287438186303253835384122252129694446700119688703649669600391919992334391121825720952348823791565416515628764000218291040745158570164190979004380944142445427113992798802480179965886989826323199253347871868748342815373297962767329036028664633167233462167557312312961362135359413848395424262412732893634847957063936607687368679905967220875616046030407484994296455430222148058501675657260744164445341149396897274807459218827707707130419602421113469833253786243448677826695645218309978928964083835194974324846490767395312996520446896738859408920683311360379754309334778077223802794337075040719168701249558337697341522222942359273157568008625549793919080437707546421592102665430010623232500291200960572641946234548785087454375097990868669792586337578132858942226417143603079415907084833939055101059603075465602040542608752379553920640323530139481596624541715374845964029217954318224742585700962182049799420210178260775702284409265298905014877275122977236910738093517617017271510473891656176774631976286806268461468287760007101355446665675032733177187332576246918261178106873346176518299327848263314314963999887258923599611903540624800138111026828773507297910711805445167616236551096030603761016013319900283415786441906519232848533751394583012744626395954794841183595400566289583891071831311528404877798347679599824220633663370762256606859900324683828751538248126980254872149770631517151034170239985211165254216063990720941924577620507277781166794645740616116737392567464411381822706475400724412192397951967595483671200865184427939961507958879600176229516724129418985563996076370960999228852251062163461071896537763054531555029397996332621271158141903514565413597342397982522011880067720404956847656602256166065749636652653175067130113401122126491762616283084790387421434998022573629574914317608865610143378649470348615859125988450894282562281525080503928931063721457832854054082040281626351603251530482490796995823321796343919118428512369898115553843045940307831664062614086824818176268206801584133886532593247506716013442714677207212504664065167692583312933219380344313730146440230487791252009851181144348068852222395648343315561090221092497670605754307406958619645211316186008471529373646578058777794092182888181235284428589607237911306684188500724130212968080782138923442413481204836682422605349694903728728943900475714651686909494564706159173892153744434368971114644206340217904735513593988929659872318945685864145242883319265620189074427521968487674237426889125747126496328044594128997545674592728692795060727637732432816959895729644664714823771310801950906025220177954772762964202047926021123159841225762131034489247555899861818144989800861938663954427817009616228199942476448238698402127943184414077991452298134091266908500595108598759809357192658702500739566630129872908747217364874228433955031301518878884830825673688566871661264986159179520621441685931867992771480202653561379373347518407040241794483684197451375739922061191062735022346747204459008603065545308797658775951356135321929034391284167414492189784903743544643073704047794973765942063531580997306386467698878717865384516654290119094257359835427175992766371444814865476360379955429156612308119966332240451476556670646743972106388106314795870069986363038983366038798506025008301382525261313904344458191397525889277490912521126808169667651765927381175490000902478653020979470818456129023472093046997218588079286917314575587246968257175792213860383320693092595877270475781506852770325268070479012429509815811328799819103659593187026188374830926182805652188730293064395497488904054196359846778162034086074747486867859649886842489005746672946661595816760311106237519751398072454488507342279565595489970446732817090564114062291971741568659962070986929999222340416772209878149547969209699003969460397132452979031149233657567003393556968207051661999110010613105118815995186599105067418940895589691745077256250934083466774999941216537727543826355571538518305228805180969662551148344055800756135627286959472678376871792675108619114997219945474585532761636613806095882691210723789840393291255875043322390192747160843413068293717725235281972587474432764568327340252473624295153128634566808264046078314109938562763397678972272934856186042161828467643941755909138291126525211478269682279561690183436944246213883852928256492056583728619042341353576744915423983335585934113693734697018737088596221701253655126583839263834222948721503628499919241336772597551468993181736305850536278985633666318135640475484445036987352947576823652641370974710674076618025957521963123601248510724140474164787381535672690335194604436342924815760826739838777728684543282873209460513262864225009036604681945873183624248160775824550186471257788433733178229413817736090033081281321371289848259577000255739818807580611646246112132048033300524029404423587560089962347636082702734443530803703445947462603927859419422526281674491584323315153248887677754601190658323366468648273325430498502984475650346311779833043619576224250945396438152174290812595876429410653410359033872478817944717278425029095014016572204928589572867170613868104957186807387206281248509084822855272319852514761049160013559158031135800246000039367327351628108395432588696203506931588844772009228823774141974804265479801909165914710911563451492822692936425228704387300673378008889083310329765071455863197995157273082100073301962455700481980524352603723124457748268592549790253147404888580008058468270491462906589848811778542928877124138934840792846972347826670469078988046184728972196942502521048254693477561773570193953386865976363408126133807810760133600285343448969546788586920285944432635546932812933812545651582413176628197550634017820297415666204242049844497813441076308622001541772829762050339451047652534260240709202462762794512220095077079703215511121874740511131911062909163383940559008588178476016390332389559509720576184574156334667393706174348319600205784453485276753568334663350231412915787735995576170298284480101866441935399107318719516600471528789084672996438898761013781531933860343533905278067886783001798474968320238334753169362673538927381914759473375051369726033339089211337173627420045754967229559668319605020835509208707561741932487498364756200196510877749504037604272648022150103091434743629776578662745782043023908135074599996744327559945805771929709052274776318097703655693263413263572267661919302868203354310652707424939313967098640674776014884235763630364454986330407758803562165482812083541701565759590798507715940478509799882701748225659961352923832677931863542492285542369666308259205072261751051282954942827006314913015503220198653120827593344998951155016627222153808851289885933485499493877348302799980611822388185672501416938944589993378651035194012805960784658638699878183409882305975034403089999349883533556451218457142656797289582554299907705604174698049350338053567625341874341659215471059691760126538307195589276033810303609816128927948531577527685325053485651143575597135696658567120763123103381009702415970690874367766240336134393126448606547955261375848735535415616026706364966576824370848204321987333196548746734791865798669741523504967387785844495976484274612703687804529653252445345637459884887553700934139878214627066618264455042186415341796336346428562212947411580475616187092098505424683321011017537098020698523968834832894746248029496439937538463414724257062831048038410476520868223468532482403009905484415650543521543715066254334407453861406713298936086191287039015748106770629294525908874620144466405125087278867165333898447951253304305349614682660320189355175805698262797706754136883451955729436308133063147908418742298477568926393987689789510783025408089285922261825105317049648666658006944382003533372667726258200598408226855781507441075200774092201458859134892041519733508008711248439371409694399451526030272551457673364638889407293778074187756644664776713120259865160270211727936360198053429617003172256855795398330127745308352760837156344842391749094016892866378307290372391196479540963325310821593998875728333369811074501720919175558370806697675735430301477400877139511759956314947557201270864549905755325093095974442456889608468351269896920430303217824565569853859693336620382656823746546433431441182875678952023292439859334233988567513401019135077932992391882231123812995318529643172924312614855459059804010680483793999804314642376242255672396301183608863799209373993674173498194882791039877223781323885319165284304962543949433633838394887239553593340761056037892577041196253089062925350039453403133844826200647560299581567662197190539794206027583291063473031776858827653076627756515280065274659596363067287523873798786137644253931540781559931171163563275566239288501256050720818131366142859713298410352970744747503324430811035568783617693767703682483858397739968695447737763206610912333197731491057218547938378930656775301345823999920493162856188737720669121898255685064897888063485137003783550011645102108219202363078963483698281787457859293069039039826904530846754275387785222263057347898137069460477367943678032648474533687082175978775041725559765774966861422978357335480153917394935183330460613741040745818525295712833458398730918608099793777354586180298347340904723560153505704499781974891022684742773665368683359071100060779112108032872046014759802204246851753310746603140339555470811353258406689926764719916436908855225111369853723772381664433499208083261335183432597837105657687339457350809970574676291849011652666210692284979220895530602079580472491472143021664988474192605466809284237341584563135593707168324360691375949118554108836088529147140734907004704933980576636666947060345354096220762220422511291483932842853568465276945303825252777442248392155029261619042452431216094014169636123699963623703726658435007119897735322323826181757771987152026986427170735523794392326923864513776527735492709695549552682321391829067505268786606745557709394696397904113603890236003158948977663872820523760224896950035548951492844984224898905762459556930213138392941127754032757739650743589245630071186308897472168502511304040539657061405275031402871289885587503916647583434898210484301663792120870617949503671311267362141375839329272481460781639130864179797368997299164698180320358795497045189621840690501796912527740026838177097875549714719602464007155844274398535947890291122037513738644569825396669224419772814262595272106744692368558262461375311147895749199773319139271734848449128346278456714978645247332407826911054466363357656817128897573103509201489560828431308672277045181718349067446296826033924418691468841732833657144912942280115126479758616249789578237280532421275174371775363101713836878386815870344864713373158871789202567464008840616456802063642519893564299685099179090118281817432784401627992902506984421763975055058855049443887982452040772499173116210404955943753055649337488184107374563427148327245123291309450043310115617482407821990314559374162329692638410001432069082668584188312852730179973576891497495843713657354338750758426976959999120631760265654554794843733968965712764131774256184835651552346173517096016390419729498750099290812730302260061400135152547411239913619556858881663343988978037700737738840138236537531355123383218508771168659567701171634299205762444836073090294714709346199139599309932201632096213718224799998354151808688360548995047354516330928164883162891301887297009732859977254053040416661552626765784751538998161347085149370244689848891016650761388546929562948257013624940328473177939397531542097471618171741693763797116672313602839411482869631096685073475099590263308745383749549983675212847800566775044899099906239813938593384187781659483060907239850854640283096532007942286092539997479372243537868301017219564132073200242754053999411538971192220843094448937927739115564132281022703184556359585813678749348574655046053029259755358074575024552446415974791768530664008062836730680268857804434983592110643095630073310879167131428936754908477304130273395691788320694025932467715073980369072761800581093788536696447258020051977535701147445174009704124674908097948103418904736285350474117240396254590470004205474220322035782497877216751956846379740592096364289052425939043602558450189829036624518732566591070380961449814242422864579830475960433502214161973076941218971309938974376572350643924882035899424509299832491673947121287498984230648896192095043155073509022536288583479503238991207815932350451608480744029219800086814985590263637606063641246241557273789005417759187889257490623323655584939573273995690287749173817885525894890484008553819227475770525535104019660566198421514141663129824394758267708766002539339392295369358190544710787872472494101635532317597856599872486910755131294965153738677683628474566543283445679000894568907064851966681566739856416340926171521967982708215142083113406888313066531479576553285295964024147909035143944161968565891613629088225536094164545007608955913288731418333328262339537481402955419061935703739158331123494823308333872018721882361605122549909866943524873205957742641477938556400543734739298885449685839460450487600426236973305529640069841357613158783925107071243542945013486632080223125194362747449956491567451921327067692791662680374924314054667571077252523047670918274430675830365878477309381027590509119149772901129782605475851292567193066321464577823416095824694060573587022694711457751956061611743448131029333537109844929191435592943572405684732261330432292418782227856641233847640103324289155400449607951755695248363069625375669645544235819582417258124089211908928067788216871501078349185321866490951738553011344011149969577870452134277958904770987476182841061261102706642853336226339281128501196230504840833288603669181552899327314792678562487059061387092779874827125994552584964609475484029513934269566399993012275263095077465019745536828410739212373551156953087807658340512215939885299111015957067536674748327220784050888046632288678118526232236704372145417596859996842442102330710660733384213431705981332158141313392889099351424158662095906494924525605921959069372413027789529346257992865153104766968313686311615968050721585289729793711689671943652053892307808104189156286915923575204587537184786851282306253646191018638285355682826214132360930304535748460170449774824150087904702145826972929511602381196473139085755015130725774455639266635206695271621532110557202466354520692639048898910392679761021599565684918467247000443138296040101208626710390466496285994415670415739517796079850375169734650699779486223095605502213896020148240535114642006732486073974972825283255524276544986257462268475136360552817805033765029331681267480850421719459890769890041615510633005603879572782012902314079606361537510599988876685202148839850133000936404212952027191912460792010525880689353230765851992716246296117577527102263872487930959361920191690362137898327383271441593488554132069947007800535239572086091915429832510852005772143813975579535863136393396308247787361182252650688529893767469464096240807505030721900091872804804105594031386927339776623737327246104163743766281013327867667046601901103011396150872088342822809932464885769011258397029658353630676415604432137816995470981092916066287590849402932154290756743042906111948373763944311446021341188090276666155827864939877809410321574332711878815725226317653161942853748467709112117730174777155436037430897936597834229379271519174490787681682077456367745825966008893820121655345792990264979445942102891843752554104608069870588832967942732821018656638634808083717569475629036569364341021385181982856914888583279909489305691119754114317142545606763551072975513021201128813626097550756713474355232336818640525838328842992645070530321575873442802472364165361693465256489836388274452940685632531823391317048511883112538552560695347852125109446867854436505641103648814883531624254219151227666166955712473231208969163625294008538286995036773530738713273596802090357652356909683607836044059753090496356746452930086339555603831661838665799601461892302541959085778282367807966187442791576948358399131674641480297780634043681411217646800126507442782726621041692017070141128133588401482340721221190825058170031813702823031857382000888898342780487518648455327356168403085078444786451159826135554228726471299283886405461364646578372314752855788476637160990085447682671593119126328367908295731357811644235178886728846910627021278974854291263616778948055393690194697542088615287763598749211670850158811314949116584044034984486918189614162102594973476646812839884587078492327609266042606487547631679616988862717331810666704927785114914639292224302633004292496068018537003611326127844986849712335519686619275602506613258686249056909984451505055532977802558125603691792921145685690102044405533116210204316808163276686297353004476604903136917574553731624381447986108863709648723207046896560945252848632551335798564940174318021529393903567108834259217619623847880247972525954240073340237916204183730713069932193740897087493806589387929942465035700707375311820678019497155039471406668773594111677088657675080085889182177030622628602139706034223608416287613927994803899374716788285940212462993472835253493488824267634549585857333730961878790063251606768109894098523991598390806369178629736788356553969529507267327985252923154571827487797617047108767081538369898012354117209944496765582556585739872524252945973745841427758561088582229434014977222478174809396828082142103509152033529187887670763726160170029864381587923404581497082491528155820225036461214594235516454656813203859712867776934510677642779433593150325175474096225572963643892312756956883559657410100829538154921260975093611482624309409678688151872746502553290605744380411904061184773090287709148312834251405725652719010022659195454905911455944369891187370486964904700960765610271242527672665528765955176386621927467210426381556855958985662422197424376450009479406713643374558459063533425778799962037816698300963341136854447375473456864687691430992018664495288062860994539139834272102942187943213704485880982975680328792740716176532365339963156191062607397897431632536196703911730759159504683815469066971072022669628944614821009963722686951150185119071869700952993478858648864639040388145876984405750866794937272537122490426789086324572687855030375834702625316518066809628956587328995998966308297371787529520611363018687492639904214274841867389610410657492791732931183951820464515355438038624688927754569829965312842228487379038038755082748367331731359086285163128434520075439997493139320967445582269208076731022174932401473817620688255885255075135109093206885555334316443326610392321608827526360788477786093217785551554418593594669500574649627597961820303189974973432517347145915181107437359544920691619987057702785178057200610001044102554044718865651138523543607553198253004170849140919635865949992131576270460646945701290194248764823788689050585158464116169880739284598381838065144266460291560147890316050559919512559417071862347676252259467710823126950067303686789858209430231886535461080790058602424220201241369076273594129049922457044218247943415159715788350731281465983624190183170079078587547311682619975363774460466530803360256970189505018280328545934130608758244306985861804194335641503763454666405327121284619376223110533251534030043732264376210051167978077532924171157389014611455730522400844197735470282218463803671519706330050078271763733947599273050653278802166328955133919667426077577556782562056344947621977105328736445550711962317587326719636848572560234247391543989992799549259286859236715423088303459096365954924108653081525743788095613322982868682936177816703347056612457028769159773576875020000569538222886870653907051721488429554707340407568029431643389856599140474168411586814897164345695851674626883979429326356141292278833448703401624602732477175744186681528263945279661595984897161792306288084193432772329830810502931708284272404418515356017422342157892834886819230718458157082746324620412378626877114519458688673994579386227948913658049654953775508992770191187794355705512049674893546514817990983689692040468458285383540658631799181440678247171955526340305011684294791952525585809390467407599136509180756434147122274576032126994573176359200567972508486740610239932227567733969204853513402855234189912247608407416198425240010021974154434803985768448529270266502096602908855359605448053609536055925370087603417535627118562903067298696734850642310694684812810684566866567487819403192417033975275463309338495002952284432635648159978399365313558842504923692075092541727364935388163169771991258297454576557628087222863739183852316737455079257695890869794933604471554774809738184516364059417113942757355953067811898905342210014752128160835813048275961319009036455161541450522752514025426963702610110172724163300821594323966421786129864368350213401165837209630556406327229066797659447264144875674528454086090382183558077964692159216613106667714661103386526202139137821319221798900622045915819319972588226760924727389025676626814636863468203015784900277053279364953854915156237383579027641034458312229236303519254341789258025531966741014293305827972119295944094300231078251296475684096798535320766954922051172889008315241368167178883090524864166646911331788798586731324595526314638278154229749947383675550359598186488492632615256098197377610053930050296660087034401865619296111957899740080450378410644878764501316936217171049940523920414956853891745779117568175531994513759740475019251019555662899047450910075665355367598660759046304147071151029366796083383984407241920815911317206827599471235748312368637669828543202098241439434045179372693277358871293435489138888277188457890334429018011652083862468573917599240602328410138787359304988496862121992915117282609596915253835836555875548278109587586279716870473603443173520584786475099346445969802083616730398522268107441097513734159415959273801100152201097421109272403478078642678599307573136564505609777882195697510457328459875019992260852359216976303234959302916178495088789662511153332313802854131306868859984704430537080004311352271953724011897001264412434154046398982203667892614941506629150655483602944629946044003079723662477768393356607942048255916322809150698345218132241172786131295948964839100819879462769652181894393741803016662144806085427811224200157353545124136692000519591804172809658747229811442304368893447024932537317408491854895435424681708889759512625414995069556112688953653390481393231701694260433607913402150140462397943861610264441889971805018672029068482491887080162078941505926813692213586449975626529264663490590345546106640732875832049865901186929145764042217640615224570284563373364749334270369881663097283559190858649077382542908802044109151209290258369950708909827203988805719084807744437948129026336122056322282168693965093249868161210606445186846876335761907064390374602715802293226383013157382024567582670875064052328610277326323122330424912466547687406882774583651950092965430341950065477560005508666553620945854749208697943104325838303783767869726885724626977850100219254008021864169760910383171718887974735009342833904541609381350995727887337345571496803696553181303379479350093207027947747708837204520623978721653074333133950136434134370268230016976763533152694035863140972308815124334202338111289230326956005619472377848509222984784293102932095853540817415108290862469188482353511650015098957238456187709909863449895643203609854000771457394613398044181481589592450920586618997726003028079915548032776847881051568494933889030961690328115813637261407459713351852803772260347880995136429581764015722940731499445839688314346891965982174527919803270181678076390266792252040964473667324173169978136763092676511381732243249358314513546106507127137127086197370567436886251773246709485275805950231303457002024375180021857220955620173862363157807062267636465392580269978637287960608099524089418308284997311041737592436435208284462865566777071078058542444500852306906374697562472008362773525819370451913849612991139323666402857406768078490357593288767832333411601559424806727342457307933279422328731319579287235723784068221501800558646527213587336301135747456775082131699416089893794891799000484893517804629755124782360928749285812551756027336451197331902065576963722634896322971966640501541134355992438837668608588572514690178273821385885428972886591341925441467500836264220449610639902603185594056093347667340521345379801680708630405469367778236419993367551818930235474439366997916486928523223128406844640354301845686128814235146574224923542119117900111173553092131813871191379829205474224644570561487904657118156652264259168210244639683989172838833629163540596314094209142140222274061992234901891560055216250641316373989982510996146841811382629692543915983856449197105904795115589548701037938475133589057321213995615924345587085898429981448202776345168984916446665475155880841716746906044079072670196736243823391437154487380507244358526074415791007632693206366463052323793234187423396023303726900338637182252064193986643443615744786514101066620500837315904129370646334385228475116002894353726048285836486449175767195278355240521411493179219573859289791749738540250768655440423087472608646150717191883576422546426347009027272689414492221034820247440348980595272486183937890182022803290232786082581723830690909526352062704621783042311767776271781893106754571951758318147822507887827624714611252551871654924750392143304340105932634784000894116951115630265163316859508794008400995369617003518863549582415625298551017619322883590305048293004093317621827412634450510392614184668030917350674956211819138442825560963101728367252074192397988634563631452808448636808376439084063349589903226006476455039003602208209407889792961442873579673773174112817455852044428614654819986110632083640718922128052658046385560749482688910269990302549659072251364091566222395989794723236625923984514197326125019963403808265426488213052915692830848041474332856906363983322597594959550093938919041531419099449337251491912282152317325416724415882148682245327578131395037503059196657410132015285647525893618931187019832398221915952513119292940977581774791781413239854764939759519938525489376742345131355698146577991603441639554960283672786581295177010393581809372173353973298683545265411825762918585086129282985898202074862365696196328215863292303172244065146413279937322778613240781383656196119289556855578998658676717812769161784103265903854645926896529417279659835950271462706055967225490992601085181303148432331528309970743129803358680682005197804349565048696432789482200833139380861260309177702738456092337551039214454156060588294698500168740224546901040024191393096946428307905540841151090048397423360134479133033746372699334336991061951042537455728978727936640083163930814566858296321445619231494426076804706768032835272432270306413658286656795385736355102370805200465359576201459101101858357118176710021665759470337291223193670138006103874045238778840661878970536785953469219258539077411372950469984097577841456460411342614280798104350630216743344086123348218489990448394935391379465261690792846398321121815531558939987283993746969648204384465956246678016796397743491527548417741642478497217144348437779914398630727556912379790217179278538889857571186873063659985653941980901833554710402802859758646882532391977173130564715858452098068434921249949448697735414662346561719617291772379479385512175848436634562781279331440082349350247920307131991248479206353758975956497125835399865804924643292210939296218388082477734509856744370018305944799772629068769229012884415659479897342018339008621711880104310702013992445590926601102766904720933656694877444289447167110983533033591638020410102555597768958405087349330373452651442111270287227553877345675828153261934498567484428253774008626442431854944763894540821473634089616641879289633808894122517717933572126805741608650119057997531075206684002450122648226174201416764454213124620041698902363368639738842968287443362972664182227395562434497310546125057399202391840395415563877649523410609759713790819201112505383225991469492894842682117848096120217124100462403577684740480814955731946167422600149121090329808475149388802158282688306817425867743833114409584418668457501274660169621362231650313054110154541576438599168455890600952095167646818983770277958722233961433337382260363057378817612325147098801226064435952314524360032511846157294131225334480282043690542559677419005814062116597593897342325204022692273930196271613470636468038953859530636681551842229610166691466242826470711150410493686656566611818440186953120132370848675706996060420547157104095099535557634654506901568523492564011610327983618797233891176506468237516632868680343175103415737337996124535865139498911565461214218597386030697960732288649295500739957809809799129484775069025526367018595910970938569328998238779423274335826671751548310410908709766306869670214506930150144484882430992980960046451653421774505474940236198855337820088173422291095540960590636423010801790851759966643344942382672034282508348907955416303900378300195762299801803385648591708492585800589976987856160058429618432270980167097513812748050802969160471374396371379513287893559974457130670485477082622371034603306908809906184687452141856297591387926630704767872759544349692682948383622457064293232620601800266121073536287147813267406939478339687997303169698971377143865027601757174119044440289943248259947255276545635049050955295708851513418238863228140501773377826323587691139661242558491732745268411856514466255703233848530554344135394055784882307558289556456609651114060095570480270621402580675869798406601030262947163810967521345539105411663703528466665317518118725363135363393211740445268320014969696999736401115163037951375589048435437126719966429075109062696540660201978677276239707222552875722983263641548411732619974285538488030841042268844565367746781017657919559894153588861858490272760275515401001289354753498536144622015146187177019347439800153756777427906477410207247178924386742578694363253721644783781060106937223240751359486828969693494398571990110548002005008316404235349348932007284879219077869449522013844577601468519321416949787827393879904681968655724530962997935740002295272487505229629513637146769510928653334203584188083854808544254706363548354895297176505258332850608322649058042983720269996304437575914478015271571454971796561197656378980497542748161788861231221100470513057768105786061640847158729279246587012286677358549640845528197002953227188941916189797822520496011760474523605371267999274310275403563188494119768871001137413863914776611689877919722530832045470540950623320613685305172786113195691085475871877820810843734174200253827350394064643665637201713368602002178367291913085303597196054896408497744363211566603963513999038084285275363409861917522929955963878303770305777534135868567676344183105162469299258769031678095451324294049529457873872536603308556998623989415288459474246660802078601511543846693070360776044605225407560545435536398465164117670104063179375734551995982008467319141166204373563389035809689842352174584059320476651318385354189689484696225067834750623223087360773112708856215394249011359367217196623117276876189350501066155238746348235026690919509163558710246371246828152505322130430014719101554403608942054498522138794254242113592848674958924241241658749997466322138972135619277607519374734459862012421157814113724639319846027922064730415757825990089876120205014477679808698201792423811007596759921034602003074515842284666782990407361918441764916831281884387458045287960667409204708903056582065577158880367559778821931354737719949769901533353669140599808468298693565090129885874520685162485778401234645728649054932197152583461224549524993186216815328662303512745298277442249064393698761716305720511102799400646212189781971445301945482261584681684160312260179628525036117010259149523619749677045719698257573256328257811929445653915892661636612075675151024007838651734646993788039391289561242760777670214685700715717103267699931961502865118976494457877933472731771700045351090949950751602312066826185050135774259639857470798945114100394110336413811600220087680214983708321252572649021398562256810503122263746102636132095082451383941971620358466599611529907330754252035167026095496131103426948746127734882497105505055182818547672385931521560485743820332378288870812031737747361453275899686176754064220218318967574763309092909445229476274008965737982800956949185899281564323079373640424606459694759074342320063931084989023842446331668888848899445030150057051173568366705558732634148281800520341769265424786823872889888509062741653422726856140170584366975993491587638736373653644632163635943124005265190157563190201625066974417837435320755010526979030694217201104989243039803631599390987343381068973116728800710614569546413778911468687182527539501478183844832369513548996207371118175334230377510961147919664812487004321842515639944821190182716845148911594990392720160149129352906167491231561705310143576125918462942824251073092617210896025124729428359871763364175449908185389543200566987656410475786759161859492571118861671749383145771619014338724443924375764456934031681716318268520415479585764546547472373036198877806250133463539497495982011584552641305313959450734969350915400471248111269073563762778013708556460969184624858867555415043556967345388002079095043638462474699749623780883456721315433208849365737774930683206136003929533644735233258954707161797713997070839073179828768589350586369652205078886378512870610371133845600903757092433761195506058575310114726728392103393430269200819462159052330768998191041532749100096604148468482356019579262044712561306914221307895727970054472561671769517066720387497892431974746494879508787261818071901950972224737260080604671685817676848914226530268774147495631356688175082690894055024514647047844321771590324316004220310055202431718908685717946063534590325706388462987070560915526773908149179912575080921786254235207092624581699438188654858757175573182416293445328982245491207271752586627350761813380030971960677379030349543477714720123825408515245191207563603000253078619257283982780264873271918079025946623285498237977590738357850980934456393598988796640048203720182975967421393191738789874318435230113217165684077452513848255141041212763911244680538008045498018310218671077003269258508770200644950650447925688189015662684342146821678704720528363522127198397068777766703233562125251011914469709854901770188251788396644860598142275276193416268783358306353783766072023346025567681000792976440174895432659585182746095001538348794855614676708173047437889676108115420711944051593200202985182084335309614411403474445204992791737885056007146000836694871052309224319643178990182914081840398617536692931507433027098974927336761252829417135640884668197242222793917162094999424018886124882071981377361840218555036370923354310164644784404176223927001835694989710015611344010375339651536522313022362172144750745442433506385810626201313792787142825366177087344007069565792140104517524003101906202651122079068143903798547600069797603189483833983693192372555989869198103308814641390629433948702182687501747062971643392468399917324112792803888526529447522516522601929797900458524893259333918068116895474767804549013517318658741159554004874690901066541147375358911332524702787101854082277362098560706721045077916454164016796359485529315202122162458123906229493636354090289911232364453825047311478574662240332633837332466432977146378964688227677950281926241907303273367748537627594330132980550235693651487680076216005423684159064915310101091062749889322763999908604507643084516675336296393484700504344338821886384645136735601066707486581463599091040237826471904448343923136181683597600224669806732524068164471944562287567022573554574161020268711585550675526835745127013035937901599501739318857805825233125384612673440979316739659650713760865763614551886185645718385298043646229707738840855676011728942092536581315736453080274218741530344693978360997254278155688766190591162940192601335203503126989160242325422429665667663689843534916895974126529799001263290499253868182986836266212160549560083999592124934088651142916900701672685862994717353946047008544056261504496197866853771013157115847339460557557266267739809384406125483369232485147859578658068079679442309651524605379586871521813286640373318861615536869564677943320631419749944306883322812976752053621770258305127842868789196223941347500766293263559122919095567304162408757327045227777150387354106636947627262328485986043532378900060368919419392868635129348790647922013752538295143709121279948688396415827006023708455566560420106002718111635989917225658909274914039723969018362634693411277205153637818663731352086018704058591376987807725426462580340109680384993641979759978526285680393175563075021300357750730877578200024515880886109459526818216657292083981713919777302136300678218860737549938652539628771925291565461967945042963168245324688566586543422796075660929258701565079276259808837161698306783469261644571104141871381946061990844017168941587543637265705759063434347759328906503137212461064559205837199593015875048839821193536953322629168189387327249166633539904342181725829421727619965503315451540542192255802239468971021239054646176198653569152018445739505536637079112562122382287597729784210261106521894677148648083402216535621067682093228349846997358717929791165651938217572079783622301095206787911159424769850184312243575470783748222576677287945595835243504016725636624502851181396242298981327163328545823333517774901062306766204658380460968792243979206307298370008448205934046126029731848371968065354785795575653298414226628835103116202256656495834289187811674151960876578292635923852436634491417796742355756626331615162535302847882956749385064085235555553268068429625891825293839076719608448504649777148188746620585891239865835309494409512908872062227812471185565752735081891071938934561492749857704150218380093711961108201861678835434212826862610359553367960187400793191889621311086940167993201801317422413755187386558061835984271193806395982100304582881760160465852493781153793024541004807341085722538996675847242726915843220615499810099573873185937887125210048347769966650221447687757252401897737565745691780046875146762400096119162157416058531962730456129165127868407977896607384071504170249859294904475941156852654185323355969088130797072715837738951284036359968104663424050155756375817868191354010912987968289475391841008389380081006922420749685727065508597958905010469641773261594417207831449820339169573040425248553577208282605479211403967838492992643043816796619497780301353552887081266295428143791804031076736814826707443672439941802775858948735978527612100215010468370036400617762758517660296070999770393956225322528318627887661764172308049851330461329257115046174595866708231280260352984572294695613244464066823062548944896785390723290382343734928824484601970377877222803294292580157545323677490495229402775661178081067823965432937486909963393986692552530059887223775951169969072208415889960818369054192887133389750786756140908159368633507938230305685740416184212297111164761363585846489519990384969855427595968546248757112698176388087054066541398351706923433257342162341981568412659849930261727091405472480789159682525562723310607890374290571140695087863993541625470415883610584980744587956959059425569441523724914084380038234472981137036066313236156474748436323272384334697889043212037927622712920868962332735934648306328546779404363933952268248732235752935984170930657435550310561449786936505304333710161179839790272109214859986679304648559725279178467773956150148006205849721317507941014818195088946491306064323679010598040206753755603877248310372180455068896184692989694457603388320793468760600671442858118591182603299679774391066862996081436072518739848235343062691830053301990691164685256749836475362188393585361747801551690483883518708309047708443391364036289944294001037246991560070934535694889550147344735469863645242214583450116565735863303843854217889129380343519917044459269672756120667546485211400185182589958139166191673922126404732429169126468931419334975458583078707541688055747338305577389270225205184518946188262641061911970170651977516842142236143238599653196220502297504267550830892329052107834522503414814412898534108365268151301084839417937652841680107444522583586055085701678744017120532028170501127834578992196741975677549322619495090805840011508106578564819192938983073871540798834605917605398119472865657598651331773843791521823779562011619351904050767105199165816899296639069957180066915194665318684061413611089918322803728463418839006101686514375487428391806758625165359496857077565003861517460214052388082629765795653751210792185562783254957431114380470045397263494790544526794510724865337744546971288517903048026010986682300115390288353986282239244557145155618815378981609692778554726750625588021159745898300247555980455430949726329193044761282566569495465353915696471825669847162762924345857864656357285323124214630388056219674926908830040505179518823608805893769540902318811043183511760699090190486242507705480971611337659571123191282584683394962719812259020379828614293680528513318089461907414928651948841067796036268846110128276781925065222064385928025596695796468841273312067471707010191240187646163715770264408758503533714141593082449496031305043658486869504658783145473912697546446293015992110712392491149478123982159087439268745233006204266297802691320685897197122833233931470724255363906913417148652491991039355315289740604071798162983373502818250704376598797801631639367878570768459288774460768469456948691196132606759482387588753403265882212407861618328985308911875353836208799268249106159448734835069931891950888657705512467496499726203227490830785313378228849341526684687246743681179065191620439330865642665758693980797398910867619239684701438558112909161427892582459382930910570139984584089479598715407620974801577652247661233909960645878481478725979006539982628949928034167200894659414832549091506340056015377803626120212680494156122472629464462143758783005501107655098225036463340944001352484178354882346777545760540167078333447340353954694685702093191741074513882306647256307776697021347024467329978377847435464216675942325497500745281899481730169574943334874724829789785805403531617084687393043163080980963894781291361469102721853042146888409281149459846815570223630764710732436600297296383267535006930268400841087183347184928771889602417960215861149562927191068412776291015850528380719335530223503768013728229175558401262323707730796487819188593659018350134048393716289843967756565076468618150951029841407701725041797406797631035956693718590259777563324876968789081463904342051979933506088203458717973607653632558900000344573514332078707106515605129903073573108488293174888688905797214852398541044236009132229686452567881263337189427786725818574202833078574989276940286352568826050970703229832958373938811929336631686367804179476932667382119931444226889105407824495171435305641746630930239837132827579299159284821526042523719774251799982823826809977973160703509499180011719956690158246397679372537640104421477696058649474576703517213980907454200449022948825898199329127016723545595000678461326999348071542842561419795017792515980664731481546106963305029157994066310160806690262582665472362427834863652982481636692625191749020675471510976941289393914534208560208407116079948521029360913434355723116422353900310357794381360853421432147590111639661852657368314162618775512562256716067420755327548296316637939927872467486382470021374281839779234411265130263473488424914231062939284280122835812021238000978275972435166757578305032921955378886963900069697799333911877566022628170024477359870761767667296962076104537231207759289978417955326788696670171247873078697614660432967574815512923945630069614485972601626543046719356895559347054479847931653155680692002164688017402782894422575809586487813821112290271109209340281708478526085826606499868997374144569512515227264253047476405888965221371073542048962963579486107616242711821472349137358056718290695594915372077699142863057251325878023750441185458167060145311879330532663157538020849591172251637107260776822158827462935444984202480395212840055251172706484676368380122387130884302188909587445596078162908337070175325215999225790366470392177097686349990638911624666243696512559018645827343481623692603796841839505154525808639731288526545284218263024771962446911360863171805304557658400549096465092794835075728326848540591838130660326316068876734744843826591587883464701157952179466543229000814336020762916296690175384300610679376856916322373180999007082913403607063306569294891534416994441698863614003482540703419904343552406287560299371142333922857199198323246204816911781383962003884838318224741300145799843857345963255879264253610688166238421074333370563067283231367332459620447489268014439667381293260949488463638025668047319463455799850942337839376949104674468128236809647509418680358507410354029736615765936589987131744549233630508711027890335722862687932326562787639597386032181548939927534367179482084409687472773251133080539483390441510558636736281399158855746353372918947923336902226324495735492707379073363655820068966482352740783949724010139949727115177242722872889283160007055270644126695496884323087282393835646797772600571544096118211481710842472764607506270699928332613603210465161892286365614868168874697436718300039056835642375651146822916837954302985945188884121023919649451430578754779382158764580675177649460038118571161046265114283046662147719943896273438192500815207283182708720001871724829450325221265579970239834930526154067891757380957176174246936017353556450603347311186780234856693783928740714368470554357668508179830042358528786366863840170177131817181704236903739229665388026588250220334249847927139277718878378442048359931472911697836977317801876421043967922592026535076633196745225544959114477189709553333911737348273114530748814914627295727451154423883500527627005146378155158501611589575775736991625652173758304655777295447245570200212363335906377256915008524261682188351363014526954048016852270568448714108001081202916770446503562639160953716312339711809642674004284482998235248164524954208951147666482301421627183596372363364537633496548320371215474107550066475813405935035618948510305153939079349519292212390345290096051847865464952743179573078800837556133204799541337517107195938634994255025815756680840740284980954613749929024866874115781247921325897254933483692654574360389080442422632936197530346451378748207893143431453349432681804206842653072378563464540548036561050685873545758684682185203355497590671553543824918666037519227353843155292064148343510498599840181401969914167836852552368924793915102775480690737719977078532287967819991433139008850630147186117291999548245555951846217847585538645890517453620879714407928320209886839813596383119224157846271765950712984184506596982932581146235591553102391207780977789840084629428120655713739606422640795405571348522636791175794012337047711238854564290267258349400268856535344461386348133257896413614883458584514303140516167817836756631853883496974269498502913491964050891689277728403033830092773229178747496140952572837643270000070253758751987751320489030350485573396607177855317523708600619979384100116431755091976568651265068567144924323600620982070835095288761547877050729122342493116484014169578177674894888351746903575939875750577078281552040435062017108129346868611999904764382787002191674145338349029239328110419116986769930901680994003438810434558689769442779047344644531868914571340140231823416572298275640137947825884362815544112141918758863824040171217646614877683259748623356546994891830879021983600296100170994261509496832065874184654446220595060270044923144493210873837018067487144493954725140732869312694250560100020926479008748229024891398038992485340945123774465387183317589101316967613380285227813252553133559653797548585993171233938151596923573512384490189215483875992636384120650552947607729407934651018040685063670627740337122257584645819477478337872527640759960481655506133257774325990242904334811602555734941542076533576866566689862547568423548961460109210360665925489583662961659693208452713618665398602880260731366746599615494062547658558412080745458924648470950736185513837835039088920997043953634967091496916349494041263402751176702031126902868372871571203974721060055731197192101759971975175165640828149514420079675094650839030673758334492636115143264165957416014582926153430637488327584429244279863504283253328071568153453400114434067472726283709838706178562501324822906278763095571956931814959815992182179738545481347058848140381346432162518381497420842611993952268805747242119471730087562823076260434160929912166801522677460578466828289525616010055725088191229848689411843634329379213763372288198603165058043337909699547146210484512116381052169942357656279952200973456441061705317219306061542504291950384170316542676073097133827930395157651751785531346160762123850146744384338514699572123819197609901264611041648695268240447874205734137171318767611669747462116888268711352718619642697375313633755515470838037637731488051786924620518795332500323893660562101884610548568623198583473280747926286215494769697469319991935015740073173033327209411246150449672962617463614822702723318761599596422300722136256030741899904247076464333680215238673779860218044331561582830475966488045223170989502581861095370501793249168889257970750433040155135223248703949376071183800520804462654752249072742946679890535605876435900130347782881683592931358958747048217308413444672438697750406975013812497064957289908054172050806858289748987973865789936964814774727586313896133040557663033350711310889258213557931056372789920415387627024028580344705580868727864569649688635225828557935869917951984759627489898567463606419323624210421792261789548739967992187150099232741547581607281498547907334941660989463339235056497738342944005890606968567772387190053813004415513965279805200147159848390835385755277688865940953165661252059836132845332371827681880930660662585163683822063851589617842637481756685948803236395082183807913716574502940901293904115719675829410908041261496722712011651680216379680536394171825018197768279233151609245139573545163494840388404629732846692439270604841538451406491455438995587628169380081340162949649605074257320093476833220524823573332516626145429154843503337029876984256279031912430275526080287851189571463785566420948140402304312702096982646177497074348467955176682833572362613739886633559518425484505287469448000815046382013681345852900657532730225175804732240812421413505923390277632755361887371408509781789266388543677951997374632636747723008873734703456062281673258861213200625607114401327275990167680412401135182632213703431438839452106179980535887745766379955317360426360953783469009747611974028804653577761407801693533705695240250127314957227204041539451326743742972685033962050501416782094024091693537768477578592289600848280550667645462045509615223872078376431292062247645611659988214245403855785679385120646341815885650015333664627648045776019618653427746405051116499955471588185862811641469466074163044816662306554436830016883965285923348479805471002265915608561066648789293266752514386993644861756314106403790353131377955661748409880241650512945200610082521393685045122980593281662625127205587489236933369877621703793889679037526740746684578681353445606926551757299867123956017249320703150599015000716238339358470407802205927346114391559961788107444137619388821337246763589983273378206513737730140693167773149414855427573802072222689817444637465949609280879509960638265041667719351242693863338930545225236667196471893643653031725885617885640110051659129468278638216303327676470140673903722826331096588237092862262758154094152174280629140224772712543580836877122859015977855863068143441939932966485626894183211834540315750562565168958807901004648416429111161205320606743430367827405500418959146123496937880080298874877321438305898557737557873315094135499220418924668944177292811645805312416869237714950932061875535929262921134756434070606388365684060547008404642304631739727836164620354985623209723536422183503612160580150869853100244260039896171989423215094063079690655665787680858683268863579094137526266688340214077530735770998129102529846408247018917436342574852826538511743489740659821188573833757576500097703483028446910131303333114744810229535158028966053972815185861194022052369414738125132392404336566162838717836702597332385394096355385953121154888578178639298281303390510335742453514941208412227615197762230172112517986142285246080525983174900161198313392904138963704951661526743623389953650779680182818316472009876300539196418601417365084938095625632120886113435287742241313167459493049326028549503637170998576399489953419641424464538590128439850217244306488455934815913465122471806615149376343068371849131008116636480509217783462140878803007135677791347702229065124888520529423998501360861026726611269058415192853746872378718004046635389801967880344611347075428574998308693586090701966773512972977678778751590519866469840542498080439475390634415426461175809145914303317319553247421219541789818249189627659717494612423849216825731426909320438322467633408817833462873376875899644288596229656020007110110619473828743147761716073549225619820824120514687590191744509162741222480511019640463699173436235494748084660472831811883174249404180483398357768690629385183664397231558703764731753972579540968497112777764336887285294027342351685928609819613756686258582416722184866475896184596870843898305538312770426609970358728430956559417565353255991792510655084419732646182335839879620939543852661478407865256343736274100753607640060360220232549109607261152017961633299881023226933306310964977172511903984067662205403562221798477670978946042914019525020596063945627474924927338035941076305052406427311913815488109146713541191707836529477090185855693925959482001729776518760800947870736063043136504221969303767748357965866216545114682333216143884348643522793686328677380542865765540091728267795631240882929375324548119394688675886435387664114572108924644684946110291697229058601073943092025780059593190212698270099052710022545572656402157558835438288879627412348862939348185325464980492229513881658030750867387970616545603617492310398522783275813445734282844177069638815700450157179755835773260917577020385831479983614310903420227017416316112770346174949507176820228335240258180346874751420300977788339045866338576687814236236151425663124100506479803366609717320104295386878108278503170746230736571007221001344309665521750377156664318157649570150074856205945127011391120733634070258079938207171602855705701317245871990364510032514923399886476503760814583003093550283990820652789064112658032466791788548594333405174048802346767626408375506158929060713304790972787684498519807033361573054262535865090366970796394066975275558514660056533556382845361448396725637847284255715495928773059533246127719533497766385294155375658903720957664116700673686059118118383181062149624792417951765265608717243360547838604485991149729082760460268593521326357236423409772503812804527814364844505392290178063370159393049444140728724820484927370089200348266427229243691931059812676294267231370002482639512616197434312382775681383118699246126029054436274279872292832252343334751959189930245693545381980991553312418755337386536077060444378585316706086449429767616399731214978311905055520873071716839681887127223156051731590736268691961501900590566427218762633515420887043249404486096045256660126007559421490238476266062642574642267094169929571525144012196747960593435858252010477769243564649675735092177716921720273081368621429481212518446587738751385270013950683088392319651500729143761394916404620013448108860639530028087861712131197422255687723692134267257759121561856258154393290099342822478385658188650847097057796042842481333856477513124344934097571772788811259783570956099265578966338146482175350711221794563210583446777712862288065493070784582742159669083240242405015975420383413901915221982492800976057056413400417055928888759296540627659574169369675781894751488168474458924507973401639773866945773735973046695621777534440995535928628148268237722924974221093956354595140064700056701609182736906611196683556204723109270334790781770158114415746532709578460434967474015616632508004883431045397846559426027082608244958440903274113796556723340551401419284413898684796489964320506020589970690546583216603236338559113298169591774824919854397855118463560714050099335022675579004029363655256424235992812109037300521282318639097710541050692401134188102627996382006862824241279672383693071532574797187725914810879651824229989178675872270759691147757076998426400931073426532184014520452440137208381141345559538925894978491372977143766354307316623393027384474511344754647716004767559254651064911312278008213203177616677918450675934888184506594393003364846835029219846596201594473924152709052272881394335002738587460258088466422059045917603333931915198062470660042005461236543805113176042333765194329455651995257755422118924473385993422726126421439282459481525100185211139745144749940931337084327796250783522769479053790766128577077823214478784590965783707419327040058387999821542270334243239302598063856005700016847575580968487087404398803984938806449602159217140904693984967945456188446398911751689510517802174414850538392337667534716487664385402854361342063768612835086491785619330768208139343891725739235909088195092768386609320578537435284455262419166674659601554021517430262459323744921093129603113668090955079778791863100833652206293727152175383490523455243705593594297213242314935148759563549944130666044634248832396422988970960908774161067275438605232901983821275345652663301498998316058366881219414925834888062725165136784469453534655624171058270999754671159322948902813300360384655928820298225315525704509959131812339772146192635755458398913242141822398576039104383428573546523510078906656405836474170301481702479780090801000635359198064371070376701750299481398147500080986126683817044347176696510985597453772231953648105984035664856045231615085499349023640357557234813310305634892700233421757146479963072908424042886814292039305103610498526621023413126726797832883080837352953428596892236460157271089268323361795570466636826444717813400237312540068720523412099034339791476463939459597239386357320652995177281435653357710823717995914277025626198275111203041814889778872724533839316488072788209886624438688926430787013018210146726533936765663531698742534052931523237498002480027168335593166113942738388788466006329410846500497469996726191367216176674206422742934953077223756606886124485368008829886705659748673081901415595370434756286678945024062021526438998537680802429044038301282747346505084250990168545314909285190861573941830025160232229883088326877575622183659488545052672505348622723797242747897721241207716565592811368795257556419251467737733345408848633211273787581469251831781230154487027582675008758812254145016377154397075374291209350762232038765676144213744774807989168883418879280216583862633553883949093620397983185395363072119184481130606702379246788044752520307336792409671980003200768466586317497516170945938391741279888413785606741622134110752652954137201227356727727143135904806817359834191581898282234334330043566396453639998667379550279109276209117340815204438555086048327725756906811762161428535519105630481085480239955279094605610841659032942422461798983082542601535233286322918461211594132610270885944071080790394998196564097339912128801344221464002937916869894740353456232019949864835664476242021121619760915130758146011173565993498355415368315600665068290834106596173517449993470099877580663030552326435202099728678469448608217302267344127015462638637321181434318049225980364697121658011102670434356041611434517780567582069192883337659716730816018520434864359132542516437055346230640266085060552837646488872228449259569953848765492222457812546327876873440755768987523336258691573992425177548644129129009015117867917056223730651807313319094780837527523411622804787391621679026949138523531936467249061629932764174168542729277268403629781125793203221878227182318684291533033050772274069619116381630752688842897049152373147114564952384150613906476254931787924384039120281014929768008825390404557687636195841783843539327044145834341257746848458615474154428859847740007996290824906973467639939590039461439911930375682089168515339345391813949174621806082384393005047827658389050054695663114613955437388004826491014766221314950144130844776771283779371417041738912453049688494825198194240361902722343623653101994382909602139747201018548698787172233652153186277432689532075081453703952435450751552016304448211536264708416861631023151367393971312617367755391166186026183207729633215934558085529810533508737753527452048005564987012682688511541130041849903019758513670329942754289458086345317486438375495776559759012773136391564308083263863612498041226047768256238381147388078780394789901375540745580506026068392287465456155199657549065756130905256969307303645360699978277021338866209150164992367182382743830898495434524880458338268900781896629903712739215384620399560335509978399533040114794874696188836532382258180301987151865963305475123095017900031926626188226711852251784500551551184388986576960834911652643682477437546591512058587782521356578038881631709801772277483442059292245850082319456173334845235391329861774722209863813737558376874550448734837766113746543049360127924650558521652907372516092695854368081097990339722154520090518357199554244724275603695176527406892078198413361451500854267280288562362391482457488096727296422094664105471931449624469617085973786806773292849843614442431689627279678794548782128859785532364601509757866814519179926246001011966852293883029040218408431324070246157488078540682236229807382767662366662144627743019113911361817289246348175039256223601453694993419394924025657814956716639466709748429703536658181342285294768337727250782705672327635536388182798424798001686375165681564895585635128165529170166210799714089077804979587067479648695462113239946446585009692117681055488394916445188397746847993321953514577956495839287224883331597669873883574667018482280103728549514273676405312741175162400629905970230050681796847465819934836766267488584054414773436074417366076411344387330284894643407586977394634054797596947921147288041062748374459871764558529054650397937271402762155951210510712217314836911251890138648729170303546016564864660388036626856443556025082921947899398108900603566760584749334120727016882594248463708048727274961357454523613773869101795902957928513214056894561017836670268953306548427529781389577111301731698794521316184383857123958753490072714912053977800069413734491700279289839629580518526660857207704390861499441440289782911590897582525370267144216489232109773282955122873773427004278906671820928456040342747010541214374430492619908213569285213706888646839610538102103577944307302429522625847476215108523275225947033994093261611305462098551288466178977827213230653479968908657440129445139927674734525201983201712276887504034149815731548877669302959238351510882894332333219627948663090115786385949414845925691812880837153987277674807468622777478236226618184649765435837985435389135827416658633650714218208859184605151621814420804035391710270037990229771022198814721424498948708576615637286722530006811933529370791802468815920948490437207227283314879738897041537714488401673524943534764245780570723022958249294546380602272516444968000192327920399492348782951377632996801843255376652095684586491767916530100525007891450320260590172075414527048765755597922288394565878919504353812497904161338458555217657796324150542176671943998135452982713813198163658854280419411652243619349106681964378057178129928130772183046325144005052437061067419774980207741887437027144549877197800837440681000930053993950942276163479022045287188572403800455836189365733391105169752526657237390676715583268783447890884272812178578942618573856656451176910557279247285730135241900577739985190433135944350650920193217144910713962360369310751019511619006824551709148192676795790987473271358305005897912468056155309159468067555662802835435851139636889086225520270442680067659190278170414138970793136863278387864280240526260872600948750526849220569126436887461037946979875384469905553666825517426542648244418968714099734283288194301741476006039407564494152343815592613593217329070043567086221548715178697040935193774866264459568290733831234285067742436781415015042618217390534547303535375475589865542616745485675722898181889493250827614539370250466368778722653322724807051028990162256432692900813354436093468484318207338742188464864354794532955640086196375627002107748820607930299385096239930653265928388730241940951088060890218644609588055866192968013595015368250863628189449327870472212918251452217807688775800923364287797742557975087550507954722959234140148254935957140496938072566452882026858324673122459028828785779020949137384336968596922057577637875363940144151994638497990507475670574255446522826140893326280924978207077809350496955622295165031960458366831136822262045667988681230400348123662259439048960910013681045759781970191151085475343331386160007364005589660967338729864775744895192546270533729886228472801444966927405897476452192341273053952392858311417097687383523198938210273472064600500815506637211409014783648997369872315237064458143337999122529610879375436038394574746102818315680448267088207291442674967612206783361579925763951021286399180679779423633667733241597071921099016873736078536392920692002593565330836901200837597730210678595276557924289528344543286345523271142795595617540639812578786418717418439058216316573279054301006596317151751147293293205930885556873452593563486576801851648189591360863588414265695154111097434663764693875433164929820238423931547930648793062976025811177576408504224967706061297101484610265396688457274326975948751267749060950876720010561429645071839643303904338312031670697240841977147252618649266230250968505865435935189062914881146363759769919914976226991279752135679287863053075311361600744846771328200122630372188898317453615615518619040384688124198677626085623129025216665461397936262444195246208784973558903581390734982797954083310185771996933602950401729956911096331453832670341658165472825137168760760998788182145684552052470651241477399085647600619314556786890772425542214604003148206378100665271081466599811066991175629750206038713237217718567230425757904768827624241968344801436068330973030073426454729460085490006708517702895827556355718366614265076996346203262592653734216481678126739994986769361381557459276284675436525283127473565497717722038868989997296092551562481962573293085937744624740208186164080199850862900316414470435578212503192117068863561580573052686560810219621664074280874997880182556355619194016811080423924788927080873991178988798784310402971251622735634870816555058659814396657734929833689381654900264490878403750802763452402036321576507545465216730112263681367536698339289061727935750342842955530565544306892505297270363798270848581366828319114658394033700482398737715538490908328276257457513036950817963959066868664154556825768678440443327099291854162517691300735887517390879874254110854519122661243787325825686313914105899994439946468457573284419742405373042840644064159486851837802445889317661430928233731666592378166576130913153629729067423239549519047228948256507669627132045641109821409569248686626790295482095312400124364253387047821431317784682300165378601877503831183833380601307595791381918834218296540251388400486288674029886260584083422753476419589390478285610204812336621234115612065428999389471655107227639518093222841509788253894386614541910841741028521362309335236070115977152445809400575668223548751888271479246371929958738837158070757743152926388263792568708834523359298704657277528482952780031218768385644615944154286183099543458908930982650465235803097476218975811597265289200700397296507468466158347102677752767665978322502242200064572632644085114026317160541570535387956336671921917423793630623975738318063498477744450638771147703541829544148923334009213144681565007147557536291951783865409385274793965453126232270286754110351121772765003732091945556276143838240376571313221723953918282483531984214891050613446621753459015813599453622574747234230384878838586685820864499434882760499327404378414829536137669401707672615675740492011774009586985585643465620572558811473724793643527215432181658509740755844604428338500492315287979245239905146528159336246589225653562005876063889488415820607628680821017956898653289941433591197405292195433227577939688230895481985926389811176054269616838890625275695575660901489442565186718702433500447122578646242305757482140702979304771114039967275187372738210084933978737952358304932486061501960963147220708627638202009849058041671810736044593065038653227459820244595002829156191279145673837751741002431734503179284496793677268077156925733597946323290211192695899389203534587535836002720717912578929744511392325284240861185883577188747938220104936503432576765256332085220656037451648635874751058829044459507062422896498404572620081787632829626975059657053973007365699558371608245018733586180152527456381980027711730326196374959206939885829177905100966644168808989440617383056878593464048503314118331160452910595014532723683326007245786741355580176704526494786887548155126668063928145168788113482597416726786935638396224317922719014555579505423809145756067242442179622419348703542036669552978336340945026804421007089326335991972081643652395634425733106892810369436282677466670710365686488711376735067325091686388217276480339003566884128299978842910078832400081193330707850057610695702319824451412156567548073016548705357376392957259095103688529251937046533573222375445801945435863858462006508337834815072525453762044159852188793603299201816448828147369363539561653220922131742906558248348706213704630241669385620560178350238373136340998466403719884862626359540485206662638300468702473965656108355798076746632612560278694585321826675017164768275688940649113097292510105987549494773210301155313245523583768244586772239447367928066178519182499055107913926611104838239159531527124304656675211226982400538318444804186943396563171197052546043598341154071911727798709687515968686737812538485688552609316131877157958047860827622422371109749448282516748304043283634727389524397300353598422169364374721747838991374494925194927181945220022076405221041625482533928235406922546053482445200370519129671015325781398222726449865769906198127281235726218115227892698094338097315769691194815003945852403926264987690071203030372994828468087532215051788398762182258427658793664386275161957700320787851513246267608716764633558307269525863479844266963752023603173561981799878386594728866354042207352736057352603721293805536442959227062773487688538585338216485439594741382605777429459191767169492897246398381423608382780839764292442269363792500106997490599316130071822516326793393754150616538194465467790335784314359329232904208177986263164785510739125528589818600860241183709470777450057113613383241964241846852382325640958587787510851219740053980143910591986557700454318859862741089226849038777198887133836111160429344128084843311950406714309616617346558035859577739039032885448973289747901911752185428295367126273592865002915465563071420204680796973809461949124087059208821139245961680445814967936877998050198736861036478507463456596121618590562368016787084023730180969828389275459076228484759023551565162649754195601717712440448791817908461051645068873949701092817918288823647443158836598566919536742836468627935927030423953878644381984353078823740064627781047160002776323188319929943575123500959579304077955426349752916537781278932385258816662679479284183028662481098316413813624011339894688235922199680804215800706290075066835711465493469646810838288638381662890018183544152274937018231195612859508503350081619215404069671085553251006888488827791571213129261865800928926317251104639011571222975003446686985754880831517490308720203929804792332698526664242535594442069625302903898613843883002561313058660280958437934859887505098222957332263762823515653023584966484470558263607366400840288199355548252336116730179755505919427818797295115751914415140270827684214532784157073563603715331174803149196483610704128751578553645966693819796693240177495265140847536095915563154473783078166452201297359142239020899891468675772771631755147704043714082782365841310439570514024239953662892906186573780837960538762943091204903136441801296628607201699883231611550747438376035932405878597316920185634333581493219062301656603074088299710686074868314862050797041437702170324795689409844208158707354123732905118973306754604498746747943617763260192160000266259199357025402927788228993681638729575037669817751383941250260834126463470202169664371552014361988853875745101600377786750760270008741158477750019360847460834136428564157156684017724138725101891525717644135326875503615680838675170412758239473251059848282596366096461004127908802358603300397008142955692349220281423660671171936498031833682592033055557510622452349552008281435738634906197831559717999548912427340918005183178733493854156881695888222662953006420774438626132815961044462325667302076194701576331891566138074874826553553953215529852267245645321098915819291624693120499259357444749374634323202361541975099874481684930975401568251202986673143594346587334149997232487556947760839747326933640922538078781496465706841352319917264744145896185464390883817572216250831234766201572597628321841034284026489052641461181892146095687236141040201356776148385254650993359635033450794231808151968395779979695985103106071703641773671202432085392009653516416207759481569012186192617097048474266248312872184320077647766163487221533564998157974298619378808930934422575601148837997328370020843631306844040596089153713363697511633189877122262522609403455969404558329586988494030647444548220039505732238423514256194354442242854047172865422677580187210499092090170632183708647398495471820038917142748487979821667643303026114872274901049487607796937657517531598197343981162284381662045432152521416071379918348440645812194141983721872106069268924103942740027819931901631659830326158719293409883566728639459587579603914845028745799377494962311050810492271899269053852417067360419101979710955607745463646694348155934635266503482992458093815994479232009064275690221075200479218754077673260415695185386166986683710586366600949590873727313509656520977828572899485477209596389965106121126503031870731114680635154487192406694123913539341721589709842960737247272803396991442142077876280258678256745437429986466155976425782020732089735423532306704524620409974597628433906293275555824374292073643536550810993098866256563446696954781415858928862454701104182177770363172524310062825268242711542358834140940128598854766654229121070952239558020570914363384594781305947039352736648270047919467688938062626560519314392265453748076322406577519729555796900419168672549662089523465794080541125356610169936542436457752559675812006093894452909268685125682370607995719719115823881206119000383984292624693066697615083560977396893059559694702701662446250733758854281186903599466512229556019609659497590654171662424368031440307662157252243476760800914963600064706640669326188815738025057121651834700353854133252133202037659057198652092553396092513836417865539223225016738311635455345620298393042786963652398516301926119949010084184651210606557686091225437503684823097466431655613886792668396873149089671144879415868083534545189569458177910074804534389268863013494578346190724613318709199852270475876360237885096810954058869695154037104535439683195345286352455556849572905250286263575217072022442450771748965571987761771477349460253618491174627548604170602091441889014067474303034934354388654810342770815902404329216882709944479540486990125385380616812746428177109889561967002113679038567845733438470505717150524467568483230822516831029816804734047942561099129168036327476194625078943484915263441329971685153007984709699965939721921406117008289399209528658948521955458140639261881640177363397349971845102836383026983320210408553256763781681353547092064185654854162435461819266231554497416010746752089656001252546943899936947714675124551261181035863331089351641028336612098830970835518492955484903933533330080031769630295451716789465579947039205134409013684587183859311044681891716105039263079243888222850377553830323051043841424118971496063587409746865692320846169226959500025462689660478777355140698759211733843708631506774410279856465666278135117910425687477575957533905871322486165539043510375502277256832158582209883301092644167876647390837219873403303867587514051815951904853539224905836072034896276312658962400236258562159003527193883754918364623913066812952046872591696826205733011155273957532568039293916896609219340215032793925840483266123104844171084537817357356134322402275853830317833046033719541854255910498811212556369466645143094641853712088347047856001089917858208804111620451698367422149848138302687636367185641578394325301625918163607612308615447347120830096901603645259551481625227015621669806791991305424208415594087132587735558741689254314359530592871540494832700461076051560162342568455888293866890134412221939412378835818919240643340652770623250079651895688901440200048606601677666317581876067446788050192738728551572240021844211859876817208392785073712443569729573483697770893754231227413297492076065870234597384589008182333282577058623401851711317084772609732143982331900404362089568872492004367713812918001033333951371856531548640071736569143671959006564058534422378591052981953434238767610322078530981312350628968261881192928051102666236743134925084530948913768496117295283985389959671799818946619010948340572765798633113248528614345161914365926997768414362018868242163844534775390079435306869872559377419858584315516852542748544189865026193424867940848359827775287940449210879427034710662421637768826157114077150029545291363859488506221473176194297257032000338644604032207566434661967494156453652189488078838350260131835409910039294982316346945858442492837194168940191896836749234728722796390891080399894732712411616452230196236707941663602706959574626175615467344928479160716978978362149476606727649958130436920249919945588783898159967859778475394617682582507832914237467278282407737581099026667249569093428857444016641390553030590699265256248290608833934338162225314957303116626031872139114073377277981170889772820014577445644958697602870279711750851111992482743699986093812221900317794142991729729494014821593727595549694670687656376189627459415842265481841559754305345906890471422212941180299921082623631440309999295933393759166121529217998742793175804263817538932168492429194947851073854251757498762756235325248534887766229526360176599761682822663803058214101275780129679490739914123371211634664395775742074923889954642001911343490184652537352614785831361240341105443039760405286374879994566076017156007401490932059656037751366076218934708409440979913560004875396115581961813776014613756683892763336179673164610929930820514507155379529713602830196071337072166390804614365788397390270744051564048691462466378469740821153680191263711239978115614200102144949015652912564172589885397393777181802401440114261733345755495147770273237078283408380233304724816277869898620872265641110498261113888330780491249565263622080190251562464568790460677272141847935803582276133797246651347618382019219034014137208754344281210764815047272891587590911059067762830866117769213049475940012202029483814483901140075361050807615520564208798358217899122702253695797895595822186958181811176044798669170005212123468610419177759664491241812109173626313177778317203945830284602369104085138528613666873923904865417823311394870740067521014457719097410652122488845017268601390972430132516032222867071444291157464032199003897954835692383252031593263829192637088449769540849068996674359340464491209360245645095165247107431999577141178912366859938137050849080036091542884157844917856524369822671627337628331481154270771697405405617304118177955520557044567486910385298488245545364042652010416291303311676372670734814740618866807883685706196553753581599467297210530461789972614220665403568018840507282331915107132182746013972221990891135802119088487785180149974009057601096273717234133331016636327865367384771029518045570894029253786508064124776601443826889413743174930965660962423908546393107399501248497032451926562049917877844480870411440561155314594892454478515910067678474960632294151220552841928782838364935990443291408032841838166905625064931487100557334857786006712116921397283572178435267430291231674460579639050848154520134093762689081083189590839726882878827441238538418483900121932261733653811633215235913797115830597429533065178233046973512125884141057950442997074439609816541309902423955138560158544342412364152378284868348268886111389793558373286996788699425345112728323704201693458442004457390912768045237507216996089555329693336079047196111598956604858920874063156182195569166802473323640441126350761850691157989167331933869451073545337045285429293315153838250791799020071288360351251209991062862644828358568683918300372806013260903940659541567652646957358774667803173357068845344648461649287873232111577198498157855105798820956174562907155940496716473088870233722573715799081910614538445392902388643163794787025775328368597517697645626107284281790611347947174703259426915495557714058576835906794715818615723133617811814362705751115697779954187455512471527155884291800438607896309844576208647244898120044509522129567832107247343671075547864345000777266271111674425313054384747268067652460552722974067461500514182311431651574034792378253273906579034835711936219175850622166804117675450571715625509063897348274508758368372622973312036487937117448119590022864520876797084844487031557356591284955332207357718924529769586684924455687173686683692451998593387139230914885244637183712564362191502761277530367839928420291746121942926415001283436785513729339759567869824938286411112078862880987437272556759251182817928663241450233731648563264780738624631315212770768614303860698514365709448073508003183073104986899004552568257625628541224670100881908641897599342316726476432497354085731672408492377537837176691497148655622349738862270932752386169550095519168810516795508654932799899104140832029567118219528405613302877766663823445677863548052815737297028681326140499084601736225540660460131389884663370821210852122401787415172284484431958154461728502371317644827201278811914773044748770355737551775645889150784086581266338165122773769293250595711442673588693934234594766642644208244368714674396862473811634562990888142742385732801484314354134736532128555230042571648896244675295128365513053298862444949930253457569524808407143028671472270104289686729588849828840193660073199016991138373587846829817764072892777840060122055009323646560144023669870116374088786664286061115417949118780137368011916220933268838910517118703354534877501842576749094998795949152986575202866834970170430785972946861503107437015473481469436971986392539216176992209813223106798592428679794629070686996526106824203705440080796046111294569168486980781006708068223697721488606214748291922838616780232223702559583766992288512289971942964269998404651686745487663052256353602070846612151786621160981142952023156028560571783940038906819967232155569916134683503470214589358577332548529798502480744277584768798689830992290361690993260377723440051597721444068668611881358336991899380773800125409389932714655365005417762176519423485077001267455921345169097332761754749754285026564480627929437040401004758245358762228979308812005421505964020375613579786953480917463553760951840879371546340851054166305066133851132445339011208045871769301019420686095475152671309896207685578573570227152542634243495455320921222111631422343873919497921657869405943656192963665690335303184462347699524009984705684714789994727293845125448284082499167882527542217385362544530802313569880869212697809241498099924569898314508129957106385543995666105547198760284973476356223966050129026343102386789316690019066517369890381714993611568870204165824201787120772727448811404079138255530730334200998947703450715569259840561286301390850059387233952612909350008625870944345195695422950570882813977587262536582059501138359515811546223464067977388430606184144453765442782715583321624454433060747605823776845301986867861025939411737054977782680538142189030960269552563827886208593636010778719466490579821391406193910088192140856494118522526181871901787122026392410751202288845167863225588423233103087589155496390881154851208720614381233180099755744253474339291104247228835687523818961062916128162735880572919548582676560761780886099721131674262476521564318621801740762768537448924724673732258485938001151568661625382151355279106001826843222977513617049404419862233250352881573507297928469113495613879353206184532414486979282546360083926119651127718695781237805100831165874415972585702812286709228592916856940994184619752288878367626064340170356238556737270142677574720529338414342990185729843241073084921256683504863222059343162832340547051199859962850146584158256830852988265069071166994063794874318626417237961211596218493514542604846875513859971227478534369415382709518698965090256979552372118006833255108216109720229758687888755453139961954928883909984157835485103150880870266569964804086110947825719446355636969869954069409384932363812698839040119320928972866998966702123578918555947464486619022642280804640741097676153239560918700400066896862126801715422350888141986063591971761405942707068285669075722947054277645623725486340399522459936291414965798943676676804559596344254021395886022909890033805882468494355792582136109919280586072974014580201723283756344173807780301308660900902508569847588905904010142329436014329960477802013805942052165584302227046864614186458798338271475913270819280499916241344060761634947404550690290653891728364907938909809784121442453407475521541795140660227604507520942313482099698870107152274495483245087861900926079360636476012820579685141545986122134254823273221602849811707277646411576201212445304688769462815915659335027859995206063815689737668988441561251961237372217509767592463455072144279687988351310021468818217175169724480188044928684194619095990827674333202551663301854640770460511818891102756254494032891942674955790310787914517309518905526286997806978949651620265024582467584006704360178152359331103177624216568717034533929545959920733021135492108140134024156668530404445042141031256204096207158246080216686143489309083528911823419686090564965239584139493803164844174874204484130839508110047234730976117929101433110778872021585296915591906340299995591317834431454282569547648199536980628430105181219816302435794752229476538105769927921007080008307820714407890192127006590580332411543783612765096408455551607803011292808370630901158267876821910745900288126752059564424916462498185210226279742239459228806901777067075064802806866832042345943670696076108589646858065959959736704591967550717021278959240612330788170056865118243361324367720426811990290249110624594932824432136300512497265313405203268540360636999892577852669445891245691754378980761236759845100266282117479678672300594973247900873989052979857751081286301012936137191537097809637049539526283566344828137330579117787839283522852191151630540039035642614749638517924565344135264669120942640150585616867257060691948225522146420713228564337055177247126386913801070498847614443299314858969556723105109217750006507982214904721556838024595196326073040720916049998240532782348243272996620990251450586036937695427269672779931468703368658916390166976538223260734435169766379594420567204239564746620372521264878806541393995230952133616863582326781159133480239050116906887918694076436064699465762439707013541476583301720397334326297570945069088340590838513432073440433332189059870209434790249978586571119535368682437653815251758978759634197576227550404630058807152030662675273632331344878794630468979407903772917026541931868229022080126716104600510468978863209574808531044243179073173069590179785278315215567002796675573421340799524678393244267029148222967834767734382574094627266456196469003603689869527177881305047882978967828874121832081520334579017524405925922279473061581885394947467048216450156032237017411967802066998169510987177929835687035942856094612252845928163642948345999867021907452503372759993248637904266599118728536125210723500461463150225273132715050488846670179024579267908767746919925622173831644807407001798277337311571025807040624152458590280372535692538000383910098147209927996639899163142774022152263898648127077980256018469280860713547303562189534313807753164816364126022657779538018088471095243023047518195479252613381954657980278537052873172627099317021359529924037755547744764314204297965308499348357789302415016238979452355979641849669570922524721079047724708774518698665713940520018561979917579017627868049760912103423296961376192576035912876799861800326259235969408793170522572284013481741650326431502666318125702865187911862534426470513636497410818333640014569497065244410739804124438289042223536040948059328302060258724773414273087787412199694020350364834561696495709168252236706412929724129921614411575084631045900227069915812018719231619801665444186486588266300087485141928174091193383850332951558265333745466815464873029764605800483737164770556585633107414914996198460639832225748740739384891848061581448716812739340710265075657898892314986321390940157950980401378866340134082229464857028831594342301684951275720857630359161438876158947710527319582851605697576123412283270419314696654788199900252132552443256215827342408823941725897455848519614080236932306013714956959063963718256028965173923824699439723651483685251271025544400355331015195800404200892218346051400096155909360234710463799885543757406015716264077668783780326257288942490230972215766603249074295623579053514591653510296945604046334472477537499470867138970584596745080906340093809988329302551772589159793817201824732330874074001898348712416329718367247658788776532944070511045819077454276243087402995871368765408137271331040994507400037141126763929451220281585508380551926895611956399723567478518749527905778520935985302889463301045226628724426128263390496374053450266598878001226174094904895896568164078628078879230639696678247161615652497900289983714991112717189662873694418169002275919394770710311569373369399979948910756053945364295300902697907152900157882253182026498174753316937897805817219844487937223763910353454518559848961370043566683866954211361150043578645991555236259393779632083059527864404961393409547344343178094878651102606246021098256452277362234830397662897110757748478744172912972895743173355700485948977732858272788212216151874193782260620474750295299422728179592622744849478914938708808301321801552099252892638819404900079202513622193197706201131180891969563486203300988556091885457432181523503631914530213390319658999793622501241523535973408816028644674266499474880834259302536691227998343446548501503138464500447748618279792394075555850927269992460216556434055131444843922484155015207893216730432162138451278129651817562644863635451407826502861598854738725356924952202398058424287675262163708109893729221549258276775282290015113648906047834947023049772610452167671584611985971462868550442396268918569149676885448097030228719572576365272607240367952901255634426365839385282524799837127643642509595801696671069386396452343007285115572993891739136164541244425281641369267502078370682647073829078904901998970462009964877478408894409319268177584385202089440881378922093298201703741776027962385911578663211500163615466129809265503268673901814475343622661688000872828479381614968637442798909255300236310528821830182621094436378702477352160973387575035778294290108556076280081021613877257522703125351912508476838768555525737496104265392939028977793797744227320231197695820923908905855030645677545585755619220689084004239321557071031697640275198745868608053030205730521551898173291028116627579917113279401997161438279754364355974641338633777455513350343157872193536386841220895971409638292320484833025420597130997402981626877180392468754945158632487442909274826853683110140045420485758293728209129971587363914931602479028815696581170158774924861195994574140705951958533464884804402806882787074560684049489814115338532484138936170166127967432244898082627000504987768776758589881831962506223088740633474613466551592922633169499975935422193627387481791185460982289526816525194166436823655379216845745181327084688369583403320524001955969718114531820124076036279891784982668134981871932457318721853628580630589512064750154738701361665835082688837025180578668628991285234905222280929932634917690526804668016705257568512431999601274044051539001956865538469771252609301479530560729650206979837638863484823790148936433039073976803371956379846898024624693060669156936874908789565062410174251076275892251131836993060099634038948018155755203159483254948142480371902781600900696468264113060338013764849526575845592212605230524665399663042692362740584956183926179931961495560722392978166020438078308979656748921598246688290933900878727744351789928757329020365856416790456187685362581108205101002085950884595337716205468423936075481858330692950336099866884836265700137586912029675385466324124437025604201996478563245370178254057853074014104271185020618707829573928913461487672847871493827421862596994748080909270819491827881335701695303469158795095296693225867744785631930398786803577232741881271318775623299814656224280915642633393963676984378596637602869445680300930797932826696276422268525630412348771326584093882935903630505102413719374200295498847624769004633183693628846174470188119715845455877713925859608404094474820113532837570901414482546709642830129096971086881264200660423593894257731702548296093554283836046320186091445385138788887998284688089925621947589598313981043668364889901451985286603372535171282413666596899221939208797627399362165081188911994787924633532827073804198745338954924651645817847183848484051983721493600054232810794994134684905036368458720362819378625380244746442791745656579075190738510152726212842919775242112752237125258078027619340895796310771051307634084428099370852301948418947511045218337047691089637240683920721869176587072457204081441908661800810309809716293436783831801871183433813319527019596337538619655897411653617246433111873961607834047739233907911680096561167405150735624646452718516183711535567205376835942861447045147711207743014994447972496516136717642065000639338886844331404331133137157192177675158481716136067888617442151017523010175780936868598030568531972584906170179299753615506315103972298387815264795311654597764941838605607023214381686415600746499044565006905230883790669211024731675423947130436419552146919897531717838810614509219177099775740494283739129533220088718255661576778733841858377521476235689452976980283573601049790317069439254155249200671688681634003767079159110885101684347385856601283923517701639817951327704495526906681387581662657213810476408398823519408415450714626243535522501833535538274141398531123102418681014481505575440001856961780201513028947489900484912369764680814161708800538735600299709486784607670823033061731011417584848943078127639276941279205390577960654505843521288771933563990321157084302541990946624587672407836125210404720224974463574421757024033746445315708816133469956186001411670969765312199837469023209398284532795776541281402813621588713243665980847646634630971385980028620218170010283072086970511307414214224370442232524310812608849714019193143041829334310105771455271275703269571786785945479856035364642668842263085435236802036630884290659350163449085859418223617516211242346318192569548386604912824463703715883560731631257472448152907044249037887362689931059524610533200762398635273452729476347636666343099982022323035645276712470327287996483166669800014956575498143578178436796540079833759250055391360336051607397069806148587705957429064127032302392957038983343702422892970874853168819496089804253017714533997747257797769661558400732315968533157712176206064611833949670380710438854626160252669994725322258842382061704962142750747299084557204793806229568678592280308269209375351445135398500494282620262957879134629119417293330326924885919009670607267752991784644746874481289728182494483593606631428366832959682694987124597511890759267348074123830463053124792042700808724543820705832035246211196793609993072113282696044869747508875400485947160799490211208972603594870488237591872662940362739658693537710165597389051184656405001963601014072589126538416218819493700499350107122323045875210359574724127916401037507147818505450292361023010074827598656377753568294294557314618215753666253721637863847284298157851690861937409999474244037979900559363476741327596702030014314569459304733625817349909976118744294963387567636624546566436003901873992539573664445455518610775554049713198994177647951775743981483381092605510067355664300152625758051042129223218456346247555670723269738763905818337564020533995241707803625483907966897244234149657111615610236182397277301125339771202795774160751095558398759304434608127040853097763280735017483628341224520568473288731766462696935266871370450587633188843968227579779957431511650731282823486887204463559046043106137306330885373661252800570064369733979189137452033822048727294635157121947839647890779177969666530225284883160032407754809582388095131726259739678980134933329153045044567793024854418715520863366211355101844658310880457113306628171176070799112284922496124010830241662000745413734682152030144341187563871857790527530443536399552437549683366729375790899375708958262197838987167027581249940651543809493936115856166533791273672626121764837388575238387189606104222632591127502539986822201628733449079308099594378624169732355019152811882361651451714608197146711032914752738759649207464684080457865284683639718994127297363312908456925400109132925329708152520681023118783616652939846142019854144350822679138818079853852167680346221498879002349307319411059711913709734325881949764833842100476700923254210811511923736519970969799763044242951023618888285879113329848046958986765496691927944060343127006169919459273195366540959802033795819379616346972228271983353945480890168247926566891250277997649832761866985408937521363297733917917381681262793775962742060505998302190401626971842386508051788639218945125672385050108283640375438040316705300656953696243665756293911044155170505734693841495821122410444029702088775801656119699336281502922023847767617478781988028870483667308856100254511921393385593866934956235367513065680070430916926329060460542282236346883352739671930789403079862277191550153818034692564839572418706702788983032361612635337683596708793803075071281252112478815305723754310322757040890360072032830405294796862115801337867687555345966961483091733510282600149751988426013510806460069187960888350808755091639527915962702789345893659006159703446954324355613635802890532159480599957538178278984191670674806551353753677684561792385784827277135084721699342822085279955814819874754342345348046922271966551667466252885225003353150557925717504724142594742897165524306032232676773089288092099844285473617136521801912043109099791836023288209790279161705633613147343028215118542647505471459668154227781930609046280618577995433048960049883174358016977382795829073158930756084882204849435710043140605614507420798219895163919322425979307848940383095805952122332880463682299504536790614929719242761883917557023599323722682914938838688745141862540320797548732789123407245799120916048384554868668793752230328531950369500798292083431848966065072501412865195694950986940412520872980406795619294841205577072794727540472377729402665548288048346200033672032378612772544837780069494430671753392302139761822386365181194122360614600825812169151874578963594934826951596598334613029760305625663564296496253128486625306467685158143742697960893862671495661821069857072248875336291542465872711488442939664035492498669199863147749032804340580979623851186360777438924842479109906422375133249296125338968470124661178590089577457386459174947292337904770158241034274972362174573188583946330318751187838760218207300126502385306018113416480443792212743718980958209483978231945691488448622750192473886583195522032373713822492399047792111627584205930102963894881689205505946843027611312768914382511704692694511641292983520245478339608862811283507655103596422822148491805412901941087223575826141629261363942128218517268703290635454281171946433094706571599916683497556591025207709788802676938355281393951801431279587208461977645019336743356421159488147888204889416658192600371666660425534977334181012174567794266431228614239491807195892794207321120086164001076775202483409827452949404123991418184845222481951518757665265372235919128016030168537664807796407304172010768261449310160298842595927017016919420668577461189022320148780741927471467870171134915293709991983680595560133323928364334005688614431141122224786712117919866209416972958399170822450356644924946334349850621770461002096454442078215730976996307968214894832198432233057509157115683781374107448381692066806840624796440618162879255143841421906971471488907958188418084378765943767000672275513676392299841082806597826319919405404263946252755381206112839744612735008403890492498955631972741939499698167814679306544077898844387937212962224993823124192240635553599898954346377219204377368163472707264835830459359591075112700627844030151249572939983852306892842442782953092062240752886792906050430274223760160757384831966695126836182419777713382856025016290698885445223006820646814857653946166975395998811319239615506561674724959295578363945265184521072386369572366396078002605199285354901043476397665742920291585548159186867948943036196275887364235159557315659356035117627930132618319226086675049340724140549309190764649193778015361937165351764995523532236457184334581308588444876305123660188877386586083064024940292309053652429095721442320385440578488443651600358465553143763671929257874121817809668572509548167516082844389081296921130664484655115357511659125957931254120944747475330907731904215459351779949989491053922101692143824802770390540851202460975078243690106164781927624451558398524594202892542550087249843804364445496368863044702119213691959639255774641998661841246913441143597041740686145186824888094920429259364193628132503981276714052519234291125995381267782035742673893778436899852024178522758755399333487115630284121884399715466359114395878697343785565249338011263507267877557136456985327164651795994457923233679771127965262501151834015492586281855865954077503448856853477597830197366640157096040289221942678900296038120464762450052136742442735949564581198325866723091302268895576122234411474160442534456763940475052742976970877689742942384115064517486724030153637974005144880911285954363356485180504214281044077851762175538671250835500352412000110646500974417062834586921349522504019407662761540167780706100368703046554871519476152932622400908798121041369029688297477146776175009460738695878775018245564449824294823142422340542795309414150001349990776024699315868088641935326272428707859166169185210804241489950385188311031162978931313349277651462766054139477853247098740542634815748666892390751191040026760382022165676843144425904111477565489502445565072408888427626499417107583159608370397910321992709021656254115949382891870773242620743983151091547444853457954436256834866865141322658451917157508130151850977485279772121186731247294828567243721998406975057512732272656140368258895953974303878582803804146451514185260331546019297949200009864066558790746733218956314611230753181424179871703977687856137577292534848162650326059418598289246773331676228100021269132752376361174653856118004861910642345736112710615588023653711390275144476008751185477694371403597595620678635177455248410835821784381809194040473841725642628425243137573311217048008306404540169393467216687028629682069366673125019551598166530932043448654838925432311004965764164973975202701798605488216461699179178406860492054466267086091163532834276499851671954264518291924153012197697456209392749243981532482005626249071515763754574356249157611411833578417339975258498619565180776675314137251099572832484701850346872093140525803904372538432669630781070602668178555183293364140506807088578903856293331189019818637599427615935418067743700290028242861834430060567981090299670411354793135496971495922140790587270794904627053019463953345473404819489188608375413559259844028360775408324649084340962875182955644488894360824936189016125950627036742596331359017292272251691810705672867274802370836911646588814957618405756678253696680121919385002810717847072891358680465077425966420265194747726051498779511968291946667228852136409192121464491368318320134182997954575301348891622851513380640567245500042887405022822517299265562933406101965039667913684446588090441104651383678843842323401278057662415396848095204609281696117169623943923481586545109536169592316577424239274754179531811181639746618665587353683982526491063947626920560649904619749827513341772795341553477649323393362752749455818183533300203189726769085489089297148700495668069724922021311277674178358758599046241953948118909702062927971017184026584360345584626924001588216313388990124586386203492642923723311998849969091336057633045669881072882093450695201649273871086810583378506631635502087682069024045278047746640137562035567291484021513390839047309839384220710109307849850716338783352299989266969369482815195710696495061958621142211681827359232796307484263628608401130848423224304924769546246548686602542332259306690759274685674317401664630046859567585564361744049085032532012309369274552435148631245012080453889930261292645313287917261946835328996665459669840471510501551233091081985882941653259061768172814247384198135448602145733042303007998069955047999008130227932550525850521473775960947469247215871573695552079270991254700172386802291846211595404970863093359316580136303818450929865445095123181531451932588443542946484805015406131310293128194862744894322955231424835371433647791929356717436995973501830651072722988828415236951182120095626166564017151401882137009960867972549754433491887632400425621366933217702414039224480845369530763369968901888835598774309626005366011463503643669357363107057364776303470491616392983698518780694882188622709993920707732357405343788308042871364298166882559239790617492820171323862424893650793058061668089260487094041637247927409017386382551550302915186374871315998946484966122001452390532343667505168455410967748702586826179916311955831146770438391516586303274379638993735604222753341792551102302406247901128522091834369768688721755370074991924085757147795518281217349998380624893414967153693457524807862618459870778143465884533621877379798580711521682970029495100962474260453108190660670706114428718176007419149400736164738525177677069088711484071319231584153258461902321878108436516749945942728940639412021566563194651587781482056145585331194962719994993673927520467935483888603724637692127012113590532185363602357122580838602517409184180265070027707746383459709265262878516499948112199351300056683633277625098663117578120994967751796043056869723288593162523689861153475500197297274058763352344917472475286783598030717701703021948294969341412872467607953615666734412754043304375179813598228520833425007127266295043581382824206899244453370438770182453384489073517567193009273085572482314060917844026132887219315183961784574002034852401373653978330506235302073057335525880477986523470952067497956850013707904395277676741717939761526105683385010228190228383234632048780209191740650607560826382644715581728805870374970720506846762720759254229311022829976033695226086829967813805811845400925282716434538712203422448480110323539448359794891165836520448882142201378779728242235769712385104391080231219306628738328875615937093030268867051901845900620406962914460509320171725973489245815093267520203305106684799056760376683604640656684808325556135710602696328304984633466604047965455183738044131065910685151685986259635400951867411689031138191488362463067678542551079976985763837121218769069867923790409356656935778614528205818176282755501437248921164243484898555858335042189408837452651845111806159126800405723272525217708161243372499442631245580090092864616911757808415817865370608122917732846546508621378468712703002311623579149475220573677162659718457138670239044843496046950952868378878168114385687283328547759693142323617212909055979498394852687807983979085876361766428992673058186589415849070314164132913217657920333164800030003153559072045242764446042030742830377807065099053577531778565698970976444750932621986367886218612763854207388993079933120172952117695559070810495399361944611680134525369430000891885238202106491013507908934619709965288000302275703966859272508573493954034522864930307026500644245155193241222161115403262502386309855418424100292508572104220420828619462999715149020782944375087361323586055604707718451944110683993290523088963479053083387369806310678488803613282477067318434131081312529668996141335626184522708201421057115006301175702004781434391409380178543080322419592632345346156755841862884018198832713190643585310027466471718384285848717288719360663698204614917114884763961310352004155134485556007668431622421175636419534536500153783316955769046075479180723360962446273499920359019326003613276673549681732496595631087817906156760977366710355899647424375720735040372675941579995831706873625726271090770106632493401812366219596932308851095339234495908376521698281709911203369359566596028587118444682837838683898813974477483928362853855962762599726643415972828814373349144334132374199262672940757220295859886486138805252254325154078848670180747570678281884395751296321434554210903411541994007859654373692877152242662749823930307008269200247713079346222138449776142243478753791907353285522961989938649731290474136534275014244519217235654155346161962762165077128364554021777229293190526127734574351476643604975403877585235979085995068277282786484656901708185108606877876949786023068392732632293287538745705997826305870067328914354162999379935839773213175715903038299614021812338550283170040273103275637221055118534021012220187425436677102278475349303422358412576955929919160370791092062747393212729485170756164830757542599009786220217116651526685331622906776804971454579290315625034518903428587546012740734715496764891642685223522570113216868618153526096346860017799886484700539222921797846360937380041965075387607744881102006347548039748148376076582552540965046026281259146981422014151602231976649539836224405755112783572395654295561652143252721511418037186066679616471560640537272206025438383525464756565294253587812321797140217834279785005553496180713997521761191929187868292043869987707983894658795953811584503043482544139942867126003704552588151601320384386820786261261412882865514333364811266608277644673376907357762017676140887108883908608975705925291331537860110087478118897292025436198354522611234193886019904812810066280213883940400545568321822623661972333228836800906515647471905216237808671867016941214332158048318148202388811269859252138895187488711050145043994303171373850447488119778294428696642698706377508202030315572822616611641671080461427146171660428407950735257820609264869862285536984467903461672087752968631559611939167445738772126256842967907233233535964121854739681521322116663906176972055236141545676704273016562564162276386835465381984080339126633240641988700410270006929573364698572631391964294660683393985319187970121502290264535449036544221502771458966473643795350153009286640162586254585534732313756781968656343672840853937339479140390837753141747139838690016168586117298072148274048133583034907264335108756980607854426457703588631824033469790218241112307455615133509121123912536931372062580528248808237514621516881358144491244181772882782730292454495435230913226790516033965118290274391714150252818730567686126899175001220050227269028160115296339434753957314441314280775647606855445756844587215658538648277453462791276158659822297353560882997020644118750237560167425935975378113529990531175418447475714954006929859587061839130012286602665857080144209710472495775509069922377618091471557235108351890695846708167255028557246947026117302044635110864802180591250740979701390661922723555392338527464388524406026900762059088518328856434273883726283302261543295741566658080615415639891449906486009142359915557500575006809080704025571610449722681922390518316130119259221107514507756934494801442343543813611939022219484951787988164581450809026260713051617358051392805452497017804538623010564345095185059959446065667571787517524523573359271456274572389183163021661352046923698391828248419190995591856776485924274273736472243345759999442536245437461889650788939757106708284438269117167336897304391881897883903230585255914703755729067057345510574863806667698821463710917611319530475854311387045990770421520621067664362908201889642172608564791766382749965417599593403435235409445819877237012001994461913003601628201683816595961567527068230965924024000083361131060196042971666450403945634039284388812093409226604976235908703350128171080438594595299473484436340619292359172195482997606746354814199862809948375553328873961121538053477792824944861706013979965203331506740341441518456023934871554289260208702306305745838531056154581138297364602389097543328387559307149275043623234163592463603745903884864649999119044853592967940550292094730664252271787641159344859410229707121482366135131011191917650774980666656085548664886021154204291128091155948818580968809956785519941866837995642888384587517839651660109292011472170985321374000824635716386214262141766464536013503513751193819122362657274065539551891931040383828149767215105788011310297608743261472670701714892448121666124861691678575951142451059176071108234447436360789162573580992561161365789974830846166566953172614523221974926168785730191413883814041048768197135654384235373563081926510493389526066070365811352769454412303867789075998106528307545345476903190079129961573562830888781705772593159973255014781691775913414786219889216123860305938666892843725245570906002379841976707675064392526992611505180455389497080615726849480709770030286056351874216476894874078736875611756060018877059175685723326674412997918972168567768865971187662829094726334428721155447719850035867227900021649956202384883027248847470388082566388659276046171533777668902395432656852541969332066160500253373274292505328071622538279586773549762723534336263348211710734359087467942035805115641586438327377336731798790551335307086526059582301133568458124975897583323553446918686752837767038911466001501424363898286553916854036725419620909101539357445460435250326741582906277055149841527557345514584040249781717642073986434791205350418657088987818961921564777276802823147621804225954916958601539386914665482677638728186787519527230110591560193791228437684060478255513872236661282300659107400813436526427613572688942008974875074181806671560259833779517805095438731496845820351024963110923096880829279250663778512588977201069931458785464082761979020792131925085323117261421088135957934112819356634199368370082594417590957967095850978120377302387906329066850985781379946336661039988606759146034282802680838594237272996172921999038596670188375018499188429664109729937639875973806800416926122714080559656263805508067329015699355170065129537565648357063342675787692867047742570533527402405264863951944612473715603046168857172262855728056072792198903879797748646152573221382550859620974091446024744308697286762965817640041401008963783200800239226057325216070159463896507875211586087971060329134907964167637905811281230694032227949049413761154155480008637785343108524703771239297293707107012962718330973623356614687641419429266472598328957704563629016499716366553337498315476758915057501076335349230846808302699253068164166100709368298838477859893535158019676229053198604020005666205541376625210853681555320658987869447480551854169718135693254596551846021533604689481520234070445013327282086995524410979412029037788151095559983873952267893566315164190533395384666106060294674349265755469552069164619708316707856690934270627076179719491815588709555311902346505278733907121325958981470016383655587902820844093420319046334905604384637313716193067582536149444688593437041982676367604995835424884467845698356738085126861440564452932555017818129440366301438039544020277893277389237590029121887566098128841177956606062667204284654541912592241227562180150710133833293697757916518753849706415946912994810358661396263176391118096568527530985948192804283946373103129208001061357854801758834209822939474977906496286728845156696382891599733846980666974761024372705937354285197266543679626495274927645077201400895444466039441954672084755182702434693727402673249535293232119286157293525026416591084896248315233541326116986162315548488650086734108833093248161902660527620787330670814567439500509899343045927551214627762653721039461097990505399362602227069631252098846321156782807169813958827033826301996054308899972590770664489751295982782956195751449924370328217567327363348111882778109959152027704990687232041594803977720605295552654431575659140956196521240203047191296795302921497072546685016679840398562596984867475292349154493199806265939341503882680926632945452162142915581567634171954966757511047750868876193803313786312742310821168579214447826044150507928687206054179639605903301727407836534953945593286475089331215835395785191194321665244608913288810785550004896874516178110313743326488327742859908604818759970441080493361194253697977728726873094060550694282585810967168402200353108063189038405315909943607476157153655986656354906174963596032919976894179308358789720964037334128749998260039934831370052514818004619721522566807150463078896344001532667505002179586908163473999655872380761012917341008617378408378113664673785124665548016281820903507405230064869303201761096343164694833463328703222279603829692356079437316076195335092445215930417007354913268512318367598520751315116859440904588966334696626603883312489494882016306541769826071696213393370336578679286459594559293394646603090521016197264957151404269383756180850236294957902468689638511560214109789986111112325704117312166651983669104471988152835223566018261086530781325491519310060590796752651193615683855681935107751674832591001321854125780778583601872320535737517301020820240857331738430405113645178398292883831043401126495330681421226930594929122672658166124151707040823432791112804846658523562814063785302615954358601779354957474103466679318674068561526634186338411792749867467338770602587657280513056651028776276206012237833206622103523507235096836736723336951740580114972269397597642067095275254585581240745062011866192279790860133954805508099176380848381796747448419017493988126672187373968091909330051757484649968306800647618526204674485663574676573486469199502089173224213755285406624445694161934113735442703667107155046553979109540694785976655495586161185505192513896375867336144926891455779248655094820139070343546892466840127788480184785104529029320043957064701201654691777803780444761171686374936372716286848916376973975331664934693009642010254780316308605111396866252999791740304817614164233281598803298211455045528123082022069940043250327850052529736820412630177546129785563283897331593628200028700166508074794098122906058971116656975153988123376884261211190102807593980057298587182050054807493998968776918836947866244163534418951363370151976986275904717589348227687313841091063382733395489844252063849549712195698735361450514853799723864434984419148784332607757614870044890265288153638499343009912894991118345225411246606823020483053403381461145076402722536995116406702010566495070364326287923914821814408930414795654418291372508391846639905366794419287600294933112655072506042961661749427227239831023067528105113416100905864417860907191362189891622555366997246083024832488565422504711120938416867776881661481122392552289212460850765223271705171033334319769306594346024799706750751378650747652832952176838992389467594670844497718532582765911693117549358333806039494167560202228070244990203930229112153084333325596336252706485780907893916330130585181745281029189116756162355946996632276535537831168651238248689491161358858284940643343957992819283797661235943391443615005482700703340523220119076405835858197847946930284916872935465037825502922828162689096388077135530191586939490781543062796838855084871955369345119077123054217673411133820610325287096840159633055323754119791261532743886667228346851474294731225557110482971357771903780673390180148699683984978981760664705126860640606056060253371831934875444763169843486923615678382387166939301674623533853808362327603191439944035267201697308746650942062618652708208759315476237301065134397800886801831879831775879967318229217240415116235959189319921355283793073841016867895293458238992078619360043359813004505812968855424057682843556177071132973241003679086654100578585316973020960413428066288726586022168150587203683805482331251376574409043618157069629584663491828240485018168962492865566684280103112386672758337510792197218616805126846818068859682755061671058901372122290314225412674821032993683262240588881866885588907483563943865147743982892428478899444391222401180494201481435544523457870784412153920522301420794258957043193953886031661852980317791831606759897485142274880079644032207764191593925182003986116093371212894636683795969450865585314122090720837070536212250556170639693993376880183475834378519429602008828797865247522413119610289999602973849129528152039102669095954190722729038811368682110641670680730723106541548569736882210788610160968754832678029271783665054165879519063299028220056428703604681833666338924776794910297247330961411263495031839944662060317696913058854413846827946462243438985845077285258555302238331982095548547161807420926319333936356899217107655243361247292964368158335635920769578325532188822078896181393001219366983348314652947709529321786165654875274620063882312265777904026820996009618789914676239273587716025890754074173053397716710794659087578066327862495544193701019859799306292105054939431646815786915634663398650358533148099921825650719124421632814724174139771611196469299875625849050030752485894691803508328066958316466243519356090651047990824959848591335372776345407289223653446123015148815546036422300704715912377440193216809891051564516695851116473787807177889618182818759117486931397912183101936377675817156640577527452015608917364237392780162303985156705369347778093596277183143938191328929339545918352020871746995255924529317396040845255975134564396173524265597561081478190674497752272729456625122276763778545835936249448790086847906978743523561015812441076726603860919782599104276568205254727672847516417581869204761919058057524735518200438879223175414396294809097175927892349437664426683220390949066773961590814759442518647510105254291268205963022822129018180112567375609348680332149896203538137993810257163073671531799778267933452063510913974693820972128972252231787944141982240194770448817605761608884396081286315507009171396821962384501820896508805759382669553215740966465193405547933377314641201863734351950093302927521559813019100880364329545511269149085782147675718124366959213457677895508577768244966050159604458403809291904813493537495030831481185188253895042744544872959874591200843446863100014642608498171089213026004795298691598327516773474956608883844309668199762810246471517965325044451399484176919206177650695303994923604640201687581019737364232628619739669712281552655220997567711883953359852076703715406937277658453657584748115948569950730632371349464676644965665088999572551005671382067923089615321386584057939509675717897315028635903872243023197930959189327658853609874780739198056186376211710476212991174371906395242815725308338365677980985973869440620356491988805677668370555967097888119594141771936555049064877446737453115062720669248955032462031029757916249351027522221789939487604874675073037502193111881005803410341183992481687029529876390796935119118770130819791339957534109632526696301150057959926528547083995059433798333739878247440719021851081623745878055678399708170656067437964292872348172230976390006381888548079300682396255167947227653420703316571050740134650712894688744059386166344745355380791077719398949170350205209335794179992866005269830981263924645767247929572245742118092561570021365218336897525461565359828345308720451910916070581420082566122487123650386830664567178669823986571677130165496810767598457464298333581770284104605293793503943322915427109910836317604193389943899745701404724664533893032992422301505975380917620978939427725161815988223268812214163667278140452317356865861874558475323864201027151179619435832942768663303305191198397536719499354778974843727013303457599934089955175861742889368311342484179884339042389199328346490667447894248192695212200658128768678668535212573835615818973776961929183049632048084201840068045356169755194524635322379454537116492262682946234864964891262394670369776522482698901938634685406422076877585433877600227661817791852597623210047220473352960820064094139045407174433882546424286751495203144231748916448189763684813801930537415130462506813355510608943107073693969055782329682624399438801049325435137808023620671694402298682470140787111849833346349980023404737756203639857702321019022689480676665669124481680178409681088220403672679207050746423613573372741113832029642653718477765171569721317212963928956301008896410258858706658598339484836061151701334997714759639530556329176758825870092859083995246667357805819961838922314370696567140188358753890616690865659350200567685447107424816838996318578063141683327796735186900814207255647047400634654092524028084732345304146008162787406765026859387154288512996451021223709634350852383889066278479657223435030702629551819599812367088142568289988132483363670345324710387008609747310294850968532895652340952066005391482301794315952850499062757018244905870806272706810019167610966515969201036949866343560882384501704236387572098169564904931303304470006645897973373996898724745433817969403168258474815010766777816715446584959105698202898941720991116696450239968153059581512426562679566640299637582203904446380515785696300845363584974606982585117059033344246474818588276429337710675352794558256430217528273391843707729887127512780015561544342145354613580488927945853247356819397059050891253638808786813687208601530686921463716651200282346383250597925585957383866630791612597209083196992708936731848040506276537813641792062509025480846827284038695530468177534067432557360948137925008343767996407309092089315870085344043207876578618091443549953517726191162029344226535089986891592340619703380558721838313602141546750672380645911065483430930937958485032407016971696182006687680678372843343263631882817077507149447976882897798415054191031857231884064370537794382702564831880785268751260304469708281289643745764007369917287415399903067349177826843533177221116739143859304225148344252661266653109253221286586050908551147542193654780004295802220117742317812580605203877051279001015312415179748123712385793469139961969180812036965266424636811694458958810249993705710509942002383927251811971502682178180913381391989489948674861148898207955907353370258287936140970737464306431251440907816852346083015019365605298250730677147526443233156486807410367766752776941958253425748988084492244877598753625014764030634784246652503200956692753707504285841287552524188226758741261711774536904731373231839153161872289583448024862180544550999052963074172648751360748743792401804450060635804218464708194278298722366829072568788858142187260069996303577239180941384052728476817809217515068750191787512411672778210323063055266792264570950238352022550607456471101384710628804973203070873858178017464037076163632112264756846864255900055298598635997765191109719545214353416625007023191984956783652358154590923948064463960869744342980228101364652757675792797912582329194206013148096227833167557272206884337480290059299957491485569396595463661517970695021568254554327459812606021996235555626889213660342258603527908548501129432750013551238597058993433243936504126704312547958889795080126791296349696512581442268083914112453056215829606492730948634334326896323563841247081060289319587008892366646073871141998891324737229254963342852203786439149191809367289920193987001494663088266605417411155531200529989680854466117501385891190999373776353125093410352516374563760805520966455491289063193432953704503254661552968177454878911548206981494856824795565433760822821089053497376084077333695917546509635367602353858185626558263726996063225366179188462426320744116911032764444490878219965816692479135743004946148550707724571660729606440421024805320558797151241769966930335616235336767848430272373097388950225042143593140334956050347563967396271997069754778539102670534174747340044755494455178528728940451333014672291372199976236492204562244411338652143641031734237252635194733231073742156081939314519797501165933513075111468401833798773434535843632761742553276269157557370281395733968951747109087660983938252757798295902178169526474579793198079053743828405725624738559261787195786398013774695876558798933771136385177960124666741540018247381468717816760888047102120342936141724997994221991919804980611650896604557818933835573019230691677620700081817891200555357931593324814395352130544745242402678172224588422095218188922825533252522790592388934590793821717471108759891196415501993115477867080420073887526744903099067302020539484449197574340108240562601212150299525946860147976307221255899102520393057158378230107228190388227675879051123586192738475730672576609924251468656079069828512435055320030984925619835302535957176729098908959481497433850184181022192619772926976549196287536513379382966281983720383776112768654151893490546160720524459560289780189690008365016624864946856329015055313460768947744636909809284760670088562110750403393197460007701883863703367783913022915755141515925485829835911966208489351706735081857780846266079219076501260842472301006355286795558661226051943866932869654674046963733190947989286088599470374982960361150316997069791284590679162083272814563950307189158628497610323895305070212558081464135081117117597474436381152595150252959855167108521002166724890056769236812805762819667743679238156979659849633962526200081793490515123971352195241245841600527968865492312472022166274557478779417722546184565926300187670248247737699234094543774725717179645528822119908452361490872644107066829024009268306177078981409499267395801328289289542501159145415770431143187184238093208054870920069282648760491012660944244108999885787131295015178072866779059446993982289204710049835851045469877311390030290636690712261107401627166435431652420034804135260113909480755311491044378955867018614031121250090871988195121497357264504370640676640004329472537357552222520061086913053028785131658999822863210396359357281305042000131378412885635807939781474037097875166621511486912032079659273752927995043928370452769588142446754105128738806625403867781030706789365536459795522619516112906891477261526989272183046235780650485113026507484448769444304648592849013103031896415255808265271989264827969222805157674078338364856729586283566919068352573058533557214391496216628513280408719012180231835677140642334673696064236336419560988233599802147101216080220329372426876242619021052852054923474062555780772935648997001501145928911537042839751469557005250270002936024684347768410441568451320069377953116279305998175214509379438281418074026917645566972518992740158104571833638825030227289256943852656828166697082634336208958954731026796205289268507323277596810119534687179004412137007967553716644831650068266762377369949789287887810847324954625131900853473798377038555691865677148482269160392294505610184259436453814021059995553191117810953443780636614933238680409404970861356957901816695373909786643032864194454602415351841207328709509981346950614504673932176406662781095463781916320069086385107737643120982205189981498772929929639967042507322451237789830258032165564104627846640115559851455893111344412217066970051194187974036321934187527764020785445351389939026502211251625473314262706343475054430604715341435747666576272764459843091784657311068321252718169958773809659957054143511502516898668486548067063563666593527337297929402064185152773552449147399964729100899067776199537220926994098566444709864946285080981144391197129921292267875348562051776464979839055579756631785527850017116958134622321872645769479567765227978555663167617468712415704078020930547487515319333769941234593678821415480664761195260894756877726745171755267710249217055945844019916012189281699390440067989848505940914805055803343268238542381305627928588982863433553003483835821675558607353681605386722504001123276537199753309888428981585061866226150886118239487599179245087118975745806826053310090172883521018770110325659985752853045379922253835832250290178248835425364408856700050903991353630936522954687540446782466510201860003538015508744983210483573086112975313706177281186037043636264153602860959759741359153948716733331930370985689358863742836909764605223535956514673182943838083627225532844702361447741293758107018581593769343940933303705714119423661066439773674926619195239537280950274349899371120893143391982880153713867224562062235045433079454489211575481185206289254757336781484426894394145743768303715474139526174845473036485544104193686918703176824098845517680605112826328267011772247591092023503504096798210105175046735796046045055149714731398258826399533653789047021751503849932064521261639939105659714085174487872427148755337487208804096524556011916468134967892726813557041172072054290916346777571908709178182265179051762015476620247430865404070990574593312809055544133468451589785656010777622781890972126715810708497414182550285724717206558745938544563530599713192538159523647940411839613506039944857364484452744781672375910052156970484541748120242707401581867769601731509488321644583850631365978674404909138988917718687892064881335576162682287310609146594739274332335656884606432371221565887396394591430218652582198619966568918559756666497281189938377810527254358541832630718832069116018905014177951508466185898281003449955609619330504816806690627642757741937045014233285087762365872721314924505889977756878302212739610816102321718548637710313113068283757132844801687061632706980065071578825261854173232284514281470642983769111587780613041082011037752726294222755608631796143974738859675233690458322506424401177658207790864222818420771031621265659978011305082550254717172246801515633016926569029093571469650729938220390182378028803960520943629130110008986660784394569138547544506885383253426750256568409294379328482828780979625645948243485122074210405939823216528603984946481086790385143674063294006832327063565358065696710243042019596331107103137009032314469827018057130561535447104288041202010636530626964769351575517223837265940238553314874617243301916870705114083520296670267514026136636156042594855475382109318489753098015022958038904596560786029766747323024956332385763403418583068315194778751555803808167550369576825354154939098390853160538128110562452638782290230785252542178177362866790238236165899863148038723739984588568231180394763979580281616452791048946770349075193420121506185756909191931136254610833185774197463066902592907199431588541887061813672186358240870116353940267428312546090070085688141977016572300327913636003178927618436062776743311322701116408708153798404407201973415620556152471556363133830648022178077450940273054148134672167063645151378098518748135220359800430518780869433656247842237222604321660139095290404194915174598349911193720679261868803524116960766822723995583613858259285211492101276198150323902498427452597212638379509160215269979291126284325778134037761942899662996848887830517724992696447692201446140570878432020585377054949363769859184527321815855860526539383958635507252297590409138932047033856123865475473862832953522868522161538660588269360667834753261961814603934077156798862840838048384191546535662357986730028071955841706105446800189299538308459740337161325541639618771927881708511448192177154023872172062883673607729072979807362069614580759594857687693731557019270481039627224273652610154625428437450902582554415360882514955767489382201617403513929947814146876640028118834869989835987298682578805085228546900727049235180422132701804729628368208051381235129689867182397749521025966236693776054573180562015983655407828136397996699973254736131290006134697155891823862373675360456768217217160089488779667403794303265664975979109157347872354393641398180895249215713268474860883294461508896034754099263462326866117547683220503364401122125819748305167755437735192916981978985665887247156498339967772061451903875195800509673955051394385618816669678939614424257339874948621765723996184005424779116803067599640362526649934545281360158345778929833760516534576883535971947538914106909412214391423462372078450541370330773295872382209828276570028392606303221198767185860214641056269925086186106492465416332763753929391157028335606958717162759378530057406848797188795372572652294095242404216571288895944823306316751266575581789779074621035050263105290411534167804819391805733173884563004443822275426307990060228431420668124440967267752010187010625927933718207008954102596899254211426165378544667455197188886670554547044644068871266794231466616555416909382227113351356102813713357863304947903896178891658619295143478590983062757279332015353648296034022826366755891705984490716890435012948592366554798968532996811838474805026190577351901622858494757323063736345146976989831235651552342375141578088724017597583797592794079525261782255706342306888203694233673544526472712355492369469057613540813068510485748360119266002391101300935036220635287797819501197103245652097429553346685339095455216394212176808065506119009069090777908714147587740066091890351571764605493761254134880095223902273223944851703322016426481571870652105432403263593528878837722604368998780623025412935790050437871019491584756032541488975637258834179969158350819902354890101211151240510716307412195715139601087273492108885629617864844807265739928183757192803785155131596827493141450402026910240192693232183859875273406942738159021928310516237883490600986995736951665539328993055906042684077534906307330077770549140454798018704006595083227616514998850498702541303648663347397308891054981478691949417891630668080805088924255434424352351215002581096334341785523895984032617981788364713980909302003695425494433627625700165374995229334938106698330044553209929469837256142239567403383354898753230299152856211481767277844106185482125899947661739238366725962634882299205089840501471528210368046736485348369367808034353838105133373683720079017880564703658132462126560162808412993475759496149558371414056808946896882189727387525778583421009487992577261041031429792200256555184977726857714406472549311133945366243854936936329206554400678951102136559920716670689863228450596608163739550135563325284271045120918951148981162203813248726597237372403049366667488529885247058874052024506493423955802409595712158864308878858767450575780183629281944444457967975404115526688946667133690122065973623671217257356637504954684129356903567389052073212888002552050832393052549008969429325479368674455744690092831090605239985449544340974858203374358004530695566893713619980523096797456402640902806740171667970737758509100316416630911008148469076081282453468551149064131426770057700048364248110560727990942479990736726142141146462442336325401605795483270497133665714714209679531463170309154194648410052402525967719740658165171733452760687272012207753257092238437610725039785814073871576454208614422807343972862138800082771307186036495677018833003110405436616164508480273357825382781123470056875119509994239179059374011365905554537193385945155027485297730208745767868325497291628776648570945032255699666124445935498176421157157857250732649447953341575746138311656148723320130824074925860964113036013819749556080845893798549606484150438798774709844497173678287374859994996752891724486981793823308326970855984787287407319532962160822921407621056716027701529368087873144357427861831156130870878374148548021551805902238168708909489631735516902045116772039705116489575242192274380225500943761740862018857443474192839095511585414176496666706881240414619978454650580791450917661283688142611526107930144408095193489485041115979497578132265579598240588045178905741359418288424195101504031290758048561606677805622993002192011025473907485160348320917068886487519860401210229697481817417409484317810848679265309282700019808938768190042919785762927346229581443638837393610309272828469629718070602325451150931743845805955311696196562735136048772526867258806268336664191759634761173307274723617397649293230084560807515292537518137762744633821255508006024828874847079955004837789347839346167767200061380490892706038646460911678037716522678482393401619004426015701834807509819844144289147471653807122987889363710401925473160704896910173314809499838527837494746471268662948563973761086331415865389347278503015590519403237761134555199608042122306436421536972219947383225516404800440985501394236021780508720287789435434767091554644031598910973347629908719679478504079417430444432153800363568403415945968306597350173598027376053671372699262773316774514877426980900942127921428953630501120582794971225267878109134294950657862329583214697634841462376199492836915635531039931687840021395565977658639832609930328280373281792784836565123478929646968310327130171128646547243215666084803993305371254660228850127209830320823148258623263394347037200433964550610790518340183897518524093399793234918441330787540100521980765924254815500919142976012610520435253068695091183340962868745379570990735764063939373926503628763538876325728960512848728526746554359193215722347257383450414840704232533108420058346848309277945045045513649967245632069759999065224023980747648601006351335449771771043188378860019837328766309738003363642055566740834068066178904873703989939350875102008186216767061017453517855209010392196892130295995140016874264169588626531373384116969528037711117544933185901706578528882222560878217045461166818454863534403515368586119961408334849984944019554030339527929232751712522670769667373284165874584883322159260279963961217661869471630845177357921121298229650286679284307430904992795462382786499228014195203379070351913257819375539921814920952944890151718999055445755023345386503609194008823669806809735994711403428909736442739002761844496344210106746481567373850679219941356532772740162648884473710079950855334093781428258124670903341191387090000695776402244113465206554637754472151105112809588015728364558565298335639311878579815714621052681386760168943173337584976255754217980229069732608807277195040676275333683004579983709495634971338249936164994862101291822501499624046430111179923636229923600227881004154841755419870369188389143295738534086600844694771374433095150628633829900508666046445178927618713616009179285234371967798596891294174648692990240710999024226810380780219412572971034500540831819870889901973734495883176005339396208192619987581109202162933510761657493105579467107474319337464610627761510426655990934356056287701762268664672636046673395190534460699629771069027231385061438854901316213788100369930969726803429912430239426362920325224680813904139148960486254064316460409687489686427861940606764011705271556481238733622139362406354320535929712893688530472482599762742905830589742015280253274931173554268914879632332975785123958228272940150178814103443033770382375604666064939067683695911610351032604715792187353562163779720173693920766926866571315870003671802452614036125432428218053434560958408346546945257196162912518101549342096836011279871898507250913582099182213935464908391963124310064839132302712979712028131651193592180610983259696250925387390509830566876756964672068518514518616674689476442515478578591985833919575643817611130419024183559223929906800145653448165673079422962532260905906736634720257899934885510207693823785485944986427725700929939495789930501379247549485519593329005737783921155303276872286025640780725286391322323172655115240383419897019756098382694782937475399064221193860633241592026182461435741444170899465338378136486015078439161222329022336627002809825315570311950777403922702829209456531638531056787863505522263986829988967187286004049723319076155694468636890681877141050886821681120599610771373128465927958729921692585716334193823182095500757032720263473356694576045806471779854923198733753313814577848746094035114367478213393660439721812174123580497340849368765191090008918075274068743380237934959493621952441456182371537339526992114380345554669471397058133344543983128019905148603498636446211089152703112816587194696663537587661472391034455513309987548306382743940316281459161947894291243817964292855154508858711197014435857311679806575974680480483311727164975164578254442549248324016615626292187710404480166222696788749559113573437733154558799324465231449922872733587791972905891180112149417581621645414589894186970203237389475652048080367651261115361196135662945487151725839108596836728436069359517494102933669157587070477263945680828473413364054224474244002992567270229738452398190639113340542291584287435122818145044410945937755043853103544279666433163234286140112277310826969659067742088748780169627085441573917237665418464040620039315045308787518296448472065468576031787571578010964414021609119957666447739908714656156642610426720179228126334463267529666269143027335335344183328088442470985219847915479486721754465098747685500751948531076987089599777127320469220147817399256080817327508289616406594854044544513916833336703844430284642618713869357089994948242075558727044128126324710958209367496729333571461979554691357946727471605732748862144419795619377029229060166877086423063099906227842656971504338104967264571036026809708533998045057678543991887366041077266676444842640933716486260857673487610372513033097948931236688314923761110227846845093521958500048059516434976674628687920903661811791769204378657988664395278350605182878751443003600845294764462976304665903367998380087790944645479661828873620285478041426943828249590982259801842648833184166346328465885087828774738754819614448544760426372160432481684424358423120608893663456709960103594331205626935306073710767236070429899432626332424250588006585781044482714846682453045026035868634989338508592552161467877582336420426904180567006042602804568197825373878179766524527198415116991407295445726324451974040196200594066092466527237624935849716448034097057150921160829672669965468997180049694378972690070357001882029922612927785980572875206571907114212960944070881364183594787128863907266020356960688189304480253185696110086201657839989963663760313536446699259297317419856739343083201085063946909150239249719400114964238577840193133926499379490101278163909187085830004518367136160191171759391453364778352219245381179770475120388755576890896188154435099923471359860372162594195688773103465598046689697454689470176052293429460559414818932256051957780988553660213746918198853652642044491936481298960021684957780437775508651924016600485655580029355280165122852622754098323030754531131634272668495161973357908861806275323210997853217376032581400756125889848186718988845542348760929611028804577152753145055106495073752748011784439401626335314024181581059299080978155632393662222016449423542652792349287741403342020313398054539552713923628555610196362019667920776369775944763957237044000987002103909966266155233733902838294760470422850572569143063832691600966802456792421658025938373595982485188323120147099869916088035568488521449578121307406307059127306033043543869697004620660069107993105170044210632207800479348132109670879859437953339915457944494121142723537145762993053435699004994354732705191618090617657275252647333376620579046002392966894990172959998077425376803204977593896829724436749969699997411936205160208643696974119543697006648354533314482223942856956114376954851510231303736112976591053076560602749669847581775253308503850128830895926566101944520497248479874647927778820127543918416873972281285515462989848927717041813884419130178055642122569331364861348287218965482626998478750740368045831043395663812588549373678668926196370482160703819156187346851548808330401536820589715096550631194003624387008171584856975964066730553200701519397559666278774023383816630887869645868266665725487442644934324963929299511685679577819698479072348030057663588789389926415634656563534232774301166785604130015616828330084484336545125728385862378671887312317896467383410246144069365555516364354292877602812392239090023446899233209796756717456563411684296160954931382812969917717673814611497848539245762547825013628503318762660169588455682656410373017219390908835383638482026519825705985143779881656581876901613041312273938955629273904847361896351481093197443445365731202917753426587223777691530997009749410945857361186562198406445618424536429689298482648548275202738640930102460356475665840524666683989908813397714287294521053356080664263637010146229956900249195237505552444415064200067531843690592637675532299344756522620669198891861817976969627026086649368385306027045350025632429629645269429618484928671403273722127009815633772155955320523734107154073659419307844693195061709563412517383286755653583212836415676141267287145301844628561046544559070612537722629178751984946134677365209986445728087563596702131394410746884544928990241487723146518741589772820775177797266901666071520816481903333791631558704867772450594663263878082912854581283561497787613729045527992574976915396658275965086658423314473143141858787715007881674300508776843609285023964203754773652309397655142857396994070316983297944032686586702544641936234671183797984152331447537079966945316041144927810956452334176275451455170673853311382603764958066739786426849900071664708779710776577115592802005215046431585430853860071680057178597367924076543065753486712057156478800235779456382281495383977116268783340300952505163148306548256920138417351524743015630445092578286941314455263146689990039957063713837562960264186366250869805267272138564636479803147901149317176952791369965972142419510485090668743984430309364994827452843640047184502502280771486820890801829420983596446440756497451637481029514214441523944974368010178247379885627821080508780798512661325747562098567769375800057035000031036909440895719893246431410611695934912649264595426013182247804117473410466352643913698835888785768016071655585954802378912184058143980030245917782150095013217998466211259163565336856856314851978215260715208363559974797829446311597017404966310338746807965827790578518035284417562156648117419632176276359435555675622934226012715088136835253087176906704755851725527633038514357547663075373993702096279000647948271439892501403258956789232949511686246494975444978666646289927361676295626683707277378478000581992560846465540961658948413938082269933124173299024817846575554897268334820773403765338005516427342986455372590587024326425926548750691004180916334433664936637252843824337164879103674355415987230791750437350037999299121594497565067466711624448132445070824072869905867762133579994489416013989102443134939587820660390801084649713270156682040839109024174096887244760687486751456219744705322000363635647477622068604222440370844304314819606264350437815498258909138597538903760911573874893221289908749340409972514370797971088709801465420149906998576548400237987353134728658376895391073300027674995018417090327848746027326624122335299409613464193723980952540733572567981577923558360373945263687951367119423595229721121502576443627637279187145668391541226132114495620937533525690532367227344574027356915118414409654977297891666430712781643690422787913840886156278861340192128199843641204993773517470823045552631863529674952311567583892826581164505565519583267348901749456872475282429462326660597584634357628219964892313167328043575452150428252849506295823270010202375070005062043266170207424552727147166134809159407378257212043266742214403438535669997232320773795600917226974588676470419909535751812003368851649912140109961050410579168444063449353908090332582529524310496779867561520280795266776925772873159166846463029602275418693341555594547578156804671682157833757450110473207259657621907981455661305322985511247347755987830795635031339537141180471842228771469357314437645286411153297893949933013921975682287056798559153212584368926519185402534143845437828580284766728020131941068074515775730798883744102393907521511460791397953186926929786541013449921649338526313894823097245031951178246916659852798220778387516977395110403446087578034034068417504568745253090568115709244531908866029913234419648673785510309382728988952077028372219758844432618960536699049040561829361433515534950485365692937932822718540052748880258137078760551694809136493208097839539218198122503854574037585221495666359147356516057439313305593400878606240930616808941082863570320285982473110409338829347497157113252751788905152110733912074453001292810482198934633933949068185011255811737825837483012545350304421104265494518940954401280972389939796226299579691442434962870917220385718178033831430845557376595522660325743817272566766902493514394880202657939968329692418466987499459120935785884868489846988330420219941218326865963607791320106533588949016652727884795099060209071005279042796407169155149399880770272578805503148475186185491257303216837896584111062348109296118245858411806393087962899255056772855470190829028477980179438185182152566500241941027922577999452716881489779828733572609470651914686889297309224332039351604864409779520023520572771669503466910866604455589673297328510488586708208466424160816309905583313736860775051862074788254287580911158916017041347127606918090353676448104463351981610943238210935216490515333276857846045561119626406372810463548108934775241206538761469767957247596160522377015092024849332647832972252576132582047390896422763654013340679839368933721120518862572694998928132965553289029082991473584740210404349293337545195671908685906073128658384985396826305929562321935473749770739319251502596590724739944808624434042358409908697365549208288650586203013997085842193144301856860676121478533150051934642822424412709222820769168265087977731305343723043283791707198335674347255761218225805797550801359600487263520769019416847937258943171098189654139657619808834484019450077195302510483469291349560343148309035206666898454710956886425548193278976991493562789213810989734706497059192218489342412671400597351116410809832899097792983522456268716815539586133977084809670022926821526752125340989809989837069555071252365544314551952976961852055607667137878400393107689970861805762628775506605861938532005722977837178617560893681847927475695368349550823927878887238109852483954050767424368994004092081011268382676607832372308186259538111359785898786930006186932903167237677846154163164928829392197079266430003410408207519950843868914588754571544043709312195828499963013940634181252010900711523087433388515652920355944797819939506222177933421517394725707749368346767483662998393595128950740247275289901009275502340098415791887907336886760682129351599216577190887932019673009093428295699709936050533147925578911126738458126676540096896710875812222338884182089517036758836706417635425504884844746575425633496062434106062036736176489047695433014404590260747632266857725206373885243429430783759841056314608433815339206700373416683101478823150859904498196852031371320667399862598878165832607047103035671343455215538492966196418553574515317937819732038802369261896255008762978231610021684850118088160568855733297240456967535626278238780216399944868265811920165361864517775280566022581919066261390575788546908220354026893560746929544691697381136693020375623396416423163307655515738879551029272473922856301401961135563648716587042901135533781271489489156818798861784231586372868303494005061981395821711046226985798429975284370734951888453976260755395969456995704424945742896619453697029195492639936829797687336560326117601564319692099181616916916435183712484727461522787156522587914677741558100946315794737522677546900245458715749337086575481077526832964003876316034274120884552779555174873534300524077840572920449674420144720275344575591103245773533738814998827551253491562589996350627052574191020284085873567958423399449306578952306960963016767966393116252093099483809243019602583688486514788889660872595523499193557764135588455926971693922688557179010439349158972463154648646017953508393586383656296137168078537885766482849946724064397291103910835250873343484976171843912969399933494350204779973703798644169543440322547687878086406499628463494448613521305070528655444763660284246560294329783566933783975342151125522056890607268464693090202938193652825513345914288524831710939329032493361870454001168576373301056462462615305020203810613669122281300318792617624757075351295335921450620323004316236822446004800672662869818867615525899889585804203050494575852338956581493592339965401210634554104736479278519943511490171541154179729319011832642593668339462239113048166043946542296375817739611957057860010172136291482250846527588457557873139980675942158688003338739177433103715277407831807415238783177857552889072685801622222052081945633221407149026021917238596212398505459216749285076232498516072208582909091015190858509686883743231166468464089380459479672515134924561982779928146272431056217397971408182672720769309400668222975045147514675337495798857168428928371473370888472223221550720068404943038583881905858108521713589418851764244946578309323793717851234747368330332670044242431502542922751712077671270219900401563025553612564256672301352243069055259285890827485144315496215795786112060107161603963427296849703065877664860684411293014974646104208793116532256834569934992241156341845428600257340103845832869488005151091259471196402459841890706141881250095149980172198418399696869806895131827561381146412930111948581739173363092194848427518207326115606570871650697200638961626429126877752933517486165824308338727334732686165008448066961243076532158953592709976519337182940533885769347345080836582363014233971867710297552618060429050536195557807658103794054033240486172875818227155609400567020588835020232025898140893469448989074773447127393994592861577475819590447231842845640016724344397459472597061050747537657732938412787092176366170656112132449131800364874735071666008444104227401951963424401044361437704138313203858597634547103085643385953455083129759368098251512012789901699849212262961983803787532930547524221600691824594234410874063418738067109711356754904526931926503552641540666625609677579553434722399444122216828248920270051944835529094661035347388354238739257146733314703423510943989151579866745771862121369452299787593023589326861666358653216520640422518878347098833537283421700703754397636726360249615336828921266303336451410157546071949185472947118939546867634944721560814011287751348688400560104457491406095599253180311384973656660230862756976330988147244153170850749200379871651433513608501638159987123100353559061932562153613748564667839899877283199376866576746799697129377508727798954858435529254884096659540943867499732655206139081688052215711056458244384414346296954203928668630459860722369192745953088728777594573141658815225156496840826191102671425052372271531351271116648120100343617632065458906582695204899089361459171000679793409294913307159157895350746560435578970276972258658465579257322097212034381274130141785047697212868510396595789372650559430182392943971176813160288398276290461025329712762251325263987873089560417702915059463876053559716538435670593140624551836190555466424481674002697558560294897609509798730631479177489961311862160186158436884930435580088774124936786300260247227811533726534165786101998194112370698427412039198991561271091329374122516081581679531871175939858533616519762213855812100340731275855949115569473677183774451626719002178009833952587533291159650958647148155979313331601426264790969320937265855105852236353845737993583935982243509506686759348311525633670139154275893215635414103489233646141802560139833749032213360571679518379643597318110747067937743006639476080185608210424567232267291528930464491625020326479109602974685640136707447534255662786967593462311127708778335811170918446379535329300829447499068033124906404656354444912726714668801071334247804621375911560866307949223725447917950131937477620749266841728964127454665640465914140290919510006256619201593380053928815551550451352041713084167807515138479767459296920012154614272733096768319762965338939690404407330784243923626322735972247588476453225423190509434786215813030875113940760019794006320797220772677442204410930402245525936506425572275237802443704442810566572652325060297171020544828004197948019031423933601546491658306581871585238360175262286870084569632461656132259236731022222741236152871659909600716017209522502918139634569630669131401531071167250970109200553745808026289541888807869648419176614769633496899450517406330487244379447797222300452035406395787501006914576004499592930107960509637638846515068419459510001480318240040234231610396532528681205550257333500096824088539011730981115126623133889649012144222723090746065181604657766973922495869382441517216998955694559697001349057660871828385298139784752471485698693532078522656057121524183185842755325319018668116377614873510041119383673881880750644343899568910838839035465652981152464200863256496590491694941769238019670909777861253934250404844393627604864500825382222573977074022718972947531673608830797342083729940656807141195365545639756517098124767295857525640870824249093628330235104184264833469808776913869074381036013125722238594518719527306230539938560796656512972117616897508819954011951653528679448799724531201921420933134608751918811230569551913624078262260845385780085535469167304422668114068182903833553943079786988348895288992117213424869366119107039064933827907345817421757055525836799346526633902319160070526498870624298263118920800415606361573559393193470026676453198842197706891664778484619892054753511065549538243274356745279270211403495890478541630984562078029088515783234207949626239985950246055080349168959955595702424461161227214018389205653997583893387926466617742931074277152770250516149272800024185280594361628245397453102531943447478928539747997983703103023057347256499612418066813418310511779513935646223663774174531567329484459491128291144817247375823967562914278244239466169574311313282286698750007938338480465991037652837186150301623228005375118556826328335898446315206000792565363273783334517547331939428476492566261163320105909581096027764634100492998358041870632980562520637815429879006118816030797963442625025986072011131562423149465846155879714256416323096362837974180316322916638261180934581226961025089168550962171538326964527666717812875596370191501330878982936692825941554651719801605777410992768528992345432074708300942148260198386070469984848308062860159067638556143934977727548249026787151226950641303587550383051935172591447732923997071810852191363889260376443117901291467905372989604566309527151143755506787806284969732403756625850461111863619605534606319769517470947866020807029825841238112507263679702953731866264129660759160838470690758232004259998609310774261298670141459481717624155658277779981476849429895501968244424576001273311489964886226189760046167941412611537107180342154303649675499049510440786726479120527846082680344182311331836814680430697809230983651651521787711763436969366214209818753331196981533893889979445784248789775553646072767097769446497734585818567800188422628649947660323041077860515220065771249447596177919023063321777076503870188798207361337031473977577460157724137908091565842818353684069289188684222792923171693290911592487155342775577669394792616536912439495248580194059739520078627026039210930234862518314006004687007807768910936935497670427331278164397726654999085138237950375907023311761899242616783055935735562197421138465527338602199735964530574603174899796095841893042930903339563278127220426476203308723007038134020263811225076567229649995785805593050442024319728318489305391711965660107730237943376508195659545694290783383037983020136545747136318098902916453778182003059503204043058573176048289328085261774750612465560766498052533701786139646382385491383583154890513121901608280595606908864128951622413961188512431941964185299847696956432242335490567279764589835507405852760134676136748514834315370504789663685754222465010131743848769415611593809496476887456558657685201906622053946179010070722130763720652682250256335541452010277793091981747989079228320774501016603962666562500087619005495693858263259595344160639873322161951225265519417336847055868663974929177321659793314758945155164597439522807014944934844614112459838023458052727979587985404392298752207626280137922910102086907213161454115111521968279410256552326489194752276763850607417356115222976935442302737139866493167124557273597151633038122650951923234437995212325859826814719574022894048735164868534422379605028930130161163601554414887315127152011366321584135173628833046750729763852443786429150860105944364263414276255519194278852726591305405580955010937749631226763445695855576185712383573146847516749168050504374843330291716345979843279949154514624303982530083816319590783437931192113185524045675828031351803204588292020032806601506997940777109776943121107365296195221116409600054069921606107834268497650772669962802428620177131643622470551265007754652442677869871379878304473307147846373555014695574101733971491424401400210235049069518230595065432066095311911992881061013555496143928674394287847269842850946620920034507657211422251876302129884511488182755062879009338580497747689981083239973329856836215396589563927074081086849435919065201768972624520269717981170792058229490452953444308482270172233511630451641365809866030495656170038789542982333002552550997727044130715887174130016182401056106963080727160083675302411217563953979152524867331344921845548072189936794164775354675372859136370495489221035801217784637023054834884779515614197859659558291133565877712338819023475976032307720898915224152059813400297073969913768901922471505475154039712095142224748565967605571247094297072143763384663688789659231611671825559504727785036773532457093534629781435369201913231705768330004146304667547691878792072253935719070388561877220552168952397066148177694467121701519903226706312362705754845904352181417486481949092985518309408197308646562137644658260673271036306047340499491152975701917327098475200067685493315453916121605118161411599088956126796942742450974317009001337030060073481455683047196478343095341254274894009937838021730082089086636745078455524823920478817807121627228092496355181446787923038732518682284056544721563191742642188603058457975566508277656584985264696631295870693923268983145115725990073111562169561760801357423411145655501830148976348681207441296704463780138359954615336859657903703892699878693701637620742569249691267517801217767026186499174702078883360572208993493863841431175429931934217697338159337176810257118057012060220639165909902076065304158865262181934369957463260702583120102192415933694257872320663959510776607580777884876556248227278910966646480578302505609444799757364973427100608058326206909620562020146652968573783407889230267294269053305442382405339460695285873903703320073542743513154489350300094469650541172575967834439977724807531266727704916692275932162549475529070524465364888969936424946589553042817234101767076162180096187578258854613716507849743780927888651257916099828595368358633746575658800466220576294582256959798876105357538407606232468407044169834163775311863793491011875709555024880726066706057691058056776354944280296295790192832088789710687739154290052380428999323255547642349223517025487450387318946878564268626668525074865896503184181168497670393098173231830964609449037474410948058813892779385719406724721400516306454933288339134220758130555589322507247865589052288990203616272621835382876983265120933272110951469289395715602027949882242581294770403453287029833177148396470680951761981958856386347798962578793146858540420540574721012732391393857842015430211768540025424921463843769041287986147306580835277634034730497250612820006159189270967769633523541805207246694662892359181685913005404796260686572163211080358890334622319768393269773700376998894206114604609667164405614711938693710985773909398169829777634800157427507453026262374342168475665949851271106364886822628977704214406691498728532980656218455402015837730873071439935763563906220397857985030085567435404274259454119488434101531532816801328214823017743222193800651995636435359732478540649067891028752435759348175186358575557798208095923432952833589319946101654882160110062404188527454274159409023506110417346252947488943092104052942341229463310466325782902927964014246999764985218454351504179966595671154984797948107327326576009048638436797577402019021809782284120504877789906278134526412157811854786117843602458416298846411578326014722861503962841745442871657674606673265094604062236884031774129669545920551769074484043407957381687898885923719792450778061866466884541763016614259292126884713869613936403446152250731534320166820658012567213400212810654068349259066397847249242133615546596015435896001292550924728962400122527714399188193089976943464408654237054116611620604175656171315257225528090088306371289765162840531599529920072952876904375569748401425389442784915610928703196868911760380913274289047774654596995251949891125721579360332083787803323879039990612469187439467919578297198394030017786892673119798377632437796308281828875739357735931160540794819623103750496856307607835838445290457880509789665077050187388633636486721127330769439418726729807097526624246434566606283499578887231166609577628163852353338852574184638313750794240650446782602463903790929784284772566774228527070200274820166664342115237362669301973971953217512109758671576408052736232217955487916944226719292990689025063156436554123351439626576701047397061573414379776005265726265332653552891139430417143216002331385804238315327082241855123978272207080736273677403115710200442066223711196934869370756502394506506420846638427691307338461554295922692325759638673389791104964291472660393624338793799590244063009950775109403890880139558129805747326358527852743657133168062738178734105057243779209002211290018093570393672518312352323394392649808201295044590649628234072782363785974488120581636351688341326663930189830081044133546604144333388116862104009238746067644203547129390828662355265225782148564069462249382543145422528792439858198767581052260703912550232606623174765299303746018424314469510602564735807967097343007162560672861152389469441006188221824155654132601787459924090968109940628145005313416788008971534340478029015877483437781536031648277752924428745093173851701863811129006912564990269692008445474595588111176118897079879909405615196998008045331407625566527624402486322836486333186712070779732617929260540517061624106524054075773255820054175931827596569095376341066983017426515688888910294980619718147707633762601870095608193250477371365358176328400210942384146216243244815993742406164282073520412522896278101399824316322346914202153939418541093125052856919013619576079308149301178213995519957549811462213477795786974811497775447409601301416703993625447189579082412428017900215911945571156610863011222474684448063904141894549483563847399816835319436082867119355072538491476927414898266656205262414360124446792279277004818668308970989307901980329492712523824728364267905425836588656856679497139415223854315779831396737640984209836204827020301261014071671624761151204097282018384033997490383087247299601197184746867221887605866513864303086261606418150780838733346989382466139759217714442655504786884323999551902165782067025737384022105787613836999373837190346642909614325027057102243646182068374662798420953117325085785251902778618523033104452430848120134762506538088382232782116109284389691569021835824893382276986819514927334041511728146278701574462415392823056225397367389644126796036790682486337676013608176452283375094086474804155634429977867798951848141900263284339445371367052053712774062584368629421936910545471658807850928412139800393615748469940623258474098960557492523596088134366813052420160488105546289562415800884597593928429464141136138514808802530009373351037603023293045276990620500686231164989528365074829082002157757925619153739468125179373866724619732754791123660587454964711670833605431451677762536780284766259854766277753425454088565874994402507355292393201134855592360717587518079549424282078501581080891864952467892395573894844442926066549176435498403762574064752443475942618556651260148932289022857845768792656999414570203069512062430395167530888068649003839954563372193505705578351220040086078470857543967026278218563011061694816266359069330124078893453819849590864013355002248802546791232219974580328940824673671950618738408744789886969666367513946665092004610274205721880954855497168637927360027641513984954776233294523475177503029933880155455382489153391311579562981010835223669837158230601284146592186873484418011389299902015850820010039945650940268172165906726351220231007155757201680534695981180561465748914156015674675688354517404018013047526782929505233590149318934266829101585773834174190392068821609338933466034268390599255988014268150476125558457064725831894806458994764207118623890042633041090946276963182696895590293612099558515199358366563652389954217801379432757624226722653477107884398466380194691163182309320828513196436656220020665204510073385297487439813108949921099396001395128154694325196391690560263250333381678396747719725425724753372541233310003999573581641764845790039687796011508218615648357314211459673364591597712710488278143967975317662226515500506088394182973446078989389672206327621471365092879010123118374990581218772817914632565337103981694117827441453914237528849954248914958839396531231507902698663861652227728466276904070411385816696132836098734115425642287756481273449601737339921538171375715486998307000426108154789036969193282128864966110750760455836396367018682750497833041322382509421652187420218845188522279003802399779977958627234473952163547751250595941306703794860032068175065756807515390072554633093062813341519252156556657950442317204327430868883909358206321507578277931860449139510169443241823856729413382240368939632104167356984040382361301474448291857570295023431851085404047193461022826177312390095656558003649383685423248796751319849099644292997823882427968773100031629746343985270322199694320371729513657731668941988223032805417446979672872957327065560849668262050189056495768522641846918476560506285193841861201717653618944612027772308061601337311567313563629893611029850723487382623518437976544731600090906656856603331345958892219563189714572974621660173523252877591026297561391843715286401251916478493941464186505299197656921775008182879422498686649070328387696702928318557876694007083545392869325547675299718595163105612142186953833341043312427957304577689860814408403320394732264033754630539705552475576168564555134506516344523119789051406519971435328494977436318413382142912319149249049950027481104140803928197255193656933449479508519449128224380891879449590021897902963958189584265726840303030390561324377173033452710941416645945275545883255741898289424938460676437605616761700508848303753942666823721085816794162935408242921285026097015990377149484315704026955078806601369249921088789118498991864353749957035497366785003364231304106940382223612383733554913876232790586108535215807137662262396301623443562055724426957307695137542469341229031486654915929623508353373262134117857276124181919130365209104696165608112257228101870416796967336515552476761137277743466546910877519317798555146578021006649144430377976161140977115160251016930128954681971571260443144453979602518581959009301040061794594855773651518917719618924459640507435501486754366273921332763956644204420483378561848442382887974660690797625417430274628906918626798509231667473495304623537569076567568239624380405778162575567692830007317555809164561543675547005697838920412118144545411396661896471009499670609113724543485666995766838828443870409871987050128741571215848827917397464092296023980405194029450170387502235487799559788434459601208960745954580224915719530425361288886410981746531438762724704512881710891071112691359716407821580812884169504424159686433389258147120467949117405532981245346695994758487295138367090260387800860854977748644790611341795361702760854443581866174934659948589357895901005085372288853723188409853976465515761939800225957449363627968413554929204918433787736649464665707482120980680766443446278136947893018518735718418773213341794700461401736398638412369441814547726943980111271353842123056284856383365599741891407512613617906334931948234004889673661039184419008555323474810288770745605760446236716342588939266672890433039653287845034740186240917509342342573200968809915842528920466496820068459818705611254546829518685815647497674034790552520618509458373717428167378415691855706651605201839256586560112263668586087844229554998369301101426254835907136280026804433099121895989631329816963542659580818943623368190906111265303723098971602864173095151382002459543877683918648129293568627145056814640671691733140327701544139096202749159545663211730276790150434726010582937836358735563691078056767119825370440265293932251549564083776502085532901129886500006945639704712882222193240960064073202279200703252260376617516986303940850077961691969475959267392808423556956957786763420688474365611652549841161399582120930682306428007578166917553943726486991392696963764584703522577881145752773880006233989394019205673133191583264927401895604195581766278907017377902561272936869683460563412936424037671875142775921018363214976310282103522143924700505602817213798382606519822601030675461882033446489522099883824104449517872623927659061651158024206348857592524047802821173562013084409182264751226630977151467138683562245805082742125821401325627807131692518386042717276164294763016215980701763720298732084546892954289482849191194725299552587768187316457341948436490650777198750446199813782512312998407495336736945459528088972582137904541249396261653173766275247281434202673000290366544515602599336464652450025430553826706382337238336251317904273189767656437029595747457372530410846137601038692468766732582955879346028511314195165837809370782716800540401815961366412477247797096090266641993554206726592094838515031440424598262819208635789447900467296505436356857565310618236720893033440405331472475760132301881869803166875448369781479427133715029867837849653909669201385621904923948557392374501282191981145689176712747444417513105146165491843087591323956055026417227604474214651672051392139983653015116712329844405836330639802777798336856048142475792556291598572010596116347812734422401920394006612456055472828762190166768788841952034657134016875382971144113996664526214370217337774510808278066722286390169578019924858787291863131400904121481444548212069104479964160892727592716041805906284013232476627294858788964248888770922411787070490505494225498375095450805604100488807675936037790371699605146184706290821427461124097815591634579627423894140118709020106338276446315829370990384301862930855139072390180285597177402983308550402107218953031949494929826876609085227430134660497555486064039477825988464717788320341751261863145235897391865403847576593562213448594565438232064204398752983013510850400333109317024559243167952557538847962013635362147049282944788029192830278851861292722631484870994068918832809469697237183613658961283528445384021859051064911438201536945010036639709781145910145424238677659636751719429998992562256088390681408759352746088958096009063901234699651424061749329456745883856683337470039551419616739562111166070778952259453308906774365245933477349109074256440583109271881184742310638267767512575045319003661192466237153302640718860110363611634073740192810564064501897597171306942863406095117717920435958693808121592703444580699424279283288287159441598862091606854592801251375813679356697885581084274985613198996865480100603256336737081361701612475072494945320713660429228218563973349154877525968668611180043967769756002469817673459962661524754888192405351648619779152134148039348603649540309122094520767003433302868392939885237214906076201400497586303046318468991350020575342303784244431005270455915503922717655152221253502713164755390004911153897813758611688568273347378596236652070395459289959526563683707571210192742130677258440552179906197049643419897083986825056563630867079407466626547360367407281583621890433837063519294237793373832026645159249127216944816600660815994789541110553517289900058801253943002789462304271649015137199973940623178739527783705813056203175582123623962275409073110972105499698681814696926216009245957645725881957425642896108375465975043998788785666166547588756892474063607051221933218661490297550805490794175195980087389719362198412241238393277079590237042479171350676217808738267388354038957107877734299401159637045591084629931861658508012862772499716536810006153517404245735054342172081317898870916602693154089110147755190447671519482945907028069002637561987008414025592703979022081838056370872060144365439744374172816193583228104770408949939114322127174463968887921082352314304259847728729828209587273538837661709055510487943171702046211846083789315998284808382045003680681450901978117575147838878670580864599586132046650340536097370196956989121697767450465162356464011910889056461232256780661929359908980438263269414491299308616263644817202713860087675108141467480406479475502824778861412374399117324963006853587953989917936470604298780287285858025337560363092912860502450767627983569561277989223768936780010002861477740246197880809225830436125286575405026138051703406037417476968509483855209211169199665003849814769115218225979021158379192523751214126663581870175598519699297780249405546473403749818270849057692127264303765754203705889319789959467786945890084100261944383723244052447604617227385168628856931213013805881981989825717906468389356756033521796499214075959123354639550330351274717710519425352752258085177862944399172589896341023468580260426634213356355102480079224658705144744077037760487904582544142799188746777381452394187819031666495944550774801828863982892842823908719350123032395153510345663312444941353734371401706266729735818175390463714145374661428900256899017369612556501006221263122591062201124645878044891133027842150383963371484286792372831300406564721426473471811586846040735014954613852864886004109673835035596532711929659790631192566727066437235440365367984965310493617082366055482506354542059135380355496042693549378490191096418622151761386621370859876309278195738275783469130043634831024026363956511387333676469199723865060417933232664182243043961983816184596616982192097426339736464109831289185063802684401159858624150929791723400861838062510583642234112821915118539401983751071778176567150689749495058798148243501711692631342845094793819578252161904325729808859343674599645305894753833622103226763162806697773379683377631380248389472181203871478693486111837038473330146161329494552776237376980736892152114268567230777187309300276654620641196053933405248663857586213913764891915378065159176641214476894639083524083585272107287976868878891027827759076519052017683281813132624292047694085641211269021982654906229423790517862388109488877039351812580568968145134941599491906042472169534280195042937042989538121827397238873816007088846211008627645591131266446300312784186756931840154434633028601023384888723257661989670471182250168824693806168942416464206251466156238602415339788606216899625754529514743255441684967522519321416261726598576206237516626507929576875114197737713756106923813197357689555770686684094253248806730287982006359040408920639817389150154490168984272558865579256058472087271766733929991338027241037657655499779781015476503936861761799538110946353333318305751414459931568020444876273007364714080315251113774768775671964574960101726424561907659620773878711321527229770516185693832017018875226484488083694931014726377857407067679179223657651143295903748226056194853097062131933022347497703492305454853302739002720347167294465590446320519504961034190125147868425854773356168002510379093615048541311362758138900052179664923273855106668375050011981505976264989100317707128947996434010870746479027741094807770168708275869350385977685889368415739581636728653111591071709913532147454148189514685500339307491749214549032806371742109929126349965211740726007529508768490149762314779559798617758275952233138058063088755622310201002121213823376754202654813650659582850047596676968221526741196183464341381792300483031922060823712535358205419194055625021515655366029480389855178923797460399948796806423555616003346119527287145192240727025635145055768191910230521972958647800775204254832529291582381474344035285035312249253444477916809918848595278029228420632797500573783953119465049591333698923405555384932250494413445994576126726774397055891648310429486370128613126935392246811189851516801312702554738734363503639970894621497710173292679818558880811841067093789537463757670310471067260866008713370666316724458820327100606279788713087442681545743388001412173716692084094105977820379858282411616283174300744599787210718355098557706990713184692953853018386149833833427581908311258288703269782645496416176577314768284405856962713026444400411448022391854921067891206331755866755596192861381285910410364586932028389491933026811006331907278812766380145299615179500102830464630223779695438638205704310493981446552761234000949074085365479101525541168097324446619590827656960463687815326384930941349585059238198344677302133212725067368042814241382307353290746471174089707685598560563719363692681313005278970455419616412192683629490460955669967760792944366810325522018317569159340028383500221520139435238281150480409070875677676144470208276966329667613630328977469300458664094340427452436478202145539781035090248275615876587196892158316076546434050825993773416223901498593778158497921509440566948566599269487387259371545968312688812767859318838206965324838895502997748576386132920740430934858064824051031705307952286654466993512041512961221754825400994193035475400578475362802855515996955811343561870278570523528778473827959852329209965054428775344852951245828375993222739612090185770208265341125892535839993619457685407713121724413876341575317111100139181939388576678698545585644128676726596387524709750721812969673074494676390634947202045817815813137286847161761240501931117576801951328287509627242092901564260029890535062726573093261205936437825621559014642221187336647480391128572291850899548376153906716509237236873504390230354545207970356619226930465835073205040228736528077838270643548059294505679462542093506511928745908849721122393102599549587215599181584700535489635559582289248682520950866569438730209166669627392645703369973089211102509321375766135679893480695173342346481882717479568563376015036555380662049880433110047229882118718120257136661650978948391868800629589024572606891335417016908878230083214505243862055731813896505498264558648499526698095152856399544229584666006548274618475509954038586357705857852479227502460365078562525249856954623299497580440617098127802060567331128703041752880629352456593584626334831449338014950758934772571758863646116222194652519471969094122816129372874879239378914132343098547143149874104672798532705066807624418022450376850452662831336265216854345464368217430076104579902797096464460941883417111892657935733412601117866404106781192075101100460233344227261526310997613514401205379405562259163594276570097943428217849119091303574028516928472237439744172260212749414813022155302177134303921566110637978688047190625194250936629051509910172493327283603205956986944979065470991939752745908283481472010190988406060463489589497986423337964903902691911966170317571229178944926659665173345645053063904570368023772525263542874195250742439612993449087394046237557609111671155497226623754658097660011099621177133674510394346023654954104684028595916382454105398325365813132598978312974999750685955518697751567417018851449422104275909759325288960970186246887311184177463230164087163087197212138795937861084623855339947940768569596795700229382215589165845326907423941182754121119384988372048859086549872280295577948700221248783021519724675907977156273602858068358624523865851298307022064544420890958928335259030479843023423915877404556791030360052699589084392595113083313714210703937636901508095185214265296457519893739903848742743602840318239417255210260418874241734881612782174447604660492057051248162649297449058689951014844574560767709666515451555967935815357025463727916134270883473163787875724197300526575990354023253018178185501477825933159739464316091212208420973179190490614372670286777450513205449793518542403012239198895772423818326472401258297079398457938927764989968065968939245797734840875805689715440599817099340059300910596233274794424459806030561504178839845729849283674337064925133971543971717849151148561538832590150142133343123980427480124884989618646749624776266585553769194074496117862729641507433569227306246766968533767927405439678611333684805481600439728707187172098015792925508274048920222672336045066244516030399733725097744240714264269076597820929254592121852905267302880186613109708920007224718939037884480110158404645093176309155683197789039315714773777615824726844153228355193110947220013391267659792417602050272776744842393833247681251551477327531328642020215937530230609752853480967531621144041598135680425055899997873355961500396766162822982536490898166814097258734541907765966441188039810251936402881943479376767310345794669850158714089723393579581516646389661383886536262675488531004845383070221978733936727943419505985139696231359227657196716750008095722849495800687687761251926774789586900141261305377911624054386966508630171133525960604689959587997568005840133826059047167006482644709847662586342185274963337209212637809712129231540547143309725067340599011484739861305895959904649976776297745371025288700416521310076106225631692188707404622753870887052025507046047073756094761085351140749661905032002078856949049677355165747181511536304427127383198975401382286807959094720081956901191632370315472037864990559849772674526025789019476110696856406204209350740177232654613173933997582723244567341151349608373466774441426971906726455250650493476761636625409895940525648034421955986055642106647377039370863219115597695456883717406747549029849666401675540691222142159341864420009665053183675405839236269426943638920104751606499148607972438932733236447305681816638789164592148785579680254866603289039484564269651799088402912656750943001181115961404357252536846388413020453986456130747942097778176235179865268082985156379372999717228270111832661965092495754396339623988109477410089688840544665714591565759517795491794572111291971422012996602911644971357861807881294186605246622876299576994588514572315306184155526082012955699065533979916237214453123637966262987411255213039096840333965836378238339272067400760897245197301782721728089875183248493020871670166752378329616697811868655369765381540505712126919305032714837005107060447665258470636221610338705936529358329187821959002956927230698832026267915275540592165051352530732682459628048704974968549544587156975570820947590835620656242523982837021526925759140042172472390476908474616280350903849326474563507943426673933000951818190897623639593795094955102672696032773756499187495964900685795464751859778237046330210240831819963270877025658995620194268064358442691525949775448779498203365125054179582787624501570194367515293904498140024202186967860269780948448037280309720130246030285271384903469277964293851620598082353156094988336723212501242975954315650925548356434651976725776843559226842249542173787430898292695980787705424141821942856065691005142193383923649620328693130251572814850731202816183850120418262976531687590600405410326217407339272592102961926675503337381302112799177997613991536336824015454182196818569110506561346385033514763611149052628710962668031426495447512002628721196947606594638954834341611719395016707833160690712120110613413898595241962169847654468623508682180619950111333094860545456000307018082296604949627878818007384545002096798551506211655834639111591408876855523472355285798906504248351093733881653215805530680879949213364932015064110949573489563494569635072315673479233692438769237482002856003059696286469604924785838753634265997379829323649188896725196334162075129240786809429805902558371485952521223162438987386209633576051996095158836389076610354716662090422935222685949311905597964501173435756108213847782374972319737362515105339392691942048010787771823663390044832127249536910484363341780251974177714797257523031461837480811974375092436458719508565304742778974195302995816526704611361845039512869346213812833799359888131302327924114051371406942243102490936380348956802524218426705863118543937040273797224187916206029830694467912722146864091285533492911186707031783266670072793977281020109805906799137063357702475810650430730149406866753485857504195641790842435538760092699018489557736893447055667728703899485030373276377203888090015541835463890103396989026477290662652233435998987922889391749245553278296154453315837447952325123460266466701224394517493110628464345314998412509309576202781642334674124457861150535046641170999776083085139318496538344824579902254504736592432929404391631968053899240460551187974135161346944894671712081133087881449907227677156155975311068661171557354031561567729333462514516904528118972071390879531433423119374161348872617001515422716618265574297781467715998407625940440753126026592201238346838447275616621243367688691401793585936214313540863943201215446513372812176623440443290596641743536216854224600876631050776613436983644533905648752526372666350232372443475567053266138359951971546365561015169815005191597756047484581464340190913598566836694994973284527733617462658422272565725933218618139473099888241966651131429003192121627486062199868804484016582763046458237849078668993355938438654400081048261880518012590502515995291491693231755166863621035163774232109217936579484181731639343155107057506085173893212951367250287909462554713649507205352292973743831352145987784228940262078528865675788660167758785765752283074662073135309682892838388402844219661462920827042223331065944213100144446798694850886928246000977213156801526290607976826180578516604906000976688593626345393611646600421890950026461375921942172716609620790484055019044316397296664229942423329632737241386524503180258406375834554693858348158640654138035723299315292550710629804587693382673968218846130353042608760453223321884489713948161560329575088924629858434319802327764756486581147956860200983669983567512500798293248071880671498566623858918400946342552682927621026530760409799743916898635445813848335705858510763534496356634572171345154740295924454571981094984901420557669489860192014840077631922221415007950254234427323844938748452286600134060094280619076682889188819289011763972642584597965384417404339041222699452924243220088899839540264513797925213583813808316598674509483039488650145393625262266498339920867822108934002933735083077709569710896535377728378497462195689556092033809653770651545016149019528862323783876044057632355708289514358503842840978810107381227852332279456852173177553441247999700738568646342703449258447821095318920024098463038333652751959946620517106612571762431052495778729976489114536056349097706474227096225106120774377096467560825534512324268554167367655763261210038750910747081602264360695458265474937148654178966691122712175902191712047580625677693959206040182810380645790689391228888039066090371474977392821407203672198990730214583386941836078969679148845367351610557823145496524096468838541382243085864050271711357782465221062418714461561500774482649540116409239083699814361001777329001472974152611123340710188681434912726872342626827172740608911130849384564880510142532383911890716918629359296616293501746663638520718260243592893723332985048650884503395049896230258851854533769403782640055745880043292336953385556858752433164767731086452118275301821704901216678897775890846969104968058280799474599850649575067716024256612820230528260089445290642492945707668222891224815411934304028257983551662894682434313539413021397072539594317690588434062499597111856180811651387363275323476630415292459064236515733071020546491660536211718531205363753676938228748030936409297689360541581972227702814839669397684921900860095461206440229021804304125327903331240875397760971457521755301796824832374663914963647303824481225347453207402287794362341910000487043429036426176353522699066835121039711967002116540573925641422993045621917124963936968803324297461530952394172106247277496842326952230650060935399767035643328963577176037323443008408479508845521638678448736753093755654762370060241920407273078378097836224999122153408708889132228237121620081208535044658838953454460799651421447340400001017137695334815597914605827438120109933186415821735651166457291635114116764816127272024861224958239353871046480384925448493466208328961960799058497106160777290054646561115559609963771570388031575823654480997157958749308343738562920563095206069063920462491579214039668110185038984699081960452035414758175129964838432873184844033637384538122690941183490339309878200935645734792323171647258746436209786120924675885001385724736446987710812459490738034656176294188490258265935156998562478238925434216198491986623125484023151508002615513584721223039384844607048611077011316161538624964839584241445813540488627577391630086787924483648874646775612874107961589796878982772865655379854662087550287904169337083287087487778186894695599535968922329458018061422365443877483837061832888464831135668910719649289787060727353604807073031916309201410531792260463088294918896389509595343883619448365337225139895220116752477408089956484020012519274220356794407899819047834593432928522479348704285264012703942627564725375312604030251989057997063198288283786133202053441624531975578098763262651978560874008470549420373261957287387068455708389714384594919674817031959684529328450660208936245564421358439045186526025135991191936954307200599823885443855456357786807301032963608920153725309841744630487382800355714892725420217722471138119645088610288318372570554180457240136221051733140900779491074491990118528979131982824893637945046330853880172330045210743779958876333119197179085458046152249687964556281552387720984979757877273024895674931509670312267193441357116861992775674192249276932277743829206684730832578573376100908932608743087427698582885541544430798830278249364829744793875734260832344556076312816132879042924272153597646914836068873603807809732193316631525355936831930887213238491076205606694670256308430032182888646727182727346232560908320549153338769398995216676287132153434560598270074032434908892177136757485402548519416600537982307189885662474971280975643159502748759721157999957316020910527702965383397472162491430110607264012496406632692287636085270535734208112512567439171573292975473504003068410707165159647300506280897280237106273218263080221879128175510794238296397387044515680603451794794063836337892332006692767133310379706504243358384615675013843515924822688443719279005685618082521304111188224443238412431190418688274714495150691586318957742541902287060913526296938053560969903705390626220608142223220348528193352854179152535686787603289015832927041817396070102940558417843962437899584361284397160431833316527862099410715196955440331151219992866664317326389462686710354596945377547882381590086041121320051208587586278619678941651402147334306957402069184700386296444587901888480523747488985494755630139355297064559500346454507359869281138766103092072321780678050443093568420900212154446323432037965415626406514929004589988793047189320349030403763975509878995774424006414021384582523298155501733497676218579819362366361777545638861343745560520808203345026699469298236619804816587132716763728689518917759867968724800821246869138030185744969541351643244267175877895556060129844107275113517448987827138900732022402528331112567936328686185256103879392755539424951397613568842296509469429587853147739668306946246782296738194920403764109243045585424693236422035807937977163474416698144235916138028885661342102071492969075696087426634127666620127094921452087216953920776026758759065366236558010543790974873111255758491948581533618944616970575385734350794409183591824697046574775305352581043487946427295441496602231252553619937282653123566694742920966942723849437369751330392584521420230890466171280481823380575499838795283110381098445346401012901477939729503956130980917174625446483811640930295220656379226762457028249431344364841316523070939014618196587383430257943791714435830404127278683734859433956874192392109478907710989178120931454923503132997413289703374392523126478700247505345315518331833346420234012217272292514353617181613663058352207816849249564900575227549306714600182474731097963399089358882284121591233241618598160827952944395371212716135527460956576486736747586090505152830414336776406142854850605953853312822509179010734423519178851488906075800385636247395072053634082493108753707412056325079296826609118640270624389787418800902772118258036364835851407227396748128963041729693994399859164192900172113887828702865715939697034806334756631508475782256622627322218153087638192243601295965831138984140516552584587464809717492572002567608940509689694060459643393346569927715177918816516258798445564202937261375273715569194657750450403506773418298423361681873028101004602834747199391687520315643362502566117795282100723265988558481998684893051524481167725706898138537003476463226971655826804671821861424672762346768672793143214374115169958341710345186458725503682008617643818145404962924256207855308015439481780617512150182249281259752348674046955931889011366897204026784227280095273733094007612861163893118080378948062524892075572652262708538443262839858618897870175220407642993647072713498956222372936093759379262261920506040793413464159668283130553151139353766761033123450507998097123332727863535451111758166524053221937122803343340315746601692585556665962244861984920235332316822775445513456410631804234649587786617265622316240822997825564984754421124339246955215796897251116799628484778591527000679816193584012224942786414302195440082333197977733109074145406873928982879883009741430432551903013770878874846522849291673606511693578323735673956674239076075420374657798954153958443381881855368998465431622649879206192576374349712727295988132828527984501755273903189962315550439899054772016356900626060725172771193240523183340894357959546406815820593696308273453000951395678106002627410009226850863721121257345026469120928485786721827860410284327902139814006090637963491464095832829727386999433784234572440992536023030386322640325230347530629533930274375129749200102660123422131284088282235079729563775077836234912862977104246861865086468992301361870787252254983857910568894156957549561878999559508976649464993023902436767981453883754432416549544567857756996273597823136810656942196058456514834698195683885452291973395977990175364869316264924275866333673891527412116330169903424302012612550819278832575099283745680475320838137836740562231424172194897441002612316630582884105995896309621281767164130189197950519827271962295936308190286749959220415731284680294851536950979245276800634284845663685498663922620136890267861019355936221868087517722574943712593934887497038976227365874894872586282368702857756992499515765853498388827592975395043067315835738145740625662813561463719549402856975890612038117510962997226564714967707091092082029128076481095527208009282351782924520512872983894771885517491029555293204220888173277709922532225242889475430717906123089288726523199272734794257389567323212183261291368226397741879247955534958257010283851952549189064098095556871500211831349492242370907072720186020091749088873015134217926772380622573299963174468412955337220412248296620819517670332473834669407676071278258542171780413786032448799910932675665537591433941889196993200815489662967272951336141452395104646565518727784944771144832208061652966581536333937527423689242215333736167669383002701589935199078247850913778521105482346607636054855025229320766002262956465832271818276974520749538561420655201527690052202681728134215879140444650064656028268240388940267909278231950918218897638500448139140773961675123326639350049061749862087909340991158659426639757878382082959687329024823190546687747862814907097048144959826499607897142681656577238447737986903210456392741280635350884161029086983936696392648524058015043211495404022725922671546102039707461779992015955355886962630606772128580874470486774315383386737476172534552525599644360746009210344262345140592236249185431018569548942173564112484953048633781045182035970806590250806313243246500304370035132320778435426320303143774131649148013729434030035939156637709646095209516622767117839171420957581696376135123417692473519512452981875618510973536173593229405778830961637924243781203647690183575599407103343780117076405186479480697789278153540370133440719431757952364266829377969933976492436802766010201178078080781317152465410056270502459152913880538683700638657582632454994939620180098201995869079126318198907366348397488634383627853869230509210614933938316265672623533956167569967413561991272360670558916086996564271859637792708854714515857233882667432194205760742790769174463210359580273400901659885673722940019450232120709026514627500982306243504003218444569119493258240763459413113483376619464005158096620773416916112157564918140808178873394194891315726139386352708577744095937946670804020335838679708640633042816166286263660612478960836807776247980223955917175414036569292892085101818075353776198218758097637891923674148972569341209375231090521041610881164541732896194245449997174735081269430950800063252211286851072804915682876977157895360735461164362216510069521043023839936415025990105860539643501865965330289645204871224907183876239270096188266090650440321386063688471890566874684926821696805816563013466322255965818503304559896956812328821907586094727334559563110062400023142675278882826101675187371648539080533140567538364177384973955504389138111568588731681882271481251810243751367671525035961339734266416854503397186536021445547405894703196609462406075673254805897315487018854030486106272815505562885062883254811170119864882876569010702086929330787197890075191505339534814723033240616538008997663832811682802371681737466127209697280778437404861956852934092876597016073082730482019013868872559738585868697258495784415296400242498539536215129124951563906395113729538684199467047888809490012677565270220041500908513151268913065763202221639920739726543242473915163109412533441204065884395689147987439693914615987002360191297224579047656891703325020047576764157603848797502137334630071704112701999881572279688400619995762344810531333158854245032920868019594285469367038279171048407076390491342265849726156068932892576955589333757939645410916371241956205014537708728491651861595822316185905206696475340706599025616248003753195720868957668479341645994371586181232253513443490380166105093820464364951449777297000973152256281886182411149597733708335340743826227965699302337774115126490402054769948955866486476116080083351141264060206220789394972345060278644537530842978221823600424403613659580246501300070245080953143944735278476276965384238137774289969824954178348440584270153963468701625771443359504157073643091056745729256880637974115146552635406685009532932320251949208511022583880850011753528874598338821275853322769582978574256936177422074236792915349289967661145531699135335404995705857892257944950068237132193669653582894067541714779648102275118015981637685797027760644021914134927135292428514743955570330943444195801019936240123377672894191568957160776122723789350072823469382077974811229364517312876982996318249272953550268756044290912009139747272734828823717112837741800632497788240815986857866486719075954025242098342743520505928010584520602515876330437334734486958129302770224522831044351009643137598682858412812114079167830527330574583842167113893997566950687643672821192875341480041900201361918877692162943380525863407520637715148510917459353291122056669390968129036957151473506190106763744896476532916540503086686708327235239656401066496107404000535344744166011168710134641944974961775136531077576644870920354574203064676114269999088574391122773712061275267678503922120620839426063419816909659177506848660336499654588711236154473535672656044605946021388894590305280104577401106323144105513281567781603780091769530753600310077502715663278320631625761429737469377282669745894796196446312149433289104465755650272532563180625879263378278819188869589704661036019674835820366530380159358977616197394911171942283232913686313566676082703451460525485404024034818103092941474352703666483207401954915593823247972312330369935274756401258547517144346698980415249806627645594597885642059343959008048224279811527804277391695219907942375519496410190470525386351682489681688952148986216366183021692063997155332993911023285799440702243967714767725716859147559229432485672582021178054699150462069981240563174679824294038412937367360909689081007623115062534278313061382048448266724277121779317794088310057583108571356694692890477681097365020845762166985378126000524110504768592895183594309029568484173616424236627309542777016727360960792784355139623003944165187982154668212782358915210141909280211795248281458537318916725474472548030266242179772646009495112474034702233769398091671706984213770663259042125003796214116290775561215932183674022058615553104631120685402169575513378112855334663847573752986106504709788363856449788632623671209931698919279732391634828116234685240438899285920789718475371503475404443768490935704953657609749765399547365544321503839723288425737342474629042386011716882071140649118684527307892456326010316458295258100433227367737558970857010384065733094518812991131756038737470693612679536618460941358000447518773704092020365210332530172170500100654140672171792903188777479039180271653384736794466596173379700911188825263549470305790533210743991766445424661454731765224275514030789039210186095251830450509750197112900135089783197273969634393302376455285097821187748601433348256553358682106134125962394428221922166483789271729405683708573603407741858829285065468880268566454991165006691386819812985001939577128408261373661046737449051696445900690531028076862749546378395000200971622264486387016208996848323359499925067085050434733314130327023080407271619875399765472326801833809580406499089720405872304796313015060753530857047715616751890463619998157625484246305306917910828371673993568617512467879273740529413000463089489296588852708835786774001427088998934231214480055904412535125793281993878489637831528248513313438059015655428625375337146798201619497060064095046799101224409105477511231419060150282356146212017068648985945438066117862826320895725409172564110420715458592934514932159587485867881103677470443367415277077424717400514242799163893361912797645484919376897520366998932027192124234952919158644936938948173530380276754262129009494844684905498330351584565512820939090069763286418870184629267722521768527869947793624792946250396375687539528741277587369844225160303558479615254459151152300571653800059127522616157923736636315719545516561593996414022359926592301661688920182752293237725483837177940372786132912230982100311671486068049165589382914148398379176337188188759304622937919223739866721302402039603976565516133969617205450138439614792430737192679573896856943193741080283255097758866463568534359435943111843769354248708263440749189056437005713257977280843989514762076382866532801516098751789487736242965392195933082330512677914757362049804081861423562435370805713456565292156667958906369692413491389084899720721545567197642657288518429484234331748392177761718165756891056883976680406547941867926800404059650158308653965009813428941631291696721398491958266172273262132169370091253654734027955355512103731564546331984818266271041510049307910338266623034300020100816418972112592474267643971735145599544659172235729254670292739892291541916168527383391135134025535865827435527493473430956497400656180224471027280672574080732536796375952758461461937460384922317488538816338396679045892842953013495720714972471426734517897795332126613133251285440663272133636913007235867640704334097701763719361225809783384055976323722126218493322063450409726214350478697795757306388622880661058224193545945273583349199857228357441649930811510057127224119670359228119993607772592945902266210020843541067967663347157412110694316069910195288749312169944085339093537227143381103575503680187759000222056633910956517281841672396904666235324163158802859455469731901904863787516429427624286176624464998919812969067845903488697834987023914549568838973332022304348512155502627004353111387630347209770227433391958063372427811344057465152074869608977162496166322779335805960331463716705710246597057870247296376287807924857858581804043684991932677364440151951397065853355564247077164698965907421661485200419894574078599302188497202027578602350156431911484059479994708370749512328481757901060010849207069115403384171626549667916789100374484117342219562391382052661987721001483064819539657728601917218343382673774604832713548106670284471538424497521386379599849897540214259369060271892798271877353002926613209380574829919026989415133696321519112948899869204237488255688190630046419722342239011613549068469733596418493838983317901245797525988453268085220187768646998333319583171116629146240513495897201953798017144119803819461133509500107171006896214104449793335947363517188660332368189889068939654432571069723270415417297654795032824127321773320611239258747581260762796280074601008282262767840915549860204350324049535055948644212595092678662768517433965949037122253221857018480779633275384918999029654597056214557310010741179051103028111884565797040021046183163455814996543822565585176982963796440414246888432930567996544257583946251457915612971153280018107901284007372304740056791413216949883276654525100980380805591110353894122460275008029339353280510987340279020792714553350746502172815180645778480110322250254645299674332774484083553152194870123869145739705164419100382437398251254247948944653314986376775263735692263258146094039611321018279296371246418601471595198172667454785949733490463743879076825221786564963099062174111708577647883664349620662743178791083400213461649268121311522850392626410626768959136734544853095841149396659134893414683866996220679903811000827115831676885334466870731460799543612198159995805717197716144751275964886724112527132081150604131120217786703693072498712521176602354861803679984807132287786091564298354139314244825926174193884551157806397124331966110916002198739818015290400390291665074253837727694224825438169739219185286164980784323063777098105711046870003304162653841839051709612927796954981779303396909458525508868998001818875668511484476763927128308311526002886982431634123787539170547133479388743126073059139307756814219471041833569925340678125752278124945578506725001141143312018430355194752436144348387898438971929035775253287574450281403989303048216189265466317811740206659716090409554601979490680378557567595176770896058105460436713720868353905543831117294822226153890202371976833934336072793930818538245029587710193419622960429937599651646800913505827000617847606787879376125101291380515480620526594549819637359140319707445924182935916882034013364708771844117741896949017807418510141685697711515706355154722012203231145096757400328148129701309052960191137864169869662010937625023171876306998153575531733090661482508233413530763669290398409253920046174363532689448788085981266906816844482572576811127695079017382798113976689317135898512663411126503586484777202077790595594102170134809765645084771581504872381399054766310722123384875940478236273251167151431002601594905115348937462954307994924456866124708554960685000610016682413653631104342263496313088973608829138704060480165680066593745152823775278281605639830357038975867028542134401479282402164362504876240226792777833602032494423357496902953471042400600707803279522309028557358953543042345163890430754106806601628233092334185187569801267799448240593132902458714670464153222869668686561592850806480847718822327439758862924692997147336238898411068258007003258912815587672671312579441164252069407529379959684755567942109966627680272912918204012863838179760205434415348241811922890857765714504153689782452968098888471339852646603477009762286078040435273204483842874667035449226545909508886263239330137462088587140920873667626940841461536618472716041782910283129205632706121638888896136539884767242803942848434967262613471349689463194212388717976797329306841484202648604417451228696410082900439237477545838798080766171839724528644238906215060799865397159760886357462513122923335013867681310011535256202778497868316561078028871295405029865805482404035745020650567784913236716145977562617949504011308961623875421995743437259338181912799198818129719159194927343326473618768544750062582422570150965923885146108957322922118675567611075793671825845555546468390568820941714072429762806942944765628816077268696031170445213949864938498587345365349782885586139872078235721207924857912375601491223600972551232873989876191002924718567774919130560999382630901632270970534632833016017119641248425902774189996076834362874321170411071175531279607681616855904807284792948542660881667937635007183671755977309797486091248537892836879174652202405415021352639486158382242958286362090903793918018462526632075921257317990676683147820647416033087677658608759376169197351072985552767917518983189523203698816250082331919772967601520892665033729849863748342642834214197159290710494985522352634361700528805619853738542729951222379178862330991354833753577349906265460779747519055495450038998429169601201794053446621997834178112138454552789978150104687690084316995279559476070798717900724920581140370604931738580738131016180121519445660466707880786787092308541093253228239698296463716652810525968367812447642510930249997387486582389023245013002532217866614621032367844809362153928933546251522295439028303293411683674083788432070357512829046343906712076445159073529581045315658490488124758549248363329991864776328871262824881041679740661357835821570802776347440760279998226705797023149871302287811962187597379982361406192490920236614790153328639474706758400443025094715781655630358359810985211117979171934769622835544959867454306824306089361074792394164387470201054104940453743575998086297099656828723539861411925141601867575078508867111655153659401999066051547280379876907838881888929539156910761349677713363201638195370076444645396859513346706479050171214387382069536528036493708150143156143908407970590644896678423439471118652767916494710162442646284852397657007952916636059913524954264151714753367479618499952817520801278208671008991889549170897370774243062846750193265668242347978180895064341303039496343996857413297209676694409202113881907657227039843433801938093343107774026255666913848389010069831187618486599386319319998741076658156632158184816615936038081855932959483762232963943136510206997925589049075674620395134326459430446175684529615159412089180969380092874459231009064314905413688699577490300524184316305137255767460896974649025854967433257040043138647444858706893376395097745090954650351799787823893968297685450341085224440950190616741897178286905507101613748931114961276498100252583831957380732516934739903575104946493924171414720280636440841705500249761793062472238733848759083384723383268403267578592403861253795911707105601958846976446176888992886291667402717411516221263360065242474312151595621311806265220498187078931931708819282729517195015811978781957430234165244497846581789187680203722710797943905893616130038708645139037027255793892945299251991585648607691330990781732186038310867243750585087772697054459013087568099064726224434530638771880306453602664308056724892230203266666161917757732851802302851426433752619139528158097186133038645982755769346556147863176091030119459362113108277192709921532664489522499709760817956329449546325223097582435038204083012080018340219640236118044629353567589876266167349219974973923318606297014051981709945828846324534304075915224914893589406421187322830902583539025593953318366463446764035076256412086197217001010022097334343115243565951077380339623843824528346341096547763335774260552530623401453727425620045435126078851925818525304580431268063263501264720331380568033974568462579752067000358184487574764394248054924394749205524977356903804085783361220367764381466221252191718279917599312567629023197847684573367964519391480863266679791482762768330402234560509109333745989766709439235096774856610781583370195173118823296624729533669958405378533645371593844408471521398647714988998786620027376317500515050798659986152436540020508246839951183591699141173496894717936444365322929835527396701009532522860771660513889057097542464854445521179008682812265641597049092472492425736740469874230923812142574021760544583446083097914247968947226920742093438798421857393595290035967069908450565213109608156888029683754674190530512228975017395247187755391858754774007381578982218848829438244195612743371633603243601454464066139397898919987609573104881882890609321942595066233666234123359274119289580339081904084391750158026814898575312836269923395606125901320720688351632879467866151474985862184876948681539190675456140801188688396786400704053557038348856921366910516676847320711188187880167050046102242835767770204172913211026391532980308864980061198651485661189375583460008537938276737388339499867353037386915948411208741778005923473867936833683400704401425587181649634576937615987846708604930048331920150914718963333007293170538139438223460584889529304165828480269702850165289896766361672229653350885652885803123934215591448028954467387693936333843379226791279505499411655995728551349770398336406818333695564384944534995360835029810803431424911295979604759507064707726535369472606819841202299372855417296227596096083708018908061602524601716738675465552786424540465037818781546879527021566353732035753982511156503489432952715777905544087751651603774954839827800381115116248860266195795494905838943217236870838825590453536272547478718000963038444951664528760637441028164238375287069592443042767323215616002984935099386337560700543618104103502961839417506242855275620788537532295135560452018006363610578738437629547817101708602738939019898224399159808778868161985523573250892715288025763645216809038554294616483735323477845490386149244028101736934387939259712732637999538087803245007982351404094445669660991775152408548354888944547530862186920236941565777275678324896902071015959993590468848208527243371228996522529339087662267560531049139690119757753027017229792328761424087595080235698916897953788761954215938674731228620904669744609241955396183177824530290223399583043148136272525335213628085485421715787290715576953051558694410707488157062430811647120715332943663395887795158676736961246848610391539113592520396176000087810878722250338892034051598571257625054706583482078263975682614185516919846413821095696477581597688506560100942491208433543655669205202503703862613768641973870804482957720661445964502663094477623049711871318562366786290320084442764141304269290345803875662927692386249829223883651060817112397631411453424079868117313225490143171096495124553618882816455991578889029314969847186442572058255982018710750788036439307230188164473757310425012135737441213027536576432410917967644659806243049180731629417308884615651373388570149560478377543359410574854237400451167748382640922544963243208877489241199439742652432848359319040617628381714672292484680547491051084201784615706033516208911040636192685508621363434064828690655012602704361948890262939699220115861639564760451999399287155733514361385084262684710084484121330094012366004314006024216463648806481867385149107423141687937566184248941719822109013981279621362291975046472534075514996307623196706170469367208741739374712393197552221528152384479217927305116346299095195596869431546646733738480949619869813438663853517450807985678178907722478929958817236415295638380944256515954833964868965777281593785496642186563241348387539455384240364658090551126393882014834733842951444259041474237377002807691028990703218030985387938928821345630349342842687385946460219595552231252703193147436416648802949619381095953988244818356622968120046774353225711872948443607635166005079847400178243041685069743529774607890624066955847202516048074389630015820090900877282287042219212355975978573089101720019051204683063832000109217594642772019399217859305554938015666305355709714943593575316771045125238841419824782314192285341694741382288954803023715885963534769512438755395445088304264202298187934608457628559113416770147133165647181099716614410446771023932101436105987486245212710266838404415675312019192750840683103944468064580132990726667186927338464433120891631686382804636517885438363763302530465073272023542840906198948921561488314778192542255609844473133498526998032918311072542745443565879860172139376784335657987999653819783557117356186077682714891346383473041391784062581053132721074471490634751196266342617142678389993389860889437252746369891093057804043689574685104902255427960724407711962661571767422617766585383007348756385343864474436030029906116801263458134589175194108087215614039398954028803068321147800609161941983326963030110457876352531921052459440625920554596470891286126880063387270786270132124217758840709717884083371314786573935237306241121239199764734917634514194099881648089076107814373490628082292334545881927255215316848959330524288027629288699341304920690283125950799269326315625237228552156456926258536341598453839790299723743579576233913856008852096055658799681440527589164856427156381822915568729289104220152725983923549178761012429154805448084681560529672919329067894609039905667988998519338452996934892668880129598884174311053373923659707409629540118301225122500619247114124456136095833067790781622503588072048663416996836580687596213556514471723643997075180629814051529504638252749070138189622762152167451221144548964978136715321099080616492195809270615419034666490551634222074145473474683969695088943421717133744048568499628352891574038948052635950097757776625404759623291729072917317035932607279587429715992301257536170102574246096597652595067764353643989258624211702138486675675438574385083296037680810608310294149893726913735871670179825302592501536885476460996284620351175439637426682222682257141802929167392312587768853082148016009679638849793459298172466535451906087705988372734830667361539938205966213842424262810305579604304754432449248660814290763829426884274963085178558147010187861197110117186376786370487684591177845985624454386984184636233175746503905722002024637557686975103386406552753621620631139684191743427791994655094853473483989691106997262508953918769372287236068632660389864801175836617997614167583269062769819061144695708776638163435976488127297878463667403204563711746975286591064324877198355263139782268016104273817747907695487491028507673265252125301006085064433001495086003377324150222603721391204654664668603020879348657972932112306919935356638026920561801954534278807435471821304667599747102578527301813841547970208627888405915836307244301369913712500053692118442972536069170785224596207271830608752933601598233591077488754085183345181466683989007648433389258235961951023364624954745676005378672704222882068229177097362348459518799664071168115553302131806688437842274007372362733296149373265260878868811280759200421744020154052005643952609389033986723440999897836365258351236322872177835936199433856153600737908553505940500399642361804416946346417953763433601411116749049815420957481653085979941989860530295306116500007410887211867552054527539552671892343336288753678579602835403198718110942038824009611473777712346306322266180987565242843742832647609606307855603085159138384777221403238024427405172972512691191616690294642803228920733846443607920759516366380985076020839444792970295994869016855919944419933259807818148764501163358346231587248073889184585046752542007247720767056598800038497524392614558500412646953896959262891639006346401794493733521786896719804269285908815626723567980577250697946524144905949124485702294253741901917859093108528701309486353226391271590150612665195043960041827038282841893717747667229823231610111245729609981143908864560930156883402146042858601387845947896117058961885485864707958614088421996168075416114492728783841259610957074622443936037412727426503836872202966862485280805180442631989459071668589714956154909069750701693908350204949772370175592725165839736665617914627288339933458291872602872873707717790720252178954082852197230868387887508259497163646854918869854908103222207814711812607965794122190426023061127726243333707067378483728421906229265051452541166919926499852195463689881700501031517269658452799255395993900142223288214266627280558073180660241828881054684399830153874110996097871098530416270409582238570461265710615667775588864935682527796500001471823149525919032929489156379185273107123952966809552552068169155413841521395633546881544003608704270119489077442531277477055692695836989280670892482300916927250282504100113873379384560782142176000033650200343489310065519675191075545635553744889859282451924014887453272883914507483375983534911415864006958719674974287832035735287197718101639896459345991129784065334045728739746701832094751166724999551457663148555773620493377189652495471853287916782631445444419742901454319297549220774561955255446336679080671932959989602848682397855137895368538061769862013239738082129920422253832628735327417845870514375138006944244858712254746586600399568880388641887523066165886976197402588292426364163042405266025733618931281021887697070109204412002763379477072779749415212234743184479273002484125747738754756987633146339322312109338606722029507817904174746139516411398748137314236373104958525884084465797863194292570176858601757371108896933962435066772896963088579113445687490043286618467985832911896788862121879930741503313467522371983774696566143463028480021176476618430378908016395517497865031615548964719937119837383478084439043689331865003508688667375526316502778659967602811791226642372658003187470872186808750249029439725979718667258877367702205627540073034135047290071070647220512476903601591203942327501203284624490013451241950643680508371064247610797396902201623792440574017960734476445658273994283135317330682990065408303155105438304351890673506474146948844849320627787336869367514217506982786890775759809506582240449085388816606170842886430801151064080979839756322766609199991711169548067288278007111829473139765162722451269886152244512901112789572982042102611568827034253771376508772070842474721571077506700067480370851774434135847262629107075301564582447638714703904153640354187710032610002512584300678316507016783163959602895189450649546491925259910824570211910679861884867133047837481967128150120588282488644759025798572664776667124891440425928825134622238311456693190361428579704383499996592860744725666547969297169615731594646540279948943538784741910805638667289529173363908527290487762230049764010520155762696118184294866486070428505265652450936599480778204962221247932508596448751079323864874822413754046244826481986072120299476565521032446363605765282196980346775167722341865766059198276975904682518341628108379583411466786713059746856636090303174737837735560131606689955842214459684047166856779228259107376200788173384693812594343102133088923644996988404978746329586748169039722524949624267735562430362357722032822411516984849470108176564452246275674200610364223373724493975489109536197550586175251914691590443494166327031494193633220961649318273476335255902391759084320128275666804862708813480087642366556145755882181460768743589655055522617512127401325488337956921811699708297610380103387624221676432446230707344342057727936927627941186315963527734587862420572082961998464649763494631975625660322334694800716908398314710632811877249995087010105366762519326445067606865039703007985847635215617819441943335122619907010433159322479692959644055061727899889443272306160485159204792628027586929194144232477484486956648534357756560694187720480152703255244508749513126809279021870611879227148217635069209746228170375368863929677742726950646067850145017063371690332659840926615813991538494163217835338121021089147016806657780519066867561940944861387789244952198723634250913961591686313132566736217933277193199946574757228448491234313366906601066779248826077230327906278184417188201172131409163460839108772806929423727245188781989089054562425034397393573612593841710417721068476195818244185668606563801415674019683552277945776702291856574437182818489542424428220840776994022615967960771538217644809966317388902106131621311945677277699708725477555383999495423879715264555907791471335726071353406470657426071858070550534456839825306706717194609048349841533541996640914696481154359069548630322198867021219013765552966631989341609847471885199367391436814588258285518513631212855867022819103110743993516039777690270724812067200449541890019022665929610230710921827205470853308618586034470751093616272994802433853917664897715776296373386116418225595178047633404149866389544297234895022564437797343949480137838616992210779272137775143878534762638165318575491685513586688124295813117113388786715948450658703128120974548556221795626343292958320143473733448778545916408918010446797908422772892869687643664204466055219102721281004516091185633439202450952943729403869028511479779245559790460119048505327225316674863077945526384983889145957977641059470988984105187104683108233993607600688891815705801394203564245889858997499548055882215945834294181910454467996385286106437890354392755076481131030272388587732019535701079324788514252537839680541002496455386258820003503329994278172195828475974739629625547920046986414917208401117701058301991972227741647396472473335575225330761956722258494357473313451474119505228654458256966761536820967022668302418807351155306643800073590412468615381534329115041929595645470120651317170377998302339636511222946256228741522204267988399891011421482343697235689121967483565990720485022073010727918546343156140252586725869601314079354276172617545600920384067325399962879243383806213387384919515263452063226756444892837992179280917600297347800803093905002325844231137525223519609204168075345841982802751562361483841357951297119711091032978912155672409750779751224063326920244734883923947972770007665163616454240243407440151414200685341207239777606691010910730392848034407459393621626986893058927046755764535607178470352729711440782307121072407887744139384752804248122881907748286410581700304071951304514278333840841826372671304702715694150633033670793790448491847824731450884147390788557704957000998206693753711385109836055583666041795354472970843417585614620422888120874571867974952999771615761464910580112476447661703822284480752971808518433723122824789590697186535329093242028111245129438968837138784030346508378780670877694232258902263371465898830084681948337268870521840170629040632250808876714200353226754665033997305914996974251421978941825946069631067223569006695068620044642612958302259974596887609540978673006937460515048938690345025348335134742033938925339442474423871665788324697757026729721061186770765683941443355870840187131812163079988225830196028021516939456924204677193752515514990180192289509522379403551263371414710320677031194265514146844349738560093666913489388851966412241839720048851284241105051526938121993431395210491758678432335798115077151415621247969281945356536582316116983622709397603229754670910823064729617252068271787813540994244862096632290589559447347064628094782877010669598513390537191532957836675649308098919163358644079168429424420695492974804312434681271182493193508666503648530728779073160525425769007241659886131210976449261872386277394519688895722214391699046972835161278818249604832091796862313134398440883530701586409410687034862073020229516807186622039699439771076263214599423716963114159683744265660799640949450444685076161395552484033140044973477198394712649990389084858439710918157508690000525089255702414566031232508822083548152626571782173380827798497728221403644674154282170920552778304360150163940771625231944245469437724140226316218262356997833368608845718936607412925000962540093105685081204079133125691944970063433307698521068497898022605268891438883483381021839358681263242612341229370839642574922496084545737439165630905134950373959718245461041089847314614675296308702487154881117032687048354082141099128861214948893820824464668736864732300425774432977291777458567836532245267270204665952614950199223624935664941904112019892658069669029925168467665984263712565362959157114717439476952690485068063566118059925684577518670267590348809295518196395126177378032276573298652192927272374781162599497753557005313864869958684718134828706481166859864127442571942777012527763440526114909353644741027454385239751918595322975210647666060021722200592015114726062464992954368743252650301867344077213261856609696506236251482365036055945983176403353030900361077606637257061431489277751962000927082197098950031726775477404200413254908493493348727273337707490145491015191652541524164033472338089600757241595544315632345865064177680241435113379047928737124960397352274825303637307934056698682240344413896186500914695977461210923031912625521985439717393665644309224542640139760174374940642431488656152853196607001741369118137992998908660193447011291829324171664490464998293290261311131387631368365463673693915542190093865603782590091307118546496870094949553362990339533177266212099290742101179112189460263051611177012608425018158921375731610922548957773833873215332719955410835559006078047251532846411684361822698208532813899490198538947192644845509610088200386011377022474485301195162058092852039530416431445379351853192638260919879363913844632773735888328864206005563964971842538882594577291748251327558184858095336766545193843090702490353332879720192980837748165404263929346568884893175561498504821435285172830627841424718404591095284210473239166757359143011576000881794599260057189238525596299926745148366493501921676699066882678198815549698529093657642303371076051111245998392526352015982857023052315681478767821389561413987467911496732154858460426826889409076845832694711974221371517730548703347199822356743136826635730872391376203387135489593484757006921530823305453272378151270947658052528711058052178131803794821917992734695546637033210258113579691703793762184841873122844135924839779613466936812067181225079137585672072003002779328679874702599641940562638975280530378067479430960965189787331283533565271463156952829354415943354420365162562747948568779465240864801600564342195853434013582676031830414159892690605447939060901546023419420507342133572481685292634435294467387377052282744692951591408408736635533766395933680543944031435908431110426444910591191703061031418754435955098151801681761692206383102683976006089898584668732957649453118090619112796318451680506480714037132775768323507240107618065027381069789857542160173803473435701216884054171990185176476096961831887298947102667917736591158984994461235343838891833898180858409562322484205632486196122961314924538226666145648408857520837966330383391768435924414367252989389008950279562720132356061501846604237017646490741373448484632345723806282535054610647745586217600721194354277366834088410017908544042942162334549924358886060715425778438526302554063344020470070286131618463306190634110560898020762556328054244434573359821721133023599214144868723133475505407188440736348838263515270300331080483454554104346429430088235942356300559158871859461202398824451081855803247969364412303299767132401934926108999590437783384828454250265956609550467267242703823512833267618609724153783632308952729777223699910830365521229028832640185514089933569951388801878399696376879098070023253578812582686132267578062146384871781972889313560665264531619012590576798541320645433429642662770242247664796344395647280375273359573720049264793480814920433471074080643737316531378537281373402208028582065089383019401105883356255525047800326773380738998280549784232433678934883113711037243030219424943217250232037356776909920561206938382437095085060817944307575934723900220093050958176379853755351192826785143473617587663184828431109929362862870823890306958936272055641603591040373680828406372963993782026026166369500751760235011428227037065961218694173333779996112977587510329793710509173773159587890746383765997742750727617085975470682031641882217885948302038981711627469765398649279428887784385657080589448504267321088216249730046137774267220223763251099421176683251490411794458608762192624746147118624907614445460375532119584507862142308439085054113668291992285391809080971512237693822086580566434274739299431383219642817531332278375656058488069010450838458319837722726673555626603024802611842029663734703154929357676982264535664895717798320694381871132510785123409692807639723610456550659967102723546138889160081741214419081185960436675077506206158408813653546816569536612819522293756146440595408914617471618752403750194783659236714401836154804019419455478039923939506999657797752711199549876188869611199040111716334037849178060909523856810631214534123065829372064432899711841197765643041706137576231453685621852608208302020666140390819194798846965675445454824899961450869738013459689751524231926499054700655141723856894273830015234904593004640232067573248446054349386231540700292126664790556113485437550095327009797043954024336960233691320766705845457552586059096311609768358890769810073119020909047067717793484345326515710394638982117794436107912515246948933373577815012538627127124324303199995710337432687137888518866732090855130312536757251346294120268325946448128785404530922500633419927538572324017536586364917376603829283289384915702880447537631035562012402662142432844606693322782232277368184272977677320408098777065367739360685090206550684087386517538580433452866471571590035129203309486876464584643765624102916397381081305322577787176734739022517334622902695994293355672652496862674296236584588109530436816705497607879071530686550616736775585146563346723620591961511776910727556722158201561728422347360982250234407767222693413344050754894319120994563608357516914832021125836068412312551054654704961292233723620762439983209349702237567865257580576046517641426583243329606536423093764124004232799336906183310147700665454771024728104314647564439443800986775428622375446398600177925822494508533731563820625311259601221282658882196685505415366050836857731315562015382419227994301876689145775190134351797587152940170397670257533411794695590239876900405925526477479319580123872403760426727086883854674991699466125682949620352912516225299763764677806759210008887820322507893325669567436336708668048616863469809086308424939650001934950811725993086716420698993914775795536756079312025377534583697741975057314262273937919575329820820006022853621636107336443416629363337671272652278499924894242966572035362846063830078575850894591921425409566690021186372767686599649024752147973125751336466580224642161899126074370088318544092109052569712563409146584999458359491937435496956304994901442810884541760963976485718934235199929864040092599369570156605468723162747613018669822346203469592916419067625477675731286621244292838948910423407269660977630899213679667106800458085491658066138803079477339056987562593438745328139138345859779772865709883886109571079985722623212365401793239686159520122772099694991551888105166921559602100733236522832427021184804991380807245445938547440879734979973166113154833033817890154834660160490304810900318133849048041670398794979320012223689870668503112763037910154010922363671559946587298932341777291974888761764605323232480566199874015645304338327577060352721522196435887021576271706249602735684599954008086563011881930646170795356279265359296234350765104811007299964334706825108601802523348473839876302485804234904816701609620921908844179303955372000872382455455880704723159026912970650720938667804234096196015531181132800672983296843087112422691496161755078867014364266007110235708361473133555081136001106010513849491035631306335276157566802440844078990358769520568358265364242353728643008259871513696471033418720995050947692281748668469194760350455382082364794855743432894357096554195415078090703478251457140415951340169496878766301784067781604259076211094141551092160648336198334803683100320464822502766939036918068906912484481146132173030456467623201154766245410897890226633704432056919995511317681308330294907795863467285750518088800154360054538173803214101675539403776644861956289070932575944606904305032498416468404138528164551206012713967226745072674990572871509393485913489274125180091403393574277559767447406592242472874152548465430731400729005260566795180711312206568244022038831967511292522844491905540884560207500527983627784811157471090479538392151252883389069067101118096506839801514366815378160719599409471018451456889738622296609461917207625428520194133411142672698867889916915701122082712971505556359857726826694502757608792851398016956852754514607415174934642508008620663424212724677519640239589245299391028272960960523484762013329387487509528979286293046386166707424950855347904566801901979367146924714083861842130479611203040584375033417474343053067541718989634549744223284590215446479207531275746637620281856664155898656554222791834178703627414488515644729642593134374567213144601564188963733616139988762188584878477226766246549738880320974244953417243584133595862171733559430101125260003736478944476024209919550443567274563019727457326616621775116953893784220230533768552604876550723568300986714784973869797340126309793103845976155273124469783692256886477123854238154254390161924130745255652045732979847969180570021222306014235021829246619205556812064404931445144057984568518941066101404121121323035158836753429433060141188636256203289934352170378225458468093318931726975439618805225215464201962193407002913999780534043708879022720505412292231703653182589100942591117604208121914911549177434890565280283080243176605098241193783181878647465650241968742674725790660871166674085817524772677651243992685526476738795754555819339350520445123462501008563890427607032339672933806225320092351817476944018813981749051185546551931843095196405140076439846436135946535495187152018356105155951244030315648363020873668210799800991174975012666908964040717003048604391119933859435278375068647947700680401400043930961219718196627289719865269355093837329816499637195758427291246144264767605132740429777257021713587541006579196741802481217420833256426468584860773189373043506186838522757084842414241231788169928468229068991765206287833044709579664077200814217037310436041343311849212611431211197829824318450138384781994810698136972326042554369041351487356765402787951827009452392276865408982312536585295721262240132551921664128531906477484326765702358747805813097597121879569704854775785091488346890211780291038336508861374881309460167726867817356834103977296838556373812488808661295300408043280229975572933094621612889081684008683656017204645969005014090406622694951921302780974271767556090317635269311450697247953393509449416849331104597357579090901479969858474504882930795626569467948864485239712554281189065394537759216336645912362044312001029174230303481136175859190128199014648613667536179114918244899158314996277042063016991072158787514450384144801776726658593180237884066506972258527210813997298257560062285272279507136334757363955351280380311584891351749681650113103949769952704656496728837066453676603656632105327965234135029801272257347218430003402627972116693065051872674576158561303826135883131932387658380776611040241177400112225741219648378184693787900385415284250399283368671309285172442781579016377545048878728159988158297277084927649173371871573802140548711479276895484421073648083963142688469522645574197937758681445918182178212863918079401241706918033840841451077041831289279057866592094350542395332507570449084429587206165725346669689559585038739280786506173792666548635250230237023656690184038291997636972307755361329074796551288654365831146809152863581686571347070149834810409490223540133655772702325383470432144811619454091127648870200665358310949634324308608366301193686052904717637988737754071123609433380959390580390658579613172319667894828351862100437517508428379933579184571993452912536049966716687588030991786127233694316931295615927955391224682199442234849824923164376333183225730486641162358745641670645971319484053179985722222200016421871661233399888397407297458354209175382795250905015872562061601653283813122450076603477802177001058994902677433518690452302840972124891652500704681774919670557904104592527659276734011945874082862327902415377768279502696430136102759488095183541385592037983547131045505222234831970045471392615612283118564058024780926575769600983379408567884804640323274931830047625449962377697841441115521533886228136802388782901516239647066987263359896227122651073135232590258636660139070282010235782462749803711718069333578574130790209752425120241010848110608777990948908517050003382975566952950872843301384790228381758726191729194697933777503708846766007304265683543869275974273960259754845704595370291671537505428326200056255757506149968113996823070304581978481597478900267188946351373767839093573607055983607232849113562418593199552680761813246307058235416906894404577129155457331670821859712321910662052529205446971963973284255694760470942595204736570247593164183912919403536504537324563067647137159547754955801347554755543643015288175421804233163860031904079017966492627456496536748577608754846908411890655866590162633487344836122265539586852277561149290660600943445837038352289440615264152074047888137801287621821760363605725582087327395485772008861467756635466212030277948368698967145366324246791621136869586101958259027710805358688147242865252626992878915344447661460501127689132736680732127905899196023197164788786194654148833152513919897258789541883327736825102482040308193950280799237568041952571610287576983717905312124779888759668852106266923372825521136008011187236211365549068972513940522299118235598014948557608706062709577773491078895095640307234639312706465423947982846898271080433441180787549022249321937090812633772881788435916150936536149701385063317058504275326459391358343880883827197043106119853965535298483057801551811353073988322322834956246843198144715705312455444154601149557794102894785003497510172767784598075557063709056254176781485358702155059047046425033489568590651835371520165475540279143274682879834178605092222702040351109600142662845526922133086767521658778503114945519113570091774941696079900064241048065677284186943804281109520333059396823073908366003120260478889128597612095053796301428801946805442555480834129728674500603185614177408937702141836046156777175770550670918100530188775637234339170227399020282706891705322222821759755370367450665537232137972021871671913978838365440970980263161248581142839298834105620533996136996286055934609778419643599568903884385142648887741590180189009801149436978057589629689322924255403327643884172053980743320717402415677271750804685862843031386381314035263023860289142588616202835853350551961311556107578217409059691805485900632758806623530502883804618843603081023564537256494510936825913939317557259873544583681374204050697625423850620073584403205517964758397110620779427105786225869113021047131515023655673640677728388631127905080927189036677153997799345363455380317852172045324960067565970243403022810839029730227862974947448760654488114401357678191691504325852922896581808125609609709053897087741919017181762446662979350792769344572970008312053148363218386110184824970308078111678667546567030737264056317036188945998799266158848520261399767858999993973118587261494919120438756566142038041139044487345878317117859717164133010106902831805630463677107344706554624528215427827686984534157340919757270211291079327207216903152951646466314652149820980603644678533895154282994351739389362887068530047849133656536720725198666718725036038735772658816079776974461802421493708712185906131267608741886241785490795434392747086868847026084610492856616666546344359543686142255875888473536193537848660520854414142427475181436981304614371233925587103439932985697554631202558157673658251331049110607769809485148248491089514096037470141624570372158097124244748544111041052007983807097551768452071419818444493206612036898804422187125681582928572194364020682002649115746251543696638092641013260809689282987499685463125482658144433968551227842304504179800510251256575691321442731852940587536133147445294337948482091143302278317881317827653548931376084473505354323364892661631215699880954030215355352191628531604823473371643201586893120008982810098916256000612119172267469999244104227573385499354681209927613866944856583467736529506840688498824230189786941760873371833514494747572210314383143325593117583695489287468529273949858441079143496058751571065029037214127508367857088771568362562882834604261139458376766846413375746604655909886635322270998600425110592414936206892596866141471154600012945806544981287483616390414640716983879637525139931537843902474669907386161388597711656180833480516826105243708950718557497533289303529732788382560326480599998835193193326981280416810155711467667697018763772716733638307707495178749360112083319984708731851659289699062994428827835898343379361782908699651229688056330102193408988979420864012037004554389847535509085510301581169802699477929101901537125176076017285165467315643248412953589383654053369004844814891673807263506652133068770588704842299416749237140185557264909608132477874788801393712483061108584176629286828257482768252193749726218825424842829735422574308918573603743910553861942560361382516176682556854672570069818600633475250767520203926506466796566370966537784612981100612935722036684898951770669950671462353228183220809649764497294498416270726250039245116584368973378700826286297067381544900403037686094988855996468828211750173938639484556474142494173135583473168622687745969678722194827757100434626424235976387833142712873025934784856625347110124489159758695766950409753041382512307616319991487996166515140472071330312594692705855350491110337329535962838476683711980673166348888633020456019376417480399546682673320411146063903916600411304391721556320511143825984806910522391999251737099864999877557824461087919243867330886900210435172386900466773619144033635530696791704991169108145770229453195728776709918401780453067322045797428737817247821382222097957295229584006486338176100544531966259750497280264365868448991446477053125187549994695282782442060238271781605778725103297536211685996974958698640734257980387146984281690678075118733897192996494136656793395241589297499762910333619790398971221237183209274727983242941390373380746534743808206052062363754218560966501228623918723100639655132896091273426052364973085017674070944484256089855503282645869795840035321240515206207061438083181371990225903599846167040816718818608144347886674719969434028372598903795471069841117689773813570973585196654109251679669688488703942223363456597971520950725623787853454572225488546733975998021934989802357147698101471971146797344289835670608946076931986763251203380871344506481611551103671764465781556831476831150835409020449011123474843278940741916649064317768636635763805829367419638136227255555562450748201453004583185629690635028927515406205196957822001233933381871642895668932701500523127146084745755044392868871746142235079438819860935046994387872031001482548663088816332127563508888072407471141397818249961310734493417216709244140758703343664885261601786515409005898210780550612506890302714232015823573379596412269794201961616941905725523653041962784756166222247084449456065882651495944058519020685296228380635957290799674917436096809070417019364740976423411255215469161198944114530715670025989364439133895132141306186107534648665635746819975244513518592881497555579545744638880700500987405267755591213402084916773250320331897656536166142466083547512024947304888286658025855395024892939723364908256449189133650525339241284675226810974335578062311048015009525998121769598786376094114192076312978223561936758559126969904844586475460881559566120195956452568806528138545136177715893608340033409019823528925208912922154588888345559985415283154930176151470941632937085726061047397370148755840570858334754698055254497761806529298414855194150862122312936178358895732872801474351118697086546348539236440329653678384841883734326097729011403842625021639529181673850088321424361898726433272628847317905879422024641980074878342141192331852540994212670522102403023662836330262480087075436006412599897210325670176504538290530525749803459140492406818485510355868053553842536515065985088819492249876211925139885566737312353138082708483582096663140331720617639240697295826079036925552696847648170048626661611852779444487629633351693598493952569396906591953162180434580872979690873575997847080169312256228758815183740879396371479570726387423268477677983365128861885174940362121299508771931834780144501323979272869941881631588168958079060989761056549424597609667531080779962316310704538916958602874985016454734978919033499290572996098523441316092147475415946496066178940883590181892884457515261749285120160141526048964951769835583428039253291141950824021169165734202778657661349293250676560605901453449836987394550000302157988325187607801106853617215996101088044133599229787759080178294633786688763078692302406668742027609291215119414758580238701511328254626547115919803349969217053684690987468458228833608573726154917284720010069528061806723633869050071711563084950606526313052302249681169582032665262059497756186458055003897191865937881488833453968589476949589783051043058744382243972189431113946012146154089950987721259672647805008392344101070461316336576795924796103640918060598103151424719219866359288496016088556223160784625627806648698276080619603407961158656312332904837798416860561422707242847898068689874352573487502821050541703063300375131633210841567480823119111222938787105669194781342715862573737667255661137622804470680994447151190869452563866212739595556330603808880000155791940459474488566870175706179823899700829691763848983482068779976305091829540568761564780347338882754798401842089921449961445837811070206145940727836872362003295883188082458793710655497809902266949130515745560148694470782051089836750487543905380684720880246197558854959912260160406900953604327671362453208452588214332254377994813357413283829104512718742814811344624702809167921260361444802085445144048136563031741152958599649462065711421693074056957782011256001385451357637780392707777854443526232753371139458948019422158377766761883046866693729024500884801030783509792983918316209807492173837441757204346066703363167398527465353938775979891520105815459782257045007914627617914957518412349493855645488335915778375928247027900405332993868587569231516650633821473105010413462219609830986219367594198313179124625763316770423977809534756883765706198564140619453081050376216594748549396056263122102720714832155037979054462118952795486332580696372212441449310208290490105137299484931915220305461709242410821825582053646101272129451185116585818230064922478421195879541344677855860467612550115987842378350547837642331874356855928130513359135631977029143601820133425029179780087478916992481565346494403729150451998686310687791480833447505401037175493704094620382156053717711591760484918909745634788991920729403722566729782342246434907924169101342596490644108259089215953413874356706937155209047577093112287313058457837952079364213478714377601155544959912816878234540763585044938113878792338091842001576841022127950037738500972616621188786971529783419468078716364906776347535064008451668973656084434249508899858256560337710173631121367750297100608753060853619760601181678144006731345132768960956579566468397422668493441952999160706601034349325192111405364924812871035082544927403345188149403737787112172675811648358580277613230739482514577637397451552174496801272159735143638027462063014708049761585141094213600237024495106515972513185286283670398626883942290951789148736187119365902451628904651285231495270060116311499743189647331120849228357752687318760944314255906020296284943296429273815637951439212788824924755323199564157475932265240268405417072517186965473165650498695712443159552897706708842814735439490916897936796418648400068806743635945530182052476449927738634262062190344008670221544051607793674766263235780131850948657121565145282066333121396158010839753540112316967870294145749383764646764898597676240241478874322856667272434195427385915173802551162880428966322608097845972728313908908276988411212874872584529621446510230306816268715075154234404334278140996015212276913620764535200061765932095722276395681062221155412858713225731823225690224190574735195805117813882403812035816652244513895597979288564682290180291958306064607757708919645500217878877537840745607668134413024263183760984519051520324480770112157858760765347656325934048333173047984466710656745231456635596261875654208811293752887155255151733217392800095597795239807863324287089186107380269267394113406482207796240929801852666435516955895863008888198781072735478515603160601486776293456104749467972791521064724126522976461334878621471725930934516224847120995699193203047382959501110376871448133049767027099160626957497638743031810353248122771848410649055596579390929763656407492631494321969338432291585225830178465050227059174795387128583404716738598708677201063863024175136108651862143686640689809033969550536359128378359053220788259095124322259057722272999922337917955969840284214717802893874546099759504727238458192339816589184314665129042701192125939170465657765830123281825809776693859904258577452528038639101168994233492823706006695573106010648800293345919939741360506347151919420359477050416287466309527797667867447124409425479410463451427541783808764040256689817307699198275921236744033561843447810412459990124119501305906679022992907074188212145745509380321158273083669546435751500145488190394705666669661739369114534871675822783626366408613250664704752081893755418700188167219983662436773369967105505829299450035689897239285905617380999075648927009812105378809781664254282969658984784805365127383836673580070491816899356946890561270407083704350841238787092618598818705719370935233212590118589488720449246645368025661681011936400012596444497044802971175532112301172680945998739601578656204289860778329476756310732482051368937206007012029110226148415509674227370407370447340653757989114995114353704769169628785236129594493708482658891043630285987945001573415431133381176225713516381077390620101431924016603290324067667303966784304204372488521009901740898449385869083536933887976608477356449652346641242850941903890747353397813560839343876870848200303862484896368433676979304365295041389452109420189995746198992412972039083434614289482514174192169242115507373472201698896712892707895526373989967634656818313238048892474759287762875116973550661003569727684928723775429129464010958140573187802548598938248972385552849607529073554946747794608783432650162319040507315282904006812147880839074849914513446911686148781991045591838614647494690663992040181515431964666722556807351350138575928313981327043791000078846608441260961054127872957553560480293090393136637320408058636079799769199263399724034424725478312045927090791290469830601065973028972986259126487620020395476649399972081024821956658873328709282001781757475695574935903254580621751711125607823108407877809392640556748775575077217511932295386299757438388834400859826800782577815459739894724075617599383789154016314975325441415215130481291004914311803244764511179663508356128838188467969995263485006454187420534626276991377653284933499865206668689450464510965593877751455073181496055167897808805615510639523952377595380530628593622650381380188230070806514437396433073976417868417878078894470599999479467805203974628861185031891160276092012485697690282992390031867308574488079218553636793420293471187677501553792500679547612780589656971154703316585083559469354296446714711818774764293071117586810630526535465321069911551661258796004246254086483434766771449798663367290899932412694521898662943457175884000590891851282508107533422343556528231545943167841310767721113587314404529379124096629016101368485979139802202963937362428700964911537417873365812284156200570535109196795217517318963250317183282700017523122029191281505372625377258435238628674273767669557276652150284213448417691526912913720155927456616265039052331211655010614778040397198251089781927252341347395642147654437439225306244434229968781821159421316171470134273703030616714618813228223656751639618327438938175533116332778697261082210362721455484853364164521382741911069851357899085762540440862484663124382234161468510029314735594764076635900882874660393294601185122841206126958602404723758680750299577247631467762405420964062912587341877206961462159544594673123769042241627625900401549471328731427447386288418228003118147057575583434232947353442215501327737455936883668852964313610759766570765458157659042399302854405196423833683514271269989852842417979981150300488562665000661832433359320511032735900299596482824976440632469690527374553252858960493405225545871783119001274964729691810056760371172131424491617596701469973932034484488807970363005341606024703833776897963528224620169102748148953053918252123295111751384219976897049479707650657405832215789706516185585819201969935838149551873579113439295753204834512949927786669639332845193011815679862550692661548216218917701224338799156424582107849397338398654021141453101378621021956708114728412777839510329387583762132401373228473383908501842388760604633576909263184710321827812397756240877854623080766596536905568525951679977287776900517009788645466632891459733429948826788127766686687761337481792199940324365892793245357321974104783554954696744204809566350636709235290951424040305505625573305322107671554066317941310822245433195246632016279107186429690527292550667812661993743228670022799348428346687120085069075574824252967437527422550809324020673116511364328397092452852609692884565498483441616484304670529137906654055398150631050610935909067825466349716374750864256163096248665082952876380418254242152205631001565535702084188589559133881194935098943344028378663550845086794580300611495075651599491422110374912265347494254403865099818357096139720822743432249125643332313647124904901765380893242980283801421131419544935782122649347504505870066925055072532215945336360013106129122482240607532489441370749419980969429730907272002102048198204364685255901385360683648866657645758191924392997200328090686653388397070992041551358486431277607796166929054404877578511591243970289369967722955521410681172401749697909644861840776527491717938537960518041084141351094626150086977268127473253345425075500528468878467986129632593062757088636362388594736719666088989513251276753812682070560600218971402342712258103486801989713743644943604266714985783798970497400900546219928331982765679893474302908574031409774509174225837984671884829590593868610089023576292668353841890037823984988305444685506510004032519021976491066836968050821040031264915737181378898640711441466016626919536565325272946410289423442563479320579124906881960683803840479583638777902635737230440864836051770033740697113558384318527008100385516020776487143544802946454512707854774716862201094493881533372942858701542854683080113013389943182544820499228087463078701975814753790649662350768900438932879719421148724055792800512910460310906841430226039319091853196824009742475199483747305249963252685502615778384680272260562650883117237235741938220636053551654539170517564862921921775363245383858296732173493272181589948269960564251971996694666279140650301016264724082637976153760010404232100194189855983640974295201583612364933542808620629989699979619418241145872697606534083531234805930578727064553467441791422303841694733965744767489096498686663480103245792141043075641318199766750725104097315716863144280378236544687657955664649841933905289246247399572114514865191257484741942750584655164001077264503391328256167410615195306796583297166627762598038303050881496562374865563237687569734927756198279604015807178013903928371563469315825421003786684225862274352920312894974630683878155432592195069137934329953541079100073882746571818652600577326934714654228620700539864196422383435570301613351114797914600111281856957577012437043654911194909744251033983831441909018621827394560351508117420939146155399904377938671870538400626182014122190642565052264385370804881733254480556403668668879589369824204810707190742244381969855911485923748001612648439318316298827441961176792828812668855596093668112665374985938190108520041331653404073337964350705333484421456705544284262737403572256127074992775534186191742611905049965827563708508827503119139143117305541346569592653178827527421050818434361996873813333220803163570613466823343770702268422252437140498741865768375132226274581646800102681864576592920866732959952309614389319602984043878842517474207545563158190898099565647678689256649785203202942471121571607255397235899613043613832410828175590023178774576458703795109118505883040488776485368870367675251236729465792233042329397156752629205557253156954777816456679070456598276965460150108410380112705455144836798560079275292518219444336051751500122063258654031468215972788462997942603289900199759023252470113425772729220119366488220121218124369465053620227502042363170159110575154352915563859862914192858028791750863654966798523781767578584360835332246951925059658999436608920238579517473992029594820701579067674473509125287223635369763432383005284903118324176193641204190670966003225432439888357707901119398659698809095107987553419796641528148996143109919121163872508654135195182694288619088124138522188331652301224872614072920334983753945608901472307601999660937138449603068746709905194628306384527140602058884817129592641991856674163340167788748853695539705766711786317180221060721160755599413369979925680253002533223035959507931329692075276424664638961681107158318256084867139378450927669075766914575482033472645991048160618387522574936263091307117993673803441363887687913366712925823531354069956711686211751617562451399216238188475291338204420505626213975803974244529505407949391016821075933980012563309357497550205221057630589836380124535469997104804034690249592454411511014644140819631079265012655148944266102365450045926601185807367066863786569683524913987167706903943318153632898531850768688345895504276034733369979971717339392220363003239207939151030894107257735706359914640321005190138907223314017558329662394930096362556673867530072067541549785147902070137585987343727989035734029425307328279012188339365085494773161191939390559606461506522650759243772118901580491105327390137578430865350252790960971431166480948290408263346999583169261157243682664727583501090439441822326295043572964690676959015068610967598286772163702989838088895672159961108278510752485173310220319802495193131683327905624095195272846244087829125690392031839104842944782616361352198839734009764466415058658017480949080823476226652138847088654988559540534116587234112618607302569100980285618622762701301860245180325269355703025497601412498850273407564085896938499569037544397756759939271592770629428395957729685726806551226479556501139783696429148030534526371649957840265326341866962242707115658783161753126356872464375434728819725770661331666753247656454380301501435780446968796883519855711267918301231145949747220923337598200884822419116852824257440638662026973440201109664136676116799294041778104225202239441393745499717433104566338793805554696778857036307799323773803791687650665067376509368819528559263301886988386884711753099135037181687519404359078670819224103107321004413354019320573807853107511470257953161807725685861801184988711136446709536666154788577871854490419482430698723710626529182336291717100434847783718714626507627787134264728377264227615580958316910698400085737965339042395221439938435749374151439374898277554814500977177215295458557583700907395500850182270063648151886807618905121783818250691807404730706737974135593587831525504416240732307370887828420156885480135863177395075883169382183312126404179694289835707373315333220373119260257050768532158315397256418859539109544629023177422839957441288770201581891545200854413190356564428903351417127361602143523581631472810156727688656450780889932854803977534215806247531238325728447110997040497685870505459810236664497798572246366389452169831103586790603098117076367309648966772064824550798245960983123587886555280231364577114545005996241631365548785036195158896741668054049290567724627560223495451841661099383303172646473554833032050414453670324269727556577211199278750021849962795368243505473467005219785311493341893350263310171833663561814549551705331361800885889548491308106533998009264321888696995868706492070759179417708644562665230165437811325605806180076813151126241512497686096266947435123221421396596916660801632946744478265802719566758351120606846781529871300169212681549021931755226758229731785185024733171513573418572637662808042596154208345435179835467801677444087837597359314574961487255698347566686846662573929077901770164306749326248476153095649282197874609275789805796796246991861675988293408646791659922490612561583589231130259172505750643772260463960130274040354092105092563676511978866448121447976120548541445088053471631265870730627284177247047550556079806336842459325282185566129417651107551990339008158039673992554621057199296259433306141138900338362554839786985142773466148701770464248866791834090973504671394009364570083496556523262514815747760266810058299287391647357876926409207432826155896219987553281146816320555272718794610740656344871439493748071125029633116910725273981786003695964528695130376141056585477417805825236971959430255439841147617877024036762082216015491377160243304148901488229348522141659336364993432081060678545080932177879467539342393989705787474609586559527989670022811540276504200672995541401142657394482008202145905185433932007012260434199275751549404202478930777423890588478691109342776730930370440693042412522398424167370477683934326207133998319602639413436674789115368900272991822962561654450177030031943348022771938686545628240124092856755605038219200014853609725452544025950492432285249515672335501109192617799785305595815251605195484532273775771449644181399756293559213467202778755031803828179216395854421823765688668652223159233625920652754504271393180126554833431365973810945817798899099474933441902497172420083994937738762164505790210003166309182624811738502845068381575485101165746457696003768401181553431102702622608872857523066862094275242920761293469015941822962328832276766977918654689183432224879853341376196542306288747660310190402830852026634012539933719515535911809953221016113285970449502040803095359693277313149905860273197591942026747451170732183752106073323763173604905939860408596476855496858257370443202693885921442164549809855738495188155978918972357106949719785400034168753129100269263435098316218291957775380665056147100156905461920456387786582673438969688459709323346207871299079027755679585183426086713498407955955643411499577808897662344634376130991860266181685204204102804356948003092374714748045759526145896816239016292731124016089774806123039521817072475045183796254904289268882570272044561402921381335445909586298120429989184596459260362143024246290001799065413363152269424399656535399161095208965049923103180903958211879112873405398153950945664117756287449177377605008021441639197260587698230794377608713359678016913526880871144995492616940221188544270412547884609150537839826797044250585588340409752256900879125367970682314465117913831159107220529093730257916209362803541978765089948087301042508764902842530290845010911817128329690451628244872381346487244953445522846590902200741913729342985961764484045114300526061562351821298207948011323515409371171549565373516817662918462465757518783692048801152952031126625159124669443777195485786099443054064486126352810897486494389162216320891947102023164329161316046711072306863168568824881654476863236677100046077474811236887346686422814422707394517727125076618395345619984235356016663767429089782540962864032300447633392514679993338728206039282086027389426738041338109054709506173830456192413803503304348016522441238030322162907850835398357523614950437836210750832125760206170672584154241950148281304545216032506160035849070236371435910812312054853286982306700857951260176892013811465300983310032043187121372503912686577481536637635564339023779899018025505976851115292905005425475426904454998418072228491400211522934724726581038437330024544475007833575931260280168201689562404025118102512462737027031940788976834156447810578648631353121154369368569847203506172493120657024391123823189776804873432511458595749883144756236261530532610438825177238882369936955010288630794358201164675451399465759002418013476453923304621061156313931243795354892217651486659783215724477345297183124507475797734733809937142037567582831980839092521654483060559039679157647676173715561389077341592585242208325811168779933798900413052617919841804656780706891722563364291110412459148165585745564688750149346263790428720299073647528465351554466941341407847173491684526178375318518490465642986891839601374398134732914974162752553269118590924140535545711073629870907537013001362432313609003348643363941046345103368902980287662315644261195832996125334160017617502397344319033402337137792833621685729412690598684554599628991635923987223840134930673875051581456665903927003999879130881946535836070509067956736218877330317917532677249052054815993869827931944770249867952821195085916405851352123447499325186859034578555774383169527668060430834051955321038676953003414131800484517085531499332144985563905045130372870460766665307289637224762869862542737835648320711688854335506041518930911437207349307789924912517302836211743375866097735226253422538322839671896064975763432224418693015688177878513201245767617160862608050541128640107464577862250818747789391994128041939430253598017187700878553648861750388470039206473335159231259927867742554399599100871789279966895919553680030468885608401732311985276424647129485903500850822409025731702406944037621889444929226854250512497221294493140418980684733010978292225213230751604089219188929195759629262270411162957374946853599271432019687960422260979411906323437770531442466827545795931113162723199454172563949211134979262726821098541261236077728709290455958858939458880629039411754731623511178587115379747157481158350549731167262647635331411226192484805896900828278274299604472286872655159516787091125730919559234676393450848881724640739006561311540401716379972745511518833419662524375403719897376804315600426639717472883489489357681506154686176774095843216396976886066341676239519598291572545981961478058885519753628903104573627157222019803765246429578139858997871719551475339014842626393989861939777997697527259000853738856583892498472939755883313731209256174310359291352602146861241691865732401661824424292028850060260530811006430190270490066708458914282639298546130126249659782556986785532771688778482237963168186092194153860945647787191106571798046740555252539863123163823290633857485798381029497947941693292388609889880735926900772414158571000076714699866655804556683574031999479033151413981717011740927718118927288764640640497437948376804239445914554865270353585432371017182516125213813896984301651113021236939726088316661250129171805128187008224235631536849951322481325077328676857872475866842288021062457621430944796380291280835895413539679884722073135172098832674154343735914914139816308267053415094098352293746327947283918701585031979077620617090514165289819724655362294414101496512082331204434560785321897780473567893222975606428741334722111387382577074468507033624007538681993103312418828114793753802848671058360642341402270723991276579742944951396736322865069281819482220435023224923825002245935567352444003564740223657093662738105513341030459364351694576055416146693071636122322855858090993899244612516992734099934344644127011869781510452258422431655352370890779578875370492144724483398322624864877733536268974226228658789832988616280588317547909497576007600727218938213626643568223900210757504079663582537232550420582531113970171570250138470992816288852032962224453113019114978374923205107212273567968124116479493385441962748402504481703965912514232947220125557253298842690954642830966745625279794485740582553314123891900108187909542438442555233445116164859100899432639245380716164133992541129373993146434894394289800229128083782261226879890214641164737172872458563821275430874399102556038328930933466114149112168189582488292173521228418690576177870541068581545305726707507591150200005366398931147235044549261528718421287136829711876457677579642742249121372653541944368864849021714290567102681687225676825323637683201654113244107520249613132556541081330282125051167515303586343982755663783382556286127899410504877326510542646315077018066394728670493231546970660550907463238696466245807837635007980295196292829849153925171968150845370596199373737668176733149199490412520032048395309331574434942516193081329711781495080054386979984940736795302580934931443583818049431975537074375431176827703742881818186556722339416362682289976266648391088018291616980082416686560270991791163806572599599716437270114352771325204271596543907199577480944269989109541646030115717146543333369864007765066685913273414082988323132990356661463923621416852789120842629413884572983280441808455966474907642284625863046979367561866515972351464095447601778515228047236634412854332882749817811315371299339588503969860151470733006490675886397859136825933965136505911039867483109584490122085144492288591792948905460584976425333942645397618488674959546632813926058267040894177038240872942029012208461142634909541681222308026551441114252498399145319390945886580242994211086789395310721195283301474466421124435218806850390627504386765682755168455661641624437022915451883053977297644370442051817590600525996179360104089527951185511468977139557407055185386624382705548937109888408469835003175150068626002687182182244389587200645193072631616192583118930868322554611895553961182765944655810066340538511873261068069836968145065119680149716699833841854332910529073971627508989335183065669447685232090965324027658968055374219720968871564929817629759740806234676107060635727195620489349007095368513290853986513122707699903483215475550207021751660322675319419047478277594170488105160330479716066168717305086156742830231210508335805853852904517453057978230432936352336524198921582801239312470249856267222363031465901723598235517624163779838956749135960222816259473226967370237147719904801927461648760598847677298844338210018291123287591700251485875458042201236581445224588113246554213287420387007299789527974950418080882590880462823376393004088073726524432724226144356409565678798412606158031623866726522040368645623099424656782568899561634810436426656333634901547050333423942575016019508445759400373629008731145977380902630534004486680112944202368251596723480922384422444270348885057751421992012144263712150301268305118079633381970706992665526683078117538972839207703866197510225069382690512643577165811147827574388185333406372895478177149235620319047251000851853074893326150600834943318939830087251659443870450563156117091217448234029617421595918062934259741549242030204902356909842662102150130785929301966175054969102133680725701764191528294642918533964148313018901580877369939893160006075377105690492820365537896186847462757171384558980995090276368187916606986849037076108550151125886458955574990762547804300081702024840505979423467989232811126709414307526919159685319624702762826895760161381338641872248650481341376212646866155163671457714520777496761065458342506671446312385600251472813171200928086730835298493160569322904081511389830102548549605695578172505915330126976483203718205033641798440940622386675802782241796645672332956870596757479188016677790236650515956473210723388001604047067496980958539096854327132388152006111050779710296391379764662224394350163153779814000361952131193137220947083270738527899401544798889230581947084312373867040496714081260852251094337833133279645318459737113364469711909580207320607330617468018482886805278280689044738344558754698149245988949849375671187436773318109319305524964850972694619154426408984159902708805140728570418044768268149307593721793661977816510032940468552873825170605491749322749447318242044707436524845971447018382936867230333183018118634112059125097161411231892215960627097452298161247171006785993046253587203443182594529162822280984137766062669819490099205597005153763335317787861117958951432819207145876229685430894099451831135015799049052177316304848359874665219408693192629452614840413959745127900069781297166924537861686444096637550127219337792148713684178189619661085867445453308735696679881563346075118773690045148210853255572265669288596426345354111359565338327962870252447607302599057213372746730575841002732392198257164847967246997167509152411055531921003421795870139969529185077288617107274466767832631492851431044117571567092092050597716242669331944078398276673743265670176148394068965409044270312155912535219512242005168120987223707653413435405895435539032818458682056101439076217839010875784804198783260131152931682417874579786739739132177867898604662887242600851211470804270417249630400006887705326029697691780311641847024652484723120454808919602624714452169983699012913880524701442192340954246454008648874397219519527221175807465390207410507875905182394915841566300213522906884377328418002612138672268465071136480581078515169427497307637699813102741214893951361894925838595363020386238383312575249767263829420320346072261946084965122044777855875130931132980436970710805837526957034312838584940022506897345990051509278546798140196794458524648179929533123489817657050488528998141538137019560074176700512216341192783116936544522991449830182338691174441014413126739262934902448211326663940708994308175245673658110948234156973185483125868039896678814181943091707910664181950429948116823975186282794601075000698067976687430513327962753664670343796195841525967476859674544398711298263218645746450015163378181092738361374746873989254627790212690559598542218903985880847458660400439770725001327862303683954239984367409184154017277588237635213145325160958195696168318829147238906510796748275421991320650680629857787453186294839975028690388117083573468175979600682848456185651204880634635076299119091574523442983000162387175798127480863272781077179410528417343808161450463020096245731309508446129585263268567933166637277036014286229357743076521860620567063302863878346086313580208078329119854328299368378148803165805799345330857936204946341456464404056776046979552375329181232230922925765440551851042805630607833849451174928288775054650625476596987388778956608752289360406096332242306833784224334190457583253818813595648846279955775878811376991546682637795693885882514652439835840242618285443124557347592206683448178129964146534163983427937219050215634823406445543058559089985900988428918793291067192911391866431421036292603585298166670075011441177081131549250233379795590392197515588391816511136386691796758639500676686789391870103027941537244999812600423555349907121327884395351603853464897952637533064544037737202931804695395638888411856023575820284713214608096438990850840929021694091990916767726335657801146390964271910690584108274602777969453911358740543517842836506158841519353193902854668011741500558497246931131957537186409018473562175164112289750727089558666489932998398211494771323504672103255190242326496073210763002870948522129273772254923560733837923534360717199590825465226779033209735107387092560262838037529782309482555167209140311385365796214313560403636041747283337689760409339731844196347828950082778451757252961588096974740467561152650162977112551287558552386308734441571007216017397793115037789991733303583031129623865334043229291636395344233168562344893935625924204255288846623648964192405878113549138367029170561746165759449650702994849932243162284948325666191221329109366832416431260623840356304762870620746645412306792623141138554931477431122421202894313233843975982956866325735607404200416796332336521877482316341655141969435676000726076040483552606809060809156907952416614827924587358675867302425299733173650268932896520354706113294189126992287293350655374704465823199864548894743107496474971563661652022563488454151961346691923781913345780606346433212985047087034018925224503372739017317260822515535755982554900477040259624007019805960282004990018727018650543358145761046909001655869951223884135536291563466118817400863497551476134595095531544099585203396618131590887576398571835602783350302998142514933871306334170905493933369252955988713255605056148894223301526823344221391520234616950494006127822482228080955551841882460639553835774911131281008726696458517774623129918927167463918697045135201909002654503478951015058895675581742733080054564088499061131310132877774494575182354374280752338908541851115840473776339964760386323895544720462374725539652340520012548678297081774297883110685659811739093442689855632837685331456136939165404347287418943377753879092031765444615139944756332233983694624228579420403352399044482421644056774799544826316850968091047183829056876217744006955766560049161420579776324685411805292409189601041211376853749138937307937919181883542903086706140188807259750000482244225918687860976971041017670755406132573976259703470684673777204344768149161322557827411703540745316219846466512106800229790127850676586794593488291094620208333819695825846187178076658227679751869529147563139818173130467756627470410452086545734332735111795519766249999818094021184954106658532687691053144999270818768790076571284618079445509000640849693938741028903693467762450236833869222830908596954727109347572924052309465127938787139352414260721229345031048124503934101465752383055629053484863123707504917679322342103313226128578659315092885999333036512669961379498733241051490460230678594724902891864564841038023642061072301224221349061736089479378968844923768749509368425224562525876496701658122211544296830806282798432123758331640797282228627047454260849413828037193801781592925127034413453095490885719501443956213986128063051584353134155484289271260765478164822850159530625190254550802411284803906762554407155625320056570340517903885311270570897050705580901036657721757759861271256675429787894293722874013799622193605045812737628185137225897287002095531291537490315964260286003686245968879120605500368760325782540574201485152921499830848995477825443390601828273998519937821671014704260875132890163927117929768647369424909009539804109875500979557958215500981365363862600242377702876613699589547529628805959946070664476898655464035614897145466502519537933835562452454201719603713586017548787420463012715313173688218575081072734308145277465936446829881869527592103458486975931996195218173718815926882160650695180389561542960997520491070899945329917860460060570331790293699497721328261816548083525778770230145163543481100202680425965041271191274010004871867304435151996441775552873318179670635581733127410284712907212518416505334018947036193743014264511272583166541505456628022605443736571289321044962886633567336007447045001326196426515383374195165269297066838176273457631492516412641927446953302284510014504568745909957092594707127659297007175515365131601284764013615614532279543046515979219306254506512862947319682054939852964892594659316647638662061902426779682503689661170867881077532608808035489004226986865249680016299888411890817516466925681733128786776439258970805472042991635522456638224124982543687571796228162223293634527969140864595116687599065424961324248434367658898939857401338598709438428716634242555079625748247011540962886914413518081341436021521013773460189501344370080269371233887490750957982342969304817194972637283641272487060196375569036107673723397642575223031969718449483260630914238649868707013850753989882720809950088521852633517493415538214079723552563306352040080293750909625158505017891519294509399684553853222532455011564418803608920259153687420248069499567572246865314896399541803180861736033071626661961687244894917396602735401098597622202825445519249346774267751054676582386323031378659270289965000796827600029947507360671831603999507956454069433491738504447118293840279039362848072664634894742869701845330723667655357380551005381862818990819378514422397646445986054549435901206500728660819267699219343108215341886744972581314853679738986934360388468754799822651441003430526433888143388605745053129641580868560794367212895518476532410669882844715976923643339957209779928383652661519298018408085734707281009290113440757468644492367176575383423328728088351534398247179641475369863723912940673089822598846023382251964442490847782705344373136876129126458342629104443752836216071469793025190712763856313988464718179549363782183145009564603859931004916370863258650118431326867010293157300924214283939246816811371840099232679147052251125395471027889293188562634780132103567937221191503805240335536028582737210290005746373958845333702324605209168552534639920029490767870629404967636541688489987243100803370750704335357795082026581078787436033457197496319729023179839306782957979494303571411092850533568874181181058213593630382845212302599075914346872595962840632392983691896809344737994357584454356729015780055326979688489713600523648060317196482480846555237828224773798053863881337848207297940528418538506878193279545298904368078519706285778406249392832476031382025205210064473321856745008647008815520817023012795479377830877080299961192518092186252472908672826433028431167712585664927784096385913887573085613848117319438980378225127590888981877165614099868342167817864954661467613248807271094326863310817493502115722480702741524380615620330105015317585719106719679918520842237667892051748914811626212135740381657171247497052047963058194764773971695955785534680649782662564419802322816281538576152519236241686804411310472159956832578717478832193460548082464923212530907664184418295935589912247228835014034861312840652637030230958342810994479132195578020922058917014848300208474361277960551444844681818283729907211325379980201947306584117474153979059916302209968449975138392637143079204996121533865379724344017131060092173025426740094246556151731044546974405860037339333756655094822541012857969921588504858150097275886460701824195635765483381174388966177682115614567409969835285409404889684202973055627163565921091889178666855685236627674772770008319138717203389247454184282627976328529526145419226178542914300365925331564728385689488885587129465193726789492216589227590614977182172455847843840937743805480329721687692663568874788999938347626830981426040993280795404223477000409850004573226244823422632270684106710997909292868997318751259358608552244102113062406829818169498321691157724664851093621002873187123599988998650593458639283602849829666698101405188822204240682411388776958189735463205814260352582585502529295410813688469474362381081509660966274983881582457321973291605893824774667799196149765328932718533709166606518550146784129850192703670879391153269805618716372982670557441040278232098247362027014334738752835618016302444520219631136370346571985371608742642770841568435269324463309921403924006538588542998155212349265397664407607777266128476922988134081813343026117371029564075256890448399318913585438587350639760272459797177190329488631339330020807751364478546529185095676342348624701945123876621598262116815895646476781650368344577117520436317412901596874725104076684248619543041409696455394250121727664052914706429669559638365041499857523012074779167940433552815991603280977947497295934820899467823509800700142006284087184695331096984374707418033906373828662189555228817870706609720493594793932441713729090161444520393101673780143393283541271554566334325485960085215706149785496879001505682211882757009899751306924586353583701984470856628347207985369766045588797734204862186763310265403279049118416535982507467059685060603732126296941225454989289176770368667152433229024103637195662277388896175660304439901298382082842732588418411638114663823584907173995572668308467877354605047759375852310021652428419053804882840804533376420822663425129748335997611292800113829243694927593987918614176718989141048641497971262567774828099538871407092340143489398461111190251968246877795352413995682613660344742847830822145402106922148322478181826775392747816409266717474934918648250306720760709309586270131800307644374008812053021573582502860356283769991947976242730364687910132638818284905043570221948304995706672234497023590708079136553410889939605203287635539703424142417804162073317837887524297464757589452380639494352944357393346396265497734866341656755991784838852450229591543249561863278481795749580973987758898462760016274039266260081774935465842367667059523723749072578171912238390426295428900003687362790730438397451911635396053506199804156879844179705792905644378988475802647287615286533295186695539796345975522291820791138344729934124731142834857880206805159073375501981617738967771617217627900326881586433822886909734774496916890996855273256910431057217379768639171775310422826000057068004876806397253064246383381010403342614103482182898673369269345631194947877427152258305569162703543635804282491995719357922223991262101306050764333843104594512976770623557675487495171316464044566070263780526032304299611059970107133600279354966798641771812896733242099111609533818746600406518768421613760582031531318167054591050274460137731072424632692091267138443289737157464889387948661710702371768072371074459744022689316608494541013566367068418239222346281804967813250143470452217619828997770920819690196064917772481864088656007750629689117072293523245290595742420126573314654056391040378898038664285271650836224384722675779122678398170296499554751625024743530715273831534047562157588648508541600222216139901588985377963188626410242786752001700941205129962240793001395317784521592647494659398288268468529888828509188343031585620942489628715317912182697496138824259247139667464490642088896603619449065488493338510451782480206049123435120540605800136378188606006206864993660355480777484240829580030945155315953627423870699826193942160811010548759187569736184790389219740561088852355654126680975860172821644309150077794802232198662627367559264134325846750716808300003922792299242677309612652027239717175011799397524106296610179192012963871788670233910682786684574080578530619241151899448992865197253189125541119906694634775320741023853378701927448867751241867822410406116465743817787832013354329907256911367629352344357148794083108271364984902260560430117650256265346065041310754830546631168095416442057119343033691447532171637503008032234966840094050702180871203330310226575105420121714027197898438210447162545095758491647112420809368810947514828362810981048344112769884433462017060773399144860741666291295459849491573254768674182815537737657328076748843923972369734503229536118621701408948907984362928537117594645989275400649368467125850879430306014104029228023607523221353662752649976124265623581136401510847876623890660838260685577577314504859974685379227473931220487667101621223960892313426691392302596939634378099714468623885182912325107485099423647880706685064403200339178694256910891891408098546244212073522591349692850942492756352312151305839422859156213951451401031335253826001132448690306723246957961894096654510768945405148901237194798158319530711349569071653576273646471622106310650700503123398341331000496072910458659436271276986251090884128776237517851315352197715883128780712360527391849510156028486866645758873011652907149535304792047675526360973212972332656312672332818933325189944037359207179605659714125701839382956065483922780575604363511874987187641644320577224701564387826168247759157159364495132426991355070123868887326392660776721301587366939316670609205411047020556630135129656203502545542138952814656801232828838943837190414669692288364489943501549248662343880127613285567247968177116079093270441744277886135956557640328320239836795290975059076597381214940808754992830642949857993833271597416793877787559161463060932081511698478604720746160576897595247940707974893955845570659668593361510364623239728988076091521684395648420681655331245940352645580647467279453856842691330509846329311549169345954388336689014373313114130505569521011252201056602171651727101824997156998446456894991911429947598861467439813303977157062082730446505315566381372348906206329968171559517967710579407452032062024139571868976761406423320904784279845301588124107366153840070212379542581311951465194129174701462103697983098486292951529277763115632041870281171617450427821884919254893062950924203500681115496777572250816763163650208547216232240010539117906901907348667068466955404375775264928088400198815868507885864699635420257508079698547286540402588203244981151544999081745565657940065899091740776159518447581333444298056213958181362939344868336026987407901681218320521340571465810261464996713763798546535536932891671962029277113919256213496536957166747131574015408911509431643568881143970691429470874578474456645841885339678204198890089832877395979623524454870474811531692726271069048426413050560630459165452058461457140483671296267890771759773694400160375725864963956531374400240453535668815203623777111120938660814360702403366769630642087739293197875687148700371608468994472015333413308290755066617369378626707839312800381085911795128364564042982240326191674405751937303993476564936544412307973956822531858377733836868375179062702778590656817742690784854403599488377828281064061455692516186620822708714480309190790421091522729589393127721082575078413789036983427575985493564928917264564894679318312011609464679393960460566104301386317219494809239847962736153288047148896053388840587845767859677632132135115598957077751929432740848465780899495397030476195225958747453952376309949966132141041588051063776603410076057517864400208879251398622945313340764838365929777829809368939753873665534215989604662609923074673601217684455075646866362692144062678795469738860674403266514571448248807346709175503729157250185983367568709807072474668221443053640638874656170301814571653454406091574541616585402196844703113959556756314677055395119824288727432044640379751466412550837304604041425299068727723901291226013657837707482414441534620059445694906903323243994944576643367160199845259649684323003219488662689639704955801975927134109873005205031479831620409581016738305096121977761018786553013574330714596889094352925753714220453097296600940332156336478240084101193798113863180227749043892091307227855806439493613642450413609088365554145688142024995597351588416967474670691941560997770183734384092036236256860915394933400985014545038386832341678357043576968397860343057821129506637968557495143376516069541301165390203053911322482013973713358112875351298356889531618763777071342170526735157292391499610211700197678845027283525759491199466899461029236198816009990513858050693004550798240373137871984109395244685044803756082126517212470937351664271780792364828036197490522689056022347159593349686276207172559648958587383686423691373325525172245001210330123865374150624039297127324424656121661939355020203430648892718973881873238567690184485289718083116109446512344726094436802947576405813610275909788127731494867910850753681342158527979663606559743944755940526502767181389297835887847172291081973930372740113914181637145710499804239603487959574873920165792564277817260844330320269697793333182901886089489178062592251265320032194001690454600726882071515070901874624715399790855995071207792369348419412291354526194332045743843077309709317141544785177123325532259353583827147014090563630696662220784609719980092919799940611724632720139510910799122513259776118933568912815945188141003592243419842611503380135474467914603633145228889228474380874397106753072593763382957331483064085820439715914774025682490369893994160209710988775259080137974505781488321591300815202140311546891914432314957272348824114177370666023290838580457940027007773703676194619438728734236330054831711273247510195060559616169805197249710012579473833213174973627990438174089988878296740572033275201449573353901498410214210306572407741797362007891392011057474463890470685178310479303119040958356036889933836328187703535929575838024738074828957871039769688279853512967640720496113715950391413737215031965491900338573755072416539846834977939015950825004167103054120951175138307782613698565512883026268150055084181128800016381423100317379002371452441654093420467844271495577762455003089218981848690823435466491133179518347286558588276223194092037976883639984722007257562024966250351308050083106735066556377761759893569225213135659510811699582967407097765514034235308358514783221604264373262249440034609231451157691988500457672863663856849505670479073121148973737735409030604561300790307606053860208731550253729974459435879787840928567599357269949217199648623663372812351744309527612270532516595270884349756967894690380340608163129319128928716609599265606640810228571575229671251870925125896571113035966702753396906342703574998915619468153088437839348913848818616526939435091735030622240271060917468006015089518836997596790720718705655478021463017753250034192903985792929016074096516257361950675438617755167817240231987476448848816037507974155458402159217311879058688250979289524575245029190164781514042992286872936342402631221272623765446073147452662275184419160274046279788713108590519674494340286461831520481569589426935454186400186613989470843953759569883892162221440250187217026167247483468065579858881872470867569398643106031287839174761632622756892213537565474239751844256007977135927038763228363005101406719073975382833622954273959382595556548323774739614251807842159952129063813264611541991166110514939633484620910509841958768677553581761048413368973700889857534496838158656368772272718959000442686429474906821836034180916626281376000507087821546921669585516127116719785845513898002070442794526974205984318029182051647275770152204172987737578163107936193127960194868142096853330004029929429518342752626057887508243473717939063007250987959392906189349592666354170441145302749647376971950615680119320919432141856917471207167921458288452595864731538292984491914216417352353784693513793758263167168296451946478291035795507085392009492382326269437006751206187150991712772373968039490287568973104417870658795486135080005320646649768351885837850708596442063434962227934081155219531539336520152655708518429075995042996598006736816709323067118100734867989689067900649088434799131062852720283993157871458305847710307932954411441013469560342989988983508182276297538127164908608573623612657896372847174992028217476514960214933494895914882252236101415662755310098371818202048560472802302732947031595438790509493705034996447548246744383590406716510869262532304019787223566588779336010411983076614027173145367749020009862990246892421651439162253989228195148682414437476831481645663746298679799032333219494684481823452991154490107851612880057986641575741113993861034519577043942922098275880722586674460570277304504555839362564499367402625969714818533540705158576454885797393114950896751737289279918735478967852850506281186054628709410633144183041485432483164703690824518872620827961438044707026386976607892118305949011278435699180443249125691924699070370349385110490353349654157276429252105326359068744622161031310050693807783571609059938902983569379745489674780046538573579959116939920229956203313565601034490563620031213072025660197561025593733200982743500620547378148432570235554071974842026018722580442586205849861034405272486965798509556156778157378715538976736977691692315330103673999317244488696006555358308988802062347802987649997417718066840028439620637709732592627705840934710966728528855798238832889215693424900248886215020635629975952335790107009675272249584421378417700652010175993254764633098278926499889545737886812876912351350051731238831940581609170010898602505503586094532264299355828727807025161252482953663553495444108755678567932316719684353188348477957514007663283244960731647388224244730440649874288856067074182582061738909826295561510882191010394338515026238768075500342834825625812350415746767042608939008219227186052899328403887249882785534838442574603640133846022356289965441857335770098363703477994021849475680630864689286142417149486557209793115483898564382934768168235464853285653966520339626554969621363385351034260989294518548578135850394582113093261298442634549958973240234328657760247365098719091461177061096837298934219226625670080821345455412256697314414581799597275796814954227602779456247274720136724690788680790669517819888580266820081882959394284364595953255013127063729784135527096909482550456718213858066371041754891365083355792773146226614015478794617751578415615001786763571296248394145087082094132902391980742204530701913748239388743351831731782714421774213902789662496723526505246675818271067214320807557114049670705244227963948178382062996808832463303680607591041693769367373564756495298322843658831741564712437237244275970793872458236311284062886905952126133835035069630520604335523674360691892253191150893132078786132069537996209674726731166488208325491470164576251691932936544592777099947110365432876346860250807376219951568146618935988204975847442919347213922474408250696613647000169485561642862780077530766295229381904225118628950308281863866304261129053273636213168902834296289347088948473082598909056638032534080985411448754255597961743438525124802236399690337968174117066538113754891148278965319586434155460490203158025688040079769059237343798373138613231664241282424775398461332050586772638336954323166053630543220914378540951747991515213182065390339313010339878362838369631989925749726931518956986770767836410579038267574235572411981892508465428414940351541286662428140661405525958729833528090720069166586126305883575954860660184252376302745205185465415596779252038018886939740571508077561814802456523047386319446786786180587651313549921653620684369304041944352326724021801884332141452649407346617628492346304983519353677446560827765507778664124130690063066727086989140158675517461396291580300349427377793407080863008347336599583721022798232681495824222794471287492824832963313703209702464748376955263699155292319855115706939978490372416502873690387288063147316108666378287519362488942373264140302562456122750850413840241935645894974381266451453633597082067374651910246340946356049835805991638263482032628886133600655153532495819732144521812216235914935325109058289898383044123584947832932818606234604464773107644713077787123814077290283666748952129381376107144288898970275554666176894402141873830457105881306377333285512134961098922282361039917905249618344223216965762166619883057712458280606658284562516440788493136865514882188963976933130387912940721012473556140494184199974069241326269055029532457772432637800361556289754128199503806959978596427641224812125973672937556617021353521698976104028979198190812431559832535974761018635356843848258546886424073838523988286901638000742306192883468729423948336107772252284780629079873541433684252675337218355923741338292901165047354438814843028271554435902674370588889460043178838915822522575570753324039368908500928361852035124030260129292390721064052720254168327927791138989607916789270690450717835778609207299358077793111457849516978545309082762804478030440662098280598813976909203181109591859127325265120540348384434511366354342603794226053930327954481129711079747140675169824088496136571984720124954595718128748198555593532257407533682526218454134016662901083157308577612762803034158745203154211930367736285523686766085520163198888992402522185794675173340251489899174567830926409917484595748880637274257811297401841204677253541982152251726451087481133225339274490946585871822578554050467564512300188264540457230394769257142797035798884736040304058136763483322068637060845386929963384194460312251654654523943411801765007626662855483017600949064065365281231808594598587321886186881226810432108439381879207171241604769105708095980712494389319425196313581262020982550856680978215859139177277111846084267493928680131852744435430220383905923215846431230815733392432951456365477461315690578238014232890445813766389481980441563736873329570241662693839775573014972182683458285579385769293474333642189596778144346337334476565009942188191176814022704497506045347212618204935512495765826396216449842422103212026683827547417539644886957519689578853570063383920531920570919016280494033434557196680438780213629627808339552431040824828368301597666498201194403315118588488271730464526892344870222211986414035918764818197674469238153789809877564940402235960699390201920688044021781693036735313357184932690989556867213605800346046269766464724978936702969358252553677316053198148109592036370876981789089853269909882345985002772204545817822610525022286869942514108186035202522420884590940910510839838461468950740140417345267687143297220192984745239318156011467828542816975734695165697592352391683250015735693704268346051770047427378973279455635653184376328516739897023210777753216236973778013077522269183030341836091001763364388327760580603845320933300955204994356600216959612806859110694510992765151066734192211509961066873165062543063581263452728737152617893598252559319491683184466723669686864037607718025607887771017154234929238202695244917290072932368312630429713382073590099566784183714940240103002315320606022669413754187869359597675094157953290414232354238071424919008259890081912660107449504835848032197424399685560460877467760864796801914436110758111511479998813192175195768819447449810027238881767178706509220942611821754981300428954619572351566720624862043669206040075346611296873149308282831125271780948420533833222607758419330159346060887812211373537995200934666913512214796566587603565294849271021461676390347867976170653505754142384398333116876533426818310507892842264084463362423124119528219620444900832402543499528478845988177451366811703487838117307081051791743449965396522460478780616282748915805319844927609461207415931320698401498769523086807468432637024104991078779188462297253278390205866969683903338603577138985806365370527751480775875464184262895090344229087407976241264993603685479443804456654008201524859267718354173604042592539539081711199698040362625027807924620868256153092602803569786655376637223937107952747129184354753651046071470046979294353687120042348745025548427577130613984485837403982734465133451080082571703209651080208369586435909872581289269149486214192248692764033063824013286496125678167998801820759070933211167687328386160939695800510484909566420320452444254533520959292242400486146111369545677233790525262100183580565953345199348853997510820914853806969854888144693178911314556295005956853384127512066617234359290907061412328921466928307328802820815031065893092164279868946227825913836956369518308378602351283973691222980300404688334581779955366996785386693544715837532025500377606453829455807860575087013522017430835286777249776724304549428047852326840037287892865110837683256997347256930353525692243065345559759193328976473834161921114521744028522299541463812216343003130243702014762941708619301292657284478229416686349952904014461890368273226275822482792571456742273487405862883610936429031131058707969507047444984153163111617100609092436943296621121047448755288435305044892081181567440274311140305230251597415899435817667199137273543540428744309808318197446061159718750918121168438698805386748231850711269428680008176763729662541612736300829241008688728590132447553734829970447705737535578796039364924425928670921350931855643409033746011189552478212788574086796030070994861588972439134072229428568875944884175181238739559325903107112928774091221540440228555758524323545549884463270761134987343145030398047240426835785387030978035094599554184329233502643568590087273513816659021225587610970813224174243807062528583906531357236433690707707239404631189696996402511417550504040778216481723309126328975330995509915610918078474979853006074150200999862315229321500493264291952091778714321714110300060163059966021431765734519637802357749962203994989077383979708870882717236086760041808778276428211626760459977792143676286194053847830353012842416124003253771266819080866595017702126779041186780068666474749980579081841350535505626580583708096117202543023744530407636424210636097683244232996199763766716272269533084261659991690115428877238473454172252422420259986775462614422578865877826327362829885396392100318371629376840475218544211408808396140444296398091332597143191746131985600269550211182926675915373567940457182226003946087028031651220655978477083311716684703975679506742256729484028046160947360462673402141279104503715434969180046933832166403286795629033040910650956694077633524110761747885038310349363177118636263145677063641787100897906710377827406783828034072116124022709594357448261748264344839475911260525404864515805027783944301422334638114213168919777705187360206319906920977936128483268357159026264774760612873181011652389311430541749825760374026565380844221891172227339691304314498165114858768407893016322863438573749554464924380062451094394922343317161545628837548388535636831996170009450589381941505397978589899671391375456503900335587272773447218982382430508614522679452953010848853899825503473853717834376610768088615664638605973103215436076164108236147488095361614464134497688030032508985115289551190159167346546998748998623593137097217247385775856527856189321063946395917253125323344123272035765002759484451482026357147949978259694599367922393004930802446219155882766405821412795181013471459154244010018755466574510924939710790055235030323356397392985020251593077003977686948428940660932336828051179500532678579754322481768232360138474861506591164554197259627825144156978088978758594387791353112777612612560034150451526222792219900932493507634417690197866878077374877754003685483179394319017998154053011415354628569406895433820011634477380554685773933198375927471722032674651085115195392254236839332346214815006240582400736670573685217004333646467732229741720397219626630032670587874149456183094803121164256368111263823606172579700698504348844195778204611460829273168353885544243225529690642260957776766654341864923692280255947016434789936242073847460229358609427211239309456208688385910972679712150265155890088283698098932230520260509057846895716055235257106823999816241561746006049182001149862020778632529529135836203621154902781317082364673685923802783812955681787745141484759935611739873063447271792810683135728240078936781635461790069859009490728792814285690127347696527969610560377389937328230220643924236623808405931269903639775212080214846207429290093683859571149739454583283425505138396040048913292444295664401304163473771645101501760880580150900019862504431472357784139883505235324279701332578996669748615149157635640730325398857075709958026062478341036361335168583418956967625195908944374632139994768274013139684486047101410034636082298606963499512266091034476562055218507794603946501334274270252543601945171351990676042471964273729771394894409046111564613021608587907929022272111686543638100208331775438768950376098057448223921119614553718580469392941644638324597746589170986128943834288143902623045784049141297907885117620218588578351178275225646509746426299299516368603161269550533103024017079860037234420423576335162250653670407649681277900030813985602239705713217713783231101902052826195947694465514679978586761725008842685954163045448519424117037778300065098155783981339992033990058227698106564274738422657582830551527023719327873796990417640021314331989244382904155936553427922669405577201751765220750111535555994087041776202957001998335257750219052144702439123186765565998405823078614908347163542968822995251705357298415935445313127039278084734671322013929442843116573908376446367044821761305260610353885422649515261418341671031025407330502044363764340255320668802017391868383230233965815092813445707973352234827135507676339270519377702522013170571363493111271474448656870770955048581435821024657769017640395710738329699617439445266857959262504613511616948930954781627906630877269278332775639405614927075127833906896107399565957973589018570177895239523315391806533002920375474615062096333123102821282951461581888814306433372315869245423791802983449692063388148302925099120377268519581286025668604957277952014812411943653774479269823632965283405655487315697940210443434718086866426106094682692620381265310579399718993566791111849969301036312398660845977350632197941051445331949799095844471273677414863382290378283682432849681331521815055580197701918579817350298369196195320642284222669285328155486662737466987293152851024160478285268105609299703841699169828661508678382396189177710887544232611275855371638739715045150067391043471679440083518298113805931353394852741008768316704156679112579885443527489718034531311060843054196059443190315619055966569492173276822909417538483910947742614291645529355904406436900239028675482072110369246296211979417050830759839343967519739119527995471834209659994683078705681453581035651239780152142972847883030749474511408968899959237405286580783553183236378053797858029081654397699317957895385832777593618638491308389251981107969263568851528464356931995514129002567202346005047671183068182559627540182465582850804845102365743835387241785393170530712098676162542015257829214146729937986521238739057783478869186345219540073155224680715673749689399555015415481417568818835104150224159249867283281981437315100047856511668204363530711767730753664329413678667540059612434736203101036225175124530735965280876310737604648313397218101355867504245843581620079907494585782818711005634871821542510399790758636249215391906633525577028771131108389826293290905576116705839546842077468935590817911769053767467527540763301895397512099147127563288992226888807004943075322196747741260331093192111409855977408347690632109443189968011547619353695337899601718315587954061883494750948366775474459195764725220116467944545676494349198095585691634036259225576664067360682657422002479423888953597036164938054303724131922248302148686217326278928336880264619885662516560277260313686332599450836798740658954885793863361548730206153982338685467829080548472966346944643454803739410043949117890497671106146155993524505021888367216745447847420687595638000834164596440180023782884673552287094817401212880037131035384364641163562776841140979508275654735876202561031769087313434300251586445194648340354360668350382381297763877003263768981750510473198605245318804126201657235568647242034332548100344871558971770202250430706788879458906633286352620469718858463991078581950803375151986178802672910665753828860511919162255482175275855771955773146200558446498934053583903905347468675887623377249016182904323449656534616916343412061534116616437545036658115886596189559137251983961394597953479152843784357033917185506465385668929716759402021409404632488787477340539656776998722949099132242952507194923223685393939028910537022566065706104732755473262485975181769972911198604946964048305085247332220249563249270568792267066717107746304575701544469445122908785330845529928408889573163128327432128778015852765965507995392837880911759388364933307259502430714863319537413481273249916032483814230562397976459238725451893283432948163838389528968961355023446956525700397801435025821529992450944058133220120677862030068625231440942022624340459717238885601915941980803977472757965590557788867980441361267383482244111170306741331786478648480573130224064320287962219116861930232576114103768609474242447231217667370675430278833233902789480124554332528691367291409532137039914373112223317480384936553641741560875903359174925025769934120647023933751991136422346582333971587858825390660303405186351572597595656471047073630741582591791053698805244362662958482563856988117362649745186444054555783619989201774397860018699366393580339736310990499944512062688212454722594970879548576236746696591722385349670642566446855545174854491153863293360628906946849209471109912216442051318641406499509516274720826368233587300616343386412572398281405990409478656214250236023450730848206831896053973329191007175936234407850522410943110080616107510732685138187246927739744799893843699508064455341072511409506818644096621155243067127902386484007840874733784572276613456766315604451177633870989824933363657668537959439501752232842673294300499052290841625804426398401005948318534771159612209660250848109389265695318429326451541063484847804625959721314492836960772853434420166126312379459050176240438012305212608184253717019886076908392538228207563557260392382844912429565499142915312559849449957550359482598206315381083595803290060360217312864722243067081545757568254508586141871363530249966483619355146302522059089066498173941741549423579428337434872606947323254036376081525409783164859842434328202139116639992304283559216975095214006517817651622462867401837779725777967097645668437595658838970563604422991227879152007772671700879214241035672031773534996471289296840136925009478220601712752035936993351252594871295350166851209312044361561747136548596826410236464373055672399704034485203542335334518197670635522070673255093243363892921605413655886466406805716764575711971536142403290920831709587304712014614469868146925307015343969797150438011157201194663531897235624426226622448418612907758272898146562796413042323370875069639734469374079532772340731687811325108392294406180744149867383805932162068973923472110436856093098968787738151251757460291825732594273701001264729032766836713619463220796618040550554746188216523143090371100668067853014594347176170224777459241492440616891057423548048462681420524287052184862695456183423181237720299921284819151894679402642848175551600688994259447205760666822069532357437077854747601898948352534524645409659469491105620819723459888575263062558195792302163135608558279795190521856268691714092187530610271834464429701502824707965400313193311960526954443199236126873270045373376918219579929765334427861958757835629502527923451122952641252416656758100863522530800609213600861759900939262921166324260244412270175861594058483900416069087221221949169633414607776048794459698555911518962924921705571237568410687044523737385086324706580392872651218852856767917117987156064707376128290216591984799170315137975048557316915837912039697438232504074496043015241644255051899172089756755455001951539890953509439479696248082381846729774544893431995262417510836597739150382844231229703160654592653698770863846701327400437480400581618817465018128331537159033910964047023631162514876187396619193395554378635713891219442187133494142824105240732982948787345763788185492547808295814157685605424406844826990903827227155296475556141595578994066861842114806384444881523151982187919976404153328902462729201179734173799895903967697055677338404209049275795756658656491194817841741767859025109965489753203542375158797476839103371498587453895950547331925479657925368235592263791812607784536097829716154375246696177516089291404155536056875448427804044711865318223331404098216680554108546614855179247179444853528525855281911539036583896695879196049651414592109522709135925185297181508715930587928285806121821976498440267105291195612135783128477672047609730429062539008742564921595758104753350710538510550195721646431418658101988295801097614410941717817022426726542319302341510202380224236805834775879202193671843060832664136203899105574798065833855174317565756112519620335991111744226194589275205322648926422622050476307186551917791514739031699931753801860981764153470198887816917419166673887677887208494826873449235380477281882297868237750735868264079607160978320954430189073445195358608838871359588845410101692954427724918740941115130144148353110384563783153040451228457340984770678586878605606795483250660826672228453286208133364414044026616665797883927733960510650996044806225830600140940037146302960019868899953710345144611507988616756135631944071809594620678211266001988921232617159112081135258957921360884303231635922694060276537527369623159223808958637912465290933179223510196050624878166336285397430982389688909706251884360717619988057535819020868978122018617392428408263112414881967761911901002932070581207256740469707273813851319622554663537573031564807068788479179450313141927912301110317740014461606188778872874254147952523010060659103286361575130985894358539362035534065587601535269635797764228053334179225605841840571766253881463718350900249615269426534751088799778078759035966163174198704686100765033230014278808562470978422011539122223304640765614223809454960902409515737176582285188146327251343455355105162666403927991598604351232109960471123238483549233586442635488097512062234082950343773048900915454378058259408611750167638884100585478426881382513778446506772630468281631273713752534787204833867257451093993364873757626126982113316317972902162099509373467402045506154277197066835534221107950141227742991738891438864030110310029349382419944069251663088481695826929589933134439762287118343834625766413205105722702379004550030999099906864297712469429102969693898665081037080123731827467386131095960450254203056672961768664217184735565453040075782009493319598724848361499348438876971616209793164219655134441086575131318439110799559716204702825901504463395253196606826724367216971224324985737547138876178805158299492994737688000818293569898011731542728057828903693205016034298438120032516823703866599402185720084058180899552045649390082136354181336599391470611057789550025912410522342075416631720870760538709456022707916795589173844002959514105704757471276923207145985795878243277521028009413101853881815710845739586333723637228796807757405981478456562697619243934921313576794620137555220641274196696826077384411894803201557044290993015206918793128613867855773491936387315195562847188976523215380006662127266242692101907276791895224777832690101000841278799328382634496366734587654053867479727843304734660093822730599675698076185658817785559861805585124039638355999639108430886361483776814266348217138022528077028018841698071532654506580899235904270172399612858513143880600756495641934173933858603806333944776259204267221348339677965621867998052893619012471695679790344435832575017274919316208268733713463483560292555876838503234984795370488646955618444737768671402976782409326027236872258400751255182977053280371396265122058594106886470404678240914102726276479686277853255051640547527451891201277998521619765165831783708863205157337785387831844264127136698283012498842973950414641002517786581160984769104864031119324351791522857595592631051814045107088177905132527856282442358572603123639274433159309527173666252499932342019001951272531030409319250024102547868326202447119323852100877703628605586504466731780387917720124261380288089183430775833023683513152164877941401018854224046240461195191499958564648276972382467300165484632554729024549545564223337139672502583101873196834655109846769163740199672282587550094482605206067630069149521013025768627121064674590835748237516543316367728911829907063679293023319422298304470463267011466585594621807611989826666972924840283268961874535739844313620083623610597271904744173916825231719963097216670968658277125010829773926803391461436475673700615398624968969587054737047926195824328961004354890341848191798172052302304293951893583160043561038918035498417322095585247242383643033207964936539249842886221350849420106607559581811434595568683880656021513316464464128862640671232875705324109462998310495255540917897327247363644447481736611315917975693661217623670437624725476238546578945801250404868750527974912320740503074592727293619413840980373759083737830969234980420004378616947356954963681356907366795659422639208556437190922150976329437240068065494294784460322200690091930228394423900794468117704488880313685626100911614912961196775359781839644733257584773745623233761262548406251609214001277397673764950541447985020540448677686147548201756325036021553810942139053503643318852352918286902100655742466995025067667866767022846271064184989470974108779841026283577166308601897964919268562182680888554958422577331057050341819839254582786457224762144348913013443609362317861254508071732748586734830598991696374964087672957822551321588313275047304562346244193197239886234392372992270565242987155919941798598537071981170796029663882622782512683603483817641444803194241965491078540649119177184119406913955818922982370292227913874696987803287852450768890330404546781029073377360190315946036724640803989708075522946627076896282619166524901925201766944718237972836961638571361802481346216677744210234880267018470206713284884411338477804425944121087729931264929897462772467211091264630218893237795264230358832108613946541187226732397123474581439193790647969643073302142862924291770526049441011830779077350978905641045135991647450397283995637330043750471031986436174542319202519165829675018417734561855945895941396238395708165119755992881648347649181461798601354322888921273680244168099511789044303517122899227101976382432706655770586248140310754240227327205820705430906340343371369065321807119355400700123956591964352954425331300314992233589308953417605979510804525399248172814945039844414912694705806530422605176651571227923228957204140539391984350761057915554350158645750399194201740739356969313209357071940744142353889959220191669740337912141514613123601406497096132002509929023505314738845301517674556147451226401310224852154818559665480255007874940577971068901850540230720000312155337034418426713063778741911939376594522482808622061870926427728537899471744366671306755344658131262830200362163565781583892238721717475228758922106609551120909115352754304192326977251195821554424675867882430867053616693780126362798855614796648484267665736690482729826060607742866078014657305800624386131235802807511123218475714141743635864412862508994410423156800439249129710454201210244118598557532486477574301954354256954135827137273011427640061513207399900922824299296893892719575875744954095398756160051168996706076289038233006523552161862200145966636942914050431488336271142797162514640543644893698057398553973920702437644303462820620547602770010401969904266033560760907292301037336152261113874523712737516410479575525989881037395046348274712995057633078250845677982213177224792556968824088208317202642429982800691095865996732797789172302315859623765001383585381835042910038498668627318828638090057546863999278781107395793575991001880734729066733158969331405122300977631160172624720185106840728566538177708839099820886512159760109914170818759322255301174449502518568276024353981884299993688245245857021148041865067810000533341570555320261799874421829070598574048989390698511355443687230317539690168640148830511184341732515568673351132039896874776353892665515782920178749624898116666833262677266767950640646278903869252010547679415269131715201717051330928868722029716419525788586455868743587157345265335622600197335514420996910954427529475381891421256312467961556804137284811647731936266205672557893148417868634828742060646174994157929378411477258461813497313106445616607467663854923208533603489560499663918908848054980401929447170610256142706532433937465013696960374300411287456763052810516187205301321056707863875061917042283753040197171958860656360636252605831927882420230532683361567791660176267377566031759391841411214833986045250645333385837585957412999441162789466719387450890429610737163959323315240556520609975852432858132136900061018539210495974272917648319477399524535961661361480866255248013199964924917467366000243126111991532577588719387119892818931065141945722228281715991909987244884438539844769862172392087116038664508772055723238791506162102581506701144811314189876317378163544084421233853282434165887819301016974138754073414508491703381092702353455802318510882735444595791669707433056124728598953751626911991824159665254607065223037385312375879050969660544238437908685375495311147495690714213089516814723376688881715392262802641404562470856225016941618289043191768412739280374989522333136459180909255848765226837498679309550590868193019895929557458417375760308781750849535238614076008663603998060620000287895878029725497822263814791104596950681444546067631871206995353340178445145295811428329108478129393124772263522553063586943229847220107751412357481368794313978940061840553389765935179870959927902925053578928717855914961135813254346022357377737980319998028486702972793048450736732390232079094634351650191011081603534919194562837067967848406189623177537652872214254299459639505108345629009454083643187979541350836922280403805718566242968574620949782727132714020486554683826761829749472910536053854344529478313601796812574012748038372030786493519945758137822191111226719994484226762376097720554737174657128148961025086031844282958873499094080135831691348597951046496256360827398685460198592245348254117107927638794020164545383384702899450285648276944331391460566716115519901745658771240601138135770852530051234694154214184436262118880933877891512766940056005024109396920841469804809657652080317474278028400180217070002715306001403637697797020297307970199891662165501619484639103817674968507638055931993633518008097115534789651789277792101039328987751250266775378420482717710696325317350505865819961513242849886133549627741701928563181306129568923457857214199515789282142705665114432001784195140978540255333008820105173167893401754461237085359777734789597849782405916076158383956852907360422845261959021859834143606096435377448485097070145419563092693752022185270120109146336004238828853310645744208237488299231436450044458962991069798798655069442047767158388452960104525096745081985206993865916507859514199218985895638280753021878922557752445903420302204614735280501920022683769099183800752309334687922124090479710644185323653408314869185760575621694481078806907429637255947080063621596590780024346864544423026923004523201945557881223807993668331008633785363582072698759617101223903264499786451407180062403617655460632917796943034543999784450120057687939683504437187424570944578085093042139191499876462747829832391887912834051624690968408430028206942101243788728976921903564835326519557798257401259390376931256251918257067905984894216160126684310263417270581984793870011877304206256826542437778377581779994810730919423789533450621402673800244422699758514115509504304736144443871644695749909613123080116076008628082593692049280245153207525157355011521955853826588947083328236777690444795097288179315789473450034541755685227916062017017991675458160576451467401360561026619793925653988240794878996950171898871898442566091673101206149635730905119400396570619646272193471744248147662136180727220150435766330213855253925084949129156741411214853326923646188749226272787010505800035002211972024946539572438439961351855803612948596893922690450198608577211023456453708308191957797570103132282126321562199269571375152146510953340110820088958113662447889299847219962870023567136750090727025366110150757356270064065643704275071311458473765352391804945126900558851442180276514919562355747359581529525241560494187682560220829871491671046783821229682079259685459126088532308964724929828117887678191404525398712919767802936390758113162836979094630485192168683038929356502760169048989589742628980316315654348261832280910086116337963068730685545682718575896327849635257764908738979689221306052015955021942080858428142390236501461071290930542307280485594833510385139673460064747545349972900298315022776901480049688139514708356024422911082732880633872618864840620653218175114448032088610506017992862235909532247889585692050028188300595984019794696321241451829949638254170252534090607855968356379790706059295091238116871220111515025204916402790883438759460967967986710502860059531658941508243630186935205683079363869292518917786750551506830083472022902228296139498008746711752906121520982447776765145523171669710096490347280783139726363110993622917373779832025746336723074675038519417914562863577169162329562794813347910166500097029806384879281397865976056402956902661648133087683192363491301459832536584455230042341644086665624356877961964206480832334507701899886118256169764091143672107563850129350287176913610655680577873536837736376274916600466361053422874866222457785294098370015101780185065280551476385078327911789262105133461982690413899283523295802530089435724982672455562251425057973082550123278578039803691215543606123814614837838857715792758867319639167621759279310951957470364801312915377705152495455194406489492300347091314632888356013154195668765872788248625840400403967475384581734448030264550168249653134793431071525519713280555367411098614823810991424087327404270602109633118963697145117634909149475780566706068957244416869699755406317533981434478380053698744824969014831086588033195290491384741445577084816573212411562602268057970712995556640254342740658121536738470065503113005716897038969072687315021753663606140655651025010752264126188837275370191679098039004784770869064025437056109064622328421603503268478038990173382230365573036872745974064627893856585178452198215578427795497587907622225056048548333947337560943179336259602796324626884331571879355618565381183973159978499376779042224859885002589235911330881402777865473509510551973117579208910979246903097641849023877640569054943211903393583634654749967582087454136313945768697964807368724317175000173396434810386151032088828144364371830670943450318834740744454077870685454463334711909835809893706798772099230588081194411096859383823154962516170000021878370203345379089245351316422823058531465717104186237313625622401584865746130258840530845361650950745881453910385669827048457397141720435294363842566004908353718861094958272702056253882621692562203183643070685427531557716557145541108480956935877636316453167342144937884941212265783683303423485332437572522702196185238913093286815297571032717311673724601064186458407019728937191768670760270121046993588969214536418576889698897758228033881575360510274409499939033712586461842408610598438734079307519660423477094181795474922125920784732824160167265191724139808886119613567258234179749864526390646557404032167273641588233194045523566231312643485667670838841096996738370989458218960504699748853344335238034261792701398609436251575792420013757054275184640915913388668459698663176855066089115473082243082629956298721325760233454168515302304403025983565436028375726986215621882134877926880836964564001218998661782899062065705162667163023593202921722389420363923377985050371901443033319513493607428671065639063353534552496365113780111915908895943855256144942300046456361905459844055930595118212672021210865452884736433492064304325802252422897347774458052415795026470348716936746898835383420336175135553044880497768377944118246141067830720226852184557447418286961176002910386687802248933892243842407861339289768230395567143056346652154027242913901849827985287649166699987495616177396410221185890083685114375286491829831324910288963995178554561967861060410766641860947155388156545411291442944790764212555153153976479741745330225308310776331289795059299467772988049430753381279110735725757977603581858372868202384051933633749975234189528156677086509089131777127977023399071882547213695016298117047946824750124111664300741038006491326551002810975636636659964636002193543909287528604519234804631896265855612641685263652942431271504879438216512577612020625141756638926424585378166958810840537038030039304408438815430470454054847120171115799902367488913709522389621884907694273059433847588776143814515289066280851836499882128027103385158236538072427936766350227681190051585449602290425581299513486998765897157901388965180109446865909840398137632838078764661786126945546909995028386536696560315625604167174884355322696196122312043801352658211651517351580199938360843826822716039726083605867184177731882553903210164095805645052698651982801792312389741860049683108343809903496140493007115021239434554367158234887617139629664158404223305316364206503186803554012337650044923534251066938072417020105894060255987367531870962411272706280423527332806599353565787137853972085621584586612467223322337733221249310502517976179911964661578294221305630910419408686864092878054751131685633074252658305838354250803635268651520145568813445835348838470037720250514154152387893266592119891356034466445121679166143404333070030794154966740306034658636920739221672422348891706663311301242844831437765163671486362419199125220792417980271391406565324499379632546620263680256275484200644721717818630603285113477758717529163663044860941435115555155214881249020862007389728726805277241731276168643100475643492035530565353018890580695065453181879504047659793073749146204706262340712967366243661287167158012646681241788855965624604963189409903326743916361890384610245916607328795744136970025817484972068132750155599090291324466601701291057987541148657444015792779264829735611287243477525607529348720930781643955294799850379772743165917059506283811907146538980570670097560873200214418213462281900481061902316168756824643627434458221830426826842149647617941065340933673231593945596498826146516265201973679526054076332659579425925651429012321627551981762062246603620935264954050539048643486817722629991456885711178319553193554933172670456238428618464138471268590884028885782063042802465690692252452795455127003043688531423082164709408521390670372981512420312642698523147143333416628288614838382972134889161916349125622932918344368487992134752687580540618850388527158164092245266874581511804890147392861309554148776159431008064050044025596286576636851261125550722691209383564825276630469310386077672537466867670632152622395194658803608756393756014275791850778255345441105456784714199080155764837001533951561995981124558819575277090504749494041345593482381076299186255256836116245836822056370186697034013656209377660705005696352577041691425943445462228481618028337778813447308012049722686274423261495890087622995437816908827322241580257778401938469635744405829599525430955785628986453649977644308506878606748051024309570177258322322075892596765700388206404931258972800536254639856231037559407480479185618175002161362721923631074536266786481406143513586829591082992470358955042356693221003128593766077095803896823530118124974877996459508071007473147321830555968354135701086482861891498183557120686144720266662190311655555770574054928595796567393097733823307484832394746490191827486866114924538903875398136474895505515497800482264417761541365305542378221801111071200923618156431773070288994439806259783379263757962405442161018719272766115192021371477417327091413896821587696092959787642705150896144169871778885600428201768320753523955102405330533137310309656962999915925582723991030631339895016414758534079798493165768119943971235748533705820584593327314229951472502221334370377658967887011278658159886471186491580777118913773867172656949516854858469229146806049085392957735353822318691133624804071338082799465758593753299577014942893201006904484011680920371693841125512445928321287191358582928660884998965569936761168521593287935233387955621408759461017470396617777879293709546045265047213647191580936147659050959945855360408904455242097294997385447286268843666429486968371800827036567354620898890845965355883884433681388823600937921679656433961131027757176041913918606058842457303542288746152958236762770427169100776650423810626456004693864147442667472600077345687708009824856784586214616429392189542817476081646752656332544595724739419973460047952262138718901101402104068284818443856666039919965149622099249640444763513453392011962206159276391807298429959520975968652522888317956875655432176689825879410860190680353905878970005833547324841203750990025882201204303506902091809036419261507545609107475223741166317828617053756537173270031924101766151674813344026448437372736386738290190317997675594664725652817543462446122631125680550917621372329866843027664085961742426544029194384605256871445795847463277529852730757277274807245709830581226294455101022629437474956140920434752470528499073382095809203243820401128735961356645919980575643545551289360090636395764495591155074759304259619002478721893952840071952832995854173324503878609286336040528593183741701841242905355897348424072735914715701206940662043166607611454494220849605032617379821563871058266204315134608495387829896501436263679489316841948418975224408546668717352929397895716931066801531407457501773366684913294590882364517288291096251580097154216430703278316848033317722292791279310479895678453255197588327325785948674684832442724140341939016770607440919917972075232749249059947304377532488143589020888622454121455002666861605438812254632230609359030655433867717650865712159033757764132987417729792367394893766021095461182815273662087882420998391448054460980056852352592975753002106119205438935145532269340257343825393097212740305024602297453280207880735833969531929667115995738274126242066634856382612240266525982997477128984867827987625395310064709471201938117198018797571060331942281585245633501716488225981486469158830665762940353516368355335458906687874134948896435315731848296745761251479055015449839754325037658137336767988233045817021807262862111278753555251478658859380377413295735385088216612039734246804404421281726923230369237526412881657195194564496966234686461778840505595995601672979787040113875239190973113175390878384776787818575493341186439574319290301284928137843047596901358891097301023314006409413725690340934224169892301437382344843444255957454918645612939424721592088176043866943941709341739393681448950561885795431592383251924057122730162627757955472768139048827463646845891335079217700774881557585609086122210543311809006699090978035134466034264356311803491161211873957731390674335347184793279419248061701259146203716311726428854994514937670818224174948740793149097910025905030350483502445892682823656834262569961389294013580453346176629033134029396751425820119907724037807434128294855165067707186130073652098922301656873384615678552882353774786765601207866832872667258074843549662943898035412998293723647915533068891990616672911406684035085275479244225538483786618371509418756011416534734344513152890441854038999088533835920250509537518855073838949364524879470419213746661112637279939590000450646749317038728647998529538119271108667001737845004868152127307382091797914520375817454146536685989982496044018318175020799797513255649408075520900260618901595185984041285176489542233082391852096244901080213462721731628522593403846824938957000332722636309158005125274617122952590477383589427796770178375609511592592904498796705907773328799520329230441033327799638778386562515554174028840978303336686731463739087842968582918778190415007556632601150755053236746224060385721020270931092120346704841798611544650100227578530449616353482570898712831303968188305671470397688201789954303887681522981055723249303032189653694772242303250733370634728033039771450781045117166184222611451266135703719985547105933419474022481012113768016070568463375864040608699157075367883715018872797063753445273708329153144494551340230003968186207497034801259690102832176280488840033829546065825744947003920794224257015958907169538914512487307909239194330781991823051004972637481656142030429314912506503229546866262950821168420544999007171329644271074181526793937535679609547358367033034850232243951720533498995777542712714033489326803924346458442138583595199376564763396053717633710236101663596486185325955586439229582541948203609154015198154189275186377476605600122134331544241508740477921509036772141306604981265114314000563766560457643024555001352613241005878245139003801296400952245638303323272608530638414360411815067650920703314689009511178295225896094810459480210507892348778292125034889029723325232464556527550898887261164351614862310203465779729617073542270906472617697289949971386655210915697478195285100655895756912239658456302568220885420412674066612419835199273188583103265096823804149255987206408776211739843486004493175165169576397808812378376192057882016506121943544653871398630875601034512048038680690859193159705705683753716884981257576227711439496390291054269671415732025382628957476463944517703165955892636990527908862597018015018305738844615248768867041276988529617251063298229432259731722296625019638293887361342908893457489713016483342802118690305394532607521343275815856901584008139346703880483382286727357790562249294022888750975464118369802599505440909018441605457201804148809913040783157221926982435702406389678105024409183076835209911301007774385756906464304740310633297790439643838005834389922257789407047760924368191058089059455276253536504258991414459373450757593048657849877990453202599282972408496910770567213473555811886029604057465172549440113659052205791671024511671090967495123798574791562487022556081195678622251155863738464422951897519189294497571220595033124545061288864436027690986162552980384972335094572074120800678076099212775362709060879673254067023567100190780929225345667501573878321991662347661571091824107106190856881839186833214036832845788276404589449863387535218153849180139562054343691409346843444985351178066764302453050390231326160674956672066671557857840809072407563786185321786072742452084469025431355118112255042326459919418533186949603456955441222595653026698256625598577987119117784806003581270731846980579487742268503343570571607266048862665341431445484193349445097603540219341877197137150361969824905971859671306971480978641595657101498809351342226031529223878795058667982539257994426903298572211362475645812739445634161308524234845364312475413048882801491514394363822137068799907643105083645034343497240850107573868758673075339356020596404811413337825762890854682415337414102960511924941698227530111598508073583950618718805816129948099206328088562188988518545792781465622856757743109867112403458922221774670141814438769043834018338895361178988802306261430917420774183882589676479722997159063203085428566722068885621204625812778396847881743151159596999948339380728432287025035428420533998646626844149742344899079030852068493464893692252175623217847869657213151637613055402961213294597649110667412095118816303760692049700035302005017010432314822596279189075353514679417056945771704232651879524091496792082076339832824665549229246155757360795675662085414230078634657441973162599025507741500406505872187748428990935061746773700529598512624193706030229994798617627941753081452606058497569929299985421145978351402116555625995543211385848991105767292493522495251878726013560429509085923301036273085136328682135063545179128093883488937829079281579841305775241013303567380121971281144274601748980575080738040602063919654104899083768282556429049875067086356378467046396216743358182258280390386077148683683756069247317223323218765556165558562795780236528487509890515974913171272665497592805449303518921978388670432145091577003011306021400625088032215318754439496212635979311398085280564261188607356037371753340121534799428572344467531990568325538850963916028385719648760191180154947381448092585442180721715440222928509685332887224526522403851865553322946201024154927867516754583944819262137201355505434371822142776686174702012003909222694238411489364948973275377011217764486800690522078544507672929523884507152662046043842269481626487333291400146804862210354596908884848638685874402087021531983992815675752711612977615812529598439034350597352093362326989019472050592914475646316974763427560908390571087981414126988448656505028587236699173723152551642964360587474183401605266810813222066580262029964608869539857099947847724049342357307502420148519120703963393533591060539306519644528758261414340425413124420929175607841690069601665514226043564311203235109910959907311235464606251401640515171933461870255206855182211863773011681620052215756579309971588071024414831351378843006095816307991559825175165786350830208858010922133994141491166365500051435327602292520627969469810891595669501869089645409760229743680351363287921047689505563991320790809159779955432746595513730625571005133001640229081358178119248795875224361943388099892514594732554336548366876652465495766252113471336364285551894761456250711009915342827718688496718019857996790696916840505351867295545768982155472173098877526437411025614078400926731344268226182406139495871719121415890704078842683410587634684125343345814493455980631106965287859249275245896246606101078864031848351995317852591551168202314948994648760506886035479486410277473013706228504796737539749041079068962218788721206330680744544141758232504825038818512953058062823513461896006901393629868601516392218014290899054238278813133436735646809878917749896239469241263264466415009441646400212405246163168890579663430064480225315528240827026994352311360805713329408459745925236754502523266353885704598110461877634590898034793075374386209219281914020851113682943776224303006521429232049136400297160253931209596468837351534548696860198831230376024066739817113094628473128536273036401097280037518684342240153660698763767985537260438176486379379963325482899777938679199190202718123546645534298229414291909864445812682685493599419451694094968991379047004055825398873182317156980612478644278131075463904860342457726032473826787548214459107812081996855870521708226740033671574960377565973866124380027563008053694114317595129045851715486470119834284670307767681185017397731066638493438358873327149869200132539995096107539687134143551146787169832065069699280580363974911561938623441631647140523764788458905953979087324830369331236999687952754550699983798328900908099081601529359362519046692823281240295159303039645497363530900431697242378449625328314214453570930553842477307969198130507547434144428938738396405772225849191635208603289938323497873882198077021980870877193359080934175227531101786970098854480304431737675112806181634375176064287256413150087870160031471970945647820398922813874468055022950392517548942975420908671519290865071758125187807332707825807663202375845890782714551126803418800998755792521664003180251136560567734610145540300255488648271865837014407595076678246054949830059047831953944139408155477676139795088474450800792686659068575027371849886379674509902190620230757721637666007514174748957019847461932633891792751880015082775243085225346179098187367643035582861198155782619539359509742682335815785526616683602739507804757848314458720195666761586136224567893187254854185008467980927368599044214074672549265367053094844803298953987737150238660828510517562245492455319200227330696512743204022305390094375908496051589784794103433162939020394486050895073811517521850866132536323337185918688367321877847263094366168178241902733345018435054165375370742026353478637475108795644070622166493390510055884993023646473413772038678631704099973906034181511896980585172117047418831069837602992989383640988451866560346401993996247423844510657726806040840475834024205803511637480693802839417797875007806991150691628631994379094497577450668768255745768594518262901876254861616886584705144456881231694390585913135370613004876445665276959847039532335024315085952123165547022398709214057001581140180570252465577960211446140656688470258025943338026257985857856989841421939211354861490588010963325867614890208787210358763661904692396553388845197490699452462234791391832096945604175962762899630764065538997228168416177443683263648598794577601336545281296155359394129811899030903542455564992909102827467248445710204653697176455376665575522714168352970777444127037036111832986719915409364895263319104878075152512114043923042427196331974527240652833854785116658073068642078616109309625317968010644896945103556627910621658366981294372402769064397806995113581111452232557439938381628357095807499955697287918206243186932311760559424411127719018259883564818341071280227911768929048805358278436122599893067805075256253303432306751111720986719774894951909719075367362660659527592426649839598387573863027291193532554369404977285959233917488745843089115207644900259996235120230198783806786099053595695412586271424116788047599913408289389288277053205430612202949204272570302915585488705772233945525356314800336113641446696309001717610216475897257101582836729166011168715972488685732304495336788460516329031758221374210188343171588431056026876100177184946801907459997370679580760127590401356281218681005528538153768700473300387235229804743580008465185777865303914457628808614274306508666635492945409003512975177840098233557497576575197451460228771838254432096266772906910202948670864481983201553793197128284041631690456436990472615886875678864604035502769034826658388110651792981508427369296537012770885209003786879111771538521052445711435533095861818057001027111818991702572620850396738440686131051131627990012231818842424205904915422347423072366253102793732392156949712897041979457509884485624420200562082740263174190470965542225294845553322106288590184583708367227671823038983430794319137752590872371161757433675912771913559211339099741728688958178682120127944595444597584555298540562954169971309221305879487309977005693380229176332265990416999069447731996655369502286208069496249998937136119081988094965065675381726170449440488102005117212514871193502374253259853413603171351860601513995071987560698838512806971187678541559393999515684786075883809816687167107678842845767499860741334984652253410682209622708962254226789557401641489073525534454327986627167328983768162746532005463326202782447745018967827471662663077685811719542459436258205648905481876184434683663477514504323826590857832392376841378232736025015434521315638705405473851158564109656218595678596994327708960766042458032368302765328799563578238703527070154700656484287247874298486947036831085232484964709672574964678603006888764730007628446406830167702762238343819459503227481585451520962450913276639141540029597080409321558729321498909877181580555046896648491420945257058178243844511125945230378485865363392514459187956111721768974256202934662137514404556308800493480465986968838803612898298113380339557640143484717960591441948141569990747348770880115539247969532538429597920936294495328435968511198168246008746868710529681921935957380054810856884886691146522874432402726906615722169358819884265415411211893366475535688311174536885134745829405644194009922424695922988870865377045469952329930315546177167129332200767213687531447001348798692948976031926533096170359009430536052439380498351779973352511790642972807631249879059966182620220929743582281786292023969987198626550788402963302144382549185873783592233854655783757217925348149726107886389445820812644681597951229955406951760824539033403160174415661601268292403365853699346689078853897471195056156415447192116930915742926109233910897577628307696032833353088455039088052296313261205899846804377198269350193763455312816942352437640495510265955309077344994017764615246198010502856962301534961135612210716663852688069736066542165845009833686091296924002703365263708389275786791085089293910643468847624005489419449759262296269705564367166544157368622222727256015000763729399241100061171328861497458519739024339711228277772014323939909998849755499018024209548153718295485231647357785423305132694519919978927402683852845290353766141081854229039327313620968407840137030784769745868485967627710772200527822471223926377550152846258335613016142752969908080474980705869167132140692806676962473719366913102443945577276144126470171235296790204504798206291235124668232623665632270885727234793539003104236436552733194644937908668141159332032752257823858982605245464982601708026431415555455695211959438195416635025080941132205108219668588321150754781737316095283962918611124581969602289052925203991134231016141746961947597672319127836054363233835992525167510421457674514441790927687815990870356754097269732301571555910276872813609259042502478346538121693365609282426503163830215497477122494473690686318287117041415956519729543867735592413559829783098913192207778699100229774376945543872815521995493996958099867716026346796165245828619108930872676388837751106863362258252106373873443457220798063224609643400208480774152318164241876660092934928642194006532290553458263765873036311282453272124099160563316901541368175405163036337229170008940707284018439980581355409006321516975703076423478480566157087858771683234261005652336920184758661092375627217649623732803334467240982433484841943768852638239939152761204264344081943150073747600806143458012511979006802515976056687442593387685619985693786651702928670633861184221175444199052095174987234571647898036551217968404519427245340480177177540296777581536074403608270805414089485621812703614731139816771197736280831438196660174693009087555783507844892015407056557468263426125633779836007657063237255407263792029515266369625488316248379748311614682051614836356150793129512549844523677692839730296053538690911016519004173812378986759725790722654058664311802931544781475425915250175634897544499485032111595869215457505871500380712782387926768807018697362663167886786230167770778331765155084812354091520672085160061936359308077373292307967225565251565097825999103266797999233721605043609929213719610024765767195744779542721324248850531622410649581320445698026997062359132486170405437614609728284240891162301356418343704655119497894357973435340718371246908671180452684341128255458784973469143749754551435172011906026369996826350306608633825445680312914684065710555101826830410355164974745072922018758455700105027610488840217436009314540872186570160143645418370634133342026896112865408985824717333450976319929141527232303947416577700316633478830468636634058690060892328221756352750366692028100653472469495101183685695640354404521448948523407703838046709380618722594236103707220736141001203590888615392787092977145679425511047834023834458554429658017983080365566388130476129272552708263559075093332455048792245186232218215741973219242615142675217726602031127715537913930347195226633433266955071236192292018928641661824405659088327057251181609575226040250928260402980250457250013672174567394349052326012028726985351120408029932363403065780129481720508137692273780197300533110586701400301541875059556424842006273424266261527607330717128006755541566590079055311550783828773022739354402016092064933791426433251257162259632625959110677168541800905622536197828261408992561538049533102047858637520645520613435337960922310112679214535330078809399115781672293353353183143813605343735865854502461424647767515609509865158839462586004064396061357532379375848625732383154372629862022763450691899054335785105941040626718993312333667550974909240637742259145785396314706068736333324352206417495323097542780258287817391629091701579666272649685772922276936228513930081892019782605581889371393717125009852090253302150292540038643690230460666994171930223402472891444295036754141116361645100887143582878286822591707980474127477421433226580594669796703987093009691101666765973179582326798486468067212784367350902485512886838908166898898465803817539928656174345707625481593294279736756553764218482425092102213770094875800852692122052085902028674737347445579806434056191151440715795599661991985873606607192429589881921185568011505990434997011588386080677729800562513475821993540865118395553148629654197246007092284061565510995282186380331478732163591303886790115247466967825945894319712113578118837256796357243037781948315586128892684811059746834264614933185945306387094437550322091941156286003637992799572410086005451033534467948803584186776217764350679722285664360860378497360825174737807238613036122655535754111526408957858249335072869096339024295416225290531496593213889690689139671995203686043057528027334871728299571123564565742039731488596541247838388197383738674776692652564023760281013409887801570644412306064694345640897255161940133615655412429673520307873168457562238704115570971548359308620662371498430643032645415758632206592469651114793841251682573774003325459687040972740379777317858230145078835822416073257073015744037148548045826139509004911609653907906311765093593405370529837822808053536872313785657343017661105085192602213398236161359810845888182671207538647230282060876715426457775570640300068499108696537451619256078701542471826969371171508611410752083677386283619006649777188217515686148924671336465705473688918873983754893163194624874413831016114549670933085199169543326155384591374208440203844079053045272113470438462461516061788001367796090293551736433980087389640549078174338389427729425779326066568960520396547470746949077975950174935881011648415405634483852294693050165273739267944483539056762600099323356236147898387010041469439085194879867674052273999452092106381359602326263096135331326701951425518582783517002395475810591639018781190863652036765673408412817217373618411775152872809529410245856320504354028603379808484428778717075004725803106071383293375674290760062229346925695563499781333576618741466456129292986791954870496784301285118906836343244646577590222172406234743838627708820780481763675314028281591861825097311435569752202466248262331299044336144889320817390647512934078948668030171058501316140369426929591116980542678440919552063144449036569108706749325584458677731899614080901812235120819470998428632580338754425314759590169274347876092999205557163409673670313301952829348176988815820792603276578580012308305308930197854299269493831574477442630173896106985485257358007518563288703005310723506863913855550536517059667678522487549139170895459181105951987838260655335784415265644121242161530567955059050209258753408411176425258613395760989945364562560706986281000707869048179740492543765423461509942564613506760121479320413959892983610883931693616694336248016985444655421371575077415317618363681814490656684714516067250976686934450895669831328655140750028343766295928417843787109256666274186700490651279466421126251773459913992914277420114527719586636198607779317363656194163927778442206041989204794705911932767698659280990202667956378985337335219101895337395483523585348654874389605660043164401822241536299989806590785086272026072272900499880233325454469348826071804917401945530430830914525532414131559527135887329255701445715743907450682378827347563821532287662784742464965759016900829944550176224304530522041051617913471557494855798944430486467937103130532761062537653446517219453908777339078911306712140953621279816313561731490380652010552971054597125708381625097534100411796673700661322169578530857313876666458877971446481203182981274234621628931773071809504936949826902601832232141765025724637514125097455597537633551869905451498704876541116091210889499202041929984782151982705518666836641256912022233180607222118590265988435094705311819004996656612214625138975285424840343650487147138256464035843470402572288425175147746141754962847583840638365463892309517850340150764682654565568047073709036982148722163263722458044884148066387054415651732210796599380222165277841052244323223969573274047937453053404763626005095226645130276789299713729109822897101665937201904594780788367721465891615351985272675959815861029908817657681497876286883970259318724202269463413705590082648022669193882480540963148182362892542998266515196533974291438991396053104045283312327720919029906158284295862047078761432536557920582137443806101417575733742523967540828144055156227384000038035478931471425404712254824195065555750724367072119861990326256925334829709467940857112424531186348667464731410603379228365020814991663742404123764557342062719798144410761478628988470946692178837936189771037059499278317227142619885774310111920237870034585817326549225861319266073299423914454797140669073309761113406268747635879465864652231637540403272863760940511542003361527292414516698000607442604802273754908282762874244357129618190920675392195431050579355371062888429111404223312296581470058270150933930641172862833747146107027687573070156269780402748367557169822994237446663671176936201808274277216388200538891729357006487050688437593297331186749219605956760026248704030410023299832099452835331213332942972830973081305175184851538674479099976540908600093037928877071058112296802893185005028716093782439712411696285443649271614911208364489425100739882160918454649079002318579893148229664819661341841774775018589014915875012167809442660170388415327656445277264251793127612183458582860858789306351998868597245434357530636781686364975033220541926584717917403995063527503168944720843232171502073588783804898926250178742709625837522459523316637003486724686018107131308143667687741755673393332305990745303676458770997113927443778429657412496542145038740715320765748423858693627459158272430711708788895829075290550540777873745816923912952481047528271973811110620486599865468859448445012674440746613502400088947020943451839856806466942298564842814108791519057560153924813958944141286634671825908249509537307413127382266841147174642063150219619853161565740513908359045510149603924120563577285019106424510827283955321119488912306966172932717577159055536326183858611909338146118097673111170173985218978157594089851174420650552511454195278980590791470152898031056833450574013501071530916854564961007531764524124864277164913932437889614700234262211481154575734380422524521630076059276655966844387679643173003384353534439175692308806651643558473401908608179512433659436469190153634435110444080398932227063863421966920851007978876506817044371042515760030719492770228343405840352587166324422560068558382923023646863642876570962969797973820376562958011248579721787251274292020134794191729471553922345456517675706491652776011615295048161645287601150558841488525194052445962744414317471754218014352220366783015128814053729192722527562982561170285941998824364954546784300712025504126563532541451659615104005863318138643872730649286517363245532569486922826891745677083665596429663907176448102262406467855608545260708080963542160292173426151935805902545453971359172591200543213633303541049172371146239206134086063965427568403935287666922490600866196432124482073683821435814928978524388677636104876481815285655482335999008052884919983353420355516934780621152820081512064102412148268936617330094962504212695751998175578815269359696525513204019157603151308592857893993399749117853168990865278313597064284318858260724732351845698578897377019285952854869716571745412446530403508528585258471367027620624827042484357360102721856825450075490420268487670498393577284020834104792867351064115059729880187469759072909190974406193976856040579289940047089899317827355984796734070148980606224109453079613849098374086383312994324020965503124279845221480187517426373848551170769745938729974810815547637244538613150636404003171674272249001145074537225473274535523794689969993565575971077507037587628289979828676605300765883455600279040135072454329372417228039630144536525407329753872271850847806875409241985627089637245704193985655934186061260201507531630279426194971685421284533452763701350084905417831350723936079187314895382941977641356476605261521413806620508365637661488869946519505195553113574361549681328388894952016805981020857257361237728673765112461508930037671479589525409930201462803387660370342292326266894258784025668231154035799320690501708171230746046072455453132473316091870088664975820203198109454133782166201246205257762367097892750475612532244004575003697928107369555256345593687150674292837604459152053833463491402914433328115299196342059144696332353162238200175153103069662557004276489326913274996935109815134586373646523731965727430876023628218818760648758599531928270380977627292812561147149428467996482981406867069531185279134675786268131644797370681481769557746266749334913532503826114375329841124446584953474814819714398913641136620122395742932990510508565160487347206524150303339819309356829899718925478135184050862935692085627174073773246675168029356173282315264276923834984988785717471318333480440125233465198780900625469361271884173998439497600786293985446865705484062820528051232280679297323115575082737542554274983814921139411410360759728937312877044115588918123356138793116420652223156987483366487385368971755271379635987949331745241906549248720656018982226704272128099001596160926631431082584406960152950430027807705127839682087179196797548740694774258283549194178172522278552443984798432219314189887698214887078767515943994909204613381681572987030653731325745824171841207240603611177312560180776872906341575700889952020089273833665330002032547646557873068234222659192255841711024537478481347223198797202517105978550062744775728708719212541694518068700719876320895244106853217136240735243859094187994287364333713732233014960012755787782652259222815128616978434169311637537034656022249005897937906460116883325648300441576663717850881759577946815622758752789713705417828245283432256367233424906835305540883929832059290655371167937010909009829534151565693937603831555568303666171431229900306291225732372081053962781982301438961254986753468282615612927777980206418454888276382082939614194909004380261150583467209357354495976363775666257119170927910145273690575745609260867674125931924697027508998652245825615742003697482059625643697115864619965376376925625715996079347357801880502891942553072926820576671680947491571747951395302483493541427108080390051238211499487355313768070684764207480250334423447318939906557205145604224045309659816282364276575981607232457025901445500375192604630210035624933949470013154240884967609986164282561672199958851488252547683604742633921670657856070809665313308547323144071587275223059640464125731042021951171428070402388224102336999894045916806067352904727351333897554544858281951843442291664758207588844911508262970355998464778687423390525205401071863361027100596062394338180287139035655359521154436762853999573899050717499846996606600277535480569865372887083197405881196992222562956809150192926969896551972014547171613801385563516551098220143559730426771122812103775018634944860072387032779089639794659301059913394813586449788139040235809232389888413694981487226124897536792362635554290955613209519162385570752160240639274497348122054308813974386868372450281537625351356763613600805921482497885906100997617750624983479421602603406665806029738207644871980811505750327073367070066749071836512061267124941935142881536193456074367261922550234408951497072745512468934568257072542119234271021173588468514166564391127268529014316429567174577067090503224694892298227899829456405454685849184300710692317378981891087070187842432731805736070514620039141454059281303354181571078137424215136957233702290352489347316077264235181412175864770659574766465449632349594135610811249204798399192520801566189754936119978051541708849418632278586307710595941885040362872522789400209001280530297279943211131175638476927424622321956486323088110780273382339401714765462969735820895103101521679967837405800912024405668915560278020832064127978416490712868065903568848708093604244718072247272520219229078998974218507497244947302807364075495978245694269932612142521003999693520049089358920086310429823765305544665532862855487672435265834112845799507536302426168838114337796290103201196667714566564387852338142441183430990613161824746094460243736383357580859037353539830053387788782177993821423836587785867939155175400766656657956462767647542377080953870664331846022952436163817072472138027579029754337411919921146273945124517596303542032431510576305435724111486190234527211371691302574533682535564294384142395598331683820849236260448149191482143514375345847809535405253103060169869881456772760303072681667721104036414034561013619330773310641710590213833761217880150447557403817445629286494531806669614344558254790010851398119494643079218471069946370106536511836850339215563081302145897331037121847749505709816784713928148390173343159884712742884836814380233477678441521024983290269618023380734239362666283816901165840916915244723193472722451397569538382847145504848661478205129900969258724052030928060512556889692941977360154548188877385830033938166041398905123697689419785729110186473948990381947468400519976027849532063974509837372312051657530702364941382358626159206597753184535195541153706014654543245238090750072586885327723236732941299690359635054271132104205264685519190433291049069164624767893555863527491794755743856898796089082845429343527853728099582382811749218422374657559060572791799656111729478948817050279225233409359292854400462441464267881233852116031536731798359665495368170203085708405617017046691125620472611290753490596240870545280432004661227003730946780780267757589522283790867170520462696046075014564314848916618217580510717906900229658933833699699127431542038002873247640627464417711602408880193409933145868161693369721937760554350405213687057597548393849503787583626126325756371334975040176956486366873135064489000757017592994902461745498829740688800183818621117537238599312603040354877119409672575652381515808416619816295775241171778607659018954432453378106162550175662238766596520644809768872448510279192486601026408065086496982690116947105977903526038482793261839581525403516405005154278395794347373566577027481353215218655409091685441104854427893294922930976939653041841656545982104386430962362063873322750881169042345635448016320945889573752547111919454677199895402126938447045560658665385048325958771572053549174048660068049664364085960162367834428280377337189748055650030791854313950905899234628291784123637918464708386564095458066487642226700613925221680769774908043375656864810645901827354394470937453930034742025877896854244020186986411087738400368148897318025260890404278495904201602593485841944201048294322193810372291965628918860557157804386236616655378895455802121627447626638070535359114340688472130491472348775542018105768863578653933997082962577414880104897028610353005882671851099326048041606139906897718981314838559518927643356205255310199838931522689957307272998020116961371362183266225489255603621583885575081905575931163815239077942512568036426834176488406617926983306970964883488538788725908480959701550238008400880326354643134109355919018731506538227744946805728660416937215980234125903223762606282209207019734092177927107236479424999926475948235481334395930801854008515170152832472901373554226937067887889129451558105587735914495276866729590677503764837555544308428101410757587502951655969435294696626894591427865216373196826638476323420660195343186647331234425623052656831299904951207767198409746562813454629614907067468397233898446955805712419322996026023257821626985669073656328895950580958586759191840622921929826570423441713507196033518342347980242208318738542772701928026306888910380689972210921470662940793862161719725547994417911025320670130935417628993504752093492819583908282571423008056501058587712069312944626200088623928587086012698583078581279227104598912168954551553593291627212471260845368358117014597267707919150519428168809662896973242098245336113460109136063321316608791130566412398818347434639391947489041122708924122646275594907800645580039255375401976679699214149707770848412033241787646271184524501980377004485561611026027803104921929666896154420190221184958885624056031551687207555913536181601730834293598507156259866970218029120958519118859093024424082516619851990495138085642508480651447607472078348619443960534326626174407039597028645661917091109078675912818366878649039782207200249511136419895067739450041329430031715941362366235211120383073112640374256126309051580231712585894565398617971758130150141515263812085382294305326634669568242265006164620404541769649786054635609812643742365904161787539534359004027769923684399128971094089297207628812870093152201620656269911325588141866229341288123202670420115417543463225149076390959204668409165445770966318536125948679400363444471698504344766898435728111776102800483586507100948510916124807960936104527829807247435034502647473502490658802464678340149302635539973545748851112557650278955759301650653042202044918606421057157858018207713918418101181278989012787818774315788019101017797812114947271074034940477541766271243477798854854751268046887060630463865766915226643439685415846171422710883259239296778887371080116292045439073841690213351719533992087390450702781452332566987374759947150479990335207098544903487653312581245693388270999952678661297724496402070909108236355453419366037469888632286297351765093235544738222868629496438699983512292225972850373709845807947473028648882401398504444871839543215246710391157618069217323561167145623286088358490775098587179762384392416940335387999855761608547761106371406593352758846473828985128507114994753056429439320070125820293485200933192068679482090104344245998888153929240613644471088552190282762396094513815515826397131689795322177552521445836979725538960376214851802416912892140120995699341311335259166529747797076726555904141103535846617429938754203005617123881887650049494943494813867415289906285909209075541199567852647946385863161951569290112939306070185493941826952115416734082245753619516371977782282890969725235999356869880663621177687448187512360071624810783937175856429845534553047312689042803981656533838239100976575649710750133549239393032978283225065819492442159194120282329689985795787874837855682319700011726018091921803866775210621676652552357443090813042376966408808528315507815177178215342558249701411375216081900406767094199348112908070807796017022031749101344825729669259084677371209698458894395880848308161737632819269294586000805248570312753438864289242294959873579201012785138526485952056023956263550987869542220062037697221923834902290381474017398202459434874576556109329482533117832243236969922451955865673496442131511037538632627131483169365952756815424623063711119403839306124953893673006366374340916248114465232145956200326518933501948817441491863902027671281445006447379472944177432971464464735244645654087119141110048699320590669241480826373798837582977050826772316174066014738176031344805653088764438315612616821402443133337492181122550167603426850417641896236414467176971676467726740855526884765436742414795811272053106578561605631024225058418433387307065770080682591601988595832141017266244462788777347656591850296129271935851697048321166847857850635609304143871956478564323274955706868137327791238762342194552955385467681835544886331368524932490436758137818085691835154995450778244470375070357864114042972561452553539790392796630875616357429580845956548222412876861396408444218181254344487655704679637784696326114049709099530977513222794365705106850463629697555274252150876834273648843427941216883243471782928452480042253563435521631479526337560071162774348275429366157470169060938495785287885956783621782784066566549559010854980108978701458329154904965701145792242294615821112070312836999856017678422922220952152026604219526796848994096654538567205509070938253383310035546314284999222722463467595979009368791278352811622997597502194132288406760777851712720551030203019803151656661079735628842843717706743376773352652889169736211912482418904382328535123637202162856405155713023712849567084654120705725470325073916859160111086938607572408901974783902506218358205782452071372574662473107307519380207965780292920939875913316928821268795259119937132062137100605489319254684029007725151190445754197715215216870446307358570910929103531119984628474469655331119548978220225727962568192973317290239501542487025258123046327723867622375418025496101926437135438285200570025597118879150459078216912890106371209796471180465397401528613662003538525857904390607206196956085468619095947504634850740427170819106049282412521122611692279525415709024486656110266308292309898166592230496896180991955576574915107352802932002329622447033619130064682266956848547207678475747982446439849585593284036563373491763248900262108227517868184155157735205999873286401151527593497080610014669158893767941442212233557977682354138480860530408273253384421166882470122863458293267535223898085037787217129892569002513332300262604105801303138887549675779353603395578418958387662574525286587485687637544658477914291921335102696388287714165315538448313432668938607078962810225566964684319071873111491742837147178536033165165853060908097609322186784393137160379420197578967306281283544815970936818997738771630324979594776177640030911453644232714564831598065538760683215732701237709775570806103527443730529145169704544504966228377395253788143822307053887426352535415222276068132535140813685415711538201027727347941238253407299382237994226406001153726751875909633323759923568900715379219226197681190738805568451182097917378352687923173223527530244632092856414015517784523368099616504933519942098812915251955610753971743246638597166706990891195428540418672778857010570537826701637434749515811744338425065877067157963829158267268774250054284971773466813952036654991318037823969656096089343840212699813497360688400675849995913201830116107815993763081940751691758010420641101158019516328764616613477848191769683797263646924757714657318967534977781332396766552725623804742473989401510550713427905463225005593260425713362063266321753338363446191070944507475171424195329091561761724463235436229205022454403096623515123674749994457404062900311695805762756389332986746934177602357055986588768753976123727669847378205598532665114511925963423146356458578527860802690032978080517800876449236814560989142735809876023105300310750444794591334375825346641561076090478431471040752442679410255156405477888262085216915497626679064465254802852122176911448145371476602418222821385729152434414101474036602561172188486115436637714065783445954476861757655358561877711376400279719446635349972745295420380411817125991766142282342300220715560658549276400526967058209829971311136454594682416588912475845161586594151644253599203946145263442925004253588646477222045579045384015896922554661258254747775946029605236609144310396209385860366843190234071786457290625092221409826439606215316656867269565194489851672883719174675937447772815051115313251744947962870486919260361854401354864337001485338404675504795959872612760436196670790586964072364236987877688899834037138739757460807760042571073681195643041819127876059444611770542683723775661846831229031502861339728476121232347183279049530813015852933689139022717303473963365223693600381614357731060583071152301143998915855824529936052585858387879409457265523122814179762313775636947136097316508638157625836076542232153299070776843114111572695685477275895768144129025895079411053522619616154732018880497998622342562532683351105496597098872809332662391594925125610990804210106679216419806448226574222554236791741626395956825632825897675877052110930783353176232383883478031051374422683287659977698449095325063490118495719768779604372256287935543748390779401568267370490770391732582687779366061139648078432704124658784666664029780843326220259390179480380985850936462023471421739617996403474861928304182587285123643185419544335382895734446903889588295024998213312474390351282405290580193561935983926813689006150107563995715681635173463251084527084981612558862218798891406830792676175497634454827301680961049469853148956190371471626532788993500560911434972700723221270703519193755100919031041380333512656129500804272696691036870230912934615865913075149312145777589581498279523341041249335445671430936729332675487404679003562868421799931492227180584472591501396363846857311462512279096446540310094224253013399317398370846252836607786737026541189954913430330655036960565935741370215590708539181036238107747065270022797393645306015252746022736052698801970669548318979803559045931074967424612602353783213138016064733129947836834148268565394472149753240661916995630206251313645755858608344592027117679280542100720990304434023687243245898882341416028050895128324656005337671514862826860995162753718369751452488013799858028195183714625492139868237682745226421682327622906038683034669787615122572272357255407852535617416124203441661175539467546750514126568541197201674321518293114283334402763068780836955693815188314997189393808043676195134363126439866565183224424215178765490003014343190386417255032334853112633530870624339633536507193759478275131476077349373412309095202269165423810272430350659502667748762519114619468818279035886888851282065243722566511701610584501384231123755281410293084909886852814946634438192526437605110641835630795419663464412154082901256749892052262328772945168000084970492939886825486282501407011972287793306417516981524405699384711042638584621028296271277310728198713523395955705274512489029437711078077869433654585646083407165970493140405794924090321179297384413275310366503596218999853069269559681572714700637280595250477670565950152942193354624699602249894669750572600667791260891561657084516229474387068605636791214264949526782180054460865151379241648141582619846083453466825879372581436641949879604256666645059061810556476845913162987937962354095429452733148408062499021827184830684328435172400375544994215888991785472216230890712043539067438584536790632792612230059499685400733086243854587476144540507717064590210257999969645878383449034056522566584040583504921242045080326523860774913368353607151207691958241236359028875604455027328612038802020968527433724230976008761582695843358456479424449291671947931867082256339310764950687607504391835741212246456610357240307186762077171886298022551067580786497763988877623365746873160178798986149564678187517162928986766880174574959553620696014751990993738696745307564530398381578836294652624524236342924025298772400311454722382179202515927469089323374305248140036716470569351845875367883570120069695283652165502975928512339093223407778572577608336471774994144428264646736496909350448432648159574051915313971850214108740204748653974552111475041846827436162183410113038768546695631588491027765270149178825707001022115920902413826698499885124847102119704805483553208175054044607297879518535277614612586725096807125950649608413874789912883096448880227187418823552236773582878457999781329206344940416738250555789427043442312712507654402206146122533919186391821877596787214184700963201171666444901694720681108399666240596673249146299048479591652604387727843766533715532239126804009156635376556622863674440537750128250489785037706692006909570605204243785334445995508068351228522616002238838939788882148427401651613802957393427384793784668895297791317104558844220248140430986283936365374420014030933835184838260475943415683957659978354382215139663914885673270407209785491711758643472104357624198504324739399180872417920404556260024408046691049264416783948421526584394521594400954188686520398999135423560197913909402388686577634666737409814697104950126593620421069755838701892579695905059870117253698845928263124089858557244458257464809181647961840182020299398300701161956571294428440493998876605491381430188945590599449211773753207304167269077781671372066135174127181839550159609514078935772731257457560635151116757691113796158369605632580179346547453548215257632597995863348727487387462498707475916061008651466474520980976503669537348444905245130589152336216284475655783401430893170903814202555938269302307418928731663779996463331443333761876688452979749853084258679719507706304395628820289401859358832332474354877793726734966913589081944121090429912171325719340794538623462979870690756447687169771472175413294876018540372692036760003136853652991601550592651619438912930551174887597692162197204644412523863678463746660222027762847273531131652135607548840163634446359622169825539523489353960214158536761110463895093203088973508894347350286967687591692469815804826402627597566838607109193523029196699019301573128580582893521760463013356433949241956148305928439567347892158747139755476334439720470807523396048695523222914886092126754939408734040805842496607491183290281569944379486419279533031811058836897470351172371075528018403742925950715355122150006778323422906092784530793338675709831769905976409762129648677934967354158374909320995260441689379271191305919299829917619390994743538139470426251955303431794254402817801790494648220989707380072280362018637205174949063271217363661726154859485881303165157763963695175413326683480619594263222146685996921869035750849850317039374740354432003128556718954646327899987606690346407544762183906306095437278634972363715189820770625165960985102968207592286761761137503776483527558463235043383927142393392574900102806235262346423181190052491664568064412759942141963606946148185184346047778850959438823731071323605217642323614624667567452963111973328322640891882549685628626688746169254986224249530658100273957621267112886790267335726912374283756796597905289522571440469552723942322799147029924888381985455063380483682369569661093738939598309685716967862381901044751786803954547295273483931769793501892656115447263663664283193082046926523057996916619630394675488263171727846437295699791938497552640783944066993460875635591628546342519956601754294642618510780795795704373167868375011994294592856073344064975672925923257201538079572772955253495832825936298848237724750985055007080802261472562006399159006297941384398291562111975890295929105170774938425897378493796806833937816089609091150040366108087209380154303659681868874233459658703593324318322179524811890583102980576973486510004261044212156576036782270686428756085034385791541055432004198795521759423226259754854416535920294302056125999790841988788297503173913415716705211892203345245867778224876443625640233713627376568247586275835308637045211283704531549042462338521471626374392867363647918469229980056858082168924513759613308594659738048344199984617049326630650261774846398764502342133752412619365311028690227284799561911055332483858843387460039030999938760571891344427408870034778150900135423795957746688297060273753209570747294341794281120513433943151704688092674236240586142719331663049414029024655070755040731805789347128479133327365921727529071153991803509090797495680914612308885340846066104773174849130130991251246284772273900106232619468926266328140580002593842448694460199378111081942767436948643130948614252116158254644375149343371320092410079067380088225832277142843444571569658156201799222071958347188289016434275794091993896791725551930683845549099756462893146158641981509792269841920387210928201158409423185811264901707554509240897284871405290291154903159635256609216405027950476161954311641788506455402707706261128975083970962327153398119756825944045925638989036900646823768066090501314012481372050464126011603344374737890738262940847310610496548306594768175324296416524420180347448461807020139578147749826587126862930622881961547489459536170680689056957296364816136692804173527926357568573504196362272409753693215633437731683327746435198477946098300305769224959409722486918594871412097444793089534383802057351116638734598046532403453328886616106512821632660206917766089209051941545334400056010514702629970469718897028993920817522424690598679875417288574376333049673493658000498443574821519054083888290431102560867224055078939706224355524941052382374555287500152398112773671238331656440069636358118058554109507754880180260963315888081910645922740720562076523698932360620766228522636444827346335727052603781454936360336831052105098247326617450798001674686548848188108912893942996812801345221846162434898832196946991346028924667626324868202730322094528539934244916805520011291597237711007396934313560998976324945184742153232524118358564307512375042098647578081917463880310532445840589306986700172671921347230377087556079023626342007398873969831398143629018018656023719298700563666605101424153461951182989906389710560277935363710233220404622786979630829707419390918537758735573575579372536351845943371745209510797034568283954677464712531079799578488905174794561854157882361481563830615062967838770682253144130198821369164513223936675202074311580893569536261186016224015478152022747185458897287681196409611176236655396220996028124122259110335224048131453438287311435560672829629250803815213648077773313259730457658352996936896689122898328510586998921119634876889764479121553852382003862530237223549104881034895439730568656760330467306189093223379821088258187920024897783555283579534797500278341282615392707595113761638367382653416275714106453916547160727267995381215179611148030890923309784644395958260154894183289679443849092700539054702498042681244129181059808966336128017727149649669304241733463460301081186951628970947451631539625333994772110100795631386348693845284343978792750671283625554426951706983836121449897085809484210603451987304231243488667055003466082851734020773224363274179422123503559348038264638660668185365258220090098175386822635218468874577054513110843248869015940140027198043700476871662822702011616268720972880889618535986845089310369896841031993883269974623588628795876018920260143081971911936425060573491277468743222868352130430895974785645165897062222822353324108105683138766288872823160010399703222885020880540607082086417362072628532829575111538789102781541553122566391929977629339286309910114822617943461477151758081825890476572679656160774123687473490747872005654640008686472053942051269030590046804546694344865283160227760458908682853355738244796082222632443884878668327032524408755821856907091990216457367061471871555206901087828572895152825290560563437345066317240710242184955838770994515287095596135994050715138415854814964406073520494869871746721595898919254022632970195675926983887591346165851780177482592748687964967542747238442688322548262258281528781793338370482349107469593929017516890936584593529548842011123623471607201707629608120004771199636855196935131204734536591309841628894823075988758013845843386205542336577736184625690009938957925904762632388541402869494253221861767981345957164508598684808980297757896004343481043934194568683154915823529051194106638503463429789250416169413637204689591937628413709234413577508705681803289227599719736915102713653894014026422509533528201289620431529648816021396798064163951519816744480663992366448323832389172052059536037533394340915607371917318552286390249862170082796687450703910476140511748868974707557117727119293827405459514033419153721211236367741719014198401311297281499485971614886264314439158809423429166019151666409095695583818223095651219683098507836274712172199679752266251651044640427900900552499926620086654255146146044266166565134245538595642834169381989574588486285236400975157290172834333497773675042917267860932044079252658889865205362425533392301013195818343300400556610101122536875207040757360999942953682066661685670168776854201195988091071867902477129393665032054412006683536799390138020417138128709103407925553119696719775822434093360918530787925212945657872894892870438437241714650660935077900433169697196886390499250279720961921219937287357222710108248727618584818919260671183101322757630077746348388313511308075334906684694634871444520618017367556250512657436172830821472027868854110697818790469862789089356733886711247459804512071687199709588415679274113746182895499512721819177063991228274649328954961082364843831982570737376113934299396851622013720483276966003144266648825810703777665876686661861252621009785493277418239610476844954807741970708360678777801976548107154513624436855765065049721638713986049901402311730623986711513416697706632548841568821317192790606082904535932811333434193238214899280125871302797413510857062030581963069631180558639978285837154723155200312378797027367602340012346541137297367670059568572289589888677888074813965085947055679729483359618872076856075854120035915168461711883887454091091280568751831981310297606216017179171586357829217513827342978187601691496401477974861778055449669051590577282692674412889943087537239420408634206492663428969888804506972225016079107345699809803661860334614934062823412301546014838370638302842241558989183888902267728263707972622246881206235355278122022206327481409156640574352871459940919311525531315276767409700835940763527071766774269606139615549205757009137929425766896542687323837694910117010292268740311810049685655031652584795977260330480680520325896883236674422661780842625175233336655107196121840848914030706795325722119886951013532260797115710837944722831977211969988062134398558148484915738872494153909750678507523096953161953336189831004833394041918933558473224244773390004031773819891997311291263639300982994377645508207962754046422755658238143693049662729971989249448961727083266660872454706365837293415929736060693373810526976456359469673854403092535567079746862195921977394653597419315800985610884332292877244617691484220536254684328121702480407564922505724578390878474980079020616581282508979101300299266831336322180465725841423871359089095629823616167290368575733968954543050964389939427973513360460513358104649062295935759027975394123917289641039347202779638816931819636426609117715307551246906628679729288066898655116941054139360739621019542464876472210914584986140014551051684422126634427736178716245610482002922875184729938721320316304000916032785473491134474737585760663553797889753733283895155103419653514649681157564291663099840305235681768497121468842680167874780103279295292754638927460415730795534160656458907332454392183900226069803334390297926662884936096538896755151770242904136836105239494339433019637435956932303257283416117293356050838580544683330692357113461447188743080973021170259241433069073775093962895465939050075796109712956868553349059051705694825813479471225652917694242666827400715635723732706588103794261084851566972348963060577788343409220930754348714731901528106236652390444323836139794911491770696644608699828016552166932155144468192575707773615068705776500773090622883280870355214041368727281698719651090448107757828405278113082639496657262392969589819081590054548928491054350476218107386223802069433297030191398176799866816335875353044719748772477907408534386898217500379469035266097024735212341036900212495204309443633179453647583653618924213696742867968551404437841991496883619376986016851997891101953360077282598750843168714600850988868812381099383101890280157597158207723242470916670206414621495588104259798024486158935534653871304899800667570130571781268279365456036103607911843310916554127947705046975333944853906334705911129619156616079394223621731925323079140732505386416201702928349601451079157695335748207893778676031026647076768500344620499429387286482970792343340741089304717401375970116011901847549716599562291872224394082396146411617521834103594957124112300211201805621942142857023660964759477582901273073829490368390416046171703840105659339173370615507018688248918006993282032967286879479651130775265431832012949499322919808001577053300210298900790710601189451335991681633795780157299266460896967086292219481132223701853670818256945635710147129741498365331817810329988736472700748079308262333775187544023142992168743159605554468085706072446287642990660604654806149685264783146042837408626032077948308592307540126427996493068090784084222529611822015785139436122716195073756387696063570342638653348515690825268212687937282459797103651956343103711709317042564503308804659634973784999772690207807480016688500494913167247915709644331195640389000630853359498516083127076670601248326680850989092405867380532380195227996303832604914462100541812198330833508852001795402159566488067954069775311603066904406249210842661863601603362655677530661557475881405080502628446970567184594442832068823172435154137119148234624174738288356186520583760290866307142209123814646789011480962074840213924606102986776245957030452684916919751724699416465990337225127799244406279231417771608132640397356650729436448547075550441668219626011507327969978601654969403558121420283281433709655466197327288806800994087305601192361813233273192309393847985643104981030427015052519751694650380536841288238439486889927915250834138200597949920343079799327155435256007848043762076310620794905428131815831040782975241843293400262263632709453397277435875224504593193166877223131774180921261719278881413225651559227576213298521511473204066957320308178679474415038516127623865147765163704843140342517337733178177626568655170536943834794427623580637423404953478511286195359520820304014940619855548942881486944597106495364652215407814559661014672560618407210975304930755114795189016739299019098282587416178990736903496526518301347031707427333143178368679545050254345428470058696361565305780564109975828547615308324630817396981450383284302445217976271422920302018795415171714022597133031455302652541395957038485659788480145995866974148496669405426575942133219565620165771823477389770895324971360885642432745259324930598442752222984824956242268089408252347182678075283136608542617650844778588941488751686487245207404476238040881214622340041328060250100185153931675229059589557014022850365711971322924919471161413292510586608568922010799336216679137586562585234235880809969815094797438308342636041139135857715787268966087212603127508947781083884423543950937750711145179041831731764028255711267678989293369149357533847745230318129422940714328305240535514357162011658098851386088346198671101342543065151869566616479039062800228939685091155115127798923625906847854771870844711300576182317641852176328118381642308822602784262683478697871626758687974665992628834189248314352816114782749611524072032249562659298858074748794517856834492537378374067285839852400614761949349529769151795186472837921504280731474004721174908126551852839566210571230048393798199811002081307310287179447676887958973516522848705568682270313958301393834437622504992998073498885625577548362311502818744261792930031606267355989274407197074504480495213706128604720746563680473942911748906509350923191807337938174670244619572869571634407718597563186697314319916202756580090911908115505995523349301616240564314660613399660088049507139360643065846781365691677892435207846770815984723225657753026248200080871548652444681065311914544004099798659142768778542735540407690035652031033863052769007739556818829888428825558118228873761255415148599691111818507868737973374747515987760525753744646195554776625644325982448356139357571698409976596823761059789779551484511117021160552437165632725293770785318064483232442193930972572623576333951463859961434485141223109780362133468462654542502044216853183203970070424842261352173204111586216413332361585853672496601110767815153274680185450920764500118054668806628201069721590088796892390875483407559665715914994928821587921245911754778554638277562925890217602854074846622031728121421269329705083943806572306278281688688720010981385661659064447086139549370720182683830456519847900604786545871021833444051492103844478372890936757357051109238757986488809586833478850243472082551260334110736772762354977429049894677951538085143882352635281200889283475127617634176237728379458410171432184901084890450849444262967743949004356115720168040045587791777852627404103066000497741955943605049039020023357468069250471700216960707913320028587212378151852604086295556149036080550278630630010063725336348060931853806029533751918920617895693830735154212835764993306913403943158611179769319960052303722894623249829779109687666119062215555315883796208250269447763494273481125336681748137743981355717606904035452451607980506821384046601542974404703258654206334348165359605571502947291937153696633539427294562488299785905835054996215027095798127463416673595809555246083873941511868813667866148655693850731355441463036350577719616983923957001664749225322856678059976000412664460085206080481974745168305962286377040697200851805021343823588832629197772309172399153386331230260447161508015096911859360908135595684581073041784885269155224033945679547639820090745788075440881485311923107080847957469221373003265551799793708975182444482530390168725185008027526008127055410752883799217263047758989935502213661701793903563858034154669881827817728049303766859395308103393943218617268177233697199221109509724654066240946428839202251951625464645665261619743346489999096717339055647550182637414289136170644899671095968455076635419694885320831310714131325990674887385030144193927575177990485076666236770967732708669091824803046385254565837097394904110255330332219196286674634587808867374534358996842132314917434996547706579669073269233492240646368983518546943053931222564923336922461083310977853093984340321684878862817342668372548898845250323738688084762622637275844029632988533309823347215099267943338461561924874639034947124585386639577527726223477221510485478501520970341292642996653572307676208445058915290787916376369836501109185081977968701827669827360217968290797839778623012009951690250959622673815665630512923782001614816662440234599434004440620662384222514025308717711021794762259963740370428097312346132909853914153218141419449864823216794456539513091200606090567809528926219566583183538469521962181732350497652494704722884495587717867266358466902898508502862271252722284985496109182444832820410737202222750770985428318621530555128991648442286036934412500484605821735034049499008236505021613416473027578586137596828830600632351563995311415087958435922993932961514089654659376048350827944814245769855484220521650419454689116212393812583649615107052435283920075828161161062606751648248460268821871748935402599250086445297450710791572877226239131663380678292817038672544066183580986791493522282764353553294108798525005988026441602393498727303694717294262302121948511227505614974525914406179778257773915324827357638114468561026739443628099691749495688823676312417203932792423077898304901603854853373281861152417098181361068478907108677632476849371626732174264046300464544858347087168824997543004823357753864903430398569926464834375665338596058279600932240882323671501928760810162710183574578614654769531404610384218314637843785305037501721317281993115842659195138721058794233067103664274058116247279480141622319567577154416366745330879425986832159632810864043162229796734810066880820998224232161032627316853894604873665895963263420810584131881094951440197888257379887510605452788879750156051964304193473415715148999184032653491754523528349850351665868916529683795349251134552851794644174649512803030484222278360558665240825813872298593219819652164798500908915464583673587121552953644239329474731318769578542531704629817252767645541543850100736762167791572901694061613352893583434666526879242054817049587854432070150455728131219668508337495556035846053204546839627829100730468422300328847914148234146509313761839500258770429774697765144038036546770531546582302837990693008354166842078888190461641394660352974666159351874373888905607797153702087338609411822622187732744212549870822140738727033306182230604656819281905750821337482198639094619157565661232249548651655677456978634194433887830378250653726232865305668730187341871367202323487844889031274729445847101168978548291519231390583147576181119548093177365596986759847498295148950522278394133219687841763813760691939647229713067777792543779298154693060749682083641732933353085545106045589992599229275501957499332273389508791199473417246846685262993115420056932011186154699751849693007356380391099326712977216648647362693054248325780198530238391734485409237445572397959219149815302992574562251165957055158679602521472101585452602199321119718542769916697922640514366832157596771226886301236040672607270391604036903345034963260256889616438319674818506067193191352522445005272546412102085156549176712605059401762010261378961540203136675948149384468566437696078575735743811204047485829639951132273289719761397746385583804234257283971370823638348142992255919894074942391861419734538776749498347409007066492954553417748182807528413946786676864484873830016326486902269227521117690578511632693785299909152740550607351316674498134507177192024494329343969680234209437333639586769351432662864234721472504967524157332019779714591829699723326083061527967687086438618841902446888358801078995632253930700253053677026432032517569180027128296039889742903128807769560571012223796335501644232530736764934679924782656894291689489016623435564912049509232215836573659193920469575580944028838983921073010268831154329631966102260816768529157143162055269440478572209026930094923339140199471603692751388517898708035534913787921587587509291729552020587450796660198357929346655843277350273600061947739283746394896951672648853726054400823225384632520262246706187130131560939805640222453346606308421488040672815629860656007883601622786039160767220356660122901537781695031688645040255761741061910965759085559430998131885219016790934198225508410376181365569846044503172922746594948469353040264491442303884448342750271409823918755547373560816972037119775698518682037553978739246224508332495344892999310248839933040804348421792522885837719984558784970299991531778506454068563964253965514344108776461479241417777185377386356844490600604930867703226003393178710203459704913520495560283161919586431583871936736796053029843729035927656336793937519142687158680849331816027987800393582699910042986518307197276221916949558269979828246472462769280752250108074419592755047845175935239725721960108167692332634118162717835787358257380406742405914186621040097207219820655689440176905335325369421358783278235575867245194646330916920204663794928334424631039900775819762213432211747587068631520205778414736899521769191032944067152355586281064935279161030479009171298124898160016172773367428901423024898893476295989275269548098633711194014724175312692028037898341008481651652051533941209786880223381483477936167820116288244093155236117508035847296078932753628299670051490727138354204632938009591239134997048719606758479683172972043875069203638167533124915891703862214007863145606812240285882550731883849382648137139088056296893535371001671498530368931583828417356595028561876196715510594399830576301552146782023110370775884341340396064474525568789575710816568470950222664259287361133003989374830152920774467399151490447665852358728507766932773092786122565283004735321552533995579082668710697138556874899280083264007380034399724332060245034140503164398680551839829835938405188023538285803023890237113051418929207388724921214217742404454923109350101933406659060390238009081263681340385790515318696371593643274407336184356186872350991666059736700212976122042911205947720407134313301336135573647587265091947618278889240648623343741505976015392523201650008725141807709566644347115578428065446265496707471448985180713607063527621151684959095240277602236313446764424383443158728548711536654790126168359683901771750563422573247236813149477912954369112559973624656742539412303326361173461439122560366078244819517724686801251680419567397641399224190773629915495446078309421693864861053274054489382844233736790750570584627501087594127511844843952876714764645817638371690393359088956150873121533391262536990884561307096005960371698309291618449589627871854068498670032390144504592830028908005767156504335294973204024155317933014209133860135898647343490355940155211389862375095771882560986796118274651015213647098812698715808558277847087271683280901313006783676432670692900709291910296785758697063600398043162975401190353443010826740876720215869534209179899919943691842402786399552107336888246614381216057885350982388542565001603828323805061499562958661849197963104926388176613987135120063109744396472287573836864349769495064052762765415295336763526018361545202286569468995841093130471749961306515429528034172240995048171208175254947145423307263950479746519048920368715347150042114501847555715917607355719041798230660126521679621851058061030774013749337324800363532712922964600102883034808766288956626171605801911735268528881966652456215139796093438435704486503684107843994326653834106483113569372589833330997225461893746606980503619238337917570128593411748929404381751426039463489167861054162483498615888404047749375550933131623161539515924225927689562186692943824724386552439139736419307244750359832123848011036808235676372639533300724042127174399136346933894697652584727927489294229173338737878679708684094843214917090855167283383035049064338496325664091486794687805073286853808576139405310791502293437061766564825619326461358048333313607082831527321880133253163779626377330006524067233466968314103950937816076761658068232296082273842407145282106444059217351836801188515084565236971305240667399175425716038113342413931715478560134120621262472102588768499683114310480143795661205836596466934454621513298467200185452692849549245864082337290212912651467780075523921024566626454036479549851137422021511024038216729475108220739951063181518485206981869744827725231733574079924707170649530979864126361691490286837970830257208327047782295891203539095812866888611391300530319893395195252621835334472445547289830006992361008821333167878850986740772578482398744875265369199943747465083739004496976894515736341149523191254395743609371627786922281621397290994871854964062475985759308071147484022091995639485606757987209136509958804628874624013452158352675898677309685292712650158095730618006229546073166723238517843389646077705187581283932701672336263668582775452520200335308995929369443039403442713653718870527979317002298596987579281826996120294112278962312699406278306578135800433719922426392171352223800527228423829329323651195167279578025263478733015560866505751938690129804804274792399473945320060319267412254620430575565101421684880011007890664252958531463865537915159138632990225080290980208996523259097616866512773576639842300675743271285255440533977452691063917924350850563130707228614585030551884578378882787034276624927206334251759154341406167523983785521011605145706158240324228208708310219055541157007576814332187929683713681272206009030328965224362402249216747695344517060704252463074101566859218355500835592455918703020699339875085485645825446303134349566779167444363293448295299182964504029046453691373697070806422313046779231794228920711270089675023282446847348667442835481988269342249042200031754103413798430492355612504522335024704487601876083793291573640142073506239237881001876771991576292141425051439371725621912181995872727629598606993764716960596676699073810438956655384495425277303444222039543400044833233317692576461231882942495253116812273428734229264751633063291740865106573789189763172435999407065220818168962077729634023688346706641599240450366931204679996727441595005466749993212199491678981892392156766923470883340692213996241455133382185858405072713583404091472222033383666529522170086584924974539880257934149573476911011182620184526224491556670033091753604344532679606670374879061852722541026661467308957395629395819369762215149567769824661824493837440562958455534930801135533069309686766621107526549068996343382474524031106977699421052963740124337289649800104279478281799488577297781243101879043766884626899109471783552028708676098356576922876892930036699894981023586835416537188900421513537234825742195112093796817381832404341418853047858044632950064070416714367913770073171121247635156427932337569490376612710940306311747564604418055116167794700106277068451087444065117891074437771526854541367598429459940535278496548299342473523709368642762830079295950879291335196892081511284027429259152644851047168331411319868092970214426761169256184324521289292615206432842524063871638008363941703920665916189373153782146318501670295638452897634077162663992574074292523090685962553878203720849659901181842464036144452823188387375233757263795090788028895502280219681868366821580579876699139515587397467053100486318640095263059782252949966429385002422037352556308578342158215466400113782864520227220206863122613628810699504335060101798774940174382994810033693660607287830838206042958309377569538314623999948385665926156233769733771675269029876838339791367596959992012628410151239905461798568982717339672988330481380302960462144355386640179965362631226280450257449479344698681871460599806733812551963778095850647500503460976030847214870946572671946790590023155299310285961604077870969592432401434440037760972109126583829326106203666130041320308371370892093036273956181248751840085400155743169277639238574340231693557026282500682980861266628561126359056264462030567477177529308766323883066416072293148545944293037651961493077350790810703754911799529876753880898904158471310410051183483958373098664398792479404488482401203008961220552694228245600853912488474210754484877347026012974177269201092403609570210055320315962492071740107512760367212593429640454231266325798202011934381834068298600453533784144708332636242100565223994915291568940564674041127977871393474617979348705368989805206294542686413610299870505343494738915814113366468981107071020436757364644751658549157361559549954325118643634272626449833634152872894230995668147988376501427322459312196898906266345831162149846796601553699114399415259320662718398905670181717020794932797943126297029995928080705405600040199196602631068968951261270977497428856167080108037336482799745830391393231743354875780080077955846041726043152859291238566535747384617393673646217640224199759860535456691919855107303888978077361639511736184664111922658252391760014825168966291837758216201559234331332938702062732812705804657525552617089289270835862578986782730803808737099256153553800577613789214445289795670516031552316063432509193070345133403721238863182439652586559250788889118390314066920138658495676710163302426480538284458726717425845778589467154865934867480898317614658062671945809920357649636265825111634837472979350407631135953014412251025184033436835492003506002910047785014543288002241710990174446019642670494536925527917326226583081515869873778913360585251209157703048382541889977965735106152633830292542214459656876962760369175971538065151613741413585091356834362397090333376260806768707676451254349488393513619530004376199763167946248223329018905752899999331075553705529670132522191668111435890461989970090961066843061685623068286712513943894113003017281702049615328724908922514588295436820242073501773814639201587980092648632654120218389428241238319232531795073148303203305602266262839571275816216639114506555567017361367145669098387148631813843886827908082485225577578803740483577278219706781871805556278448652583530568089418293437282698277674890631384170724148157112321733629392162160219408093982970573853407810505898276580047776345569163055086795915325094143969946632530004882999334691892753311698563429225975587982604821479735371429379232448080310747765617742009413670106175054269719895980196012555613809856906556592004794628905676479761114485240935960924820776625340617913421588339812053969567633958148511594615235531537248678584112274725217213476218080062064714380051813592534204531060121373170402505424168047951590578927005043334788867340714132944027570690402105403787062049042061877553602429251458546116048838319890009693575690401579671123610517663657815141833667536717464822372906212290156251263045569048652168524267670206618106900374432176562054866477722399426739950678697998435737372915224969052679470435988210848329388926987198362192950510902050771520093045556848626227806938831281839297757773656131672256099171366280578042180405628577935790489678110477665114803208253140191427580997834264984536034599735441890455300649072040519665353481886699422044537613715297196978863910105830245157657300841440996725702890745901754770753646917048794393739666499321351200837522873464569803805876717730379658082757504685340502908212424967733765129926292062397578063238911783776307921929691822890821902544009914109174503579395495113822374697225650854598499696005945928784552611394910634152046053288965332334579732085307571692014652866808739395751780807981277670564713876550910631915077481045235232837989041975330216050010869831373547844358121072392905313635339078216843564174324772564688383656566136834574833594059003813637889144811517260424531658774860725663382032075765156648738186011251334081569734003994590159936052528231934530567423546111642836746508839199068713497541051090635053679413410311051869356664469978254891073981634922165953792329549419951356740862707251606994885950799675710845673046493515348807869668689793389507841578040930288629653673915466488636446414496275690445509988910623766961782302996165589063813008520113467370875670019774420566947736036354228919840233880842779398408511336194343278969648677184180234595442331608393063732304744545248585136154369890673870655660224157675640414623290896252456211071557405514815329197066842901581935429155563916526733602036907194958801297566853689943556211888955370690691921119618983257752851955680057680778239098910626874662277866264250063574861242561675216791125603984460146301210504165888309631332586873538511909999336317030059943850982502017696658758427103547768581491364979174783800829331898766153956734680082296232328958344108738505636714421212288152258743124702155949756203186427834680044090186210203150959066302525625517509346186720687635883703791360367003512233740826916302975305405763049026294830325338609073495732832195040694343126767626276135680015058693798463357814986665283830703859460156168451221266367899684306253721724817720736421098086642404941013082582102460418220211290409097268141122632514696049739650924538839100013019274200352265529910394337371446800176037773660637810225829344260906424387827678974421764195013129147064543089620012934149882495299702334779650881609710877600137182742888663512367042646351112544035618811547271958726328261219945855748559942287741553330209175458954460654079598390926395870642918787783353996289829436066648048923989082020736025191526921751278470378307057044791059707903800293680760311005731992974711234140983862250941738026535440526540168589311854752612009331865623209234396733136925421539801368888252692769934051531164049731988095758016718242903183808520703516484849136891206169329189868186887338959838209990790572996345825066715843987368369758623584970778957554981362977577142794406156309146203966051953467238381561802709311345350213622724402862317387817373805149316445414866103925169978004755309747831580973049188223740729192159800236742485817708441492445853341456419250940969032055017452702414184096997700506017201795988988160671472730950760493405898325233266045521156211411210096963118803103207886823666595016555705812441544863632812092053281044945331608053434025033771176066722364828588215666387604892953216882526651602371460217871444076762037615331722960701667973421253100437529435167071781979153212914304493953859661776149706604275938263242540228093768799245638805285640401833570933904823718613211336168153348040886144021202605528442618005808622503202148495426704487588816339939737035604967720946022210003200240115905275950497932517176045489896248742822829317560497540297835848744597103316072350446318406232152369364063860234353362308836308948073098393548569868161676793895817729405403061982251778235422788480265026071543779586110430458897809122146537708959086503191795597660146041011586525790550790870993751234700279895391004296202139591627712652325424525667260208128167929021401906019811030723239680088497418071899102860379525248704621519932805625777397462716933012920262896358451648129872703311312642574683655457398162396817030096264606027146295596816328840322013995968069272643320223243662328903375518743494156123444769523042180291867003126767195601086669448452256339603006808158910584713215489442199469565155774177987472475353918303462346050236621797701859811746342053511664851642649923965161877063279357605515517013784283363346675198476805050448249418535668323409614625306896560225113170384181884207076163558293826056221802586082144101718772690760043090452015043159113993535501752386021526771168818327787233836426176176719505459615327447358263844434646641890051538820720073800874511936949799852310783193137641886532998951981376213813737135665810214291487717666188526669380864469439898189746824309544364376903969076730058909429609527986230087743635424725627452338115015718500108361241277487217289865701616712969491596617759587716873333713604951621749749916831501605912845582446463969825533908703204757672485138516129875064109024637310928445734552090129738837128344653475176988841242344104683560185267921291129294812673960586431256524296831273016784377998910177501145013577555816152840503696406907355559173153362951410831466871248568733392964853130807579896196964481693339339651686066930617090010670088797846612792124112859215075403426391919851166636531964413542968601659489409775739561534062426114368674630252316546220206773092404783506635342662911328045539230171981150373662897992688203580137213431752487065164077118842053911222211587169375191540452359489985725720861116642046601875516313768006168322707268556340112035782297300949852593245544008365007144886694969060551495596300953487815738803656319307547978893289813446534031613634500582255410529750534473881823564583974514713902492087573425260846167470180161998949348808195407492007252606582180338479837994146175719457053482643702799181619824132968444248075103748692207926730351461471908247113942286351487675039649831073356932401585442358447833816997097850113216999078982680428734713444895308987270082148623468891280633195676455658024051290823162203577417535070786201323964864314297285693479472496137665943425596853858138460767449744310556709954776051871532727002430662087943877234920415566507337093288867792796396844257935409570512428988221183259716571892048915247505289647847849141738367323941116377863599129272300586638563358133467354224627526956530007174649178136862437380926614404792701555791288472972664113716237017474649031742125085954199048579560607283170147819778566349219930349877185340363364904393370696584575449640660420870394789675878783630099835174539864453300244300255800516801397085243699741340587152766545920135713425996414706130627552273336205789314506117658371606014876574978238608981157307279742117964789662332080166080437291533458076243369633615923396920148881866977664731366839403976745023955852030537339454731693117307907434933040693283127031670996221828029070479971054313872334611974380661288586494313526054588084684405481616905400445429487747254511136962742409805042030970730129961424864519431123487019203552032193837157442701250659954699379050237433974514713694726290131103702555518873633424405902697617557435282525085631791878596969604938997841798051165474335235083549810177106330202016748462420787127419388257710403487898101844366694305101056464041985199207955738396121779259717283980098424369402489834741564436609670468325594597558482815845564637456224657144141541938080073033196559337416776338562706981280495261953916103096456002323756256491603621491343156536169855784676250093161012116187090616154024938015217412602703974250184168839293527383725983510423698645582114231287154981463177466500507432687925748898322185867654334647658766543615094476534297041412436054587199226699498063460601544194470579809702967898954008465737406433388955117793078904075274463888587005824300070231014989635580264173307334851575099809772425244753563876596394252220809719972886456768453414187208035735487815003460963456789122801393834260201846278770084829199834486153055510183686169710023905156103076943605331965433023346683013467300085502174608472298058476553204852070741809678545014227902969829345026103860617610902701431752227737276953425677577700424193772433274718495048550351382618019911108835252208688713603754688969414587733151163188354119486129331884753586777342355197793205686009792786969876215716410420654444983794583040216073668765806338605527101230163122795093420020243063490585228335801704053535053154967755406455875366490047924621754567321776418009873339508114463585724036533174228822861970338718316652819446718844820049248223961663787695218934301973558455147467704413777832535851032039797419663045380805290106477451379132364026244719182378273899476886494618990255072598673637507246010669271838617412652752732071548279667051146603098546877822799339799737955132321792855657076541156995374202603012542191116335061177662321803591213811797334141090425360184640885148928496276702415355272207842691925638168476329625717701096391418242988270947725148346926945821374201466544490848167707200462968626317772732248306515301289124949769129013246770485136288548517723443121880341555219345530009936718028246113767681035561826979366795584297178384241090998354176562459492577355384385300613588408508181179960497422545023400373232968441883180068661930912727113192028535835562753045759714711833374206577710474366965276241347959877947047244186817743517095514889794002679977584452637510892252142730897227408266279678339733320883681001494421982081399268008500643589825238863724120248015137393880764263833517851266977516690785702285405316319294402175013985156541700981068493439751177546270010309485913911175841228173925365695329566039273080508073922875986977932906742360172794963060744152850366330731269177217209790669875025410310420210305918727846740865648175743230827008623441318803065742235133466423691702025912002234264811412896310118325487114876070108871057002823975583813150492040355593585938547926728545982551145330651424136218198681924420163715642823982940743588278250404936902221732848467216700989604049079230406719033266855679139323715016922759566528115708922056771860918511312028823834602506884481873431279520720527185269603018980990831235793321281548278432785927103827179257031161759956711903855922835234451864839514759252301749705553913796451968451630398750773928250146091606160664828596137655800533192980639702651259719683941378132679895315173129194066354248060259445685964662035332407683060353409073914520729423506985870073265717779764411532523111517721310296327555664244492448306406846179947284825711177779660983687726098988704329202053933132765234088596268052807938251837609275556548617725380225680275835896318076851140031265457838134638998455725301901268776468538955304860918184932238846909016365846083637488287754408493608001856741930159512376933141441774970306162586045415490956547443124855805501006236194732883136122659919187439474133759053097006418223767728931847131026146422612297751081894920028012892188798352344230704588087196970582028717892910300555056440981719965272884265308147748834060148043722004574963608249790461867700917632414200075900131898685586789253209471422956104229864908137215588435947221639624641226373484195135987600845852835718140749817580831013311330379919138467784672285365542882181802027751443322037710314494041096660367164175274103980374170058590626492941765416502876910706546326731624430912912528993101581281506417890163694100990590772658476685908721164073291160548219924996762669168626176242882426316858968653473245884137090838074458747473121314969132194013816842988475550785325520448715550570387495362191340414044670515523177877061412928433153236975218488509922807703759740633379217741582563077014393727961603170150093998208422799983021680145117408396897005628438495835871352330747351309773399451714279143983725623703114164039554766935331437121899728827208108311443023490735522103138129347785000848240867428708373508902450400594252947461209090202487706446154330051032382929737868659543278271432832964547418711508551547560289662575979273136180416804657070569515715175329464669288455293721587110085605514212317478421982617994084902428055390849142080473523457625212447822469162579746516217227413041875489497615219212884945517190982340273576440976652378767944445250028358877026887028901267876608425576583748617591847045501028446375713791812162902053641732667952153537488747239634559063666428986644417404265142328528130902474162525431045492984109275082822965918713696748831946315736037853221946775570524273896034043585676798425031698129375739426783489071689482857786052467199649005555854824519069317234265670956069018110196526418838785561061879207182378921545134739755001990122334900787953758082629547137154423742853731480501116956888409576462836477370475713038674170147569955263297311537029771133427437725595679899736374932139623537160395582189153466801777929845693802853112623034499459968504949171125603040138122657534793396964176890057008563524178582852879142306833705758942637205683009818231207396746069032548572046038045278732141961630262427527395034770401231277798281609860398690095150832304928165190890014089253894993480128537320321939814208442152574327084263311002952180443739708833296346845213409089749954587994767243696632354629941753081049525472200341146018604720248627014340196145100703476753516273643283880621570216010047062241232794742826808420244017084698299155867890690790004057197397203116900541489476596893286183005535162183196610280031575814410758225336222584556650773363962258916343632307993337560432578952772878272852913376840429250578488717319572428241786899799761139628821226741226060471711099835796372429512210106402987091540269766965622329660882127094716627531002346643065732648990607560526644886200446502988008338115357429315042330760451234397348933365755122174828694917358075518442890910726123953521944335789839947227906591742426004987459287210969305582243173935754697561187725250408572272947605739754907633726733202459996930170111924629453030974206903861921429253922321097718355668885020711948230627157844509360820377218408322095837721288564286752673024766387266754513340174385664699651031031693703173348170355685605221441668470169821192608714162128088026638352900630073117713765679059247980965779121237091366722640302181066656088098966088492514332221429396542282744136837835158039286943415342145393974670745261861816932619714199762764662431699574589960079311653273728747604415511963944158844731990959668258245363860795933842786125253993968490641758353504460304160777792242952774363167878045647538573015190740398466664444233606197505727861272911833824848360217432148667360865982324267794441204516197762074657847071783089259123342843164794286160167165601266666468944185270450712938036884823107017269768346940889092384077785763975762727159557803017833287957085658370274904176694810021076847386790161586210843239983607012650399110560310372284835310335755295758974598364774408093131507042034677869828356702324855312441803858610784196939550545905727876721537400405099886681882165623293015132635898274192920709998019217315840528895819221709734776500896157112314904495345062696152255899577414446942959385453664578177818743542322697846587607723769100087455198748198162706489109848938298060180184946723635023682155787285761606765270355166403229286308368132320406961986228532166858135872431367101641390365901917305732140959412168406041736591907424030803473918164342719807602921079395652338562139928031749788034471607132077524394213120754844729501438919083335359865797621538892983156307121319442479111604381865287878604658943067814587183149294537556660826255077229023788376399711340389035569823541935435761490444565028146467499759519721254275896107588278413970486637485062557811360293332563040742073758336226241051823879948948364050154247808972928724055326634412782306677041522130833955935821253763973561183175351335423662377010235834203422431147376922432171644021384409464496197532544870507482206931779340277925380124655573068107834216881501943041728351934547191337535122096499534560163420805284409663791769590310701459551129433035936511927174113600312268132083264084054306152084862498772459168159104413511466938725348617646475892360098662226831686165253070286256764459369014495601553940730460351295926290252222092910035401198329997307594953332058124945951662477274005838467312624926070675873385322332375581416039406205111908572676844675540268903481513909595162900310131520078603664294199154857772408398972864097604580806242422059825023087669431803041399428568353529804982104837702189870255482559946420803422110813359464468115931052635650429794427735729087302562927591845208220484379682393997311581647342513822259795356544463215353124362553763219877637069662643891466033480007981039077730860419548959407104722613456985862439186743621836467514513827355270130865291367239912241247495439610103557314446580183443423842457874409425495100738495367547353860717914823288535557977563019338696516485637922546107006389623270204259572257431879041400754545235130453967914128734832566684545712313279907698176841648230917083483254860826924961954278889862844630520141526953245001363888752237820516806327852196618928029236195919898642101975619006150957052215940362843926070845354437661573334292517991572307428722984037771532375383603690406889744363726997995794722445520568627062462897580102107501620692658438295012554314476172168438588766890738513735586069006838267536997598683353243737670569832058028343364658577916555646308257889119296991801082297753955676486545611283771829177938255993858845454981281646773598657733001678296691505221612710996333024448154855676382283102165871957039745499690941004026149834997810914548522417356029559979310021856485604011224863679613593348751920363334430033991831242290356402435312413424745877302965033632327589584540990903999481882431852763337466719790070440276525521981489151423619849901819727726597594997566983181102427436318674118870120845368006123656166571809200259307014491929783589926019780169686640137957378075835336275763420427512434097670039168145407474215421277303074122613028962645703062848891717495319942013246762866576641451950886680877744700414779811028441512446325512929696436684114068805754404900582795448681461472589839911715224689381646217529566974637777850684847299805816822334511571443883968033187440169197514392805334680643902647082359507961068617510821222068136004358695908566945201242784675347737032456825011268527705419169543834764028686292993299602458720384889902398127236539936677751709245285840074603832421920506817359127611432478353148097859576740702883436142866672507931405580187693030361033540024182559489009329799165293364496488651640487147717233854043858384429313047662849106239687951998369272880165458424806177557384758586935621659534277947365438539200128614794719953314610386658647188503817343919371696166365840338143102798488991617610876371986777082016888814708943359147627169498437773285758444662023521017835093580970172025081600946120527450257347207606182801417285588072867467218083777154778126661530000058996328901976739111709237551397038378053529766115593271629565596056137026736867373774053775891517559601858623917973121215848027981059986694516138620095395252961345969536551222646680325147925552408538059558589911809796695154227597785993622175435215615225995135185524533171009218015137609367559439908452697206224742372307093228464577643516740297043647670252869445634226066008827148222195011685050413471147140928748093379186957985670509961755670314584162326399529369665278147845345780174701876590892342023231940648079490150101956812099385160385644472847982101962642418783059727091639004876699065256816169888938109769241484560398561956864818102106924397454730914013915163851814549042765870731952134968670992913882230763099840132661294606509083309160731026485456663683506495398806022425830759252004466316412975784793654883489938393934837257609037586759471154609725553179640773203055284156731198166801481869010810073484942096529196336383801140811007529419205283422201381718894040586690454962774034408549371074734222317140745729974911962899283779273356293827632486237662965335682033794793626751035450272271740003359292726859359067313834928291435175513042062967410657124775867414567576030235817386568306089802922437809360345552338670826814304788440510469854561166362113852965289768069425159019871793524646052782183504399374378602593506950401390214691547602384638077793987619000277168774415160328150100138113831144895708167388164209628965468841463643596438937440089269672855178855893997964022444257181545627124414210798023626712058725791242557539113006217495325942563725637205763555842661360681615035406048101763308055969120343714923436273431254786571656402997868760173922939383962018172948446537310800728432859650295036538383957701161248684857425863955941873311590755135440171703415022621185275501428481231182269236065651348796901294625990557158420476687761984724358465872841300340311011078355010197054372112024653576508071922896340398694166401282864567754931690919083181111748631669996536521509356849857635579995897566761227395614197255782361233144726746791878053415598244699651495225904065404942262262310187570272667920594311635693480301304968344671602501009032994435828184994090954321720020860643112719847564132691730430458753793068324058236364583522391299236502847196740819735302305062085989225406260385693279036398373843079500813880015380050974393841903728325280497292711248824067193212303077654058186589141532905142457446254568513963500462215670548847022647401871073239372633579726804517664007442089552717627404851647304099960069276479365355420219870222925993601205675198434599544120992298106563720482730009161678227604887902605350789937622646727868658645837237476117196593094171741566017981270100672496219473009146091400296764250374368413762915772847070027895464172696272913716411190236533631356855117850491933974123960071374197387046957061986393881890602599261193511966652636786450981511784846102833739862524262908841839139824197548737537981683438162967804570852175937978278538713672190888449090478497821833482183580058754092320042193773800534960672032389510126402633293915270685416951278694057502084599350632369163580590603749471804277741159724948983360922256675546483451850764520747573676731526236891280117999641297026146461397868900679336386120051980650056976309865263277424875598632273812471906943753365522452336606939651184893389167977438997062145784504962081892937541316156924995901798067550855148568347369570100102659711096245544717460817199321990250390580563660176340840928820742640524202893607174373021709458149627255835393791573173059511879094824898339078086142222891301939270760178207551899195162480692377617393015546251155022969582756292482989868720572965700710241105918120485431766762352825484153741478663557210000113950680074698169481653794970119638483935380934131091385953383887374444098301393784088636072498159614907379103562036039840786998387373552302442161289472705049532506118095249746834615671667516141181002233206781010307790274570073224263306436191372253202725422863941471852929492908969568396753759435788016226142496202840179589366302390800454204333005080036996482909334957285065071186077315178554241937449485254945335747616106004001247131332558901737186574224276820498689587719071119301679680572521040624285212205802821114478517603945298711093791758463745369306906086191789860865351994538609333546823182266229915359323857583146374928297829217621956131769460433238520323353208618853886526892369634794929814119978121866694031549944350659833824189420139282795748132257787523662368654160862522995593264618288958363161206172491956423005525745353143385619756628470772569977359775653228775663126665572683166929251768684566541934165495357325510129356761150993158261705312774768432095769397003019812999001663251568836318753618886951906355489104071951214665891963061953237997303324107161876381195638240465702867977798507410559391345071594878565838226712244796064915583785016552804600634769926662195052165067630617585148791721801406095529675156300858487592524440300421281410777930840255946485373984276030394865898612604589849032523251081966463028599490562843546673782338416811821018524057729743557331776753522348363587151773538375448837672065553337225173776826250471953321259414323463837803092639267027329647540011473814609093323203033940807376774195606070931611189797913309800399393436392020918070604334530902205602160165790243526774684257085033743508858782103393403705484903144877343184953490204281272776213738860593580684049300794723228014831488380900644841178703659999170553020667506026116339297971872288619839644965753569077168343129685571229391114168932077723623408343035488346509980263029499541566503716876902981803547220626999208797133869462390873364805946099342462217421682245569137972548274500625864946640554030466292712614417629723961590143369958137290015069102097439846414619429281694222962609227233638509168077109846784606106114963839232995782885033068544988091371515321234367826740566694803498518659114209441564399082873177152794567746983142668284739507331444902238311987130660231496065152560171471591301236345207972662748925328817604148998746864123768044897057912977506402552722425650878216395289767485989803144597922810024975107868111375711304145070761021793438728059399068425433498001847019362222127450515207737376666593837507694251832490902153680399832625557137930119109334581879810620675888043272569953020426948948750938933924569496569030634255178952204027526451583959298824875783441342163058897104023080435262403705624296526728529286608674308474559079249052477832814415502914188804277104848982605801208693625315757113172858143146971786880509867311785411995355842073864583852028327360858309544790876451730066538310571924903996539683725910558642459231190894992397607592949596017188224451765319344828430886724026732510972037940710972643296408431605399529301004680818458219187346915567309591616430119059435614910633601993863727387483004002635750109359385708303063263509730812448108014292455021010731745927833944528107309592102587750254237843030792071901232404671467732296580639078027578672199927989659100907644116793401085384026149459608303377816542374858803799813944567871516115558514648707300017757627311924078292039199024397338702314099076443743608377735674456914380208398196437110327806924864164207104848591689801590148275649174028397472393929343509127945598152995968978802733061735150387280593192437040566867457302309017555189369590418424811154362882894117322454621768124710363162344965366088891077076745985586498974513341299988692226462126818351777023664821425625811622239108309952754784893039946329349364850092812384519353168583340853258278659340120514909176567008486364405374769706510779407282795348783388364492073199927135154196576312223592530609301321403123035353210984568087163258674150010486405178092040406339741979428736639273584021080695476038498913741806575929656234914363868258813446762663213305385588802419124422687603753100205973901508599068265122628853385293035714575761820832156348703743928157634427882463307996301476790667597291805730840469984465896451224044738829704856677143991639707228195547944832624012989518485360175848976247340627235852623504684071139369568449596782599137446019753964943748934036648494708646095356592749123551986053100469068494628846864653688987644656093612223351365276386740021542115319879871849102933505311538522426167700445830113754466814242937166231428582060776198752507232513488065753209838534161205311775084653999928494203901505604578740898890663000157105039471231245659834904306487857338536599922842085719983119933979006986306315131941814805148831933693923066950608315531964626862174589820563975490402137148628586815701511792076474640831906374705126005615597305168446690824852370187696218465565190624933449416525448934624277138226512903037289885215101262762966906419816588032355039578126023802760728101015302254749622414942590579072277909232790671237755267455211382354200027889502443060683843331178287419582264249647168828829744441774747427841181303381596526824915717906586036925853946554874274646441829657242822121860660745916907277623835094153450483827175807089084875342285828299544740972321965078137851356674941398763917082277937244433726630026961278739333486669232760403706335905447061256662393132705817735473794675959039244535014040085576365473501574076680462685988659437232118359115825956245026763531634264238459732214386100355101145494821562716572255861104539842719989229284249395068859522470041712803789590446853185010755705922668712737748724928715256757275139289193948332676529996053517167208519840643050725746790697076499836828533404319450440691805708435678971758781177432638144077634667025070613232341029796653810278887510504297892489998019048958511212980588874308958368128833480215754546794594115462434390825950423851263856021953628037360107409005210728657756103889411531246250473716109887679061733591419210846585038432638754277877757665963447948591979330650170993766363329312467458008175090290225195566605482969399706903973640612802125877813254424651650227347525450096440256021149723427193023792513959751839701645839935662140812199182026860361800059524714167449508937936228018479814924857401447470541493647201836705361060564690957729893652511520502909469416294498606623461232366139954466220597377773149502041816746549595866308381775873639307506820840683975642712557010257355047132025676263723327898783535724707855838208092128153669963694234796540025703918868405063937557776238334625780681302669298032857914684819469865543425830410037308056882485131994679560625326758721023438906267578295225773058094367806415596440656873798450924910615456204841927798737734815433401268375373052543204290511379396333560321850449309163072758103630117715688489367016394535728444603058402200453137592991295176481635033003504649572044709938878992783121137057087917953906612578352972083572424730271249385335539696118278828622035412376931980265360212321623495154191397642729957221580357222775155833253325816229965594077371630727108879466291057640339366360192736320524496419552477868632738131925993201777078621199332276804003000227212069433685490769246134587600179923881985326336914968190537190415307375073519502330753751081972627131809105335536135358221293539681618929863966876460971535348053913343795235176155080487995865249910007523512529781657151368580370845551398747172953160687365657019702906851663219754429024461184113155581095576773858904063205017787046465040732550688428470848920139569845732351203626490841787874532032004140988324458382472424207159130076291447681040979159956605224537199633244879176051600068654351955849706064103267132410773110302652541221592199664534910397082026303274417454612721707942508452200253934836852815404417046243328277066962084862694048960825897057807871128501697043328121586180659172439250323025001419242544490587579509712794024795939897320675860839063400067867450917552013703806384856674080125449269114838955093895557516510417351823974636728658605756073661029132445515066575842653294756863734504576432486905229095268957229663773063828472598037622595887533812903852119496115770548703734316795709535877424772689420640917978189894313915669864228376007316868043974248197014583705784926979754484041374039463723886104673442526528822042729125553652986191003703875515444553120569079220938594681552776624102960535834949534443921892045129138638295970894793056429018411003151183708148564583912993917497669557375964935839309459778328486015827205928361920453470366974926989841657016520716642693961703652463636926953939831663405474587717644840540869758548430365021345002987767744679561880821262721763155786550063986927292350161244479953658784753777130586866578507693352453100788273088381638853508733108980232809806191740955704851789348614539019764933220466000376681861925988640989950302609577213724921139753255299062984658860769546560913374967641522781257858629590135718383733739544416878323613119680081119488665593270746574253677387165988174425826084918522774243569912044095622527081785179338185364034520330397177722110219706454260554570221671204258490744655241418633248217762730887698811579093144639316913293057180672692253660579435541120421622971765607533014896490360501883089283071455940938338741907167540389511956667474633264147617007780181714132859320361353955310463682618177951502078020758952265328595786978060913580817798402097027482983100051746834551805717249995870456956522828344655486384900817882420921979428230884808608133164898731112839700953703872361635393254476045421987129084410299964193451627562028897164278309406549422752558386301790841053130417848321193808412157826806201518307806297081570458961675310747191762808697678272543487277792237467487096099330244897833256950404459280454375010185820472416611686246008425437351015372632476659626510585460832366824833768114848069148232544347334753827343935177660047123686387143401336427734252462731457234612520024395401585918556954550607299577890439600678954799665220936516687403617101897282362539361419391262722168936722343570402752973160602474628257374728197158624121837408108087845614564878575669930227761804797108443145591699219658365931490935741061220137180971183468486419481648458463585755984299839430416924568597513837632601166888994956050010367338873395821219630169609830289605668594834270431200078800385804772491623133146636640828668916094894128293384551669352958066048821284450296412425253765064864960459650928403414011465360565950199546610621973833393174512607331101519976713007743344416656228194983053112558178901801621164639150111920563658545169435647679307741911018719087420992968728202495830423093999495480601803091445461950893099759823298387581716237886357845589606985721872235095583595909714342776284014132199430103018888021205518827204113264031828267885177195518553357683540493881255850125307249765902795144262880943882896577955335621472926627469759458070957297401033787110515693398670438278859081111161096473836199674179323557778714672321569298474655895030176849118333655366914967875311711798026889965023432957767951657222883045820069794449381064186023798964328633631405323412387812374201818090811854957299328275173283194176228862431468464830189208477114823235500105940466228949533978773540604062425928250980239079753051922445097799923494452175792825005348941241529329140784139451234953498597818874785219316022469983696729318646384825434186119251634989738021090437073471537403734112340763719982300069135037766054813077029748463065735204974033365435469054174641305982372917609870302514670103710194559636239452694898517191411949733145878634556157012772473789400732954003274140588708718878279092119082667251815821182603005698092720376756948698036101089028211737673071136939779506216800336681710170817342391157709757701303164940997714677260551610038492838648798529980468963921995140700943159281495401537772002103908925281888324159561555634148465098408981183967305332083076735062684535719028073564244568920069535292958068659455954205943544988771324821855645209718921147839767913398752139697652124874693219414280301859164651066665116878912652004151428327162399285685522134264329394234296706257868787047031096555558420226402426110605310330293248622507510247645539769615300690334888761179613916462607916310157497409401573752457393966871752720351951215156404304703942822493001510972010057545177320972347986929069366789077737903865349637516588556675477141201258386793111642382131224311608811183428372600551832044577212188236051095529701964588874681483960206457994306828679983618610628098698952809636354669766741660987994154990654400085581234576316886293861610590186633911758918107302310318557595181265851732572045079776362437032841286632673068784463134386683465723015847144665120776511877511422310547571442987514667941123223378138823489952692723446432473698243819237668158395838059954491428404368640840089411288915430016509157057137886451919853101952881019158704594003195689594982218596266017531855941869519961348445137615834086697371095267748549893592541422736603242998231576120673224853671016704824357352733070365337775309825578552298080052547816403620239683194426994048817200717459851460526712102616668000136864531011642212532062517523604641702747626812893675966621884829917282591836600295724584137005158986578679229498223726886182431160641875713389613538000027476212476000222725599242744439199603326448299302050080793042709145464792006118295062352263548449714423873740252488209208900064155319370625776507740117732482605044803417903724034496099182438516514316660164626298140261866050638701877663076825351226772117263377755804659008404372836341335557888472024318215831855850333334182176287596584398365392704549783989559108649513735440081817893234180696653906327366837135409777012972531373098740162458486125393596563247981239513685495367556265970532446353131192129037150765825966119745151366274559842442090939050044484602152962410920969601053314018025106671443151464907228307687282786418536153262022231664483067929712262092990072359306263428551034795197386106134752715065476773794923372467136066080910528331278360854750981961575232522801855839107141407445357013769512256181003976520036988260653843292114580106447391306958049418146426216213247597457596069854180170316354786289150748777934599088226920857973407446772010177990950246358354214307022653745309990037257566916793652599654388118819250618194726932292856595751472497755205093804708388316967595491212219523936355897702213475076972694946688591104505723146443998118900012844528677101640457927693036814274692855985184630570751923698854388138959504660681218401000223379968627590249004049405947628075437723071592151713509821823739133190952872037115505563761160296698596368633720889717075824308677196499968973134404657065866011614249726595214080391165961932834256713492838532227591535822451347024232339062687789305839463975165390818736590730203464328671011326915637106636692306777817125520267673583490438975318363398494080997672924578714073975465329138031295559373199504855253210276457008745856552593714142329290499729077381413009326342486352218355733388399246313333002634021894194138771542248309719169509652013906059386538204081030461089350201194375538641262588601032397452501409791433749312980716878113739482441733648573933715489431124160676889265966668576403099751697887955750019962056470455797057883688055734015165193991488576488375727839944445271592498630463507273987371781257510419535867392124310582594659032690072696153711083747235445695585104690247336890511956986377800474960981169059971545390077424001164917865626178948442092123932058851715552944333247676875690122337021998790067764221517022935228554962407544685478921842249102343517391446670082222985805380623573423128871254648622727143771075049756853543233694523671512711700263296207153981954416860384051157068497916328684744470528870230222610609696132873498232559647428774903617487712917301235889526860134413279905871143243605702235089327456027638371154802107363685878937467720779522487290260658769563816880216977712131290409300882077328017143358665334188137996418649775474082504401218208861341196401058367736343326321002933058104867622668098406068934613413921654841182642483267103349998704141355867103080201759416640905788208999375750395810093295857605905297166387191556990644659683195466174607525140627794361096755474900997268891078116069807058841317798568061479914675841464174900129189775990822994629724756538425875711483950184752515261554620535151251935029489977835844480904344410103516868840371841867764455136376750583306023418348416883777562855044585757144517359724558441028121699480191609856882846454095841946167683240180999997321829286528334780441744376367240364239072740320382461432458634609157407476482992311691240850007590808480085552558912013829880956524258371280821464796600687882256593306328787998062666810187193865034931380616650583498383964036650032763430217513653211590648526718835132916567310767127610967979837334780032162021936991826323312256122589748245036278751608848361003466070261010374298896081338796338713767968011852059079658144446774076396571585612981580573693383471992697784689063520188862486926020206765116448813037087926822995502574033301204227788945072419151729325893981891714772604519200747360165561082939081666330684481696845208895064440959769523395802647244782310575501269151868982314307401561305008643778195064758501501188972233212009928290555767192414123777576902881139048418753973421467752809851751015927096251089253938461443739044282928949461133394905978957408169413043339856762254016345447591392989311925927805146865890144737916285465271556375943595722212823284477316726370131274532388749042059820955623197980190463025326390272459950942506823616400511472700908100709489755190448947697982712886703972502905034378819445296696402869080177866353675591393118684140977487232606504708684786382940947985111740110704227786438387237288203379580752957169751396970274722430052786400163673230692747723251243862418108665127550967705614931844369414329452600376191566780971314222162447429720731493677838141233798061024487859974974381592366130705373119167810896789733047834996974670715072122559824186332288631756487024588129380213666249026264571298312483917551919661191955308252421467893726572415917747558487343131403978433631909550455353074603615026299817202751899976204728205690643806862514712323654491518395877699207390793315082615708850561427461596237602363235844748155341023887195209705362380778334163835949183824211428242782131887773589095891181323505710958897214801835716011186917703840492160671864891585071114892068595399597500790235510162768549847627460109964214640693354795888325702529981344948929078064676389904405971883154197525298129277187863044884241786209029558018541402597033399652362620283802226125695877859117964337303183163993361047319352112159289837465283229691305349332268237741773185709786253636392878388847461130375748508161913763123305818513008041954599316387480810404692883978727500067588009400884991060733422063320046795613617547636218557265185240031291869422376163774186282875396616211825431193201145421421893823229436102485699014105901418942719195000808915573024931249350359239710745145012254516390752117744909938000485042915896932180421572048558063141841110140904709043202429719010910121985459236158358801119147201000558961054982168511739842677740741661283335466014870150653968931134408635572236887556397685998157000522550931674918373979312688282492158708298979384763495148628573629076909022647969334554264946203291432433813838173018171488879389192048471530115619748469611780875660425211533147314296042158444699757317424686510014742387583833572845138316209551523563659891154302630589394317207592696795984945850366598388279480613175260136248970499897206170449065613401281742978414402606968786332454105306670710079767895023028989687073852075991468000780355245748152832447281686211118685046868354455608799120611394418380222080896530320747223191103497409900700267720160660187821999524804036952889787000370755948824344059845383803202845616611552170772212769162202464658850684990567346694329043534033488756545258460180630567374820375198255932222395883891920077774457384929659776029242630731378723628216717528666983562067867144363572845339394447290464755685607760629281753957101448475735135384212623937167563816061244270094206763421284594474809107804347600813881229077861753598217446263049409121462599055200778831881277934021572041004508097776176910950057013694631583928832731734750244655829396245464010021370493825293032487498710844809844981604595021632861128632505455504343780793197071290727187585617501076643228268733763128878607038264833240388463136782563803633175271506736837042466022886243538665027893365510701368992055223329729717162734234409742543636396134885874736021644880715160955497710480342833925211120421534372466560632349373302244706437732247870716668567477104908966032079955410615792835127030118634238877269853454826365156830469810779356850259675184907975418162936014118300811822638281869591513383213421824808523725818853567392453253212375304196922381427641966642266526092635860404436882574519697252744490519664158277470168068424025586808624166119703493194412268309382578823982169633803914137276422258049794332431043670531552658421745043437494033427442195105765930847604751064589604248252982382914627838055426337513227387992925429888571565083941955258625269976556083937381844330036910877785539681959153879487276675369590324167145815454336338052737500343500166211903620573471132103375511429594657576406432448132805519926064712429051680551151324233882187262753839102313399576684742843357977443680359814027861302975492929319125187219142650771616911256547788194127456216314688923274734265582511601291700375765497721777505966672032344747735014178244604285532900123246559965907291958126153332173744606561978836074393815022823477933769591944729128736207341490361328846453969967028479392006190109704060925063465070038155495600621576791594445118989837954952894829930475714641486390078577742760799009766009136400903127451226958892145946638950122092671113192437096940659937656155753994864779002680397972396795522648082157845328376567209991380542113041199149069150033135154619637842395938358640193054194752962797946922343033203720791930072298904820382157175520619177995549889169680617858561145483376856345926360512949570030014661851719558459396067641084515202218335588108713652607990690862697633599690273527221786793470597943897419256233834945390564872581666323354436567715498851586530620824039811097457125895053893586193915135633206726262574398625196277086391914911208438120895879629894995476704741888963318692172537521102004317445991509055657546745364520752342690596162019885849535287572210829094605527942907995309606897382247490493741623189801286315298397936552696003356314592425451049986295183104537392370335637112134326379115245564250677070529557107742571635838495179300854983962000412575643613471349994896405335353733194488489549575557128783800540320430254820178469330726293967012199185886951740996633987539997111587057536467610474130091506581472351536764468669328798602249867845200967486770750735643147044033475125308770506674068982413916068404029929152397458349689343808501481988868056375878730778879824208764071021156510426563658757833123537119125749721571377680485557517258172257358263844083679655174427916194042439719047213483688114971286441064134670218950656121643155704720054331804669125150293559141530308144685352859281803173335124848840333742789317644514456866639304510874084393255400169295501535773203484489413597617359439473597153649567350897221284842231476431688877411943929489590016358461052142282155165445649726711168910834978065882902121143290596852429686347299659998391941220310505693741828720388942130283195820607918293009787567371628482423272199094981720975976698952497480739832117263532322885980403940337617945937299669567030614142885705467089449668610351793841277724866471067612777449418206000546913460921243866865714021721054605153995001372637671594871245893004036206193181511083723775900335683743933548776011241274359607768028682386869871437638235431050634353357823129504411600258773364795292695785381975553909417183587117119012425021704168335294229446798522329291758659402519456456918826060585960822211346739063086979980586818818292016489494541407254903336685997474776359790289542104828795565932735232239408672155255233848348299786698602309219702364987465856186460656988133897129689711812633758353580514295223080938680705587926772154070663117107164117160758499409136270190087118373642064811748982227822608842613190025504591629759219058642652282967465942865621092149577014276299064596769324581190530756961340173008713258088051315185088524509935111682999610225486062917966069502309549462541190484242379088178537738200661863983984583844391814799888205731604653217735153973870567419228686709145732059613046407763235324083697537235792427884685227910646373576705586325070287984137804420501409209712808587734045556916845605422897936748760002363591582807190101425455189380582540463330481753430060189579879212722775022135356006206286408026486633132473123850955004401042375450954906304126142550031303574740604856890832754254243718362999031051880213425470952396207003546917978818241416277926122052536554602336677262176548173809846813675355706909834997196135740931571112407318611815149605138531542513360647094725737752300843351941744868961154581399345346484011998646766778626002706699761805429137609157779738683322706435645889608331545123646536508678303899792755903031475781151783746658611037045869466689429462207549957088397651356139937267671862707644256556786749370348907224799440416479250558719454083602534333901786207067905671515745749173626603853119148134603102978646138609120053405393758487766677508185750531598448557320870946466397033443693976542826768185764477217705213971982076074610884164398618054189990968642129709029000393849669132469320093159965964037454527132831873383278324082295793576610751878894244893016396827088102444133910837377093564483285256616634907501274065271217901046697454922295861180539957385615374394222041907457856869370966817853739108496760699573453397885441786345207674745747925230961710471847891609175720391291857845470588108149783807239237175629030164317195616183766750240069908967313565642397860613544832224391639322028974395482099464847179210836686702047770457063947162342088748792602249596277892717759672742160892621746208624739456233693561020330727245891714284171166083405547957039076207921098950917312368487298301332305104092213406595114868893607116284257020715747653731691741801630317482510058452822277105805124514910279905488398007166694231464690947702911264685990121407413009110209657516698675615238541638138441758877099508920685861263398330387160584799576835080986152341111720231718445426262449069642905355712526855287156468264624825414889026394150028198449934804394570905920734674842702914041423419034842235861886488780623064693962662546975971653572290893867517962579440045872338235342499990657252187077760793918994723103370408989637256400985070347163645276462466069860935897828625953065055903048973730128815536725630857329788350683152650481921714949408777335666669773989782509257515411874508782409260776964870372448669164673939364108351557195545277730386815295178579435511242504197984212315490161016032614232872168584200329716083299038370472831733442349541447244626547098972358689295162726081654901103332458284044208752223023079758761786544154344588234605666482288252784408090035608947427353036285321009768185443870997811701518059728005538291430433332319374019068383121445593725163879125018106777451390087264604683449789641867323292001267260467779974024024630041215582255775958738718040380471940023520296334839925228051396036538041713834030038405350216908694181885586630126627419489495856974355848939408309438988793749931096417411530791248010435673316730899688387291910775408017940273652573305666959421854696713723247866835875554108426443889601830333446043078772059853020299176183571143485051245776941213054754611529206120396676171926635340921014800292199775813151311667485748733571432151207205458578438351417384427931089075055189611569218450186060531282044432713100059612299380716401525125315549773421956159221288832468414183219237706687780573342990985543134912306476226694794225848443497421914437746462699658269531538433299344084387016879633933771703871727427967451150182494191474916902923315606440152430130729719614655942842846299638056753931501431988178739541687717711846025482984025010129523733428361318058909283463602025890502567305600368934570631592983181742338200810127329574576039597603440055871280452367407077039314072552629067969470513707354586500026386048909882329887327683957263823442815191114384208106609132067661893700833937608681108501010258547498144125867324932390618988683429981242258132130257280199096770886849945889598355972944486072135354058159648441805411689517392088549938027506825022769113798175121815801809037114499868395738363156136881574350046752448253019735217868047923893065442903257496310580897062413720238557311296615964833713197664126379604837297965805502910836222413310966589817293455652277778516788912133692957003439257922078450157460956131631615098161959750483247713736633495731795736433452545869695477319063691472309029900450151475271623271766695341074222553100620058169438628506857442194855465554883378509724591112964576054226404708553150404499561019356131759993177883050624479176119565040835117702810453622918968971295877797517903515734085332623291668090614098436291990191508866135160913965309528866914242076274680717953761251034394271272768271114703015505357704752669589750966594762025662117704035712684004109305186412118618906457348350170718748712091286997775429691721187543201311277027633310622462865961997973331239267456164495293243638333375969704487667050708157422404911770825708364579410324690117521575221211023989026426543642326010568298959606903539539102784287807668888923945971451377127353154206332372319564370221374273217634094426222444263322612582282281540577226699861314862077452654721687749883239424745033133673024626418484254746599392719821482090567059557150751069699820690954951578405503983629044479091462637515980330155355941932363013148557316731086825609531682547832204630296624862436417054707959200164209518978485212618608414625775625729715260391790812803627445941967447668527557750096743449216952617802565347043467911824380365110118423938502667180058281660566167892229325601401132694031050332761420256783053444377762194190147513295722333394834752226699613230008054743326721815099579312173275201551066877026961146433050374553440161240334004102724391555604670562454170803290619638871007893824793153600849956332408591653376361706465685865393606304773635657265825567791355917744396623961237680051457973963234688570674506167275748552848246910360547727825226727585758507014691378089878268713046515855587349563705453452689540221558898480721501140350168193407523570932382784801270358185343112629791501045095362286933984492649867624413721048767706343079378052476758615318258522263107572582471642346643236252875139806983200442904297666270531815405469036374708752841340336390091318189228388596318781028042234831821956803045798748703401392050597077792323352178094087779857102472608519185250909144438611460062149633689383707232977513428539338030927804727973748282124921477051756674176244823812570629844473753699367828879116476007394460514233524881985122058329103904524025890269679780197389209222832857773250161373687393082427721057311945214019573299114629065347883395271883858254195999730910965040927699373168045775163408277246610111691222405620299373068706358743718013832533783845372517608914680538987079180720783490586598960427151116041903299688151809081430037391986066957910645896347620210395650291106455571228011111899256605748864760856943383750044353448124529535333355938967534759134666479956082309644454137293085063225580433510562769888825272655523189833412841444168940782141381039395509358950247313626653305592866851834341477875578778883032527909928291041006349900706595774895002676494184151539873226875404571993892591570784855430391009237447872088252738056158587602479620725536464250294618911558231120469682739692071202354591895660732984811995056358608696926933277909928978365175746475147543984887866773593136808289275808085782477249399456961348189247584745070273885315671987988259361037100965971552908418199434963082748447062830126329139502153011203007180342572317626855136165296825343839721290283077981876404860331027504467539724885658989136178329883925688597484706615396196681237464788093939341923156710539001407041447008892375472853069186598537463992700552101394765463411589609406924000725804585140752242537582883944959075891194112603302459698902765372611297854805300068991549958585094176226348954659410308145666944818810224759206731723174330341205163102816822140396083618552771541588658675793002830177587547254001292309869430997921707217822776145482048126856396905941476901520433737401502938180161994851445287411620147170349845227472844122984661164896712814840006919220039549159852446738115793079836376391571807074695808589462368639588894366625254596149324017089606712608695567208980563995640646065425590725724742542072166621188110662057635113001293124091740914452016653175339908364984508778159463860476005191688332708416395876001337305904579489210434500406900253569726696190527202936721846322357849963336060693195877716891816926730476849203094893782316979201813268703795686270964154973414870386147057245023818291647963781878113518814027561377364982754890665740472772261625620450004402265392108266345253984971178378923395441837029004997686515597142291139344291004731660331654620381145744154426618795302366296235266183384857213068741089507238271169689185218886320887277539619034039615643373759155220906905774111326836176211399009649653178773293542012807406022143065152928456834774037128246335746449801880082284254820801824582500619117058091040145161000107975113485005526772151225575403307132421851931924371469831425758495475812175848461514204262013651911788294059548103360868962657652763159025510726842364771440994865803626490020065654145108866296931360696828997348272756057543887035714707186044663921112706833523971396035828531054924655944079381662292113971623169716740572932950525695100761294504199575282374303884513798666676107495070913153941297104878454615973946529083737676816774859275362269633237000356169471694406285145606182252993121894291070049256618612288899352798446101849271768201360377516830367110372763866907857601540333878230596205503858116858275966257723837229770130671685584012891705095688512964800947277387612915217150936595612537070217873503754007915500181467470520331149424024389010928932775717399364300305948486372306493501473814920959800278852332729723617345412218674749277727857980309080163190189482442762803820024272536345938707947247693948517590184142361021825869676296132318996058718801477201293554325325439047256509389719345067698933232690075470174752356955764995756973508007674331137721410640420245711054919843629262611541722026748942352934141350856583189214345023172341064336278583192190817080666384383428291519096301320459241364392109406992796608931914139928065980907560049425940719026095579584351643360357993550760309097324521262619891971692022805597800080023971025680247862954022433218022064961819170695676779168410268259429128966111604190701190010495098747350710596466865258708419773165134867240637658592243792570379961492483107820167344537517850344059924417489994205365963603913029331676104778819488617050917287556002061308104506209830365064600299307657650969965767738046100939176062509681385296604053602267889801994737306801550571397163289737392047045002841940449698608139976866670681617143729175768624959000980391372604435425762147844757403493702059262866340388295525831711098613066361200763078911561775563313572991930790544997350255132840847931815821122357373974997606901193143825193335032993893330651929567019473137010281754199817378230720743820313191273427602944056449717637236897224334447226565946388895151342485625735296116338617610106224223392926686090557816141432836930508288880829970823242834675168013986460394069018024739787815437268138633225316646243861274602453966968224817993829048212339393165770100340826914282690185394841060938113595114011039147227491564800780801308412491557813601741683886222085527846389318949319046527345391386186740685346740503335519479396147444645490639654506885611394405564947885661208645207167523755403818636049729725227308805942578155923838221353582413118348099497468419179716408493192495020086679903544719065244941624207065542418013806848537803715715212641340829129513785641828679134064229261450654677894408563826158043418473908126128540327308050603108675807540792614631758222944697701946160639800820482680124179381469937970106752730445808233271976194480431174693417436875415697451439848473012423347936643440611579396603372225829899319153820535043602890288071901849828902611562330108790435572085826518769303853478349461732795985343582522995164559995429404334627635934069817213984451166607120584335987939597338799973580057161503581255227555761281861218997051567722030952860502671300615181939092304995480310544727630232936191330529796969309787757734073747102373128803631556566496913845133564997235155518172363480651818765193164885951124113354740141766324401702672714901746353801809440296915227445855644556968011540539357604876176330244501480069492034589271443671907159344892406772245132384893305626763510118124729222981783892291176725292589740631955745843194742430063501420606877411895850124523834914839645424233936947655760228720145286906572151547897808529410414905727542366881114525437793280430403849502009076270817227492880985282017213802400430064602074512317206152367865556669768393411354642489134800155448138823177481279433479438963874750282912984625396210411190033472787490225670052851347789986380752112897475028220401212342420770734474562000540930010054426334233334508868454198981283802639565720518471909392822970210740779240205115821443870460183450793777281205212020456819592310196632308350973733182476721150724926832151465510439020705182351598958722896526974032849840418660626243830753105302852945286853724330480852330023880860800722153359151275704146127078487253001093647311402772168165072693335335094276285460780362909611053131571092524794612397667492202127610699951482079564241647924799891552685726331230587679912630250660694527038788815704085586084213513711033959827233316482227524375860498821450015664806407327512084886857014197930279675340835366734630184785213597598843114819053927686352490588763279640884832203012863365476412758412973290776934758304647765447793834696828519568284397925275049399434097587267012389991801973140912421950344583337819066462835173829733603291766688267578776041271629607369109690906360121625711868313365110888708132640287931387368956172069249566288587336005831641831720713244914906106453821700122092674330917246805563167122430919718314910407887491560863728723158521609017761929335780098564355487377744337879794540853543899585999879135373994122465209844392686472937382115422595183174800522682930507719116404409354871572441314450201368736810179610781384173704415406134371528450598489724232216584777016247418624448132339060117084315343085488741716334709694208394462028263230953923485380008747881775394195575178559327984055863431778977379919635673455768212944183674220818274998478097470492981821224905874888423050362632935007259558804993576574593661473938683658183459044307790372687106150927049003273356091019121477667299912091144361168672738298349660331585166341948050119599133708842955601612503771054078921336002633222515999440399207242815684060958436371303806779279153391699620759959567605066085922031355696040406255215329011950997171846663982743213636993038268578054128326329354666851658535997584008899560229936131195125276828461849491390182783370820675804413552097730241087775727395516170384909948996104153436001684233819491720312534915205706715704713317939003891128670022760252641955916840884586299409496234550934733702444152862002451971236583874674988607690455447571699836546347039075514047964848883276338559262395995907201943994145235517414512160384068164088586048970047750639799188523857665841079284096530515759428908346601733563598045700193289770708526166623848340358523588671911408249557802441729827372961250589928443761496490452650206019958489449025881755234711919234054797581544467824101518355776637535478281744599480246713168214021960329933338880716164798680894697908197280787868478104106859129304466434734185962449795640650416112362858700237786931983020653291541110681429748407230338101236240933902866506374281749853466777814924654948551296431690275058709199105333496140993709686663971764860598856858368738970735758470220892058329692661856202502108601547612807684015893302526064372694971635495911840129948446257303163254621818712274472391730458262983446539596277898513191599189830566355731237527167881960684369213751549404982285564469935453912085041375892552074930079460001962960897085525320209553028771865187455608424106288970718570078588878956390199465700238318422114976400353167020699893088212028034279737592715187546852287179049393978657589307847653018881541731671581924022609486919939462942566326614516542879354672208456226667891903044069201665712025839168635896200529641829613037625947822123870818480279746644103992220280613758189131250912883844943627707808758278425036621177319493359869361940488250205988722830758723694678327728205015697494671104204090112360006762983188646503730762162624346538702299793833855462775343213759042139809281469034880293640822093545366755000229818275475803147470083672015343778148292811268310038410333955186230212042139014490430771371905288535013476600346767171251956035747656899181163891974031933248685566637556099074256320618555743085748807753867574265772237895824856658797865420496068597394668503648153105794736463937067537413066511044043774189191862706125903633863078234815100909657946503396843398679015917289243751167957795900892971602073800769515792580071273966525559945431275065890908281080202840839717359513370162695308317849199147280359560346023060913905776686733557987296943881521405709295561031477861671621918672261297283995170381836821462169861435846597410276413401999938843672748633957826796796282716258179551416184064937977069747577965020804326642864034739345397010733916061911001211270920132602675885230544882582230719026538485450724898662436343838106221339581995038610016328222789398015215393908803125598715616981878315706490929694929188537737041790399298244965067981597311287137755148695037173342569178639653088897790804724567075305840616963588759827892157282188906912196605685197025620244815107447712152851498817329855313389527535526375497191191885508017472742137052585826281438951361537700085633002847150707752514176391086155513802035339613536654529022751353694515935689622991766295466565982829325964667662766976282539672612346035714854096446712345267079327106849891939389195579236651737215617431019234877454660630617240253407374654701723864452123818890040149954525121759808778223652941827451413949558925282864085179906832403802822903711406494815409063664977725514710634711404406317299597922354037714499542787752345430649727609467390740918791129687112862875861024321345342737853499540061712734413900227346221156418840828594085390822440360441596105501244819492355134708870891676015121894076405055209574524416177437205341493970539407146736204709846808795496767442934961228069785695601951800238699793276122022778513022256585232630598556342223940316173295869079181777971269018921576075882986715902446375488604883863230192555778472252377868979716195218052088468020440920101732352969280058765310461217759525608253237838245194865865507759019435518032363369866862077667377780851841363028859946105864298493209860727307140833270920902213382366830056305874745041112492186778160287256689199942873916023024827076838089810238100108023199061480671296854745757610819148568309297623699388135400469281222164622290389638656323057554877431161226544341644165540566911130321796269386215796420500528439368585033346317459216661336619643223824806932763284772601592347676567629465182903901033208941695065062132847026260312373056091296499106050212660786121508033901473738013473208872716350959327656296851576708570961197334070810586961771488269704869762205130201654587134144568032959967246182782717126551780991085847250479514931050518694390774353050846143115150637325026212595082895501392120496679775747729871714605143248958005270678670715437929737004847615448670009217551416089296465463002116840324932108596571163539806682217603741528869973338029982024300625473916877099897613239041193010144335777567167188856976241570793168547185139713679658277019770943560324510192710301164448734948214929545871867293183583890059503552363298761822788995586595391213369640109951164581623982308167064450388796529173487321700245940312391966508349660982111767046963060173514239524150310854501488576311195159497935488725366067658082598093271974172282504616775088805592634294776515689336582301761135252864430263016889663498145429119054785233007773833847850302245167865392741103220722459381989321610918800062781494010564268266415680818991004836097975886066225263193540097872233759062985860590419491185126107049633127208881419939701365746810957812954609288901875118414208883698330852324704966104871050642430078519695502047578696957764558712750488642900180527479592895686546381504143418251097485256750490615444343475973257610662851817839542327477876338178615216762579612925881975372129012063880855927554878607936609507418815410248346454513739473884036923107558533417594476818093918253157281395515879452925600689695738950776594511023157694100706417823058420524896924719452265110689788213341496307896745649880223927707675085383244649763179016414712870098846537156240318783254918101223932377727511751327982179120471668368649906807468435475958790753011788826513114292829572023166908971236746287959773508756815145051795797087914913514134757085196485901396257761982373779952962722768935747166117111689228900777827681520951786030703780416858670783147664056330001069197356545847510371920240716376903722465295829049515009774487576769623104041073672076303513042111518867446482835673692378614860077164665275275355239511545979932397893210439642332628570155338281926208368112697773612265935987498468846317681576902433502362517977170949826707650141135616550679826022973819629139814389560128309280870098439091368567820525632596339297452778693975092180631064562368514258703220185956374058718893774025093590790518123999108120616679697131119472424772167797643350579238135231127015995295679797982812282776007089342689159819040562112139600970649176051678794160093320802895964567933166132403442371361917099845071408589237334426123642796218149343906497723022683327655861626646768059248386368424329032457668133006856275521955696589702115854359297071425361974470343269859646962945011719246392318897533048492097810799643409985697540605481729653838426040919455658493432224345966761805091927684419651507651819882504701559406898669067176778783443340670918181127005289969516665147840838511999404577470269400323855439174506321663456810808174645452596059061189206237829082386259731416302298113331518934092644461548360958994698186256439282401819462873428027952476699621235144629929976000781726665478488137343427678319127559937346953689846986496444151608120513564787790841149291860379539962107366478509606615870658295089409350839149313257343924370348440924299277166836924472326620195545902427824729364695967318739811101380644661808362905144205604319028746176859653572359785399237025753193898979456181311800272785841763540754591557561339457509163322832303190862810854196544195919308037677970278126465324605820737173780799390852696208346700756685855026303377613164288707193063668117150910225024160212919905646251680928587477699060859278815195664890850776163381341287370866166459914768874507586239978414462223144853189959028126629865815220361816428876559513429592577988643188846735196029911232398387277129510955704007180931627282380812521065495342848072966936735909986930125195172550824747610112897357922038793419579553613827794857015157506098512002288955443439965896294406931025528099008322391277995858353426114722515907177820237880363675258715017168127675276461183349958492505486391071410284811589508809228039788532554672121610393455842615072354640354729403441302338935140912375573424747053239636537848860664341284880038585699467655793241097017474576103552951812446921819030974446499134400474046846608947605998272079668527584806084123907104545176294879280697919377252893973855326098144582194859557325891717866189362000092283320617060058598300586271233308092041655465397365426550035524985590579813449693789949689339473977455289134837009035034100749674315297838554162162727538963192196431474804520946342089508000576634543074417925708319963925082000529968417172997085284984623813486637187272345511425696016532835881829637201242528010023852134735024373095261348126576115958136031194230573907400229179352184110410321673004362464531341492883949163531133680489287680519874551237658842954281631010698934098191817609863500221399377741507686785366866206553535634642349593301401507282516643875289183854960224664984194418104798886492485313287112834230213721187386205947021359105360542279384026704194775208102806488742911132463117272360259435531730802240132178347639101990737865290679402745671568758808754081577714357953063206786992091235830230060166554830941309113596714429175799880874659380776672053911231457160662872085570668878714700304344883293783884804941974168452667384324434533526515760946704472673881026709190980628144805614350940206980238487579437668452525399540611857172963658135405470829797929330355707845945257038829687515755729925989453408863701376556007159582464735667937640009753118660784292144974361710961268852875193456342554726429767649028276155251470657222615370520685340197541105932065793975121916397022738598971239328348536261709075710605798792604595670134931201806248546050746631343998934305388874749775306719862642299063953824591413085837536934837492230040121945707146397095881785219884687806869530015433024771796181607283084169864958290247811865987132854574442637983104787443420693746125825959149741000776574981342171079827342625714403930134506461935078094116761335123916628202219593143770999546416066673211562274188787812294440651823776685695956061261362047479868566377683503121303909142722964457623614118666290205186052921785913867067740387501031154406916536218123577952743785678530706655099579427933979550002627969968146651977846835229894910753978862147538859621668608619297574420271577948109532703412850952583546115944403216693829831991213830873917184076893338226582054619999053739730163540631202324069258190049616348144717661812451300171074419232356226311451040653535921645350023287888433174176772543343529127826621768224259434059387289023543722787954427364300318558718850526451540992094923367971651231635827163425784031163713373956820927414796825407452468688495638246008133148518795862222631979255650285617825646911657930502746845574119196562494548461771372634242954591565551581649149106594965610945036854627477203296302280946706775364878652610150630774846388014840956020540342970367527744771446048384855456941501589087961759389211014438790208583013794046261445002866034462121695990437957018271638376006450530004881929520798059441332060776687159418285482806983476516067973607131869539368857231849472695340274190883385570835648636571586809721766427802628951359200928728302891725524665776594112120982902435534126493954648511605520204182803123416390672397241879320720175520016699243239957939311939953930369488123275219863923642952975034720372009984965694851843784526598218614709557647818111590589480935834784290154271174802541289302847331990824764919470309780205614145415877958124502093421408905568663642474768063474847933300027622743738975474909895752362825338574260150696715668290406267358992006501000664482338033869728706959599443857997689190091042995151857063740536369725612862195831199565799665566899981281312113877197818283243200275572249083771438620195849261352452755249508750121616738008863547561743175590233658063524950078236801340514272185359116430539887508608854085246589421896251509277218649985435693218659452204426743562500539107856787139940602195088574560377337150896701370701039995047259147479517706355337351699146144002473228861703942709015103804670179636711136208847302562919883481463705511317972415598577208941302051322235743590193542863790551090978727404952243995119059489540522479494422962087295258898049182203638939002303219295546398055332699979923087909969626430206301425971428206087840091474286357713829207736451900137751981096548896549888103504067416820303701701774333669256379137473611713383380984888062884166608527142875012976795182133612918632561697688696440240625408599521638577620813879280697156466324811002207155947197957435677976762035104570958260316857095640417371044325199009246965148555679653988321270889134291442408094776575957950888616711308664476051962359212033749544830863437188704814453788889754285776179652609651907557358622824923976473631487138478815155614112345555223398704604216037185424004841946403558747759389028502506490564902390773586667053316353018106474977851905919601194371385137686115408792472683465609194914344832677877942102578304039904405696207298939203497395174883976319160162168304027874852100563712705377896545195799215839076460508407887828910300221632750204016316948205008155580360419066798594687098165847794244057150214726848131077297301643980050463834227835314963141857792321806173300000261631846118235243621768679943220328731323222525612169567319686572310860396583176780160211207628019016269314946170003551534491263147246601034835998582458921552471765672467807302651432125542492902003007063485059994075577764326540967187472099613614922109442212355700713735763889643422933658646075596989682085825547502834443220782901537387246504432365501540115259508100236803602331677478320883636905099370021247593158179000511472096170981052729620879220991897957478312049203728700870134381675379551843187346693491615719347759950824944726900095558486967444432504182603289088474983988881727263979737549030049809790009771906650206594039195408289158347020274293232838290066305668576698965720115639476316075150220565356474267086245050026391629734077875038659423274550039262515853088741503166169787852452958413570875277183068566099491695008251265650323702368119129501358095710777746214090197396850503627396257042953595823066694095848099554619324769992866878478252060807644655686213753760800909568212798036187898276973155379576390754652168748702660570026794136246320966104231662889101204167655964635573085797298253057019343332010059108532998945018737366309155142246472962275919514911446639045512481063179642402764935182544702641842790529183915110220674908807269408426828606302198807457796738160995529677350614037570357291659420346863628106800209342464780883707219196665144634183512616902566529251933962658583948972496165924632825245604988722778230171908661505075818952645252313466703640700042944640670703114188504444831427290324264626187990003343373438177321692181458576532569504326248970283424915196680493655888549561219159072381809312254204771305051063417838555326240384627319425295658202237650357440175177386234330647006329311821688345230563243115264540924831069748922404898644478032888594906126441653885223709632392577514990054703949977556423984675401141694787512346986371679608201832971551901845445842142646758993442921731074834517597039191321765770971151816376264901877569086066828206253622714519293547823628669447847390637539929023345013254402276947393232368166765181967083717945454467913021672948653603646429345000508084711336078909989460435677356279601940978129102112667488853031033780424490455706723589814950987858790150612317295690258917954633267480566066360925667809001567646692192835757849625315914332407743474247624112167861681519178458698618328562392539088304968774349634940465384431149984268291830156657090919274015844453969254034303043278228311950563848621918364811094178884886125902147506685467915865624533206930413351170788694051184998630345730341643564204540169396547518825527902590515200845813632409996187071443293130652855019194697822252062648778283160753323656496580123271574018122457106561373479908137759107747675834810707772191481411060928871607405747086312449271745854350232072250429389530470999512620109763528241547937902925257679404240716519909329804120583391869362089582391941354753039052415849676588757008622843705279648441540541082149972573938425049174089156889470060473341747969141957792588336016565107026158974625370589603665769589473673977089813799289852056913083370114518120120279105307427452277814717222158969585994363896828484050042553550986726121939740361486027716047811689744777657802793941993599936027379365313692440554011436480270619636893238522395102842168081889560167312748711148241163149769250683754412151998468314977759489232264008735311124025150183956452839354458619906328346129284116751097076018233648667609635616039646175028268225589303749777864541787819815805090357633377880599213598445438905286450742486768605290968055961798515194845488080093039559459289259217982712682203787768948672685853776460785540844815601610734694500972654852608141631255658127833824223796204391830280941276230601384322414638698775063223257481139405731360334777297845633442355405741789690709965884605117400612792106372147883618588408903793392080118495481066445058173263768621613497075218165843709640299114606419670480346390422205267326631431967420360684391426452739847854972389112855006022627489832081401225710033126635406355968093753673235271255553097971252574845515588203742705749872210846324955969360739223881224242168977879761887252219691970979105563083178947381900422141456364316463559970115632358271830277430860698092842614442650229695474381318564280016067231338640547820609497487445707457504926467584626938643720386790013394379780132115461095876061153587763155046746333742874144653490765848890441039155714628854199357434022818095389900960101648822247910105952524712250318686522937079801936615781540395589598715721714404908404028345531846133479456162247865513046175897590747781202941696517400107311968221133129314919470755957065616793352733488082704979043859960068612512029444400065825884865916266438016040707430036815173314587302729992362454479159936901153213885218560012072462522121434310684680083325381367849876662212378910604013015781489428101474078978785328022252247653188906342878801760371090934983107401064918985697212004063856543459407124975138647012119340075960239159135992276831692217462729379871153552769983062921964794086274782587791021594454213335533979378904642103036460062620544518880808153029906576691401627754775425142235468736800601844535856506516919664403894455534492468790298963002277195322121474609256503850692510905356182398085898544258596940459737252881881869805902119756117263666189326741655537360856505170934708686909520877195399615072735588269675777873521172655614089346871897712416285726390012544901806676569442637582872378659220254056039464469735798205719481113206374171985232476377938973324734461319665818851880681465466280830812152683929813815371531118032856491386313269557489220862597162272015113562512240355965200950840455873879311658154848789724165074609509224130798421945536035423818711587333060260272330903155581619972584446610967346714726698695016099596127232791414101611499158569627806831894222528152676503183548803023314100201246519227477187050175152290574166742836253883361266329656098468477319650807751526080047694502164038925233971308027279290731145977806197568697702061327454010714896633768220972958198028711901924242220271208812385687798199004723016178595991414499376729321384609216606966094440849025934385152946400854656839763830879003033478820440056202394556806942213693939387365537993201834403535020288281722230117772413589371528032176475906264603752104332662920750397227713703128270019175216917031778618707675595792088177875708356697270528913995822165033243837781935975789029119023168924607020721734892845030293139648818573364951601064344188176173088788634830750146290711385351402601929741309519097737135838902772299928662160279156467202861629878415064702756534107547396998821617442669883592156893366829437158191422804519259261076983821101274863773411541433607860198978658435602943889091207933103409850521516033938320280068316817632881818132122030994935391748137148535347529093833722977109044179759228603294385670142806519627909682598630862032823344258340061369566132750489507663947936108739792279628632954247942172815189510967828047840907038693860630658062319947826621128433461018504933519596831258915137846316161577953109338008784634625215797648373516950697582257109278676137629333524110241547587534883130883951209237730286194534715691174614099406106695044080678932423348336990158605885575624694333346682881801469204901950976414791771007766426108857034371490485007788700410707692787519803093988568022557034749286746848026779457635848037346497532555484480774648244492479658070337550888549152897748757735540948989482310949286522799523216023270199659074733861869340956957881838605954044669106131682800304762160056007949554417494278810301107727423812018560904830584850911192195049144274562591462239634197833914841602791645737378667163052506369997173869604908195437179745989987037888207427230971701670108766552933806562227910099947526348021316152727402726353143224076559330391103746633906544348566168774998146418623157282332848123128262878997645092119722519863182915468561641875585645590247710010710490266889691917918545362113159533900907941003851066781618795849332388957490438779019709048930183863942667795229724412109598054318152009346251526063273184807217245654918316111265381057803943774701811951188750085417042141467362842890453114593916296501964533721230952659037770638768534668873107961566462605096764173331838106851147112312764972683802301033844704412503631694553130765005298396389111146213266402393474294114336273405354731423183524925370208489287107566664717656218821765702104989107983613728884765284143313417071791468695552076886823061338826320949377027874922236760426119273401699726198625232064711051234098694225734435633772519242470268426237680771881403829557794488758430498378965115536810803445177609268688709493315290653199046075844795386103675545182601601323878029046029844612216822157864397991897701516111494725841934299127580081048822113195292388432956941331629800476094251922450724452796905658949052337038803778470974762816188940818561413644645089246747980446321239769708429068193672485158071414435039787687780627418756389220386859089863099399067315547459238239258435996403512088936375191511131801719601081380057919277395215417822987837693294083894287363245598587273757181742792194467860438411962403858874576318237061049590846820799752694362683711033766836656430711258462729633921629396280649354639702962895458490679749628286440937185836911622682157650333757503258653515989211321089432140786604206136014267350742063917350969568608376677722998701304935152266372316217528213452106874691284595312530270723821892107648357422325965100553391339467486828290696981946327745990312341273939431725993251877365911272505195040054391301723018987944085303936253750657505107939066816892236933194008617040534651965046668360838630051888303166048217140227144714123078712906471243143195919363859937195006579082961030676590675920588265515051674619021163024712732393011341054063367133645380520699927330434159720134882794774603434550611488733735332162440938240760055618833130717129596401583204904148151377715192565031691596962794259114072526361426302455427320568776945509062617290169994154681622110659669901085171037544153709755090306732437209644322962510774135939179771196224691960301366338938222222235883070759120443622334582596263209128601910339010512483102331509475281753755920320093779554800428927304350371322603780060406717715124700627100219476348530460665580272628191471588379141461529633395626222038507099398816136122709948221484028189811094979498321510462403082374200272000328775275843069793928943113465380975756024442861333415322223802454979788910113555487638524562123967414146583945447485218071120378794974096520324486515026395680833845820073887212623568697011869685358712575848693521354432017957953073330868420777766124481985500935968993336287185920794407045792590292066763206366216115331183434825691230521605069845954594023535612195123363037124268150952891681874173882659890409914260073857734825500465226759898587805480319488421020799474252960483674655229859723880544249316183238069643646085305082742259120920906020668781063380249540511369143502861673754706211440417741341881318670113625978184772615522606961477850747737962303340203300426081953049258464315021073257727853497617908527685142408374336167029700268221636151988468646037917599592465167739514320629550439837873506405020849839544326379064267666860372165983142474958384624301007605478943402485456159305697899537464620559015266024325154613224067319969692786632377207418849336938415396443983110365591034737871475910657564713743343413163405221183449052372155086089558202375760244327719055909973782437944887983383885801988330576532477991347958592259395218965081080241011661274450171663379639294401839715929714242696493906465417387705774591038670308734317095512030456025528690822310014008593217964512877462633514399853893128412136269079339881712022511725185058534083893653741607415491652382633810312868243231683784596178812892829653842873367598907016239818250538163021922373243967250263408227216777289858897738272632409654413002354421366052328948137009470427419451965790881639836861923111598012259016346362254510440113957053402582061772533195904138899602938955023623344052216352902316148235083520895600052508665985481143205165864530395419008566832222761782325960346144265407269179193408586248076782580277446960322738225160238356042287077492534347833675836587825237318253288435825239079550051966462597414442647161609523929699794325887770425790808693881819197870198471990971935629787008979407799110109656924476503588352237303052826015372117255128713534003085285729440896169609759021115472731281149629584693322589532267490572910686533562557524173991613625343843679483427358178363744803181803448727621077759841699233083576426474194163993208937839579127544612200687208411205538325075250159113174843061438411645521748107549994899778176620050498720235687914304291951507783188377576646673980849901348763864735421561670374635512394621489272114496327601542437760069081364958574298850876685263492011608636979289584082415229520514903688030646195876408799802998309900360948699181890706250139966989372865109473198967317760446243585270310371445392154360844878107361207897298120531322660668997332742967384506965570987177434422957797468504835790865653887000790080621828901091987154633561427750175849467304441259333774001205395029240218048282025506266974882365735463912658468168875559636646196456184117043985193515737724287167225565957706337069067973738769018364553329704822878686253513234416472435617075729127524095839548034933738618800026491940803706884898462651875023245921081637565657056044333849496850431268321721145385645296638991946064245395617058600063585126028192665375371605398333047868600454924762349542476095833050986630154125369098460269209734873318889266312578529499610807301023520044778083496219321017965005534908543049874704043898120224536602908119956545852541568980341721940617366202868445123589530457123341720979547339336372136016884816924101526695896942269581341831470697334539197493013219657090639917556564989824680986357945270067153042680130960981228143199110289108209188323576046069680887080269584453758754307548693621071961381979709573770976341164647677210519903323638705588564588685508216746887837632677560362617865727175562122389072447885310389195470346650170410328649722699289937921206634907653356650247237125420176366142642490590821850646087654837151696106543885875866311533455423282902284293507684079612402953237439074620280529297698170535197037425033249918302114672386256885302562035860612218253759809880300117221105828724471587617484135745660606547678074308346416914482232992616341392870446542786922617187886636707592195474877122513549358702889680251315905736302353306399798452853576971718191005254648962111175148013495356139304681847534267014098582978739055873627088252248804415060911569275093338233778931336352177372311178665565516585136117235931306760859075766601866418094786263471046789740031767818913074833904603201123120507980981707678522142153467394832630725499782589166470017994269016954597114096437784194260000955508416402459849341926235828327882598992712700100105034588729592490777512848140252260497552900062222906795072451626103090772755171958762534031477905489465428205170968358681923467271028241429552493076644211462024706308567671004166993661217396900684966133973384580052430300763533725069752380436087816797204540786954187078271921095575956530060986137550195114985309968223085196941159518205429833409336089698196372407410867147448754417333592447748081082934416072874206418562573669476039911951509892982339843350432481947771552794359335900718922240597205675717837179472417700389922164605981321614880052616039062358388685142006351708347753928173026429746455337732337637928131824290513363824882664077812252690234538513333170953155544656229752190969311201420508106688114716977849415954926322817366161049294795239133700724337130407896689917968213635292330600993399823079031090059072637626007906636313303024095394844967660764817246446593577035314161203995513380801000174812260094556937224961695620174287702317537744243192009243234470151264301306635766804165591389715583245370697619225033196143537149387421255593848364361146635400363473322419611970253244234784297120358593779436461956643245494366509229520774362942475119711805184370836759659401489657119146894828913850427763028151849590715261460689935254399843304401303782683851112810447884304539241937695194281503434474111353277457959069697105325821708657514876831062061658046221913802890634087017827134082301780853162251247395728517589785287832132491595985736492777945546252298905267986638929109894339605383758066661117058830776849974303209976921991874479004160136413931156689769237003321442241759055280083522771164509635169877314243528823203648108287529586946032717506191997268363983059466227455409758629169176703522392585927275276941387357165906211996542825860757783820771877596747140171012091559312978478926227824183357626453038890389940238344152410229562071915495662818194759048124387173390643338107473712206474732745689742848272895700050765217115523719908532604768439102860035211977301976351733990087252472689864709218114332043234706549436739427955850669773927077285707702545800865187896190956324087480470961211470340382963484984616546791381862391850325389010419206750290297498998372003291305666034509413728679504808703964620885690104530083305517784044542488414235442828139625206125290982606042495384163160893787526509198968044344235207400256493898809063104844880385311909231625193819771680150646785910254169685338732497095267229705069470004082603641675241385304452922602025557086441391915676234262945146903118107016968190389460848197956902982811179914877876900805896700670201213556080656321759812861699415212417934074972717171324131394752313862509823530968560528465728514716982790940057858167572646812004625574117020066560886037364530872033561942118722688718962033387374034981661192889908002782888010549204274550020497845797529481206745671240340420187240077373263410198130817470145648952065578880067128932229245749869422548169947362437361989637768649511020298945853388380330293457083599992824792975969289993353534608985303541698700990130731668283251033610607302058128336738563529423612707718989368241697364092026156179180432057262904462873017215069669545486870826583403707146734676062806480495764338593708052177466977493953562480684663851677874300575398273021572367620726188362562618574425450824406590283304269824220665404970220846929864166825219635332063485750354271544898348211732016887254233204043871794314153694019233303078426253843412476489670401209758423609287403717391390784128836790161160768381454488090573716589589556635439231653529732484824730351522043920736392870942702728614799560975408445053925836309723580568348941203014242847290821998955899094831244779576801187244677742144705014453846450245072708238217023510297397466623139334662695744828001346516067030277561590467125491124309641781968969908768162271686274831713731418734256807838757337167479543093056302910526939897720679589094144896841020632094735033269403636618145370349066581253658537285882219927316030352963664424270013431703977706357023750222662723351106546221611663163883605419373992003647729729544387394187513328048543135399155973701188545893538548031237830127716654166506193887954285796853039974200121115822645065492071061097455216661837393991411092011310947016516114039108643374019579125621974529543883689461834973344133391144569876620698425250666893013967025596538318178629884444352130320661355878104606296052050587013976839155882601219553321673123405302734616942166294069302956171422497379704719507723756173163749874180177296465332034883542015383222007884663240196719235262947524424876852828073014854201522562236230570608045975942566436558555828927134203387678520148920433678387671748236942675845571757805203966080866997379022822212921282874771043117285716302498687041787082742092739086166131225899692761395268524119961927561406935269005339962312878845624618737143983388946143739963521653798292029680803861904238996807669597365391730908569279763204186270671279036076919376697088357356669440846671443645045321663023297377343752101547804798553561560717654043851647319667788457104258984502348042574361475306979806888755719805013332761482597609334781063826948451875533902636914131948186966756855843625817594392661374039700322561446868931456397008210778425895142450522650513371313527182040703673222224688501334675438492016950253099999636253409859362810565529566880873324614686840695016696651179813578056992250606037202642262988774386868334740665600688538524459920531632824223604903052793494154835184070103321956953570855258648902398683236913768549599064304163681736617278532902125188755405327092209633276315335522345007561918856477798848600913140036149622068611158202670568352977193742023967197201476559086044586966094053462922799248788316176549309836543273299075103892037287036472193836475184581595563573236502348341220919460756477725676191381532845271441432146467973917534264319249802978373130797995741187317286314902072706552911378997179457614983282165301500802150740396365772093411612091678264463091887860815958001546528720541786090246758708887915439865083967916693950581187186651426907889253272865268253968355625243339272867739157245900838703550710454261154429001577561619055494075775082948553440777890523867229080394430870973361492802617140930395740537077606863519598832791548439745474345183238031464528520249669346009114953229147342186740535115094413100998887995928510037500360279496879974156717661222302518791963976961190892710880188290949817356843174252908735950114640635457522304184601035135567421519420331053505459206372107129800113676932697162257053830348843225204002858646906984316895639305561078310769936258771308720118827767990650661709389081718131288476699295215762189615271496938742463166941471438101659314385195960380485173087037973509815205579271759610547102047656617159860218268436327798878197206487758184156346700978314436619917665639447303794418805850336922580857433531494732681617463216215565865947161990328717337047168673912868609715001616496505831651173810247527893204874013900463100704104444344349783573879966070737459974202384519847172789109748665474678732558198888214662696451407137465719439490976448083515557297668733623620534770363361281327988485744453020661680055328155900814494953351711015679386451760560361470838846305425045442803913978167062911744208488176320304249175559063532459344245375664295695694345274596055724524513506621362198489941096152323851777848057834710882043201515785456946139147003058752457069825093435969242074373152787967025632647008875877322131919430314118119061594610668357922565221235029137356162624665965634783595150267060197548895171832549752747891343752580168491045629175046035562923142612616992852869566938419279168854261435330135171047605557844760863223416933266579000713027268501739118584501110898822482559188516679113418595247394621836857308579769523775485320839202589532318486479757586153510528912580324695654289825596377533075194759365738762604097465408306666997179300091558536981588200608812714144119010735371892121497484764871684967487911669112242498572402062847686243012519576871244905920310788554962922561474987291408303138526322568946751469443513542305036714159836107072919018223758693798178913757716324364299169934297675146851785174603620786134468463209446036780580220577952377611271563891846971611325689164555663941620251920108662708671737137537266361757709874410848410557540970242689983965626169595282886065261686951735169785754626060491038394764563049368647664470054906446410021887905986230698890104601182273139693375392462561172247776588664351186877934735595303526598296373190819649869518778271980646037543832451157250761016218653158333084678966026247137003193162939437639414985326036682731709223509687464844523998814347622157328656095222495196332016125874553976558117027108622298034643522513687412804198915879932440089718782594997727962279784786248356933018853363184616033248256852688812646838244461873909263094130405959713884676962420188938818875443210542378935597947669872199020968773453239521501107111804174067026332942442401603169931393239786193030301166086098402941852655882467382995573585931545622392597248693983867690569013672970267390579800609153429396351946221995173371507951856515990365739879145751583467990083004432243132948162118686372945324873950944603230889001251933896857554884155773802579867829530091893551978350036709107313860036871667280230012069917608577889548375909314183641942907766116746838936215652809322632298131888990088363598711269986767158223632490787016684470108791406711699256907966802245239785396003517692958273360476032383284688726786098132102038970757977483658951063620259261496464290380295897997804642192153460491232086356590458226138209381434713289823449556536887290876316750606066869024255181502936132207270380725219657354750821491275962548298370056819047945443641017624462955809596816453446461643055801496525791732357260245119163096401810468415570631811891828368129286709342976025138742697112639486966949573804945849059034238825839126895439686256290604614760790742907721966606968559441967875117268572368235680750295531834476493023879918851470149148390670247793209951961186129921293408658459115352105428740160708570055730018591417674864538845945056212142500563185622371583482026341178520866911585486374638799887385824169708163496205928503971017960290438071698876929248536919265798144202261573737334529114420029999594174912703146398002733090674304265262795452124884143760935329690106449005855907640173813768848652185073928090681101526456903490499499751661430676213593985272176861484416933576194294536770472762724297896991066169995162926666350160223363053102538458889393308197991575457572810384998083125971546246146214134157439880520570742172417796370870040799443907310010669544988315446996865612685376723232197539008452811307550082801632281195109931902809053021008337073009285035362663927881072213562809257062767090491663348034076913902274517219179357824887399689571611052498645336359683422612701633527520389466220980664929765675069907350063848019387228590115607493864788214568161652161508840483627815280594434808920750051500299087441940371597312343536433477161821953312112420885291657036617811914578123856780732292547526401725390511208672722860946878266970019431205575259321294460579381454147288553241836043899207395966679162040579814308781025166124111657173684368089438323231556739771439934513214808793062255512889447583458558007849076251353260678473055426721508681124614638006242030088323666268900214762498441073460291665930452666242815237093244506605935219660093174580526179568396311157303196897674047239770762366684372995195516765923286025024714591686112102840477130554034292135460400660010270293162978293866937298817155045088111462562547555522271317326340330129715632952045401859656786411100247217371000539834408462082120246371781779227686313331102921232078589538986179029346418504637179348059452146242424234794151860025347737788771884670900060069769969627607419513195687008906826883167276525533987326167747002418439678464833226506463828004617807605062439139216112445413527849814915081339110952889018239451341771745693876631498401976729552760556626207416878551232635811171966733485853684322771669588939107373273337867076758296907537547230947116559888668494740641696758529855332914883748675751492136359872468716785945940280630964415775879020217757989377138881306957740930812179484235563797934200040802770097138388795255033109195334145498628380875291121498839561094080915595885833242529246124219883652324190235257946356032572413839511899427447287233150451057223364488848532508238059317751087452855836779057447676988390675119048048732481961103899921208935091304039806700691183073870416174872095363805110335971994206790943546644629755629030618181416443892136316990425780644724697764258877909256833811071258790239569943397296632862991460462029735469035011126896913456571441480592899596836082844737056905293452119288192448575205257839095837447641057123956656239053134833447041922854077925021912811631857609834273230022753995783300228686985896853060167891318827576514545370007098017549716852673702099787244740956225822781616153991619988646645402096073727177862983435236357160871477639537633289204736978759332214813607242532148216819729963465690761376818022695359506118026617451212745473647869531999456682042089383973652999623537323249395112020867993114751226761180473931126144236551002449657731514114706409734293301405492735528280386391379394747772872867438054646851063000815365387041488739536666277598099661042015184528294747388722228427051241673215358075092455557855161838852029955049917779565653811651247033680542042120032372631978767614347150901809787790006063629564563039986120372662479642518775286827709115873430547354476834528324330269070057743465116340394015610957270245949620729629089565041882707359844935146534754831927491334871380414234115182490655316911452481710107696025757676605303573570035992405293699003918514607006325620356873301905541648875712630422107055316354289735960840453506449627257750321538774977631702308866946161464704485162558309451580322542010660342207119268371273480055172361248397462772869740449400916066279641951211616692336897120460110110625565326260786546956879698205052335299875679600829321992977839663623368070710861367956508430658059013849858916971468159274322245352512617826097215040770917464118520208187367799742237409128530407214233374350033973670396179108488514289145261111878030523373867382606178906518834585990312907055925156059876665103642421464535740359392899606116255785161498981281320612488326726627546055791235155925271037019799047388132321508968838364094852022977209591169799561729839928304928282022103746714140809352282418761459886898607755229728207847234605415191995455127203822317389952014256015344285481040826494796273692839715176394860359390400553910032292495134419529313669861231378792266099815257191311616820941096969473926718346368121791790223075844253752293959616787577554100848800151009167553869754054719665092434326352640813124231954206243958311986544906851955643832255861904218353814079538411446378049960874496393128644130843997620273853152496703576364042282050703439124903934968764267388297676800030168396016042930475982634827896432590648846002316530059928923130161095553749320216798740241117992174005235292448988942655327312216307297462698044546337482454905603055919355467159503593740201947126787356294860676613798063799265994532226591541627629850633291985185172543170892821859474260754056926498843891592219745444654028964041366019072014799356160252237480671532904712488389837868147379059215048104235908262309518795634215330070824070819063936285645298436449634484274822391627926009434636770817812697741066644878556053966606681828314923927435229381196022153653904958675881969344187555545488427766788296235464934347369345966706950262027082097425598068481341867879141429190147075641099795493810841789759973962313431947106126075212420530470945248581765592384924579898208183959288702228400328138037412107630841628851045269448335136069454589715580807566371648630297343108214065362760159269266071810163582908026388320477375520354260084055255388855672867852764279442288480939577757660115196939438770063851727483110719180436992996787113319603509721825891953687599679128477311512222153751898608171790217810142517249187927532610084869473692449302766707809432358643895164088279056139078325605559052697297850653881443409809162372911711598596274666424397494251638681816438652172638357183437521690731766659075299035191149248251168282684362023811706116768730879964646208315576956543968738462448120375808199865215873391811735451257513407176496285020288627576576575118204958553120763752568908578213933447477257352771418234102906575393385111587142812705688317782003734736050573541022683823070396952959502201615868215865831663879946412736492728913706915153410972017780138538823821937122435156204635442674663624698464978924902681247700043608180050094142945531184614164527324014840276972567666969654434432697357991220018903709464767883477578685637037905657745092311891012475182112982170264431402429072169599507422433955705786489928214655081496550964538193639414264065149117050352148837310148479766697466650649087516851958580457335591252319117284434859638795148004822263836218919026568176594511112801492810276807806906686033247753510108098336273236285306475959164862989504264984987104809718263982811365169015080451971502508881870071704800566214171047375744444516909444894776165528577127397501170850174490044964967755227861541617694994876535528989025298777350978249754872952525743168231513085466881341484092335763228681498946222177557118230705272647920284754012493789218722438613438386265501171578934634018826613854248782786898213686695060145941530882507524269143317182412602334984936352448337049721287105025099490582472238631839509441261014770024017291690831348995271120819636351058249234999137859812151252566927002717394009756170808693996768541939548016786181609525687099769260894696417689204608260105214497949435043117284682502511613692276882774650342284296286300881313199097717215375396858462246283296162359887010307226011964959991494592760668218572119712784789980156993965309922192381263753874130391750585237105379864922976001332032902806951131085024108232394947679990719784279668516966354583565289766992319137563854825945786083305348661818176999651488003175402307071208957061063512609015763773666882994820284043672443665996871311312267236137848519809876386027550473053262715120596395380751487131336508321658808611128446408928492645101435736881525060344298394243295468877347223072269894778178524442623929339181304059889327105057852575030335041143795988863297696555515670891956724548744528636172639356026501648011809205326812361374087000927916324023325531759654198538782223632316254807588526123238894567571489182778979676017779319246064467719149269253205936434721554413257828696382614774001291855211642034165823095102015473599516051931019287795198036166871854400949437614794164144853803561077465483552287618233217511447605374277548815902630858450472882864226141230557996713344010037920235588800214006983026084716555643342898178170249964099169352424907040463468741461275340823760443114123759908633087615585970019363346822746601876701606000816663007551814711115976755173107786999312115218586954076024819280377095571880436535945417471095153916901553379380492487075187028462217365056625770120670844427512093358872915424626376396272870385501326436826220005071419040013351171988216717816153849561878872938893342920271247910054009812517665145221760318630148239723736026479991791156825941148884964487395813806463140611935789530464642766959430368575461715155428986170494024661676967915267303966593125710437483655472232618039002157239792806799341481764796425383940678027598654816429380099852913883234212649929327209750579546655201917197456997682925540933079689722334221688854763456022205024878637190015448877548831060297043760987701565358382866110486527052985622961322931338463150712815460098372012292438115771415187867652430835239270951407690894930284411863032846975350122496941875810103512067003038755643437097317448273670033713436758726280532394981375574651084876241193096488249489259807637756700707107777334019281254633177409765413021863114243219556594511477602871592501927585772586443065095009141803905791622136750603667558006869038739635951754536204844245882183776139040160643916215995509474171722303856892677177199132587934817369014990536132124370553749536071579064675473534714860502225800021741202846858331422062566798603780993525962720517526982692627311551928744353889752473486350254761161897510620845858715601755468397467895130998919824155896024216304923886183818521537102162165480615596713324533974069189639673055404413826255258553966535468843453554401590560085992153028984843518970729832702924082425850725101641947742502676356290350578879698314942891782900936846078942968284125528066063373311444151217137164949529975560824662830001130823933481404431399546728075085635613465572613692396875068239241903264805761122901960385536250571709625930487098281499074945815010829094402082611065125264358196538998392336995873049594303888103680283351441644407842351588106427164695136524967155179150449970585639614048290078175314585485535516054649029221603215650815203117732319190513531234059701943045684132805192365355184626126922877412630770123348091075725855981456070719201123183670766099935533865238552402482584627290739918574330983931720190447022497913230170421536347675997113366203802947906778882765869370434915632230935434073318029486287820105230828123080058750333173537342222125842408564205915051322103427541979475085333232323830665546667707878383562738626539977887655587946820065443775675565288495856325639118241257086121595531253057738907138439581203032997419874447289844179244061864472245365516380203584752142568844956687304500700347589667381243237059552175148315101963993951158966675702341457316857561104033244705098603660833797539001638586951470402678830802407369077634544203610757123141231191931337912769117098661813131115216978004671652761678827902886134805711076413910414434491443242323080778746275774278494291133115364730885033800189790226176153908111759800710096110110802175625847392990905368826502922727147854026337310756350900827389880354689554033147846794146719565142056660849239102507041524572656724254882612448180429169302015249320668090568232275402561893175272052725966852753715894992756535913001288108570178035560343473431286362515625732661505332446804298774171530668410606583175038157556846517342366860075309146504321384944667369202356324281724551098812416979954641132699089159058642872000519675035118946769632640952865574394367107770268185433381366452847949490540312347265542039168882287479803732269493870226948900496322530783954172709411582958017178011509254994895788713875771654108648710788413034891799047496156050834736750027779110146255917120293419357332534166471018107018893865104958829800007660551931363664357937949464417127867377454009013307570817004300127717956717541444458220257062755837056055747948908638649144974985302094618499115197456233324514213159404335165072313453194839228209560759380410832847113357320083276364413376266179877304821150236030633219871692488622777063402253796438287596190847052641911107426995933982115132851410847175717477231674561166808405994382958929994961251897527829446560340877425764817737935482746242542631657885015209977883462587756734190778614104681889427377822659774838573166179288688986375088549824587674789026344449723451738630409946354147366491416070893692084339730560267885925838429983427366852126983931603564006143684191085378386056728369560601645282637479608908912900262905895902160517225753380460691906075171103840864104200596888609756464019338240368915430098084124989617198547507227891815614872893260072860530691508839369857546136418185796307231352866547047908449385513645928371927204237647940950201214593900663993517014256295487404627534258040038112179627498546644985977943063002836477965436615676083867933926172220868552834757704947294841471050195101374838598347539343867435068670167488550357839940122080880031923514989387085255848275661753458656711238991166361651023540009925403507054850571359209000460366420335012879301197267053937716224770607739887731209744574783819250746997158440732926810561058656823054141036032147182264432842521485845871448244081626713168855897790478561648464159931606684070655204996368310950418301301397265274184375256648752098917223630686367737529238765456963434399229488333395765199322410481296024045111152146991017490403210625228707028405682908254034339238439584184551995663164936855147243352009770639503667085714588738698136909966327080271117297810686051984461098630246880652906470400436094841211686554932381108204932110916481412837799266812699698073284941610925816806721960813176315076609830082403476907116766825168838193535712425458433077321125294563827958201455940162937341110955738914651987742669022782849235988906601404025546931127097428600471209578872804988979141480728626419211409611419169398247490413886063105123985496473489112459091008732149313868511684825136583353081850119943328588157751148436913624772013455005496750738710224062676862658984761400912296164630566179411275534327520073875831166806617465601683428748892845868782156659590445561645132324825932705447330418551747295032838594636939046755254782741352043714515257466624001853114505375192390141819052642726224246303071659001176803101324948952341529674219759875133134853541904451453627951682673489657861758503573502200114269618500575298752358692059648546680938476980180490044408230155216464880300353114157952541726925850086417013125328096890404053338340468254260925703503152859519479946776677787911877115608500505155302101334101611612237961147787199420908976065296560994622781369670435449459504592717648962420886711834292379590946962541368095061747922408617569373396041936175531843034917034384853809852101235259741693455114649164564028271468288361295274102589519643339961083569092889574858999907111437091109721497239322638945867352635650244630830358139641245856790349281322464440762256761118074144109950404367722412579156274235022405484375119189571287520784099095471037794428898326222028234047047090131106776076761301845655817585235437171295996276715639498122277200056912529505503585276581878196530019318606911862103222415360262561288507080084378249925706772369702564647764340059001161198596544686071783412185318572968706461274260244026157710669128138260132050458341979248646295596183959160632390392386596879135674576000461381231060767471954763932096692715639457248205179278696879215277144556499319291953161174564100519408809477577732433889783116305237951183163927643293515689296794934003424195972725093829280074419919007425145767380455730915590713856792735634643834987828109958080081073171496825353572818601572098781814560109502513779527064357403561154723243548070612979519305954146742513242239329756077265605675903265115719561217644523176833621670928192365850394680228496985067593710772349876979069908880814295917867458935549808060778698532824376883718430285925119827936030640370448269313177695605732778507419837663440570211992369262414409354884190709237232834212972563482905009510305797763988206595921943281452835491126098003174219883727339842171549890802936761645167026057003401423284444412612984823649066481134540749218580865703927263987062441561516262341391634473563059435684064342136156605158593617038491465403920984674831841782180736594440451514020852275002603741519082124993829643010548769798005476267664214672328892682219134131580119141887880781424056727129788186353304474927402477992707685728849416655914510759649634817363084640786531974192952781235342183623981255794867565659667075446792275142435760292249315232632668305104728041369213629057491109582360188655705568474072263681791941823879956517166405236951501941465036708254269144909747625159675177897174895496039733144316532842949114687649428917087172225724969894279004983653963940894091533241605358850349624548250986767357162280143250386336534992772811825545843150505714052425778744482826901957704427243382679429130413086921654393072800134316637356722244975406038347982511821872020675281516411080029062319734755180009009406351642742420236201118887740656980284033701936140199696016819043778937164915998836424570362716420166392115750090551286997141124714567257318232286206281917203914730086307030135142409871261522458189673745239455799816532082106581572971562132448957282012500218608976599871661757914416555992651263041932178718252517591710501391163469268429063779376172150922111994525562556322973786113802321100405493083569429184274906725152382282187241551071494041082473084256319443341210150086721593063664213356840463616577243084914601955678986490781621016821184740368927509910613669291440976674901151565819742436287892467366252245233593711092105090958398911262185550866963028240099650458996592126351095146281012107858715092216376580350541154646832917546219413661432703886448038395280894411769885741740585295799836787863480582042241125914999049434537271183288479882574479897242328093250280971380399250442857808492729949913973159685952133642443670459946611951603555662454601277604293919224889190167780822327635536925596925421498914706338878861479626721385884461386604210230433159551339636300829818087388453396923560139450010264984396035510212542539810533366585188624702220772474870655052888697375665660523013623674933381667210734739470900596521708159902702544251419346056926695949211083025248589062205152718741682239850754376948597851485048588055390464683602409342501812818751240072218342739794189297973581459347525030632576367807318939800185643492936684538843079226884266791254033344066790282572634484375009907603006962838041749483509632123775948800113487965560875501161023588829708222957290764832724548388043572595019836010646580829611753514969803999040146725062953710526476276015867160005767474218015772199406243433287167386212594952066122233836341924188121856199069435353041431141672469037301753035698705234095358376041473306381386587550604606902521427431699435102350548150885198923108163636404743191266860380359504928446078545524766729921702423383466551547598925554520293803694801170790562941838382599542300806462859036819517653094683132406919836426873571845148818488885292084704927283586426377139145575931719206636644051210027815569940352586419651323464550261095093514485139556402426954228784057899682110869490248861839947693341563098064876478260654860913546566151232835969360067650730900801258978329209781987912984627793843238059966349812104890039391807638563646556243986725076266803741707783846692159492184217136224747379385526799538869543315687080761855371493958998551814863712465985268149333625492112450968479382348337381145947559330744480669623172294482806397958560460473541847431915679239740464323964828892442751010922859576050463647187150257286671526259530856756029312525270855055134982758095729560218166301993580921370982637396618642721381855692897277094525310852393488097750418589397156852331728965982545571346859365690626605693131494983588358268644857667255274644852447234062719013528172755924878843238538692266086720395153939883409916707005933742207254238689727124593845601642766600414335168331477940667055148672958074424110884545148214601259194838486223583184384706590789638707992857801200321731441777316929190751155835652852358514235656817015153698120677633178196483347521743871173427640707589254588316891151306655519635815569473748012571642174146272037191124239653106607296054504182133213192451268208496177357325687786560114149844062219035821406403699243425191081041080754238839140098046583898977167972505023969905509191469583441665003614316621579150009137144551065091770924133086419233658281283995057794297343761537679054329869773407030607962658927030096114458674969704242972932871631568207118928528430243636497216494558297394837046035304288019847525655446985461956169631129923962006042068072829053954795511831756242920767999726977003777513517155766098382992626897927790283197658986803683036470508584177452100765219427731209641254838371463366785655122397382465889178826743884904499015262458341099218740738415474575108409514177405767686996109473810047952733113682740949991960109948888601516233096881488374075557397277800085255317297749918800411376152651155657299252610601259212611363254692393733593038363808069399407142944692818934365336924690271046759114089802487978695219050600856674704384266103651374829676418564326513407476893890888787100449936903433142379206352438389591927707317153616690617097784273781302658072134564834002603363738415411214508933029396968271168917345132677551971178138536023938414421073780621056136371303908675878518693894349809389568930572506963998315898485463816808884750074775272025581201648707016956435866465061031901257829058125152845003702561704238020846111284672639214931707867804081772393575512674234724203082026130254431353230588565030409737142302707541436502748367249936572708478107714271586667431222671683264642917538477685851836838154171763739430535037187686223783838076165286370777626477625370076305721491922725752527773652081529073269212274138525226876464716097159187619083146090002558549633737146543111022289726144358405403131961323665317744019136726143069825956959909545053427396511793703857279185348626714824459371857084347226437479914532665051311844833969569570818347629753009104069411557277229158172726866197829688638296648919433781740029434863156310494420354023380377056423225647314223796192724206931871980857347271002267030152301387620342167723711125951328913574573647824308343112575490362950113990376692585847411783613312297954182358328959353988658655030522518361850952619518014764787816154246574646779042372303138733452439247103356401721943245529062047094414457075713188045698071302170595584264609599406439586700739042424750337116761871300950035821415662743785103155334026596101107713218265542614275878938408694677713073463880720073997472336075925046334090142697442216217695265327641200800729620638236426904932233262683651116646308229996811401391314552613351327095737753371043608206915330584706693064558694629412083608158767649262688955771849635215638581086643870027936609287513323020342507644151495731056410947928297268087009034677021016987613174992651957511798265037060482781966204500943423323911074317002937017374080331696079410207675384906964698843390338552336314958493721569350530641016493606613437945656698386655078624988861416858025619619048780824718430616789156905946189759351745864267336243327528725760619738280348300268671245647330913822650765207305383541031794120400897450022708269757113918797408068022954552032485316388488441060213301134006255513026595073075797027956861271193326605156186348903769527970558751703448792331983170099297425244628819275947421537281997291675448095798970832181329369730887336932850990569227839335103735459999557882689496488387233883168063048482339260252174842764922762211090109882788154747481061726940591466951103671767853793589177986925812593262439908797013585237146516080710353864470087903873856771200340082234413112611685722983336184908374990559269219868414138204282747595094811166415678704770239337788494272524972903993032668612458191985868808023465476721176434812037768167090794682659339061170666386133791315027740537080893060994337615044404918879899285085824702613213411012699504033467302038873029280175131793998514164502593681114620067034663973917096012394070985239220903130349221629805609662524679180023491924983899621445690883427225733664810591352779400293951137123352901136596697950744854029549707310251410701706528538416650625105178568076493637176271230126282436779482071117119353019984072416453804962449566550587430105577303266261275595477807701716469570506349389743190418614824413010100100665959090445031147368732063133799139390606779389893746740600370726699076569995711189965497376579528717488778631816087431266290726667477626858918693534051019697546774006179179123354689820062646893796635868738099402505060828558683645769974487761092260652869302728768879570550520063577857314286748318166835044101078241978846057259285411365750922599837423763594755789582721118316698796961655120007977908228894536382685162165663020255473086143530942788981865257165681616043062418078014371358902176125398421754899805589490607465299268767050651691842022418087477733019807295795246663753099976702720336452870893054000989966495513853940253760810478056742602456976106523201674509674725216858268828643259394484311710328799326048195663338204898536612906728275921171780036796619837513135159700312897026072117442820947676049874361055639794517622018022133598820944514919208308306644222504265500866911545187491454352060793144405370257654055407272002107029131254699773576082413787939315071476330355304451536201570302205313967154611476474624757913882064226321298180385985844290456840344906960701668132187308193405054214469053110182411092740221725355344890568785137885454415536378277580243387560079862180343638092317876596248422832430950602780270224457100887409294957161725765524224982587595906771531074156359708484903389133970691709908123820631652186687188233494550129793677177716479288978512219793264806969461137081242450473861093412668423703424454868634794737292792592768642576659788843749335435260086210417927200634796154116198946746046265125721222533533566681092136419702776792740946927526872347733840461146898484497597121776756517429343235926660152488885582020807780242666634785640585203320184821008532269842202633547924566435672467175372137984172842007410088259130097735927666788201579671839806006550204740386969736219252376755997958935927745801371985324124817081736973029438031501395688721543083768452331214231279231246453844818624816781287950743179202540140073274248800383859038391663046883087575307481677307299587362806430571048435199700547896199385227843892848283092772317960742484214105536069453716964123466747399507796242502154392358751147251277779702305409538908905158932415808843420288924868005817696498973848505652152400650840111175319653121099012925974873892632746385498530236874251083669628286950591869238354794483123385370091521822395787183707420558272806725435117390573234659244001713484234036011833320507614361907376803693908687257969373947692139119338123538466739756693697399972686566011894036937049471912335115295176223252629680455515501631562930715217744714774022435571015656073096501509768797929920578873395657821003104834066283082741396956408191072404284999778647745895680145254830218917242420744373992891527178427708003112468938280284393877791538247637804276023044232130010595576986844297004405737719549171986954561424245976686606721688230300809185612850592339987510731255748561062896766610043182103431085233617466401011714214260542618178289009744243663733064391981875729840209277423064997644076632179310006282237568593686804807299847180414266173719489776685693028924451306036381202113779989004803455483216113257273708000063828426630699274915726330569604746719153570267170155165017577344423216870824725064725966534777859865881390237506604665243304002833446111326348193173309301102481995631918770119117495767775505307272341246876395373736509441364930330168583447521527328100636672706382221585263275361417398973380124179766667999956262628298607851469711468829617097572554014063698221107135107662862001935021498028290863448835138861955307907190608796292875364243036301087697673202271424294345071954631323101732068372467305293705587505120832334320125635272740175051824561500833559162936617341299777751359119119003104465258648527904850181616463128153416567144753636740220230001289360625789046267166155009103296987912868667651712112442091071889473711921253360386116111147686038830755178381144281783438546134046928586606010635290767101341420238004772020790739222970927941789395068703210368578385477615484503866591825763820343821271297832520992033132528541936480597320851549120768268809924792026879017178390573231372092580205302226209347252899993866711732364555321562583122132873304909599084256314347459589406423459185473967463904656132692242014223194860007369746967202018037694542144962086827889506863143484511712103430590025037710347342153559518068534981037712923946577875232428778818165768209754843730302556512151195069800669089831643688794059701006804713641750222875578324172968819022125016396594710115194501154856884824011200613665705194496673591837756707136429129431724915331177771370059013400722389754252432978468092078052927356475105947070739104664918625035214312841521640296757003493188157057492264958838686744248843130982919104357825147313257775546117808731197422434180392336714012271762769989768423471116641839975888397703499432331023035383625624441429723339534535570351084357800393370958306830146069372530211745671318248157663976923050340703342647853020374858778724177058250305922324077370622943880360732185667001330518925862668523792996201740079145746261700320229448984321895188640976978511913730709968864388890503789690125556122345006552389573962905984229387890996310262976981733585644814016365332277228167068134468339076720638473285908218566734048441229611650120479910512099134681558552857092875682309509426556077207028087950531657465581304134752127481861846894944543394033617678272050498704546382726622613676555017975627832567205978364543917095363331789416915041541387730022091075933256820616716408004272887119048350196780636789582262215452361079558946775110572424433861004931569038704692571385418934893817217352444581831469409806409236563589837436353038781703064595627556212311734694322234597278983567473083886438821613273580903098035468742105225656419158911480379784275885083738104549147104516190792643377972727454102751664429289892923044932467408517747018882704436801417387528430688937792611034324953312793736651706017769038616177741533603177262502339211734753660486773004233174409138301186843688362311730802426221825848258723476846667823163132737060255715091385489910880766319591036665243580063582002244542774534192004336938308925114511621868802113762120683471776437135967049847480737038000118439256944324869289191005112904834745160323165696499723896743214408205449471253223599127265832943138905312348564031313295214591051986604444365280707846467167053183922952257626184881087272608647742695320425891909408958817506689566037669875911866145284601511805474026638117195152125957743094141886764107492859617218910340353874676583621020915218022002899446901599043355690483389362892866141284191038257355540403907164090477364308963067340452132587833627108438927411975204863777841296461209843492320264254601115461975024061470945075734899954103740582206593341240359757401044012168226286521345277330991589346403300252264115705325886702403100952871595304679891876747951721876237279100733494380468034659711443910369827655739010915084118528733901882958309615183658023493018794607599899226308901142029248984433891478850021054831121110164598737998427113242038075238436697091626721204763221000362696761040164440959955885084400113304514074736389543954187249128877405006168568331097528409392112174152137773169626658877466351800542181997335650187207313248909496128385137406397175113413798935264676724614682266800935759714778820133484304276028907727939901206951523579908129977732155119760471995049502498818796409858222718745049996975874880685303444589420995446333682675654448415988505137621154968253478166814270657654397039932018470843056083326621652391893261543890115091471123497221218403299893386578433512498007711911473999159565936626407761416717232794703974678303374892393425983030737541322444903518588329106495289311801574475835652772528836726398176262894488203507359969176390438406246663200670971243643468517858771065119329371251296590166576744868000984421654750141989108036742078483866187544090698910969595629523771743619818900893144427760151925717004582958415392047208896143864825518587691072021973054149443905652464411145256026811154291103775693126794940125598095435239604320723567811229387852661421099279820895540788038432258944522705074585161907307426837774952807868885342151143590793461913827593546479805887274227355487649683531050940767564655117172795247602847161320508672297631306182235943222899459300600005558765928877512787077383635394203478692019219368966291708907774080384480575119894877161811478493037676695824616067279047846417618857047011873739877968403388695329682143414758061046679631787523307082334574106268267225008496726824757239703583326783843113121614856135530929306001571949069800220839126683711251788504274399428808953880587168264682287869719491080948326133671713440452304127732273826640509680023159422178118916317091220250952531226305511674635563257092691753002369624933592331102139941643935241801293161377205486691505726036538830986922421120737214922735871314456240878573192447354378651320880977603231289163127314279883288833042260413507580051092195115226857987587433625319947525504549701758268792428692029454217898075313355952937140881471988580476407306331259355271063229785382601475904924004592027997555349185492065316766271902616571570309369876248397051000037153732781173249397062082535046534562315621293821887864883443350565698515327442161787227080229261014073884899842641633325152021176126925461424317033689360945518639607201929539601751314522123794994324912408798582242848070224527901138881869166672506405764669020242717744850958215731104561229040906576852723204834620640468832965914956394566832793557235932095912400516829958767249614932658834804471764101722255499600227715780825187714683149844621779173189153484284690684491650005650797954393381201942898170140443806048498185985399464492408827197587289920469946455301085073063726154889686811896865822175315293746448125394090111816835141762493944550149321146571287327782785134429826919685769784042265868152420709756337995775618707076572585532487220063109811849374587366523188733516590167349375843039102788981413037455340321528943346186269720431389491899335698872950932532348396074244269891596450478600026237738299260381640486807107329877877868041336137959485427031783545395740383471196831389567707291047602035644366404675302853538915502231871867753125725992366040722617938327687457248054912641540950196215481585624751807274961824417957150430391440354179962532881048555083457841374483796620049532045481659641159863853828586225658755428139985189394068619345970135620408881305789152615848676239266651556917876816463408839558610874794803278086178440058065868976500126968601289102505053564401648851825435636799842457109218434509876909093013198711942117011546057413610051742888366838478390944521086330884455546077805931366670921120034232116086101990896006254473831823549404018892763538674254764173159187111915471525806025929058476615064977525709112293341314661073517684645753919856402811932207450397350018309540947207383251289007609304725248792599828623884170563937598883108207978322148547716700318357972913782089735172516373624869875096401785307501926587586240611456758350478038270684995455968056545018142994421689125987067235979280516156583917262727905818134015652319416656769505371218317306784950798881520420012306063168792740476215457854877049746487101552819386237645915973230567989606829650939187209083531162702745247155625891481155368791057261694212418182067670691568661566588145048440094105595962125694338127956295583103754122715089142040291654509971681389538015176738416541133880494397850932065604003643027279932042974680815473385470941303171358344801790560341542199190370512476756031087655220685840831540327711020444098092991674592873317303550590842523182350129839402600884799278233239085898358070782519934885786686459556794612938802673312753232580690728402473362649354800796469051691202308465666260376254820889110218988327204148002118683306028500297784207887977084069615251642981691090757994870676211379393731008226996532222742130278517581874284063580857965044059796887806807449107482602363232932493483747330782930672275826935648333679227286712070909607334831778954869079098489512482770754057380010593639859312231031314424866982950055960691856767231759350330733361666679791941822622764904644864124063067453790105855808620663211925440473464375115564618118391988804908676908163460846733083234579424462052558314093584888368235734888613895962614730568744630178138637931866728609895414999751059962203115746911657174361188924453863783523830213057392585907833901529257870021889009788226532234476013813037261299048471322260391161162649114563244869621744061254537706728413036957985429561398065305867283434217771809252730206810064294023781829039526523619050784115007617093216658473143244786234171187457821530182169723390449388516175742863659072395297154054458433264759800481966449396235272245456111365638211532197457661312164205801857691831626522476336951261475501847301637630743419508241747417070638468224999712060934135353953599931052816508508250315577195071681979275905753153332084312038429950127576048867469513964110048444421048729282827601620534606694110979111044915838727111881047375219312383188364065685757694630819734592109980738764383543264936736068852118701602254936287939291195039231589483684166423845913730964244858883477077465259046444994851167590508905396769696860656590462405631528953973683603912714435116846538549002142908693493168151805155238925369395975161350903334058130228554857633586135362981772413046497965158074439261039426322192219301818695943829063518803721338581234062601114003377401142941530927863477961992869676202271098628965402165735951574281485583126561416668046643050835060944304733860159485036927180136172398210573597065700545257946553756026301186674237479245408882232224729921482246934100189338630204229858678781593914155856140268767885525149043447403471940574744065517981835566931769345351394737779090364936087204396854996257959703441022766852221721445941971583977621349258406536924441558851155769793854684129371959833095820798450905187139632286468009338832068856673492422129740444011149456214818365067475205492556070226998189462669476584535137607413898402254263336545900745738816593344667220488115465635600227441171865221947183409899810441475875283631725578138578697349485316703772109674302224525831890935336535676554418300099200386477604324668485646880458357539596127372123274975567183226597543075292831905091469391895196655162187375501399581980730392741966137614127921819132163349699752070155175276388697246890915116521449098663021930420821697048991493762099081765775229828253962869152985871755784414899027834810419080407786199814775981461880304675748571144534739240527664567122310564831638353264909860741528561349950663780668183442848034128493330927821468622074123547455758172564016441920369801151989780153094247127015171974743919542816061819868681875204656488088329551517458033244864304113333378803010696801490519454915451021584689716001142535654292467138195042318463145710889048772533224201255020370348955025315133858174269931316945503658508790487662080907763049100814631720542901095011784790853510930973406710715909564663874782299027582936888905125654923220674530522521739566332374868051556689280500686994262751732570238262207927059369138155897836208010300081585787480623069956247225782409604545492029505484417453672832276362276325348821731763165294020906283477669164193358870220218438592182361853690048325881207222536251077381378239345893787328274276060331727835551798272444903554884654999880731484420439594167121815798286106251478077727987069454836520570592114228386314415694421035914252496105927025952546127782051526033671583902906272888667190720366085212262608179752552313771460541523122957850493808827761708066984698097327939226398799515716788578285866244075349579564240527047875493347588805172771143113921752061908552607369654203591502141887681220705106268390642909660920473265027360185338968306833640316342994791093951102865233317780946272711242025164563684003444496189943744862883923484530854925441575227195761604297018294091181845227970994959695236971209636068805925738379938009733392371350932055984196752305290252645166282381255631202085163120812496540763389844586757524850401100880839889365313174042995289520092400205813826383563377563391834330258630310547014417180592484165267354375459588110919761881851298926156203399247267628103935749635929683746656337692476750588538608651244374991728565502048010926982643465378895095063178255716239339455962970237272336363096758133016675954516054865692983863330205627003704652957320084208886453782643861820094573126835728852492259589707032625073859433146366193586511010287736704533858929525229920156093922123096152120244679554141405874188637961159443026966926912064322207599129499242863466067193950340124011748743036599395148396780948608616127732671844693392919475218954190033022811360394214028018629627094445975064786108688194487275318892990422139208303678529145448308025553909500393838282492901003303721879195352885928080363450217897609920170697444408946429186706938891578235465633809010069347286792590658562027579812078890786902881831655282848462943124285224770005306171940062524333566233373446939269865446590474334347192848077516549136176791735488559571614802987226044617393152764923401987181416781411759662667142481908339264733654441797634539914991631401562569073127482981103178884598350577937633285318795484192185235891844537036362653444136774556176519945419677781507791168516668543725559003122661679734952554411925848588688726940028959213988457224381616705442606566311171471288604754411552802553326024879902682363750156976238664849878277633574255289647529426256611349584287066165191357356399064770504382268896145619907371644110635982227749937261234735425159878364059716105061431576862713957480289036972755896432026291048891417181322086399217741130956843632204300625245138524870922123913971688928982086920901593262494118346954691617135310930130987745218723491848997395927649436063074240890955868175675433942879053021357977493819501222502152988734676836044863314919221997558874434781480668782720999293352914307185643126744951417688947902458609176075209173931191622725173006062921781122597002561864827653238980835427246390679978947227390076391078692138137986359565411134388811542646393270952416375161519367641938066681346716668600060537447809128985103164157609785367609806471493520018016186507618323758855556690396868214924596509289653529929981419675300375870713335793657410214399626386876821655133073386250288583662272961831722117159925509688998599804353011358853815351382057364414955397498517034020981724533726975015965567908401940815799409638127936687858896969953014115760405956988349545588523055352415328559835045819996678170898851624680950035887204130658858593614725657910213456062262514694221133711267158493807213782834522132241683803619808359141400782669935072081756528990081086648104439714075103979321392315956498295397578886772774908394515538677983741680340400420748270564230814159544489358492161857716029726458611023539279950908457843402800236604264077713020197295560660085286359048865074747153101847187509551679810636802891385743043980474260680140649443423069117030785334216206398217351547290563691561802695558733373693807041681570388116305161059602842722448282154519116578649647810628917436988250652342942909437488128604810998706152137470447917747400613118827477666983906219169825273775912683166349511776522910213184751604747880514415760981614007775663152102945996983598573458108628143155208551304116641120415887194566738255837440796942164396879242705460093101901234618111866852666579697312886241751775246045004570718599686206197725191667810969911811772316978371329243995641785946092803435630787660372018454737307092033393899374226736257754467099074748422413496433107258065693183758238879417319904670131469903469162400294394656042737847100463642384657921398601122258224621789178434987244833513633755486626039687805452634330360318392288078109526829097588228447662386492095862569701690592729104556248623681935073748516809401379073364913851325146971021808018022174600416222906791416762779984613949788598960520890483304469129710575174639753891415032492996442894491993678230575408892836020779494429421751424658289401711151591671781733444776219625455283427788498711292207053451559139229247029433315558935108076558395245699522547211913643119457467924316894122934957510674676892028496286087302465518920752637709659316190998403924668174172193445837724959368001314283430774992848547385307075009808110191656234967236435936590471591721885629782273026671303576172567878426221823910203359002467264120715572272043828269793007656805181947682658136382594695183265985148207189437320778274360227997688249944682133905453518945827679710761360877771872776815713869032898893879735772226172425770771485988252796516646875666768483601477465801576276231633950673953265868898312750684316466193989174997783630605021969722611578242862537620912249676446317367044914795163364688119169393780998225521425080495153200772622633533390349242908367402047793872935762966309950374995772018699742930905234351291761050058399628997741462582351477483733457385836764763508065811895210894842142076060266611260913407297614972514650033994050323936080556060631544369125449766651679757428243021676537247065968635385272727089337488929115333327737499139162163428890961115641676055466579985234757184524582659379872588561422170507223902136398962957808313660536548706969645960432520329921176356648108255666932573018759466784749008039905774641543096109342086216821654972473422788380736649429964059516338839758540538396408770348912366826518480048114041978938625615640940727780522555036260714817053775849931776581237026144159969571916927605053905661707966725567874052956096621264098574401228295760469445707564485291960204740246405428045524737117278437973760344827752391515884325590621784317028571918083857538956911301286312180463294786410601356644465476602727167054074365815648659483221690883182332137272413668962878745662585588478279234399967840114553861921332152926108898136875476859568792138163378068292623610501319587521374674035714032271830367290850527734066580587528620746240339558629177955643391359713647608195093552969744662669866633980813393596021884632315713354993020004785530879226618001581774005563841700255153152454313915293502786065414658168815069921902672173723365745271004036736755384541473891101312178148678698564123355609364378657056940415634283584428637885764832672880965146181517740244750341592272452512488523787948890367958104292488893854180524784259119842707918037140030322350649809746964026432854539266435246902284783725470633508770837630094927448381752549109331117855173801400794249904761050987977093344321405156289615197545226205003811552134934724016441238396166706429178745398449563455907765884908995405097759231661895872480779327553769277448054663409802952528787640799810017260227453891292968870298474293205822497237078997359032937835376068783121602648644512276426415384632841092086369301223611752122290258110153334114164911454227339902056395697679662881880973870596130670015808070726670168162859434425267337740650076000470542678305594605585929917724132319776282840658726077510201618176750835847137806015395707265474339473478281016062260513989975766900898914164928372204559721823970497635358993838635006762332220821703092017660872449741599880527022774230640585242297351921006883493935046430125647825817452188325910797660156214479138331958680081386568058743985641557432793334703278268021072435596108217743015163673031151983826513816726918270856170418491380165877757311861982841214439602726531717568397862102835993114142745513790177542631964255439805011356103844992791941137605650359741183225891670591823844857053818088979170856185715371970176933189818889214849003899767833108648922346264269988307224487296253927191395698113119797120975553424132020611654621443999950581878684675849995302116608958815717276892348333189800492190217346241296416757291140551565447109569797742940251368209613452861390854749792238895592487642918804259219612417050417923986234863308364359737398160011742541150344736757577119503243569796915997368776803512507455226718216519091959827283197475144956131166580375935297677305653721295130834104476636398256388266742687506526623675985244630665489957061635190971531104949315775467079017234248375521231241982109715633308614533390323729780244003795099410874456456104562181855716715509701921419824956889425358736712604143058741979784767654276957341524542526863396188971370187956645738643042117876166618056175844394050867240234809802160499616618874051493895689373108324410045936497104808978335845553324393500890060517210488338065160005159255728453415946772958807083147403067669761959657578487900767278083924532531616264210840333889276544955788587232108255640700221070793944618908018994156238765829187870946692845523635897471906506504877376577679715105841802947362850175422080899225250894246645086694019012732051145637147578439480409992878200574761515190301432684933042914319613575294367502039222888489600008570201715061458963405913255275238853934033706427454484650998056401451782405896571440047805913911985664517207505079620824370477343026319098832551590223180344987024743835043061776277695155071068390346584354040673791652405274604099792143934298453926089227116829389348411669888222316954436912645215667156579233487303649006057298410858058326011490390413191271047823895577716980941401225590552522821052325844419341403099239483081286271858674619452961760142964198727994911815422131280984341254732370239583062278497012146205255969527792259867946759745106644243973539862894585975227037272396911681523230586961474484973205972471312180166295276433122037147177550016813944122680706280883090273035382924714203143917667818692700235274146946436216417076738948457357265051494569273982903247751574218323452124910202086087979193104173483350349177797304004015155571958795465133103710565812211494170010457978630982745338102302630792908933824881761138257257876092322131823311757712420152583438380164998628166365565606227060567799034127030425319228228030781525989607225209613967599651077018180711640440483362813765574818096062370673483395169086176895867488969287687191929220895600166835916799438750535232549176238316645375774019200554653768378334491225492770800906996825415304589710435381257234951835685027225980401352963243821252099012960028904970516889023186442100605516589593505946005303857097648117946289159376529498933602635938614203352961807922884752507036170514529494722697828473840581617333644135351557131746672323032917882969869564218972626385027977530392708997907411761896980896959624577447199548496804773690284963198920623037676740055223205819997856158536526902403996222172932653686419653740816622565792281266218209391306557155840341690291003987860466952221223295859989937628482935939730253566586746893414947438751633635377842131053541458140427862597613689884026915633528873131454466167131990712273315963007701035380403929228864025413638601387827263346991039073916052907955966258442641081333137174171690326100630138599789817607040015461525059419647990389424946545511225702420719973192382023880526329003662497516087026188432724101591148056150787961915430133425553086820789472168427395984353327513823162060845138208854723491742988381507361337816551455311354012538176844036763426955129696832945730886702521260153569247512957850180620921591010125117690954591485075142776026192155084437349207072737697378710267255241880934215027863631304415541378645250692342324004839626528057591672019774050698960639450332825713001560087062581798793890799106233885268343663456210475212201286774669799623798626339620130747212531750719829374878348695541019816346842679818940284735748562104015451385815643918516723234697609633898773240533870254333713992520008423799952888653210060079011812506501729252643681477809466148633356417128975285059302235714753058421532819037828289270690226746363571214553963234789164732652391428306739203399634692045152708035038804667188499297531748430463211420907804875612664038383191167564000945102033286436538229641771140693941829201776741937676034540775687219468072050183237973079601132457397396575624749993369375474894918464579260793369786368099656799730325036176979896762532123660332455553564772308181707635397005984239434384630245249153122383794191764390323354629632995812997614637722653853124620251562892926785112345822241283452339439290130813138595775980956455103381640776217896301005674967103369092017138809245731927759123013726416684143167629964080102238253762866891250502037137134329016861432336716526012386721225918197571651524686816679674025475987333617649748340827632357363783506132643575611203732867400717891277754232499665473609957894455809396066355258130813978693451668367585046115041631861078548815116031049868606429516530584042457595405527127821039391737049211743354524716026537087265988742819338411459261909467606741911988810693723043830554220334637851449017377639201715516674732141671208421156167053315298098083648103220942040212545106244352944989712316783858181898640676742398926431631622151317581770597575421152109741947272550489559096559181132828378763982064301062609903204773944176291459735120278929398908093193398085575063803540725865116982117823050765887839351335837602788994449222126302630078364280103733378383749166878153229756568773147179431208327021924730343671000249939869848391762938563439082152450439379095875744891835561965764709376711515368309022841578235408931290091118607582863852751589054587906202855232609865720236657992071104123707997359809245628436333074701798343798747115557072981032383235018110353450782109226221680783442806243893794455620798988224781344742438032952898329763834458204698060898022413330905394239105208731816797823333897836377965295411539420600771437732256008644896736711105576891426640067529509631330305277979356008151217871297741209452532194729445263782206824576140475647804798536407663464068236013837276892285370936353318546410401218632605439097869702745539310382755070529842972889133441770213293798087510135554573125577967998712046183195797038534997705223402972997482928407175308667961337337224292207447180265181464345765896161260231926367352224999078042271051610321242752062637931545472235078296061740963083065888243499113895959408294810350305514735298207150210692109907761414335782553352837299887816825888298775682550354530793662332082904669209482303517318298804120106128298953412279019020809972680538715684756004858501140174891652238269029063903242217542194322279927024567457791395181704696026809796070753849039344449878608703683658105358403143554875265853980240346487160428595340287487338788538041192931884038568445833579205625282953374815378576068442920815140645675253014573619601732118135256434962689743621974803340253529378191066361513784813665758320452805256692572879197614162778427964170321411351744884292499320702137869222135846587312332970788667228510907019108179716535678167300344418365940997441733712527538539789019956811480651663009220716358618033736880160338294900706291140303543375872476873650662204407819800173849748186986779771331743740154253651970584624139173197933615493689603193093025155043512981067259443495343456332511161648035846841278541792366755166634989328370869417609254330470285434086637076551309982385852981032245086713751515585292602755081746388768293014954277345209144590823915445333800950203690843970891363777981039348809359455814371312065485606334921274968741477888627306010785819431594161174067500690979063217486048042333850761422635465304212210890635771285682383170187059619314935455085835692057210928347913562175283002718323332079427721089536401361603071581841569948860782217931226573482264300179165799188349777505803541353245328069172521012558702790049783014571870948964584832208759854807534141344935319236116392585011381276355401163694148184733590484846635610251106251359754584557983213198029239245039699379182344463213743314271041110736428468681063935556053054568330890203232379164473356539352224092069212416490245398199245875926193371343896819910123741038596424476629117490859683445531927897879164822436242761418436197430278812388180351392402988658868953698897160270515544765725643219667838645457360688163645092236349479010114950592259730797423076922261177145162953899116547656222583144140161245661951966481005952944824029979058689211095424087964962045165141724705266988764299807886273708676299739632590102410243011106984888919297347610979914524603406851412334133267233871675518344627297051667934039089499521078889629898641495572439778628241804308334592370455979680853113706724238306222660175770881529718865406012015211109232326986044280447846428716751326095372669985468924427632082960173281001027507182936176645285490472315276157910907954635169869961322478697609680002807183205831470602731077039898979562913046449922860924000192432091937472707957233323799410848199510635201520446442871565957246142032877184542531540261534191435355921948290443550104449299922763602816767849047862232974574411134230462765370930683861883921891348777362829352714323480618157877838641505712471708359003855997188350066432240386174205653177898884845847665143850562808729411432673395931807613396037569833066759757639315759593693296356167990789409821208979504516815701996228341550413137036118956071321722381669589618854461742291465192440334739213402131975291819583705743558706424620384713338702057547257749815860717958101781924660553149081983961444162247406741826518248118957019612311822258115837691371394932910890408346424861152865738451478099290335561826446246987647329428705822487795746646871757652951230767159346831973103263695525612151982470980955662295172875146935176548844319451939340917408275380133952766396270239163385904672926373457377474884893781353026625090591269883836350472210677203095014324039805734299198128972592475441341042564525975800736846704037476123591988198101537242597084563912851142245071590070489492821093308236706140918731721458983194550405026113164367713539437108510533325440094656903679208752972921287997001584127424993891237393546298038066582445412408697112548143039137915409441986267484830009996473704731709987646842162571108179125008926294469666221009276048625621522732271920407346022571125264425915416927960940319363762871229206449840124551139023379296906777371841502914555110212576914541667236920869015533328249249690393455296188322276357648587094165336626471874702883412491469025667942932111666384370979318499557131042733744492690298527029101063471404558249054850328244176650021867694163890979132069174184745841308308723054281512322167188721673474248144971499103895742461854343423017360793530367527101715406781769148726273641133124113212004168711837679107995966835804116909965822192713768913510909713073938749810837959856584773673551461788919964995527560069698295421515700889119127417240308532205739614006134842725222073980676512908859923859005603397966851292218885054684708548336129817412404798781569247499438365575179051399562179269755461407064811038058691632628416204929637961463021495365872302156791692246649195891340829726185002192830819859429629987118472423990789903982143148817272419548848849231475727863494191402872976487294079904260189937131429789384968386318341026043762185567893075513833630667411336656370609676493496643971812738085534871856426227772459172537377209521671485758244860350478513097295346648445106016726413522306514182107795519328713976547993472247993135996520642564725248000379779426458064521339954889565473426324855406234305073355163238715368000701678348631882352838531802919137747076259267371327376753628514865489680022192076098970535715682100741565819605218703702110484267785833104690275151659504114794771848466382280591140034635466544253601058422969910645636007408850928995383247532915908091045190558498053062815273465747985334324524070941589113503438558166919405748306924814656438449652703259540187563339602208394141850454947209028289456825215287106826832772244722861010873475911088243192706712815854323163949467987517872970653874167643448699071359790125209201693331501984344484982976057624631990134294382381810277733119698965362001351369205305882487703421580201133762180864870006350959565700324160121336065088893664390973431099146771506567738148278889315701427279294317230959299232698650104909082385639743317840960022325156081896566344337611465867685720574132580648690938949013744694573811858114247839429721611800612877222987360203625426216515009361105071764421416743600603363086719042612533030920512750181346595357096594517420683612085810632870645369668953562807723940953864967663661204434054296859760342566321363736572461879884988106655264471991430252174256626649542632336720882111194549865561670545709013468346570571176583433434240566324691524054662453543037038576153221965195387926440002625666981412709876246771984637733435258261547606278573732985896103498159355838414355974032700258790389870042041940518049595623630395152478353940013767017859933671834681131684841580455375993341131411527048362802970566437382518719936109267655623977838950845591564384737307683370951018028987111515047599894443255552384416276836166439017145006055854427383477400579832195783830391361801839993405713788433081701180212290642436493962288738171043425263862365093782148571292729165076109664822605528151385219451392453307630018901024618818371417304890247604986468420917270667572883551152607272916715540107593436760113911040160710230678100973254996647699369659915110952157911491578285495037727071074621213675510336339214225380107477420738228017272409976450934688413290139175101887186489332741219201663509599707283628676795187524074683356804706635785190357109379413691198535141505878553089421314843903561200778051595537415135366283195972649030537347583955224974208549631918095332687720494696813287902736308646661691164754997807202162447218962840611509585390595046730532362306199180814945666573275850542493369882446731729567497779187320214858115767377012632801330056222124157296303689571196355716181898067872859907209704748210303874221809659878895595446840904992469218500656982900211615934487540765798822302972245901721628995215450441628530902998705281173917828143538562142818729827444200061545594196175072060972823542368491528513707486525035277759148015972051139752957577869069871354009468979978022482932565232076264119450788641498120658161305858205338440406036663669112133917617932532407699045103451928943076798492199932297357717868286937257643879982517144063752666918158229162314067016126116947502448261525392145870290627387435988969602687772491729151812910834348302800113223262378635633800393333514274704524156365180894092300390564616187369164535576282010684722203178508351533968968195855871912831659038040739137857352293856602523855556758992431890542233384146042411888755851878481917989654839126298652125956774383686275993350861709479077675439862829848007886251085611117704772566619026965130826475356126596807213075747047299311028089343619773854431120206233505371428860312885324921047306818139415563571972599894464193389890937023790040049947517629791455250373330332244892794577195109974103035067012998162959030322780900114811396347864729844896929043055783216206001780762447965740849218940721702122109029255387439748115301514232740737949879663511591705256781475993404218303765217592299814680081018628146418339520910086188443309986146727118849120567205339046351058240967119616313278607572088321469108774203785179001137402176587120420763329838353775141072480786773594671637688238154851960178695384996864377147407168356203485310215650218967256375742576623416476926549249073222354478910630840036531170485553168471598912473734916498632823050076543255335955694518897729424229879838768102215456226185107023423766774770425737903745424669488438653518325253891357445027592631321232803966173723347257053940751816274859672926248253632899726311689122618564938606024680852361860302057485788375876314934624043634268360192832901669702377282267312903907805302068796994976425098889089411131522789953499667428883565121409379983159560369221300171459021565076820041566304771313208062163267990389741143910541155395144346236427625199608243979879620129271903612514401326177687761150935768432473755369915291107586799391214236284183132534032025470870045033700497003265012182712210761652921059919134252217083287634992588082151908465983404766090909508096061475279668340160264002818923978668801865513225272984591554854193752369078747456087077542847924323626659770737761277268298811882105876151573251595086905189264122806224294066919223542142918951562673151937328229268635496970260258587899789051655036658888955746552424410417311995816834455031186711387802963573600450939784880289975245500745153625334159524547156062906264550786146502522288904125214099796751816893399785844310456370716218242371301692159687397095991356422367083943312863616388321690448777025491765393888122819325573287558700958871399726239391622344990168649981897219869302536313296530448343034989674691986133987628344198169117083571279813550022245789268199662266171791168199129061734274586780030053118796983232067780803484442672872250984644046888537619076483936566318907203021359195838215153141159372402988330321539621473135331001012909290038875898203572490253599092991620753953013155915364948511684024848519279748775801728645775882052195878788121376065631275757980175257696474278967354343453335934129841176456920336618665172833099664273768952565534807177141447803616048024496164440486025245957149013903737573589800402875182005905862338047411402728717970054126590935730614429899763392335269329694000025826992457706985749644210057614882873065472913574213574420995680215037106198761864585820092966254525482670225492316894572174129297894680430470782443925562345303894410356535085099123734582523148670266208699459654710553174436294148821033131609353303549855616141180074889597463918656286297442679357138023536623380781731723364435209200721944255513475327939139698133159001702639083134203203721447294371790756410763168931639783248774746752486069917482553881166993835119010571496025524592721395801874943745268788471173483463059183245980174509325131532171419887666670999342620606919637565490676036046846117330751633363426317422376173431452624137850242224009721947197128101240714439797491269057701490768206588361521005754380337125248507390583473432165607367046761134222344808399685480066451884291003283151250070540611252721374681118887013877817506278802695998962453220742060239738891481963049283939715677433650197569477524327147039996205679280768119879131527610998947835058225957333606539432872856616826405208537282027599282557926863826741930528370639891127171640487801540454210709153782079954218019706435584344978496293795777471711917571787154790306693580747707885551268803797515682186677979077306093265035776937796082102481350423394533315357597156947618822151678489484706120987951134086192064961596721653564517990159871793826497834605303782142703813529222999886654190673022557438515305020817897126401750957066007223231115511146375637629844712263172737947037316156658409900372339271262600150557580757931906123325447106085846494567869611474722225626701618258380350282116276403142613726855735886017114505914546192070282304161153510045089215648875520792676517977726635637132083505558367973298018585886154654247329128690493338760964103214167705060329367936413645263433499177550259010415181321266990549104645105064187130566878321559226441563409406604914308007713534850763483201152220234698634675483924108638920128244953813019599507626792672403986117435544444879000951439592036632219687823471694401711540936652209693996840170880561723664395481281736652934008869118141446245944245910399287899318631544936817382530796050675369559462461139394662970987788163025683321056372030512038586299331117545935677991827985326040271648458912344050640656511273457355641432996443065858002699287473568386586406426379003433495303793450053379831883313630221413858531888026929046795950121059685527347846867933325529183527124740143293803507441602016780424327198710611921999248471091558778364397339309869292630418928973064879562539566723043686973952343846358759252672077442334598365872278624135897924934226310273548734174632278432728602319531228658435605046977306232407861678737303947197311893340999988333762655425132786971122040255759005413587280390261200986118862164400603864526324487034730902505230417016511857198607413884518200279326459037419871935737364841248492532527682100406890532134704157123978951075286014449358259998296631325297217125456374528049336121581875620334892358620856674968708167280264989687181333921357752210410392655140354299618561053056829908097798073860475812811531213992020757602730311294463395176229481652898456534454754769167834843411603726017366341043526087055396461330734298052199551598496633770869877611061293411067133664481218811271695001817816856195488599991919421416073068266468396084703128437426824754807722069527462325786258056756385052726529453771637357320795626417056226193404992957907641133006006469679459181104487474710248644209470841934290328322706659317431749128638949652811866420716479330381103868162426466007318774292131140730945244395919592814247979530942410839769483320774540575121027183451903225901301375399062036336969877084397889072940985862956790116578098257335556361064780645318378389124152550860366592030081345858109537371934840898959525113741617437849627919282107473676259046512629000131789535053747818516235252678241793375182406094610130828450230716824226825269269632936863758686605072971013947745640757664948213887921080585857446510105155315751710501141742023147575812275695474016411587032375830546831684896010709449064248488570375582214525875939243278695389435653619216653179106569594821540545480918408245855905246610162518447091521819585425206317559742541174412674061552181978699501353583615546282348479857286043911545018615213986173294305567700702221379503410314005850212739438325662506514475025748935549717820473280346868858395729734159730474127952281910090928676836358693852691632918035360369960135716327247572721378882232936156651416182280461250255993833096504766731755406184171341178128507500013577530325196072870656643274756318246460427245267801078145646667647320934683551893024935659990273950730342957607556903832798014419477815748184996555823230260899191424742529224187921663602000689038607040318878632474878162586095626558741078607155261884400293466513582270218028869548870125437159785635306388842852491501940784520025459062150818873895012931727259749917443334919588405643675653972862097422501580488965855725982822434972154541052867732311563608759171159257546726607855568712127052879420909024118524719923291315611730354974939540538127609923540003210964463309592018996346254675077602770517212447954379936653157125688983347078667929571872130434301555486091545740418903300244814993448940467676691858319992894871721877416434892853877129980401807362513090525704293105759754971595593906599323896728006249796120870779647292199645993868186802107890227854229785405780225779858066062266967173990917429055272578897662072285570856955928440240008116684450590124314828363258943590445827206876474771138829712094410072682486601894651038589190960459822200130852301537783322763777635133794590966722082823306716921833397329594872014387591083933744311749761293745383626819122234973587648508770683910000508314416133313556723332877293878981257094842826324470345230874730078604943091051639657671150376666561166336283859839214590558441485895186750543286564367980609591358979711028278912098324773004090869865654558832815360621032945010682638350129428018743817835403270519551631839667913795242241902884464269812983775846880392572453929914806977816193641087767416607000290697132433629322114057323665352877924027996754675969777863179532238008251807501348436337093288278493113181014352531689436304527825270411010128573052764531904952432735372230405780495140174171985924373224619811051882391404100627996724126951427987331195932454802447499634676181955595685121664981468445345297906022834716320449928171201536064197631055497472427196899833453371260320211873833798237953748600814542307560135187158510704964600856837099933465499646034248206109122061391579665502999384797773083538505396529782773774046325015586061580558918317717027327076740627716266276480295886231988212547549188338423420976770258189666520215716194467240857559208022710442318780626481688215898823556547683166324236347803778529498628321388928887821810650337828659319398088476952510966681571348340259095362686299310803840820640804627525138481282839156192245775290742312568291287570972077094935351555420649836624056569568772008903323104952728796494564025414307724466914034158726366759825357519250363266637751672278145934377194694672641825557475092143066258693794283570734984246354991166945261873120109181710765945568664833266091145039649171238188877929011261720637146843370975589129139441139752922476513968848380249088875793064400039784344825375074794115965570496252918503378383726086770967745803032001736642775691923342193167939264353709349725677440717495293607776828235955506518100066029193190683069381690059140906099675439800285903941771988258338482020258640241795319241329077424245346475419344251112828789435557164189058446331821500335457033017372321196324246931184150281273865980943279941850296855966602753371170484929583710760120541024541470261924537155015833556546520954577348796413533474582046190878473671613970121186778336070475651979347003309843972244438896319662713786276676138825266941681099005033432185553512626778069434127487132005630173249324046823667806889155869619525251931056173267493168520228904498362060545857290176504853225739076228587554394550994117057629718986307169058293828130890426318005110114500090150050448243190688982049922949411272291343644101510757229381818189254306420710800830743763356545768906305392548284069904643445477107612020045273791932310289301290336865117853294602807375190388336331488735724200197647309000070688049879878126075928468777318583913788671948188557396559593788523670590723048674463665492181712671931210632987275109764762244284872615579895787577198273877673010977702522508183946911065015581494940781379234292835570553702808826757422427900163680877448812539897690513395192680960375320074060455071326254193544950534721838828553412967173520086917847328502899839155329342859446820075713805244894775295239290615752228637485467762874393190951254534021900258180781635050046432922642186627606415479952796602389066875453283182708747902550066498113705067474177797441289176564007193563888715509335510139636777468144597736350689291730627001366213118701207098198351606908453619307653879057795022158247057362110503976972870875020849632180765973136404532163156237365475290289642262527650316806129865646266779255760421277497733131670038486967791109050904625186787664180502482079282348134431770135746623822272198170215820711523513647867572202211781463500607874601113116298243957166452691345574641934059893084868967386685687480129637647580659240045373815185406327733559921786832066938197441011561555259718764301824264708812360085655718521259886314238484373882504668125104585107642003370668234001060463613661929739098472197259875094611884851263703254571757033807522320258381081265257678086539303068968471044421500646928849913861439404500099344106400356436753457894545249672110442355698468636195608549892043293516673296640727659390783788746453592049962767091811488230670002713264368790255425530855187063374179041370814576395019880657609896689687285674346739868337143997668722589936453650785160569864869646100487338753216431444580006124003203098660306465300684423358296453953762787751336105835689476285047349696858047983869401470754138742932999640529042428682881182924508679440269741780608483812540278042087130135741728381836700400604763769259002686055871796518188107321386517464979366517564926808176919885132766904669829618248548497747046797710026086267849185758337853500340733467761637067304038377419506439619552766648881361948796358942688269509727990497287447871897277110496310599055022870710517104483387172819453816593233438002539313819528875044497735642758065080678520628385010372274743866595392011937470492542754706766907094257709179614082411069357913080574140841839885290907745000965639416334639261854854451780850369231832484400096304512441118747833538299668344161711996787958685553477348822281086281189729202822147926476434258504192772887954698101581345423741041652612399351548998732018699735362660608715854690645501991133176334620434050028520304329646221283676085640301939447721940679172429219514127985031991813954120367567352413614860507501809863105960372276595691591961543528106927933963492196381897496478932777448051269513282670336462290600696088938730424164772191572981401029641075057513797831974490446651780813531309543406835485839432579648989888260940053332115206908013240267611444770812658706006232638319643133357815280753081438878401599521691584791276964358416827544660379999703657839455675391378248870976040575188219427109598243735127027830152165012030164374015496078316638366699474498781291820846354296445251754601874955612764820354436394568092313341989218298596158102425222449204941562208957468123626037937488308646652900086956864859497833485158588772220183781787060652537138845673259717907404110882418549877523754569439537908931540804918311419759069120095124266851423628305938446488388392147446413571231707794591030911912286538826183386603691958438314311506952945782712645591761789489265314607169510500062524798996440559543403385027219283713071982325574718636735900324849553479429379788969945541115121903168699358166107626712141817627087084518441693858059813335427309245031905638211954637814805070042316432176049796671516669014627373097958482591305042945845492147348053064410987210794574467468447241039818029792540445170341238712842671641326475789906884554223378719566639107157035392722046182850366350144374126246566302410534895648676910976803372162715513871567936423145531055756842457421712466219776628065391859185184926467000351381727367658441812036251041293114237024799900270966545208801591107811427969334282456893506056744107035058270927951764366775824004374879225773020562893061872829286261552470504900472251243493234892991264247121340811186605620308060718761267651998715789553623835878970673202757872754566797208907724474096164266260406879698665768091004741553753758581383647436477040337054960770333550788628576255885096462140832945692135254427159485553156049114132247779812376615111342839098352832401215411341289084756193291756465757040821812323625586216167054793198396524177401648840299702709903809054995614250622562229234772428625364003215090284357091535683005018528816943310413744542582544004703471544935257488512219279735095955370464924541661448146322227593735687819747766537690483870563682877839038983029155271822119747437024636382252258647802275501616297009235079887865887440531804857969751384847846113799959645197956595041350943412162268553834779299889721650611300839338571081996402258561059452826239636209352184094409109780174900829250585854406738355081644968051487784769804003670783829017557488661608656866836950968042189622666887723397010209302325762506458289094931409040193806571121764148664333799242223390068330845631434360200388570754091000907047062133944453380386114505216501805944017835319165771924579116533072606768900197822605246550852920244661607778719376031467825001980345778225601201454824257125628333367325817473793503679217328731819322882487247987472216438390491827997545406806578561039656593083638793555881963583935087780854850083324997958592636216085763809578941919398689993417896424658755427882867998410019190222107093120842183491282382617803837760735740181529026560578257362287562732850804341446303714461600265688564577843523774909911645893908797783918623988086194448560706905751896098918714828501672130019640798694357091878076584433701118303503584786027830600422366418236598335386641907404943874761950012583487433810060710895134650201845128945468622383137155237148211609852332132568500387186592594818207965916176998530212909034325180661147873434617500411214319728895286560046575732218352142309510563186952937478238332740530963879894258960539139297909516893557737126906144870337108584959397324365834962681270681421713858561843540336222209152134641486929960327664412591948106096463713281378801736932952585372883518220736831089676297266808589050960698452393210057920758633733975051705529815688947340226571225219079389704203234373719264262587771234259772109861204608397434586320369914053077831823508061337359494682410084513020727699698690674307292420856672160950060007616516313225546850316110228391096479544442346843635260129452112287006222954765014936671217323277724134060483949309785349192452906308775412577620814010931140871330486664585655041224920840923072509523433766128225267169288873941330640280990872313478311316424146862375253107867036993644565547048919787504873154759726850962188414288953665538757019869666729912983532380933103127300439047999170152458660174475169445341532963000976525301588192913355766949931680518991661404797866174792918161976966666448498602154806860058116900045569317958331775671250850537265522210597590959554297358162954857961327877257117019573029202990898750401823197318251658178702809609379443182183065691124845337014666092192160267821703799430860668434588282501011616612303280634355294450125329676713431416171006167176326814270193090485890954101093519423771569868188333452108619971537496966752003429804490326155388031228071287738421690789474883552821255399830431036096788044001911302661816296948212650936888737467916481347953768261672328428193638997181348071890393129148500984283342718421276492143205561922786375700449011326962521515689131201975433337290467374334271741154603963131278684072288041737637277594796824006598149089483667482727126182725410642713506202062490263241688787053576710571855465633492845521653176296766582234945880912054548430697427779106512238969745977819090331979181318025755104027472293437218614635246247678246143937140571448328734293664004704656970701106315432737931209683147632873220476576100378636986756122959223940818550639522535183723668670548714146433077331504067261184782036897346071865217629546943289894799296360281359419098241209712784561794242166718878055761414980612339728189968636273681089082408762258193755140036138846909920510628722278015751086194641491293564868076780015175315405702908745167544696625057480016722860072223724111295837379661836188735259332426368800096047582884267942693372408749880067658657717778726189868524565039344822629024272473096381676626436090513861630084093739029690784186800938798611440739476532519935701898691330475114214848645388668763772350202551503666494805349017215925137432225787994531037498129489227459917024263926158836340413301227294411350859009876231431838144959712576257390795260505408077914255830955210948483938034146333749900947721567129165742939590892012254933357595158217412304696334106064652958039596381083834853332304761581033879585286789374080614261266043221768647864236873723699647269515392766039425125410865520534595196428071859363177348507684660078664227941786393848964764319588066450307042993694643231958269652011671464658142125830981131286594000687591524716092178176372152339739603257975742430517080076602755006802426593952120157130153814390982542102782843404555991743217150316592002650001740127330001970397692066205285949561311718068190359146537256260521834682945006772914026953609944239706388765570202357483808854851335983136682207524512992127539926977181440846591407331014678462131856250781877887310679557947613785485746606494206652884091988543982006395877248097867252320924419252442593384379500690883643928589160134095037790870603711732383509240998241898623727595864357395180672127935840764938297340372407157257301699150060748876165474748168440424098921806042967771927476898051072930478501142743400994037095643687571870931390366626470374276049058806379802117831141863695118627966553721774743066018357048288264463822402337397312166263602513491861642116018749606975916078246482334092946956319788154246629317489972685115564337747296578094317028788774157757539654971874438698165787381447919012277982630241592404107155226480189761968631516673823363775935108715145557660312288650621986258443239091078984417292153725231394043414290556793879227973064985969562679580473004865372424444391112380925632838826593453383683790697892125642533221484535546901265120473484928671511079117954434873910234863167196689019084337019615733606104390603208485317420152814572090906125183275124059334403471923064384991088338801655744985028609225927445676264894761633633481640346038677751726055870115901691033025360125792101755146479743023006052786445935478895739138804288156918129925769348658531966309775914136551780762444005188565645349091810086555679356038285479559420843804199687173810038941698675757872843357468422258860351247481114275340766167710451379678718530056793810470649752768539002242853318532814844510314456806222895484828178730064024237624984524677528101042100699778425877545694122834072575997205926538600574409490050287551010614905480646569917082299326959512415116157982612818803267459974202018792157205303852062612078074124082789139858381031199854999046237095387316204661448061124479397891045746003992329775511392753710914879561951632525499125160373846835405560349967457535772452286786882488789877591357492519769860199898638585638382984447476480071441529817923081834763273423429329287471276525843541649304282810120237914197503331019510197766780268816396247545614531790737697843151809480922239316642354688225270783403399792563457314596704080047990200051458681112011125265409251982053974620653530387268033743941544612149525959489049383260121179785257281795303486343728684848961558385808006892261506836995438597979726360529864324516318262250416543145979932453816438850360449396313955730125947267534711681705747229356290015732142859748164625996488297631892135682083773822370434444835724829350110604803499841730963472791165353584948225963941642403017353453357867057540473777070788433455053111253882802060112885341548769288792353049978279335986612872425199245730951499564320997118326555902234042416043614951525765819680659581608856195393118996006682168982476213102908323683596360775010977106174168836862233482825907245148077248387844388753647311322781961436728434697962541105415294581925567386451056403840165916533356628058315872536200283081873460494686516488430409938969200785623813154665792024276547724038057166496609599272168470025177925353516239607759961469846980624307083651886436221982169645965267328945731947544179959540697568628965720143414144209848059645804595166154459279843779869774524123549986870904714527003328542049985830800209875763625613453630746210692108780639066364779672501708065597903436749189741563183776636452168318779854391675827488931307751349352830418764052472830002743270791665685678219426754571456655063674097749916331142819322135720416476523417545426002110955586572062345966628525285756513222560274840669488788951115660815949030292694871772625022433373289602795598923930412382058246462769206488136913811076159581869373328386495455937666526827970406836465840158898045728762974875330212189805941573733603720106349287424689976777136068757691974180783574563593180826186545215358903222578806101086798995088128302702703535530892846268955489980086552778524928536931340496498575637254907632999233065561539079570553576893999959397386587666540193431288836999770801845923356268258026195067383521058311053425137489190372652432343496548124206851049296325820067744096432066715936699647088293730128110961121978097471052806165528782216067287764450075547271231555277485214049579837991476371450938128519412054364754745837141720575906760119453000191562216815869372168604235003172189034690469402767322280759532063161877354629977969328336555531451819941013313095061715483511610959026989064318687918481442639143011542688166615147360841684681175413149490182302602384773619888466492725489883924447606342818167269073323754649675688623388819263676433070500572333904129372955647798433026743071010897275847084461390500022669356024787471419504998458297908535666454083652357160852752410779482238818276585350858392749213270400985904975374723263507218939474990277565832717656195592124568896587550625199911840224636035516097210803138132791166463717659478896521205810283447530631869704233353509252195877556495819320449302485688594142728563255126842699007884977303312642995799148884199194092719782240385230611781568419700552036573374135628920960669425901306923850320155928928875976888570059189038339783785534547787174685674158820655893659528006343092691982986579834575494404606847553500878799057479348418717780958645345993418543220469003300639830974335127014990059511151282142706687384422208333993929150256573276851724333615140672427332242342027792995151995015782306260087597919876581912556345602943611910510436044959441769441765343933318464200432888209522582709858528982977191715509568994540632097910840560109873279298741172963625824812590055937928881606362705280996941493896018958128399426197326178984352329333790162926024293186346555613311444222120184763329783358484694447209247562761792199987802813456229928002910708941668322006486524369531442536229855898365709163655319197194193015669867663474000532186064940551055015511818452146718298737859874359323803410374049924710956563934482168328780186405927848248934218517665621835825298542842324598856119922301870433503959561251001938126037222849317320317823026162082199808144903927833979537342940101364062913828208794935670421081080689603361395680214813389554775763262097373682706383452074626361213357052271217580721488333903048937000706136957344642577115294419694765548438765549681729030238420191455809137920934016959421604430750364881541487427310722990599954300472095527171866279934845504813051324547269613822632692134752035125249925093475524715722758990836371009874859021840510224927464329150637718002519403234748404711627846390690401603332414722433051380308312729640265845571894948300603072911693668821171145784579183923641820770216631447055251724209579120987735740400153684332956715294233533594305394666404552676845477256903433914031881603656091014797908394673213309193520935229940326696837489445177143417327669497535100426510014299622617329567245441529396605427460113719099901215325972833757057852849424925096303695533973452171404259754136101302917119755906031837256452989354195264023826004746868165623187755473498958331850035132803899311816362475823393113863269701089253051706354539371856567787588599585557444576050226851264288821854006332184563479697844394224208291905426143625740551834344480698058089335615307797063845135032797607776935677612225453664099719740282039488060740439794480638144003567556587855774369488642197191093160485647171463191874051635441666243527634394132711187651809466932752003163913770768505243342737376383266654250994748415914187738766323016357369410132315645517802634355937107716735659098836446311517016210992421593985853683887551534179876069802484143434828551141673689148558139136480910229557348729065544224857957135816993937433615787645060531500457724743035828746799800099974483509515710857397835682241118360189698610579939534146086970046016307337504640346480520802188070458251762995618064645863049921638225695523868105065768754690654185843262664267509290904534474814135934982187602561874247219732625431699947723496838768287128623743232776067806242384673049745280544362486848067214311904032335485914338681239060541962902624904832313333207379810807239024387351569957597017682106710297224061903072377486854392830452629532233394013055334993193439793777804071571244161207955165995002588732977070463896703824940211264444606482147357525007923169983413816642618734608503548984487407107766592641548292603167277494536529725070694464482850834310527373925287386344460657104112324634490065582206042083574922821485410936157838880298717272426360134206036031601158785362060662469284540538479381434163358511407315433565664433397944303930424889951886442920932802207080506338534334385553861062140372005836018856035162038104226986153825816018472338188668091681395747110562343398024163239484395752507560494999068307491104531884557262513621944451927037075877418335739899841742420504253055386031265859525948401996044220250657147831982481116692786392496476658027296489553169133408101531972427507440181015385796747824803745588857598468554965122690518399554534911620606254900625326186832454425158883923604198058272996430042579204642850593096012199073734099353673091154529359684782686773386062399518455503338908236135411374115837643342556849848866036919980883098688183200410960347940201173603183290024175455392316729718243058653710169377254278117662407433144446091649557697868113527562511955418987369555690486060915616940542971721884333062490767565440018813271300857352578237183959701708429333044213350843749011510902662678041055388438430853549897997693115846952808543354148860070622590863193212746461509878083720318850808219427099295998434144837981015264443138605899044606329542334480654237863993075677088547590935956028051868440914054470796344724635166935188125623625523527549721228186204878072184038504566516530290547007640192937597187431352770649265097437147149249653664307818031096289584604994022540532500859987149199938338183435930292403350413954882274667427033663519004463499203509344132064632349787789002262683060065812840696029659998530583837937430779716308817434172529729665389208663002074179687308796698411638205510895088098154428788997494367274504461005505376113704420313905990918018627946806731050421800741202294392760175792039043877994920451711008479500820283294428535713675012597045033959677411199261349075753840145376396296435329361047268643959804099667735410554207459703426872072275537262842134961670227601248700524840399054015731421922403846443482233739254405203747425809544957445050830513479311551214727529220625024190133379782097371008727829980789754326303769009129132112128376949259477523549691436131556193516338073791832442410265162975651239673607747395437223457282611927968356311110234665226746370061059598122887239245817151310913252264444293308197225974882233124388783261084704278606816749529505867470927392673951844048885751578576091041039395935470603893123360477765057432404881926071347632705401929601685237132931298444412248279115129918992457621239250672566378616670655282232286595030701346536670110058727184210670928486892313332629611577674895959779990598912528944332271516171404870142985126172549354850629685843848246415443614137961165123221336918896892739872581575956075954382583322589546873521824846271195834352004270496228147389599732881394512527106936769279274194110250373186559084093951843884993362857525247839731532305475469582107514683271106388843165981030238148159776313011883497781339524224714929960341848279563674075179330783801668513854956497206683258503682857904437417579617019398269178396957767562544736430576589645614453326210546084441182838405436120214438201365246008700477708911211249529568726051333087522046567144387687245676875542494286765536157288401012720962878494181144349821681033978801903371790915734885567401583468717016945074802573910985161559264434373539614715372924642515204841103446134851830615108344343440876335270312558021895808727819804109375986686350582302151237943054075503717535394126659619969172033091067151305238260740384672165279389859087485501167690466921030375606464870744858666194772929565922347691650814138848030529640207235615488611286700270014820873335724636664230568132268997898326132561860358337722859155558703062919331519331662302605237900871410654989559146548006053070467388451391813424464234857725283325976592435381508444438070048139564801984915952396706560234730315027586369080625137405281965322187480149967337179806360942503169551213165443048833472019342037142205998810605706667361807554072550181964463593492019092083972875486166368298812689552311952547590019563927041491986752348518068932298270827533324747360954236265092629225922485717486771562736275134620081491863244480901040427347492069858520616725587298485231345611447034826092789597191489221990419782097753082525092416047356818742523018462038037825301763660124149105841563222213697204656823649366100269827612523901731231981249028273403649725184361180688850835352946004301062267811811123371200303722471913254527085010236424357621189682959279094709882897490888532479736366222065154752576775815834739700080482645102026024844238819286340506761059703102541179622124349472835520276627060638554495276030275838273548195217751908562882041940319363868189699272776090193799516315352575404928602706972124057428270265930096592446984431025176266396244095130054590123432880498441646531817303985234035177607189124183034271014412950017458147566810705627479010455203064368242073686041441496030908459093324768244803001789816626300778960827020642989911201709399112761723539340225216721851304289794383185861161005439876681313853950764272492652711182237637063385526892335902331365109468342912255394193712990736210064429201308243314959960956555946121247053156973160887063112883072538021092158082935280482065704350967728468304434238994335487328025275934171766922629038112045415419663102667934943195418855856226873283568730424925804899222235395621284700566680792625544390834117064291543782624852794266838035633925964007238377442295572063909202144319977643195621743951553523837937956109894545264243011896230785115650396196750236040293587249803400565657288002515769720186674015335442667876369375768250255709017681672976929109186608912186771265989973781997298916166761951573778738367077227455218634347041334878080178186824845563092586920807763565094049894264947749184179543686382948498010812875342291756800790501727799063463441209787231644239270248386500242439029769267550479624536164662817926013155676840285387653082627354320938458219595324749078219398000632897550455707791119354011679616531422197160350433055207961495755136192987821254346381125559240883299073279012902760871474071725690616016637555388046109521833157351264362574546511944372857944634333619920159669815565241757111627003218220251809242242445398871386724546840695582219711166386847266864892055145482457610200148405056018837426532853948965418792084326634777788288699339561948993324624116958785584556034183932370814063845607748508807852097728496514969174819383587925116468513092951097204306435075244968932991857643088515705324768430725470542557254500682557228710043973540823529397215122550794707802680721162208787400258933384062274859906492800320354546786290417238213724141133975428210750530587108586163104350883518173075998182318773386438959330448062481048672389984200376843359401063525234598374912924753660428788843070242824489331383612719914269766710783029972520191901507019450424096110381326716897694119380391350712620548973055166102905856624835504711664888425750589619072669692726805726500916693768210552497767921966538255753385917579690354252286442000407153888168406918660963208936032094867095125862068946196163689501575668577100243120599873841183761522238453410547831974024912277625082412728570778005265577249762932073129974511039602088475402489439386282850077813270665749439714132819689253417400159893255141765962233474542654905405294078598858768841217482077067384279819428135545452082357918295323618768581083502422849587338326246496170626867019310907976769227146239958860464784664046358512603911973824706465097806015511206256055900907061101218662364523216150367147638768660560388662998224094138012379037034710771004759109461562873593134935412101553330565707571150462350518768367876927094926673091960845055735554567855143545016972378810430637111846681176946730198241908818629599490767454614695111023496364106061351877938194086290092101523549084149229566083896819287981576591118846184686427646109066264866435123890776870674486244874444285885433639670389038690374830717084030633481049265716028865348297530717905777499090867238418674030605721062521375064452084909374566627027632991036289185252639079582034301173406070893066033575044549595725810580112976381553052000193564642540284359903397662303005054545539123581701960971232995582527688381718699731870526936657039770725140398190081541319091338218769378276834595718462842780035814694848396727889440205989791367423516342728781302558382190728953516735520657262740503621258559692866928598758497458242937229475782282231176077705305792948978494115502873482981900022592184861644955947236010109979534452150317833769420935448342556293336553762574714507380406034785156420805510671168923381867486964310853277512445278427064167905119942386060743097361948551179543363327608283965552772519888276416869024788193175537205015877692236155107078693340392385492510777781937731621271475140953850525854409670829605009593453375986305202748391687324173654798595867025845094949330326736939344945779390572298780028229143054219026298761459619564231088764708669271746439809484198950708196789547518018683525284509679370121818050985069862213175771942611502160176713862244294604757895461563309649659642387104206591421843964340317158407520853469030992788655786684418265826921165807622163240650888647274018571731277414677375978222938339241948643573219006804850151239630924655888508698775042783581665041977812531819526095723184198560925802093454879862998419033656989282695962795991176998704264539175647115889723318748278391130604455711151493787174716408048466678930867270042872158195762365661165372558111014627615282429172106937016133134642036826647998933787674571742341218342995186078728883703013770359109076392196733370980575766273664342320333249693974048859299283293961969900240943571765438949249089525765370007259059786703322913097209881406045364848221383774543522967608652481443465477040767369643782119288959389770213423474684903034618378263608692401990844833745228617258362583134433673542112209827770110957470776745476647527573602930913306455999787920359974192718404787091944483472936578985086492816394505704743355889744294976052494441476501576147384261864177223264618709904855799294724896526924001032802263311403848114353803663172535002907302207684679231927176459423306529278798247759188737740597534627153118673043780736032867704540330185276304223941656073233534673238762459370345048858811908142067733277201731829976054736811637590058640981037731273563333849414658514538408735187064528107245541299417814284887969259657905403821341424913884377920223933468284183103183468035833579130898255718602304816097451976362624589268404816423506148216268660254455230585635979348604048047303626177359006348186196509934780152640817384326195181606185835197960578643184180480531487311431047415338161262161716230574650408996028559855901741688589780833383192144165683746892322013938400501993714701982211462254055663051363564056991412523816507246712511293194636752553426394206845215252006526076623487258979036716494014811464420698297387283638182021343967770474437633067555943039292784151024614259637092378389948227367318505463841968295917527608272853559300263115773173183126090005385743692293462534661632520583838504976843730703155305090359109975387337618957748583776081885656614774517573212580487338391648700098457127576014559046152697454401828817788990224476361879451966127209522451896111448575667555595146860177379893292663886442669173618419075033808904722209876500584500834656059052850814926649847485209631783411076636361787400693577551651220979128506625475693027094859661519222559603399304779321290122245738839934171874418445563607121818754172640453330237083790390947598041746821650271368246531477517766512216522948113130329670122943100256147641322982694705642714190482337491385080671526011546757719270704241639950490500043913726603561509019510087497039662404180015303114613399428810776732311000826635254282056816780454526346846797033720499281434935521713492301261567735027624358422838798201784011759082742847927525274519514713851757133545665980186775328414354385118227477508099358207478345104364918922178258623858480155744706400769296940571168722216073637987103698428608043403861380993949511961669583227079326969938022824203908389412065626949178201870593986294228478150333605353411161976152993801708775722038050204394216750922747452248385898283397806792302481518955177739007209488298911309869299733262123980405004714401746876089097541724848741343335328348237272873176699188159918992563705260597172824184368612806281455732055025580330745513637834376135079781071365032072918756452695635223225115105755915262691898751245790630914272470268314850847302399639531565806219587755175348017522733122504371553046606448219641364162677489878071689445647865708115084703693268534142566686845717599723170044830749768354958833982295441634078629091625139342266927451134554695050770057009940136946439128310620498429596317401377690991621532695745404738943186906993770890490522875592502575511608028303846734447486011233848139963312410666653470551532949435818872382153084957739382561250754522729917154564034612613182418987556279427370641106536366267373272597001021875813840208538137975476909956674284799169535146396620692378858037988947242733985464394243921067018999550875702499044133922050847271917054068625924420181687870859489068976841701630581685383680480207623356857302813674211861241856209986362625649615816207069220019498371111274720485159559002868859888961602794508582164726237818194408319082849026663684865254711737913046545828662246068476374481223260448160326166504455093934918900772029781142656224865828987549191604594891701486202510975362281939014047948701194391818153092994566694113357648024898688706966046143240525550623001219692223438198544595607788257001242664476587160418238388463752052400555807852848518101251983505700863639191376564484794669572397358702807976827347002290562747040343116665451139893780310345465027965310172138013026976511340013408995674871848464807172560511212339820551887471130861310810425870470978005157994783521419467491118285801805353149205300201893840598814523015100768254419854232028354183001195039076060095079267321234955936421441389774139939923260418883566740550838381122075087237435246780009174925554083495822742320304559512788446136815828521664138026192404634206740601838105823336502856828890532375484926731259571559701253238579964635037382300311289787482496336472478979946215837858910348028209474013622858939310752323490258859298067784621940089932974129083451585325332268600094682277689948922705550475309252067653786881180746349222196801855380608340287272320737786826334690673901742162897023585702697879388909246092145143054863327909445579862109645997645799757694750755281834523952346887917880335142953254577142291037752406564208509233644600615490903880629290352830419282116926575294363250329870947259797321467503345409815713761349548600615961987346854783866021575956286118750938425451856042928227802853145745203396886965514787204680706783222779073674899484263945651438650181475107346311198013782799759587780745842300699577597464594469302695316801442432117652423760119053574151631683905243580712580891509143302404916289942763935051911540155015286392970021928603269144480388545183474242965492372946452146197033776468183489255348798178035848774921345406336122655964458328970734363499158553096315037489007816375172993734404643908202789714572294107280755561297957535343676120881536994375275470193135896254882954650420802313943236685003821180691079300266589419091851743928420409524513325917514007354944201812039350283518817200990835144191059057978508547282162872538600551254548697551711380462682005813126187136316370363939681212166915263343829372500607888884978416903660178677675846970089348739402833927272416883223880908443643595972889924512930973824909907839799050236363030000648866941815543328402619493605408200678907197003805944612635538572548418548092896768476617692881799358029647778998360018071590566698882069326790367345016331706426875681508441669945030454108492158417592347917681519631572367491216416928616727848703858975835463052210833546655045917834806645002458390532055054765637274572004612702009102790886425080155091925018437800846827346322582521570686640851253354342050755391564152038213155930080961995821178690240687217008792218950226317121400737039951431683881973230452667874116277391912089656936188265790122271710935530123259724819008239500386444779166172682647025271417982976911156263521487710684518467140391424459010226792931666420787645136622809917883179195445581153873442976177866318127202197895845197585102489326437510787857363060723478359855586059551207878442422004817432335086413340859759325161570360384586102043843354688369740673046337192965693437762009238746655917334680539037117782822902706485544410201846251096163073235874114339862674250890199008574360641133871937229139210046971286308918483294843253237692388239182671464229819611280664813675300674361718269672437891660134499669549912522198662487262292615896307929042125062196630678358504440304721505662166445757862062447639725500752973436457415923445941656493205811143301635582413312666941870306379104320366342791522421940777164923322697893636309994872210668014717191896200422321473860414488350007307843183658572316072670625063288447514935966348248882873244756650495453343183526266806529977942253022740569451274803419175216772111878759275568958367691465523249087319954508247152200801236308637638639565129131887457147353485227791531054380778738604749697575920438972632621030434569815534621459783896422043543218662183832578212003543781808676560607541944106580689078760676159636034154824110035254395354665487131354152037175303365793869925266447262174630424094226112029926648304798549636922256042361676539835084208609748253667300253429151470675942570651609474055357089658761722206700240469006041869250055339236804613107220677822967602804422319426772560891648675492680195710169044376339604153433293322417853888128844348206726033568969580276424164487045993814580854425187997419044341709787516149089397211673262482312294809567420266276791504249810177748469213628673027711309060840678938088060067430868749902131444285073129531884814487618778572777345565097907292980026548814891700675547617172275216199838062239570520212028099450267960337319443537704436765972151374388936922408154286688162322304051184115490632069653376287104455140213727383445517731121835372810110834576056650704952635449183278095261879809065118150859052583701565470254978547630288938407078728261901051392419355155587421787371711025262048036174359452612285078511539027753381553155786491711044299647973413451533853672579661329917274044877988210605706133598405431313297625236912671282251047721055948567589953327719573298797369131537625830372121290673175111401462224875582746936231682454983977029640082169925561369343013901354734357307000440214073857897397115395351614183489055367705185659752808459334893630136054777340799259988500214971511407018226417770896170159314579816841443379878596885156910182162077711620358161256965617770769615357033839378786179421839465444035046958382103010781610940196961290313787310159890436940175665077601891134072877009478136428238350923212637145784097059540459497540165678604216809377324402492055194565860841708934272957887763332891577858761285385240021974286991661655623089967583486071007650052221042782104911510595828600025110987021399198437827116759110820266407550307864038472514949069340361313295287393733196599749425594841905184908759567346234405481038333352834663169050850068660776664995791638036857006336739011159022337782238787703050228060859555783624638421899194345721233022290729778789792942212020855601404192368801701743959341384274997040735105411144603130930458049338373945599745520596180005543619019481265278802827889797976007868079011839772915312884248917316458993977329338474900664782056266425883147677649535491828303932095008404572048974563118999751935267447482571541257399369606535733580784029232452813859413081749525022798627619070647663761500799604798366934879056094722286002971678198486314694219482570776470041041268189402513771310455843037742143847549546377885260407613185205159584276636908010826617036835490629491712558269639784944075324299852998178882963490462299495896172040928356484158440380101128464961716494884241268627585194436362917319453853028623691115393687114790545566757612766760787869147641142485666058980697565759380938337771062023075119085113569130797864103396248608503943091940739638025040283533004538239110072492114770577371299276306767304327668807845477986981859274879861355163229586797660847932924102466837383312054372337461645400662363113759907902437937593146853003186508999955914535271339835025529301110122783800594431965888321341683076497469907570496347360865352327062549361998495529923617421382019085651582929885871077777730963969862424843666246531073597457103132072278277793588381351618830189704419988619092795000725412482251414476032230523399840873821993341144064406485120208204478184303892891170423700091192754816583686244751860460349785790166648946436118068442930534098593291850723993120256479911015718262748864480970744520804695853701695694146878657904834123691672524324330352145635633912718571318463608707155674125260053573713392402305202397597073982577600951253553406455121178589328051563794080204635833341620003475313480036940873050752502150961451120492214320204093732554032980703500130673647064676471237944575580099140054021633825636019599182370494055003565262929635985935483862499433536369480243894962135534099874586993482514798987632750534028146133491407262156498327647377160122530577515451769127285679665281401975328301084204707425786365711211480136545573806505979460155484559271698031849831028967014685463919716285523569678467453463629036146376302838733214627031601600266583569466057989671019519309762506563322442615878066055643639455270804602538189597861159942714929725440544381287690242217901650661390585871823008726496865084028589979012355849708615680547067185546517091264073675978847690875288838657944701699475161678069208375778613295376302142614693532464059603904371506719869425126881730488276996878275594061090079383431465739109615530111735317666807218320885727303645240395239463834690965765549605912485401294234652570835986887897323454698357500652309075309332443083277510548260941002398106022598215764560467446790997468961885054919794546442070297854701276014605236287503406052656999416577679899196313181743772591214793414778815879865115507493905525570779419664545279479151554683011899989335753973928506294414421058822433542123723256746408275710032307512800711926664073978819547046951944003883224498012497907061974234786524584472765812732067560429401452310170954431539821502955772955954152470524163609263047893582978551726127883223060044915744099761722251942139197847772839864167926517664771258274141580499123752359626256090294341944722332656588847976527556034661498064430575430721201476482024551503640083784807817554784316279177829923281327349507636708209928732510011436685448423215302526332219728777015302319173907358811642438899843687444496590339103724741584604224490912740842240660255340718895051341641303131877923439689115250735336979926263389125993298054930748617510133929353932375606849168042611999706733375032871820913604583706679404384609990371263790336481012692619552027678301154795952072039862338936393527172292047410914005268447143611423197572122810653763271335276745742723392722152037549714473567724701495341264627783192996341557437474813586293707649210496093012812784156920126446154002479916757255318829881339686132259025295840593287908579393933840918559740966408401355601683471392413575467803678883833544096365174273321623464803892278709958776970744067888144767714539868994816231195158203228985543763071032975778568823376539758224644825860936304969790245042391340349966245548682734794444791061562208688354551719541522211196091789196017872550558236932018226731941586344317721751813000496202391644220958399487120906952494605596748801194331605761159915260510249979379526274096420586451555052710669673915563357215757406070991085629169782108878154003728238126103416939436877118883866611102174787521078737287854713327151889318140192291564451232167048132197636326026151400681841401490631624721723943646637891568308161658081927239393992564017465650048604627729770625111931192436959661645107746857869288225859518673105987212392431686678690627261578022528693713369029352940077466745222245410082620888561951694213076943851181618136710885015756527606657468094908934629312743804517367077385008862983232216073548597222325991896342755871878770880802978138149860863157514358170562911957784667872986278762654950777928591013211158831964438443285676666128225122483141270953666948612106966636395045873861912339406482820522386234354747592402183751083958511475363548267868945742672964512514893047914716644373810298159601759483218465110362550902426130658482439719860632582470106296322024193653417214442553458926516154689947114538844054137052813782201395809777080549900863829094616850054877026938611953146793341136824469114781613887553564381016551954564408835508925554087032982404288950061893295810587168100226246950572639291473837798989436163639559109404742908071185181758678468956317484873716646726155158040043120294283964812378303804364985603269362176960608757080362239769211915364798735997889786922615639828550482607350127083617407886556787601981069512680305429866731464232845851778805989568354215697902246900254708989593076217862806968484197168036444316297597092065325956101005440066147550262599280328872532387955044632697895253553100217880855155869949707557061055820999416140041054600043928012917454480796470193650100336147085851336183093537282198438185538873619842134466616362336834232277678017036509737759920530495855352321313437742239407829625917915488045167381813928362592709726800013351271106382275338224990347273358842668788308298299024418853191462096239020847543766443923862939460873434473011164505711952623833808461688041541866412582780153978336713667078266463020718566735603507330638739572014537597533810766454249101155433531299482076899782805096248754516286297973485056787333942541871881163733276646697894744736060890909500665746323319987949909584615242171305615013764437939746635896170435261264668796929521373146553214488396682032952339464997964800466140887412858471161158529778351394732900922558520248468252352497367535949697064182378081862979829293315986837018773100443014825331329734092864944093156708024654244939223139389910432152641051722285343806763654919534628715064920096910703779819680759148120251631836150528918831227897450607265195876246640930551979112846795004939027912018525222850877747324043204789317447265356441428011516972039679290932168575193010673668865446600640480822289803950345065064103058982676414921063095221714966970269201832714227190994627602304869479710079108379454479941940782481136625571235947823801646182289191225736073170364591467692968288604094140903495550506670556192500619172533856298052310777208148468776896425242762956268551734479421100235031795171527494766048230599467280613075526634554304144247368972260534004581913869599878980011623970412107407740138634953454778578868974555485785115738946625031268244291678380504716952116540009168396536529353235542873007229146476974971352741413737501397910162918871108541553435169751902026541159277108646215789198666450284738352003015269765665913903292049850132308563266942522723168709126481398108774197644735471129002008344974842518425563199494376789561570066601815456055895035646548015893220196559604014856456658021758204569878330819942565171963684761638379317928545472103560851602979243951673811590762076913041858196864419955548087986641823519520265176808528717781156711601204986535287185823368180328508181954934717479471168017858588537654640232576369139671521908658767760109941220695985890975455120248541617503006612698933540372974946964715702616976621401021252744987713099742530874592915781564617870210325799886934429578784695965671357914249694755455720025123592323160788597192568204559116671154386561833479227439722531738001010175948542276079706959600268495150342537196385873417716126084224545963126531057338292624506163840288666305672903559669616124183971727933873976434774870324359668862420738780537369240865170196382191252006008814597250379666446646420828603338060134885337001041148502960205088604005313568832782816227615332749992447062428542935869947066598243553181751182858678662065931353819815165943542122822707109048962176481738700619681140582592444492944147781852516922030703033698412385909521616995066264833672907833308067678441710631519174646859590375580538267955550807613540983942730044707540024972954214367698212261954399904610800714348635543841803580662050971027931283454769466946909087289210584587242666576551244106644115874052950537259683809483905249836632239639394422287122664356690759213768065730065159271141668864961948168784665753994066035066226870769310231429865924253389815160145967211163048420802253249616034144790046805372601367782353481778984541282313256856038359979697876089308002162844077916373597021871425678476409331126562689361929565808824260408836684691109680754399040844933749246576864926992691501947940890733215415967053861785441103103178063614652298675087141162929940176100108449665334300576658485672929160475185539315169060367047038359719748183605437249818141457323570231932082093614646199692339460544898934280491964698060103472142910991671753909087889613444772099747680312298254387285841834835433824182014135904419714588808927025687192958669114185523899677782551338021774670407957249289532210600419883682649356721771816688350184266558645021794653903368906047917994061554043645937457890383669190288768385341789629408784856410108429434913729121290629140097674279076790994086640615139087739256818565746144885859505797782520816880028376527202995094785738145168562880286595512615674109510438060250137746359105667451726744159294917170958579212047769009452318644779870616716539349428510608407198021315415741740618399690386014344407454560376538939887428154361320979544417198208569310339629059269305341039040557457657997488096094319050169917742461743710142094866427928276954925645179803181476384520055130483931167955312257619358100749153598892384494648192480371378428194526737413173814440912760848131081688747809299377334208364146099334473037506443772888475073813898928283305237657320215868012665408172783171971303496382729181435113498144840944330545045265009135569915807287867089687209882768403834710120458808931141733445102859952019276683818362830591283726185566647345298557749088837201187966995602742525734910877225959312739046716438913975100434266690963844980289459033461419303497889618710209874486813151507347476314645445616462446577792603092873782676258940846892966751429528416493286149419053023001450191428015528872625089829973426779976895239998984287072369602529143701799652091162343095281666602807232957153220502270138249930352712917874043972927594039318368329354477913814829869240677352588041079933089784628253829968286830653475665739702409395178928548978049788878390386637912472017663600229790936097414393711531858650098433994344351105283976989395928298802992033360974037010138241648865876050555227535710766660009020900963797293571756262353806166220965193299043824109189143948232071691496189999015682733382678150853721864711004699879888030783101404564259343718832893929065134797953564150703448447933537223773281433441886773917086046824917609838224816093210215851939086720526544891398306595186029005406090802319329257797008296609288960848785333456585977637856042664633334933429994031762263527244002116190720459290613674247229040539376788698493971022329069370609203125674546991634047333673162693304161454590638407522218409609032783559647777292695850860900477546442513656794564423717921746880445068250344895206532850998946101141372890950537855741906206193544452157071340627278308202591680727438730269489576099922745450270566456182641519334450529364790912571660411349327550515691276811390724369265114181327002170675119320596660477149993047404724944631666713257430151915707867044485643817510008702535433459831212775407378702655334542154313930730342105849019674370037871894447795295743402707208595282006988642495622615983052683307068764859692062393395401769663405806831937683953700449362528526121988315016791112817402545483747769799363988376463513933486170754400112962708642258240159298703873511094119529522016676802649272433090981070705543203398825345715338152117058352798428446914307919393249433672361065187845255838990215494704223654894494537785388047476001430451881245499961384711373801344049772442258176479245352211777573408211461558860306599872870957954691504589050462525193207339015835585657004879067460785859881881914335243263107427023503899976425624471805984096497625735788614811033123256264213417407801963589353480362860633866555498217915576546673997754178404464022210328325787210896097320190237006463197064725385224975356729065103489675427570599934240604955224229269258017116978541073952427391222343013130663384675285071427701489149786558609294804343349174079471405123148864408382165504776684367720989848338743403293930584308049960406661075704735638693865074064445440619537918770050272126787780108571047034763779670758511745182235930533680731473237294551709543741108865394811217796017818414506017418976370845754424181183394377272702659463747034922150001681861312723197976516706839780900519451614428532915161555564369603118065385591828308613588631476887325688656565394776263862813294637838083032580112025330716537987196473685385719854984054341858154531424346736528815248849777172589511689812050689054223826842999578769535707879871727793928052862993612507010811107695366791697681832872372365663736140680995024741835359108473493245620596279895055543965257644051729914608589711598186328874162391214097584058481299694757894453940263420599891519168347714874359507145191937529810584024502098949257245711957687841148848646800814332326038418279282494293104067717059355159048470675372501537345398382728176228312325793035620159575101346899010974119950826029212904208415702643629301073066134485008007912814943872407898826701060153609523395019803478607515503827182133240151126283668234264403568359236612707006940548904591107394938460187254834875234397370849925573614990267668747158306567515979717132796925514597162606169281568370976924148674097023961867946508292961269864442573000585118680391772726570853453728837184804885575452748751251402112854312200706648658705227105393545351717422995231004113762884963300679514622806983326780169091216400810728419844728216584026520678955592752984888771938912595143528030969638304951886513975241591318503748533987491338229734880678498552780603101401374080490722509682430972205457324725381235872852774410869608411783496300031427084098730787972616603247861399327383903257445643439369363038055648494501673572741978772306885199128281826395180398876368725615366302457317001838436611698186381347978591286350543775363694945843991996908505622113056256862596299635482416832106895267815741596306905597455841061902122968226708764462674673735157593797004691879264535526378905167404047085584929348396537781574977620392145668705185491257773829314703845169746573134852680615775949329679265013200186707818310988715362488830239953858967334919216492172201893351161849205827190416117793969693625420341424802674411351074441631976944259505181223744271906680125519906989627414935087445927780254797358257933346875805074552001197477754990801710292009299731938935025294679559735923974886146394094446061779159493508310457257637370745297106383039661817093552702561403926195805958434310538993314083796578185647737753267118764338983356306084867407910697632939904404104757467986016344066047442182119996017335359074142484668842683817128272113674904558869354394424142451673381141592962266105418078407892821185171901084394456846402395473726111584280417009828349811261794091756152556657129114264201519197181340637754028724658004683086565001719142719290017944378462720241495027849783444544750672380931185910660502829594007263271838615930479977591571976696739944406689113331004118673998047955657926178728866638391341469161744165508440064934645085114091301034762493122603687554912569945001779612641136463468082306571782009820186564583336798574020171234819660226090957012305436440216634274045469551314807513100425064141243846267898488852680038107921876900280384897491389136370117288767602759502545186263167417157660445468775975519056670836226876174452889248098879937519761212024570106759025154266152307619918441384888176942586589522022954222253025520000726557179794968929928950299502050811628556275155769765222564343096607789588309692075401197964273433617001541282981405496051597027597188739802287922856236006221625172975402956245924225719609587168892340863053768741642294380814621993083288498128940379571375372850293080045130518219653262755650198986749539062436178110598449146512455103557113652745551740933710958720232922750954930962854852200479264182983551720056883999263411995293881214550252734485862521514507829179943693662047120019059384859181647802169944828755374268787727610748618180121435349808804471502864856100024983804823582433904149443773449726673710453737951516700363751038291962306077669393584914424937329616541853814893102518981787827843683375553531092193214943098217815797950303276885672090711189799245046439987363200609089086882678151552494416962789568038407171897519910231366089213320838434256257714774312560824284609825334561979023489148516524191165979079742696320364766902160035160961324543038464752747910614622481154351020044573960497359822872085718094853411816738617080038137533158527680210113436052851602635316913936986951765230046000600914496225065715174054246591755835553859042295192025585630857136427374743694747597439884645111597363282559507054933422712850840373768601534152282830212537855298516587271350894340282230601430066560965481719185767613558472729417788749163236476183785275138188791772055413619153153324075458493772868788733468114920344004870253010205420718347060724378845079896825127064409374203307942089101031003335211603883195444665869602525960515304267037030162447204381113818080332351424511034314543108503563426269990337009460859276769898351693511322062853153601077681701171842449591045398513280714382603397047548285981659139650217328413282983116127019282770200313528857630918957789136547654402795991347476489960945082603391669209582496933386807649506942702669377163798584690482216226420656383702556713011294878311204978746240594109478235415125890059079765739879748056346611181589524244846918549953864911632617456321216655376415443664449159634212713172342443245518528970779658830107076812790212824555809348422222594194086896807758690461251208628977463261745433562974051696837654490925061434723204342415615925525480322270146363448912802245664255143879719947393816846494063404481697549379537511105548339204254417530872926387106281836293646223616838980537444195006653568661968312345274569699222028188557848042721528561511871737358653420825006125364568876895686686762277981010671007428065989409848262384759425114241812916087336240165542336682158694516001200217473001512383366414232808964142813701247747477998609121949504094497065910534403063675863839972940303559803009648495727447944436788785187532314077678947761472352852128410229504807273581667565533599130743190598565098722113510435247638515062863194521880829259271630836102490129886704477589552135819351739255831335731292055808686572052114290738780598293582543346924287796038545308070487075172273091945736035968551882073495128949239960897512573154815905470301714417875917246174065457449992350782073630654697932854426206409080377656672004173586640983670318078653634138414177607872374542820620374260109367591050254456459129858447459562953050088909114345932612224405939279795083311391116323199137797235072113832875543243988737156076448323092420804966563352089520075153823853533266618211947897571654418358343075644742893907162068317248144508596432584508085149024241001379403465060100330176244368285475085437275140345933461472118026301821288741808838472589177363468694705507911706124453512957130932978444172459417670341524523029824012023734656491468112176063694128064451626426924503107231586611718315770265947343126213273320668659308768287919237924805634793812014848524028052506001568676476111232948356018406535540429607028661872466275763709830002243738059935865605948916010458138378669750100362047971442588709070568094160404762627506732340042789918561453472746790341663462870060235231937185472015642179312653713014764554290274420838688054789935691837007420075293240814166792306142593602403407851612941088224609450484642263868593838752172471989335220921477392293307881111297571331012046077708111513509400908744548503303366717979601099086805229899315040383970830889442827945227267131418918270037116667954638507210705652483684709446466675804267032235678505124117800692795416242984892236900373288348047177393416084965890726711152203419116577470941129950453173034394847210425657028022200423770288372142592203719671590017341657023840565790038204380970881131481069448016734246251419763224089515680420529203065376935324488268540491325965980709738873325807275070436122525001841956667079882481506296265064765908203992998523417952128704141954176515432813682140804460209270714145761894137626371020599207894594743814087229079960535583791437593677590736762596069554090097508120499736763483097117627922978614839162074357060076787235206052493584287124675269148462622470567781872081745329776706106286483512045770693866794150910261900050060499490065265921351266242640908465576586618866868959086195505193447188668770534554688342270118372615325506430947967424570589949388080148529119556587929527021562081430062485336523810270288281410111893596626199564147081055988002317751893455449071486112239056842371953045885913841898755927403666431349221106559956896984103643635755999278771683815107575621498552605297916634278665082732104515979176495902050359797321974996646366106066764021471069681009494544783185386503645938296570298132521068616487614782425482800147119784295492585947012168337085870394805372581352212463552287426816392649540967334791756335304573371346003067971574573179470542328467030717196745592379097100535533578616668306245488046921845431880635310616691558988574968080128078841246973174758468668053105216375815280755074564755461390449866681705303370598876774686376689993661224696966557204816280618999542017158532639832310489069913419831809513238315331531794574219832878327032925075379424970212518449216019060175248985078707601263645889452646387187118405519326642731479581576270926384176295314410357501137807039116068782186482326402700252024866276993708105690230232367691045660938770771131408637421864929993421624271348227745659635321521288479522897152124558001855164024784925643555711301973210985898562356255893677049834481303964980784865449201071370749096020258125793614533406300839850728783352295227438063193832905105621718781886853394495923648665778938177278364168429644663785901927701590877486520088176988847487617247669087620436300011887516378736962007605231241310651234127459016515420893474723671078450623196153152344709573388688591695656287067220053552835513045676143947021472306320220049000429580987350186939706928085779008261548892067953201766625702482991850311983941006919322406556998681560671157561042476889651825468627157890562753410085983637536272312720232904881456559888519455030289155067867312415156310638727338870553039541276892752194058138795289295279905526771819909790933595173556836932702299507086228023648900706014373486483701277288484572898392193456996729975826863707267946789605023550122669416412792734659958999333461089374594481661753766712080095164986331023504212856368136091758701347321363463564364019053082352135254213898282255288998758773033691467887331612504389016078963469823546697881551019620681560759779469420533078525646011634506119707585458368633597485026278643935408521943616492279441503379817638987129422031399731002336554095753611571843976189674011716298853082985619445886124344445427170542485377080957692657338453569974264057739076688375554713227563546114818304242008932154652811752934954615849811211350991157275938815221989530250363366268562410528193379978254889170809340617772517973927249427670995029632489040955187645123428932612710838392963900803756273891465648022976733018684084319097995514778542583094142851633318261914750690610405914837072179710988992954423408606168304477829896628937262263442156503435136763444563155981134383678538022856036363193449871649705486842983644569011566288457681223781023274222571110570194948736762277813235445579743564135232410347179919287783091338462676261009715702800829087102040222064666952870836407077376559996047395885801718466490013268262269012282017696648859104674240136513968488036593416665869345214651445386474330005890052754271241412691208375837430302465729494131457558815080391939825960828497950757506264488723696875618806957851734515878945324247740193616733475856386126796414179848999898667153409351416574619503641322324877562073841988019183001137613132245547112734249385314527683210722777006636606665365089623497918591833221531290082071028527139814369567105829010163821766759978239172808338360486111015889493165686906275845113301903489072369994772408179393555692717839205483965282324243605668835088988275671919225334765104459146218090459683485017098724430277883116439592075816803871141417969763016130650702712910225626330807309721239089645157169227149029195458326591426154697440877383195040067624727540411833622111471129796915710292974315367800408469351054355292464142469247472903853931401454949693433358794799667424790561847349070359250287682026135018218641609381035436757776050792265809030956071847877399963761994839576283708036792564885418767720231397340521892481056585909538410076129352594109872881571613218142844947441202882432902906077116306883026884295872834513589651798331513003115818730903286490936652724606189854907396404119112729249944584357361583406784166936006488908317292951215873198542251487941028684276613404632692937468725124127210807624745778059441456540981533407329788569625045332306268364916102801217447215736553043731430194293205716295737752724723310693703959522355911390794532543539894872317232988863219936221046092223217233524384878428984286708815141771267830116028154532542763503840236206796957849859439108189202544032739433514785734302138764003555555155185716517550143294202387013568961499090590490607725612021926739881549559119330300497466753044935063049847797642288322050129477523825110294023359549863431821149608957975915779572797689909093602189582267077719063866037055210709177466188997490217663678537600298949693718847929840384685240162003896809444444194432906126068066834854139530458245179851935779660317270574149570628595268474355836296418431357107613726041542156011650026971705185272527692069528219164111033913153577615425338277540798815305736335868395638818756256763720140890493054690239017839545392642995562960726205977414460624464067902340473455670271669965952869158221584254918557401314561774286898669381204088873798244828250032283327448871343645238920935296394314929253343085424322007086019875212706413007824667990992364448239922632484458155948592563210570635713594181600098574433078332532191839474540044397015739155589765455811983672916802289316954212464490308719370504547811188190694011413074153976412412291808550859961935162812369044732143981658346607581040501868722358295359459765898427485607530798845467215063337616097007219324382273055034150843445579613105257210780576627179571476945815955393035339941329597734557576865645969829257182434062977508369765771842314142135820006546047483752936607691689093298835059775147713407165473754886350245326514117564646131472225862314625642758033731379340922732963494518676212435552571725349023753778444747303450680301934497648753619101604626504268928842744083862053983374973970515532959352188121343499822539424644378357328193805769085188772663407562393274800747950582002486678811204069703958202891769282151529066183162327565288000531123632669825831248808439772598741965082857396975953464771846751336504493599296924186447804221145729064988088065817855623022347853097252642644424280324146732081152805103307788381296877317336655551346658772441063144867643279757871692597425659334461935843738135259763596580653260780135751459309074761569865966609910630272278893031607100260293047222439765482617613055193756741223046397578585487553739539163321984250999257238937248413254609081436219986061844508911931130113918494959819184208905755024333522915080081437578159302171288284689872195414830888179495652143281018382506206683608682352907880680983119035124174340160043765913475396284673066712795745191189760209368457807745697985112875224893721372547223748553885595277170043903666475759475284317920820459340036777926698143091330199979733722833809427087732408068813411698720854982245150453558467344980808578015530133041235776084329245397366010121217815149247567350078447218453611764775435413551723055479592634206799742346650401716064489798458540928415865689169629162621506261233088619667123020525878102826889588191445190083780451861526808356173950422245338184263999226596258336670163363545258464742552781263951251129048323509217604990969305992198890769532282788260527158632599171275524361916084488213551991805176028689763181207216292211032425209116308452908553629459309134148563425379085226343766236328068822178964523259651040210000416221709039248139484539656065084874560085207599483834577792076697783378378356730875219173781461490662741372214863788990528350864123090823254371419421246613606521820653721566986751201296274392647289078492889662078128666594775872779365235443218408037639359246779280205700366755882698387610861710991924797242868062413480336068100933471062180750309871059601250526250228273296822652592747964357832054162969695219142673055674480175262787176393047830092792391050305690261770379767774274498756733198607032532663374537540335004401561386987651567523803786130491785630690754501724208979572206392426432169200840127911695008168006626524501368483814330898668299427974589157449486363691719815581563878386474396822387543116481075978395224582660473627731737097759549490978716943059044281751405642453841487768380145722061366920061852461732605975033078639735471955547945445905073322924294669533540715645040572892683652936553701477236068208206373716778479074032628028311837388902923971945882046575292892554583880330211946872507378321374083834046628919143685545232495986964568583102623670261221815801961158534828604124577052687880017628800232585367390545334295229435473473205787190993195039804636286405083074034879110759247558316451267016306779621827984204368300937088479181203213398185133860399402897763935712362698335331083849294986562696011566815382617950129535309584140611272278740170553362483066597892202576069500570745259947536267080756095137045530215870267708750503127534780904420238184636691448263044718351086241372396180245119249137144141918041442693426012012796429318044615798519277682979490824095055093675732970563096828109818294285824362113975440553672218501569095451794460964800779491702734226630178313385623795434584715600472874786842787966616730640303997786676438294421641224476336469733764116628386040957257918305667823010137576839548648673563578291262363613084576771502926769371748119398846843261413552166070878030636854163617459916381639256991632415927543444849235014719865773127994735532281804502363568177577106598952888083789243968854309008234393985194598963249919626085727722616214880329634134796539245722485867745946678062910204818348142027588776200938109038407380825606205913442494123399070232364467933814914565209837370331692793348019323853715607508774818548666902539388874928448775779904787519867423750937599056504896627661346046952917399291642533168007754773674511588300353717998678115653529166097460163401288365519302251664270316316247583269166537036493237226423565986633080984630526637144660674625267494963527734301119772945423924848157451245204426170443801425169776202528332185658001545679314717655780699978300561047162377065684439571534551991093654883089132642539526754219810351983307042206497380534506105346120835030612684937727871691617552751438217222293151470726909538602515798216892477838471111670047636679320319265508752389546085463426274292549083899938079861702922939192082068453532279543809886338892606347930217348047604059008039508738739351443653217271974207377692669571717674115423853417323028439923160733040122336415252046695095860773856137277226188887771779896185853967662147934940590435267742290433252608912355782976905984370832511394159196585571928631131387270506560764525480192463847590490711620712181876760421781547236154010866297451919495436737368790031180065960273741654473079285234355869382557508437549577639142163613476345208301283432899386297713814063909590650537779015789407978881119146090130508920667497248529829241859066696386057649750047356214693395971479938011713896061664730644704373825578164094022289380455924670418641101255923982985007068007369958718791713741751206499870150595979529274446310144025841574414474508323465408383357677386523539846883224166776124170646362004282946757235793753168867561248337638334230171492002859620270958775299948356036961724201927008363485443600062275485717859379246899514714995911523792263344421909733172991281117240674877359661568431052632598820356040477962098728148613288473716706435156477190908418594552163435233667567787362044654342526185071092097483829568548464123584994384593905388393830860658576641436304936425668452487489522702890854795270939537347620188683614186191030526456536607260001249562680691523750866289273734136776244785543118199604552845409660343841595198131280100353436195784322811995685613545786814863132274519813988558299601013172657113644500081700437790322407654478728791338484467964403610498133694089453786077320138024498642709729941288710973998449851203840366803291358826003922584449849569870553414086368994825075843505682914860518932511034893723138117155173267442071505501061305962622847019162868152014096135314015916916877294742465612366009542932130045930624448144893594314471591633795249098682724527024768857568693066308019208414324991435633941361997891978484885928534240932112810122469871647716479264902254045393515701812811320901277414468297014459809375008331574973890670438780339463780774093955925131779639410980530789884497314230297140017673680469013433045344572735090558297740484991555330053219153073763889153595013664507480915669618254887645740931825710623832037077375282100535342930173159049796678805804214586112843274093193085912395200509326485529379664264231215550458282202316697207862806638209975376390383601108272819035625416435687272739609468573118508281131379428076816401961343319843047003004518087489830982214078301464784807693338512152923837373929443944567110204457867758729533999525067542104937317505904583963242971966953886532284616013038972780429761795956837806006932518025959507701968127557168949865710009012766415800917080297433500159831860119013031128930317743474987377104460739534242839092956757183085287550899479539884875689531687606488107308808243864083902092240788447359740726412157313265112644192113559921382929943100425874214633234760382063121362702042547874040421978988847565960424555917841124704745592660274439211472407392300141648447104885127806508732202510940943425010052829958273684333868753672167801500658934439268630295581791389650403585395258547654961346568982581279562964423405498973621584378660581613769123817837579770123536755106028217174010103493775484078350467711354673748711409940635278848469092539817573455950164451883773753886497196351059342241391599508593575016530916301906871099359836987235709067068400422033320894761649466164643843244452098723350807772581853721593159021516747391443139114309161861402167566510205202017323902573010177768300133531544222580130706212374481912378119292551131973475639281998006146553032315171357525213115727780019072765679735075877444298257002392663754589783248431927629981712558634749752871021314406468670258040843759152700855473588134547047765165779354328343983278247517937978814530739849115758503608163951002932019289814390307415520904251730951067542516332238195816589027874760100352897765083840143724228455528013869562104076084755721794567461302679569207855719777374025275539253125460349736295858381783327105620272780422253175728400729613160249558435628141912845317174704347381739188871948398848348063300835789222063209474082886055249910122807336671093978233474519097034659741506056526231737851564355770302916695439654521843584940421006070738462885731301450010461014081928116884114994487623044390681095947011055539198825687568661249082092189577755730953439246811515517532190623396035208419235185427992926683174948147224556949028105743437780646440651966488438814461528151387625143040017758810236702840115297303537402569867683504615625345489842864810597537322828515146447129696967376780566327920647711167041558024327837672917038395195406226375137032453446630509020308101945865664966380350959891489813870414497566905838082066773629474276405473367831730338466579668220218451940814335369153842676568903291995716347596320834191497294110835884951337090799589496655964239897840625755159860115203840107769725078465901699176817046909537254736061171992770753373613470433950104513515518392967340729197525195100867779828724172559527765029467138179934977169172951964084752919738113415733023933528609901578170300781505655916112213875407450360680752584807481105592083987304133873419132551754397451606586004980053706830707288747009272077262180373489918245566719812517441501267223052417862356919354971142139112141279545805110598725298646355489569545639285759728275601507491328606364877271340218995833252095009914933983033322946700161711508304886769633917104789383548062599427939293127151931845076055839731545450296915357414990481463665329206685090393773791754528824519432276233486041558648885892779952033974676010854255970188197477025713760428171298955047256828279914066219499111297209599847822505556943836715855590361604309363822117984857337658908931732746158251197912228918297655043242140933191584692782630641518771213695043975666423124315670942272888940736729772502032346164865036456259455749636564539103430637121768723954177701848506520682522672281716750588764753324546918200099018007224864823197520657333317279275165581493497920065027651196351947193613707220677565408642856061601578808880877189893831664813599129694048644307147035274496968763809933303197822047830712141755295165279243163898436151998882655478005465347224852577741810753970493856628518548524470946400135330984316965406185327176682720367882735757321785117558951737846939105969510790434009630150334621834710269093048126335053591523649555539119583706814008719251729009088557775641432279675357115322627137510980954012017676424820208594985353839296580746701610235559463052118030331209785301190912905359655591677522527193861345508100211632357455331072412483855114256564224415480623215315550307919284374089743535853626109148199738923688126357449159324733072868469289418456125134461623954586800549949080469614780125240979835478099871528995667369081246102479099186262912335368094961242468691018042651577205920630568802000266090432525257668567948465281289464994703017462727589424200581578433787701270779692517824718816474115680230188544768184849212728791366876875456138930596653367397570777352975247544191753881668792557164407150874865197509449966481330408261096556189979479127446971651696352126228996248679466640249260280758541447805713314157284719827703612853102102795725427875853268119530877789112771993052247201841422872404882815337458111178515503511651038691115125812317061516291158714429780788182636521643695915857078511020213495003093606266522987124026100587084729534792077521182937510715821731426631505146544007399224640072303063097828954917583448614198226875235625973647273231228855836671285561359003230965719262745439285599358639554575007038361144119178839933898891514664764459871806092270928306855339213175230563939902693365222603366875745212933229978982444644259810795403791875488926668600052381170950471426513724785795170901141818350148917264810665955988842793154130264973169733390923673859689262962646007728302061301710449545752714736773699148802996367140751493391915438807211585357169708188859681343584720894075905054333873779923536242901250249092087472957181615123671234964386930444265367944464418272618551881787179478774711998902186363821855092724362312483564415343607950479509346857585347702504720775336568837781399176791386973546025126794550662237468646593867560219510834504991524114032783556083916834871374020776458185575329752854300458696440598792290034418015047003462843514497129793494394170398103674452801974782710904404998263373380246304739246612869297678256425419476624199890396967004886574526507253298896506287487665542149386066886140919312497739003853170857519217457664314807684728857141640523026250063709512915284354084733730446712083520461418735417897551978201243794331210443003795231492091281640971264412531399721022225375684173772938726637823167382487508674132624118814166685925180814325903557200639034471368377521762234344916874491415870061084603651872859353788645267400078779591388187739832856714821436113802393600281190464047488612003145075832442982950216176294993468463427954777979168908999495614432552100388492880799316407312341340368957886228688172082678816853697157813447506273979960954350825249503735840560385910390603074752340157452443904793754505028369509384629297033506484192590199953852854557054795305605564169590549754418740654012234074040028862139215468638555797211514815900110754501722481536844185680951107392329620002160752365079003304797165901557136019687831656473728872474652750660221898100900684797084887255904551099802260812161942503713539238832925979434025910094445645335983116816364483501581964107406364519384444878560354549265201767194983088527583616039157277924324819271635685924526871109942521697952165741023456749611556007507493770550091100257709821540877417183835625581173116817684561450877850263093565375176723522558022916242455171355030587592747306005665702724157480699357158593842333162758798227170765473119438028199893741464333189870289326311813313369258066605819280101559769814117658728017627663140598498950169423399690944135904914051288752846319179818924244015919670644387647460139633248101686134547447445348759367797750073980765366111315447379179429613483806072831580022635689226296250456317594828135712148326686839271296859925320617359209972052812247392522235402588439716454978627376813139719920124611203438853549678675752510010222998913122607729516005212802846989438764023059363564175409862673861313353437462929990775343014287517198229597195827963741805959885631726095635543566976342016346292162658012234006706656423295972814388845964764976457022191048260871378230410364012000306745631832371659067064737047340453459105938624046595205958570025828015157890736037064774114388094450371677252663737969367369448104155899588301171893240511800701381801367939136288736775510664209990470393662012375952706676841038504832674372004169619128377984111232301774665423840956709507626120004415044340245019978233075739665225486762133181394950078948110509261519208687842988626487965813329369303242442169088266494393190814032931941074951544598901837013227171468555266388043680476869338868077930516938405486001076386718035330685283024473738481565472074237088408534602286905202987867391876045325608283609635978503277112847189666823636642382204270931182904528126679846513033913255597245236136887458212565279506203050912662303286716814739780721421819754096153591983062701423766916552208358413464991937603832002846026657393519551016676434945388887158303402206669716794971636774370082903683354652992425266037954249783847134769939851355281664292180741563871646485503056839944175516139442602155802527374337363725446088185784853370905048413882203769997474376097843640129385185067305729853072666091480974477143918917673598695598670177549923739487050218846913967887142935697251004712753388295117158084726246970071814304178960427515812552174181088531064480915792863718531654223520589239118409154271611737805820319552158190660061725400862803576087335188738929004429125749085360945092377293212593193215103374182406107951574444597791883367915827079327708215681739083968655350188319578930048199199164511040469725507003406885265364091204457784192885019838377430397589996068374828273313732502845862619854672071293968411116240116240795955807132300686004866811269723683088445512105363452696842983894344656980400229264937024841270803267090861813567159075114556509263389913076167622808511972516395630023079575465393928276524518380871451081063294366595265891889109978396055641323113429171595870360422086121788596354977385277525745284800387010756187342996442133513620825391260896472143284713453771940015014635511259801529133323681243478319335263565553176429281742748276924464716563443870543752043704059637973361448058723876087352569419495841761984062765275538630611318960337350628238645682189575919145828404105304109137637325724865932667440431503791393960058813654279456075319181388859054754449872975511995833337230252456595214806130219728428422015838211421074873974722305916753400723727070069835870449931783031559036692774997832733268596138077502767222969674757491679742159270876685123556576420809830414583303127050789046131678432077645705845420596246631561315695269367428244875055555069698216949627405334048263847718205465163479257036558054344569491740327551981061097451219145746055702783612635775708589314373279884606665934785858101331123472751732604403560696778131581984843686116879792319162116050717340525228625974956317109250257952947391926449275189816178507100329242142658729174178837368900514309678112885055026900385643763030219694938420908742635740026359296364875818125876899526615975976819744975953861021617507306088856188123288375755387624869011914630125617185658688054359985060343959172128337021435725043765162749529353986078238456062700919147610563920844154933505867945489244783840109219773749979415744464349187953465484820394446010144158403072408467684714601929391793609646030718549650345794324724055778553801199287655896821615959519307281826411148998628882691579916442839034608889936432803518342105636157972622898980919717085263578805381949109925756266279819228256527425971976588546567130267997166720684012776342360023935295432484590226016056559666166281765322412239225399603872534379288731250132877563474956691860109775375958447111807682733696129595624821555191119224889053467122010314738203117386967437002918717577380638411242861166105713574413202383042451277215342415497712722861429255623862706457842979853216887961258053154207174325669163568424626885028506671452887365262370168395010484587990587310062904299094876337276657670245654676934432238880292052730757248257213005115039682631965964479885622722646009581210878823377260578165256287039072636700171605742123567670465947246890068359140531502681921414447107005556250310021646727256095047351837162701791862051657454870778758236993729791932544181143169842444474027468394889976949959968510348194430742296543732648197198671445281175391313572568590909754424218792440376073626928544035961846179505762070134585668761998871274448418211883663255804193348750611983550641451232025476563232719818445022430275054855650721192327090831650194955123025825159606381061156849089103240981668868383793292500448266803005449343935823220353468031869109019811022810642540224507242698583614169147031008196245394923175077963740104336278511082757297742883145791857259460306526913132513032781090972125557853293721147907868508845465514306723704032703600271716820464855845807655805715397049580802247887018939398020638889903971952144752544157402597732584901876863474990853008461206819173192006127906798706834270468769008092739622278825067140932277323548683253421909885205700327821520399650297195893165314201691802452252562527011668584156748661086086431762896129362852010232383350741350476932397574390702534798346881645035877670801653830468929655964587572210646975891161501367573705298230650069481560055385967438924513563564953766574899994277849297400764406553818026152549427220544401965846249745894538919867709702255163591194794117274483919843104654235924693281494910933145852289556514299634043384665269441982030290737214018250541527001407390697571364138331957826776338023545641980055489978191048809328360761023352435666098763348231767768519577560655249387114581900738375443115181335931105396984439979915442427421265942276301593675785987256510752566938209240938203391914309339804563350754910820652363013770435691133919009605752123530550428791076145102515412675685989829368825021147602087111041310420923661226112604635274549095159379858152700778552191976912983771712288343997473215891161456794391551811017481222265887666907655171997594743302777400349773949875669515570213483675239315041212752156318215026936449107014145103156686301040599904231909925219847813496774654542881105151941775047391413668898846506713512731110099968356619855610704567726168216761112075824944815462558786633370465140813508794081942814318374383152109751872337346127836562459285400741130315865496143338683995340367750822281048381610955196721906105608921299005721834824460904453960072378279075109279863795594040266248773194060392248432131571387529021871290981508752345952746714250184569404638826612293226213925374300361928809958797691753945486424590783511227702973865025929107130318647085587848931905433569027501463406185195542006878980926362050904915990321689793356884024472685444013593404937467331771634778371540107014580553525017865035987340454442145952043366550996692454619242876030255827198864633735514376112196076043114271568181663116959543289311591782724527744302001684785575488852900552501303149255304474238454861159417848044298872163254427376877374578715826237697617367025078879228991627932754313996474491517162689756637796274275769448573696950539152976418552830842818167899491275997905334954539961817761721449827748155743938291401310134799530948762022155369257822864014888388248443281004048099907978277115811017893066410127101248685620214211339007550886929556498277882293243577093223626520261107352231309896364096764374354706682068457522986059010674898780787869895347564913265192115424370945762515903558399890814096049133802967522006357449018695555007252362624877559212196832413296799066089821847329821458433166073232041113984190149702510875722649502541878221571734528079564141820172851734410760827440098076988279233709348596440354808500743105834916742196746811840445294679544525703799594647516973715528121872358409868384288951754277083483520695604797551634431027416072311160777020883433884102541379782226259786294464715899102067199823252770315707437081524641083711201654084187186412628931031471804069901971324610153552932180518679582015148225467282834408078699939329041210185894584623335983808328189844904078804624184993828994106425060942740732937495493878473671883499132251102074723289670690760301786827189902860187116659307838454677460294097814558072050608524336881103754307507257598740436383093252028841059075865782186625547257092852406178105463591085436216289795152060848963005460089458534744480223988267642684782616056282922019716534208554012674430994625859921689351122616446298267989714581842365869514200199862966285847867068126618839440484853341127767529701592419832750071397024435098546218756757468744270319879919316452283024441795814820035681542876025359470816706205170616999946862403595512439531997843156400050168515690829886469433841343653285418610221666715998790297974533876872122402317807133665905875955257729425472814962601727416785331481076324001434769081633175103175060791859986450936920041472102227647031167243618158088395781811202404479622162793140447455809133325288786004844646954660278412527240000773673570985571685079449205728945648645326794962753424071692613914734741235558667293433009910717796966423446906395541968922937032559507731411873015111149522793622690375747550934095063377961390961455800355608955299430005160634260702080813202017170662178908321850681798284288045729137714353303291850511477722338043288507824502157066538253150667199233038462786925749936252030848393407486955900526800290426757007561354801135202861056846020439305889633555951485056526020464153741167387722142074877999032497387897902860681667596044313217760299084795520056219437747052707611354591524249366106995442221433450749453605665034108353239384900671285145801806416814939679296320260976265821476819029047101245657929062438468472563862110877750956981114147269857608498152182961150111141136638832031833338009768859985560180113296771028789419554461687292980139721776065545641284655511669244693543464005166918472659966485871913244029803099687558717284880216675099966878202472382297039659036801285880524065227777266076281851479664676306112148698655637420566179866973586923292624218095652648540879135876026386547430853794769474633879558602515530886933151714622215325037653307489911321731550535825123473526365692453801722662850846663755258859947443210899308913603275219302249272487482541648504671507884002666923404919264450521421284081113060860445948944031739058570565155908952762161659706743664413574239071664853232535070031392854459710897860425796719728192502049988846159154345338370654039882359039474100407800298176681812941713232518822837090817879171432712037164160416580034649103634546786299004894997309446964003746621902405502508755160230060698005266813141797526618831421480744827546745264151241577432899875912776531671748349551160738500540334863988086585648220819836648232413818850708651220584314535958119623051111482098435438312871272824514558721318614153204875455156232362477299502341790644853212305919392364170086176726057611696759702694697004922586687034350266697643155798642599405676025793809589367829452721602135409192714601216628753115465772080492190652432018467836088230934483342885932863693175042997663147304544806347390387994480126146677968889303052885573405303373964293905117447986143292759552553499313726350558103054505341999698999560621360502262833835895335714584065440692288706364475325493471880839687891511887329772848458264408786763632689460309295939964135868647303916691809123404199399806141109994020800152821722992655072202964050404877213427890815584661669239791615273376475346954224294073971685327903266122455375903829079249293033492882474639625429321583638293271582059160854136251151996852544646512048317450746723777492533225715016002623358578150081986123823569617738826616536584139852089609401920471395292606754975751759777805146842271723909011365407965267978841609696064231843066277002083267512464326719926359400501976621077785345631450993441778784421867003636158149412422567247895129475956601574771402950653351562058411643223421887365599378977477743220216003587036646474548915753528298068422785713727860321382987558807028254420216122136433698461783088458753841085671396106221088279489173117087945849915681579745476549697903129867848021189493306770658754455217281746186823876499045265569720229788635849142952840432770292951723534413295541661751198018687552510195229097277195269074902381879069522706297647288472182743764411956439188467306944083896919514276298978370431477016313364368540388504386979907725419268537177063799982352683390845400945738141146887225463510043211756679364450534023745767582173865381946832137010755466023365386878794539387000334206677777343779326394933248725720971351326386783685134703210126072610647852149112836226826398409476832861049072227819772882020552016677039460213828354440304443844998984477092325386550978942851008558367429044244788432745030640687372447358317523733457210119732307007445188728038609079110443635462407901462856744220504661757149739073545944193263010970680006867758888655390030049416834573558673462558548487790646083258071923043280575567238598726606682843462113950858367951217413612332014149262792176125122982000466814625695376608842398459575532196685542004717081982100076075696043305113999118023101948324609929368409827730756837328588304280094772163271724075733142212411831504937080847996648595866680815122318470983626077863137458976759262517317154546118143938686745508947762690356621150906665763054735463712424186061390342362114180564839967606269305638656885015928881519133662771394640972080366252153345525480974921912155633868703512634629515770192349102064215390928244924619875393239361343324396958008211471540377655988389600995484742445223185675623042194841427321086933188711085127351663232378770708882333893010101806123155189497883225756647012060321640780174290020044764794078795172001541491582804004947908505798920956277065377802653993073149750338344058108525498206147276847645202673766644758491202792333302865817745616800136850570122441719424094111030322951542806978187308191763711949918334368833158325305151468939216101170481903131657657563959504844787709766194905886928587131421574271912240636441995088516655200914898523997253830624006093851778126933159769234582205143641199109525336151608484484134861144314547220005871982362707565758025856132099215953865375279280146293978996454962411684990047012295261992677074978325789641728167079405999813920286874791086992012174327590898322682702618766564297198736266193346440961388663464500884652451057090217324717228195912542907930804615126009521346082343054472909595452713271177690315497214413281101971571072825854371879932708279073711484450359639748628890347090346295711852336029675627348528597607067929773091328561399469350324493061846749230765478929007847435381493767732557919952816321824121749439023758018339479119611727858116798648641864693802195504622901051413079459389909030158903297367779353032634016338195619067264603563433940005588575240152606277275512384855926920048140174049073727568930646855250846205229412687536108520516580520731954327781246890171957045507789113410600763397695705854269443069346301330877650111566852476935446429628170353828816272130365564448432941543238956331805007940211372963274027499177406202561059201789516240567872816056837375509485679467818106257264594978915641328023374200372395745596920692124799341799729421571582684786008323085428775928081780325977169387226415208964425773517574555343556244656426427054734642969622798032452814609666589598131387707680972168402682094321788336975444721250776406054933830299274808182834681377343749728468852683306825736288490674866516118529491332317574391379202870070794034362984024060234412447617387590649819687492515602498298917690313546812073305143312485644599694945211589409529304545089983386710140563057621979443986089799782669730462495325810630953153056384502012795377328954135652493097300346538866839689494871145103610275711565483819797493425432552402013405519553043859407252705518902637169078291718046941985872614478521582739201851085146492157204795938700819259921814773835265435560790627194844438894244076647587844395035775180033299853868471969776236192938803697718295809360412157567486549077432335881380671642395428673395525885400854380320435442077850657026905465012302415160012546327386556052070679344625943107810708792458044806846183037890251712650984193266257205658129715323800285224352805891872167723148838269401488054304250925608669314655075946919915615425204116838365496288763373218105266223940754476147288739370725482785616677010638456598347123779636399228079223136746086968223749247770108634441782933534663805990322125678532145535629778941223964404674226773399198189950285905425226053891989587901654036671655411054088471984910252776864289767169539300078386640675520137670154684547294912875960565247146720281315668642136763461596402434117987782123300208578554644329120218244819285771812065372169773152527909458754679154913062112891485063695979084113975875809316649840067670922305754283338357862826651347474455574873149865802857590584572517054675848560513276259466895128144386761949659883189310640845862301056787654207154029887147417628159610552849448591687700800206186685822618210289039440034243206159329798231620402730580525575629303642119410406411158961675853647887674076293886709043304096922549237811461270415303201157866907848216859037055832869064450698337767368077357539247372858343689106046925578441673561484958477461732595643743627341376135207747312545851021321889531800084490848884138414224086994465417490878401486057372835607878429483958117151331617845194690162751105087417259340127706764081431096867458982526775687956182993805291692672074350571032544227579659301825034984080726714221996027907045142465241561757462754015996009235350354114474291221041653947427301408750731767894461272640378061747068830142708811126531386860428137061992133389235173295508051340834856396402529329643937031746189301327050148343061733901150635066171453193233681471969731403504439511505879578466080680362923814917151669351088835871379266141288529201999788790847671154997986144722589128218078385062365356884272811311363773080322494161259544499237454954942331978791196053433050901678254187115819399874114814302310740412102693918373323554999303560461814155790840883844073129771025778395913965972695264946999531021263702483727991513364854700715434825028754023910923058117767290310654917683769879491282036484831329016131689496550939857120317215219050017391904449779980562535045281846486130910509046272880735286978749652753626504452328490124293491575885399819895496585967234045447644667361471236387524208753836549669116141370064762845975909062939102663325892959580525407706120616102078214804455545740731720421020794435910939732357099743339003687208012231331378910763266775419923226979557901423365875419234067547188682065930351776626904154232145984837564572429952149741683771011358345311207296533446351587208707607830241144854392136762233859247227754995390291924850949776618452764172285766181170860345495060754401295650157806380725684433933947708929241390982414730092259879630515257062544468390044010845068306305402351273167584658080691718889093606444762393960193344653098746857363612210355928847246287573344476447526237251446580325357316824966377798439339490592839396762259865269993309458116599025573680720232660211294786716800979879617218159889968727250045349244404033246643105715096420480067295019765443723669211023950661162108629981524020164855296632985789207407676044818774385864910426233551616727630250831491638935027900893873064551065648696026896136010162943697166977060024817999115527244811685777443822566035013024455627026119446495503362128330834368595856432894711654520886428685483129234845778013873767771529562556528884440314648057150811937165997443801968848504297764701514050879149983832099548903449385849097342932879646442725146474809347857226023716617328209445857646615862721879178878950024316065106356788429981255235684991782319976051028239902369093406507574569461669938825043321440244359683193957882579340468423130837780612020105480509445998948466878011788222022415527111131131031866345833087384673800880511331255440299326605141897916121076043040688960411308351769502737110586628177312728193571816408341946914976185369808469670521373104142287775091448292465583557745482752507267975057549084252300863491361402673291550680316858206236330627105944667789547390506584895650636040984542204946748242712106214979864721355416634365631384227019338912093082965783187328010617217537767913040924786529718487658710684690745896256807015792351831043020475694253444320021581701277527729154555368114890678025521752127418115951120907988327372775997834838075808120448798297858930373820656950487051044229844880161132698264317082445009644814255229057998349228933727319694336093390836699697113540184558641621270051617240845355174560052242295855782961810630613405137641162834946494028023450138885114414597307745759115945248188374920007409464672125940995017230700165373181193529098921638348598368363699465746691432509275339279074603549477195329425984119594645815154252005748041633686726071396588563902723919808208922433188505707776865610962655954101388910542868828956179104548456152336464596848776502519573292578359587982144998242016247420855519930052452521776975185526519731793812927833821328917005117896974151625203305616466220017764803541614468028446992110424310128191111752758255596910549359896170092653982616724638017337966815896168877534317855647174341819421611765644070447637339352003533638742803398559268240963661983546395039050446813086548037666456900951460141266561943729121262948628409807960008037982279236924277797229334775406738067751419280245987947234189132666863908106952581987030066820807659236469396145948299710627397125204447328048502129625711377813209492039673628528533772361388488322154308865993510784524385975008914438982372888703754302655931750097823130932657213823868399593699912952900202250888431822014337598422583358783209640152667465111682176760562339619696786425561774736909636998193269273927005437024610967075592030461239975646976197744037248057889912844350104607390507573252097499333137344775972033330268585101732720499162603414092698020722657951845347742222330212028977385809060206414087244528381893173793623688815611428752094600629049031824267141228258474625663282253793101416223524634985497249886721354778255708199087923637766442831079521644590740373562982854623678904823211048318203998921529746148352985705632117895231205724217112700174342275077438293191886967847754482743576860810454036441909786109912087623204842679796260369812781908653055582645058156017616919630942137005572698995218867397894196818924674311716695808114238225238037282955172871922266445500212106332754268387715204784884942195191166136672221783584191361126179858585016422533245435479030117095535669042116897072155534299738569674814181287111411984709015460264351813590275034003112213432530104538021926360515782313296719438868483866644669588218397939960213992903544231577639676213208412864274599759713109309650477225622817288187893960694788166198852284071912435594333325996771423024919248840250538949421756911793366179806492117383687613723598745867107662017472864526948694877914388399573430004982791986276708673459256932414698002729299491461139129499990506897166685677798303438692551479412198903414566387810171581138448689292423131880695053575514213729851418349764576455226859142903142723206004171130590830411872946523115397827541087968056231736150807664482169114490019180705924418496561000343498544269450434786982498101401331243588434100007253797004172184042392461674285701514268925580205786074356343389389647637251418055674917431715870482872291171757798873835294439601220938675076573476785877134175350874273294967775474418999944880001021013508772771749591456323423851202405131147431826637484538125473598536415526350168436129817879467352773238526356255670570430315109551098211349468689067192956778031137554711973705056497055249774260861452995167745213143912741020047177140642264674617396317621749560847763272417944180324370122657837536568947230235291180899029853691458173725465148256937130305679579820027370288285309292680487468137257408060106235467483413027275414464929656226497321593063985014260446025327699999973883288561195756674462538688693134277971942962849506173969381402594103661742899039386502284082768126063593726422306061422500000922447411661154622324964569659637903731245543048715361500335927922847157822930891131856078938707655632600298879872657250838970680896333584830069281710141901369189741946682861941411133999980314901505080991196238474562615213468126715109540060002256128468638890467756122409939031952483253747347100438509706612971656115094938072380085184724109574781589620727991563399498188408287020634280869324520831237565981739770836522487488640922689215495907733381661527241187953562976186692924488484348732278257876021471464675477124848299674071062505237424395614160147725014777908512638487628320973575119737741307856784097604013336375386289219839841896892429272080300715611092185959727067197822081020799831797565245539743361891034888090928899600066871057142181583334268252771134011295879596155208910426971849639808987958084895409506755479859758054765691908513915637261395452343137509564990098280463617472561847307175458151015891488441079638746801841821685382445929716173318464947514028956525208407282197873863178561250797799894250335005395124248586636057182471190690029333360623861032581986644953749004128688309373205464187033440348972517720642439937250430924398238717434717376943827265847826761677971934688040483505838377621374357348094616135384167081396831208576161001832524243861724395890103647408399813768496020211821267899278230334683722047966613375607396191600075443125520140976206130338802221543619003756268518307653269149713208390717264190985878212016242015539764461288152374636123307893763084618324074338929849569450555345614680828271329206933387985616700933890592181519725650884621578187348356488911635919040933131889842602212177200750527160433063432521872363768028959246021418213032915387570091444752435449933199707467895672052847313182050455372725506372819176405751934473510626178663772073343709839016962351022935151405793356009218782432202091037263116570110641644831635188777049086215250875785266575320114948489217959434842013787090255933721338382219065625917084449070747249865390122661975544079030562765120330936447315588459282813848392691104450470997258250040738525144271405214629600901776742267246018630486538506722717164376731923853779979844111719672122905085781168703303668197123352406136686043635459113837981492087016866368937174579229787843626190894298071476321701725854800470721228341939698604763514518652976477773238136084051689477420115013428999132917333500348918138449106106319408927391977318591682432398977065210655724536521146386003310499868623063458023404255353634588335761130353407806639020668549854134492297374224688109930364157402790978366057154615725917413701247131451334570312169991483826170453892088809470964771136056037836750066424057822056823751659337050444363293494590821059795025858120812542871077817652625669488137885589730485474840021121939404807491291752483643997761574081315451246603241342089460562507618054172419384703791633748418943150407021515927812113515410617873632208560076644933160271815066483941181974099726345065705434457113890225595813762054876506417693999537792264797589731422350878756197549534920233742615769943541240061026043209311850717905349069055157859408899253783399932427534218031540986742205386153757080815712805772585846645510055520074261152459764957235483702166638799390444573160441976193231442203667873028637944983413280764381937372815731868568790751328173172097856806672454367672757863228885262903962985090469381091787114528207103676137125902780524214750649507783335571455850162099609908814115343260568427947377568092022329576345495466214343578358560371398924956443250292459695752270704883036935713114370501302794284482234872983410997011172657189722813143333716768351005468820724846890260786529773136355658618213944460007242115652377992998816092512208482399761158663271033147483843424661281344522122500147152053915156856077275605477788664534509298406906756019700161178553624509390015719620158775415683386086972480345884361362391827598184671357587480059329360378422962335885114054774207226727514941210932630320478772828642402252906528950838108431261817553172336802477096980239357803633855953012036017226662549309201838535131687422833007478306457103380027661981086467580151964075890004835037498715866374794919040840507913952592474356289010214806437898847277353428714081058831242972450831222263196783645358438166453557458718248218515160621512609379679630295524626955356708022407832972089938729600524640915598720251560988066444769884371827888573465600261789783003802051680032640338556501942344046804706554782195653626392607409024516648178100563947846552841955616417075123909276910572779902160366631112984846881416313054011105999227500051251985899938211351451123811493104365208804863610191524485385670319614205193302906039388660452276917025242894606125473579531253490000147750299760293671187203018610984465720171532980568078083395693810384160910575546053181345740990541630422275594312353477468425776992968862563560904206367684609769418497604648996546787818415744432684154634726608114994139470740435548126879839789152214579030935864508543377413719694062175727370359507645216810086648662834288368729166602444580685980351174139941815070181987230818026057413608619028329912834486794025247083061462789407834135741951773114417418787318091879103758575511966608927735919801975150014653828159073217483536130352785053432090633228892254241626459451225422260085856279707587676298482147825030341748065733573140457516310643759687331375612655353221225696056060616892851512540748907693226463766052881050724652097288349662894960331411154383837174673719559196866635008558080189075420053296542187141855085332851361576191653699760885049952266024199508559709483533409890662324146018781560797312793119665919138958707983116711258656793109115763777808284943848607743341401657270891453201494883779831424074454304735855985698015211057388949600079154679662125502309662159807509103337125487228153437614794671040693179217059810972933889777282400108763225493760845412537442336383063893679494023945821342345254471267371057001384431768690024310858695003345742850477005796063928255443062233201268265548619271038561114294058502617679738614095193515750247584439173771955168084042073301147008964026688831962908644536805748277045085548364876021683155377332398136694294896603282964810795443611623252918254287659197632243970099344157296828357555981098254465837724489397458868637922541257229272998579872493050624561056966622488746344887534168891368865652297093679340403206145810338213910646978565949297729174968463094845724093973555105025157096872791331641094006238484535069659852243222882950358886944413148669155309003985327279976758400797498299820047901125498301023396275561692903177364185334554364289184476798910213142580354115570167124726524425484344420878743108334575315737331749989308673796514310658626578290098714364576340003062629628509563288991279586089094798637858301769999691939897116372217057975699467185845227322687785578102898554278292779698955006577691621945307872503111233164018512480711485203943135923431615812218649694344373729676868610569101093102445256454548418665258533351966157515110436314538800042727845665760201662485008428117407942046024220415725307134021194473452546857105499898158645696618110995843353048487720544111186838214415369378942721649499892898970354440409795233666298337588285028413681709074301293044585179223009388299894404208707383514422692131404061609118769449815777434031863540410348999489093538818239515302092530088773623557111022591290609118688986774064122826638597378869251349642886280656855884641551877550495025846661798746834092265978955352906946673512681779202758120304036380443798226129174385686699218057818394483905926271951012598051400980834891517909509407076830259037279744890743399425878243110144502419649106774943033418646601711907511386076701294986401816648705675403853697725494025150556519848630331424093246945378284054016089098995620290709064487932239494679543892914161482034712808548577714285889695865912382202323931232763641613521540943633916674851768707984249126943962577857984091239333612081654078057243372920540520055967898399043727775529112196041082841005270604443900225922276503191224429347795055153073186975658622702796434436849272042883918733598008058815724470654866269947980749354772512129699572311730405829737259039183636556729952920730709840205580338234550852897201613018706052613172943243913203911108263094413232808269860434460504358694625261538014615514241238303882337276073145850117228831523305795870084809722522505046478107532235375614398514860676300212577404111386228849308040835821742903776847797548421966055859177408695655776181716408890223166874278522002691350250805830673681917652274690458435756485658575364610467218858875641612103202985576427150672302217387030934177843726783113178615731064861197799797435505369274423639078300203019890891730696690518557936133388204051718282572557310488669982472386465087587880247300630658760297330405991769296735898197967688308798332418411812225090570493072854922330943659489854443699383046797110714254710644007376532257863710612506722961876672038125638681049231240916706021110081197324311029278027409976377820231520022664661091961570647425954847661570496180546564607034058531482153878292199664233896579028878607666664955876732117102047755022197755462282690501820235773121275724650135577629199172736399024383577715948307275590073801996203930751935470378778176262059506531057059805826255090042974394671739122697027878710712148206102713341355248572903664299527907084354306851491336546781094660929268176777546111512386025136354465856908270008458746608690092326731619849114784734011876703893220198683135806931499228334411455436328815468657728989599020687497204327785937560580532013684828398572618391383491330152010809138148695790821714229053390079683879175847932717542037113846390046839588905238002055276988008738182543538842687772281854033228068706640175784672697762994459714582145385208073342889878684658869747094361188400814759738065386369350128338622428059622681593469997559823138258426519353197665937944854688530695724988737307016123032402301331842627740110077775537411408399998832175241056700678990660718927655540016972696212490472695530057354553292985841303239168431305151947231710266519898680875250961683815017557256326075054273169456936729819800752844291665734048944433587943225961667409733246040334330893219343675076670592079701256231541644200372455050723113048429473255691918241858437853320273502467901482201694644694960652568893974870088423399425674538393360394974647651754511389725473122353761517607475987957006779692512994400172269538277195374476286511948794890498785082412948591731252789838390496225045093845812925608188593462799843538626764041463347189907572142748506597000010515770520055962695217658009734510257060530441265891553924667121934660990834695219174218193252413148154788638438142964383938781288310276737846581420574543739196925603643725102570191597519108740814242912801699441721789923695000095268841806547117713986269237522300350333377450732127922670347624939240592427131123179543405661767994761465994996690125463785564595775814923961555383965509119559799651017924127841771967816700971380172078977843742781782209630654614568602906864071165451181435656159751739847300546971591441213888607294429280958671622152891940777731196985169744204756342765158071433026479439925897087369954252302592875293776340258928932051159330666745016052981586620026410460689839715570736628822774209932754411020060154120829681727043327114813950928676380039005692676884197810832060761799963262221928971748284020928415492093181711451039467906486442675577889780799960217242638033613004852456638161804093163640188659975151829266413003241217346485316130867251632251559062299269161883609145955098279863584460122152673866129089554233251890343229428023318275698204023816824121870321780174296549864355958615337407809963647095035197189559712260094878871749855555453475389552720337697565867194441258396970816653050381685519235817626968560076435545230030503709086674400275932939612575957340549583856689442132502783450212729540610138533291399255899642002585500844977274686883319483550219921100232742283174697751277404943043825889943226394067000508675418594501330628262308259063469138002691572874426239740103285501767429287280113796259772582652217439017124087619314192987837750601394189397711925192264766586009755092511135130040767595541139567876564391250149879775858065225036272275296104057976189576645410087534392559452703576245711980108883200212553314546773563089252223620328347383654609198961282851265772159539865975099926979987035978136017682903053664813900171429992996928635008680203688868431708125821861472090436086102316882830337241343038786773790182576346632754776189206352094615495339401490156908409853069236862520875132871837517536294053633920155509369133572852330890574874128143740921177317643362976250156613808441654477644803923106036874160045682907190194388001461544171875690350083246639684022430935007933541485204117833988512099997511537267533834128273337269456792236130946063601008869877962229517501175472095665648430723123565197944324679491832702713535484816808131239657559296592920767287704819361513634592077664886094135491513087612224173899263143584354878013041103067542556718186497328015919496916576848532413703045283268211383139206234896800751391351700110002472733966805747853333691027824647271903689255774750297996447992934758534401899736475637040037521941383167143220006003767886848088688650440126932913776329102421553967172475682718363983019877611028388951601364432124872291198202429788903656741691966049717016253678989030114022914561146555942298304881674352289595051866438445537941173207139527347018447825097062082690754498865870905689589736836053284052508373341230270093586418384667744258636945777725346153850791898817036762984599261792400908692145517407116129240799686580496520326364120296426102762840927349962835381310431162315859719846074445310608287980768934900469763180795229792166634683276221435786893285052102636013582151745953429609134431368325511278385735047879429665782191431034196710717234500820252824012045366552412227600204120459304716520375530299680110179000069959276991852480417910244059174193300526838015526451292207598547122919596874247938675071323731887616087159166612808405222401200718902394825330686875704369018417071913422848651813393988901694148917541335591371456289178754502955417926578151337974840062691429605903620673342000729728096183546084065340535256000712453691841105643004784132397462819479641599661581287355607159139529823411149020957798205136591977813256038943784760135753730130711430285793426723446512361843513130493245656182932241310158082066026824694318811594267086070730109639216149279428654123630633309806133140188082218428107083796802452218983739500965971026925224217909578257916932762316437079270949288200237646013825853558991463028392291299353733937753888063382014414831600917322411901191201401882133131076880450612014343915214010177794906781535882327836809098095546661729968608753569039193738026842019089204083242694920062478564287584347469061069076094080338221367458614564257707376835329415138487059466694495488813957867670165557742571259747341572582779012568961866917856215309673664032734910159237758548163756074607597368148879497184129719340401796517263950085940959156174082497834791118841975409989591377462269902030162333816018846533544394059388949643096378921565110382149156499382024850882987411405295982544186273723098777864045743288170283866328599985043326095344261488044466025006710628091186459751907930507242648210592019712284124655647868529821392872827243681360431966364825646486092033255835224355074331466264857993580054766518436024736927030586658350255748215288916158239335762116348443910900020960395316784310950892617755030829807745469978530796215513741942167522151102828746645314220599082170908780783452237915137334258573629721099730355366641855033641835674978936766579632459288012284201975764934655128146485114010036690517508874554202191966245299407547764811110368530822154664500532641239908497821357361803939428727355778911886479129175459789799660578332842442059093106677429222820005467444321259754683906320417316581496293013217664264769016636258972761395362650107922988487551471996594078736577449002278999099666659581167070704330342694555280323431235046481160917055365280142577384696017896824015064829094066882949272201247514146626539670470289727680802070360290969047019828820868275139161026212604513439722772792885049874884831768797138962787336221707944163358390772085512376745308853997279511303544548874601562704176012438831082151269476451451271772852317831765169324833204403354407306895065782253397782471991471940450943642190076094722301930343147461646196039575682448785309394584576260460036503171113953550655238778549894664091311592782849110409401496331801981333642967498997709278035250945397423238277625657232759722002773343988131074878999125637506510381791345714364599192263797867883695927503199576621370952165981779497001852884155592233081635046373915846716214230913503274712643297322031733177725965413207180035184707144797307966177811691437980468880518871121558693320798640426707781357024379410965935653860729045664914494823798191824207146106355644283632558322511932035023406738837816705290040948547037749045599775857606311611962544341138133842356001587891848015221625311223726556064087729864040012876388124383380654615465480454083735252855530338608400019648496317372636965514616556349625250322105129504159307894758621322039842257809171207239589843354203996315424042960886915053485976073577740157717300378555423319920744781928674565815700682009754192375994567675154506312046384135715037400773009123322564122446398548517495824344193684514565258146770577150065641663467659153193657148649261432720248907902247241372801113432301334338176483520601491220631031392154829780885669096481750840920440518256512609860107412860261061415533607195318216690540281939578036639103405016778228038647101780921425885432925740610511412304315021880479172259015810145149252005562236099891537297891774359288436095406382517674878180086100086769496666018072410511501531888234214497646262829159997930441376930517278722857942431825311092567418042328760958315227520076606514261160422193723213776943589030887311390952099565850124742484840545636884359844287378220329436575676604941539316945228848154996952545514102287769879026702585448434663786328139703630944091582509974504039076745961405860647200046442386696852355207019717133406176092138916702351613972918138403885550083889587204258135202331490025091952583300582413890834175870973059406971895404533887021325206314814881239044741004397462202537102509731490597387867808499403045715486711442762742467079622762393349721179129792998158109951308226906383608261378341129134585514918184596448652970682110290564949138911315906929633098264667084274098470198714086504390342411963042761783299444062490900612081329691291554778321631532252642601974461099926890790292075287992304000699664377359383091085139144779397940001544194507696449246984511351048023328063571659055049974593325263281084924872578414603794019183128992862729666728153374693111958283736938103190857051270368711161022713088600084886036777704197472283244002403198074424445779741183400375291966353032734170332690089267125202274217138327598724914357668472156203436464538210674294906124268043483477587790206156911327181874892206524222955258628761421939857706553482045959426931945195738568829943043853642056083468434107292363070423573286679775003525903779217671589983290274705585683796707398235494812888123373128422517762630048107697882417166641507054590414626759699892340422940644361451431035046535890047665018361258593773455931422784963824233128344108579936069340120492633001152867987423723576143057037017063715620524241502182264716525698359976512265952322291708655799827986475132219690042601490199506810480928681544990327463677028502484512983261314739763005890348021754124640406635549579773842438514685039928556502487658950066132953647096496166503140882810026105421970532008312938684934582265960216505339360924404332147965092840497873857207010079431570476933757364613075918248866970873231478400343786552913179402997819362453717311588467791204172207901642936679304416506921680813460713129631547564062246514591419804032127714228729432153455985109871692981769384101751128115784749329677763243152392507148808495011782448602652331196297871562491202636991174682521295857153066522389060821896907054818431351894927414934627720782020873002815251051114429304631594050294753323332402638836190913194016852539650929184591476032643393870075409719766369416038449965837500769339050789356604188736529711183574312017056224193356796562802434869374676141773165719250864818104922434751436095697194755371746375337006726099557999130935500584339594077557890378381237192990552665100921404561198847848272901570570406335488444817012648980757478636694548142240692979135485121469966221706265384616255416187040424909744696370382903386360590432492648083903531199479769609281170508965367487653995343095685794269752960187456594086181659275414237004417281968424665842874573281417300856457562817533553109417818406404290506881642565734452638157191606438893434050188502289875198743684052439103643585060400583621142974809374595371903719306235282103108433873090290832505620570038185178739183765483151374060940447902944965566393065995412166347565260255833799675171478803623836594185176846120436979079778690136208055551982079688421490713994071969497601040841854263277793922126257426139171031838549480609880340321238053219621033916838361773728918096045483684928433985872933942103466818994245661441394465761750286604910158238188099348001822125645720365565131301532303189045537908225160178932790152319525765925954546442434350568752418117068878635070218046290626854752557534354177217536436573693653170378146985224570143636809483142476176282712674933585388821867699130182315626559433268035300888626668577797612810222449010364540559800659824996358948278651838878316996796899464437346716840536494472527877402039587986135238589275178156031277640884584054427045804220201592135639185872567819267874470330811726240632918155550003175155892862583383321139639044447470345025527272269408409819524988416013859920784048463812711859188299217664557164890518782557651252595399032664056322817822279829926893799713315342463238148243813508573055438441962054911704215038248509471081256286936428974207602760573296433533460871519409340530824895196187583265382118669002461447169467579541647950870861648937620465273055118239244197881232648082745345645126695800624389190169088328104372510049606721779044814980391353203085618257494830081022458832560184337631029341423250811431338670017347447821613842802971178056221318780914527876688918482104506713795848121106203223372165224241014387597770924809562765507573728964610820231634104399391585803923156372095074317002842000646061751543831813041351826005027664829851540159245650421406559390763235493277790846543026296451414272422096489657849789309380211090254588682812758826596963798205940897780746805539141917312899498850542127441880000457267071817196048822585363054395598199616720837510707199773792177337615767608759369477459542931248692451559258173039267916823271558987979548265914333008244022282475349324111702857576927601091421100504687426496826112613238557556867227799834710097705574851707255367130876977395365727313115078765503773048506106080841842554591656800753311792716561897149101817424377022243186288629710340363719961086645466344569775294864909366553993483608097780550738094318396608862491543742762788866702103864223556568810694638612843731978765040823818513343953120735478080418517597757541157475487684958114615200861150454713737523659139941428107760519547208545266103519145872461686196206499879328651945338563038395773497763071223833013283941599318966410032224722215631895298009637245821757495390586741449050481345365613981633682129562137428238797126932140324793237682670338420016888635766647158799883708200303941837187410558401188711152383446826900544625471115751487876317432841641790682237512915801349977402018128402427895134967174012089661456735776189142645764567306120342224484249111939107732191974278613936652944971602869883819110654594917631459941520389428413971755758476497705285781554361701305015970502563911584078386489134001486057406122532767854548894419092988688956290654380391278124710167793860103091619273262888589712542463789007566465596965433177951877506484672479890354502638498079633509764860697775936173391518428993398920687120256789839741061680535326663608903550842085161815634246373620359867522261123112913699792131691499700860443349571896507574476629148621059377327656390845805573939794599805834942011229163769757560249650182928423088390545490763712294083382268473318871711663000665962658407496373131456700890526927478428033559279081522682771262174666021326683578020199831433970837093937622645806559273113393144052119633353010641349584921282999501960450592328070931195211389118947851254576399384277919995884157731557805144109451469890037732058680968625631026391949429317640330913337441174186461166943895341578535821626573592156533691674454154720472255576617596447371147859440452504348346127277130057820554859079090881069283439522049846876265754151986958796255648133147865728501839611893313680003226299521322915060333871268030480984186423873143989687852149269671461863794976801129617804977805785685350657483624185127018200529646664022310456948269742820260241637859464027116132366637436688828285748720820191348724955853643704856721370319247493555082118469751771425832564819595889226963229106833786266164674534753316111141596698056216937601165854258057010002940550090601679832157912087802040934826550842929291944331036897650883051518927957351325965055277834229465918771238843040111042378818835564968115470463858621847277029023673872439326616125470514901435014614091868521957673104725263877781905231445911125426820267311321955108956983547368683080608913775851680737415469477275793229868591442787505579387076514079675200555793993182716242934265525211466370060484343153008317091991808495220571187679578872333482235819322259326086099528726608158249521313717990948872412377785029189087966549624177302316848718014703547650414287805980085682796554097640175360613623668773353434336531371833152380860897816264703447797362958240062129035127424526963818457713527128062131107211731612730926140422762918053205587632679220585802752217870029522532084916245212185315371521319663465117832026658996359505136110503188090385380338400038208079228418259344632151108408344779519291846735947910770754461312017487661621460659729994631701677654921115849083674648106739437357619732944920562974172304971273426333146103518219688026257616428121287013876798902980600030794793208274642224740533696639554192054634127516414324875690711385254030392420675964932518381395173003534711850951006155310868074111675906541748560491703172312016997966719040348023815861310453726148458180998173844078398321002472152401581526166094197467952855728303695529365714005272173192998983154545832363498455420074921050801333691313129347015463990545346645478635206832454066299516020795313762488041741564301480849493688072642800312190601148677496040708680901756436414810150399119170555960200240316389558807483883087801771856602102934953670677392004215638802431920839786198049315578744729747520002082603546968573195226686596280512312474672501770522715052566733314070652030631658770266436364133888523728377430021258664493384783778431463126686261499909696187985982207274987365228481557686322418851224074120488872270944558146828828809356503537868904809577371985603004859386853427920544628137519587462995545099006565555458676476920484651311650530174921717789711605595201990568778416177034124729521296042048636354334403338917133436064280818730608622445362426218989897134620060600535544590521474487616284856019763725271767984653868150385108075746838836299912787542177390574477338750254590566440747998172561718540271166969791266474795112286294638535289719161597642036509173611809387346784820059619157395640818356237402851577447092828080137885673688369895648259723130586874219765713447928476767015619177783271748434305924516915936675055161825346054170345116020710027219299913983710858312610224839489979764952594010509493279781791367679955271512259386038879425387166879566539942742774800051245274626759833506682192727370327039238671840060085402180528686126372967054687144200567362063391822377059616028575361841454856916049630962379632590773547671283935791023062712670024474518308678758128779586177001783738045169623389339660476351839389571391262330137060848272941603615038094194163178027281361863339852260931959687229933383602904505724038886622316242066764303581030051706628538400198506340529894054577925104522038212678872355594232080535148670437838059416494543003353830155591389267217497661161666250281167060247456927593381256016713946608267801715720895613244727213303529066636506516211986547411223899804829581033583569277347379703553087690968918097389055508129390042362348425617327476708641001030020635072209075720563913292328131961754980322711956502706218396255186048175919943785892426800828513009414148239050745092123127071554124620529214091764909257686341720703599917328522842808339412485710380445096554553405937437144149778111189938611196908533591019219572152302251790400883774453151507255888093526219827422929404579997968664401816692471352870082094153171969600984784351815036081850845637983929226014976379323571838564550320204944275219923239331896483401985272737473255515245614270152583288838039944184139235221706487881897619992386603383784278770655313280550484345219378865345004131550695203135523480732132159685188614708524165023589255741582600545384491171831613988260242711990415956562413740920313796990230650836014081888356275489588868273150004617905452534361376269917753721784704666444618941601260209693200202992277249169658918641572785549028749749852234963190579028122873141610142211588325556604315548601703558306849228069234310485978022853470925320467791952361073452622167951668891536953085047580998428778604769911546380881254950664973363358815114974721221570683989678249861080296123895139896734967516509902481800018593242925083844439944268217341468216142420451287398196652234272381815582373511847600401320608723630127467331465136961436019036967078943011017214397768344946290007728143299593877123852773382806000187635355809810930802188590785842212965846048925840700409026454430588866218280060943518534250903628065516295134804164084127907268539380926323253422155686431546761435990570812550722142019474313473985831564573119822115894476403230563618640689164543208595349105064675410147808122123694445998002030096548179438528704495264898602336428337197326176444115925665030911399976877973791899423034786318729182222149732750648489482088557783700918817854069111031241987286059381789611890754603696017592871623075157522925073187183460885420271203003192978613167842461853629955948784353763423092321632053963569458615508107725513861798946711525682775030307508730770552092901486579387122451336703943996017933248269936022973219551613249221330383492733893940917889974102782907219094929253435158408022254792382502631398970287178439069422922101559758830296789122587861826624727649223676046486603460786861957380599298893369418367173646694171597670298434380803001851101460282808477124868152388390739266065344004820155327503568495831015698983555759951194872167894990549540227089494819332967786500359145953468216008858846623901787519382643102043319782393300595478693778722036817069163132358289901248082359324468486516901889880128834297374744566252294941475763570257148541433816141716840846005636213124153482863351141081613315303098022530316723575306480440591304799719751256158743649628223646861065528972021487400563475351886211825213646746681760522797736796396673675095733849331917700814816013431781435872226415777668134566338686992669181305207873985114244055791419127482971148182827322392147274046512565727126039808117131622251380021144208929818234070493160440929827743096636959705176822780320320526082098371109177953658793707426752799188488085039391100165277368666612689308968445638447166236764016193780634543147947515879362984080811127222622058832865150347871318142839943064909998788656032823353901412133204060210509281527463311708934947788207500397492299202603956085475481858390544895992125384794199958914996596584649972757194082280913240446947002067926567706321693566671741992937780628771156403701049295974535600148519849302482565740649202754473106874620349957209572485228863239162518959340008944381894906144316585860901199274758590432743372471061448070266774846553049924034729560624914489377111485580642384401016652379966640224278428258714786637484049766534725081742243319070822399515446203775316312191206639121381756827364759834472041421594520748415218775878084641441710769845819196213332133342431783629067351933605613466728736575775348395986453233409140374580016736910749933945857006607731681136659049715824018651871441802699561011955930548252008994959316558315510197921321348015809583560246368223914299906738703102073879692488538944320192091168949835631756223519235555657877456505563236604260159919778983494629943177559243751771986904623834371416300833737198895257063429069347635491125426169466236378986094280284197933709361093563684514003940390277363184354187339327297838184725828765553069414327632013792068097757857488893906428138417864066191378854297058024080378232652145641859907897035587632943504398930628273124745380414859902198137153065733459282100921595259913214031832630674288949664750006898216381043919312588643875952361067266170863792369197388483887155568331548039224143083333281040037582136648305047447406870769953670336186645726381919139156209863253074454891939868965115179190139421653432925069476132951693103622832619776408580774679804015004586286512169966987131028018376781100998411923755737526922605003704132244117950606853428193308983028362273978349299013098651026152910015645520080814327908768696362401723415216896012774647623678000367798611754341577622468495331693132349396317034978852846846595627267846126749754334511324894260881027082782488112939672592262174167693344744535636695918313339094679523725834030865955917718903263704885549136923409934891266044247629806532838825827602926839080423654117500653119739937665614345763992029257667697629607953795899220041271549721758178041924351085569630012944950510545263363103263086976625513692117069041727869490822013807579577967649144292061372091182988786957740016847332541788130362517523564179956698949204783908496082116474759503244820351792781667596518607705392399302567988586009270933375656067055163434157962365416689475315401199366874979867965583303605508973376438592363509283762999494844487154214246835765108141995626081568466141557688089208264492683840928293428201301330966946779710296850259319590418567618624054254518691289220344244177014359858577190879167809985641910059905097647799888391542360562958121598095768423768381323569962308028463255820291931971450068150656687489638378079500723769325565761013219470162969876628935597851182093639438310184199004229398285633994479726974342750572944620565386630392045748662101756534727518266392606136401090107584822061341013812978133973988812046472233916861464514123429451523870718132868863180121021518717317170549942404971968532037091404462549677483815262408838062163295310660142940366816273948282583926798813938391085735240387907937179143148984869008558789887541245955351413595000749379751368634272900370998752006061696273303484560025335349226648939994348755026214828349307597299115370516199100791054994083502080532476560651463377131169163100331209332001176495228937728511566136795236802353971298172638944589998997673432559833315427651410555730294863826183970247571301698934680608246580871848405860307363798721915425892562711239646403661009067204888590426107639476919909200705757249767787102323587533084736855726979968874488848643452935763957913259819657168924135445882718132747716742606227490569431819854927058989717644259193597445848360616814793743146704560883122502120831686701674011941940172937985556042961630887227568381333184520957124589940637957020091049412840417108864922318641711395953370967357658939282757654818610176393133211925338880903652842441585204290551183521821026171632272451552682744349650367301973026015570460917936323398730735539505101369326298420665442155933975308018998661201461624301969255867210375372640649618410038635497681031639553097099238145732250424838566397909241756523985393522145465074393707756670161785225670180004849049724886836025490110172831021460953899338213176419174126792228567831655891948950118148779486939365838504328347806813715131038325027259918611048948359487173623545774987331666266685044170565082878011493487929070894506537957034302260187785561958296327768881928684115653658087704714843932816861479899010675605452876063196855868204452041642227293465333795649349544971973685655665907193834950937235745020606729331342044095796742195972219570855321201539609705147203548150450795013099296900480987657350118534297478891795018100678169026769012219754180733322512763375532098569129808865124085199001352591824201411193210209084135958444358750616010726226831834891787240620440567399299357819700575813633671306260908392363651391766876181734482427978661630143375915181835463011486399115953987138177678322176417367960930513979731992861048467476943682716503023641019940012423873933317473460628367475732935768169188540960904243746328757625903126202915345481509344465426536939091685650729844638735679264167442468272831644289262532640118363609942094060625258257155031595182049775297454615718186662435726357838943540451734657474911733948702843349624256547161746583582256213268129281132501467632194565070060002210622912544901931100740345751677136426861196378950662345976901540864745023043636994657690974211570443946713564127216335871960280147247789013860783749799156904881354111181824760298129107208343275473237927413116432927844568712734982174935636783996412238953465737982504067939086030780566426664762982539422102587173933730084464059856082324967446173521128073232987197113211478832789753159553695506161515723303553403087909627533089120341844586396599211381436931590287741913989901173549444007439580586592053377632059226053896643623571403510129973182070382306781332965283490777587951559867990963552413395869661625427959975010757570156853711875050230953517934717420132030766838937211637508436163744131976808405204394415230589052477422370823217040509469475965229642110038647454275388840557830529094708955630801568890351980575757778588828462102045123330417095287346422600117034981375117771495702718564644501597177214895969647871832469724554670030841073160240528071418573317492295923190268736554132897116214160817964556681555015674897006439084867899875757068495569383601291099056061061695897715131923833526936822346542225062978878235211561661558322033497083332615797068103982853905048245992667167761143717148305727670440079010977192068163407021892085210727930581067149314745790285893972326526704191741299486405008610570611349136975097449335028037538666946072964165065087433941556983153143936175789836105624569633769719388099509541747749366476915459542715662726457304571571287332767707044200746339046536445647136537196881492363119370745043913438039824946673408333879765672892801972297501746020805239091867693080145821330483024881822511914428637614518975088795195988529474911869783690253204731996963878332390975748346173263669418465657950526818532849610044309524118233046964297499544515798102916784986026922644790913238085886270600492488009849225972174750962355901830188281594011435324038891234948817784033129832614825998965247525509233143029401986381812566300622337728521076520017046824711159588101671035420714911281793288379665353369368833943879664518522596121067483182867159153242999865571197013540194735507787883684250749190885635688492038209228938276418444374983085441177287991813604403102349649974780613884427935827061025929868151910676324619349575831800627207104075467036240773285296453789799210669318452280607838319575288080546960616257312575506164211368449476771950167988369474888743568668303835068941589510913573320336883249583491800970680503900018129253116076078184391046769541411634676106356101757471872295446312014039817361565890551727359867911417379241728924881000640706566910597062580288022559617712813367005640583970498523524435066465055028716614659350979462387374934407737522338433155535608118116714947175777631200885675284295152518740702062762193124457086289137268763681462681550458201636475889159289195553072035277534781588764601049799531309602866952053809600667636902835517645230208790075907383557747790304350880064078766251813966075543026136906237511482760967312857872888836029893975536680902426241901854625887612862052679230173150504597906314867766678719006009764764306525717735672112910261251971615995934485063022942544064530730557651820296706879287012089801844977173201541290106844307335936106376457755210072930373687695417977622217586118149053912049616826085928111852135467590679613966838347803230298160879130101927954989515133913234058801876689086861435909588889491903183557818158328087624101924993358713282253012573527600681289934895910608972028462023035909843454834776325884414908555915120062697064316154214049685049715589902214056337928057621440328535894733875424320003830199124252524113913808801107742872464751220577032634294587730334224558540543802587865198005731185809623928405173812566044143309086276826318463539748972811500883290783256175054646000550128057418555442467334485268356314808835663146617169902608467728262863498430459623221637179167700383293578131848555933761387569726466889591481471101615727067322057372063102393010769129593559451515392739888393245452143953191652223740989057303533595529679987652189502879951735223745672429102792212733113657176100156115291716040302546133049595713754862259738789786756573817052671219388753726202785578144987031663343272687867206150022044320758728584686860621939456447720154413662403612286546243171558362492568910053811725822419525457946146675871786583941358851021737634547252286449358353228743479680152909395149301160553538097850193267671673711486363246210627625149116569927705631591346780915094179261521025103443987692394155442952040056591085115683166152355940050605049386455203152410613432151213140555082275879718430550863756541240113696462745710130841503756054479245460006965972485457408548387467780008848575483356491238625616253150158473104055049293782165022302296639643901643158940886429529077484530430699386653685103151754027835432080397452707196457670738819593181194977376616475367866539241859610957656266541120021318322696488967645851517246413686511420237575689357968443643289449479511040955302682332784199975389451694278631223438728776124485333143809384732244977843843472094040200833487358849840520071312212885535905443232307700023571228132827223451435831583304705685073020471779388896592362719530224214152235705177626386252778955236815776651467169993912850589956562931465496606378769276922248711828080566754294733146384603759909136296806962549092795168037958774591272304984431281649497324087342938314879803538207688100907773803251580144465282592962569959224627878025562398568350661430272583914187814429506335071504134915807235956667282791433869620448198912628979863247668965782473402715212048508671415856300398365463214849174914655690630999804749092376923491270092031998849397179319116042862161423764998830745003478043317816380823045844290095190815054981368021917018133622739624602818644677672773735672088201538894699437464882650889809942916196970434298295353351177476966726449630181103633837811452082588054624063263099681059331544748092119422037682245702999096064694178800062265369890846109347338104852640890787830673557241901854111525814150378979501007877271403812889674716920930986063082136823705184526347542820842263010624965531669186730225300705485918697800276236782807207693196498730213290985646462326606515807032511844800702133181710400792941723998518356721537842697918208866665886050262309770673726433546267348349390694795054437028078349767914885380302925698482756820241647989458855764121601557422584130238299234830406882977147398987231417170648761916688594165384527052949354263398213007682903370179483026213128996570846207749111754150010510219454648210099897848234971460644895112242081616863549619363409306668157857161191062273867943560942313294489824865652453904264448289315552497261999965176184238076267712731376343541682488806472335768879010793985194303122674768539474107860270264439185320085030473549056919551299899119116761078305555124539255191074201339272947590207704696783489068608491082969108387583653763637278504536096800617636163057681672436238590874499024807522590629341232563181966585337056933108597158699784304862547496940896947952354782899152531797728654471929563801285431491571278767835943685023327359320830248512913632782115887090626687451234616015993844926591814717761742018578350629005680347298326518180813017037647710255096476880564518500544803800844728700493810177804328684480351210024069271769064377900112872945274107691994241065726918706626637265169808423831660726637986585364305773084957778584178117109488129108730845166837708409741558970772922733887362115624679303525273627449584390728969074027825818133794473771638025639360213766143740865992415466282359769371845893328055235936813257942022273640528771129020752027157440107046505413666454170657481012465718960054049246314002285884547855202239870680526346749691675697500610363297085062400491587294124679602915695009975044994373225917213451842597400894398059674572984362583991351068384388858694757695919269592374072582225615951722804881181974295736262901176670662052568472943079524345553897963222980391276690275201740519841644924408771960247197033326157820319226004288301270106851237644880618809712597269323617303866976857953955784326218647750109172429573908070332367823252999353895421901269475912479577076993689244800334622207550973716057247872161162627622312148393174524631458720760231170723829654123459796484500218971075405738760028803893112675712431055682029309425218727581175362444630438903032384530175055549688261659638568341375081558929050145177289357570573537057511721298970556173020837335559724851138661579690821137698368183127045250497522480378018443404789883186911248454967732708781922122456331852517197194108133234587356309534882040125117775004157533999105615001153258694198473205847584101872283434875271525229247111354060483445357545997325474070666561185352125945867761019745602767436833206126429882565891814993841960345565882559253412913079010131582731519525933041140706368726770645716689328473435574768977978812810213620442353097411532475680991230328736000934979353437768340414943083372330787281398605614647800552050588682754467022179031297612749741128342403883167262895119018747951499565535113324192127903087435541035956129886864249399355083631344336243395250656280539061391903549667969731987931974400371807195758344602242029113746728279265991573804506296413105358622046930385371196347000196089203990293054282457056933439201666861604862569392678618412903869455911956614293452983963974027608510792057436761256531410342166419880868555219302568275978285391159970540044062850096342820843798909951553877912793150685290588871297354903175126436514584721025630473306860091348021814404800715460530672790258999510030110107887394634766312187125689511525731263666284031690064490201217553533445398922744846182959374794966305088275797077936929708650047653256696099032697881561150659243744502388460778193939889153113495611140149066741714835236638893978589994937391034848419611702467401778353307466019045586900014080762958009207458849382809396097660542060888553524447804932424027417031006331357110772833562169928199696318804469523545381465749657848873520609515126080034268843171964461116885125581846894589346737425718106935919268743327875823021868257958481611706732101869334554457646963523529746295209956253591541728117727935710577958075712552939294561379464451867336820818620493709620609130785145890542016744903564374643662648896588214966815455332664027662254085919846333085090269270730286662765322721439540310735587647907471517837686939855974984892632267147395217978550402310623301135592386812603959767738125010211025835236377472026381474862834819231243629577949298562953020603109690360012854273117981073563145867985753305124934446508260278982689407116066184174432371227042057025906753620715949309698958194960840755136882939187018290347946691760695408325289767317142227167878239340883349277936175644965706674799979697434519707150345319877886448984874342509537495723832072436950591691865803074982008507568373750684709813805001372075798729564371229080060947540665780341474654450889162441114330427846371930731080346177012795767054535861402521328574178296840926022744706466607457349752664900975201595975855589893504632091189913937446557587098370370927119608469544283179701960185125916690255906948749151877359839659595038101939894789095960183365071276379926831224644439637035449321064998619665474138613840242115948013145077225516180129197598405392147156295178312494314229963198755800028536407956502388903575221262542951384869462050113682859714201169285898921837607646940063534571552672358330177023237752104246328418890102587985267578293890672292610897086633392092689520000066407552160460126940497180331065317997884446358836403409976581496447094120086183118897902448568050130300442678142653569302280242624450221969252814059945728173029701576779472514336039775032500190273835043440659959779425212367281293342865158934828071353289163801096591458275314810632855715294535716542277951119432591633722139839983536987260939904117189121282767083893310939961732680114008217599115271806264173066727966931835885055915047688947832449918967096595935004432907463385180033790733357239188936314963573555331208599736419385412985289179441482164840687238796122730172957177418218045338628885532592290417603362188954621546828805933807576198275146115389956986792753070134137685654280437205481695956352951841141826949905743576197645710872521211047283053229578259530658690241972330348747960719745990287045746431711572928703646617125008036603501412727220164110544138457177747099075526272882490508189118115340432950234938855060205137627396824776898341527413398443356005468216433873321326800441037835326010496329908433753385313783963302938887173114607103143500223298168391319675673815296376243616170652184894697891800797408102680468369675332744308422703062262074032392962036181067094867596838570171704418592668054166566333300141588436745402335449779975380239169404076557750955916748926911102837145505979527797629746550796269768341727360995117472703708828216495628839616054117210540356718030202979913392489821600511941115012599641229295916792713154168077226583840821557441949995728686221275081607928422697087614414891378548455098031712981257496796780225332048334106946762838613346615948338015246918771036903678600366700541174624995504335697381264878725966262643107295028532468652277604374753293186128076423008338846938977223884420488059394013791559679460958281954710312510069487408479807472426954612147661838381968985602820622006769996875273044459146370147991746040277599879647544316604295010121227631711669356703866429548651509650645122308784812004697331266343292184828610043139624808625373788726013707997661042287159168558855134418573439097207595745982355926319189064590168624114972351151778226420440859633379844228421872413144428582823790979319765257517359826365080610390242755806540700495703438994710472419805586281410512884687185155522238966107039870206521032678386233605684564983661900160435899976850644361227608763372626621896466058477926178178727310141344223784009212346740918257779443872671551535708139082540650582418334134685451989785146330549678440733889332380427389117121469876544245385468873286823711235455162832594755009172693345888546205221736309646899742190806171266229306627734863086146322021642426686154569139683058533363390374178811288182177857733893915039658655114642578501561327115041247855224565399329736868826436663604329882174705503625719955401096646871614004351907622195060761176808405316293418512078608276019728214402967777549954058104458092641420742812938319648177458926558342147949269205068863046878658746094441037512370591784859496459459314483637069459239472435659165168936605107802343187109166645790322872685970790600861228624223362843434449048546357701936738803432441087872455187675769191456130375445819679668248270059685729188434057919870631384873597132314305815685164640690821469651391100859537031661440833161366718797592488775903835388434341038592588854783186575781148181710629831627510260133351785726569351209289112028859700138288653834411062923588977463176526302187994809409371225291104608279269932869523612153616351209022870601973906809173422413813191393643582723987452465364340871274925903898826339893727237113903094682487877864830864310936059276244276589446008972472038100033917089047024648859769911893299748333979702104554450125069861897492471977303935251232355631849002163275946548284672716676807535909214114557389568547394812274132469303270635047326389375934956213598949063175578088251110085073303295559724498675033915528813922750799546291472139509113189931496386133792322571316667429373593219790932052462932833683299553094276920849415330352561288409841001497182946347495166610405872726706258012923838447847976616656757816789235582472024419595266343571919417358869205621011612945048440064140754952321890737812636236146314289748519336572923373940959394924961834009952538189921396330083567401666893993128723379483759731122191641485865097780528225982296361350709313815102475707226660118239204599600464756895275617803125688691371250809500581560715183604613076424240848456328869520141712178700426174824146847144180103380106833349926883788840535092496614942785570965242547816090173823373539130989887138552864301590101931111387819828216871875511772501433933941022190213159561055847675934100858782400140816471567407960986239016246524947939138160642118362965486837659174378643089271281156857354810958293159273496872931756371559906246378225914167090701697947455125886404904553781141173556609014563695036278907446494575776872319397015436125131645173348735401962020085282103878023940455437400155503867680406657480063500747471307212671367160190350386989193083067542996996253792969844334864813430818926964061675868161037761086278631608531250236728038600359809261601502017563049661308203519552797692828859716179607632018887397393252458994605298777397672544261251493940329197057337879907803239230345840187418348355567755768469883497735489928535661051406378770369985454993021799584643094573257817979374809725743201723173934089683021353839571460256820392625805729403666413123905820422424314210454902559130611003071920793928383118082321641578897357883854012278346163444362368742913484265709234576167829634951747054971455850231419708334259127230863462079947860180717934773441274825647489387944352233597065852429454267110722555967762056750210191153439593104770687901631458449713310925641586427109119960297835150155624449302631775009534745172961066885793944350362118634666204606288029261000489650833390340143511518156856848712771950326867565584120626297770666763320897629394012701905747959797302284389129058348730126927929181620733758106302455228533375710567575695513437438525083633321502068144995102648612219828568922546786521745456795975366991210377183213859066622203004858640324132941537522308417363856819010327283774655213640997935030527354134803998913357395092712492264909872650630884523489254311230240293615921331082132955728557598277406485878771586376065907298384942537222210658941384434897476555164417983298206960869984406093965655797653904587377558999921636336219590106734383339387497442544316502428152275529998126114882781612534991615505841266968439651723986610395631572539923050341708700345406911290786322078434543847261115052977045478606385023167700079727267501213716538884509991143426419344176414546429060504693572467611053808355125157217216103040514350734925674233423024546555960620077910919089697395086328313886729804941669784830959574462329668060926588685855588592460049138772214889301979256435487436861064158620358345448718538130660701007201571608892285665580017577827030687893910161977000207580927790604066315029362299234365195259431886882933345841575884532245890180872124640831428728137224868161014248920486363109168665327190795933419186882551524407243114284119249580733135505521096860924492827112570187671312114979506778452882354775503928795813990131921510720937934743311603782492921577629213502132678197222978949463284813447197709866800319225450265271802540885627890142392606389963639726213888739835476297680868575516344478528546991820458416753577249877839801671633741351286481420189344977338655378731597542563648267967722200491258500651144325618336625818279901099249340168137185001203323612942718716986410829301128554148171743634308126288353716692013273859158646585009724040427073095525633303794127140642305207530135065132331999183764282259018870930947338203439123217736342296672524924471507102662694838446776651167740941278162896618780078161994296083797035191184954804226075024509817288573190158968011076564493664656575464263328125416271565505636752977076242066952313297529345233624617329387571621493309163032302321782210980985641797117540518930826542879033510186001458035205366880131555136508078971923996775656937695000864855183350544722119633378189805616778953393053261166587543947929153463114654423791712421988053489308125698209574943282378932347775846809157016558511399362152550121564425905688815483635836420070467499249673094238754752519096556177412797722581529215275526917979331488948789932158664337442869351278930235847043783302842909002838008078888214788009236029340898944916562723061771576675643871649226263988198846248245872491350468270341534760676262513622096952995000664711785248020675269839190958192489874107706794784836209902782643062497231474197048971453897429685759366065567779780263897984390313934719898907879406987734657209090251207697805153563692947524896310624081569117936462385636671197413386858597786876180814549766529362879304818297163083565891178056667337864613399880333073737255349564554273063059980822810791082426651354408818780739467089583902558584290921641165731858229380540066676359643108613138014755959886875965678721923499058873373600291518058398789913526394298420693877463066067786596384384849838776340838805681997797355899600415209414574332439593432700325641048481808148373868671488608720639848558015077933335467165160227963069170872002405421550277930741720568526530140827335809459631933994441446341304814904210950946985165444936586089113055166668680113444513367223819984225348780845399246203313575794844976184512844129675669722336859241360931183560983357849460311208097135651589061565233871444354839197680004222050798305497687410828014311834118461161196921227737008499295595346126384240510710588554080341482263236444676156000919784318103785124654798340935194620368781685125682593129705571439260732044375115578846468048248316407162180805690121394606549166935769314992258477976965951041988148018625245093969700612019408844080572642829661402983747365348708220585444630106680645335377704290402170117780414359523276665155621758117380245207649719009449881094036362125697973563610493268211300014972569733602734967008658345037157338106841331124943676522758131834122695754495921239810440479574901181938283469304390368998230974339185369655446010180734726477140380154015234068368319418440239976433687307969037207151739493057996329642644339729499516018601223662447142748171755093615064940874239278027444693692870070681229495680606285738239443589296300809052393552777872158460722554099153682191913351242048028119523077942420773820854886909623553059400693132316590329914572951949928828555722977556947975741298312377331158068727523812920019600520342025434916677898444141705273775710247931962371390067003197197985866624264880753789558435768369925189739772561078825478482459390452701218640760547856639634065130159732537601926686003250075722861044756227175010037124758816742574167106264932451201516083361121117624947698453961312859985127464626977010549290469562437630858504567688915396339872406112389279640551630061849484617139722817123549260257467379205503112493582586535724304782623366177380876713151727915658005990665711126931075847804711237838679770039076943407648372003493127747932008401673027177785086576403054131380030981904436882711988534971382675831171087865651668758048523410432052824529367302266914723111174823496502971573407810993487106286245895185261582307595218656142842809441925847287190042140763648402784275551161754009202978676077196997042556832737267178549179340382092521142463814264574405801248557573123183208777513693735649148101531729951306701394093144760370317386059339146257332229437731083189964165091548601370810380762743086169458903843704459487300589104067157348093916375799324163151932154017920242565088936817479251919162791117865833135979381999680188638144892338146233417768108261634981178983313952065938373134610086898384161777216041118564462634391518834426912086224201249426465141278429734663360242237212823004917188956032285293183181468736768496003101473765969571749957815158042151843866910222928142627047567151095221454094453643159257898394279974282741038102072537554526656198165582619044271325450237376530027758434533103736837868624295939187063247788373179204089055575515700929371297208244467456901028306470999155418274241581659397977930565949984348958050225480909819766600167290950562172031201275524007822485339743948578631008656653328697615217425519785224572505280517565614105054486411995619409595558166949301025663260911771676001181043918094559408990041618872194167613587516068951811528587162422262122076647672336085838013754579666856861738494830806226075457732449710190712468307235500782808833780712623952085641400787551470191914261502945084887818480833118551244579689167038148056527760818780498397352736249156470097191026087971590778324509789535514058150477505567036054928147161236690912615555214780714668949524553300491869768511951441098600292723832305857574615099668588511440041847298310090652391401116911512842732352894548131422719391694840970902325101137931111967038564972854433292120961297754280848805160810827985563664741872696283395533131988982355166804272290238621142078575447780046097589793540569622137464003427953574707042579142127681257844936051889349464442227876226781689225123589357089016735837420710487073701746695635227334470358805725517716695956676094377412138114311025734556009509532467432132944848287000626267179055801254713283714028724314362433680815306389794600697943499425514698712439756134206065498508117286679320161516743659214743231234698356295444005754220453056359525038574505796559939650717311241196209200097533254427170843876640075017507163004995702763545008484745458081940414184143574099999816191199425230612378925577923002926816163512142688034861143994627736420343193587649592488539864152448812497798428093269564515607532776694103313620069688750145969460362499416013280205049672853423334978084290866328122409379716334167285544551924086112542446116143408066874148721668816263249287609716378852185962036868519366977610355643482293524098711405079817690050401920525900616356688270858465815600489137069885459983870675814062121218917452287210823450843746861083595038318743112047899300255898650412099936308492840723422620392251134757463390170794596129298224386999935839957902631520586608760465806011959046271032204338329781658227572088755866285297448335782591424755473568000305190958292732975031849317574031955917802920325832105552735694306660951725874875592792154891064636254202273812534094002132460969972672266661743815380994847146311188490656535613545264866649838114822635456546659816814585541279281226291238220299129281609289946919865748488566073415331054785388399160618547082411156778242984337208873458166689802663607164326970414057707804103940503066454501928927709024127521556391747238019477849972375698859374669501403137660722234586650519217338942258465377752946486919963581287408701201032864074076654870314139280242931767573059078854902060136761077653481214648745586695346578461764116036532628632222925182682981101714366063792470483992149840258113456565369927051043964781679950797710370440633038086360945492981957836278634934356973602702181941397749810662139277833495614985705905646059434469384066322223121562288378938087751376737261948697202853197245206816472604373177970483252898040758563452435689447496865558491037651768321891995383381456775515797192831700989764860706601103900590000589084983561612441528763172199557512378540272821545464493980988326931106455995072586459540075956570092279789840313263589548596562746231081870404923901508418653846236279183172992017638278241380457952733437519038407739393373212164290020604765702537321187257098225948068501041130082853078676733140395902898167564333834122392799823880054826256551980951646112563310647790968363224739548541344977995088542876769156249320442288061834838009446848963663281192982226182219245040410988212117868095645071083765814287245591310832034285639747172082262820475127176406667234705905431908785540308090425719169155849665292143092528075957565289171254347940929515988525919052576201811546275294348341381949090041806009307429247764205625959691920930195914697599750517127340647946586624205517440755999860120579152578118807177878593085252097872297198423768460026489537039837748796705286399679379834525041702989860947736231630391336588003606117240084071822872522413152332736098378164891835758807760399953532454475447745581100720416198409451360110442140322571658145004162495367325224760692583384643296941503854053487990817773081453812161799175723766773020389440221914157933311970206566207265454747847644022238525749921636781626992817261275303810148086256649146851383963480557738642096258843786532584545466109625862087034271351381816568498752410324803940925496525716446518318094687919557877241370412041413793385630200263481403229872931312440731813922421749854985978843175208071840565564172778284497155203318340526563706247942287769040454830653980653417272907157639559810933618401405975679608832366386486159130220032922792707801200693330729536950672530504075206066776578577158670992807873830819217747253510421585141789213287241921865810859802463861347602157928071987742380550570342450697345325757762233839236116686372564545926384847854952843537526404548667673164954240161053400252301296156887478710667269679479175955516928302105680330565972100214716049732553121495140211132949739410775862791333356756146770759896479974964728772862603379373226999352386830624036594566124768268187188058283566670645580914979737666999942361006870325487864238483616643332001761039365170441727233724763802668331491718119371681418505604135212349966407182077326052018187554814114498591412391847943253673717082639228330156107934790736982747535013895284015741798496932828654214993934758011344078951935835132771068343884505652079174972424498941181073438263383162780104691075417544782493229445058750142737859030546703916216118050434552757650307221059617597186907079161719495863314952286885781886084759445639565466846634552447619847863158125942326581977945387925256238823425753271005660431656988137624088295365311501781557973016736640426898076120772069325281043254816084116309348307125136016277554742866587870964057459141055187035527062797287615810392029016394857763612773933724344225372913121482289658055213176361052083442347684108111811095462333004217779528696988923856812532322756062645701504428437543362719711447424066489416749908790267999565041818987989838746805657723388205397386104918209686465268833982992501978238144715143990245643264467461048024272795189600544249357666622016862728296722574006703138645335766927329300029401546799973940697663042783640508400820783133760842869532080006197479075960405162419188219336050701620786681941195765866893700611266486666547783955380043370448139137982971377454511160702702135256544725233706476914552738997810597387377401465764856009984340919556684478289079893410797865340028719052461036046128049964689784542654358190138634596113303982190460423390020913625255485116534825098162848404588168956978949070314797778773462063597288085760176004146818111293240109518063446095659817099472119720259789192198974294448636050626458421786282432135797599397553297838699388031758323785241728755185445942186267033119824722996192870511289789294655523638097220480426141338254550453341799756693577082199381253126470463293425225362613304303912237661524771046406147167256874741939761290209817249272194519246436880453659435123267211194287168107821757977705637735067408319398458618482366244148326419388856528696678324030244330202093554197230929115355135787829607865004353233852293073242687955264563729568074268107484661696514199444498748328131579861352955368926971652136946664981266232941605466961501388753731182787621716438627670374228079966176468344282525448142533266354553652191107797874211396223065678804832397158423613653110363402580166943551742855787582865392948650848639047312245330017840678055559166352200091112154934779940170615842924942990464972691019482636853240804603795378692202578097331104852813836808220306151749751802488510423750083617005891887331966659367222295552930030895771797172173388042624449691412453426247302671714377449013296094336674775504453662113022025329621037851237964167350200435629603687989458443624000453172543048788634936000286602565478687113703544277793318058242168745606197194054990489427152778518816296450746180441459824703074153558527632127562506115623683420538567905843799359449263225929475469016370431381540709505392071716038588837650345267238003477143558499375203934670898399154584665316174439068308669937235231269299096917672049805784708195492052685341515933906186315839504960860546361662080057269556951416238063512594033888737309544534096098462765613354213779680546556669163356210749230833967331449439608260082331624911427766213519310625120034876855019602197736960425264842775381850191817181213567775201778029264425551740606710771851979506856316754848516270129597237021090302515792270473039430723842327912375765666723627384789317073960952389931199658433823087043685759482538115324217694342743182846934367655671036953105061061672708547385070343811302667640783731640868635987317715560778091117402921320359349233178463248677232239152349187981219239937369947555564324794731444581462484205497734639864587905596276636292898560625508216745997769878527443033469647502152921516988135720279204738643497419440208692497701585342558048588178134109942055432539447840954245360001154700897665307053378920318724787480259810812839842904772647289506142518928638757921201730561386330447929710692401948584879225167308194925818361025512977851528356970586652348376168523662801730260977209089054460887915180037741511083760803795171402392381196130670876574937778014620959037401894900730489635587678083339008423449793840400861589753927781321510209887401679746163507851064378189031810907018331181526411341960510414601240351519795641739370216031067409896152571003397755163235340619951906186990223804779467870133128285813595359302776551947572301734564694927844072470901256976895645269083315365769766396980678285489562327181069879249567170892683618118924275087287577357746916809264506131738055219061846536269901642267260952606057187265845885130512049763555017651870470584473744655219679123035619060930280199457806174527840680728101472012530832795252553359365303956492816963515471191640709172126602120453202397943903657955377239418324386409736050789637230804979984399969233179278001065480238579733115029892773277956294797960476934994748980553972829902355172097705845407240600491557529177679539127250642480351681064056204239073057060267866519989273012069440804367063840775271300082159585036007990631995776405222994766988096375557905336886089748596155354813317914590385658592622835545343144677442726506158265744031468130494593087474384972573878775810975528649298015305369916943259607784982241549991987884398088783076661922589172434054952362401093092121166361763684888983990878231088645929260452348324731579461806794906689879148043574044202606447801066412021795852320197828768859956530162683366046420596113652079613908373045714095240768662359496971029408726551786006735570875396903940479693244562950532071736405120826724343997783130303714026978408601423588850104036755768623798694226361254529126922345910468219178588064987109733553848231485011817655201213173346266364439545453598754966439619150986845109164659669809013917919098845331126044896742086649800534554607698525043341758619969047708281011822531538943902516199726690738382612255796689833086934921547941547943217995032195321429271433786904401123898731871651977276238217665924368021994147039549600459206841715327843571842797018584455148149340338751517430196591262372763975422458430931706138856066935444383697979856587062925490569083459477141785338152053818265986875826947063968382361219441115067768462157064556278885962964111408351781304202818825329300667801246084748118821813649623613760781928009469745401109670506802834542579018508478581768919590697145953891101154351183417288287638644495073672971550705889829416242414590746159310476626230800780794986303770028977901127904360208355892123352139994937788003280957144730522988304580138738667790037273599163949000807580154448333055890732780975309330692617799159047150494431786488627795908671931097912891701031449993738124906818997986255857584072007977436160985947676238750889111832687026161809355071782598184145381625707916692172026371825253305496953470104160940614139000022293236543884665071871955050734066212703982482854164056966103667083505153240606467236560731573874468276060144039952688359892317869561332556292612199783343182853295612671546024747750904158938651286365287195085793758640997604417125846913065333482858017237787284161592933804193132346051998162337514946371897768231280887608447618946147239698431619513707122307074439929365457748205682699885917425298800391837727050494220953986429846843364604319806600296984891847015228341026958102109194426388464538824744040703937043824253624662885437725352901407291753223797661339208818339486574008263962541153862959943801401880869866903676448319384601972663462201618412671570180896500198420004307624797366534858934679030252186007129232917255896644247402822641708482051113520675701682597268746709057827575308221514292894655445901140991868289288350876837529770343231999563131151472554370959548861722375208786278899900918154428438484767483591587013990185152756940295405565695787015343720725159892247151234671244353357631057688255366578370111269921264743641237789205622876496775021945402007467247731092170812016612739726549175313996818451936874947565341682032763285617091317052573550945150638318529879728791609630146069955059676769724588271120494993832349246454366650690808095875212378815162114123935390621255273332139282244119209055126678865088223065241616069747230048487070478196897712211542895773677036879973861751506312101249357415959827237629545920873529493648251224401997644748059197594311584044575122757087385732481012564791019018925273033029098125886249935823291252927094746393160641296851941116649884764572001386133089487965860029513063494981115916241070770970295531634021572743089350024872143367256558710148577372459794516372343218762728681576928267311461712887986911242185648982069265644908012875809698189066441265391503411850207862638363959139755448560722438637836726223369186223545896511832773759043825901203981713142162919813335663497335546405350681719972260294995027744164263834607313499077981945933501345142283857194024045369879538471985931621184129882442040536022693638499351550304354403910524019708708984281672366667282269793843427607471501016001862255936310615377770023304763668720475896273501309388649305342057835819025332043271380619022086517923869383670024884629589049619130034108206639949008963253109734424063150711055985407985491482104639587965640834274003455827125829233047751321714362922457929075753369381042903497489029783753252655663591978977743926856990063282644843609316949384671974994364615472651105043695660495637264857527749458350568695307021978876926596978768301936709423297085802180933880506006128220837186067833053004517830885581150398337780440393627761566874738012497323390050569939205445099308059496692728593935167918261955008754604033532123689190327877691377060302711114010659892236231640731732588691360465851355487025910904819707385099930159296128138635237095561227333372149156393897951768837127791819426805464031455760659635401561114666120463754861433383355732985423839449234965825808083090581337348967672321841056654505957728969968880001539104721224676828786121257866036429931498609904460639469560302575391382498528974564846054909765713313852727648067573975667842064477630038431779457228008856775492979997507621760121449114522742509971545766421599857740046477023788778956090251842119729019184896264845922198324223288993197064892909081463067893522777114035997893895290901211306816418912894963513043326976425291901339846699421478699050928704595826254933065223565254278189974173452367222008655194216379181438137552108322612434621512003213530172647977467291081476189333332918073450581690172390255417244508328479922900356451986620272610923939425268990929740550522343693569387073621068562697352988353620320256496856030930520016002032693585051866492584169850298779087619860167541557058255990018067952307274910311112327007086948029650130728757146501389068971929913796050306143190216042137852267666536754090024173762883471892647746709185458984022376859508812635692876297365661308587929732244547586340093631608714337266344607690234853134322249858573722309570026145227132418172844350024239099520926499849006871193607479048768958742173926201290312959095617723143537657669694994268817293477366004013367371232015800320220835180390083369559319772351539612781087568164311386408897429816560158594765717574895433487031763619696984252071755215382570663468339620372543260329071563810161850514720982095607201195218822608380385808701718120377639176089569653987257573480511378273413913772628491197811202084320821202936254456883628209018080094980977030437512222140932317323206964104839152973850795377378513631549547615356259908654171987309967241551410036396857563627884495556156489084462486524596167819022334323182003375920163813194654318604782093314866826328609023911461601124429376258611716017797413528557219691277992994151889798509920004239518092231486126683371383850755549953040765878179960867872923453283619143188475813237351944018875691402370112666824579109244972771768833955749544801828407166000916320008851603594906016040966917575622019799880766674582357762271584537264354809018960728374258773400486923165780772127362981533351909053816731620139012102231372467405641469474433453330133059470884179250779961319124796559210216432446815018970614472358958717283595568522405982505192287166946686932623179782062872930815217378332340747860655764186405883106457551289503458296050509691626968319266619688827944107007385939156932936518904970075922113538747652123772820066159644848377436841204833381339752311386041888558184101525147892833651338191567320110089587715718654669218072530235993806609355463805801772175439678400360097886589820863185015664192936417123700162367477210268484457340293446006707642201095491749803717998976515880813209616696235170188699967630060178696891301944933142870999717078629860515600955932148069092205113362572138840287574537614751795960499304613798733877022792993176423809651672013408440003503815955007400059653448408386732586382619278616901019071172660275051968986829844453744949229244999537444956191133867433947678881871400379943479549657071861866984581141067966819580030737209537717917265350163393320430012185356286213670475858647331795135414009161386862017493841851184841556233610502792760732550811819735176790109286825717516890588261560912502988283602662695757192756452727621140725663762790776797312780032882802337370971052922586735837930634660345520809384935142878456848660672778643158921186337367219901749041322564685926637817106604422236466547085899157708602713122557262125731439155846567950355512335438342071168261598821501357424209868731605157707008411844795614135328716164409035333137840838773731976038198635822153781823674906417785642566279260394739915852163444355791019054538965587440788535358077764239468815868150459274575318667565623513756133701928778759317797165127238493208794853289272879819212698045863561919756093706471539052976399948705332187080467963804739611526095905078585794065134591644622387074556109432781505115372043297644215762619971266799607515991429374877816523573956449205415579391332141925708155157688535948947329634371336662419686693029543214985515027767463544127280593199207238313983731543208956527653641567562745657624035873136656268874299352853360885758985850940018321334797882919382601779706707944363094035433293216272104197830880562790410887417037808513609845083005540666609916455424914013151883074008659086699811270570272593107143989840559397628467217990731059757877601174877342624406230366563538004248529464093855906702800100635071955536188004935508165945480180219463633950969157329377096009198657393080840401284817593443989479648755125963701324187086307349218740265460759800231301764327000185690138182319216863644818795160378058125438192923592613797956423140575501965396672787905130502144225112807978295068812736890023012276408523166993177968343008079466293192353983221676736348494669556163150151602484926123879379257558689738676387190343113068088924845272793544500467107785993766123209368625836852873285196570617383806783999859476652117841735323875498595787884322581604522201267423494697982624010284324099818174837999946529980674205855613039749637604585525019537403604491596978745241159589971473336697623205991522871131729665822219690751863365156593012207112258927090049832376383471549552074566955616976209641612963285998296679658745032677683235123954587947280857044386821461274386741841684578185788800163321605862095494254052633178188801639338230416586446022179183577437921625364543539995557983916782832160117674060211610259664230991538390910778766899862150983033946987683025519938469141102202785487231913267415941195833230975701660154658722550047037099706091979129404802355513590170938734517022974741348424347754466563296355095052404851424118234316081420323669061329787459453022948657857681330050819439582638611769044508407612426228739613896005355998266084347989705376395375089752392025516280776627838639683890240022640004095129751538528146829645618969325465500264961364953714748481286756558425019794478025727151289811966991131669378227677098512320825479501130796490488158490077832871196818680095961555164800946386474197428193382256949350830102707028500289666824228248696342439413701531030806061685856632762399757841091205349911757088100863335544287972920086548588854698703629897149752267243556932179163255105731253854249261984048018188311037792443646095494156861217140234341164764009056908256780990492157449215961505896800218691000213210760624898975160111014618555208947434837321705526903308623501569747797500944986601613456901420280519395544129572581362193490618926666966814580259719255182198248861592662095885308265915519583133551505961779110355149757123850714102301931788240942837603333685372633277870406245094355938010708025181266573177260848764869589581729544338873430787262151586072328611393475809786317855132365965757926782393796292873747662395623350094598564676587038358804006704878153475470531845532109504333587150514901047043261188592300513130553572786092682207594291217634959762582431301434584503482407684173860181537707960974330286667849795423570571119546459306105668319006739643827115688280042496105807395217706470807774275824080515678898434485758887751538218956979760350804815199391089233990862381472533938525216314614029155453897271229905658047256109631558300147809641135004630981964117236995451423643019219766526853602864318296286396369630717377316568659362984694017815160247647211656737519423509388319077776066504467807382775985860834599927100357711830314172570296906921225588210228542501832319239973296348385964181238127818134542166850580887068347341737356315199991304155635785305440670194930061920281758678072834671744322058373723196486449878427669082143111035839968096995534813366469553616429019358500606543941544384683383072626671604835920718343715298023221859349290788771887929953913054797033502919450022637242301859989669905576664175490284036443401492051044533366650962914798497458477243600095417330971021127671999421931179986680169943624034144594071420385555874083365977887957422094675612595377224706756916127692075675933700783060678474030807231286771696134206038713066264079210132187170286796847478085976799857698241074693011441612655984630250112908461756776987409143242751962556627358416651022682803549434118043356153725101325196044678710840111099769872075357626565702299427049605560637816452994168816810391995074848637750770746986142576907125160647621243714579205409040006759948616925410364039699506297625872038003637709876497776910073010137268623494295748306385520811890714710169683975300648661755569323428213359831659705649037613524055886986217073389512076874336467345513748157509690191774096312620065758326080040025125703963219112351014230850166701780815894970100463870806008973104418439553665049864448541313670036191711629069602122648512894851758701451163007413252156887398959442208936941228655512213921558021968256273260434668049027587888465964566868923769551283734560335179376419747080135865165359347839879439444558684223118415225509593695000865299076709267467716695030933041941899850395113764026749480163336389648954141016920238884461675595924182509612483455047349380534713319221209471443709241836040803960765461687757547931825391420815214323566498576544236463660466610655024641434466880594595856654109329466604606150860142217638471397586805803827753925022788939128417543997311606426067986560558405579027029429116235119056000871886884450940522217898822802277710998471921954577877397489497476507687462852031964801406447600759268667821593127345347799967474169843410853428963397752187698942450159436761881621326998887966069968870695477697607700216265986697392357548500798389837328717915383520663604726503514268250415198000772785029412328033310674596948376062180308219774644497972114648947711539172376395673578003099106261621379372826185802121197547476625203318596542877951197274106255335085614533354355777951867021838374332488567892286945190944426885505088576605567694609989163594144853101106202901174940771189207065517636927618559225248926410193961994019512280918121151310613517771064373666452316361548021722416078897372833187377237418145049126543385042705582939042857622085098221864041262152589192922848214196319987646577216285599483934582080259928471921126278736490453970597697492129414817039923491116776502155964811878938968986226322677926225172274934258808104036767594386811700184476032913682482381284263135892333773750463010242254045881279627831433897046568962556540180157162676616933508338006987015176346057181408294993935915034362096640932433453116593589369137117468411314978943814469440971107113448674687547125982410874811725279591081741358969620857844773569781614893902580585517797596936759001720927437868627760545470173044230289933890297547197111585471977784825966836048542909190296041139223833585751974196410475271306777280455604142158045187532501280237872894085125171288391478256310602858453442496071898319100520265812784184636580709328454509908155772971902079615998010579172178156877007114761889015938264054993631488910342967738872934081388312789904569602133807656324201659785973255546282870731225625957365088614588387770918793911182165635074826046862175563166068885511819312783275293863452699567643351534914523718371449417194247460240497497586733813137195329531153385301536492649567597630293227422127727471631903141772567674235734087470812671389712120542658356767676463536504061846294800209265596287603440891794998126270445756902562557916397218096831077019365876029563734850346914112563720538145472232379307038284205438754571783701230503227903408185736981005854996802404827335006679344301332686986736218444446362215432173765127074499090171375725945995321495529299403369328408953403064721254352488575684893242687428198990337549600083939186875445788507166224353712099860323488329149995603731013235973800856992856186056435004767188778147085022208728841195680076019675494457764508187287983432877236048025285578708929727231921687789339611515317638240697754658030020689948452785882619323960061685226548592168092199468531781986520945464620494590319757842037556328426409396602444611240440708926818211715659192511436570109286423107910096225017674616464952342941418303499113178639122226680657945809316261276237916959954114802825723797096716647371693354911590722443948525951843538721791732147552512734823163980238144581940067239850215171981149559173664621205914156737944468400548358474069158609786460964539624922457939344402788086681611307127669532996259409562319560957620442949440738483211369052944389469181754542795322887119356636358730515771554360209352953515543035706283317213970305587017319736426625820766480557464353178605923717112961663229235992192348222083108215902522393011463020536000398824791704364074858367421843461889606889025129560034631175142613691714217596144186823747887307083475756919033526438705614083519978892391710973140629288749108890470584987695264749303219382876257075483200312733668653759541234733069407865717850731030448123087870611623771900636419804645129717642937536931652864525112307583695763429918315818680933053820165501937834852724627674536743127517168774894198029875677777747929945160799053689479805953993402560938124434274662581645211825395680593861792853945644433661561812555910507119033878809489751575560493700029841849052108668167709697256228152310561944420395935745723402038762431202445836988712058400289579176998598678769981052518083094447390952850084286791461626892844484612874003770785288904172947349019835856378259035562061957090413681614920376302765965541015150268054737812021515803196358559965273438979373715001189517688993994323818948688165755617063381960594399935664869529721283875862120140258696634862416092733354301575328221459482352488995063273729174846728177870851985154551378859497857683510869856764480161271456012431307737393310363431003045060179024383102852473448816227877545776760016080556183938415833381799114794983137304481203097008837454124455326987509812273403875859164211840552693207390665436886672544711821708020208232079743332968534246019721642878454101875037231566601467646220948039588811701311442659291581151819869435337215534705204040623184715755924996685534386433899789007645092418244933142668534180189721895139912429918029652404085794814940398850662201938771336650889218142153054392056212679708259695802010930106340397121742137161890129010755607434419326684257712814767043345873089255683164279784695682172899981805197454178725023148927715383282697804374119955516270970467234327727916249179556162124771595245026466961263366513013484401085072642166038079982286474182296645542692963180802097749898066199419800448159719840128976352907762449759730091974066018908142189317581010305800993049658136061577904601971297920354909233524867881923813791085409913492216107913920228495407122621619532716087650047962111768243848859624052707273295546318418064349042516732858120020840126164194910954844969288589891652381516242785020382777618569512299531031700697636934265602514077964535124054963039201869445165898249241665900173900520718548757982907373684074796921283470123724568543066817647443267882332606826232662450372272959521347036279705931396672848819957544241938383152331360298450916274279196033092022273012481311257346805780525667834899105610737353845438636602567477151080689352629841221166045197994756886337481979524201597543315956137557522070885063588119109058712650807279721799287513184398255690644668964937156073505902720960375471050485681291754406108911395381521500194164428472162050162274762791333842279755750697545171625885336552097160199250544678456831113356684871512052633273606244048174032359313370641010509287444510313120956331630187462999123836408913010067789699461807127863979787467032634448896590068148464322720819715119097895480377463657379175804412888979838693723391792701552110805350757525837993632886680728180811446722772866921655398441604622283424462956242669010093924457371507174054911601472678372101736084612621076685669402273201876725185691202943395020673385358879658203014787288220999192443831846986221289174677284818646583127846660099953342330881559458238360761925498753820994147957087242493262313146641842961144153092982832162510440996682400114017255356215974998557638460701829972238303503222301186081892817204768752043474453860752715309399197128098956777298503675642626057651436120079485830106420995103473777800839511009680214966469374166210116385589296608210673786938441466628565447199680171147308658673538883891474797724601770693797228115191597859756906578448085881649586338778984017354996641214177667521676293628360880274654850316160945704869183067043901680606958909097220079489202314243592343034147612134649362879231929916722834390983383873819553407597241087439865262575210614709701011955183700127778995284092852693796216495380011896247779346647063775343809325561864699250723638989367572594247926555947461063052992609639769907128898250676352918473639468531945367613054881704188248186098792601636580659035003935304316898862272474939439040067375917089216277528796724323134152566446235512679267502943651756955536457039087542677994145858409917449196861563625496820952839528912163795465787874311835424310745218889890142583023658885218856696579026350863883940161484064691479257771826517198971663506712056216790007822760352875350904181860963732935231265570563540597641790248110432893223992685146396057541212044040357919546177611429477412679623716831431143070906309410665466273080130669281821108436522382919861488146849230768802111545953033584083922808991380687724170296448548635371726434615823423773688584178590647486715775085662086520072526626119337616173280330360380257513127830126198731059056738414339524695232551049812381426356701625004316369348344451905880757541047960770231828219048340192681029595001168371722353548930115792961556633269280531920818520861023058697104478747439732856045103121212945327945922134275334734311572248328491770964298225350730887447778716044398011994215089550981019737160068878146701960332908764690290876063215625735567053720157994768842079191538339495520777732098640077433747151904980473725926104408356834234003293167307246886899527629694915144594932143007707483184704947320989883957068051624465039406245713959662765049739331948178025495699216004318526133612645885046026315931886028929977625519432890386134463566411863270044541747212583848584252658708611890037820540407972245524238750906781453190357151435138525794645743297535319509086866191425352501526676133305541616079002038089631453053598931811356828371443141643814284926386054720749382712679734584193395523965383245737722463307421233566305547919972123320023745668520245290430210433563880556711743945419900026911137257747290857073377165278440525404907965799337149429011628504090148938452046944526433632240143392470611049421746124058399153066607884378733342282430816891530936034373127579514868811523569627614588520291014028047342566865247159822405918310981178124940472148668121063529187738625124004671303839730740897522562611249689801622530313823978559797175163487570257169077357083455124108546080529849115143468513473367236926936164839103947424191762725248196184147461359669269379908397847833836431865151110216174193262133501532208544741417084631365252963144309927890890893566897539645070822328813947113398659829319105663153357751275629390671589791366275059703302753054390258627149453972940802062487475870211128025606428544865584190923070021286197462914282387559269805140702780603644057631935438065037056033296536164401386329173085225113929842583214792808007166856289639800122611686213216649931653361618506474200160895341273096861478937493124757757115921891098417795314852978632121322273754625974522595035280981250157398526911752111073790562290117983478543711218279312654144860199444241163873394160021681327472438167698297681413045611019828195308127439761996683085040520878705938814830869469897674061349899335353896373748438386644366436053117511485499340813930377518057296903358093286826455634682547728023705356505657185489058391104592114684224621625652709084635742993892657722518463255915058951674713191482705983376356041367913097185302780737491643182979955294206746696960048788921366282321503729669828559719020424324530033034490837194074625582660227187448280555706749740389622254411802285064229534876417388451451346818986264574290394733441308478607948527089397746067034375284571758328275176887116388285266803927754801583746000108296936869839078274281022255514088307070256370797000892156672741657156586434089960729427264191745887801543815952492982119920633659093711500439813367032567641531107101640218544626118862872934428016848426627921970735591844546267348100244112709415825913538736257025989921006197322697618719642988024191723499055722579547809296844249542050258328596157377239097453170788747200198095472766050406265374398688997649555802353311311599535880122053247510657246280637127034802284884740702837889834932598975920482415626549921326439566076765259220581484384893964509513030417380095384767021119238432602782354207050152382406073978535948792163477379725075931547533995603333599723745016897803631259032099492475189151053572702365994617131246171455189536200523895688998176985369650696012597713154346012826360876603357039585196293973838338448070833113430406948187662061574832211838567030655742476286311679747919920481943456303079412586125272184728000619733114987615685750029969872243011195266839591533834377100586076523290195312427189196861021064054757866527089737816563176206549397913384246487796432140738619679993410050318362775359185871657809379326976371863881803886022445533842028953279835289275029779782903054017659599012198779323934908843874039096768825071835534683793924241175755431827009021546714716537544575614777749726760427367602252345890978983247607140727695840767672347260215098294481739854276512675284665118978037012805332135278046534421099448298822376527619061661901428565353785195178279890410486364459208930419697185308722543433243797352493197477692882500511965296510600201714744326401531993094295456707525166677759261416812369179076413253443643231449311608339153842455725108193073247616257480351940931446202332486436214824738829323596875989720292420331397444498541972782441596580523317357099046686596083181887294093344314024727084690822360795679760473009237980535096848212977700092119834189024395198177462457268643973876166022362330824340974088512619157856641321607304603570223718448101488979880105896350955328364115487738645488566510593143613251155442950551559419658535826335488075129676360647548704193335239502004597262829562443085948741212839585889404498649655163912527963693454660581889895822169694856722030817963609854545438966800242826718299326945470289604731668263515857699137781220474537284984350310777564980890934716973643604818511712636982490229435714690182022894638610994931036993818680523260659052448646602241613773710833225430219106186420549520822390995974649369099396327631824824736198932733308799644178722290090017443771286143257525403502946237809873527289474244147238405962703681217113055423978994840193327169269452678499472156227765546590593847709732667934106019643522640462922922600065303415867250723925990636223670624234519541313717306143882700396912547829798235255448131764201211077640418783064951157052993123386519679956550020683741035949947796935892309841800510854127422686047215479700533030922059453870174562706328414223118068798203656598520502956317469174788079929823385552716348298529336745882270845335707203018763009949766895301662552056323677693632064816268584011768337746355938605076280116158522652141214777484791207459624739979660355051908304653491025975300820090504252261339047134774379380061817124259161139542800541061953850071726649812734422552122521526490897598749067993665085737576311186893310700186480839189816737214451761893317992352455462754055594653531705852350227697048684937786731604652024708399946634859334812730433462283041115675570357865538433675398088036642020470898678643456747396662732795697922953529976891424603875433950663909393029392038391994284822669142689911117453761276592028352099931375636107631760745250330568061858493383760738929631602580773060628161413176658155580479860350164745528477396449696587917170581227707615740234559329043511706708927651212644330427328220328714174034302623448787865398814169738556938845373064697177653089060941570523186556728216523110673208208261160528350412647674531327822705601078666481006779200338719461540229020388302641445003249285953679704359180360103119282217173797906380704737461480298273750674893502544809282910007034747445398468275245077341770354550974150223634736532727678300094891323293153223553086445433671973456664102023845658457564307409301466234798999732014957431522241553837711188788411170151521661314528654951348057542817562902067572619763951422299160740091952648209414015186709667913393670126446824196770649595049164815771555862535865686518903470777478805757848932654034705529265014952039913903618880164740920683027245833635374452627370378770049665208040340333427792861737066924292278950157933714301276873184580845182513901316284678498288360775823711930330828638045809211277174252238006611990989765688589531030455786570400996132307390909867218625274402509696008641354080493273075417302859771981646506019061965503634070290284586207915023181396473164733434812153560950483609923666351571530569716503250474637685516578852503088122631509947377537331919048103360431007889275208664741524748717724238394247852388011703297763262820663505965343468697086897252929015728757578576246912578221884090386887951214769890544060388379040753668406087260340405486594560351665529659277439882436742863720773768471150836386034727094857572543317062075203864966810990807643158103284501385939621195890656689731426053654678506632394518631338456748210952479073834359164181886453419115328956225955788256636463757580388469702272784691812859084735272566906057496868255063491958656222939842631438941191598716902320186738340785041411038870866236679781843987032016426131219816529800896531308426493820059249429423657935976821069419895556534216231402082881815424972541346450157240686293327389112334458391753468187822630761890933172332664211222181588611245455709209291692421969342287030397125713168822906350354084442430377209822615390574694924843483815605964165144448910295550392257592982426587932587662679075880074208834862170751344161145650560240052568080156469738349605314105741498350671553024533916745427837857135221462834771984864940065697979710966346028961435722490668612598666959286091269374576524737895626318471651385540605107189979080892955282994227782376509837877800467641080555840563616765347428941712337257410929175064088498440244862450546853350009741553680664779252670813037073388221477950790357793776080611801278378144578766781220950674474112943778977116452880544467037964856889379932086036028079758862717995699964297236192520515141360959526537733093200592018084232189408258620904271449197859133635856581757807253231442959372928038072393267889105906888413419687228920173450656624336853589422050623834436237519597632982677604401217926456529502491823982649013408160498946253227507424837880479907692036056963628641256694281140195999929021626475152381363441223072733707875165302385650090469190535665001560129369432989437521651938907052744735842361003515048165497742112071517570653113840131848041370844939443907251055215257773339972442122750142046344329740550501367268643458160669211729327756380611758386857079347693382677205493088097503825705966618870778089726058639004926132498701355543338835240086482422068325898750376376707006467994264876373237222476082852631766320088128820952344543385075548806139192151393046146190631782303318278485122868490062738574933525504030896452437022132293499910429284518687046159989989764724032687196046004334009346599761222289079980021504852926789433919528175620431523674022729405156682556437858696672685370842677638077118093626858673348326575149404417036348968362207859090248578654468960709530466413124412590400138463100528557928131529943047222688054393306603793511312982131809547267985083058683501624205286000244981665225171083654822280818594521753511542065050564067230880629615432507533118546954140765012360392077277304088501994157906846782981763635852009497065873440936427159970558576894758185436926824159694712190830373673782093006354989822397308536160263300530116518427450754246422188726941398619037217966231733784590057860392343776327050737113003298572878454652696819807266406181440815924174864315746255106280650406955033291803280262686875093000801134198857049991387245831123572107614010811408425672745086512797304848156044899035012222126870091979415280988455341177109338768418130419983858288024059619824486740826295670087642421771183771323422546193814659163265096876112435319869757351494139711839253292164331756700410663755287672241398530321474809855887116729990757320230679849258592675641340257217880197873068186739306184037608140926476849987557840926837499210940742263465413558453170432497669619525616419729113549970177652416098744802168366433030185409633210748811640478118856501569225565560248344093393891684296518571057019655166069375032578743660520931586485220340234174725208708134873327710759621732773035472951818011784512414120255846808218835828326181076575151770087156132517524871758892552751999880247572912681269799799315616663836097271950445444859304292930448498427033451065323088408032635686909731746957041924375208638179840957985925482734731482284311405838257514103825719357061370889786799779445095350729108403834430202905528408370930626957019225381325669431219808916776874923134127725505141910635189113140703613645639204802801379038277378240520487932801475149124727933771124107081482218856055130749614073042701126103312449958177003668661805429379171350468935145893048060317596050263827099978432793571052408373217446157321170710105037255174306522505866046138513103226781784934778043174349200947028409686415849447665663313617870365626190915239568780588546834983683015354270379269795374641875281492487529012249878341482340321888982611536689548316459508370778668717462344531434514419593194528205928052874227966603183276260714438732599163480191366783423710542616779163975677855577571403416639552091515927467766350515059909835192389251879838022917219760006301479665185327262983565751518862613184473950220912461409301781140737443946173341931095507744753911054924633135521205271486784564370136499101631732295958287866682043127482002776359601611696523155010347003075933071065608605040154985318657960165857709764335965964050911179160376833410195847790769290860160088257556462276633764916902232559468626578413977104139749661782390909815504172932950046470095751495334559837882666091787325599892478347894445079130052455482170370805726718288638763642431421066097973661145456322240382595564318110631112610046329465300891761979068768002592754789822450667905041564874692595601648718197939358802558839906809446079246487959743684516858110446377928666761407936152114931250848278557306207861843067632973442994170997034089112226854566280420771887824745367460146159145426934317763118210949955343696648390205721077695108921936563630677147013347282410535778462710935301387203911514028639543328199736742855536474522653352198149085784818452370588688092458870951565554798326014445807085271813630867768137295436779636018625244124583266337627561616356493552774428440560049739564482539037379298614935215847290933963889647784583147146883086602743120386839624478807626091715466909461556995894086694868998284521036491223220693119530079972302066981545579544961353972820364469470617797760399305453574311181180444035534866553804209645812491817205384227375655313579415166426403688169365291560385546818180634882371480661751869727332117795599474151728605061148051477669791609292279184074845661897311657993493264498490360708337464835895016424898141263482839526571138086280012000913958883696876034737603339066630525999278911897744479809135476440422182753224821440112236443906708211966007751652993408875339694874695608428158889642071427468181066950704551649082675640948090875586055286895000971076275351824666458541963361414031570437416201301153886275011077622864009913735305427609517341480834920430028910432315802513734577796607715658925336329591914863629227990863727038080764607083650288883492702189128171839846894758978358327489751946316620253304767331257401011031481778937900818789224000589142671288876652112890569807711096341952222679554667326948703317508688715416593965640566543609867152120450348059614816118935123831873359632743761334560866569634242255032810621475474309643246345501839875240218983253772222896898900418298660468179426420257030776971403257617878438548056707696443019376531272552868182872522404901366515111374540892474200251560666840429119302202655074348958019715047655954608453621775027293231831928460818360777032868264484828724952886868911650853243184034249759229165040008409035241592110460517055275959570838933587704209502185078938545014444572972252476824530553483010474412745324041308596497429602459705879485337159788250118555675504003411367973692732624376274446087834965717271991581873780842519790078526149670067424907592913025843122571002686174261668520318724385940462362827222059781933814694802278218762834147197048195400014458371395836158256077928754003491191226398171973152050996984769398128319033912777252168726906841125507113533289570616535471272224599652939147133517832396194081140862364683347799995994893957007987416933555825603140720654976704998265948977950781623649014181244927022257385535069234960146410601187986848509274742526380962084448445838531121924185476699693513622727078493161425004934056307717765816651638728208636781074151048133462443239619635350192300200937911487678858755573664657277126332324160920165074538361389857360504424312804678812936553327592365449793802837359129486201564634394201678101646050995000140835852606355244546434740794078267528268196840778144874646114420780861142243568920486348197001330314757742384292324214703844952883647649719742340201535232075053904784300344119463206567972609355335135154833313765968632878020983281312370699252805305769759765936264909583457192349915497249028113413992930218103318597280334748445404924006728806374414026958745921508561943419568520876882426723362771247131897369906549832937090842728653885878918744382111230892658267837301829200403768145121873744515855481718318165577249119641199407684676318315903586244424769283742997024452523155699148886805990861415899669499436674270653974242781355983443841928617058705735523422491493283830993833630177580452088623387802190656376002641204106943429607216742309553916601593526343400985744542481848221812585602351613985623156134477564959335564202711743728754842359529219333924632516254676364992541789444244524646432654409209904593290676326623122512432031413589044439092639382114251595028953239882350284682393719623518663026395608752078780148436791352873609948377477404797209335765608846286316540723823772774577650761451338741693249985694708985891775260939485835093226103996568701758005571401746739455622210214413369713375845626203356688841439588535943615644635918946363616638615167531563048808354375052458809869663310389161741126941765356574219607257353770619895054404597913818130245772495582832232762907082458401483699301122601997178870091880513123208540959574205440058558269648393211421083593038047127665659408279933118949622480891706701736786372381077109487379342108418381823120317614469352379304890958816052585224056543112908472707132845904055269943045458180456567902016818505476140603612789672152854638006271870279291286740498549706888700234414505189614620754380804774441085830287589958449804030461247454114158881023796927278602913971138572544141927105845818383827831913929292632322555394121996486045811250605451065367354766720995152239902808685629834777594875518886735318185510054873771368809181007486978037424337627058302976580547180151319647921468150786759647689883347111603038717556052529591830407377169689613686064520723667035562596118810984423708901303779281593394808357510948238253602908546094183031419108029214622269595678918603036284154974490775018292442587854038257719592356034175930999280693071496363617626064407568503802164360595735230770640315406394829016040647735136923048579171971612593290361328122349178517365843681935151308174327973252844212835720475172465288531650006441543194790424120811829533401603385290471570466851621316949630629724889141498279976832488788378761950042428040487491957911801095939904314926092223319684379362932032204378508652691325207149944905980081365657280812908888846198376196471287806710883844464565011223111336291387479278823635080822983020364141080941021891086984354884677403872459704444366158906529753463513546703030399371538238113056515893638019185931235147656136931045397746788453379002241416027910087180819813295633612605908003290636206270787376077881400273968820779285630920099527767008791680452849868638268434131931463309881963717668601514173669935621410870214803691053530151078347454212686745173682731594916803168321907020005637071699903080821208908689647898462526126355724280994294722637240944438706175141948827111584827795720652132019769040140089059559649687429152841441446957347201097104627740968164976406880439839306678884452705364495990691917171657555776132753859840554304464513830279842269765104352531071729552531663317452322972482271922610806508875259413099926722978106027750812146089908727787574986299860774870866387381175364893732260244260395699402010945593693001595299932512762784682147851572765327293520286807547292575591097989445167599336338380469784293516140493603827837597081148582253751363480275830011430112381150681490671450004624667065573771471441308309369870754389534365014526116760841149369193943631142907115834868124864906348358937425634834398954383946706399836646215983413497760602917068109901188386386969645447953027474851843688617698516936611232583266936500232167210072013359574864926950705841409209465016813456934551165276345245957885455030321830462487077265738010244639455710924157052457102938109421914890946968793571855194003627597518837633934769722609622564023395825603418665668193657448182768071719060115707892679021721917866594573122418241248272110935225463575646996816300318330164707538426492568294603739824762748176218742864589836131573065378110140208162411859796472061742143153885065867502922433427958710276351868295645797203314064419839079611968044173267624880162656518478970602180857869020902589973897025259811018351279106961853354435089765681774166055358129805698442147692041994850821050115918381445477013460307783523942636408268302136610853947845875804522033743647154049146379395105972684075904145994387274889347650713785465813382158285225616679984926801853406619953252923192148479067485340921051234151253803046094667920349932992906173417538497538832778044071305128910041026605370006393447866178522638158672250763940431364934193037154810699590210402782513617835618236629554966002191569007325993438287222395237853817778502632407127762683572126062239524124835419369654200375781606902785981086543732134124794767632594546148282366289462216474064781202334717650473581133976515997201754599805294280196761686742399359500277202104825923913073647304134647846767501779561577915575487903202248073487077668248037662570120714001551773642862796692684051820445617038284206069178867199660240720002417844296856660736429592030165471169912366169820216843089089897538876790232982944924208067477064074530880832621785672344821861870314675266423275560338277960567451771039729678188161646529955577690743499145501858478437488598810784507595030988709412568591612755552250596872805807693281122054273370668446189940164398589140799251408411486735389677848864804519002552144721712121570230258369657704341874278991052372688800545768024944851675701643481243805428218321834409802519686694958685577062758513172827476166045069182166785858634617226490234714625402291959432610652918283934999035670306985126130810344799893772266489944819426727807100400835684232572244865342928706073503172998289162005628026048549272115220885829841931757853726277406659349220951451692959547849515980115458328714640963819429596399103682664806376182485620549847797898500034135812259910779274740182536242016914668927433966734523995427740303277029707223027465306851951088969698036980592518977210380751998614613031864699815924532139034449171307290755699167331226296236910934171791478582083774100285567188516044956490339604235415412817943522192259018705916022902417965957804753790898153283889979368012763872286622604069551925653541296336167456187365446331121696268425260147565617110016854573690496287790051258780320793462750645288218720281183483324282535148246797989292397572840549503949513331485400346325402130097154361540310966741151051764752938643824332132994373567397605944160355119635716580536191749181653615423335398019194830678646650043470341592499171359560064154621914984429310058253768292082711020564847245194505104183993680328092522481036588430569122604211725353685696734172744615538933826401547811161180984579914834801600757705407700940802359785686088314526939815498230492685889051029723681621984032759067360684228196035993601322345057751762923247161767046626825250793592779862740909008598145754854960540533729077806028541052040313238723596369149983729665443818608395701743522506245111952473277372897241526062187147370619061943873866117202725357036631075189905919551024507823374596581375261240850137654607711363581005271598491329000498747420226419077294150521291451671557935227466870465813611266888908177959139126260992091892764936310855077639905834959525627840829268184795439876727785122337727468986912034743590762697512333362695850723227195457108783723223893062406412297172390662242985969655253008794600074685979537432098568849361791156602967932128371503311348316350644612852541134619953375870828697792432094368512785877706051526892100880535488786891548147836855351664027279619773939002190276387501466097533575619886083891809171633265115777610615912309191748306444492068916909684793013803598521761769778633309256508503830228813797111421072125259869404268325233443192575234852574075484387894646646924498245973150218294202253644105675996719297622348891984408282428173701632831537304941242241233197810457237764773039095457392197438236408106921619250935273661856654091437408686150059817038753966739043375079525720618951518789264733431357804674224920219325431487352562181316331887829038721519387460063043460792910200520586975010643082219678960006885551529324464257783382523265511164831279452463737709246035299027606503984741560264624436061625542506385082830181926461011781538882136353758616974547578071266267367574612811308859929454466751380765704569265758918108212332967014758421628194397600931904467125414788071573632664561290136081141331078510744542608943712938099140419685227172122092773199496067359741507668992006847952492457022554337167368452389706078522542529803486364513032832200017921204109102162825312197404102324334875939356956079528827349372781874055913066613397037942329764440842255680203024562042761252898059126302642170931277242463396653280530170152212863252390394471892279514458946117198572243774327291899434642999402834430302736974310137373076914440980514761553531490650695330875988266095339699479770162236841395968901655490009199918135574358871856261357640041551212737741568623084376446498425924795413018668035492835092885736716552286136480035230247182544206112506076738948309407528791493336867070880150859576001281723512312041918333855027866657458538286994124043698585661431961206885980010139055658040848529656659497335464380930175994352198004021149061616897323636197301033680773956787938416763185694927383045264339566343815969127121635383928086332262739849600402161399871957154575353817543005877313692216250098848255009590678982775414990294182186043729645856093493776898699753189083770378293393839419515024094918218449289171517464158301844057099900910811695308250700783141212148038534522828442467981327535757642191414626367032490450751453922783250893227012907204888912955554269824975827166245444440299149836640737652631032284855389036474676730709855049202288173783931565414047814988605517794288895344584255343611801496753991721422183242915098073426908699354612152196057082527225549869401048126970697928671849391771510217302806069206054544459518277063898534004088346096246710158237562739283280786566023343802234670707409881608236553239406995890961021154243393676630514643023470044347041871717356473779347255790422766712513696384079133498058780393292392925172581675822395573931217913928310994188679553108561790040951520041683079488656723576619130421013585620746427089344868232905795120094424149304551585233852586596841373641701549300208034157349114945478521006056519459615370859397847663290647206025928864114715062475415750707293647659030286109472659414665534261631214462572137786738216120103914882090280056438330384338197918394257294499781025982473529197083174815401584422321868286976428408725087744584884510537162326266122237048052317818131289004600533410102581636138564864446780390143305883463465486350188339715273000688524336302469140367088996553354757858069285577082886675832167923214094776191316192612293762123093952482464459717985261161121473378211879084315795494201970344853525738887367631557513864643290396276210525806533156562756490800943646203626106080259534929611003432413405061840340602852540285294188023353306622292602575375630249422032657544406568700855387401504172954367116133315472462648892813176871136107961814237206446282304486311867676537219337624194602253879220868091735162155749253618848073516370270947593843394221721927316628898739545249175306724202228119517673973481654382918132791505265502772656514743845799760277456736940604393694780874803801088205599632738316094809789139434080620801353337525662903247864723741395175428169964263653120238836233707551605538270259107236086325847564985448984786749446675615605008398759777745133043717389251619170081991198286917313957610180105029174535368642886574375441456113720853352995759184378100863427101266993907999147945554893155995691694455751490632375163456642428138691835466631610309352761647091314584050534235090159344025953254580975720282799985207319898327646035155087232896935282565722914911138330262482291856107249168699706819943388910122683845365524906083294599843257382604631651357255046188883966393839088723082834174627896531790902147366752454861230872607633021845754864298795835037705061280934560804483130654254416688474089538664674984691551050795131458531664424962312273894197475671873375596550945903069869346651961035113235021176556933672660812713521125096055149473581616115254593615379053840727273046046255938175147686473905169922887759895639731666041063873804746220440291263441180889344139435087183945324688812714788439776651666554130545625094877639868784658548430503009352322863433384757905692553894842996685914970967647882850544813607271965101312147651016666969319311552130000048418276426487071652103637063265532200405357527101921181909015834680522526225735579664195467215704992770393779387817041353411717421848158619239414666997456357444409754346114030341158532295305057796136578326802708663532041105282634038991739868189152412022538357888632786315601787020659960229920356471950799744903360404782173077882685832541314325668469828215336053297101194696465859847994123669321882667041394429847755679498616390932404073573780791543383508761993502912425218031101011612994878153635596058504368527998765151288109749163513307820663344008283674717667816449785138112233429354621348599307422142904475690653629662957858656514323142772214706889803653849345891497218419642674389291515314589217923338211100289882824109837302581682286898587278778117822547511004525508543141915713534433805658779978521964332477061159522012873838773199439499416351864090244179625500653558275739383599519880727642611927158595405549753478308736629022336756298316758956282517528018375425068518686133682476065435469903098220875562624109790636138119054504959203983570898278749971162583636518658051516114507663295276647522370396276974588609777819716473603157083272929681701228124747693512612916428799733702828047373549519030636386366856342796007215555309945126727236179188813208103784576417254556907073879258910661768406120216348090197135283484338050791514149688649640673449785601505509250208281493068850746868295541364543904768613752640702162440559738209416956139169824050359426179820063403568771704668365798221853839981690399966454683275250333268811472164438917591485323871386183654853395421524170011647693355814125126163455817285528894633983558852086719029826336702735365621201610057095293184039759281602574208192569923129540210736944602905406025073885367286847555638784386166012584161797823394916807668988614876479159214193456345761893302978537713238632045460265600940238063526031009350442844760871281308863079483513978900612074977172159521336658932799314679571548692276627475749551555311734565761256945846188303700542835624655939179249992117684289062968626623670161938348235464286322171921298105698486457224594282910862489687170165574832008260417184741839167222839351688206602534083999852805022236421257522018267207221727081523948130077865926748127932966204520551599561375028932139730688323354901158181279674330837046555527731161078706879758751174403729023936201005139699345403908505371329217429159570487411397913582910386304834280294232708785000429548911341880632443674587971883647942710539656184769492742630464078832470380266665695533202179042293359082726834514884701232360097343086621129721137683245847592073760503399450466857237197676350500853857085675344403629279674298153823565381794922799026771794311500139812662572327700290021160622925732697494379889922127648252032725320410228776416467588176577514423981494607328673516141889751870249383728165853061680495380843885942419205372386200287489954426690972055954493948734261107101441438027364421202095218553558510700112443747825144707709208856916472920776674577635924745306236922793087627704225309350458918199946828337604337896274668709104295227915977488789112484614228426666198091638148223835585588787016469984217114095609366141161237843991423627048002418268831820859662643746407790431951881073237607697196203034447345562974466495066189302436409217877544684950526366216365319629685348093650214327316022236704716010368090632395963620728242267763501777547077241230997274117161142949940121685366948533485306283861339931333962444078626758995922714107420638665327388793879258380997760089117693627229325061173639170708962319634246426372133318005865359035497791649095749712895008567338000215519690662107301845808135905959473860604345231417678590251840209197110252143679386955798223833024267907118441446868110312337090408898326174824756345193515432821101308290629722699379814174050291097539557088272734336688005335199187264035068825201297253325225179815975038055033347041199913455265442094245459041514683163255865841976368765096836593911137404524148187764303990967598415468030491655928556831220214288073859336089675297422292271791068765341259180249996114229988355818058142515975786427675899062578739156627898116635216950886437084196758750044533850626499847461588284752120928472865834842457439298582483288351800383637381380963052346079278721070612696092667631631605565981730170732274727640097676191428994372551829476779307873867337130267828845153776528258865563198543859171098290071527169221894036003221494747975164811768866211915748848062646651994302075401566762601620450172283804535053683977607158477539716311950422029167098905676616894372744187999624267789550083716513079956933075042297512999935523046479802650854890827621894308076873825152162027163731341952653115037653141527704197740899007125024574994858376009354938100084753576418514578890907398380091070548247124430275971713239299082064390258051232092998150228741879164037776537942978202778752035935369795179340035100128316797744129856222410598048246598185801825812897514688123868451781943203491402885389751724358030032331570008948660582097549712226521744169635022197030577882333872555673721410621957873923578826533503291093785766878568797240887698570533772908796134807745155102608152398301106123860915873545705643607099068682277768236890028802327412999590994172764845573860167454703111373575699850368115678870769157350158003531040960537664162540049447904050730287254781727919831397221682108071300438925112933712061087724623603381492194135099365446994489735310127776010408599249854174345421659212765307346925116648138159717537713112365910023809030783665013925960881138538703459657635760828863189715765636249979195603284552459478502063793765584727045332040928473792381702799436242706845123514303084332210721440463308156692094316383021397357251660659620418130913825326806752283699113619695008890959793860261059888040286379183911502434583762995991957702633186528579645588737036565064277282827971970958774897257498380932342184034669539962347937856535387883446700460500460613862895426632798961822256591938775206065118432098236717259829022791693058453914459282675434321050575722729661417657392265295904620405766154932295699480668760136247235340464303868154335504151025545823564721954157536441192481812684529883263333908159881830179178242886518677536281590832238807753259095738772383783321360979412601152288083967079140558674855880346776898373069871449542922668695541194421727075227821376345918965585049523175460036671933644244413395755251455460650556580499185917592010366426120638707516328781376017787111713175877924652417210217817755724435615548483624636206846560577339185455403303968239330738098561369190784498964645272013396438686685248752072738038995865143207826160148581729834089704201252956963261351843779595360194612677316415513261451041447296725347182921883861873057085116809140706832211663580506757012391971256942898759488312822771864299536748642939075576208608445841107808220960648161869644245523613890003519550452969743671644847195134191841760581327383435652953468139714929744452012176174378891383260933257035610241772196782810653520558947915277775336164913686443427849924352663247490188147523928467957240682155967270532166724728602427524153280593025059192038682428667278886555084373021007218596321660657815463449110501931056536492399397865946189196787276290498669352221465909214113324621139926360027934460102956959250631217927279014831404335905614573848575986789036195660820524102045190592639458022709947347116204869829359177924049465273418258925228986807054026739037379093818988477248090764343392810410491450801667964007033598619522695698587718075731621924481866684416283655974311204495714126695546899279699680578445769343934767604559691159292493141372629266181478922598809929495583755032192855972714512135363659365099502708989989881703739968100532132257363832265301339583324397095051310452450856702077367771544616463156288331184189146147711986376881201817173406403681948992312334583203189132166239575769821508456345086199911294412652919079107401545136586217444072618614328634034859271371201236736417013397934493712067296142957897154880478367182494594287490650461138379430917509064124016090907004596160776282888127031130824155128005599546997537140792434464809981886764222443160368783263202200801737008602405857025496294361775022075262899226440875662323793764343849570108885716862884420712703757181795057882032022353239110036160089116871612879053888199471976378733641411626736751683818797392579470110757677090740103772945028919204512504951043677673158526509362131812395380979399881803766614652960986746120601077805539011423485513203448830843185278974144948682160715251587710920622193412931167169108571486564463684067795519873003022874014417593575976851851322399977407282405110753366399849209049502028661355984061861532310460149909968401170293909893663448268572503474677537015076638694054820507472104879211500116575401852185752943535576550672768928736798941906833757554144770011327059621778048281799730791289543603653295913389156244670433318510021626034804950366920554640971835102929633402280721945109570688131660047709506743294956718897134469450133136600203957938437667998871054277097164387150488350815971192502689894809772750050222661298038241659103950301735151399935798370471351989876093697406310126326747867390568890075277914245778288684406101226590512110180674336684220679647246943924375653701023862911092588609837857017241080441504552257345722936796719894408407859401873703129305647822386170685054178610197339889253369907329401203388521698345815640980886186768527034041106440605403713768845868817675374059385017600663915008187073963107008704487981513239449351299459146239068888822182270971354314883431960366559605966345492985939206576658203883144666708227862017604774746442015294819538120173873660164162614957973324779868993977451308539542198823428538512783659952090576811791095377571704918941718649420885094584160338752000913086564338917634667277592967101112195774920699394063309902522112024357979650577232151331914733287465402423417617658840005358527765213002513755319716003805038736839507047769104678436670665498295958948661144902983407621872577606212522767834018958132471897173188434119564771198547344299659034735536028975053751497354391612306463271323755038406154788729761436704120257987932340202656087956248891815100846740474034480077315980100796837224428843731610569348721856705066944623237802707415511858423182547054524976792403698329491777097794032293019818122686815257982958259687595683225722220437749530278650699214105742835643783762445923539758815556262231364136332732746303592535995185197951804663073186040589833504123446751593569921198932093143055560609834829005708882322969605090803252235861896274676795408281633713145169683552069376502672077234224092040088958174944818534571777389019274813753521041854188193548080314525866438180116561716582139603737305843833538682093472344428265270229103874465854220992941608062690024816319122304315791068074355628926510798295094169722302008911321337663961114608692878207357124615290583852406287006473414344925158599960922960886323430095177814187072096411994636349891103839807573216608850155892719684750051328806228863630295173344949609527617699219377257191475447375913930530926734380762146796966457463530640083376899686572097633973730990082434023770635448827652880478667204546385103636450993607705971586755859807736977702533987214928353752447554203098400092301815390452189730922873757018614192521733771142110193292649768107360449164663453162940337848739482411639114726384619734567858811992048674577291633669489831255583794741673500615681348429551079842933008351742100215472453564954529498968867188749671985440036384042505820513938404082426306383326609290549221405317603189461026549176131320017678164992690436539118596971214626498225185972615171260725982147922101192509550632397630651635903604092368079466246917913482146148829330746970652751215422992879280458972487117635771189065279095579174918489107783051446517757605638881677237735579460325241137043494609387571555563279610100059902824920216197057027140523571794962935336504061505072195617226141638782574713489361173264290078640090791036501593501582538457663939848358243316226494415117201387617485088219335124155235960417667084680149889288373760090853238202199738821139856387963741184774555747820898578596267041761780560119224651416867603013072094273317605508470839957171691251434649269515730008680397943283530706921613984928521750347776919436502677809611306233668965996761012494193865428175834589787822530889204833545956848295398443806185534526284350873668787477826627690188374562331046566373760178654811545521628931390852372431025984282119528432269284827511489637884850730559628151462228389910224250949537060472027140091450511057378988893584943517827098574365396536946102861290652654915436999052203428983547503879027572494662186729173460240309203018092337226833683211212001793916514919682129043747939785804698320958082762313344235534013819307053246088464069804124679193687007048499223987986696913398710284680199001924796610961110461623862359881017542181834385007184215924260209747845544687471142736550023239098730301728460523294208045944311132694908098933453634374345378378284679903399142344039165877030062132203624501872862493119125926875283722520713947526523067784002880497784231985289271073406337446831315517810433615802688341610755990340667283373053359897387781234939587357936378230974657235035914612426453668848908953179385680743711840789183044392081997380907574869180678247835130833028895642439041911367650219249536194231376247872882617824697432056443984166668747959395117952991780018895583846136307752801999997342926786767987337644655647985166299472334324185079334011410229377385737814173997955796513059383790442979593836303453863586627450909344140875244189344258320756098978151398887399100456884910479490161509601400596154901124576069217146303914225644837514075316628439747243411578889783205199110929664408943474294855456005319287462343708564811094237296430021527531847213334469044691406609815046160407656593524957819436783555347089576098903524189243189698494560002612426771794883827554059148273168349480164425141387253236412577649529917199286928419311691364463660946927672519084658349455654690267289132430413862394044062958537693773413945189713170012720247725604169055604527417342513745064848713448709155373910087962270904938722698930839927200385404182078709503727096213770133158739493886754424162033659151900913575449137926685267280992026519047348981350751467350656939831326002143540254927254306855403858476073848541007383691309802148203620248304301220547674292644234483305146370146046256684409483210561605955029032622114773311402861792522535394976333620905792286660604803145003244269538649086781459702309402305210371182534815750294623606715988355489759382312339068922703530273559010733559565922697390258401537274320098104296524360456862165451853665030663526585847752267446930478077337266640653698577823099134895749362496543027461969045634497608557105061925964989101423784610132059680443510162416564465356227100095287393167234651118328081451241565002119386373656835436081092041125440901198798531066339764749019644176540863915479051486636179442702453623654590031757956965426915709687696721415525155011020164070462406224543333295579657447509122947652689758381154131667526973946119858114625311629644601832060411079197893079595150423465108163887094848709893053176698387841882384233197326506454093032600492639321615173398153770000396009415811817429148306455093001737533336589420952246727339270328266420300903865305766183679179048778841317682450812413980485730699028812428863246669271644934607110407399938892346346984789796840392687775670016933741366221492219707580078579177691747395030464755348093882073661406879580436170172375983272909455767648015496806835625937343083086970955913077757408289616718087724393661597965004019337210249765959460958955217402048541751668269667456704674391597998219312465101485108880021288844191900700642487128093431058572284268804476535261584797967378642327791970157397916085271729696255240914964742353663831852228751819493025448323943345149461379117849039158830264836869203202524399209208172294300852052082450568814092707839306355728729042689993779501168675795521840363335588586626151027234510319233892840573717575912283833064189423109058089894653027394402958325621977729449972866823093742403549159791408560095120770994014367369785654394984764687736698273038570320287002312133933014663651787428028499390024121749569678140285794843653137167864641526861455860808402132651425609650085018848118105177403233265798776407203674622509925206266457919274465084379877405069805359455844779960519853243153744580876101517413454761846052795500265379443164797741287364959012578616843594769832087387744049091225560985155882091581860960157364707085883405995661057066549869421224125716363544324744738806343101978441925133018571301256112435683011640191401622984515859312863192958004972710805959479488832540881199182808336331621902952503719818769738795125624418067542230875243277538895969948057145059655595045762265272761830254209534258085869434474986057776419931764511351316573800584260243769782434004180652669845123329144063135852748746258861433026456216471185373802283096132962414143687147762013390188576284202564442132304603959961453849976982625578225694075600886883961038026446281686505497823368420683824971259300208541042021760819397873082900224019677801441346825809086677750208562784754070488977716953252612827472767163516021757433731809375102091533628833093859979388882948254643829864012428477603269826040199401218353701203784293387761139981467622768174897809077726787603192796824644922071778004717335092635345314851270705293812977794574718109983795735381962237315155752775868130606680168133521368602143212297832011081067298159674874575377431253749635919351968354219173666839670796648407590590461574845282629047928276756866063685203975676786624672432668578486262620291466035197995371194823202319531420447731886019118316717924195436565504073983628066626500997233895231519559325930756361594596099528324953870126184466643425939357477898219596191033575228416851303643840409467848650837499603459998804298443779902440084044050900210736944713307330297736243007035653245788658625199143749979548727649833915646648155131323466739982400836819058762120412950174507219115812953518334840506269238274631935147302276152264219787701298400564761337181494378520008445114480825879512175636805967361501495890595740883835946168401497711736057175964477118776134158962640919210712109388187590162554617013931078752582896641451092213423978621535760118570714593015217681858594401108548845967403496966762743187811654082006828263889036320126568144684853462755263554371275221627811587039924483465284637083237147784391621634857176938957872228107174076207603045148283282284235023350930702820109189500147287387158961799829539918080391862216667145972596735402740825178138215569390864757237819221920916327060149659816210840143793322639203467699006706097945228602603808864252849688922972848191229176941754094179859931297700057961821593381889905899936840594251094335007507747302791487196018210991626741523098788906603716473217739517785789199321943882169392788557935290380662254116547220457070242359944708686836992920555628203115027658891033864063721732212833502474987775855855209920578840789990962417336440776278680412083841950652250805633697790234843252808043965073656364590981222193008186848270712401055753877999071208624073658598986694417201583940320497887102643159154041665590964655668672054116058476653364360455050157776114875202400569977195875491865769190575286665892344285277697146765679042181824007044409232077597847412490484214971852035512330092262700287764794056990956340752876517638496746409225966535033659116912695950321762697394192929453934268017081165298894239697347468405998347807356043270067788764305539576769773123687721048371244684764910407747554837784725530302401404852504285938087183169981129589990228147576395050450360070582567779908525606731947529453560738356383080088109670644026835479530552303354732300785556031197172612236667694110607380008617363135610853453153255030681315703349261394715194560700601780119238068743029679503570884633168179675035973231972176007444214540359234741571322979971910385695375879160418620544427584186176045723126802980313842466485450364039448414286069720242640755136153769925234580294964259727380254293728358160503458227028359418289421077079682896207595546080336886227451083195410683667403635893214072318312643176953122980178060174461214291345189839900458897298204534668017359952790111501590633600347901181208591591514174592895286176451865618483685422068503244597082999853110727223781163902347683802936962193339177016724033766266399825981073707054145989699001400079932020683718600049549896123530318575853820909898992434946267218625100545649404270951653863960832647560600619517133748711454414350073894729198424517234119413357528656834659236567249479164232046476208228725369158035698208084081776019322761219881062060867241435021236684128024407119267927055011024954733473786857070471215453829814270235039879290163804693417257635182167503637601713739330227471665549343289273014312990854885842385615941576664732692713545295595847010209475725267441902514930733278645416049232530471791553763189476760100741444391129816420026123096775158784405111632987051863968718329118976977319799095107288694681131746402584375374036466147337478894370283524621348965466631896532090843064453458815740382191113442285968380221362523166073530735708530006284988359967509705450563397696416592504260319571905582607406761729407768430605085295955577711666660307193422804956332121609080645044257821558654080768490904790689010834855873705108844667505561750748379484188411888993314736147489598366043827420327653973358082176431519375483505191968932698363187606526161455453659774502005198482441982093029050843569336743631372226248956878251288102895725649593556126402212915198264972657811325012222538913820609238114939451371656024176126905821222353246707348990353838191671230843585610293222409484530110639984146597203510746128292487351497282226597030242882677350965324698557380870312150550620617053551969216244924264498488098707096480443001689604945031703457078664220769377926867565638465242846399318078228868701058774321643651990346114407308167725895736131054654615654447187721157739637777780195561443128766596839730414742233152027119963634787870541196656206280499988399994479077260609128667910789582249645917290623262767613116397478558058687213546996298925630674377448261976758936344442235373030810213264891163537151990040323770587455497939758062222181342323988535659730019212309033497358979770373017192735688123527589037706918400494291556740732254940774578820551123068019943221020840727537644286805521663938373248692722934613896998327431280031491635470720464779042349128389345040776709474004436886056716971732104707105408997211728201194323901979072604068005964493844038387151999056156616457372413615589224557819049693012904579186455299989680914076873257252276777090585812575496690829636823896474701308934162605387343656586383092398908895473761656459717854145151430885288431188426180958741251519220451665178101785955917353785709310807815144220859336516359403599862889431861760712109638133842547916613365076191253185218817481157223231232699910964792738446076988357213083657596016217424713349161561159263703745245411895869268482650269983368751445575086425257725241518454273989686266537233866516016097765636339148473814189310573457953203586474108080861327975944438055093174792840707953502272356724238046530443279691039027714431405965257666818699302217174228019688166443097950318061768502444514164911603994540580015132015392962128518783938806912589401466064500355962504086845156466113237318797456691446257234052734272936158223272625536513480169633525030645947073555549222079592042073196051810105535062899250867397308693344477600647055399062962840949976269956400934843578210787466474189939739159898908914700492410713746655725674293170154555775815574798660793953471043287474111075648507768901199098170638336378446305721187958024204282389620322795340402727902221666396412899480842841593465750312261435480594592852051401130426900556253875978242778878557072574392837556175793691010650059167078939969547704493020490537018213632268872017375684045267981953166990533764296726056856371865445121221395654403391348410506687126873636959700238192296911621326248894311573153544970433372497302622934309872392537230458440591833793957638256083017849412538202944805986206710074852864914882303258527629723692252398317671516124285924456105617922936040881438482538265883312927504745089930021685244600887169700646133439982483597285777201573781845502292072103126631041168604170223359694305046101618504838187781421291880527490623723212692380451680490038626045910523141774013647686893575353715102172166628930467421450257152394738658729904046949766343602970613786800871995139517104706107196835844505719554734208010669605935884391122951105903289640007287811884565527004434454525931021733980694985938292371101990970689096884382296751885708004360390626000284567542892963331110815086655646049070752517698660554819352297618707604297043815386935290112951216652555353978409948012987413018739992582889553386513721350032966610670226887910169255501953389041439463153373749963356954311169168590339156576606279491504457328683457309325444399878489746814596783318696883362191936187794583875428285668746917461123762314255265261232869864263391235673984508573014399329480261464674130394044867125242956412953800452703068487611806835542963862847416537629043710068547085626054384960264203698759474141995454806897852113930485549038716418929572727994230458508814132565450204896992725486401676063182708112585859030410333959354343835378746503679788306734279735428007023743381859670859886566907241128780608627585669279512502617601798893675388355977024006368749081141284994177805905321817323567683686054687107536026352552070544325296853807269660675229177874300809488376923442237924213877902900616468630970197369350166234713849617652461909863869250261158956635813081311717247304760667467637899641471286941298084815036768642307426118104207861865067606752661829150743413625184722156220960707773373933189699273399718840626540068545956430112293793638072580643157659229200447861009613553605723513828741268499505203906829992239496723344683017293204566734993689214122349046895722083427259808606325055505933191742399754577961999663442123640290074810077973939526096524200341197138678899309938436687359777171542474320315603567798499838401558867431477285206802480365139382738155688062309306432705779124091291891296896645889784807968779932889071353209329747902308544122593371994833735519939194577045115795882615824678573052065390575170540636054685635814639484175275978977671085628260038487758105015948925292931503852834907673832555867592035142692835687126605432077201017671410499637713779683425361750416757634574910359947058321560911347857888705265824019681565854731345097305371482797721041952380968202632075697868358459563631476360336477699455026020885865908731364925082405610788278889850004753651835719091932922605168025231918418303041047673267363647934951133435022858923975902962110547931176091217838582279786131311892332888639747928524563103554165672272356781175211227776309574200592566440755745542209088458750299470901623652617273160241821457806123009704236014954535303972320785871269183064021143790469030297494143889648412135018215283202179048981889888274794097146874498210727457319846289523666494690483205746838562839539692195553280582020177642637787290144975120484022483341742487766239877749696712783825655111481608065335514496336764129847635806556971300349077158895803734182979177084139850645637688505205948411560946239506114307920245469733868389987560872180312307714760848429102339315358008452835373920564172111674172890524933072999808407443242176110718605996104191105298715059482893748184654644134359503057339388898221594482917860213506835732289374728336412377538173975550797872338952775207000826157382558365318154268708595911780630972313528342059178692182241063143681237937245290038226880757428522425371798412790329677890260141972005046591576490123702157752382130909552952875831574995201967321243313704416318683951159303769996848088273949648565754872163836282645371697872860116256351686246493789663186143688207084377500283460513522188973760639665848409970153558616165359101868434414196767024865143873741253415415570716284456450075109512095635530782006898591998152117542413754062793798916881146300906010389769193957085504850201861685069270817804819921946579256544795369421433862195707965934952190961658926579981200885801499069462469920117439636324106070181418463367544089882070587006342422184918784268255555810115494360105078074656753153932268482030229929589741271276027205198666930113282859829484900327229730362634410705119136862572845078522061307859365611595128052003740281627038413972013603411502487530267974699327635943364129771376320540864241031564645444191236398501041799762691716851426961102322519233829000806295512538268401540412611227804577438677169970600622474066732383222619222427951718051982472753882706805598572570172402641433321165791539839104750977873454506218259869627269542964630925343266480673631454467833672646244486768364021612608946074777600678700031950943356842112645619696688933073404757972754917221266123079169024650846292707431404763450230718221717338026545248074589869231352136091768725896154714125809074674400355009581978997952940347928616822170209349073044092980630552155182569824712852344134176957573996164947264335297502547179038383067078801316285520863308925783919928495854117366570615658779222454068892469218467777088023249389055840676742420530249758631993693782117439177877202639865613987491096873333172534944264373587953385703574524453291913216690199649113704084582424695231793408499088088406211907658797784300859672294751674868747985483300080487382108967346104519241774145260752827879018687628290489042809183784882739722505784293764760268269355802073083305743888804980900268410245971975360084322662676642519803401674266409708836269273891420495382452608878408346554232020096580414076843679744642071743150758631604011442413281286644531036902785493121587183630717528878384112632751318451636903973155144964860343696199048403231642473585833656010811820134697292450975629340837960065917198173661346395733943351553242852597570314461843346897592677449414458237018733611340322881798922258498456571009136281386893199092116824977192553608383173754319584198269722132646466297330228612247915887688804267243222986245250624713180213193019134109448842779474315721754790347686347760460099778269195550076454555457500904841520308632773266699316413066289717237493793186839790365227962168685375832364158920621071076810921921346252575196900968830598423252895182908654764933950420785812559261549543463125458551122979322042400961589559617632228489424546034572761907446574609974168226097217111819198915065986266718187884998591632163671600989383148468066434476889122603747164753244229834361661125402188115038036425161001843691348383584894026592012702952240543316043775686456894864561872357580415486864594986289577194876848435703500552532100171153183539723508653075029759515226003945914162835035201146060175463372561079178343163647251535617555289794052308658871571126450940884296696316485888579524331573264766949189415035393242299093525944219744015887198679555686640863797291620540843770642990685538141714709822059291706523621192853177823624710982060075086943527310306434035599661253939325466007146280296060210820489536228275769109698518062999992159742392784688664377194813114707469828408515037331176038664354445648722501403981808207600425072090734555633580305082942147770297119371097914794487801524122134286269386260053222053158141971595854022423932383921855910862536065059261515236183250755112686170623220009251545314796749303756868011282203480555184654202400091018911968163388383125275230201064670309804343375434686153832033447216168724597296448450201245625963009609052851245526596237969802380482105056985901120264948822005231046252103654683411446401386893688128281948973626676029903102940913045556677425077492587187080152765025768534726403943751838321850664500968139620246193445319462412271660523809856246696815229181152587974955058803518550778823180894627510208057267005858115767829672264978101433342977831214151885088257446065144337377965575823876761107008334441095040056307902436219526302810602282712711318884525448386237162543886796225729127940632410170612068529990422661102277923369202196518860469879272532118182139857702250948704144583154457348972308316983016517682970937428701170399575812014917224310698248165514021133129139634221203849279105165113903416708831821441953889158500220638502235703111335881211586616437092047326495529609797014219990224156958581028875441170006302040066142453720084631045384207497353928526152297545583979804037812194261016383480406525623711086314997720515509018473424132025684789751690206789054130080881692447506852105803409928796873525568365830224389168733322516296982805606857695296129901538565139325981354905659407767187110657833338409554999846938948815319690480406808605179323217626072029205002057953863596893364651566151535815518212433120769722582182328368949267050360137504292185643629104678190376598564602979258920288420836388393772378357210855607619666794101868035556873307373942098196638414959196887119190218958834317198080959711474945609378852679264026557084468834055770531145049461766393283793456260331373381945303025935512667214188346996678509081537665372864969376519332917389183993812250375628938985916922432316788016233837914861480483805634783141955480702679256196792020781118413308011540238650719912917103518937925459771207166223008096249622343098865734217045590461758658383473954829276818837669333288836718625090696245638531761225771619118173913490340133171006550000272388614277020438809073572209128019359272902615328812689405881311531663897063901180394548744625247031450375804415237354100176068419253893001168952772077733350587436098910295026891084428730130416020338893699570589376081452181365820246587747166066063876429964017201967155995701894685979411301122965316623390699063792425023774580758406839106145956810823139955236285994510774702250643876187036660585685269789181876185934016539335880076904164265873750073276709674875770342971583146695412948806869739605475772306805307898069491825023972122840780263465130049433829687745077150172914733718585852560006513722026638802168240937705584782511891214947868818009553384970007521693420595917692516370113596158239681063193391577824373200837443173872744821623863001493527021473379124816872145141516519061786261485694449465089814510021382479135243829081431238413536377291294017425788083058131138097325203671571325179925502379575017043727368543204418371697014347863149707534463749543304228961848518603377993090125912503592847848873480166282530638660574542792006010728687948718331987977220730948035631339027482776241981478148662602221736820907257807415346336500644649162260928857410351243867292980010930624455854536098025913392889226674823271779699270644500537529238192699337612590844192793721893934706409714383307932454991353131403694390111271994419884814464284791482133229788120559638746772891752276222150541032475925616916442964988491431088472133090513089613832519949792963934916871912491500074212134332385810151242937975494173700671879847184811951955847762935645233446064955250344462880864743717292013869492705656334130733373425801530634454360471744721061841373456362109018071288810110163089917424243091965064263051240543018022469093887761745309456388700315030847921714504106923981515692091645583096755749345698894887610523935514028642750701136369305797436762343379811737806087320160443695010006958426150412836147807490903471375763494586354945873363384070954029544081783800557257365771319005546153237262468572622370015796935136089021108881884765269883013480468432861561998406518618767126873882329136964450385717955016292051494172125604575643086014556744307177149199111364606267847414926823233450390942816191656677365020832385255848916778436819607805470774759862195272252913376547888319538905597525280564851221119364778093335787753112337966402927630013977951051677938907543190920334261112022172763378647827957808733462116567981183605403145199115482202435597361533343160039332731287600508739727228169456162080529780526801596746090424014330661804648260308031137899697219738955040900193825714166690546584986676799666765151971594862618018619942315867177378855839770604055806056596467227431551899414068725237194330852537281659705890421938545832593644448895211918443144668304749544557119174677670030638254027946645002711836673556534219276507721126487297297990446570922840071921997096258928715461955984243800251058295829608342270343948974956961461244668361884397410696808044292785789922702600808933984203241219490205432353307572927827668614375574512536069657692408505159242814261254773495641723960376326706575830688199289578200796817516993608513715178698000879229294338335195807677066063474788482837050552663465270015761461141523455917718215778122723446476007465711398172872518499541409459003208037600294518029996562692022700918225013155817292886965476159460195842904996739752262654550889215302497225584731491929613795882004063082001855888845019909884855031280130720564504856300927370832831057930098991914709467250084350444093982960720035505945111362378066214980400194872644060956821703667807180260323139898050977998918580420425095268632044648692025537376057483857787258690559196149319520946272564975526517030122456779100214993163037094478054439511940415209046294578636151056313980346175276265960549821294664701484740024198000062856710523618933375128728100963916757391225518682359195869315108838027143238497325158708705110270903714108267972691201570546917578173327086923639254656931749545301470684326718908327527215570661735065128523424472571192328254859545626974513601194244571213454145343652358612430704821396613224364649028805300361322198417994026001605460995514101954458513081418079627447826170276405251344882751327450065421856076263649557478882342374506094202377230347048039275852948101781860775750304793140320571264352469824965693985289239561516721834458046654624788012004855526590180208602317032666155248272380158197839253661293838583567394656475165295223275101667612146036848240477316232383985905196975441439715957726045679320325945452929420595351146200642362391094037430348738579452041357761184594583500262916848824947663934457567916078955215776493367899054189689747958065017513193066616626935504725792688250851770628311668159051073506862333384140313031566573067759254128637666810609217275840685846052752457402913047891304397654700845242603934028399726750418513885009380072776320679615214184949061096153166764907752946265565767291142219740211292331068317978938214263781581116883486566205481694508741067732338029856819400421580908722144098592644156707521340674635533706866380871869706796084330904314244299720746990470306352502921966809102811267499618969862117424950889149432972053040037801481057980243788398254527711586534218517893358390142102982898613347661224716885319738171902411339485167676135207156716819476088776766905452745800639248718254934019604493887311194511819230526717618744041304271363407612449591188622504076724282608575154977428344103275158150216520409511545836771593024196211507541410576729699488381711432907063060674398057536133501840846300148590794095752759921866834995965921704764022492091293754421868944853210198782761681701479790369648324255077402588338908618868360768497845598749623071831168539814837276267140677518743463987165371163160245613834798347998887821169189337910351728057284643628808665333803119702593627817011095725870259185245844882515456428408459567125921275587366009477919960645574197545456799482331154741897468530797680657204233848703138515596355057247032275578310123471961293894372561381007569043922491913182802827351154456257399110821030646082732059535710626621116302760835344442054611226285592421870289153145579091174541593371608777838944906204679041130724090510048665572877685681582563210223995890696722771290781266171271931791566106718397264495338831753257951496398705583051900896170216706729837046389488204853814677689205909108636486338263945593696420382036554105276967621921966644975433465190085141813794012575983395754126300831315121739554449229477332392589359430873928853961800655005684496130186993439704339940920112281316358460626054662024512832711148146892122553644060913728721774079897442299306881471259023923427627926055663760940653441903656788851869714368579013859165325988215287041147190485456590619259734789740177285107257810923518710866749583634760819854993352659705689324962094305574355421961104168652815776462329566993134264583508435166681872641125612213976169525245204157121754923669304370743896695228810621184579019672548821256914511229100704854271207765136698261625982170460423657137311680050749332363253454436965508229214534361508996054998455221400726685750556026356966427982766783131835222125648034731551393425815759889440680378261361080794977130870524990010281348700331409994714665277466431609236047325611983975547879567758469115087410723284210275930666655786315147101766097175369717415502605952285825570467543079439925895095440715561498650482896699137990231190928804308214003271184687078213238017015737244484413152686633329918223636967909289418027967112013050498691815217467293169454692750273146594576040752871832141895193687402998942606754913983287613030940272741635305886409281261157642116487823032015180900289267953136060095162051918398475352446067308176707277091155939194458215555250908693253144129956091203722344800895344731909411169100522083064675323322424340960200345681877146405907570533325175019394559340997668921856888503227349390196031999622187124711256644713712696695500566571035636627023800530065224411154490798706234691816817592349760359039505538453685425619470095985674408412592585229421386905117560197013327320650929915715784310060607039581091550944823498971898282691558191252236060605490178862458271609154128644740687895451250334469802850432293004959513571023258668379234145157694119788482813485313284926628220268418850047331236347321037309676235118612281862716907498461475806938991948551393835836819814266285139232006981108193471981026885173141476465889605781829261144243597702261797276791350988786815423445921627132463886373354004435611351405736403795261356382275222831291952741317502004490884839124320644677641380708536171912418944849486631420852365780515447094551211819550029499731476880577060708244300452040998914978375229195662843559242638362145829691045316878273555846261412343204717781133132269439925745681229916010455730801884946931851166048513610923335683701369267478246766150728092809084002085208841979442815458741996157567713657242031896359903572983426040185171551488768862986577548142505602972718441424431412999937078433718919864400948430851822494589670978367388176873119264550900471721267477175549776849434588637669823041194599885652991025193713590472405443421601580303265315043425621152239656927270270250738566900876180541309755366800921447580816071162653765755920215308118530282194770332350071858948333504956544382890900129995702506387602550723961387441546453112786938120872371478491583113827043109897067031144619298400583704273039840095007986869997491102812935421170210662713045700415550477681544746721865613454680702640087334875732068125868167449508201711755072306092771380081615944376808421086677720762898959990440930927348239808981661048048072935540377230972905501503070291279622642975969652257225601167914712117917378893381878104476612024357639648372884921212645219938450981500646764210094610816805109419018543291310123996678094600216969922492767886390724524804799823423208791254318143894808372327403617353465259309950608939130763367016095824273118957995981895452396023903307023665959569382771521499702917572622754470900952985098114362932824989004467501489611369420382295699628413251561095116330151986104592907531409345409529335912617928370487642744273893626729380899537166163166846387660787905000082755806293682048140994791510723708056339975301609137838987682650516494011444273744755750648485581194552217854995103348797974080005494395918426631931781476756859026785516982135186860202378300572372866163788445970094448241349201331087344489489379108660738710372728244642896350797077837594160732464018996252089078991909249649896648730229905450903319468345440450745120352890047387897295574935834894995996042592371612598390747738171798968706697052245227578257319074550046559365623045656968076105355092169777908695534895980143018531239246154111638517018850620211688967608307568940287503172821216711629806587999064793931444193029537964765252211287283303423010654353623952760727987800318503281249715287685864640294819505791528597467501155944073350341500456038732554466677032498139992186023510920848251248460851562667582552017615359286126509555982399932623941133858491604745237979238313187480550419881859388761454963760488775513365985262500908009746495008337358480726056754335811890699126044228223070420811761001942495751876756527999056948260979154692712587255056037348935487339450824556941579199179980012644723977931907901020227918901570034008799470940042569927089994541264160688336074803129257916062639528259020398068892419242460921813129231660614979322065167913257832892725736836440105193943708068669235000158440373610164543318759039531198163992191028887422490824091429331478534685855825913486203640052715046360781477364456759554276510395513677897126003641356764569267574305532048582477591834570480774264574596591853249524369543754022203703045086829151131132861884347288653110477549810759058845610448315725761967646558142140634272516034336744552875229619605158679793525935860194041029477444931818845806220611506834959230658303370239668948413836514099261723805937204693854695599725667687215783570753612948648991927286273816799976917172212227648951596709288496086669053971820385820874270690445599350396932863813244329498205273839348055028962593046785920883987184213468545010188618974693610309277362814111266324430819250144919308742300518850445069455977003872372370491552411831165966081177089151337881929836925260821979115935676262731450163925302770761063990575167906252188824881260240570288674680283287136943984031835318658991011662664621015884447835408801158662062551858306213657372141526124091899576022463368486948333175154359503643793497706312230201585283839102890285587375821367671571398459695453609486967568716799120702373093318632245746541719037886953894047360968965468213855997694152514076214863620262622958422965127828702991935950659587433186335531102406994786492955426794372060372382220019851361248968648334130208737897886761548295018059616081662003331652972071780206636271049739252780833429261776990351273856758251019128939627319411541937986633402712593620563885063401896869481078011283021249902930363617021532048021209725367453296371107197504179750329129574102920200880416792539254440761979643790934187143871047015266637015468749979403178268876367915985084972533794724067147870256342949500601499193603846124192098861042863622053890285699647194617405720305824181295156089822743175089756097810903430841935873035712603454694196771388977667788574785723482319778430077315041875678583582305122889128210662827829238066712241806756968548588284520252326026017426356347434021540479227536390028445458078983316638351771512056291610352176120270349749360380015084184152318225682059187707410025825003275016498765363554262531847570446424810053093022226490435584520215322850281387464808969188213700948409287183209086713443074534941883003200238119005856264871596436159769219792728669681092110303602440973117899013488781044186256741168064354567460451652184390166425494820428312050865949135740933614324686886872320313061970403354092688499935777497106248251505141494256796472415772717174408906556184858223634391827799945064664567630489703131129256617442049158743390954041236250786232135647414857701505852528770063995463221200673086513959994037896544230040243485103905317411614975828252508743869787369990789694029584526609676708711571438468515101942723443112068881202150160823163760744383740812104477774240274026132088029623609457189965364775797091857490151625912006945692473027063557880975764957536381833120187481371143817850662942449384944579617715233934015139505700450752615717632043982398526064305711843832201271980075064138213049432752526441113458222855571509912665195081770399294291397446933598921028416494377960517250694935749621138538637433789442229300958895146964691463410437727626365173265674738809634020927184577269372743838021186992735130975332865213762877773512209955694928366507600817320227468485146467173233742678697523976987165004949124161702567864649910714190589007932663174472017680964418055750574746392851976937064568165060338890673045319378003873159637519510128367947330174264934347816900406455551201437183824819869879314685688517754176446188327504303699171141637558435839627798362071468939266091021168831711409325652234721346890337057171114790665094081120118789366232554046815758975930117933006373334925481346895466749083202524310851054614691602474549438745025777355975676480201317740443371786296929727372388492250653419441347051277137283475051639395472640533756650310205767467297407955919791054000587704094971709506116945517151578887285824113899620990006365253184924606168655310124507037583942814942434535304870045477433943369225043903476623634654900728997040547927942943274925538611386775949773553294218824538986089441690493449012548162019318381287632367418289106529651426597361410419177354808294720874899004569487440136579657766616120721190670465882644923743055190896415171863089421024512077497130686969237724557045629654388395102699974160557933607941804000278910696367995396205646597811978786608401260878201362780002963328662244269054688557259130930179452413763169534088547694013625845548033024918230797977211623813397793877797360688220523211086636469502061824081736897114916695459145459286999504088871235291825381623723762303046318853063584301303172928608621653342582410692739277440335628622464102510822020498459019068567568567636316680380813438529410568416852733651488617001350039845633553176585208039551309814156805616423480427469656291809943846209297569181125047448012687841298652021728689283277694273052687294030225106656960259990723967940387499709162847989070685287543196423588557848966450874642964363005550407288569406472556591723463042233309329023066515891314310852640974468239055311961167595431530280199147110060407107788233086211248755237547087423073150809200558452165736261502213475373522206617507708278767288435624807111155618370615202092405521059427742770858281090907878893473642550696087536917121267592655537765300784413288317326462149479526350907168311776906591703956672474288618946860267465564735928409548543064337507034667859816468596785908342845910435378270227651744756277409141108390499071067143033965121665379136279875550685867015472554962834201369724704524744405850752491281843724229411406962867419181107699511187769172509808687974879783640875255785431350214586450357214651519011120044408913842265540345856273687770963374376533050574140012710873350607939475357378275468431421408454718945847622409930677241871917295315257097481640281512947527938484474712589276929702727097260675688669952695207823807114994341953883048847840001164619395613871990934794647038657307643221013599588532980663783251929218907214066841426193420563839867404175884786699550565179652818991508653531720069323454027597141793947008415918130839432683104009292318069889669658205355663795405706415157558769632065542577225868073649410859451906411492881565601597184657832417070260991888462213077881753715970609831446559068976956556991865674043016859611289182075404662081502148153357200676343599218985799174674243541996040961978522136159544116637491361140489761829551924028213009329090149651212884792237056428000519098603226402209891464145265275081980392324081684233338527060414068131984984650369704366398866713787327513721037439580096925364804947275003773395329600414478712511346515160422628349029135101104915911006788410916671083541759076572075137261447334472310361688797388633396363560753691342821484638030571466470221393727180695506671345774266844719163361563876025048776794300341706089885716717396192163771126274845441783066196330186599355262116825397574840986652127011725239663913207991042072263935621041765729610819371695368274726237965147460655030408924627832215206665847195918405606262942523825175736267250583616067598949410600684421930865318415259018344911262410082318600775818440986253921189965010097133164859537676941680927581300942134155572275596913294831529097853226382813816550335682862492600488501750366316740813830354649704655595600684221117113725931858184426112134042696450956970142806220212547335305857473476716919544355290670111291825703549306256615665294092191305247374808292166978192178149649579975227159284867613961318830990034988414116580121912180950876643999981279191216022162486936330399022967393134640172094298134734106018711809645504643455206164680433415642060020573076209463841201390801294496768185174860264040057799843440706234985381041105402291388279558157326049738045832108845248232515529706949983526011353320997441299315541386091343377613286749078689149971962942686522043630613208260843870598903570043869645968699924020013832861859664053824208670035135211156483483080476821326647484366986849476898937730250146893335670369320747286714689414552805493444202598683433547100356471788815661370265555857623993470066609031903543238046711967908408129424966653031111552235592060168875795202229010143185550416546071079181120786169933452320338164829981767654228481231257354780119937158528898784288027964155456429571717118329528678756355568164770985050551867848565565024026371752022820097409548531219772890978544803606885385301520790158474330340695472073232791370324410769522861180419614128493959148846708535985119498172782608309341354639060529609288745200075964242285881086142593702486765885892251545388722217557573429102117129063604162901205296580440263907387107324694548424251734628531213944443907280635971871172040728196034376347910050377750798233631577791345387540207858367607521308050113367500579638101380995543169144847504271984117960671551969711142522367075118819182996909530990796096571737271875959856211877755959742690847611933574120651817787164467847433645332915215357249108880926377580734672042722390356346119099844091710370299901251347425690669399055688574175022352663543392798631713673022773188662404737741842317748097625724848972991768488306388981496499915941652256168462130327821697408281949847035642626720315730089904278258102072518708001504299797135556870413486899184281083237245155385277763344246937693308319747233629550058644727809433256686281239542660312274432984431009644265439920363291205744705510946287470525501948565261836691921921368793990970667280324869071312097317980425030276056728762828428779347693567358667183794717175595193075016499904392393789571281345006741110753721662872181919171995268264126944540722582904573438114280771422544171013540457050428083456741355815189589994347518582566872562590934151068277924235900595893617068052379634991886077996357000212690501844597083838725669184949485487721115912484437746523848400583201432657568452936558073022512151896966263878899655837463003211383901809942875122566923883930475675289773727227653798037132006406628318080869173028078060998708771061236695281352150663262469594973104680593517046415498916341743566885711062082095225568444310722839401657595478632056929519712468863725444621491880212213154796492431921525475873053680710995827059829180742122410030431547377201658506397586809741539989956801094414403875628631532089425780569104329460047097669807068027527818513370320786400847101504516799620054577448137177406457340388865761703589872348838724829317561477595151706755666691146831190698062085167702444825769477534068666280401398020760326425521175889426333111057499940268007889207048229797822857848184542998574294266201284914491674836393790054697743958286377484605004009951380516984918887450154009486769995991487813724444914975282970310459934480223976507377899110478753318710059955543021483078629799962777592832427546390268616208418184301535945064465750241428066402858166717705978405453415109673483519691049187677714103942989348083790707049517408996208052792384091029902200556954539671702711595640687801296684098499637189633724332914526103748933344201151326361831550187043890143800839134589138062690714429902881144730017573432114156762408287538296139907003977508741511506355381173656086561486666566080616350794789724664605071707482769630158110699898221808379765737671418283255510261438943038848330186271693932798046981779819244107661530049194414927778978197736696161445500229022048040088634280223192838798040859344591620803876086338353563144060728081124213292809673127709655941866064781861367670922323706478099102991282560265552190833019075799328740476151915047806996476869979372744212637755988799482366867537100107148761534570924174532695831462934845450198541892488045057690651076284861224460898318172920889002976027603291965944251471659763431076451134248472759553568349605374653531717925013990299938550366901364250741581267602647691256662188789266336432924450838177188978796619392404578228442858698314193940800066172670463428981094459490151000084497052801392135219523760718298559566381632973966522119502109613246085053950721215114110006286210804614379305207502052931759182873999284568667726399830951489029956488224719243560358094952194107597156309711496496746619031657735105139567099141209933655828815433703663131364911455905716126029938532242317039673510257698123354110607676594584235936988269468833680251263536458683280065966431298235609205591661608387665215252564246807436700735475029715008321931058819987960131734453046612893672004351740060377323479573797359876270610976817661189121032900823100789616820959318916384763863348653714412476221383283751477381970148036113042072009502210372525495080047460241444860060591055362940119993422600397702933812952579474489471345784557640437245676086739056883965898275930533853463006984926160112873039766109884128918363362327465058977528495033220252735094251559565944789098098668193861728208184342697714722396016366203688505644940370958000904953763946709085420946805849711677715508944034701416973394997051854022111925088449038453388633440707332505428162946079741675185834415906423005119754611103484520730440254013114750572156938316889054914944384502112981503504102073535167064512115029176848206561052119758731364017318527355875857250285321654923565919951557331680098891394377001384130774096184677256591635340077374605965979284295102815585011825968281823246075931355915051431062489782683351730405721999345690126210957539579653058679041353284276336712982198637602110838910189530543002392100969141990690613907985156835507441541029854393058324800380187337073325025603459922442246318676654208358925878997188636615039155623690302257720687126710536397843653738015165183413923488879974865220040457714519268923052627804810343764156424702926275781401712060898880948524264177313644487290790850431852793498739283268660485287968171637709822478043999797334749006509295840730327039359279928532623177972361933417338393792432247175026793984367242225520480134545844787468776696010079957127622755422407079095574056674845252381147095531750993787786897167272938624231016177094857783313550929744373463350441766665577264655697186668865035629372965823686351928656160560158300659582718576218740060218243855691377148213789068063319243271142189595010343775234335353919524669609028518300213460379119653150272628226922814826519180954845992254465505386858831640021463452784674856412087972502230972468923973711952477048541908779604196219006969304722516519601459855862170638302534747842441879580208732952920880239040514112731578844169037748529239792681983749168647048904523747559444959454290080777639250941680792194647428424486171963950649125826046688903287039234791515368748956409511036137179527217460704915626476666565995112880885080665291231928129649038594466499792456581820126825698499011233367680964972586969154125745341674627479496993740484826926495009229403966204554915036713575947411161960120462024781791326537106980645352632111977013720082531873964852525202641174454855020050223746864102709336640832891579435838197618762055405933164784951318447458912981861108223266109547239434308325086347480356651686099075522028231433505876031161274722100670887811597090552191628381272384656700439428073388768547191433837284902414457437213293485388060477498744033399424878384272068813949857548239698353146320700507901693336845739161260816090281820157544040611233723948206030830104385219009476182967849006579560200988991280740632888351327629199285177960729101975709102614158382904146350798572062313729837271426690023106891070349378384686754392859497996746849030669650579325061907116123898137826023457953143478682761102897393577972125308020609941272207127127445345179216620112955299061051187825196961215768993312814746239028809572879522759075560167938314440674066110900134234921977929156694851147649351932062312494861576064980831640909194465821336028318183129679402261066342205011908174461334822602049653157983564568255375131790181610713010159735444051369036572320410998397101203381195785933397853483975171861991864786442621597144534768178298857872852922695205969430522435153617436318032992936118991482628900674631838328924046741078639681766233430913172888043791326556751787384372224549808076779196361595162900969072790449591262195407864176360838032171026542191931551471371170736504447551620441322617575978614149818563758726886770909818572503123267833141536788405303003536176694896818926239715383773093197248889796704267426034362411176228589400769352949420538268291182385120548252667094822235647661111473186641950447059653827675536037012065586598907619259392192999890063080584266827268106290431842503176934557416595205750388892909932378224423431944431955293513936758543610029680064973694598298218997147587166304169173260516595988196717020067867903576194587769720879671737071942378257931337947215504707757715910500796088222180602976092136444971654493611878939146027379254696002529354614722509147575048282150798289011582152987488260192095367461707709420487788498595078116942168579556008139819559516831993327331137916637714248700002120789562467555339912295993334370634624626780105881347641486955558421751893809377617607568996259034675097391848566970321860953440166341415362818573551420759200540696034496017218590759469776102248869202477172314818098635517778901258886002009407637236572943619175329475793354331670720517140464814294954232568393480627664957180256396759991947603437884154722891123886290406276148465770185197381349794550878733219402570955546753987422970529396754607638953070951237467394762306877981169632247632604855551847609016598002123212432356462939454174709785880513231904486302088789230619428557239646467650305052256000330604019937625530644240621873178947819111183103572908738222443525516013774789800642958740702640773334053550362165162234229243822800293714283988883708274398316418075041742034660499703491880726858326319119596347512516767305055184444586895217476048733248079586266148458069916607694602979186090766713038463484864450135159315126176091897636891459098286370017075574441321253007823245553903706781464451027284826782045911218111101811359387468622251770072353974435336434887164798191322942729257198348629768864378990877083054259316665596135563056584391484341942149889120438576217151475823815528677095765926787418348278412263740983492265465411963865693183135037915841699959446846680266377504430137417093305047732469569294765984001843341268642764928139026259337940307927434119620935978225656425310741811452417535535480457026324592704321448450187550568367676195376479938781073449978162630874370834548860965734900510680671565397165854091504814942324420677273809219221224853323582753197154417031418818106139888613689906719450470643867804321204761122847735454037388770636831276203552307305393941313376820413035003761390287475255544234343273022812059772121156765798127102642012347683518553947670852219698838701561323938473204514388613379237637105428350274489613661239738585308141768523589839103091956896331512704054438867755049286368389265371892948163364872316361683437602920767472649410289079668759456373912314617167305779938422238010757833557518301916184513490668959129623675540653286204946948494123126530639575001222637037910552480529146334399024472276388417445797167274307189625968965796503346192921451665757448797782651308103940448693486853156198258823310564376999155275533136338728044695214316096979974854927934413607555769793674872913372987123710984927416543079041910704607418156682075250721174119927418291013726663092756685637670533847156569127233639939989161527943729686993270795189364372130770544754903932533341713071509547126504185997459213854043304090513622850320931940360214436983185469483044517018753048656060528817788020780248230297122397887694360629378710549619693334921572118806216760882028082209219142049851435363917655923324596658463620361487121528545722094570369844750137253438549488701760442016568528568826099216787161843785283617004127585089737413965123626984392510533567999812687799178309964292065366239631642915191835778463647924251886575725189474228641331047854334644883420721703577203463665379630596346936437116102490854403070094253105018212663808033532953754391392676747646371724988403134185740263035662049214524511819678877809694949315116759161933512245780872387415969803834102485535463511965127447082333506883410544407792879430809890287241038667665934838702684588810731682419470762814888221082191127199668496308397596653310126740638702931322697892708276232650696733230578206942446744996775785025869636464605917689171596196709362589066138290288823267361280658141035986319473226339285911207504166859344302321366903490938147779172783106124408322739016876961606370705686075186399149145269082339212949321753396522097073917988374124411152105143477220811910054495708220678031770415932574572983917197395910309968353281779955106194901912812406974850305842584349998144513867973492981305723808735852322051343664962230885935373201923338950741488304510743016216303172576350702121073616414218440797095995090286877263811867690022496647142938812970131106256569013357491749327924937224429856731441629418062735935248231850501653634473647839193180061481444683703079639883807143286034040913534268167515880649969027344121134970755544531468349182659021667845188070973863872248926135715939953115206591200244059401469381014179613073095030073913916032388361750729935574551110675336933231782045142720192082129672244786112887943211047999320485077932298899914764068454599762239810109896399427148580681066258354645028436499838553034180448791172429628202328824209032078473479859088211155269657122775389134920115336042323176102592644332206613975666127381519028614088961174296945427372064489047115816248567124031187194623086986840296260376116304319651476430505292472450871224808831990628020152257277423014045212276195406357177851157578142757983718351548685652218074259895697674103000845737820901072519256837708717710666730090779610016006659821285013823225947854941123789215718826141417686922227241192106660621563643789873129677701445763897667142841089833194233278254700855507936677266618140530731575214976643343902929556598707112402904349243894660540343686513882932007517779818903526095887619974153882655267043071271052434973100334055200320303958538090186669693499214157241169388720281966535154828710758972315926511337319970942389866872849287494346080064564711501896502564736138185636298593472420746539329426079353347300860253703512865957807687798025355027640990942552599546977063229158048763031544581501951890498983499450463805262852708838417026768441067663934055280858457405258439326435420734885426498163905275390137325677998337254259503409169515793417781681496613722837162951502465734741070553224190265978440462201592741664959679788052705490941376134509260485361608173709630249858342732173846885601848954944001303690050891193130929547790652687415668039344341341097480024080752812237476717736771281152843898230201273188457875694408479311703641942657737238391636176794896843268337982138895602747122279400336753312181187799758006562568708957190213245548887998641506537979420115487314609638811992229210119120657244483016912695120879944830671129425033861300901287636951044994963621772709804373273494323442228020435454007534843144300946822305075180356112492035412214938983033177845029580509582296493955615286230602029337067128733318766231194998227876102791993056746852773404715452220476556187015750657472448417325702776119117302974772938899002033476428777021530568554775994297356857701689672159482437036276125087961696861339625359855005314652908649289873352654096522118511444780672708595056869397559211553217525412819316499452100868034539948208426454149824394830971725370667179549958661898524343973498816420218778653093660028337320538378757594394665442768802939837134493760137950822425307392952369596583181343375621270860214309053456634236046267438342064409105451748246052209513099270607907866201705278237398083794314015209485571480399079086721780078467963292814308914700047469358957332492811207131746782026870874473998781488247703454480431598294957711157724979362159923060066746992817392623580141218983632626081997523091899000783043968276554158421272925640317432283218772940001932171478683988240072575739067188691909259959197752193358741364261311607730726057998106733115957277252607492627306392272775499707156103503836542781144145638482290496029195606028527923947002811392775901433980996141601445225828184377531126450816767707627422491945907568285727843388263637134940939193039403887991476211074560999079347615895190623046382400697156355884417988328908295684072686014609627530952868486110273842673198789299168464050114484660320872983417030037290575786390561091670029263202277245598217310725153088506741813237988574307444987976422947292557392635601836441673300219216058598253703575160996859759206274955721873346552278966941585546790693129105051803576447933386738739802706562007224403621130072892152512473705483748695414860543200413869951823886191207927522162589562612423584853240046851583472793149657502659455541709404787811026431573077322041611003336951180484052831608141758099618304139753667564586507604570830006579142690473566948518860758061830154243954166722809247643132544814343831405776758211369936592194926460826089407169262367119437453882814292535939808223693437726744086951759141817515619995846385207528459220234583788496328378195400616310927561127659068246723122340739795190088882311827716472287745559325072919439910028513090015334577497170838474996584350647556512253167254472971379201374721932176483798619500450688969381879168429512387691044790555207853618167524628744363850335725432895586008655874396514984502138032524210205697779376801555966377976142510032104552250455815806711486140880871647897930101493329879096940231099961373204877894096642553267169394393252168426754356606529841530794835228722747523838367043490966799839254009128526218699167390215340603534096587232796422431906744677189092961783557274794667849126605725035693642466133035129952566677943764641825352700896685647246755522013772003169071895851361986027531296704674354040671562672469392976518204369512113900358243251469272191584058332476958478227203699812337354598131773786794874222789809722699458770083238069432278246958246213670084297534684685175776304807980449231658619501610114886447362611853087801876633304242281703605789885749307447283268665669798704260740982711144305553311551085475974400257739309171634685744602174529720736560217758909955256760296751929937614607884798043354304806791517571647665549558765298158797774260131585577165541850269808099577202383241915467063072133592204023617559361313238449396383698644101549215417106111194911237721630924842174198083628045608674788820910403193858164979280525825267749137242755540059925996186344443142230574396704980102459233051531585036218409091976189070005767245447695551474515085734331797732200642131777345018425317515909512580655172177352735373403651155371162096401689164107589994688871715817209557757357351426958626732486580836384965803193264424592699449754686222933940018865591888789123405560736433648548706155717669678412766431207085603745108010735353639358404631991540965594230067016048717377565403969157763460772159355636895026680014644189742335998849748133421517301724238392942109241523771957060278507779046775552687900843268020037971494240958229624149386113511322601862984127683643467440348727620436106101565907932603570397116606162478190503504342587209982410040058840464052462723901030515994345528095199570362404323989323273587683716614625681504639100140676912849323002149931035607633573995336408754145556415404967600849179628555961734728833701688580884499049670910917982007463468718653151363314445796533776407909106990023344757105790153478385353600021649602486808454935808460194535308097847793746772526818438260018010058994078535001634887984143940174516382318973287973793559012664747918045525408756860638037324813151368962337299825998734685229628804277364524636241124865300541775986838853493871939513386453692426050569715784788197921835620868459853234191216131129456531763687409719120195341755877698300021083425620364075024603475780733104876870081702312771993764036456647830652439539982244441634391038376843582002687520171744857555209798284828774589646285652536904890763183293052766368752805488325053319842814803710368707282762442910959223705509780318384646409741190448323694712077214478538932721202365508840725263894552564590888630078454343144682778206806704128070112437782856226229895895953846287384138007196092861420725970753313955452258420397489294277122401778021454771999878901029566602956789508848269097221602077059492641287778604500562298698022348007917822510441854959434476339780136721114430286021967002747681058794877895783973388435154138653365809436576769905315090059242635356249624577529890603604418403057795996072460408530219901319171064746195568499754732088901764420271658118305150640574042783370439445695683447641941564715681698864896671843563427076221656225966281267265878908053649202731209907494782486509621069897821181258274601144697416436343555086130014020975431826470063565602175546325589900399255438035911430572635880043698981496034252732048969167877344287759720177515804449142145222253011374997462871743419943090983799230098512383642070612206471619649518190429717575419934634155164436062305995399074207544863975433923608448152741824134266805650641382180306800866171534952150538438613249279753157049022480728962317247779728968100023552420940547266346380116734528039898816845552598477787161374502513841371084618203140559683066574865776345741670855329732558980784990306571126682217191619420432233354486206606564153764765042058543921652633470853195632290807493118221601122465685914453579568882986505019999930666088082251727173979315443839832654037388807220798643313674238431913514240990056725453745185521078192995695703925593502092489118025141163587931776040541938433916775499486242599012627471706378753511606669154513412046178911170000164594718065668930760328315233651825688353781554849173046330592979821081615147528353894517049360834667850274124167737251064007754598686287158271980964769636169472631732754735438049797505465982103658333516489489912199682969221462140422186461466036682666647438237272456651998075857388756232795928481960666894458334391627433064511909006559846227375485539795961372947877670654491641124684798202591287210585250105361154019787475296642697415433101633135507107703761767689359909119180788765914110000176007809436201446184709450112507210932605942461345961788337434506856043981139534158143500086076038702925026922849464047097093040418127817171058780107270587328695957682325796414165555248635378191764877182946001944141002437708770911767101053529261299693977020042227656150642348175748685491836974309786252791766562033302375328005159919384950859166752175108170116632925769972088145223909547643526225996550826054629558882742892071737460912211087767915827088454058370780005656261494290202978456019110288568290380749206048398477857540010317770517442944939764279904851395803570850343637676282655750072198904738806410739072990930398259281295298927797567797889172387544319760687229707926669506216391933504225012644956404104364408450858350411894949670711638772013925292294887930677542270287162713347292562029576570333854381435788493462764010407335055460041283918862146707375178715358103909188943215829503668956501788572301796394240756829470942159967873445648284081754919699992272823232578086340705387270327087383902236386325841746827731610368307208322125091783561242370887710562655218966361683212127510459407074955056389228030776407195037529688808579171293449543676909653992943669425467629705353192653197151693044748047686176042088498580962998766723863179625268767196389476940705191985410437507617547898486748759221730245625356024721786925587324153638786382615036866491713415129227781853177212834106818386727610992215280288027858750568121839812780094574663293852017124037060700323463522282817647215873239593743493148825004626644087857187946108463071291743446261881652442534512830628701282638158386567847519008282345314778270820783062205069599209055095422254389862929218919933996617361269872518176509881480870374483882333677723147881297606587026150590725295959780075877471530037321593565672280160573964811469085810813718865258530369374194185487375067075254080598852545437483914397477423343020292396892301846434762050178676030915302734872050765322728599103982290836205954481301027986077436887310141121723356216327910975176275646793010750793107324598681397069458158693962560604684078365462796303107472312237298256048494637267329691174359845786648827818839837254408612556978574193695546807598636317298506491572812138842284577759055978055559164561914819305917694792091900562455538576910449608532268714435496561647073612003593593160686942243009828047617922015589080112258980852628027542666842527102760387316880756793813561621470933040803719234694588311198322747067409041472831469533311554092121519963532327807107127680952552690999124418790795017148417160127994871393624641454820703643021610293291791540154585428634419179106294501699226626639962306302329181841864321666542892833019287489935924916605181740260092089223776812724655226749486326360392341358558343273281347926082588823098046319768887159942694145799397998438450474594807100489259962190108776264260112699794223585802385066144779521275857808913996382887360541182862578342748561546645676329127129640420787070393573362781688533922078774687607153934211880292487395918484985365250414565343502891900602601086968341275500320806034131155865482653122317709245131303084011953120053795439201497350633595275188164429583943119180860789476852316411133513337893766484696312333442862252606965674616039514428770043218661728895352586058785521793933096176376219643779947460135405557210454730601996275284157282913016377960972997657849126807218015906165713411421308240480766321030543375050185801307016019423638616213188018996251689167502880282730278474896684555173447904877991335816939068997899139819716909480489895392777557087057137458438223413219366915528440501172396786820684585449942197217584231150271346121539246237791696733287633373229662978283766430003522447418455591435537724925239032216573434515589788680216669501609142013575676739830544466886485728883211043081462421299505365687580943030708580017972924137187168783741564757357938947887521005405570164599191412757109529464570113852065144502628450711211126933141008087729097890554291273825575327889807770547979408428953889515201017250351810094189914816395650013942812788596702989568130797153490502817539639730460025956543297181914616857590755270965899674373183626740281676812620423870869153340991207713015024965693406703666865424156244494819227138358669935153903108183670025883581871254588763061501920054984529230840607759032972354526111104092877943739180074656255699238587071942859482080574204836057120730506905332258339627992224606881676249364498450527344438180673761227611299102707010052550503011366574231050519582855349657005825002626064813138999378352743689458269149646490412053570926268421321306723235164111927390309756491199603935516638259921886900510252384325697975034170274291538203108177840466123709833147410448528940686719500948656348219859876171439202402246821567044489893111593145786589122238738028461030931391839238691846616902146788819848603254099306676941548284044111287142341921940922012782112939407014310139102671662364338439577300607569325129415436943072971746175664682678952749697711584526207181999261474460501033934616644000669866546439903050674002887124841091572590816493869703486004011746290270328130851401387680579030007410740211591966967590608917310238761920087581636395156421126217975126587128573050420268298407918848859499297829253605360790555559810810234299571530941588289366715209072753838532409939550972751068113332755703770270193825580888527340384497384971758174548365996519778131126770935554644246741963491688991322415144059779637074582603268889690772405291973207154890131309470836785014520888662825631753024867963005591510202829769781961468878575881671128034962211614725048480398870205704510928196864596104735777599358531370651313181862741215990774242587460756261015496381644202342791535862233381494800203578084478549307207532706041551380630500329403403460489088940882478152675808186643552013362621174421349498851286202731125823129236962474816382051559250706010010950169038815897951482217072166174399438423537699951073289922894799032032758851859339475572959208899871131014617657344737688803595594387954835429213765568658131824101632957557844588518982376086689993187067650381046223536553792989264160814007897363123889907532403551554556850836878737411896828409202852526093006016372303268829533977389877720430145256323691818884658037308692743955059720908476952039479764944484842620813238508546510020613798512102217070124802909172384618369149784532834791117375990635977619119329595110962406262288715213618536294663689791959263378938143109726215585384314067683163833077238510863215020850220634109332543400189845649820635993682648929112912326438157549572742315627069537266331538807676437660400957119817115916470789838019821750547857784922027318036838639907275181564385429630697803141706349099690816567526840171491140307906055597884681843445544419032532653760344345934603806338362817713432011626706101764521536956740962821200713962935658638018222908938169626260079904393586255155219894685767232259604507497390294755137112514809270232238841228694303448328156417223921225210932597531332189582394643118525377467581517282951661713133781744549916708784526954048371428361644088570442532558657741804685748021844547744024482556423599751170464939215821521556036731817240578557310021934123338120758781604297856369900929239492419084333148167639453088244750561667166122820104299970414605164539575144552000676401727306001209026984019425433641750910987616571636479260429118690153488961042611845623285190949402556130257436871820933646441341717019546597656451748514082573458957638841334978605641150473349577574670290684129465010385769861124134388822659258649002561318819877185761126180855207011763015043239388838159491617643438296843829990235116322753064549604778798637869065721200424555317189925552689181362287478377553497836332306958403243489198624853373669252677382667631202957163114989423366115096185686962086050291445777036226045921401461176456698203124820325807120285962364580363695251757968578210630354016304456987765039017321587322461829634613458309899241640012935909747494345544101188055729672727632402997213063040108064914461125079157524288511672120766970082059798927000090173429082204274219838809461217378183981285326442498511460504022836949517364265894602102887174569419619486060517917650846639260583822215491314568484100619991150415981125878860057055411836480756928597107689604299593943077446017413115621917748198978060362762075601823700847135018675187036479347191625249786734231204747083334066803272583651910674560101525646346870533349199938746349601482902107124337092592020098088006319392892482084657316830194390113237002622012560587390822752497756962271322416577092044371699600277501915960261846158571136531325409363724719388476383410376209738805694262611081591972641320954643394416585327617068938121829077277830952484210545358607090880018204444393590734087369967466471749113723496165840798739243749837762925013505776403601654415983846347581299318459556653349061589990543794043685551369102341674258268252225398026879805236639975716386953235573892726562194837329762713178587883235508634891652093774110245244826943818023614387132211844544002990720158783287814250001775610839180350614380142775841477166252773591178271287328785160444394455747939115302621513272094486198282754417840869976193631070698304513219463242349869319005804452966791803887087116144081953124733651025278728898100415117204050770836968522099624905082398061217074019824650009379523221296015892372055492029990281992406840277392527894129889554015630652274747349746835918277499830977142672126651895739877702945115426449219721263461829503439290937077852105407486737493298183891517740911235418086505897566608118007242638429594826566013626104678329559779443337463409248118159360036547673858442482582261634499716758959368161693357915782868146543160216910993690191485307014425226357036093720871289347647514474295475056702519249216253197962326992006030201713395325584534468391530011354324561049434355065496562398409085956702845743386794199975213080027751920930979071506084969447848893616560552874128391551476602317060566909383115669419334400670138727341411612268193528850230604880367284047422404497633932615222652552949728918911125831003268316593999111933757919447454285171465316762769786560851441469432983005679997187892428644976328251143654704150610819198862775531923378109304843657237009140995194067292693070118956956588442740778815593940576251492239249738729158334323842130898685704981491840187960492633041527514594742619984296974543930304760227228913460474963209763935660996738245712134463502275312870989588490628222403205137588395321572424979743524771940938534276122062926796562531471509464524939868120823433102779007008033364095848797399704689353145462568084330789223778073780839494871331070597629518048836440896619940056480643273240420906109093334675577104617315617828572435925210403088417547487119382741429779153726554456995153152652069374384966698951950927434004533828823376367826462569380220078894732662639028617243014996334925417538140211170621643079092230305443875913596531757415341959914619180964265984338421283141687843281089212043412268112265282587977597182342548174059183058696527917433011043373807861238362342288611061124836067933193041570996229479678055577877502248486857312253826339762381068212295700191658088738430970991928078203487317431697435530108943365459376729939350042627735777598483008676857200956409248866592652440780368604290466713216771770905889749826086144736411544937312390900774182697265774663883394923264127310744836491745919569112373320062358654056808132670440057826808761623995123023284362549191514220257112914634459969603269628415662964552180859660243065495188802339475210133784466059505034227067601730152385340199012175078958350145530716581780173579552051591150946260361135071689524305918450168451177335767651981431719957860259224067664168728303787179733479774895208652126745472661704098798631113508312099450646043997279065366266742946687357640328935265622093184162721067343893534541379551985112360604710303363655890809734932441402956428065936260821132831809698600901719730738828992164510394719971416743078270922961320612726299248860210213199490882336503929423023594372992811548563619005099118504831662226219235424903055432061093222783538427673338638886046010517480549738904258423763177536303381413031240436004892251340480946440732899092253511226893081439698149988330845163697641473100892542161342257275914122581180283845404587756388838138424150349797325174630366280314460979835937241632992618918311937097168824178890376533085010660498553435026164438637910302049371523414357816610641346777327959553331326393199934107927723773681761923641683899181424013197128314700801978223296283563399385219277396653246275917785534101355613651766095403704537150666781608446920780580372171040926407092549273787477314721812816129814544020542371660868570847699336344060433706465750716190197250308258029177124805381493638619627006146201285577948231070607329562995795446276645702288233872111990858483860586607301773056398203487356720914900816446487005259781277489453748497944545579107671233278376946715268592118086621554689561845273707839233087899521841823663015514526451861147317069085383909015116516663004829214326271896535694603274968460521559598834783235231498115742286689289010432070935202750311434331030895471156866704855785490512105852897823062439992666814308810814191960020723509330937978272962337782669772820991944745090892694458501113313883196694604757389038242447741527126308101857048076597973836013167750013144611884283603842223691752718643104586877814563780444545317967615579130023141785665955422789530533794595964816478761330947252424541806141371217058064062493095837458841416736315830659969754923111516313845889802715222700846997088829670802152269857309323260602705489971587257971718813716834285769690827672745287828141921143390968410758694111644564496489486529543775859216322529794292340074278210089671281713481774174306636903691894783213960457532311440808040220717056100212425074067819649490433682107298563148177406374385771785263107619954117386561698396898855390950626598502820282205800401390495612008859840479621221669350304546841228850285871029112804406939909476569919954038181860565951176945260877815324398948916389004386131674057633519257884014815789212433423720220674153850924097299531874927622964501616358346318140089438242690745617897026655565785073776152631055565307892312871249725796356796547972699163557115102375401053350073523842808306890229206751012876839374517551838456535147926012901952684672929146510444692494760660836343837675310600901778868149452168138711730123675449714172424481945379635926405292076658131547538607292891416082737582037245831432050697342697164391290889040026216929086919339455798500436045894226046671354072705455954579661921892111194197832326452755625039883087629441118398285428428974995752343580453291484851974237285303214199456486664428764841136464734503899009247297203017166904822370511964666634388497689985238222350849791018665066816924364191768248535360661598966766127945545590825955780622569886153567875839490065281699163944977692217650585861125511407019243672946702226712830769296276786898905642035478738491241756727551499590946934566211965821046388345929510102981878826883439219304431133117606349166204294813818837673312925022060825659480403809873842187712364804153905753885628137982183918567617508435995931595092687248678741123310854226201066631124292192592056749038346901171594606811795321354541572961042540650028738111888757372507499680231538080792744869908933761592372982494595629046580289200523013886236817140568174524289323490929353114653364618041964296561937790044847329568294524798498381361464953782862493568089263935887403799052852312803318261314949842285392825769997298833145518555105301908651504299139219842766682163014241731178894706464290698172067769982097606959040818726209309465083847886560388360342980545246536785628115710254928004465768721610667163153378518554716970430410729125255546058579111110932375129289740120792926502648991522461540644365673466060729306945356328055834841953397291026886356312982937634240214497667461172679396819631654535976884646417699372122090704350474998379312535664638268656997511762687124420265328370214249036315240282185508933462348800416822688219133936320357813820487109737331558437178035882239521424706451661280343597086526407717450509091307985232797588862383772512529852066013276075454715691947698703574360881007533131718873932825319673921547639426422138475051069280173853264890951359247710130623674394633756320840153392080678804037708038856248904699577315018968416511596543306795082510972071309530667342956285693804588530985223751792994791968898388020267727865908484832868280461460391913366163431685220484148495008727613451593912488640338001714490286406513483903940759994011134751921580263465108740423207986941379334342100671789585739493747096169191458550989144323807752733319564804773869474397751912605273241218719575213751852714745344636692835675440029484510387987652015256281257572276318004607848700901173124856691937481359042440442543524063124730265914827705515729611578121767389616830332045469579425727650199811543052086654160149621337635865792875132578172656811317420948529191066393412818420211019535240472053884554309174752091235958055757051533958499708751251554185173659673464644113494714203432343560372164687776380929752656039329970173733987503088048466011762816986808691582870661857104792119369602080738053687270496104076279075016903890230560953605345739770476217389789367797948287542216340459787248482237980185129743887485743599687775529674994699511044013051616384417475429560069614041244084175496403516540800384484991703372445216985505075407972040353860413227651815536431514508566934229926743879306707591321770273657786009436296495422554749869341862835468404104034212145939632179447094958285455171537420034462568235067680962392577773180555654274906196587056085728710814451821436742504507168811657636714258955919877029271821047297825791986497041260204188931001432400235282123776678025383273615108815879459528350605882173931287896883235388369045866713949417699238096690868963821800014946670394017069479879005486640669537976237862096919411721572494673236334309799823376643837272170427389625962443302273539509318017025234764534117246519227246068538988763879070680413973471385761194948689894476196115839374998407392930330219852021738095371182628004504689548441156744220084847562681966585729927709952216197347049663402004012784680994452648316633781426283858530578364005465398651618949739637364602056451518462005075694500553804886746169864077105323479701567281229803878755224741409137031426094311533205463052771344433834439299522046097850603410901069514366911729227855276350723066853618878015478344135476855612448899259825498809006430298888382042594796466011425634430229205065303897006018134610195675970686325765469041665167364348144601280652615905710044525288052460366286533046875841090688314790539119353836462994077103621517932254262445826708491194515718900321284829035468417162372844536917723607720565429016309784261023450967667903416061023221384420775050332653329758061783776058894813655630855774894435155902303654804805332512097665600843873231229251937258999575618908217492351363144716797785371401184216121079215310797582300601798210105762229589784290833959735480244716969874180988564123530039165468069394516088108639359936029029582748342800480586817375944214319454722909145667165374621525494935341604107152248822348797905261222048992631977569583189812613751953722707548811622576428139202214447264534690311401852208799883955740710300757560565463182777622821730098133814997752745174020214943117969158395144493377812054729221530144030836479711282095946048985224688241563962821411670073646500414758612646469533819490851150236899211155031806137829436403961378648839867075730574795014420659845080885741992016739476061740749575420482956270504082908984872347775839449152343375614451054471115804249541309425844523770870411111431817126454505258434678853975946779239157415575828576276057225240297623973139231114559691605512851787468786379590833861556376799127722110102794832634771770990142618471033516451902143942042767250013369162093098021521410513113824757239266530807516179307190589102595028359752236254695483260080176544452239836815379315350385247674037193879038422368673918059596419033294418538766787395619426132172722996090310365207018889677579988579205948220686005887372349012749500544257152525771160712379885242007413340036990956106377160998286165441152505619386007999763505715791475304502845450787101143246996875036976063126158692319297436363843844590980387860246770242194196506485822875774382262560005549953745863956732970808989724040072876188978852415898455809971034667274317318219140792399647504968262366422710994393112088753151769292067643730930355615122772367811364534837673889682545660657919423210582751640762197037002627168629506985471816529658832938028316682966586945177144357029492283015417134270712971807715858188457544877062924860146901201127829873092637298316599159054512400329391828495646932037704037617156720701406846257174225452364264703630528334727199957665107421177712675332554536937037784217440846576601868136646318110003716376797130724850776795802154269014417890578826898005664339069024763029116648541506904410537535827401811078579198014646196806312910135349512638903969094455421735629923242519976720597498399411217032986035457045035825996689722143569363957172239538924184892624971227757288602392033638947236142518313970514809295546311957700258144197534317790157394884303814259502377735663289539261405475751531810459206717468475949527465217611006996995949969707581503303501022481193774293497045400304804487104797193561699653661628482361414517527882147824370252995877880812840017331465999663350635600691741547099768480708907696757063098990678642878285647342483229033900584121381504581781377086803419038910075265952811973189955744121700092721006450681015864984357136277951114534724433770610129432568896295232830477992905099166060325790759846354338265949659168818839679767256914814640960501610285432401135426024417081991517525119639588833041386744223971602939530934354523482106897987597681358873717989828627606667322041354419649043641994061004517504868592140177529080008073964568733456708275579042465538570289290876779034262491351808546332891229378726113180500572097674339623773739331806694239735533783230736984983255012848862295874547733547144090643268840994635662918858762996817067761029291882215659618775717022431708306362318377789605320340123168967252017428396667493798265623610728946152181254604344216368884142842152424772093426968142089378761010601939994103622131021626734383335361247571853435260840549230750580516218863470389441681814081903979773966062667181854037150555449090168253410866048438729884877073880213525470022674727090352911323871363071743077201532177489775805073813222088585603140285496635126230996217207930362215739066228027734245463932463816532743354887799925834793271089888725990193482263683609452330699570077877841089928890817660492116520802110520960083833837873747757841101632004386785999517346420204981961898232458007095036059809723875531031160268167606588354190683287128229924465401453034465648369780358294583077900423516149983528524902548664443545071242571600959061587525804795536195331489580547216990318600196951291510727051033078900981833250985662239923900884370573973212073671175917813474482836997237262763937770149856382232084472458143575239297297357095593451266004468985733350929546883450006889480740959906001360956666030691489444545598686680038728777460405634833130980141440507275083476275030762600256262362973816646676543171873097093026528200958917572758408108169211609700440973181185225154488394826375517123461294112100419480287483186430052671629700169822630454168299280639033296505432786502709994090681242678480341869411723020367552774510582984009378361429412223709445772770152228683726872981858896311794440347242797410391674013914891751654260317729233256204939275435630066306372142936255188479654092350664142872238259569189364102839113858180015687368096428842256084261730967871046872182019130404741577031457063124691870554440383293770588944131538689174515413285551236562258008791785874796922465674272950978949102780514691737815805380148873727086927951393677765537312836090727133693445075343235414331638927211114565175657983539589469989883556944594779269046135146065557618076632995848873724183079292688117388122547106111669321216411468312209615035895907183327557165949484158506338409149436281954948793386910878348627331422222639530382683773482632092497375299826803417220237694897498842088602300368270698274359074371871498464200721829898827932973173024940288447312107696554332744375908827192998154622694724373937653669743314300263636417889743782924243222528836347454530611723757087462645345033412363907023411409589643009104985608248499191329200731047590229428086919759886333346327554456010140684334602574383333952907887540271208275614597725107476527829160810475691057907262529026433330989376709443340596549902311809126953542798211847396619041903480044331439224552789790510517524355206661860456438424989820320264475553024503451010641402286118506732223969370603821485944056125670043925281153614767297543216050672064311720838123883949580741749428175864935637466063731170938119723258950274433689306047076855118099773519512524514710364292570348317386305401666888463550888310681156861714802202038039374990638929550118858431063336454400301888257151893143045428420108602144761321797757411378518735061528325255101248765155333833784150686457354807076368385860078902053028063230715117527725420791816710352931665990409568759828673514024101840884913183002764915108428173859972081172341596307484000228827880585530496493094470486795231032939515684863552337238851989855869474668202084281227814845759158697211173680349491728386674536090828804929623162041862988334733835232263827049954140261024570817722511762869782614566532161654630743156123443426564438653224947291921218941663725568145273967712912097628300783920768541579942538600389426061611149108100119908187627853338787484710737114526009361408122336946075318408581205067711145946493631316234568838312613960744979746172293368021121182034675948728790888330579094821091365318546024637366505703106060304800014514375598125985320752273597448388051907944622728405742109416066042072469658657540181375420912267704584168571484189922824012192793347964627229247503962756233631773944289085775986693542999244513871764387666974591821225250014447128627837165023548755617685077061146774635290670677907956340876927304453555216999373219355209095371894023548834725766265881155822198315648299592070880600220367586122081485921444460981338339747271198471446688562134572202457453682083428188069304873589430158756303090353862770335935339285280595966944928052010762080421002010569454986354269841334470548455663049954988948050607499365784578561060785413526855543541987558455132459074193379464050149239814196192602467813689757361473256944462792133998489690914233953494662058962906818512817252997144085348120150834209036951664075680185776759790361698554342370133874352949217551318583746674347173737698834296198577200384788126592807453704960689365087336013096028307971995354536289941353656880973249221933836658419353139083469348559803450698309633048718333023081635317420686827010282841042026317807796517837749633608365216639486426714290695352241798837883279822532008980249876107680488720130245426808968598224221901423921582478688091492541268330604803259938296065975911333460787908335168079698511517883996506423177375144795917174093218986522545226656613812182482925498400029828974041362209796902556505679296943943588181427607745344687359183370166073673176915118605285007081190181540288368087870088769178720799711326517231448272870453121048781410990913008716922779146873187711979323574644026954565917186173602041207223634721079499232802829581773658774444729354963421492070924290479041359659363907040381363439988142879059640635505571153962681690328370911687063704043569718193565588626974736628824934716789511646617247753628593139746452089692900019416847709527735596894118303478826640529390142537488295027477082908772120604005847141734072906536498988700541353784457640298450196503956852897949301484108565239542612696383229627296871877695153741379662892405618523544559624184866783671328132967198299435969793586008249761249049059914433186314937111201887689034816628359495139618094802166861107064770118272969114545008444368740255337380035872478666868204493167455432313368570867159303221633239739655259065925348477958760423826481391131879729388776109913345739534202763263594000435753015331675999793673478975381603780033996818165105869794851892357303471824855519354691512515630497048047923031161779131758868765375805345806250369072063901779600406397518938673565052913553594218148120795882953736608708963692080466610725350704135871974315663571479202394311888032747863625141335938482863054096806263267175054830432604896133160815627762206958071581948610005996987814364068885960788133233785885894969392235653707175061595939974344554171653059293719745280040549393058965560356756280915069569160741113561866098257370273734135289203311218932310340356371108727058778445875716830756358329845702188422040248456716419622973495387887332847432639488057615122503043876784574416902953368756381652295845134937167881330067622480654927769651031334301648270520229544663365892510456548759728171601625068470927454192189415581708991406089076897057628902123419945711500965865929643978094830739525049628377140941350444345699187212401077145494656739269440036953234098563497467668587157005999854329218111112426616908075434150317944437224346384803217885576430474044884313370830589117864327271644875032961886558338107431560284727578716463521684031237698325657459527685649254261358435131906982181552146660878774156067120261438811201071851614661524674466962422609061042445885986372435280873237511464457282075438249220387495488670402154708079258893503168332579106677505524961761951706110668391490110218259410736888160366479423655436126176627715015286817093736582298314015959916698930098523524615700570587214129365985711867330838727370603045924234523885219207728900086228007940349894047739550676803885861724144319064186415972935435270083063874263431957677176448692608097805023032474074295281173332545444751027545622085602386537841370776576373066632718690357369825314567543589027658831464900486591564658023755005757117234785788732678186730325672280769613104083247533817956084521698336916357141853233857951291749417381824077923145880066911299290002649816877709271105020455711167556703645817364876978453376396510988913263855685536502496675208385843245152023448977739482606050230896536807827328004690229357495476625956330736884512676377978389276152974911971146070783987964259496427231999334153304355801278694744744236356679696872627722750008178951911972521210661283515845139725730635155086843918031662064102820597382151472517536913006660012646524829935527540847783733075038413063990932918260759565657212680717452005957300379901865400481737528051575030168726229501123548958859339840585288908952908640076781838981092119950392674085052362025535562533391134256012643740022152578525995973611398244108185927641012931845602540191661814154971997040310929224631569590315486721414705858877185696943565985658689885808095267040946808521969510408712563750872250820806937408988253223387338327940591368576097068813023781826105994692555349648231984712828267346601092746721135169119649394555853143703516674419514158964544053897169902282007369612464566689448941978315892588356725582546145055156035797715311348208059782478472149674919852230627760751135688130436788618213026708712985900654036649812937275494200339516849347491395557188755095840800474669887603127563265317683462240425242921769710607726947601137821268529927400294798469497922950101966082934572117761127518070475832754388815219877762199899107185778584347101730685797437279020512076304421537775036075704333621034144415190988610528490295943174384512374195866029110755047108027532965577722213132129968859780110741172350092414521533326324587680888826887779336547571659416500926512641491828273804346662971327174183488007841962755818614930385806213342083232177925027190174109541326666402231115756794568198858041176772660420658725653965109638321849386555756756024254346743235633097076985653661170877208421710028100057000129426472321538379820395643536272255528549381606828057219314407394948261708009318282105726348863368019896232059929218294096038549032668269259037493570664519831845006893170914808028447158870966799150658763063939165067530590323837736617160090099925980942369289758409119930323396079393779949261544800919004012997147877723182466792321335870570089144561760867832750521580802468951747019475168448488804019087718116595490540032309063443101079454988004278805763622552860739702555306108019723297008362467850885114216130508463798497568746022580321377568573228096686083805752584193828481115181215840266710543244400195389281483608052037689286391809029903674167592188528805029415077557575050964955574460739888734664489032842166406252513765101727674067613774277109731871486686281258282830061678878130187269292721820086293916496828462486468696743085917857510540456154755429109610404402547455663215272981840129827670306231218526532592596660226189274822631116816659821907544671913247898929011370548483638645578900895738656024437456990399180490495549603343921630584436838814383373315912186575317649361206994561872132811206299681463861993360715535379555482605533473506770890663717000206384945699202641228945350967900153711705971903567815631596913494062288191030787112024280475195298073482365490686915024389438881927075413344773178800177702707625942316163432809698415645896900722653199635145528816529748086222837730006440713507462820698980510012274272995572481979960567232759255975815496727747978753267349143704019340005272091234827606406656744540013167475861023607496886378989265567814179315752784666598655128501083051022912632719271824591875027727624204593252147323249640487016554082656063358041131989062324564235092076538557582228510415321054886351673896703056049187796084595255681055166600219525516186957415030093442325667309704304057035132974590511459053707432494347046195735949637883761443353183167269995219548995470423529898934131033014403028605305480349856262270103898667280790681878772816416108181449942606799919060799444243274157777444850032354603356003024359584224982467725857973175408144129517998607276821008768554686002315169958280504096255818609080498197038061485413293888203219702359638847339344770483179948832071981925908625513656857158919565713140185258392620203166328306115162236623139354951496093016932411075084182743954149849730214242046464685581369370199107597231746150826869836849880689998900460276941831661379887098553125393615875794674959256602100309929906290634379305062238757512583133623077404415101238952539887286664569281660466809816076158161145035000593934091942612276025206064945345820168675500943859913235228519771297863131672923719385085535027530505321289613544492726792023437055146699423213997186597391013621302243601473099859112907709953342432458434007732238478226629290459010920132534460794430084742130020602316808426338652086117689456353855710742322719183517529956041140623201419834864830585963108120831126695004637114128278591371016276864852084040326615452591044794236978927885815975439690010656606446097301479958575181507119688336784917674319436903922258938851746533218520125154561354489077497731939962876822997312702520589490142258905639505116667966951971508968577140578958372683088905929559906437780468762914539445242005702555218099012938352504261011333334496080882787412840422615642220906888778185072686631176286214198088837062231808184858275213730369858344518662760643374009227507651880683110989377808996487802612832750028125635669827539755001776857895425941340595421042837155586405636921476270590448322693476119311598350717038510964870461479477823212472701827551705977171440783652439006320691345089640309774150048363368150703193202249153415351570590842708434694753609773345016061904733838466668092964398075255086059781553800943278311029761106223700554787977452009136253679101005059376408857972152625494754769985452074296604048059475832078469395971870757583010285896144565328893344071716286861345132049214506868236957728631813651109835641050306419759264238595153339281710647850969568456704370248186033017299765239606266077742974035333080582622771739185241309192318641742063706465385577148568968119970712816884465176291998210791422295053759329045197282389268991478052971061628523608460195289504878539103646472430471565851166542528841921756670785323177949194166440574356757523470916430840321922604296267213797490560158770277334666787334050419191138601377728462552291258374147043130623471440310907968881506473100527600391768421621277834234559854560161843925661135725869062512536258821963410491797860241183647574365569366034670261308143089286255934922148694316710783784598045268763555343135708946239605941851323645358883874336089738321843544912437818835783086212939169253290394511209761628164862843063540543121046284921676480156269636601429815881700906264270984817360068054376676986877320737813352432566655143824058019880099308862657468529006353422802776090509412952132714490241958020917940363043326582249799674264016244583030712119214801204281761277286540473112194165759768799970765965822816539289414617883699445135438764061214601761358061574653930011006574201882014070749854598726055674733046217235276933205514638435309392158569026257831579886507732458376306892442209649256861336449958891953375688799101680502677228105941604991363804918936615545060572310806094681990556557426538442924576619952697177351877056474587997883199260645891736187469357129107765774838915992222686383298785791956708470241725225905779367094443234731298197485596307058772271600882539700229080316516704988367220502583630191772886095678911291452797887818202907442833749885158735736632677805259985328057393192558020657054440924725827819600498975606140450091907447555917962848668510352718307456999743908578463931876229795952203953385512556740257838074456298022993190229825649149515744491183167349976618201209198246922204507696861663383860578250764189248248804321438629670224624617719376316788525327264135587923241869721532045475744304507929967317980244710773906125143571277684735148315355024029922064600771053264045755887903912089970583782483570111232040188239027774191026359586564976690544808694542530799082793769632006988717038465935531166281426204750345133121980185504830431212786425042261355712694213325707889009909441270299357521224533516133342827868399970216936449274779885125981245858421145357440195639239364817415176425901000323709904894959184658331124713068342454036563921119546653245729274786075055047240494171582231471606094450461753963602834994420367647236403625311965675059225703817414350294212571186469195584223386567647379374565672412543699069740191382720882061274881626942432413039849439832706279909031767011372834809540037574333282811323792623021920799286707906655844627049571718455319395115171438253657541348868304441519472889168172502466852935393750688761958437018955092617530267248513526337640459277702252603710230363546911406738543421674383491877566909753877954165803189947245964590290031026980862204360476149765173064073564019306713592485937769323413711632356218495534148541102741043446320019573931284067110621250842900974636057996161824531275333288537562081642277990769217861320255317747328808704793735147365351906137405750801210731114035656026256315845297945429007475425239401369423388523835182898478687889772283956461689342573248183588460250695872109911877327947920404508818224865880783148345700492145335157981508000659143689319668733117729016803506396643470860750751416771745701983864002934489695207878558192758058764131955022555424962594819165544833510843421252258348257906046617374884069833771050067794172905494314317653157815357721621187184921696792653759453680781566751058653375902031991890075049080985850244809788661812475890338359569106244224535900418131682244579549611485954738181428896792708460950618237573574168740409358679558916954200225018842446760673869187942935205101286461499551970566708531476386509588446327852578839194578185241261711059886875557285827607904785240396667315730373390154394176375504453747262253379337049861282117313984885160654459632796370214255842795269455381440458937755438181484691151676292605044209164339777985559766296117614937472168581843573326787915955617580941084095170054274333532701520161929210316237533643568138306293360593905774912082705382266509478744137359933878920967003574815653296027929684484448676989500120928024146739901770935429321638717461237266869502131376058942520411703776405821957829822894790997236004462261080068301730894916364881046527523096344285178951790856613308993086184847585873849739118833157452492845746651144548568355825609149563692053689070859079739580412061522515116633015355272887941952790415164881824323491387663300235330628656959467063241312770108677692001672265774645957584495781786630441080760510520978561758921036246395076806660332089422749672779609814902779005489792385405665065735435877250143569732458687909511784402616727128309701164945300649067742695296374039715672619784404815456606046512687791860507750056320737192189338400898421824904068746444783155451941511659598773934470793991485742295367495130957986331960101602117444214266873383271282755572654664424488256224636809144196965932958685595105591844343720590965252174710376661449135917966486229536593786596826546956472012577900599548794207885971727254179885316908551622660755654339164341173636976602681033614190193169298469836316523940515426622472010171700502436941467592819198530449044290917182976157168370881362783669098731215115737678350666552643306241595554498657417601384686856160735343126232667844948760540254961644691843725926073398243106302197523793968083560475256324455681808516726952964232010232585010361683354931363914983509377576397685630650747435071797958537669187277351036737284624051670910295731251856177160594252048823346861234251359647379869426412462163694943642513064923624794416880789176626532312442218640302583878270371235782105741211158626315944331371163281829165519060452303597732276188316013603783675897577843610752490335725956333321486736581474882212456902653441810726110945056008201034713836261051154300854224659235375615806068525366347654618654901878715181704591521685259522599748923950859771298385591558607220821524741620423802307554036379897853591076474532881809727409920857201875257962204856580017750328993100058066986603423266574793701032480532939915387725323516774921701023814127494339212720205696043100308749475899324350109783045813726957909913864410426713902667348745069100945469139044343508157547682927255561050683608105945346116705141138133499346377119236742418941651816634460079146026879623307836467910896568623626407461797547460801607384820732816064342861128855222883147296764191332006618088442925371454011307192612408215683068774815252896765983579214868272743155581062782432422352896762931282210287621797066905486358912452506294424158513055925999675057659842485422369618237640336852440211775085004102107037864205833833774806636651711228061934045927314592841615052204408025598452033850775657219956009084154921334701943803382664496341404406414867186610477513978008165405653457257591206631769525508548871014990181971206120316542982096353142604871998594628216115806606214274242606647573976307244215064666762896702310360237361638098880944998212807174061936962072745990314695651397506738278100095627581193899431812816908231563703191160584629564729471818027377304166678206855718656090552718881659863814923472817652485626625152916882933142252513794335302207062329343633571411052037770294817922663718196572403120196941206049963968906315165750459463189259973711332981845999966522795994766126433911159755696570995419492709623852140197746993684159939336739306373119587296648808050796154210707228734007428932209522355493072213247616243890544531522864730685899147885384460576892142976437649314310809079122480210369459277209769615660990941389878425721459853455822128082554144153086015928346392853637647235454705503259302635527540999138113414565049147467001538471844612411788338523748129623089075881539589447224876706829141307098499853080527306253495576928928759774105823796976579116972945647019946256106390568347581477756985549796099565982750843067345300101369783829859293703793069326051242541654963849314812381246412735873424474545612541181738359190415062685647718988748922922119466018184632646600513969597598494100631252984392431468180617304820529002768467908171192778492971010724428566405959733890667195182840100232700761320936419401091820837712692070142369530576006428015913539134878490118925601319327256162759509085500701358723514553748070718714503563613558175681651724574665002849075523046434230484508122651682744733611139580806087165257935846725100930521070353974431358115389554517750801624052624381773253840239516112534556315859842207520326932198983850137359651025672986775725415808563357929302008781190013358841439060764855106015566647135323824294425376470698108544850674196855644697531080893890644299343846173438916690833923723854888570444257835069398318139254910611270717158400951859044229798263155691139455027897313080578679482790294014912013422769084161954629907061495836092085380771702887195183603604805029394833092098113572741593277210232618113160478701107394223690701681319649179019915259905894810567725663297727336681496103818489486922725797427769022987385158086432476121948586676331790735783168067391826403119836956792556250044677627956057214593177879465311999085422812263121083740901509720705595591177780523679400555723358847105511291322690202853680886416604968369228759954284287192682562422838952839366126611072951358921376879040508336433035781398684150375104550300064652267837658914684044676982433510257877583739672953180844539036202157939583247420267679841718277192592591356197351275793076766409727367199451548530846102433219522582634870625165899074519340184280674155573560470736975113723654279703304898148476454137672881472315602666641995430586249466897780876022885465869533872541396778013075836759612928155961983221858377523171302212283164235286447484054522775374289139548954223590489760130645174592907184606768750420303805849717168923265045686151025676908174000720732546237639276818516537236239408177988255754254508826781980406944044142619203505648824787521005820340861407589024860384658885012163474675627241284764974975543762469526426204902092058201289360279334814754560292586097490158932813508279875324355376255532057328881700597194136355978280593914785164743574925845539266962503663372542677515483508040221846626303414635249853862286942772796265222574811650709725354239268442261033630096581486204750035240159958923362515058895650544204509478377181259433890562290131612025406475970321304007867522219111696653795942747780776225081254140859120806658577018572429912444012110910689550246394970787199579079560279505789355202056847973567759054829226627002347800245357587531760408447670063430226509058001304649490118721028101990408320188607896617048972757186967019382178771889652819557011148023653518040201757554106307026779253826621884212200393565801843702372631273024800346419863181850047017090751160882326309637139243365358665719789702846747388583571010333774940640047443072384166376218716283826070281886443805525355760194390602883421375064467875250831608248559682777006238652802886907768291012413243128072821023235571798998756668117313154742358704603866861550642283289769580880985843442626292583269220833420728826844360255887060854422792362373905084295049777378601395010308410409120231070742116076162161597662101875431557065150122777782709343934207052921105629167246898212373306822774723134231899499892261641336637039434893353362483317187603188757240510754947126197328954506065849238283284452333865244133703959124119982056054221740969048717900657224410690420587960478469060511937373748016191292426490065744035375906869953346022492733477218836110005965033796935072704114989925646241572316317725030712621630532199011598425727272661495904843831221910421346627089683913579976685307859823569456506037220282612176771078458406629811984591613508161192396564786133925456760120007480341145710881328564224413325410259856675321503244998020679662259766311976239185522456253805262069074970510304503903021744706031993005952998503377678022592364791646144347244865444671784650881363741521682174809724752740318561822576733992259516483563565020024142165994370337055362532222858275771377245846860274653659095785277797335378362539154173792536668968419229761502381826745768435801568293394512298157717426537680460557139263821391381772874485811886208006445787211836962967807451348938141628082475569289680060005617560646167248394578080819151460795046555851771215878006185237224414389136277426314350070776067340727366604409870130859705848701987192130436821709815848412434340307462234424013134909640892616663503070197742042453613738918664913728900662619104987913025426272544086477122709034916349712069150660003383303359288789032868623597884393773121384709768920506439280058228007677522197479188584893432462325328559239707517604548089056812356662924100672199690476955777722564983097988494975344930594995149779465517355337520387450482200359048921455700193478579376586643139699692021881922500714403529829083366993026379388305854444005500413360714109660231605888294792771416045220813726649848052876167493640203865305214018687955990137097876358779100805862047399509076402840705177043325126181415924904155260185921873873139046884554119012661103970183008959081168451417473641599864666502634352834952110781643578510290322889410743476237013202343607437174868398175707684611395748406945857997112444966116290095666847104345518338184457846714664768577385222872525296745597946541196742124963291510478566164961979296419810601806602383216040282972364068924389475003348947912100488829647331983460874593353662734063515469012879563668595597154921949335195060221990242899130959466808269987046294383428570894155965055079164342707733949734905964874876618269028555665483108576867403041949213847029517594338339822241218392016210492141643537392982756186243632086076288048895676583172048625134535686430940228352163811193107625968568325112584038658058266438654734441041991675488903969588832815735991764161993118338746788993982080375265749963786309194321648516819420781409640807550460123349196773753033800762160212774418897359833988593934055850613561356336305479253683976008790681474252656591370341358986488904211306711735010431178367131552856006823574347090144563743830270226793146684429713231668201051913236344675707809283555931646700968347004631880324240828486397012109136141747679530460379521330706445377173810531496523684764057179226157865656197972170186726513432564063245774907350772415440353606975722968647108229523687542562739340068037633907739350338314693920081133216125221480956218680519964226335424826272903569166379140755004660962063665331169688154366486509549177855524876697392930028588134201333030863976730383994576898256707493704908345790517477457480849151268963002063125440178999089882647090405933467216175686822588413129976679207907862763503955248186110490858877026152745852787167595883554070551807475756279991068281871002624670592445199531992272907959183906781102377352745672088274230046397754695006268765918653227782885616415225897677688456127704905791118652759407897248922808125963331053866615342765247244694254148727763721832691956519163945445048290344658349622018524418426886616317276617386492687278638388614545825283709369530381009855979189110507760145327399077157113150004951195343266133478215922661454031733443856330051131292696160188086598174439647212894007427530019701964700326398282951333433140304232795557700368087309240099355679886673133356750892418583164075967636376601627785545817111730602352668951237507112034081494750560174657107119487284516749795848201376389090384144376275321455443933517565803210701650328817920777335420806337299146506293196385393572304593319022565231333229130446059359207862790129185060735506855602841178183819821078784269439702550790111652730239141729636744399295537217836393186174862622915361448142972650023398875534185353619525779114814447535698526616319690284952410226946023665584961037524669472295663603462647755015764647307259063805543802066556374009587836891876063879210908177500000026521969499771888754447555813781196507921841178846558416096177357219359447466725550843340547686510394192985930758548424909972801299947540395949502987208456838234754092683351651186293155422674788307868608295173715505137041578780507615923671393876543043404724702928308181293098786294652200564596669269659878939338632691320613597532411593714593800575425290659190614855615125988018688208972374853683193746636165702059037129418830387258842670601119873246347566413805314054093454615349161246310474432292439172028122224109439592397591327369319874910257851292096995414272289983382682141571826410170865153337463339118772179469148781851761193149329417403961066851126877667934808502861784165796905310240033845871323210871671721586416536412957341150318859650489032394496618345314629587765278703023989512114369721080712958721401294867974774895523160738555723776700870938484557135897057314340147910315518803289273725668189591120612247160757921596943336556622865360750484416639550911490143410980706426048966483754092783190099417603059960964594347417390188862914763885042145191045011304672539693714077335093122909176113868855894156912599356895049542631992228688921171058561352682492875460712879453511362343138562169395611046312163386499423929403046505410530787793407267792317603589762148932612735438408976005990061808918910235494632968557278656813490345031215091208676707333594210584568114886891115184420842157045018739321660817248914974193163590069641866255841627089706301882682519882771974088268063580549021786798273788507444727860128203934279289278044014337058574531370877789774147734709989538657038697509307694471141950698382054438754026702242112846545337509896117768151690673035935298253674759358461707226484794715348111645046521007418477117310660380196290236967146001372157887894858277610763005380166078394704885634617063620514422090761832795711078179982384483373176181007286796136642792413512485062926319803988533256407755933709061919380598414581583972196281829849092943682580963849032557690939112065265944143846109777725144202237490107525226392404834488184606322274627281149751648662659082171343313755461421759997577495288660925255246791210916001708416205988060167708701279951901565807461964305253096897335249586705842607285694177510042926849862074835467979150043205313906247330751415041405387583277300632328330603799567727485628897932270353196001588381318720506571169599550115094176003377648013624920543834426034745750616078186087729030880076360722624196981186611310835751496558044121886427149864314365685059402480047005489606581508999851686603210263630473543075426468633062241269164976821082963226600582538438259577016777456210741924986079192967648390175283046195548716262314913580890958522219847213124115667826240601841000722158245216936826131968717006478398356352398240761952847116119751557477730104571202831463637124796094236790195645332036926972443609238573084107701922575081411575240622527930720675482495102452212071432884388411685878296250602156382257457717104875154618238297631345951050463906948453103323930596483880652044475375278573877345700211107327455200192610701040355187673785321658628269872755529280576733018505146919876467554776240416449800748451797461669958260395037822431812776606290890258180261214328959263278248126668107447867663198100074717934316855338889762504907773864811564819929643000749082574352470648729427437963743638036393506086931965704613792689487927279477453902953739155934384119755297384476178996698545104006003801940521782043182506665921111838223639058080510288583613990211031824219889413047492823312136404571294255716409340166224615060603267154845456968418954531058125561273252424455880196442823880474467131950352078652928810943604001946865528292715785628490655320088986880745533092090609424054912424516380010267904504832251693717678295442840689940858878069076326359334842388250250041380169677804976157050627868321933972030051771676144545870209742783486089302669151178330701336364068839130335506196820725694003227203559439965850605431205356744036934871902996203430213260564421684314035427764544943711974623456205614344354565246081359210104588475873976070790190100093743867071874877804189280043134121201541133304615616568494376731911946527025811043332625896209720004866522315819603646967179926754645822113896204037472841782043371147556797974708332863546569173224352042646467987067257712692586642488004257502440894525276264863390719645770713502455471002567291818474625111416301749014085002762291292447905614143568642509804493014824271277114747345365542224874451885674373199796390670497842060668464069013525204855652356700304627890131055343317466681073250073848288836010888871190372660498265463087767246515622322103128083281770842031490181835782814927951106766955137479482947512354151470928698644259885851044819388015847332074596681853376892095299458143794704890575938922099289548332560631507253086064735342979011266229698017221731959290625470450771154154499710814787825721256752982377460186069395321667181308795021865696638696348303879386818794516037776812963621623852208359004265869906633050084890499493517466823161213872797178930871187301020051136386838589299992666072612452561358395226430184507971230896964942420325463378495918387866305376374785590903063555338424944321264461591976049334141039953864888994137587147566338152431026119171008860051764925305144880971824905206670870318308871211707822999612933631104521550247652799411594503159225104340231702596011762570215246856158949940195287611233353213450863868321941835603725790011709984201925171354032016256926201252555978141826002455872239325787817388228722578733017753286602672602179839073291880926481486858713826598945798203369389694614882268729079488605433265657113333306434730656668556702422098897874350909036506203829288314444115247144324722644996552270062440520941869901619382380527386406178190796246467923066676729400900264661322513648568890846337184171916852247808138810359125061977059813710398013773006662269317343510730988473076936308652415766515976516256662324358486075880173642118300735886953996256721311805289054869649675844113387521653483619648005391221103069908747033801178356528256648106085212031685429468623743398116626631651284819905068575660943029704455710104977039287597252743916206843971995603036899314980972676161448666751832238225233771780078750210791581876089070203777799593101308870543126838214819443712930061351137148542531021777601119499697279595443451489512078463871664789406295391596586782481351434346311265766497718465973339630477091828063538335136085484854699333861114870007482242647793456322386985614992897524911661229497676244880994293863400833748450580944129047085867469848045753641267679363250584731363946177288887642593812144713746756839354967632872152677109080318924060001153107243131364254308995899714655192524967639742600255217360696888765915636432059279056869380543885968728809854547690639956581722635632560893054998183338264917013138788804745270785425646038277359884198279330187540875400845095516879030934957183520188848057215698884966026425648085822242221457616204094934538239167296661219976515625785620292532338505915873428967008252283841299940310250720381886138244300256627370038136844819544856548650060869784486369938455400821037869305774973888298189775905103338424880235898747302419719147029785911582185283525945416155156173825568618934513500832641826831297802592607035387211897400191198218435538663056126938789539897383617766667924432560581330389994834419803094917946073932918956196276823700481357073476967501520579705548324747068299615397104434186444703680699565711257672622312263487513668496519788007613146229769171309557599241253846475272143860116032346022315775520407814468417013662416554311799855070285716417278475559514071548766334956336041159860017348026116313174387396470978579027469144782372736914293834249339898925653563681322407440063931267160697108318959061462245903926778205737221606459638307846236306482683162503665396730378406636815361182866572260004192309226466155982312911687547608514343506836801828632184901288275374686125711211949505922036174782773898127578126791239620061333927117126220897776575662024499849011554199177511313507190695586068953852463299280216926437049153524933725197892687529416739747262255926602154749489442158442870235679617081310815481300805324443126319463414903623737574909515894832246777098059202618897666157442759326662394201017396434407783989954688193474262054623278550446955907055996120736728151605765500657396818433375493950423360093788334157173014230380038788448026507790289164557698219009413980586192072020388351413098285782601724418548903053111482180912535464377979413344847620520646200859830428448539170623897434124026496178569188383938602666403929293007730962942980722560231498212852611962367842944432399990111364104468012814890066573066579954207624836022896506782108948896719408578820549887451184401308621303476684604921705145275957989804686954264201802710110167329746529259984963920348888802465553309617359749145479813037260959793846787278525611151917058811269873174177690394777602486868280162417588323771430754605345560381985057405206414146474016789684049749491545625242368447478653959590785756588184433565044798047503866182399896110120699626298977424025610462689642261334313028537789438929140868950433529759256191730044890647194005972289959075384877413013791444577603087347031180308367195075418130423897682884728403004144712583713509975332242928807346085217411678020297292740156698116201544470369697618557779217283936083248877502539232784836076920556628925485618183890614688076118124341713244382552383117248251670828195626277208119026066266698490494801583084243773298152409982271716055002020487145618352499509427945138845614221314811446317103163509597814550150512085659219879231208887313434445664894524781528692888242243781987512309203038162498021147892410516922201281280179527056751394560270024345944099982403685373018780535901103280659540633369537241910741250572171667846307545654661213301660121486183860811550022516441398466831436983902610479665281821243292387872016913958921682222305229076043929438511105659475223396224100629774895355746570973322166416717277567153325847419287745653445414352937140692357878734619326901466205860063087547193016813320805908488880105680859978860942939310656725442842429995210849997662403336579637750623813488454666668366770522160996851906456676391098908133399406236131067797073111696394803561627775635220938406201120921856038403198882547158781103912155504037771001450060045818838791209155768057895218369479093253207940907688115804444680455579575523246905340601062391421188605241790997643436664954031523658343293964545103464884018754816690805384550939454377075531489563605133608868118357564722586686878748340983046211635169830259512482083624039651083149459264907750464997857332708853313058871913090768648859610773648510429008106246172450091324760175596955612677667534057539228781418143486801435861180272546408883919243346639433595026543163654790279974045771624380474683299191370555279371692072922764796176506369949135061129251074084299564514616139312216095992458913207234073946857696499841082419999318771025428842537040381242434157696334524419460575950971052250859558195612824661143735665459833995874435259065289878498461933483089073039300671210030556244488988806818254401920239923810303558409022505169123697596204251009205991488224551393861839306958071040811443830564720154831793388951362246932480649966138681361565454997056652154730591079131748387726986844860326194251918054824282480855284100274102683797807311003528607770506655853545308199187486313459416872539886671957915907234968314317837736991104502620782077364475005343589769240584694010730286327816956753123582276288403586500119367299517769479731733294992838315159628562643982370076648774577803742854372843627986323093573743391722080142549129978994701339442706329322818897170404259725750850874784408220923421409102336800920109773872620791744543000368797534457355723934500010973470325429312527690587265186977518731070832908453859573053739993503680359015045343459428377332876913015549628840250671850600487201873994043932155434362623762596537382847830468558603176641846683460473797841070276052235841522618581570270956144897294882560064710308271824086088193583213125709671360211537323033650314772557555226666520253890761692158995367662502931339691997101497354966864692661819999723041034016485550089920429012828784160560294312308929921628713769649202105218968880560125636197943771891043718142798231647143252441870951983980103419634018777799826921640411060371781078894403863464040696472514882038292519205927340046255805209261159621089647977270594300947856842297582049773462552920176813200051271879488215889140265767862119872663014318191055898672515146616184937650194366221023968931733731027795350290807306641469288797801030465552541811627317810474044414030896783945124126248636142962845852431612111486268072465633824469627429349344583037387981566363155863808559587562897922267354262724384124740297292559768664515046701965860327206049849504886899374720936580254034651281081756579662492746922122484541967078188316499557493235171019098544848988474180099558228494204972480129902135206424874160056129131717779158534597301441810332448309550252298955584841599099647504020020412206667657805756441593075356355815642480591492835974337724156797808212774287839320134064509076443037197394221026688185965482815021478833994285315296012740009151302370434122479227443969344938082988684493442524449108932303001135567876070096459224985533777982233022929016980057823966698706751445756983740689226079648315799551348287451774095252905698528433107661855900146887343162390754950446705438367527304651933175477299369856958171744639608543206596756027149073790961547330925957013306648925742781705336479747750750131274833641709935382201000728809920541931291737119318189702713690135675035145193418681065656234245086452221396566234455029026591647969775279384853907535272770052193061922125371538625003558804343423891820637297488589556196636148218841191853958910649894762921345104081428590549978293512223263813321066119491152612063504255975639952307680688122078756176801041353731803254473390720545477612594628321022824314769315765765205365844596664326212386938752594016019503765624758698509272807446715214048852899794191315054473541611020460661169528712331170256065885480223498602087919456993115129889225875300724413909820869187535125697022807233412707930102953442515808938657368831371509509519866738408583821740666280750943575589819793409686203029619635055567229044444008050889885148577053887045231993378542752757530644299327845699330637855037816709121089753567360520712922553660559505953048510868798304270894637341393403280781056197255927616125365301664049540123588252049518201337559782903576400291981446515854076846789683635163288052889272701466127701922668321769785943100884381812882247098512237563501094486959438294081595018817284257261144306355410874673914421354602280750328155489569848847270896327497106795165128387374394626793419369694048870290370872256225859171289584342657421819931658372954031218647327333387656800433243573088624207420342464206435508804704505945291655911649004177440248926494492274232959785897926710659393730393929234762785560442880239071048216666865246138370292647586315917840665435177178344052299575796485166807144954487631392967493303114908262920937575327938736316593207446509791972458042663364354960905111250334782621756678632030020188261385325667599450690402134323814029613966384741038712270100379434963555553726359985050145555192803854292863072767462264157846785767155006454697442022432942681580249927126534880337972901106297419171647512119029598727701543417975546311991995672064388363727352445621634550623920830667712775274508173764255365634452882544189628972976493300626707823528030095370938134181398765164858905291385601303803641090551351597138838912179850652831821685656305861621192049316071407695909026608997203485995242015371209536548063929723719232761825730737230990690381805673034619393985795948134317057247535227322284978965335109927316861966150854190502098793518972637841155591564187410958629183174819153031719165967504579674084882247377551751769114825408534240802068692778023346797360758751345439906714920942592178158376077207686954450455504697223358465679959602182844562896957412994574571276528873287732170023366613331351048127616538060175257936529029849379533127225249743564401611182688182505018396643728346086768823925082049848892164797286885375854095428834076205958388454496308978960553001045003897396794632515620943244181471873134259150411169236279069375696153792746190996632965512549653686179177857930396546546973904992888410795142667783216881813402196353485836091248853815548743958663868134569280921493934955276859178898631057014779032898118973197764119291794475578453079028856028891966527656541996215564162173468048817932971854842923917333454307947033375698575679845443517702873443404779993181282809680878538326286351824373968805046771053907730064501259444237668627828165543457580796181208473154713536017424450687179562664849349806671481364987719761879048264183946191522366984406945936940756244591001535826738149020027109487710034558831182352502416104220303583543912186042167428082998985744600208155335535827829696847922273817654117294988551741059279483161060498129915347616126176404361808467582041144909824488049522424556099303039635423927132312499143197028944655963752920068123300035491072075986202006189819969261624610209455218173777515608393535212434943901287275490806865132107821268477631527827671091613461241670147916937043741188205565118188336177705004742542143251529215588806193831519697767087885585712802555423996089468751193263364058871113984171866245034678684664546664532130005132759028964311586163262994385584141013953821020206895901297682347991000067923120964223258876431094907663873624261716486257842906369286831025578205204926248148326121794797125812136363490378229804696905314807365105184328649290047390110009705482002182898786622031232940179004834412222962665820425150055351673958244062782511381051226684247382970998562721374084432392882983665704546009208680704997961580355913725401330150029773614938334844189879596001125397395240873401482096733974555920448076941650289599678767960679648036006999942420935869079754196730390978691697123939284342154038704793116442371013022620624079201299946127623639189543951596154406507214193902611172871664836084607386481601580112264930732837823579051975319162607000381399454509286460915776921925695229831735446899143629489958396749768655892444977436102792343526894271079386918622706099145121593021275782421100758654658368999966941145810542594069904810631133328808551759898963907966706353627812661626000289746514638809608741472271820494907703995952215067480459145101356745116824722851254248265887898945841025185471069737934717783723109082532852775692231778088894576974280609147422888273234915220273778639649830256611368590740755863855782799156674222700997580878199836565756030851040608991397619125819963301833777995098800551698954163283542353641576025236724410212224071047122057314744931862887521437458806358949984136818341278209288308880239385433694854668482753571921721735640103172264059673387828519502659478830650940407146797032926218860858773823001495907497352275254848117336122949969012791370243022042030696261300445916492499714935233838092705965709138518088527590059723029429142381602512199193312000065477889293410684121361535745288680626671005782489103081309921878620050335504654984079767538798618603990708741405192961382558654164152177369064452675325597302151612612003772140497824535852774328434190952634363183250634226310212048494209394230666851138341667565291751857039282791489056194166865667464350635909627760496748912994691496963504353513467726326941373669162328822551578830625949421676792666581613935197111409336245148143671435472896974401830957996396015425846927738355076939210078107374333128917110414396593396947409540507939937394358819707277155859131733785542863962792598224339850283599201095615179237098183357937812804223429781853429295589982984171404326727389648244439246691070723225980182848339896836973522752673240828511483415762301724007127946022002070719066908880491700320787472722378756294071041068179642214178734853426646783913676257764936669054895146063853158438441812689056660601996747342127829211717642222997140081144389339753869202857049080945161967189297223717481021422202757630955355019795170800445119317538123765075360667939373667914943086764807434803143979362047383935508736502841739094864620558676442196089337506814082730772260626680302294977481365507344732433939504423351674146157733625022609970292367189017533232608197407222075291036836798379344493454352432121217937541769908919361436135468015959758031905916517080433048571435852258291905718925988440238876869568083399630462559746084320467512581552293729218413795750057921854438364881550687768965411870376561930391633419014901547744470471970557340376894918724773937956362317138595280394422994466802652080441718116100938251741273716421924609137285541631600125672219049173362180698441471243077836846090717406896135650808734528911006431678145047906659470782555709025542544549793722734788259573423632664161700022036056253387540342307206151567511065104862549711415845181960043685346580598130758246995677427457213750853384273231839252461920729982906463221124235803708699589719984066757902801677839540800745839077902925970920877977827924282901812901506879681255717450479289243762984497860062860254976481915788927397433763993098714878197137592318306312254797728677590118937207260655336352707799132010832932086334592936831480319614263111316444968000243540278049005327317603292305648081141158093578712763788110838630541344931716153896979662067070124847973179590808307814333764488604076230853006988324940144731320265075888993235953094455253110924399975964459217484219465340856407766280371674384750935547438760591258383405940800996779896657369849046952298902186537962885643147269535447373544562267791326377427197369555372078713615662380793215951523465603142483162864950626627119206953241853851566168826053794742422515023659104208772488079170741734021265856340596923446931179307703502486214146833407684178000596561300539008910321193770172013829035846333196743553947067323775596424062204154056514551496948707899237260288740157424613941744134445997906807452959666668963006619397120048503261158220917646691403897044239133784148950134963174204209397905976169023837624912765913526201164505861033883253771325256888678764359448037704978104291188920699501099287905538394448009083871461280150196240546967977351075123923529650563851514480807580604783598180355910275225183915835514636173886550309673911799590337525065982951666492958927519624785753492697947298100612286422622642197473648857507932845395778997154231785913210739962419921577300170728414177902082425272948625823011202387963623773485702180410537724081614335142497263077773892539001736036588057156405884669297364782976030556614459065638797523375264539929381267335704988686789036941515867535780979306901080947444860977595165495405993971992557975748988308309302069224655226088888350248859986147551512574361984284538355006174123168573737009149838200629888016385761863877099658715454737908131414378464372627625067132944787236403866136095561567917557839131704172982794005542094479146045840522195166739249198789276486389454043042204056594531987750647950974373929078513454655984756496001791328704106299985951919021924421795478649732449379614444917286423077126757626832138003972999276300719245204667197565585641019044049286484255438171891214599616730011912580976189230205129326370296215746884367146288298795559423524072754514022174750628708876658622206133204449991194189262209691589084473933036195759709490976622312795519012168257525362624067395938086991143218409347438407059227557304420766209359379092645956416007750107325301399378825554758669851371574770748558933223820826734032643079038051127383365077753197254752143683085745849492167728986497526300533341427104809996875580233568524585904291702551981318384578488568995810434337022891000096340033346247913055478705906518158384342491235199872170352434783835717046452946827431318983817245967910675329909474237654251837907634488105526311234081164617362823429627606816959874093202913519413006130136113951891313941713534771522895638155501456684228762885298739581357537015412871591187958589410170930991328050583917954760546516487318668445134561214295102110625368360314153042832408059708860784008139110456291375224399041509695408622301147061877844931402280466172693945940035465097576888299455025479586737520692754899276203848983079493613063540261293495361125182105120591108003728967736018928088084169849121832728473845258368871992597935437983823483183312360611456849994668364589271001279478576835122759907188102369566135335819404792851432708501995772917322849603644903376348161209669746394324987423847325785567369517663366129756192980057897072367181491473013167630313525183560493863054448836901447870946288015276903706406368229278597938977956205894767346517143469852411968588180972960749628897552985779824722069225768204447938905269571760591636736263869296587540106333022467962919693298510861928458639546877239552595522158904293459512137263405042038890763522795812452828646197011219882616211309992459897400264272845714384749608815889150000234838821366028322902268649374192579770434434285067096068880279131747759101189256748582624517104539491577778686282808907665637201107596399806089438003720103045859531404600444853704732845441060384067355569736250048184842397739470902578855537615885911479431840785700986140054568359163057242029828179620449328620821848817490404566665734399336709529335661326402465306817969071449200756881166639344873124071383693123528023984348221691585800783552285841746261178769479622218152793259882553684614475221803426978674766817215094874299215874332504841145328203641948870104866344886174626978364548165276102262572387234531443069119438913269829336453961547170564965981499036484010055030897315178246808272945316426436872449048763071866616830918109963772473557787272131060701473895082809563855063373241433383481121150487307919888059449033681504947439459689168706448258122451929184991962381229901015672073499461316150419513154584076433210191206071577518291391191608420094207239791250439114263056528329436589521733533852572973731986093300566068541184721316974908416094540886210662606237252388062883810863718165682558066687530626394932965275496311531070972984769953472161551346158032872296766104395640011111043206601593905950427805001840162226914158692449129705343829782536730467612284450262045823478439375733299491409499415685636857685298198741919753299796595734912217178860894149248661964868832258349128957316009495306387526400055695396146161995789914737189967197828414076641355272076157268183310432925862207762873746353455198251433963872703452906729076213709078585525134536285090301748783896307753604667755879272654602951886781362320157742642898302312814965947668799507914098357143567597903407969270864651022940405340302026899767208544935577042568113984241399394392415093582661129458098428405368583363714472161560222969655168600230267895059780489323071276510759083069124007318608849822907871303186381851165746626948909796204307080631997510511425176781559503356366161397250881057734498033693477284032793128859299038391723278162797479067151248217723308372641123328376447862923562171910336253733965281479822916603586369816132744615478483279233860691731871222183542049421495926698743901649541970431714686698278586136952797301432129895812647738948405637015638348259185560835524726753130543095385179721675509318264825146305881052197196295038755801715586552973804020476633905225238966766946478693288087159315421189009051492567947788905872792437905839772413017338314092233031628012787635566600350219726243498880434535864559587668384147365699643654743586202626967573878174404433936257237096294116913908036845577018791694666312975656162704698223809796455730861389010146577906552801025746676901783571012239673745003079664223571536306447907199417738351235931952854074534559496742327573676524774353576293890212694764431850991781446858890184675058334942666178700277688983332263981726706188602214363645844545790976976197589808472498081590520669769821603133590485359808750150267004941277325014660334595639017775168975418710317498076024323309131029192917115748158805059815812547878917127794098800082544683584900226929234202003105393521445189318195147638000163436427016688827741841321545275570394411930159113165110532730975967993391458381955750332721318984113837149007744147363559705040588649493879592240916605292081391011821677848112871713100812922191275987299528191048850865882803972192725773221679366934257560614697619881212275463331147760700865881317622502284368540877528531179594824994346583735631204550821017091963512783331885216430669320295971223627955356041716534758030765894628216825110059131180305787548945382891219518128298029262774966432781435933675425397997021769833464020561943209260299686921558915712921042877462564390703056656693125793718714479701082956402148918769390044839666846819736083213396027438475536500930970607419825388103512366558369508844360737322870135541390074547517083054495080137636835049442735151160666878023403233738318183462789688678083584577856533207598795840949550095920048217434093284016737845302849705713871724520065402874734558368714214302738343951178370475663349932140823258918258290277284760724655916873994422858467807233923668581081238227724787130817016479655772643413327739997295515980088392763851917402455903065952131081633491077327185559412925864290062138725009697249599902230617363406159148497577232667743742417457332457153630711447514648317790883397825254848130134626305955488043703239703418116230840950367150128574718513201404481430118172451053451733536508909402171233293275682697487603318294932259402268731266902483514083415715147192238448025125961537025178777260378604608529602299636090986195844048769588006849575728021724739954163379737072355825546297587114228736417276876297973738941938205765015490670245003956227293693532905776549665173490647833066401065766224238103383392371486153069602276082979362922996555877745458309970047823855117636302238524142617610456435526189692668434373138834060315524422065583761847550902444707528014197896495050120466629391778769130216200662184859223918552001560139771462291939539296969991830576639381995549019076132443298639193411817202962976086447144085140153091955647150194933069202163680557167208522654576968074621142442939675616899661640971273077554486685239825493972031207913651126424245793198762866417443898877716025698143587289261303490610587483280033881174555250432520668283753120140530032685004113549106547686494609617238214400905529095666814339689056036036096574931034027757700213838849686156368509239063387796368939301512919125522590014165283251598044578477616330232189479121921876151241219195905208361113442773580429456623377771808230499362054938776241174814627429498018314310212527288349292760454165741573158093863303895451926022400498467859084354050828315589824795949073574925281534199889668943754364054993468489859389069530907714905448319926863694913856281392573480036617544461043704930735075678669375960031089555227387203124496314047381305961627105662329616289386712417181350236196425023980600919769006959498744752280801346169047264339509597121520075153585892157803775284169225288181371979726321565083820290676723611521017444504265983445738144334653241309370572338026004380155080361234986148644995780707262885248684001788295627423216836040139729577041545979446740658118033132370015800834755643931816963539362603822090871100619106798796267736326583707978623551850363312188030642946806481411442775216981157599064308145176088640622415147757228338939610538949299585398628565709645247192869321554574374224168439278907132683724747154039608508168603587803587603665453674396697620004740313404340487883074848413192731965209257197213137958983596249266764932651424755636746607717390785490151705061256318470151254639266539451553631454424792140471066238868478504563336421411022030925725802977013977808958739633915983300356015494641643522222627093834133454611623962067187582994347356394531387110279155212433846979714473428656768235459210765280183710499737641815012207353818092788665755022682242809961691753004035437963229364199012889191510885305334021089178646609623676616436314737713557291136748713554228322287171652543832303989797708845073401857775613537864069931971139234138661319289480816849045286567073973466884340711767233446828269719638304167201157028784185834905218185369805926564278740410166610962892429016768844780394726544524923577145669398603860197849318434757355947128790238378132189493163757368310612553404571861180646815149464560950893979691530474084265960246108763439797423236259803829742741785134854231576765929312161012669649799377888285205196006446018025341096764353235627811029380216749120877341169752765433506910761966587459786915612845239617192488429173463888356723872114097589929827467898022596927787605369020898970931006960609979153970767274131753150314810288559528206335194765464730298110903892698713804346521168139656389745695476465597517647435429734094678089952220788763800546263853403317082115331628821266273525681429667225694715347059464877269169657283357419482443550608651572742341642272566660843800012177487496946477503476092024793559246364029205493605182660074251090022185987398516877706450545076758386250636107985704791062625265815076147073697277681913036843451474788449283669147532890178766008423051421250948429564514749077649983159691015851038684657045504096730562039334243717034046586631109141995004164159317565572556864205196156565547115814689966495173680477961018023503558215049526868784748441596607540351828688513759772478578245547039102566072170720597890352533098193286929244406779397752875663525092130602883619600063132501218959684934617658467830432169843911601102302650903075265471121861332162066546926497758328839355569110772490396564527385979579582727061144024148854434699142207344416280761228043457185959789655966178628225682351642031499638274400896579080494580832341350955375966094199727248188975375831087612399481336128499423402890862609820606170265130686984765478562909655696218899515241473798823349909941084327998172844235181542886028935317842964424756801369116897723630020485614697601694230173433913089426753213245434714377674475277767090495095258093249670158466177796840182644121251401935014471644575994635689327969786019720533723058445653935373761828099095683249087575929519910053066989908472789801109326330020331129924389053425407233447596129792036675760827067014030316627152927500686174235818048955203424485118290246614649911413385163208154273540662548071249163999074294673502148532500224061702515682008297741297814856403650965315462489115746700885647629538467292996410692795642074395910324429069833526422920045980366212700154373805564779278789944970697165499042533622822612496448630666262371940982009339205748546997830890525201616547099364183267323374132931914125201398465584710905995403026725764125740181851331125746089575879938181239337722239245004248741989336460755189903825319039211042107323931094511206316332684671539699858238138249623529903028586492669316593686100763391844394719841860315419035956529294672047421372402500529749506313460702616010386275521261773702426121345283642866330784630595070249241114733749549176331318970574944668093096790244637730471734035265730540149420859344175379017308481640079737381499709685088822033576641348724840588263957585018423012086063429256328285707266313076724366037535103823992304252792190011857330207408083856464097508207033476936079424999487670645711832792591582475841088805270118884965717944087099305308380064121570596651873377129388149639318448183934555443595821323363515117058646112769345520569583280541637953122064864855532351607003029348664601267221614353211339821954316295109428875091181737362275186652491020515150349641105669992251752033561634628892584215990100603353205556184233074639009588686903801826280365833887506915532991326939270550382465365245806315835863078171242178426635803654564521355862189118088570227935556989551808559161547172627204696736848581234326151637985398616682379305555222864674633635869031454343461372808316707709158956439429695771352563755302448536953260021777206900552554780689970488368465886544211822996886510512009325486429369724102594641049665669233340591393104032724715319231243791262225043951281459269210297580238324309832057237813294450874531591908723231424958244943809189948217279442437241207563892555890291911428002411368837566263490553050220770310787222103170525296004350449322420667664699428125564444276794935659676432650644144788137132690212964692888756983062567626401736850153545880193690668731275358389705027471295547238749753900237855227833662788844837244290843472078899690034280344206740358357002825657608167766585359328563848567040085617768400069495643141505450787321130508006644857124209988283633140140957619507394597227133391353956624643625011513711719275258431552262810753546763172277620662595362869745566681794132419606932875711729587629960487148604712537883483852705361055280659207446216274341848473138649068830857890927657112710425554532892179712541620105079217068774206265949197188389681812551036466299109525748971522839944875750038043131860289950681986781295989229976597297593072922867156895623465782828018631467376494676754088569840306831515749257625903118544488699107551168091467013041772411871431322258928757523116905767379998758267265600821046921507265799541550728802829212721943573924213700207435393362448977433590071269735336537743237459219093162770364383425089415748415072035458445703914871526960019466521267793308557522441896569246099009095315125515043707042865328650983922515038155588528104492960070719826452269293632198034900580349807338109057375711933867555339082805068720096924125150847492031176341979943468771531501171138068137153641307106292017775845037716025438500495695178634333548417747935078116323997424001815296437890882580192868399592477431435302536362569516487670335595393715039301613591015609521403645857498676898539974038661743169249681268850368998061385976267353001425679619681534501740873291852902357454546457779017058021568128816198411324121853401394690860998576392876776709665177040210997413833388283269995210704601905328736659023082638871844596249301900380598528083996660998876560078250580440788563660863356960874672935308330931665376750386268282188312876706468406622047909079599938907136205330848243254591952659263639750767129801888049857573985768422318436313880481649725146816307334678708825592693210767888917569621408535552224312449842476315679179767658040567391696780713859359947421307214320993062281896313905375624374567420042562877448778953796608361550435699484176538953796337658879057098532153768469411471075997798565174703490718094970198675506207033504535587391858023165166874895854531819769668174270361375163557674757848462787672243869976169989635754107046806952568819481841842728168927182004839138576247576342607051386375024683330163962918239574097799131143615040724790498344077096683117555505089550952498400546049929019741831152447986006716993841426630702954330612081662875731666427622779818033668626785200687560799161292396186557044273452497004636166827016164751295032867946513913396549947873948017004997945272367092434893212049009524936958159389006748592063534366752069332048022538595240924305047548986361751300736429572377591977455848924761353482659375183137562497356154050205922284590583911293952041111829428621705569465778250427387656247139145927761596321285194262430790121841856594336341433802474416872704831623922365231947939874697908241425042945556171905730131013502057712250834632755208515847863043015311732617255866344450648085780133124119262078983607017625032958682922137445710686561240960028910032108884028367671433861037412483919731759168293477241794556709766358592685139312316411417397281737417210977578907840122383059396482116899765389680671073187019573090199220523872205955972977786151838368287799018125116227063323542767127312810004216146534322674831594431083483090155902140619270731465750281761841357568589930365546454104589224804460712618560247292452282075490677890071813710838129081352390882002244478015134671191376922712155470642761814271703858919688808988478656317392444978839727588239381825780523609052441873588394512656686490536657900868354806222033264148148973987830298476010034580454341583353143807499902033163269897123144521680748036599159249383255062880343023045365464899073367368917310907708365823333400312569395539700083515450958021012743757709929566704797056117498912919286398459717923346803419596872160402904927152458605067973604091038745873035253117213774169199725547567537786436482558884734161915987615323232132508177437135130163747586101839248948977501132227112219314178646432923139419224844230831819876907364675514801365517088377038210870480482315259045731811663304447475365787420878283372461838840075778197776687675210755489700201343420710401775818650369105476965288090625976798652805590583922833223921149048393063534264387647925300664649389522138787418580772613013512172459905265825573800954647376406101029758593379513038056143054374123381845903823044782610137388485130725625317901551363489129653950525149966169075106882006871463269102817322358051907462709805882519991367368430502799152570604924484540365900470662179787862834055259999657775434943982917004311322895040746667564900664634993089708245437155673842409939213851130575292576623245854402916936963852361484451082511687436960041914577747802573935838105812736025416569550280622672945846657432710565438823356836138149349416862905823996114488108384391812582766136438190906036980356740861981489882238270963399228937578795804436208872337968171074275490969176159805947476104761627920561757690653745580256984379184624776276407883861009003646712091738614412542392317641517240839810644780278785813223465021501452117840786021216635584854409927867713659602323443362536145154546049207327815502930091781712539512522902495901503449524045582681797913338989025558075141073677486425905721860468122690416449413142780060732064911163939604337023833571838288696119968208712625417042214923371603338598396168919275376122681103124607106810688967016539492786752810789280993739320013500333725583530463342455120117151072375021758001818763295867110073496131610883695106656829347714516143407563052822047561879322604686203704805553337857668491702148878449117625656930944770417148867087960559083552283088492391083595816465405649493987958266543167660629847050485979946405768811440789382188794849840595139628782223765932695238975437709317444523093994526461619711599982302676323057436073084388692835712406707927785213813522802677844707971468775690394201417715605502375922788648511253377389512880010945972545133249244921657736614626451869479499705913373797860796981987652341432230557546243904019003224408390200341210411986690168717003025075622154260464503164208729527355250053604891238418373499754476598464085027555718659902972754028203492240844622629254387993160252891766280511528551399838423982895757978954407712379909226913246227654443692164725094400240020043127448011956898556128998048094465454262150266868666602367658944124939272379935869276302717079426037017140621246984928607418161852305437373891961546161650786402121736341295289610541806190044567539096856759543862863070871395251368795144970378240239294031768777093684928347552838151571378956061398152249413450499864268174859909191200572430462750241025099047054813086018025314326618999428575550190126447187669531366875555713943966636799184340146955989751749403279349599711160046699770690482168630050914066506154317309289249538066811824179363673393881861548311238487145913484281821368175609960100506823804679081628696785141437831720071675362534358643975157651608992982958441109787960113712805685602292257153335729409689790703165223944626482483220051043305079626329940604063801958316953861739037399954138016305498597829857864339893281831773914140045272958508586928821453293218299749265217985948336579213903587934411418079106293017638291275956442937974446408139429581078021316373251191518304517594749958332818989249057490428107484851670965115554483330136401684336945007764819751946220540817397960933972412026109956532765910949189664241429042888121929510296004595939109260569087020321898172046090160034424988785962420257603339826646105446754374478125035249758128644559511694108199810474396225289335928375172303476639725267499991282972180609053581355414553657306695281627495439618274110330159622191468678467183468132425278782331837001678248377917947324709506185743773195641249857175443526520361392413471260699763910706878467391264823301052283740965884578870917574459888032723402162863793381527265490886647124607535971393785595639448543952009924696292708561675172797994493499910622167164114684199159735691263658768663350454620810726368459252449024399034266767628781648630335744100827353484770379498721325166521844953398186771313936716870935623136595230091540440092746162842429432006192070016612251593084030624793700626876755632119390153927671850518702182743258166556738344662125261082571654359237649616436199682875104868484527745142621336619651317908697781581658235590101122532594600178787616746312087829678710148299880079741148158247588423112419126277370449634025746110660098580326169469233727809759657906570090700671805213742749737140796249502033205348878126363391437882914206135925839223535717377441285113728158778828362180994638639500725033876221485822676888503003753401088534349134673424481618105460735774334598228159598523322255035314652048615374066379421914551244113300692808770334175103667928623460704599914237123372745938485247615619553746119209033665942075316585596982334478968508179342582928546117928848043530136541950307460630870083234599358864191423991143761826827580336541619032832081081840048872317089718249817385358968838658799374778195240941467711133243358753219212514209263561173992629159896817228229789018471824068098792339629454313405544670630093497370243475618096561253749530334146244240399662452501076298525190673585703068257229175650255291735079110943674747591021093319789662963107985746355956520868983111310545555782278216157211887652531313694899535490749954966566032356604586684434731888987508865638541071438904253791831830144435590056600516949689469421731790569355821584832688391040320987976703238078492367624148859559370348956741732809836865372648395902553972449151402072133257966983599046430831377688557718254177345031975241949802940168724093511829228356048717361689725233372684753695723047936520076391701026885272458154107526457811093803271272149163158762724578840740318800698223418896457150556034002274226916893924955641622752284957614932311713330336831218632379628844482471335689536498281559124134545891473423045519174027756593647422582264177965218053863078914327428469253172603416771855633418657427154292580262768753333730201357001597979443971068408614434178874414430761740332169033872145099725128032728376233482260961156455013351138600163638508654213545836654904757900681194666187433002606055966750564255961550306278828561641104116520619138154065573442174821211347229475465385535976861684893570249978542601997320713977705111769543665158485392736757188916638208427523266903842036008011622829200843249228874548334749540185225776646166817998513645720312715661919858917003225293730779781739686221562731856118433636614230429493881581508408251593359332235672524469075011757382042044240430239322363498080287228450721713899062564428019819591177829692825187490177434393528592463030059751499582578720563473111416937273088649685923634218789918201741391196836745391982716429091781833214862078019171225058145747723847731721359992306713671741780636549621119364041370494967952113656845077836018911419528412626585040796693496046116747968531722195788946575320691422156206579363216045107510231016085431239986421569480112068961471708365685123254710537924778709961865407645078029668467909993050492320367422486819011267157418825186968943648726669976575954078904928492127869801403952488748380293956397657838122190379821628227180671101015789098992371415528367584377458141253505543776339031624542029304341884169349321793380584966634480876384242607452184055718875620430660493847279740629394580242106186307726540189219525514449692582280243155109297723424160422350817515284338277457488853071043969861800325915970973679968388891838580020489121224870591066303806846925336084061200053892758694736314479743323066707463910004690420559817571889225455543014668804597671646294577332340168258095214932589025681809388122484095569178113886654302760126275276822459948019815526661294945317114632505639325080863571745490233705915545139636626168758070716793304118955780232907413057095561294085319586423761281404292467623449407131781676159935777203689163685096999359556710393293872078657787195596406723236284698420415535223277855764293842446783886393792441963119351529619574575494896797441921940083416290436156786106561511630818736070910057688444052318770067619287497767820310196388240488339636620217643508347212633022760058224279418154857686338424531226074328377955298708583326607137160972012685060065948407035560930724876790709398044917363309535577237502213832149878521053956747821316449388046125587463033972903143066330495587977421813158039548325299461281374434059552467916272447135584827036942455739104164743954735515435825771099344134816239033102003588476384176389885853082080603569949660379628691969706365165056806268111643113409719875141615185100898034109234327628369997578002691420333772218443566704520804170719897249051757004609921382517236877641797480899872437947450104880662331098679529461209283829042015170115077462628161845155124347689949192546004001180703671521156498903577810367846161562713529192319464247614241483501290485660062535824699807606375495231354484598730768613126785474802953318657373896372325291832441863506789799995653967401611262148938116711667479742534869319444799681702330875673963163093431802347280166899486493148380362277318467776396617265106779430349478545148216147072294842666420812903764451994825097220202337830368806361038042480851295486445315288012919320783409766273685222445694694492644111144418922908221129211787666863946272486203352447473315276095191787445350993909821289584133251625886082543545225828121087141979824413377889683374624374375531974264271283178507000976488124756870646544145786440533694649601001224710943884353946801953677988569239686212377516126750419046130894477464528247838549871394887043554005042802687175513134202762466985334758728419206092287352341589391484680120406231968608791777066267119946189196699617859895119106705227128392727697936236281340350617448436817085100492191005141656691858091020724804334021924827504144376174266763297661900714940215228006895441085746463094445304630210207710856686868489959415370160509588728956057409756867076577977469687216238882198728914159936922492352092289499618434693418319548227561394253966224795821101409973212360260431779902718837819413456096503818286255055825616788317063030908470147453004204312768790110830201400641055409612270052880827169223472065911878340437166812563494038265046760411054918227313131164590417640993763450731854412492992556580415841416861859193076739695939298703282797487766856997109301482396213465786761179116707795328564871559862070590473590271904523255994446021523245817913259415731245862280665809190225832815816562596822383583497386542080749441189964137933869074936452594826970962390477956552192287878777903164956765654189275034567899655583881027468686750214333093131434553975998289200892633418623169351260457781513351403597618130540015538213895039075956902683280603162533603404158663506321825031477339718345979124539888561490188662247074625942189556291669924992669336927096578795945690769858712863011556213502645527057489254713298736995067990030879662453153384246870890159797761421835934920638431904972168122054538093668402928455059123953190195538871337835306509585484873467760611163718461376684751641363493477712248178700876144350687579266724384967250957990700032682275958672435545890872978190497646170737015794622276434386143670637942065846431433585924550232692889222168383045728085988454016642679722670274671216073117451277861494966602300408253881747665307289080281056911717802070283032635122805961443312828467694204651296842581798002516941698021746938304380217514181973813833985690796135800352064983109723532068309221602582984768690698072529065438785566028375287505368629342674985929236722216564827588378632733438118925126462259507687977216772066723688601542098359960031501148717270934044708614734817408574162052527031646267349658725831704660402934744212502845122146096266278079994305294011355881097370219100337326209557986675517358718746960102837073621016032187704936594850515676171389682133283435712028680664766503462965630407932916348406139455737506893286962017773479490386916607488003223860169509848232582751487772057315892563422591582800934091643110417828728611429593676385543419433265745435413857517655030629503127264766807941242492593485785963826583224245243584808079285429425492122779630165702172603121147205111767673158211102443711067384782288116458320397468222745367749757579349353312280126191720500394061262553809835150078188357550742518540776051186131588624363659904695469409054051780556360230781090146104876107187960392629308820473058707460719856383653551300073739621618093796022254119974818764082498880640980151522593086916618409105645744948341122642218477147281039606425887429082731727681873675412326491531724350985021003872183374474034537922338930852390362833472295424892165296293168938143984142836620128746902534762138336232969370326958854564891719823765721646514776176719671789912393336621004694826615254346405730934357583121934890079240900268287680926982969054855889778915439408850817797233050623204217847570449366572951354107044942335503408025783240822077155966511279056505785241567520692644796252735787424410815928988182023461805572855929984356387351760792654156594036567917898752483611790294002948034909535758117778115554288373821465691129229830420849866140947364229906975329308342353030069590534530043357562353219106650827675740153696232958938140444743402263911691738246335166721533444417752559394481930718775231176832647803220143644506591899565890648384049370981921228638898115191940014549497921513274178659782292504087695656330937488839000709585403426327291527871698689599903782965874394950935583757926547676367330652841687269689371132218062935068672979863428456279670996644792798418248590533773696942976873638907241080889535169963605540626336225345922239283436825969733075513438614724791284356594057090829597726431536904013922459032182241340882374049261742275312339295879065864755260537774968197853949350239434726171077537575558482372648801054697128002587531425665584134602929628055691600443168356688427402725234420055594707540960378298322113407144076719112949749243719907180851362256644159477763392305549811166345737687843402305023254688318722209049566166542718738966963457767098040501325086077537505175512936847121445123213520580180729953191654008034375194787906982459690857140464342027501124911045501041436185816977614935106970259637875808349196386371604141322573194786983553913933654197261979512412934832030562111667853890755582061589319266004117492822244507249360638512333109640124709088252125549275402739070279732655047244002033276544458084381697565306603535548109949351680155503931089325941849002772065961095262314065253686271329380188954154049186046785981154449145263377092232804954173002510205373918324488191108825423055760358716074656076211432976998778172244570042435314083261948853776011875529824278699014192545989851764338986527558353845485891959884577982339325495347281894206682074441813650511471869570911187559225221272001241745850586590514190347282895055902204371223709243449244660004753534963048851240220969125090506302939870441104041785239459338918758041573001553048929446211290165199185977023953274862059079043608513905941155573225617742291878754268675495908256094863055497365399481931702222580864973555788017826494050953910860956297894535415741896679331124216006106331785915472089424168775185320535430305664310027719594577002459042225648691103026485945582536775686695108145401083561230601581602564948414782082906626579597401520658531049624808431345132077123486878749678586641437972389670374996567765194762244485261704204147800409598700104186317704864902858182722304234810877302980031799791625008371453076318119106335731896772572290394335558998932629408170878057652209507148588250331754095843024325041926014128679399137626593368911661961311601302920045503575232098672645368080528454043051464824340195126092788516763182756591016972923914683079937535847319463892322021402644181349447136142548349856246549448556297875422350715903842951511107241077423180269854676726510534306662903445139735301223340394997808378176134963361721661448663786635201897642226699795666633009542783559558928175439006219721476766848196433472535534568419545511579865664980774265164738413953067489319799265734504269414797574743510919249091638933893941488946740561290948479827970822802225360565037068419504239650409572483299109440772932544429180971488136312745311518662189323383635436602287364454549893739302158678352828829814733703515159667052421232366505405114093856251562923423446620765796110423916220950682710709031789685077418681214107601102747951411292942315997392516335753147572792651989719931759484372016516688062240751535422622050622853401611946518430987605329717683455836499422510178592696920414389205999784224622655952943445754056081696812713212853704097380201837507143836760075431923315154576300944433064089455439207372921368673165699868338235642951452088135857918849727178865506879305577114677368902377899622699704122914577229733379970205728526290490384226154639713461258412555078982197333998386123957694571592248570794616525381072034450597241699291312013402142111453533496833310325224272056802751441511023356257807532119006169359504698686224196053381852905329290415659161162412074605200046586239272984244783102925175189389578181226671503247808654720804284465370580788021805908869787915305676012488479952445999114811352413301033912300702181449485087637941948584624905166912287159778116843810281473108474512287255071632181537900567263012493089080028540668832918685825772848936707845208829344170868514471890623847112039782725171343992943573881989515468934066190256956775981437597262155579851956947571350083242640649913202810289565748728325694766152165777830686253387806712310225895200640424090884442954553777214993908743839151859670255985507196050535789228709435603779937080434447280926566587605250360482676745774446231242972570740676609639612535357993862937394290294059622921129189347347703656539115033419847620087835142690473564968094781228791890813800270677226558740084214540368498301330719623283839955225407795082638319304203330217160801556224375848915220115989278221866760818409785448550750751587331778228384815339764457767741019010212454701106501087636001508969795629914947366853740841665245393149794153500055495695932628956664477263801699283516025313586646081660343092880776803167433662769706994525442310234873096499514765145353654994306469325025526402214093562160268815406478483461537622888718754847697005277050475053291700908789414894096354522906924156356768386240580209859546782326479086595565347325479314057576943748827167955592270307779193495811048226742165638134346187869872598080439502072857929961484568152583091764391196875783208408958238390442464600973500579370691854598238535049395241011776314195215381924733072901556506813387340994390691065063996195790042596521953532571367552181252521816877629735078381164679853356522557726274804722272697908497285089331962206548181536206314717757404783569963784914884441404949487279168380112170752601001987373954678533765157059226044104874022497006248488430849009848725557938210215762420302390979740230811734260873089166513661239252469130077550818450773443237757435113903955240210216655427403909172957029826298248471702164916069124755230341687910561172746923574695654265227691052966859658328211307509636512120450686523162313914369968535216725953649785806887849065314188489127553205470681730662022667405658720376672288251257541027734604382143691178804468814923147046186414828810324735904151201746875593358953582262382002813856304583741551552134927801884081689291708106676222998247350961799078070323084318331823850057949748623210788406029365445412007499099081544284479972399276265581875694708432851926452789252414211395732229326039056079608487292728299683303622192825143197007045582278984386458209133915249174742979121804729235351058731205570243681648945508741501933476334431093107192548018574497962850321327172289300009498388396117818153083092299296246253426817381084597472668499502259911906269806481792849817649492047815645720542225015996073794626403538066590911053976935775151692044778335859478736348840406997124030315867884111787997370676139689138583586579099513255082677677702466251962394478482088308686051159898929233127026390984992175039289764593261251901770917638915552892965288187301365286788970319721192137264015650072169752232146753760804185818508469295484998182934051196635964816530018726729921065879309418881620801445493929044828527156245547781898275107352264406646439007069517199314502150785226416960072519509776288810338956823104691993832906606595796606285431137701319514176998957645490096792846106366940911963041819075651796466608041882922870687465736870611820058317581612772825961265952066172625969732640262434730557288153799179440706433030464103109819837901586591892933828990289053560139438885306164731730656806969054259437783832441003482761980561087282014343955802337374056930120116005715884081460771881219196881285374068079331947318740933343995839883515021423142655418262892748731595577693411499305229272324438416176555243248944434140542221894337196175195236545485616163328059057163700418107062494838587204685831205310504230499508862742689054314918086604271796406350899723167774937180917868024044716023087694207476793948326661737672268156273246061503452581757207142951448947574951391959736502163318768784044354803517196798655761062867660017790896645579873895019864864968035109706744262411114094916225216313625576971680782565817091703765330531461529612697230085768637799277340398602201862310072187294596962513899275543822693080194436861165655472197816219535476491696337130325268167844787933334942057035728083474475273778781463634042598345345828419277992089736099059453275971402857602831261698292594113755680391317359015080253565609881999003234500413830524922232109998447807505439677692267689285307852488272837645394558926003270463261792610477750319427788648810629473632780137050228904798461619673314767469345553954945329372588337379570450908695387791433244955861482370416188496457399951433059923984561591477245067860851357710208627473997773434230952768946087782371720686227183285573374787474167791160556108623387276413425921314922570823327060111296295712638515937595432312757201532458424715120543661259389023162822730678164751828124110720596506771043352970196949952438556971618724171762576863865166942370433931590404416229535180508809057690873139274715437316172905205366264425697246169962703939764620043414433122764378809784759145145816796862220253234023963599035781722293558744193312971104128847164102738444538696925698523488309032079061170784120296162741976893132384318485575220035127909883436080240237616659483455976829125819484634350220107895090700184268897102056031898376777697125947268616760390754855877675393517635227156773769593664306527758110499384764874003891664414501730146957518014929141889229119893081250985772717094011317326472608112586100663616482286275463063766842806341353642333622839629009677151636133434376178989256990029274449611757427717316496203122722005386225513893026327174402911103021817609470078316058300479824912005050571017157469164994599743197023721254028255490932673939179116445472582436216351399844278054777095156788573021188264375702301748182014353249792314946337247365165272129125799893703839612495460355827309083295739956152486769196723042952958705814610460138729049119165004831963330185754549642732190496361648984217747595564066461532458516399634467706626458536860831274241940757601491860153207911280422514097541145144942053350358418940957654042616318724243792674412650972976322115967816408052255040136904930132276217633041617581051255760575460156034654051582509638426070020139544108324611283247565201895202411838587600457953818573874094773324114356329056781191339186610028669289877670727921437548460140525377290767126656051321311216834246499312863455751085247262683185659349846143011424311063157325532524721007194631352046309526999221633000000018180330384880466528646991748821941788365735503897410734287612311879245128791622331532660130659392039182477661099840517584063866478007312023574241796187763188459664829432656177988780455780029207337481046774467948772952663871016159085845001304417491918221060155969516461987542082523821848235732375725064411650848526374529768602023909788194571091761669607388325599022874655013631457654648205550949201942502053636363808026780427239251864328998307825463110200624106081860597700794401193902414804973504249771435166785066377106042374483788636066741769744932081026854798940823170802377582818895472897605932308153732613121708979850695405149805831825584069383482200160152796328508128003514591030113961374018429875435206694937234113847133948566773444596654182237176794800617610493204353599010378666029444255072613857113304264922437426881967532397738715083001556457264178599492653036310526797297451969090818414186219310681014753536556762505319856604281718763279719202978918851323253510403681179397277884630144602038759212642432061707603836540398741406840685783846611242112478067978902587575016854735782888965222528356382607085962984291130956589308329775392827745486109192224747240457595309671549383212255752306987851000283647061318511053118722042879754078427555257570298671146744813555536431505308742558903348780548486044384214379786808338844578759443917179278757447240425701624537410173606250554159165731922009630083196232825999501861750697558368196869545113297204072498106654536976918678817681092628545442357511097675751079111173757844841180748035055418552308055174517816803502111984019267801338562115456441733727880867472506832228213183946102893361914587213103965071540994892434266693757062472777569983409788155813970381649528391374904200447370775347793421924033416683326390374081367283526171410531655956016092374397954914185190462892039594290482158663686325666102186134511316518438243369469455072266233305258624252097595358174003056430370351768321787288137083928528865960963750250934501340619674012895351617608432876819147666896012091847173006999845263392857027089147792495970286062884865825317926977150508600045240916948457351348298014454687522631466261783445000062435630126256676370053740967155266037149393944320565586602223955561764438488831516036119812997445279981271197703788045623023084053026330108954218520836902442134134868724316047571485541715495000970569353669976826497902539745180830609790931231114682071712343507764490971279107266519750986380044923481767299294493035486162692146768748024935061433392057719087260356147828655622469176926854978225412320837176202310466844521279238769551371368117433491549577937344489066948622395438908049015254778738861634729087109397811480889542654955684468464773713231062513960502656875180148592387550368544721800574453774778967830656515923989587046603377384487561030285625952813707511697607032249918749145266556151845916897470411195301833286766670057400897853316225145147224967153048249086452618131409946457296280550374504777645523681026638507606472771554319860746833180771141276703121287376786052968154233167075418864182403889309148355535503688850842943615952572330674963827445334977359422833675997775618185916932035180707409734216180256999747701397131536188842836976408369925755510195860953801533865036038994556976947320817180189129280653242836185501319176562399899442753875383911536874894443127864947134488224569247305494050588533654279012230059847420015427656336533947176543451186575101758816258802607467687301561293892060310236393761962575212147551119092816153838824648858965221283169277727031321889138925961239869163041016654116596274634590311388613913207320355851248233374598469506881854967940595940130757601878884548782402270013467198602281532902353522610384619678418813404354687027834097836732570729587889071024498001032758535142131058171699155187788565220618976165569165214446338067902849692446667822686897326931060146309481766818591960192128338961042773067618437412481278515168781523920481028766064510272062767609337820903686788311151805591080093492547373164722464530114177487437655753332892437295411975304973448546634900750502865229850582587346551565613070975366937967577822914281623269323215909690978529019199892186723591884828796299610898555790103599549136028954627111230141641920915976307285262492001178222067051327642497584534829484478897854057118077604023073391794650112867872856753716959588630533008875753602006408235840583525542441811330192353209526709501930313172861288737866761253031010662937478798103797987515560628426960608159538807677540175832759207541543840220748073614513684158139785238811666835987541669681726591193987249863328266878095698456224795222134805476554574324720953982603513696906131781147114007832433413104765206534615464984385286308511505031407033248411338460024199917021695662544367866185082280545289796243402209503472392836054145079406135129043518998393522308451216457022757518392877922982729076866036852973482961691514690924352273795145544132728365298345829123937779138889080920268177986455136492045455167911091988375617692882454710199835537274772082378047488953173694502720211322714653474868428793697458502245313675666508040773175984308367667998427317512852806714509838838798309725202942728581500207437483159647994810222163655548792944677065528470982162258286543756834900724771707146165339684340356820924605664419753554767599239587555274723629770508912153317334018940201096150371874411233499549944180852805588474757849117494926212329242426792527006913773526476242449099644578827939260974942116110897023846807432403506032313276711852258478303510406893204881317989756026634577411730969890364138686496047266049743211708060590160993887376020196469654533940125432920755570684949094857643572445421435668011685525618303550455602888799005238556441236280944491933560278337871842061696084470607264181313827216112391043091848716165980830527829922913248989034304211268179954773052097144552537542376987955282440021312034590452889209455736602263007992106919191685371562002012470084329319230194619843872972787107605391695309517630417799574715360610380437451584349560484878645751497300679551715536082485801786015760284671400206661666766108436459047304601809478357415635663044784681974759975144492941546643431891810853950430803226798862881812585590422493925167766696839640817959634409953331029957501483888370162041300602836685494800341993629732353431024609124276235984210064616923086724568504968839590155270680632614266430908750607456825130726967069024866988368819407980403132209680441169754195531200942903372383478585742161015798089064002967620354865232144227497508834025030988530697707952635117045047421081557220587173356860305709436614193228520394399716650620053893830242717756367181340315282062386752260903172122058718708798165766246671246075010715589568059777379136039251877533428052939979183604625846581782847298788770653887082171398008121986877500336483788905693540988142207440159917828938060710084618152398208682910459548956136112496967191892674456718193083429437469266099884524127808261775150275154401072044999965764211462839273300909999716964729130385945583619500841328046186969164801239804301596342994383595139831855768749697456122076660988590404582515072695103557979213477734959643970064399983920687608434417993465405162167568963183776895754396726978052173508008896933496073676382825409231586842057743619370319571252891319918484962610338278544011514153271566185258922484713856678246927925511877988859270148599393429381786798161225306377933493912549552917101229122231650335851850998421022108084324263661025635165474941577554428247576137940960517975710538445164823831445529812596757937954398026652180363491025833104937894627420965219379003060444169760873363693251469089397512055552186064961006959256720281195996917391323236558238491490860590326119969300420258558491211664283655445410632868729130656797989100958527731902328854789160827636527208650878477582668577930845756745950016474528861317176302788414934766859905087225774202017339634547029452343573830558936521742324421268806514687490090268631932273945428426140988195918628880844185810874712359002008089875881027627877800649589519263731241251233410225773443788095656946631213726857092845076954582733865237684575495033747460368063045416301425092418137594296829817369331811517860878085563089057235196666748512084688188280982004382659888205086461157389637663497662680095585683390777152654058893600114889361768141070313002178268030551616613954047509975652978146061460341047243336524797253573557726497293564090451573843923642872047300011618971004915258999519115947786106181620543289818315549054364095169575395411690194898170093674982056017594158027913190584905549768459052787549525060008287994871976214480624074757113228592058067731003189861862599242728821839668950875414217403468039283039633993987185821437276619435564054751890445389954870698981614302590201363107251774544801939506152456128107471692717827986913462843005159017159993006487623818599337836020724760264022698094760389139472525186749278495461274453137770468107110042438514260296938963130634374816903571698979263596755590686721692621357010007313140246192977680646170674436621810817721834710704205005013646486661661909157483796417383807100086996022530186873156507259369815537844563517724043403067654829293244722104154901406095403623960186121104501340555513942006204356074418940213633532436929380506455065322623208526064353656603118255687620318077919002573181664283088288969722530713691978519583306402650969669794013455019818543325035186684752545522530846567036693991969264481672419011705389893089540645402360905272169815424086255539066050100909236476849616084572275035054185103172876481046348988000029582197925831900443535040398788595500514709853366954257961414501298482429849987914965783271238102166144356150321664126452162203917042851820057228977406886134338584512147425880918077335714668434625317530500830394767251394970441361073370918786749627225327662707608284963791579522614183926279101519918250422818708489468514000359548239748056344462989618173458539349508791831755272449159180747662371883350250925787484259273749042133467323805405961939078890258980347644830163777468453837510578809541764943506264756249148237917314966227862402259356830782171764880484909486011655121511810734999008062359700096448197030148872627076754239243896402641477199626438693223966885212202617147231622202952818626557559271147705394864252851326241031262588010953938314268909471537529382855110789791653162597677728295134615677466548011279303568375456677303262621060911127435105967929496872884828309163822151157345391322356468210429317380584778531851848941711722207691119552466055002884887837720078560252608917044025000784300489379294254282820941204201902330841801290327140910362922910910217471856326143102844086063734914421325773202130836030418577822635345919435686329963975914109399585757397617831552834588543206079275179993611690743894278495088382848255900758259584099623600509579122128848145774819786689480852925640882223044481922318659873611228364792249950025157438788060669875030620953484018969330824523517936108459860414136986343164801295520461046813237053669166547746472342614515723055008619601642398118309827531916765550838434215117185573089813921013862867274293673695759111081036140117476081661219506810903286591075668740181687852573949630625826217939047711513104765535625460018164439200499726341819746122374893706674028120314644382979463058590194556502921244812364817444641968257626421680170168200002264169752076404845169716911079032983612858055910148586924627376711061247352316215992642190579353443198983587766516741324519045031622808069742261132915313218961668294988200911558997282264140094326233667587502767428972825826689873479297012235634219314289216165239254404482792376246586569704954512699416560018378377817253445269598402198933623063347809922240409311459584567374821231402177242370410340674877037447831057315284730703341735285485983122466299212105258365790941727296421598367047806948375997815732945535042056669494014635400057094862828285509431102615496563711157187556978165252529458208054709987067765330206315087764322681447509789784892668918009952303335054760077931077086830252319820261751739129412151732514806816531356669172336545602850192020256410396523157147119843501600244233859573756407036305265051290802322439370659243151069271480180417413305704923898768355529842740728330527747655950285183996215692400759123422091449381604904557437403555660413475551670274287015430398467848522801636208256753402694967894166238149695100577305184890844341840799680716433269443466246169478835639934476333012802494865320188675282237668937772094619828317745610842611343183011347018844673523922737287817274104914935147842395487952396875379797254400667670898941843548272322992523339660836091367452457886392271170948560083482613474255884444704704945416144176352490515862635454589369016064459293388904341928926387162021010211643228772804871255789339162606556080015458329740676451527607308026252454360093621722115288266233530934142324907885325565351699871484284020038043814374549548587271232993935375521636184774006533737296409845697997899881273528387374849589141092078097888374759134618665904215616964729545753336757890984567475407250062603276758502669713707049431190001116852229136236012996789319885791753294746880229898872223943615430298277303881588712469906831072692398379141544561747732590176432162223805254298478129907895377354106031960244484506904292533556366670945530177090882519288240657410371043042435052471076101065566175753294576669206284971154604903529759981421162924867924826772625097394262019842063365451181659232975134596303379134194558482847783434304192647401938116499688755401037362916376239318632720911486175635076785369936391415013150459632903656545754903857647381394797939124501102448735283433065981240488235627614116774167826364217235423657538374214136160471298912896531450351067551590751826268813641875847848213985275918076830702575826597595568381759632317537170537484094184053572744899630854798384383201518348024185784826654210049683964132473523299178528392604537837747217068330286675045329943595977652689582105089003857583890330940286464673810379128053026425404528002999548496004189855995689972474456213687436687230559936830431850841308080989004263783004853796147756591025024492250745407701096054082488539908488065045772357679976523369497220861880715883444228681595129285253662143876045572226330172212040497544756615206272353475129546050761853800369182330134446490180283060651203250630052857177864533693858236116491104593870979229109775265765216879452131341039037331839559268907647217885325397457346326249405711361845219264865055936978170401467062978500180540946635599988594184329646254112148321197443511191050015092696214371300256250976679948964875418051702496787331460775911202165392076280790545979144910105957306514689430206527588887163775920317490861981848636496862136617391043852048535358602685765035066420468939013645783871098228442061869055056296250731570379447886313543858999385340902534581785889350885531116591794893953523090760363687890667920607303038083903604530456900041944700873036739476684805914200949708239033135057792562748664136328518157608749001110308702526090299814139680427566889685757183758186148615984782440339830566592203365288856718443658809207318765142819631151922281736138933786105617286493051073382068681854465880646059126442808005931332067341378822108346827490378392919245344347410117253547986683283585387527543892104301344368173455396327511665137220430978086612170398039812898209567872219888455889681513631817288818953837529263036480633072080178766477385354075595020176039385121727142761003958326460542787742338691200110941335439652947594359219872697445261980823103394818468583191500724620269752655038562409432517149283785698666273391491540634880675624427532592150662710245393626964252567708753259464271066209078024456153563534643553642537495207538021622370785860016704449608855992781116291697394088724162035965427215122618059688181329652492644318139438463921361495798270710015893218132910739660238164311081806301309920421462399923359054769537376310499960890929619343647613160920516832558456639651317670219938634836156693016959209065020018616605235411992151644706623237984667321471481552637822395733683457084772036573976095333532325998978336558836854140520915051825163079767258223477263565151353123775621487731733906440523732099276241216923674526971824467208011636238623605761457222223557308374721990304159594970150754726857131590609613467097249548245013287258943750175019778582785217345102297584845236815267513435598954977440821626910898470991156599698344084038243821553853319875492454631508638317355052528152937034568303391664829067497943381780549487584132091055991336406831702863243433819329056650340635385987750401149417126063195861417170498496030828799653870245974816703508390756009475741340109766715751082889195640060074657285141326711482343684378265929755909538494225427029760034369693105943740952883223236581978489728578622242659854197864016590395849175175862953845732357977879406255369287019791325302048524610792262994319927305644503142131376627377197080509314116930371831013074399760112964654120146983418443674760377200871480946339657186672366084744490789226239940239851305654025406226391247161364257404414928976764967116835773900986040089853043629436927769077071377410526883943653921343949979071792601220650083807109814111672310001368773039485875051757058485899595370769785292872773494595667641530410587276595686247592702446141378413125339293017081581805131618332710276508697170650744671276420390970744234182396195747077208543334035061497207925831155473211863352396999610297258221218982268314883007920803736823650634599425793235886846833646692395374096869720735482897178084799114839094358995320387452583032152768009541664998681057223192615128795412132943933987198939157856176793768896749780997557382892182082294772127529629466686043529988831986956804097652763942163836526973923718550419701217196437869964300885123929433919064257918732949771603954366029354789144982049568126441158541999545756094562076968252830976248716569177277208523996451508294828400435853579758929981113026983162025026300199582899744869844660038240282157466592698538196111410175987619761644940312198508276307275919893943662852309860762539324555747530748073181461307914927888787678104159425418078952316080492409173972232262672866110354056764660345024827711070591944307423302368184228514714349210282445540943397795387541986152065617902912195747574804378892775083191363528831074443827770614759470124902839071766527727542512586879986360520822815760101298259691426893265654016183364923235133412813527522059757249584001359410871904282806830457540856980000138910610811773166895107377475902505335211104706406211504790973138156499709341356015008657973396359940439212886633406207496720209431206396554833406788921148886499417842784746113959774221245465733158058402321175673070194141585969312837619129305941207892924911861297568412186478736526566110322580940740303243295791321985177603946531903798637618335432204318557023823263684535920393218341031480552183070892631165307956487555206155823523052095738120786034589851909808393208432017183210247259395609054581497862954972252360703306843995015448171902351861164646859987016562719622942752723576103141904650391817313518546886375434720687211136109293308496803942149802542019969242391545503578460094388128574210839916464691589297090995081401660665217513730126458821045101390260045458056950499412767011528101518874934487624534169070379674887959719342694624909713552191984082705186744280708057003403529246309528488001661960693119217350332049465731317274692845519697622430795108522138985064286334144840132749227062517065575345703159005659884773317117063382185627900764764666744727659322089377662157657988589753617120538667490270546915688160485626194935702556211055362286735848430639589161416828133021878074170419315751479260884615832909856675479740522009432348408583874528614059238680024520168571002821000089801773933118187333384270806059570324110129061345788480589807743059929603998313742441903336332634979890637814774114885964361228234657252183491995838653200086475110748791241654825979762459872223440290091031225897512846678012130043994679785340329389363213719990600677967719407999905616146578502550343028537298569403550346500563078843288570579951042426622773519129252137749335238251545333137097340895703998274171025190329221959976351394453600441911574334990330493166844435252477022856549681447298124991505993414547197560953558207951382398973965471366501498259685074107236057248349079180557234402145114888538742892315308389456695522827777280896972184120400416695347888868834851093841342958320877414977301124819610989095175379202637523065878458887639750260245631306702420359500548904563060354431415121604296646763067490621380878801510099411920024454533754384974837299804521774654147378332148493048512201526489957059333697759876555372010040865805098398991662972534301904096031962260992677918972381595821836506004723077473442151115604290524549426735382551872247300226711059493163400639491170216197488528429912204746182415852681193084961670532286099360948409171549257010282563829817349416938755571283843085534690729049809818828954373447322583844834324368924981083385801105135633999155849402007491158902797213176890970915105149231668277523304087301304528418160101328597301239099995308375350861750758296019867075728140803267960220506971429951274074909454584275264758436826418083545173600921002600191793129480478480450608693807905114762922073026251636154543643427453313063821499279779596607575076724388386550571485313060954421543787509745434806280088510012109051909064415260160680132763329562595855854076712625240256185598412397308800752686599568612086548537127349302086241052592350291885154625140339992132300987933193585814138619212184374481614733476911122543052786951758791917130905164467731213712360077232808211802203773928702893026171444512650071353187387707573016339686665253088792044694768320775179207088439901711754015221653750737144449420288732946149238553244995987236047543397886227772311607833777975337872782122340264003190874221961543934628994387596699863522509740378269253701360913681318024628906841283442230038989749416927005802116113643317983145657034465145562136350836305311317642464909747538674012882075295937841718202825830508133473420370633166674457063901219809817421045746430443303568309378451288496798431942286807286826424090848362487994391083897872662270119536559840565043685212973557773296136379261186498946113994304416274865580162516335816506068650103816740988162384412706849308541688657900477726772692601789675182775669352229702197170631178465095804664253402748193162898686319908365720051197032040997494026008237636975815047212598481585853079316214855070025077588362377996166233053110522064046157114950396909690732387590791050347533036317650454299126848402750561627341811759789541968795476128120314555143084685457747505742191957038437210699010262992729362817941175545737066790625460676340554882741830097413209081878131837000494032735176611895693824601497294971133699824639540232829194722304249096080530632028982885290152378154916078845633402845627592210773474665760590802553884603833612503546789513613589574376376077600762730827905992636479606941628291294148877717696047769523399494715269308343265523781009980389687645744012853327914971678499388769125427771956731415769043518284067881953735668937241432389911498703887718413335103631268715232561543993913731650707124713510716229472241490331996155937682485952645146441389295754523067206796750821415595426635694045098479522075368352714414637977013847546589515156520247269552876747081767843791566210203550568748814716093156952414682020729827318001190087726570369759307623146646718446548036258948030203321962326036843457926099348014206507375481404575251340402748390314757951070053108940125520075952790591677702772460316060922055070322611653286357430788812561302292368263502958762014845724181270055505611579045127923248460386007067483239539600384484629102742473655016067463596594184976967038589463660708059064206513182824279635558931943103541798619889369216244021432305615183361150828011909656372917104803024204977480221841088634921741346277043787415651981906615392561079688308351433636189714578223786968312038466343849496808297743992755859343532210518950946908364141719921862944932679094099869429085696460007346524345316522550735492857056297881410581503376635251570594449951379695769977835076280337268388543590611913807990519521446455619335236613017616262915534454842134303830023068661154369696510349568261600319313788936660001088150113597466457062919600808148065898620943684230225501863544427899447724344607656875801875659820107742940756848519959355418799660422957808466902067592560806666944207062148812281279760591963319368988734585963371035819437529468359163611991587292984790936394235538721958725363310196435519088010709888893108314839429423497448143297562225522046338277519784028251707325018143135877821799171743894923337789951966888797776888639485971393010580215033372098193501425621109490762589083715336914604507755173048180767495334819461710422441145711012426400504402295412999195490118629712998419412814969167273679335530377047555384912021642169637070390230131314210833483585046024664368391412767681349636382668376584989551473479468124089348608669607233626635076306069146989158328132113259085436597140881302745339812546640552589090507548068889449007662504283560413733421878844481759707115920724410536066904191785810427692637297146112387860490908657755521969538948269831200285404628691065137658351251790343023583951741220425837691811272714593906602618513883884671951344674265400922658357767155976356339265353061003034648294327593389928063803338760542778529253869895192319883947556447126486393409884330010812706610998437334900425685041616795724322854252732614578882982883863882187104295207835777116950592639615381591546833633748534334274858088678732667153269388913889608716175063185176477436856914922754993923120557168378493419907511262989598675932740178937935456780947184485875347884118855053960944086158599114097404026712199596659743497710724149831899480303121616360990147414202384495072632707495399860991206121269127100068916207297027158028000433122100545150806898506594075097404682046715438329164322862499600112624200036902026884129588811258076802990844837499322014969323715837767073938315670455245749082838562207909237464457452026959994628980229068652051199060626424670466720614641181774077768328568695826007658608636236341181230267917055234223403922758834586907091974765090776023338472818606807697659661433677341188203061758833978774125240722195453349488652390315375102269905859218091648672957232899787863476957515176031744203579770787922645209144433596672446768029421401041788645882994729687258234603821516491166662182966226632420623127264476382657256956848295873160225239767046043996643366382930958742609213735447469553807866978494885161919373023000315410937479905040401095476082685179479207347703207176773108451401202140429024957740640560220085290378722138365498927274584526247044213477609017800318598528469430440798438017303151822527916594916459309662006868556095976716120179998725302398270773253043766509075416879187105126390273140113278787699305115086490424661687714655971848521694505319406658511810456731662298606099749814486755950770312897819114611827388351785443675716870978664730038281433309929394250714318680594256345021563619473930952519152288586980812797349059890644553942389902882479164846216013351739352095041490475752132417135227222141666608389053077070970665886961871933669766779423774245027731839642860535090081497965575890655513979528807929536793085490478730114195864172466740922998189233846959645537841803213210444715270255253168213625622510621905848146222224651851805959224108669114036237078971093422135099266637262110684312107211393866764901968846970113811628380996812184347499347310782934956271732079387726328397769744916981017305669555161353573880549859406112444596648022550603170310795740460325486400217583279187250783389778480502116920948450290517144231189279515405640256597789660630494650258282367502563390671841705646209265049321155486058391216995506865982403564833712042239772305569745479428518231706431598715219401375477468210999654828367167654854737150290792313239221743313757081845411303312948725178776718724818633892481332251982677683028128481350103475978701897102403219645038027754623782643017275407881475418187738009877533908115179806922511655857561208584261099950902524488737705505992601899685744520148424516286471180219045249385980039247908281400342954586553870505049925163088370367792944236179608497136905026832450438197425127050234362465324346893775602622862100731818382281050126600670163766434054689770062302030268340261948729666200296279042383859809327458145127161633449946889668627441291138138411124453675423275541664050157637902485251928582882538769077911771328797180218164695276377557993197673663512878780310735249362487014039164211925210001099487278024568639328278115185057349357179792964866629155322240931948234035349886020399289671755738713580122585087588401258902037774652823754789544262574397017064895476114777108653365097094250374813929281963833642975922644923536285758700233374836015720636221452001931768269760748534331178957747890936124781362609005285103080772692350700346850920994742402015216908495955987048538478569779898082386224233085690279145495266645155484000970326142970893208248502654791323951572318891556713158169648946184341664320594887155511788406665942341483141723415309142800962012754403212695529471515046662914950358216468399625865087310843504434112093764420590389764455615157933792062759510297229644604924293850540969137821097870780531656635094820163345136728193500540924091570713907723146365203584006846442140376917228619081747514473081413663773524484684504069538747212995504441058653887501586226811436754437297455030625925732323886691684966586295512449872610289844874521428458574846380851745089926518673374073457052263072894911516185927858290928129287617672857719086604888301695981683675945771624278859752090001056828595994605576300829630122406196644864533322739026821156502251590087509478274466009577003104044312592676596203300196485499867628042316229154539422543799632840257244942199414643191957911567639699770786948737007315856243268541752010188801575245063989911313839143474069602872303905348905213622300270367827554148695499469824848303446562828038461552328504613839721176513997097202209871673077005511500131965445465141834008507270051224635318679904936568428729693244137137461866932649005302050069009940023174153681637317487502871753265967593032293255690293092236988653742450741906682765942474183101638924112544599645302716018611833411597688411366995033671449877185091993088890743675579752083366128239979973629995338899864330413673384586436883950512291520521354724491642049973228431482439957997178079606599203187911012218950069073176160315186198344870910505572318529553501255742619856716347192980679594969140047056049596351596503548767446820136309251489715937164055622239298677049149724491296576411753089298707017719619076684244977447265875478295854808730830334971762359367764800418671876303513255136060139106051992243470070973564147470362045628830826370059630808020629801072637349972503916255854309196206332543520898674979979300459942954246341810300304821360336182853207602583229955570662610731761222557585748126717953054307738552709435079923870887889683663930833247646317753159527555612070157935028733026006643349477787793753133947135519364675938806354416001407332091985683221042577430915533745220657997323579094405316114272663984204226087830111942100780758419557063153285638886738353100677900975870893610094004980062729458373875974322901732681144104575782835091952425163393187663076674229844525681097823911147260204306609479628269713741200728028376832260141201963717709432982737924904900622674693910794934361468505020522616347690120476759730979125095145072595926871022442620885545342083055956905908669628809985002705258879970291486770086110578674206836776047343249242962785451683687055499843156766781123790483806968809176111026525681787730322945578705122236164403717089536879650073729298763578618111979658687371103173949925670000471489361205738698081165254181284932938783645036754463118971103666008264510475058418208663914042980169792385585629589527634925306698278258856250557966735939854275377161095035373111961183285857644116778775299659343192134361271612507492557276855159284081350663946136678067754933976873246050752168323515548449209701436161386408533389778943384369486405132363532521715220428542702224990321352652764196778426129483709344787901217377974965624600203249750652574478956926625278381673075053668281792781920911602326707938549634091621134643177883417629406746605386396970375066295574786861466804222311619042061395646576025506114697520336474328782007473731844392627192077082273544874934020506227483536800977284067703872612615026309425581198492220290291769948253222028862093909020596306577445779741279657843822373768898856876221380418584333828200475056514601278493452107613567725279411778985770015519412296441589404804824423235991588300058449379935494870798584635071341783145797320692246408631878723313546690168556303613015096695501313679177315113244433238140608145133725571562459462689773598994048662095321548928847786417215250611844643065412869770451703247308946752501457628835847173757755739229093807095163963635155055687906315180379930409726846109828715496975765923347651438745229404932342345046075844423037460776400075703649262993107817437997701028625809190826139274031889019008867024671795950889002366493523618773331643779671074944546179421276163250351403217159117926143819884022772180320164349594011960457450320082664045377266752608446700277912071188738456312816685034143208574759198159942238969692283047206817467697877352088411722901352478354852821417275220002232870891251516963890844337902861579879217005753544727685223300180431499568715909368045530053310884107349418633390675881023858787563052311119748080695766520459634889324426464604851141479059646522131919013562232509632832912314061455933608014490526672391790299686373785792770215147524151982609267885198868893988214412530150535713055300351182799711703059708696960021955807727915388041366894878775389582095710209851748802844201097718477828674704072899439560562544416451112754261175339429312392285886070597725328446950162055048902290368290380941601758075081106574423438756215668416387565827174110705438371737731779310023118801650825419746773145839315587628694205705729384413123459154141084582343497311271413964196226821029950311210477530257826243196649735472026693307909452020314321228675033418076567965391454397961479280595651841144910893043143212794524138733684312638346428294597561900321462816690520587228860643031679079726026727381612553785100731617107721182239482260960517073114507756750115404554163187147162523978301212992135502473386510330513364463272244766322408188502881689275019119621113143430802519823694114841885797005045422623668259263309213538803200177488508688231112525079408098361229193839623763081622369088360292243338555584080528310394082507031958709250725471454568201569474920437888814158933705271104224753287125627000719204024353941071495337538188895996786183406749376996996460386045011754580717202019443298480015102372406501731908206884832679755042018185033834829839386534191919950589767356660705503152005701743538409848822080197073277221534697874513504111331554871514449508942741282204242646451157016893862795334880046013151392231927456867781724556078391247782351156345505969154105000845181687609870339766850945033629168397609680737273199439461955618745443649857555511658084135102217802849784929984433481679662388087672658191525644471660714700717127780257664631815658032051715608458943735119383854984416001179095058429911792067975094830912075650557270186577667414703884860145325184358805127840566689847189352133492277837979591436023938281843114953626273144106295114427620893396164993023986086020679251070330079211899920142101620443271168333393764305913051711171915849162257455342257447247273522234443657549082536302365092147371394740405026113988638392324140406691411887431952022996584951479984845673726433129870814869847321809012797444090997429461873245372478687051973601533546602622572314272165584618527658950318964825032647220738357028986744388539525651857647897691507663316889038543342376662554579103741702804838735970029966472434830439188867468410992517510936774285991047921222064009853747198463271781002105354221551730761291094896975184346508065557422502711814300520919443137415710600002046271401917180238807009605734738760373221319593738394469746171555550638884860580244215577283798482011490625957243733635416776952471199955359128820553667545630200932552074970414686626718541754280526206307797874058278194854077359457445407589851062695244437415846497268414569187470422828632118453836894370277361381520308363069420439683966803037018674503809191723612362395368495648817601883720735717854876521287367693660853814997086224163209423769709218767821879386427402166334482761242318663423296622566398680809705849401185543029692554657846054836965002445395758095844624131463229321370854333345894635796746180973285915077122746680172184258978820643032949901626919472051720408254690150169403482851157600388123534308214462926317018026188973475816434683791778828573630804994183159658159161643560673980236077770609495712183392132472769400872380856715464270116310842644322892955779462467246329761900481334232202191557165983761977831722518682144101535361506557784470575415138008746070845646941906245800494832013881981123970620309947990151644351103692922997884275707818074853670151867070620998209271273461050067521629891976411392645293669886078089844945260147038256323935848375229942712939490310647133938784880913206623190793212944852514313288668425407859256966172408340562854777704089222493910474730754022463836762403668029493238694784313022144366818193431339479425001249972979794258493222574956138420035253333473083385768355807277556186873024977052068562536679844371416174701449138932146084765001855555634557294296285135932717491825918876813022584242461588940781806242501105091059313746351953036123965136709673796797215322696576638070799759659618187044391393873810445813774710256875969063010186847354563132658378935640522025248072858605884268219830702897773466783750198295023998390360983016838908763971466835111047946798319106079801898584013601807495845901955546329700664401516713475166370748248952989519089320070237284742097254537099986461263335382077608682082717967671962735987431645991833240408622201303482279848936359105179607435164202126955878735746364288110164581518131848528804740960228463940914061497611327551347302712624174903320024066682389059072884635734139067379435251589644509202811783550497812313020251372754422418553838098206445266761315548164556307185735506512045964851919992528926736130113152804962156862537703046662654759011255150031919817610444322465605168203517397480045762282420457512513361966253862489291240286905048827456893450734202131163476006756495970530978938232874352681359261517276095928222146264532446784972700325609145835155907259169404437205021182452092453382323596046131739285967810809195052392696096096948212185454103217911997915704045501311102162563420424946345130885832784490787975571777478768547104480158009513737482840561846817319662148854387155502367514393076170871162142719763821403812283283464801871884059785654136626003241687890420059697695953797502902328625844285905099028643125826872572798595693400901140838557628712120734977781138302048291743784138998544002187021730985215640574714613439859668856474430976867306019238055003820619058689411307031372430455930008266569057513047725285275460763808288827241252651091575711359754513757762036053872549949592318074093963912186945535411027772069880939571031544334133195381835757900388778069635005181740118784952945795284529206060225619228449042350002444049496696929097179176189655003531650574424301634897854934279337290217025760506954752349985254929878782038934409534009278465355936212885335430761522310295517234391129305092078504308541168505940632795754111717525367195030056096910456105392905209254744914315209098020632633967023536219220113955700052946035462375019771182296046438382133341547383159086735789767242906187396562544339489978569613866492241572025014188643688746498218084602287413031601667955678085935949756245842666340819180178144556044063448819752687046733643974964989028441182610547950638285508672420287089706315284948326063279372900469516083716146981298273265318896574622431590549742529407676391252792771452346039980572948602309324891071244620864886010000124663724349996195964132092299201979592137326764416632043927430787418475413050325952725588564207003133840768101666241184957269336839884944427990788930367431434514502933593535800279556209757457057504500918494999158285770320648680359365521498273186328289260697118183782255327777016263710546165341165450877540150003417714683201995740262114012147008051125693650132004234068229214329045162589688503411242092792589632265527273990946813470042685557739164854649535501901063091772655001473751622630689229858476869232304481204968233782553833502358896161592926994810055986206955686454653672316499264075098145220732611330050219129799310124061423653040135100306194692775986381582538087994187220767055986759185851397306661887432728679803430122464422132321639971287039639591445130180603451307699024493595644735772839296474860124562987383528955316473378560587220415489157852964087886976198425823836440187195408937514286111697064312844183494673333292903016079683686740391155129648495347165473610940944312273781687862284052876834753574150654670120205175360875778174165565170944491717552308886613120462324892599972762916533262043908053348819334438548996946263011616857172069479453809627177297389037729249351360346024450611671892911442023125044530127708546942432325432532726906175420448495340328173508976907260562118638635364331397544224243491917286450570234967788673494254178204278061916366250878681056908464921289319930576642673604019489520267168913932392297418351455235642840948514334736584734066245740809259374110155853350909344913421751592138861739779215311860637946272020466173607984536880608072229848211567619068651090950127815734482585852837275535940860449712510376907438132507085936004793318745702108717199997541299931387470738712684354495426064414077349514530925398529492739171179605676488942744196054476334931910302849460130948285204027151164677530916019882175074369751271934067286837653059527727633135272001038228356630616138655203464482162808145734921603465327779104901108240536057010748947588813088488357783838988694340041933592954155879788145859619851722812238077903216016827795662766228020030364842174525219100290668101888802713607590035426685999322697149257503986229385731660401599206736338137436077208443622660196059107856200484540300282566483058956728002310507806137671937776258764909822544790438592930120932012563193856762293845165357220536669898264622053609359120195983947430162854017759742592377989533839117280469556888065864629349040226277561002074043018702317820079207745291022830242137712420439191869559964568667139830848761271675766051981107816736210019039252711308625135680907483824010712529476305241594933611684114101728807863937977746491735971891583513790672248635467866766723126103061161101842453042007419567326626222653821992463713919942945882335152972560054837733594528947066620098523140343679936451815584144310608110396179446290134396819229537870571003143257216028259205260254538438478169283561632270428136771216551130097722949278200637207102930073647729188783445385917710147588151749283041977676093657374881731250349812372484406874933032528398079429796676820069101392952541725531500692625124406342762589242684679031874691768451881752448068924258758220253077994433725346701014168965707870468292157891681182473083746658009698490547098372830380900801291353193784934870718656970791497508631075354668866319293819255495616732358633973199052916172485354172367541996111814365722929181661718140070865051434585824300479810534984960682292552367918659781492448727664910722856129829207569925309630084058043022632696381996369889872061314813514280723842581529511113677144396131370717918406537071845085288993567745534802927659317183913049505119448035444855148161877123212586645915850971226835913368868050024143472457365709971551755072189089326277242370368565934895937183728257284681259137717535398631588498743445524139732388408972938786878008559103136108433336656300421014958174129948465694195854686808642806231896983039837572413876724566049344101733811302108430809891327093566476391661869925023739170782535753846452621069989549575692685246883890106905518666440824357883152920240698830769705261859819982038393902599657898945389083203367636430456897022294283706707997992815123608291019616682606095705807893240585531075919466811967357060150376842725061352467528241888410291226162912875263902459753023300121822805728206205137443868478069025642393288742412369046999844799464512517607537032369128886632038514606731277903379138180353153102312584333619251065589214829648577463764801379627080334764234627669258760480609377314025291158221220270026125117888851104795794418823025848978683625244051516529484423447607615177723165859395407792315794399689410278304261602953730492116522534679922891140019112893332944273021674621116886698538957545046780139734213817743777951823686227579063293154379066117236952132983961082133616663800149570266487407128269225670967176938302080459704726171632761804062083390285513672300991899393600252461210573490424046259232413991306049862245512743688194089044171865768102591533160385805923737320346591054381629631339589530174445966188330413291706320858299267076504498256811729346649547333538239777653964048036563659828881287019937372891990755888877225584896772634066351401215520192697336277102492314004799006692693608941213733893055858771945343717321018138002178973393319927312458299971039459857846639535966355562138979922150132147491381070228768640506815625942329031791365642958984370100046203652410553592637423572640987965327502861220712587144265447755684833412302267302701775716446374060951237451696438637860444412710122742128886441787365051249315737143673839333326664916027923673424293696085715474677488084497529856261822318295108702496068340493398122520972271021456424760450015918330621886319151341351195031426773858354952755878613411242428511189768339310132811956343202446165264891701848041791181245803875740023265752312709656536779691569287163355692056847044716975405350689853103863612989581306433908420558311896657897237643362670829229394769169481932889617074164757920543917386573492768263475559667662999942107118615663554373682487055779868650550831038739764062472355234996498183450890720755770279351082068389335476960649652298459339733496483642582978525610995424131281899168958467288034857524247110536218183114592813970134677637530323519161083191978394860936001792121862659550257501439407275462980370664668349961419670085959577077622207585704278118672955971258045515856440837024422558240087388720577085901551142493804258688174059056210048708308971938520077812483009739927366849287865522013722308766111522104701910991283975854671164639272350232204932063737987374225683746101437190033824976300857826871136380774838658007398451958590813909128090304087524423480571289654197878043227137463129247513988274182836154604110615026639175801970414877122855310088671761753736991994932569038591803144481605016665002409009518253019607796670062794008546913826495903300944582158661768085724648982073256633892236127030531803143675101434501018016459431151661838052751511304058899099860032546464260417467354466055759998111387687701040502108280275877007884356159539144836617718420171806709368632835571547193509642084347446689797171421251093987142297661181254469326950755158917380373403846089636302732735381856734368020305327077289380837901544569398067983599556948980911244366740047157498521401716736680274814521160435691875558633925808447658173606400817335791709774626245902155942542765208740065476948251159251730144089831175104093050076103358483761602745225516740945596438883086602218039448779124009899174513007133166742696547191446245762134431937136352938943115080581392025159041833541175175507322490700940424897841434527308312943042644255734341031449406384990599361901146668183463811130367388256476684860022008154853431920514631616549768473673609910297449022769769808363600871923336378488987760328474615885389921851282325181100471409818373227384227558947836953903842406769418931900079721497497900371937541555361526158758098229584093549499431280988298206191303530910479469737067176837537696018130900507964133724526309443146351273141183240165422700441080689185872302734146746217613389099950080101884863488566155484681232519897135344171412936200659624141890295662219136539874709155131988513565855751799583386201882544065480336040974773999816867045497814570540833654923939695051082676266294686482288076066843246607080181003907903982857675112673630180649447868633404435949454162529819777940044691690548489105303422996983226915601365469902878374272048468147845500715873411666472549645572129295361921232383569425704231063726001448371190254404421315440746344546772978945070758730045501857358150545249361873886180807397199967829627268611761808649737112318000968228645002068483058981120378024013023854861004021473031427386761919036934265057040014860676123272466030978678296082346277143307316184991412574674053048589348389646048789438863910054204633913800883621426874644788588565028222717711102996799164979756863743775870656083842910437044805628133010118904026324465359429576359358863096421796679143650073013424998531005965121141331381339666447227663535711065162659668392643912611247181807758659819957242476361378069922459849144387773941692381700505587378548258316569731911798949216775317091206605902517331727856713788692080824948982308003225546280992063746634855259239085651678047742893795681246549219370613381569845316280902453323131825862561131917285538845466772070603597313970601919181535388449704803444471297861106804471427742146972694426524623904712055608533227455496028405961974401075089733419317790661011350207950436698187334778425682059060922500979834551003362635450209613906836084810091213622357105375372922585219033307203588564199305963170645469391661697357337596228083983106174260517795899751573472661061166594835200811670824035207495827510303930700082340462540302100445650501960195698176214047485400773914827930403210882009255620135906726166603447534837875475534661334947138489571377554615919754051759041876442684996719570620929553177358593416117388500361400998822640938039281102489568462465614668279300843196199038953733471875702312707463027473848406018802271858652670288540707279265028924626092278527374529799273736460700417507175977611880282236493807115437978251148191337954355267144266184241745825144119831046230953792111604442037721409322016543206305135519659704112725461680285968626489046081112025491254769466487736714580580680710198164293559762009042032902840153012204740618663143734823068531594974812792798238170768034799732658907100029398510177018610508437269531402235790286010624715518186455945578689238071846984228775700704947529865638973423952831496374183638376076739220891010132213316592008368130924748946149825183605862563496131654914984391487155251767198568955517341144141940598396454868829203077392884831571435466365155802307525441100677056455219335633288146294898984394642284485549408640700864186519371312222301192348072589002537588060230788047865782451244104693246859709104157413323769336510706085713038582355745820674166288279878924126662867096237429991399398466985273761620771317332142412225365378886618949359355051680164479525712402789398662297423666082138673763883141230026982537487844031429133470093671991656083547626971372905477249306855671967181402590495865634369525779316575123479062855102574930617439145154636325135536403013645636967296892802197718278877062361055107087110696404661595886070612102716657688270620012330205025927082767156518409238002787003330619815976588027777814240675255597812358489225390080658145337563004126878994963402102237125609382187672193424700882640742507022585233806811213470834963391242696490540689965736448724042189246960867791860004327689802888994160493057392079672769110157674095553442117421143715995516746006047002996204720922436598071108947398126870741685895972580742359272514740550732334308710616079131891895450380465006368190058512435792181750001005734345653112556112736544090862412094500406675499538463758025221201210015785591360438913638654135663693601035700424557284652575243288250941446807206753405470190430961326236406635290944944346311787556100736031440371870645566987116916880895908330041064229424767840127998280292154294081476722866206186259412131067696771944492834940237116954312049937047408673452273654837357687600382330797717671277159636806219765268906067941742642970941862178390722030562821608643432054459643266492039233311648050199715011688338347941284865767422483263005337607747502455100622652052663938693024161100327206561390044495840778399691257830689059849562475355231390844649848266570133083919857075238420209201991499090532478835612564555318504586064347762446443670443844308758159734020531593521209480719475836878212661706341221286843755566448329463924939517505244256335387796485862650302398493639705811417440160497501225638305022176966721311671401914536157766269057918116018430045990162103577281401075574346750131450908284932053630000281422076078579909489686893246798774501020243251332302955676149776506696898430236544176977954919580813567337159832859482000212240568554124564472391264253855859257329184154314074762876456207983143282413077418573710389870349741841918009898919937394204199137720713825578022999223657575634592165263195002660847845018229667849381268928231122245594475878337361408388220404728653962191620662483341492097538402116754669156858367246996197195228851772402641499707150564411986132925130352578938153815661430824411708394073128140021268744672294646029193673593008471260575187190580611385743830678679011488905713228830756311218290840310460591251034339422068529031768047528469702277892082787390928967545665829363161354559709111946177191168546167542891584526197987365644114211474537508616544767545974616834689540035606553120478866251068730787665074719265575268495393210575204207050888295254498408839103145686411893991578810052052425433113275913119313864979751604855430576226045997677781313894943003117617802991773125364415679782830085439764189643206238925293257654292991408368079306902185560827862967354438285639900438625709268554410745996442542895269946599575646338306796464011456224465869571713838011917060504027048560010816390153783904632805160695484507580703173543257871961072507871285729928130261537242992085285516666508592389265175393788438611778008805220840990016218278106324770470361327307471982940023877336680995524893232181755295304580374848238797495638465089221296317111647631336131143278063766742096269309711286205819594931151139145412009878031540019720254146298142197255605782244456766736376291540270559132808756095341912130573546802179148124831298132568229895637443735927519391290138761187546175228909230307352167673606315566543466181427902532179361265065110820541228526690200802893029293804445750450433925388458271728869155785438272555730928293147372940925927338045676744673089220444724354288106616986671539881701214928519214875950728245610463490511251859134860048751553155764543477432129276247661644044996556214245734664541939168420519360986210839661483840340030240763367091640379193814370454635181941367034385922039169938044724126143637671378443439236686721181035268541947064227270057788428600858641581934221577050839070801277332260194554235974766142176422796327975047107286312729520459027807242749741645654760109858156504012604790555652783077123283156100827357878689762508100044103552765523814193194892748387785063728700574901750432627923290738220992158960352096101287971089639630149589753865232465511688941050567568496500979886806125718195754498071519287902860408948734576657325934270840173378302507826023737240152601790214899618872752986135078145706396292012107728378905885299280010328779264411945532309488626698956648168603164911884124595717238146852444807859410549981550632399563698583919546341381173415641694151967710299090424748751421384508331404097350390035625516422325412040290401601083075165220632238674612067774587086454059722768518333447579493966288195459463950793802344056105936125963461322868651051821901709726889499510759856427481243419836136788063894830986011033408933322617149305875730091102960125311955325658810940792839482664443022591557152417883055796538934536449281418945893781807288924251457759677116428372649870698520649885411200225618364474498509054037084425137391233089387729833144546913313128794961715870417318116626914542264602793138861878364910865100308810112512708293372036568143760200171768498526451375116005483127799566985488041882848749582700230286911140433073874571755114344673124086259093169329899728135544716863468215477883258495013696571447956261300653009265491167309735304170564532736837924159312326535510418179939286943287254190072940208061828777211762069076368096841021408691683387981510647716963268605695861915144163827389768436030790709375304890988686333695360554484101205741756784002475982849193693264654224958287930696502844824750864192591541579701098305431287658523382241607362002936427516369701317291486785357368953584015780255311513933018599632568266235798980289363444828783469731979980069972189191521817594752564940739593399113211426090937262601013565362496695525775139850099792141304523251183868042035708394536607292926503273140777508843282866689613964794217495130418306481564836934543740623974100318088860713932044294101287638715910108043314237450106007236771033675933008761485924610316551535396580539171802300705960717830110924718880986768756657060155052649929104227475387705378699122875339569641446019049363942987598884045067725941028593738904805946516275120385546095621677258223244880168614900397332368449228880899793624899153168117458771443728587950698077952123156513209901671394073738442132144618367950227729915760510820161619489483710311828847891173682928066143435128534779781299200666259893581824248433759935596161301637851996957477639680641587573714880895785417833354185604968289133729739114287601330731776844372280910198869362375880105211273182935840849994805244560014585536654597779613263980049580760105973604798891407760726105734120920385346848467373522655914786168614774858184430175130792827010730851911618138912432347992794720992537064356343871794788833131027262517452482589287957024909601096993221250854502606628490992885809843089737559978499133988574861215939339022224667565362613283323354785122367527796709857352699918223441213726295532824146727038156522984004981953444167046959510434778643224559531081444887578361819448279208759701496274308537354358014212724032723991358850682800882301545711349534355545930539582926538456067478366345864455121775053088212927191578230760413319088249993390649405600160435834293311421958493620626629047846488111884156531456570053040974985854280007942954091626997258295209464864620782540848129751552975501799758048250518406929796950883707897097591717821353832454292540613053050859322722383746758414428458803406738760115615436652739200656029378313790631301360618706693065010392338772989545735411255831023837819626207957363611980754562113422392475031934187421378640505896721545208586924448694429920415871727481600618635355654060790183658292066192245944633788503299668488703348490177579926434502986453181289883914917721755141751846853155622431598521545736664387075796818462782852881298776617255752578076873677448354952081989041236959403955127612234926325683579795326496380105852185431816227042978019142776303626561455983774407852713670783465341331825733735530359109080529224554944546635259020520862781518438310175366167733231181589822948640896665024188737414037979261375466962522527834145580190340677808697281629926048279189674199399756159244689564114871109305854998024982295679552058751344075270400328349139707925739335911835101235074317605491729951957002477809356335724214381375806562801432088121771454677879961962076782310038385394137680424806825284149309206950653166350569734141233413074916580750038902250174723498071836971768093143671031879480912032259657797354943663306044022760194673234520985655532145990170265287532506868581717062701924698042327516704513205643479465436217179018464176668375133964818521881097146793943841794921840549190756393391160691161654804155201215855841796478740520111138311246611834954595885868366573672300929901542827345722899187310770653284804575034455337889536408900919202223738584076445364594894081538421491125824465941609900759971297833521658974896996372224701036592889313863576668020497389978843022744581022435327587467068162035849667851629354410319537450063370857267796101395296847584048031027065437372434761052836283250168527602105691900016870595652508410407679352936080368553552632747833922134441708589156771604752954434341856200855607239545275862708562141798449150412150594015406839928000613904202942402917718214056848109442820544984179841641498527106363605181071703728792476778361090546730483849173485164975035776197162925965502536516840418127920821266705214381660466187359983743896660913872219606054626350610143600053895804674800002669373911702491616033546239932598085587344771539570248184592885234786646794086356208075723426968108493490700703596704021533437448460489937820139641952645374848651773347396376446855289326143959810892076238591475024111432887572582192984433580353512202277321825656318463285178301248164025223790623736227049079824365329157711471467660330201604916528961395101415090833199719528765379676739140212239000679280114626401301750836910361474418800594966719909014237793555806848611216306539534575843261187314368169284484708174205375898025167180712301928592327005790287431573288977659605322900653769833369101409027025144158668816379168243911525852643124465681963987239363459805344537748448915661398419752008229941269689115581901470042252789150451438849743946791138547406424474083498911524140860033334926252973374428972057749971392600272124705904027747186412096704381749800355654500955787930916431610179015814779208217541294152813881300105444941858554316471323982295519636828192231732056265480778925915304310704850741131489854846118865919511607765163683657510683755687211569698504955822202431326398501079952802454241171446236558840579232697680074594112236855145695409913793811765579422231744440154461560138941855831755706294898513468130014913080277792489890388663657632738691603624124802599092423241006196810254633199660443223284203521395055625406677626927789036863467323673389225650547223626118640319539567726596229763704678301409439613343830218244959488667415492954433689421851777264303377098001076619499046168538421220129809609752898237562117633598493416169790477600042865305825659310382503810881501072417903502852857431579794608809167822965924024523706741246669213348872392583739383885173748246202779220246191586597586228223491611722964069523057398214480290199421182447789531784076375552219182670137809449129759680151839198726242619461413339439336733190993680095597491500916163651795050547656604346455284760754686278237310057093817980652010318244002862726700655261495845994270767941507064297939534003458837085113994952206200696661059949403447055462421488522436908188124322131547058195110501560833866786370174583615050185576145946924260959779453607535760771536602517356818837312036443001917254527013744042399631859366668523910852955197627309130986465573145738411345691482555652950942808147086834235663542778735852406172002615705841351408228508160061798790855861872331014181720400885013290258450912341617051275622395177460197816556190307390944628187114226979491624361307337770825565210019784868702011913246514698651932174105893338157841262112735388124191444245655443697003495497563345934532995410080255228657505208544651136878914286066924488041671546816639917065711476775935296382551705594879196558688230865611165785257316765235430977440810242735460607729616782000626728884769682634024094286602686219507796870482088781696378056936576439736418748205417606366618087307725091924840684622038939665692010464844638629282224714888941056126069226285064906278389709707324873734117268280123969363870317123756546348799729837175930129780670338048834512636238844102982404714787553811010959083473887626478960355673439370656344362980541868585005331901880856348798188401898826259705587685838477442578503399491393794799209623114775870301429455369016446600126480791486942633261608965404276603608151867080171191741717183225351136298653382060597357051346633204323167555378360535152539654432142557564418983194435148339703843592374908455451687454900102981449824460437159378917690355535895919996254203408888906629819608217735431597217359652823964260042543184755892392007730774785801700576321379244430454581162327856409363945482574822547581245477626064784301613297320255938198485484270452847967965897567399558179308151554394158878503483625983067845338878117948028734696375594101929967860777078617143554088381044395947093024645117965493264933142789968935935372611465692035989999543677977732014920601495012270898606785042648660592113000297956785945033194929182124295577810873687517986750562862796267391889727467252402382755435676850986869676631845319025453409768154442259255580059040389046197309327041517420816074671246005569135889261895076228133045510902726108530536814032731916908501970587607618532758551245993746968077563418969696365525476223509345355509700789849449492052449919818124607291085348616808920668744320105577140859335464700379861103961986103615517347925960252357403346420268995297057663692074276801508717632276990363402341991447866994417592320623143192612635622654274416328058503957492563572339994913743862062216569796494947078199062516444136069583766013505931294152975229500566970763498934415908679943309453467737547395957596416408588171120058042607674877698640934865771755045298279659527026266911791247657173983196247822417557009027955634523485265464856475150534762012509749584764947060559523899656010945511294295699196094069344241167787096924356186060487553896257839434177507785514096392955927171376113786427709397549933084553982858913875082427640599053029201951075133267450106432623788495234726517388453697570131356193631290410625166012606486662925567333454709178159705065449410531529943053611903015693746118909958610950111958801667944137389866482648157418302483005643416161972867427835697219157501766800863065513363549317261429035003571702221651164146692972395622870352330499963623910106408852604506635326035654854789527937256453937109918505016361028996192274326081820030749602677185850273598111990285615404574391816492647850421815603091210708865254003943508650703748611644927448727462007281127798599828198708982361287601860216572836245589168612384024380405951347179593763076069061913691676622302775812320790111334801252711906115568404698526959569401657560458962368929886438797303986714911355565234283080389302698594182646142342582915857386568791885104265225897580228640307912671262172906845136025105927912875497632452003088264260095728651815031198451738662840775129187710158357587323972426885664520250887767202447750055989713922164092071541123317922038670248540200766453836238827408004535786966505851719534073955173399554869547808390391664109016014578315796159215545514263732672449696016383697758737813244088331231644725247129870438618915321239611744550827071730845770595126664590670508476092850304491350486990744257151955967808610327006910188122288071007323996777274026478331117929486945680426804653204839277539254384377398111063357908593981088143094069379448269238974491371855538343828074868217945775387258477257548832942314030095679895191147206790226075761973108643832679583861088355358608314465219891034246041995417859958787159476859850946980754772163104751233155709367296269449335923340814614662244675651950510918362552646157281803237007676777639117060189329780894629161267473070266756100165308470336797029925427385080097879234835135950769965430763161877497977637675028426506250552609583787270368232887690502580113469834696512238360306631046128625564137777071424172115698260914202708379917853515277952074911616373357349285761661893545173463761914163357510673260613366792506500727230719604541428507769275235522941252291575548252648159945014107348074884436577512228437586094883379842630205296588826206448456266058034156936663383294787268401431072783249733841681552266615857327947734675084941323164605116838486366115453420814239907073431987272101106545355724252227557911004507547567007224882305484408808318271689066258472472407933555715662926380918773779021466782410723145778481809003080725206205397223005749023420060297055955299140398823853968301524604226289506220810278625495107457937584170342975235753305784755138360536234330462931460353523301885808758870606501092334002031486727357432166060876785547196230396854168709680507500487763780659946339511418008593313812634200247743196189328331559592755733658836192749546103810039551646670237342308854994936727657920312430815943984506529001053941022561475997946544636491194240045851367886704831686823720241259105134471912316659873932444893196875610222959256488471689337745503775194646361521535781518136125230112635340891455526922135082848803812397542810458669415270262894846000218291447860627346856330901296915100763999548711255736969765872890698389258935286560182156588943886233840258561669650359769340984253144404918529985991835514551990949190410792554619009988001269065926432203589377982166642223817723759573827848168279594052355481023359361379725143290728089278485739357400246918055123695912741009174686268841588517046571397086604390838496363146064397261293153063683483937189912684601864849228936289486173524662738962807183666930639340318771567600516745417951343151358443949683786018052487710289750492503056052540611009848374056367565674390601807699881565525015362481376000809377500243548378898718068776651507231072361282836860761606276070160990163979707301481767371426565499874175351588322515946976453538319447941487405757625893681651885855822877751499250288651807237067518582473929006886483583378012560468687147470278335056466023434559879490611563930555561697506097720920408002258647556158772397118746583494594384073517195974990864785416388279039569277507427757858114418421431669875250191096878020091822291957692879635254735588666172620779655212228477834783991090574189769259115144884172086260514337755171655165391770700768876408282610227441260641924107001977477252631280372935473516731770048268248433517892249496342149809965935499296343166621148429004082681983750789774829036344768186840464064742582198400717662794789016496775758953602867559159853379348880539302548094850310733485935451192535601717440479449396328787213506702942279613625044521860341988993042991367744054508519764004195972741903784276608939379156087460848306113639541452979978669356013738380049632590285380563007478774078790323687952163490632406650828546101051464755014920450163945775971767841336168209427378955590172776216304318946690441731686548135017491260327199528974584003668114014036298101650900044334799498246029989389041587456067584834574265250195898182173236116005114715339940140221037631214589582599550764395061376611526469617713568174902148083647605756058563233069130763658080185353232649967399117581053755525458522927572343160195088225264897499550391964689713510933121100955013220834793270259411255006756208367365529475149191143241693439590633836856568160546539139682733935756356116110402699728090394536949582973846132726698214863837871070865604524609379637979640937753642263598979636656513337158383356479939794664599699149784806322562033911249645166007751604259539437569003970690521387545180840045174098522707976192806905029141798110770172375060231127090973808312635101230905040798268938600582972934001759851661621197526031158652869903050146649646253365330743000198560711834270141363630229526080949290087620618550289204119106239217157452718038096271558315779175569044014725765573271547045328505891859979343889133866567360213483436337082046297388585123435556690032787121873538483246472552050748631476717911615568003092048352121537293132360617215542827308463838186660553165094504594005778372750890582229882995245681224760238856004016736976326312159213126490367028333766372841323245152741216970659675047714268638859945986313163742807531827291422476350477151194294266933621800355260812922867526715468179807898277145318887064837667107496304867937446181508019021518863784911447706183611330740142691736079353653270877678960796251718977019137139323712705424181093200567427475127120087984669317351429988649244216382418646418053755859677791339422427530569224228462848185489105516178440208328468108815008478180498017374790328436671844113754567970756105710547179572471983290444929412109318211770964787124287159922163064703619428237301779083005760481615213760308238494613874568884467817045316146112327636806459050704533864424627017372897262316758502199667048829454342274168250098791078506282122950089348698511494683112445335462860021675201207338088129691149884017283128709663980806638194206122086833371534020599398338795570518438399897863691880353035226803738077154539201923608939633721556156667415699764463932810726513581755971495124041938774763116624033597121471772904253126999127289747791490001762319179743796007333063762303675189082650810967123041711350038923734002868730484977729744017396335723078704770405573784964825244599224191361088440657582352668328023646306936681646937601749986958975281379301166439102218662344981284881487963458056176941464884049308941038003078712728785446017253980822633414299749253298259985186917813917447552606798831996766690979995892551677187518880589286988489391779799945101779695026904718847893132725865690166012503351763002131888475502305277549026378171808911035325570398735198687625434216227962761739970378497727282539635343627142135698643422787716109662668937349509293520202062803961776338991863192925758275363587475932438611155454234796761954034227452517075676978953351027705545076492517054999259111294856099112630125489299293147799776383393029747502889889757248589848771590423241345189606236034750535494645994918973912106960145016298188500665840567562365327502684166331564136138430512487293638957484769305728017502725282997840820799666440502556700655301729265606850746485861408725433906946621068890666466416312103878713880665860921436303625622926096757051421378490841208756864022210118334809928936115776849808615338490335498035052488889575635089985473609132292966983660656883707968300836971480698708622891500576968055172646011754550168589924481684737526498657901800918203099159600403906500942482287471172593422818676812210083872038742962356787141010721044476029228006371262549476519370666828442979858441565535505687085401771498244067583675442400933305326219066842252436547472935578644122712579557966710962082993938147182772658172390481163300210503264686148182230543106572652589667392383829780910735019715757464144525114503690856072689340262906779979183739690933196440881245129741217695573971813727729928397166029740306233933223376970304090864809972868087418351289542076289126100657418385633342632837358713205253837543237320756297727208522116754204910318946705456144681479114851828882012449144669486277930234413227607076080540107134232701428348865221953568267664410104036065628328483804619112582724766730924358176690068939789077085420220672349873955032746849376732886947644410263842910928926403017605776600201836622682440309948461241561972757368186007263029951233401971071261704162393368486214715099659441965585031189310614424168841707567154184630518170489942418030372168704469681599631567445361058429766913026976906957075605008596134494624219972606745629469182187073121779533883923045688051773218757842594491546131878654070086297348973788695365304763744013710413803787246888228281411411512992106816665935562843628480975567003497892749568036152872322938587927995959277045930992600055827107435135216373381443497326106543629609750640915604442818449897997040409818632723263260799487035656333354777784096146394379773878648413436469749406824202772046468586190190337354917079006962043797668179390332569007559243333415465673116769763587971781800374383051741636746567672511828254782708296708899424353239298344839963727290612711236621708529890364269005555706268032401195760512376397862742098086934488242523805861271283868725604389293025976947884817326874565338502715200876901146625031604378170189389981765820174523631556644938355714916736785930758263353637724020052080535315532235451380487365947879704796508542061770992722290045788022393636367751753688095885823713591710240289806683743602154205408697533675517425624193431051109445460330358056078853550622265285449112163698808187785729616320627438384835806880818161573746872064370082586845839069853552122978583390454566148375532538304163537178671283708344849132468042577865186232588917981004069207136337079976404226936862773878545399356499129921761908063960908659269258376288385840270926412877959285923998949838852750810572035612524515932963272299223734032151470704390253300624547821758257166088617239797190681043982632879396859094015244837516784237740733799295333327083297398434991780884404027262567279248170334353163604070189479022103679486760321546532646067292439296843587886152653977734750073384750478760567424268126475714407844192794193017121906958391398098541659782079987208249005783701964066564024304596939002259931448768441366849044786554766498785465486784760142674476376329585725568127246825288800025322548600979391690050884327363666780393510440928609921817518815975743670311106520473588269862928060584232751252589573066768501139060038984009147448764453913884234146473465330992577468174761340412207778439474189464147362987518632309378713759579305048822618458706236104728981440334953249908464355951728083963058107323481631881574517346671540161383832696773939418072040709889351399195574955307766981570297990060835332757666973876568500055156888602107188482898935286794726190131682073379326573757957272802711279675736139913381612491180140402169972494254229931201479778348940758467638163161509498093659120243484534034159195058185084719445528912516802111974091470217072428662425718266379867926339253612948674427252736034873034785777153530773043781961480997640038324523925868412863103299618027331697873698404585555264346922440382124748852219288834136515207670228687694500084592140282036263384068234076784458429686982729765003450963349524992268226862165087541672253933051576621543004490380704815420449881003955837807606943428643790981435921232611517618410592416288657497639434824106138188188297261096885295784990742851847098386149831262331485136292044106157738150800222538655756880789056110689359065789137282816516731569684692660366997879045697340080698269161477638372527521377454519990912621534865675031734924418802780643195526326412193957282487342603671027818694141415011986296560434796389043907513701314569496149480265353445297114629050898961007497737809550765861038760102371594788089673216022893864635454865060982827457441714478500452922722707228328821221979339251834196382956082127032709270458781996018924087159661521474316936057310651277762396778437811403166387987703505086470793331477073566660383797297043512111540066216785824830258248252128466638699702130987060094994677612600543467114912817613903351363339441546254399500417287272736324796213585789478399205562706730074358393001455253862333285039218508387502846483118775131973855506445269215285279487861526917695796742253657101379735710955257256818436183535915041602763922918553457497097602616445867156651657606193778643704574675860979379381474780428198854542940455015082173737846305711879235243095445702578191685202598612116057591852809791310271245377544021993991090844155940177728425951108127580084072155311525719490204160890315311732757006720791921312529574899499288263861548448021038072249809028224350664748926128509743215685741328043623636741683967241704013251460176537374471470605021708085316338614406011284167886351678450292597219860142667925381523794436709091066124318812020671358789011913911558608417330532539035860757740660579212146758372248613329692909831056407945372600874965976306987812298412598515273781060170458700423742344440502073897107636611349788753221747640655398480090519422943572832187486958894580538685861958545345700920894864743530799899460603908454739464773894154367570956505531653752994557956218564108994575893658665430664775929797778849078207148925084784435183836037764598859973817210274669946410833176760975042882539606654803000376997879560980924796732577881986610653808818943524153855863571604796895595052726506321952111742658060631184127838381881280758261869206246468688347566658097833627383596928916016051144691186362422909032139038855852831004579372371825865657905623074701282914104715548757125193758780409576715296096182536786083849870701110878205692746468975718342412114931454683196486031789201761610875054607487708732847579407824923963953891094603224049497602578876185330304756539133361532090869272884711604288296076738551545687007021343109386874616881214584864516466985398625917208286988026074879466817525916370474331568299317624903415851221219269161671337087987774179044280072655521690339273674767909493298593086752061067217837302129088461276610588519012889072935640086959789507185592999182769144433506241979609377495996890394158140376130184295350209800347234215781677453409996689373699046274644480913756720733379779704714677162591326252962457689774292487382991916385671953191857137257158626501019857759562250373651579858968207773730238626963337918482839569827100188694590409348101604006207335622800667672144718493979452443664404510169400970782202254314309282390924279749468707185403848272691454934030299486211818606598229719491191265410526092243229022548172325043565993658581200912604256727843446371970631408841118635881378767595200693413670013369738658860902038454996638367008245969289194886684740893643873551862706921543890972686885029175996559934174831112160865123919123576893083803279113628405937537738002949588816779424115654445674530826211076105167251632044815439428379871150185419941289542184065195427861603255821702033627041444247980019455332719638734500890503028723664714703789467725658428756736024105689448968818252719536704637333020384565727489510354619553566681649844496964410517970608862310593716382245827509836759264445731419339199742148118453614544238085046135280890754183491458032113423490214141478625546369858458029723653330123382865236329627984130524442050364485820779192789308022888646144829255412640983234392659599203305280021179327530968661222826762448734508302843761590315971339254214830404392322365063239057743785783285359733445108153354237912689494312854984072510910918840205777919187649979994618384970266545783919634080615725867404013472573578479192480433212526670754275870536008497802820641630841400985344173471286600733139307143869378365486031487028521208683260417427587786875689632692312658087637707503263676309543011204088388257833800699406293088638441836739214852154918361118004287064786210044422929749105208608652729550483673623964790483584801995133606734474840176173014141018629931405045888228636942194046638322859978679349236431413153373273526921839286045031329922011972287863535091377399096924535635499666037250483953421087923702534273936900033621213321646677635242328200201212284686216320654880805725835411841924709190708189178906347319389339854004191000595493791730946746301950768170613963599581954078522792038651749138843590660237246607520339283658655409875884737958961771540149396102672387310209598701062432553919347404632443786718576063542881408301405183675899159306216436596315197975456254895654988890789921775049313748542949959620243959430703070752777804065058248267672431720680803792799421081716061391961181515643202100396340198205606430173661844313414956561316208209401668063809028906513782077993945399186195410550829919880589013848417657072250799559411569678775978858194677476184005855765528539026494812368246230337721058829973774241484531613715002217346977172555197683732760777564985749830379223421289038630142654706053936815246717555299437289127520370135081154885169984516617476163460217589563490399271582468025094193654725750835234646798886245344587221572737925680209175485974052309223311289129529907864819866695909884827573504729862954785095362863904582404908765685636359119551908687477828646582803907084140220692567327959704337614108978423182068925960702606408667737023868590935670614339749759275707054352068275672300717106983969903303833558560320735525780109400408237558533377130989181456425104282582713981432075026963175665824725275253353920277933073414398040332920431578733281615611699542845238728236527375795921366528428714983151848696648090117157820891864297156092627297417199432066443327066779095206515624412025969170206597960427612920891630007529196778459614689263161192299103864807214372632307715020195827062897492092290249095440554082702988848996558165762075743116248112760685826507551436115890760294169383940812758621851389541534296953192730241048441928015657770084353897797169576374998073858006221070936932872847829791803234756272057804059775470581203893889057988839385791685915171450933235270895994258731053357500373922775128810747034930772596254263411516393522176105125809647732157320442289103110622331999509088978399598083310503411137919761936516793651808995363958561974225666133064977506990513362492392785246966675233761357753877657055990789943996138740830560821886483529457735269692016422681054690060572574965065449652242489343875696357554276004360044115376136591637690482071337489527315185223612789435613277044756847461734756350436882940704725563294275805710601187260805261840726742887235051230525218534234666116771433919791754648955490984277915207459947332473133600620437558201614774400805202019668120715029572927457000993164103028093820704962631940789174912213593255769104611934505692289896142468190541461469058665306012821449406007944617254214316654556685819831051029614876994493629213131414149533623633186993422991217188543107456145711902109829577971307542923362508861970255370545212182946953467354856329641061813736353768056471100419802919614486836735021920099472072811348842479341382739539082243429274300549457943916506972889899288492558381437083813859128489382405837109941587649094390565915509370458680722356700538334230115635278590738838757758598505775788565240973032666370155002183084469703964834857259854036777634611160891435598389313609040507357009735570988831312794681236185277783590322647782729270686527234400199878152667495792119856170328047233903519147357495420465405726466240089469339445058843563352045434911626346754812042440717612654107866165751237546797501088600382131653216629450963016348236470069199025366482094722901180511965102037617011851636312795237173760346646825843952444182981468871063334970674494359170210566332876889304903733398592656978003580561877099073508510723166620635379666074426940446018695060160435732179921947755312928695989318307984159788194762201477697041289918496121349199973419099568687531220994178492778109055226833098736499921879953767334728898113841052684428872202366859627250633164621723417736419327066821107723645278097483781412693747027149585044003266369186194322746532430946529417234689139586624591614048622735277445897037861844081856635619384594924895951684859121253676141767334137731415994999538443757916279762572833022852460863317381176215139181960590643210227832240774937873216471267453755882792430197732295057608057573141354651684170303544170140176006046694811218157820616857874931298827963023143312116490414462154038634664125799484604261000615591389049104681982613542309005076350860953555063574195531971381524385666329114714704472812014573060833095104713774347344245036699269455784052101934411416044784847930805517395100759775475948123959140824051978630625537055318648434431225758489285249965364015710059129952568489582718695832788150545578869531854482738490342036791489808588575367350661650300687205655782822037934191264067507041743837443544129457334304304891617824799247664863525082254586268827074475714062244023840333332660862851375374676840485524769491333218970476229585315029189048033459631997329026878253076725743812035629015817009416267552967594552343143468181088345306962719204478714669282303513171682249542327986430467323515788812563783578085100556699538837129812930508641537322114996310253395681977188159015709467707612806566674431730529839045394357410531433756937901829932243851935358530831868769395050917403171775473297502275911063288294931724575431699520829617746297350938397489927744425676198381424384068618308934568213994307110050973336190362068451184046098170536488424939251681186699829336086791960373801258807646805457803839121689339357057667168300693590471324923777203516892985791293497771603933191526812225770493692738099684805893726636221548172386480121558405156257772229618832755386419305418955821630965837707363693252810275937047709976608587592161981322644321680302310929191306039176266351996369773890710458995961694242975499480874859145281530947815980166182884398294643590381902661548765481671281006026811239557693741013456298271422137227373685647387870300221870831607929699176582254926016356350962621255682148424134389063316661671943670435166513508109228272343240790088618012495846150648210857582193286983859091144602889041708302789954100641143086632667923391198150101347681859673841623688533773376590802334707153811101532215821642531093621966349479779319499602842630662079918455811183842711546213208341785131368458452651280711770813599812885871850815140176480993504441252425872095392660013280932556219004640045415489144055285328873296946031841077163127281266359739949535748846288472731647144716448392442930612813457314252692957656556508397022888166085275455141757488435938348419510862392727856864710526721964311213689757406069523926896550691428381718231707027808617481264862554949562152279386554212608768857424934491815331530306719273597700263241121814102663655346814497974053444747462226374153322366340218761026174863394951742431130674477239250079386604600651089992846114915790991562958845697919376471974485179983594886526507025275964926978746055310519339300071199544299756478659210092764862945270116087456110737829195252983041919222230264509105168616398172328444026023087266859340393967691072079780176244770005145618339136096466127019442090615063225681969381469645707358055093274690886811646690286857938516135927715822068325349750464012411669110822357830339308251087490247519184175079513373583847801363207637520368159310797872282240907285157981572549548425630193458229182202077808323134280506974372469979090248861444691567468615921997361951140316057898369023132039026294313900336677245036120198091925182096162168478939296956948906947273638075646103342115636092076458812154611522164188602778983693555159260328324529464399395900195420887409815174584720579384268688304225187424900212056780677187772997050635804285792444882850032908684559753048851216912118555604706588140826075419930499283453942924186875090721723520837877595156263810529000544854863383901065378521113419573037302839895016379303241612058227881782042793641879047433400283437895006287007762947004963372520421617220025674789443537382531541946884198649916095311516632675221649964296494501023310572258535627157344890037119742321335981609488454377071709289059268574167996987182160415482916581068632847733574391557834841776244603712905843161424242646013036258940368815878282104898859527504821732105982796418213001343545211457857930147284160272302221584118914964185080150929737652885448013599367364238601912145032938373303967800694267768647422095220333629589236491918551187838042687569358157161020686465516913472549931799396236902485945001847904464597379222488678728959927560032842868466523234383241416738015630638492958129658710023600231782710723720338397204169112777581670691445492910330905477017622298402181429363671269778584611378187319549593378972451122645432777630843046918642675732868021150799994785455788486114397578596432786961864880270917396018571525421161512669201395244387293072463826582750172681149341459143516169814273070187781748935309695954800197654777988477961489064657091659047614480029203884440002860769382319145715999210290686655846120471382461508916842408304874011471931575149439575225351576665904899659749431882734659452211035767955334157012843638253864602768617849492656553601313778566049666618903318900689444234078179204139042589080151042951250472370006346975591771381549446955914430619973922423636844125817656507289866034816401374621381213601587027950752842992333592174273522367323873569257023703125839748495122580693981792570152448800856413092290174237667342050428593861893755979546752577311852992121901959601394085774521073534583819250695929177094501036905237792484625292437578488451833450766487763091518939708574124668121625301599391898834133638838727773805396819046420152209799313196618066241306219469469305860251525410608073449380602136126401624429600127469897288253257758757205465264828015259189176269558241917074437955606927672842939874323123988222060921959026164599440158585007147757080475213704697628008933040654030388098842132598354839702085806076872956055867242780844637660488332830548722335820833184882065476703332029172361202676872494098240238043577366866402410589649074072736801513867307032224891084178071725819607033360791213483060544386782398999224595064075027134056575327892403116883814530441381244518401926322160573686041616712820145188140193074816550158633037801458904116693410995376741322739491006917526590628046552712826291134907000840606006422010839465227942095106445635720334280922878941483134347829609292591505677659646593070697637964848790572077153015085580584845371275513070457996858994815115756850194675366109289307701518245435703729395970863422555328284204231169944510168797898649650808652289275621617190691123037498992884784820319356363572325426741064242696568803609362518463826377008252392846749498284531254557200294719525672443105754654452993140877539676292518820369448141414005758158769184967675832820371089584467636319970051935456648087714484380432368898645761662041073728636653156575447189557078725897839206479162853161817697905356351716637042468973049843321806031844962678440054613588960086331542564490117154676775703232470775376148801131693935975310009471643094634379845089917014924434750149549773209174626235987790123128362888402619813542856906450703364319021773257663554324630000353571187229585946685492208575156531996239220435453586866926608146292070160428682030288509711093811689016826650725668457590246360098722148227846609774467934363404340648949045039879652217581584769725671705371954723575307907720853972021214043914590163022285734639050284329887847856901735379264419276564090359015727371553393985957406085406581589080117082118516612959238274013458461856610295065547398608476518458337793078326425574806304021085931400307819968162733530328660863012348656309723305540662107695337100471252319442831167985316638682445330319831022340988966589613178542959005886779840120595183778707084254171417661542317522613792235487163889956543146867194951701766790182765421498301081908510382431271294876681670034926268579949542333255633057866344966066259409061339002877235526530275403917474278644849428643061127056975944341438305451356140412294412847282177213973266512602686677872487494888843862777048706878647068594844842905504051956469980267565300511145112128477279838375600673349292159371200535315431324640403415185934334615820446407292471611989422894889507249091117319542098740974366176648519140352183056757037345161780544180782281339266499266107204443841503026850533983290658442637583711063345534121142080235264107075061406437800840879506167566421593404906691142464350183902148891783750412224484852405329200101192373395236176837691494933259680683378145813678158558567355414314284031049099202830894639811440059246094940527915571757888675711015432266897271261098007585264372677658804645384035391707176931441176614855745771718751894445724414074428507718892083570408880222494007190222459147880062833883794293283807548076510468674743465832270226405241966835930743619185152854745635403597657502834824776718484881447652979268574575457204658238897329849449187297463598051394068130738756294297411179945150984109959875310404238458434108456139625572857583674098691930279221836318904801911166433663610814747841139332038789841919491843892584338320273461802018181028413538650166366784368280567986382188594571941943774724166160228276403203172086466329107215283551399577165911260826143429139071816701347530062030160619288239159402410959375759572956328172746601761248804239550470619753620640680910962277376331985442227414248412590172932243303386792190234249404234023364269619169551637103401269227654335562845715432054985734426636442873022594909363343801923017374086136811218952630271984965286570952142870157263808379827335084788107453610364080451210232579410975998696852184276445722118507475013568512370335080564046407028515181247529041433583014855390624533255107376825063087215898572718876906664186143744306011826051031182326995488264256115006962439331073821533879534891658046815620004123923177338846052634984780974814638745182742466219858406767155830787314120150733572788778703985580115611965936134282674310169680741392758838250553230826219962530855582432518025218092836258096424636047212552131278856023282259953273036683194325886300790837655650712395183194248752046636035399156369674998634375483710265745863353262254969081396635113477873988541099484638546298185534558941985784336523212875320413950641918405843515301030473111018721679143906791487508394487104444825552995577173472697202094197815869634352140390929797908638833866050137970459539043519493693773576249018223614182134667932115515483438032937511145849214940770397489596182957533353904307199343720128827540165722370609934433965678902331762521094181059939397793332376149462799410870443878725686370117911799937258472763108006962241676869056213193661467312183444112636077156375387827024372244592183111395661302899559242850596679259361370967988759461732530421831852064654239698653918357867196183055779066564314789546045732981212759162705958299305015179401908443014235483258193892505823322128177378315917290754392810562624177037064194712324322199233016492351646284781134599706572497162198903519773737530047839066644310121035998601180977929139306441820772769686218693010848991394209503707378084142921451842467095396717655511121343209406618072749089888225024994053463156214311395785481595097413156495349348655169218630218297141886775916759995807257183945206224789799874260316861750987897475690792704101055069125585017704147036796450081235328063524602391108230967091695992132336476561492007491422214086683528686998414776488418811318009652605186366861377004049006388522024173495536557618795850407228628323136891135163960446992686900979230284719015592658511888989817462589334739808500671366912895532969472239620256304485873816348673537955195040866196827728776260978885561171241321482690453892081520758643591515853630499642790090637390247076395352859478260632275903122851968819026093519744751065914436380512037608404039931927548626334269284664539683716812266380302661760579959136630251629299631908239056501383372617276069262382497687011192160070953499572279814441948634944292998508667192326437713325440537586575512072290375108243986172040181985134889925541348197812541690605324812002548163521390508541142848626608804190793050668766664642342623817155678944953730767121255090571767665419821820688465368818064222336116819486430287764814366492204099459706996832733301153168249360702088475908341372756903251012939635507369675974921670739498129856669875228077460244675102438433920550951380624921855294265099340550892244942458112441431126057798342557122416221410372530030060540021962288292782605951971567292478369310323463775419530710708199172497449420974674602656621488742912702870082883708194477665217920440695436268260072575384343578488668390019752120988568689953618599389279266468326431359060599953053542142580341958404125954639721991498831590538417442398178825721184560590274989872778483683499526090160681231120335396312371945830043214007702644426673771485524459852008771033926721196830400286435993497552295459302770499668664732271341300331045915572896401340338448998054422760721767465725977245921639704378525101501367995274470841293228904519579088799351302268312027166991032940040486000563653743171857597343659196692225611559537999069446162419790017743205038200912817521866747162080469812705950393762850902244164155798352409346309012921999951440775136290089486987513118777582773173759826919956546744225412283034089795859207674446442382570679985906504290472890806730757790729888733141826312508310289298048652705184679791954102684249687883401993069025437017818327611393374476500535200517521276471626823473368787534239851039252262115164830005250295675211003811209022194335756621534552337656112065218569944445476428290498659709284097820438666899018797086262916933638325814619376515926269013120081102023750114946763285550114847593758248300578610059910804006716080756797132214334582006042921935074573897473154999007507611527655813390381524803220775638969848427926769919943039148681266830812103761057714862648038478087799635600750169415042548897641895235299105868391417482795373495689137498331379859947051831524539002204721050994782407006026332825416377242353536769185108043536600507767575617076608013516833402480329007195403292241091938644241261473815686341047028492710919961147735846797630723488164849663215559034955558402381551629285698876006017451903429727352700558068395953863547987325372782829689848925935068235865361561883693227267343498463058585318366565410695193464953778159545578432393092874726666685392178202224553859935152825375350294332343342982292884831055617948769651617651340390456997874496124136977059380084882380499636554872068801341535476592716135099729509336922759808595475719218524301332595511333891049113847914473268997670791428429021032385638938882550345177359205919923421067205483039496596826237391128057262733803691614978903916248038515343821176486219930693429861581085675567971575116661177342554360074393667164987108122386872565186697719510003118630781002781884045986389104243126046577039388604676831894434268055584573194323937304244483868640402367454600619667628492450679844421442384306458766263233889912620469311399074689687871576429453842030588496505213362475823859168560970220688660248222146397645944397764073169524488734380731514657288019868360142632968358906762340298565215345460780112548160661208286495647670182411485997843420390322598938706585443427418501343697522893123619411369030823810392924231535394088891670296829103638071659967112686024177707045496522850884871664831865198743471210964897568983242071147642344451966258501114131210408257504012416138212639454797509305023559401713437390736399742246185338560132050924780839755710098098114202798393407324845206780308908899545656073476717497971993082835626328926244603143909348004153945457955543366995126608060976672517497720965461734242822684511214004412592677418889634295923040986447501056255031114838355220759189775838288853727987529561296141705998105351452917850523102304944694488767946505573431037800430680612682367232552265793677851644852503814331438221471412579654755681434450785433753452369564983040582483802671053237275649362697429681408850549838704402048104389719518190362234525088123605586647865542803188197495899492123175602158013989689322512581077625069768455974202654135330070189249694657920798857599998849564333870166444061258587494728600107898144514557061795002690242007197836961582449763438762112503421483305147567101052046719350018918576985556247445519312228647448634358902814640824956932249362587433667833181424151200917387339556809497091378768868515259776100006894127815308951909343298926337720733990932702372722657338559540331996342414633643549761603499381323398071033731922898728787195099825635494534565145990025220154361972946137405289540948356461013815928703613028242034187354922002547013140061201105440762390227613712307474513653178649449983054608663361447714247373576979051532576317317608719232272930327633259879247674178099068382043801213628346225200817189611727073580817375934787372927633454448481105317895540748807464323867319660753550151539118638752679875316854548368776387538658569378103063096542825833511715210339006322826599338952323014452813171660621722996966898052341078628744279848798007202202870978707970963025556720825219887147032042122394847266554185629852377097979910432927891743136203774451226026480727629389267887842248962648192236766266510594168568282262099144359754361898809337895647989509622312844194923272777975949492149556040573998898797606228243295477404107855325659993896995741711648231009821646403249070914932828017101915800096953850803661220446087136214532442098539378084046376217165998042238075182729669876224049303581704536511653828729263445999963573557000580728368949529968788240811868324372573544419725483396943562743433814613763394261868062633699909305200407527680797873479622195304986929534651860276189122942796718517087067961662680923215269342403727266537083757318706816083261411052301606626207697256189187186034462789265678380798014355393393562915681199002135818336200296604112662660811527541464867683196168048770900259845502575012722029829144211594130512781718258890862356940477214528118345750194661288351693991799520057790017014158842289431580737171444111889508295577440506969233314362241376139585573786623663128752300155691216532136184695206480367618449360980964876300875021756851443487789534263041688965516140135125031430279769781779266998162040956618584541750577463195034396092969950235984122548478663383119214208208042964222339515400889886880081851423364227297118410957785321332801059468669505798650501254899711261105276431737958507147434932880793177115182414111470603201331600163732434039967619879995005240480926997528317740996375643037645316866063773619178306770934013190821820783870803075776837060744296778414378918169574747832245776701712479879441174192276536623244692099516467562561369258284381593095876826816123081471750326283778379679841391833712849931529737780716298002049831085716809502966189406531117135340200136605994571572547194556463131512460801092408069086196500441828148256378104470626366921943407495637016498054084159472242665249431515261882994769508753390997829662408353703327165749522382144010341876476772855559870736637517841070566387731700960695036629478397579811238798210011378505628039824355390848869619650620563412722313372116270051790859390128697274550196737473421210065379628087945636435713520595907698526345732043051731852598307981597164933691654826711383005205195196176872416341760306009655987087020168780348698802647114744138048411422251376947099522075330325196612522399974607965064132944375525652679113596438257240749704159245736267093930410695211656980975389785848134770299443977007016542222596344777706904914721327305221192313281861732390281272980559853256856864279061940591393969549136797319747870596952076414462602835692115243873956798817754123137939403623119706177610173654827609162683890436330665305922062978328201288792997148998919113549150147381443470306411457331767100207787496006887375682905628375214034930590250607877531873686841183961193453431540624708865318224952638451132681605080671579890571575200376881915119665634264718678183550738430329403222900500860298724183487438104559085060743900178809195170335014338313678627204806759872807428383436851864305358957442946392788102665268420852705231459195273435618376043996919337427671313839894712779481958637180724448915574712978565086813035930165187644024655554460969182208743923102241267850567480858235086521468959765300767813497839980471959032902279274807455257424370089064977231342053370125888432066553916161121731782341966240320662176977835472234343289992632798184972949340025537927301679973955919299971975797891976565114865914958516135945563762618766706493105510563573845837914911638754274334783598148692167787816385882436799051916255369624831529389267897087611351390411568609748619066597041681155122046548242720579863626036464896249970444736016078996141873999088253040482051129570794197426406546462333802128705089981842099968830354518503675876554597325498597502607008541553463081808174104550736171337047070960775534403656974705106489711540625938382125459996657012089859256168084937732659308209114730678345864702368634860985636627372165575633294066547376095829377180709382777731213982025021022824165789629565042887843823350479042446235696377377165530192749018333052230827200542536026603358123681585534314177030387412253714926374495679192661009068099818225984599319876895612804100354468973208724714450542764619043012795326627324535602192030410928946330823084111004342706850485172216586900258538472475939725157367366649425838736512744178653497609224738373466993324245367941381571265486709814335504597020710584858470373856641450178312617333325256475585267143675567093308653228397198779078067156876368635896169099214940715384915368276949137962997008013949648835027189362432486190942037588792982026569775277543638046763018090284009301908254350214244737041681405441942199367860994598746117352056266759507058141117800087012519304266887516064775067331226720674983610375750046962875268504761417500079110950951038405380514283652010958287245544825778194773653044483518646533876446550626022669200319270480042804460399915882713220751421633224099965600452763203437358457180451412969108306068385373913503240305594481409846522287239155863421683018465444030786277191671724738873375344416431250007248998729207173149535886932515275805054638656516648005541251257278813614297781228915822798321805839595652146884695381904950214939335601222028623611401026783221889520360049519432398249232870097114249581466272961601747150830553593204986857341962284479927596330988236953208432349234051557075471534149143628020182837214150700207551159808456413072447241771187593863201363432587953774224207794816230955225329189796296408816661534885332289919751276281526156813001762933186218149647705869926842126337657808846667507321209713388970239675934051060024495826457499854435429800267690952924675253310422806999823240427849841392755058391296439844582729989034936191512232946205036554434058880250659587017001218244173980308483231592508039304139254474856069887262250661094365884927835055233331454388494149068999542718757731057636214831214700945958784753256485656519045782346867415804466588430423439826169330914298907506834077693127114324448273818844599170951850516711382481380360233014376616770718637499802169583403798144149655730444281492803149495911259118288444870620496294127908353699656373905531468336259299083481462022745855012928459861655215713169652499797684004889323947229411737213919079274464017390146234019302545266317602192011207850546324278395815712035028298344510753430306492550223398781625413969609688137006076129096568292943426396972558906320116823126178951939503301637565910840712312797363909486329243755000718421618062830885288654293071938721067429382275712901451858394485460891092219147075840255711887771302171635880235080380250037111598164543830417967401227161559471157452380058108517341044429930195231533463042064291761193548005440621357427693276127816989216085420609403043572095178123466806758510135792321229749453389428423867271607601547711722459355323349306808413070573507434666616045829558775370090362222350139392862392549087842499593095253666778521873650652587031100151594803637620962572556427166836020398570681837687119570013602978062182399728728704223164737161242906383057542270787126579718082061856600963887882493721940055015625508525891337259447613346851406007031667311569942725288405139981970128864002453124362096237953224627453573728387316791308629622919026830353723904456230740379786257182950522008068149283683403406986865830708136353175803334042990005348801174843859206008825817324225227951816019960007405024664449240867575735482001324504037317135850908397210152365560510246395069681852460826269657482227625866827288673273767117856623859339227361276746535763478660570478533544102240773590178036278947897927060325155821543864645036198100624361257206738296599655000441708127273828182846354961562655395400524223755538813316429778779120911490899129881357882130419257973158128465306397924543007239129703792127253351698098184932146222426139698502520836178225268421557371978390030933222682189185587372159968227137787909679817484536951024158751157089487190827074462724984213138676072650602742388015597738362579432948927207705673287822358874258100116957570291809945423798630541042242534516552073042355275318493407344231448988610844319104280625772664302223458627810891837981725598869162689052166918639907323266867315059257736913587331359850204467290789077156398562807317529329917451984780465562146895813041857710081205167896506196515407494709294612713424827082210518171539943032221752432803181672843307170172649731415692803073258423971266615242428951384281345065585237553659798361266738695390795529087335854756275910035511131160289715041017168998159685650066115128745928881011679683580846572717318929856243147182154163935412843053465069623451245266483987969139503544606645585344101121240227681827049290527434094768492236363370265254150492923453616507445654471297101519057043623606872125590665077296162923605355675622427873831121419680135835693733298565541660441495445391046642547667216611268659564129568086563234345541248992547645409840012154541511545598139279048129397978040065788077609225661125072766429220360062004845553476795495685060187794893454057353173358004929248864648194276225102899261032227960209615411124729544182259439011157788862454839794758488776118825769715763043873162695338270653484805177750556839996872169529221872359533225839343580252295196002821391207277144692943223223714330384735615737646229810689905451340389918871184346398771739160437353059116830078051138830790046727908732815191516432731395106626387817824029865443286673659367826147003786824193940660712701291052914602037706515637470642834838081280269897034308675643590555661175312184265910646630130249409368360778372131509397524201279979553203509811150017049642084581759258794286606066902542450027563096430102005188616061129718634646617545313452059058068690047557790170493212857707920072430306257085522344317463492441657091870246673772083908171438721241978400826606068619469086420665699123334185933211621502068117521108713510175992065283226120215469309168353279370334293854735894238190192205742705307267188526231771373915813984453017560485722786475861952632424833323113510830551309218683396906398299193418055786468463021772389430771302270716249015346764549109190305675279115499531748943022681559279800431622367094836140398163830362414231467716514202085801547124368073305483835864662806389123575484316836477260796438150504921860095962435255919011429908957591633484191134023574061969919493929145865157077685007036812670175300439627356555506281784547943673204328852178836725665834777733073737639139513828907785306780680018550590112898075256470504385742245365429611972821156083162663078190591410522039394454675211795209190555778407037017669805610197993750190077552935362900457384565799141086408760476938330520886983026117879641050487026319119356483345574605694591704611763599009237391470222251692796527277616008741168056673882434981134020527625740537725724152609179884230017608538209347601645547148354723662804295581184545533679952650238826457589234028171234704974753366508538372200828656775055485950882407480039278239441767507191505681631427041789000108500351263077452065050545010996565507515925179134450530913623584250872251530199382896775113537838089832785953273358381382555955989241530640305011404619677821976570747920820676423321231389191087681878874661157751512564473810871201020804540096335628135633986708437737897953603073476649861156517785784526564083538676771369781526333943691791819252848468584459021736482273691683489157522258461167813380796625709896111892800125953635537190452064233061559669404399849325883116928529650675454428565203321620084962943706708248170203708831093947992211417362353859585527125550329856406754279112223890870963079572121016563047497696095125163249322469869452449912779833043101165123757648398775561739691249966916434361288992953343263500118719624845862376354935467042853367475185122499078063350660548401727229083950923930322529219407599395670066291817008241190584008304333367380781206892079341325977233740875073392632859272974343493170981790555548669994287755574217847672384088717197763895005715027116040861792846737794459517320902757337907012656103880981848502398421125904108880974969095096571995424891238818705012785645019860658513065839970198680422067022759739480262296134721693365218670219593120631234160015272290694637660721735490860709575628923218532612724113970115194933248061721157883716811805834959927452779452117351349393578044284228492473997307156931176808856611233666571136263747090012678655242899531066071615694376787702323535176511765873649735696711500618161757082433550631628110936975840516660637068822391647129751267785511605349921083377378019366577923696221477633394628558221424029740489098689667079823104059375717010532047323507698604159276036721932438055312210633115365301218587470506578016764039882211112408109744965096499489475026873765385725844791148898056908630848538298739881626371270507881280867857399989737431145309275307866766046840657115446765326022211506031602129371970977024006009507517260172282641959375355575559868801675568338698228546896717426747617334919123988691941128972486369335394950556971669543847697193715936341395424065749979747470645498553072179405798370610608304259960854673084432922433883310582437803712525938026359491258264448948698909056725256527968670015600321274433021033479624796817521946685608918873339696185930591905326807202148606215524325863034229092139499975762739358051051824726436211148362657708108852762872690070942346907639525351817014021606067111092932311242085481889853551104479658766679534933533303691849637760475907441127253959081865335108658693256301919927807319768716333849588321210424115576523288782737583575130387819735506250982134976756931964495763626705673998516515943860032393772704946067343212907373065434701107752562796444484046722126939176165995092612287372232090341388781386185912945742544328824965317143923993375818884474178367120489153268883374331161403386723695595899571796965828896748284275533283656906478761634190437925456935615787314014888226774733219110246357874618419989730265101728464461719609635008461132567275210597771810312492129901207161532115603227617671234740107301375795342487327759866328266771681724899723646218460753733563223594504690083833412891755426516756578751555197378377217416468119124308119941051050144605796974436745248864165193686698468800307723796540560081497160614315337406186035071398573776478316616545140879103807204014259164798954465314824211684549616736144413019097301469963244665523304716782427843039627358257085925267136727971558590612061644213057500654966310845889735280108684630333284693377219451296454069975255916696306859432170208681507890960876156489481007342484393750035550583279842935556101360269815551402229508966021471118613075247955110683666369796345893632959469563766077787727656806112297018847176654501018604567315105937484092136182442991413409665166270856271821126277425301864948391745751430424215053590873011208559735230149716956131690068712227231497639978425422983620492235532783505313059683528944750289654995495120174650573454013431182679393485589458783474356819152615596748203500584919571527217182708677382062223006416794016282005169364004054659571634454843506000749928778692725864643477739708123705483103344237074715377704085410539358985945750102423351438567443566392205380619923049856277728622804756195608036054908055331859932864060040959175880428740223907553370653063040853541968013596294625555152808473822923229745771677992199363749330596707362104429616025929204860868959816934779968520063716050148758370019372064254737734841123059363820787786260219083041682353653895271375047932892866733800607532623828594016449062069161224437614256943443753005869256025671704854637287151768985566656072224143222352523360125078777371163327467901505421602077389436590683699708604903848202678471709324178664202775155576216252303971291846617308950399739182986522924966974352680237357088437140115135120746634674180265141763864038841494603316875599112266609603975700249720965545362377719210163462049183820939786384907508427812056812646616282674161064835415689532781156048496568127208881774680709730149353931968263633255646408373175155504751749589588400383738620414100197760724421116828344317396450409088159257954420942099547349533677880430968962501212953750012313219918184541200296637837449424630749715436052246779575501854039720364431693465873910808427346501069895732992145191616909376890227091428847896250585129251774265401074566929508054189169776528739369158231819546101186267432123781470961323630368557903192851970403367255121174554293188503835336346581107534957324031156988217362000596090931583379866622625481134625360813306810155524765865529841928240029781175931941524544323625522268726779801941612451541946238816311065362171596552123582455498637432926917680633542778821779126963244605885192746841940327841098884894923227555797979204794532366897229639597082691955797885445919717751505094672693294186930348088934265024865894744601475732449515573417909750614247115170323750176668308041516413223962256464996222159042150437026966091603356000012608220461054173418201382024504952849947288670989541776252130917339434066395570549124359419541222522359346409148797053610297395244961641560737652428152324310910033654677636531271733183831892621213217982361304282557019015179125607175856019466345439156808000222941084948666817630033814508359460358520386743481379291812999307214419764772893099391016168359636013939650164430187313197497090893241764889908170897125287833558819974139095251659332011736797478722924362853775377351254583337274698202647856541623829966909517472567559647457025772271821754491010124700856612337337768688961834356889708456522761352729521198536477089856324970110364926021794831769819276563386482594921850871431797073569354588502613772723703346217903630129252969705566504593953033931860876416132236207253896817284663595369105399304144252984618167887437948728979902534808240904732323315672153705521048678399948615643174258959441645524593036774076059855322235135449386998912748161321077335632082209714635392086918028797001601239316152906344828877027563758621842645335999632498528681327052533736514712576837049289774691808661464012707829657658655629901751305838732350920616740455605822652165014387615535142263580949315851811311559718211625021091893140132388073938517263286857151734198347801632343974687616858238354967607102872062925339680830972894456372562270373092639386556635982627472291690376607224713138392553141238639060491898313118015224076441709155789434549427914209812000833656878504389073766132071582007886392566606756048983809644854479257610286275079576947623488433006719010740241453063384882685913282527499482407357409154006026803961939211044369786494634847170683978259707546030663479627815297665443220303685289863598056002053832795779809869508034364576078819910268848473128717216135794904866836347210643205144477252246762489208407422559320381030692919529423839132915948122233393590208692341752559794564174846490641339533337410974235876788033484469712032120676595633011444431928926646992425618610008339797714321735486062328778036121316431316162886536263034522930192688980955545691513556411127522697654612730986688648182991538739758232698183516765553431093534226912709881851353777753192939536528267377363617833529593232267032526033066967353382443627227185243118932323564825529174364550994298475300293545436460271445414924606453009961427310527121254125890816101491525758808886499305280339266687538270215520836809460358885433516642042592796083090310516715207075011446688793892046515341753887941625102089301768003400391929660730109641304237962346207170992250130175838400303554977374367455161520764185711041313039619514335952011313592931264964430711010816958623193847408506525894682308869877956552057590986032123901943968716834655086698408209075529823980438408111012205967851468676881354213526004367760518416586775184906250516507102637678393115674976661477232383985644144409532577802104045689440929265709628150255543358779537783160452523688958773265991646748791969087792170327125866762208096937597136042071828376625137183473155261997512469162977095822536808913750893790693627909917119293373663766841025604670959774627768688399625555871319389352551023910466109923268738593827589913553588837981976258006519906893843342218760513849933878518420594219740732061468935297603654096122624408929005246472971219809229477497993585066266849680846419580305525974595537666953535515679210842389612262041981049503934583948015081787776068918038268961101129792173391118935991507759531403117515232560178880174258060861149632419864718340549048926238581135324238323794703823219313046982647030024094788135685232167029363488935667719282654953269945524419186971728047629178199158143985115427785687763998328156530016397685020855379247434552930498293211731562202436713314631904151247595092018264521568728920472573110735574649640808091892362207668703395256138415061335208157807771119209287274397094363949341029994895904653508741643270007288429391946644064615647732837525386637081850699942199993598723130786967843156553905221764397105616195166036571526689673468371803045868933251033580674205255806658727640436644013410552011910455908944344180000104021975196155295174959280164956414263281273731401992158780440545688031607614701087119837994670630822611430163425622991745755244758395473892090226787197210499676948954272302537225510468003746251169394844891825747994681968999851337999220081759965838648978502815635361909417585197782720953271738487877470195118504797325808497469222294854860099227840322422535163840274807034125341106053973387583566919149307501049148997096582994352792506170001064354720380751934891253412850892225745478931733230408544987509775590330246900795910944548405062032852761304277832158929271553428814071531087781689507002244338693239641611870209677233455431778667569939678759439655562159150514816109677684987932951837468375293550193720761257449909921579162608834996513994786182698804547588125163811077566234469734217866261543379408853793511528775737661163817197207555492607157983490202345743193340781941382006515639445488330116273381056700934486641291985757397007295355097813466148298949090160693192913310915302622927393943573274169684978159519026833835785006008917765271763370391556978694942714802048283973352748644291884952449155330048273959336013298125441327720732512350830412225926290628133514242324845982406549528243633581576467989262072838507766759648087327079155473352055161055485099581438564230268688822471633762203983733111824388298022985322633261915024090024589241902801260034010833277628330690343526337105989483248592630904453669325015441626601110726240109029122050204013084338793181815708388196377477577283558329802639098646832764730106843183069748297170822722835955649933916773389071064633365875002026071737098487808467261104749546429870466554054213297234443891985465869909425195781619263113180286442416900703719822853556819160690192358970406641877501616389088951387827263792326782435218724044161992324943883496290080297307752737821395746225860443463063495284496708766290031249065408246718741252690923722385482784129457944817311398098555311172955686998740439919662331760271551036217562953723650292797728311121822476316835895825629608455642892494567849252048637579038870246908264084347254599419464787842256286053040083945224573001076751222574236764177954649730943874761965426458595244843525671157280234544982018982776599696540597003019744224006052345289647863760387888644494359392770842601796803353924226152628912188189405425402010938955491554286747818563666159364799276100575980130837477873641923466150828848386489593848088366887584332742107269739808784279029503455913846511104075946208754167975630495234546835443991388468689661658740988447281764215376772139094187854359863174588634635722440523856232191317036366621363102085309755462821194952397783064260254121066037807500339472696099973596000596250519535912429208374237786340350510411695885360199179241849316208334100062673375543039794119406908197642219264677707650707395963003656130444470186464797810081835210151629193165795836089208649563536088140742437920908777124723631261584018358130806696078058475660865057102628466647077675408984548670623226642836962132813026420502592501253643066653438751193061947307917763556280767305942947558794604136293226997287295426732267378956008835566708559504111189759337585173893708723434155090914653229456972089355592823584686077947331724160835726578267345113980609050570572946951503281081700355567849227426904099377480948094641495953612170983245455331771591998607719626764293458043161778041147597646281159013989946873623524867904743602132911116859812891972715348568714561684149241490747117306719569505701627082226955499925917969761272239231853845181286041789743042603633105586476500120358985397424799174659863002900332015174847540657673017075690756230589231240776610090940506276280550089861012171458151979815185722186503779514653742898597219363060712645052631676249446534598299131249444676535209140263707485884760099897166883038869436479078280400948727650668062827579171293114002622937787335792797230009558246962865379473209509368145218603587781240011397937970035397085364915382071509652890678412953217776103315984217342707957961523471017176423583279535819795004298744692726128295615748726331491538764332790431182295868446443021967510677079114192478898060233384004886222704958614745802492519690147651260731631099111448550452612626984951545072868089499827999530929371321483198113405056789372713131318881276724272930649027681944370304763996783509623270313314680839706461278341776137892435907396802760517316027467777964380951334858538448110344509475881052920761404835706820760787350279093422907021857671883553184081290516022600520326796292234034320974823034254377201523547784177452585702708904990067446573696020545260843468637770594220844524013502071202986402528410154078940203974875676799653398540357887494122611312032588343277832150030683280410398738429867276094168316460953074593832433942642181189496346077856197611879037458722513801392337042751366770014692626624161969169573750300781087284483592701475079182408894463151657995631914326476518687686883597033650846787594328419929065837530312689237265353182150104076380741572760953642175508017606403404922383254083798772382491169020045349550189581790750273942241012510871851458580325305517799697524305545717735336888268551849602726527560625607035486665715069898177370838236042682778944344781533654326645328890573570208429501589706667175201686040094115369630919381591547961185790435627965539637139392354199548110360529805986629086877877534802423351867457420263097102838093907590400921720429983138803344402371242826025890998025204151164247875902882661148619793230939638208185377637355107874494761411302001454457180433698802208803162067326269561643333848894308433355451188546222748303081760830249939126393136908081073737647110964962184774128890015994014303959363685993736304759322579948176957911141283013150783079416540857578368183554314098882105632140713009797915734289607521581418022323373499188144310756517068197313827723160131195303988538158023854136129642511974168934385425487731329622431210882252052167313647303180194909361300728675769166784475160940980141421529418307612232687771678163861152174776420921190995486146421914055462744908297063885211631733913301043503695378795603956175755244488904037759821571443705425821383578975787311584543168283145836138265889860384079209407417040675384098721628012729225596358127668070319580171772656160701081601171740665874994993853338794205361215342836304963547195562035890797619446563734919785151568313231628267673014316453753646119486175980222130559857809466106658413115183613581305626797481658510159457375914198565294857560598787578554190567355944605227957684613120958308590428468373907676123320190904058492551888999756375512959122598869049116107070451091005594581816704607684345552998185011741097247729607308172100045932597272111913773289500021070906040781883960346723794435171194971229727580127363682439805125493077889001865604548094328163024126064488123873025157650594416171195100687028169974592190314620090971739222478311137716392098352976863143470918958812851801175257979515551985559081646209568616955263565818918123569461276567421408205670611393026950923010647053355591720469726224051860325733271666734840908704956316248123194997470971797766422086841836178675846374889544954993887850589591497080296448819440552102267941623271612602168390369237249564404547874804021296005172174589848747437800821159239949295450968078147955517699633389220549802040689957711051372486049180891153057524999882551393579780302917923501420314091632963470785156798735763209442104992942181842684730492695854655405593817408330687359914610316496802264537354763542196779292238674447167478158869102832082945007675706562669105564039006476097690145774902026367436946105077396767737694613226035970296091368705102890604694163066362317271192226724139271680513942716423498397791396193193562570010385343548704680648554947269305512171424710472138533279658784458469692545742152914443865211109756227126522587556133124066522041867810501322507671288460421364248896870113963625536357311343898658807526744159408601876793971900584890718360164406541691363195631195139316619345968290787058960998942759876691471939494051856257390051209206196922264669922238319177053398246873655915389576115510513932527778814230543776812853499067658472134887947203951990162762838155310234617216980068940978095586793326917946505866702314833058304024322551707406360701399722240437212736839497477558603865268672963070057011064422390868498923238522385792193472112048023919939514631281307695842594299567121494865876493467655435007242167527143808723935084447549288739227581729820351422121083867738774989833929016249774513169279931791584012029722723693798396935110210024760981142335771610507958194951657708243118360839088699905884774519981431351671950153318416229653776282562149913328595125287218870317570121818202102906190513733940652772817910811531834080329081532852916364610111968855575109118202070388152488878575134271132255052059442444962479417064475473027061641364209156227037208721987677885869703963119152985021445431603784668405450433215921833317462965680212651609747203833201922391770664507336123966905082777329991460016920023118933736849761321408138308628767127671426843285570019341342651117422097038026939748776156879067859706610271812626763947899789114712326401016082343691703559360254680306476338153292835071144880649941077177917228971800134157878512808618014175973392468652810740279724971487860120664929116999751622752992490207338152747285901713473414529021794830010119464109320285391873682561763111670445011528596854457245742431004912808909760422726241391035817018838727156476020440220307580813663927108378427908585435864365812805605043748894751517679341403835233433197728754205215786215204194756616272213831947413147142554742294349877507660156062716063940595332402206549686477294889264220991546308235102921888603323041403296807388184606922510986731176277251930477113033661585987146993789378367334386964649942140268718694467313976350321096004044801469628681105759508977651504325631644871287084084935651549617700339490355488839184916107846730214312738917386834337350876836337295825112061321242570698667944625589613778578374698781774877696602567040734928654262256031501463712456170451581649473424570164987734351708419607211511863732354526008036431714746466543070027272472679569521222929649262362246710300817922621313429748721947233150246734456727823967177812198758725008316512590602788667420804492762355581757481045042058546611225056425471059807165599317058222894429646820229810379160742239384956730009013154501305524115286598457849346502618314427505207403550462720276879275751030380400315412766994455716135574635052406617941564594766186978041650411281065749988729638125697902779857006317455349633177007906049973969708182032204877837833734004658298424228062697577405193755292951410250459367392521755434830470756003468258754660282174217800360878134855172164652100895630208248058624417137458300939778589932025757296226326774407583975733198722060711075296563604129139871542684604914435748351895053470482786615748243284837826539437603733321663353681099263287653217561805500080065293072485290893033686262432559703635714143026592518810959647009608840936423472441988953676487327834876746029530117904580132904566792183745076197107911340885522905781512920030888651244327068414132342919818699496045948659730941610358476566352369084414646218147156493113494123480951651054428142215567099568013985235315430531032457053120389198566140703842763107044976008108238513368648200725448666588747309404244355007515527412245344940127160555817912428800428355974425208445927016919284979131898376021870764707782508185766496899838604752935263866792980424748784530469566955268081438843773165997671151403619952478438660547731686815592971416563957693762563097061987547419368908842514747878906238138525389276848326579824420134279472301059316509952156761098691727912245107898158379590042854620826053283399938256113043401904999530589290382072038127667085965788049690627108003509108443271678053480229501246279908360191404718752523414327034311723902328568424194403214827082980783787570116659947950948470914417372884798490841419880849638039539985404618750563256117275244923280778109749545890650171294745584729212460114216456328506281978443368623524820596362609348780928771908449704816571906867049402171312188029928123199162400543891024151882899591299316443829161085237767111084040260204091324133741248433852165795830790460959231851434348502483856472767236282853416642454180945554451179309520534537025295612614688733036709897534084221422592203170777787274137958483369878916424643160752609683570955540009635629932731088662412847686284758891806079444342844136799877183097708516337727349649603347832517351282054892652458461347275579865986227576904958651941596167554593785915393177635574762149961631163277959435994826308161495431806740064601851860074959991041549667798939852084198143356616503152925506630560660875956229382866434903644834812832708406101001317197130489433406562455097129313322731665079280085198233011796614733358035365356460568964047519370869978172913236141307878455440841181188741441722028076916495795720644890105189998645092069443734325360033427168243294658491637020177965619193368092535846402413789139292697615739845407137227340395946768700137425109467721216430245063327677534705989613513329809409161166711662482667683860554910574786080681862746024308386801040543137453215122639921938395268381783886511963007318355160387200993000865621261127814262559659905749169429849241063986960649075005197004445493650875077829706861176994596260826017002812401587259687138198454583831056135959265537694931745238664091276787988701190573098142247640395694726761535811073831826926950376058738781495859202539631405379275596061043846833175136911867297303587499149481226618204667905403999781877452242055899346375126118868059768452985558440556354112139595896309378024725165176457493454433720972843871185081846944819646052864356027874438331801940185064523752043347321645825519592505067996186323095374575702457295971150421057078882305238726632770572123442216958452665786639938344393679110187722806667292889197788562548159480096408781613878655277654138601197891750594196780820379893461840690376278982812643080699170661116342289941367563025197239975057318834287591250971180949525659463433419088804176976865796109842157764162922846048822883082383069298531356578798490185755957724749920164995099625628160243312839468867100790179079899058506365128437288417505839132987530103738678096383934106272270428951920713565928299785929468381610385920902764498363934368877031258507300953538284660641468401204996637344240827975109354352970042926189519321156493592348103793307324969076573658034884898402879951060644413773463199000307322190146718004588217490868671144666752940864947631803055327089114410503963119575096899330500838061865737024844892667899169477170820516140982340926420639541806367824186802048936878026142645758341246629480922979969656775431928352835650345132929843239135337618333030452173845762637303945922473227874336071969835604528291208801962605884070674985087242663667232774175439681066144738835209571465868510003993235763864242597895148776928709623075100169904165413554040423523860800649296367677941937380867418573525034256572093827292800127216697273291156183485707248570046439286311396788609161405641967683913130491316050388492013903578103143930241271319180296402492053683469993817717816546282899254021418014305044146386497990553010487269243641845252519000680777043057487101125375492025549613211802269540175049185509129767012823168732224227326521858427861438045358694286130632299888163476954363550938251299117586743774288778490609081315574742957233168017452523289592605268876107261281296229243166447969935521241410066682981257931904195722730013418322963843775432460811354197862409557110664580513591298863632619287835399844492914528318710145535094008066966239447590783311275182818845880450899197127019337652267008897933424169744500357228733369843360291692510422664460306141689961292176976031565065353256871487126449033117803954626376532628636611697394482752368436601584247819664112945092837561648923647870921304788217245009774593189150837805299336670434608105285532049028119172771837485914030057201077838728387930070795756616638235700151820036496983894240104499732362980953382302088752998125169202229806051868723750051188153049249797379006417024204676817523879189205915808989813365645428035755257216072291326479452287096996204073415746868838268286478758644567849977928136759987261800147105498855213781007013885988830804611454461794559033911827747301636654722020765286803776035710077933870022039167807441956627793032394606427800295082598150604691744285919294286120580985324079097480694287773850463154612899188443823092454567405176970307768237813179344129074210570685077791743802875117767729589588076332128842495682826388051957819230694200048345455038843807449640830674739279451445234075185336941092468062304495931823958294157180495766369628395554634528169586810386862481768051059031071854054204219709871247761993774715469982307960228250426817709585893355497979654212300960188444584950631962890070506098807053025416592929611714809854278248202411737980054635624687972421129019965819772787426049422432869126396409704061731247063111617280994472747220292705355356638858133962838077966285902082911776493485653566211002248424127683054901130575048994706960011063030438696457872025104305560049383857014716972105087899673497383753414471889568694567765743965845622726964743314033695928729132083814703697852897871341373762898327010200088348487005494855636719102145955552437781720218262571664382619169143081516027258635733088983026805054576010709091236109567600447283997605363884190536111880269448215212312558139771911303992906346188793871379656214154619118952862859233601492755218266053820372158078359317896425154300463587716370685414348054059867856425951299310158545401600128784482593164638810231583688893801726275076396955539004279699123161452935187598169821950905439616287147191454621670934494248029173821954474845108950792405834263909698623011757851106404244192443349206762555894052203806948678337849417488526585167732418754325028122988366782930861093131490811850873492809445739694233164305552474542899329692412559688496013936494124625755717530576885681574444055404993335259419588800217043334419639276621994496951027174262633040569573427496123266893307615342956950984682209512014407618073952507757575386260533097473372551281866594922654869465022794642754371926955841475195987673527470807458702280173404987918241715825665117201427271672364102967917939421209777164542648721322601823000286472396866445216986805389997100492241694691645350721452764158917184662720211082962770222501259077483435634343709478731890722775095759339025831699244859395801685904363485437389201410425470920641915105263863818066445024898344336285218149660923207098440698064010342379344659277714544441619907136571951976965970395940063692801884292305277569844849346057760904805887005187205937993105282012427680839239625451652795718156791596857698873401785306429138975314737224754105977829922213141020894740421039658923199208879323296791426916928840129677340993461822436463603277789698392018199341418647274457008360269573412819829453121118195440044775419742333242112453385299025556395765318889832900878109367211181105508819002968828276879077587377508434887064302846367557125509829573723004623265256601980849939610074613473491191337760631056861507469522346869557588027532853886928171988225957987216014570483910608858632252820339578506110161253357288319671408654547812807170018176101550444342334968348423687439810855474087344502618888545839772637786460064555507617497470384874795752104472339680291186390992438627854440630544316338887428420790123432587119958889831232764636553853769112697612893581454652947890819156096251081161204447706181908264434527757276583341382561209664714897959342004377662771973824339175619629451459904936318982158020893901303915749646229754527091053586157530311894525270104534763436611963813565657911920350756267147048912812425513837495426787607215164601804421901085851674773456151309000038251129067337299228258391283324192830128615017330714184505933835724789081095718057813931414254384716442305346373664560087352685521635242709346332833228406001801317174338117729649944761332969827835723625504669885061866989747134089309700366747821736620802725341323344699929362644699874356361587396420291009371936691440061241586031646804423286803030266820321322122740269426243878550202664560221951994391140024132712711128550784793346330001568606289087278985924316836327917188190325927936144106548743350887882462785897690901036575497326017873710283723812221897473741870791186007565223184337425677903570856192300815359389759995702335078192320644659265026915971254776779782963544167803986056768900543438856524426718878878967700198045443750111550654287140393739075778661876351086150942629774658938176843935149011895967758675086212303656293110544000871354141581488461900754095205393179630900005793460779769948371813202913304499393483307549132654738382895502772294663836303120120355989160249198881396372300949843100818254191424484359556888570470287047546166348800730567489797490116183773233084263960108072447493152056674326904211864476172375853895272085576455533506294552990817716568107839551736583101901002742927283367044917824450844205574098371671580350106811853471990531284343593121615192310347041613835135016303497305441247740999336267456436260390888933709744188888384414740434604495557616193522309516133049599371633097293576306201974620934650899186613970059420489888235913938439064682931185527322785660941837528682007086599236104051417383950549910779320844928366511461333671776897984762024992194800133646136006885906336231666144061866373054948561623961015479200278984534374278790111430022856480215583324435327552627028449200478507403896170817458154244522759360704914810442555499079034580580954672203557712656481042242729010887242423378307318259878572414074891684420523732615555672853744318073986057890359118718155693847185969169260860879841068229176337296385015330519786090004668749755488218581659594969217830884374546723740418106332271259548092638846278209886811971275532455716502138864953826058098456018109642503007444766506752363599200613251277100784273092105918601030948007048415471297589896836429397865953710939110920683095128855845562591883649355961468396449125623445175161377454225043199745734543471015150308431276498799658695642412315584803601325989671773854104948613726194656209066367634756857606741348465276532866292195322581672775122441921784272225478591461769775666437910458979770104839310095766434141729193667238076284474221324169302700023189594435302952848404065688160434532338803347388204000872231230903366417352186557458829071455553758141495657362272135022528054827000906351893213540905651406428779440642415240714674218156510285961930668416211944633636601617478710531497635862590441596333049068525925905368201824885379230933860891712393183671118135321621126030398961309766092726303678387983319471256881514919935135872434584380588376108697833819017952300296007873697236412005815393707921173607684091971827655876652066406863609077226269131139369475381644988698454479672503778380216469112388714348581963306565147144255866136257875977910191929304310669290234726451035390040244937054005732761908129717998284052469234973842520335774380327166427756011373215158245431390290097037275937963593426579399291076335282241749028231052590958492500770737055323767287791402773554281565213178953612493786597039193269087586727855239010226801315256700023622852064054777233088726640669606574692155002375473954504856661045878245336593978326337960028393040958546302161565589445082806783675744194932640897849374455741749719776135548420522918693765204609970023074974212233859040075576905087911534842171063648758523957855945210652622893001457019642040811610579143432636801537229852158842009577323082868422123885687546436797001493389597941228357390579635754552751618833350019921714145610489973058061251094214841768215331770263737227204331605354131189061168218421753723812225041001423567179695736858486646327941748976308141524322352850172726228906790692845255210387009574512612060023127374795385237838126238853682635138808263210636801052972289985492594952226479212372683716576985758013096325844631691221450019914272266074025782708771529486176780871804155449339561733469010490832814320040924824072509913759170118827685392188779366659567196095882616589216869955336420922613123186365875120673129405096224245180284172438794757675564088970992449417598281116348180708811516858590351812603912013519875119056072396495837010138079791369577336255065791921760895682383020523252119002971346317174739276996422130819506345611633393157064508637783227281918663653536072356609758063344979528083806003976888086994911658321830628416286914621020456954110702331279994939411684983640734645410085844990554979485312173743748837508573746590919190141669645992388266175721841964093476511988550262287653722339338061527408212349565097808696064539333238964535001784010357127428517855165346412708311651622224328204111528801648388933878052077184330618678306035344175992677463345803816684172342876443512515179033007949829636899800926296871595992916958762711302055770235523145766488282725963760183932945112285484294686522273985223471441820518027025300127497952796123066072407860418316618304409710276362783802695620488448104229820303327955914127177960221286430063598292919746120410988088776231355197313101633305640075332354416135127760044614272116045971140565674588707342323988356402895427964445468698402420358141308490905046324219456047641491390767240195938175075713070874536769586946602947788469282469165649535452081128598877632083730432802189898215817428345041132368855192974715521397486060980237845379483614575919973251876603635548937342435551316253742160484982538476814490881638205302873497831585575027566272817182638631174312482398399866418420062292398429744046758802709079473523632596885669989040806010671679082524388332081740538368524331217408975465833555010611745896020314842561092066605986880379947129044184918579031358818816244799338060653815404068105798149673044730922679632672264501025439912392389899018265102121659815582427979845357451240538465041512463541798677195014942987725308988549437107021799897593214034108826650190314182322287192992827394206283498533241747088814307077163301851032929417467080288878346313439686873624488278580649997100338209160068822518244643906630030405859118188345223753698838445501842087150464988413236901305846798474890194165468794685506623091192925852200877834367973694131720155102610933691180926166998558014480987084673518414006823449911780524776922811435096121817725306073026470549020236577134232956751562595282065288832164430501998620828276100296750467594476189781865228822578587977193495716096782917168580387963822359606284490510151167490363303137397822985978627454099737043339625723897187607321366573950922537829523830151191079331517248567084340624470455075441934776009720754905996585807526164276046825526665835465081669258434864413032524717323743674984792387720016174323911247826912682440490665813006574375029426506137106923020812100608529415728541057552317786450569893726239842813024975647966958696321001538823988140139088245013469925087919296561562375222333030142969107481898370594258968286040355379673175408767590926175283007375713253307769750133249945316199233675704377581924924455221430915479012013463745509594253144717452303870023477737679953892038456586592618696144052942992975501988818993374560652381182967268882340293592339497475335238147908168711273128259080107711782045560044355844627634944458448289028923000640590382946060320340853027603890618026855393467551758491873499624967381906392571648468198272917530858631329966183554149185693054564345114732035896086309691120058314484266948660295738293952745864946378074980939766656502198834387671639738311682113214493468935231608392645195750363862027632511195575282030403459839549705400539484793864435825279859945747449436018354160540204616192238845006481675275569937321550437620300995947842802190764861318964524603339730116932212891267600311331705295943550779992716544908672758079029795523650338365214780760002205438928336639687159087997983595143392666962069620993865568190468566295624900079006672263888327477655690967910578414535870584407095308241851653794299029994421072556436695180706023460091378331043416297533512691360830094506835689659616276124592806572323019643333053677229142955158113375074322763426212710330893210486363347829566411599212485426417640124974191374078119277216001164980859792779286573511871917617580465417414115999099618046561721574446306608364964254984301057017407373869750302446717996139845946549904468667393637360406627671350586209283498311671614960191784801967417141019594550737600329141347106928344326399391774207862010928263621734694851332608781789664303013934442267815968787250347727072934030279348078529363698429029684889676572145820564805006654100969230058245825290996708759422876386660137573300471725083978774255294804777030626435920450876774136413954552895538423121296271715083665536566674418496168199351568057328339972040046761488860305363581596576168577826054598938457454794770155330188702541465462721764045436961082301948789510437166935332285987893433640314986359826521325536002555487203551731051599534197758815074718770069706844495738160208036483265003018599960387792495101795841019062208303450500160737050289004191652252767279358639270016236347729748299296095175944430110534581962853743645273668226479322743348060558157920543613167876802021946362694731462933332462449895025728401876646199400966842933070321731411906569085879372915333563012677903197176334902033411630907940988800482389713463812166116893235464287982718444392619351555912534295455557471929500019838092225800314717115800572080013898637788040125083220602209701080989750248305786431581758428155616038658716486011822133147672156462585278041986389769405059859740356990316344734861753150771678307417355667495859546743380328168640749406453632557233369057164572626369455310253769433491399911642644893697717694231319553846020132629371219557490187452802351265383039886609305558252316383764049629975891582641428004460848722660606075933531086234486013709625338340864545548226629444429203077948066955093840157743515483366774116568041767011053962523764358426572576534913318413004908163896656719273962469793180891155829819549679164433949161423796459944033445831528303279717468483279450712598220111991614996230802749250314982914094364093371507475817184790905763364592011187381990074628151024794637985166858659749702737513492772554176734384405864194739766880048642233941953533513494944255086322513181937291651242501326590252538582352328216512635198982849697777245872572797826398998462905997659792822414756789207382710999771313843154227981281623191183979204198637171609772232867659384887155969943387102087413871431261389993213257837314093730968015992174397411788341672106387798547822051131816421256533153188097539781494067879306513204660640124536146392007934907607288931581139620756499329799148413543912094293959037600185199120757439929577062646873805108951164603684891119239898974987451373587168576914819821309400192427574062610099620121925773933366012410885221543906179435433854305659208405719318000268825797571105618117643179084397647690984672329704083951416570302154051970172783710817705153347001311691497601355220526608465581461234473952197000826094000031575862631131940155931877846398912911841016928267484731957499373414752050960407638987939874918526092815373104874382139846282083815793790744148496341406509675840330172746575274907224613590597580353016653291863135236106491820887671843375185750700795275109150105611326660559708661210427385500178104416598222155039160927752835433804312148371831644082747111542728027241858675693717137087968281786729004282136907329448062951232078290742907160476812531936279388541288943373855412167354493449001203262904209518980572020594083089114419387586805845086551307611611560828172308921090479519887618735778445068212674827964799568860778519653433201010802278193268225577898917585898739014365451312725000638606519828618145772536156132067723491228395579580809329859829059352612816703083365783962701083617944576866394878741524144238924310978828017260595603879658870045519399802687327770086500321185092829577490208569598379026045484766989548690953221024241477715426088075819692612351534441652491950024205408379060696016154767720012565043346983008871818691117810939526261530016988158923135280641052174292691461803566650198115626024942912564806128096835709498436144843982369496842650911518758925384977645557604834528304707725398128706977293576092147290706338868567852905495220728937388998857209338712620310012120630580723875846475481898795328513827398611813791088795297871628611931096626877347926242615496502951415791661638850888175554508073645646071705254608864764004210442810065832714924919171188613019329047247017029915478466362494163781000398747275647771274475373486361832967700842728177067308386629678912809562073288729797911387763161181859343785322116962444263824447883754901032053071122225083349098806875789480373485933506060756570259993176619535951259118445169880249053997891649468454419206422542957991850677412283308952794574169417206639402228831303059905177661042537813386518504930810693056406326018339314942344212557215116918768761185354863460974264094259030242110598179180371740240149794958325890725715424222885197623858672285021752354998457934876014300958283910464713163694769977766813533752333944801206435810742711610754441766633581932410515242057772581397999522958865210514488823206970850814640131385848700304153803909415378098298844377604663380567056499505834866459298243050502130177695469735168675190467221817223167262722695082339484165160682264260442164117325325032916543858449493782020324917149288249459159033924004362551093946311262879011738920648772804696244403181136905165687237116309909159435691850577824453755988315032692536664504437604358866702084543260593216746159205667450314566355862490329622719175867082030955244167995035321876723698831275413439460944105836870202844472520776097342333045478219666007166557695450480089827057780009004468189413913547088029207846738508626254102264981386750733080245349036980053881106846676610479349860813498206000631763245949939801720529528638551770566103705663016667748190701646053918238271613183920143909277783478757276632324671317870999246319564454249937041019032084166017001735910136484626827425132276400836412366870099714756136333456617028328116756983872130730094373643590567036777245362269313043443784680689581187705386632403172287545247670259857154966575622159530364763372438030064550440904588345701366735881407422349688243997800318774975428722093720364877023981806764009666369567098491581115707555001181090813157948629934464747745237168735644149106452067411595873784950666652076313102384455300258562808987724411436568780586335245481615312743614230803685678171679725970293643680251340401829676773291941423057048330131793050706498442266085560164220488577309264320821136163489216154944674348765260771588652544816161854434582143839033289982828028758739838058024571860508576783333003423533120030404841749263378134313262931639675705903535482897943895131953396242154578837862398198197623386461628127484257858460439170504702128585284246319476091606235568864473118784233762398846094836663024115977021016371344839663356976806183742956739266032904962258995167663548015384907015775640575806518773904075620095227489421525290787742328363183494535173001877889171567426438532745013976510886029413160891275894338512570218055906118281843024689838426797599961783847496180959665943680585492031625740222084479080959893733511524020106036148522146849514917289727393223818250042495612954343095755506597441744178424131393615380025641200464220550986989476759501337854903892085102329521662525950647454910812026703833230035433974785022740863051116936905483823617706996563067700478550216089610433101448840844193219210058968670422561983782404377672174383112534332649310131986015504757947810481122687542696742425276312015793143638537744579631369040083403582031563110916475070670926612434403716216614159551611538392039674022834301702330565304376349165956202313351421925494816961679985174267606475323532562900665483037147121186758499267226408830273840371506571793979276357194428420454612946780963593554668181803419549035424700355125656554563316283055513680186911409936047507701034152382947212115012114802523473309760843236815812359071419470288586550139767798318427917901563331600662415336044386026851539531895076620183128808927924485312861526523517879429926063014472037588030911717928131655082993819993909034115664505632572865049568693909588852791144510632392021909726689892683848525548970730338126193866767146684464799010156428255975426371914327847286994240837927822933666832843840345969810662696060284267229942484771707473483750915405679118441158622545892093619564066690601605322057070540248408484809928923643488826251834231861497650548270659129711689400590564968286080881881330759680098536200883436435499930176902414797327610776920844767462738744154673777604605093378426680246661215366666802768394570875839786527626984787749562721687052762310917501596132019710692227918744412424943069249977478582925490340182236449610409718586073510187126082736400222723133480712416279027747351199303298719065765738244875300958329159219605463033900995118809243067064528498496793382219090234373077058801252552172875203366769990559295538124206400824835144463674091994400242598355352377265290589642996694370442606848840644269714822832264593184704783495346493353030730008915919180293040064738274941136657591817607087418950490300967477089792807607564523406701760311129429943711575739629098161111723529328145122584458533057894519200450337780626244646754734299048265147441111747156341031199206012453245593953476191860260825605932040351254048697036224991392033333372066591850433085440897697196273339217024311414148820537850214538187899782707935736613363513439727891856524017279275506665790385498945109680190731312517227929112388590350459182510705791911420190667382142006093611715974279603330408097969132111913065097859590976409042425273110813410651971464918978874402035624934356001242941697247676323680855040306354898544910106611428381261236604611418657426390481767544025713269849848986160054297261679952487672006837413194514300780306767237831432380242146936547233147524828741286814428906172562543318086099152916145736745970664281565664223596843751441909697332362944867855393278198466307234594114868201040638355220651467983937703113230249109825356130253125809280657141837477533019051819832230282090751511242695740187056158584634343809492489065069357982542008422144121139689761186061120118132073484285627451307507129549155755182468636848559736774320082865630461640114894192611032561981702116452892538973876750149086708775057908123557958143478633093744364280361748270975390919579922277303475660967658965877721258669710040870737918918509679245186701394914832190152891338248138071250433951393369911701305635604532796700788602861431144865162623478870274146829446956222869824580784838778015456162955374167165140927829815113468214730650991180718412727663411763440669864670007429819784858913435806175868556066749593908485289795629307276672979721676276740297183295519126508696141310257922653833287941856067157711545299943002956352045190896902217001416065945753520404607433047408531199095670228207240055709007450798903844663981939493891343680762114859139504571367923980914865261012891961778267771857628196524479882386180560561049630705878501245388266779296204103969365369687410055330401192039424301645890638988215043916366684583059274356336514363628769707473577477157203318761441330347053751198917720886773141386280686879407559141408349073550330408297341342044216310882910397220984686756801817195292589280226137443649874623097408875007039224067903465541261349631642347700392097096056173569295954858629229352789682144725468021567032587877940138126961378584658421826219986131348041996962254700892125659552035704635334905268886856711811888829303152618133818227653545379167766238689153765546136238186912535139820458287210339364662056628309129260808129414113613658781174810604293622612998778193954616033016083082147044705493006301866057926653981535148270684300751196069943733261193660408957951703306351032824008519857077858493469352710102715360625718341292226651331184448830255118025356036859256273191807737895542709944895757836246253929243827791015203563555659835199379811494747986960820520354383524964879626514033208964390428299238832172323707018378899980326309133666701084945818669253004082082719995101536244862192552316364992685167397886638752043626763464250444215951200292119520661028278795609837786685979033611116689523971045046842873773770456587539239039658017228471035553320196003345944222498459316851060571840959822375877469015468078868166905408154570828708009739259965510940967289210694979647997705085493446010619100334337693604703647714134799142623574204262528468659327340186674772036011240422380696570800406690130256059407613612989464415518535965780480121098838336841631526241491350266705384578813104060796962220437185622921128568073340905487087255493967624736325392689696231806065512765327422583563264019622920741608925014847255667900669434415325683449630055958132988937090201505836438533357047347141851879683827646511584447403736515476835252453334942531248441451953964892757021650113364674256232223506592577789781952333694717452059547053691066871442175546775771521494681024202439613893389385663936086482536921578395744313519492226358323115779202238688988685946523170237046464058873774298519872854816893329154362419253501836019812302675489657507446703786013909916979662058091189330614534298649609535679266826427517748653415670836310792984724140254514460964028666604765763023878553713573693778413029707585459199340862031229293490820854032457813590293420000202811827298531978037257599061888146460971352959099056979245087556217967930385048492727055580574361099026109235710592693965871710264734680997368033749384243901884818477908967007226604692367404056118087684537399517057663476784687369635051631562899963335084713700084215490830404467218815451144733859496627255192028843402873477038987162744403111092607532041644201594505602126360475004793010210621210327734012582428965692740843407749864998943203403321415359789921744495773998558989353814370322433383405572463901616253498120163851923334671626664032517601277713995225366807649827135448440177937710583704017999978930816789057863276537391071461466392103393915635315421538140373274009928514496430545045904975423487086638006352858404766340515018894469138958681537964683694671792284958062870087969469307074496839852357199921119985434197968442367808213425304906090426596155234693542600627579810605389801852626541672079926593554763587370166427023608678089622524190299758856831995575064506146563564281254322728971577209436891767941011956531667218086332475474447223539994489463684617907788450245521017626465459835534185867927637121147696907584299172593184871931982893354354749417640616140874446716906694256283089951889278454968051789360935858445627156046709372593759321373245175393254961232229713615108630380084390289589838507159699192525219760136071299861055092155211520965092993785110860194887332339601421273174906717928343442998350126755791285775746468388947863301281325924101359091286677027260449598598897887980621020219019447230131834950932892209902555181670970796546295064299097957656453155575752457303409979162447892688067024964829992537840694635089446585103669805800627141775751978864958684906834277282060092881730179720293318408921856888926410254989657113144385215823912456095647290275073258461049217229249442797386441252895388171485920333994457540829409304950237501115010955290615016773504903350493069545348735222238250687204127825321193428757939344210345964767767484725462609120522757638195769859263184120475722531115680898381423814992247773048164854513670630089796651595167850732235829190314233479546254101326038275710564447747052205424078709717099612737267710928271270062226139260102841658701715541028816639861773497855507357355099073629297725622754726880964593251337686045572758370362575961898206481902230400270214329855624306082392961590801164666749630947249689488164981907146271128265275617719542913338580831713573272651246873375598264075043051922802053131509667322195315699364657979403895930417648101215753174541384506429428259529894102302474110618452613207824787639105102771257719020103884719616902072263505648371645520970576047573364492217531512559948773978339337546075537129716332551259412665277285277492949337938127752607114401975842527246889835543633186076624581436464361371488335530027203811339218120628149783021175536306270400817722623943047710296287187618788325147648918003682292815956955114550843987528138138572971938724463832846387218870583203744428539482570942249446719814363905522770773019336986465730444874063731502178008528450455915023082637954323530199595469342399501383067832042342732472676045656519624671183736953268513021370985719329408039259439174763116780918195415504540828095522037748146520216686154164756572906781336438511322133662680657870881730485455211933196625209003936032513176009074241821688841786063638341489729371004327098535593420335665813156777078019345689111862289049177780112285573249128304595026501783649370559646282732022073474144267104023828328259756221436636482479570349275794875036746705634529540742321396919806327132321570341158021466365237701548193062835568931751333719581139160648730294453766607821111502458987019583654383284557022239410108789743549168264716502439532289050327347859288754410412170455403709100093517501727294151271917410096775444597425977383256979348283901837519779821457891355589443922110979092196910131877646781257543604543535255688876112552078043984784913190964735394056958864098121060648295999252864949285734476213358808855144106243017895431778736910182527506051000306337438473837526093653007490940218891664693979508672656589907791928143024946529371789692751334832925295475420356669686619503853943328922577475441372554232051662505156486674849048550192482063507792862715893627756569902420393394589569497910458686668668444743876399530450545844057919357020414007855276238477258207567081366495159905446872846472888422695704641947363228901135698283004074649688849204690291187310494919438512507110198733756752580372895950290739502437388434422300867335467461472141706384279261974291753837242707352712753368075696547499180024491047703551975865059958125855241986948028238564727236328722554758375323881402284912967405823349270662966360640510179453529415261206697784414633194047326592448845977793403192966560279482439236625161516831614484467246200922378033725109743559077711865772913221701495072047029393114535611060595532835003967740291512839569757631056789681209014789521992937911318466828594007422871512379319950202442762194923117704745857153444563552507647495078463184362843669200619419806091366472165095776857011609083045436493693162551516734102251034576731534051630418157681138588176622187035998346765801657322281308085877795935644138459027618469561081778314550590470875028173646266104652054310498014829491306522581805979356173544755068244581439448933395962387139469683752072907885091420743170378626937705893791291779792097333139065182086825822842649025444174093715303527803799233410587418855782127241811399767687017709966893223470223544545967092618030832662396355224649948352390031265994390533603979450729054576139960328254261075758185197940201885163707783743395517447555184320571778664626824386898835708378227930242574894987256354820688895391684425072809987686507755407006968898899378052695234571296348869963929921786205323532270277952532348900161461234323201601806019164884483609011089806244184549052866085134589262464602411626164532765176562977546198127863900683284977920895407455187303809512684598176280977055343670741118873627814309077355404296309340981924264867260607621000418765776599254792482876157301013827275007638758461124170542857964291175084840360369648413122834893999989439282742218677666835020672210337324008126324295190439679913597524484310617952381813089418122223515619021632041862164317745226891160368990700520076629206352656566164733352606159953204198689670004642167538291900051508113763274225951916122906232650040277652753884349607190926032223048685401303425607231081117303628742843855718507994066514264409580287013919889143681052439676439808191496085190112255751341095542728930084808827401613001280332555840975661162260658530953762476534195240047582215961690326557970593601343767837934686704144516606129644948554668968248310780555116871069648895836597856748990917005184885081868635587025567253377539483467607333003076608529903699133663172576850490615341957912073572787037432359593513589686951311401969954815178396506432290105514913143084787175015170107573929932549286781367476663972739675234291983565985422510082354392247222457195323120474886430418191641694537123795456332125378467244777548056572483023302169488683776014382111698516743180376115020388084226793397386764679007912286401393602158467843895445917144407882211393802778909987277613230540335898933787023104941565895382657496553455241380225769214769469176664304626552237963119386395127802278778306110793281329186305745115093942967757239149168514364678976617293051811837084034824182977496840971615800515126088086238217672854230833627664726708288669225573773927698336277080693036330652803570915191885911436795180603114050892411550865858902226624935214173484158947255672509178274942122357168787894698475426301241259292767624248800181510197685381584269033128760721203097718501038930525811949837494976241013525319276441775582748595545251502629613085818609719893415665556967012870663809207657209883957901143113587017146003599430724616979109100617959895190497259369908423237194176959733219153245855953517453137995418788813400389688121386222489011240927622040124931320900397939852883907733354755034050899761514758714529895700720894789965646358490041527365486756302069549950383210421968949055095913858111242614398282051918741402974837851192226914003688646515800505317867615740279109764061658265957819469092746165740307407318177944860918685159661882411406213773223867873261062756431341322710203336489906377676459231800100909436751379207182560219602699343556130062618966370690171499946667360273331872476549451159683506644065881969580806064934614453561672239102125199511300464960389283658659061331299521558026480434277261679705627118016189489159499671047321944159376868895652148843468512320061903038436809718790797721664775929643269026965151678870694564848393761997606006329710830750469436998693958128932967263982686427919971481065705622775864039163307857285396321059767963782637935761095752346677593891191489591624494134072848808350449897647458122212230970045977993636820896616494674857210877097030632654894057666058052968379760292520277513989958436435748945293692737046446086337299664134547415194669877119618801520995880747224896285362760883918521980887988611964094437154316153345141913596014433257119692554077905033334432759027084793114251067269644399821650855424348743784113890484856815270780052001591526881556281103035944077854827886764051373833583435667236021868868139545511482349175040307641345241464466593621210463294943210845312154242621289059864498035506756392694993408649187995287908824045014875161563548520676584666565597735010773864333460596174113981934887426006574740550777573310547981614315948327852117862664252924004696039283070018618274417900220674185616317035264108802225496283612247120272630741981352095822871408326571893033740047275793566446718001288421646368973680320373281066419564914189945583284163747052052514430575764154170491299387400746020607750720090299689541198346680267431079364662183966871747417369556057670151376803657563459982152663302094663592471553234243020557940396722496525701837204099804923783484267192540656594917326574412045843909101460399704202912581211479145512791785527668262328155157159163472326374043451571311738518600642756169681039743329414688138508095555611919740159944761155065718241983500920853292535646782679671395578081062408689615118364384559086601009601978998954490390799372219725292693945723942465612620782040045719174830359347475115730416913414029826155785809144877480704261139326623744500349299545451660079628185998706392636764947541929944028308711201321139335247644352751078518410704369458348116510056435838076623254028156917768303838432367516317251790885117497582498577253558945534934818298011483128096510098189627448845219526708879368539534276170579392163531244430512879148328898693151750043053887332110732127057690111795905392786200308657122004525413169178243665196446454003334040524074958624522480109980822432522823198150500560163673497239977272179110957774084446714061409692161986290871411567800957862123893270902189706574249568768786596244206164099365846614843416732713276198791306013396811097643867053521075459604830513542952522718443591498152834612876891241034603802751526057483700494958840499920947911786485930534402642620936041050967575465733760503926779768033147571988917782634280006433327300926262704087215722278627250556282690056588185927055006980530266523247399807435454790442568537512163199956523068497816589333962724949643390300233242645921347490845775361576219022354630521031019367028877669402442528776652957375835535520541501947933750866657516590414466085683316300336004353312048162088700932774200744197515932639159962712769525649566636808034580217371144374872286152262552038837461495004250948838256208223320025125108580741509936049176325758328099173998026031704854452876033918257536163270099392642477617472114526396646070551777829826220325270583696680428759399777343559719190274106068430618763247192047162832980867429495701900786295707580208870109063903627855399792334451266922983893664124933779875573578451727472017339136278551781121546313248393064078148462374428799593553564362569763191581477506769992978420550950474083513715814917954650344708334001295037906681112021595918864577435830228440184286039933825983328899854958373551168048106654846160123216857148647977016558588901175696080411939879126203978339185692701320633395932929007644414725877047990593731645937937607738428870882007908218651376258533259434958331507737539208395848087603794294048957942889208749935234194053152733765232017051152645745801477294331327059247552618615999285004373629906917471730711774919591229359122110586542604425165087051558611002435345337517757760353027097392642045367470526184776859175183936678383731605204524370839737526999918679621321648657627490690083076086960594913713882513438058544475731213843284921953686370356205627909796479057988722154974967865908861871622968025484498995777624225182195304623105145751029014517909700852585864731685234306544483209417855270999218121641539876170693599234322627110123372595886370540041525433360346427722659437697289639864364221291964761065677645448619667376055048718727298019096154835397318552070431093135744895319479858917291669474631411660928585489527142049316956435014610086357681073479973739861886775964971816038004196346845023916641185149248258745857432456949844183371501290410475134072126057139644020844002344704597420756056813760413176069185672284844502621697083953735780113391575412039567962836016811336593226378128719009582934591551565433781500878250343227096542313389177140588110960047629098887578158292911006668033351560011725689907506996932538416658776991493461170568301371100066488344155702478858804081216382698675541404329600847677293142826923886251487325974573551199718039868815828253035356395858614037433238003481394165665063275265008177496188593434796008681607743173795002343365503873324929026267193267466070489205271225726220636488029983275017836678129330272004371000985046229621691091248622451452592572191268810378978561533120830620139240036674535227257249120407736675902748311196223257668082135153968156075120248024525941308185084583816580141875546114253477732934101922355113677460988450429425757588248864306722543844765762109181052017047922932571355483977381068556008159879417704805231142814706249846307936286819828988351448810714394588534823285345279897593495257239765340481615804748584002253498434555863388748766283732800288264304932747705572395404800197078503088843745136667471215206490043412441048352510130878838912428412550573182987383406587928786104432642339922438306884223090953452478596666002923363820876130452030132654241675253623891611684022782589425377790132048587404691104979025080201189794828628328609365055987906922990528134908353491137915770492949155636271641085912640145522291756444101125915828397988268148516518954618365754686567416707372756444629781564781061455595649331768886339653356251948716591205285335478247065354422360840001788614214170414397526129726194784224766260639710387931014155081247434990789105788499866306524771101566699989034916070820446934842084941084997773212584591022838494802771964685682971962347576496426547260171851272914127429384881556583648820987416365423304738934842686468959186864348384336193806872255437506989620299989698085881384366464846742947583809599172385565650628400782237355888295864785358462974310648374062043255590526042433359092309184515573086118626081829255975746750839149408602778819571026046849481310514216277099600101144169688578167356369006789980353716975906686119918815170810301878297388599736404594519538387611698038209568330972280489210766842797280587117573189406245494420966254740351955127450651134272782759217986682853951426299543123425215518452201709407913985972012555796933459942495983742945862380984351262296390637977381223220477039461157691452675244041940574256804756848217833966955186885382292656048958481474656830989964753156515758183642464733276467089794531762027981705211852591750809716940143526913228069371391788740721278075017564715617711225357959991631167252477090670503495268983974955958236433233630162849049228101335795262634198606348830238514127541081584644269421737726065126799676344430277725378607465152708358409859436743304830745378932682428642424789582116819719488045709056340776190377120330304435579128763506238493168473708690493539840556308169083546484739254551636271948210755250697207449841107612857257308457494800007226954282342316692994260760657234608340864064683436767653107393755330842856490069787026883004472735592517004678716783983799627933217118916276748572466344521191022448844341685410320869504028480780675369277475576055585573356474386568588980884481425144265103755664517369236092567643616820005689820902437404219659968267966640827206561684191136977207775939968669237879007442401101740428756551227580492930881102801763148092191582308302311251549366685742831971650905275188493704455624336416775732698680230397819463285522462279853983036905982569511872607826017653888046634385225995595544598933145058262948781744317096666871157557008892832171579904083755296135496017339925124308125920528285535934190143544048279681885865033146009163980345419337286743886604397396161073349652299411674344774053327243726696427563405598143979115255139276680400808085073212632111258323044235826760486651356201854425891473554109445096297064365578257514931572309600614087058922625396794701158706083756942472888091224102966767813854684039704880622576736827698899383537287052774262686151369418890200976501633276924731878474730888808139166229016957693372568707800938222022605004221426353062677093987843922085156384555428943612390284540856366750796533141735154638770651054132516279760705846169983093227423995365422307741633231851597688549272219071015475591534637610558641862120728513730159157634589080072043294645239115139373556762861576979879756698320011559509642840436909627339774919317929253496183527736960178818501205238523641179863587370965430251929055553613887847370784481060457305063029016668772926093702481343879297082306988157604732440205563791063288710108174675291944458247966960646562703885960415052104868035041894621136942999022711894354602463675737606937759609785757525103253887400078092414024424137967243339630240526429317472144669843802882376515953857487078344958371676350130452925761678846014027549566617652872206055889731213081229025037699521044724274631967040111280167481214154986321417204087748379420654607298615503243688375876125918338861133300728700435082452406213684336629844539889219999131932596152031505674905953571552239757284467636386923746704011338322643095802347122225841511873377923465357032274711090378308695162437651531017894246354863407305238749206918912408272199355863566227626149444331634737978510588926890308461905356849620014663233220603747418530457709491093333336215227617063959370495891995225544516454257584425920263794078010673334230784404497752442953247036258878400447710253242651928953488355358536499981474329568992620028016292210193907496520174841131555249178878761414472438030388532455044316255736015532766588527019108082423623980539664473802826677894462725202658854243707555291734119529309218868112122107584936410721232654842447138089609862760400982653423106417612385851558364728369636012687515434927030251578387829731447053617913041142248040929400702153913026157060704521918548072490807323639410820736895705130108618243995896115160631350266087150624563606391957402193533777468614015951195570378266711251686917425449605996598985838419405928141826655930069841737511761620934110203192831749479219211261460392831380068881004506630404348848621045961893188561863381824855546610911287396432829980095088682305148757944958550043495001382458146043415097886192593359443207932321064334512111521984204981378068494000205242996228708162494907913626960882453610628344690712692973231396913488267334830191764210609989600689715982130705916658813697437352579271006272650367903234940637557524461879824653919763705474003540201088057726715798991784902252317263616127997833799726940888157555654134873577934055108677422955512521155778484575625727279835177656050365779901039979375575895852452142272373007618299947506718054851264074946728839658617231821436467341517277061622087988259271119311266885596302251543160570013348648283354020676867137666180462840425832891121813933562559313752696920486889424597556404706308302188579848200743996907790422176407710034249936753782743003181224698887536369009530908604497862789640618107162437501033012935645282462502199586266218808838884606589524778078785102385593774275158570696673723891095495110700652075415672362188516918213320589509658783192296707090043717942319495544862678087935942399398564769036765289424758382517009381103075342183198524429934676715456708342579069441430014354952436362579876305633264994908617212466740027787415848283632432476198249937020752038226143517399709669574070277533556862257126343025484474112750684485067122814663147217360559564772678899968589438984141148024279945023643199699315492881635083315440524172278008801695394573051253805359531009444184757583327536940455986488969530471189263324215340821850921403200126808559738415894365882268203271412382097454578206509705848504185924783795411218770466900811191343817967492289319587036468150216407698380468403347305686794616698960706478407548661664479437013367861894798359535087693363176565013475897156978962684301135545585884762126965677841468315439248771699087429917982985467386094954044288184030577560691804025928668007548803502694760684332240056931989775803904302783523096508922815787656382606674303923383650161111023111993101772085494015404978124475850097148814597508051581495515356217108095394328140113797789984490732869959230211234501474287566190505840726635762583617418664973933555686198078194369093269040068492616437567414972869373397254582339200450782285146601468804671799899035055232993782899691220644280032796995700916704102121153649151105674127616586109059730322087497763366297906967746329684880808406118565134845317789989365726649450128258089421758300665915328219885415602270900945715992540402977417345206572307295457525644974166304865202843927037091831545392491376555052501431041551703623575211913529327015414658889258921893072542951374123379474801725612710316549307643800981988182483578728749386624602927063605516651794816299524953316885826079256630276475707856242750939679346530922228316655791223720135524397271334147299098948483313958652222302957527665893006003951265616633851702734472700294686486885360501900324063402406091871390163947310811026157868788485744352094746048778740992762945203588359159783043617168116225607018970860685390803941678788991745275418344571055964119167619963249115322462325330332176141526638395751441586792248011851947310649095663236815302648817198694129354653064286197891314652637097804321924979260448754017297435784454294113388047063352958254333635295151096005973830397198216873914496383353227879082409159561980395256104057952602117855054072554996469138451136849568588283133838647102157695802648270442566487168162746327135400645719708863895292134502456567286057747735939583207139379736022218196000183068496504272291499906814582216709174774792650314321471847583613606065981772696518276424591258522498374135121944412215264335236220156270634922617529697030924558454252475637862331879867306233918615300405299858879554632896813496386579084629177486220472268170503310573939479103519945917349784775976083295716158300648170140892590845705958452713795086796099452441884974977985634249122699797426435231864449268574873529295789562236872312155719528457481386128625084796759515798266509967079255814948271449380743953177738979498754293733298361227286445326343811042638062180102022461521599243714571010932428690614541253073337777249134543994545667343601771925080624039366986274843543684668424993328609232095008250802361984133571996632525751876670874063391534495851750745860944819863078371709947946292799665106496935514922805056586399325545789867520173150876566170939889821393175254812820725713644002260502540038899058241065273667905110693764078366868907095739306113303851824149966033111566404402690394933822763628252550545705231303743119585766391680876003185100799442165745682025371743146690933639860332764377317290767141663263000851248922658385213502595975760548035134423825508549510358966838209052756956213387638114679110210789348301104292376738085930103851583203978552422734249624599563316498820383043941216136317658062012528395900460768429519601242348412834799927892339141180840384489585167369698981218434027676594291409217663464262801615103343571518775314956233595721603959553079261814821899522441033188197931491850398884088204774824832589588362035971759216282369922710965485187284327602294914049487397179338538297584135258557388412370999325601747695679435052087628144259320238138196998848254783585941056995463098425996804858693344447851127479293716112722305500138018421418971220201550936687866872127532552171495663819841458298955513561398920534687070289345310910854318110550843662011759778427230541407023158880163040875764311295975310566290130939241614683851239014920532945777335330352231160860412610079663697883775987428097250124698771966348851723569626146701144259226284125537495132699209516435613435011242715470460738158829678133330527744117288824390335199318094595743006369642468918355551644460686891501000446373689069311075246681966227578585118071541081457786509168913593679269389143481304153744407165460641935091002989355193544776313791094431726629883465985516481110039927527840978895544138952520224582600310419221459518966017266207240924568529719105277656376580436637326662895802033873452060837337010790186443068106062651834291358737437203112056181689640235017025307872599238790635018296513316622855971333419714109265971720311984903997265718042902416444294685186258152920106816939410960650782252790673071265459654061222310108689687801027678330112072959787993711731124422029167253239228940814669087180776107929881711492831392013715849130166622284307321210312063162637510777741059359812426099947974918804118253960512706362697916282395051297051282907161613052566058579576864721817922928771363678724094077489452743781485863933905886935681837120704363657165025986646865569277318857360808993415049967007251136843896504548247357651263838947893397897112664091451049320678318581482451129762827935821919150711139479616067541204824927145959344772888110891860916808263661866328898650825582784017224513375820617411087603906245162633388108618981933476277614260346703480128846116284056731326939413035525213563498131162184231779845666312142388356944651272628738387888328280958062095007053878116514203879567288690532000758256451434719444612291133987645580807589698599526346723875439714113557172536159005276008263349431022075688783273984006800713866381413917494726380805954064605538077831421858408729041460927613375568698442612421037189407511927535617824722782209010013561434037174056057622781111738591735600527031420431839883447606066789452840651761928852229990736328953530942365277795434839964389704586015714084281834673343778375249226878322930409905007691058289914651948274994014956278656258368596400879403434191958900476121900291558053755051265904184526736218777636947965495066603102914475239245324272558582572636872952847143191569670646548623097763907574112602956038952591674435472994591912353417043051533881574145080326847920528108132367564169754936668318108704566021720915662331626643412388684504951549830173024904021680283341145357961386645472564138611091596964988735870043920459247573708689631847309280307033138288543744285687921792215793061611313853821107952728697079788125841695922104635790252527018188700987663869025684458061688479865214697956792105397632252266927645931908878148682861720436965791052155559051117595132974047920571525061498947959477840581734774889500396308963590398324779754447267383227764957741796840706267304110196163315275220928329118902676700816457314878300751068545379875970247311695838911058990431238103933461538308811921592235855499580856383040562332811770466514311866147762230850284234142636462778178949554378045603570996089151059368851526343366881383174982724851058661326063000728697495489529029559961040071644459894523852690100209985687488915257609284355191338865359690426072522184992911640448411587054160763265231329921233585033143898964564061304657126216790552679579654253965985751017624068866735095226881455364666580633565269552635396146403468333860549966235979833637845051618558996785955075398633608088155473544326973852988239254508771811617961107443846906388665531327602792848470499412708412667975170634721523646953131131575487396586225809712751401062793735905853058454011461227164982103649043808814572648127639837374021011451508545745594288601174264188242280625034733768378830822035782081838396372084451755583663021310093131728588675790918367017350458247863476246472711697296827646644735464097127435311272673294573941299469955283051780940974990704106830143199275874217571535925896737366489202138249592108466702157709917082545344837942553715950575584066900703900971873487850336556465777273655187815248223571096587926930452797659718094110854219640270607064683847848456315537643435889079649988875999158875250443059829935079308780292050542576614155416783023048943120120957939245891082635591943834750951861694470001376284930472964242267332984676133193754853220459829057528595776207380212771836779768748190135166538912547496378309103548266063325850142921926745196060225128865353606314889446511796215581815418375713709983964048021804196641311128770528717390698886545763435594756642431939141336714179841554199878790006916986048984736273241146072591023729840581239857222373464205423210026782524776307779666554079691794706431326708267089979697480940745356641967938875819123975714176401263132600335853723417698288127216608981000524567481710920635877823877462695647632354023970614952615465845596702084339067143396058214164380124749625899356362972610431535527708814638058012290548570004970507769820869848436401091719316518257895339301005558431732496373986124345667051944506949009157597393281076524434646825953454197437241276534852861150269188336108495373514911587235177660867594826595759338133519548003287510524379297920119621699083486701734537280606809197539787702326524157803035241748652144904747835957920364243177044257839772223093248145053114064107735713351483716337408905106626855622692896587352551942514399754666785104485451928559265272051081725837833560430978858333197261088122382644807127658582557090482041543204184871803052748866468634821523377568567118831581771418191305945092974267020728811615812838146081321740636164083244479806044755705017201822840568656125946723241977878910574607380273331332731188505285265544654855943753004913110200132164236579572968225022388753617546491621409415358363193182683184160418136380477912744841642582281666979452411491181438336372872554178870641164281846586521093925165404720900531945770804473004738972154478307633418445579308345364350150949495222084812987592984654339923098860901218788755520911205460005000750230317276594832001642948507045386853720231489193051344336497336015202212260890681428695880960106943865677103131160459015861945097736265616787978281867485627266233385773613832379949953595285840624638378668703804064831785096881832638735853945278663447749516860981534992342122399839702670646456317768859427237860546151196408754673771366251375521502989861969506531702534428644873721954240183776756629662281817151693000262601005180064745415398570563796398504224611412165361118368525045081624528779950393197537049691624872040602527842900393711378818736470787842369046519989862322890922813470123311239387598082298750697384102931148009198130007822818220165064619710267659839949058897300237611799252146763313278558458681650565083490570311735463410291061234668282362517416829036184341951502698872890992740265647295785475512806540717740934289721518648602202078135309574821400241957045275073608545657495538180118300021619806852256081066693527530700238789603183343020877764582511386394595889338116162781222348946582720836142790726958624078865381465004873758184025133405689312081565758361005081552375574383088105727302615361747756751958698796590537874141724476480418645219998100117629342369973745446561607869876905315874317420829040630401044386527388414642168151304911156365300329557012816744025401889395614882094740610815000620519647905744759308830898968130162838396786611933857408627948048198476202197026996859930190673804922375739499535131771758652767809340128150457738467991816419630093682197950864389642052967123354152177172436684117490030012828367101661059182226098668229783598129278311150356469646166190430928304917030211961528605100253686946482356454992752109141467770690938801632174009032093584921318319051983005967980584852544904313382295096105717012604680983948482877980279705593963538202130046181195275987095533174385904459276042801823614683822159968735971244807023924869569148161546150572634822024467224686969266701791013866470238927633613380089810447799766097851532121203803654705587189592822537643759903738942408401546788594659460733897814798769616202852399073232935217055535124788977616177717270791791957297146004530418115262496467855018540388682171084088457503485369869697141301644244672068237346502311008069601632355291594707221247586913310164688224894268317994541272033702999314900141662880254270536856989276212188046393993062100149598971281335396940356495599218503451186909008821389392113919513769068810476387076013812717926255810839559997492237166285242876324855809729999181472253048694653879334923169551335019200100696163826583793011232114341040003185402481908245803367874709195044437042714323213456018284185561840567585827281433561887017241891441962899944373660501415699322675514827887099986743691569947558179540883398986225621723211637452431830809856890251243818082764664291789540100965671771794137680767813636678220292575042161853252136825670544040024736219219980734950552608685379296813094730515037213853134831953342052269518194079667433376684307272856249946428034363630865954443974876910843059477176608341427982729808175463561885200099929550148256300057945389579048358422240946448264043229584168501145335753869342558383525945083763067033042014352456825186257560954907220550847636358059734205469345178688441612849511573186868506363982669775316023103190884638918770813460747619073821689051850750868406973384124665124626767003780031780301012778037366686130942235774358698760642862536681941164035079350054587254779168706959972370510878502861757520974835191381346894591135324664462413072006627551730282857294450990887307082927430308435322583280694223292208709435957456279159054498764483644268161265479422211503768597488648887232916575329003222310403384771339767998931531165075047249249691576359562080893807248223930757714179016283790666899367770201661615009573291285857816123072345625830106184261660416588402982685040402650714294397191394133420963285495121332848216538467538306853958856519054088325270418612170545034466553327553048385167086957938126590508366954964401506425676205345335633359028374609319342535256925020688611112156430560268230634023127824110514801003774228414279338796799151464124758279098774326924666507691635589122606905330701014140543095248704691620138428408788228201196849624687499459144377006732060000008774245996829086952803222074455658703804514897123692388623805196064784321232716839576557543281635896232585368958534048180881781093874930227773529140177382818606605075253593432973313963376323315357552525545169970051785681581855136912379632117478922111631166003284949400357449248875562671077564896832492648431273471949018531497653859031252799681842032150405662042239008190913969707694001609259621933724319127887080495131481482437390380252019684594249514659624843808691498853050461317450877724324878747498705357698920913366026611404907939239198047026582569429907962441333138161682065982232158701466512559617153421065890038278764089288298226272988731125501396607122059772971033113852575438331502270120811285399501113134340956616824288966174488228349634161940771112638026318086450122068259098259121326278420384340240639184788661145559666088940737670667295455085160819189093847249493827122885195662145717621538451641550639626846236552558717831760050203886255939707083109070022898279487481624271382573910106147441543640975013628552180690709211682149324387430749959983734321064321140190546334115706311149247984993336261570648882169527458327589138346732364005407407181043162606952498979197373198150629718259575104323256817178204850167013962487811949688639760422887194087433042116127098692971947076932825742186552756361604676311388982442289508313651269373323259229004009388520597799834763092692765652105359957551237307029805867807907873582930425838654262136932508556796833484947454596820195455219307700971057704868130609101333285084251152110507845639250936350522985277594898788577568319544723718702717340651510668969273221164446841231215912835649638447237865039117417796850870124595416331019506899439979995244271088437190112898704977585517446082856368536783158711319591473107757835442912064431719648157235246074774002052076973978608524665375085951258870164880506237970206651300620091770338190916995607847697458101034355294847872681689879586278551236869574555545098310323746933549921779303744429378419230839681861752328764613477758776302278838583648406278444596417061426860964482681332419030670639552771026617497217858143731370079064246960709788272082709625400711932866282874247047219168869924697588211883829353677481713249156976909206815121649731529699424484305766546780700368750026187125960027479696210402087955278231874339574590332109148668426712256489206902180620416857221482811643007180069388197290761736999677990977979745668466099942243639998536318802638135913373988171311159399940527304981048517473651379749821968471271842504520699752910246424160371152943990619671281344552918260976534500027495613770017566176739569873169810567204315040040284924633991872627154310785661965905299986363099113510352826452293734065271514017326027262152901358446289319746938549457746607471969143920230973081002288060726820080323945586262132935718791336853259587612707231706181939234228095967787688547398450344984516350100209741242953010012245742215404749041002321393642036555529184187163745651202601994914701670238939271106844237178051845874953425221640166478823717190964090711544513335363332736929050470210518521750461609244972399907794034291109412388267669299739861371879904803648364810278169025388967557406136425927669108636695149965763375532102090803421955617741077262779355880550517077076113798233326021830870198007001396420332212269213983246858929778565892772474791659638518178222049495239791665386844474726544013114350155549744203864742099750942095940936192279950931146915825707227025138686475176395784250802543973780375261893771413939610528252970509953295346838301142730956490979255552969090271630304661505268131421194139389699241102277484624361981717170359335359129903675506108555722074128904549149175804787637848833303407048461124293249863940773880039114629070946951649900225075853777509908431761405631571704827828060394214991080730414116621175505824068225282661240738649816126050447010407986652105389813112009146871150230622897529425630061187145881515235910833151803850184814879839056491654575935905871225971084424604729233754280395946114672723999428450294443084697994963544770356492935495421795032996956417708865679717698735494049050479372770710580240056890458398577991320392103685243365486802391457222528340934500670368388222646032816738329832206980750414068482582325804585105746558296576057168131868412664193431725070485106550875625983420369778222902379976419194513594679706748393997939027966885861977096723521782236693259110591857141687879430410541083929583930520372840285265401555692782305679067728500859900797083234934288305150235419727977524645808666357663873216339886423257191939842560992138650867668103063396723393043378870421606597972356554075996672612187103423909954670327660826856169365298777906119497297844850710795596525403270992216958154234554374640547457218159072959815053402649523120578086702701063264025313164402593432948014403165752622737271879276175590967320140293462025893726022199794820402607604147648908355434944655439639615593948275641202690595510537804217236731945839743629042621648306876840817109391826492094495773445512772635207845062067251874248041987907493780912664471412199750532355758600225752268627713919698948635649475341857044488765404319355237510327014101214358670582374046380961434021389022512823148536684113046547725485972238600080036194355998879608388215312334960906042032921614179927082436201751430582140365332531187252683559686725635314496973693727940288979841786558113068655055017483254629536860391834643479119166643391145708192685310568772025819685841158651810336306338164999572183933181784489050554304246982792101992386224930377953764308114926495989158861358211737796074849696690122043956525766690025239991750201478263528783952102248578410943623590182211558272128561310560935126450174236335891316261123567387192286805262623383958911038771020271584831004332017411426747001791701979451078274150498880994418217257158197226043186083599489243228217427001372638340764233248845562949432692315607924860810621451226739737031021590538291149472866952280825861791108753572390870468128609690980300688805494036369312402247244798946799735813165467276119382192389508450050810732843198169294729195225731114109624711234805236599384207207929803096881676572817532745440514412721022649235231090010450217346967338947326379430729653594387364541162888643827397452831865138994239245141517578830801591247213678578085257034482841377189987964977999601960604534736030398653188521034527714596409280316054673578000996436618662801492122779954224176960423797273794540056326875925971503861302267019715790373529943309803674811139579215582584225100723514951549622512155768483858546111447735101268358821707239297535815757586869164880787496877745592953841871703811413120096459684093155263231404195738417013412500628892153956789801746370724425245427094710215321923569881862002342859879932890489090335993587466726420797390497179128214639530293648632784303057653861547578187322900225772751489731490398335276290772564557681709126576638355093694484152144074277321562528119970737867373903250070039071836664022304759731582376734310247671791793120997895087484909187488318275581270934761730821640869866353032398495116531547988916478877038387810463585088840782408909975065071174582658402018847323295789469434262597095532214781878961383505594802532551560752995746329232236249401361800564579224439140791984667087316153035716345902871572116164455580608551793628484091789645671881378711547207800665123654792491289472225551109366019641080888370262904963013101206443572598637818735434965005403369805064636863291584689531942904405081791102073270383490802133103787286412953641766862768292039172921887911758042099233885473522578891594263252801376390031403941131413863134834042946526147591924410200169137317700840653172495613656275286566532149228355589755302100726854065325566067365623653468977049387126278428643922385713335307682346884235202967419810076469117340058980036921970653303719001949985917212495310124006567658429881112066274782508866416054871484212394081276041821791972827952117246979216914698344734930818729987898253832491955661280170435137645287975539619079021899642824098695918197048327145575815688866925447428519114883970433192795800318126881235267806587222592497645684772179260526771932259626469452836904183634980019540196898098278954249653562537898078397628840066251379521389737129923107696688279908165785924339567810115486051435315407501604308285638995350186063527370483006328866218772715158143559820435764135098542536255070277431829844955621326406344129351946677493455018529353362176366322863459128292931396333751126549817875513061445485825631208055285762769433388823840298031418964129301117897145568782528607972468681277739569612738059265985673259438312338324329146086766447467987502391236013840354107050641259134854982007461983120141490323854229447272708440276758805512481507259709020198520786619721991615708469230791650286145725058373053014256115620673923357211248514336099670940941733700482045000932606079151574456341651018911415468618528462203703861943420641762466850823145368924676271120724685398635502027246962985129445503767874585722597318615059679680774628064615134778572610229105356251385713945532685927203435523345751659177007650269212509288164389077301691129391197607868465661820193557367334281990906080811099460628111982754875549028001680073430105570087504993638795246492447059251009876404451497225881968542783777765965719762525644708497143680449739319900318421661611105814341181532924624394706106843606166445736574529258696918124860023955354544332497141933868021927090173080856594138567777793653950639548397117324219544960310863883614592136792621721113904194520957085516283400067818799016159922129445901618550057403241447518492553993215475348195403210780968025070970687418468642034861126291377010459901722389469953322573256898987645081893217013773896857939152354943411465363345919310902776953327267503843836691937848531489546560652838554716886570837201931117442411342534444393144059669019279997051493229496752749652786835613389738785209783604710984815774267538514092753674764847075286139826326613124075575526654101604793489935408103535631772854132641723989239574868759398496922759097301888428784131649170806752017807131374133224566588422095598882188896352790196564543228636639782197497186590766009430720042507698120759019787404834678495761392929094021617220071294660499605359940787716421023415185763461336928216910737993247973706978232403927236553118083733583715009269650760188945191430422220162649415876638792276853728177230811543232359563492187019935061616058955964603729837362830339143684741460331736044439820966590099470731652419886189869611233182759221607138292226331824778374241443666305658140041603703390618409450110194808663487177895606710050377049941925771878328971381875114129768576348515239471007844439295989723885686399158234816283963005890781854839909316403772955859843527923397975452185583509716196355690759523748830366456774605948392984093839564159927273096936828076906145288593609071036802465807181521489223092030360337002010680495497795387914533317814322973408035073832753788498281612876549037638561507810102392146541014322792205172190239083555642046169225955940780282865633376664918462871036727586621087533748337076451703276656241003630263189120157688183396875946592413783831008413480041220062388880849973509216782525192386855030518970547174060054942167654124828878304418361378151722984142292333643452543923053816952136318496371353439503115841400712457203807325614911323747020087990330500964469851520738379990304198626273452295125603134087154865667932220282516185419362745378105355597267032979332134606411662297988895484504792256094919954334774780337485691167471617515839774935054242502847778421378436303370088245786587738926022154231492956312742212347891828113564230324347677357701159955444318099441192448036732043821413362261138348995014629793649406246482097804669894295101104163879698689278121474686579677788763945228403680670068197239616086856352114072437339583315693844189221038671317878261690294979940177894106031539766209729341650672243476942991119404368211630004417254951204586471240391913280237415832605504803825641072895751827949353241953264568063817362349139098762508893752202525566955082952144272396972579110192813157908079810157465196402897975148194111994311138258002458225022642565053362441588716352475821784755459574198714419016646063309936616783485504397636311899862728401179333641988342440373201789409288433874464407216847028335089001141549839310912353450196908433549752771330946853326817673027320020567777672865941532509350341147949728474343277815394505163303319859324530554514395309053074527132300232169102641597773558450531957435961915002308547058351785717454015412542555970462628152451871306967119780383417698940039324031946954079195696348370036517517892640465113789534098831808180231392503183654166044609471363404415592234933789120048760370663608525835774976082876085227980578739727909178225432184024177597073873958270919951976437350434095890006202526366063869191883624385523365592812409778388351215252281037475934207011478942974400529664457550644121571966177736063957461700660473193023002479799081272849965030439892892350127043502029764923473294863937568564593089697584561993764498821808151718490577833552509072314074698317961162525744710868715037590889890927163012711516793933902484465291748386730668142775145235113047112330760130449026256439427817048712662636469980339326865497093177438267249411378035120278982486751179856637487730085988031334679896190841264293132353976193360777178583157862722069939034651766386266473303132701875607528509053846590735432245271454120235023955056593370338752359461539614791834655401324193452821530374804100630387048486741995560520267897312599611799966689519721146805995690199878450367321107732729230363761157838294841544032659699501492329462773455620489870173175913623602229937758471838669076536700090254814628915052566153375291736968314424821197789720601579990482973833600721088223537042288228837579077343445545952605615201157041435648531124001296509334542050951456807394119119103811844274817171870419323624593852060049929421509002821375134439404971782532512493829754716019789234425411877229618740417120440846031752074337514003774673523210970024170134685856288075682088358242436106117196375306603186844236812947347281808609118421365120666859405457036529510943168461282383975680209827917371296634235345661877506275473298333476058729429723350841925200730595225693631629500240787956314525202906167456076858184865491724531318965489756320156818508076088220819327049915119328963828535682712344499174920639530242189996784401473521420083332146517985150948452873632633491761969362062577995276819794274555865888657621155608784200651354699686782340236895687779067278964462251776397843762718860821322713744775027613627524228813909846583928962638439288635286700665353357108433717506967272275496767785874440186068215443590847101767848366515348270122601099485785068136254958328554364481310559653287227103679523669079481482616070221714138278794944953842861764058505017489286023839362927601746522586760115434658657292464837109791468875832059662553887449906520932292476729586808541324462651947989190754110375841641373381328576648047373331002329318493897815086074317010303215417399092827841163406305261498030933627227371721775554253426620458803488953468603149121626730176100245622297834182447134787054793462256745089367593133673401882381469945480300460692406925476099661109523062366022458764337685916594900109913215372921074962998166894028716257950733743093263394154825511727814994483465967009194403320397312554009938779938399317516486462655020998028469610085806264096401334011958822166315561193975481650991443253603129143908843813131555556982363743601538404333476664851902650482169964948068921535549526668082017553299021630103106461345010943796785976793428875483219615018084424952830472233897681695549922140553066975395790143154948201778040312809110976277691726990318100252408810875414278854046216814326943827036511247375185940073061782840392200054241940695183840314521084592903800182884814127885354184006377061978349995126553582276995546809018410082475050715838283282798308559350000167643784050807579314167372150923431730792374027224901198286121078293537326602301088812129688906387187259030276864378025580990460598791870475413613790198290190081900195592172264038103942424169367164966367208972869267173554220607678766856897737848809196402893063679059449739999618309392048330475659307415392447503740057286565382857622035340541223360288448290960025252687693054068384882854822492676635469686526705623818512698336936836075653675862945280397027616193685829646982365107299255217100154988900429079502028366014158500286431205018307534682441161300984154953602832937661163148155724366665265994540377348738888217088884067457727092464502183694358231752512252076856860981774506477694623248707264262245936733728920483720842754785800589269527995434137383531157711001673813642814592753416679222368602033988549596212345677267584818772922829187066168169231309239570198459580769907702543177213771173210355551272210428435179973279122899040695206334830117218460388438292017310218290060724233243943297057749563630184615137660952486329144852834257842976155242449529540463572032109458097300145020378505573896917407943860717333263240326199640245677475137748265735156821790834636897996835084911589812159002180578018566419116583756839152485489617426673667257145186046686808417312316155750015668447061843287148186474099347229571181506314542667932672873727683986553707738827531811996838407241270836286142750966591213714912118313050862893572669916166094046471187325088476883980144752416961359154107817806505497602027848365733547264127495439744567388428075883485745869779588488315971316255869689164791283834609063240762440349431198779209127423565193106479724073311288804078533763321560609769936427830094315985760517246723207774580941019870643280443091802221614295343526627149112361823612729557912813655105976802922613710613051509579128584772545690678959280171273719098358929667485562473273760179962230424358141357338790182282519888168531704882723174493505163841516547674673671563072792214918620195091053434977245845119884285382473832344331575541495227503570098856120351286321421735077688517027662931545619105769875717769843875708547529805367998156235162508832804415681762707105343253361909785051875401736424323028123363334179183170460095980127891204496637771702227470939908960119155082275263537939950394507734718653908878455908353384924559847337842452033303553315139905101192029358996915683492179427649589709872735164870723719058801024468713273054944625694071758509644084610280550513321581203652325128971198835906189849134876773049946743821966208248950268507873445625760342345356134130492693582745635296849087882080467788962877603515226542083414506522140311010619056639691412140390731802361703786373488016387690241912077397295050684945039501093193535099659587293144541967064229634127036899671816348987246374898370209195213735032485678544183585845060797160810381304591449846094440441346276737430482497390884811326444619003549697766524155848626834261981425086411540562849583048196286938129644962409665735114750088152171175175495037218136195287016012413509413763956305671165954073160205672235978358596865406804429586657057362033989401591903831309741705871393122180417487663655191018221449120234494490418428720264957268679346241176064407035312989276403789389028411076357682716863560306706320688415256762793571915345620837993479282317855767364248835435681234582726785740508750308875883509158962471735019224703206267468945507131341784381031384856481155753656584722720903023288942099829138145822133477638476204308932819350837939014948266506838496766352975847522216139320297764803299453856567771386014587364744402384751020112660959943810873613099646855413215159785685700896983224151584240970089980316588456436305036152917201047543915291162200136522337249151423502001134282603061432910998642897905627227414376615121990514548368772749826610822115637355978428642813310757292406984111571988535614513560289417390472981351980826181152540243901785200193285150478805637724811718929414225362163038555581223420960707207663645052822776074573793279754687591804007244573631553604334678377986700038290179033303744339243069579792732662892844450951441926370826120199884092523018282282289435147210292235958778728833166891233604409713106911401643250303421190961455249668111662608901523124620521150759037855662902366848994671834111141389831537992472931322430658197820642337982180398980376927643380504389704476029791884082532950685425012578137258108265603617403360457838031894363990769726196791439577929083823859706676958939436456005854182818489265744214722822507717207327684837979491811600756293345795731196287253951705899720931179497646104603395361371710122053684429694734257497593904944308343879608985167183564045356111314161838044396221590076253022278830285678839581643965026342901107965732141352697332272403775253599586452461727101908137462773293821737886171059513568283249225881921659775317510628190865680827607769917261688254539180674893715228823367491547733186047803627854525749791739110886743211920752711220247808573636295940610594329696790320610034732833542758074167246151801184042654197861667765931509803745389609023258023987879115649486384809660073619603490299466248980762116220670654288700622400137381667194737321857520549459345975471567672517879868814439689168695351484089024328629155353672496041081510813058117920317647135125895936827199790891907506300476790084730336340162068907155500010132521481074957991993485046063741442825740419471491427511227659927473930112066790055287936428547490186181205939996838250410137744560125518275102584970646316291630942575430913888017553671205803406417795414779648704391812478777300366424607265237070666339030618130772920105218081964988101459653829608049573781480027999256207547332740810358532650047248537196742343845881685991105908971555110222196999419095982792856325892036846419130263737237402867864032590770966751675395134776926794060986900151520784682005138558468085465953023399643112843964243015637070188425124336850674718879476001788374754373127203625422530131147104236853953019874984152889734105220869001468114164539051066825635010310459500802901744346668345314792190776508054955736832884634472792634139726078789542671856405878995301816807088552802246240253692298737743526865286436049509730813483347172063631946240035561984643399480641689042250451023214416896706168464129072168690084679084380985508907431953588641586273501770325526657634194509972655095069156639522437665613154987896475777045432798668938321872992153280247477700636576688538095522119642187781168054445348073914973235275793610559217796491227591282233506547406104998792511002730625172237781587968668647135629315310068613898350832530971247635163420872797868082155200892523923886754064461654333375797786612809874815609488665174012111367930520392952683200655624953541282102626339118601804884266142665982494202537748603572967411425392842384659760738412658964806083747044657572248750701815593192884894210656248444884362968441872096206408525141497204796572864795972256979858649679236640736154777114923979213317844137795934597101486041063543110039518404705292623516952175560175300346402365306396872235950809817486960845300868088568559231514352513232830251565392830780278129948909478552889842706878157876006867232936729081865726183497549093235473536412616962128565459323573000501502494893323156426965335707932178575552184963878870514674115841557042949940135061909740669419184566939383558103959373067532085816108410317029277601271243118048524874404500389760434513212536117689737772862583291952916426862124058007994050087761689570748426426381077016829712968642349474877885954644642992481128952757828311678353364330599728793447189472766733852504352355382165695444598725073597381469064474879725703696457299623173268092804800744874534511978379978625521832054955210460662013084460424097371816205868974320991761143661206888948302827202570990651058669791950721372495232299795742623820230549058869876245403859471308523185660704033307453279120512529661716938155851354328117615332636145598548647917965111341612342175762052827126977631269360323942284666287805275552540060755075702525669363515764011089192564672405235042730480979507520627380701023494231596311264761541983939923263986294693846029321326739515830154458208658384956228716269980964485770995216204293833442151787949638335780756832316563898986741110586440155979061360422791335632895076612298280306526659303783688929566314646278195538877960595138474145935846867892427354967618118437333905689925422186055847714794929120248413139412677307510264632219233477604006207011650929715721721476744357088896209220445466856551336716280651668715429964789619457743294728932931586935867863914065271597314826233477088503051479885326448434589380261085697950252085527310639732360386336958250997612248401901016370341629351737746065811043121234666933074835408913901917488427980937916727014445723675868892041352102239752986872566993627729154113551964080005142184743587882906046875058806238005431828111144103289350474942194444211025852921628427607551315564818721987603401405968343804130571448339935406076002063224415563456974970634281871276986186185083907786941920259134192799775366607265176867651820234423298385330071891805728812933940777030317065348953998755368199336353303529529537623360978560577267751763226017996859739001880128823642215154221859918379437277372568467018569188786490176674902924016882336989896146580958175784833258983292561691925169025640790759971321681798873730371443702535213115648686059484383912704602395025761249209660297399579673251807379444435804519590964938439618165596538467097161065259436929914336891889234330352009667798253745643457638039147164823402463059782681953395152708988748875118195916757529413478529899770510703645744358288794923989868567623098867901844530714061531198338380312894182086366581737651718869923685118021832803053633052650957252799238487690251501450120566433720486938240420048395468254991340687007206746684335991158536891423721408321393859861839011973444561984168170945190605343587876898399643201005000755034345193861617987216926000828808746838360291126797667594808626870307808349695978459937624732448458942790819094799114805456540923479557924271049627392794979759310589010279114585482095197254748781338522360207027500751341667084769554394975725061755035764576624184713622565784366514219148409347019870854523880265483894062993398776111040078546042437585601167353268948097810149972232507302387007462021405888497353375850646271603785927124981362540959347743108326661482046283721906424865401089323637654840670644289633542310415566677299239243532416123625826738191097323871435359003547502372207006004815589495203345971863204694842834786294455008607672361235357042584255440588026162210566055749109896278655751918341825161927988536983732633341041721225661621437189679884659423886955774548367776506437210413819597912591948477653122809075369061860101702671187094783577902440134967311555867838835970925434315770581066980816432729243241125887100240837268889918862267822008483322418581687687433082876241785955992487721139671530904302219900065333969021041542396202308925202303073269964013056055665971593687664298052503306458614117419032143918509860688386373352597086376908997539354978054300031539357751408752476539025493680994460971674126210134761781818541128410957265583957514448678210338914447990943871044825210372838681007801709691760348679554735670001923755904948628557509298610848849065464882751916733938005836446849666949263679103461714263931585641975618570095027523309363565280611768160316352169659070385415815003485289514131598050056334593708111226238773506940706639979110772564466947445161893518264429590749865450855533646805344897675592042372833896196380731435271518134351777887203967172883960336506822290943238739130206499873428586816719108002102660939896854426499900216772742569042705586387660549690234524477268708412678685349663357323021653543969322128360579267349009752791016579668416381750656249773735592470024039196571717994668247589769122073112725985820918499942060676839738593192717216733423880760994323531318693568567036695971008115187419143229239550559151964206956092182030794043892695342859657672840101793782582710338873358604448660395341681556752081979403673432013188945783442881670600067836393390867789515751967130463104222944384429827566998950674594759128423619009039010474250305839608598118990371253355575741250950100553296285213218136205668981383345292872282864686478566807236415208175933435463770872837188743252110148472711744185478234330301048279757182303622982154360328211906348562782835073695578880835289305532895895132719966556494782943830227831958913077876630638356722539155836276739796226735401744261517205054289541199979625610094886558825976607542212777086417238147765103023964195761135903749564546434882817492184393674859001723506767629586267664690895516853357460145892300216334831102516044024680502920667434748250410117456058488646112668027984563574144636890711804673745960411537344975687067676749798169186461595041056432805596679220554205363731237259445878456563562507338901445091431849558401047498132962895326197772392086781488690745813616829033185109305129224726380770353386739658744622290074270481549548291600580300921020773418169809780287344015409973118962521141101097583398879616969616470904532194768731349642290865942191857749888464701314981470904477632473157275079549526100131694833953717860042208920336769620030681748660815372434002674926642206903457758628916409522529290023536253400793219423786531570043208875230392032850361996085970844195743298360675297699836911927427722497908157788250643295118181361665398152924669608708889353201804136000434857444795228561219632454844012621003001656643225673483784735224274706215473250078806168426853460295411383564695610626898542765226339138512354627234097201147523253581414799878501465153423567890401869629539218723576969865646834163524533521208433603236244457712584384972137685581815999696291630246161415605771473777986500493614485725855745023759351582087748651373353832518067522854106239380995445687081247020001138308629189559874245767180082956574434827690039908488112799251340211038123069960578451636310897931884100870931228226080438316285959632073496905654045584559310687243450982603980760261592917265066835667375769569237306074719330793100881833526623090124766544567595006012074942248087015670332566582531513597801474575040840006160674462305245365136062551024170648679726882533298130584546164659008909828107644686990390175829258656869500435100744681233265235355692873238273264744361481971660360235212848374189311631880005647673859895626031685903310749344735607262051083366861295842129776305819032716790019986698296413473392541472878056300219372891060031414806405222724879057926177309294539501010232544000076844910295671973543989738178855451474801590646382687061562087080759248190498494981672121699053601704676659007503177978119603089515983627979979111456338334728386824619565249567026197961965120119011153643516337827417913905622364689428526053589924012764607027012956051483129379011104268607832378910455406797857073524735848410343862524733287885367883650674951748205583783568249099982147933586802014312191477613335202509509401393658577910879607619483261436980349385895023626458438473393564979814451094385987501050184301860090614126642066832214903461062766228700216381082366533562734737413570931173206081583156881223586436643055003190772017347382521074929254932261929447091524425341437196739065191834067968806306817367049685719804135332295240442043062096537562781885304191040058414918434159528523497419818169591630100143276092197832423025388189988382798476515821036103533370507004036940887325481255605798364668543867975613815436224600405602658351840775294629046837419135599500038566561963249705100714235600895369784087046662677529223872094105702262346103142020339150423706550746939768054850358933386096848866071516189297950488383088803646881791729149680480916474298595345000590661482131593178280871517805927848701219587022370307373193826670855474533503569304532969728872432767819451666868221489128384090994570844878717568643265427237320937219285709932465390168642929820323710395523298348615967093638006594972457019185350841930001408784224598734330588207383661375161299950741989466127641464332747657454625631579295314169808789166765102521654270471168023041495179185533179384024826024358903948202513151566878079871189115067134311527426533525745714147583835810956125270967188404163634325237918438203669791572715486223124808686092681909419131580349523698231983866923487386426418595013232495450697912815454829695511677994089728143615086688365047561194072784432865790339363894348256375483640396611944842483536366576889012294505154930287422598135758963577551500619144176843525288939555867441875257260554644048217675935025282898597501255390503078150798705782193821734622207141883798362155969626216445363563777792705033594149433486670163600159582721267414619706614185792708006041101489440679624280184456518277095714099123272655968406112075287671706271171535041500990338600877075616342794268985715189501145141254961669331033983305032783461093767772395432466241474597737744821335809560854384713726689857860534403860698863895299913049885579593176473435684652824722341407189000364752309403497876394122976800053815807677446076402263963544696445665148449093401922016243968076071071451480861448861175219980088156951544701714218693433304027754192068596180465630337190017822099314465390146643637112964190193110781629132782663499503993496291604303434269045945169213383472850060549936417836286855858027384572354414785469934991428092557184884498440167950189049286249093767422204503793596868024030851365768470745621108556759504842459494112418741483715067195565063840290643614911656106595258447216772429863518852090632886255616845244970070271969617719356684599921256756683655135411307036221555698902039868799881520927926454796640313761517734239451993553908448473330982571492334317045272360316416465229179448839813793299037002622343804593509432700967392643657805463617204970392303208894606705196632186141425971413097876363757669586269941141637144630595563668622335372657734399117259083120948723579045605658349326953521981071235809693903583945446287771272331175547104444946928274480856369093495361531797677298212529582330879833286037869891283464138334405225439123543236377748505621269576420235016764047632730158477766988526839663541220984893424758776724922485906375375812877800700952068216732510768285673975298330920755115117210578475786672987119202739728954142738032203125304683623915561658163619273844480398761256990291067898580271634275223425394850987078029659644095449045541034897759153055758735555165057361367524832512329992478362613242320278395222086416847744982243671624589419414425067099215806925553507006339438557418870288805472365843576524633544473174001018057200699029436145699723783830391085477220339430311430728443074636524748168931067339078198612965047074018626342705480169105266890831606754733175774575243734813740007621080784732284879906787584097023670376686914377953182288962182813674263081117266806505131684253990173602378137835400165083821929470018966295040653345989897369603766885611035843449535222782579845464344982714352790722895746193347467603037310915366664274003080173681902900788087491053644489990637993244144479792936455848400538212129597158447300213641835065159886894551749489741082655811370639867701846475663647467228794369537872385032411886698551668440668003407411466237074319193342484471192906146938104513685285848036368682842981853579616934245929419846058693520434425245895745831571621097815698684627861321365784739111033465319858154061538438236899067221238936232774336317172729609079279810126988810545166654529164900152044783792565609120318899166649982679920739152959197555285034388374560112939855387571034991584486354152979305753539331513559355826362904704372649302783688375218738401295712303013064392631470705091958033144448314967984146690516342296341199417843133875870166090907047543578833576591460213571621780206393929958891468314960446617527578987120872295876023927110207888421630400780609957453554360518642025308550302902062371420695459573143671059400075408057803563333184780893024254276281733427761796415616770596924104552429444372288371714781886375166998899052076177093210489266454766844720348864228911476330275065329608801318248133673232288965113250583720442646563692369451658946695161280622152469102228234058732750077476471952499585683469251006444870667651172307944165264599308624816950032350120517693728593518277318017652202520535538421002564946608749019924943200533755416700175172097478036918641627565462504218824160916344360134566088929480130575392609565670912197159738195437736610977394619697973976081357185725245547260329425620543517106112080330793459730902414876263094632585197931386752566594836842874179725514888797196501769283955813533832803974983824959142624995609722920251932470986659564919135184375725413349827823029585561063704449702852198562272586030797938575966845198037426373391480855117979628855428606033773913260672421183685734781026212813085235025765774113331211595613159778669684032735255023693670488404751850989959341515998545828959498152240705250401801706702760093261497680786552283700678216827873066854602220959807576483440279912968971211263399138091783788654901753957334322202937783584983402148226046220281948697311302248034877845650583111157199476588913191264439794988389730457795716944196886135977794623163900510794952337075753871818266095771077191696367004621378212871050253110501700370032926215618531716751609879455977076520758244068964403296066833356015177316038684060135701282726023910227950064616337824705759287554773322580580574450358083518522470476937841471822560451371218174834689776754961201831438918064935457565810290217657210064940565609121938479916539392267324421043514633504370818922644423705101843184914020820464014769543862582560616301041760366742516228744347285622154626409941280881263443936363514149719886927136373238092638916934249791638062496307910281239194870566580735226181599143823846905935314919480590403218975824886371260248655988540561319966322221039997327048021010421918948181236138498645964308157587466160242698271824758822257975140578062000242873761674095962534630581258819694434603095742596374973254805451331207279932053878007414364209721640767077051308325725447533210779727578495345299333982226247616877200961441008682605014346353513807477422226462460786323714059751488075715781728499566195046772861079416616006613822659361636489773022686687279033602123857549398841188472362554807940729914566139602343129961614969703625117545948939059196436807819044186867540674052231324749461670914636490469281312746298479001389493763752268326466239812199876996240818645741427164214925570468597919443941802397463424183786455065401088872834524553057208199009122598339181766970731038467649419733165213862449830492530984927985386138588664813808615171322667407095637545509413940890281462595279148483771705015211147462844850697802057927614065044559871322283590514946463204895923138545042397774616432616764089279290529759264582958147064705599856953365566883143234865893158691511153613529294767020906858281162374995498144518842310132666240715115396213065924161924015393009252350972633684933231027863926175559671254979605744626286418808134321160136344125995798219903973629312292212409703705136987769936138985264611993874355193604585523720581567455592563007148646873786016494752950155739121988501403666264784986429787844742339550690394660493254930149818605298953276484783542676020672310778667275847337732091767428311043926231119733955434409808915568326961360796577031117546674449520603321980171059976886761862831138028635939754028824874574128987288271925163802130592692520730340059010900055119035026641155153404190985430606010357365424315131529508587357601326982973622568948284420150876831690532831428952396804806880774277867443857074341351630612201664829842360070615442027822867173172822990073484145799638670402315678092801454044842945654219112908271809961749629823375046202497520998516148529214676841611196089829683348875857247960458322515852876894101232326812732936274777713439323418444792159272320355086883576054617851120844987367817124440083486888696063765185707912928635330103458144915123482800162101853756405804785052817700033936367533118044056082459368648375940058712517933047672893984013339108942350598794461422076494440540473138392330346238610670666835178431899135770371384171601479195462788604940571792473655348066188949597876805251772277251143180430919494249442549375082315851472769341578680286192208419363332371415773520917035329733741639133974319606749798117480531107672914167433025455080395675736192335597217125845523776890700449647879555116650899726269213976010549745558779065541756640926721085722673558868451103633296426354858094862037765311558179018649922818454941957832403438809940651095524112058080001472262283260875367674535625549828200170512481778757737221038422024216535167124356371079115975605832032187482339092997117305419064879948793344134739231370630876018659474010579803413357803071776148185423108125140684049839706310338067955379882332650497836522946710575351896261804654268870742823370192693316485285503360676400121120019416155476741222564756722968508120625129606440441151306191980429668980238786969982885198367275409177624017993801535221724412489470548003641820819217903943674844756145137887009322900482234299710412449144196577498820201014487376780121669177340962056054342085144263024866354436296723069418018179684707348823506616137723312144864537313670549368699229891800866671527240059943055545832305792611274883772581404941938974142708436342417625982024335107511022182276571280201000225218800138831954076517210952019375281931771464116277379125674602540802089112661044610599850823195768053024025313169116012761097566171162593940678677791771625452806752032671012170540406859458680960623601871044592986163046994964947541142561890053350245564899135610356020213010583910223429359678515186882448645221468630044885493969475081977667749562889452494376414056368253681268567477764316626306221697115220933163204654416393332188284679231180041172080268399764216403575496767422574336234514268340662423765363006275179251936602815744700559141733382587483290249172686436574074598674003578506369418873154734762449522969125097548089293765111622084917922660517091952168836840512592378430494880321139617880350081957141539637795543147951709917186069441300843493723217505108598551687123848894923221520549720329630623537386186966101766905122563836871000467664874372204824112553932357182163250789314876299795513395295401799928448942883861190276450641165969823965425256062642884974092096628050346662789105198699885853378189704225184079279318512569519758495062774436216151855310785436752926632572761512355739483072646860824715820930642702267178243524323068060010338433270082695584754967296654691616030199721060722563923349998474149490907680839020563780185573703874742787658959590294939626942429978833581969053148533239684515406338355760984019335468954548850438487736556407342093990846849240385180361181047516176376149786441185415211067618079616334304533689420212914985275325521427331737804522239267364563608945158227083066589800241359051823403534506406844401035088096476881260819324123735379421304304823104754105008850212782997866358587522207512206451489875724894649778867458591428698178674973649937589531429896599886085324438835137932478423478108976188747571472036790719350226445394530811059403236862046368763155688916610300876460696453668264822273254879178239148303557256830876429791354774039331227933359385565822943379861237167244703260063204088006629750003972595304825523358842456456299738000769030123473885414549234266137344840150622854952872479190994287629885471983078588421426149862113008048736699467377967056580265865191086246826220997354965375130411689947810828133648758410095701312683139313164502121195114726151381090395194565653605749367132069620654168237949268881154782417854878365475772754290065785798786557621322114394258146959974766337152983209453746919672672845904828668596059095084212383216274808868562916276849130565234252825140378155867462300363690776156373227067374870878802981992943502075730756117531050967143257788410284340028838430125204333535760174471330110456999339920310073113129549710803789531729786678142906030658084861262267688421083729685163106550199583550863952326433870270199637840759366597932989967133153033105662932075977988942797922299828932948641432865073188632667686632294296906458845455439891712482527632487527957481152339529543337270596404741989427841440488451347664001743454183262145207222111343349099868994526336459429219018855441121156525286946413647803658732925370939825493236088698023825916466148233200501142184958289991581492384756517036857677702896051595658985309527911994232894509102341295924827958471846439697553830217011165155981045462756371379000705250169724571843110484957188403917366868054663604799552412389811258750603546657342776368841009908086086002667361307774141692612780727941066515602089014623465691886345718847223245835460678488180257353802858936893079145151119155661235144242390191491967093930047415279740655147488246097178424307637770628823479265446454114828693506871527647803789158807496875907527362901082440132496942834874350563520405818042681469464963320038419118487797509722586866457326584933834188055576484887175538096504129868898301354616764685459678759133550746517029504440231063537823420225321658393447545962606475667215537764896009311507711950807405806980948505494229251208690582856169751213746728337624346314416592326774215715776023974204638485329390883433760480126869674318108465001964830189231488848373600538634884334703615485275296523298170935933822208876403337906433536067098438651029281482345721539397263181647973667248649632405392408347928519779059671192726194191105053883185031414338057276630018011449715762616575755586893621642149637280397886408920984533232618431270932664332800307599029425163213397717606688820545918712588307287923251218198940467480833749887514083543048885883577401143462032775987557513286765088439264305150836860058334479858361451496309787759263574989826751544821081110835262440440862358242952068405277417972268499319238373860458538535339778128544069482909703255631847102392555621378498671052195082814928159055377123092047863480747116724793033449548298932399915214067169978192378148787930548081605742666432666231825857719087724413902022125824561886588941117732294321999025068993292234448898583899499486599517026650934435298934487121539680574371779925673444449833902668958563558636602879333544320195809775086882559583411307037291610142399944764093355392792203314597632507142711413480504855888475501709044251931030587881304703829129999442823033792010498783746337375344187617117845526245877359298780536827505733110471759865367711558902049262974184633533997116560273610162351567740074114885382397188803598270538035420463225538557706363443577699612119798821265854879136687600575904637581012257516807104472803006195119993915281785518144238712045096627912686080417397330634270137337653440175171796689048088203715675602024564006256922244745767408990745429442948174851777111270516736763561556515340863844350018443356969172241060919200643832769270694220543082088294040566782455767946319039508861267312501098359844003440176920628875677527378900278005502785984262177408959461818268937855266300093414026927860087673243605807951252661880801654686688557488732091398805577330451771914028506273684150923345300193975002887662330516101192541555268414639018339554731891566932609238618035400447026860604384182914441011987015280302355326778946229106908678704301837214202074525535568653554829186938896614126962722883795813847610706588740418001474592755938422713515135151370530068923624932507568108874023606596712129516328338128842652074962960133661807485133481667077949341780388703319903432322219085322069751544035552128561957268788657508291123253950917725840186854973660944024220287617705293609353725097014103902893957142808046755311994829327327312304023421290834783368366420918529524778806589232742336882326148957109899440290825743564522790881393422637938770160993494486330512371376477899075880095053924618032778350398087924073428238539269207719127018428435759603328871217092388003422197481785469617784288657357469282705500718465552983158907157545235910341793847133229902184511963832325169203428936708774139629595948348891875830971271646909364457513957672440176002411672423964049208904095657939086513552006079905270263860319723016952967716045107691629123958677001486307451405441083245250517384502605534748205469425053400788689943074749904600326578791688045554431430802565227652057413912004998865073303323772385513440921717399064299285348385072903033813602490712373164507788920091761655889209785558169893860681579669896319463914617843935079480228566199955455785580710978060097564935741530930423203093600252198216819182915726986116560768775960660446465734502314519218038336840138514339547877975712768514037357038381096820403230121786997254198360828278028714860365288868835344883217801507368855595891745412706111912150868655860672087895883833106740651035261032793561629071585208252204434939637406441875000782861100871647582785034965897060648322777028615493790515591735381310918903560297587512244439020458737150625748073334569467946423696650131515384708766997875853030198228744074456915488943527168054142564170900768835908322770974180717617141828764461809188110445054046095759094471919668807845432005226332757205662853921291395299053147685589162424676292949986023568148776860846854654858342152401002503075396090966326106606045880575739810568346310913438647180000035473382168620361749646684350242184684506481619392269519928132382631724731058814213242243580321438233831304351748941701359264648508724684361335836610627694762522737098467623379067390820185131132321387637757818994094945968072923051493004322974467637913977900720093804532258547407451050171255562581122045537446374986803148370814981948036781948424055456732592787623511886406197187571566369707076882670462335753519136511840760063452858061967823935998960384388233433812686168846012681805915316562893399377590067334301372585740940233021071331966972064786350699957880480036019894820835592506691525813654956881955200687835519002960794678920617429226078120855980308812870417018555021469873371785107335269756669713581205461298528340074461464573470980599286110762057858054193131209881645669291137731331629152444395361248885741162672996374199862592010990496361465627599439949715759139144291826550856547674217560903455786548628288128140668357783910099302298572191588165158267454418338774067621498827755256725428080924897676536529392214713709416073628778110125333722980253379646401901167550965858540005542600124919046372352557508563350821144118871611808356818558381463974070727606649496455772355215232712909133388170575499761846528487945480582120793832195121610385445226126472672928685204478755217447549317004402130378429874532145484548856870793934185074028939011798345757832475420982626484467549053630262297179214085948781120143038913973994669932058942667569633247209724074731016946426715530858504824747503236057416946474353465664646959226788793729500857154147000117799727777202530835487999076125905692045779329837515127377161438677991665119442408806566721215147701850631790889061511149710388740353938934677234709120410436066680800853401169549694528686046122442924633363127868947183623662183118837542487716940180451377350250021385897622773989084130704618333877689095560472826730510520564879492323807645868158377899543775454453347683097179462528594591275664973010961860757063549267724374669150049948275791823045934341538198045812837766963328621375100429947020987366384070417890390197549241571098107497950168152020645052366699582633844872915837815544274968406660510433951763525940516661120955823235526779000104199729472130539103445150969905229033406883059566187990006057146748927622971392381562636055160224255719755573819550467477675337244579175552429423616450370117746386824884667824767503756952508330607536138025138200368934128492021554797018397285596139252984603218431303015994799332479361827001707110669248440191187191479280143451715304776675784159857157571352562420596443421713036591746952583309673535424062954888064124596774715162766623017486416619578144851748196644585110397014728316113519837455574334015838903694755671820049620658324124721365657102837846473694660738689648971155683768500914575379715103018630467053062705542016576940026404217279496014846577297419505460485728533419903886499501842657398268488243011300643751750633586789615252004399366567188280720092007235691781788021661360591556708031441336370709238399915796654605817101288004560427995521217893664287292598381889069811572505276049339549127545282302522841690512643209158259953208338255691344088002882262773608392234849881544498688213075041995472614654188198176133611587360466900274745687856803509609554680841073288240880755322528587469345469628624104032004575294899186514913892775318376613402041283307519861972129488074623243615690227938789898592522414947261147268540305450516089404763454292397008856689190230029158126047376484106039518640355845729954986021378310115064521446690324689619717738274565941920723000839886797490785996287281917617870695042565856432944810464254058729725087371012229243859831059090387995492261524516762088782821234581989790461929033533453308364632368306336060068641105357466639630394171558365811725022054355042494435777947540968427276987011783523774403574107311021357722716137144342923473817581227176860845474582268814904274655782818028641053340110016185450542053382314226403762820176773457275106135927607171373199945739139811511613807264868568721868595627607953387777394128791170604029083293727940588391584984194208902393229829052633390261858242167965521581947760525095322051545765409832808148461799781805566691478483145977303196068208158674437643935652362364127284635546119028164206213263916726114111406124909198830866519016571188371091391374335661528182941522838719958186924032068894811027263500671293975149454195687735082052078029783935958681768042214725782429882386281272811434908215758724019228400123635576788300494016598603746505059682908427595528959259442977193948150363291468102157474911177147829763508351113458444530905143179952549758587752240129829617800236759150043001193563859009868515335764886418390470348092638708742039596294991454770430651344080922266500532930222380848972220513558880740317464978954450024674114667519661979450002478862744880962016954002589022550862022566504431248565203218073267393246491276559695838367744193019453373654382132928374120774331635177700474742945018510804279463103754524852568408448865160233467657531154315226684664273463820881331093970389734151200064612470094049178609413571036871498027763309004498127791818940227009928749086012991316903900447729804028050881436157857920063382698196740887961751307993637533532745657650213528294953020931092086269215650552950953839807635206201900445239830772707446935272281074605294390783547924963084718780066478702776928001268333687713058879681857662157802667787373201812246306650003472372259540077793058464884607910929332052669742987053832768771377816079272530898234666007349469699307012215212153284271936259831302977136534139078022728849668953525743506537813162669212031261885245506278858476309550117559800408033147162781469855986104736115350021656414165247094203259836641207905100122649445394562744136907896124916334893732820150431551695533105390039356010551976626468299855094052332626436635168061683341235400663157156903270893491456355582899884804097285326196006272030483170889048070144784157303774956243208655622369459958168969892209294712802932845672018639094670239114148607096551379628367697494215100477172170995905549099516832600758344454405264412437956480486230528879291800249671567532796269589916597422688183693105388705740856992311954320478471366350115470539644059755032043024555593484441617313319202691008047537346038323276515356779437559582383621697304899742019585449280031086903343223033805391153743656116675009545237283647599328367262299322398459576435856347041058753610199080405332432555060981403852139558694829532285966354286133983865589810808880944451897813966347456070821323995454563517353225762350247265132736737320417684585863745079613746301833424356928773698054511805583054693907605200970977256339613672097324937404264647321710774357008674638869940731730201892328628770437688612159097190435512395757529658196641835072192972617622242343539985377884537244965717727841347086405969004761746262340536212197087180922556727090007247940835609496837217086139782175450839454062642244724837093559801326513573860570976892598596795254565001078536975076964759572439158617823252081472684490478662025684379915456375826113625725137742041407491533372481511353050474893183146460358483731593944973572823957353099163800955966157589278835042695851878039057536830917854770590465906753595367231653505097145483209127525862265533246766826980648156602608833567618426619767184777216180635359967606840950549578778569900342883483588373173046023904616168674518783715665330718310125119168800032977846672192772471979542465229433459258958449396580350485745121293554760358464799268244671631321393948059033675630911615757737939249057628638902420252581732595516963467175768526425554947796807452520637677599990999928949646117101438401597355200183940197335309066596780118186191107854685193036303309819311473493886196769450524803649104913088142167825231577535739981082609592336109169084317980041193569554994478541770366323854404148124314406508411589452540777924002797625549990392058225076962976995993293451308598605928942867497790238734522937090524585802932725337577809050396947070118979160283377684460278957192558050727696814326331827967594052816697988938501294112740041497422049916622778604189609170929065579115266424765451113090835576936595682819583201483946569859705461422540794699721974217707542711563275327162585696414079037905226413562354911659009330589742788388173656516694893688965817707932346248455261856826155610938838411602279771399659034172583950881028645127621580708970931834124777901729170548302146438165281461826465884974151264246394550845340885954821359469758484955441237752376596653278640711284346993458761177377469369729209320608027948938743204721050300477677766682408971905451862630845382252191228778153879748727020448264977170363943188967714994035954922594034553593573943869856814232259955913795869177011713076926054218994999175168908811928549444005528700452905797372789481186861842520762925652041110614886221853145968812183338405752452584791486000904831755534052548785633863397370993547060928779593924548392443480199223111505272018436638570997680226424926208619168992674204095711676273020229605106699799281014381522963158548357850335088174775173646320422571255591989931501562926525391654177711506360221426020471199021136284937761296691522047487580346399663339974601255223563527373603062549179821476976475806362986423921930057350146550249238120701115660661979269808923144918799839417587719210889565158711430801477483257887291466688921006074408004824857760333988665701868337585065742838870331849611167456678210488854211227212417790629091298343953372454177550999791445661060185730885371411418436184763007641739009524317007157960614673121436320721399475690930425730960142719947843487842094861532319477691264792143869305988410988718137457486836269910118505298319570142495966409150617273961010685496578135496791660748926531191181331142294989600613515750856704473494546914943562337938818433353113497963253741458426391755797964933613082550074665771477408637651745166879802990924892995845390037210902217877603432244880587435187663039765904407391644405332702337440871902246614513258799781077027753144367356928628190210162389661557961902090920084888934123467420690471725232339489411489187501887691950160842790997162907237009614027699873691281708502532942921800853384198752635731233486323023452602401516879837093037160677069477061300000397786609737101211404386179913123466022014270490828515193325225529405284788994591864987069696370069292211248403537992361795889128780193243681091593457115852135228625563497530895645222076353291406978987516548637990690960143969776573863842116253753677251894338612297532443475368997824012602548681669303976265148893949840065965932599797488474028820031987683618442415228403614870668006297757304302470292187162757582271934846021657094541381942347365653320109948514213429294035933120416024081654029397490962002728699415066286257834035444454642759214084088286515306172810262269491755482454221149044770086225735254440694364494624667135757096432363494579323285502442429631357030141226272874410350845004493484969418347977447251476002998606572567350261872812910951747822879405116265523376278852368137263030377437520695230777558115068531773539509006297402599717134589838510663119439336034636982911579522902238393945209132122578865767170090340234452694836644060376713548506890553400432600745903774995523086061292066073916761378441092923691211277471141283625395545655311441737671378776751939135199669715764374807145347956463549588761646395267285131650006098152452523565070101750021441420191024209606309514031894554340027042938011058679927543182583530517586213584663078811113675594191899932696586402120112573905499654362793324315146524894414020670178578351448319190992540085033366590240905836227461819187055889209335845477622406365507101097577853812141615173132629616589324609808220471884410527447438665538429123778838141805137347478921352275388749877180280030855792110077533790921052093108463849024793182805465011950800695594009394259781303854945308522140317385083536772942447904146303027049370282618952792641106786329109028565898450286014088896952403998511174303143450185416036201022319794741534397970357019052061802171785769044291001319856090205744797076661218310531725167577878158134500228743936252697449927055139086060238445253150670208908065472617353771617818668566584178363904518248731361158191299058334732812767292802367528296687694138221016960031388550654604513690414959393861546651052449794131991108083949044162429500758933770319465838039731503195659853490608161681626508056382739814802092467498941175200562365503915633078785347830388371598219183989715713028173801059747016434085256715017373056140593111839854916820103414525287826285421126511351462152506006669299639957028727269492997765277848574879529278528989271952560272683219712802744784493026738504711763783028777679297985364886295393272221404662228597507635805834809421196911078954419219834030495087477412838415084842537832739069484365670053819082775043476054895522445621241916827767465081388002365797184333879560995185052053547943719608096121032017301719760957114954549640720490139343089922420429400736891102520618848781251387921141471752821164048015130725261453469174118085422234076469122881599904593507470163742454660699309603908649365091346396661787114316245268333793233735139471554248938628256444827641304567262937702477150187207998821423305767339551450618059403714001533300511019177065083753813059035792498010147193967774456766464610558107853568789027528402607962770037590822573971021822827990408241974608035932140736390153554665222780580897601147141442184262021208526181192120950784265920062845192315706658327223897710448572451381499196983247436596470272488672941552107540002788555316675612113357889840688087464968127359469784450980211650916857967062051710783660954619539107886390864807135645512774145425268829452746427178884759381701109332481464495326573053472989363385398206915475423994527268026444832189438418910980708494093122682067387114044701582774296026235386556731740416276211308328774679737211574390745001478816678281982695604310272863361861830664522519058273564338182431877911224219751196485861923666011354486622366828595711591207651951344605132418943963799116744946576829989491015459534291530691953387566119489028637034676522260177451162647443562105430526577209800780335851830594586147003875164375025218626847194391475723085788766868342809112594039887222761291664644705404925579081556689768245513605636603428156949885377677603839103390570697050325202947432831236344485537579096951762407441697058868584869360061858845298851776801503432452033398420134299143321369693921005803339537924811512495591618151319339054853214240888858997884435842769021418346435508447803389824077196680210895200829446080633443049078268791253439433990596594914391863159504875463688047579364464282285722713614607874938146024422859106913938407143062646547039188591230049108198247991516921591309700076998883164252206934426637480649154657879867125071774576424503424328686807033984128559851698496873482433509717240187359931578325900948187908967152114346092938537764012567038246085694806260568397236120502921263349135952098070205106534081111416937733896512270399438085538258538310392628511038793630961978621082029991414649819551127571170373280552442815074871361330881680644986757135116170131832195620904149623174674981377248605223533178704984513798270879558692152097066467625472567275990006290083436341537310994168390881441182184714178721886693551484440746312874001893819879535787383093774008050458201857029334665318109155623726620496818923484681524025125379752030292881619222470682286127145407382576825678083975226381784940707634499497280830551635698737383330043429077575022716577232512221743058053492775374682512017761021796301814583026437126329980954993218239223146519883636572671740918486404626392963371754271755861305058803228754296612260146491189757836436432640151351002576588369273461888727001874427029179609894418273571622812785656254524417325753182656553957226424162903270593010235263700397201562082184801108827770589437352395058459036931462641149388386421538560430350421588663295606171912224231147851221431382841707594996253942895682632244467653130212018236531016811882570977691394697743589529807748813768240507513973826121164367024952875525687137932944793878267420329656195008798305923836158785740966955133839756892682853366853340365436672990013153922447430457693548172057367292769792414728535713382441531645110449032827102947796048353163674529231864623346526738882581204973117688339372593448685692292814655035903819139891330528849353605069258245748232541987137833974096192534831148094934158039225730340858069982333083610849376855025648048718736095469030908164821239376985572754971545617893173864922477428695043697365096683184110786343873780792288395937706833892732938519172356038582776518832142538403290548956607244938328970251114306792127252472808858778769353903679158165054821609064316692352377813967983058406887770110592999887262145702498045411873954654801461218556960660712134008007561798520333586060381960330481683778855229350194213909932731531878574363605046292654567462427839477875879522335106151085426983105271083497935313927192111954730278014504234079648438743553116982431598849796860093434137804964289366085739720708288210670907922399793785560672004460318892084328083785697898169781005416658817391808580907370047105924293836291366057559880041323545832046485320801130999389825587303537421808202905512703639366450643037713099817070099131734912640948106892432979745266436924041325935921742385654355327100696998811542744406320565769831789049204228345445203126189461786059423145981903458554307102740820700800390343251142245876856077120724020707721831441592216561250603817827900434044005537710448787910966493417257899907563826475229531477103501234985193293160396732490110403795303261081763289969040402307976124535165299209119440984183662529036588414676391395399035060599890560307269223700651828114475845100635173206486392278073895607085941652880084753273197788147931442252180208559355128525557934638841298762184682432137200942418267115020243769378748282133434990203816847183799696174716735899907985686476158125762787066463489336493819333001303780729090689934845658443948739441037866266075108126939828270006093151914629897561554109521770321843608244517476951074230852495559671976605266246047274919760070713203032466660517882579111374441665524896334192676935479242181842935471591273255564654023944692707480714578079649300567125542655103039387393599118419477299497607696172672905842112294932753245179883048013966041649276219222018987070314330517675583415753720331109218579312547545235766231609205880117863911028727745118352120063790608649732014507695677777789059498616523112245382761832861380317749738151984519989752467984966514800435815535397452736323402725430303656574302686075066913792445126458159975874142232225167755899098905218990761261047889808809737717609238419625510956741867470843369647367571398425082658579401003321738798283045886064869736408502646731392402348312072766536451753256801392449092443119700291131045866986562750350144758279562571959596492078861480165480982938505827706253468038190830304937450476890945915771777236109387361522414015217318948755116733467135104334842457520738846942546009532399463644704161786540781129863523735139983599471192188462764501144063573937553511450227239591276256143543956179244653600153955888915125899900678503406300878959621721604098669484280417356534238937480654234311311463343142539481297466536161942450289099469856438380796949660338484584514143542065926369816523826772852280579455028452090754003171255145255985195804455331293712053787235920061878355421747602238273010615727735090281725285914917055469213317424817596521590142129259342375051409352716627879122572427718947109180419343369822024162386019066595631354374912802574024914199639631616100931428691574736748497033385779090709799217642723445939632366604347686758789766945431906150635882137255038763605159698825232679519802492679753432359090582657504821005265248836162471358793935181348400267810082531113897063626784735909773283526025245938167000051717862497149914609423509859795285767489230576843660547548967389080519686250377920963713075631722410261918659008892019327767432589275743616935961538429124434381522584022618322918486922612474110059482874739353373165404424731334156035599974732919683569224293025929264336421053858916420935872188811192644730335204007402251530872479089621729503666944694569344947766481123246828479031514425975045860863404852543544133761558973998566952441385189009107711984595078155976856461252678358721151680320708012593511026010086429543013012431471996082037449894302454129754709864299817253822870261388854903081819817954550831526048345717105592693218642338020469712220073059476630958093301772872770468100684714020224206020703982210082075781544122016615591370651998060726441509632929069118070131346112350322576932421884144423856050157351167994649067971439750504997969424496809713304325436223009234098553811880216524920275372903525989571507316534964978764616935796993130324597102275318304222030889234431495466145737843245969812168742332847365219102310553024033668528927602387660981806192331470394207621883138238040750000347165709473084958201063935916400760964433156206684706096679989971085072872433860012446736900576833325628333720489274393549176536401976764842029396301275653332506937096049161137456657592411622731052213125125618271994741479261602126225730015449266361308760572064326956298526845510486681014545634333675862251350284926917152426155157341366888297344430226146369640163154113847417085205809821392648426323377973655701823525994642064885310671366132740523934225473833732834532875100883838516333392340446262877826487995910836040455916133422486595112068517042898484610965825909533929950414867694987171176994953499253684926047721555928165461980279102324402713764836272381439204565265732175227513006187413476186936920034588496833775301309919015994968082718400629943424043087308923398621563987685737113984347202840184662298659133869808762061881193919198673887001352499871932616170066114152460670370481725053348314535792159062021641998168373091866194696471964629945743286612242143646911000412972736823708659758517944618614086656618704539955490683565671566968205763711021260738852120146826670539613126219913130098329320973777740426324259207764528775741894193170371842988117814188195888511053529089312390460533770806157474310608945314146702464402222398470984157280633793987341728987237698877728276410669344454468074371340913981597282658967669413234761616699511246283795247075869591456618290412971524289135496354144744179718928608506960435163245904532404176111484011641346138770266090103060823489584273178740529130846451657061018342752337231831792076403965219247252305700222901492492163022181213023780272525425637898867943019996580873702268327080838632040368416036013465443204581949194135180668397171585088492180081373416189124685853187547285288672952405310913639476292331214354936581033471831431494808441025451787502252736920538959006699815402601246694717836042831587283681277759379711941501809102955266940867388038656308495993132135025245140101321491621803692037334230808432968885317106590846569503527070526479698985786173969738581346724926556309348694230026925571214788603607731362039218068335504122621684935876120499012333049771504200887378701663455478292601364196124549363099906914669971148474739041382976425706856434937590863442301003715801526983063075096480456108746410825375345053860796748253931563269358933643966611808575082031223655068828948811335343603683372530559937473163098838487837998949769348039454216447500094586152245817683369355864290049079694973286167712198280468593262754035001250101417018585950551163790525364243366864653862774151569173423864871716514306479710314699350846521641511249148607388062905534011111254157864029499367569110290065779333517174590943927274910417981903243617496150769383235572709901502980953641570639306889696833162945514624734289507638393648196414433784864118764471719256028599470225915205814070125164962436453345106059337111850104000801982347468613992428308616731152826923305717429854904455773106017525148331142515792872785514591821050288469819582235874331745514716452373548769526733034557970433531671460393903315548795598832161983220627079982835720882159867977990198691947983246023651564745861723473745325586525423654809448253151519867760788699296973572216906236207902655470501994644411945217739553820960005314628233407509310283079234324745526714203827844584324966771360345810177581553744735224252787675368990531259270700051134200775875265984687590661756316708480296339470881380229403541267393783209809220158910451346781644359578978533702287549114439108318236604723863151955449790904821254605073668277938796003524092424155373390911451590368823537221792651767862440558447661090572762140404733017489853910110135953921480850212447641619093238169871173403644937984177234151233686824541071697897587428683447726558275737335006192387850307601552261972572655839609415855986647210465460173413873002559640606318261569446898073395173881688823397912619890221329996589092927336144174346990839549808505173700003580549405209216138068600586228699326650077206890237042607409137021168590134967406189408339720657804248429275649347305697546966150972316928367031468118205111241116224874485466580883293248491209309633638137060536449413104990882648892834019088549855628545135737284037050735059911356114789103572690507505615304053413800361037533029224775305780864336670277451462851942804522151452542539659568049491420212661812989918690044063693386025460700503355498376411256016199265192193766231381829579461053706582657693108888817103618101168643050383027287800541533056787748769799486275289256178084591460483975377102955681309472156020568809183786104093313064236296604371896236422336433102714931091286298638298617124908262884870674234970331660921466310001919952030320703649592538402865551473008246039492731110442477793174922667462096546323586312804046178903831407275154437961278094484572566687294760713553761657440679498719902269152567267246711753480306542433369282884645013419360103442900800596547331569519136275063861179142108802274868406857643990542849986301950916911198081848562437039938815668284981539217854234421259011623328746006765014175262827204869882346473165046386715656612195307605999811983522496594834400868656768375972258616636028899493142680753959150615835386323084175213111095449420586713571291141195457862541739333642862166580859352482325055703504674929091170122059061354966077158538549218555832505132051252584793386363978242685008295089953196520591957307489650579113822720404145621244559291057197201956743727427559394436919305508810023165116994977856448913947136702782622517530495654802877804250794966288052388001633762177291032273712098280611987017664410770074036451789414961543844221447721601388766626072353543104650232532513155473005466733205044127933857617304164491231567256405783363947224945262482574136763498407080998574016007020374841277635456944515756018135531573845634046589819792905973013991480309359206595182142211699301665389550504364761992620061316490541511895355942458824614168645543338962974658561712415756298747994167752400909207582125580042143077230533250272175096541844136051825832002421155348355241387000334900490218695691368621739678180094617865781032516760850634838600535762268548203047717770338148031855327392880626261270891432343117767120649642405168816154889836036082712537994631047783380996618782951474693618201382969773317620964708277700207345392810334995881966171320712028793975153722261506860503051842386382149548671870765043550263258351874243938844826798439302959110748867693677038841886253202198775587782099731896039881579924401567345988487718724930982007875782241649437895972185330517974469198788876201839273198068021366079149483927729129905402463765263858597065520466471231912900979426507850691156665024044263315829648265792271967225855653425547393384861311924152153812243897880497602188968941161204921358106431345088845689630785438137690956256220499513331715930887008542751422178951389608881145687764606082210335987651231634788478703692614368514018197683527204886244208626410291969644461622469287143115539042943926393586289228858994393177238092629111756408143371502288185640576714019013968135410215685443478129122570254358410424881090636802632717127190241142320081536193802711680576007093552488524455392686471872135431743296661081022416418554133451769266708801912926012535051641813483319526706884094712647675637578257621143698391227937547494098858229581994263818634623619360728470494391726940947595055406227904767850532113381572852864152130051861767935916397415576265819892167487468435944658490513251923770022527507479161017396694368816143317509176374658202957251225907284904608869048413818117730489568023022267111028143808101020010206413006861196751023936564894839009083557117873089221792942711792815412313865080290984423428670838934917560798890743777857833946275693671537491260487537599975086725232496473964853851657914182454590021431734672368410258597215222155483543748348025495878710721039753627825889008731638422360783714317614263260498057691871804233611430393273512037389872281998842887029007128217682927885664030919020962232477901386313504147948362069937736500222752993254166536094609856008296088558635228920386087338416340094731348650459230410258288595776531998477709464771488255014347102907966103255730647989070464585161918932753776441025761188996226409579681125217160024540666961439722648668190693009341792024073783247186334495774319924397923793254706155486912483561070715102407645772466145703817492470726696583067352716472633922495281575413938915315967591652791071707915149459461379442462466165359771843568216053983120881028650059951700622440386500041046560028669100592334211769311711510511193987449046269410396481331664827154257696089489888450816836262669905012258632582121461945644274061622084703165349580167485213402214774426054473381014335880034777650790504442084404975636387597378992792634512319187239738742718327264945423417901563485931523189823001187525449647529322126661717911891743892897650402191463190003504401289200503108964104873650251080923837274785831243385174535906092010334328434580694119592273231267132097157588445494178992981688878233374650429298986845082971550075662371569357252957175973201924940838395584777173790463205522790187021631104755364690446721093547676873731975728834222373186971862814187584684058817980471986305766929173767291817472704541712045958081066188524822305352856814435128686991721402869522293848143819380524855925599988188246490646469125810023017765950908457811805979409968702587022544912178430791519547524963550212679299546955191907501250391761377832593516411456230941196316559102364166126792572057260620471931004659805694096448245167111699069883971158092502868604227730053498484164219769859606721412423713948230530855782531614631459309086667166156763403829249940618312346052946425404949949854819715685051474661957937062950278889490674616010315366646764453461694961387725455230773219675760811052007311063821834922524570945670020015768980197496571451930734653892470012722113486067856347060122490907604753030110218010117238607589795365124629515528261867176087232947033739260635298912682845865815861999759990320822698410108886935262164068789738656453806871493643037950038784990711853012732960480911930593626397843911795804646815019183691732007596809773303210906064615663868144251308984389443518547995014229978821497332672269757131932255113939125194556441100817398912152553920764039584310226306271263495399654533554650329067450964510790392425671863369969381233386243853130122151894001315191090790748707297190385072062545718332919693269398492315945528729738810874194884779544508519251540248816626931982078394853417181407762155842640311461313145624940672901794362731286874232069483110225023982597236514295037405581843820003465633094268508698916563407017144033919783193722186311262587224444515849895681390362408997737519077187894603897600489396645656156318093432123558085764918728802864268938444337584516810737875058930849749763026350185544334956679481416654126827130001658098610919575016883583870128383084972667023874451489819747445944596264965668604745310701075200879264640619252968613382776840362844946464659365187773471968647686835735282302859927924374286811710614399579910553880700189873326796243499981181278168773535632754744750243136771917612587026397441581814008783211426985286289130874046052027729229507704944865807292169489802754953921776777516995403981261836911837856420710783410645459527941364851726645817903309724303957504816058740272270128664231902978159865140381895842600922765526473740238999613168169091646956638346878355373501173730073420401049388783881298814847559734461957398878622997494212739526927388179225449197383245569863132865494191326372503228938550099726412323876960284285032753814729193018548265195743383304263060231543556755863886938693937884313552903110895840554360534541063954117305895048169685131738151733048526710771847386697815157948112309693485293680829169686064825131230657232450133940044890544719689677710617990633351688402668328181400504695247773755986990056294298796733356022079245770273480730880035800820864161340109502562631839458237541383717579816207577184370815237371198027561253175902159829663058371470261240762897945225376787513619956428806681777026413863855104491135197367166631031279529151337922944283266927158839483352143473084844186035619448225957398708381255113300018724930446839284560020554560095439356823538931131135834481560854427941097040352561701806375208787720655146339170495281010060476166340166095152905290531123307496722758050850745128048203166725193627133747127847435390264087543071132861380235547634314576426587622198997040600652160262692044892727557636686951345586726412296609833402190977225509854075329351745734508504323770589512025923143307156210250627711656441598843738237396417744350020235632855455874155644725093961594372464583885439449343612519724212176482801478941949359425705144204483200020243764849958744829462505737948444850303583554876259517038846989280452573714166181144312577006565996053690434468720331823400796722172981919923712110519259807328679429413199253391004340090431217902201049137408690379072583364684204109524105983450972140169175139271929743391266487742551219594908925479351642051181724177738679669138322196995918382150609209566704922466463333196569412539650060223036667043282466585102353970928541676455775759795691096241127714860048807451995666893711805984332574914422120620111153894414664580943424250507181071404799506059691035079558907458170882481118484670674354886670528425822493888061893505802603834797783054550829763495517138285167740992603981036508169723187780341474519157841453804086824702766828055974674398140305099664138100177162166897581596920340976301432958729991779504313780853026717530210341054545458794345048749797048947365338106681149053829669239966030829144697027890432791951720658514354722814358727753823051889016906949049745322754202575917840317869249520695283909390004159022133464378728547223757331227059616563970335058446058067964879896283858934013068823208424150301780778469516846219048961854630266921740137198502513094462824627592929405879976493903860730200626819427588499857427496939312691291798713435981503905170916566870512207852042236047640357642772265155531055180313726129409264163301818477796473125235807895338448675226720328009035741902628430895168328178008360506270458419951468273901643195979410980609310422846597785879463465708073844402932917757178807964859078488895741039471208881067675985767253842270125510237832983415662207791273449521699951103410238852716026127141574389851628844718699115537234861980470300048996195844926021658862761491256255392804364641719320230930389745168668786416108569075733315142643445842031613451896136637877886967854429611388653328180049556866774566999756287458236269264477016482736216027442133959016030143825042345261766093268570643027098649540234874466706038571248122183926562460286735065345395116204902080446702398224611644082270211863869811226370765100049339786971385242869422839895215209579123690689837883833058172303625090156874838527803951075819679925529683641052472573454145614580334151825146153489629548840118602906548461529585932418359162337060503923429451073644470362178416990145144141338231509159396993899770593724315346477684107928292091842394544964828604578835262788182894080620852363197292201474746508470617554793608677483165543387199697785915448580919783226474298070919215839544763734227372131125940035381760051194631132731859462159486508925498585872645685579244986177498923823847960216391658963312226319056791447862018321667395273287812321992237173568024454664462156034573557950736761167694906372034971359173117542331750464734187564410318483424529426473475237668653240701532508062775878219346682217872792542154191989004165984680925247122720143649063456280903989079151580639089685393622222292546134490688404672541066922393048464369078025645340988321956167373665528136855104926805431505136045865989505962874591595508659845188868328867629221549489594682973785438248340727491418444084693525748637474684251493732500895292788792308876913156300721748893102644182635966665862177652124429770928388059617202638096050840506038164804239123376363027744557577884466738529597251995866554261801975321085187043421668221682108174640441999765075176937509128741035723393986184701696103458073313574002096673500771208962336178612798976239593629635761719160033783779912294577642708119044481439071632521665071976799313284548800291714395633198847053020690809765923892022416265523273684105958111546717859847732421791739794664416765680897018733572008156569074035998170147414145139605447264481574484791404113484689205496824892190767906535451561705264383744285903505245459468450632096745844814559058129596058303174689207725003873958055760763312788922287008143271402599441656536562038667595368828141374184190624024896475774900112761236709203566284744259497398908594076082686784336662153086025757632455610734390527159901743213261549776346687519879088217275664556856414889808683051764700912495307382302122238387583272301395003229791997299212701373604622604034361880563540282846028726876867138887103984834224335193103517257256972651997481416591641701440679253195203570700396196124053688037965665673170731037870731579387591481132451018064817213972644600585858529829222105802952308742741645432811321969187892658321654494259668395123973969983692778376787778743394003333730928352262285037358912357923742521424907896586313722415951577127059136028979721875817836996727393189924425425050324881414395011341090667163334851642010691381739614534499832152818260235571885671784527912047740561638114324444657482349012455224753529978369971003478484930322330572178881943948661392458694791992317197771744513528538379726057806732079644930218925036473491003751940755388594803048257408026565054969543103945093441847072764815654901880413401235076471289159876881630591220391207529398544653412374096294577464477294170960871671270420770553676639155504580936775885688944234432962483356028142937531550800706414466832716221470835968363302791690931266009835820750776973076499176180364277391518635894527317644524654135217383297587482013233982194167385023771834984696550671821831570136721705625608436907121334369619308044996748187648703429810602320091011847089209890883296702150054891093755282100863903186635760226640452223219726220872092028044985427267573331099249188747966102415855086456749638646001775991365982204300100396328218581621087747801575322343611185398201195760219467472489711842898094535686464266552067247426363763360450010804566070260221387389190834599285211603624979139832327069241077573751749278745713069607976992698164116200493309201798892229892794205611252287877491229559860975506679021303574122711071157445921632159340381771572199962760353761856121967197159457534424399005842124849273450070508889263938814887645310353732340048316767674153563288846704674932751217748052954827402368912021634485793403415894947968770208827307070753799617662411843165325201669575105471955843366485679147369083000208367588671747316751489653790595084976913227127912714393258618238617716743361029057716160484832103400558193788716566961914029496887906886038603222003201337955009366218916469063579607780609971609956684285175817921354480648839141232482794264318394299419052539970771321648932683030075225037143484749420080996274715100076102793969374712756720322124486475131807595485009623475200276703827218023441100649481099066828625467633811486240827320676497722123551813972850663057273288608008721359108762402417763765631510865469401343311608884978030539453801971156344242976130712779529316212568557027610608418254570525956141138695656224131796756359494810416112914664778749039640118288224608273774864705159231640846245336385405207305084413135176972807837516719115172711252311035593062713292860888654093107670680119967727708912550042034390380893608748092507488788953185417566989598650324746261933471085216200364634849911030233652288228940034399880906294338988409672645973771578643101918900540265134135767911423821464490418425947400778463006464110982213703066164073058873312854292408777724866440138742689067609498035797879721362579733947261682605768932319505233080261539548673316804429761753112722561131143836494443260638557511341268261819415408378146799530987995517123266011517606820451019365259524981208705706964795336871696083150600841900240871705089305365399981603304396882680938193225302755246555078790062068722032178257759606203897269999851033803497218589093237062723969265734018088290899283718145981451688197747498612724195386836106100115322128260682059139229059313077979369601805972637018735219168023816081117269533831880492600614744309804981168831910927675010245400818509473771038208597674046422909995586546000304596631442337314709032664027610844177288276271035054221767236918387224287447127663430502381833596187816371988124903030882948958337436271539221706067390742854264047178293833140780670641724823221196210331628518664906152900401734179867049296718911945759171231962803018330011244506204859854551552500010412467825022443645608474486881146479196648706576199011196817408783322748350012279450311606359086194112332082329940032058617872771952907672568324736927009629962337570829208797295823412692851560385725132375238862610652410061753837594341387271941714550712325582324838145317766134273457530311719398997178710875729784526904262330910066197313348239736402303412038683551386409987571580113033657719577187225660149372753679315158698196094145274271099189023005983042382615601459036477840261540544347632713741349961818988685907323674706963665325146730860245202203855240148650288432245735461541084599632584769412865820995356918100053507890074838763166047061732361717140133278683392896906994039188980925523908794926757151596743060416602693921700666802982284251833396747824020550193699717598963787304392260619604927799233783088361548198390823314210583337172719889778100724766272288086738403670177326817864049248617065222548496178416368828195884801374373430893648163334989476576651004696530737007489441239137921596314584193300075955687994221189391116640679937714003186440667292985046083942994784611647774141722377957191473795815230420924488219179660945446620222807028105114636720789711754034316526229911814571867170510042698695115701443066494599335580868659793506507898082355518542058843011473904566790447263821468303727351104797434032639785783083050437305866723972182368765335871085977838032672216387908017061331638242124985383034178523733391488510262599415430987147915153518675230936441791272802811997268964647525252671500701588953135437963837591024514702985864376066230102940333120663174887014809102399336836301128069931042508040637848698226650002588852748489235949320251411900851905025065431480747850858424918912751078463112137728750620676735487004377449939044317742987034103864790869117385388301745056283656679653276129994754720382943157236842117579608128926064634510980105362323178390742156578188919913642127086320699314336696426517586116738825628032837399595926884924512753591154381010418874821408140177776868340623736929276555323368356701880835780454997015620309077484285299136810649288924175352447259519679209020892612380389279726375071782306365045079000610279542129864413894161429117403914574125042906275935309955447848830356166459861801712536942400394624919742870013547289806744364013582826967029638053860367043668922073339534719192590948690545067678935957273432466947353604222530557017849417893014785796248535603470228899413057721079179151234140496301160164552573952013931352840286108201927546580289354765961356715897204147878415295139447777485235552153906983076937950809670483385139137777658144280260219972990784726882855420247357697085362760522485884266649863701781308811591427288507892742733351493895435845958017523803775665477700851062932404672951629129877769718350532606153932148067791210718145769660834779616767791847471378619873315716530205796145982563779519321082713123729759288340399999540708624212369364612978104405481835131217545825366975074741580548379122618845674244975908989223800959340158250754331364048643406958716980520075766042537024965905097231776840431396698226519462101470171914466755888584912296155945838211208374999901806236733472091929673567909376989490252821605396385660864416780064449037151548122849151041138022482477985135094730121983914521258831641056514861695775875048808679217000085026513042480739508689946912695050257003127247411243357632556865722326055725055379090236797292776737929492049529076818828055344493196660763209228527109504060345405746342729792272165188008644393365778672616582733047015167310525505391174703543565922627722252017568158276428574901408001873111282678035205973490888773767395866689924074070520712936830812364125685138792799785931746043009911358045244083176377069956803970457147557409339449659700590860253177906150584055704944857705490274554377691499373144282250498626968806189492895469657962371868167298240549378798999471879810546804314907368762191597621465403913634667166911312135077194928338164715775316721582951206608072444801895867791319159159502940488637860669521138513802871467451223268942349749480347613602911462644107660676582056236345233510996392780471151894586904751342089112682375630262646861626441216158838036761903067926754215775112194087279104803048261603674077092302502683811069593255232442910561192084315274457766987076735310937091209203724468399590746312619172055885100716509878980288357305898641590405071428539933211759465887273841166622785749087075014057602500420701893025994556571807055411443150626141651349433363062463163724616227845742490771885778722397218688153725360685250195425280151401310535075685866512461258119356534085079725510657222006047319872737258143663936279092056343357962161178610506696181643108363833871498097584461743181495293455209678236438829355647354619987083435801861749110958103588995929449867558160975598417868855149087228493088368444903655308435112833796886914998550923018427739104472815010644968456555801256618418655186025944173890138446851807929302492388017953082369208220711741910451609767765804359151123926028948853538649488726759013060210810991766298486686281639071819640773504688567492260757024463586264591532578292922063154430201765794140378240909750836332766154926444509037458821840870106968935439410331635343509517559491689700206749638553254881233303684020870331104450577398694202825899761939699614547735098638219798579133658982174946894854537716164455452062369363434925255674196108904417669691170208963003246289787564540836140020935241863808417720810044762824121370420650915146033035755333852917055713694529187967794399480498862870944950064463964752601822498235581678622413874846468571333117091122765380521997533182682463025324980990451142311766693164746024831735116631755082124184400954598265963334176425667411027881101436935551718674413400198157074700842755531518483992270679406608072375569657781846431624089775549111826010973196852366116479303920377975325941587101686628481427249248655243864402637968675061799466932442482430735662365558643110666612017046547359180092078485659877584185222300246110091596645644639740191643311230312691138907925919982622041854549340058315494083815492688032402870555075927610686041523331688705496092450756977390152409843750404893308437876681850519602069299232018163767923769348646044946951840088366123388240681714335325542474810796215818657429018035105665989411353644894861248037329278811440862383785193946649439161321486555280725999727282177711239815149782081879389407502288984092202396414277204538050068850163084818677273478618994615226706506915489691573498051686987703876856629645406867004974755958091691711862290434828233327393571431118389286172901479218131493288989318258878522647781685996646688574993767305278298001042537919365109694168738463455027256381561968649441154324402254218485663547603692170436550203983502498973752653762562320404200731333411572791921184182856149356263771020497874791130446735195066204750001441075304742599256063166709063418943883959597680110021463611796369132343504190585715460811195568130083455321567700949832959477116206723375652686263459360096634228848492207663238805206522706549982187096962644711207411234147016688832907812255298645825949293236076361701859859718298876857777497696716206780479368310259248370142182033168620078294726445852913629263139555701125351003093875199533112156990170982859611913643444039040325604977123185165594556879438514373477177423683858216391801970458168644652265103184408821696473508208259371671250448653409615810325645472131690434339439937171377051371793403662478156356921357485924235868181977635955062671566752972140730684271275473670919839587364468052937653209109782736397546319642334176793983569137515273073471293733399513995022735023866376816588061296729669405070964311831484366875792591924990508435579427545419540058688767232670986790862214734333009519958347685401168338281158137093231775667434340065580976572523353098609349924038918720935598803902755023850595190426642707605500443694395475879921159385776120095537361377190901914201978625545810253404386490129154419312519717899449516709020656843578780957900246279067608482006046452392029139386096724325549737086738328101420982942451203005838832858644050228834395645406104150780601962700207594248982564025371557755319354480899986972474178777621055238953300691124207154149542005736360581507455196402354777856669854516976667730662275135919029088849514671403467340052466181453534860461089220861659245447760819440648349094701188793487565772881974029176958416291650419142355043766187778505889858906431114736725025893121490229055381639270522418241739971381391515250350283664863026816997941658531899788060913060377232254427624633227676536785466420660118265252222293086745029434154054273686146407172882212410572738465536574061451328520178252668588842936993654283990622799997223917333592340467571593756217086415057203880680313447984375086273516254407315252852136757534774033204567055830826349910624000671988322585962885485502674133780775009074123504848768232808473055073073589821282810565397122379800601333712606786678205621793367773996342986949140418341282540621326465798808343024738379407676063069333201668901108122122073037355182570560846683929622928438941559734481386200706023734689105481371006961355012537821472411464238449507457478024310523960784930470126366231367600843024122611406070528803209085385958514335555883532003414403474414195456152296023494956951578258929790923357854626962036045638194169663081317996197702178238367406094708013409517795875869646253624326154804277014167885686710993621167052545988840814866466287180352172219190083827392235757109705509318768041442109297340042486442030941347085156233350400447373753367763421289322287115616240494689351714178177897382225162428422227829502002427610661212204971833980889430850827828028410904498108778976502939299687630498063622586184990397265411364148507614713682217571070393138026766206606541652767812024352564361008022775698086416487647979122379907079967731254926863113785709165535301374716406433432818290674483176140178137471625462199667422685304228554084044911780724014821818003562497975256580025983628692030822426645658079674612552031038892585942637768542073689481737239832098932859009297941276372963145195385993019631137145093478300994879388270356669147893833977161515239809545713481020519951177224541194102958956108225906454280485222836016887353168637524018174029814945545003763313169145089655525007086667833844720223598022690636577204488181351751275819791495259673640770958843835090886647953971213272782798582150627868495244774329397392806789513733014691294334895082795444465724734188013531946805908630731393210275212842122295644479311353867693542464268079760708442079337955164178486153588180478659600713742166809820513076689660674896838074198484464186864745324494262320575500364232055318633059289498591330527659348788604285532322760959817564019350649014919413899974257569806357621878903974931695335660941532985148012509397598182590543256908512055503655500117655152989980984628288605927153960977478260129997261009626279955487165950666512951291879273517501561426011575415340987197258033726903543714871725661931104478896166563492502735702046199616428970210706766369539121416393022382045258920642947730668152501941741417120484972458002914570102158354091146960403185964277765068999790929693256378380888282928123220106907951256851353423673312374888185318491043594659068674276451830923710652204217521706271058867900942700434359881154765809662518163116523153993858519927751109791170321416659727061762702750984343146286484751281907234129933161534845263942124882932366046197936072420486963206603553624690290556883247370484588734392329777580245124411530235578712193621081767157310138809381711834816999919756771979617620401014628885215926028533073179433658147891540443830628489759106204102923907889494395127876293890220563008652082899334473478921580629509088258278675251964528180598514674643283993825843025764123150607273237539409723299621433613643824567496291249369552258946092054853597548648136488975891018477738345108474409089739002760831797721702224819946353172698717105471094422506496204546771237322266931598696933351419076442693627338235483949936026311722314381025708885514004370181487748457492871795724373416719002383389333673939747988549285438657046953487884252227136566592377306779022406161482646530559604594605954531223227936347977665458115050694347903215635484402095987758983653188371584096008480287012986961507466661224657282494408464068235092314594550191666475548449455696077442692577281046923926537844216564683984460125718143847347527398951275351388212740469721481211227825134028464146430953385358823118783958120653956057968958229390551885898502278306029064843476408614583744513629076858043829734630182862090644281258464623301867840464556975362943161873208349500251272728526540923429284661257455199822580765849679740011774375797912175364158504795193833644310822312975118284503946582871253897274849635733315120433058912370073618845917375479219023996659855740236172486683350623494738910052780780651707966230016052920973039845680748088317318912802444879577555023824828458908435056605098181520754852075483308553358693069884838736214500226575932913760614646013257224008697139392045098662209255985242343619365535349711863531074094434787449456947708121876477070982183971838671054605751173256855208942523406360786777202575623704950608643843232718408896414089424131081795293864615863578921979727383165633958910816064634065648303060899218154672346047487014041931479236684532911071026018957732875449126658080025192084805372132081206209996457573208851119034792460631518653052813527457983899115703817207485846782487149556153125906050175537827022684021016058422871115005872737559671548772339893032000083923380201343841573124726351281410806512001735307249097843976004421477779317179916533357488972346165014431446845795453830821881285209609737547429033698377189111731541250337618556882249456534764794887748198136571851109013458133661842495139226459140704823055271730500101400069243028192759429145709437365008954360444549719671776876893742664058261542456903422837859222878172802245914189099188508120711007671192515322248592051392134565807103419479721627180524469952724989948850473318849120481328190758559461961342210142641442617027268343094942474263176629438471183450499561302022822821183669869524305929128070430469335638212784488275390085806871066167473955894290917646043140233780029238826455082035012718366726787747839579275732237521895350508725622362268988056638828615763337233367169765336201268880250536191046939467110750748263657090139812886001956199222038718621121173808341473188991265532833679697480513173311067865672672642249081878145745288392271940812220985646590800987859159269132419488925546815557589342553926187508769407514899987491864809242547110008883228583043343692478414038502344146389891403406140760993955110343638307303143112129729320791807386388780218588034878302969742763236689406519945270478149750560992605463080829444713929624520709176073683562554632228991562025702346995389411579902110604180467033371560019839561694274558410494929560719562707848825577937852934551494251446597247383754356718036787063145003645551215746166318444280412808147420178420691178058521696031631165951671712081590636685258675518813738032622304570446146422687606053742531196222397745306892625708782255419701730467665085460452601410885074358543911465149227792762163799996882159184681302125352630037906899908445074336287662773997921027954494703794679481603910597846117960066765054242985864494525681054076819706035632666554482493191831942973153137185249696305558726037538723546926566028006888102871401956465266626393380500693404914333834135024915253823734409842252487579428545457621378590976887511153732531716638810652132088839625162310705238226881192279788700621793965312992907053628962070686831302356020072099741161814191137331820575557444692760659765650799958617335373575626301238993187777838182621068518250620571150934780977016268473888126525674533143649289978380663726996479053710848506078259985579027870512152060152086436301422252801848453656806851928630474542405727833360743490315513953286831750063096937799526855089145627631545187078383366709652171261493514553335015127448474546281336910074670556415828751919025621933801474847522901672837933490675177478767691299580307246302825296410447921735410774677636748276817937087574592470023132253544430478951289794561348279883948774235733151115682309450294953041795123200600248962912602639777225069438844359888545362682583917562246694605845289542969484141317920835442352422251598404361556282752534675561950417348139274573441934374385342936510401293130574850627866944506208185500766431943432895327618984304020297155549675645366303730071725109625628469132129027928377673196335156948100258765332943855945328780755449742183527853755561526129000257655690541815041864141133352345589409011376835844520236198658551190559700665144354899118357369651125008857624364622243767593845400740080955573567404895946949561061639017250213766934671232100320679147708870491120248318885179709714997835268394428157202254226617432748547120921324558774126954473771098569621943383787083944589051245786457414452028922339395261114298011976813846434378004056720681532290682364886727884082171482584340416536694565058473184551516438914629169912473918063626349361801416117670560832415537994638846955737216801904736468722478799286358423161644606363548403055016987439314934797082446502899933827915726616567739559619375339249424534743236774036086704595409312441526413872535962570147730388537560162439537261360940140131887072136960156639983758041521140192224892737488769674322579129587361668499324417869807824120154794782622315384869519975258155629810473988322426189499180412360874998781794525564841931748363088441291192270701711677677490187004147174219699273599079264449964919565753150128046473054530482799099389088175389923369129452071212123491632991913380761497034294987809920275866743240746709232673623873841788377481935831675230810514264003943628440258231530062965808273154653416119451376177770449997905530822109452849387843260841514692455863469648937499025568171164431967277938788943473713748687880609588346231767162719860215229133733115373779579580978351562679640502460751793270936945387723692907986204180760385692144058086921566006270238509630253543584243992988594700278798775349671044432062005260005343533530019049829094914882841401932382757448322912460714558690336143362300230962040293531269535434155142070180128951622525723149939372009331925633939227097036318980265873629249711392956346783508116804024124447372694674786762678791736257946281221579222263343022087327275104321637151670884044931977120267104930413217025841803151560002892191639620694828048413367448513207567143138276385755260771889556864259558269528668392291796610585983746700946569108306593646088474957237630891697236330951941959232396953676957024512532596273875783134625402799747784422722675397206979353749960593297507182114190802349791443934599350280115082000750775994025536137491790095885852251270908739245105418046641935195143691382253528235244282849390456650392321789663892274683594073834351347237460518303919122119859528646587346241301906519494371084291668146127574082324022457967005877032348459092035911886713074474272551552591059102851098919290290610899064644981878611769715454532517627033387617246454606179283659789248264488058483853857141657573795560202044545964715110592552060796421615708953252916714341567331983703068499771476251817475378867635836609642348914919806933241021911530341702708762884513365592668826803983573052882838750038767292612396118975448800532017628910173885068811676018976914214780783082570083132767284972526186555119907816953998149008258762665407848616203169954907997755297043798312926621731633747094942729669313594669750823525903266418329714751220416755412891949228542344461768466596110500341744563104041775206948987041220848874492968423073318686356714427501510340145751922418643448402376669424943255787620707432134646509720922218645477372005685630439083228543778871080479648347362249518154452115007792954854224796932614385022661616068901100415049017779988411146872251525141496408689836506012092214865493219071452047548440258389812948119398568897348874440759300416825605158127596601514760635280417934095852186163428618115710418648260422306930288254034899454658525366901498432342761670851500598935120416859747566023910723247143929946244817851584088953100108175966831242698256009237842779733709950604565457741553453267453744028212351118327229077425997977168269862300635524699395005955245517848694941368781879801364204245061969691925518492372029744363890759775694931959461461417031683025895495924132131987278469604296556860655188162719365985308159614232659819403215641876167618540292233019423133825964713856893053843915348307667640131299303606382031425806104407688378107065230650866445215439810043254903097400026970817791982570137672392652178939934484461742736460055816274231607508219255309268537577592406084737893098436097294201720976798670603025031004535372776696706927503248002990567692280553888867342784895009947435388114069214176370458400476198991688760763883171406828772212348755466333342664126508283377127936844303625423925118086348748887773797789724731964239040556537651365457967433579990956239264419039697897950767890708498868895730898327898245124464889841837596017090997231052359692224022675659997428858380883987529574660752052523205444035345934086958361027425091504627167858836944005355365235095849124855283828072728173778710818003728477406305920071727268187594470558049362698561418894765181237206495453702248564795898423298593629260248724200435526766148226623333122310318007903307663657534091778646577675579930007743397127205131593637186313318626622768286322421600521239894831056017957959336741568561193233388848634470350038091400814008983371194852292207960057665975233538770337300727075486196481174218775117159912938945870299355428005625000167821630575592569131662103303740090168611011362535423218701555572075589949526219170562930658644146636172920721143317110726245790921325797675345701060779469834693686063050534106921714390010889721894949397386980713372216517657687654971413431468619107931200532962827579038326489316961516263376713555229114246928772980435169245386380083291706143814924496022681247738697875651225342395481538821059770619000837824095052569711981174584030808887651334281206977090010236714723074312126929696010288952690960520915092730187975135838398153788849091537070601216561246700872335354620921047170193646445579110471204227941648176778676512396251353262629508848434206073769308911386737373311917812471045195057019589718243843106692415136353041334527340504667638198821422611118288271766724337077042720569178117590957521419021810066300534538607290890030371410206049712289953039118174027796247895298860947153654291679659089750895659422926590547562341311546794531653319200059871853116513169177171527472629881768195522575269084614331469587942250248096067556743762876281908400490927112776379620658623324319805157814006252631136608783237130490936862191108138646880014080699246955980684683139622466823828404985396857617671234535729568241262930398001433621557321712872620552619066364288906837416645783063960540215837941550586180075508631798080941301685669762932018768285355224755057824484299521169056121820436718702220468588380462141345678027172266524860032132722793727389315189761661474146493797196635907529468878358876753480834011970132120540318924588820923456942876676259277637997662350498668685581668873629622433780049445199424641286506054111822298000693519397825770356670131389038634536649025435330677168865775135317430223270114547369948620282537533363322667513618881787021102637625281420750276391959100176090282156693221997934165939083836551743200648090777558013046961447055297881154069189449249467307445845045493018428817416179077755485681260375735317932178862713759785995317532373137493400108871102900688553278767279719291939337462504495489576451719428422138067675270089348052982533589363372585920564985492553316739787065336332417253152355272118674972236614234684292248953190295635930190720107642948930380658772420940029648228618144286055246752845027098779309589238206455617604114490533344554604120792780654250673556659016153049244443419622223102403863501712071283813321298531454024959638698595665191213176380574323856228160957930622658473552475089725099085913953868355971422100198013965440558229038370324488252733869497979076769200942846090333172528349353994173270959244415817066293899393400028265043233934032726468445269640869217512141173751270488972712801666175770013143749531093840250300604286027188123571307621080772021726774673455232951639586542350432818173447548479108984951637027235981326118495726501459296671916282394514620866098600781788890939903535953537802203671747900305225614199038861404313880779188923647086686220820657462397388809607388059527714126007970032266267904650635107701168103777917300732683013904678702982002128772104506944778658206529729845751347856182527214767199155664555773155235674275290802862890357650007652125288957051109924554071491140628884026096402456468807708036947125635018329179602935218008141783669913683319454093655920395880838232724434233291452931150765188333594249652492727399906713288001167391760020650056220410410123450475267962789907345856512010322103736202228577689962286677592557493718836625318124494567477362051908635050133592374388224966566739404414171358570584755874561973253682233984798656144967810833866164447975375634104360354355991689627725221199708927320586217662550614158638286956991999769142564765809887080058513143473116628746976838331011991812154856083113574736827014808776992530946078341153448503740904311706671858609027240657549217722506626456351211785685485765417137304566018766245210321594112960966014422694392217725659174372382090881375704555288568700218559278749506269035822508341195771940634468029658431696288278928441392184131386381923722335941207101771892288023109001412621284658603429451604965091820521261693956774015437238371658744379557204045823289961733287820204022444683162655212139831965705907862737332966644145103193712256805932386183397249849793098299064310193610990218853535525608256405537458033885201056286425521118584942734833931074043492643926912704275136703736186591024400927145769990824239582153631476103083373074070462478797527038011942564578709483269980356163368538818274899753828181488362327793862595689141960423203685513674352951664634401077773888550420574600035836962847977070244389967161643494596606054747452831505319789305277644882140597120946930847006842692446811045375350459827621117558520926249995175305501171995430604636748002250113263444832458653492353106572203516677167095019709174066359702056422181574112157346802516729671192408096140021416997510740765218155931681655211047847356942889365039219053121826700815917662652576244920654288287266851653422269544130887533350595582425989682851324480525193767061349030975345847042374914070956338905515776406452160352468211689697353796307807635831350496211820958816572971856862481769308155420523514051549618861060062133891694614476141299650285123453569732993669617021222741519156079558653446189036914679132099008276305345757621109675534842815637313225579832652947717802382789146965797754037878170732477226170649940822008968349887113017515604129169476619263084076437673255248555991506644872268121169428076813244194991557865763882180219217774029652580320900763409865863885920769015405229948458148213418032288702639179601938510363795607998166344980764354712377106550623759286623668705207624166177110229517836555717548841685167565119812742111552682261304842915369984801541416687798560331823396056254887454486416497825329368203599512352346358672495602965817204576870721502924586511930909071905451852083916983681525149206408194760244982146580692234771548224984406057709290791891605944023873213464760707536151135463470211606904827883219570036994803172150082141443382460734353290424118002030003074647989651663439845676591740697769237084199531135188983916883241213867625754420178521040847647409854745632414005688192611524045273002857766521152032321717712534375406253255137267687783755336879897202846787946111642470271184989903371269804203264259591748835710938205144031727425627958451731996946909881268544929812581600335965822120853819579745716061590152152371105405180711091578410756008034281665409432509779063396666244665669368542024402404532514692996090668198981259272178645479461625267493217820151001338437241576953232466958878897812461752140528945579760722444140999634260650022946546731005536605308483160556897775238198425150616145146996698058445963182429584902026412896000804852466849638335690336391779562715887879641649723523783126328088462073654784462136729078991775453252896446961531546960481150371831424748148783543354707893891370835567914446678412879475434964698963990590665050923120592182952687911901677177081116750939601640805215983099753960043461881773153241094798671792681835449936285564027030493214292504983593388362026657226921382937719339044397386764668475099788784404325292381810435727796586647087548663245325181624217656459464857492720243221417452746268575584433357149051805627150108606522219477325508669034216424477815950212705808934387639248795002054780584029158988838506240057766704687324580619714578625215527817809458054959165181414079852033059416861435160586813236869180404983893149223818085101852168296341956330762212758194742856650815229470878359763049833440876593672246073205169554185531470826836087976091763099121220443507406953154399550544905713255690796730426518523502067486027413513438582845519156746609922908703057153142979952775855942355900048599036576407209386997244784767749093923634793882354679826719201827197145818074046046069530314157602906120978614741808195514837994649448943372660122236389821572950073198096869092261354349310693678998304254295830992781972160600832300775479978408720446550738187989818185963993000207335723051695682325454991263230371828718394607564774277243074852157576588066350951846855568787344462257188261093098089558378615444105619758803473931974494232533519956789704014757454543638138669725666242829505658594722164770037060759878180493453724443432189577222152041059623182444199251912537627643662233667054340682012736787020085145273977707867155981324511431547062040024654746937074729135515213594757029165578339202246245227404402737272859990852880502888791130904871101784580266510585926787654741045716698139725730603035772618209791994913071357969066879677379692006808508588035728631715061286133462384193999755788560995211229017916608797739161285568698607783569676293493404776595726675219329742138743762803591835481402237488299671711654416620388593046145255272194467079710898550753243783333293688501953652529650587328102025680264770463855706637803019975203283272903604704218257739568397409810683512547712381861960878719142795257295587178210712298918887489114102457637010839819323327731706136789871963208037058319225715111155712762188542924430101254057502422250743483812416340458621610727012266021190765498950954342846629226609144152280623361259182120485622146121894883491997487882773058728393252440077729249251394133983499014548379798939483539769753454210212060736158878048663955762453421957171652681072257072009266206937337867096011601334332056126388174837280045614405539472653146643870190104781560935483065997160521067085692134186946952479367461204664404791291704687061786148287395000634622612196340021357597612623769167643498370046038794427494750776333110607131154699978329628733994198563049106768101647962327043945129499325281945161170161746031810472464912868222664861725572052486468731663067801063013854419279177816736634569123366081334406372792629378533633091491415644524168705314191199292283157035850665865037145207523993461789076213833952016016228847956862504034774953664733487491883180141466854311573492040493531465128922918395333874256122064588955200368950994729133119242388583791018743976328608060723168361266309206930937988284226924602563011172286538088685351032993813967734047336979303840146436635103710837797663441066307987673041048221342098178755848890193099412434703163324629750769491396198090730511770067191488663815835854095965466091104248556160466673130320561301080431677522860751839512434315151524946201169170484111982752792701234592079317638393786035943901885379727588077608248645399211309222308556719228815304001652723104635218895640862856963966783330221784850066886351964054170247601933490054282484974921208483151144467193775652893297633783613471867564084183583881092328801088493914390998058931401930631797716948162518085422767932822766990695868147883969859946348414730826179276910747989207155467276859102228947682207526524496834338724716191479169585853796354570036732624004896775415922984612048045121348169085639200220693768032974694037231781102090213925509538125039103584094572206722074373323410547889204275078280111895376808068102623269942255405023953978832547186941773855941403302089849707042725139996715560962388453334285717989100475772664816551152868201520282843414565026678013858103106119673617561430944798936596700551379313252680035246272554267933343484437087673514620023913031651485552740154284899969929443598507298499551675469825302358534032068962450826638002640416613970771247993779289712660458026227546408123943603072485925546966847506035814101765658370314163079862212733215019918408336531812863643430781940275484205126794191619869929326740228702025555133730644819683615546613356847623538540915103416661624213267372655242075919483814507307087132652894032758458029712323436534917474822036451327306199623302218036921186408489056169821527326127964453539838056100420160244045928089227233486201743176618603131781371458509037820559302838269951224032475998950070924787682802162356328369005608773126807508881134958977666065654245695219673743800403898349132490302524648629148005611210814911474706660248448327562954803232981946760514431638365424072527686170467049733336869709975908172683774719668421080818873997250613552016693213675316650511271941519789403805788896568542865367728446755574047977825958420411013848636822447806794215776000770691370722606541207977774862384095199698536452025788046441512952868427322318495866660647365694124503397815915950283486824899711646905936247700301168365360326878816475421326111696457840007457748593555266361747643539065728507633021943460039344659469414940416801634742411604756067168670851450155124909034315255222257533467799488429940176511027610637229736500071339100183626707390473672377910584883661031764942283832630656543021688258889518077351426065219499308789860299015803682199147602151951506609771764846000567046532081175125570463642190297384153823866819414103313510688764915252234497308545894428975285222981013695152660532090353753073454189971202101222570089477139701550769562273617416470037527977390546827486487000940239509207755064396626767554008308691116492196858334007640464053371528058711409284299582764735868966140394242605626000624668163267022184612799581583319202785105304234066396146315406646005048913150670528121902607288924515806241462692542860494907520108417407808633261314993515201967198660595810615211196872761782954702650889209212520174763100239321398202604118615634515399593822617565987623027866159587860606463707953255854420980092427434782344332586057172881643272628884737976581160224620544862668723103365317118159864441536847308895218747224872217081208199412103570316418377357497370234721610339589089492890806796518931834434923337651043096297981510995532582602863421116914376376140604210180827904059618201906915514156628867385354837161345726817876073443791007695569553882412919312597137577242527424276826747010433395996705800336774558696589205978694373383962174224175091190716682641099400284985240967398128171106297866157166782493976791343164963847682900183900495498440456975166461171150921792542968844031241124998085412244424091375803797162557569485039732996350437272228653996985356094401854924018769352622586213600667304972877719423775971186471392099435468417690946949557085088758793948214747430708514503746028402874378958698813376041842881585596051134602272385163286351880942854105783322101163030747343012075605555710889879226563425359250219157854291424557574521870062499984878780288423130183320183037858776074114729842620212003020186355592706878137932566687701096165180466394765131951379847945798114597623076537327295803462731781648406699414540324744761369583123553038567978760747494937682502186894131683004766638890301813645407980361693629301301713807147887852653130963531117131265891566289143305155436757108263604948639502740430119527255006307931481418778941694738254458857528873122924553936785516269349066642754265186016793372892280053568729993933636075108100610688589793539101541873590186362074249952651393740850186675720592839174377165352484229266857465196622379555773711646774194531720376238742549761722733520060080529636837903943145302564999675440994095381902352577347111382525751650052631277107080717434551690153513818076325974662452152964205023694039083692324848095577554838057776066399081107618652138542020511280127953106275077437639776809559369953137821926600231156714169734552860601962663132689404600156962332161490476881515360325123809967803835559211073245588161801315098283037976082398325642702305566241244209789187459327233392927458575099912809726822599772938453909276871925832584459882804979113170520278241714246307829324459947701789390426228974802865595160254689719010419579580053789211826938371548530091604874477804261258421040480431385099784099005538100738674672177923620682991755605173207771233211764965623745491507007560407922395257506630750158474114089344394598536109550470363712015853615179597825104285940591184429967440039753827999726380274579189794909892331762152649876798271898456508189529122874142419100596002491967422145958846501683470549774627915709277130550549493421968037971607714570112140603788315508092995690366592071297094741755214781930120649260515070362061962345911356659821661506634841959111767057685182479633578323322449590482773437445544208225921914784555243652881021940409817563357833117032914983873994329860687972977939120874979205406601265815356591558072292141370292212610728496156034164995308289905741585804325389554255849441127953350508782738550836080183708486308639762071202049600155462192760774008770481045132883652414423025520386265104406374175238576379318658164757184764385235573640545993302117346213508615775253488199574528576897602419860652337754437511238978146927382405163772517272710127156277383557332656545230120630274988639571619554943305384985590515576192434901953342575347490452267536424415904716628556695154451095864312177555314821129187913960962444755467395384596904934745792194721801327382121868849708556648209718612128487168714515399193026814094544342987284555808170067031988538304427974205437607598075635981204744898013255364275232494330077381491606532201409586453414796685512523265599180465818881454103204006169968127747356636761506447950423627890687902211901040465067251963356327346161092717250149972271829023561146460772241634297589539094973181610998614337024827756690885632461248007822998540333030614919066770839204487099837835136717974421098273816294690813941675712658757407975121996021665675550018558873627661871960751530889974691233198428132901730137167331348316620196703211536722969958455205693064016934730406621187600772841802900573704202646594869938260438234441097671041298293794915611041988208605421034921657117592211867052152071955686588392412120569188168561612012145798379807785839469992571848234797438775340094445695013197068690941648898740167088773291144027536553785460544246352000755252209203680582590023816145747253510728418052705444226729514787212486997922869064354632688040378586987750773155728854054275390496857035883669791424448160431688540371024345647230545597373419968163940013946442997856464851736199020690923012728870427037866246779790309809734693731102559861050207257991377167124244729570468740184247042684471306706136742034396473292133718705114198738078084232563517875909471246446942512735113313358705096357855039783781364551551630732463060548118832077141535933846165675524305237401130371126874106105715031288729653166208393147533542162251115585153817193541316999669695588968468489019362716185932941700173414560963609764651901999812857330543620990096512439815308717672905542421383576604990409039961242824675452593318884760451122076222576325124870814835899345878073052631895611463108761370394046525992766664796225451143586860873934290685640921653169392319695700000951862481690614835733787268974312882383003339559053188511961318039188232682197864179977110677898557980942323088217023167542136840011815451668381179310422229956896776493366472022156875423576400743708827133767203905211707727299451173199855830125467720189973251843224065366712371460735406126307935313411976009073776672971327096427675414413600859611654722713712858375326276927875513006084664159784513234015090618904334655684924738706985470869379520347541509519760209425915699995279417423930509284881673814050878023106309971551389545858383719261307907284673133380916933083730111870029432461416225320005729447724160395934014458309193106359533608599385125145385994432713258927528601739239498605267828719203762338094166508967495827523663936018613551269128037635630661301013830582986049037494213793608753126396743295222424346446948216184125737145680256451990212661571510264166538565494603751299114800654001803032439467374423972057704572945280654680198445117329233855392006769561560509476734961134614983997861231304841765595807851546953961961474219173981293404774234505091766490831953746997452820367632121054236805399961927919015109535616212494051924339139152245083330375272703635875068990758075710878871372149568560483780663413022129022107429096185683236128560093377156776231332946431341338198189819237569041551935041101084741651540717902069981632223250318973918372166390391804939333061289645046251982550099310074684481113637272146136700611677599206719916116246829772031391344265154154494345497561251113164444882893570753647961699161665988436827800693136248800973471107772588353947430573517953302240246271117064731916205350853809356878474647301126581585098837612688717418911335475640751061527834117027456929002618997214281282973313698641064083149730387403918500035356216144468976788257389969180198078679057412340988104443887149031640853601556641707983767690896164399881231310993123699945608268623223090491687444365242183282924382499672329607213227481816205959520356987999144661591060150067155638555251362388543772619715258091748627995044188342572109683970513743708860846426880134401498803256238848514494652517541197439372852013453767887938314129631894698125165839580319712391740385057810870079821128587276751992415232361188912130110417904397110893310057410139029329720326911063538228789881248772861696403384613602733129050192387653680848043753265634440278364574012662982851044132479702843803364760701770549017478819026766711336533037169953003539370225473880577319994830056576403658005673042627759433954496507407047076273910138832941800653452918347017183711184813047338113581791411805608809147749632979220052564737859600464457861557094659374778359442227508772690328873073598714844506037808524622556036048659949981156908446490649424633385076609985180901355545211787600777327445576314977901641546914758345376931541215738757371341141675640979105206442452456274111216528275073322490966811922013223982387355471085870367154512995983540425968456797126207207898796270200757413359804321186369588687199993192328979073669031964528128572093201309627316025995607963909387077132033794783632638657394555936681948881856997865832436537167258999790985651788800913831719450100212231449982842310069000706644827444673092858385064954355009480935163037836216459691847726674152257338468359987384346583648484970434083875636169017077430904847280896238927735465310783905807191877454867408408851734213032298150830798503649288919052443900297845553655286674444622279508588614937032191656693395096221915766357005854580682253608615166238261889201385932906986686805030959743382977989816110708306654092233391030700992533078929824332277656774657449390791318501870267673735138316589972469232403919152207644969486665284753624102583348015875333601882438298330011495037801978696196255971310925896679420911284497519079192146480509774305434971956552204893469629674733326319886847554488313830635463198522407131267827437692985082011259865840687562514746925829106383869008884267401310784455401618749690019467158687435060703257314651440737228732377823515680227884908884575358058671027809707487789180855961190298438033879347258459394279557762028179533363703687373889102754155840155608199224477191226037712139034836183139231182278242354435340447363417127548725537997844586633674280542309577132018110197436817584250856357649409810379126508636614559954671134706768548715131254618090846200155529151251076582181321604029479928512982529446206964426820188211501013191172445969387083035142503898106191551712175664930337633267173224698913037680406237051561483946505779938463154514252955542192578810290446900388137656771201603994409220294491181347806656848483315430920265717821597688191429007176121839035866385714472805032357299425526511065367646293492124244463077194820228239213958683365730663180563232839956728031871406744323582945543843176415551504589251970844726405961732267392779614200607705728523815368686479264125778405773594510013524594129614736886989132242229297881703362707079836582295961318208507849679427074774559561445961766284930753810288367247826895633020250058964701570117617755756373528996301577238939740748106876414139309862756264298001864699774342717845250823034343146605129332365347427858604201521870742814447919638435132051193461250246499035543185753982311247957996546484410785363568928204943016218820248938244701823326001233685534545040166274345074930054200405102018303570718386949267237093560338513593179759245006763388232994810631600073940751103356126905851211153641025156400068956371307177357989571149781740897202067007079716492374216482881828656267833296016284320635197066205433813326466467816048514114968268948911464843809226086626754515648591166468040122502701494291805362384479288905587462963005272170150042865596930877639376389037711110472662372935588324396772033680405741579837157632194254270660878462263141427918952746208206807588263600857973391556046740531105893246516026407161153567856390922039331354646883625081849721806293585603055881092813434533508993757078870688458871843398150836576070225998532697398447973330744886734811107411161708232694087979983042529222456459522122950898057519471618022723050207614170607148601309638223827292350486371089580630048280844392076880768399593745386258680331757821640714757019733453608048689463805876796293931783883272373074541783772605462351132283083555333507913505460780692100197973383729149505910418384066072731177728527494236735080990631595148550354490226777958918082603973046497864916046639790980238725211992279725860315542788004065745688910231053177797022244037120884286016565282969929177332681769625533614622146854398961446510793370059030938085843738453141391066191166950546761887338480129504610052908124662613852169463359035088786800382046258781143884591912695914185248933967265991903607496756064985688670572765944576803801152668332365431411143187973058420041515272343485149159867532360850946969406521241277422832113477512016704316331433232235232139146478078878590238430780170704073371386727880342990520935729186370328503216277125429247395091735447847241731984654880833204542245601421791479609660108744103386340613514213181382585324546587965257150352862683329935271847775959617796132999763852653120861701425988512807533239212592136253699916289874732598549310439735353441599392092526037644047270666004943261872839572245673528967964346645929894782826329122834630210857454169471951652825168722019254858170192453793852054419262490110844915681659702077620646706619227406716486968977906591496708612183109190906258624147650919219190520625326029099850047364509941873370230977025587546829280211110273704081507801696930626507519666548873552193259676132649880636085303937631534368433924185758089448307538071778399878723183266865975814352205700692262751211158611566827209209629610886538524738838263089607525931068961772350657088518450244559255168333503980040882289042296022716702390353328916254648577238416398537728719682034319315273167160852291310583951648341070894108866597415845592311895458583381831995360323233129847231910935747905558730884076643859872526970228257966324187652655324284386332497533856215010773358611158936351734077668572106383143406705837498092606633146448387444517054778145903386473968775155194194576780813166372753205919129339038285982623141094748272641869340236998866380015779245070360219643724692451708536188829365026764181094695042081416878051005020672741422462413526044568113663175979992282230687150870426771276456243374248964903444608198756144512141923388349614944149316309144644010293421144204020048601788767117145710779054802719951035303448381920968594053170024364754166148576119696827506256647437737928785626254084550242525161032869799260570802220474374373667807850699028569727974116307638363846955422739874015518387780158930751737486081068147974541300989985101987233817975124178546545695318543718753095495223759808683202751558899983172380376912283423646591379696303698508266525722901176751838948350118371804174130017751085180649359649317986696164589764792532844408690213585422003540404260023246709177415650972923132487384875401326546088301311570258189897808311159124554231639832090719123268619170694327846888231961104520300636303991951269481910867843869589775533709446954714890019169647281045523929798268675052629028607765511692314228656590236078083925876720481634000733469271408092462539440652732929410308182574500838990488559134038491971561685934367561976603103721426637176593597343805202898413125779414442443362411602780115485945587169174206813840962355052075906313822069016118485179985808880093522675529217990792665369005265926067991588283869403352108753632138317548973673503849574376617690994995931796803276906286237132992238240558166820255468065043207164958156712101556351621164237983807256911647777051286016233026599096823708407006522152642628482147041566679978731785320527074107820521937896792437235320311093842831739844597874620703726222450920764227239542509458544062166996436311858349417215182109388234852177576184990397368777633835826768863543017292807202243107506766599741494750257556486281149094111158796970627815149349423929092777053853485927888351205799871726645531728994605244746606607660192240817649056571395239925331171500585129078838513300077439615247987316417110549262870052623037910580592552056170688009945235600825615720291268189166304111146876873007930222367180619821113940637579925782808273625318653437834982097910657785725380213265542971781622092966285871507132610676470000747005843408137133607070807942075886462329109587289179002251157098035817758919477895917542136676236470971279221014380000888851822773528030049655754665100472609867098620891244420848818318798735276337492845785869478788967600356414910293937171992049979215488600416108108394089097907859989737141206934771145195637316446851637964679862855830639805497948689936578979742510968679187824203929950700029724682588574494679465365380832655390840239620922116878407641955996425831162768519058150975345770305160642787680334810755899919060930818291471837603725731051452377648010671178224686053751611495865580783843670378713514809834328260142025398062032038581890979052730048089837342491228109592740401510865377744003164922928205448207370787589137687356310394623395837726757923543112381956061675473518241629940948746212529323457755940985880970966869512699739463138417198263508887889066651276244750114950497284482381203014551501863259279601642186945143038042653525418948618578645240482687591115711201391139054763152999030720094614601452668546388557633745978519294438411774145062686453577115493945992915920894619841038966640222383907553203777076125976946363058406066261500824925474055012438525273944623421243063229221791093562831129170626441735992700485536623812356091802792538898713490210030750838955944664274092459691732354442299798292158536251174054219225367808595598597289141312972116309066825782774002219238357834405599475810247191552886203855865099323187520393463397450859190332488368006704673734567519661845043177681599548400013690530068199074395033652513224325101052965879276371975846341701036309947843708970841793455676156435205802745962991818203787078512731041669734578314981872329021659924037238449684678388786984764664251463303477462395058200295086760845325903242876138091467354634252101614143880204062315289640010433124820864081495747761167281728459137293629742791812337571426937734675476349358427792166000663142193102394798807819068804483146676390616677622432305490239051375553436639866549707329227494265154703231708011110536022529804070713298298287083755967074196169934819165714613060121378747646922017678476465215427435833480025295209051803895807460879771247271573407031717054663638751012826692890448303936356783314065303700988997921647136025298106432570148131360475950399819707911861339725288720958420938585388067580168559131149523893529798266231705571997069371085734278357189733545927993744246633563917132910146834084828262953212838869938472580453371873093773718205910862642482405398299130229483080673771906918805788216141108491392954660029368246222469633959172428031045725115748421272636064540168826586237158398128189608560904498489944708235663774870315589679014835657807683543470451337170536387032253773662138109382347983565056875208499667443505422981861573080718902028944113549820975637926421127362617627459573974809846595613034502458193301731892495384250890850074639542966125632449395997762049854570524137743077843773211213661211264997445138778535587423714186755829434049279438827401020208689384098976476642210617687104930611571545528176993124824958094638728678035403466234806233901210376620846830131857379421070204459952880545786387445600204894856851659710658396566474054729838094907092951273402057303933452696378676231257591323688622286931908554350908083386368821706639651021115385857841769885398019857479041272016354989336570015013961987689902720967324358487831972039485205783956700252574594916787457710957486136518673545356764929110017983179937891092309097121888968902432354033524908491078448473384266657071994282551936068759511591847733632478814543441361959794563202748226203913161492317156484935864084713947596410092237551126337695864409256375787650548044869675787485809768183666478560422386771858128975274784292606711312095918415457560999555203887225567930462299684089157792894232737928706063414474337112769913405890654820377589916508993214600921722301906696751911814235176054049886357389425796727566666343435469796501605677180838040241311683062701252968217000771546876348388071158343251379199023252817222165911569889959806764529414411293044380217403963771186805587647660771250921050111809336059004436629962722550931959003568840080764571900880792145437401405734766945191520530945994684358281803714275310407764071016078923095647359031915823098840931265851205106453446089853465239937047180740421615738032986804400808051563439081961628971685785140721345762562948461838036164897124982827553568530607409527819400803443393533763246547870961259794016634100793124965310283816632237733180590647434929540909150851196538392547122422490557024831691711893071196244833188826711823755834205977137838921872939393650525197130422124871502693644696536512592572488169911596130017064131757769456756843159554076882292561850790446674505472380402660234687827790952328064247897496890112370159212717006155354796465900397961625490026750706090406557289168019576768730641479524655301016828623450393769074375130797479731943629034735197260774115212369316148736709264561313361286510172244145873860955339735018720526037995932554838726442963702650834015405275349938584559609438605086828642047379314348863447181476477326624535937929912424199119810004696259341146164024492868468590108195613724559345833006007035707560586345469726159248595133597999266193781581484791325485120814002201732677363635913699025394764359213791567853549587693138840976639153382706969997765248734959502129973273837911847137274691111227674192255440666430489427272776932518247420675332099209888692802245824801134652510392450669369786633681333458824541429202894799757892364804368418837788141708893074254917984657370485099699397251932366120898868829224287645430051370505485891478548578250481753397836810820388262422511282385112900870620757063057691288245780433031806039451973738692638573276786579365962617977028010271565664148862601806684716980160852423703807114519997239008009474725931714777212746726247436827380486103943262653889194437763419618638845109078081883175438991882621563012698928588041019010667927686247146304062821349606451120510062548503089652963313554240319227519051663211517816804548477833448117084568612989709357817239717761620379967732329473830285557672041745619909451345170332888085571522194939928790220985351826172073912721766046342773542473586204446952745693066214954587133638074857121332794299689904927984227857073654123197626446084180400245798092018439271021396159069140766259468925037850111243503975569999845423843514236680544710737711894926138175274496419005543087241804731329910331041831784383066881554637135154637183079691615642446680692620727784611121023817059630951592391259588865063622275185287260566449137909051695936884362282378616832536394288956821091423179512093736625884847740295292259182953934464035087270558073615224493047686136660660818747338806191090275477724044894959560320708175281141477190865180081685055304030575932092991442756569142672214965689997032278821425650933144294098559648757032728850145202294630315223720480445260734653319772349550848637313212113909484139202818844330609556710841998018199709126979669057681747618832855846782586779297704838877929739995900087296052106616401276596095672826633168540550170603880723356521994143104279267617742774676371264696494921549667873590160377454713884882767229564368370082595359067937068578411270924075398604716664009632391614845190926216106977765129306401442286677020367222179991602892529668420523268885248388957669680604729323637376364924378741629903637252695709004896275816480601748444135306581562617663876561669951484189948264728850442371652630511486400275889265105780638388729245127668088975418828238485944214899934510541642500386164949067061029186662120820661361330837210168326254563187591680302777339751681890270620642304907779934489303635111696989429919409585800232737638005678940083880368843437880632981164418785311377908053991318231289727975177026874592481818964533892344685168866697185182692876227014955796742492984063822717657824864012162280031493383157588539964105214471859330352924039325464630201545067743784792741371834819854778544014455933125903608709109570485179050827303868118320068629299962055785393344555260175565699691411222063867036471657033795487560630988862382264234506216528372325793931857132331737153789593848505235178983534511973736291014345330725604516127502698320950440983900925960646834451041495079536111975644357773538523001137621130369084180027235919428357297686796525520789495551052275064703960370636554813436700732802384718370287455646531425730377205051375715895801197514598064592903165683287021705531295592990396361380288472925416853522077983832338358810299875685915080942766631330107113191208404801848105601035585590494760365825770459737927102051116780800606217893065878747323276272535548157818108108094117286247151711222848691438740217200019466373450083413228734540378783033200706744017186371590121849023578896999102779183562280728738069774240564805522392086038880627266854790520256443433426475102236552853507388085457480865773246877489568009772318821260885723795217332894248355104244496508994334730429171433958005246784350727787669779398799719455903352970021682259025605378205528975109112676462449488815425978350533985698348180152574908546006029869121478056242400470036220896318404292411726355025215781304414175818266328471711074763788551029527835079826448857199786145552649165204118809187286373577386313008331795798115495430975802224397341785827898295194183587384055519892562496488220461891963282588880828500846027834436052263045201472278630437880400652969906759612630459282548203998370176800070146438310571519700716949734291224878592921269469768406261851387411077285659806938292472814602179370881677461242167025569768626571089828540655002783131769935254165845930751120760104864596978456889634303526963098485713676966092947550234257076811340245000727292964765714132851671694498155263770640254976221788828202332155746207999034800311843697779176246339914878829081830400709064476726479441884718090698489429502604614168081413307887702480252696554169919469232408250479892782106092399858309818435093513734317608923228924911924250957318261814784931873291106380882188671034782045326875495564083183354149991647513005467558947607224046257668353622109082089680492256663180443677273823710130237010358664555623731456324998463018144871620140297426200342901970132700160204415738376367499251879532281833665558251114329426400738805008461684844205103020760003523933449864598097595869145109155644009928993196088562740843918782415608492795475901776685648753861070430597775229334564700598541883795117473061726374937324197248211398259208190365101358779683964367515030095996019682107373746484870038818953586349363568144573234024242023908927255467827226633814020464766309298579765093984282881275905218157203954780228065573386987737093783978793928345723953820581342084381439734601926634021431266847848295173123904890967868444713617910634928644564683009444852873419863000612713681475856894810570485089425033629531603248505101281551860762215657631602814646007931481948382919722675641501137491382952353094809870080595689005783131090124901478445572287010489494424856244171740457132641379216069725236323984779773286553075997110437405427146752582412453522132917889239543726133632192499011088767068101744932287873203228747039426469478926215752616443338420517296741988537931416718053889009150243397924612234871991935144436050057467907306710193526835788337842692730495650884922360164561328288006010714224886736910832078916339153832642014509897369071051706867685537378077768407747014685870263684098442225516916937483363934174821451201023430356472100688340677742045461117309793238537743215274300408848260193996944180561527371507399270462691266120712115654649883269412797145040842266677982145380912344961177997398971524656246661929485091500289606150008795207842073977172248459991605020154824222213406746819891503786850467036327157680997613295475983902777080889291247614102966669986111391552505975574153842801082543303196201718673610791368023689103434438527591655316911873160268694351566145808810603072303302309361637146352268997675596511250684856258873695021359650621652233193758402558375998606368800079229186755793385743433136011216610650185827400159360845675010965985802096159130443419284268362911709922271038907533456554295161226048027424359180161835159893599363138581587384265558602142637150820710966817321332304215683961615842232528672666465380885381431865793155971937890731740567937004047281739502050937595123978484204605641244828218302637449415216732471958698809680899993951241899416846149767500355063204126962866638879270431981096809991013844150153609607736819287219411196459374046097387976496002760435091445064010372542062458590634414299733948612581635668173769388385668350465364278656220936594231091235832067835977263896723993491351844508471130270311506439532999959728571114359042747076292166443981578310456498457285038046792367145945877423053466609171226244956514175828041039576912415320125806589983550172946498552945633370078610951111803461137065933833337379308750887758690435703888894884345913895665893452970974775568875319365310236160558481511100532204424772321976801912645710192762796115103351530209921598162876978125630796396796816846353890043853197587096887790159507161306028693639890710243481042721854718488821160469998148880333106538669143197294007128076083363495217670034237540360226713701054640233314714544226875939205691613424486332946099971802520873888777512555113825995467734239098179486902095585208066382550872707476952209030467611535914920587871562818563426233297418537316641367779123218370418747974225913275095261501291479124257632534143943086285253622208238443009094012226731011376261113875748499863374876355822094199939493602449169290289072360292024641250197901031297710478891037937863085418661525615814754091149336295948091055963233725105405357070890222529323872367792917265729772906500874920417474254651522697044580002775278658644875605626810258607575051356296447823484444169041196937771024012744748433418940039782602233583192747910632868191177367916914688848893543075262503273636783084398318888787319060500856350634333199966130181727664456049165316412748737071777385702905989380913433024672212480777845940620376845977118112882439460054616349033028585646223903949414483065156483766852242779609921291098956000827221866703836265614287489414671069230389361198149719214781824595336691861407563530441124948706953338048421491903495501582049726267918371327842595707827252302206967093039046599701934272113868887103433789744653632570487290597063634196780979096540005361122766222538773397985748595140835846421276362001754313666065747766209551597263377430188029884543320346754799073157999807952238399443555148840872637297253809280639717568208152248372940299344007336156538096302970236257525590867109729471619065360571897728308174302823486012629631753404922274738360067505461366189344008342727405832825080638245864187360077331376080772378085687597771748511685889311772704419584101783064218629606459515719868871888063263684370937022378741463736853701459640231391813634215365873916571844404568001675767434854974692782857385694842464617783403824790345249690154283640228692819438520058623110066756506288349191401486397107576583420934539338843460116524681569934221859865059681825448920275635998332140865816937317806007645553718557081233942399252120223697196605813707197875298643448505939327337809617531689555833043224939738833620864507551718468881880190478731639100216854714793221168216258073092989272937084379454739866181690003993873464263838266606777698064786682465392225663726605519224044632111732891199379030778267962974591402749535427796465134921183792173723128700629439822767633582814219330552447521327336757463045118735460180390118081908163742181114414838997578433456797152511545283557824535873756109327944107104771160422448911170694439728146692123612604285777581227682502198075940414371676341245860391778662974316128263292457231724544127862473183790699791552407548599421545176824075178917325624899430191572427978529731256538367670154863136418781417575634687810862740433310048151424763689540061656549667979803890101700334546863059282942279982403697514167145957910748829844245691147134427912807760758722986970851904591039001476411088110244309410021507627741440246757650194027617165194910226963560696991655509347689354715337381830978922689744485770574045088872000618832117111869805348846936718574213314284080008190434173972311963438071124004845967093004824503185090854830207492158877151201052791266169213302961620313289629038236613771671583961250996965576921577619405738402967454796216717500520457926858906150169574130305869677128553832844409908524257673463851315370217469609427839791041086265520496789931228403686760427321640929840223458961763243962365642630872080888583566471783208731471924909802471726513420296417904973671371915848018976989058490752134712001467019995713505501571825101809097804901544644425122081109134416554455225523030907852130013695500427669258350290111313415866854290636523131820202440183702963779698587614439952172221005018126494573271029646279391912600986825780594524542620902693398694567604250498511832783992983574787642623808012660881999761348470035316161737347218989769213410574701665273817184676979682503752087244971688160865540432918259157478278484545627345646935675136513478550631016246141728041098813754532873425774030680136250135026119717505804892341970132390897386628425994924595604222112633390095052058715307033015956723176095713208743951205546874259347307237303742733058310464148210984862934134404120788467366288708936443645186893900299987872318221627026654145995844176329994064580631617314773317366672082859610806018268590874343657787447534970442960092105517947698284459984083678498966506969112303692975774402124058214691999269877811394741462974139494060332530412003744616272344148217608585482280977510347081554196447139538773842653885207695162572964537895866964682006946404518096864091503320658624276281105530255765473122826488530035359859829108788952626405054788367507945460253140469153080441291583447149603959156281131175479632191956486959163976606087686728010532965147559922878910872843752265685600540766886222307969113516030152725261635482742173892858383542928631732295990143464595624938021358737622133172991513801893712267159592277446039293883934267649503952039181075019558115051103582911986770768833331805308883757238637894472396317431691596252939717693524826910627679282516913789116439399599438229792999884495644085943518168117839565429842493996837458063127364460447095355467342069540040014256201141368194548136646493343684680130657381734075930290187429694040551902706693908516438855328048448828190946518450993792840400009848908154345594142375769831041902503981810144598862287699560680074010842984936678960925254772908354951848507910373999191787098787978352551644594809237462875008386473253473743250724953702403600383416415571485562566035204562881713152807240463504757988438528160343374709184402189488262323070020809543189592790493106509045132496216649682418153830858437257503459403577046821034129741667375007311268935771352377115166889812315693406445907028969475884627880063593418008362423300207279350366238697517181010716229445894793640492378109086021874540618853962243849087982489179620570792897582745191562643901388602905665196381376701419777820072665785149995366764573200619945344510509860175862101137141584968379400016998817321412839251103029579531131083503422842439541354843483055831335115764768765654846448807733510324194055654904457155121493631008187959096593771371495168930248638553356103887527107929949550177632066447005601146543717123243491868909145888588894969162911526994331487776537921998019178411184640295484914123293756137512595955702546018130834161898138041865083118938804547821058186094397605912762156098451485968958960976352347287096949155197456976340446374978914293500206893439972067675930224095191812153059982614281314053830331837714868906684953582431533919402135839802510179730323518235653967914439784277365302092556638402015402475687845459676838936898090210398988860085381597011380275240131336885149846046913735381060447885478860541334916555839351703250461155896469429766053694917542041354818134728223839783756807771681354601927528690459294371436155534392562489207581182971299614727094282901485074628537308777007962897941692574358565128004196682996600941435699380164980544380394281865659406920156263418382337719828350201375301243123500360280571981105429268880188950182268019935981243202076593970623581608371175136568917421208501019083104663135665068595667134759243276112407370760288163173261854863618996143276918961065976887843619284295169317131384490928321455718082537808276815865652307781312032350266146834328234860869358488501241990959400263022845983608639550083787381754510916660973939772295001535767461822717658908944319822556546408319436553200166440239303254164438579572678057979980379179355478328641950669298964628108003630662275071252062778322982132848126631839884401030565424587814489723208251527524212059046497845251539008737354533355933757211905396507994687271101540737941512876335222128867152637165561927036565316814481585190904765210980758141538504254755019648013606670615689731837446601658108839926563007531010011341642506919508969462779494589704298203377752712023951967697538354855965992865500647549283825218245479001700138352650553087400124488966877920300397390943726054798060419132476531923367312532434415591852052563775998572889514279372497788267516307336339184018954929912583981310565941228542821964947835678842210216516790232833556356308962241136201931506923397580611472460345694192020705868174757224601265956228633243846801339998824002865487454465701745914692173142757648488390020463579573674234983250524672630765017124643701603967731832224360905535913747207108037437814489757230871836686774958534687061187615994897818960683406396507587416536370285087410422989145802043267069037162965589417098017799414252723649684551535960288381013302650394463326536089083169712492079791535048654260157759029715411953254489606536589512307768186599473373666366958370824320737388745027973934656025903840468194130792173520450063205958926880055565880994852592629023598518231415586658822320953404986726865144800914393922938242230481716893747776351574202443150078691672719305596853605571775418835046508977353750624397878614240703332033259917477420865021546928943059406788332499048895498683267473695461480964654713306452507500729409573089198725793860378824590556812365566399619438271163455174309181904567787758810622339090097013720491499531256308642438349841471577525560452448910782899236935211275611331772767033032629411629949381645833829872591914320331058260574487675717362363167677113416978394603153369353439483858959602365708343393420056997955044935856757611924520789729549954762712762651582668999268539971663967205700746083892166917447038149596220755062084084578180065671736760674385631266435314832350006603770063617243139279478340597277037681100916057988081160647814387111090958352588644537192088184474617718807125152563793536029198924412093833099685229050967628688726922410190064204783216855598257480598807442261910486085235352226890219807090500050152721413960947218125921032312365794201911851623814778105288919410437977662686964958817970077230764726592931585844395371794617636658900636570542832780703550501864129757903440473942130961340332858046472647297512396727529064649597634404232133700281206028438946839409339233205689182232662709884833217186254132466682330339325862201353211843778610362449683726279280719492223017422624424275574417368881879769328204249996382277283006995183250133366220015188949430174188823810638001956661782051640251396843652317199780485184405573257012910694976583947351748910243342427421558612523932507685884143481252714624021183168844514259162101494383160975849636539223336861342761260096187495284194363707799323799586194934009361614255906991372052984743993877389205544821945134607605267021452681173511069064874422500819107798497142818911244531058874770178350652874448206289061004343128263729914401146544592720628573193902250387051600556213569875899725855949965352119076526083832988112054975076739293586856181596176366409145971072661002787350667650693609910381838691402158782688606102460931860510326671523631180345718127993003573112023623331930251829564442053241446951169940853317950225150974408329798004881546639712579046966286026188059370005447243136486307359266571110931427490640368691259482466043581814246646809050372813985477586927913172684423924451606640079756669336374868518946014975821129797985202216985528167363839854600269023891146761783305425339611923122065273511778199285164591039690995725006608078953798461474712321231472970795211083554131852668630662551011516039690555362636816696624124045643942258496848572772489603180740611008472688287253206443082600504614825171264124231178202275997304007452824354682531523745525872852698151972096844482153536735436985704725742078030185242306966050206564653993262042690816298252396950574631319436434837974046211412226319241725299674596818869602709700686037775529317160666374263627524863858091156384954444694249618968785668315987487261916630621375939631923463694711802522737859380029305729033583139408445441442956023829971073856948334007538521462519698331962110429791199932102101368526323615429667131553171458155977091220926031698556852180065825053867224570387977519797791402669137355580879317533055195945449197437197836471280798174279640035270290526352528464716343965529945178674512003175992193973516679575161427214415991602657394391634748543996746573163309942747496120356444236543731456503938908897562247113628568374645245802925511525018536752151193899924408364265139033074374578438621142452850283810934367675584803109710110889818955350193781549598329177939537974093813446158669534649808350407498437251395605378426859381263189481795360370782958654218103115642801507354214468266792965361867414459809208592779692480288498023652361615023604446971446125855158804030820832725680534866566990066301889900854741548995772744878452843428977153113936350219582164994187846382459495624593063426811341156638253980132858545689242780161475544831669647905861676489489052438800665340642810035701640711775934462158004106061668748972458323335147018805080984804267238684498000359125245662590881467563261356034639378019005296033138386906381159329458833558050951611222145678527529241677870879856449702841877104222813416387544354950515752254936929852296638475973589107326368755295110652888459408380008124541971932444300010251272054767436554982288330628391324241582203156539065604266274963921696646213019533906057493443868881241075660402872837890580171890093920584634821971511433749325054401459636721014838595761314536822225849234898748477506360395896021186803807890013162922295483425695579874201548182965804960338729505033068753578442720040422256490388336041542449837186358445104669311567654364423132561048447022478682556342908660527290508668692362372050977660235949240569649450657585296483389533259902465374662691061671247353829987320405355087112286789525130817060106862996367977670507579095527664515427344296035322813569943276521237473173953364378005863812635713189827891488262885828657384938292377024409878964679543579092096502990284898196126680334167548859045286438002505444655781124688969633276060774448612807490649255546202205201915475409286898080793686674781844733011168585583859442983676443142392514901290639325813370843154182813933483619626894583530011349741144206051090383674584901509297851476222198634176299410518654150022903108729003810115072701839868772234077915204610902084257370204739594468913693178932498697407827221621629968621857295970618501678769464199925431215456132469885070565266239712786184003829130037975975638318995940995232965782311231750186281205878709898539072859519762185187271072246814024703262795638887740277141824155227403812259903240738568831692656239846771900820297391903877455952045797995935399081346264811903551878979223173372548103392037930747796116467509661960679522800815975817810828077634829703465218956810751189419703861088531841378826411624231389517763564486246649943979480155210330335344940589543509745378948121037864037154905432368772408259937831778178981653428051329231635080683462685107290058021932020648388143920443329048691567086450135981814171058984937910725736708815723260098541727694851777538381247639622320772664762383708757816640946271747962676978743189293427637512563535938942981405653709949288465616003214478496818799624815267228549142598756972603970393115225128706560809169379296254666270432693040981547048823960338745823033848962739587225829923597074930199620295128004094169536779729922816649709888464056717419614212246706513331071931368939148190237729723620152330906841446913638016192332525089286881029383199880170354436535049488001926766524455853537644958091568012323088900285195082118186679929390956878877637058972236733812666184993999152408256371874655024363755795145414016337820877413267450883553525073370892183487777154773686410683660998961145251555097427743073707086976798499049253172147344626815998669973664375170430051534604465364046775515618074529966664308694349471449918962294430264292279675929583203016111606439896861086799672446292763586039121976034983161503154188820667856988431499024556305990336813005115655282053636391986541814319431636874195556635680540855273231698392474828999211080628967468159298330210468117516121826643677922517286219275166298637413367873293787608369848646285308639392419803810448787663603074114346629133634968637496627129302720620032917801757539551310586134568057423152871155780935028570968695224204830900170563472184817315679893432446938844233320108854664682726186857438345983051589885275527547005406829246930580207871767720647379684914823233041065362362547804147779842400231477826696465124110899377321158772394281590073682593528290932087616069673299762082606168325691739642317656692924202356685242671324466747995020896591855009738027684529771958476410784335373430318788381253253858595243091179361298899120871530837429004200805632229635495146949560083382631017682975702353219602249838247765715824616393082105026789442172272508895641807941900886554121182374418325491527203273434031663820096931126668740371432314792509529043880103715265879208077399235890848487989940169254395459905008072238521888114378235618756030052026511459579617362650467690038281406472828144688256748266087162207910119622599640571837069713327973212178780730653020594959954954972578021196915325147855183270545908385197347669088625689084574288206216590737680660033808174043590687944884716775147367210640496661818339409846482056663811357797536026729350592863735403793082694507160530281842728433870121185361638881187376776467681525542399532033066454453129690690174056532878829042770478531956838633844761977238588077547903720849973216641655854302362235131024844382584741701198271785059034326988496783177733528921045746120760822441410221329219662472084096008372099696063110557448078332983983605917041254028225146041282232071988423465885068759884491172955977915189883003672744732182284107632571223674744756298646656119612140704979948921781792129780431887514318464295774827332458833820185835122483328054016250220548365663282917177802687502687767638406481900059099079223040945574232438259596398156227149425282750690404908074838770582518172117000234917477625533919191819388998712004457909381808138220970489053363076035426613869811843783994254272211840479300938258510124378545660188760246362706843533566742681487901825204108186942698211830299340770134492486952193710011538399254542905949726228173882804134430232520746218165126510733779305176858284781847656335050368323477720915103260951521123358851927235438016825893563978926191446088463489455867068500228746983405813593315893836629268039653122060496738982615767769544215612380240621474499801151944299305397069329956830535753080706268481672408895269323471336455276136736059503837563114288243942524971900967618411482186625149170934249731126542707009456029132479661060169589818403912431919191232700160676375648303202606347559692999630621368678361659709165424594138810719274199831040512230371240078225025839045846514739220189095752657306120412814106529491749314090941339417075236975126311962168407538326692667984590021063284624014225320233061816792868826421722412048018179682729324493657895643685956208158485110223052649449372956773638266592861283344856114123188496692684770087547033129271758556362049375501202940200069718816627347449334373025981283055641288579234730996534510399269984432961221715736120178629647493888678815588045783567937899268753988608769269115346313805247167467154935408990562528876159360820133684035953655494021315239153783090504440499924863534683690293158964540598105931442531692409497212730206295155130841849312871243727574879996425267515521600238075100207374776700631511050219943507700079577098043237966960800553508590257865247280932244667863175283231903117727581875236623332717318418412143166789677116473816707644049387829089158599634705612724110719415947212583042634516607834711817410914306100158231965657594120742441453863770929984550870776857690607002450611333547647966917653971261722452410737971716939638914782808782987308381275655515576364943165507544581763617248446373727331595899130693954777132845651386799102805483256868420127176604445638948970799022106292425992459251109998058989944456735892768060769317865217667150019447466662858482148949173135832474040127652439401106734078294864949813054944450309548125997170464720946623945303432360474087448933509435572069230837338706070104750172887167758178251017050814105887913289167622389636403454531839286788797262055677908637938821711038984474308724125961773573493805374342929876291826151712216207935183352012916439005328298532471734859359495035424385912092579633932982581062352249969175414683512981327651548874368397760429366936797893057151373772780437248809441183199363091196086820641436054017679029228545988265881858995627565281700751805717390765937297237401873211935087516681192372080539841491356352221647410453677186964328952856903360322708377761363998561607780229487756461050442943733007333856959537460049529122791415406865922707798197429369764729670652978662188631871228576148955989216518738365168264086688456002428846013984068272094680156694483507504045278886243064749737075803406641800984850044238833851901290233057786080362332029041983058596682151949872217222668312176378503052440860806546635391248843903452936812550667358260917123574626616782718929910598472513924165696312509058254241450782402657627884872132830139461889706631638094480011491682241215519098644237382435191830352419935067110645100767373637706591988025598606161667098877384780742953334002769340781923318529784606832283369258187621647278927885209737774205541527925510132865965773619586157594920069254619982481011146819243848596833355620979212042427485816354976354447447035575339081881110957320095576806678863115371786890831288857268463153900247365132481697149319937364466654974739500888680607089439610611093339402124402243677027296976733815109453572425170044392383029406340062833246469385342162790588869392356679513461599674131299403327555040599527916717176290362076019353620229914562724636940388195665550702947789608816542924716485603067787205517649918364316183429084139834803889463922769451514167029250372530926591702822756527093201582213722304313808468272213851392055503648089476238293209902793095489880393050320385979173898331410948757702105186899181384058653341390137607854652717489642809998938714889702600781745480085082550055884586152013131905934450570232827833689043236553105235812985926022277630096954225666054242058071394810091187066198415731100413876132426368825692508286577653994245219083050937154869133889725042310945730819115419756771395469814199886555517401635181589470205581434088843770100121861679053546899303985197848277343417867298001575425192359792074116444257597500915343615061065529013223309224829581250493256742072220370120842311436810541740036981003041933159702904247518145691514311897680337164549090116601342371845014848747726147980256384502329036372000708705924764454875439808266635772546230534281640402604768297825384665631286575387590663144459088420734032792351414308785667411679774797283978520936798235923049963664351800685603071435951905558232035201605715953303587621793183742812596312512172155469405895963153023156020192586588164079609809997616064634177142013725323681036940002427482859188178078733970419607404584070449966015350635864756045534153734190903422409017082607021375709941732175577595902854465715586839122454113596481276838138854983832708636016102413517395567616406014019839145377162528823950450469734107112604454108780503300367926002497949775204514789997819650574811933598883074732590500310481397522974958524311749413644010700576801602911912629499426404248359906016443034111453006481028946121051925594058987682598641796330977594154724397135301908020399013318424767763618996058857352759500172213513097954080024583562243269175030154950349031569658784716780422805482298119482617762525623311311116351362971025402513615281188848154844581519239828403717505151563566993990709880290319407088690120181576258361648130670260494098516681466402876778147167463451341130969044409043161442829240074380552893570611060827731290103765959074805726377522481732241884188187496140287821645616358597241816683694517331853069933684248633744980001213941841353451824630440245083002601503155962434574885654334416704555532201512294381812474746267169694576846763351341416795716489489636733972597205109083838723678388704612374817620811832201795285251571211902239531992082509891267436254448393920472294907084954939621033956319346494328843525243245657940024433373662006885622070916604549823912415821408792093388687807837334840013156012448255494081464553470644436493409170588574242448517799047667705233372408572521689746274193049070803362932632823014074311201727430233778760863930020188203003397238131551296129046522556731037738734867290360628666871096621393230585852334622200849259651759647613454308322684507769042130181181180527574167902869189854178686380547029824972142434037020219809304534725495749140198626944885866848087927677540128992750900525037422890533849105709302061097133912540400126982907756937106338451700057448829171269864630638121294695172355382379635910273091490236188997934551674644279676059631779567691179976633637269677272448769582716327139340944125409143455110953506471276791489824156806947411804084690582291387817611145745632951911270153821126083717545178318921595984939761386972341375725977241099582066612358900391635678878257009185474066098267853684140455044486432524848486504927594553374847505083807999755335758144014001500049973130980837446407541416737070486455563439134844912191961451928318028433899122145422203377476308269820163661715896456321572196346609169646003871696620722110259412997183894374744065485800093970841766526582322736995990690060908703106548633363138157595712078165629570207468559964489854596886514777602549494023972216921164590603771985579221383578076226901374903168215472535751726412996706968462458208796195831934044660766917844233597005750821352978288848423144280068321230992197046184639804553576614000530509077454609832359504749524543034671902369838046591814310055227704649884425557372361909944037749428673755835916526536436872475161028555794454826053427563190793976139348744030268633182203113612025803404420293652186356510172592154081945697027153342544787078778805633946255305901876654945711018392021881406520051452353486237087315694768075955344755173938046352659218481912147881494902391630924556319545364490993014940248623387690199735180464442963081565234695362265670397720268435826451925159589930601789391186434583051563942440117904956131618266777054356948454826096428360582254300635918223366709039761308170675659854247912054393964890550535638061295228200904493595402780696343649275145613057653773005538539201182016992092991861905021560771459125139349492246442131471540556704887640967864604783206122373203411454471864882081444193541739804613947256131355195224317500934004649551386991733123098575629293773446523785279013415060768322383165630055486454534130057880544999805189679341846483634838573050276489660436523391027121273186095214075995690425593704321616343414520366979775244520171450268532400127687883955052053145144506600424823644114418820894950857468779670832074813010568456759463027740896042053692009107159353471127912210883563841792085610090046433948116591458785831240690961087439093608925511839522141001142373947944832601141148532554490650957718563850869266624187678098559576896956043350497506424433564385408311294545209687548734200528577484662281147432659648781119465006346609003770203192047945080661619169783333567410896128352264370868138952412810615426432788479154823333340728869045374535609660346212856597409586625621602775712333982865342714716197866145258968301871397594339084320185535653510687412817581198928733171302024994427112574335677092613801130242512848573430011575030280706790208049459480456989494092504708302796014617030450504263602564599105922073723196368789415134812007225277731798897781959203145421151305151403689761341120279078490543148435123069084342817021576634227282394436524416338333385886744315296679303267890943802912577587325069124997976000204411828418479894818524176970055595403414844128173030632043994549352632016210654282922512821272073174428695774645399953798430573361574293635727051332447681143605345846548281858826708542392034808221960586258092367384920889927399405972851785300891414479289898855284305831911708110707927546299808219755700623535696515124815630436483234999899232215693100211936293392675453950782670413694804104037444035099523021276934476622855231927830581388574873240605302410601545698491326281308692022501310243107442951424423452603159663327868687570034790301075036597777582782644889621411480833293266586780685785340171317046358494215923964549743474326711770565499388600624641201355535729434019836847293354820774281478315867044156718341914435088522794554348766671357949914156654596941111747773426012495747478790331312872605021755751360360410706844466661976399897209754059300720057298882596794834120089370426661771243909793864227753717863586698750228096737418090790375388312207014804424452270524892433354801728223757186258365391223465583002775496580550614968774124554769680977041812963615120555336883690780626690537873802990318820467710649235175016210280527432643329684753687892467570465758253471734443519649384445935802807011422551702366737193689043105484696397460108970670762945987927482192566767311578914725636716963512288872557950861106336314050985263282806127649542180931864537428647620854290826242360804079259532432941879570814387471426140914861338029383435981461302358998090445148218449714685057427996042551888531175334552752721893014113517052095940853287395622398381590333259031956192680096772698765834511073858889596797361777255889691313934631271801050571651500041387734852358247552258136598949567623583824437684010038932226923453157187376310693884066076725243778876071739583971557633209696649200510764357666186503663313122454730890471184344391597119900939491291804111377251958271885971416181009224057274487527435413288802895320144756289189332662764033697349559709241189695850563572468966410024486673505208254325859377515503332006190706743652191557557300501307898471820422439209157895354193606208687453111114138378363563651439598005657613191168399159134517129535057933635299662071517302234136090615904008282223889694453210331747787459990320036770251722683297001581234328535055937864827760403674394740798862443527214716490729722403243381397402773156422820356226986435949420503971777462208822176088812474772731482313638773124767616338405247964471323241944652608854918913217710886068821054767099945830134276415091633829357144232973473919708991177132966384958171127940626652663930095938702647742651782948631416884646292803758971594161785415866338569430589965491296888390726700756242252297265891794613765994365099084808503768668376724132908395095270277191729942932329306680217497714866908724546412025663720182519219097543217711545540097140368732781861333206254966154978846936389685029344731941009865670067333518186537762373803785006443863239262732986672607186721720666549250816461690820878836571969876561766901471724688880554408796070724551997210216719948637388893102427845777099050004211063802393024130166113467811909236204107977033033193773521742345662079728644927836672607294831027301769618337844926993021272833477314852625789594748286440956409725690645940053061366111296298589280071552327633702580475358536878561890271759395190553559002640878424009943562976122700323525276034432766698309478158149708754919661553966221529429281956889052861336515770009042978292374607357307581842769028814299264642045908233055487088127775709585725936787552773828743197024422674547893163356563110094068941901920089761750600153891183304591698662491729608664680259138214051377640662049184317651102924856688978101425687511972530532153804052196937234606570549749243775720949387548027470099613444024234772851666796220321937113052558286308463495181172615104691965228766564615987011415279791196916339709465916056607440860852295631529269281024883304355265868659974545811984566055287674085064250340764661357712368264130402913912091047109008623765048593845356552766900406995417972329748179551307674013103664851910905834022255086675474144612617335735680516399431041766143942082668457791510333700291980943198632701390047912552265551906701365128960752671156376179223086951635088443705650819274594012059863311041398382335231164830629257100378880162943238131684241277711656807566234391904069308461575795677258925141339892460965275715627705637251087402791509531825959724963198344276036912032290123470654329718349300586463139193055469636113592702028422626911386130021632691292341959385359048607210042215011708744012678829756013423515442247391305301977756777653590491759952292223169151048569164483508878082198438613612063333613083395679162873497312832793390083662021217349240022211274820010295586617877079147949243305689208317396603404099972051866105749590913802325145876221473764355551680387698014956395994414041083879229226668458714565411108245730462874304101932801834562397422824989162011616776998797588561201686562070256149019247240927067674606098022820137811931683746274170863170181138186659508886125020952400087308860474146222315863781532576248422771556822884627637060734059715373449881176662748166620746673083257621828465188751750151457209145743273167964259459024363826300328168906944785560494091442101746114483777979845850922666208784843898601167745047452863526847803537007172451476156882469205044446534578798425218995530886276332306689366581034712838714220236496872450873930121410225446259095550106608928134329569411356992841602851356546889822871159003958578271723938053829226940619592278804781744019373775591544251826934327738129565599748113532915751757069683473038487482509518075606260513946410975574289742836882027117194041060286666722434491896037414011121525272011377490027287691147321531112708682718795652683507593562904478099314390060223691312952835486577504793193827656814416905971513266047975828824180967039921579816223755691130218075479966535985804193218277263518256604387952921764046013617722132265697179494333229514123531946672461158246081479852267109653173638555705503048532912013269954672002536631430318332817969866639683086124809787280769124633515854913968946390071077987095370907318396160589711924295467440888499784435109896329305697501355887602408825640378005158808725162019950043483969323193729858572808944975202002091822944943132603711438507975480203219099320468005559310449471051847059945126883376602276572959792118567263136567588218247493754466703325577329581444591739514344301042314899600137249088491118389725139001697631235924403259617192890223423881687216229473923856586400593740040498482356123294784535234299189679646398010256794330780698623157046502026756647892439803270494047292820321115618926214648232529134203642777434689088623202336995146214591646767161185976835473980623456175590151022470941127446912491277243691635232783309687024848832535966101161564862392124102049001939765873898283797518120345408444750837788558086583518132577616468866868380688955081456068949747761754626087245303841799796819648961416248048617632913575174551926599481763701873848724956502439774086933377602769792096485270171774906514700451815239229678875393443567048320341368016741399007181325790606846023340875695116084389716501006273324878461910974962072673871720137339964478788990928581527732595814936177459945441366697142614174375809815045567906786677766185340072813654959624058821459370605417187220308223391309849220201292152119500676921138217252541676785330597982919958402499015318558750027739207792548356379695382822875896823578515938670275046896935895876741251011281126463287262199825406021467780038914899930887300758728877894097393599919197744514896981456044930856233687669545369617959113762429206755941276351521727003187581076977853609118960298524877318800203586937299784200083988962957427429482598846167634041394211785407805624058650886441343426909318809410186422174108329118098715900927572140961684177784339624778944808640302270953239299060624482070265638079956582665338589290373435757459621060089936666626331708177023173350699218875953395084900040520079663851674811991962199059175601138105519825614042775189949888466687540160289178579436764454708952393710198491665005400490099048319184183246248906779643910067608486132669065499814534163012202147076126037079278762943483527886101028888223683989359287769741809157519953308544771779253177573262168932030177879565280317922459318484452125316578352732417045010985621371273070361287617964269705554989665854823827367459939553516780292936120343988155600876013975798588723867985488188720539509973685029688966128760798856668133015763737738898429786637051545958515008012489351049251169514057800313411304462566613551811705681784880197047655361608762598316921896238035964267940037664465466547259204377780396938507636571900183547902665150110073608550725343121899776343448724824236278879995088197076071429122039082986293738652049449793942003005823428688977703105170266525059663976177185896390799759855326980697622586092382954988891479958862757871088689097866609163214058724778195435319493428489266348780812733329029195392971257019464143236662629433718352476720424706803065097233261147171856985080903052319507683892069620159217201572843933896939426085582045841101519486701632808287655360541456395080430440923082363546411574159868305179389887206393437625582189063100850737484568145059585807883797100695561583415687953274882582645537954364669420711219508081087244575690287392410773739859109396897878889321186910628530087283265443848692246872017690052368436714530122981452294395101052063749912742127812997512148223270369419072269131526432022218866928316456792522463916684896706292809583532307486906164673186537551974038790338556306360061795552194541475661902630838590358609305816773997143416624287019322652101220209125540110781841347933518623051633905917369945729104581841128681319522332706497252702281294053466497944506428637249310300992134145957388904198535690869995584811715993255535107115848669960038335699181983903881832763294963945149701612862166448731840272307859320952219578439109063440224765964838505251364129387690661345126550973458926923351191469837730853635731471200725455596743633773311345730471915278846825214566249659737873603273886467136988257482988661703517496650541877659496841972175577661678381355305048100346270853716766778523937419850350555230910779567415971721143037931590089339842765223144664079235037748977466313953550763410179342269618509024779034229347448276593541908949178307316081573912276492386889299828891467723537666105839511792162482279835275518793921949494455774529317393623668596551092631888666588556822765695041059126056226072022123102278314353313293012699509828105388707926341679595712061489390620095782090446593125145591220465872469958737377660908712397251850410665179333016656288332283161283431918304988097589676039668500286474616878672873417381732303114529731946785580140101849821315350766421645097225446137699898936335031601132117001252565333834827556929385528772553266509752706787446687978499424392933195465247777077215293086728798097082597922251598672061146642797039999626634090915627454114265895152012366164701341034016054767157984824702691560481043384821725079994721798649895670563164852790942615463632425174657297715399591255613057572323748872882387955862270416982650950577322046198203144504425718955462149895257944109392986030110144089790093498159848243469184595728758817983266596216376613685590243457386638064690547528531639053878616180848876097619631240119762070538424048839481902407151654959785881537908786363665470000206784344619766091961552607950387488884477312073693319906606324229954906916442812206291441382153594383527833913135001037569939312795713109979840893100358802325182013855374466461211420054170301962577255357052585112778388264379002970105427266170101389772509975036075462577155335920472676427822311646327297569959108775494471872041825069928981364962552930518882325653009102911566128351819901472508313251649523862927182799036609991413372157027447438082458175065638200745952103299138890811206488700065639346666134276826487488096281097692931973231564918746963394399880579033579193500776973341216649027443391633471388936517141895385024480135477503123563793365699926575432958044195460952279450952431592409798028331663867586660355534875323433523885360537275841067854556038252045297906614228729864768685680994471008428963515388052411719453711791864665508172438976087995694437922965190439577904448701893905711959902052460184534006902586605029031377388416978091119793384309946916845728512101748933922572476699807007150252731544659083652942199927804423773990276443578142745957941215536199786327362900774686246019801057016203410218981548544259189605595289080242379924419206312445926247119474729044116608990672732443726803411734935348180953057667591226139195517208289933880027050690976442393339169895449896543144504279357589857502174048195729032196196214800113153361724734442601694855827771011077537055773566866280766783317927332479056235434253524029936984516051569663729623021173411105708573966337077928924765651418693368686191534673051107441995102741921548155396392802150944714868674388929359585586910655980728168293886956749030081207652551220729828654999063450959117532924442571599325642272206144820900124892093891340072462359626796247860630930460998042143084337367113613121738120430450033648490473631260688082824687027862417597274993124369508184805234303072585770089321832163924137597930244414677456231110682306621896795549499736877571241279323640004617535471379209341478966873931376611541682294106203139592057245622129174010355999423622730762104151235175395381163355018791598420644390165413377079311756868899349695355507350001571577718838579444812572469344647508105632963679673225155553664315789632945893256651125297281464537748065929259690684484349250864446157345063175360051817453720435071679885045880775433533941164378513088866861627340751386890631685831998305976092996508868699537555707117874755012611561130869819389224931406454441610112272857511892483184279548557823212770699185278491849710846664341911449379011062047171441859775815563503790731825090730434675875518199831314055678009286519778537209261810833195817964528689601296305074367824225041945210027401640904246915736670709839693296167200083356438877961629800124838587498865069334985306073712853077206442805217714568013492282664317595185124457422955742805784478286697880189354205473394694626402497020606765625388240271613217743232550794674423112699923000265526212306151358000822277588773697176084330075865062663865426686309659119784751934932508642576096133702209917636592831351335186905158830213865520682361280745332913318946401797279990839078566539668333528732108248675039322810416474985577706701122720817016221416487413906695779774919189295936735018871605282825569139053846112132683888797809545940618094796637589871377238589880345111489833798204280948394373275319420413672259577212838423835341772807340645551945121799256249844183954558053239660174694819703295122452510238980209843201328184121565014046569250196107873001727874298873415287159545619939778006322596715620874884080706469370631674924368496771794836455949590349983466675936736769159547881593125095431429234108793233310092537160615672005176872405106493280652154641544229933966269629550196854992114419772460312779193787983012117274634697995242424729070984156412743801406573347802243760674388562328237796715888840495471649340492497374402445926602528184571006643422130619758673497499246910094485486564449498926353197389141240837471871094998057560871783336885975380508801672414303316548766451869471530072426715135871348427286036864159545878274102145477792700569067789456217606575506319341438916192130139386162949611881671844882975782029315875464137909035250523048857937461563850077755767439147780760569097385930352593124480831898066395834896597491775568133340212657055505941184723353042008959500189837059385676121947697966730383846377269900104695150618389952551434853974425535780524602199219827883503881543142599033734871063185194337953241840436243301855447203093897777948736786053220599493048053213077470455482497598632935050609459902155585849936987782578296573748743185118168086713293419048702400648035641246550993293407020682881299378198126960700525723516000457109354652497899970942407023074350924183561118896750796188178359682967411340199791011775140632847709504138161877915923123089812100345466000318511620251950584897146387998687010058565154578135894750224052297449915559592904288753365394024911693582887691460891709609177294432896646757333457462651655571923772389605405598572285790851033599801050783136570382946575764356005472911044101563709263816038330392390580425597449090567750242518545253943423931220887132584388134364757730962594347691686555314139344469003809928927453246284665720100108282553304377875069470879790227570200520547086426622167604586335929844016695088114234013244687159031105545117710602503094941082530707330159997876906953409122375204849447634493053708742500174156118426393109416258938045582165667462843409913513272652717705589831504629185467611735766701095521875105709753286058511894876778069072054374400478588093201205546115998187322884610336907644240937094993851229906590852970781221608559150273244070777427025210733758780494846593587313188087075724439084264603498566623604862385905289386565000991244253930913716986415035137960537499957800965169253879271411976067032926867129810805900021259385333529933066304728260630322597533050339419638816419997767553241230427350826301542858050894131507007785292841488264890224102305085288436261135874394005311322843944554121325174353176096015678020454636642168287842760886188905680431801322632146090587767621945544857756932822317018712290073346497279271911905572758181259337299956305694296503558474370908045069874172891608773056429226996412402673853511443116002213959559574642648512313466702490284213689899684287531808236287473150816444981155099319960015579296995562173526823027566459966792612664071834783110718266981688666615490235651780847666525333889776932086627441546153317534327674911457256818055668856961426871330616015942999646993406146088455690384916109003224409043573289476212091657896700083831304514905853218380480746269630064984499173755959781595893874047582404398350744644673113015557840122546083797356046712578550789210779004588150973622890445693005455146377869151119686743698688170135473091899366828302079026519096464736105380054997851347728865906892600678630063699927450665923132973700269027970220265599769373053384403501202299959908299231420142343622077000359082702691125872733927711882184324698662985236401883381849632226795505737982112642364314863476929799039318794918422346677453058360895199849671551477208323050642855253647815387680051438763250532994675051555165733655708074129009083372218633783953203992752678997934233167269330875453299704209820854743653159155471650917736124426965677758394511643840740098089950716294438924925586854083062922655962107874200726153812353951891319570291373678568892853778979874029119986873983056969865003658076454226111096584326488213316866614646263697485274378513949152192961372254443255613761618655323165323138075214429407547663716477597140317259266253943477455883963567236863627362373236076065418427033261013930841260381864972331762871956305265573119391193639957939447270970617602094149592434821149626204688342014495909428473460324506501344942732540935165475920741728639026470925037154928069216224698522944642324168070315411326286410247802897009900826213109538105545546007626278879297964835082878400158358545848368256137295279780180603321544602008940171874315011437013530689005289408326039189523881014147796141261758370266351985324671003220817871743627966158055831715823496917870359008488735318651157891762939040570418166022505259394569914941092416039157073921234362526961947373271475525641073528929280987633124304419692675094571265205644001087059785587454530242414561060881846112802045629587251971964144086077513540551179176576262039583660265501640993645392177005508524486288301092579607084398949803628592118261490963409830906884316947687582970269075686629259056362949188213999430221144970514076230815073113485326095729566953291932718504655698631060397174328166197559877638524829563685218494773774580859239192134773092379374450018876130903099010413889937507513583863824212135447669236888344643309585490296241659802216241023259029485393475777439785039257448887592543735530111929041723115344477193354980129457263220994921035240420060456359050491775340099635360465711322430470738862670698078535200628311092775930148396631717197052865231161863018561973311906878038957229417269199281065498990953928670176958347247312956014734486984965451899360297476996137612009908932314842621516249552004282111774037742026177882550404224656508184533120666482744189102916574092790585907783672401439438129274308047130644583021784607224029593247660931685029697518095780385209312586547092929247901596702343983197632331595584715988960965573867786280944775874358575143285004185235703871744650828417847379238830082100904190670674001847892723046679654457261112431761726844906417799569463758539567223264128601940941535230874339365207620046166553093592094032339456622327835063553637890366391017945892974598178199609942582367658696342343410310953141126622190349859137635478503103733117582015043305544312756927252976639264268193310917972594291399382140936510766367157216100939964907358929295502578938899202527424335543181941398229462212904820072040372770519168576450972836829483960597069770623995614328231581702399552613986084622048453465127440272123938725643663975009567433912300794514869600788404167604624808378775319969557665201970314035970915478978213854342942984459763209390331765610751559549581749129730767630215816526795194955764825017180543907929902661176457486378459783871741467701076608442763827905855096687403153904249734432344164908010546112724652871026899378939482980623443072147191872694617969909505029435102557699225786285508562268323150522171574408411830843596817400239827101841645803122736728355196250330574446182753148599996814350813596486357008846075779924992783405096141824617882658884769281856579152700678740370352040949590949651208861407750365294667562415233043821946001180572918710612134387084017104682001380136033061037875543640416678330385416645127519894817829138532866607502661071563173062262362650022530762643752907548556269050014389115395317103508852701863717465138115996274848798421105747225247723381028295659713982569841326575448743823521048037413920950394840667665814674502836967243447744874358396797887020717985224173751212228032082828654014134343423389303174803372376057593838276400757757866460861148286573957846211051194645368616344766447686796417566273883570509682072093623676541544928436431579756177501947598615953161903683255336057999929641578641307638983352714371517447114081584730741707365102960299503322753479983676852780190428597134902968203809748417618137904053963630541417823132998049029854927416801930667568188383525384606464087702862421667127696097095925806996744446209880198523281469163280915622612336025306466679002540625509134520391063797893591296883186460277988491055088794432033399290101299494593193975656251557188822441105698934101083317270015870384797954457550187300097486119856228047536571819489108119944751526760777794324302059620854970697387257487085318300950455792090419895817352599035752067310259441888786311401058333506435342529460536220070545547138094878563171725592515821373765934217101982470279112912699847988761752246272485305411735552872718142921694111651733335168880465568987548842421484119349382316011508158508431290920164498692288248362876768428225632027284956321648443320568743435700156870593512429992153093890405559674951240222735148336602768208721262576811286634573136279947254974493034997116266882801116063183346910735574963534444644630242697872880928219197163979462593610939356368698046014752133789217687889308827705372603144329085752958953223457650893131695623634502596649700815465904147853548960220127696885320852203550280188844026443654077874489113978732439806908685896894627372898709288722967612163297558152429103465189601220870172642866371278193429850118471031026660729392613422657836408697965021848357309395150565628692441857787499533686585306161388588301264007880579583163651556180796206734164302094034725085587848945554416492880322652412664560968982160290641667521542851549407197745922845442927123655221627490775798552395128871910467370939872145452484941153903071907142797860740005332764016258952269861073682539968900722925320037721763559853505517826711777929395504292136141479837314140840656953915998911124704260098618479608134338268657125477264622071551894745667131918026744635608027313993469615538803818105345167976392135022064698866433450088002533453660544744515652415299129170343870628596358408753535734100984708293873571566686304996398328957132499230259659732863292178833648800842620338876616277208656730908463407242984653573501450429240944996749023517126529526760210969695102855116602937353577583803469648309526034668716525942806660215487816531055674017318511570061718895426089001392418044646777075376623868418645792628595745257329343309884542160091286370960525261309288619659793509004368589041184089728388413385680521659427928399546856771753804119054449252918038513773046177296480073559633324381553559293690756830731346628365753408159398571270467792209000354302501015633183856257168534076966959407875906849800437527737761765853647270355995649474144809176009571810060283851494420425797726667201708039836159295770817812166921569094112799554914125966488156133862913113358484586256953794201149446954952358497598281092205847563540328942655235623672090021928830208258802634026489140295793713558294885497070461246630423523275658325426516853431711010786210176041518102838828400288581644520191643887765700253028629379295365053467575391739909836744413682913448834867249597243766470345302784974184544103257870999434161010398971168225743158280021902008972734309031544452039236329587052652151066719608916710466926050769440951086441485266788257996142132330055054635128821508143064805111858344316988721039128508737330384161919634042457143055146577388748764147392805198852736909769869860177736878896097429178510158243043700472016181246638421390162493942893977950898381159888158426156641141124317446698116641923733406377194432473319670143083217010668956304639131577969055063361433920435716111253249332804065754086699412674164345781963676113312610734066059323242673047091150946288332719021609199805609760062328185243038473676606411711241134075610188675229550505268874130297490963048015665432306580845882927609144360000978488718191056625105744159461538587147326252641987355507200765558034289123685844837954078853537211189212011394790440412125743657532032882905845980609776877924671964813820419364722611399122447163438196128498098700664468335362300844166594492555730715478552498856479439140789064076210214743951125716841402984080332276500845206253911153563875638058622817128408959040788208773818380287711140521828244536935993765803407372247438495347614020652287001344476743995038580962341582294933780388154231992826569016549271828025678441592517414613288506471353421539729213139107970514972316600306508258899917402367533428609642671132283037300888208806572134834818718515748313915157886513806223670542038411422864062288912285965193868088608788605578506046027029411847063961211406906860049933652833985081543524613893992501691606971277508763036890425860111261562984216215487490234157519732684332117344817649717558091778347425354041160308779674463266892484515924195024609097839417269117763105082385038616579789577155225391940023169298359663067810511828681261735761854372964889835336544439390295944123533476164698484137224776078878400716934064223937349344130108085557293818327460640190755010188194845623757127382592083621890218390667776872149244702693667750391478737040402063857370956893573978102510473786702371265727445902580750734422312733413199271358323677916453511970264700069313958613688030832190640887161330447791880581682930841610520495805099432831724456867567792338914563433982473646037876667345713551720560841444652876303601038690172255580629109092244449732449021017952995623545012090775796468057341511919839613127139366421094835000510113367115091013463860433225547728448798416206608632275188413888223313936523090121078679189757840122250668709721653514574333377194841131273892364362886133838866935147863960452989584542145582101587468472541168839984165197717270203089180414339884681276193078424552990548274605296143184299442259228909388616127939471919418879256149744020000490625801204359670812814816617900868695748843522310149072472822864021562388248508120509211021551456551996061111967821187817386114042412292801004611780956648719865515637490499270334000104837204775279567467473101828214144852180392180363455457704010079462578571103966840353749698878499232773681151592487529444107453175688145408172406433440272623465225681122432914903339236225759696324984357627599464220101698836778566618974052622913780026386624101124189592944080657001925616510001209902405060422403311681683273833069721076106728795139896635746684266342642728642875317848311966813918635202447815824620396895535006479210291684307369650750949296552127462062184863542151269224659451183939225721787278626797972001271957837806402495951107569535508184711036749488886717116768612509302368902065906816765219293295759508671607879557676412231484537909739965989182492398630785193501837998056103809641157973800354860871190143666162991240317292487988913173615296881168745735982135900922806783323072230512979537829621080799652255562595818397163632138358351151514359677344304860063512996150757033106786968977787918663613586224500058513414941085099438231654080296553208949829037365429538268189405781742356662739234200718359147404877413779889100950341452190330747244519456646233419951878115332367832524450081418521553056332718650685743695789626358400709582690472206988082627540139466005640753586983066695953610631342655601470669174924591696183283346129624531206722694965654743692882980121105159326952659600033782165193741951716591833892018620779012977706073810826467111915166929334123097722103408456546103038376747517884774459048072047502036865014405674331514369385559955494519571350844131092634118356458676412420948564188944561490811381978703438270374992798869109053388567097228626613649606378906301172977309113128214133675510821973277607128414169035800744662997426781541132035551675666745992896007823754821966575584058603129747892371745487712478667681618190085154635302773340856904006940682452389655615085536883525273506607955627121494585856773321830990362769183463895063727245769363251010413324926311066498034700415121059058640509501290441069919094963290760708393172856085072774820259120191367376400837500710144591656567157826657340627214934671072708812389836538368111463287082495145247333879701742421411079417330577825939845289833597567711733867445775097174749953899396204699316241456927017903561416973212927590365194521437453303228336060213306033888627799027190910944918914463781476724686808258545435519975708401985408615124610703446908931627440186790089022734791417567837960308682064123789776955075866823305070690409261975672779179686118309661626976907169918265619357220703267810695320649578058073713849643223494729482858536095363194532900626212309115109174417077429713232031287771714076398882293908684396025369962343819331359839300443254975133294605291027225079607493664316714738315419845561565503772126209756750283464667211997347003601538212497518444590929186373218845178407885108703383154925651029528507905533759999604774899971367598277650620392231257669785552054368774269005054315263006161638014391505813939264340237126865389957463686855167375326316200051091943039479224550560362964028075599245138471037109632086048059418825797136428724859761072366331133236777279307704449184219747797364660364996940362290950359728687197432318970293745782008160986578008227625965990081681638216982289496837797132700802480627763244124704739608696388067725566946852139369304880288986458623778392089933774221877954145569751168708848169074766304796258096248150849205468085733021859639596665653169963539258266896144914569539548295086994703406976638213895767046975182036571401371095273814583592811828959534167081548719116855731543251970694004092842111211571510178647968020465309046007627858431007918187471700298579120040820436159936361396362282861229192101287891107789956555417660440282362380471464684704044524139653630206029293364990634207487116375489436873934301573870240907770132689472470549679742037106618655658130203919989456194640171327225713536287028415438754629961412855800095714974987415746999442416022175701777005893467428635377152038899815224874250039999543308799148358815597249577466612743807556780789454172515888107542230055544210356160403791759711424883924190460795016803131741315204522924180597316321892039440093714815081431485352542480629004279265866447756030909169758840837382889842258080667584052303447394730970577700685929156423591852411887108647195250874692997510971108525783729461153994630058610630024719857437083129309317075590059634328745269897049208509253066767272273644723565220470957265298031609113007276638331886799089855748590617302406660094673774471806896920236381768343360665167272022035461797513161858260083869739711699655138503722231828697578579483921749511814396574914582784616552302487221256984260300185043204368485139297457604768941211044752157377648785114779205269076966269611078680412293331664125551964415928239835516620718623470757994836835456565164846456480185532457346019884182598183429570256353085145874205561171363480325061948827899154889410693472704640966689013006380337264009588353824651480842196993277354125566672198318342940623023994298873705140301776554915846692744123323202168404755786485286621929932082447954020961218505733454536173439538513117216812780821297724534752957874989160202733559901518581133940210799372054702707658708455327150832282344026352981839126242380252399512682763794103691425332314314038328853082495558459372003566543041555755409027692993317779188119644985832204864870357937839685031480729039930487985915927485545620952462411412300961193681379064486374382408936836206889055430152803903027794399882495960839602623361696091055245841657868335753423061444375669006554141400782482402257590651667241942542190003280630981422187095572015571914032569197337496362682784155575448323450373688350764003746942796671347293277633428704254273510997677215114709298113095203441114609741071472994524825434018101210206213503396863397328148245763330476642731687126619595319303254783604113753690976418993025957569833205661748287206522901056792939569354171787608603903420115519670172865943302200701165568565087364670463420048913547950592217205384006850551838357232566324631507969376105783182552947280324334143488964072975072450633467655788848117522153647461403310475486250655026200058122699658477235377201777891825722702066019097032036033732889626874805721012951483821715203612016041124049354080004109995682760805680545629791383387152228426555769668682336632844216890760401727554846853007734711769662578398627583781759090696594172565154091823097422860789856477777977936980756335304690887617776386325280821425032920876086915991543433673983336045951052091060649164993795068462093900047723260912876642984014176145173433903425610972880510880943859223019118247813112999834581719911568250958117988690316768837594894047659293771698244899206806900330813495048884202334072926167733391885589996970506989053918224087781084780136219285781680867066475095046921485251423848209643102732229569226291236557277292576698488892019089349571383922333361236366608811232129589573787455290988046687141351864211612096795497407837912406483321525737620517345902579540831561734535492091046222709057575039552949799039390681999861878717187035328988739283606244472099617117218497329838326741070623428148786313553637144011684860972889118341685304514498922563218093940994284288811336989881989128517690636910347273446228498378353110560035441147626612330408068528133941988384257436969917929776348658543018824467179742428962745188159894873162739287291915699275440914824328929737849421473939945668769863056917098241599633674388985686212074317253765567276597455447455556395317974323505389875237573141583164660617820807666184944919125971139363175501478567337721097385080678239794171651891324182537753383346646106494602077262430783386369805810392865850192548902116698629191478993435151115866055048114813987903535986043497579902883798910751120155058114351661832723617845331678792660037931377700760508628487145702230145972230123983678492782263437678982651332777680709053178193281178061961602872097064671499223073656625807555686025752268363114642764299905555871460897818902617737916185831800079610379291006487098763986564009644387749554712026054799624671503948499584931932282943785348893244012346679348635201611074616093769071671728215269563190936516915934799542053477035610134476650485257893136756641384971762314966389945731866347695409306426969364126245927607187176327511065510545016826346374453931716893661559374877527461498664038360220463593504028880851991089134616195329607534735290279452468580675821236930246786444890144183854802169017680651632370172233019619404960871166192923886427607212496700634098604374460316773503706295166708992586891103105559755945662821934634542040494398657644987431908898774939093549329146604004010916710549116088901046900873107723056448655550192718405188184569543511221024305522754477042737009116981066859354685777632900740648096359960359512145788755348437078598883881296788635110475289466734054566545703171682548224928180949180567237924640339181196927595669189115834105651700076373755639808071279193447908594510715563858517741975746326428794860769625532984023600571661480914141118224891893612203198378042838155749316701063956140428241402862011403961958918078596421091898997176741005071825692922841741090683769580679075989902587754082424205114364858154043045050239081311486320514541032313210083789174897425770872804712769057086946377919935556198479186633185545254816222572074677832481009020316891821986244023268425394215731587765074245720600186222641142676065153747967116200659605786252589089159094967056949225165723657558983357367952227202249197096958983720310821527661084477898643666937997510105955004035721528543336678110075066587681155544978221530571127903560053639225098297809659272798772411545683146245010168488370621336390392943348988341960892417946600983472086467228710926503717757253131749600715029470734438039552961276623962825996953499348766729410431184972379394060790515539708753068585757441252887890318458809291947549789322249533134271032276404725973654970620697248883057438714652424806666166463675326482525966444643629126459971100499474824648035141115362245598524333698612675732429033816057536575018342212656852857597822945876405387917320505397436540098655993833936641341853678444847842893780273956836316344015851711393297595708992182476626138728614725703851283227047951841689255256241342877793610253208570189845869986102101833633093200548230458988494679520237134058526647966419115502566920439917273863385773744417900428264725793937446600235852750354783220236543641081596179594862726122556283067845852201821311729897774977585589043331287981083607121250976717280788855386891211573789992676697107340639368360760409565155263045154034841921137280808936928586570329136414801701746070426171175526916649900089736401546555365917389345192807703309967153378150666707375828909386089742404575681912448395172531633715413349265770036258403863478682233899306508519168440152437263016898652955504934857964264546781489465265833153022237188870220179830615600388863560968771013333061898397026111563843153514076856349203976522576221544755912938982775559002189533714452343965061381410584741114599486486338644064090104693998007591784024507029529637768669506547086016627839446877859574890864786623624061635654416572922340339351800380700355500595896819699239597278666978068523745701667647007713218427646455583905874467585549948637329060023612354660240596861601883370170424262109770258854166767934289625847756072130708831454314566592662918921620418693162853535460835107779727473328448529088274274019007546766471747761699820491789447115651789449914235566743819938744290047389074594364701494494649611117681332867689317986970069003002301065960240994389273864449271930701577818386066542670623744684017720225321465916152491238350684635449086127395970927113805410298913435771050760328915769354185055613828089896795193161857757479655130234841663931954675970730489673999253568988887800932316660494851590013915096413992829440549367558482180117366493203372633350514427346638703944406386830046649126433772118110162515544356924018647428445145961947417942910693832108789399847402167234430440529062547130567165266078806297090646811085957581279608527230230281569133414009635422238668003575547953086268429471723820685932142668855128531581275484191155238050080404392229294521076142322326033336228994258246847884324000528937709121396044497874603810737390562790508337082617970097935865568205672614582012543273011667216206041108924050898110251373828410459158709613441971008642037548895243206385389198992674123396301082646496359803076277815497693932402631428027726415293369193263366927792980689206187854058112772798737503059442047956001764150329574600915814484390323223830132017325824804705853715691061272686035996232063899493896706771888174287279641949320336818151085089782271748993222978793601766085355209180292974119236797251582439612669629383570473938076394019679889114167202451237557466898443471127359598889377646741747184914975049977622844709167266288828214667285760022605850166012337628397997705844930313692612589265816875127293273021005309940809807423878477592940945623552525023370657506119478222160985958998794883005270375782527798369476561789570235745326364369653599772871770544679833492396805394693441151499185579383720898291980359144971327338847262293378835660558509897612937105924875804030681819528117493989310815227630255146553949242974583387455983912555451396550559679935345364694580816373088666007541132920128618801062480326463667243888439687229174909203984929848296001111510566623945241824796288834222505647026156465449173965346605576942635370422591226365265176304991082770391714970208145810862236083322734373059356043642387803926230249092586128445494876782255260958134162463963025043111939279589403191180524170362751540706303954316071807688775289591796389264737263523063977150111661452493221558687005484552737423160211678686586252295632240622032747017431775499585378572096672631891524285993703285129299354274798364888724970776348994500298734167135568255657585697429267589533027137414491501221119740716705322445439829742549380333909598106906635477040998885826600953872477436268102534230746823756796187632921014065747811160108844282164128535257870078509788294598507450994747005214784867649673304523640205812076853073441154271481954837073063528822932025803852509299919162104079370938064318144264196490831741212125859658045336237726919404710255898258188732806220653555680297848460134808585426286976235904076515607879165013834529677429790190446896498148681362087907705835388502350118480842024169860348675653577739352613620425828279922506568613094227337245942824461905698765401007731738974317339226363651274517919894431051871293937911856499302542509468551445347460009992776386067644897566950732520596595110066164543366473725303014501652968133477677876105355777027367369311643380558118668498084043537518526319478506771483623526182066264555526384055325769165380830708740957663480406478450635460335746978301251675597284051772725156041186329031449190670033358683879018019169929430398885039965625470963513905135241693390165036466477494120792051593441293163350888743806358512882866787650795216901511543645499278522861648011511886991623985814112207828379962297723346695546180538387864001365292525372869133626411207215301395322167607871920583744928776740543249264069497600907088387113448200853748321539761639278870324079170526109592494795351510752497320176891755095921506042924562548635164893347615613746308413546095704163394236846570276512910946100923519379932389818462424794855067127030267744246815695022032495060534557834138321936991432854607012302330275927650982743145482399244540190487906852987255386196395539014916847214233992927993690761554949567327961770487809534661935854078916858199637330514474032130677219268359022875018442786990413210127411534776599439975295056579208148305798293259420288166712280364055130291806925772297079014853028176691007712628248285257009207894024826859399153452826572547725974154526008171785190639314459755488978100082092382319404607008352797973131353390455756562717480383136917985801928219998279574406354836165940102903472789999977646494781278718930037484758515346971215436609041822812413388191767833518527821366140947838619969902427555557269064940881494451682977837303559243576254575746946371992736939337466678898504525994876836485401805478111116681243436411930388202102223619079836677757894025947314779687432981277722715057460506768638858539936400957549175134955030910832004523686498740540678673675567863745416897867074170802747316875144910383044144604083734079583599374042386757134798344225771368602136859727722367902461178323016919341980984553595943943630010184651937966709100164807138783375796770660938115000478464224795650436729378317958843831429024708336314580967308754804498645626518009253591262505783911042602119772411247087969969136322959448560949415987867852898455564915272969284962471692109401999817211115391468007979511634112336304623332822035626865694625817526215590254221624465925587665400328340287275207065871035802593988095036968188422814338626058181265177163930015843068232371827159269445560639132995744539529987079809884126951113097709825805423870829263000704279600008778755182893405302738623353261723138484479213550304225497330126166931040766636826639309629367677029462692150807981336085199425813941883967249113854073459131646898439735160211068022976491540176927792823649321120339242647367705169172966431964142435918280453846698676377036132005810877654308476970913579906606091409522497312575355211538150361661747022310847167220479989982730716908230000040612527072100753244864161523428171607506277521909651024124064970046865496620753121543363380581688723845113610948042831477130696058169001274488066965886131813950483259823375722722532613241030832655211650549680889866982222839481447958776037072728489345234548748711526800192350088155184006680500607435358219241135368797929132697656309251781267742842448155290379526195660588127598641118850141367082495746659165415856725211829786077079686344874618121192960467778605609168748115341702631581295443243176186376359259453438549643910223468968921118698186149305076479780424577725925282852536425003848664191667591246119650379177473761409458530546698267134215651311558632809522280809254191974759747866444228635313340639540276119745268833198375085270429756317481591421510374788229773847877135675022664359588219493827150258607308851419022150571789267146747927115104853678873236195370988938353080422674107813360258088227589288209534807681069411863862013587141286432885086608935295550631941603739679754665357019323267424182623591303002126268131987604437880988332057042899685238240003223325653728468773165184499704454305952324940703740794153825161614978979457198045933803743459572750465892445259564567549764440259257224245486025929033920140115419630814712340715204419461197637570751000870770743029328485946508891653165438311802356348003267019561006834460357692179924012241958081482995004541801968453522389969642916082847881166813997491692635170542643786447068098359635559597363498303948270800898481886277861810017805633167321005801865292673889161619454501995162984837382519258299519583170432090992197799483874937234603399843484480218240856792019302588631849179403764869473938483085778941807966159361105914538960868170562488186949874756356515000664185648160206417033055887024631999048090015460247466242187786406616096970287400093243958539873124820779171489379736907898050266129976043063059466732435076042269694798393002343635404884047341299654942681395894072667398933945550356692094853697030520673349091715798077236082590604591112448185710717504044911815490912535333033912007251668320825258285580164236456238858605987404743573945619162513968917152893843705846929265739391707892407749508024623756643205107166029731443532820477680862986111183970730798265075614305550358621057729189698206022191125660883768003442434546742852193968857594289864137763503873554627370086947478806575245651240852004156821921975014995174676014937599137877306028236715197889082021133675676651582897700748652468478896160063577205264219000690471819510587387626073520135694027198266417921253925384417950232690605826422403211385992243981310009515677170481244836981787122975895951935493290586239443131896271036988462202831422952745265624715007674726396359965130477182743685701222694268161014546585417214071341814459704583336526966257493429691173060868555917977619806952950414430001985328729677431754107026561180547718319506683629430860245261929350288589362517390415870471835286873549087778267722735278239538057443040205893074536706098687831288212228648259156498088785662192399355995691315679642035880755139911966536285209198015649577064057623054945334577103680216346984318711362409974233645195989670233696378799298169496354705972046738210893531852994853609311954468781924353646673982616650377888655496402556517796404543612996145443493809444155741738810854663649834959170931712493445648780621266621154757785785760570244329750602711310954909092429147871869427678753792076912212646901887402829378051241819959397701815219104551925954686415245812508649024224150287995064651219588054843917435398562643685709354371296138101250730436016854937102241437052660531399641052950713146481499085056738045441139277697653867865904859833458908629375854049449921973930574022076184616320241918198879448776413945310581579288445706709617380708345283068320505108264760271724398390084958367585422844205202994528101766276323021860790125499739578504189218066219739900415286449718173476834207887074863981910489472174219208425271350486953611577744270578728117675807341678954601002256430150561779786808668837623175514679975011359624362672917292198495343741760583369893421459189018627036943738095050188940270484576155404596696615866930687263967111763193428017754905118705812395312925770021058219084304091360284345835474191019581944727031267619085241638500516469253831925127089652959433995825562209443315273738687376108960203753046260541019582984995650742432295423653621193373801365506921485010131841687507161673445675986591724756776338596006409420294049855386330777013461786325229486946552805483556692485252368543309808242579501390340278267447182577577088898343918056353900117495004437151174263221144583537595884354161371461496412240232731573969439034286117383648213492382175722600738513027223561707275838792326088770526247471246682857561495883396400893018670692529323485460205273351204458600611017875350438808780128343933807075512430714674575336782920132250185585541418236597271851152312364384884883696562429924308125003916989411871264594044636796082790578017233272349151229879491044559880260229437365594443623833571813741641262143561418032702863463355466017567969113186483875298653376598603997832516335404391915544511796100561199011230315650974458048290732852032205002528695208281842895968266175333550835069221681048972513667606030644682829464358859096946099920394293819870732503659922673678866085527494526878772848910342768206762607617217629576523226017819527086349815579063260474831890923397265525739018344628695427437827356631768848369045411838607086169267004973774553260420104439519087596199469742511243107727031854286909825201070073757203367655852656274686407683707381811908073343072404190740841919590628505161455365162997194139032748308408386096261001348586244771561875356113082326533676761970162054145018773559486195224157395714826726076228732538132093178728335665214911887425751128135569155157328232601589979824807877045830623764222962152559284906458937120188459316998142830964708837590760621391720865487334749115586449077746885694674162935692118563014290799477478053111370868924452585260982980154744855856774268208280511069650483527621051255815982484412586780230394088343405390259060822098207551415848994335698508598514502549421077381172993473957302677170502762594882377032678852585577013157899484342054625634437607843738489693992452645389006084580137743908556277168255710131771768280636114758643944355653825215753224363027766241010621882977642455076501422418811776637874053562271230319416430485555804627937792216500838523419920081060878289420895370579984231624539845633547876118930384225581695932954723885113117935497237995719354874362342959383612828923229201152048359167359354862858349600188686278742356875431128709429691011268343219538077988844178764250876661820424746949203341126698551667313816249375283186607737825435352738795738956903134457693122427023632997480695705793919444821442672991176123358111145248690280000901035074085313322556442359255560465930063660148780692495786025209031134329077802458685748753613569399002786797327351733125246537211131390646671830823511976263613854466086691759601563640182011473525860981919203968009940404786515517571600283188590446557106955801874648363528511884467592689381605856793671854316532347557770937868499135719423268378656675288735332616196772986957906030753983675550650186680910330944841632308847561556640023598680414902707178237539384871920551463355505988341682774821746918097880207291949329604441880511382129535113849043045925007869444340613364185583157322131573346300062451436196214860156540309433046374361974156802851776478113897743487378496840670417023733254832506659440048422163088950005002866202519429181476707051464293253370285995582825939948204042587514285603773727188207899556312768844861674128715578210039205157696468737804911969155066960322223523633784936853032861962330033505039242750407541689893320273766518804786690832656111289514139363320909622266006765220824863142655366605578529052388948599064943444830516919526374074193516390814230944263413191674318981704748547797485291735835517662493707001535848316993479070011863158521697952306541758636473313823085625956060443779530039572938591676972542743529480193937161726437465630038703109881889654794311514629638172124821478242018262760421452638431300863924374160754317504256843721550384615847359531723124045330232638931099971180575136852032936699252703662486550690261698511341300104057883391308856431203785277239671194564993192431400985566798404141897229526793741324293382081380665311102999582959321414545475585442664958784512549745396719217167587957586652106179976473388294131316873787020434981647998869997955415726277102659083461749161097640922233482196542616202597026649145847482655140165934477113297644549004876745765703543610125925150834437917221820762991503101635290910051481412416728022973948601758322903206422638806936938038210232686667282352446823722158863685810472503608858049015448266780062935919649041386287374515961260052104363040324810600619085990144454889661646560481645726693563585043419731021541401268952774733551683455710691796188077166346438804594954907692131061688673751786744505356687860799325994894861343529163770167716194151102123532579483229516657042186959976888728623541045946100736219984439690161179169976563272810285632137837685834215652114433595014209570106372374495561113659829703982171761037050842875416813501575181818357123857006355393434978290079478733964019907928157029704597928350064083894683798666214624408750851471766947415327959779085834752596916398425872024748946688760199172638536511385686740893781866048556030846829006769881601583264346820469895374623845584590807210763389195840415099981880426202094890234865021202281211825012788767796860064221953290359178806770496658730917659566004968433259503090208247902207797262550286510457396699908542177512397804695393706963219197737871032990409993654252101577267342088118184261127917082927163804833911453813080967505285852267516453422576841346318154382842600647319311837978034319603529740775665713524962211149477261455783774142331820158815952231642072177740797437441929413310411141132607220163202242187035207775898828956846229300088785189310305076386308446231250394369927608869887430270490241406061336437411054612820663384722489619398275398263562875847496922683158782580425267266148015398797747241775538751301559199307747877690157185863216663955936469092867072238226735874428068805528514379668333157354390921849760368339835490390466341451438936028062817077799907205884534705840476341944440592865313013361795575402878941944107270083548678644221536740584597698597084086167367945612834802462505470358777743529211883774049857739828060847831346694873126250865036716906115681445734928256994904875288477283742728133911220284201936101536120794504268267492167419134513754756174769306631869674010739118892507994018728468709087133457405445544310434013148081175788646240908067933815632986564049444394413637297301884317324127403060319610097844130365731184371910127634570231987928873536732947929404110104431981952251495753326070429578551923551283459069097812481498011961389479307453612243532085430069308160300527948478576793556384927566267957276333708335834333044423939989420722548204159076625952155868545438135082312063849824480148351737500012886627981185528428916992939630627836274348924399751958767792896032928906339120938173942136186104800356323115359335902153648829976660069012625749865951656958977420040560462973725637604510129857760374694993344393741571222834916142352335911962939973166561326084773151879053619233671964431453331749360422498209428405463745619368518327156491353111863283130744014272044202624666220301696923541292148716534375012580797294565125926658726857403713934941314911433718211057492591377717385729989723358373598908781364724437634504619898078957040799892219111450162280604946411159854658162852280449221964124117041115834330827462550984925908132146387721338236467486778436652299686303425127398029483202341598825927084088904452166918397452245367810200881369631824926471729321730306767226628815290880655290608322157578380790051977840507943682165868203253796951370728460162847195633259534406641503862306980401681723660579672227089886612619808785872471056142343095652486932525143397896390665443224248047461706797540076808421024648180633956982326843115411300300752580297656271998460352445419436336439086024554489936940276687298266028225163367856640868252895365739515969548446468081583824595454820450868544712549360793676248778125935379934970822942288121226242561693093640009484211800171616060385882733569002112879844059138086554451574745645446960880470437648611627501799756701444377061727771432518199868276485236099262005448722937177920211873269252364575042220229481938608516337444091950087824818004003903935626615835925088755829173409549240659101860951801439973733703033372143919090071809285448226173425409584819691523495542996332417779280750188740468216344643190660868957528033138374148294782934552453144847254839447190620752199892597333311330988273724561400103330982421521456271761371006499038379282498594737057429233627047153749211628027511469069847975185568848486384985776667247011784340182673641046825741966226061301636225622584173111167026389084516049130536309404876365318619583787948046133751859489998478461589893025112193172807900818808299996519074888026960215943294273331407344412945385880808475301650201845500612307226142279703024610245528046346367966520307356098061412055283313310949859358329023492100049498722701349971523101089647765271443025997085971245939693864030261472186065509988869447554977921527098984764727780918144464281350576046634829802806956299959337943014877461400133059477239872846110985323076496256421426107466368579250763096304024093913406662662951986216270854820544999509307388127708579995914507098377371557730317064713470119992095131445993249762776779000320406855949992781946653669063361715197837821455797223796979114066730124515272346693124995699894247269624350133037235969413983570291661725914652511032364866210988669082346044359052647720328230609921526343599706516415386570435853300134104320346942684443844918964419082389358018551253477513635838100066257049139600284706703080759037525795004913249373127652973650113449010310736699838048208488361725534522485478025669946511040881768675330382606836800833878071039769369693005706083716364285003307432816807909369040266228609567793255743110109443837301576265316353942804931401189132266002133783332406774655652931908489306023828364288401256306928683810103022066668770881372806045451688160992236022162131394854290388196197191076634747615578425722768776621982011875072732399366990383665594348764621280536375059189071979598171731157843803993283386402470196816272865199810990419255737517717696644868923034696708184473544553366745700590898333760275157983468907163397720839381761571561021718755758465430122020682821186365578253817127350970815058122904808689302663838485222850348281603818076399822525376090879334525935454261164332782767926132684027149679345982336874608044242662332568777679476596972857796627153377183699318250659731563322179344368423146267293821263094247598058200768136203675147137283514659819094690734304231940384329820496515584558512436834731125765261256189616064071577216959022045978452759619792639645680932761459563558144280432847552226948991973682824496046071940280829930214868586313268673500658813029141897544987151892876238889108324037805640567283465115307256049588390075831244753516336892828869633176524130362264655105718413412610402049816565235844555902758665775978888621335688337408229313939029520739019943671587959052597038330619013073218933492768420700814168656607796030132472344973539613792985620412283426802457391662670241690647285993631736170669499121255585237068530094669338069968585321300739945073497868009327492994431728359266390277372586125473400619905724899758734541666371426517698315331058656284816733819457665692609459210137995472628029121579064063120679405019659275499044082825475528702187565056529518459497192163802241245429783861677207402604484841245445878056314274686120163562953910290671028629819558395307958044777448821922750022584984238771370881220204081188515362018294917043346480572100825448829456638603383395612588786571891498954661918256264296855994558387538202003690926508647675988406623665352274355168197338998485671095360455403144787097520135032035085150192355181606925896453699880303999996704597888714672617532212392935187933383272187003823323866217151316387328764597360323687708284269956159331550299594985352061758260659994214356509582054086156690445508492224938442142133649842988332986079684789023650378094482202079815434272826742187325950501708912648474622858217231832971125487184601247505578116801586112383325055744183374055643465663051627923743944554580127142463759014319330261003517365551604684007297367003817283959226724914894150398127067398839150435818738622350267873065956401237104599197941198450942497814525268170220699786347651190267255026991403598790771401176835447114603443747020726832472912539031967699336949632772001202652289542027000532943408454518580753216557791872987836514186720493551576450395817413202903554689401052366914272342093250881193269064694394856141135391452827231134263684569075389144701573553888669802906051138853437124049946806363035294429571759927067115850089849344301461686035353910039188866956990681141391544246495562939118688131223643720706814666424001769071201430856124231096464056230811415106583270265074414311857506521211394249643911184462800841915284729005105651106809845599982409064412042848222047397517064567753391725082416443836548952761181303513203612119260059542824567387711184637635697666954077152823428944546924361897040943320468770123180400481804486436888938909116994006663778861823807379494439549742668104198384016288031025255663808704416268960766996600621640678360846364058136720882326196494835589546735735430029882137060368849799957309264477382950058011016733357017032325689329898445707608533111947857431246243335397527586695441044215953337998311634537308589762611508001507614929882379406955281960865898703620371163065273277693772291901993531706774955202740623974622859543727920530008618421975524706791101417390378437500101949579347832900990686982757504349513714916479948696682748587622105917475345872614226113513437536949164066569690470261681572237996978625104159212086462692843509813286009715014039758415793035447184375103834693096971663669122671678013284871922326952938978541792210621484675717702722057867423540885374018050806531714777058228811218783941605709880316941385352569562194261316234487625345691899683302130739247062355253733393743537708238763915590940661689443378678312374802681702909458883762746517146926534442546867664802175290507437007190750828598892759696596769242499789952659795209157167653492636226922347838045950052303440832866718760385217360183202464680929861794134221401819231189539064408516697618848679557882542925842162001594764234723055757329790166499132092872288082616324855071457115358618731410529680373086482333836302267730315712829260559641354751818360286689950933966615459685983131554200548413652646196065923197590179077592054531450553727228146083307669821744523027446716201458748182841746088655424294625292297135769202064846652939374716691312672474672068128495197210765428015335135193868025940158612618368068199312528254231127353385686100515887697079000688364281346792866985439764597224167370253293437291961960059638668778729118377493679913015657540252471980592652942561576737053305914957623466063031314222826667687908690313594767443977390009458955111748106597590160375393380999622269263124103401999944562810873198165786645186864590167219277240407245126453635917719176598960352055091693596413952418074071124227087937918081734906210372679806183213447305266514163335792202565739525654630699395920496905013031444732783621747322180274959189654944642491092735067775739472621552364352821710057877325541580832399998756176028991743157515960068726521791907558109059713459415345775218825616137827895055051676160391566256453746976250879992350815981656030810421743489761669580365908693647077817418877162166245407877221725989955282481014163070298149307725688918418669976573850598303736645583408436128935070502375797875148422002802181190799371816220235854280746800947614544464894071069275112942590237906363336494931860078829396376808092745604957878771133451029173018999791571294904575875069362276827271455715434839223134428314013174423899597023841827556045194937691080804710676719691169763098884687039041031297828192541599814139419593098260135063967496852733253898838625360185151822389682278225037177948969046324604811383987624116954946800541402747337556860887748644197929420715054031092503351102214543648533515850110230949521127903274321345138183620092405376129610560658307222593447927618046767961308232455843244978726521212310879058490637855391052520112832671148668015543666179714874336392331952450918465192025526472613421805455969608741315062625227858134881194337326448951467725996613989559867155847711028581527540844499065110267072153815905851566425681593349629873409212048950229713842248283385835346240200820532160308908492354503382061878666015304088183652665847218683178502934045725503879422375043261424681036199147025642660167485501749190539619374617068519231359583400866873520478494270443789545708999942544104142860323436286028501745611981404617431704348735892848644706405788768997727958833082927768191484631483041133161337241474700248420183334379940913265275993205246188632877137398556278353265609978162380058863827095634160458559177287498840026687735602717534917010003678673929990799031153972012795404305324398793206494068449274383446756641444653719457771679522831356790185659525181027660642118730608917283565040658943205757537197493278215098151048773643008195660529685512821587496538389462338415417207279766234707429358052163617678341415535894792357132192455124374837029158527996953627848797730114970726126419629658389499520280254843909106897323983116291266669036648290877657390910392606459142680470231849219578008649905499838150119075872507991010545859755521740283519433171897741884572484370588854510641792523331420325456206777751360668871033415825227293322448877603855072697539445673279113607933524282414194501468489106887640557252094031817669291748665432807911328019347598691055189257820444819097584917602453272937377861916933972700119823051070813074892167538468128538973272067977332055979433102054050190830271436435183694164818219678888624220196866258310672497111557448181407763084514727913093024124295061067681296609323563424625399791035800124254750065108599845710653108410483633652910263459906378668492779882712138885376457422046609259866574523331663555360168682636911949110848681328105344472454459081622283918099035791288707963612237240217695546810891174434540442736877563061716596538628251112418635802117212643675997150625347052136913238135956227199523577392426014676778543252093840667146069881385189013125456995390890312370319084191874230541716937320815721619178937822984283197770529082787951486899757462200438879558127833458672582050564655758671258729856773976253854175152171282772972880850389671491558859599460209664726229634165932975347502189882403015568641754453640837222002317075974332569409996459203679642258110997237819013178623887440059365437497812647518971127341561725740451618329921063943085434098374678310073620778632631376684316854102531887661832450623644428112652935841701634667377426660830007101251867230399802652248603759937454223291604115825220711196144264287696644516967531720870551114427326657714567013555560758543188815929679798891664733668062386602454502399210581197344468117600132438139375211924551997410195872135510233727241325672195544780575496787833402131826584571980509247799458056807453922907730101096043179333560933574934428685374123871606300870460082590091338365016410203269814315675176322233790022672153824350273741976862617014906403308789045520169220434839047118578819550222576855036146590880379459891054843705765667890877142465742701044330904044096810016790489663512272037498519454515245009676075438662707229067384536352636179838397807674318379095688613959711477261156481729816911130853849980814154379472984994172314633831651820782826624474761648306179404038215663602415229400782138323633834256875414851605704637980268165678432764526714965135843645867788599599223267345990432484621836874712534242154245170413643876901964579286174425336174785245336406239144657350707627359889707528076942152386447585394697027265405631593970787501887148659013018651594132632931563938385491416876379924166402690974084530331500891059972665183153536415155861795120949069344330259388574220778764919669697145014858666928617924282472393079287442300688595120513590648291198497486642844118432188760298059693810454625983426204489853137000225289180167646877761403931455608814183810043187994268832341457990709784482531391282196413545807758938027386156367731490103618585419278303053733552265739560413378598343153748593099242180793560387001873513147528798267867672903427030538990840870725172842862749539881259336652729682631935254595846831605075646259476714394555863624762741101125492305392384228494930108173567607780409027202237366714602060735961258479596783461650458554928552371676704173402011197291625279850844965543780028693485149956493432160340575680461614290472861192434702172289452946879771928355157094214721743512095022090773568217266492401801608356436563710508350777631421311492165895464986186567677252617415245358584975769911039777180110198118589178074116199515953654244173713826787647459995330588640840950333133100143889598162565617314423444913731982049607683425328546986195599742511227132533299133357078766524179850782531175534399762188239226782036245775049153890811670670199284176156150300746244249649098415493442214318616173152511460055312825042341661400995570021464111352355163883158439725002128845604513344254954732610583832868641806555200285248940862556128867744434274557404675421499153262671980018336837014642293950733380181455281025895945971554914138389345264367005979637934517739664353602236123299439399877657572767402496859435715553856165904348091443471053765125547623342964256179759980072116848909591883302461339971430284868243334148724689883351193994701342538114575184134892094604099528356575261742888107075595547943656392084509509130040839262934230394134187855281615392812838665898165063804989894472445627455284437771504737408621703505653488357444511879525186513898114989867917553140132139764224953815883565250272910680472879003778814972207106764003587092946391396600205747589896965675333156053211990981194582389734726223742996756101736625824154239970023180730245637513266901156809951509538463676911460927601330807579764343627100127541403489915715239040784764501198696133420453426994261209789154648999157472635321649743593924308045210295497236422030707236218866404722513044634674225803326077298824544427167648390740007135523843565198231910207983816630816735965283562795578331638084380656588082598332780042724089869129795546397869871692283257537411825716220571694630349651145560887436391895667986135582284097150171696642590243644634330041375109634892140137121222975262032535539105402711562447335669361119602958288169183976572253917298565070458358153147475975892523327891680911179064549954729172667986252510911266099984089304920482276291714835351851296596116506848562277398461276955446047402340080003701745534982989720025569764217497273379479849135424402403237623019447921689247485613223061469790879062439234222063319520836019241629949921062698510847331035674305653880484731391388206826059322966070833621015140840427443083809453717702989886929332385368030803713175909610629899429096720200944979825777588014812765956165415508698579075364924650005839069517076089016446487370981724973511326722443835504131876044690212280695932286019230010171591937999882247338874440370558231881935481968964823752963292085419864232141328049479256911299356441635582076569035589701509473834150412814287505908286224044576235328945002389541462183069855884735764418135930994050162150437871371886552468890323138278505082003191738093284041323616326384411480682798334608251981304446516333134986681714762126445178046348425535522809412918286396043728833711589492837492672738475048390606370146024108853467885897535217492235477587109891351227968893152834274204499424152049747148188483660133617943005436343028426931565836767877114973005313451145532275411862751242424122435431498148605055395505708683689804929125148475164845047620399885329931660343981265793622558690155067580283186833589576464314305771602197234859893296909630385732837476708827230691881926473205293979459555296684306763129475490153699786878054237195207222993597962910012222784379940708086054696784752156232945610522728101988028103760225471050569036398851911517068474455106643359334840037846037108421034625326230573874955021204375097201941287587857449218759605773229554412185216619831778190924849493646132384409113117330030861554899127849101288445617597403036249166613584385312147530555345076280110117600046301360062871177279820543761395972495779202778545071878962692785952810251971714059867936229479705224942403901350292419642443214998460951620100834185419579885916407126494151904704674181380347728098621120629115827677333120919323833307435804533514554092078390066457248869943473493301722414140898876407645195387489475969917185288766380253691040948677992667739971882292089811801486745794587673005009194996854251653188499427474669396242093757333242647137596052160078363804515977274736567548067040911653761264435834552594281848886479275389436442697556930371729103250602764536729180136014625557071353984030195288344530976021874658781003821701250287974852013708888499324123677238712573385747357991016742474004351624882892086833548386387307480365344258957053678813228995647448869876686349519603458439024053754207805482281768096863782480610350561111692074192372967923860534937331610925561463467571708571287944520612183777885625131912332102325522859849633253205586701363796041277528055803892711890128078579968606659862201528659110320505168618108941637538172423744651994183078806567622705485684171682257527374408677432295498574506959467603572859819557369965467202777017488220777265077122442530016739340396939454178021807346149520666014779868995201383849452718364553806093003173832792846438651600216950326222963397491308642022279529818185390769439999789885891432454997959440354518739815077556722083077204003660629393510606542248753949460753544063645244856110423751522593714200288834807900879236399508151325519247428632618789446254829931347658375893728116734894201509511395007707493411234766870425877592325861875939255923983666996162356145385598295154534547271082582677158500910224768517655559273649240996331001093850500664986276508101277455967805566024565871496745473066506094974190879597555890509378691541844194676512785454283153472099096874036934660262853548449513775269501219055888079436364603957953203926937771111844967183701656616795240131535981912466136606389396024214789770892073436620434177394493063923581234421620615770301305578957718809442164045976563698247012401888736204138655748980918002452564515448586772297111524550024994510166716548000031988739743575190738316402854050529803531505544656009718413106978705568047646137293241435074883778881430779559462084384910554652872445674300809736455657214526943675720167611536007656257025111411402701398927930252654736703615071165534187603346673844857325427506295205366445034575281218848188988483521942378887948254983463743136217192095125373889923994234286860825388556002558243265197763167166515589849660664003431539281463611252327323072544938955002643231057692738702276885823664084509063154919212757347249338949222020225509584205470395572401792441463224069217672215280356086150166850793664747327357650593002956895669580050501890252142025772871444680016537002551063107914021557911114272384600372721317633854695565348807901003582207806043182163724245010055837331749708639782733433849885863243987519839373619408377274175956536906935795354451041474635894159214767084805362106558911268206640623167815528895525499571562790048500671103552231306007144831508141687711603669591387470463775727553150295769584051081918870037968038958213120612003214530779312845494530722839341950522017404819515156868699534189467283469487474319399703960390774184719803309121077917614681121184205079325983165025410152726484511694057855974952007774104179226205881132501669341257351572673572184104833278324078777680672105835590182560556970293836191816524295491285784659306630837349528055959011064501413327958910905912311105808452295359208787582514763008377578637251070812273064832398773446254451141218535062697382411879536380631991284325201536672150852107370882952114356197559928459707073681321791399394353195618316402849991456356423637444755266439359483470291754836692782242883697625379499147037868328406719785202046445212468868923304311465579857480874011043982156415976360856276537404473403127748770071821241978983523861854433686616740009545861332557227177188142198241564034503021649936021575087513690503994536143040155020881863856523627722219440997112583275662602775490310505289086188662586413474774914930118573703705088826521634359094791275920601833712261882988328996354549983598740156465886062148458438678353493611330652729704816329003404935107132437861472130844637846372317574895010414101757699958717301226684723337666791042928524055447597366591244487360169449943448984028901468651661184296184960479429948838098584932858533345144621363019984527687762040474283585041157213182677057801647518342719117087212677036995020235575658520826848990939982367006649689351261669053562384954505493923651477773606691450150565293988387659643043178778460811237109756936913544051079923152766035870710729845821196724027167903738531251773336951661936477817533875399991466470072883519723535674985650486403179350486855523049833875373888558170477220013539742356810511266820602182585950663205252582871377628775134839840072994577226514673058923269996704342354638818478601661001108168573770860009698849028414830082394235785575840263284865807482697383793486904835066843806890752179339506909302616254366209751075415082430500050238569285884338044951073127907828122743648000590966125830226374694803012468202724901954099559492651615634215632149124314281335987848038195460126456130469004829311471096242231870649631027819507389859517833591883578577173571541514258433901565098328383216865512653709580608257649305869304734074786580895795363602316432140287869410348688920768020159469705326395504494829323528604173835937356346360757810172071266198560047514398329810528558376057709185583354610378746887580170385986063108534093009377163345260950433451125556705199407207009086697925047369240809376264381453304265126214075649555914834275919603042856876904838942705213776733300237732929901059088019922132379668514792978924173413913703884259379096060751920838134124896128764373373916971906472213028450966238799379118342320910950292590121029053104672499286549566500363869581674282816009507244118376888981574986835419420956424045763634406234589915464564522842576921945964353051502180363226571664261401447685823854955679510675879503766542527153664555211449505572555287222494391239228528057176588988806781665161661009783887004166595719349111531175701776264342587293924487672145217711584049400160446383075278192392100090840353775216745299154123832592142626143268008811478225452529178062274534980357102814514542911866965091780930787767782194883598692185202561608717626873935127741327454537140355782850987465154005770212701214371733989612160362709638066268508861464346005722778463617099882293202484222949226817506797171869591842336172373339280093966935324821511057713817611415317634385020984453121301391354287884386410907889284345648568390831988728400877881882139771151465493618252302260763206885779881773039635556792287145322666735474602636527205165503281426253596202726545510875966982593140833161872145503604679538896959574444106608720570212109925394505337402004578163081907800221343203560649718677978241501419238585685794000293341137552928095774046755881637581899706837496858052015096979971607180414055489184510746707872364662100488735619316499353971121980892311098007578472972227091004083609156447015808136658752979482225997634646457261386866785450134717585484899027304439544750237355124596595161180958206373609925542776422880329456396949088131547730075306218888366964880497468604304063967780053214864835844699952394808806561254243115218816656133053359860027036839845660213569131635143147874191610682519108311102240154386045468088019751663775264863628530760023631241109083833686456699109589123143875298943716248469580164663430065618457113569400434384641938552268121270842062097625141070247209099337527621329110306079978357678163054258927749291084270172826555619396330757231544636903421840199082698973077480285769056391856355830760280580251166376614876400533069544351884151430991603395297191154217652269292137946951998741877950598901045054357809595217900911807733920240205774544385790186699981541270575147886751868549560423013490025572117849897343502964885164426503239753138401674343652371480101537406916125165102284880195439288414177584871527786879638728734815689989915560475755136655869989533153223468838770439274442345477808965885936389265929813024612088714756284792366186878488309158325674624319658687410714950627025119973864395412561423795068808885559895136927884534712371870608109807657949841237675409724615004490758005889915111424352167726024718317699185693451868802172965445351841613363676580102519889083527630188607187825922907978554255672650551489407832746329475869150264979533113178170727076142801112667312023885395570417480546924481927106851947094693116779903968034266448630540610165298479539761940222861676049210241815800927577392532511189082076688367798067157601109515907292228761155604964238289390266028916100315106344607730220516998676721466022242217164201560412672038885200122719016814029683429214021556431960119951535090557224789655409996979616419760225129563555600623403975221361777654636164059437379995028028664853095886635156410994086402067403625797333741816535857711689562526948141568783310655715720593543135075337564404297818918489850656197294666035388944024738720705386716736161066163687494455941666805829258662890166824459659347892685832884029040588739399213076345019104264016392333755757969016679005825546341196427394450417272003282296232603114441908663970332316339863149665008388104714745863740858115452241752853730610121161688111073361627021717117010163909795094060596530092252502043763071899059971964551657509077062728503948159680981141091223435114329361890538032820689616497958041850574640697429363515028812882221332442898460546658188794594577958877573218253663762764072886893544688627984769287913753751375437922640517234895301319606798204706012671228879635457762805210302940832385726536864215352075970665407534818067883259067970493806895324904810389478008294525544777935639748549222174643139803082445927550930563541225708293483934276903689293364417467909413362935859861716837969799271741106845885127712315433639801036507166552000800874697753960592647253903703878419557535641202564594604128660519617601138246778987378262257974824061737619095721839868291227079390953188766491472097068305413528799079278426059062704813258860453371511521265661174068808262731164656933060860921454232544164068752504839768788672299944426959165991855950352734844491710854138734189678099991703222723471491790734355879556463787593804731415880749623701242619168020585046795461041703258343520229661459872582617438093582152210303696563651433602783178419891330859350329686894666653617358404891756939438267685626120271611383226201659878874300555915547346508615264373748917051658404202103255380353682337767450292661443258144317779247306900756463627339033728943762847560941946335088534872580917228487722454061357036273914415230765952033733994147747488937103696346469096270219678144198485862844848787437041920260555132937326824760804860663361895421267188590830512839033525703606592762878498387929493836774196788497501180270756644762957397211630663526644264960588415727204065354077465189631773844962213716640538117633551973767740693835500996565849307664496724504483539631074119083669788176202467158542961352807404660708412466212933118889635194730872574367218231970625702859771823248262929533085644473540701521295074181335161498171830164418177769320139682035878733592033296770539052254948452939879932047178023836000755904370898719925697563668963562276798580638361775585904868333661122368688138352085127015712384857122912120314316589139235724385001264363360489368939033859792530905191281713692427451146270309927258348689112319998895225521631141461651939791716467690748192663786901317102950037708929026673043788320806396669376845734716232310900661730767956774991099819699822173554497597084942940357566928369626444565669571822907907820229092070032044552151818517134691895858728758344882057787628085298380781342992309281067545381202252456698036924940972681330793088971538859288400246881736365566733275934116207401783513740430206859709958946328338353772002976783094364543943055963142002456669481710560133307608735707298497309041297643772998268474345542593752625870212526826364209335468339702629456288940481419765103927107881612913610881463017320278582498861011742604158911381735221931342418929744061822196157590999402927698182495888450418402230543217471848487238528807681164266129316671017927054111547028209479653557060243720210832143807458414462804282110409130724867002461520940848763492096171202898402859084538576588417220645287441817725357772998564876561967243086959904172372722898822641766509584287294692648014007099498539090116150115084895817857139562513621514394644532747583412466686938313119903653865898033613032471457251541722322843448497657462090119027580673935772619204166822809633802817373861025341183652629843663105904537835564308405220129448332497598348243083102854527874850083579203717664468373804954838730924783223997302160008911980717618809334488133809299972758919399939718332544898419866176125027940722190928379745372976966789310763854941701644708342568385706734700156737915802059048672974567318330380471474978033570310564250933245311212979732298861575367515524380081701830042250213628787089342205937136686969269050222355307464961588001441292155577947061665206144956310670824318980490788926541871016158682498369913032423020728848540255999319864194132648402405981628037905690161229233317889622235788141247977319073610839032710056584677577037218186156223606165172503792829214528879328459420733922830177210110256348910040577747778149612253877752207275427160011820130378584379558641567271611221669101197041985212201195232046603087524115958698305653693620522105366539866200144560410568104410183251615130041398302610150107397581419019147176160370693882842644374707328136364465409552868156347583649123376527364083862468194230679041472171978093741783615304291458858321696176230515453946795468201667712632770427985335027054541399515078654591282042134259816739896225701359254126295696159475669537278937229072456345693860846930416255503928669460991500099513156664239201400782055828064618718540636729475060216426187794160111948597687572226767949258168004394057029639997829818288584776750379563379367846344007617853816483510669153273219194598326177536693760175803246515473354495725085861876858487570848902756295734095886944517856745356130590572696190972151460612804360998863156794628359274224070519365991632493556895466817147337104269771705158264468024764533413284916459604846029333819561692757210323516557885880914659744740491989916276901141715287871656912521405598452385667543186441580177586626035792238696624082050069256528707292332567106164256334725183734565994452126053930473601761043104223687214407730460345102005377690033481758183036556470260858676206134593858508867298753163155213485066896810446837167089416719843935155108853469915724284346119259931982825609792359865426799839445844291300772950413286848336234369099827015017867703059766788746091582631770340555065650880386494214892629624452401743637499277098650284096051155000595153885931083802125225357122303440557555595485704700161240591259922023638415028875318126675190264011709190872614033985754747015479914748337024748307692360390901744882775954649344418625238312791216931929062384723516375379386869129660807941179313079202398851667249323256463147316382729480799251448240146437374967501640516898768536824321196963267554024589419790282953407985785640341104966474257198973539273083717375727304965449143945771644646633148063607244841099935529374971904474348329918241892587267547798582206755352955685838225237564612484591344447183849246418061711774184783076728364129014091053880873731747389728409774035342516016924097016384031104920698599459401081909326359336122333543334116581672352436172662585699264655133176388738665859662691330773958038020975155405918239443820735962074197051146186150508273084387724020348153444003074014949321681717935636772539180081531767352760675149441069966347317360020238525469892312438622351696599910699931203631744027967003038362986060723317992122225996174142427124214841125980214291569133437060600295683607370203595477997925613784546721860683134616239609352715355140196636300743003816885143541732846000184084028161582472874076639651842482012365653246099630403127975157560442658808549239149853741465963122086734500910253555377849272924812420551084560927096743960344407325653628168417516293716090181296885030123872494291340912525070562401228404570405594244652711078045080362596835695016801510889504414058062803673010457780126495558059300283905711130384969077580439573288211804996166951457460269871058273895893735895240749231361349748724536119304892470346106860778774548801468021751617152142143558747007841221685111742189372137586622791959270944254535828057330474462929752479569255303370449084884378507904952032115230555180466392548441150424975720937309052450464784289894199158672185364685411390934618875152393492653165282963382336494095296760851680856756342745783909877158301894496870140093538947404186687077317577851051398788328710097555837354478769617279621870280160073720423247829362736536675611357200262546923210275200195725252643817923614183273829816806710742538863952199944215834911458320270190016982977777275586190682347250291210749516950762646813892099797304926537340940595778909886144118225808822889818118864458795031060270732478358763719836678912264595845588711910707976638566973741979325358098709425670627449428656989474851359020007336501066857836205982493507056988168605243987875395941968822807246693119006017932056667217877925459210837283565352757397049429626115978823303709087463022541913524259081982954803027438886331441092851712240669276612263520663657951085653989547245415144540247914522710459706111912599969324414079126413854478126449307390637073328897187886412271244343829874721806338361759671907011412536886022006786148566634985992705058695466556464494965454649343689772586833986800989771872114347015616735230050471181895810404341024698200923125896435896385984486321819115836505140187805333482712958663338948213688149558918582214287347931462933668527766951624041494576864295528488615062302215386163481751078606099517277119195802601120924827328668134552877334435637037183499438495932877448633597741757620221427838056169061719502727914841438726626301476064161190029917608460668844507641312984323067516175307514461743986905566745902068107641194177911330723410810114806864986576160247039034210445276245540654807263746721837994303020868319765862661654573063370247582885747651056694969037441319917249415882906595091210780847985285735231755196980125921474161684839662081988906378676978107891039161508417385247514365884725235828165966054506997369391253985534403891966848912864030054813884958757831407441624404824549458682759156957593899213227444841193931506668971888461768340754014867293021612788894640027941410909425120360561330558444499740399120656760388952012282093698401110641000872178263110641075734033033448589655957595142207723817918616842802547481008056530776775672466038179307752146429580085578982410883681812050754462121860430612383010332696754685684696855784298213857149832483508279437335978573950439426819251572717225002096670967344627243774181787386594869902576805823896487482387969413580033408055720838787405064009774881128080128688460399442787429428441912944878161015385420573989480516371395994295762944937692778748983820927992091281793691233192572895954117446425174641185580594456146896467307539613630705708102634899443054762907178818736694151147603380025334465940809675574876281401962311633806330559118702365168778888776091943767008462159862653532346485029414704809405696486566556947699093631320890610000038441609462956123090310567817807515670190925606811898273431882164507632774416857078511400786765437144748168871777451273751109777596241102906241080138352302282182742024086337852645594577799356354527755665073574664993331803502625129862974377716090576855733444488404869728960491768098071220793453755723135438019885862116989227391109278421603233735344358023974501799957641440903294592305171614333542809857290525957931417402049057053716842148202069258188405058292362319864857518184192203030256484645545321613932791854235506039105693543369364148780338221649216557102085540622456129557030112001219922168909923283833823144281210443419170176582100026009491125571952296473431201912647137428819003009748381198821196363020584217389185791599652637467900541842781223825532440153556000311891063472901924101643121563126081008278914285245787027656648866272144126313209709098416704391196580295400067615527376099824812297298367291188472028726370125849569699410359510313630891435617229759618275181529435223489772191873180932261600872710500038731754626691315944553336743180432624698676110707366847327112563939658507520661339378564835177172462428865435118784009997488461511888617305456982561498258795736807558318083432914212652617088236774985511943318660049245465781758473961156726400206394727844446863586193945740380495908935249022778509542532720500408309509855480186306047362896747476113745934485100702898011515758739573030050684471530577971326590093321865513012149009367679868659775939482918384010634733871659528934866822330885735100480209702502815086760923033272663268646242651216203799637535445045721323770171269945125486356039430255061504029885114194959176295348075544867636654297297071535311198973525362099276616017426494767854018482481463394576982256445460884988984839545912791308689587343958961434709468461797906713958738908430804844375810160498832299540657399625436615912972992428006362176484507804349925076184751589716782083041187524032836888022541314856545777259075949591458004506167854311609916592466537719564667492318680238952624212838946826125931483634468585307525352354380684536703068942255228074814656895568737144343304154831405500366520232778415010122405344955836642889381771807230470046521989037042643412691465454869464129189212923211290977139425369327757027979318816715285010512250603065189582832267408787364937065053833606815513730336233449362379221014254658457372836260761753033902912443545462154569819673662903379360542165004500733407362773604713604581502020401315005826650822650654672733784329447707760715269196822111261360171078715173632690335215314058690773516239074634118960645555661470121174329089468994330064898760837999790818129827100999699632815209845840017244981592463374549408524707609401920119037931913599846565036672574077183780937347748681652929649777802128685880732668868137026657405299456775154580169950359109013141737261800675004219091265757469512062604641928360579499944768240681335350999438098421740802022833098682036104161747803728069941831144228341209712162561851860366386656969372667936656979943845447700372248577215355432353179726858483980158973173911020897291178115460429928206422283748853791175066566298222562487566762527805447864226896786031781346324278683030811977303949749730976510489233798491283628181377364403524637647308263141257934855078356901847029048615662373635329753090935124391493581244747737705355926323146444251163392240218071634488999093037400815402100572684029468096493029171471965359421537983326372015527740647933066969257165599461223655463510540816461157434137296065400328489768869879020318609950921959312647539881889430143443685795100159719081330063660345459369932072924396887231734776304968885517720693628688793031510182068376345075408030231034336836413252746358426804010199806475619718514710465538842532839492241834318376752575251528352052759586451644707665480860891644515712177021542411238011110146474296939535605137436203414712811118151354406640506037553080141512714570722632656362867633805909032251113177500461181138758630246888891717113259234868499099494936486583842658716754251448142116470239336676598403562640197313005917792628042006602676101682532056651650883458602943249112768264157164792540892239218814901724348660020748025800142049314103828060710736277475568089947947957715351593984340913949248601006336120553621596307845743900930794203976795024898045945836663483192753565754348272359166342496851685877033863209375152377161652798182363835404899449170818949800384283605080380902015154639512510172599597467778100955454296463518365157970970603005434828438138909333766529154097329755821583583135095570079050365412098531026896806565206527115105087144232233439102876972127746548039786243676211184947291711859126415814776154533307235822518142967591166693645597049863102262360666933753201759242755560492829407239798752743722992630235500989579939838490434993447871279065911837427822219280071491795813269370667775666248778017763927762726999325122537018148278334633211632160980007733380942677920395284358506794320907235763055091786435107616001681901407760795502504262151245581594333233744617698469730468160669275942615804470853769197494896173232801777316939413921419894798004433033796055881199268877122513509878431868759504558417543645378402343371705035830889388415087970834925606731099330903790303167261697992013404769352471785799450231138021529233552721206202440845746925338442651392232888473382143068209232345417636806589806822272324284783533339852414070298770291197466701694976938547177162567227525119474992311330068035002459851184890860272806477431684124544926600718410751656239809836330112854503171948619899458072497970696596058190814495483083374388673840939259604867578115518697909545431479436868223340857453133351565369025715753718727340597376366333872859253343308768874847906639652533855860349547526757903177928233020172019557272012012765114831334873685861891037051305913159342513452777720638341823163444231769607393213700368840438406692854064691564154327160002860864888904830536409366310917695877956369058668105834051567407590315010878130661205050747539940711628881958015324624865046016700137062658448831105088309961961064273580696636017645381884166899515597268806732894993217565982902997973711350510731026107182199336900970267565247474343103780526915032499492984250255635470721133511006141812312031059623776987499876755199995666447405958849156737941558757237529588521922743612294780149034991120584380557967035750035507734183807381253122461653609873238827426638697002327721421078675493819473409169602207030423412764006298187099196997260165381709519484032799557388903142125678152199541387213040250402891076646936540501827698482509480543688814433453789844251519499553769940681982941550262960328241733424340844409570641121761834179609204168064774395744889279359910949308666718845819067272514992682765931768126841975538729251611587165876355698243556509398919644600055961755981928921071757346338890275977466141662315513474411329576857525538517743788976060179610447059031279591767675587189092984895637006850291722556090811745005187969860915451102731020133898425990394120757376716411901536175359639983629247467767249866062229530016306570765452694573705185775291540580308053005822120455347826988804402416701003711180605936823668083652706682282782567656250040452896665305738272985324219624188535362484267898608297988081848063581301312061389084558268564264246497998482108243679928036920658128764951696431064605960888523898189687338910347790245733704079505362608300907183389923960098576275324995528303831555410670645943423336420078203879420278405503239676019522794175413602819174822675999949534921071881475654307337892127563533376902490047944564653808996994642780137500550219294571176668063341166880255340194723753265225095775550108101509174373591113143037580709765355884010751441805193344486134019620097760643592331230345846313540709780683850054866235737857449226737034793089797215988226103505242862637447111143703684068158789382472666811011032296950540545459475177867848852387378859925916013255897778706572109753875838787114509705520495694366530777175124969757880813279049826312250320809368956869008221568116339715877277826137913467324409746669659981084492295455161480101973043474065680498854153042310036909624023521070997613145754010713457493619925251174988882007174249861070060655691896924993957353679612926319493521210767520189612575247176906931383392581267774928772556110084617005359932448215276095292283572391671153586778825017658936804678877911199709747024229439080660710590775750220675668336625439159012253498210643969862263593051101652914243578463969592943038020501898498703007214921809796240840954153981497969600070572112570365280567975584045861133446930739698300857238535510033423956894222663419424737745354506890094216185047578862474814362782404709461517641652678475215482570356698245333721974611305208495887960842517220628657399437228274919084205782629554862328694683394801164155154154469264585534301808387031424950728095914653681762278426126870491083153561187954230960732389792851538769187894823279299972236184962597685477483599414320784153413024500286206874823072459732242591455031669185899833726546007150471776673075395873353110952061840588225282462316540611084035445974760973581980351821334626375216946864302379543803283764145425454719575955473682223049064248615260022005088024867671012374815793586287775251586335258122241425557101410122261852577989516051179212239189569032307046913174436525690377432936956049008781752818406027596228799619818382592630015068958134808686208525330697156242839329506660310519116500983329284845128859605428997396273809586804624195047687569197986942183138381038158128355282717489673722179565625700570781993946008725607859920919524913479334525637398478835221130211343215904645616011161143025635125980493113489070380113816568759398597615187230982627394065697739356677119581038870025897996535819632472210746647681923993021337464432406187282459777172944108201962284976207955217466444309081959245291215575098155949459703079918270366927042504818740792679612899182969999292269418868188735084258113694210387413066980128519732502766207202091601748026479091479497810380750598205745311057281630067629389531527296684791240612796579734596792173344147348936160233264571170592114912121338297556572832537336802184023395994298519762740637380697218717062421034450694718168861722909860822019865287146269713158073697384457187535533279194086166107429892727065361803969326296489188590155438543042097123939899722130901821417213171569724006534491350850745560511794990947904392475939913903498136468760379985786431574692632440585450540498486727598510851167547342029316344082416706641299990637313608080150826188887869426349129008320477010144213691371605498519906348624238525627489344487742520341039230699737546017878946881376916354347848646218935201935893090795204087670269985494396983066392983861528213327592310304838586009211381343266554889102763046029857728995280095345025913547338375421300226570222537302278588228072347477113027147961623599421472755850968929128292023179666635316478527185648005260629101330560913055141947572094497446164099268049927489050172551904887694016637546724599865464102069682228724758676408931960253525929065704866379797227259909467944541068845199319495649650083253676507213501582064729658584544587642029345927025313466548763575851193250777338694675762770831149334170776797904675490138636729979828470934361912946156919825522480357901843339354565648731099165823255136852393919841307963564059312469200864397070526143471169826937856933760053114386257352171528470229607794843667236736906547092012523656173484297409344971402269764851055231687781187793152682977946841458849628828833304933193174913655782263882238021291782659100184660562579228973332242121416572053959175934226844194865623645013825349534475859333376774971506483430219882403289941207247474551598854837879182028303601367063123656057490883048600156011036410121263407221385957495074266474566945539337349825353691257798968573310296866011965149551112872849500005653521298853835543450573980201722987805932467876929641379236145694723609981937610078914422847904975564204626172539613011611118982007197653423973262539373261254022026965569875332901212962352444653216685416647228066828916835469199690812616295990880006596934084320674300092849529405382405837779466368115452234730770854079456856488277469979653870028393111831566197263549676667862891068836406321873261803747325384180111654431369629004134523368176574965464535440402317286825960863484969499118510184777456279457819409720896617008749485435818628715218529040893999122339636373848214342323297014539871467824968676453800759176700399543862327630476663598502289261732814914811418730628159989846661134934736761019400535180492272764926544892152834871411170567920517364053016285936639666833674607386252760673377984393052733996423894434275278023079815543604610055304983249954844500515207267316978168527772684662180138439935689971895008449180738517089208235801561914712515416038235698572523157406377132517521773901544588812184295777510978504022242155409791251494104290141897755794995640896962544391206014893971997424524753544697895830770744081320975812661476673060724750560695512091600280075107455806316840391924372362754066176198251002218455064176560749234120511649255893772999144036980323393474588018346123810616341052507504426663056972996212459321547794968240806833848494698127423380381762166580335338145559784358634955571414453978559599317524152398246791112531332097547717281823330081898580189963559449032177897495536573611012045863182600755718272597109607343920770818121057287036744536549985797248014227943004358710853308769877987416654211532163734268483537952783226829160214133425786299713330465167033509418408837490616502617121416900673100616243872147160117422780574928576329840528865715613224367411954932926235372988908615185126045233593884621729951173138350367104527783736895493399234176068607128780779647615140852920950747889735542297806543358625003982788279718456203768972071253705302894825498255031049309439253028504103438431711880994986756338733774132427233106407178613596103710140950137705716595797794426207215944598549530866679048177286260883908955880163180591337100441525177320012014009383424607073000397361297517504995629962110904620439587177353570099369905832348948431417374879699527230764848669129345397318336966324106186804148401727192922966328829983320294823022595438884327420057472597788355529570711797809119997093909243201167874123584873736363422051114053091912135335043587589677602338499660940305603002083553632797099876440933876566241629847164824957190396941997824730476797540837823878438480432367054808078942563937525364636015522770479759210336803128420760952863296139004085805562345943058029628476254077881084067208672614023795359818649160165484691484193997907704005729867373366975675113712820256014276223197522823588113723551258868322868231009533967994818176170539766114038595161715247007220001303921252533119148152284490677050227240889931434498403086018255546973969739382868175000737012614654069244170873952789613208456634224414436656703011618469041178459290884901576611544591336667558223471308434063633036811025735904315451813825145377416484836888234855905243878020578182207150613456391527898174273583245619304272912885050710668856262502170160666374775736054327830235222942594188235529402482185020929261011962249427891017078295484018447427683451330140213494802620043813448083479968839895315915410416457455450512787346692218153149142553227651200958866369709247957473182736587371498094450838627747373948968353297075837060672577193896650531876980424060162524267789552276615819847222078499749494773705823737659041870592379983700098898629851532461738033198641023699401156512549221849040093953000506505189120864062826431905759338193556902622524934577071197441554383046485447803876797887836518697234927701267673433230895761426734663420253801076834189913808212361559618446592256702765205393782524926701417328933320435706730117138450231082339981856640528831680742201139698859208227072829570702053711744045853496752820192332443899490894552359207815361168771281572597970271352014389770636120620405930457198907487180140276838701480822394830825152848397049678613733392106946541597357644817872793637174926409256027126057985018045652250851644633161529302661426973535013501975328916225129729559471787327785740369919411005267738511340552335488080640685528076266407258884139653322920283967120690759207772214218140435326458665622256208856433591658690337324796053762206151661240659800739506151201794644989798610076956223857433441670913373522034602038672344316568757892871944545750155976677752566796412393925805697564736423028836133391073292589442657598195088804693595461826487114338909557984637713928437565685178657020591850644974265301631712896276426202272307897447231642955508044702068765753530055044673119582754180014724902598054310716677488842654138904469765235117148304613509238361191398829459761688187398856878743772198582121980663342104418751045703981717427198710702429298777259052215529571423426318094598843024558012472480276535915453416961947540753742021932233687267103397458715786247601288487730997984753182998179265488217603207489245351566038531272491150352643162975321984434554736723227953407124499794180143297133789773928140778661153397583858801018153906415165223282525732913836243042615879740581659949168410900442526611002004744143686921804756220425166478531920010126416544177310787003966738492202081365201350638435041859948812002881262335264723950991374274260804216013524679525467264046165047556311269152139633259175961346602070704680813275029786906880789530582106644514699641729224264020548224067577410224525956873466758455369714135734514560841831524126067578403335818818776432524222948800720947183578296294710748702973922155060584718027443345856346746650371726355811171171028667260358732638517078367403956145055528996481887486509584836754737883172476790845815503581659625773970088351843717740069433105818415377888813624019213434581423377616986920469023299769414247623140827222545730177140671759956212603376050634465523396109212530964426700306094174367722590749078876283967245901273769022125413817348832313335679215434873819814940322852957524265658618960074740080618588114161895479846096875459332351043157118990377462021197864078845628759713421545470811819178035533715717592270615301806371292428992290192980948778816378753112544227877879181299320119950446361978160035603643797183509922941783620268187023690798189434535353497526209809847431496482410151204171274160769027351127063870557854836058470933517322062882774232871156855605296158031381447293929577837203222262366383953393833873400895036017214302732053775529487750693961998961817867417180555167877793463274476989510407339912045025409383566251866796373492600550047006193053265088873221959377076795732558064708241915293299000924628733990509426362109713804171655166130740451188072668792449820198732999015377927040078688317378683854792278425409090847145524247545537609098203824076474819629419121200658726967234186355484776942744893064165548576523753263523937381674919474594619517860246793414723477873261325179344732566414726172540006680197288251052556376457283125078100025524591292487129506981611139606201009751358461876491216362170538777665175438077525518854107869442307929138790855747895657906631054464751096421641994800888678871361015965128306990122112501808123272319569071220316065800740616765653802341230206634929940844597419983753147790158929492121497059606625346968115709285121472479187332719744033399533787206121205871022982630079222579757079569829451050014317564199547410964919074177268883537084382209173196760506207072363264111766527652987959783310240461371182434469265011107092372991813954797996921579438115531132247250050313075113346950192876053524280133707842820009967699923655631290493622297985488399027217639554867855824501509688911275632457584021718234505453795874825736969628994425948986901445924255385660798847065711915741466493460937190696031194281796007660692640786742739793594018784491225917409650377639637005356642768330303723047086425099838885004817105854332454776659785502878558776802913596837376552679942817818659449918620416486997621499908316619736116021224172745858081998827290187104649445504917779231376355676598798430959794964912272935236691649341457390685396217615216465697542731310161012018120659827188618673390958280112413545176977636917816952710184467938976415438450905285005578843417866524814327380267117186050648608993118585758565459597677403156953995530340865303174085228903796688205836937502021830720937079607719133639866011869030693426009357976526933312521399577678961853736791975861780353346648713349117417983735030846722284184698270878909105139106063524695202841881277939318901612190955678178977093202017534085040675919879117264944083944858149613641413989385223472863649066759950011641856405845304187810784216197926203469096442778713428540708814151965011950828643797574810221990923589816073324882219775095766458110941276696933079406684543711408232790048449071592285320394630284564625908437468121893341719849763918312365585567999576003292029900920935346339129374438746659067233618039390674241048360922223997254316503731589427300006579509862531411423244162317531109596201695304079198432856437046098662218877795401216012105805701209003758936536516674903628898231296491314922102086812400811173725822460104487298316881080918104801176273581645308644159732030816930319886281648578072198351497413469912413108755873150775767482367065305426967562005241843690765269279840022741370001442863612261581041395859037083959872424952440280345330641669493811506565389463175175435494702840277082369426917798703823503237910372155821247018609764831933144053214783785065677268159511536296645859309929597237475966600373900816259005203574516809055316121055619021549437931628245794652978840701425912088380278680882602540510062586679261509111217024204295254533223489141740094640813691200314783725974607684979797916097938371953821758982117035294812826590341119131715651829354914163293197204542096629003640215049392215747098972720036995315552287390509345839690503500552195862861322767206497084535885265785771712521269883992161896113515259868790536402138477357914583107562010784934586240673635295073866695265581037520652049586435873964416433590609013436154629936155786052869464359122611652327124163082047694450263702438485056358314715997605623478760517229086989132089323752220747261866038162763198373858002035225598438693922665745792362952145558462361416763957578199803881338407295595206134451854329465110424450635968851179649891457180560724199499097126020115192324504888221859475243753685890458760897215176454281034827456478355188565922708611659844381211908319941425967826743090926737480097358358629650609264546503339859147589297299671831239804956385755583309068615619657359635064847836554012782976099979337344499191868229770861373078676372130852285398523671783526580371866104596958714034467119343062433109915856387188746678671740919261281886924690528589230669917499376445601648424702282151160797577819770910992319296865888977630781704801045334522792946568860537743246961938923276739652392545363540609090420909550371100885904329213674087513033402355168410111002981734631771932599031262790432167582433560532839310348963344631292163087040048458503258997301034964380989646718076917728707556973108111029289917087937262088893245726627135080240906472787115711403583115345620298927385218462004061509962798818190340604085248465171598924041762507999774966397589957094388035382965978616593924169818385919541564079743985875560349153728241655899228639787435138601726810909078604315464275875342455041121535623755952589807139538718046822003528249170548557514267169912907511974533678548721583983313145835389997123599135719288626507804711454988012851921117960791803183579018624895207480237318121410663286958590835550578495309542516097389996666312023285709004214438511482372782685664414109390424065164324319533822759761002647956171571472910760686173324995297584968043254266806138867535875029997810658337716711085532276918675243527898174299460377902277614765212683722327494379075829854603037131302691356214438353519080715419870039178464464996868789557715664571952340355073329091960547398554269927822579642075412513062654153993696002967011048244091363613986528666932196049270953790851885844834654874855547934595420903539433347990310485531394739386728600201712140960990195420812342250889141646337669497633535550850479564944985133049288750864682476106136430307413408984596151600858019757723238007196356777152348152342945759552819495272826370067400521390481297789743123813226087868336307556945809390057559506082280169790910691526735070305550530969823459880169659994990102177741323157803387055433734790159346645297327757724333402256522280276877260634765734646386136148702985719357149662857298457578957543110845238859681837318382562549807492087422334017340681292507417508402917123893922334396234471656434629124979013933834037831381741405336414736596508422517310262988169384850229893347601098951980169495445190134372024115010839019771763941099902005226016550574697758800663753618739567716085986079753920929899171998570846040205650808417968946571309184106973813201772719858435947942406936512877660575965250607020289615900033059897844913926090804894658753704179800379137203179351334633555133220697285659842208519307256538948192965894972375730342317741650096925543469740370988597225055770733249064474667109636433135287711770299109413459355655403350005107843320476171383583588483936404650928988309853582259956271755471519539840946954990070005665607914388787364938913965411098875235401034030989233152911960521980532564707463837867331849864199462346358377830588885397000981488233424610544745025572734623568607752517587164404537118046026984493433122200679238366739782380526098280646298792888555666925739770390685233937680918370044300032724032780345979466462680583711411931606567554449989136005846482417193548827289088746972032956714166642602860961423495546384610018131110388280905265303019878680637655190180878227178498112680134260501526113395017424055561379794125360286357048507382076185661133152252964322700393584730950235644938432776511016021700491569107052888499602145805318277711197444320657747477568937167638301029124872491424573842881888261288298460021154873492805341231377561063585929234014180183949690962410059925008634849421605926925944288196371587384978657510272104918443971657545185976539229440481117838887691332046094167833590794576989196782953096533597385127536470324581958115096179734018739856039848529875303389659704477582179943765470745057816504821104206302630849571567830131969298297747650223938131070501415601686516055897654344538815142979578860118600475981912538154540450177234581561359352631180794370284859406790015342612007574465327265460364937086621146584572128646344008496281669982287986713557490410819610422134976159379440479355432366118524324796896001939313365459131915451355423496440099147121175445240036902679952302796101157935471647723212792578629704397520848294222366736730403946220524804947611989520934435111187855002127285867219710306245010888634321643326587791681879059868192811654402865790886414685396601263326905397100537420149062790752237825699545965433770903281677521108060287022580618934083506137122670305622995097634661766098014425622975734977314455832725789353969116923917454840642542647241318838773057788364603711060119376523973533023374175973639197181357395416387506143176562935570791865683261374870706914193066179891195375065758420958150647094824721713088252663102124297525071002171847872614162364656382984179941298458140919566546268863909116109201087449024379329181462906256507382593228231417224599473141237706920713809046813354064977768958166340033835138370603571541414629135112625532489291890469893553814753824173354921041518073712160645199398666297045940669071650474458628869033055242834388997267605142344939966821862788872239567254345680013459936144423328258102249946286180825459232754022788127544645469580116869988983081725935790529833571367259116720242854217054027721383337447618112356757621792576112759223247710334525788551848698470084105461064211196336140665257886488334744941903654689116199864751221933225723362101736685489381007071294201587442909611874054922593494857489610715399020197664922009047055121205497540458713881070306155646449444987927829530929498903213853086907205815544224601138088662520959567707956951830613629239444119077064593122296447556723766550385975600573862629947590626745788601450380440405486340263333129273439025817371886462759988750284482474784682089209108236987746255794444349943360011438032273827606715540633152455824583902342620456417373607061669102292120565095004776071803293913703296423288816954648385481349833528250703252876658960238338590097631468321795235283317512123038236209711468731110649013880904082163257291209956332691190365500891576907230732422272759179104070728732343832323737331455452395557119883245635891426658667132666930794528452880404228706498776619557210633931739390340289567887634307775072078538334970801065105721068802565768022403829786807768676926262237325550729668825927829390073480936478683607495279458785198379947160498290902434115576229979815607912004230814648273610785551813119863060832395570295014133658514486062691628590173997192886429903727071626672152778721935271980859439210811547483269911211937272447075920302521716438992438612712139396713382442344254795108891408360419376622284335311962805930241405059246382798400852560586934316726375489725717332751274587784706834257829498823491779831677807143040814776879777871093817229372405319523961632630171639286213956932205099090983478226254884554207978672350036579728334778526201152769274376197571416646134808874403436096075085578942433116127513457335639782810162884053399087071777800228771477690151267000083030047197407165465500889766482209195201297072961747370671741502043073537829147030806719171680963523806162955248363251395166225120675634837600490400079537722455769453839209186391706374308786391459711068327676447386195113185103773312420077023871340819022400007376861408014033633565441063391003399448632255470539006583303219137713553671590569916879084281425694984505954155585893858492740690896748440635721041185386650796844797233476238442389502865112002840005796639232678629512019533923799971445862762616974547679860019544162605290812117866506731571757674316316539883278835940347563945268289178123768420797746640637924862332196054830318598414833432277551312037240473413821736430572067026434875548100811686724758537906290884158922908016363200004891294196750698795153993268565272802584641494526120756690200769947113963450054912121101676215655497114341083917395654004901823324865626355791091661854066805997232813438057570717755479140617696742985975133990592671068793465214046595001959653053522312640161985078369790415293493969081378571225469459119803858662396627018227534965409619034310522686220860832725682483751026038297104000788454774487953783698415535962104436684741026778489657105292896459620097348571603091121343320580449499105675822342788251225967972800005121257564671825306549649802699921414978189877352554984326423404467427088228833631594093222003970299825524990004137844728996783067726463076428866223724739506424110780510132810781126494993580237330274764566109551454267466441546883062144234699533162788076695178412751919113886720614913312153978561755911422108501522436091848981772839087899114544548695177055505571610692093771317066798361086898338047591959904124726649867066107532428752292867714419293906921639168096408966794117860056714218110408847867199883781675507290184815045795202278201205811388616576428672738838826946521112751611135334040249219973559802381645055235715751313539756272453885290582235091535246400313595632017799130112706643655293309576012626581322767123962016571634542124708134854383295556950642798080933228111516462474531962947185120717650981252167754031828074077515975300999615567410132904861745477715394777186931250873901315859543975139666388466547949026397010004634865751521904351078374798622863987643839899979219643480682464621183082920641932663326901286416857237657462983043819221255749581943072725003324552691731689013297418073311466514697760337757804196416023651370754913446210433663680675935137796353225672771768286252097727956380693968153600859507020145112814905807412795010337221116517764863681865809765453806347846980939166471260102832023998344914189755479655953439983919417538452667935868787025644448174269546213416925739259690427718349515980212879753716921148127111432974928801148474140899537645534342049206962874559500930558931607363156936020771179117313916312283804197810906337620820683228941140814104547298974719490260213034296137272573935744676431377334923080412099112350680345654818710331718645768602804075721608131685294202504058500177962334175862991855853659455981544680474541654058336067733671998122004791459929803150653052563670201573808702076419142463745703800405890617364764559257912156141217325110790617539187741954094336346995116354224031927601219908179922240619515071550989729729019775174159303143749615326966405970161482515491111687300660542686947716069869318026055281713991103425803266542755330744449600829321349762975267981090008958152828183402498911111271043312708458679649347453013514578096132607461139545892151767867539704484971236795966665624072228983937741338384106474240174195706689591559471297033725628206482714092075831454419454436462270916131299033066397835779277891289652529018218660699970345645209878383891472408468688854105776077003480754818655529355282648289538881027995113073053720416728183726579545866214899959796441470460162905364266370522267073782099496993319518678258312276527198490894411842546218197344789562697495055246246964405512770615218711201787952810128248366101849246891005595599878569484590015593980580040634213138129288100888080976668981009980250039333505692682252899303639957466799371929077575074301054358223450512349013862261454591607256340380629926028802577999998700719599768732072911110073535198309996594037010710548319853294208814574435234568286225779911927387838600698803285377469865658946198454352518380851609071839316597046644599815281986514291152961732362335747190600757639506967170985413547456664106953764814238990381127553283720501925925062099141667426390340107351999688331794758824253127372857146712962375207825121714360112176323328674469496451679004280410868514600820650730062526659605513479146947865551767728647444904687321032394126927004286266631163968439634107553169265122630761018013656154428237479994748506041546971581508428165310587325635571198664687536645046906164356829050824752352922733584430510467541173371847211609881434872299070888663742209283228142329150213356772922721316984196130870723860914184451894267024785881601728439475432600612599730688422021237801891571172430816466929022591220766071538330023708872722854047545459543337884490715658250563427500673550306331139826086618937587634079049915286594891512141948290228312923188696081741357497319153340234756374857168835998618581077663331688993594012789465175166730426535656198268287453621784102987576530780605074695283141750731123756066041688722417814113164592655738137898607918787231393168362804700921779080428765056907425169720436505702504299326786402295524229827218335227363651248039590217902091863154960753437674934406466249001038609903272664209435176698770511915582191653573039528985592028212727680743910330936879863456898052208054864300600291765687562630133992338463209436168400485873794779605792867188614207361758510646738436633152215150151318949168222897267900782122946534526879561351547666144617628062858937248527867470286140171805386896782904544336977604848890654680668888415095242818342328946070812672288577145775828486222321154963722064855930280168956230591319301652299167566913827413330853305914960521829213677467389898754925114261023269757320698269671402514275056690191168078937298572424536520875729850498632496780581770202793883553335780456305160030821389282908349051808833609591152896580061478543857444344569947481670443071649612836586803075549384382157873329958432568220264828942980333475086106793047492173988250919651197763518788445442399135600089044858755336384795482576018443491526244618253308754009754993372362072436257118919469634372948966952099577566719550826301725445150552077917876321153820831863013303762360947796771180791596090894349757067317718208448921824823706556736331990865953126526452035178995265586770844024895259093480973293405350747143688888741814475416577415462974433426368572531236190651214240816003464627351704440736005868145515566148017280238910437860766466903783300583880623911560118468612245155883170604960445162429502052961792501457947551449747813270173946812891370819881287086461608031283285776575669008981045645399405805025455797892046366900553505085133662735638954453824746989803536972339004975049634641520439964740755976842205084954707839037568407162577134359186535850440646454481932181847545666487823075330863941557532694431041407082505933366652206570507007360191381750963739962979038048780458680236134101911820505937180768675926408763103528338273216945560487881121693984396395833356363598072517048320020876813369506389854866057022264329792349076679518682226602386471855942748863754939791404374560535062448304118515597881000393317041908180256671446010681236928533709690240805239820103344091677056076877325797601309740000865707394540656199899180614601834787664775016882903371994137267540565830894340715222118517228774686696164259258021446010398315226945448155146425009677851473498381159413116418531263321113924063584751553428975840550282647804683286953455703091472556666042064919190555814901587312003481681048780760788223936688278405824671449971225314581335722249259683487345271250701092014152683805119683086674895093982080409915910660418278554241860509949397382643036176150011897134076685798842023425528557279698655625623543625207205987514127073051234919601756929861881757747269052010212963911822657770615513341251996515619845550064570611375442943690755354754217582897600410375492680637747863425930943155244389643674564696131078944076719956581598196855912134961119728167814394848535256920033256004788714443323596521566864207582083754626097497667161470867193194505952005540888165940569540471148303310722642011080097144067228726176116683611498063244276293284249945294741840550979469659018217399546563636198846478667999419127679908601516154660887457309115219353669955275946814371868345019384010918944319304192218916214146494981344469846745911088691693014214151304746367550886154891980986648501256082584102205885067228328732546951602309041346400533946324653100789150292176580954800368397560576617515858080326224065157470835806686230208351684440865205878797566290017344119906710068587723737098982140026921704822132669251594511029914490800027121491736112510893689910291818743151216228797017080139035980638355641922462061927564634072878461743113937958517738843616933905907902462538099111545976644838023918357929895997026342394141091811921006257113204297646956209430623170034264978396145801664820398440383896142279564421827452001985980112757301493714199927785024881742025731544472500738501127355712702774138323094382444734090425400134088103544847278295251597555123188667360635467560199213502509030622504436238680805983760616789397657528556008938510903444975935843354204973561633862188223753834872318898150698002527413263111578781421799811445862320154912840883977498963412044422071187565064646893544555780347364216954243955329542850370725497919768658670246165805000150421016818055619748748219369519512140933897111123570558331893719820531730442693168991688749921360764309369192442905154711605985644595344239440637667879419676096535100028368065763525739505517487710705185667031396032258745462108750022067792363036947404592478008103781833707371339440425046739674164808646633490798422567700306962177001117538121561284441361843957429316573023548678707616035290808397544352811260373212454459871672019377663181424928796227996457645481518953347042094558557390720980918747905933411287681460307721758191252097189680578104406460337671837961784940632747612768730279261403211197340877282765872225586588263543876929707703777027498139642607358353260859158007431723418391352032635690943922346727367020991867752921358943157781177745845773924446901401983614470864163699251976597260021890258701570318841676022724844029973017545652096600620623028387675219371781651277955488426163052528452830981594884778858897744706695687545926263022291817412908987005368695877375478875998892776787138305145429213157977508100834245016334908061269888859052490125628470346392320874021944322245524064561145778240698105178466627921605088942544328205447750612765079011038475472533678159801657038409858566503533614816951320978121188402881884336026200066370374312844728553163862298750032752843370563499037683396551373796980739582871486344870427437102786859386289861610707358064265741673157352962001167138902811652921374980565432348870616547496735181654246352072715785919127338699960975578518270039964868446800516349970106059025268683332836371275716708567617800392513057007982109288203779850869703087846176336128458404462372185213181778480992117679903460573752586190964515364835005894056842326695623220763862775858711910840438050251372216525133321771903562165993762082182463166067828367808832561970867263485409918120657538745790959097808927911669604629743820522695961729450850802942917794810132661213441838030052781923216883965559944830839278041510154583360114763581093160931001351406861084275502059356134922380977894794042184617717349049770025193124999788850920994968259020158488178554826282756548394924439954785054479168999427499975383634583948805947624815284613571419699851460356758229520674423302748110436961683311619904651130703777299945875817128838075551272949302170175686906616843976654404255425717146165100512124852766653671301674369792402328280455367293832870814790121269287681599473977098115697901165312958078291874026825503237811403603572385954995127082489499128960978267272877609663387112967879873183743995230464814616744152209125006429550118925874879595923176514344417035973714225993366848511522932214361083591897546611504391799120672913816194798726495738266279759736677321284204468114782195986233640971920916113815146212667485786988437638841859805430710752540286245660350574410353205727057194370146752539824822382605364861637242511422436140853609857027744856545244747363205699445994494033753226125834953087945232367830523003552878036480691169632719604565903666603089858500371134678476328121594441036774812284348945340926615652659897639752907095238980681739529946897959516268629275369713765538880391114988399791215580891657425305434081084175949512697161264721819180479029024665765517260087188076138546120597818360755780444186501940396276841469814193472521380861751616049831469858390545001357891933642550414718056155144377559664134383333959432214799190966205325388250732742229373530579888590239625505068666734403040781742454462022833445797725801397441124308703726996289318478355314500761231025980801406242695081838119948256783893590060170762980724206000793230251244111357910466977211879272862535969339035117425212735708161182502935275677634207731237811589885800225114143764885333761403208360958489122456303444309223019795157377747701672500515835861349371918702411331854331708874283747968053733053037768909381391865767076087481393824479067455938124899972275600639915425127113873653937933455883763324544074426461300882766140474417556362715612564764594000023468293259650477543369690255949585677780598721720726935597967888577665697644706940548735303203936229805670666362576665625405777070392054581315645471342892600586103244148903744317696309009180994249080565581346928392271851155546006154137058001023560410646186843713942886650667585006732498225919932132110182914643660609619928040762590398980049817101523745084817185182417098247348445127987267153441682058958436229800122666655847917788798647670076558467360123960076862156433498311415198741724312929754462801893060365465964094674647118316404466839203476924939059544457097282153497266791311990760099436659160018653557942100738938145131080317428854959088937845089740881793023998277955849711808928509207518996801636795526328502729308774917652183661330160968094278297535768740125723054731981142039607678408131326347669821146322794628063073632117051565375737267567214698519332425542732040045755582721051823328802200878423633920219841841813507654204574784822739476199523798210668678785785016987774545905155038843147707622234717795978212808985367445284415745058288594463022792078829159208574023418065995851256503060022746852958355427071480792848613868920932014951957747802083691025623198054082495388588497276173996585844447596302123767156221869503409880996978919649758133200687416804827978959957697745031163657891341678079837160084617407446783362874909426340554964725493286013739098996267848046785913652884653178959231256245683303043943440936096438802282547736152128936268198760718560329485674253630682080141019831836010783897359710088691394188619704207710799814623989796739584812084456401939123339680960306799172491894707848421549511679660741794593739688984631364598042055432463977653976356763833073556821632063176718144508339227059882509457181169575303359762791520112507556213201078285951158053657939978548951534520211504903436543902515643224063994766562358282055950832251946612863059621366348644461162477259703401730605647994385439001593996854689618855079444674708226859462846709574678566116127918827019942611778132053950506035787696164433067087846351096562059883283927956343697269899031061367227289166681964923717772603336399366868221099912839780631292192358140417816398292442844091623588942663844155698067064910408297102803042957036610473377385948824336185983652573104132862065512634450378025298642490166676443836105148997000370521990917514632835536064627015284454006826934833160339698751738837091369969919646097324957162266390326577303756358429883195662222005892643251386734349182150864052542540054725161529784191791088790205329619859920082128792564595580560286491750054324876163590682459397423932828412177475671539148932019187231195679382397560132780441873433872558632045752760752401488358274803681639510843303144136245462283743539581511255774543426540827610274877414536031232422683537308633673312924605670727409966321345459543509681742198951124362018712486951072459155265320598062802787145537058407085389367760364221222673521200124117150341466808077418261487145511349568734237178369418126288279897762984477654902748844956568422057911567128926111146376128567067898677411404337823772043892628899864458759929839643268762890359493051438672763032147643868953337285537605648949894205713218025697566999961699281290721182317860919145909537712686135921501440143547456602679601901005525134610967215994601579781072838926832127732562634261051344666785823812759535305667404397813973222942307682018499569251129725489589941119325715817129550052798862050643597376080756499701386076934282802962704156779122297679187136927765655206175097419818798318365384100393328253066690589568528601411805972509365104322697624752066764640425788696033910438006258576052348934705757020200416058615233347876950850222338320975215233851991806129346737075908004420546058665577642792611283735198063186762898356615820455034693600493008732933820071160995133705557111476326533712665881074197845156162447446799056517299515141921697321627660249067537456688431951422874817347631055978782363011178296313372514707389136042801044916347693094949643381941356350385212885895392405482819564746030249721442651211154753206681704399866382412841823945492104023371983071169211050193634858209304624503480412132569303262397147301694670165551729366840386593226876263110196451454449764242770430036660464371699886039773455923466186085225776497373241754968417329276223160794266250458909949844818870508857991012332120746110043009151635668583196634872951425640508829584600156430639218319889808469596315074749821641604191988322069785105900346522741487879077171748289046459104612315822828189002863014441044748570731771256328076724679027929847712426997404921172211524816540364928075571163190692166983950850612126408530306766705313250129854859247518310032665464274196572381328444755491424314904821553957961853843746195781408453455149225795059929840325055232199171823537396142204337803442584452233221895086678096100375682167053749852335962099846577591014116576236837367264274375373533902329455444166038588917626688220445086963902784459539119287249718195466490034070855036232284443732148376970567813347882181635559140145292508464121908177239466880680969327452325810860929503962253706239946984211617343459061291593047976488055792904706553693545572553636039674827359598555007845123319655949931047022935004928679842935974298875802610654910645316281646197624918163147365943397605199288312630054090368027291238337796725788362660222065763018826977366073778835538609889756780199208826757615300128031832318644871825429688115426451085965828653682736455733873464608323988463632876718341585435117914912656079070178392050989612518801627352758417968896437061111387036231413780407036129059205006609608948189816361770406190245876002304753964642779656987518362000092745569956144563375737493510434622777256840537771781156429748859984674951506623223551070193413716715903506639486190227776954117623636400976271665198851252167672531383400304906806571816228363919131743436962893786089498893032682481679595568747237541344262510767285407698418078329274162053887138083280934769656123905623467471491412237166515482168510890976717590044030031539644295172490863672796096736148238547968724958974620983771181260734860858289182356208108502496865162021952700072852241311862213252675807294928542521418613909748627439386159239578282898303074798665958561470917530878969655933547740741303625408053986907680849911396544589073798150892139403171016273128928331587594260313354420439963808531784731492018026861675385107459212586565832437843383347927706737945466841973874469824799737541140569039895812625164536667670394942131222440942157024910360551310747213024181944528955657723305038089838797479395351606199768490861108597301791389818003285230746404088052111108036547710133543113679020183865893114917650136241729278384382624214277999140815905636142545905813189080707066744412730199653964431680247529088447431447300192343280620419720172145628167059643752162373327144611976960967293045340989990189457870593850898489027714307339442984021573401594061749505367250243830413494380744591893063476536398460854577529333672129439457540494359601108889476897103639034796029357445507122616808548821739803293209046301882042473820936251302261448366137503067613166221213809635924910260594707362967640929355326945318696327917509184607109566590454930117664667725207153573138922845707070845784034648073221492524683473473654285888845286815063975539488090760874387382466286905759106069023832950476876323739943219475571364438741179958809641189212333318923381439685552283849692844740981138974877028336494032151117934124327395825353788910765846615670315585816952880353613945812783552733048743518572175728683563894578134748425860348971164505886069434628585271956809499982849396895425788630897145093073966240769608220147579924297744556497547530702878212897974398624586610308615532744692261715035610657973206503681343357755974154260714236072934477213861617779659138344690853363876405695486390907143954295582177142510386156129513409950873805675605386139254911347899433414763800179242552714292333606960916854575928114448718431852921951791149368593881011313751525457756128529512857916949094817939586312171095986819420453365991128985859672001756879500718295951587611310542284169594227605599822912660510861119968758030307712034096567021092662405945740955096584918922190104085961814410589328743112281622188287605506468045474740112885368627372520361725554052519051196883102125908545271178623438104699217691584964538286251026480271855365340228843466644443183694713895512835784317570232964774112041382308200584981005931942989372789100393831063918512296306277921863148940530274797268071952938968709132090074646808228402089551245998016110968489485603589607282552434057373338521256790938004791572307578380741134266055628601377571998012981560890442048132379496849869032745363877482355844911824131188294608416924328548178227841206888868159668622101986718399763897073801901828134110141948775120555165158471861192011383382983231895357152613130347969638998596231164626671414777261143242964145692268657224078762899396655798763917490537756821536298001776951113521729768057624724610691239413946342119496679761202282295547677830982468287386206622845889894860839604099689543826731953046347435543732834778585846933922444661641955964449735106253396849551732239448324430078379592591540467593372504720011276322704278818013305422387812356261464249042256548910883556038917359614858969746891362374976505396830990213987206067222373164664003671848230061785307183094787013333409611267865303189051263620487421158175414335788020340556210303162571755986321200230328617482388601558520726399158821649409918870103688667182131292181569312171406552126648212480580852547483796117620713078238438496815381458702092938068168377799894661914364850012124654613545580075527261686477690649358349623458409204810336687907228180784633757527972903781458329611649635542722126668519867457264362920474307024998488448765486152900043445254525621466539897453706670030913821230189474150910036743523355560025150935211446379755821170592476993704904184681578152992447344968280853073958857826259370632913624415346863241555948891382632328040115286311563310209808450590612892305746503380446618882406949311294776142385312443348201389099333649296275419241747814176372251175564409933067742013300255438021172802402683243430696791346257695133192902105329744480685748323151451437393161844066065645053183820825589946195969439040550629448203317294421244327536395391909387042996703753064946766426342718500951660285061435676557496764053706417958867682724795479323209809721850438118038986168798064769763738791072002717037334216890741162667312684032514868293463217238927015289371378193090187000031352939378983456954208414098951865364759231682951344688213319940177022748498866705806853308743307616829313370253761781352919177058007198499771257880155928411543601642437911316995976741786399136978521749636523748542172599443533441299006727242008102986375531239049890347933864068031997033719307861963259929229534021869250304936723004497439515394868394220954602152680013207227863476088400682198768971367174448174366286496816276842424441071523849090442643493858857534522383639915430485702359455646658999394634652682397138010442387966330599117491306337650211269197048615268652632526553814308094968217088623539214747834921673037362666706758691819733387383009032336759346385058958752957076338211137295183939643934954784723703263953952539891900431836188194714045890877863949879485880034733676405418012280525592715240308917604384611297293026316343507162980769191290675504367660135709781281882005878969302995643972301191167894323101476900218997331946826313574519884074605679946551192042934735232323658961047769646549884076872033084382342385378732306217420239438780444700819662619408388787958243795288450969605582544177278099090808347276730940969435293216161126776024242118544421195188006227367989471852073104763426036109531531268501473158794466596192428166188472553097187381691689305683203142820459320556552076359368103890723993308088292876967041554715565382289908096539650430730293699325338698493465967921813956175420256205338027658351745976852614927286151752316753326383596336039710980605982854477337925071043464122406174708963784430368901852459128698088585172781146284215003507178364476010111389119016470477395588057205768713742772869600864461630025934310845894574400174833736096764731369467155529640754407375923348246422984883390637818335290945597709783935093671380672190183790846406325341011567187665983035876879901080065207660327693172592811706494221923526259920834379349352009327869359171935712824724084152164932427547053788425622881900142247640400261135133422484427060518885441476458845834155925323561987546227681624501573859317389111530889254684515887293376625678481206502819838844640986019743417154385365278951894626888029397889507768035646440578058149273520998092867344612268429181104692970359018096563751577919676074709951779683866946853385228191322022877922629210994085072558042880180321230523887868776908174030376265368920684900509310783964162970413712697849039883562504158927314128338011296915699044285736739388992268818661375181500344579783737602351290847815259039203111986721856851015334086108326332128944961250776689419046757381864956792433031871535175556147731862376594030206735449365900503847511121212231736221487117740992942032920285909689005757282552187467348560342259062954637328952706149002794456786932658336880884512803499299113956449272391415892496043214372793307577291022803736979991109904149874390536725417571721487309971062283315560089499425004331332156529973037681235003652064599649582719118919208824908967752343031584884278634566428090364357208693023801179190505241556941675708474541110700335519024101213142187099933832483924034692288137146132123450958400821405413261757021034592931620354271863691051378946633612472282097362929180833651572760221736448849832497147238874757524564779061175140991673929189610094248316876483486189602414986390410362963014894416287851869861112474196181390343113224196386726282078100793109447599140346040353740600516633023255089607987291041909465434317061738292831676328901399101922143196800057202679804528242450618167737508747437228733256964508170926337427043024102321192820480268238463962771741192304347253861224770321102709878609226211099383511829102019580758185886449424462282376339539471749959147442412987226453101583383418896671340891325304080465974843046448184901979981204061021955756236774542367974736001673234745853573784966236337754335262786569064688477062933938354052009484486682102447356677459834341275092477743537250023189994476450201546664995721100269954664709189224255453628536994978568332202429096973305006919461551002064751426701406173171911205980186704092247601265973851381850891156779563447473591273776021400066992265542139530879480861014153177548034462663832154960439231067972355092091915705231899857520314369950475283929528379783034597788371963109012634413687068477074836362730971643969198605840883367827500567935469775457590384568264394214065561818079690430292252946922168367480007134045818004592761826007947866877964514799354096344055175831234872488986313505297565840855265144530989767988971511485615605083697381895951574885739511683775817870373940781051468553748123681116444548992843810709475049977602380087797562108924767041718533400486287562144577100391125325840998072557380288109948771018789240134490666478273527127297425986070083461059721679703025531103571166791433627131674404178954455586669897952800029341163333996553329406685900105599230092982809616612519353920690497751873717010922688083534036888967479411437767322483273313679957136729241476978311648901438605938085537092022573895424217040007593671087270701336995218791467939129693825178221611603501503165304681063695202466023903829531347248788290167775361196489855471593289041698571959321377103647503432091541992473817949501762237805574449272851405163217436433457189368693785495215746022825436163387724592088168185681163009812095740841572623552043393648637830617073710852630485199343518882620738787392881518423670003887503568759451666504736970548637160152733782361286942093790075636425151511887853298049896141230200320475801997773322371702470078325376989350250611888806503955168790632805087596385033478892918276257400888128312579641798652548980261605757069927852417567003762425330118011794744613754847537466426672762302665041729875768971520635950279255080743524970171841776415869592777494985027042993754786429605457204692930927262567253776258264514875075595631919953088513944909728675132281720357031130441525943005639233774840792024223057233083879938146771281248507638699251777199081476386435773004277897580770356751675510392625739559987318053178460157681270741196382558363312594761400042651873032346207425851802473638559303171876886201211080884200101784515222216936215214332201834932042136945708734562928812421837155097490617717116295063662406576548061659727551846662668583478439525302978849139817834087031355196517896317091882989214399134316031936848992109844672545210410504721101072813117558567557807916863689235408857008150692557318617186595802570275000756897773084723835468690084698811658757499071405296880378669315749278089021458896105974969277960539794050330615500214774300943312146243657893324408557953233022304786086133010124868444221288740137607971918035091181938291471163451243426809687419912463963522741063356022873014781040912154848856381354629854668899989516286936747213052645666809306220838945080328062906555131673162767151935469899036609786093972372786094197154304942381591773043508274415942807667930283385792143231908092051545044682524687703283821154635809551333884654161219710661188967199439452866868029773419577787989175385429572386456584930841308759621114186168347261196338109460818972550123228739540059979818856301670233693230955611963451550468929472123432547474073049422469792874184048994434594800686021710060585386476420857296192168124236814942469417776030831131490098255257359914545360176303091899216862746731921886329182191200951819068710287588102478186797040578546778513365841237822601641848559988112711596113180504605029405816066059354580062795135354520824608751894468012250699575868463016625217116412185051725438508986104599026889518077912450116185547310387252979839888292508288703313226716991322488295577381617125058451808863121040611031739118905297565964641728143344931514912439598283365435976868307259199150115654984479589284952197997523673738282041977344647931615539639199444610839588714095437624826194512268455513474677394116630520848544521309578421852433662423302627798087139876785055379542530067011663538635041373737396364443236007099764823035995901717188083647753230233554734940942283828726176687211457328136160501756417027991534183626481813751631360001656365431442417742447966095881066636129107852259693775986774067657150498275083375502330809175898110096561742192061765806558412704156934610610570561759300557926449901757189910620040344092587821498964172238280341902578388889980799035178717175310413641271550486786376578876068711266877675020304192633715761474236167206936142136044674381062133901307345734671406390674608482461289215070207474889206312641446035338258522317116681372033538823630803772504238926503266321097966630681997100210739845761746628840974156383109862208260059315531310009728898028545038562903571792568972657916141237685448219382989978539549047042293217745243444712581640565715589464563356879083369593889454544502475363784672458896765749156659721726391819941511179047553811866371640874240152525772328300439066019120185905171429855119882264605631962721152459144993341621603999936471800182185551428510968008933234127479944405424495024995867644849170022776657028919617929008316813498583098585640078924985714255793031158772341646840564113921549555345101606189301993333393748361779762169525431099886840152582307527047207652087511485592847028569615960136229762586471041692624417300529029217616076810229789210783132923210595012841687405057089304280067622200306329877532550991083276214707652627182502967095396782057135766686435509119034464453021246129518107080185384898626849051010109966120594722725004117468622985535095382425272030318876450757121893527007347079810247199589003290837258980002739073361847231644990299312358395990556489458942858782487893290686385320595040164546952689595314714901279961165821663844164733893634339476896858557606828937308438166232865223691554264451934737798228320977296267281779244978651378120228734487973369848198719740813131141344555435381040292542443465083395604358631610188447272806386301261992107287453161150143876761608686867227343408986575458110956513033854466949908664826496470629512837812846781074103460455154940667010285460235177933217020999435180927169783033184768663459601329392935881122870701924968041449618404172011690728458518245070555256685074213064581621537260461166414324914532064387008933435321294686531234339467828403587428638528980258473282698818685909841196761732600338095303602145310875717655681342458364720111825404723429757698583704852622287771824173667361233664465510856903176922723122165667766774165806738982316445103713048269927949865161183094731620693965212811017524123002205908395592391244281367704854627403840338140200526863530221494634716862773533589757106966166152945961402145766360995271791528521694434782694282964808506295504914498542803276161902047020124687324744501773390039622449815766303595723450886208149900798495252779146608924699243890610589636736488751470516014112450772133560332122548356376321445777956318588432627026882277048285839302271796090039799635065108280585719179674107354157048576824629601398104927743678812501790579622025547524251735554693678924506702322435602265278214288024712390698690473903934241001201851995670930754550788290550536301830343797229545122413915326976323684109976467805359636767619471342677318648495186342854543041603153340543045628338651581834336039495887625929590685015343624607573577032498697852818610454072215384886561598425059723276383097622503974673780132492033385010051085974339301163927272078786389524144446581974523421953298748017778332846109059420262614910451553246433194640422897711587542360033005263660856519264696233154625715647830098206653042294705950628561839491139510917257595946336613047494916509011902061649801292811413373074644755520100173371299107075028102593101923833971757001213525844115023655084302306026292240172989945410108746813120086243269660359003443097727707298103284745506859132867277093275769534270356174734827048381189930069325506188088615595319225007671565694922677005111778608433632506631165474624586477341478768956694210120011720160240098288286693522889549794198689584110338439074064031605401172426602924828507332116006141496354805040188923812837868731564285233964416899076634399548943242546067800264454024579466581771125036490192798647939425445085571994744046525629703576840481297130033526856098352093698948061500225410195216792519212055121601246605966740176736666633755112325791057378157072494017606188765622324431045605674874505214772051307127717780272655930174545562563322948216718270065163202162998963717713389138307576876413396460054325620379952513387055943946206433205155264163696857034047104269396456192750457898558010434709331134959981725084539741284496553972908399602857849172045450021838487292025616523808110372180729620321196359975194291647325466056251741181088716049918673565976654945121005589336129840293913502698398391000972104763028893364166491297831781483688077217618745282715775177591927552581572792584652729286704320776979461498723586084016162030278896163209456714204187313334058890440367073628944547490303954882473765470745959114424250148498715789582050722249659755208894832645718584138270732015539444655587146935628082214604126121874025334903032758024701376221350203043708310265911704296275052592887974344169449194403433512788478024258407200143865380187759499856640315468070276155568093305207648961242883582795750053906932800446226617197290077950945435153879878028983200635596820092986136228015957186663671892868835517141062227332491767522223649194918934818453971427474280909264711835745272584272970282656975934410505645842896930049271655979844932483932302503552406008158233518544066999153115655555421859291138597061487316990256888847989784116088652898026545302752156726444584226546507521443924841563243656927024193983475949240793928367582825953913675777485007259059305677075694580127451736222147590044103793434257019832569432642439735706060753064068693590966778366218847139831814194268323890943991150225998579485287182957648001128314223351389492567884790525175118097960864296737770049074395301884979523776430682968730072407136384748738224658667522906627275859002095685523777618288484771103562564150787049167570646391985471639612625240353243885694417081922415208430221918040671006473284934066411233552658250070118625515013638139724329011522993741239711598259900792824079474745877766230645603636952708036085729272921044812230595437233081684187229362278921026868371877340234928090947029266365725543988499924530997651814696269738823617477053569352278984274482101089473410624300521700672243956073994481463909112588072344992818902192411474474542561445993132944890923536341505020578046392434017922568973610027849490757432352603639480509007574536218916255714295468360674987907617976192303623349272126728666897072834759906471190876411561905295963542827086959960385025488039106905906512287635772898952603578933931569685360318859738678039256883300985468841324192416577048480263265069845176915000994967546462153550383083673769916042491539096739977882138870030436890017408330778678966965470565032928184967675714830081811933279001705834377919975386806551769423364870778090992128990420731156695166139178724127190317193892235467588246880812093278902249922873928520598581183990092117048186989649659595248663644669883047717477393056352404473770429198358836301374521134603783049691055819385360321851318917891083909938626413548648904256115036107622323746978475320772131950291498102828066146833917975516429251957920299221535359135634103855902195362767542451563455580609490545826799922301869086506580208542058256170010831733687929200054867598332428803545427591223374445626383040458983736151250674461309029566734997906514051887427662175936293460032196591082000014736074857981153438455873258250696422754780054416710025944336567059682997819329012683743775992204360533138062976861680784486699663143526822771051827126476773294981631184502341113567187451779638900357947647768763092923295024293599201416131866680719815925190412234806079309306420801808087522467332511684266357788143348200057581594036615389837445858243785333534257565359773485051796853917599914221092977475960575104611840399737355618753023022691949830237022481408356397800430268581042138702766614256036638799593477954509027750553504896655634538380788837722987407670269218929575007353207612232586423389702359006719204187364543271759863649511174608633003198099723809417934523681831300700952967684396036479771717906063173572446297518288387976059123504153160574710339654957895099795087033439073322125941843588627893441742845281072558937506757929474552794330889968012189430818715186790941700701189035911708969868729636100840139820438015257575409728224257036088509868349620014415798708494398831673634753346274337178285375194691928392162464010758857831274714536151994231373886321294956495378939824208624014757865803175138078964233049974694190962733235167656320744904922674190843533552877938508877233035663547028157745335892047889883748363667533140819705744137520890367378859376574204148163051537407671799100254590825464098634755163608017584610502980486215482728359824546135984259378689874075807800368946353684419556701371637916429344859310973246448575163980694286117017860286127895559293184871821820755163924074570568332128892414022652059951159990980619118407278423588042972060429520491345730982540654349674515551430588186162439539597135613804375826041970109894503341421677611811830954878278055833096998026082517163329228515581042615925568478587259077504357774284423255285787060606840783986744074096236255167862235224972077703030660197297976370288872163345719728383643664707689497473174923203562724264136783098081844449134740745023764842331673659533591515429705235565912527583137947377340628910758882261469560396681996037730461768802568787129850459523875308277962686187921346351252442746286787117913331272665222977265138864112233134929720859284460586577949124629505163928006006219231308719263191416215879529865363450247617340284375944821205798141133745700055924806021081689333609508510785877456549260135267210051797104260435328785249037622668677907488929556347842843740230913203778314535786100729415741385430480464417832599657691582913407596547649485697267226076569321002060251018582693870628658409500406970045070367099668064408240861062456100362907347269018630691320511720259044050877298028396251189444686926392035098680827763992557969268415785351227614263768438135908879550022287604662353236932903300362954954760592600822800657824040015805320449706495763237309106592028178928230467054321544864150131163107363827817407245000080327671305394929192699202261285232366299483245966282843200600176734566364652746177946639360398259468412045106309596465507043612636792344066139785410267267896065234833043510069139510605187208741549944885004729268068853755142783369640928166658447621455746403940285213363549461225601338396638512743347031453855132327493352987530433112520734466928059788700215552224733669113264292404633409011551340558045989024489339909627197601106392168688561987303037438485395914373580816698312545674829646181475901660436678352750099817675451792579946463637106042944855196486123387920946877973136341349947603328993708941781205263536560347664457072815118981948903996145763317459117308468461758243495400992572132079843774916965558609891011587515446002601741836391529513581642388592971201890175337759535469295000687379622588590004917736672815687111637872056128129638552706160668958438071152189161162116058420449683683608591519923861504001996789397953012928486840839274416167038317149003812974522448309369351713486692885071410896784313743413335001509998348562831858519573903905080489214551958497559941754046856411945174207599735340551161186951129056298980220225695896915989451438903959409401349119637414019573524718873571154445148602071639307433075681179805081660420352559015242474040039526225047453899322028726367150677700841201548739780932517800576822486009228878432254923647626436817229187413062888099162070883065079805252718180312992929062376796747247388229374070596665048336097863151887210911527103965819529399548037684618139415879499147667119691688015274051631329954123235566296243391523603034248278616589047265851396088080559519217010870049075309435101910019242070408996590653582121933981155669943173870126391163183056080104345297421457027677547176490640018565494269139549103914682008104645728793619173822882012755829238775506330081293895882892549222793253444415509975645696829139150561587146391239680522278127884695941279759736235652836227278556512686057891607038447219759463250175402110385309020569406516333714858104059505768871587491886624167285398303676543036406691041459172005735328077978644644492598759583702571650029241183518524493635819113819565684149681418893298537885253323627150761577378878191563030924071785597866792922442402170743168656466135679904275858230990601024433618001513233151226052848183721937109609339488255606272563914758265929985173613681168724813766026094426586647485456709700670557499544138847136690415189916837129235219311069007968335606140610721632845346758187125876076581471353371435147849288010795197137986626479631089457358097407748664557719160450265524618939624446720850032517502939349097359638196314188059079886938807104145328539378422819603890054905802163368003083701695601935796906371556511116584571474986412181295299019850067927456519682595381662288438393765266926189190081505913139832200916668907469801770650995682826193458681691198984443631549248880607178299710335770946278965696032394678371592673776687781076858321576147961863073712246651216016309557620657341798150672608975583999306999130855478548586120104702886800814830906825224713963652839905545016016168874832509561537070640488396893600348717000258379886659849098380109930033570231970902677432423099286130494213644718442955629461847251011546384308243853103156975977315742047545837624415622909374110720417338733736680716084108867148257672358730830658726113380463897617523223574390587517431713944591548749908028828185927479988732993686231012552746248165468373169778229469648065032209159903027567784923181281302968399703392582316269245587282833688323728426100105451292833522364995263499358990996033548265944052993115209878536491600600604580410072211344676200963070823208982921197235258874144285789223435283927052688243284071212490040877752804488172733022766958586612158815237073267968728022014687328679001044293021988360989014354160285547028093624781507124019654981406580634907017534179129515924619652011153963777514600818668298523231797230795682326933597653196804574722729048444674209663806053808398049783669922488506114648604932288679862106221415739276413451680270996420725457140875170541323487257238747282124388101604559938621995887252925441978047174147331782780979172833151550788270195260519882303877766017464988236809731219369490976364339827121623698817897478100274481790541622928485198449101954819007909393314923536055375955144627448352030125001728773404169730567603405107697760078239100300937462942914865707866115082429194015198522214372373074851729240439872471346245466738780277057269558879369180250550633871584786810387787856502442414370315537398141741513391791904747925633914185274021089904853330256138252666045268295219692404979927139786172638357827283016996042444334155679683858227035583247281067073657892124106954980589046513804819734782954601457658687743982922443040771362609044665100033273001268223048630863786529766288486707129559175361233949989215092121547619409989359739958092858177644201938791302511221047810224243630526355487857141648618038508898057848806240241349077332215198978562564799543455356968296973051350475114539585717170789472609299882731881032791712734951096023971640754896342400244849270524927041727771683076878294272641922256181638762000222675791824291339674898856627436019635426153194757550918585762063585949231678130212058485014016382011188053542725197212445936987742591337191152497607567144245090107569556100586240714696402986138541041582854458550461529619135308939037887656555785282088851466580330369382664141364506281185292573758242059857537035161166880920964929150104923076078919590720648445251493547961794587136008660915804233276924421760646662472487367005739047586656757748683028530749197106276041094683884701948135870703356107666584873863919040793124820626446369678238213271606375875290276986959466890620245998254107269749299246223815460743133430978187281984115934084433050250145816843066939586304512077473062030986236669670253444426525161894730232164950669215852362239610583106726875830570834212069580797254024124090728060436864279985977584777591365327907449429373875036521031584808862760018825199376449332579002617750983979938375869945528394430859632488483126163597604912101702647262839142376967254187623711073297309470974878965995300965865198481492203658859995108979479891306041320278590855391605431956416832480914721027338941217982941141678241790001090322696498123479589479489862805477476561090258712050313612449406722711829372634745479128718867903798433620422032583364203474579574610584069513712899572300162749339245639157414980917036830722187125214616963225255039701063977748724235833439273712453717423724373898257055717531189682506278522346339897902790002944552643801993741726263772268049432068863898128198316784509495947430013055785853391282001364486030604319981154937131283352246016508723821125146770456759196319300946983349362971408898553864866839746712635898407438674181712152150702927418811191243367917736990024178638671963155682395648221543533788699400300560969004057198331461746358916597273179199825879305663973249905704923256254315094586246782618094866144970094874023125114818856419735002786555794250411312121075246768863895093294358124234116337692644702588616264201305376291140392379440590825641982238979765593144490177984918702791841734681258652809097646263512477298370832238021020770965983955220401784809594958401847921025776354608473638604426106195923407165425036965302174591599861830713310953659623535003931032367244674509089689369723029000493148875356912512324826629181126662167556461200074563950524975142546844696950149868505270423438646100565635860283508604156816051142483858973876336496959347202138748697090058578020404433389903412885964973806582887203312631353419275412481691668510509144677609521211304023472116411547403275841587356455972076401537947638777904527330403339685647929813470316352525668062973605785420144964360835624413049251387218137467806465928481775341740535234896383321830176632684760594877735984272620810882790924216483132371242662352081065089208464058131264264185656269216795673585231969054851942875831512276650257805154139999168882348519577888306830701351735049535992455755555751808412310170789769317883354493054020261224537860718628799960534641641896891279422627070564063318153176846195848252061176854300827324158790858311207064970417561755968441363664578725209352184326735913581200000057073037558614146007023326771884898814413315572374132995161632738942478648352358275049785869886297430148481801267976233720370730093497546100735074705321821916769325445300575431106116466479739820105550035571646025652088101778335643691751588727469833480964151207347410951549694039369130506077468050023455314908088138620759617064842124635177630266826870691739327989186553255421494570477015854513319187084650377158443196396278900964909946800461450453353975512265161513184090983406925796099760403010043135653063632679251508724376805285919400114145185276926640436796952441173607900143636539074301384251151058962781279917576691602716126150481952249041427490357610573447808702180009553142476017928954262966220172163805053048041648119069654814803758230410262894693921483531978021032956209459300076488061315887839425707487773820797994969679708463124125166800074839026459945379109099490471001074512387414786982217532177638981100940245979152216523014959185561993333005907098207266862355810658269659948162899345888862002097862027397304210730421832806386029732106854593508053183111466612846806284802538701060957485811680860878238522006305661386093062845807428535558924047686295717229812121467438583363835923408953819176316800158398181111839653169034037240042541139922983518739907724735700868499191452550196337552553234380791351847635528776261241087414854807276199998264720095662961959095491586486104318449618772639664332199919597026254866735539543706794173745301059057648000685496088410873936535463758499260678541837107206232834656959248738030464953802492683327934688002992153430666149740446428314065446264843482585903883840424458203568867743547122342773489309980211375262926846510104630911042628552804024659548286624444677592368759494745077795099719198484671378434574149514598126486960604839147582829223562640114907514084574801445423120030641245400507124899558622349579180501102277388546415089779909963743407314854695585011259132615897859415746279214277808290356529234428813128454574676984382928356444678918617874235562251362414077368950101134039135450676139251841872006748247540480410037016995190532527796013507582998580559761346550683922267450945272152763511951980675581813403196025773180927423680232454618215417715379048465284122089755608411148227569283960299308937534029903161632873052459171317495339625417149951197346151248264275864237387235577343188985350511746595597815325219313080614666046390624164895887191482692082708798135003213077463024481825224910201464933006622190240592117479993879615071423178713506754883257366375585147696482183988381689626909969799566326002862576751767889640647064350269438726425179415259254098230427690080146429604397304279617043674198704769871336953620359320113259395838378608389910739803872883161872544476516433463449145342749632860341872168747007463793794956470565762877913795573221615107672983061726850081876110707914519387998711917459930306949632008669528156723801813739559987905185893502693320105866212353270157502776834796629637129465576623459870350647471215939456027557352376319520632448533239788069624102158542029105306471803038581005175836624463393553321915567282376559868515131093862529091973369348048504989946243408420515017112009491809496329211180215834690515008656695645825018352201618683364729836529905193601267949733153249354748253553917271439945416650686542032657371015434220961048482946984284394355647313278016630531087456143991799602834584170807383134792287718925859845431978436223404966390193285719912658302235437120261549709302918493254691468664167543626648793085368311362049558716072814139695430699548484501922380730689328944800556391498119175003529342785665018595980718881655051756806249011537710460649491580278314887784572213944604986253759305563768368326439953965592760057190541874339611215600112022712795587662226232678934261636635893644822388149009072920530208904999703041098941337983827618891782775036496781198938098105276884825127207533319925920090099433616046279363007336781487910008796727670090197310285842400701820337153844808900820258954565809554210017085523569336548957673966653149131418129944123518492354872361571138750047337117414120822832409122103182925621049724200944844495697582327629304007180231628249795367147382021187093965887610770753231955338640641432541563792600718576550840618584568504274341023361478549273396852401644559483244976997696124734878381177830541524986394177916381667204189525925021189166533280646493110410938131638939212102701691456454542012493756630950176710472195060057888087640730004150098356333078832803727366104742205296565854608190955621411894247086624489625697143980526480643887211486818643887650920844714697099920934574009571673461713639951585531802226717639013845310145902772985079829114657387154294045712051836262030613615852921786391578846982136582449463133880373330918598625966716647925442384823583889093392532201918895497018590041630549447744070572416270317337406843458957584539789910121227093059230806687481295307848678470168202703092604523174034352876413169136462965190825192638302580504081153322443961408636441557787433414202113966160027451481181529143340756273384360195492380337175672473284094185210913700339500467878557894926039753149479145030445373382825086144243154290311691095290713151989946531252874752083072865414360890679550243928726079348621736794228762505563319348153172646280465926054521387257776059516376406973596374021918097289577938318199365591343398862820475496523185215841630682800226980727378587962539720417414688741545305597485419028621759603481724233259267374092262544661931425825636923918057766929204248640350675996721832046186196609107266669568660297655058807641049417257096831408854796404403023154340401060671068598832722070556358558368811729627598828480793198935899073789188349470127981935221644697062011311876679043803774325427816864365516106769536934903377341906927282078077693996274323252663399412425080261467966129427347866744534201913533660848088095015482564653807270446029518378704432407327378155042188337855526387935454812155653933305375808850104359238071672219045327933344396001878640788652237327905693020376880580720300146937626963200040122186855672398981125648436717427577650057189524924842414638122164471819498910951073821322822853161269635326311444162806913913153920553034377032761129220247331162763807567951847548249084500740409712630823791808446529931470927886086477940906652279401145699003625839682393506480218375804989984739687546742039330660522971289803010761995150680496830079741426889244553767285036754432309413900721423626015379309329676470170903347356381343126133660474677008460873469000529258840459428971303520792794783493892893862730468661391081450886780980126088540626540101075542570236503941581409512421700245234503792641895179750170249978101683692453271150995923408401345195446965911707981773859070258878499134913974994631991063171058850499692077651990236340004464217265338208389754878821135333987464430229210102246540217128233603328395202778673543618924827551657868648099591898807791512460874923553334651796242844778964253203424782246901267475770155251046775066130353117230865098435933501531772455163144039723745411827695314804525732956133550432539818994817900261645911674577919347118045427035196892011243644019606166717051731427712835557996180871451498048281599568257596873424226455424863141528002257128287524120896259182285311357908637289613385673690095383195124785267733264115626676344877407201062036048909665690474705902277990385912667330483108609267002809523283439023239698528070635292562742415151969382851915027761028280372961305923392268418755729706630678812254294944503755837557488562711659081178711234433078412055027260586716235396475082882025597561294575706086561529571365435179867432504892756394369819277825375868919491373963116050978422458344145487145502849705865423943566927281043716029514146557204036802136955513157892944893323729671071167548945163703451147620531094318498377670079277207144968644271454023565516178610859068884050012167372857887350634399290813797488794692785306442283286296518017085682030919445385658896327273124625521171014086317838882883686256514080343034937147483851306716907027690356680057487719157021079456134930247071088829288098287733795436111075304268750265647750674111879058802175078812616274996327265049486991904570232328959999537354599670324021798813079388536493976975767598820769420755327184621726021012133967254362505891322156714767873416978252378578056374502096673465601930046915933639013247546642652385553591200111763680302407637078717134724620232208179766231068232162698688561087804852198036569064284605849891976642344320622948158899579420219678053701705756414832937740471958759506255617929916886142540367907681980056167032311131237944311794974637040740343244983882539178550040524808589934209182994099479302064621481378688662084080756046220045567836301531389292834247191347116618824609768793229514635108001254815096410939887653286524002595564684751683147197032496333696896092375085262196126060814486186108751122478339014306862925552401021362107500605558085040326378700636712220214331730925835123292361592128828370925773124082733829510285875005988892399259857792394099406205826410383342687420201783838159973503150049731140202770760915981996957375592815460317526415943669276383354952622048672754067331557944725267231528515825018464875838585585520604014848377674834051572990129555623932716836172200658585819163158056181705289540607080476315340620517591314781516573090883454246838055042723829291220295252291497133464334615298608768191517985036271061418154066528021930476414000012218916234957583069299906515417723606655939310995138987259628218669609059814245359975931445587357598388036647417661800776753058554736686010255876112821767944409524440258789506110051799523054516233461075756554983275021992340243255851102046047209119997854911860871701585965800837424450637293625152482855525837572499116760332795799637849894739611086801233733752589999978728876672469522287295205631736350512465767094690908060899719257665775294476791948563819512426632703200552725744242945782005459178288044135374739794096623015021934613364571593051181773926635670748466804137754328721019950910342362403332050282731703918741621973666649772799010317432524077632213990248822589418274428206461876838325278499842905614229815543509438626462424301979587932074628861971619828435747308099260854645502734343513245121668397572484952635021014064992454854935307749851959164388464194109636593352488031523165250298112720726137766015963491299889875993210833733465881526665597108849751275342356148697981431365740872362025648651820853692981916041444661537696367240131550447493749452334615210435710396908801785380733974345721659590973649750509413039690659578503077150225337203760286855386542156137432978003309316342663277121399548872902627175527395966972703209779496736276184886784379959342997038959063319880688921105021952894610174802131476723922321085693508617861133195486429242941990799048117797805554231454335981676513899675748474279891286841627093612895544346254685251186783448106387113052370377266790943873615809420069552087207560617656466258359630301994931733741505544230112185980772091840768952840552381775752965077455293067021829800668901877849216704819378412051104572071622882978696865965546279739779658284622908225332219809947717771649729669159435600836205700783781329165560219377889615413048778476708488143588560299556885408451831892888307199556746675718960285863694715879873962326083778217668899242275351144896542439735763497832250515916020956508320988024252193173487720408852126379513347980591457351886074323624703833951867158530112721758281789027806822891080480830429930097234345435074867075298055512006536232072873198222944850421570702041225392331965623755999267420287673427379619455039034197559326702095956640265588615416898466677561259054879268831728842156251405165375656336779482036176584970109035089267059894923005193847194418472991090964591433562315138208341556315797171590921598144692998947930160525796348154506864252483337357127327995677651159939098353247366373244494157475428710445789038382072440785828861234902970074645133350382631108840340789028592300585926040422179307196229277718865509248739727125796963954086915800064133879169312220894404189870464133151724600332934995090425590251904873093803284568877559599933711475314959604472969315314655312225136723012234962047099934700145665488628069706472366664168438970789267045295116863115369685496392708441969795548577381311963339967094513822334070249934755954586784214689487149592241478419181306587097990562519787792863152778872443943773499627107856537078712311853300857122577089727897298281558634312013003209424214659336310065361688207505890660149137221938269988338294197185307323249499423555671464561376933558683652996635398491769875018280612092089697057466059800022049635093702694775852179593889547005717633672960860808073680145382906509260161639744949842803267572481341002504646071634521013119487678193794042971087911504616744348017381228268081116730384377481325422945915890879981365735703020237445228488407044522797253457759159744803727651059022389936050435180330329499679275794537811551286541542047142352662462654140480331566482271813172237657006259282413964339938454895165851997286430681115901658570326103246452526164413111043849020094451993686687629736839795403237365611299038266544426916553586142173535832865938347728366181860687663716220520113546103262306482762574221837972178432669386981303955067354898584704933728743167874539539502950597266043582005544776800337315334358901462208812735571803481568003750701130179350429785462415164392675650840482632009814120647658420825701501190616057461286608124052833266796421798467996109117614239018285095384707607268270768208024157113835416642506639559052034972093792409302791038146297839906132712340887938143174525592294849449621729907335583935626572169497447040040557567383919022080627750946104603455179060007181074099863130618938411253995639936802093652857120191467376028353273654661167635071120960526251930191008579933418046342666005106307175501911518842784969786839923290404442932729144954143375393325279425439814352665489506844623123692539612332684314469624717881186027445497322110412577405522077866729097216281747374371820744446704977298139394686059577634489149545269796329484337268485186193212254082637926783894135498938536451812753200825950519881231241640422319767297058092624875573436610977344547925078183437128078158823700107664156270127640131167049438140397879131784242190773625255354842984511079778577434443329590846019276297626925898013762137134820219408750947902381495463241632533930230050059866443592497648207555067650553122000888518881892973678435123588762523351821025505039096123834837302644636047642153331387373501314918659863518786540553717180051678257424181263050600167012741577850574962675312809710510112207389879095342974606730834928809145282230792754281629850434510285680550545168223765270206534179139013483346585678361151467127492459784255550215202292261938662329030252217938729983701499956105682785226750419360327794882234886184884954348007928111059388587550414436383427430915035509431391122738456788299257743346046927283775436771496686387256925139948933353524181920728298602261402315360738118608245087011045577935587071042398331417272374376365304955737399697522357212686794977810322604443123768945769916639739023161929207478066241298731663146367612472562257334866579737386680022212007585356450403324313269246118559460857260689033219210894686560793918792432128296755340938426608176758351795384689978588103774466444940407706289271560109107001118739134634231807357886551656683814997661106734379550751463374209799336633919925180886675574012264038711559150099539282363991028500041341965594188042031898927329307155065530218270960311692225704225590588753137759127508605432046703553540724982983133284923331737202114170812794826913397892749740135214586242992538580645178964008834054296801745181367726855491799482430652399922188224344675863746632837903292475552730775603407746113958057569464284969091622493103669367008270997806198484668772680611667875579815617660155779963310260818400799704482554713640213034385360853732372351585084925636011808601718598877564325655459162872503363224390877231964494286673158352659063787554896516030910923209657082353433572217909420794432148150927517691285579370431437712704352303526901390541103573142535148035580851250052148717217240829398637344772156559267609203627105570346254329828281622006883546183317856776738922878549388026509580406045672985806269197661396146914174409062480473175899400590149421730907929255573683876250515361390458140133624731393106096861664143366088659273229249136370435584271790104053999672720687708493531794687490441855275948201217351925453143778899810637185682264941175552685937689148215832713813044842671566426498014020312460174421734398338626485091721365273569845186442980482770356084713908687289158305071459634676363862391030753868591462691223618051636674419295497163464017872003435402890534960018575041235827666860297719238005494919816122718338100504693666942313555961345538370291492300881021784969869975268092290098917674150820951764281867544330340645249022456998681253352876817183860609816529490275723598029964532037675267322284395520677665563250719398843132870900037380855898180802817424134828418571047763328202533002974121760831992045933178144899765004280994659687059819364485279564605660357118221665769810065134142701388267556089421472997443837959254066083969897479780185995252457775450304613061494001373777531933276077611610780345807634428783815109589591897288041409671722953236974555311931333000873845556214962789578147318671926495759489972171693092030211984452390761112680496311605717678658796396002347548296775850069173839405203386040831623681529489960172383716250410277369527155034011467346783409342386601616750952227024328748209405262179225110251151703440917170851077115312219933777679623381413891687441764592737167055181379884026348202468754274626053461202581137437499095564980701030823218851296849465360827097321049860357779497911116495894039048883015785839767577046172030662391785399604298348281134204269560867819800516646396324809567236863958472915934542963663012521137400433118261626969905529380876967373804987712359137883227410140850251234899181914082105654340071992342274680002297195363298177829170333555279300298920436741461812984668879820666969112012994733498638746548681950681587722084912237084533083593809070433991699152390251804100596747960951892312619591055693459972258874369875876521556634198948475509723972835544137596107942400780726325867202916234389423489051922115765044324315899816440125800668115054755185813625955897246312071724079388992057755892262864802283972056108192347688387063326966155781673536841310724494017497284525512991304979932278447666116705981322975490791549909861667911343684870632659815155288428189627881396251254540248100443041907804903108051035796984528239896697305554161615015323684697032653355309155342645281385973109631811206939079500261916647580392455398385439163399402795379472502133437880948373220046366720060429233528981290632967489801274615758825235716375939493080570277168375585305567840396053193901778401517367315471400879605652451947854726650497250134837992857130252197324858422676554227140726617940974041805425022195862984228369951932303767641306203593406676563988526273004367482893307695797837480327265238803084000103901730914221861501430674973388558806079610985623514450195444530228647940032904929966423414141085349001610436414998279720648812873804398370623057807377458850909477524902029757210337255656034436402498932194187421720772723073122909532938242908550745771924520966829175177580064929552089575473137928119318406171342344289183811850709322163938705525218811545318181185178548728023196457006463213474375045821831807011048117051862686549733713808778508736069682488483750188345643305034106657652223008658300223499243267703088550805655430472332852553157932023327937293018146457094465504393396292962846727150652017565597497005920258612432911060047470185119487676136600069287145045534497392022168369736067598733750876480049900613829703382903282512773067448180063980681765781827551082656627701409578231036786291702804091473854523779576464347543407130859325246290663766340622882242324229635078550189018723753717487266844822079067352429862855416438746695168997402567487609985433442763192985134359287003135301921211948701124764429957719687416880975503123693055357803198750750595448701836371284385602831857138058071824743322188300428421460251029979598914562581000732404461564684803392906230053782518677636091252407711833076216206795863525181585657757424507303465215437999374046816263521505108120052226427372467042890862932753845236097516084752286154634581693637595054473096003438176508771877833960399414245134227133140783902923391041672641634751193416111037963873055652665981849104316491158356976978902904064876810821760045777181006456508499894790543621592073566968986374295951794576115141537713949232214135558521232231556360015574134862474587595903573330717772811024353046411922556935437304403566222094104889222752168236747870004021466249620722665836746871400849506748500973024548644003640261217001833860475725948354774728383986209950718594713638493625971648865470566608222117741321446085229355863361402407250483731984704893706140707317179744291816783143770224063495214372150548988440053792758213636426485901242734080147577874422015336659245160710594783020622350969857164767440801982810005037215541223574402754666867325946121316894340412503227303842583078197024663109268447052168745670173157839284514207826823369861095084078411771254746744211231166524498158836080139366481901104529624574591114048083403399203962785311966493357173686241561518612042333558402769931358551184518164862692149586732558877974166430216514223990506917939988287163018386680513595572669547888113354743475449038406618414934465105012485255542828635682652674615768897850316375735943938630083996841203624241417821961483572478367019861106778908212926195619513373218496611779765308882686508805529974626579495404063153376524911271854758393815484188207630984505922822452424236036086998343837090502598941356084576500849119954229047113231478584734622688250685308021596660897259898115846494187677816985215465517245651583514814603103410294690521425703648148399667218758351023432874864820668838066265336344929757699828782599604330631663080162204439146695208752125667232323289568439116191020863444317239231679058495585623187484498857423174553327962084786199635756157841900172083403194018808963957588296910904763173944495320622647102667691684380604281156699886019800591970038000302164704241799223807707739515711254051638870358467730142102054578039095196588104827559165336059890105313193956512629118144295932246928637784925440224948291900656655455423940501384589958654962899723361019816616943590647591288082093732842873063355687799617531010222008841356676989992651128163019787812768184389111866157624874082352185389665171766264009978257215153282157877884046151596140922002993555183674622079071392607729333080925667527680849506715349435639432099631680487777672674055243465515771595320433586688393083429453643534675962161571126962909996857537622045126984949551942767644616533740679024336261222752368164311668343509784267070255019724762718834858480336685611109520812966250004268527405622509317037768285650390097825722368711063801917502142965406933661574519323919852934294920698344877266636104740622962076347550580850112084245287314636034673381081513157038676227711654958844027192683286931916556721605701947032053807188390173010666677570656511818684625354088912981661065475694290752557362746373328828094603299107739092549359379065517198601512362111613222375927473795298267851262408850900217951901165013830981141749180702506354467773510716675431460858279712265997675420046981393013646389641556554762699750279263432952025548722045067336343536461084981172887980468557416391288148418326213978740778140449091210034675090142847413011825993490666029335659801398193528526780694119780353507721467940282804940141215580005445234665123787277228854125208582682627771544803969663175766330611014543393544401383473344893894824066715752766704230104095551124266930877887432256351807310458013634072540334009526761207237455854783639468113567717466310278734274304999675675395548840166385686273704863419181621763312912528781637370134263696815133099509420933809106583351977221741816301907581093801055461793371358440268409925327735242476859243739783736215680782439656871437482144508441435525203279747215701766753791322082878268989249577551312625298625835774464212834246663684769901732056238261621342560756562739100416874315320877050144059564373280627760953790880076325874733743197373200798986127013938199402347031134289702261663242744535923823810405165289758395825272761666089717578920784093361805045340680782070956072941803362563091701828146508160047486063672840998627572390665062993270482614775565865201936840602630773267769145409956581590099913314519863702334437893225768490562064213309888799451799833666641169178303479338889182284800918745132693536031976219982029722386526918295133067737936581445225075264471273123501945210623872146497789646686066962872050900733533915951221168684875861631471445525956922547376126337688219537918568457153653730483559797372496335935460230987408901390391138139895479428710272003262400467931432134966136245262348249998680655417061557288320773719316537583482863139752704653644079999070105692882541840603476857923885402800872658898115178780841827500988068377967987441750656222336780383188002147081656225123559597528570785979276118669428045715871992215081055253043697994807677300609589351598636437671517637977837470306625360625016170906363152945424204553888973152346237980659812787170589491941745755456940911325751997527901491172590879724949024068938765058294148427938693585078670859614489382630650922184431191456034474987761948778197964614605089813892968039597869693100219029859384789066116830343781493233201427256415454802810709402990472547054460099561900606312039499837573079917932100313540768782722802275323849895607617254866149119081375639631772817563313588166798209315982033569496031774786595317027209327710059980317685211720107311908491522164232258885529618652633745253662700156774523248939045764496900401787734167639634795195142199503113920770902129770682488793548747969076622132076177265819969657770504908617086181212916876122554018601567025935141245223214698099983535651815064706850283098472237893787465399492856678085055461682754202539903071654392319519360362927464480777080121341652620743125026988303912204700736132426641153748905993620384867094452087923825647498327786475639078087114394762412498563185218248968560199718934251685757099929220966734985378532655997713961232713071683240003122789462890698106461127768204729825450922848269213567721019516548014066712752321088078297516721969747349928244035419489935481900764908264404819231979060974941156232190602011034906573483090839172356309995043854320477455551469318053450998674317653198199696707042786813439665891585903042571454824810562630593461192727021045489436371225044956651066256981338739576593740071231662617439222264511658825664180412358762777611738816863732358852025153611277444713623653416403148707220010027809795445992012348335750726967331764376512141036396393113442721023382166067385396173406425801912326865062966755089493631876917358947509804357999863332708345338724110316584042651216497851781232295187308369101806634495492911208881392160983234577085894104723846307659112316256501290357356208282692083583766118770576938366921592217107696848221692766397270049254575286097072560768925517546955237052453266565656534347886138633825221862786006359733047471748220047092384675897097323365317054575349131824689004142739383776841525015615563886276485760898584918057636891273997454658951590244428573139065555153258582880448533542347426539794717791380392886017472221385475826064361492690509568259400874984041525858746005106567353324716179864117584115599644266792586603016747530409499947444219473241980626377028263090979540318978578139933349840843900872661047339917268741927022060613467433100893294073085174962303842507302169860665665738839269838183898304615005544165209476466594239678598287446653505914849602148962227600261236646475315759628141378063331957223194371675671931676614217856222060071412742209289526494459838673962346843246399119523912035627834206427477253378592845369982406450073105784502955846781727930008595493573870935702641032954311592793652096168587538498892747817434640499151318390849830082657865782320501257011098384704564971703366076442383068247007781814733507234728578059927663931913237521639682437360214085386128960628843646106446575294930701283563581887708005357454291583453784806851958193247799705877737076907606061344877107260105813137155939228319145292934974619962883276284101815655025563292122961977676216471411986809768725671421951304285602967314222012992540941051693524288082302869727399058584710972436678029195500026621859569052066443336932290873671353192874853262185703718081375778737862624583334654823400022259495554055960266378457174353403526975220026107464148608290153092633293508719085698482815157755722229260297571573193373544487562814327432083909913378385456195998476153904694631859401596302400485852620510426149028114376403544384020468722140725345275755876248509158233112199774433613690453229133041117610441425399623043451842269836177278472269384264089448244426029172428075467786273312058185905934918179532589095538977172351297254500812656362113737307484972718711167163718184936933880205821565721136239074642782505950834697306592540782247806577684748584000290279113078020403709034458974806155566800005069143939664715140180372173526360784132876818663742192207210624240285117463088818774103878572310166137598994420746296556427527369436871632038173595664358994332710611406561366472732519852734987046643538638551529984488406738754984301585992348538729259601652375722606894366162885355945255938629302598413719395856988350711090456954961889802353553536874155487028391130701194239205997282202035213565126460661720585985817585312222245196150956286578275509610155894925010304222363526279476054411581806761758659444487597050074105222589261482852593780412902887678917605890055146696714980407883251472699378062164563447719599003125740790584243263623195421749955671077753760891142426570346121295474246538366673947302165572541909986896775784469534625717255333415743339815154205996640917244856731695588236839437350679640499086950070711337076473332147303642497445484836855236873700840566615767652339780584994405180828275117502792321916656135097204609253835035465104529779295736316661167698741945232227752381869420128024839876338558731321964274515903734316519754564416173169709730923735443488917727311764232105101913746281331938264051867524584559036234647336628840112331363969152637583222803707348012128606350296831173244639889333201781747757648219926331371454696936969530660931452960690110873575367913259636776520265446878447793805471341054487389490478459074531053119024756603158193379451867349246991068956686353016228545005806389039370237908671911421766798397934419344973034366859948430809095520874523945719909407977193812908146635878599698270871949350847701116840080722112121196583636633417614593354103385011145942601711136852598101994043336775112076531791451728695026811628479249143720059284784077886679906001869678493573476022099870191294782460667065582124006827625222266633835629733897423137040981104205167208579901663817339539348145575237605565079990079482133562092595366063324417135940304165850166002395732950918944772307877472846238514572335437439548759582862462184810524294238509612971088512581547912244200234634388604763549570682605295940623002544846293632073768778282063011682970867408086514072829171699393301850463824410910235194462078601138548551127121743102779873595162642694571086407389919110587358274866060814626715590246854649889564399768702428510174603899185461929148528179244980667120221688611486299483473860740717881906974618479761641472627585429038066132749724097748279643265016391423524923808841395447489330490188992507827070847239956290997428056228639556936946783590043623698643894327998131515979139437914902066511138736757728281430425703259703834330885693897567519167013146332168703263940131921691387242677295792634548232262317501802963457472609321657928666968390506320757220987462415541567267382149637169420784130787047296824604002890215503809886091421170443891152897230987142268039551752052399278023971753932692963243629698446572011746757381239998908849549875128413697364807137708876234594885767271685936016867517988708081983722639459079797955113903978830897477880292187439228098626945440681858060402928926948035602222307532306603102996579909679372060451210637803316517346541938941880173551045901623007763380693522146889409259721979750810488473539144761497259419839611528915583813634146598602623160410655862814062193204682262949858064274805374329212303193585042115262824564038850620512193914250701567316129132410716063455613133040704972977373767815786109249091328126157493631537348457505793410775709313765723057512905187965040135292409458780289352903441567460859052342833405337871581979786559713558981920392959880993770362304917363786318489551706654775491412406425680330927357905531189246398264946841734662554844545123717742332948765060265927359338535924547395195999875643639395276709722043770518797438170676935141562701748060718607979290132473680684189081827848058103200718929859400805100894221952461828014365269634977170095655346647403763537816913295689043154875356921201036725093356402813855752405537116267262862780557123371938660946890178172293585441952547616764551114388904701178357278599862405941357992246073877238821007620939060429957605658522124723526231071725235693352621829457014994700879190515318603058926974887459388583272505388764499772027592002495142227897717148730208497222227535149370060421972859172153401497206017616393891405220652318011384792315663486586630620832999759410042486692790824489261569697194538402168170426170718496554915345867028742300451314422831802172489331913575445646087111755260800975054769408051564187430128727651412750227686390075653274193061092673617646301436819588602997097885647386355236742662047674033247462306809998072951507893203591717960538189528362239080623579320726664745510432529289364757254002102535529543366015556637877418056918955938058176821422988794728211378702806113675260360699646069397181917301732182017014122209094415728321114859463800587827073594557469994622101312233985007992976265775082398240854082420860495663444757587382419294557119123737177077051912828370901440688803492398434441957000211302158524341076256874859910232602964634336481663889587534091336116866031248059965442130110554682302816506308421846695389992490618013839982266432902436236466166169459403645643248426081144091239938337377926303199908683369547754719355677882542529118080442030441562880858914897321143984740782211213134495542652149081302781134467162822604764928905593115083456067409481861073667458142872673957949364675284820638643694668170629833808311373362164463900735814660927561830321013955239427681124657816719980594237222155824347170410526644873363469993330402659129801067321897058200193049999897865136144256561068950029606115885262833690360191937248925118449550673987182277219903935436231220728134963232045857668407052230255277400078300978997659347824853358815739870425930703883537250849905591643451202868485493129127982673008787975381347694217227225080672732179795868621991106912159434647825050709371092551384623600178609144349352387623910800712303575610405518324694561979451650021334305030785190815758095729169289763357332927787342722756015475597249156372010317063907707078631482757102625546388319598947215271725550057356359361621980529281648538305547559087026315964120886803586355555630676776827094893448990243305607507623296787104892891100218206831765740237175158241607509703605378440411133333283086945394111730606440644822501554321263138176793301909024228024776525559884365275424436823227254664767323576980658295132424938392468535619781168529540690725792153503752921072787301248810249522697153250538040399987956139974787186792059819137004091496018062518637858936898987375888484084251055782039993394132624783833292688359171543821959244807360483115781037284783764303468616518987540956480787796973555195066111679468756292825939199622709036352427218872156244641778049774698802453803459342361107454243816381755247472728921859184032981851689953627063829108326567427008356440220756054732350040365069251503126562736255651790517662646004359540880128370013665929122349716050878721135761169032728553116224105673498536399010934309522129603455347715086617201202070363275031249083032224862006782884380002786070022277553967654322272126968718538009467515644507475444405141686273001103106608478359194559728091317703288230955747237712247383567648851023022933701249929816109492763589066145970234840396829310907461028687622791549766288238400791941601274692523390390520587158787628643841414297000489017416731154644243666096751246218937791187097747870646184632061679336124245815002537611157122721227874207800487164437792319645222418872764917078104470334119178646581088432181619905523138512332505949865408139974168618875992815476311165228878719844887220696144863193614027388814975698434254414194826710570289594638503663413240534578538383595385177984472197536969814416229823168462755537054157363633899092675294911193508776131805247928727095478501491641012347860567947850647487242747133468468107334346897396289234699716113018310879444829431400593220277355514464325981533956073602970728285989777986898592727335198628614513231213748872538140039001799138613018843501297729298984450274632918763148209072403710124784669913907209923443310706532021623236875259557491690593127089896678907529406101798473198316869331851316148768042896209148651373463397270744171491639793792281848921809558264316554589930667206641624876875101482182611165437990020627083391479582731891717662485170329584261587308351258850389927878998032853263090749886290422693530439894007476309787534884597242360434633843024190854614584114146517181870094201605899804934290161534779305104264700328669471007881549984696990940051416314614409152319803000371252393802162210888013814220469217565597839558298058486127581993523264161352905860851568011321817532954524593173502696629506278198715501863918012432903600616026252626603784936609401164083604145409263472550704474714014839128114167071484579371515582980718815132878409405170166153837419586364211541638532029935767274302745393970648289627515745363854724522514787910895873657345284597009075623218422233166268896737410242234744334540615084973891671773193743994131503313534075224277126660131138325032014399693100110143410812089045727810780332741573700795199031718305140794204018041424493704947504513604430365359676260257817109691908588522580330674036373537526314456232004180740235183545228369953957821471403561752534789217100539677253024658367215109940360295675500358327811724302815072400059248382211013872043183850048026857841700158792554778378547854804953065856454564926116064898324317572266471097446353637505179230371245363851366562662584647185673651713795572616236769803509922663482461742137173607386885915785184022192167610499601374699977907041711626761893178982827616121971844278331865737663191608752376381494213567402262016201210277379933848485616281333064821862732823872331596431822100083225111071190328632812298922636488484702675701927565289000851210545949218369339174545997274241948517117145304645487072289005148358043121445644370675909814219840216311008582155202466860023340391560255667683253295811042465852729039327264212612906705845751625943987333686626480472764010776035734493953224234707389937135193298298085988853435024848046982433016419564964245437033562840741778463555142641997354216272526854770314812533241675119140584861618614528733663381013009220630341120387555664398337604795173570970550908872970161743062697021761613410337065254863668944423624803142758300197859849742283818456176966371866212327132262638844947713913688235683274742255333623869730249719868978182091639288971744960584952428713913299330152627612202563764314042357302505190089430603818890583631317618471423560790862224011408255456394393124471447343400074048646821980668331147890254387133483352118706370042456437539778821652107325554146273310367401102859236467278763255871562242030848564937283273055782359921056156452957348726817110991324046706761656084753417747969552701230777749359893475927113566169218429554431600703093852284819657729008834945095708694778629520663235973812748498585574083174019196156003368678477010393137448129208274373674458549520523305957491207899476294938230442419747526935624182196826815552383127507107063787900281612638143510724825200352470102162238763196375330982406172226487036554996504997895215422480692055329269157418639483656709410891280773691072702410608290609647344643332065140187354954912056684806064441511161384714683936103307815951067690545439577799570953241214047109782947938497567608473496511398564738432191171212287943001061981125524187309955843485749693039548308829628254282801685774175255176408426427055924856602388373303879552108665699816740356262524445924763993394970960658151486847401445529435776607834874555767446401360418628312482902341197373921828534383462579949994341578974933067669039806220547300346256992656069542077244969093667773831374919013764015817512134211085035517742130964234362807989010203888214765775492464979885183772495433634933005282261197485123379971281664631625112714582972740992763365099595282896237815361712635365994959102201812816475417978443904792558830744443590140843549718777671865015143356840980212237888986598642358743123134999328664026393280681316589454664206207497681073149258477904793096488280772902643892180445720690505503744309562483405019220911412950689851959574406350402733355470321712621456784686019392164722459303767615349510691146398713091896081162874273615779334235970968091454498930928688195684606805119186514515196134670516602444740513775497229171829341506939185444321216568244293993788510237749799834275634901773846229269494786333715315181195191463672976703678516896458664190345473904270921756085456365521324227274852754774831086243033313421301957024787961149837122246722358742400195208108960905800052364393033034807325814752192732207140124531112860152448404107321517740180806147356460411188778462275135853657128619860674402743018463475683018258252875965943920750836920261255572069362485312609839982786560582538896171650434447622660853224522174509594483617969731882854907612962511715173763796594022866616226696724907596312950073803188039847145028911778352483004127360264211027697014823041103483989292655158812608962050217817867288659774692469013927729487388335457096326831100429993308438672076316390239354609999706507617852589716972946155966250192144698450586068484039125231391880289265894125059052622940958097880710817319947752170520065213349151014649152646013516730118544489699565544984398009443732193154870758379489865690636981588965494567684728915281406609531497571132658623050886297432610628378176648637404494428667756377543701439607400454094789903682321883018609549908792427007090409932302525865219453684897947808973422201300948644061408317166271535969933206015141909197379726904875381046812841979697152545625439706739944484529879049458303936583626552674835313030743740924123946227530240583176322595136684266108071834419679601499225876833011158417009291287743671239269039869816647379706876061104607901582362656471334298353083563938579754206950277816963604210107996069540947117672446145254930288788073062894452912985293194784340151494973141748098720280703741015710578275497545873826206619421028239722516926634829864077078100198859065720711095037995124418002733956378488209972606743506558558926672026440137917858139279010547327579591810891986792340119828872914290324142610158923583214261611943966484300914875340282075008170292882042255155762977234710249584441563157877998949918897830457005789514368796847325945902446828818691369897446109102766173905835800897932572990506087249056677718920577266298433527825541966166797780214511851889213045988728078601161166514628380199372808603030307721100434509797131921204489356901558840270934149558262841442493953209236368039064258116966758545619715704602130661383089768107175442013409111658791829771151207744530849285208517882634589942776139733550581131639810995762588763597959847424806951991091401859773938981029138790206670580150096090851325439709622654781570437334902583619596431010997145164962335700471924210920800532681682624076145566012707011204385144906736770010197113816497723873780752164714137286338001460854349234812231119422421374564751293140279846832520872940062054494365242704921273702914547153574038964545637001190861132943906249551456227725201371514838768866090573099207891892917063837265437879009928187306311159394257951734331045230382720798602179381304287257170356694297811296969352662951121055870120704603809925691251477536895619086582456805844683322092772955795050007532403827881420142703632449489469214151650108324705377469302435874328783521044380224452389690073916572666311901909340804567416803183782541463473843673383421172861508121246047083318272163375682696273552489359666932247839934036088819462715010202559826747076267728716389990671527146660231007558275195694167946057464761790930681230774628645834932890415252953801414489205553442518928895640574801848693672450249245220491794033521549909073122562130768196398625369670184521472753425067116101972001088224096794802456983885795323466738494247750230869510769067907033486377431770273010225004836636017517677536999116402008270963204232816424499916930325841822361230086233813816628307059470940457786546328517407959169113165397829666939937088091331856738059821418910702346005259787861365491532856649068280679117656264107920287692107103089423764180819904822927642321128302681454695040808654859120531048681396396524470139030910605553166035871168828469238068670210554928252682021142864044187148647451035397243380055972596385668369734307774985009807512532241163921581235636316324706254008002216463600550767679340709328801584170470206427686267250373126754951734960981831953149368890503260564355485673466618020927928513896616633045908590037641100244952138603663732325214612112533630358748271597133599023027869924312891867519960070615751450181509022580614353186638884805247767383477386605058151124730788448943720577079863432390156949988834505347461854565139189604213382831232323351758826985530902019313080066208491958764820577343554236607271244394834167208107332220391339411289477048114722997113076032477284336783466619291081312018191168196392062705768078794537648004154544298558583723599529623597383163999645746458447082851556703601487364882726702525872820777634448005852679970275970905358936176535050961879146505838751551371629328003413029905081759741580921901588979217272841010196265697789747714378608603550203268500849082028516625512177519353859640340122183744414947083301835107621985575160455751045618501356772242677711923447929900858019077195612307028982878526062502324155016989989647212946868179306370393525356751739787836082174098029845266510572442860926737032211496184586966058537535575007099232567669906486690535136277992072670853344519208237629619507423243426990538083625764329133652329152802198731085371893584965920781191688504139140248663753231588448876987898908749549949592831667193292360064490772295545608396717474148670561367185656485717453178505983962399918375409453720133382384369843139516674214354977374484947496416558739191156093839248250045245402299461545490338285247687895016183672822935418733145338171023791292784744190151393320360541441771223907036235722337759244054854698432493726990373726599921521112534235550582837069900746052286104366040818755275876756084457823542161493382214533169414108151955243274477521104385230843162690217668953267370965072584298754027387362633026404449434026926869104935110376619997345975629252269035504406546488590492844743440558924734845816332128853485749102231412285404098106613440539206677065286151766579642051152317931467624605193207954018419841614401379567537498730652983012897797024644044408853908797650154594929429632852463790752785374661230284572586775190423885837074343301186319259382777134060535309025985517152581247472062842294679501132577657214233757907270597073901750902068038414913645651454597249210396586333791218765585507658133015383656953597085618535413451661651299915182588245042575943439157271272565591965022076229854859125859731839886410745867055256671547289437239016026015437153151901317810021911054589244946209615842376309460240771156288328554787894978791893528157718844171351264951057058479132633062650560573657883730075834625901002171528798212823527364292106260446416251880186605102080962889825980035855750959829681620172732462915676844677104525320646390323211409079202211104019295038946701971172116566485951865430168278090132755730359272691075820396512441711584795047894457887945870050542540214411307022830131046398759602122498685566641825652781509909164698934814075367170592318963741010911646511726565636997917739132721453480954535605150967071599589822613251396836538325249393149498510198300512563906710050389068671455168151940132878966050969742145646167334967160119717217394576176109597956936992785772790585408933341046464977960376681031579372818878895631380229773818199129005697138786476861112602269372270378734746079638542571193140917116798491164572797257627980278335575190801010313035370632048609066579521427305843338616021597197402491583503282827947110214178163693688815877193670946037450995351106514384939002441238314096870714267590423748859571685810209901149396193191661201560144663151416773584093751740035698279522315514188190232677590281349543171373606979927304444721373930866311247708686303013868972939552545939811956155897006903157012867193704313543292059134964842030587145254926236059613410043661417947987996440336156043218664839817944800559892822680357371251294122422106623839186872884325220579886836023837497638154566554832790700062353549494331986877861713314430436630775146856691730978161356565675752974688185710450526530775322931507458098247937096816153789932156180141978216934592150518137230248007796318512905499954034021954257017990854671592385608595301162942603876751089365044642876345927045682307550387501138053764499979629016967827829201096988031108024046861589093200929662953231210735726290504643246241729871428209187613639522461326281311153445681036625882900423120711980391617750164145452248056818693341295520260233935818818843219170596108123665283571076117324062558710774085635642046265491165816064115416521369877813390917466632818489528130458879457921811818998427774668165918591456930981348131838838246079723429346734516085673020107010830621290571113632836905717604449391392540918455539646839444708582641334825778538029284771838767971282596289399608984176870350133845462782590030785711932921307939161727925362578114119285737383836263890668533087796360754998372327472412966576829752134634159009076154766999982628485076616367926832972495496437496031031342720064309087866935916865337483600654472800435629617678974120656704757112402083564395183187969400486286868631522430660014588053975296922364113796504734326894491789295527715917811277189528322387071501602717803708509115920388101455088114154588791686730900472752736737376134914229905494408900454965657183816545977794132842639645377721042434647703129830437215454620111608880859075086871325405106475964477977989543961546548411112067831851569673341430428062566770931944288138101504436213592783271133801816938999419988712213632656908488862398113558342487274562576715652990997739549925759543300997416672307736637329468735509825063102144741105891104076183435706717030774524953131967806653348736566867496869096703344021445394691738719080797381419018729732822527122340421437737220474922804840243468455742687140545956667303259343758733445482281170933677864762971875486297632370195056396981865084226096613979252145658399396815086461858362324932725170608696640155228154848818790082980892267345194250122522547724712136259826285399617761467509346716719196326125740364867432881022039854149941838317524117520365717939479097579100733534491423258056621271013310680492338383451009246313020572502620680601931256447311744112688658767419202320323892385685658743443418734205025427199700502672545028672016715690014446243549923493133159330535603761144487279061215738411270021400153349348801259768737521557213471418738600302753438151227166616082596936556244350773141995749678064223732038634827102255491992934887420212688547590835539606891031703364064234633372658890836922332392836046958991266769920218707309253998390353657517060535088771045704368009869333468975096760355800114841208094762854762585431549128548933633793121326984305805623466672270667649310861882626341276243903139833356875123768683204425372924302412731123545308700673694127732989466036962839712733624023882865856057469709586128777326319399300456997638391596388968023596625796781006815266449559754993003913685503304400838876390537935255672265813052040332833348005464968104867577535145732048450035694773313521371417834209634628074537225048888157410364508533693408762346018617619004424012029051464501806659786851225183990308434777575789626410833222084843352779670705695731383559674249992470498950319812762739447512425310055230495816401284257369450809119787643062876692645711852612821805190503810639822179729439461325478162616335224967865907048141886786722643649460199413602789235735471527541281802528527209954219700280074829627273776034276250994653890259273506227278981132049413014654527218645658650809263801219130530782999964873930445950920201481633661240283860032820179837027246004460896016659531217616731231692076376861116484260060404516908745251697635635988563157803544506435483278142381353574303578899720698669883384805840907722662204776495874568910415341000824701654575896035490220515196871388995854070205891027367006184581739182118117341347133576195303050156379084710115985600489867773862474346894456891914613163100315279284670174421711314214815190313921431281447375689990518001244452572875715777195398407392331171220867628954097659603296733489020958389021156274423968498561206722182885046008998506827839081322176151637950117171749272433241159562526013706563640609079371675456771754502012413185673660623246530278459862934047747888313982442278395524328143274584882594817793662225811042648798564542850468365271868012303342929816356656880762402609351689585519355664313772687577112998678254421305659422454800206311195683757535044670137805540160477907492961053692853796997460516340640928455973868674879927937512384491769439587558220206809794883233342325427258848888052252718237693884971507527392546367492753418436767232381054258583373809467404824613339772177508477473812575049668427409925117218963017241810267572842167341683890733589139242784546468819490132985267650738050864128891144859978670579298035799699978296920938492404334965681505631402407789042027687361656100092017407617663799214019512108510663445455705563352090409054415750705891009846905006275348327360072219455833637654313476372882834917486350985434103583508325842095012482724662917569340550235467305668981962981145038592085637696865636031780719742672033415107207025929354918616632471575466906140496068315813729929749741530162293972194728273523230530870742718296654709463965334554257981027178300401729395102293464116630299366843492997802973751330544632484748109724743501968372663514663360111109266892903081284860250129790778119386713591826990154885881742190683529584830631784877594776017346869761509523174098325200458191260502830982440981802469103800996142618311583239448083805728956737181459725588028766025550530286277173775751606279344193000165783072412679705420906421233081102165743873186663162829335660928397747766490661175505572184857776010424675692254225544029046026932644321801578222486342501392869388771509745678841658685546197157188046606691503389863694529765376975574243360199536003235824635296113599864273055666575678975614398846486627668323866500441225008110354469177668770257578097021604137966661824790890745386200325094034487944815609343307221102642141665442451937664708151993926621702450360514175613204807256467341259387693147335994150199312064863078318840930150508232240127255395835995389189010622343057663065244838484573135852540369210695851601939856095631060789243860981287604313024529390657611909102665535164679608726189037850245706494334298853163889045431378111789579533601595424478380218213565670187796644978894699138023171935377108513409724638370327069154223669977490346662707597967532494638073315257077087998330016367547747483795576060685456341893258710029565831029434836314298687581393868073367961342374546347373138082764332367247289887865067588893231255762588009416221480290790023394381825295005249896767615298436292346110811423857797558546918368777200168959468352482558709822163831691881635642882074891649466695352662383768009514902690573611635746270933962303559995950879839199120156771317363855415598128987391438709749692960437868500963157085265656895142512050347149019924014791124259073419386348782114841359858921671465438794064199613627452045024278121652205312980627572906341759032628979382819285496341380082734813744391171481532729586601710035382150534214121762792996158956919808478997439257100341741444357782705223176522605233037964990398831888922037633347707188274576601891803725145414052544176202232916043607211931545697289309588670860882265407101095590855721182153232535348563011683301980058565354652720757839632520990761907889880603904363385976391632078588061448888884519355405232116438411034384805539263861795198519415413570473923039281387468779449072892572304485276013044544773402917645559802727655179346331641381669878038806556559535146221274998044614617501657734833796295917345065280669022838917400897989047535156189076336772961293933243271751314686531430145584733686929905313876335679882615346223356587898471268543061203482734586729774852112268864337033915749379822765831173979457899582757008230947358792047442324403365800126990443925536833926955959770514314088697125863521156146782575153765365198862404829783200207501217684603122055791042558746509339579700896483405543371172209981432850512799208691249262708092604159921315842263037283279018609334696855834716681986621184122145185537956642945713661102759957387133792883779587604422283838567407533696463702107967648335651375658968553716652944158275665651945524867408592854510698619184672233764589564308070640806367911119754058045300238100384667268232908009871063412840841224192899427875748955628623209028510543766446980133205862139724514762709064531234862024028249959918088928237672926250254635781645333671009879859360095228500680220000645079410086340348027191091510127699725569064149211950344757424260495088997958568487776889487404082483164328913041224463861991885099453962891508693923432697323702168790554230996234182150546406016519888910326972144155320628510349883908047151063211551834921181282834305042007437238579512322567139608174280967288321330064965346768039735266436887143909033370699025760953543542299113065592311130641450235676904936640606781092677518450128505901571594144595950875452864395872720973018567228208871607476155795148709795843226881816794358894725203973727605090624955974896733138568017311218548445930578385523189670058564472447190935577731312259879057015517826975228084991216467165440083157393110543251636193111181249139613862716823736644714166430764889663144381618620978670857331315681960283694372628056459085220286329093922798492546132228023140205080966769935692329177507729496645200854027526738888597884664605832237425311752077109384329995066772021828715179478599333093005860395313367133236887432720900904977902253637049187868170357815428777288621653131309356571257680269278930534802874744583853800959898694582658173290378108869360867350871398225071443754883546552696099415852984546966417509379162967537950967728481531120545656765087426858016108293584752163000452776575794741085805149130267138003964464837101454530931814195093558047536023664441579556846116271577691643589297129443140282237417687259837888631392516509120214817449999760675598038561543760084590401578899132487085414255138788961745242450053020095411010136139879660290777622495057222376922082357041944861018677108286195724811631565551670013446719528827894881557650104126800900307719020253127589892845582369889426513940407827090503757711625621948954630109960431932178450145548424021688910180574087312770535298199130964086093387015945786089227718749559036282905989885562964806269512659226507147875796420139731932174293189449781235331998021298838987331100731534477151417771567034892996642174609777407168214556301062223003070988747824252568366991097580516185652043803526913983912048584611354157995785997054320293082984146559064922645709827026564575252660235587665489508015511306379558899604634907972118698333051590477984521794096994128287786243069043612432304092035475555120944607791356972403393089315313383639546040481683189549582720393091993549452118110376286508178345591504101947571890319248978337192337493996540727035147497981561962167851216385430819650792051358721233627459117111713143371310304846043904388418005828110125865022949564475738567174727166353532524982524098124355618647775339023810414981850812888296935047278925338203647331721127315845431980145503673270980333335841236861708530627556344240290968257837067810440338880102907294392304342856851793807937290936636369363635642850731429613058511177847830905642566954173268340567187796147988157786942573190373883526849456658121475265176259578628646283685563027103898038436403556155694377055306426710007760637530640477587765960450377665453843892222042563089873266575729431480573487437673700468237322576113225112140092504978765616611679120745885358558590640271791499614032678449269005972006837823158426196108724428677693696904320372588368403682737848899825363448540204704127302769052212549066778704418775743938170139860527734000133260548302335220453422372032093788013873742056781227774152917676561004683604086530743132241403577501967782814746416842774150173973894104042201698427527329683345110278815289102437230445940249367856855350368643166722384167032894782275946881727452429715389998755507054314718736755948673059823587258890082163345101148446572083240986733826645201158358900522067111984732776947971278955338901733098373752050530835280018627067542020682431753031653287145494395074118818368603115787413944464215633666529478105404357396376562821622756408699437750525517065410925092355776271458194106521995059567154617207858163011927993796161952539070752762493716699226023201550274320930257433212968810094848360846743766879479356831184876411915515170628692509999739529106155572273178376857251259308787710129307899890860581464926068801132084768658212422665703487957534775113955562727216751673458323808569170718200423979037159367811778496679368574677925233112764348865987315987326313514670508469733140936256324923745126156240107731293889241715079957551904425983111983184565906998353038380863083572902700014017215472440947844720345767250548260072559592886248472393858166384906963572697250867766003454940812692890216894577815276726550837386233564960085343850156313064604406728993710118435238292810808310777902072241242137282341331969882498070084542133175449916281784273694529918890710574991307709027340096314257702828034022896072660985153918537557772230677055179934241460126132297850112862130916194983181698114489383427353719266392535250289727163309390731013348426677521996534021637336238902922469749364122066091110118096242944608197692886035095560058409115759179193470179530451843956989823103271672498055581212933279739195547874179600098294276148903752036629324377796605051754077205305126415719441381043681331130010226770933555592674961418531679221787109627934686742978175983600110888045434362272251785969035570950376108287256311565118051293467745001999186659354014416154471538532637903669759148397788080615726078061741051823939544375007828942370599976917225856332128974127428556235319320811036389533512532302839932361258893199103480226556419120010734399325952127334826197450896113451199003512150625379379539220665042202754787996407385868679746674661123929146993040775079012338738197931212128036269989219190369392045452377613362784778946068808907633785236888510177946084445397158045120287793580095442099050350759232479513777313719543179319979297332237285539735008013712239315039749525422258837940349865779970298559644008849919404993894585092859134973473367765983155201374148243405772249900681950094180079153509211794792115878329973663566277894124442413379620461621953865065738779913049685932167650005466269745066359784214145988889968603505651606079371978951749297518933357674983773182684624313009145216019883468270120444175301882153494564036100603852180358824695567966705052425923746016178100617252317355313700513175360974053134761406965499042880120960331362011328694501378329426839078887277860434756689362073720626472425278958430357089957768040436516143360940197081818990849558723718069122792562426581413263793941116814322811888235244257619078939401964193839780553040405517841941708595999598105363808322063446330607854846042599431520782678798328839621996121594557184528048261316121306402017261799726199157754850419445718329306583530749461717529708370397532168448032090505000644710993810718554508669720648568301686867992813217634185949177974820947353773523811989715550691699836382314243184026734611549762467010987870122664214340616529427737931134419365996090457209768319469271532342230071558391646548738230651376423945497179584718366850553890121268975350785563577672697826310704683162119676314734476382662658895706373531769934990596509044355735201104431365761154645146753041618759271846226608177350678573550624215129895088272269626791225828836803662566737493606534107363144085247221009573448095552258257107198545579030929692492675460747656901810769393985198478417170726488566688285209311360917781337715907330791597178280136218259329418227016804057649370218689603008880220908261755853923906091180792031607675911536500350587043411308528623396213327538397834297801936073465611404853155943069740966558454233409514759774626722131835675051350361630590726860392421109883037612375233915252657579416088390316615125326705258094381531907147256057778586082392025804969303870806404901696250944800842637181963829931742957756871285677249286897706678963858030254929204958434152059945075884449267633872176257661264347954444886569311755880886591302023560437557716458646116761665528882381871667905419867382646313245107979460843309549835118227190477761809358393847917144417657013030800626663975832100096047507746445730849610983045683115441444324894847811508256403652768781393653673105561332927226421245967050925541761866739707308736013073911952683710671598070921030241652438927546636547013331153852877539245101027265134841858266864748400862805025070019532592279332742217601085070905312900750425897244630581073483981456843385951195938138574553199864648064364879216288468032907036764005600487101170570805081348688353889458922547052162670042935461008328496689850801206921749844213841447394234627322023045018734799764431051320349120135646587476122617817421383798325302650752671217638142746425026884375758724699777463838364461552022953067687610554912426804092283072021337575922847471606975139022182658885932433260647419094001781389342770914089240049954563871002681387824500821147319882788667335746648965833430182622424362419254362364665111979621313761049045803746048522229283205265920395807838850050309651054801147299054192141150508232439439064632560600586436485953596103607031714607286096403443868059118391238951758476455634636411220462416205652743102536354670767367333826368011249975968439109625027406297926420476234122991836677512038048229229458068791911609893883363757413296178882383663708757287192924063842365128955166430970697153826964483832939073002108591086598169998894522394379637961893096726835058877229553635009629432707986612672536614333627688166122469580990915939758034587441109984109739231880627996458895478371824967855638563872645455118938901145285447609849000471241845413566644338517718683270996378980598486864687246236213103122866514532062255190925996722280887053622196100982751273951573396959289477718412677250909330110408088571371406878344003491312857048048764613984856713902473145941800481987436902693871272377383932296160619597517903626547921489787111374664683526363512753905885106166649845803247962986857721588340330191838007594193895682089766069071313878930991467656869854704614655202151072570374890387171322175261624814058450724686743098921370532495864274793156365790815091147063117465417559154847437422854585297852087138354764036967751350416819506459248640601848231905204743798187786166669414172705811132767400894497299962570089887546954996370949725857883451544431432997256395520813053518366802722644613849757041064034497733156109046256905773353118346366764774556200743078416172303294017077546757111619608098990756411119005449712659520494853305859175215394592322905601520360446253638543303669503570327313568624455931510595237231530980156203457765181560834861881032751686097392598101938765588740770807730640590749140027651786883885871569695064300117143893991620556339539198867486276285709018139422652635321696408829052857109651342496157520613812391047682383711060443742239439281696447183371346383922464084439813946275415250629366904373117571820845780385601622700353710561692214193722356306100889001231574396277035113548241064903776517544084991926298596728648975601032430495004966098327307013780799629920108082509552888771116461891233599332338951493009083548685086733373050464459831986479987100263844958134603575160724226077441113463554325096485729652563855798328167255503630370930306615239224239805026474633687062247870154896926616483342268821371340498647270910518210592846428395916949584390822569201630497670170511201489362764162013680626657213241603997687668800589967027094814169155609790954525619283266579272505822464555216895372398517671852240186856030749691614967267738018611223429341454137240557148955188736971023918586646192182942861766997241646069651487936677191408295481793988639024344319329054825202266741446798249776061290823111646545281587161139105490062350978977692312805600623008431889246104167832777040417386173941104298057417189399818649051785293643888717571238439436586796435179816120087870605304871950063325600503269685305336835092189627383935370719616145186927837509832270115022007943525185298567934010001334379103748443491016088574454233188755962344106381290091919184919048564827278515375799170278877471004854570115400061767026475726400208648701557867846056209240215400157077603004207295617163264387775686779354334701476836735337911103017341565991629524531474971237310725572011992610568255468265396334482250980715132959998309532713909875243231109730153986755676296514049394571486476117836264347641670646573029585379326382691826949316128555360182547182189794464594128149328848944407806363360918745230157106789213306144877938202116450572603395283693092993467570954079447407062993118858036979955677140335370710396368261111135800173095288356056902155001735566986402568500090239602581198904321579043239066512110042279885241760660393675097089426907392858201104387936612602408260801194873130042210024367440019675079096718693518818632269950981340276423374072650523029985839040961415755040484899514669029985930958401361175393839641512940605191437773418555356286281152089997336602330187062204744782255112144982278139739511573573962637884218022864526730240425059589372383837438254601833297772556856452032786733873101734892502249652499125758287108530270635738525264652506711834627792172167764477668731765604717380894527917761264736253464963540351421191238358378046089506970163215900183062753089663181206892060377924781576356117970026431655597909222848867533651001192990492887025354848982235221924172004354594942719182714624635368073171717064767110934786482661349832688050027915335303231928873120039750398085250295246975353036773419486480824470856471712530019263734900230809034421669737982996488408242817253581919136871901684086682153799810541930819081713087044506622831730806228324504781870366834487664784104940475779165729544547416272225311586893105247335944754876965764582624396936694412343519786109144600992463388705366490602682803281288930444318973512756398010549994829973550969900243055891077516066307371983917974844159427043199016509535354003274851772960915075772834805656450508517507275760354071153060712497973133371698791549198411663650117499334535121328161236402248311441596933980726462883020627917271388762938494473134260810386599918609257634240794556195574018015925350747252469974016981779341430200223246991401014418319953991012028284582569589931218189121605271166912466214951778342708828389888670644584556992311105978144635868424378664585296875459899023437110771121745434656648343265019336254166848717665297282491839816165571900355171980011019245562759933810694755472172194100796917531149622305363813402802360502873126551749531695272753956884308957329690762448091777840357744582201378906935816314975919763639389576838061288742470298323353793001603904267038485629779767951281492530706491798707431254314230050827388619738105533701730289392043937683026460489194559158274058374685146834842115169164992310648529347758044519618129990509106045560277309612411507492949823325102853619205156550301429821365786863186000433160325336027267379894438821972658124494507807143103284230471030722130677921361375002862564422827514684942746326321427753608280179703576673553186419402365972570852972744393406639232768315157977174312725061879146588429785040246438928985039492268784026781485107711742219017491592672027085905417209021682393888713989716934161721188155322082322410367318517572776256861750752883611328639238690238761969704473091308838572399651384443343453215424038017395983055590768342745325502048479297524321755895566942257753700019753908891259740766194861833247598968824908186530388614115564268416089196150049658535031765689387183484489666608637178159040320882245595509488096778915221166366428835105349985484278949799603225415711104499972438343851636022643701285505202129421350049343201875336891383197950025474372820516780404625826532351815351641396890293989317071230458876786867297405610416711341612814635293942283956942117844736464843136062120918000500314874748841040697614400834008473444264945526031982533218264482872807842359183839318768973210254146937688776037548081035519875036923343583772355960928005422639900932909705080850650612837086558990873071575993677096434885383395272828283678310352713579606410882379773895196432920849526136542753697105280266656353003884934839248746823514305708492805486506532331559173318330288459290633639973973057064801046301345375848165912079894900215251241397546768944255050502566483344137055231839610193931754879867038814711466126546285476558257150751240577343943653245281147378007670486129246328878026371235167176730084256472242570767095009645314608795453529164295508802893825700420165650868895716281913062659671870378238258253452089879618849482446941078680482293608998930775270303123005656425550878659442411029298495558281455017347675699855113981294973017382464321762821346143681914449531878941190929448203774569152095412772541114544980741186874433892946079502888360722578641684936604365438539149468570158805819997993858582429135066382056686518205603745308977946629319027675887181827497864246246222860264035135348364324136211401327752146493544632208239965847468619949714818545443486241463837503213332579218658295123770432524987934498482501836250394100146372984775092428122876463612251360698699965961039444898573330895985409935302426480968560758488566141283971150569649852985588953511701489826520744622373886550531385366353899664003251635183415592703751791647374440150914810747295698857863961862309390546683998953293897950190347768585878014264475201626640753850840162906863606088408051202326134280288793491830063993328346442482222275425509645852055197646978980736795594292874500347692895426413991805580573041426591886970307676912175852329567980889626807916671531788951996177060934760160778583340720252991910408259010746340318199890944121510638710513674573381577658820808416763429081276402700407301639000495805179403403412257652696800153403560507248603751780377116946193984451467797138930649107532076433830065582370109197711707758062901561719884682386572052048141998124519159728309966598844029813791759876875728165068033523173982100793895003750654420031462359806092759558957083450325734786060775930246027233219838205981712801447837740282429066016171419549217334484261093021582639153150358822257752388623711699225326278391593661050015013696186389851035176086923161313369730924541448680769743327557906460743115512907099308176544492349646678986410459881386816417392713976010221313229705788225392717725485197426908587602307475783692400553947466784582230227279302842143647877106528246408099040279191456411595158423050042563297808809121075447292769289039657964765098995673799100227058753796318864310404642800238152429027560066791087275477311868683780469553066671270873374197890740809426638906228800447519233041081284913160325873550797487258622597556804329010995933993191201552607270849498785000054610931297449501890704654184953533544338930120879860030389120783667485294704798618284229007597855424556585274433223777579515548431373824131448705919031190487073298939400306911946254610959868118557360886109974500910077171666892808561582427835770933408825897090736572816287901173364155917025236645649689860035509317321228376468657364677073070814776780881046799122939568502862271395383913437955762579216825056046096512325157798598680658099127229683227859683793746264343943163842039828594766662553084970262597639775316275440258606833810444086449566486688375199441397545298614195554494890407489708222483569164343652224396643536673535969961224542830324698038582531726328585170103189032977536868925975814382308434589847624379685529834124933611334657363675257634176432196617268616773270516560891322821704081480856053136010188847696791559580597270854776946064551543079497723443686310458346944470036445568329703299680558936967798760620517985268566597767212769446481486718618706175114396729933973965908414931498520926850798283354507028425864507771400708943044285240553600863231563342553055920889168403134173732932538352101187758013742779630039164654491824084464955326418252496451030465842019880761373413093061558431401579808401522049636449156077391027842901433993309155635070125428937957779365156665021943119777883490447304573628057633761087723986294297547067742318973235251226418213547737411229468892602072742171748271716247200079758040956084423684920818565848300253588660417442392765150269288886732515375124537266294050782909248894621616413483807549311843397659752301390819313535147703267354844364746889240977870430658610169189110334171514935498056087338391266840893263320035913661121239086541620337041426516893912110208853278248105230612918586431859833931568929353691158952357838890301565861419062546785751728604803860717798824502232019680484103590671950308076144795223159956543952184300495840196221370913546219244497420659690862709385253960820843251442345181252300947731983685296950778007256747566474477426681022626075135688290343782497891996904789626151065337713435484289050497569346558340569168110681537373296986251543245930654644559395185242065887261860821513506836104118033126310911208744322077684490526492847691428839307690321909950026385416371200326530642343212789980030532998780008308751537013851926044862814494989173979892581990569610192456164648661388307716157731026034298659717115642093695279986219765750487245163172475490898292069532982158270217960106226783522759808525394072509604556709413739109982092236822548344102928928304329439383350099943577158956759398408839813486705607555459512015068769308348484339186522777934463538174688183917096293877711235534386439814810571242197186164982763246512374890949866768924657820664249231437586068846977739818777226325721892183939963489948182346513898442480320822559602629026423194970608981556817036946532039149961967184822190746986700651638796020548395159733870964895170172946717773163436385904549635538125673391001718759287882826785056938920250136668944762648149995206011968825065120924675474782675839645194421719275891749023828471290399902545149887012772255864840064666629599383665273131783100293150410962003573810415145311241552819320840144089844322380885655793041683958039947328388433860175785797766006288273871033619014643623738314771977137317465929746056775240870182374725459033866092351577773877804343838344371921827650894517167733982928145765758917396758806125540762217905123880389732952250443496520813713087087160003755251790578276209691235432541583730856525797877482366364605915547857533587536613909228988355581070469933536178111354625365429542737783225030974791527336490146406843840449604993522065297033212420842148636236610110114629114856796817098665669589216438850518214690312071653021986444351954214244418353699959543193392695305672571641002941351282738335318213683801862092298995973412818754936458716244351187121672174198492997867222232069640892727365311612481165915646157039599542493646391274702902479060313957321674897669995217475809821992873228622363011251652460014404988212834789891236078552065770741135266240891280128204668973420097902460021160107064190529920487854324618500344782454813695757693790461863633231613668359839677996075411931674407864932302685496129261883859503141207578087403830637370761677857738323417948521580512292189924735994899692195768022320629705659857318635718635485647210756888574382140298106620719497246523538554796506184220962790906107722086066302093058673299359885292017040920697191923153493364163661230203506794462029664462285983032961234732999336067456893915549160584009034760221915729216868775424690244014665677912477308547875321007954204591626132955370030412001277230843545053960781431509196089160666247413049229600120332811683686538281359858224933383083348001527529566821904361473374447629763671037260120688249030607326461452582734525075983184020411034517938375971673263060796499913365043621842237977685963039295520076794698039045351325326374356357325697923533649227481255686357378300256248816864646056716487092567081351226500551530255297944518941169015426582816919012281321760616110163614092888206201109945527089591145365179484411989213411669088963144309529312182565800929545907348199892924131900486275949218145797240619622268271957691851086923009570849652230302188985149257637399097469586207176177052154138525091408403256812109107385716282709530307135248466949711477735975877864624763975991046880079007773615353919248449944477003886160092884279095611373007556976639183130412552207661057341837079626847904391682530598404999515007097057785881835278341344706062562682109660397522953756874288284608737579473712670615679062409442430508017159698897623176462335833160116853509926927602959575097458326249811275267337148016576379649754294986442738960546431623008550634719346758889605033037842552395860159777833099091099387548206864698143206496744576219555436124719225283588083089554473206465542260391142550486614629970532196211552270167638180553451713340381017842502357057242485601126186712013103720072005252660041297154246445214241923721959556584131467557477158704231513333130313667518038703379521806173471227746319114598050570871323384613259450768809430577482940786947664207999691241521650257131333266673540696743177733098347614574116861872335841775401311403341597012014641376682715321635464828230255047867967630711116712460955396873528230011164089520933939566400035548454190688321700372577811624622281756570923034342963519794973120937047653986083092038500607441532406532498227360760104920939134633041406531089565125074175870318118011393558853224775721601303654295564004989069159173404271157230110099379835633442131002503877080091119091761904686699821796145581456313680307976289119490597701061387489117461692267556751116755071002478458229147384199579155087943540496265107898042235081412580533693258208987600756992329997836144132565906709592041153611005794724532409954497792269167034152824463267337887342221365864183522368547174436210771360122114642268601600743825770912558115254936357329596898226538314961171393013700355806580557800410481653819372431453706826308928070767580664660813989384967918263269843134950107992847627950307527388358325577456763899623597631232836160782310249170821549754906949395195065661845032488030098389436227621842046019612601919463211604447895545191415566383354202298709076775151393793969403758023732782496101282844532023996844786167556298674494699307672767811481410939722740663199049131928209782619088653319641807602059130538742703080911928145872006920147856092798975767931722122549725087108680594203585828376420975914097830561779969730566275221827705677745588330639330157483018663493426214785755667175323457500337252062595692570574017203072687525024949725281691480560517980575481355155444092202907166784959690486734630714362016199149391361058849280540179011817011181443834287935160799018492501347658373914718433262797275033725316852695450997625937184608672517979149897356506531684219624026245603867124578202743998135864354488380654390906243138698314230300799148208872803177991988191635901743596513749836942973792968138785698069632269160124360826374343021028832370783291495777421142069435868926582122421762320254017689072825315081539335426996635749876654615214516555863518994935134721945275635607761341799196452752252470444994499875852737577647364594402754703099369985138679639844242907848668070909504355029658663685361312157562174344902404612488315626801688986354368058944591171235273962634143192086256569036591235396950745636412154657549803089277808588987139446773169389582167049224890702027389592231803253788274838119827959962785929847038933557804884050595561518651064567771864251723377481666735329129937537761251829548213847841533569779599562238536654145236861391370451883119705049311336786645363916228551145192736569999574073388474695426400890930951151959788740987175397054215800641846342492126412389429956744693732828588488039610362299670487966373580569879076017279717243754009011924433749609315555958846401300689101762385960349458946760460114779936304610385475188507013367468603645362584504263173117647511979426934072163706214500326674913003090198244041623954830086112901785432717042938816145008071143173718847226245457485854601354853440398190015778214102355153113913884059998860863733475859471196189493858325375863885387091910012922754336378258666062600342516170509944404076849441464444485329463113506992251673903284428851916638756663704167535772911825469435936404517977924296950580147322716350870757633746729814482709272416427139303860853718161342429926091235249351228714413504776789457633765948083064327173866247206104751638153562199260854588419350146846808268176063915837856881319302297149662290144146594190322145338222639202775576155157871746213627793306976485035108535916328930267043242976725649933545387680892245660005535944606629375310017089427082592842231556365640578944120622275156414055589570040587042715957421919339928895414398096740394242994864658572741643715896766836495907460716788607558735069037919888103524066421792261755425557583094923669940480664847774128079218700241147468666476637011987103941209934884713292923435744618658416338919182255091535768703989311179015720582252597934788312977454244298594481504820398493728953364460501792931609612466546679977882212959335378393779969625196614876028857392941086203482023617783409150953754094065634913482054032274857393655703358434417431847566466861765808283873562816572117195164252170154538858939939587579272459326080061089257237547871643766525813104373838413674092682121370173819377098582288941300134785749516014560520535288609251338833013030673677879248301395028154976404008298682473234850801517590224832964623806516947982387064750156969516614453177612099505813104783609475965182965921450827021464583140706108207043368911235205728963882603979234198906775931559841119242436948420393009696824450778552531901968680230039955696589651730513894072404263626073410104563910568997969170067723989952730110387307532898646980465898759963554575500331478638017736899542646918830348730328737102200801683818245526104301830675832865651331152297640139599642295454854469412240485162039159835400895519254626005651283318219999740281701440133402815994450436970577700005738040858885586800370711336888438267990823869446167069562640415039675491923246412568351298220738353428216712901160660105828949417893238180110028026667847191386592647574778272798474116539059064076865751492259718511434530920428426515398713747496782688903678390652975208342672204426514290677399735178401830309668259901593053492141861767825262995546899626123338089613718402210286487242338045151663638762882843916212956569056977052148445671379167579963127971185264531083300664073810574664956039165457094434896562365948099113429405272827784733810984945651451715808156419698064334995853121635389603344306258682088075370360639377384526740909207734359883306771679137277857688561521216499249469260143101148161435167574284042549589385272666053394433487364010197519736898947101963155366729375992307798457466129955171501640476284809352943915540763123107313878734869716559031210950660744938753778372303199678926355299016364850139485773210047426649729443352277819522516441500336502972553910458642090163038463664184071222281858271767721418959735019656546842482039538272880041572766675726927805096512154551979596847477957821816747787855193946463887096540536987000208065377090280667099346042196740453833321561092950451290316189058208886175772251188411998028559385327638161830316983055285292575013029930575678866085161644302002810603903119653000712892858925382776619975944631791631941862744195387332431353988468739673268055602853025795777552245706311689819911092351458468209233304566139973414558304077670946390762229969412319679323972322644967727943711447449082157937357124818227902319437626017254654804763493867430560627998723052751304970671365507125507254603729933467010509458263021872081270875110635772100019300899748925597946120603114503722371619372632445506504307735823341135279225658623925103500295408644800373388357708375251379961786026774699352804986016453674877929414187019027346009162232049125981546616446691655611097273171432917945751015147436343296337814310928800880914030987464563521644518209955860920876353244787526945278131607738020288701270000231660484036287800704653965776424770296573405073651053430131047378804959799871650823555976595504224144570798709291697267836442384794279571186847389237926971469234057719247953315501554767387910880105781021716498751714758269018202221958738527139794113311834408056171761062641340880344543776896050949828436214921716801775474077565275176052676544281331831532571512247714795481743827599816333624593566319698785184437421260973687402829622575802959269121475026536914882136199165893866155373051879663359439694481534234040548477448411700124019699259786077961164516188569222078346222326695015065601143261823991838451297703755123268112406971432221730644033756939854503062518480057508357465002324840263643727692946500825327351738682286312252791879699972306752912312906099500310260333708526844573682846861326496814440757171561836259246521179026475880967493398219695331864184166037996805271021960091217756002355322797435580619220422468186510396707971412542547511664760814025993033953581169392492558473065755902569741702426113304847633338300608839871133446966663876369304933581773045771528262760269431058135304803507258914761273287420055351224434960951112312173430838594469004641536570870835165188620882917547641690629442209304874798668808051235734459118501217770603617203110849632023013485287751804084371285432020776431145587015137519218538701852107734920592781217076958005720496157208808414189346992816221950159442883415995316860451102498098794989032110892922654236772523782325831503262672591390225940513872370976495732339832939431068240547417566922284915101442851434663124806286177314759935906119427759864130720567222596059940697136431168691350903663445166584682628561061615283177968871144559759942000768001629343407679647456438834726677715600873756380149050994873683401980302044688769673481807317841796429786744885605651145298602787906187666727209451010461982129101157693155347704206777679381137837269917621378596349050084127927426406857965197307776684392691798216416908464260795118280017586984311590754894791785321765273169568671822985542107261831014965252990963850331580472284532096192877512338293887598467136273866522660462942756824223460062165762259686944704159636132328844865538986828369102298875914733654272272156965153233962024625293752150372128314191798083247439903622227217744798518837335089556400931661326141524357245719081445084198722407341130239519791616260976052524647972899883065454487652537212233973585571707410074177406754015159620211605507393297825377436802391861453533188108281200758341299531333982459656983120855904513701550453808455270862123045064248160580485299193028754910477100345161809497386428210866476878770773105578223611546506182980372767180814271801405427187465738651978599475668179998039454636505404193642849155746018294464281154309278531727063395693303401197410308004600595259415302246699761615206375549148250787611303410071360831746772717849403821762398502246774802473303063496054271545071689608007176646972099057877192524677204208665146236004846923787303396527785804124839475371379640020760004878316412436338836396698307653941171430853622258127843590089314476676068778197458284194122413005103777371760521768453820179650714756074502767311438421134206861655170394247803645363959965872951134279547967265690016549385567708852504247855150614354002533757298060083278250632303377984567909467960333377461195441978595492800845271512128981607387181336286671382587050609681650028868873175605374106594542801629256099102459176352887287285539896987592339943916049863397433085752346737963940338389629754215090893833202684578257519189213433944746948418909344603184635112252243975602601827216450448321696087491566960808327133918425152264200658958457996321084804430882951566508210341996660371776725368627067678787624154322567275669563674449212394543157518995097286031954223404900749764078208915835301969693181697625544799709662640626709613263807601929943569338913405663113333631863660337464502730717106081981249220158504507163898607674804214509350878099326129286366167032613044857362406775965829076442869195759939041761960728708858561009074572430725608933961695257579361381636700780038755469385354051513351213173993599678951257496071676009446159444851183239452039696944390817152365571465764722877667679366080223450603900044076363359945436185281612425204666135627810602951224216662133481074161542603097134697491719582519718066649321643944817639342665047828768132811952264081618053195047141954174269765267562177106337972244166501508414346508361924884566352017077621880261299596657712930306906651936056731312666098621630550383790776601253030926967911026851830302227216598019740615482631136011217719826388033441314152761067118711787496910203981900319435430911065077765494704617583899407352582873423954905393550434540501800069249134111363199079236406197697863607061370847753184500442373217801350078142964708824392829425914250766661658024332384606189372458189231793275646798727001768058319752807396771470222049559344126725322322149743819917319026284261693146989785262876458148860129704912341101079179642965161258900372883252375062275734144900300404634856864042613331475664465741119261836298825113765443802369149718775630246735752805712651576913414353136450257347904758178651971562018789607661934346707435528913904928473071858333127681062696092280619217072096394268660252717257439956443541148435369759740156459151328122270859618493499686509204850084138228770549006991065255859508272691062918725982596770879343794494795560217173946905325669248101990119918155880672217322452395897204486831769655477150552146684081949250599938483351928709006029844302232399993636363433301697651758278644733019317551550816581449912205328096345999563179975791206242879546012581489669501941737963247259182025825183752484158105678537883124818172896708790810329331374814936248880093018694370057297692552009226405042659466065608051510800227384063353060450991174226446765709532226011630986900654135641807523700525110300377314131228749489786289857526144196096938165303488607157804671661699755766939208741205497788473416644611598431039366145090785043119483422560067185693596918970921163870416656584351842273587215560643257314112130786475655660609163461858924128906780701236160475017425020051661640182846021821092660771944951471469975840046839393877892471385990961304109196607321532944441526278578342793151475134790515048957880648242296986130617346454368261461398475380044528678256292631676109691346663874267279712914451630007418188907798546600588354882313945690792285799377577389098143349315582241312985831719670213416574526422288782588963423416994821213027494336518142648703944045323100088690975954176408185162842881554302082662218984127595626761512217667214396459134438271262244255215714149673056965218675934536718490676731886041294707574937470282412138808318871567364019073956265910615806128096048401899470853943696001191376873261905850702627253683707552894570518807183221095794364732783389204604404560861296708649896581483271980809059082725628769531183003773435140146784143837291244270140344421569513381507117330704759764931210501884905010188653734913009392752463835977634154502736847623524005632526486676033267463819347212861258193837971921463840465567337071440303784028292088954986306310464596875063853271971977181151819191125777643318078589191350701289707884971346986595244560521787499364711455812147564579189210753782120686338385390835294733885182719622890883852097211996630187367180238369434493175385692442832192027401065742930646353154671626284043578663308549799544151946533952716422163819304234589142951542816431958861697433115624858321832971855755999647017733184732695340095794359429903779891663943151641093746861689873241949724000725051986108507399469773953614653566318010925646196951896528000575222420932586189822152046432947797471542776329263506068649104057811463614600774389207296950714309808357632205006626576984183495089092216416874949125138735862839807303731578470608325997919314442015332619179201874971842275178681964621194688510851492932634820674621325815046461748427989566048850440126074383754896919003466641914098549080762175681898045428144857456188353392291319426646487201604082028593670140234457985052893866468100162012328097264041892014522094122927987386621032654386890975481180853423061024286580645946530946300766249361347253474880913874561101294404957922054302459077172427324822258940174699557527493336719099242805330071103770386152791394049621493581883662790764327457234279702155684720896892614257963629025797222948345657281976226014799056344986354565779707263197269785133059573248650394514671260831371951621280180316773602722995337491654666617260499306995467827342056269621176241534111560299348969337399016896586744185096171574727180589608679408643178857565616568819814016458172271131376748297191954828142617242210049868125388289823443939131312628804729551202268644756245174652091854870954606407203659694990155856235891260519503271047483119248817847556670326524326142971386463342143863989795410261099504999041105847612343052279446526958624013586026470707872705162755192970956531828676300000793054680643240356784895096699635264203816504947928465321555239144060975450131585221791427464521017045752610938939852974817966259296782613312158628220559386039572720695980778072480887973926265470271965966765931038125366499059519537912045460955428589126926331823206722485423332303348314108504122671969670823270158043521822473658297888287841522788097282461011538809636786713696415641559632392507537754483768529259599007912668741277384086997277994460093309854366763499429554811143374914242978615115505662278310064207488595083789804067322275517450657382202003301910303895686994884282426661864207192518279239222931226975113290528645553083648831873228214606982032598598742419195782734598926496041505756067409877964287767052836749988802763716104164426797839658811296354789465660093334953178843874482252744236019156358416952232574229616346334370985908281508928584507203228122249463099874066499869261580611406611523933165880560533884481540523504455629490370533076354088460580483970764733707030804068293413259734327241834539768964125167993214041462189219726875711071343170295517994599671659083103891826081751761466730480435891794499083533239682119471016173876516948529592252990860176485887582971026099653446937777262927392595124169060976333289667767175256261047119788511380999040392562647897395350855959987014272552744991640742815409607734874551926527919669145852258174130251721878835865906845215824638458932892090031267579190568260358694908233586923810094544831760265203424622592684646052697762649122052846142556387407181661936546930693397500083161956844286593571889835147739479750528632068450875444962882571873281496662881254487310770289236796073791876993438533842769990259296952178621692948732424841488124666279688051584071622598460888564781287436829282894152652377539421727383967768169203748061152516497565254404098105845890567594881194669018842645272834516490972651997950566594595873116445121982449263801676632603185230075781979132630070706074053404267010737165158772421396136257899875469314724087252519481592316475478648437480406331565314656879842480028298393008592187202763881628703449744316704510237227984824049594086124961404016943420701359680512370155567992854934692617592132959697572640381068644671699559916040777313861667199648980138643827771680063244947533648848924333623714324528680535751734004295474818056202197836909747304336978386006939378424866930890884804780376656521244602024251420854280616825893136321035708327576606504496834180008278069473269361932405075933216010852839284576822701635343507802778059991820185420780577220786283346458390269078521746176770159948200093218613339894999790739430129431554010516083577392425516428061334158955036755684868355290042394494603088092892295839842885919870970814851192436815404010622258496573763964449062040768432732128499032331575480319988437977833764831515013536622187179292328255975300638577034640129839307524238308419278189407413700699873629837103978914014833033642067556671085202769821449801294748362696482215141344149258810716399629620504486415155904674756852146124165870882255478470329183544188016289684303880887432681591921475706655420248590339522385526339774261037674205015391968514608568127369925719597815407667651609040848638313464657565965642372470737944558611256396111856253880813943267193813369344176939098952809479949102645617891732084875170585291250675579470478578682124488586828277137688381941296970689435921772856845130207829730632804498042337251941216943079445383566265518128822417711115687148434725565294056108381753536898345738275968485089627998823773379608003254244255322333879759982291945266090687188283067960911631467205237156089457425136926431912225639795682792461092442990580395963737366129837958746117038803126746138622816362229323705766773785834282439420639771202130166554027799426590320797237718720144279078676331772539558346067178438313598404774149568557789235705822536167387178334712317131921540598517134747004313074198499102652164327393792146394815717229091104281977257458932229054776935795276791108663355399056077091991224140446671147069900607706500269485844730135509552700292646737698798828272735425987291876225750787870123439187117178856711704830377466069914473932006452115175716396902736790569933881135239126231197827108714835804693917908478672689545744549093938540871828656553655318337813197289724857954873736934167452042364385764037012171551149430089448670543526166795408973238832644430984875440772301995479328455263483736047828813252018094183001322547757932531162268909018855364809701380464807199046077664147653603991302340267869461360991564250071286773589609329428024868139409576374449275110199368683168257265089666771262613015730497140585481655577742188448830949480767254767242859223908508968531642391009213969389170539526375800016313747084745193289261316035441598686454535842957940580946048306935643823087221994473909272616273986697218413581485350656618717575514967810226274340583696827536317718569034371546697023779767939456103331289872551768605853884415839392100114387716634450002038721894796809572695271425851597210524153515588815548485291707147769483057381340589092111655301833165162544095054724301122871586977004035139108030042364177800485492343115342553256731245477312232653732524173894707637276924789948087150550990317860807954403945075567028241424631906935550098025769477394687200660173539634367202923608093353101536981256089796645780150624929232176416461419660847183784883080992837518522662664985344717074888152346205377566181223431905361511637375919753494545867656225153254390574310958018136434426047217343844339577914442403263763345625789114973231164274039031531350784389213928106503725281258413959789580633291354593442654853290302407384488935095480693838450598263792431287417075627970379422434784515517055295346196510501816620277205770844742823609735378897094393028415219667288141054608376846261616707360498054417477804886169769957849965322595501446667857894971846093163544248439730095107974350764900089917118472173000302484775217817041523615314546484724001656891738970690718712036387927701583188267552542518770141136805635225556898156195162985770933831812002440824286067184380999547416884886906539038585713620317748383887416253126072871154336502532012165912218415198753869381898210789105927365519247975303195481905172969490536934065657328942398152036893784364298276843383482351792914131889292251218906008912014324844102021845384919558288147549520241049451932126144959065289003024798555020708221866177343029105525125884982066551553619367156779992246922814472593330061389841370753805418307647435551641349052083979106524031390347857627905398113002375273576729479143421215415327326775951742655193563199769585432882034562625555639375347773114231641198223593016325700553482727317339076900321046453588539331601521377370593063492996176559354647892149506028875745966456407056227387551783943707119260953520564728937922318960493075255100421123455478601896127113707179671141884027051528225534702926389703295025535289173365992532834901448303063258556883860098289460834662371411481329448562406814619207734494742755661331555993986186659732442776151021464433597596151600909264930267585394399896345903793794647944975304892361901641417152122765019326350754892404753849800141177253661708344773886293577574503940909942786651128519809702594364261091952927993725828680181607457120024522880192327472924145853422666705274499951191765729505686410527874274022727830038744752446555558883118147456564652110059949926623630058190279822030734911924150426660078897446282192570504209244161773263173718998436085884661793540223686779311861658500388317309920390177915045826139354616952216428030343301090900718666062163318682188913625714691242393657582242079472617263562245330620163336206326252983710350066843978601795311044087495513915339255459121450863632526213711319726547843892459147240329199312491185327483577459581231363333842662224967675045122910818403780100094207636380218751128716523107772183317299353804861201910723699057394920453634931213390437479005141713020214548010917721262014955799344419882557004389788011588074512540924167292817820031885438173643673912031945766221207705588874255864187854752549077134409258163412114162081049726538880355309230409714135952802453781435384913308644498180172793097601912789807898383310692407941184471281767909529968360237893893130086967498693002817103645733880542057403693604400389228144239301047150271476946579214729701767662229374204562565928564959602464967304381992943129955762041866574592946794071061541827319019237849911280040962291239853748684357434843359586309687120468041630626638598171968592150927321725084292025830425791367542284896930840608352788815671595104621110096303035052509363120882959949581605170422519691091273632937676569261467500391536417902549088785788315970702457641716662900290157073168939462947318183889901748248242023172586232309341080994582618130714455731857765273979420460711741052498158440624835795835885178830386277655252911600227294201303855144143599476008212619480380571131893872160143293592055496034683494526880843173289060543261183509669335074509199933644700291364643123639345606212652984683811126547725360638595074537599484194478165027878523992891954365006898430826714870433095331462944548675641528144783536579555451138035815050761218039019225336246383545190358759401327852061491328316938130931216326526476057272466805158716659818151913808627674013377697134200200691514946552352686960186516012302093773291772230535103499189560154957204125418428718756353562239972772086157682192703257975649791175982521898009070683562307272355007525811490387841408590751925438979856826642715578102184221029280855246437251370943876174948750427598758963114110119959561336239996729098863914192365150719041930543036219269438577285243756516208329397654135532522736119740985061764334706896980810805346459928914708814397458783122617425332068714971031683602473516438044804618705912192127378079194086044460381868922201443646362305021956557805748929005985742079124444193850312117137372438150259119006113322363406706572986122286651496037425997336754751608309995935011678900156401231129884537530333263727435127420284890516207896013377336337196244100673359354687747825400281813215604725655431381666754229291285113671263213939131307379609147059188838757228799408038675021918863469771782071384013799886233591764834260863169165311237554571695763366514966690818002718363946856916432079103323420669232135670437407503224645427222771866206139007046309762936108217100786268840572104996226486191753835906940142080244280181123200178115297787706332206940531777804565623433213317174764410111664886408595497205541743330417182228385070406401489658318565371642178325536394268371673005200495495457213831713931649992337568053820368920467488916632243207696641255946640868141651871009572107680467263489422658002702762155681563809760028306009216381409863030491696690011945407243399959857713644324364957124265942188615394505577171692517984645476948371155521306836058391868022267875089981061199244166757485858232477893232956882778957380853853185155111166142593756214387186122081871422022362441421287066429474550107005024625597774140099357973885491952355467857331533500969805492106952723432105079405891860593035729351575474252003494536996794573950987740053616744696648674988613108919001588105034976392660692724746763927862131080871628196531287733723228573459489702380868311536509250523013750202087994509155264299502374235979968397036419788603381021041151734719183065795153949187200424856095953661776894708666932504406291192707813562071138651504527932952383788580073584728027075421903203885238714646457422035752685290739943472942082960345916308269647720136466390357913704815397005339117303720632352424637267702611711707816629127079517069487311585612018414232775736843674135198160644844655516316360948104589227263259942719939452122603653187127231051698475712854992498473393000721693194290476003745001810874459990622220745102240076589980369429335434251535468638542593993428624778189561097270293970775712579280461023348909214384189710164932300950701669673682060762776049595986123938748331155239731122451006664436393545038757544305424316232883347244052206222819940669968631150194168486606704246687003409278230828422413841475072222754507563776909554366176477133764899266693681702834115770472689914815056744648153786652238763451268960565630839075175684972703530605168706279236676075452186803832858557019174648838988619882816535553117746469393609930747642288142412648055849716175317244048429207943665413825798102456886760554031429402294548446309278516722271695795207200391506796167172755869062882127750858420113487253513328575270708003604872758634535389628884190460555171297218015378973728700154615289172472133610545564990860261693282039694428557420675609191432405453186989918917933213150875077010188375272976756749840307225100301123757242896916885128002642981483397666173159710295243059247124663756510740653461141272217267012460746195018356147168073819919769664919112699129603338346092038703717657188996646144775961706521854659318929786968925497408163759738990543848414094643969467939882607222359334968103972851776067837777598902212657189462164297959565745437187519575382507409301872553867052277199496640921616265170728953419518779347177200731271819919504755961725717265217558561150881589908133978064522016126769880528247209915668177042030617746728176714635588727315240156529462252843310766799030198819859327812131924204993165549556955639465016131967467601896908996990439938929182308675379427372361361306782540581453195767630640229041404876859636293832805360828533030406805575766811167930849363789370497553733316647830485233111128342086195687179555795956275690577967384206147571321140635344713662612582886617232270095244902721933047326735319545289608720163419922856182722220244197563690451067711089209764273899691750292380860475757059676740617539636047594745856821089803131443702520008518393410773119751666814101676361875182652739486605583742776506656037006862376282008569044083580282747577950568636990669974585373905503118552843393055234822192501450553650658407812010404632916248163970612245274414506276314851197820967289911073605964243081506654485282246412822604285147219345189430735853771296054958303989053789038072138643886226292584116755377279881057482463157928490304587746459717600769051471272427346128688939800937213069448653232311557171465741840811505178700173321510809525204051886530533745928043773670868828903915715848756722919281149916020974348451151937233443824943058040953744641547417035192691893903354759464999506381096335775333996460071862496402373899537112309696427304982394671737462502865349230279347332947656044858505845322795368846358741391265704461054925419683743757491483134510406271394662515877832626602389008914419068422972973415069594812429036073968841152477180575763470184306732183909280639756499588865019314122614962472979614526774850414715019379712744864779027485627657561720825383239752603663857717875722790298171880841649767876431726572465378897714093080091133010436062876410750344253458338564105646880719436064721400470914038458073336988990310253913181432755026642716697994181014466440211102428542770255068256672959556012311461683678067691920501848417247686892652279562552737142554206149863357065934825684022526009673187194974906456092557925756725985386145110119245971814709795690645248066569000697351334965240678108613567713727968926393478145867801685434746556451481798402176207323728557593833513042936463397072872136134964860934181676379667813049025052949675286706872194027077115003348324514480721368271098287814101988663610386898836950764699357751217130421408768276616146367541661463337867521278863642076053035121654275425914660774618439766725305148553111510739086886989068799605460177414613331065840119738227107217989982598881576051218017035788811479589682346323147269860825071700823804159298725128765490262779645454078242354334722984911006053931312896967199172480227780932811432765099037457660088206167285347431167072443180109383774176746984434344270108189182174393588915290818215629298912425173712002695315958813006264064260674641381965593222313610201313281791506662490785856158874056097121400756990420076629079538503127076483743829254093382470044109638565997722861802070698646993776510107455941096611191472955126059331183256598746255793653074472257031409713143366660405274573136123344852147658289171733103560960527512290324806232019247328477713475689363751139335663719568578760877156323476504415395420182813782878952771297010796036076547902317752720600320077165479786547003197701226441141546634292038065547241126464551841676176895280851055240850798793123211231870632314775548851593025890419750479037654472741959053914795543835023530058053153535380511860032529383808684288761571736542847334763970156140096458385077687843448593811058332799670827653089605478264659794701601301721473246600816005390594067359449650133633573356871813380118623153924191103394919886339899837978453296793251902664781985130202854162278518981753987404512361730421432628666792302725691671283581263028802731278712436556257554978278494889454762266415637445157541611407303188830841404942881007041613746290057939594553023014327556545399152397816476700071807503783121294234060835760354596360886270220839202246884415343378966481600730972386396201586409745051341538374767459214263023411486505033238609031053577448305699599556983176974964686495723217444099160745070273601383506520214749428968858551602014557719850206838592430533774002602323042201498922468158153614485250319065998122368784272600029385273223375257442158319419756840066620042270816177830333636835654613825735916864731902004091245018866666364722985498459230887295234054710047240056826870216531668626113392800644279503664562417433000082867053393172953027938011018915922741156914359214508121720224803809894261623439460164252915364046150973208568766864713804040175284047813407905724366470719841374443485380861859460863041057420208306170923264236051078000355419582779622558275783642025685448486221311687298880493862186241942550733772051353592721480310276523082586876899750020032870088533465057941652869533746709475737998247009059237076396029775653865037906986730289265069626668727305420920201090800351151809752255979087370719803805764565312743155164621567842422185440459080464720014921767862026279955232681531824616018869563972401901343352891450394288458671608056956709314310774077247862751299113355089068212827633125013994550045898578334266428729945697142496047687356943228867931147229821042669467935368408964193440722200577297943743085245262568140044421686067418445551906512738502826166711083112555719546703783656748111609816923914189770609774078362853209657297379216659244050247800959466232775509605613170533999298453920620931629735621136134394709009280897498187857730612237967442945915843119565410597218801170960835807446907662156423305907123356763933416043106271765713683002664386602003288166860878340893158665791256024591425828910201894983018011499681803520341677413938389639089787223471245683649951595747288725556256670499928379626325172310848479843279349765004478210438967625076184723778335575598176684703358029911177860824687220485365943772290591827006045420676434697482277021068594039554099968469349785656027166316055267067078055469293434225921617490687080833293299923082420625273891326531417460387989989548581506144925224286554118679318562019984795978033002575434740715896018397521754475096877502897766919116174117131887326477767679454587724125685596965985357965240598266075504207570952569087538677311369892609514299373377742630094021639084664748031909254888319402443590691678486596950057781287307070808710148241013374845813027908545751212334201844362205868857733216132337643936235280499452714820507971088125611814307346776070015998355038991119117322973316156285683538109713093075100116891570702907646735314145506550978273383300056874239609251060096455028299732592035496763581362427416838632357941650239775882273084648116180226577858744660466472485598141163126954929341341553433083000165199361975881119042235212631297248542946475590281328041333002498482526398064656842809003116541081794457079990532183943620285581600284052840816326471312272477448778939316176586522724678292019694582998114405908500132182357748697044838602611443907888364458818125591784945810132451695430609972800693802005764010829176770655920089976630684674656071106578998284364211803072301740832555547944354119764356316227658591746195876172214049226920721072736658090343748024816706989474360392860230041609778442460808972988969572063579688625125441706052335630676828053246646238216317077711281797525409869247680696277668642938713632382191807667615565553253996210278074257030183000286303865300066158453805161637647870723906866170909273046170223558335679797270927833325489698046345869192212283974506258749156721478100489257165752061074309652206027242922097796483720842165927991892171164825134222099293159916260943096182024576460831156412541533904152822693022707501779742480965069576055766004362566760376787629814209253532398742882516395079633451126496609614307364363188637873170225963983497184021482377913364270600554751606859199722097297754300213355999044486769515626980026265057571048001217521899137544889198985385512881323066094353721216435924461370927613713010947958805545436309894380990066902075493778509153319724546553068377301505319698900535369190399864575012229705163265282000005832448480158825425073887139938660909828873462991418773141194253075551797825255938328416515264909022824357424265727753810282134566144044439692286435495592536477449877433909342819730244288858526136163982766999955125551635514045169163119121835881949156270146385572637177767046662196293091218524593956632247051151461191831060644989025567739886837061009400199243416768633794878342982524477722414688138997416256241893630033189643245096470687451348606725050534708240749700222865148463408149017803674629396550805784817088381319099636933521684590215709997637926506971354919666618021755153310382557100540695830146021662250721023703653328335399055122542248365161805073246496413877135180000519132877322858002449995731460274883328156630616904512350503780446590161146244589399968814235794606175634402191776561612598431445467999191034617648129515679066832406199918302463169318781828891666894281330877574796648713167434811910764893538874303563914638586339945457916306355315298980906923605486943513112665629809968631560218480914196366679798441550223648737487362461003974105763726593106590843094615082460006402433210912240963091200653066580602524933579707279374509316332540415134907321666783638201419478698039938385208784300686477562659335402882855867290196842773589693455859757143251919418931165971267913237476881686507951234984217987198958901062431417271995791033197050985041335411936031246606211836845534812913089983451373278023195821881419925706088780136866733584460530400467030451658065143250582987967131886027024771571805594196402709912946435346512881638841319426046251973230656309034624555256542187665226059349187885689867792439468748289213600305150561097246461724036337346034245590195804014250827603716084748440484848561656747002228561989004730235391966972694646545701608096426841730046824649283581873020854684389872638323676556695298490258140689634319597088980472887781313085183727304480040560311308338669015935991562610536709894688354286967597482521031340097094108622403078852026387567948682958796040841379943085820889427244670689551054861034240686603713189246082418498622723624694500696220342315043157911996444458502584715840722455860093745404117930296605896006172406926124599496265560440903083169092407044447048156183164904352744176835264997553090907333870140615457282916727716171661432711537994940811215733271499330548972225481272369514309993660863023051345532101825386438536018509445921330235703437086263799763623642006164431062124533978599641080445550310128780550142007013048753014191858788579146947389500284783413085126923547439878126338119343321905227828042929747944413706021619460790903294520713545554184931348934293260060749294941466563331554341304546126312157653880404311751521989070069976951074578283280660933889947393437226524187797059913958877376718960829759510790786431131301714351389033115779853150949117421454044742087989977574580515768406386193411445434240621375742521991461704066776772527216763576122322519372931655660482240407848916089925812819848732791707806580316648210817967148161456028123156683023248091260149936089545637237963270872506977714707361650380241277942955236346744150618735850185240604418539264253869501640786039319628729264155381871675458603906905105389802202269825853477803224297330545831785740417721822938247600277292992987930816219292914322507349624101094427814577402583294894473609630445196253082859716823721786057406289727965297203765664179599541332508964052771907019613420735195669721616107970674572959125464705442319584818068283271575736462651455008155703078815108845524804632820229850922239910843104336468143088690250694200945483080997978284337730567600085142177634437249252612407012797088843948127020942681447538958379925963853168167846033144391274148400602712454291697890478805711277581415024597984412972652287081719927186266113822330276507833168848297410577638245959536160456041483042575819558575856251269033752923218881544243149285609859039331757646207989742962194472387342523232127909588580027572868287401972447004602850055474366243567275180965998322726896773137310159415680423562750501261093717435235677248593071956742409981471405357107694413710445796990176559938464976301413567422523325242575474224047291234800264094553073909645435290215574232561347954524454195930266618953177865611758318198742869531528560887908591445506947786862230063129008759833883236595952410629237246828465970647477057403432132613097242449876200226602679769110771469005045937003509298869607514055066510187545828812107741782212096797879790243790093089012643524964822927322585640341306803177891615700778560220749108314279482662970909979377339017784556690394141144492058466561838939044540640616306470007748957568670633892171518066221299201858076210626790091021107722774471705072723756113541120493080034077479920736189715920873020660064578577160457636455399153213661313416978720801694172351279759228444808583471666885364239003017262965319876401206215836948701834778664869399024123002275433680873144501547348248584579013744827882268962442660564070265181060091404763006344616250159864566631220507132639704238838487498699366736566687588320745590612608795148126166933819982934350309789912316425659513193301662758575811710060117289439068429651009006808218084872296891379837195086053624017441942189728901482181102586264979815728863730536056911843043010598816857806654956712744353041372504381374229555468864498684499435792297940463711097266654022275513387433962908581810467713440320219941735346518241530075980172889792961125635838802871773967765046286762830717895101871553937590640441128890192723153585800364456050028306414048471848518512873635310508086370926879067773329377763879414928799670580944611068741151571967816676981616901802732793786215720541979167575694864294895786424876479972420238399527037059288310929047282405093666209083353078415578129756174061049241750839124461708075691753560861349818869168623736212212040665388172152971344152282946835132728520333208749492394348264789510943031459751989785673555383977525693899314988343977809645272388472669578139065256215690077697552472786407816962572438396129328218605485597572537516410102613738596376155950652372986939202987661588355160448906052024602994344930386785186786514420368983058165317747736217066609598678088989666246133790623210301607514131002339450955724229665537962572287687992854371893386640656094358153033632374918921886602378647743867128796715885632645032291561149881397697384073765809701089731326501544958026552578087068475907088082921044625645943694371219494098922982270709727894410928756196305664416642242829822748513706640171058016623958878925367531058876034399607231615015859741677500709212813984511024631200414515239890152226097547042672961719172655685295564055490899225402996367410943404419150950446699638850815356827528225587850870817202569584647121198314711705895865918384060837424314904321460165169417288221204391982692832888651295247929394014641988179644513171643588285253561887696443981467146328628646178353584584842806453804958475213352432441029681609365090629555156911597287927133148273481935754744096023961403228820751442193109420963701508037062211923850787786043396624999362002475930669454033577794222559272711660927425510636081355135774481656014752335774521603432198043991577336568774937051729876656666705035034302106340880054163576583927619858975201849960212074246024949447495573384181400415666522767173100622639889368601526980827559246246487510219459454673119183132300532284758551827896873031996644824819567783788246962905250346734604850266724579448401843598919193088535859701874089715243732225584636444851509604462591331908447039075937708083351589585266227570167239172279900217056298706456376019821719056434715843364321574139469424794952828886871690984642720410374817295687772934025854995674341282710384483846984314676584248071611176321381758777483308164706719317881761343791302069835817149479261269081353351083082517498192503082268169009555928388882753657747328524420719761778764745226895183631159968081690163558520966494235616312192915240754964367311610977205384497188633162176990643797712330908762830245145208455227090878943882805799628141023302116636530238882115843668199589399726622815026644245751784140813345650178147416305069149864963154870792283861402085730819376601322736794978483419479797407034598558544958904076212011892280092347945754709029414336593884069971363161297933119842468618924645668941950637703128892527959903702156531028529168061788589834165331499467270101092588156472848674663090090650518345114925098242959687718657838374696568074739917274498148197315073210298102156087476150900421821539746603072694078667234161596620056542643310952995107323025771911640107936074333528777482378978890966407890719323421653907261894814129542132628619107547001532730798883553467604342389893402660301726804788710862408793166684001054916490397899010516920973876396862712844634286302770191355199198338896638920414230419805912380363403683358009587380116934011839276703415274830571628286678822292366534088140064870135769712707504402183077716140041240002518938333507195394712389085212623628895912810794974987326800265407294184293713982015368177901721871909745084127192607010231901214576966613016893338065917904612390814940902004822700076318023685527220769739902759412230036181370475677766332600550444307001583622669941612993384415811654528332638073420759778056535887536711758401250549428885441020212441127324762828066127516606046515410304260176254934331699170104418097285763547292747794724542322200203646682077431911021574695820827717099269034210229701269541372355680925759269452563118498994751872652708538337905857499893298286432566705328580860115014383276618564486183175832416091594018877706079582406248324671876673797703249332741183270009162659629412202539770024244841618682340236374293177397531755200262494316948577683000867098822812268407218712563354891995030372119533920320580703885171508583398970459440182465415710288577079335116392617908291146152244046016196253350442657600874422784776152290970958825983019445481652537430688356834451831499187216828355707053640856383830088969872992079695967765650972415629248024821060672879183569531575640798536876771552365046584070279959426214728434238602618118241505773135049804640557973432296196158412091337439184452432185657955620532516750691437762018809421082100640512790630186747700015814529683060759866315053361244894581548356348875527951509675373116728742523395938409655226981874814918611411284429915619576012835975980114336796128956067055623475883161383764993228455709800003968421799193206661334215166369540714875439012358435630520044252277581115285361129045091267870634120618575112037885584478861106002482542473232459337192623957116171441506512097894104413582699837058458776692969749888202970769470146790414754827493308639129912294690620223028432821424444423496775537793570816208617793987603761159229031962384376864466448210683615408881156453124852386395962039319797934579809304085361917178353708914916345253760131274250713597826517949052630805178604268434133177942014741512399885742401826908665607831830884281922587151067783481133931139348491545370404640467908737139914236758812380412960705412348244811619316841788067969021102663190222688200967892845238125808078378182465296019225637394277831779427886661290601833457171267778096812805737256556342732084853120079197701834737885472621543882908825001802294733435743576558420781338422746394971723623427060395874733718122488645353100933362367594129402428895465929521491980013356886572056359050616762978125069933323257005125623901013123888748190189964782803350863180239118240760489083565818266508340133483026107593426826029408094496600307774403340598532538230652185645110392346843564134252556308736207338426283927461616662136263247632787502825496134535082573248437747317100637465039391772592654871699295353977564545462582420494403687628445235466144193209209954878821975347554567956524205739620118802080518293582771932446298007231722423021720506561844426275457793516702583214340322524126131168571079413472839882613585582056870791280844668482252291714558251861507411172033293043759755841119043668396410967709131028622166508664343788822746950794359566434733957113789448083894936252591362862416019022402582319690211528170558533027128732345356006766506620848412973579946739518985101031767222192909069657821943332549965019323665315419135262066722015820870063379344158128245490081290392173184606154836235683493133871528266909777923679890723906437990286313096037369197596548544309073607631640318878877995974826752688024711202831530258191739738196611597086065382405036216084610497144170556097219277774909440937766220035706144945044750832400569992515590379991984226733912114425684968485723410907410816695587690103204895909742599949986879149466134313440529441099360981804262974933546427163211879903704690645690645739526225031418395291387153622390306640021787234479016953750848519466082518463967594918086558745971417647048088225288136668528750324799520677117085653151531516571486631832109100418568302457737582582674433471944307331835373384070636899924294832136514329681282477716900291499648806378848760210211124090479858416581393570132278106474978388985723745058284707155050511580543797477808039244545895512451432903411280994967085291229022204778324796688874459811583573316137918903436811985094488364781522828296122195412488464449523170245862737162788678311232576837439186975359242456711986201633221386219785182328766274100577140956916784549827171523172793900635626769211256727159115791068783865458674101656723226830726858765791536552698803939246683895226873649796494040773593434398894464524262015582362863485957800905004842349656843691913781383418714132302502108920254217344368796225827963882512301475745429743231534792079576594887985289851871267084323259621792751821789764662013322551343942138118648071549671279443581907035119909978681510873750850763902998657190849479288485761220621525108017450002851415563787074221774713291135709489136813895149159706820690410867338241065633713295621439178414395645405513748748316344613092329437483209679016641616378902665049647151043445447437762404537873665775925191948533943482353482337520235728497350848490891240855668696509111451677910939456348244357137435291729415192159127200654983704571872751356339153605054864559174083880012442624559736399900348127421394408353308018204115797224383929505417342164828225768594119543341241335694721780188283169925811611208550867368378782173629738311209411751954632591640899009524684268676591910837005554802957877399858112328124037152468028924087127114115363798104709291262449752794504195853836966838628036709797580820990587076714613556186360564087051682668555532965623957215652327722540222759314256254376621205330350616666605172158753302497749426763765989805279515176112806193325582109732197503602719079442552959660243256292590998623527508331995970237767035514529822183166658108914284988410806565340765240785465294316612148064019760515401894507650066231943351015738351651176983197634943465822467061650580853518947236291503678221203459648504650837115063886817394956944216419954612752459954489124772301947964037445753964865816086740136125513203249912664307769560441334103315620239522483739063593586631655577092617044006243365492163441763293434667113887792494129006169126293066174620638189822918716966994998980608990265505928375285268052311216475408755239867538015540675514767431634954319898942751686402906959129798461427677515737695728664653669118216032657881557529350921516464550689936894566242314381814581839400047270683348530487257983690794403890850817211252613605668969994651759268504074322005196988869049105878333251941277164896067576164644824817956750746212828930746755643129803334013503162217200231892107513335381505918734895139341636315045206711066779507452050716357381446260760862401086365124601528139706503104959505026036806789385617969172228321087460763615009235389134800625118727928881147410605119973321054425840898675032164344598811200387471316666863285927753202937398357275850173540302843321342852828078059177736891215596540990679982254616817818622027473746384547842699370258623702155069615589491488851120899385740906312305492138360350264483450445878434676034083472013531352316499001114607302519114789950770335649672171616772538515564376250893261686351519011366087822533559327364938779539110885613866625704607311187549287874114552153585193657308574162826278818108900120934896681067721600286125512827431718029604360644163716671010659035557092205943002255898570894932618508695226865849525981962335542398822482233184203039583885184681098931957680863892778036004705437025757781750508817993937390845886638475671178619981137331967979063700209360581669971687119629178972795315984964593555114136256258229133387929815730018140365368459199066050783094427548703804377622925758292478500529177680935768792293468647514883456435353970290469427980169158269083610774059508105773433880526567769208720717567146081964727715807117436712617701488290102033148908217401640766472756560161939840596081871755562027651580922729273837603783821268061894584220988149584654192591206866463861477045933431067315263770972723242492890604068821182567364210610550987833703678013382970495655881214947860796344916078428596054868488062074684157904610875241560764499547039528236328277221079142478215850648568299339001905581370012839564049501800547820612746123683949571323793443107068583877173845738024951146734207654148999120119644140660629018024100579671893546469299802469223112969887064316712991271983102353531937484113181762404239252135937281641793568350396379869693968846565947794771607060408908481667124038602442168738422409553924935828862435492952645072667072337619271861046957244870068889980184724463550399208532061134658116778959331382358861156517672786329869151538221751586523891730171624680949750223781760419819252746372947709777515488203985229557788440336490734398778337392940930836039296852249359648041847953069017651424868894683716778875726906748857088282065396675102138908444037341484801583040339712180849003784226815309280887198575247036242540978086488071543834811959904541411680963412744906179617687097119438938474428313997576178386209072745990896696379410883521182669671497982445977622328594788853505617433223522042160856576312779762620473185789500967241041381036097307995647025535555936846476808255683362090292535588303187357739243040061330779667469314407195347408640206064432258696225252027361763293953020120704080760167906053202132368103811553011839679542949407683930944858737175586793418568643826719350249706460515931721330078049276747652526537632085637656024865126406581367622581164433558921368317785130485049110071032792776272957752318745103422498671454396786449192592963945524478376254882640799453678534303526716811285113437252182946413093357812258203373376045303328105014826948367478262367184949235218759859754332463979898364368436111491622647170469501658990709598001640800714242435799040638196857203930774081159286734624169781435052396522879758443913217108121918860017098010111093315007404905557924452143724384484352562201561989579887810201729497891371938634417088816738828255579237998290613138835285917851615047619355106331449836074387427723392561063984717928975014840226337160944479474756140146001471798704587682341027797627262510082972966107913036000565718751531969354656877900740395569804647627187321284938066970053657996608030427915733051634154772835568204570014365706009902472082387410404355553525052855639409302215207356479992418004303243847136037052088696935600232464544156764534177673565346026761220137716779197916176793241781719563372098308994984009106398442112189515149538018523330418043469918800560651435984312394080814693289469945078351436716288338598212459618219378006971979443721465722418630763520557010739610418600840898917624177063066839610554753079157132049473155060088236888658886485228633062960374263229586748759955287828778421485637064330529399892318352213276355227941543043162533543244036637884241728991214161609979211688991585652843780121756646525704755267944839237551265344258365781801965364789248701650688881346299839045823011835229119387625587933766694980510493555481941334905160317273803492410277941053316356953570097576358972750647053223065345780721221707961344201156916058617262921376329508871743608551481940336317965128952929621110763954200753129551045988472235794808266774455309914295455264014078635184154712917699349579149389986475721019323474887591504854316181953442875945542249318682822748033622299120388745184473827977461760891789592885783506832864526161890765160231161502154606174290664804968639540145740610813087403694488240553890766816589502995378575879170849417749284939227325904470912241744576456627032133780117701902963685409735259548649029841429504405773011199979398504696844898927619380451580948934344659665586380946487112589048965304198409435790523516485806351179788531609062506988572246755300971220948287162800885162183448770901734244407551713006568419298665853919316139487862381858742923480795222278489058055988538286351363526013115244933475106580393453485948816901170985635286559935987335651161178678766230642103591848773982936587512085172508351965954009187857663164075106495998689887742653583344952570670804742999213379647246133280772023863168115061720230050172138348462727286952987781339419989281480856895971001022704809400659931274866374845582530847315743581474231135121232009424038069504854252080625517348891732495697304273729752339577320484037672843544243251582400284214659268147885097799950548368276181139717474757390441654785918404175773152774776054699798548325897414825422763090754596578075819440320995168077184678268913965566730953722565343554886859132810002422154023434878470906202486717324918348742252162664388251999112562960160824605338519470138393074133280155012021230582752463099204460915796903682764950096503073520450007766782907033540921401148985146643847047585253210469395545415586238937397621292743007275321686624953994258656754205490785451255822883018131043269332489579893242324045420170429518684768436898655214494229749778688235737586509789540640862159138579031735784020459075148624065559414728257497144562646076399486920695492108263745732757061368482302591761975147183651888157197588114796648651058273519145416817575755074464051182665736163886817646953074539389410204757668645339854411139577209802049335863823347249862207048432261594856484104682469745147331572018358142390084856702462541967501311865059877375088312278386159688209628279990507027091634677058292549330252741467376637989545933325237005784939151616232074965144440571487202532937719646187725571708947598406905936403339899467758983353897651373024036545974282005921645283813130349600926368685177746490577516892282602277285414789338895504595993640708735774448197102942171016992250238721453102531238035049059422728532455641170948440004187747901768973707322040186106981152532621009539759877082762521352220011957705613116374193915158740979444335091207040025711796794297763005852500877915426067373061062451222817299656908613773800936976329309854653273920997102881766422544255793073790029221124510141974240362666789484672836246337761939762621508877853118823326979177482972032380738429133587928771053908191600575687447178879897778111696743354301858220208423583150509180870734260036485165602450379273947708912688022047978642472100693609179609960527704593828900837554400670896643826270402869612165019780698610072312936813826156510048822842240169451335387923381054908393408906997517557053216371812605178819133907397837381432189419629060664265644234256574097576589532972810309672127723169632469671899636663249652551897234431649162860663623609563656831268213915285980052506561594769005139799607891186131536547404206191775912382015100992307228910453061702599332565922306838355108046842013436101508349230690895292101748463915156603805711470263708817400357223629002408519948311329571576828804659436410662457992631710695936858270399905903860473234915205796733697973051480016265948568526959809487849993542806583867485819629379601497670885142132924505293656659173943572600497088141071636505776106636557949463181465371893585116276693000769443350062589975514380960987530747310130261374384239671177664820654856238087838455861488769317966611300793047256177247904841837184507306431898383063756568239487254023213264409367802415452515170157510003143342769172918017036003186546505594697011438373169052684008267015220851320892024090106196508511429697690876075472570201936352660109692490461107532178163415691615358641563626578677651629013031192321650078115460483399080497502217640629867891373086660082668960570544406181185510571581600645325415240717659563187325080809808577964931322393998088726936949284505853288153162330388362002141390067067400479288615863836584799229721016312564114628038455734767687933870507754643467952026977478793478319823474090866547879892527262351179218546874970446855552453328229953056620480292553015395163107559225704952084009058431486972959430692374747868675219534889734153303433938635033343174019032904598558983662791300576010266705298920057635464963223852297508355066072061203468950504331834574340219740929797401066587779174795613081128355372210786557077935991662538955948831174802224055717132644653044712830034641673740728294999897432300662254485454014399226966761279946582612915330968766932336190069494112990328676880774094475313382137527449798764140458728975742702686791648463259629531098756700971349914609961703121997060620289775284747015955231598980804370128856576959132590812004962758499851022898677826020067651767192590007457812686765770888854602247696521040919780262845075187959390520749518678090401349665297182863589474496834860562641501014817928849864268780852763783238625964352766014832112589195413159173546793903238898262333574194863956892460418801352684703854991703518127072384153061734303821418340214997128515906739231377248995727623029895694962632020425060011511621719163574066845897661114615612727864629678944786022419701357539387146925710303902229424974010140331044601632505218639297240656766774605590770846028237674083277742438617539770075539003265217269056850161939545188420976562846153609329547874456324651381921422268134670779262485255455110318636758017192855961699531100124393404627067009921870565823400367277718807040860081453423599559921003292209120911573962131138657104990376276687175485415905323062464293755553309842688329281448344899307273817747543116866236143622612327932420156485429665287157901421135804818500181993697803640746333594529422139082951568463536668055994160383433069906152561185981775043609378903477191778440979649081920941646125374336164158142221422216411255996750243371283208722118877021343023228928037771837877302697475558507304401767921996245545850825137956709468962743239928365290678867087573920517136615643760373003881298779522648335154634426200854388128752034454614330128891881768292711996949818729702493823568974132939100904737345108716331687289450278529791066091799396088954317244237205794056916539911803905805108354154532349129782734288094249086758253043296691362807645425353732176198027040653921248980399860145983631543281555019438663923400145229971438244160722693342884693054401540497125873012857004267855072783933236103242625791767712862284747218280051950558029644060441262962343776986078585981799292478632721302815628322830802953534212295797007184928804579309136750660714243204691454629311466552412370283244455604659524266880851600871079017515819564560139749081126910598964651665014759438666777154194448416289833514221412354606316525341290761244992184082985247627293049900112160081035183380824244359463429247433531822575013474698928855576940824263475383378131030241236878509295963593065235617611141616625974741468359676757082855836293900389690736481130957792986696709695665774730519265734287416808217154920541555232606633479693202826197145424767193049695110965495451011058756300721112055373764521304980225127277823134224488259247630775430689770080352288978527892447106087587473725543759981804182250985360444795401520534928231105770658616256991737439810839715458480063353931393331684651586730861270821649456971533604414317788937226118764437470886323155221179218980480274794866838831131356101804064420974727131015469350325466237605878705922707137280710082506676663088455791393199392608539279076346996040070331563428640167302599264505543774371227945179454911451839713019688334290249365032364665426298771292871412526377743687092492542141648761537380018985693429108266171228144971106259376980414780847996416056746902963938003399970549739111881210565137391749167234765961142683986583618616570218117506527317821607445850691526287161449436038957499815341537824284851534693524264631754578823483292186037033236858133088584075985221011019363634471514911583763374281413606288439272341268376637172428350342355781558324457615859815552588435371665422518804601288663851228851241480927407424030499537561452655042495769215370043062581988855941616422794977364502540672235266819662786735418236443257206730238563346311381380414540872013789733143814219700785673528861798624948691402945837900072220681078015869592455645086470631941180384466266488974864294677089677680099570357158565897324222071079521888968172051976846555778757682193038465282958502379436294860682637403032930627177169850587497653642594021496586715273617404213858621450149372913322043769372159931589368008496356041180858492175997605471845476172519087380767488006434011492610764867711045609361250996006407867840069843099863788880709315168250452865017123951352473674223512164487008763049930217059704024675795981519053644521702060485085526538376976580697643164442014777430374360807735994405357310876365678627313982166888884063930263207974205108721035321897282478715110422975528218782653768281701606246766367751189605635090938054581727390883866072498072308795743526860992661596822612436626953679040408254820761170599538493350972180509405014233627233492056668152400329530196368180060750613784617994283042252233737604540453608046697313387157259853280482320175246331268340510252945142303304514597465667812130840366327757271895386641136189493306781760981865329828435334832271505771786143129340674605014490759494764812757005741552451786469760914370783649216830221880158929424864657068299552410762581978473418747377373559481522749244940109717851037467324491467591678750518740043472873605331464332482415251096698795612335269505965228249430488154868640667649411171965246283320632499555921204775696214893129830888195608734909442839315548709842135271836374785633410785838770198956040933201558468355486265182363072365383230553826182214847259521466679414517691826253362208928211388919307509064557344446370990133957181266384216034918907842471141098288214084430033589579538987489521354883844309069878805371040479914722763104118347765856974634457497848073663013710046551547311347975276115660758407325773455417721607839958644359113135528043216213663327990470852588360068289994437425835124992273390680454903100870449398242297659300001748114245726029618793223443490794212552281908269004758923208233533312344166151181180223984142630962012689322335591882009481456398502403515095014646899447345478253122984584890435914306626916835022253967660138799543999276626394386232999988773310011355388951311844288517359858698342456706730473003623149241718096544926388466819802888791830769535217026959013643233878101139804043406907383342136202775670311490159758535665485523355278851711242435676073988449214104793051659787075573290653402720691914884330857254705166440350480418762320875203959884909102362335508107671373215345565322826417530961009416840107218102928244580649056411832006179681526032240725937850615579488539983365525473523544427455376677449139155574646577962990003700516839930313704220014893311653916960156453586373349347083075270335517953641564542518846019371613129721033653593626230389344983982478730992651882842030285938438435348514534423602096868112206921201422372736070117140419115097555227300806122202491076368840740340387653016367667464704384682101297151496143871153434220411022289564239082243154314966279518781273613666304671809710515946329934309292959393739595288206258469138673383855499502094787548342827721769924363277694392350908430133134956467599263915130887843432430075568600583681275513821538979365282066533095193942349760630461127252209086073071205573480725159875917448988582609141989602954450134948778855794203643379256387774956750745657090226134093110076874469876502499004122283380893420287517405975545535081665761904680643822214934464758362937645430909669905562522725372209457070468593067498015630813886061434437362072854132287103537106886544128441451047372032680315242601885819803545212981326308952329272436489127492396825339203509193569585548053787365683993494272939533584744441862843030246438034770321805241018904047592730376082382912727792279636198047246344717106197544724386455856080347389124732434580251000426810143781131417680888350566297803046868154269949409101257423791990939790708866318405330090823890433833607989564658463561515959306059325052340852737375474154406265158657421541233840876514196191855347521414607331565654491084830417120322452555667978539988129418858665664224512263589527077367239201703680763884660117589540295615238914801365960854474894722828108202392708158229347250581962328248152606819430923871058580732722622882978119927111760517189427068201638935982137576556806088533702782714657896603243896302001445625060003167452644563274633069871756861445986031962436987191887044212220534366255393476903874942355738275424061623402380995426671082326908396296128300289375266191809013158422946982928111962709447471256514553226570875065491617263951950229826958766449401046909281949846506748751566260852367390115462985103792146195303353690503496061951962181134851563931626473870235888739228751581381749983643074443761413725830719223776569805207045577445542990972015904549996024445718245837256014447857128481839623603659830933898078813346804436694400755227131756209021904267841191405261291722583240725804671961673078667373383350123127174105976933673090316978987681610896667383219213228270646994485622670247091879957074741924238719578143947111118300147940933538000489035576910506114394451296591243496289582255448340531698436420098734359083283661580500764845258818770041548535179991137674493575821885062759044739550756474266147292308171609617134937418253957410496060135395618854095084056895558342876657628491989316327717444503122134945143011705321674584377322311755230603275625274706323213893541575680164248861924918409022650441492356779235289766667622613026462988505448673689438510268770095378864602449996375468955352255676223954134175987881645717545823130636728541343608900130537853536332950893189189027477724112617685496700577449259225516918964174842895950801035347886380350399520170109939513361518807750866630719500017854792039488065351293244413799653556470051048677985074423917464597120891388396523973208505329659917404910470847011200819532105982156109018497012061610404410347349467871694185823092060233725194259660755179223002594227039227915923630040684797602300990595540855852928282300917936277096574753915035330775016705526538115935543754473228294695144809429022376369995522156517350548313426425967278302039764639378009109073324298234681860700694317541907987789077343162125659588209138974681462320492113764481314675316093797587155347121697038971376306550529280432711021704262080408408427232398147926454091839272229241723414935262776244507877169664605204597312371985482231210672310424304940599969915380965685463036917400131193555425554762508634156250429448226247442943832208836667333242810718649575779578829535844385831368095429644569721651451558886014093221662423603966680055721906992551497162827540288922692650437134550375124182583496014161032763861526086263228197579697128428347984302831555326896857061261035115650112063665480022223836827724330640372020528128740280869059728587883920129487186654508995400975308137928523550874744711598052452648845134050634822514536850201284084988628719613931287832107985402623306071856572662824637823826736878383790064335006319244346271408822172998520519523975726475849509295147820376519225205422412208921285200951813368934638675482131453392188040416589842704798480433541804040214007614486786850840841083150871893487978063763603482286704796863613466034921738704153208997522824536086237912537617486597455264407821319064214458841182781048119017035214149068337981753981242267855805231575748106494734833460384842540444964347170554805401478152771650278532916407323545874570161667871773586926344077557205538971448762018167103114930050727832693898084907040688869540767627593802914890851107640376885898924365209176358872668757000663087207760793297331160612405968138084076031314384485552313697786602937526538080807381966622850477526467873789721168893067751811823355696612082032201503552235097613953111815878176765008766614421313867765093343738974390950239185248764276099751187340864382728281695576058282137955102270390229364882659974050542026095355681593760752221064167205798175303687360963204981683011243362874206255703483088390122214149879087489703561015984473647851788712861314645832908612072644398158915880631297610924639333004110005635054345814960982813357007140536595101544862053129112630821745907832363445339528437346563226201961796084915798680889980912203251084306690489952853847183480663890064394290557980069418662553063847737537729364431429184068980153077409783023556704596790732357318962074323024783459047573603084242977012859166207687574111416619735618687702818771173429998332171628530948916355886773548520472664568997046993002059126472437854141161428504076947006651540956982300934181075504372483576603691004962379521295806777370904211361370911877225008365731754225359625004742719702958377601988687621507720600539503295142757052992296112326320164865267525381436133869377466492655461217288029517482330475377897228757733536074063789858232962624499653301746361184786669754342143191674869668203488863293214296214844574542072813967302353635447556163720969845764519683263672001044449688582943413356988600885947801007329583156958055260058443113750180156115816478873384353707857719117266426206554123398478735117081620172073567264356230846412922411234676073415944322943414849951974070853184572457137958978658991888932830497681886578249127610696233976147896882697142692130053209694400516504296463019095006450552308863003220947792798188056899581976702834359335341196190534176099938398990839279951683476179465662434161636392877289047070107287249698741810572391136772994633923263314721761494261150575967071375574676882488819628977594994003334163775989017244062358151117510527781118108017507487076516959610353339097977913290551819066685759842371550671820745099848117921402908125706837847140729571785789558396512315779323287212559661659563162132593653907925307473756725639075228833606564527410948825540827898585299771708404469662483720913893554165756745726138852026864035105057019523090253363707023577019723641384670557029859942564635034387225755124137983753489484075347452810845539597363146562091417667169521963738945024491931064159340163387949622832073027562964397880892591896841588541647861201210024423807308972167486398523859419105195406721098856124508028569638484557762800658024551753052419280693076173323470556147365999893634792745774133836864634367548697334522617558833720189142304560036204036430822112070622266235757637193700707840026367820563658251092779879804630756354076063989938096630190928147046692048787675573870043995915437114625442093457927653481674739758096086608736766423270103520997044501441350239700668037471026551595316934024281621839349885146692273060357987116806835596264671194573835031776042784793776300392061671336612211578875755900790760821754024925810865441919567078369584942329174053946529112904937704834207189909746861432824968487848569408270175602627764129113656770511896848572415878609192339373796208207624812440929980417040683998189377012350394442751896792827533312574028917546931995285464646920349004044411945159738491205109572884358804927269693143978459672648795486732481348839791085362071474257911251624198761656620299943063977013923114471304262094646131748747477657192103022115691495634734802358758899087198759793712829349708936899742254905673299808050322619343246989390719623065399788822564793645658055293165835324012698119202442287462200755651082373972587150928289544735321920739573654012667807579716654367459593300634927802627108077681240046368231498347382153434898973081867954186165514339067239657808465181575244807031339761914424813763230044551573702861486274741630653339988190355108462474903014124007609817767545762512951766643563811262386847579633850071545405219880498481087256598409979678247302337758102851952156756451139161971417890242662250421581526714328403310624463319253449533326168526809274094093247241299150916442459071404718497534958237814542853847545207194119031966999943527461545016826605174784262525788488024187120600961085847197980944273651762214674808562984422157289335163124777433775746621195158280775606291205344119923338021409568516818451840095338285531184148270347880273903997100684032179628672036371588181297350912689467426742327222524913134884961387001313411955023849907766310503807568286413239768698593338239241078047592409968717886524043015037766805316952948401312147828137629801090923607232273063185059128456762426520562144576210410023393256339204744559476067793197396708699103803859515435958952553963442265785339657521385364292641302447851616151526847340162758072402909935517621119319855987568135988344936174437070084549457169523340937731093215986280169757175999660653076469891884813000048707373319989202151395217602004434015224291933398152403424083945650358863122202244329882267481610492622944921354434237658655067887122430318527242260898630088148100451412424254909629629557467661513612475617825814497428607388716555105086545098620059764385934286570736857242416308332960519114786631864194620375788082751727289647767576191087253745887197816439448982954213568775193704186211976490707216661530455292399631497844016406091622612516327589409565677947561497191865278244573257996238620336350539152403302408754340932288390768635021638816676078278337063305810062171690190225145609770608145674786223376823384550865894324648106169394364015341024952970222700963628809520893441981684250345403366955452343891244584642409199451726822387801801105463263083648287099166760129083656511037244613530469971492330580933102603344482369449136662121218193332698545926261473824061489904241267417136009844936122161950252237028983354239374342133968561179021894913409927608936484203228928991483816672625298270502782575979176142757353990585901331959059096846308205168913382121311021033027928047524709196817069112725154882493438119633849271468922024923775612199314651334110303224517180995320749149289089541827994674046355789027553906384373226732564587356086061474369486445679959529801446106597887193835374285811002681117932398628771506802272644909648706421090490201257130920036710826051046075835142270866163259105632627820225856952661542944233716087502486080446153317544490980741826018378681542987742156501855263578306450607389281081846506190687059248217335002075498469332428777766734110248520107925444101903100334143592419801714484977967575447158203354951832743559692024701568542142029851920223435299488666450792071191884637619155067875337501653616388923152335099307313792573712898639096282153970010943082878345972444098746844044343006044392498715774329237702334325072258814972554366148378756164675364874849044817222819444372946114619456331271289891281653469079853183922119175857487452813280932802375865205156424521910281554467343332888128897549545051205638268570885348833388455166645460017199347655417868216793808654347635467188422454284878590342299600674995022671976466636593801077168903235090814219856436075143776258527437743937775479192135219670044573271704003873247817066670505432782259555998590778490864959365318593111817421263269324578221696876107132101204157774619787503312362016428105491732125589088363960714972463882237970312956809857663827256852900039403760716635137598053863007387499036919236974085651895346485953843983289041412350197497644653057225994354831239672785026598457766548237159690358324932515833742629974249871298337767859958677045755071520340820422222812184828014238937204897791365061404948717907261273449404248372403487371039978733679406540097874892196057862507931448290671038824805974388392415499409856508042986997818030173717743412326428753921431018154758417195915793392162221742934165327999042077491827391168744799472258518468142691948701276402644096004782652455050109226206750451395955807491895422035903438101922049129459108248406993807885562052515331169132958489360319276397647953437751806037562077903360521280227304511409353513656126775356732175216606766780115659516004475123025044969778070011199154122731237877538570362752104761501284106432424181152886911929726953582203459954542306329166683000508678437332675973941232779899179630700023933770174641173344162153611187379169596601319308152891959505922509920392669844127116421257950922031941326061791901497175651303545096283202966255354044295517160877051732303758585089799793404109288809752691596939634977313398269813399537085934599118194216528995195979600439190204527983550023649001589172376973451717902813059669379858553185396292170010995606007137953556872034775920274386120215080650077272114333517506716827838548530113589310510966252889333509783469021640682016224998753437286141739663740325996016624533894831500517813944165936514179944732690979211364486437320234057592457860384546716697952337174201313212553518099647659759310239518761098390120328114244454440186365470161275291952144255115805371022239216754457996441850014132300469694296140974674336048605231823681830279063270406673057354605150694984575727289998255535039635881551955878602158067373975125111861521911593915158948674988358154435894691669245286680085582911027717910391103680977319671983531895817366300745050277536426652144418266914891145867131604418932163293365795779964699960381062909202400959472839284314252259373638945752261300683135371842542246727733182110360096459249803268160350162286261894305125242097527583993902124399000150075953457438274696652571065548591280090923236600423119424872632951407410640153989831049956209695716510180191655756954321315481533504263486814907379364564397309724390380198811248742745748261635256916745054828474593342151420366479997035128303384045840864935988500769635463507955815747918340834197879154423600461447471585030263307180173685516342976428166446170169198764172908803247773925750289394577848606088476952824067721250186290944630811924909285668985302765157367454033855924994028758655097951207086659133663557380104542986204800436206064229167772597768363324292056033832824417260415544139643761475400119125730046963356604564437417677050186518981393730073083277742991222361690223977947020201090604260770524301845636258512558148633449663779707153677123739429444802471797350219490964268739355734947395551125912164258969854927056089132516843885677648149050772180344168155820236585565532731131972981789389503442087835169563322330678418342274354522156663546229021267462187763887723123044672953480842231824942431404663186358817368894506783684452140889262112849721580201945418602700370065049432121288524767067640206137491970976433754273317578990969165770930529575908029260740620185053704516910498364477909944781950464135832437739398949607911559254997527583015161503501891932630574510983819341138893649939821681469424429556925727556946598951286541455426377866236817925403710622584159141976828135875328850483044624324102740950464324351540165353396055462354543531329992393524052660919045279218618283702845782810449375704807075767619213996922916087777432299130589681171698140540355592221419206138771298512668293772140657192809533674006298398171205499220251373263045641118738445719980197948022813319363390659929265662852127740505361333506185659859566298452998472724212282140966477457402568856044134538639068160335772405130658566576188250705404263456731730622323521530705928017114871243120308363054205296949466616273796772953970382144460155753989216336225300397295415926992931616789361161591471458924587954769228722361650943832391523855169850437026530578285596524154647643166363038840383076454322455244114787205700909218494263619876573711699599858924438558011795921988986056231226898250644581313815088762775018178341488576576717612996822098948045546491487223591558498954462485992025989732636125590174281033020337329366049408573109758253593497846114244129897090638680404829136137457481101482074415192166415340475166399721468470310326543541755077665384917588908216785053203864559351774140295103557537690054034542056358677410384136179666347801300313795420738187766594461872909359355646712164336145273739047599998322539746811138829221050925879866973181210495087270884536460407596007364554700449146516359738322841976285537391256515648811951078492815007413347520249856839883782655870102860032545512852314340562959793859728550457192952315812439484456840088504552080019138591159291278221910554801710460290179804239849925327808993621755817303084409879818941967104428739466835584974257207386523461052053284204670683652768997441362512632436821379164708155341634739684421592148533603188135703577893603825574878709899197722323609752248493744659800013330141417498761387633298976026899424488340122160868885874798392656864600540174895608033921303833840030397892241556024175125866051198310643366913067428375782505310066524447665079770367610295073642342406110423109097246920303222170642436059457053657804118826016878565078806618656970929157008059441178495957692302848423022194440790047481277942787944282404030468086931393832304584105193052780474205970881988925246655445534634022411802745739362678667101631367744747345716579656919371505770094142909271033404432095235058940641325554538075218227586648416373549800661165303122765180377360390747485531734577716408501713863843408692635868860328386931783739257636511330608594010917198515750342679175300075782693646138984953319486154385695341537593835284845656967460250988475742042913077639175406807591749770961947521605846255450430950734713672542359553279814828669917929211091268511173100566663878559623853516081087290498131529076533433417345874852948765399766229884348398010586489866656324251378725710910900214121026725048923542234924353725383998596546654070628993369430361854882732456012255928132035675351787002923876204844153237255945452662455959731356010247228740638834748771151446946960490301086570902670364089040850783854544724992854041328265684872364023746095280054538157809802845620822022466432592244956245777262000522505893679169784906183555978192695992596849930541511204141650024499820075471652833625168070319442837422429333511309039297031127049192346614196463520638299597748563395869406242026229021622279741211693177379613721824413620892659709643682601814085667746418679003835011694452677395633899508172855905469397200106826187665906242970606341906904863143601044753961667291083588737665857321130283094057127040965014251515230226730100583838256807846987914692326756057673039237136975105699250769097789003509699336924590702904131697470292141417195824666653852630578780941789689482317891594358949149301186979114203618469471259045117951080007317804752253727024349129627711642258237834910378994627359108666189114430513622043237588663592539463067889437693472124418438973723095770215489323310340897275594247635903128611024060125587220471289153722412319419355927832927206790424331412306553028273177403206469693298512604460316100608861562672777826888395499853703771776806739950162056896544508466669461586149983496314384911147881268176349736106327666258477545397095222730952192445374478930793223636461112824750828811853111898996370819635488343558026491391458185760257407685410103735167461111742482709483098920649265266425213137533971458786906111434860253499638879026391179034861705959780078362924949057240986967978462438673719793252116687064835336798484404570010567835416360002846004120240989019905656106408665064446666812659776396214494770701005672945264299768120423919124267485668917391214721767449073614053899763661384337421284627602089235417537917664495569015476639084718246442257706062670557814110089872141036297809676479282532612136413103539185184331017455435879899778568463520138487189170566048062192392778449878295470704949091519035524834844331992759074710696326046487343395913114800241007245546924970076642214231469918349505116587353119172026794426238876969853215767646153772273812306072760764863187476198151545459043174453620287436987600747502294089052313314459251275055274580025557634367474810966827211602313717305071705763902678539440636474074756458544683804470193884411758711342115901132550942175395109381022643616953675236492193720109696277081467974915543679220435656695374159102064397041563598005009664952051666744932815591929934659001080287874294146037153820913705060041732243786403561110505322014090485370030154281212983596336759031902670018469731790817679952569139300894223954101911097905163257460730777708637008218038387650067608440165038950029764215881229721840863628002492878792502951383639358107657098820218941271556318166909353341026167152602723513711496314904948711003872336510232521007089505881736088278070535569113173526424902667596228317601258889800783659783211250304026393007691956137376566321790129283197155296196989256707617103312014928482219278960535045422137684656256350447322259066884709276969796972124204018757744436511951035762395191201563772604292527363969040218284287675041133988226705009746227657288978708057800314348820665725649116759909311809559542705704268954295993941864915981501450941240331321303042820686020723865877594654680718740186825595954050177019519913753548040485049013988586122805614688848092996709521080145505976156249942115840844534544662130908042478667529166708558642953677602443571559049920768773478845388847022475462774674846563314340956937927655097113399648492362749348895800855693538449821502027848575055974539547532830442692868097784893501286588239530650898735414286006563935104534488497935131080653376775972973819792320064288323346524107417540613935736447559200518400200718930559460362986482734137231774332876009842617270400629266180033956409365868423318691775227554859076901653263682270009498583698972141824645365211493045629057734793935933706021876001510272854791283564234467173096208595140356407863010649721152810947853507258200028002987950168640143610238307619820852816118503087220787211915267463036351896180140489878216811219015477258509207822733670398197102955463015836758905354020185886671359965880542745529092952252369594203663508956747500652149879968986889058182460060372430524195859258273241842227993385207458501005911169750145876526361077508973488656451425568468305432220485728509281149664477736856788247660352330422710135320742680341358199988591974141994925498931071076566550169197156327827211656109513566887561848436234858691991626077238570997916749373809051260090670690750928081962870133866104774138721347935864779987945792725071412347677039577611193514370335147912816083430837964133949537814824526168702851905456106417629118183662199181399529621033286574621136131728275936989547388072653428631334305636831184494010419018204113906205124364899499971161133594676935791008870818380903088461727010704456912080619682041405657240165190048039519701524687543236011603941896290972055870370351665469380904968524832202774282528918473983838310950229459371310702176718310324651794277762175249100016922858516913072113149771519885141623736347550577840343709406661276834456630611316305256805269913437010791835031614989640817949434593486941270697022760939139808726134992006594993882972318705923774435292288710881129351908237620564085333101958614584821297659603594589960660481945304722966295312483202016544625977272682692826120706443241506147518240454108183797567752577066772035167958758165222398579494157170567124310222712815897018283982398852328643507145983264830232514679453499180211459278469732664127830220307028190699171178238792759378520677628679211900967958461890295516146351893014415436019915919264215767034922874941749641268378895552422225757628910298609462241758896975766456641388450675473057305124515347420400709832248389572280504665000202128647851109098015532524702414495312919710126271224297794934636193387188597036923634561607910121390421853984474303953934464679498330404235811644850845413068125245632619024099298771263270156460103420096929521799390028494324650767157515106335099066738311092670983563171090590868185567333178462277432883236453922133750343848929687173957908721800476866274028756587562257345037712329994433309361936059028751405063399112369078527038490263326620677062771368950227982448889984825118403805987887086871047427067892916439055503662931341796802291993357484883120129199367052345603678566360866954919782258112240497125155627798365546528326185306260305875214571660816644690918414143652230129571161769735994085119616314647263959916514121828183366212993307621374060064079474090493769411942980247635533307275285063646039622931833356619619234272577714041349962399234432733394939560385725188571964919543776763812783478927115514650708659600604340489211878040966673673597935634502187779390154168375784652818344684788978096441279758775244578508659659015161444715895074293521005218757073997476809270472574835909845467609845450279611283522648987821593958675998291678946580327588915899079941573382711999371384732059215347069558755423181418932701148253660721597886540436081326161287218988781721327869183701182127136440664003367829090209649625980339025277369125693961817940039787762425300399106100312105358095503351538754592932995435548061272671054108095531109685727328010212226869165293424541629382829226597856536159847783519266033418702318637559141293355700685056234228478035031809788451291545369926868882024590325833005923304350121161176531013765934640772535655589024565129709430729273891966345762199569652671843798877859077597963323424182987176092220540236848350250120835711162528027446465012614132648019326664586207613655701886022302674558649516185214151448361223870065207068760000420952885209232628020808214130599043218034443334275874714949381809972709421469183048455914289522039414827785872313172648139167157702705371700849376295537850344158802611801815677141334734001774574548475877911699574163537342297861901530852519606486554080093160525954147839661911052695056877648138705537121312110570077062032610717328766027020375947586240407055403839599791025673293928500180569765310528653260774541438940920903498013914533489641789296119054131425538044683378539055517620362727228462987246774917099278269168476435624495754023278553564523697186609166744917754906755418430074815936576728168050585761720372823922202373157909383941284502175856610305835218308960413876758631619373983554655069517108530337271602338384867654683170604677809877465698418278472856893611946180831627212349016852721758485803532944883954696856031099303407707873791262290274174691373850456651430884797444156784183717216761383811385209738488084346791156377920173482029142609481282286171322282100298141331863156402406284119324425989217476608475051846685983481773487661527510779600451390862212772785094086365564734618713601446238083716367430043267115371912479099890157611838249484899865965405792732036714364388453276714154246843582385704187752829325680903224031979862678866431940977225633897174952047025520705567682286917136635414994544079554315572875185885660907805715286482023992459428450336700388063250429053861573878006615612456500763970522737760123491335768080621592339586171594814331929289130051509894650752139070776617260724417111456255785464021069077357296924377567013107934940892217889142988129313359154534675688227170582433313240329385481897968332028689192826056397717807041546937754611099430221295863020443083533326733084553352482493369115292134073867702007110758168827591153671278637779775647506836679442490963442278749523214728983220436833821396252227533863948570201305098696630243927996543843341046125702334788277663889993792584661943736993606779280480628112334211404992956769673969000588598823612845231499477027339332333536077028946920599948050526974634404014241537285199630187866688127056394588433241186759920016064906778889047077899942889701012239969828663219739293069415195960556635026240927752477841326584435596625155477293998464083024401397453691633175686521224698223678075139243212090017429547956036208219140501882872984594934131421835799198887384752099465514769138413012117095782405735811586799451086604554505951471526029693275841971596269474308608525433684959763099481466403590604347720204743185509182194364425033277152312668989908191564763810988368627429289469453700411685460365124217282718600229215530350232781854350712527000834689060075686769052479038014667752117352289559510145986149184822438667130837287214829475561946146237564710867347428702370923143197564882569965953410150825796904147671174332124198290504451670667652843476193322475386572877614654094695681336186377806754137678173169205538581488554971414019760027966858299883876800962363002875755953612306289471170115595677187585711421347821984662318744478102455428772380552380649835099937345739957214597969800569464582178844429005723064224820227873700245875949723576320955124064873786556082972367172857964621889899807115124893750250044074212676095162429338556280483567642589774731546694731014536333166769270498893829696592468689301697408510738238916173793089357628981084667397120484440611266750326151573127834504334742246097606441773468416025251930916607113693429053101275897425414561657974031316309648319321745943703474764590219289354412990031692174345510617782424841339051223920710924780943222275978085156220154364969492064820347325312640215375002955391620384646871691651855466343512240783239404419261494380468099640222281234725928518125989913562516978782664416817139837045897818763258642610283149968665812005829895700000390748715319698620469462282421161886352025751487904679245552547317194813693148604030356431640489319236953913865125851644508363158976766336005337607640706375360935547670092339887077246116769860662636166789568196731710656606983752677905127066073829640497607196023195581879486844857302979545121184715398381251495814586663392821365039270586484542387144260590993294766802025065005464358937385724104662921410080740788360848796713599467245202524621992005837869686205493604890670761858184260205371640632008755528095908954783022673117331519246608511233223046465312994338206155148412997909965454298577027775535241916826095221950664530620713385788477567281404112603155229023481373393891461382284296019053834897232474182025320473760188479413866408146512086199842663407885299105654232089661372521864630524746153916198140698431824375875771744962012658797260693159813972562155021532548089260736840849697975421856052835776895777661082202903884651225324370257586470209443614577052981121716120184654055794893290877519641534397753136722102167767098015459823847735219108854213408682778865381298992750658948778802295641464627071600729778618672369463786290635627426950240217396130246663387978532653279487811213446110756794493891592325495075180965894093721592063564747192352993617822269972133892027521069198717435450181318745258029352222930049577479305563580258749633973034492009806503499287430321072061422908858980232141647616654017423186564399021879053080450985778491435329869262538891145462004446267512150885611932335541668568736728759508575981924077652645889668971928892129785663164721051832291362363789029454645313682307719439048921361519326988029837667441159123928244209656143894029170326347548927592715141423636829887726827299837133649925431749048994158747193196599209332344028425187005592945311589767842161449011908262994032452607223166608285842292706107654982444499320452886079387919719928982897993872104216193491206606058185940884719296172107317710377798662773377679466916114428715527317078450975545973928867979121182871194550651679366229930771173304529819587585604967175305801363458930447648963134787939039992484952197271553184176141333996661214375523731850222092008112209166052825246433492992120031107363200192871358488014465874264747456239775679920286635775448102387136996895048634807292482120621056450489065326735897241570086885779536353396147056755933393366854780937145537168832726861139716147810666674020409600024725736347216691664057225384030308758726331421699484419910207621114195060564052600492820038214872898223120550846152832952932916587723880767031461742433790503918017122859774225571172861512161422360887727149551042507455451224696207923302580499371892082634468077659465775605001523332024246843494764067084482329354500313161734150205833255408165296778724903281912815553056057050258773493200352479314115721707772352238270307381653901783659919068700028924027234357560444764463135880296696165804991982319488580528779644376118436614295358592000401131389496729586737619541667625088744206875620985707010995753074249147982692537745824936623593673043343090019128710923565778237151336713985806595421801981944531360191414534422958998956193226087032979810461032856185453679759317536559898455416677972336451163982997070798183319557496969715241318120883795623290928178049041715065652000494379195676589251907004155112144654747110492807261460350605134988506979834698147983426386185312170023406009851432474907265781697639865612534241224565791668155765491295241344710236326241699373550722742190039133465898010562892395268116418125974356393650384069099469288674660588925920931120495782223507733375761539898270634230630002786663369220417868230198390016773954559240422293932217282063711741744406955565801535497197836112894400556451151586303652440475822881114125164739633028058062125967730686285613961258688314319285925109767748628657583967723575878273236352343801032545228763684507903439491412551489811420451220015074621845963944708069560668756739221302105758901861503347812520329651603864159066101158867273991444502060812945625815714201827224626715453088491222626995701856358230216955656735483571244094336560713544427450610544687236985230815822130472607045618394376035992050870945528811664405042617741994127150807983197909725881205531367071597754272591844783809437696324382105379909132305145143332067031930929752025938227028637475429231928376871316353260695521912861161142918299701254434263005855663852384233630326624362125388959409335945875329077016820820384865542326230145515109899822042013251432040207464427667483826834544616564942131960313706659826539468282745247049006241545845202699543086160547876968180999878749888245948210999363922060655761119491042683995768093159964362162779065105259721772153392663132405474211851389928347202162286292065451180191413169522562086266806800938502580296819229418505833304280171517813049395598236603470544887339819044766323001983785482727342678181705079400810772518218230458641846299143489075297038678200618342177094810385344091393296772674387117893504478603240349641935196679652622286820892924389102648954984126563112596954119883074088323744117035941478096639639610764291527770048991172691852151030254096617059232247982353490290985185628752321230398542205953831316002956620774928493608446948456197710398652696726881154752696674700901974179341719250106462463623624021012237452204033561701439371242911504571841748644655695882625779936727629094826455060997805874860332428164609878400714686328410684146757542470209252441345149587851677503700832223481258417247436081275383468667166841983901124315031576981488777511403684009755751758300004419437315511363458455175468385227781244219415364672231030044245861550910437410331722085117384851518039675882660310752082437291335882135763297047035262941502864237460402361570832811016875138040566899120419365635486484274326828594721607614580134738455094526479798155890003308878798548667366378436579386873749217667124141573026551417914708132007461759567464806508680362379818854424772963594523797309034944602300366212038994995588200842335077983449023180770967972332519389693624928049773645662337516429511391023343782270761091709668034152056008488293432048948825851183211457781653459206704890201729904896535157505246959621412756111413297085858825080599499462166227800996844707138428102981137281017024737911111462042301234874611535022324550201815903484059263087501486773500965834831311172944319473761117208597270952869768760616628178521885634152281604535200109283847068866927283204387646080198247374379239940375862738917256126224881672643059766121245847575711901865015568804191322239843808749444174830531324945356559086855077556450589313733912663572383426351315142638075946027306050989986532345614328590191837579663570613989383538331984684806465919802593385808316600917812760318861912885375933297793771393986863536536883534344008947462731472613711479677855288534887466149868582011369111142810374397419003593428246730600837573502376628866250986268802849325855305864172973569430837922120149278430175473678016987759258308802829806245802084855216329004452871662849762688211885502973058742568452050179205058639970907456782263121811894513506118236079060019133709583923726474367232276205780162688876372977082965046688242722038034337538026438535982110012153265008395457877528174992130637032164612074817942212990797073574569905804383719913179070977246242591393519287388713251549701681139215752090899568487778319745917971103435883918555349409792993586957845983892582774534825556898191518054169787262956828671775304284949526458711135554954616060126482644050840581392003201102422334929015747197381528203567267908153240515868560706933613732062127888623606373624460790403911766271890370353129606067480114651886092597400628394588314339914596257714260759422309304002631019281126947466761445832916594514989186743803614305371476936345554760956189549173136922394473682192844096900186510203868217685732619710831069894982262607052780832282419240581067747160361533347676030943313375342541718180536360178896179387240623599636193677851405593576594648313808348292323359068464314953378186456249468181287392574260859503660999787402480684607787942696290258344594694306027712282754922586976732504141818921810546157005846866226419632735779858852421590383249095730455381723795809987027503014503013898399834053243676930711019446089478842043615275508448818995297000750294595761332638223841947939328262982999594850028157152586028106921439390005827781163710807249058276938420599785592087053071810337800743871877766099328852620475614602419597230240994135509142670032720432567819149137627784067868228873523906368926186423824067945321367205181878027944078575081147485126632451404689221523260255078711372123268785501993669363016348264835174454250031646198535178452910660173944079582028637102860966446877158636967331307441897242295930523137434582917248140712918172177861939666868626956359079277838633206985719821266621991665327729649863988986616400553820940047253421711836237822382405164208775952540977826787225166665243448631271244963839639929706284893737808402724750927446348540097101191333028501458723231616598002888301311371587977324095554083266133327966619169037013041159330205655609162171297214650424439995005852049574248315739372870491160679250468693956060976368379270889679514551061729224318373234537171644999435793305459858213275103316276689895610561640992841821267978019842454069874264003379015882528946278868137453362784035831537265102613412449813315477847245338342038249706052621828222037122283520719137915230568012454479709430825616726922933143463460731330884732223320763325388696484870251704223235097687839318867392623229704644563772703609330572120836620131809991137464537653413443707644416172324739841531850391158112871634547773220399332252830637266952607600929824185350084480565273771137650290858736581186459151781002185774792152227411729119919006240050151770758980063285209706137736971409301649373820747082027368511911710788754314189342762901492342661006557335258848661044904208911821749768054269068958432713073966178570228942983836354630938197007139268725156925333636501825953352086967469330300316128703342929381304985272864706473908192795389759791048783016641640432053703529669463683045178296583827695136059698050056181384656226211120392318601234488993487624814053891943845742617778186190402799491525445024455022096174200705480266368307866177660003950828922595505270932183019496624653156501045814456528655774395913650637200640575482374463983196289012289518256654798050088046326071557771768690251146203977630025763040155421842091064252701772902617038292837526663312928731190430804540716242798613490123348235055078786354208497403453222051939286851570687616194370001125376572040203103692130110830215957443014219424964635727107888160343968145019536824878631471174081362700341833436324731671996346000444391326913298760454491305640670573374495570982920486699272569967847907015985276155292343936340102320992867252609666723437495075397193059282694297081558493802050861884928418489723462781375832781691512648419562295191328982742221051962737354112040999647971639833399871700684449670054576981712998968608528046688896704452167236119577212473764052353034612376891338135896383073730775133754568401122347444757356692030480011879794743890456587208105701756174116219789866814146375628837387177319154514553815858814340208523200730044519130196999727322338775541191256104849000956360464942724002899679698676508363713360409272012586810623255483508573095471916084170870678533676760922403806188515159048715862887479277658277329609913935713370719699566847964547572458556105316627222071934827158671655766146156633114389394052907510733665398567856369303735641483481801948379164575330558236211762654827836616094511159372823879022945439047529403762953706039167128591303295008908249260646634324366446616379269698849807789389911093818315596192112917766457805450663800777147402270064507414548361804961005837728432715272302902766104502292285628665165387566317098640153055575140332320678538658348310024430204667089341122348137459407432747716346675256864988210930159994855548979534262746292890958367915661311031752028826536130690129419286427019714893337629653391273117868186234674745637051727014310523613300394388012683926294179274560866590979679372698797442773775387039647794378871747937349609326363528174657387953642819242106294153006010566150573247047655745979393702687033442169396358114144958854191631444980517333054484485347411253909095724375679435552335801538443624404769982531061755401182712702492404630576848643850867135201643524087328213703399286876689404342276727781475553446651229798437906498935813918340422824123385276117685026729245636224716506498678483642273583813770262385034331765685763893460801379419190738004730559714145853490927085290526393290836005702856064725868320504280290473241315175070507775893657630346818445649392141973533778822976932952529381520374956649621876320271703410630331889461968594395936349688720865398179006115223309757425882334647467429930960560129930890449221697319905162286986931210289506181803686435465831811146225147984069291231196980470305322314709923066095567003514847201165923907184102898422805320380093865148099826792877902571776132154560433642763823402882529063676995377193395675783951441648046077546496605570429427129292351652018512235654166413701123270655552913962736989014654313252809142970067508815393740705453575965487013522495806628597867372567024923587389925495985103485136059348881272031639215720365194377106207661067246170327162368407873283780680932430269666807487298789212930404520803949497664982730510082062953779470764753118077331052322559439932197111694782676459966745146434971387836407216198428647431598300943576489700907008092718666297855853564573009817101331825985376203619129119328379451145209247276337680938693332356584724145119459589875893268862696126169936554647863207815907276682099325172143099065635320783702679450170997562001780426797459228519506956812248607559544345026599325699786603473619162450127649284515602389837334026931646129730912795264013455702095432089740162645264536647715403062187081474574740155468587305480263601867878929065871221579873182215044582787640432787630964106695255459101629322552798181770957806048601556939769797185438215932163354738640367914428110618871809703464486878872721423778443033613108050579128760835865018030626677220657930664128797072870218322988596284299900580212233570204315749151471429087750648428926578192651320247803308974896585723352008679245908886912836951122244236581590716418304735854482037080963231400086549517937349417582203856084183677667073249320662706704929186360813347203861130368934133575297167700331724837357254077620775971724792381822050185661725028867156456214475339851147758329366361485996483341186516833607214983027326451007619960489582914519354355754748902966910738408725057003113618020160819671999297389771341994153808068967126037279875993407407673241651245331529525535203335014333795272131452920394619675086674092474059406420063803829915545702171080071802018764347361347731482574006295838586364429426587350780126194684455537314769084149739000576969641030756607448972096501753440584350962778278050051141592652325444301656052237890901614362102170916117608397544797686642523713223081016147735901734748095479750500042759489448804719863437720733355180964534660834261017114098579803096055795064856215639944812252753041989090332119650585223999247456557419368852481503552036093739190215931536976816717260142955710841194814358825569103016919849146437173293479816368701638302841233881312300267618713948747976273341515819743007337970539893464587046525204640551164517212463904277702357313439337408820603890880183745142130690566574633014293107106797898197864657210323820891565862332974155805873951988464165419890197564697721782948479693067080687924543532418096583432945448656346302455273152048512589128624934674467862440844552049058511799294377219061240358564078662199709148390734926713890071384277188296014331695177212198367745626685510114108429671586011451142307290536745031242463112791690361941921807557226292069346382369683132580147843031371284488272709255254133159348861047907221789498003227716207624485674515563133400318127391777668571650179321044382762329510677821709123603713670883934377277578727328453042544320872990543443165516749888136229814566687846441500577990298926408071426010273668724986523283498973489008275048249411537148844880649536399557881927254683780759825235464338544557126187208025674668731256264027622338215772061204038483368823597385765022856578095624497643993345859255930188006008154478285406612879161825236779401313444052996166505156008537100324683875100879966854624478104416538074724125203486163245264353825493013054330797461475218736770382663449461375667928298761708776887968672539687084980264888191447284895402023501885568167564217255380455515028250298782317110101783748661543717847586574490777801781989391039508915438832920143486461751823581603854544931812815514904129451965108215735356538547788754780173934150369981432684538474326111468974492368414925467273977357028350711198302314122254723378159551259804919509580552830687752089514464044271059547575593789466983547105795036254023018100562961647863858932830281514724561625202706399966172905400272688506995526655468872278603781659565949031925397938571080938402448776465450282558614143879346416798733080557313628890552877431773625185919580336811377988196352465036029260332447609578168822556211711602242474150435692992405243698470197679362780960368710241447455705049697229269696873167727941086939303432127168106375935909583840891973895697065911712344419979509903019815524351639202318205010650999131128974806713642008971440516238546524559612477376203712634273952156840899374784939241615926572616721829689401899058225281753429129710555315169775991881560295270019052807661578577223021054935647321331840778551576342916643460401947341951381643717589258194599056856883595686381718473133172111655309420390474649804653283462584286583619772777046728684775727491776231758580958331396105098435772956377122695603671305402297678936725476809897250892795873926203001587766031669910767863384032787111965273540261015411391954712267959503651556885437229244273555520817483764853048711756710157229040593729895720783274868071802081074887605603821648118284275261869365974156522525324608471943117013379482449942297529279284284235721799195426668415658107918691145581032318803554274836075244278353527869159461398255448824237529440365216531661590133080984726895193073144865135267360149963688791075552055337553230026057458332524228821918251664685730897983293426125578467098865122541646626643438753493564014743901014681238570989902658837367025305403234715416301727290481950500150384963596006128048063893208407542295611731750068761610446332829267424883431838814907487796661479498602871114469417079091946466017799261854180872913562282495139069479523349903133485790803853842024166968521008476665028342029662916196060023359135142689504899088997556337867960364006682043529862261696855855414715763914140500941710052072801371580008665816380993060992179905850284887352802358927795855902401463306440214494285021433490363422946509442853264525886224541988724183591376504893987896474356145845223850230340096314263864022078723536450640459712698188886251438991137874868073322235964051369430232095700459050666113447796525723037051696081322376836468525542461270085307170008069691932814687956246698928334016369746295200149125640269423376963514512458610996941184949109535304517831021500618657133837641470126093034294813071350273418386218412925058383213438304876450203792224684130341833098800986154084354024348116035664042215292766895599359223081954016713455612661354022422064069809297255176487069362077700753274648647473685936504725705730640022103537734277717355853427859682844654851432496752542119938893244654298035768228335736088488631050847579766640664021281174894819231014085290830915059872208275768233798566856464107737660333114501020087530680893294249508859465089737948792822350138174297821910410905534186800580096400872285145744699571598922124787033717881525304943299376541864711575261316930981011666657776701102145760829077045339791150849729566675285705945988483570311172523743589060582737524166116040107926261166485547388263571693991786493904287180244053185910525414089696734603956904411407330569554440833817238749546168644918624602027902672400585568984750752031415729699211701994652080035399170091285420551110244770457522385846164995337933387185040839247793059515099113256193333644710603233870507448211359220076291621303892008625765830549750969459363858969947107364655944356828492754152311269048652277701761163606218810372606159179675235795359338543719094981859449983187218922438865112008567782599113764762370772302545342064400428521087548216513768509747011013822529666155846172021654727342659216864775273882241268531428128258497382764306600017193905999318722046479760734788584362973921402007521784032201521602738452942840211904226436945440093048407287087876394629399607999571789552762216304518201652842109291001982929861604068395310127828970909782040965144816619245920836827133514928193496336770396280821166936065016092977175041437021036219745860221815770208295774726385814190704090011876602896536911740636687458210178937145702893375604913822806347582432357050738453123184113420946047239873694584534032808618590088492791635313653740159411007541704642752583595627725244220957585730556755071074446988095098857654565916027350523592938102810832127034687548771664897290995783606558666186267492996169175308068426748237768521649548671208416044234595249760564899112686666100115164379313870095013566883760037828028298695331828809403008672812143111030882786724118974553717318018585567897528558143850285059015589168637257147730688462204600753934538996636746951515058196420209055615075856920194510262949720455424047401988313752525123812449686440555971907468666509259281023702610002969553342178892842087484395270997415747936160565707411930849529350814846243298949965088379420492430285511595104763590819463530617539574720864607735251136446048250991831656881570578577678540361595826877232949305294079156698133228989595955153877171464810940731729935189649441620051499274574837721143600502939966578967848723826034499755641934645584424844483047033541530209459985808265805504586429057411309813923862732752929180533741650376834211017717510140519285421414067718614266089624250279613192538280740450930732834951542801472584553631903288477245790021450935802371696704078278496796980545066904110305815935018121217277617259915987040083788006736144756219345913146730961955802812559038437456567554786982344339974051190252166014917815066269713348287491077575535279007576078384771515800598724544686242434490895413955045130593087495801667904604785517733771703048084126206424275631523267566560953291073723683299456652170293429743101797565344046591480309123810248282709166521938000743566662392303019064994041333053163182053963600280757233477430278656346376827156823852635134474439014169360632787279745377281314201380404873947936162754306866696359569322957493494568055096240820505895788552567280859280757505505897011123227685456401033682589631282652975957572081173084638987035979701329552748028938288845837532581697254373556565269321426999941121503774821088643711761578846093198316244552338676769402884050664847823400857753017411010677546210433331820150303927919992911502170805376786258040497143616274286043017672500633302345664632705078573045521193551670897916465954199761181411976417001526499642602527748902893296784044655520267844170406150984799578025912123430125727809984526776325515301036052969305783313831972453695680289772910188001440307386894828816087730239579131512485722269633230186855584543655394788664437677750063619310252067998529120280927926652040366217636814650679646461687692675794872889276737300116669095687162120897243397476293396100349687900281804998315886135777703156006101648659268636802036507610369854976099568329648181205609363726869723583337180057783370987681183179021318817498519773963181771129278490215856815994041374217553793811254557567885009001795041897251305635870512515680802750281170739116093006144164638297497112671897951127888254223633414546087097356928919894815010769674226674317102855188041696767787617567523073425932996209218452293454937566143256061340681677086924781412213226135783339368547004149996731164350468060826349831082275498365269037637871514789018469131652984373041395755036032820418573844512954389919279785939033375107944959325040088821854640089603778673894388133634702557889332208966133910465059343612442639658377099405289683401336729310233942059043778808252243500086788385257353767334956380199327453956096763883175524541378566456064264732141833086562325700103144952613918941599079248186773692296689102847954677630894611165038079283841141986018887867368198789523317488783791551981733165588301357401127313212535737164430166661062379103562010971307544336497858545918159391518223446901703713534311885333531460871207722769070513600376945685211050535828511757581097761462907115421154665631567830322546197834846147837173734853912762327190300158923976789382340550093637108933944603995540009862562895823254115439980511116227509159297620937389414894128390312858115368233334166578250534987359735688414081822511715608167309674846828609122621547490658809464638083163706336138091683025420956380311060552555668282318832955266546946686669386001362957766335361599869401304171400069460058220738431558292638271427639178515554931771708129975447748471417465995315866160543952310550688401679077635141116723680411043426703626208680181215696884181281700940098310489292308300505290318478592244953549076100217773982958689485784030989067837260153739115384221243841286869214746975586482960605963888815477510396292827787548151778758286334919739674730706112533814823246880685559479080777928157398498940829567912416383049865433809566911976774928982190075289851089009102865060589448228256944945636923991113781142171734662261045439447276492521049579116034493298074915761766693184537513916820938368423175211315606258058448732769950725430738789286465672656723523979024273969515653888526708809309835316207751799263511101719149581222256071977008400838376946781670164671131354364819079232115179835130054285666874249025300498548966007415256943037806185802234096061252953362160632016197250423723375730678245468528704751365386327715700333107760987272660899132172232909832552350209917717268973477225145864279965731036477620300464573761833533095381128845428758230818811418525454216377401100034591922917810207312992589205704410710246408254695959023688046275409910427348211767137551318095961523510472317201645229103755301809058799394467633728326502668000354500069489899840989510480594906319539257184256750631611173719530646970697242050950086747704873842507601407314266320531528577947383177836751705826675253406847190116880644746485593056939176607188351028334577868390817723153085055174436426194464504899462023897786071409040015523782414237721123335652324273148598648823562933632123143221503046568230863111299090541687695381364812619087043169309433493192172834644695876640228405179458159795989063700261961791831714643462892909531996263232343913668517905303162221533157452301269874770177009933819703049652737615597523209264365368557116835547148232678856632754085303509629698366923627390987938329258271327626939629517986768517379157601332558282484091910894919498580379560355169989541628436882033594860984524578187952002310990661693978570006838413757248609412947125677090796392779123197240301168221243873357091448852084085907649512616186729482257426736700878841745571480266740449861849494659897820544314430285364756292067610974354303463425626859479396369735154354270143368499624654754071293028765649963506261947893389261313307789983857495021966085315468076967400119165487202697187228776123379701250252038843215955608162428504123127455126251513740503396400720225160738613894115179476877906887053809149770734070856549217832167946638590743936660905273851843204917209242897171888062850350393835524097216841883796522851974871566560385186311093802768418063804346326407692988231043992613153944516600064974726187106689886718118364687608295280426340368878950352664251044110220903578483330409953857180793935572539097560394407920121032692758600243688523893261413474027936573795174574755853194751655002068763815078284661017804629700480640282100937593964181745635231221398014468826033472335890519462230162239024849181277437626066434916807154636151272833370145574466303363699904193057053463943194270056610170717907044146960712927117275382238251080356012078271075836083409397879988118522630510622267106972526505289804787057881783376175058654083749731445031629750806131715011266959870939427205876870218716862487043629790231701753531893117329734231108142207796570267320334448615887093988555251017100964285208982468063184409083739095712344361646406155487510307106797462563544561568093714480847441708290915638350977532521924732093862227765605606022575951425165113306806845297408252007312701770348617307014632475032924583445454245002653340052037168945855369373768812982299207080375033580893196448535157713932555350659211290146461301490366708153586270189729084126730850095858502932080585622133963335656603724958236888181230553452315448078009988850070725956448123391949061831833980449651687944326389664410444474232724110148893127794630035639141980681303825491214796232061141748350637159681100776616064545837145661708069568222311203240540759152809895236243735810158617612971101943373128660087327172082671649274405978038463661710936566698276841085831773099083852999511063451102762651638885233227950338752564197807406324421654789102288492886974975589366731516482063265381432719644583300184920314259369953977614849212469704792258815896536808688918393124975805587509989644774370150493817188286069732501404755128848787558294210974759833841993399476396126907853691172520187778348057548218938973013838025407027106586775149441159474129472509588405947314907686347209248462424612249806873863824145123605376118855676562201880964330571921014799054067536453002441198585965499602681462552771222409091843274838764080764892039650212779402627568676739825451494513721531314855504235642782758166716502159572338143825328672289214434933065060237696011997332540470075623363282061077014752903927781494806590551391867638075095478218272680531222080158984979148905546186149369202413299293181215865329772223873444735704411201337327674551163243041131368351398278306182470701064403877041745178414184739214126191321222006036016807251275309383242625639552408226132913576682485996638897754061840169709153775210998905250524879430387384414639774789623583057305161996333349680751379694173055299102795098839699037919943265557786501340234579594403588056865711942114188323808443698404480273250929143715551466321740220257437685574771681285560300869647162756992998139692451687373695584621707526296634499814406021842314513529873836183791309411960492261963630436926144602990889093389312965905995532030872637563467567388372156422395609042004243051486835886157864261188462912527550053560043901764713068663791292250694155460209055532549183645462228994980896949786965838003421525983009328731835879257379713032933232556155549624451227433090568063929525924484033592424451323011452828234667365285799226850950845300589388652174992411175506212262339588685302286798229530232658430415370070665631077234499154586636399300233641756075345119771198886958967744627210028468563457753076410670212561923324607572844928694756122500668166669827023084824652623721038476566214839459305909012957362530664966168138636414503681577523693989898984065463875233690194247884887384533875892465669798347924745101699455680127019087230028888496872092538755214485784793064043518017968887558866789664293698087656565612147893888302865643894336399587132555135560469214848691156553374947644369291346913509597734110015290654102183782402633264111174084692985948159519269886369778372004756411518531976295736689237317991034673230808938138322872909830088005600883018974062592579095101925459694884062760491549742565908901597853446440482864728776433234032823426017527957629206925497449852656604926951359629685452544829798579421466021078710255495261305184533905391897033935089166186367606717285554851831511438294419693065814846714551995181705396830033072755933943889609195465095326007881431133572546811851225631536676840387332294104386312280249886548551022080342142438295056943384497677348187464865730598343092531206293849243823161348883262963699348946519533497407992574813782344983478746257972677060878359277772852548835181485920943118417440915892786473904275861394313595054563296329225797047176418376982177895993031257318372168447540499182516530094020562244483914325701394516722608440379019685901832685595121203847456098837842094703419675298524541640519702448868242195031395917284470366096280831649905482860716312590764655607066144619084005510605007402212039291947992390223905248001446796423581107217104402490871961253844465968163185403230321388642706601516876801034006349434157445168950075977395969192717670332830850338863707309106285755547942012222151780093229364763001793863721758145605793548830708324756674085052101551383343104426547839287375476062921776209904188444892468899380394623170786775925353602532521702105526511357805627472917399961977497676371546964410742078073412446742860605793343140988825182173045483213194476621559654660073025975436531165141074861759000622632123132325995680411759712542567720794942833826836729430063659092819946301180415459763757089240035904570959669920665506077412242872003907597659102191489163502428689219961886604675235369137884268740308012525136185429155527291088939786212565551681791706293332015998553768581651005820521128292277245220698018964423147760156359539077790034682544103333938968492360550220277590089399967919976148499679879429547925767033310927797016707344844208897069103891763066251623516096246253846792426137896363700922945953824792185897680945685849381414297336314835777723740814363418813527824866219643719467858648646460466119144444491073560810055848173157783711884484689001620261095438170785018222804409643179931282764353303528530117730294500874442093087575529741925200647177507301660431867791481700658399222756922204722053206350879981737897364372176076203302449072978002581598410067641660164209968896716097923709525386871462392268839607862851582676685567892417516164910407637664745081091005726605848834484839406137438211050709575685425018597064590332415349188914402961356680525463320944841226533877697599623828754948631212110085438630929505555684521112827232264533341399364008776281882327222876000383614005657002611859898646765090202631706976422053044213015159481160674576154940334866681233946087207835777826723076647218656532352416460228678391607717877986356647270528648081280911628276696303431438085001416619254636338897233353174166642296104052032319369099328510393092542572989274124771559944262670429888523748061249352772698299913596441465879533954356530093048199652185404681217834372062222664898016228325207833262513822486785684482977992115570771334649881154727273143115263412578680877127155705088328189437825366728588660948971658432954007671735787827281338891045592931647553059619272425825579893989282365889782589798330929332636314841808469015551946875975331898545629187915513803620524485355110809647059880482464993453630712011056146505802379810783188280713766139406616572557700876359218611650704428861743773609564579801996088179958029813830671881591009644677840976157685542612752519021097520193333902816422714985872484822141369978093233096517704431135781635420224722381736491588914318579584947685323027198227654575073082695837619239053858988046658195422597242295332708549484330780245983387999925081114924800887744968472989401342522857376715137954759849000415555457303833936853896127811388341584888860149641302184076566137722843690135375233302609653672472812345104908740074921374094150799974927196390414929203763742004465582181993478174152361785675335668016322210238530303886909557783981072765256703627743433898850048985528647006887121726101035483693654301918423784827098029720347614692524795545502976893544841043587729382822326657040620738695279454071724135320725293972460467415246552295985342297962588755389821083566980692165059642203284054181712401587940842104681305714944629129606992432338998955232870591185295690816777133797930660434108135223791840877853329347160160117351225977280612428459712230526886259454412542625937580644835305293189486534953808663352816228998652121209766468140101607434235609161239753834056059668771222614426540509294008706718482576729612602990862598291674238589618346772996019095975888297668809572194796730100672302269771123957555565396002565660574864413919401076374902306730870720693521228852852708155845897221444418145208073375587444963610968494806243108540503887459357163238018550920824836506205502695237520229010271344605035756310891463740437836713673867680566784246579677315176125902300833332420065765362733859979208151431352198735341090134769515980963484500047378481648197025983583939123207757935801369971065611397318560903827576997762388181962191247365686950036915568847794729006817153598960460937471367962856471977575711097158514950282353201893489241714138833829423730806094366919159159420159330525184611718728936464935024784617303092353654397981494092377679189275769931184926880669722185554350147208991173216328332751556057734690012808225082283125334015645812049750967599068381034379499171813923299742926680372464011872805494308150170858926883919073710864683776382634414378788645250566951887189769256370317183130542327977150762945367390348139701398592096019248694760003878252784523686561875531840191162525241466563016195145098158186086980813535748697932768873865042440253433795692135720772418111367787526441158129568361421249117473366284742584049523813203541351431293950704343963378373626369554787051737553277692808881019756017341928545120368756308925339090037043776329516805705326645589140925007397103096989223797267993413211986083290594731899191121768971506280857451765315272510207814112853901841099688534135214295612784368305573692407011361874389906347435656604049304776199261973547447732270025144919393433194656439574864426392928880477962135846094283983879947531739356215829388931877346976527140603544290079092805452406393923486217802311267561283972648574144246214216205021515765578889560950566622203634478823664725378694093730815215182509950418101301592134950737698157123268250762672853952106271064769322190108045148144252725041125600197171093125599190856214535710861206284610795548998570631176557551008462310632586677509576747318657570406294791618357943648815026472443462375699503326076533213364970224181854983258377037672823084681898695898169545367335686150099172323491371151423845185338012480502335492166148254965211705679316052983541401407585904592295618408583385898257442584669339766490899781474980802065189400103364804988966753279828765807614797284905483163142272646405395630934259613975779710795155661812981824439349699729389389438323185126983284114991572223574301232428627583447884125526618494438942875798916868325073258937802488112815524574599419082218491706115794086934910284319146935995253355694438366023274690155403511756330361341042824312764316963120659654627635564617156058932688711712588225414110085225132388794782283484157817450489930197054065038578526610568542461252754808933904447697941843033758320946185569498322972075892855036799624655361189579263746503512213165069381002857925840571402173061015826149744431080767835361302124593778095117456229763913265877933696995069278464073549905813287035484694328115880273677866279244639191740688389882392290040279282131899419567173520589960963608261532232681033074906420919676534942586474540592344800521020959793935598833500536251496720877694321654292916863231337807432844935487800523392105606857881193089212850636932923073877070683690410541108901306350985194775036057407012020919898206309754404518243901796226141788271787821380190229425216191298649031935185607584300093016019273767762600907261584384097381879852177380808978410541288893148045230134529635981786171113676310899320794936301642599111516638402700161539953270382815999299017882681721007803428156809552559300435918453855122508033187641889147420134149060324968162565479190696093197510054059004194599160507019268922903360207504887399652069573217234007944341287230495455204720360777313076953887432652828403788189349495426345829212073321173087087732491011082820011185200811477480145517944182574181138234149915860098923036822726901541060753305853426332036409481204321801650186189395586545352703810665239381465309678171673720525859431170900142360408493019620882718974459447729161093356961882209727359469919686390214011040634029457550547054345850357619639970546789849867949607017495286892917492495093767263556087231126774528187571095201963458465662109543725242313088200089991799325592329093960246420265682808437544000927273759239284997566075055332080293952065310860827425055808372921741375929443372096274310420630524659653873984357481821379415985044037048457550143568951639107291368671777814096669739445732192322541381023650621525136956930165588340409218554999250756410693179873898333478088832695368399788798424663902641597404679724394435908543056065075749401707899699502152194177969396711048067080744253222565385383824997972971557063098385346580275169331227353682195472684915338467986085654214582602473118865124064527046449984273310634562253825861158502120764087318368538307564844297603531614901568648434671234225300192309153202899279679783108656425729217845615711018587032804908422611013595632442159026262259913357678513035717634716393420205841376912321439301474403650913620261643317343875827283535336164374599740136590224169898610269293930870143130662150929813480249284739956422765437670073674366215080602598844390906949635870516371939435785392556571864173236265934945352390833325691729718947121249206862613859620288900068259925735624489206762565114899683864927448576574622255805914121702250931190849972804528283042689940854538230568627214527525337420022622859572985646913579894389181235077034579103893737524989435156333877295570411431853030875188904866504417468472692298153870818685952454510234435675502480165378377328074120636458806338812613242101413057063058926703323488547006680997921337539915699030591285058981446938972635986281299002155750147783181969089058860050739154687367825848827153088379175073471768154847954799099375883465985070408062832473657465547449915247575962580825628994350392217837950643441913345338323785367987842718810014607441880602727377473366826639515659690655237732529040034038845819167810074857299304563827341685167216540676781976118174417890144679822461032198501625467728830350644606011741014762769058945784770341241629120889010733258073024728724873842213126184229068605611453918424281653845426029662566203028942771938077538348306260023557951577533155918780278064462562733877794599034995584952422380112681903567348130057021139579481985719007532559444802317621465582012908972356494778119771268480323772001727304911440907772767501250598727441759354956419551669748152722423818876108861582033922583766693038552317937883569174569638724612465468340381039873418414817538166560967501633704969415614792762713126173217929716870787582302387234866922787312585345946868276723181154895010658831784175808331369733351038390870962617259470743704743256403194041697111896159037197278057336007431406298419539400363393292744185459380291922720355011599813225286512226318979169840802770605144295370496280659785541639528425734848389478701435307541390808751400864181654367323974479525280097741373652266111821979195713659978422877303173949957709199180058919238708068561243674009098832947605632693902035178883284663043860679952799345834787522364918906117358180299892040500727627625686740647324030804329464922596168883966208541344517905041330726065402351855068822788566179430465476763263933533814173726414022453325542338924231709952162337715534305984220901075424190631316777380638239756783764106708137660123620141309573015552652843346599555986194602134100467542901340380158742378387615115815093969019893049613606763728809102871224923049248109878089641864632908935449592378843438009936368409560598483791555952834827006009508853045402753835564518444004371364443888106693439985383630320465151055317405453619086219549766431311035496879779022504064853249606662885249185587207754161975312777772514665337985397377607546044561280653015713198112643048302710476817169377177558915071823564675259983352076892065222618517883002525188123600740848487392756870126704840033144323111799528938189489406284371020385530231233779065560301740009497177082718294071197641982626881670427368132348852335027120981590594549385596483326592263782085301394114580625625696841808621811653835020093097179887290370785819068028940518975811734507585185732312818933521867014629495602223355335570834870989910748947934925280917793096835655559116952352694538934112996119027091350098221294380786978843874980558845821733751487031117633407688553904575515865468009871327085871489572047536354841541747679324711419150955758850193581427839767844875107496028075412259451616599205734261722913987774866366219152783706083750879492782504460241963936175102968467634808958690410294688042532138053806740026000906660983884884558768856207523009889298682060874031347246984977926096527479889011428408016619042920692434863515648848679462056490136101272376283716016908063977914593663108546539012074516936756773684363177397028277021102345166541309202928969253340080807420521412538461726526571288402996729425295065073070559406470794173869888390847233881030817988044859634089643499766600387182336365439326338701959526915707460139418191507636879839015170012830160407666838627893137249533767761072165709594515790119879883560782306884086348389069005982277564445122492437770484219893960555874889130266069949052591604646490574147261513279605524038144707345567374004612898487029042533514257389219320741463746691776700544588745443969190412109821848411616148227334720235195357146061607852693080424048798270883272337368527469166803545880782951998655141483508960774088521976437290619102021491571058080652960978857557497890699379768030509383884171874722795598033311564294625040673657015868095467256214185523811735380185451792888101347372867493492246742979161915535115161080942567460563799995066403668278080831584873910047353610986395075449158226406904827267409814747235902409136673216395351374295279091185761542829635133880290048808790977507136312522870072899035953036771166665742256727318987910017147405780400329337788648941022711925286207512962915117945273044186398288454688547644748402492552019946549585503762428851616483820539020581593693239027073646878748934667153279780538189429448428515817153928843808738921843372564016122426432864304649946224577522513793185024879744995600394379633166151632646607853612626895364344148909432045432563281462830493246925516427200746899142900140023538895625179159984751150537042586481584957799746906453967260470697565345415759180506667684894495214656658593778579525741418734374568604560973223457175717141683456107308165733932121364893786352957041440858928769627062016958251869799722250632361934858571997984806935018279625706222970687914448218904989834478930524813500987460081475248207471790332573230956832202560728366998832865373308731524669477824397763795462563822696275043865538487182638412619878087834545971314213395362425543010173387652446672330932459299783638115929804681806348172282751805750445687370261860540438781747969506331221374393063367508610857813611635674397087947833726337121202284494024835809360280030861807364946487494767876854874750825152677403518020909117083347308152892932145247712665461898003861120959309333299688921819459285110213781034779029335158376874286141748945903210632163483226489390358499014714972809443552829776875633522964561005688945982140719586522915884949359757229326520048764254002770843551674576440645395048095925433960316509164077478850955816407737424867591983134882333176174131183129429630476445317323540209511487039872922727851758818843974303450716771652249800871583169759407354713532521485497206816148692641532003812439751812222848418116254059455118307765032188309483997610601749098011026309907087555802169228288335379908510487677039666273432451433607741222168592605595236551933474791894087259923309456192187213814963121484497458399610130644181923230382947479928370627240179808433263351519546448118202174917365317016831530668492235556818229917187947786928452967844787705802287901567559702686810056333168074604790171567146856133269987131990536767780770353576845824880923878666743973346321625886701641231471905717295370686352419745007859423212278998970401365131552521849494705546075454196631862847979824565140918439956826511225383915840940370911287103780986159793300054562075054728229419447093829769421197164635644701450432169083007599948905299612823014001864887248022880088377708217958264744230573421874474901418912894094021445805461693354396932107746629058440121597850536230905842355093548618265529063057407154485067426319866117755785731339142195085047894956209633400742983809039656710638057349266463354707942923753735743814843315437486791463486154343866032183059936820469969140156270968223971249391477955391433317290720621012339940923153178445568927107763065669637255810183214061050415162677476461610140847811694189910991331902690273109409908813313815165770728943805772709164560881650830081087955243952014736846337579289487704680973757934421530972702238408153339631640541726835740577842680683114422837589588804096024451365131023586706485332756176970248617116326544843575233352876023391131715663345306879578589057528693494980391289003426130069697501146330280022491368799421244655879030041977841275863648163988337330368664461910470064558091241285151495101869450546484196439004825787067338955443260308060962558397577535394088912289549245365306198822717797412760660136870475544191814321091069129997460427158735325944140855381255983004079230240455013955481884736118700315597581743597647632908182582555678230198653121624431945384567121934711290965360126496139065400000433614677776374505301551518836497057481277418698212200538390089807482476908962342901892726752106666474425868676606892829651259170825628102804448492766342734367549526778828952718499152231309672920422403617954663679646277168342924794765651018459641375375356620725148874291687945207059646881182543401426759716204492221637805696410424747764301114086444558536748943833406726369088292206678962623923115300602841702784071312452650628325244934097126554353978322916401233312670846358744899024297262426446571599876332552800600887501084694364067765864842602763081888086158981004959739425586606827579516420110824778348060460798098593707532193203075979364330379512560374243024510246867567073135867909445737488833520087549496679522329025247164977718504486476700984374137635892884919409902684869819485802195280920310291140369596524481210678358920341396855686617421332962509050661057517282958990942304329175218258593332126871411470349815515534226000415578919882752764099603544194238901353420936053112895575044068393324449850035197509097634071381953349544054177417556296648401585887497206192727547786869889275325615016376633424062968267622679930509758235573861758198462619099506426884030213155147160458263737069298841407355689504779428960829063009902204057513822243432321972596028646872072396387518381441274716080116880642862587074514373330195301079293147373324828494495106743481035471920475113680996559007417800669709283500325781094299862575358767470369547372755723534289433027438229311800490595519170968196280945755463737970888992043627115860836100304048552984684816382446533326135155415091901198700469030702487848523387036092761232671781233284174042440680423057689246750171000996387669387402258693979293122982401953119691508467719794016197443637586248223878933081820391846312892073636855106050289197909120550528485622495602012094647231449146508685343463742603084639392674068514641173372000323181484703152322636374091936892369709509474500890898424574786593843251835167960405327361444818326260210840990325877270778097674483467532476501184004601364840857130047494999383206065010713094982405037602937028055853300937258176933289392486610725341615592149702549604997446311955177860865229720194698954015830938600484391795018488046452435719188537701194541909144619229550854278288117144454060973797292946843639886836184936308865897630528272425758009583138030341047462225420190998075278981833886740688481433283726592450073848476390337837157135529234928459413266689663607893829968060513486792789731931838358349915167803864014998066941911073321131784215631200103608931535950958631748402861965393227882738543870120371413374925042634131772996100129718411329867103805086395941501443917066570026497379191631303906020668380542950854169681023507998944215653092803490009454637955260790043106354885511014308764567496333038038539055890764287778446646029017019329843999536462685134080677566416244143869418258809859720508684617594053261915523946490883009513888500672068396982825535678098061848564002131394951856488509660138329462247122400833166535360836098250513666205293992037760510646803077469073253781804160269753968703833641857495414380276964460894065767606037860276760032192737685888349166164684532442741569101971796082968413705781051382956367341030522896318225017578965538062136726024918775467192253833894990664433982527490998072107213148204977400501141002677532762402196845161991575927597878833594364762424880953162956682921646808648030702618817249745772670670414498616430043747500703246193308301411601067951950398099949158607654052607937844681164016747909202802337632162120588160586762139559563281387040227384134946022375275634981615302857596238939317005242365227448900062244648475394391026078142648918594195918269474141885815540492304147441710636967063188192373051233423346566160810218366329478360958159504825408420092200375591810416772813682011153693324932198344167427711162913713986081403138949258460649937571089710099138792720156927857689889386915325540292706867003513990220615291449846551180042790459353990522756412300306850978926854538739297759070138828182226297016090997859127111693774190729956685662674147876644885064660788766653661077193331261582701561861891916951725788726032334490856440658728699697434949406141038728664142759293914097434928237666782636689254523501490728130621582922167711835663075065258478736495489119289761478632261973693824443215185491385413022935940486370072255246837709887424607341117979858531876090454670410241183227213778756165301089089847576784849780989460893781486080253012802964201880030600412697080901538673142137120822690352232916573103182245676224736270537954501583049615475603793121748933949261142872526657869970224862980829377278578927463760450413735242822962933961385799824863623074941747130881057364837634241837945235886373419189314691775263840759539786438819038759815145391084266704140911326592102939359414969431542498451402738630790352524080493111135973043263765253458459122411621656706788890060008505272250049342032191127218093819043099250269810460522315377933112052832282991380515322583854609500446333628715643454662028147898351736795826593367708004191269430665190298762438240887390993369536210662919917246021428990448256703904634988938808522611130713408387399799444707596225799036216690118131931955199905363484029777036547681712504422876606052997104074502404164709272035649723470490132378876935286264374167882197085249420633068546479177426928417750125318840535267580990854786202320994482048230625611024161947692055528213631835346621906692148287893702947760063546913035191671830810262472800625929556908928825312407975992152886754333283218332350763583251531957684274071952275360328155646349947348019740388099699555183554030072396090365619219471767596693683590906127498013850954747258080864394243302684266573225233418087353699614481001205631847446627868985392929686817170344322220571468303856082964638251547933871062844629699109036533007744052735878568231965985469996455587510826603424126369292071364175643950332956534896355573129756090551408016423934722393097232647228263776239600597391225994437150972992434003183653476216839284512553106090473843174999310429466978149269971389667626636442675278329245597029483970761306455749279337072796157710124505558455825990925535928961554821859314581642225482793117935463508741465626291587484463473206190154887500781444432022107187329051383936783812730601724115426880622009150117733867086260328580064186911180357425895733239300543580954140953203168673361422488763315109372294885501917179523952517645338804479758666037786424755604406466055470267783351686624790277834904727872201358479367673545169585477947374163478694657792467641096930845542061210639573406898298807456126268135315469515523681995623745553011498454507532040372906252421404299207560636314073191243211736468403305092414407141424159937458763150357609019738949157567110901564936010549068926550698215635719386860616265211888227151447658885139682435928237945738321431497599700263521273280191285435726361067870448793136019120374166153223080415586980670766431313340095856973291525528993618908311983359885801703846787556533316137055547753938899524518028050038575268122558922091056664670742541702851856341711057949985803522108855689581325887263088194883782487881896017255943357370291564390096554199067587892628750684741797722340896496554180436326749375246773237869425903474689015884677531282812567160002250440467768115965646867501438895623895175941193511407569117941974236343785551537536028975659545384346083561848662207718617611556989477623683558254181382363519778590359307004147504762812076467964516769948349525875387263831720700168317814067753018710595662471967880642926089718447325621364992368960150235171207803094602853573973699825278811594903826970895944378442691738011377995460361561180601770871330340566523348151531159309419410927210019822509797995625665101853901422940058716830663716735174166504782463102707344398417337494517520235577267153434113906029472834455558666841641432113593092276094451879428508541338560779873396012705621079655411628698269235145551821633116435537564451884867515448457968844710141731823493285657833198512590267081223961743745796213930148833011541585060823560369179562682248562675833602506622570578039533468869718153074856432429433615040171903245695206135226150700113555977243953196208268253457675269221590702608891728871128385219209666203534874435929409044954257453487150732035456567170609979509148438740326547627570255325636704004548988312230359837843139023802527517533588047372307783460458770898043963406267251635073816571576493255424780983627742196813789372100956394797436084077002631871418772579498855151011049469432041849966348820237569817173314165555350629437604181945751672672334990098045033170864591005738688380001037321228188853438633709572675564858778230580159812616729410493596469920126584675969597646381357006612362849377158439683172829771573831349665978982998358744713183476626627316163799500482697763790366885497458885352246137321269065862781942910903174643967950398020822986796744824042509727449435774995507006262375415240108979159460819820791401933375696535851092873252957835041955664561895293139417578432153482756215359114508077681423840288026992414198389059537854964289761340030281408528554364772117877073899445411385372753384852075363462522312305828943261246136385132050697698333364227684136279782533112930620106798465786398198783373822106902133939251146274910879526352357322767339827670104848996884796718457778281754904361315049459549061443591859023744663983562478635305597776348339834493609470772475584056719043236836291510134436437982946404904632862432304373008357274703155317441177664253061829340929095110340373148854353302343518670833127830617200337214271602929151836566077816421951366322424889852838875879931905193153895540644584513637418399466182354309396972894553355845722288691190813462430953598188699239479116096458028364973625244508404545673513288297131291941110005141170858812359204892896606877290354530641873100963286616725540818187752732696275248823214152738533759614460772448680083168993925167712342701451301535167980882421725654492227354279373391914589095796135020501724584763119896516065027057692947344948085930535872618751279157590626313767885624881875997539893322909784528612993588328564036636801684842231987569674023869436778119043246117556573336313285659686546108056656457055135413111399744682892742223475808937473267645932016084153246236369379783199149037858256987461668566703889124112884377485726129661301347255562005437050971411724663580644223494839347213438569909625079234294228380103696499295974379701610021003853398393765281853779402138533079235398271539017466151726526597865950580903401529434842993023162536681627701738856586636743426010566296186581767491819419034795128511751044359752263665119639406873077040151573487235042177197464735097842500752122613680322435195076875335440270414432893931541673437006132466284871701177226217748979811124526076941767369246815439003883172948311544075550555189409241654047857740233814942809786965077492256811949667706762716711354437797085142944326199176467753360097438868013747560513482590765319236479299147332298068037929297717796889318233978893575520861434747013104546360737444455448802739383132921012331225272454796169973555857479996298736604003836457807898727710202668480733044469650816126525357879356703511713424818629566585924854735366896608014902279027907995056366074126121938521921068696923594753897066959272744567747793779872449082934478141078307558788253199354012148215474154816640738966719956523070707015289759182712088249325323826591570002134643472103586126472793931606532667802633457786608417097785715321805810892515967251823733948936479257003954803094381665656372759519136564077470443271021741829291062066079573391089351084119105639060492956032758952031753837186846106138709732078173736171198996327500992044319989495170760825603476730674525049741479674714950988533484053963337382824414747113379503659188690409056808624405701253611533551822675214432547136605144969068384681422833668814501963753828550523868483064696126911855233117371572167996246795637297399583513647561431837886496864531048944616389910643215606153232617777859527317471041817666779488035565440111994319950492519744961523589565996972370043080272580445674747836212669210159440697068834903607352659430539559455703064791994964778249143612583516380692937249768232839296968378532591337604378572733208086608959715867913600966626603687698437928022306644292868084622936442570386812588814761802923986500326037226091408402829625140847850374308696989391205405013352855171558649195833737179815835214940592404573527282724706096212009241580373723247689755959867279680085255094068723130167155491040868882131387405540154434044468686900420794215550277883834217731680367446009776091127004460859978381061310142307018249835908730728453837356611612424864903700300139346444137148930472372055482761806052245784827307276408787381734019559960963890743669754455954718605725883461669098556490691626548075099116479174594731833500789996391713183676363427672781289078326829831167627449635103859037630763596474870662406859163101052712220695924151906059583810920818631227442306022099345851984917277847101934580283026174049717125619481334374214765146610860819695946900092507844284878962197583210758739918413749569204435466993139421954497386439847324576859444325695946973369783082823107590153619778769253897619633615130889070435977880465398589532443370084983472645536002202222242245680348331782983492996989755110045405066739225930723849299498857010884774172996982337196083265410957342371017941415625537871895061144366937763030673603411402709570532867098405434079139223569065694392980768955239881493912016170136855643684354596751055900744255412334926023005484205734276757996865800736315659426792925261627070945245384079386189794304023485427055224012579388065800962483556380255884709424678358540548609475355228540120769735308403361733855814431502473779236920963002896274180655917975254878767529541666003272339712815553829603124263188671231746186363634563328136627224212984694842039042924218014051198155437382580169040167000062650070962453722482362947717556465789871425914477283556503550648402795342569376507599523468932234344366875862871777543733711225183478405430575326289913573811744006563473261059329568499311406117082243954264521636856825294787647374293162811589870634548135883450934571795144250316261924414826726286784302232633704320387385133049368188225091221338563031454564640051021871758266310592295663319717701299701909508667891596879346203436279772055705829251540424185467223480806532877980551613006662433669231977996425100933960003200589797898615165549609013631324687933950186769491364974476797092798973565838887539674845244076828907468608022565201308414686300748627109688341105760404683347132976920782472335355176449069771562223107936016423043689203869478301882863427741249323837348820584757633413954510455350890241104655251221486791470038373839243485879618747611249004026956003013760901338519962356724908147376896568499506008938505490723756268751804401049967828937464075188795114204828974422700570960196840901438257363319846107105618675277198540989002440987385145782579305996893131252170849791445524672779751244552520287127631312023836605804226093530845340695637913055102857982653258454318480530030513856089990222683728874458707587694430632049421026411746854083155846468061763182569310197580514805213434281364664472419511343429115625923618284173609915185500928700069014744676694914144275281850215258948170848023094100392643547823531705488833472802559863200656090808715909970407055617903496291637007849306247322996426002078097622423966054405121029885695655497999646032269630534833425123782731214082247022669141158405365487594980206609799030123835299658885894905706494239381860095195986230869405581888783364175908154304136688353395375792554111419956773704610868275651961634722827129473014925417136197461495632394537427292377686663878011784780542796929322703603061170784553078546032983202082565883141777404957196302883904318541520958658160630222732725365503941576579235326116526537713718688175074769174715732081206874959347161671741207317861733429525835934302433378067944001231176424119041208139583558329187794177256289965984298004349778702642772401640295155523573931038991282245051309493491586553591459249462995355889095034106200905118418216296288458025770858875503096715788374181020304907368872126860064515611613214831328612834753289022967062457286708649156835749611307385643268081140501917513336972526369800892951715934996914190446799412563345651061183248314119538617859591819309008083390118958870466693218021005089652724489062598812723253136785349127045888246273708401515380438716644675272252427883896252925008635629682398000616457115391198292142500648408473243513159104390066706337241780566915675174952468630075722700936085918364756811721616411318598210125313792465620328541238816017396881579030613748125494580180101086281925029280220666582235327815902443756908989028926037499142220341927132705219268832099300273155167464597976609087746207613592615297801487261134881060281773190951701609058952589976648270947215567508004801320829499456271609775529699422778842402033305853891208634804208231230576524392882642385264877238609806614144496312686115738712253884516802981754689037522195392499147493604649035753114660091471451816886479491296828078754900996817910606470362789605883536836842741734333343909939075394251609249101935885858465408301498215828038193593410563196245405256389172012204714838179647088714098200975784276404020446437917362236679050512183221255297320018904122836206161511412416807912006038847908145464822759085739065196195535717126078889317055451338505800193521395499108740278586788336939837688098429927396226162224302990482412449676390257897590532054981842064080238891065192275810936379309007196078966693289077970243316395693062487427322781746314716765607619379188558408449983394478811550029510460486142436599200573207961666301530312940231929098310189485334905414562201283035505770357955037427898512528170349589587801456823637039224646247844896105447826945288493473250024835250825579390860344424291817896017638351562878906316355012109592971408997164964232226519096078401297561570810226295095307740264560219170865763841031648645032289114838072201216047903077702376751220165714543979232882354832251489807434919902257680309508431540767464315754871795002028440933265797122640198018436327813254301242052945392493332197403402299585259509090224314386104169672431032887438268861806920514001746975226681366507069758840234146527747866158044663443990705141776467668299234370929602158521735171903355307700451171641868889419008268853642822190196436898960102352510648362973088201121770257672949471785660179432413186295704916192177830415508456955181993208372281251149313547953676761965221921095598579751302530217126887976922850455464687021819891237162567453385673247216096544522845198671816218914232434532705841423562706777712687883115329489481935422997466710160462280580704794769794652824914287450986599630123627208944114391004947609349681248892228816142378577273210290399115570450614334102167871788748877973756815661012052563002061009420582332801593804803273305787778743822687264695030997504125034694594872145407784137001736602112193833984654715314879455869452036585764784387736125532150463226803702126108937710048648137219878323219282335193148095376308731756855421765370891402817839002926737558701380520438241997079767329035743281447949962614198499246611895494702128803191919364535628667738412977179463330167016047459024613025221451656181309213536932647898729332396862341534225915308166090710018557733622625998500238612454935703201491947419370313503163013165550995982669724546988961713251566205289679172314679808490072759682035423399969977008438148020380397096031110219983945496891102499160182538062956909359617246021973842474278280157968165753263233940178169907112884507117324857397179032323464273943095083772229559087242997965515607188084268861815684409335545502934392110767043387867310505668617910801012311282856073304949146420950657760856578532385185272779329844949603755416111465933627393595056818347505343687469031309146079479456057438586681959456747464723952684105439917354859529076275606619526472217357380010530734426186278268985007683000049128200688137985602704974528162340241497435307896020233429549970155050869430587967559076969846389879598718822737699609205840814250368010876732276423519753262906019395694391367048701163031485145355974030684882104499718407629350409143345391795915125699763639752680083923684549883705157847942486275704297136447226329138125949707727723124628894069299551607228817964881838124734855234935634421698500550029327517129397017258752622305456691228201740654898504812698922572007538371052965395515760277893649747768046340246981468588051495205848745248255812242421395168666376172461071420250408114007518531889525322390820392428185293796956748242271465831883433313303291197416937877480320489762179636286992320734853917572202781180442844475217155493670824798942589435729364397545632283731986083844569493079980857114239104326012668092201952269532920682028245749084405517716928744612280246466917654092557989251296376238648633299448221031265316655043710938353351693390394060793442069189658426021594233058436160661994620264958117508226064646617869240202208435946956758713625612487751495861493055577303026734063547887441843221419444525050341927131124703799099324624755210796216923382443924850055330747063498847724929744922274657863907422207142353657949055362043181082233170322161650743326173717826977052326221181228836751773524551761139833787976671188424803845611619984008817650191528138701885202102472321664425008634766084850165454156550348600211158264613298726487063635662324949294239770162320487661781877944741749254080919553076283754978159018010372292800713499408420210713023092713969758249168290451494016990410122598406639302229698056058831980143416118767397633494038902175616694055056319373700037895474687866336381744551899137649934214980989405174504672287572372304668352262916017162909270881085673775906948759749884530350711954864383409958608536404505497955263121292926722579319097535435339163443107582866116212369973391244878034871468739823691168653511367171673156726324892926034512539192110193345097097182742258060639504873267440667601096833626274474664232749920702337134693599956822531521305770113016241413725519946184490831133469572642359289926113054060801789937328233421937160934790690169220192003237581606551203097105523110290224546868112824973833012065705200193620984836673580628018380526206523325615040548179884710085206022825514326045062341326264387241994166578218650827348307080360720925077600640444694156664454234120817846634593134137269584384874999236084325707186110161427214726837171235129132732282229084734581786033776268426720048930479316959231936534017834839872320959741221076053951767099708015771648056304395441120381166091697123224708034627219441546288029246575955859694619823306533837664728466505026447553896378711065985715973248666993490625716839904360823866453608558701334391804976171261550377551274651165294512583111319206362575870351697818307793203835404703139769500311701687314926435045475856278771964631168950585275253593000110621887318712257221677333475407681282419470700365150329032863093962179512305896109318382681473280362269517097433185297848098172497360022866696348576237648791555575114369545850505717097018923149833643971484720844854756290651597146837689662532949604861036767965210461239403092187968533719791972738350809862116203881916192770921306297504551020009072774287111021427425361030311439407019469894031597291170271525384067841984981833547573549168490262481741796842216160913963631202526624806958245218729049492638647392930732158004585476199671135933101414118539424780032323377754778064980033471320403700333775096552702358432043793436928889958045957897750498532489034068060252277521698760251431079032078504809857777104999656823140355180696443213037207188350450912448684714738968751976684978641407253473826958654832752613090707977159262428216200449917095580204070607763936074593689147475556898274646404178744394401460625257025835552439814914800716109960635570981453778377163833408228806622374721953876038988933828313329968373479609962172637677208025611975491508169117914374402482785803273878305111617529564556485970797021261531502113168541288903488787505033166705782659414293232953597693889633636400453309903449667761426912181870375147507148476037494749039467118832709232105926578167983882714759048615669291626525974887546707543925964871709791533102736926359503266238447434310478270141478553895344580003486010308513137250922015317184864716126530089085862317660864929278511421777382599141069690425402938641634496403245074736827318198227099986029127072832294378581809908722676343019475157313715438753420538670760065004503691359193925808477510366766779298951159009925868942347533415269079726359251648875465871562880120592543211256457838936715576998367868885000991092563955467198545136376618861512504461878421949648832365437211433656358730709831433319059922220495278860105420538701506713553497981718629512533223395804423397426417774741966962393331399152408912045940535295507620817890694048969157545990116780172024327461447070612267758092088731038623018336954185723464030280401448442438458464392899372482123681739018489074187543301945782256500044796616551559342172984445896198699114881590111868854612597911252284923730686415539225007877622568293677244551175255727004085207033150594732977099743873399096522839857635674209450902349240304765092736757042595833589807887213019809142729601582931055253044378989053138213633559610791902353961043763169295055985204044131663006200473899374576493209340702130335154421451081018543551996403474055732798068888279179989906992702161963938725284040614099336660396957989599119597289661112500121989907382278982592759760893772595334129527650575936335917627309498026720717823241442879363922130111470281858544027383913989458164483078197469782554079659408081016248673118409314580898535913773704034527912446826764654927870790064602304214017367588804878498470230043586458139809523133642294341437824555257814227905819446225745409745231573951532773918311903881589705031886077079646930658843784166853830245017473006997803249659849165480726071247187530948819753398314943181032902117498235142445527130130383575052859023423989749171177022044771532170064487784075810997524291349418251802783335658671866749843184647242146690649229681774802870532837244324544869155653477710119117550497542899689236298338911451879961428493641072622355518511066135691790527743340862169639243674984191925068152185009297076452907549837895632607048531472490159870434800213289769106745350393764344967076368708137161541068732950103386927656110240933952891930283192428420230739333887179452425843112222083057683464942297274576348671394227093272573861861713867439977347690900588274675011958606469683132426919984192582101311531602111028739902714959590376169670906295195670032797184019042653376569311377654716570863951844136695782855700671003699569037026383307591677936110536730740652515985735969136693917767318236920485583716816901439878409805276986958442885210126577856131770039650899683007453238598548787595829642149491888064375608242197079765160122946166977279968309023101680928217394415725686610662035494679386795960413582884748400958333150008404297818624867954613103986711473967050576539212157642521309180142864755169338630679971766320755440338597904006889904828583594056625616386466126129221795591739920960801526331413095904201541554466044247491048053214452988878025459271656337586261575314747070641756735735855301066437266182627831137606643845372570168539332789091657544045045279280157913687359636891945215363771744728426149766353063615480048443290729727976196949186039460087568944513933548223533211498307045950555811117936686897494586470825120895639042918737252837405377775487229068819621367132363759582455021924138709862484614911198740154024724744070606168606535600722699950096137794582558422029221287466178826598215466012366583864042863713000724369041358944829892852276026552404942481137292033983728211461448580020072843368407268400806463241635646319303139758732920029215165690258115524016518127106399999508808553850682413446459146095341447068685768246811302668967612196709555537925540660413786661657122479844042784773895595535479653277238582522442345199895449553319234422591568006991777362725047948260679427104024877814679736069461935252120330662574599750400628689119589867148562894157091332243735464751360307255116201264552763026522805306029176038500242134554422997220232039957406325831739780036419412345301848221438320982368269533047295502068421316640762498287520689842424903302196567801889128466137545759154575991370727034767324525931706454903113915029400152870451745803943763994102222774999238977369050640975895941925169042065797954198624219491359731927486208379613562835857646673846565197760740586017489034838584608703259222411627257131102796474070788008724990261734803556483936899353024488586269467721713425803421515566658744617359852756462785791189026436423273654683492017204783909046196378308140313203291486446440534068825169434300541055652988422224385010046750999320764752503447999051564071808247590363175384971713849850217601050899945939844584222311721937950278878408988997041688262569019441359865777768924899502122381296339737303211518831069117244746865965698793849799574337430163838564612192228344443407221911940800824028558289249322335609223436682031816088909136654099616350957996385452994049788667833985874155914935556230058860265505441654821856444318730585257105526546203206428358448903986398171286274313247246835640362176912684913629675272570328240572624475600928917049998741558365380583988798160792252615329950471637430437776784034143721075081799311825071648129421124655602913243371979419703814729896350389255724793999730474592046589956677997225910647895096209178771053227151146650271110694680870384876673543120026564654934808203274937379030953392848355684491076316614748882993606879126034636288413613467512834491021440736501379267918046174304475591889842153688300938697120097561764374611018400537764854938701635840482439087375844975600618545555198854701284127272325043458813986223616760094887691883405617052616647951036279881502136187584230434628555936749220479855420891790102695665000374386597530088498395542440449887494409745342231467167739539945444768418134842740611188814070875261145636369118037021443002272709138476417099099396480511705051246381341457818878629340718423222235383837613851818502853679586503685360203476205689164113964388285330131308844754566940231314545416053118165719930635654824505746738366036778132258349411132214461028566897446406714622048534215971296505405302179935356942526660657160154687335619266882453927403079553703121603002577349465878695774643283605078481009136390315989932468492729490182810779785372206936169267629480452209811606562387343932373426435642971321098548795910988917241997742055572741232523806237220117124572372836098367965409654012602186135642112932680235940442295960481335316964042393594034406239108145989770068177024173320913037910402036451425657877515417504201772372765502705172825417601360870079970598119471036494553649356272471252126185653516745764060982783941236229797666078161322878044919095762349987294179851290914190563212086501000848372027736491537314656334661388009506407367741488166936849034845387091743170185183987977417207962127590275909862457662977219290959663003825860592355941575718786506912290208401776563899280101296604823018455676602245965459100585024633500357619220808994515644400827836393351839497170028950615758568692296625404415540317309357283479295630842694913836128079690097834756498083006162842403567839788791563341969097388443947447192277088937239622699161656247491858109035409959802140541672157239764631514932775344621873485172978825130264184389036338180662343554506651218102373183265878899955959173805433278127838481246136032319175706194732343254182978829237281227921807518647378863107170137153724837330325423914928773413782541177882791142871782645478118912961391875035243472200525847059094821096030115277732318134385780442168403553078841088514663867432899787425123686888796062518299559872985948708246624472877290647071091869860735983895675864532857491464573024755887713913903349892704583529930785269344171713707760583242708901918231005484440032612201307401286865829439107603240134143668183012429887160605434347557915727101066983852878730648515575156076040108389896290579651460995558740468571956042862062599969738589917019803152895184681027640874639632200712300906269803818777738239352016620769484004888873287166979721838977052541745713731322108031466842470327887560447500302974106046406462614859560605790054351309422735789573630486221134295373993854211493504557705780536377879561744825972391081945459764327464580100836342961383898642879487847990436082342703276006128826826228174114323483635314580303034249842407685632743421280668655934633308700343272531315520311755814309008299727864378837063237298493744194524615186100662791613650660653728156049335031801407231234519348515862793411471159377723908233142886358063304540376671915756365747648410159610937738179352901137187387715599826937415981825776214760514370643329948113949119120412600225662061644199108763907301956201199750660734536516349437988475066303781883886351944920590484654184108954957019972684881930817545709577853723696754769981241285217452787968386962441149768177829454153627782438368609046700416743633216588706252032355037935766216776598120027043112672069767605900528615808392289528275491635242841178288143260494545259126607021924932767496302735630025540017525950766171994035339596687501290819957204193262509980358755289309318526169734958050475410301701897498409775517274142417481577045937276637855693103652504384619033783080219295997430083262815498667488264668506774066964092901946846812393338816201662979987231166466206384405566909671912008995457342285859095867852306828901263794131786979866482166639808105832909521551938518687116084891486633970146299912355819543554151972149625592188692637578861854796666988907841862648060772147948074926252998374392884012285207450093501464968241717926035755874476508809701237094872606197415294179442584086385844683066078870609014590589135521562298114218412077623566188691885072888412592310226428694666774175752558523420430383912340935112902974734149114406526199539945030100754410080979781308537249730327040219862297827393214707361402584905736592250284742329657988334345451083092743121329249831773039804312365688428196238992014941506946270243150158107883079763426057084655686466035418557476345379436711561656206604471935031453807021648460864827396059172777556095667047721532403236905566243841598247088962960770458244340618380336503005208531821878141428412430900485747438129441647109500195594799817412207132374953694517048561079602437383079979559989167845112685543165601288349355068318929542233393870403494052224811821094936710553537315340906638720431801467891945196156511047480621977196990736040356610765030200435220649461788200453406942303451397580849583091031822515674453027759967861843433225448354274929705146826013789423566949239650253390509603981493161178671607345962643596293662395304022739974483200232622806755600339489632020843564405502420075529444244289222634159164627180154513519350224392549114066274511230593271344718371316047698730563523590554298967939836831286308513703238844559180958198501812690623549024866325320054940023878360943896508585254416242748950872751387298217615261323513617607380065923111328372505475659634634462774363594451584198466701537348205271015630180703236446653232201816507160695791269089946750424550016804765079115503090968625579800992241658158962360083204191754066285743906433822823113595652068424843028857857066948362865199983093556321509531189036874759073648929364441758208436272957082902945173762784622046202363217229128680698852175683100694262942698712055519234831311306103668021969361976416493400447919766567366075401247744072627405755001902711341677646117003894291977446209920089757370963122952717827208016092078957209013969030498005753239881125592225431090828370537560738129355821365278400214522261540778067051892807200004546208692621496810880316119618767652166543248418678110787229119069109457603382907750902780483535813511755503646927141909204013185945709120893081601481135104792469746985442646884823142329225437774395292072928699127776002307382947941221021139637160928333781807153087447008220218281108122478181890111433835038425413199430655000392489417436099594228439416058507338505539869693199949705360105735610312176315017688557112793685894488212494574315402831313895120852766549613292310994658277881922567246837837725772662558370360591006348278406319548992466546511065321878669780147815399012282597938404514450627324885701590464898265116761777051112509658655942933851152795514518335692317985071766855514131953373310958065167157847748780249290855596657541440822063617263259912423210984682212404934484978637518089214556408264255764926139300538898844375659671296842878974515338401467488217470841079355638028723885706315655213962380432235119766297712988364129107034643316695316693909806541349695143891890528332653799850749351907056669380798804284878940880804022980306361854878175855786452271801233536527003516399254065092463204047104860096961274888336370798219547147554544255143924310847572240198569055774215730760374255964500106123533869170088521760752809578332992123739980461910371750162829844403976777040697789814012862416502923403788599059671590696677877270386320168448517938215627575906794678661536159621996840318807858303595266460627254682309965353531408825457815022877180857162665992871333760657646014648500678655724031332636434467662097113385509871473927206853596634102749023251615637366501620015174439641140565778798018495698069313817329092414545872705719863700522475510575020375409948632517510752903378949614701503650761160787592654809046365287657291085686437815967339631471604799622362325710646400622131634670114866067350002614330592982990525347104308088100847680852606581519195972814707810577951049425061254255972280068355522120668347503815218461651504260770458884090254939047086658937194658273803845103492285071943549190718420286117620786096699342469126226059285876037725012591181087994377582516018015118359340177652648838832436920907827916274320503539869641161658038072807295712001611306117365470451800785991627840572197466235736560234314233885810665930846428585279185112431288717247955841304647401003899586814164757366467017344150088514779893113586160536258600419265511658995312629189522864274362583622879911479117907813025829375304483247892298721712687033495178228257015949140880030921470728612583669127055636652983327833109385630747284693444540433349609217033648922614193434011228364425191726020548815167727077569286456934551774747664429023994744632300526783237941938148279754891882646323489231203433300114811899678495219625383211077714368450418582538815729991757446092193805876763869390568720568371098221979231696292141617505473263102649823156006935623269549297870948679913746982017899385041113216357837783178456214523291393084126701670156387272040182750866666829060057794846497155958488576019320422311625109409451615846790326036358897289741486237700792338928357339526234007860593736343774709179854499266874823157542831583130144550668876768377777170949237469086849579584439579245873396011394385649651747362175303336856574930283777691824126644509767805465484625059656811378270268668233264539297173293572233264776669604108114279323855898640977805924398353458091832192122359928067381156451942894393886378424966126904934857661056712328343939076206484223357221393478981654931626558054504146205919670205784916454085980895848656763828891345976758586469824576046759465778687874455137301658956007193202605943813805686031258405511247060817935113149609959139929018010351075596633837795562124066938160245382286752852415812304897650617584678412155508241893006854045170778306098670939670442089815915700459940943027004278750320739639882824383722189534398075883468428363963694682224508633439485617528354581844437846967336127057134974280296569141973833164785920481757592797887217200789254149147359260615564088747531719104263884990333414023018566990090431335699395204796687002293107482006847271538180517889956183876313016729251509832224941542580926639841289410803976723830324469799001604948193082288988672409644035119269794865803163437047853462821713964752431246316252558165995727122584601575091351610095467403922390906097853728477270596801402621496600716893231042208672949833327225979129358988942405896779554716699010698154923364493587042167849507604971232861929432294714819273738688075041700132001503852176510176066242424808561675626034935187902871297575761339936476229972824313184513417294747513490715197910870219460259287309584394131681091397347014216909798873942994840252923358325893004818462863934042132540173036736461110821811612363838076057553522719952465741850593511009331237865326240219916643174937233187496820642432454477302042562177104902810726448098106897584563068823648140065963344531205221719278243568532220396546983735147092839021835088227336476902784247453060640990443421916153800215540910100721091772907984111529601780550973117123187584232603463553346550824566829138778600095267957037887371194206316539114273817682197392842082403242736669618950469426246056953787928735920862705646622448724924920493791501107523696694645812733094303952941592150521193569901964684509355384556822891171051665697997075408141701306791277346481520550089931258318073375562095297459643284138885600439724779224703706488180882452817481409740005038279723566601179829792308225440413125001387929068675298808559001442831090658835669471416085785884411091255926859116470153296041021622526671329735791906672377886053114145245871581138640985675173885180854035468893103079733956074421712639698546233975738374163456276734035973378171133747945075129901058218359570424261284286159750884532290367873453357515716845476745698290809583451987952551559110729912400558042640454113029019680818778025262781399543452343206855167021907916224764324372192525481657194501459429207322087756929077193048589844900741483326371134061933223237608061964604308177814679069485902991903411591015372721395587792917537217089514647874484662926591176879909129706678369038151503636383944641116546322248054723404022714228701790246179837725844996975099461972306062243596196977289048509985566357723146521067386840725774803027990938575013747830639104673051118217884810411247288224150480399992122108501307092818139960817643218495227947549376850473425878639348774759840384720301433679514204301332691421142297233353003410004083723749780676097157007785393597922677295494357324041749217510032961110320163780014160245412782431297643375118461069251983180298667154967182327663689000322874647281523293641515703124099521860241762020079048316252532123114126623870496731880822174671450500980196306759163575359876695096995261014845917371959847635453142150854389249531719461717108590820147694527151937093104683655887507107819808246018611945296575217794351036145418358672490852940387907201282188210689231998942207988921853362069961825195126514369108864492525266390382501388762736032425468097748083195159669489732443974495670585118496617955769866452546593923298864772958463664200487716919250886035346244366764003005467964825389463056661775298386446860115334586213551308186396311055116730162175621826214410419936449083904532316401735075987584804782670506332756176663097065137355502856023530901614568012479773795351723219083284127895253978482594481917597623907558011702141564927239363872388883236948712606488384598196967198366400790770056013318541715305760809011384896912798835781720304589583766234132994764707851978260026436780038287255821381052943364710469837044632758607972817605531168784581208711412859996519776738746499878338691943258584200573049283612738995870120665353618102458690058227657435032700596763699310945552391456093838906657571835949692485268970940848566256323470358450960234533692671026058190946359483937013397301751227506193599621744314624157376203095544379614865036648701426397039705395594862610858645821934402111669963371996759138608104434284382738452083633870413428358528101468369956653661053386550474942429909287113067033752243632415222184632092192721439096834810477464423298248422885825616369872790636059551152030779582193875075530021725965495925702815664958306556832959308902344793949577315684221197457435868307828805454181023541990677178711802569963993798080469449669691496690811287271487456914972475824668964191287076447512073873244272116650281333092000348658931367497504979471920093944948236095859603281665873873519751574098804353545062015866579070537947376657219507425374998099639687794620320305374060888018129069887022875537827346433152516259310831176224538292763372612575270019482184515888419029718741354095318688171808575937514256256239837118984585829899186845850902376391019821054214071148813183823202026952793191733245574156505034999830001352791516230823112640962666357610687354284810063635077041250025566752972880172884689870601991979069673587061066288465374601811179132024599462960246119330187922468560922039624805807785730672755643863578484096404021761087243490174046569482269430023216909698460238600360787584731218761535842247297658471717772069678360074914596642454520947644466666001270885050304318844698470343071734564178199640413007730933239415307936894080344489483583438645876047532543326107115174735284346315386422433791968723173491693787597322969540783497995843834822742705616897903164615315445234505981831597743786500228106421200583403547147439075597105722230970787794575573556542363076646207024445133376948765729267606721085755040636238439995292009331843573643412498105524279491623996290579573289106042449344908419681848839864757516993366978866154202444039676009282413248808539661384350634307672863591020754491345277723417454265399441686695203986674430889606559596752312344313038837248326559205304339639343860457335532517004654952896963249206453706575331182558489051134982674570563302942801152401399648154363062744691469476902627805136359335159544520256275396467461307766172344647686718365834199472442319807107790366046912768129106135067897900358955850757721725114758681379627127659328214875906165299788806720786905072477568118116002686710238016376316396364153920992929157182250045839507705828152397798447309532911424125310189456698860806358685608439325956023893244082644730559106755547625242639520466888142126429025045897481670941607791006975829812389602209632933421498993125071735049795337427858348422289036583284941175596246998924276208452248654174436314530299543045467707175321800664588869047341454711721405420440256704983350826815981768284445135734179320755243020335610803934646296354876731717281913736905423949681785357813134590135362284030092685364681488459561420717066963386490686234695216086504588643551905173990082086668185641053279202632019303302850859412741030283874155299795657557996779251059720382617686056794592206753737875972446423470109919230903559829734730145933054602873666142329826787831209794235153174544460886344267928702927611244818948250205715841480530335985807215621091043258811900151182709358355695012642371782282482667597219651674369754586429217432418326310442894105192136281360767041181936824358800613200744283770417527470432359823990176118994233508935278891745660844501550939641988035023947569070386620458053401364590901366135780443476584499815235177946150016482788954564945729171880459802076281238693230606201459322947121135177692040379426333354522623978112229086992855278844378034633903634110767245547680996392014684887509132563636166097157800974938498559121908314368723174580883874591197294826090339393652976098540612562267643847788819496438238530205687042840735112559076047693066981960273710489114578913236347652039968822899282126205875316791028440906691219673744560703867953957748224144215564948050336594667144891790860820990945735023257942387295540520170075818432327578925798172534853438467925952345087768698038992068829865733764508542975984435742060397927729607990145351598781592636201653974903254201913587482885017434643084562727942852288595138015802688753419876632814885332387725590932840427822559251912160182089538008040222687738737216225132094408729132224946271109188848411446693222191047340882169857058329939530952695026295844035630836230783401325236286815750388534335260405799298064872005744301657032176836399348643720568269734957008390583630335455316588052358151587753385488295024574043426935049462567677984641406237695951275311059251689531224740240816740766597660150008077396758869547399977391166455939734746249361950733055234443808231412154145090379032286493841437081338901378080436179770082127126043119240186945031598846395460647197820111378165579141310748485017901890942385033869046885883866033272401118340493570044625393134941445833513660081031156972979776550933384154077877409766999670860840221167150228021495747526863778905605859600328528828902666135526705048447073923596888611077983253152696069629523987632932648332072013494564417269652402811770401374796214697673423791790909291426202378182834853078501335623700226094706595588183711000426589644785027836895339754383341653202365192897602911309325989194754280678629072527807096508479999147392707867757081027220665088129870098579696217665929128861202087313224035512609303652282743571392238189347834392278276539965683729262376723730672812711824039480517707988137398486272506660628550295334375513792333019915735294571055889930570714276346357825446535179573523346474291704327072472120053602926519204547293549556558666015613864274729997345461468133936701363526943550856065280154011932978109686135492438557558007390523140119074835030363330887959026714392042542617380733754485301955272870205979821546002387092159070964642177620929048622125422471165568024044027534313032249601937099478144897237344115620857031385031297790769262418059360895261032839057353396317518462819651787570497992266705630389575741780653465209187202578623455874042086815429604386134585428487035883671607291052366302886805712239569481243898364371183183940526475975012376985943689413903196039190773227897498832078072897628759113098738582997650609282200213554620021593823178660289512162670407896444435070432483527337207987453850689511688135886391786199339300551415403736400883317899520985507713221948353278138370249204279121366352898743217950575691991076364359251084197214572618359249688214079937011720883844348723964887486760868996301239525885527037681437977287885004938513786288326524043642712132186316516104431907461489235863541784354342145906492335827238547782197732845069137216785119222172046446904412234609187440878847576610842230295722388733073081586483369491529491063452411281200374061617047025598841880922057173561920446312232456026860576354979579564907252269657736308525530059683110112150743609987344498229645425748340015199274275529011537145098662552112983252884712547291510787484993737846832050310049735226406133807148042973668025709019750644001777340012165925181192123135838507831163571094131206726321462976276330977145231628861686698519040567519606987225091672676570348965253759003694540016823817989101306446665562333434050807073222214673674094852207430835176854700858655767401920456459096221694061743098050533522841343158120992947807420272312413924489491708510443999294578072093516999724819568988039698542445120933990922837490295432612441508431684526266205581169167221550334404122542375956858931300217342018134521168188952830410483541427035975511814285818369126017145849124314552249988907374666577771293209600031728523369345598549242850965925700280487600661711921160635023920855586661540578186890226744835416496821085279468432735422498414995108710712461556868244204758396797386453089899194459633737691562998690323320355009529453546992077023754296037173022218537679771601023008125247794625942342701777162219449300662409176665334209657198370715158090582244211387836914708940771411606923459574073217461230833753403180918129454601494916627171296282737497004261454368592533145438574848811060741838970451725937721504613036149418665640076530934640265449776695728067201949618913317356731327468883218997667739511263046553137245449191743300931061093834199792962739639716544089199746478914141213928310013034734972713344076359687822676917118284970906717331450977966031671077961329392597029045391621236729334965342515664485259582472979174729314363866784222119824589020442691605080984474806765940936226691220892962699073274952527604865294067577804181533649445815154270027051693065316958988532744986095056832681232315022475548847376745113032451055728741406463398536197570951466860112194575907452291903046103172136549303038850142195269267564567109529742612425338321441330303836941757789531926287146208609984249487106913636231723711242019804333318906541285080569434287938477342012433340150644025013200594248465098313902450822960095676894337524201672695343522063815744064223940758160617550569367181684912837539493678673034461608484242172604701274082757488806056308431840693972022171207974214968780027456382264101556056053340682104505619063434948339283968899786431313916954186900221526354183437531314122458172282075286425277146037247021540103037732920690303175476909958497306214964138080662141529479767512783725185000549115505980901547433824756168477124064371719321813383430520526880137171338970654288630334570735408207020815212626763301460319082347943768840743407289286909304585981379288795614120607564246893574286184254934359847116780488538009631377067866846070861327670341409412795316307650703599391944895760715025689601071639763464246205874791531619532727917454473077577527816534441970417537515060472592735287195083613501784464987404533736376874442890380355504011047823781250424525810996363678718856016437485488831044390962417853698222155928426814076843960729307776742143795607752743343064104289293859292625714838093442754845171530082080266325064068120438875490010145282673619004532315003341944032570464928521009424929068064415030650016610860930114403899330226003777414726332395817053258001581168754549849581767325814452603859688163157676741464353463178325927032294595079015006230510794872917891830850023602639127281340548876121306075902620240864297585344313476024473693879529960261230908176088826845713743486720195734108632826069601081178704446563771140372501721656886983835109872299757855709450985374388726022884719560012017415325524158213953595229284878764871739937957168741239403382677695661623276333522355297712790118949360618306676086764399848629732800973945030998280999943372328929808903578926374637583614098503373216392909884277369653637970767857230089282705186821593684249030954564525892633741195460931729793973808052956108112703002928106483881881468909948363363040349598765665755898167629650303303015833762518684718373924106494204943995195372425307495748090295941814654911178370056398075787024984908672235653204755774080361121799899558069305294481423687753959038390523531606501014360658426254343836349868367611976667113001142420174033327919494676442886359675060781569464509612083834032265114309904619997540229019531131518073390277728881903625798406942690620313081501904927783771525313706839799914456219703268936064373192184792646424440252256062046534442001681138504145520344662753443529046528537505233268545658892094430690236089345009852129568698627959263883348955967854759892012005674462729148005862705346702021140120256703620054524295619939860255893902606002770606548175220754124773845858334094966616572405604097436969099859367285630536308682494737133127838078255684214545172594675295429259233500350863752356140824667576964226942896883202287008396757816482567239509470920236611493728655452726362316183081726329286178529764358075504175757967292885299019409165251731407696870555973197657333689476537250517359524315009402051937386715413385105803897772807094326630390135485672443486737104662955992502701476655075000818304114082592903487302147336222699215568583546802365346751152910792857194844306210768253877362929899973045029615102271164386063222687101356940732168827207707127552585470309337034788854574856563616916825072169241247028552198522032745803585692286683775490903083164150127438552728920581580349638064797324507292337814492526445146380490431311199513807102689365197269060666383050001645154620697176702988781526282425771958633977761532262408465414052966720820662250025130523295594140343602989362464449772439294261284809461414559066582423821206981707188521335988607162177760709665700912609722254303044215588304855746419984152713457510748194182074183289810763426198196548306867130148424688498586779024543210382170066143937218273165099338744135911155298843080277579373749537083267922848597313300687237922580016529490125240607714475750710188890002595659511085712862472741215203021745825767414393918975916533517090170369314172451849078666457013201794288126566388907220416624716939139976443228060781335815017948644151479810687060521132510222006256452046250988291926996274731284308453736145344911336890986448491382152823467075980687590648029901786567120849558007060155193448705930179502172355536056890861918819184771677255765657133524883351853401235495064269097533040510173077188371534781125697640651333050818207814947200831459404371148385867845055999553971416157599839187120767925841716791268305544076413069276419535241493623075915560804498692447173822496277234086741807360630481456517705133951237945615969848334669703630741718150996139171460649753639988722865418410627030134063717603274753423485813660465794003503169298847704955473372907163944478943929200061762350302175556034946428107023341189781400368823239647288908694604109370910160639054575451568858049205843187654618485319953039960483894852395359882882522548831044287801258595456577467654191108305396154654811959328007663701181503052296668193281038863090534003797953632701121547409003774197174675309698287377943020739766372653582467610042001247149971353513398185447445790641450141578894645927136516214208816364883373875515390367735001095203132025442290422223409502210066745555357068463218948649611056356360481425686339631067276420186147651057784672408870861172395868809703378436797640786876465584366758557572540287373005822561335480610176617980579259585740465365653130280588363345823301945948034278495822502490646950425018373334595202940513327683010045320360025504434524740895631014724719654528562253516627747048885092847012735723890988823208243658762370896136625424796242150366216220567592356620420591900660958140396607197421683283392305552975515224924005584370715282742933443081940757520886614904706778545953614843416941219584691584079857770319675928529932785402333365456506681742162307745461231331930885680653690250365969065035509341173172587725223793851697509492554221804283567254550301921693835430092156522855561454127612658362234068376998154020566470682837175286600512859329601108121227364998024315945574075937991196574087819496989388822837668969727654581009415050278093175418013284946178723924965662130587044606610469448298988334525135492000685982856477928198087504003384151571764885563824438126916970280525072985584706848598006009499135185957471413337457782438649115366545073072976670672537115125255749425472269072000608590148387359038430901005475302312083563468851674044247896747909269456263764958667056709850009808643211177357650116373441129682462047775647493711824699685208931959030009445389351750957437490873268575505284374943915028096229998369652682535581628890516672506993745756140573731590496158571806087470506353053809669147175431973437782124709717009595032172449275138384104138170719202631807347424830712468478553612796697261505254131015438551964660774205087831858002334888322069765925942213257444250507802622516850090103392667312698338422099114550811746270749601960394532122160532445497062548751119245986756067565605521948808749469793018085836400753073381704666238500315234812087384418462687115305516322066405621795043476878309299571691305817822396672733937977650608072670370482089257523170859346644041877538879220634926764718813874130234589581469677723911449059526857693488296516007587424064182568167052225641325413204293361766340428076927480501881066326415725987585498901925505623410033630329093854506630475549669427893017078427665616674505600350199628836365746556560712787687672685584818282541705059945788659317485274667218582719124109556134790322522929994724239108673261609119891921108882791923066253457294762566684482214778921539206578966446909464422280479182602800224984532958250165740315062602499858363765738657592170752655735480527345383481481273568521425760256812417033676052594946797152581186236531477079340906758539641668098304841842676560844067926244659283432173948591113053731242777335074522140298402297685596973613630423437227638193361259157000595909264881483017543027064091880776207968383317178987807481889723966343585459339745892551028622293618097281815675361082475571678864124368411123801605908090773732991793707602807416824376215832808708586763206122495329731740283999786895962962946027417754846260456151724450931364758386439832450730108285151218474799805813700624452736220252790798532519041316147477614246874176279002571657285307374264335391603861111600242613820610545852931537500777404187949739503726193890539487311268339505296066615195365701978901604937045716996222912826877710287281272908418524493749724307055022711581362387627876992205384841569483787195301805117246061916645033974042539991168033845541016605279030584649795548428169253523706730747011340514060465574065562313909027968570049299180838734301163462188798974263926901075124948501677297285441303345702741457650309615105689107943847163615047151759196778788605924648887603802979130814012391724981781851893304088862706774536866909923013395052295355667223981701299530208973450506620883596692189233201309320730989395863517432832854924478967769730306084652633834595591097128706025447134946196739039028561295164098660176792322540244196737454241334258018980253152872431180147435958915330677278747724300924630734257574417851453163639750610589786187258278778612525659422683989879327360486004006520842753741010494566370275914646609631778072744689712339784634348439036865769307746996994530047354084144863929765919488691977697050250268620905338686413367915647079257555217576625177054923056114194674357740272979195887746714121129063151192865887564310383013715208877749417761594706138946161904868698295330908924870971933907905762471893061830922342151862222654045529193411085731785316518669318507106031313877228160581210336760416776017209941262573899263186334822895815321448484367946082327218076915469673887391876370245788109169621617255297803090692344704346824997060155458304059410946945932421708803517422602697988681925057936918359684148576106570765713276522245265458927596813094301326809342407960125420134953757578027308492684262536977129677913470390334494966842801238885046223647770790376281875570982204606885429387950274197379102537311708310227628823514901297832016240543211545540733338712923347173044816865673453870948713126800694247760919047840600885093496623403401575228872362335235666532415321688702780967922775984074041887999659829449669165975017635223691635956573970187406464346542748164109118301336156573294137722408754911121521292208987415317880084690915047280764448176976463877288290815394859891505452180944316708961898269791571993719102380598837721868737670311731695207447934253092122471126098479117200593979374470886980727140810132950993529684093519465425348162786449610829123284910019635451040683490493645080309577766166911294177431885991732084778804564213112817218970796799541854717540763079346859010517989085982553253469452533736493287151117214801924112544917821468653047357276428863924551180549055520153990911510130495818539314988148568090317320878903222016993037664783747362373284237135656327364454568303829425839615681631379889103500571408215393897816933088337824909136369973439325288848259090537744528421317265961526491870764415602123838062533064571443857366954093190524917214306159360944634394843636399532901037872155042596741666051868548082715944543829198501272120135488761546741913041284293844441962541214802591686237649734818512816112385186564118928349158502291466689285523116640615178349227370103677017969206107454070118190955255507060618053967836491588049623201583659797811138875538764148621262857223142281481667314543562068413276306537289613825854256303245431200431947360236777733048181882165188156970875550765422148770963178193433682207246758002867327150762677934651650775683704075719893528277112491672005406888125973900961653186667977794079916460843667208217330055982851560582433203499831766112664011104836343164971463218001388444314738450019959355666243795645547755520972066542564494023260525886938577736625737552097911204922931207878983534080897591336537312484045415836025862460422467133892524601591537193700104831918816568085944018687433678947859935897290025379231164991166083939090111571790826108638225504166900374142402594263373662627953062349854855999801866792854506692105928378389690379739386101437651473496402544849312907997230609098962880871626539816643364578032909309841865685712605024327562219407448193356879571122061878555265649001873603129763935295660299634203927771052212322406861067843011453549089853412754490977224129549734484449455269813402389279287511226342292276116677737417356608579622283298194360252484615159402628345227021722383170821137260092473588269389121557093145655151678023471776284239051997204992869015561544128804440655486276241380921859763948834796036281082074522309122568492725102236570277841728561105181376049234856154909458410234996049690880595675286443125462652387825003362809404888553883833177943583180008158486565685981086005628650540830514857007571576918765126706192368446142375312289692012145550211434256590471392896867199582011160575032960209281754992943277238757016950383702016232807051918532865350892665850215271766943625348788998545869601712268063855026631259634336292577743330376631204718530402925640401771800006787243014832591805714461501675774528919478883309617370275105279235776189434279186317746719358472178408095024672007419907605737843707418478013819745295751028551686075547929294238477111293473241767820944322512523495954788927322534549118883821442841384141018460067552074866591358368370751363436480034560067301332384834840351675105323266244438171961787420379759093481684874290879322456106667851340962263790144635075131667004848900955154235543371220296945888767795878051384334615688196528977256383248279413558644668784244821333432525233684569438340093083793255082816361264475214150099613798044664805140926861452125384061413833389481029518660633068526647302080904932338816387566280987968356903475792048730315065387457657970994059175379462670302093901857002163603214885933076411645420239457733798367987545330844965610667619420223294141196571824307990781154470381802555229493407299729172890935848384689123668144091425225374627722643581425212481786106064832116663130150596079990475868783387342498269958649016627409400158636692006497576662784924799825268085614082241072469973577411741954736058812090896183661001309695463883531407870681445703707389276005291266857225357054942786853391932218877944538209914100509897956135635899142345729909599720295117556042994632290805868138453260209199229718654901470687064636812755966467463933934392588883283675469327455963327869059483866858359966263339870195965127721823688354749875906686044248376604500365330345252041938760244420391264937009559836526634967815789864606503313779375009386519036995800677743610172537302261004891863003903601933214595212755852999035918837171564021647517797109297119130985496216384283471276850717985012886724201637416488170378305827339969540030578896214381426770382152549279453798560786377631091396948077623388246059707240971416800997985106798796193345955372987563551623384930437996750313052786131001650844784921305387045015687252721213604156575906080211561465799255191524294327111748309214087822467628471732728969800391472900200204469188871429081519095595532532627428653588222781519762876369194425281407477191138844777697737638508947080785866431560675314930593853507895500335119227184164133189164994575138407917369191561659952635346942938426225531946857257208434701065925295051263771108685380928028294315236992123275247511152745677545633187900679050766521399603456756606148551273294229966196876664496706118011008849394949254752227360772555907552843287963437686124760240710086504641144827616186132243072324651938431998244667898781938451554685137110283506112885769386071308881136482203032035177095375022080756618582468497481226696389368724137968258543620076910338178233054963082043468758403501816402154556833848795651136205999971987506243661970427413308678163897549109529202820161549030049855782285841471179032236255202766556219502113043929516703588948929042063188045299504759147482101366944345285536828779895063819540200533124023575733987194992626788986931282102621752696906334036615180274461651884979743282625308357086438341088569371742022151544041647060368954003018789886118684428275112775284808543140693910819131286120622128646598393387978152115195928189110745447751522454807464757501167941612918737451854152450962467818696095490184950805052454544500171972269715781863468744831927391979371214550548721416862267169734643072739340476395556751714403084751984165966502829379063908513173460435362051453451501986707987007247855358640070216823771505647630790545219881403213749860050977283698657849906592878027954985075960885807693616201503360450713383835823036012584457990502469047581086036294325882800748318476712102539132433959591538501893722221594484014819865835136101108440420709760185191531898184823083679920349733048307539688020363743192882010034328596788655736637871088205740855962334667556159810134960819085490443177996562768267117926923794907053149759055049674803706357825496412299418750907099737199011242513218852758141767007878895686333383172054551427102468076748799528864380191440248340912741552501224811287609788622444278686246452625206672873841437177317209867606817073451600233171839031488052138441591895465998831580674667219507532230130344506606495456025452858757793320543649551134421998086359416641232923616647754330895627073315425852824808051561843340535040404637699433139436869992320789229561742127122372045928898928985155976828541584928648573484355597336568162685959288037072628993442553567439959315980373250925750401231685799666512295637854185013448941679214357212734562310553399280480593944081714274367839616912772654812654149896602333761422320562327478640150062196396031140240704168692165369719373729092029918313573739714028770460434135967517109764404684798292247612083437684876511576360855169521157318878793295958447102594647459816875643034323288439738871157703806345687376116284031709845022545163515343396538044147890771127354217503973163856302009032616971641629568269765435548967666023608493347764505659441988460700234968611746642853148767667618428675194258788621902866044977342443787914420003140517355326670251696076007461675212999274378243949463766990663321816823738714512971698998339390961606285011901441718651004095935094932756563283734868815844521363011819840300426354665807831574279439757825684259745381510695497805643545307850449474619636103644496729080716941474980275316858173658316578199456829897475943697830319086443077948883160070230173894505346961414325630086792345184564544921490406359059100295045183680839946142792697096725981366567727344684654912360380314723303224406083627146748664469484514215647542337060322881284245040426048991803278910717128917596564406553952881750360407794306250269532545554673494436754215318925759376920720244570925062702114532154129166143897614017921631198593975543281510002840023676678443778011843147184715922828786123669713940898918595803335509481583432726584707986137515414807687136161527210128090023854328193136775888183886652684821105975190373753727056639154421116248140427199552048447298093031087414562540190741064831980269019088375048628222187648073962124638294564104118439338167384858514560282571543065680243610036313706681052817556868645582614425653461450931296421274131813372062196235942084946171465094407158207897834519559970415837467193550265726775847532173863865440552007718977774270305142587707393671986426757939890532440394514994024610481549202741034932906474462932677912273466595921554262341797632991534622894971175073015172550496415319706111005683325307087029241794594219886373313872433052968815328142415269884977812714502734784468218284081424946861580235282246973581614755948591521679782148729101051185864027166200327889888588886947320987907851832976772663080055070170070112822253412421532641628757700427927384577599913095735642618167006785690641904173369610049531062192971274779472765222761177140201628545343335413088133189813169559353065205775457705010655295965217515456438257649827144225270981029901736331579100219175571649326451008613926467845572037038611566839421103119326674327711151198648265877794418111779805905226036249135855595922290243797079723126873087014959400500258091745615238989733783969959551692094711613876882158300445637271590853554419226719669062339506050226549597526773003835841825023247162439489971383720893522153558006943413061267258173136840924585218199624410451199602010619231257930584056164790070506320474904738145970379024650395021124837642833293392455097834791977263058325883359540247549759296097827720829724065329380634964011227787530746104711346157925907555331522467600196536516882133207926419837969054771582812345779031858495193509537157256101429353594921833040326904605944884466523739669594297272615248963089951981396489965175644511735716844443443588431301596656025084423504838029975137791991848927810579093395429895834218353024596470810052661123981741281304992610950464296944877033954197933723771105528042201594683147140880900368898059391829738221201592914227652993871761303617565352920340666169761871373135050634847816203087216109579987324498083153374083251915129777051677665704606644289225536193408278450297245572010074613237055801733832534766055523105769910720731108410505446437340928973499306195428622370053314175319953587744163508016290351248690277552307984896312612316426821085713856480088536521619127898632661097748247314376025511182216963155595006795513274618629405914696016329511491056543572391433529467317399721313551840628182042821360004458299645044090807767853060487416404363172715513480416383041596904588524695984663152398462920038728610008430975822712384534546077908628601367992716473032547084889836885888190474976619055720084165460792359384191492769221276943353381859385021964686222522243869152959252474344111865590681550606607325963790070137551501015040559796118934928404963417338432357314473516361892314247363362540345664365083127310554257366311792473698145174760107152922372842344574968840107385823175830462695448640753162337222163683512734451753396465600068651989437396469859936666327579427485177355682044216998522337547480655113734614554106081607664647242580042377075674765997804937009811609970601797885489523044244218964149905078043451105753739885252817996248064318854246123630036912199281201355227503361337791362988095919647213996059866542993384742510302953161233277350082318975272311389045343646209495521449253946920757179243036414521800923749698684077272066061037155536881426695940798915096016474679531070119045646814959818795202320650268443928726001927428147936279346893211125278343214094321762026367236136604264812925483062837767561114199062059164728403672630638681103365347051709323559433310506656659215585343951767812698195440138318665370766329193564402964525319168290214809466498957315448120742063674107443065114481151569602759795052661525913851875694761777320713077063547514983605468028838726133471978131757723104181709621978397178904377560006200779605683516328667765450716218696519845919951500128416577708764016150775547736067150924018181996787012963916626619303139760014183567887175509103036374579171432445060909289608588181525133432772386189639986110857306246273534986367944252316306027558691663551402669800801208385043746381704311854638879115669263565682282455959403703362869330836696975390751996088572902729996220339062930311474603720700117986658323253031036069504290635116288886792906016894041137325932957700829963778541903837545314430592407320921022227956978896230668787433177122147997825453435557439160451996952995907114110775208854045753926706994196646928467765725721378882908144605841548597442071733032977982831091927155598752007938318097763164341686109811079340420522419617764023395213590085888019763350696701094416892628904635429096060941703916985408168861211440706460376140213383160046539658564197356440951607920328968158983760168091284292661548606601277131396383083955678527591827567049371536622131483860757849675506133751153833693871636542147810039641048688576207349496893384820101526948881190563920771992714061774231622731897761266727500746012946436395402997726661335862707540844168156526632094248295357918288368519746716600949756872775420742239199607970159548397745040580052374530236854411995712735857569704223598468985895434085339583181588263031493417238718687813734072785692443451219676230203192055971074638785370287414403162081046732378952302972374993231864371545607822456951470818500754833412105690839274365932702982605063643243694603642960216454059422296873010763029606994682562131809484930530018809536746280975596259964366030642283225147000343563585245572182817474412545017493576056928976906952470005912215702727830273117571263126018208096993246917342374993222163943136533914005914556689424817944947360931655522400640849213440748955153202076854627347722250449208134242228536404140512947298834831492681785169115156362346892503804871937353370976047284398124904723902665110049135106242331479842902503222056476093866280445083935168308433296945042448673387928902330437993231251356276959757678272740719730980810960155879231297392002779096305752037719553657589982303924394826565649320380103375502109950692185065159159145502998957653962484384143539376602464097978910883885165951327614522910811297522547290036067933109246449913357206071626781719671875885949602484517613242663699732052305634226658206581251852711787846248707546308168768175948219765910322668864814711071392815441158439391935415430012130940350861668793417020204190703731429908210163778439130604427206114512358433789178752326302193780109558055353713144041893357689092588961798001573193403045317609192453996650672283370322971946096966359791910088104374439056828257455044795082574387745083579638412381198036293525676351586423761122041440668929851052628532563932764544831947808267734573510654786863040492864305566338590349742146545861759045691586503527449594472492506273125381858763959782532926654078737462938333622067595622816294312379087350193245290903416386941500250005650104541594095902080171886558794857494193829961739575803691019518028110381351129688714446261521958945356910400474633845519504430222656764949225674509122534015983260590739079398281935575474390386321081136684251536160581954129247688370026350629349895504544184717472863411580883656510207878036064399178059395846901913800742250246187978979271586581050440981174235695187974592316268154293823768331162302589894510951351808230364002037888941860473249825723099898645327547193424153099612592200604032705111067447043663325855889035224977567706930255197853060469100019176675806222977217633138525320732498859127179366737751983793555734800612535643997190121288113508387088526668013928491037834520689635027568072754250669032893381817973233917298065862539405368026004558341745840287638532013969716052989149605481054790426863297850176341091618212739447064325700945866530052626450693616617477061840011738575260148023094710458880365692959103307885067473915121564502020744168146516472149904538844401174083843889971307871055565200312149561893750913439719305244430325345310384812399867284958372016725484326615675532572253544870831298821088543618723387067977267464464930850900603067202341642651948449561606009293437598267042812029495941584636576402132648503147851047559883510003422095814007805656908636118272665884156585497484128150856607977421378806441107007417568611923092887701907109638311380627235803638873837688917392378176772006874949114286977983829052922724703230453215838302152668523265800161075460054297493871262347192223388045962362038786206403068496751813721925240594560328401533928958071764666245804655038325359669705631913882354085845139593085725740829523639922095461688093978863625478718100169045006608579334358963990952111772847533689005948296866415256174385962348384639461109584358423386333508267432086015582743583258900962085246407045328979595755296149860414269344243316941232118388130609357265151860543389181738853832024832045737210269896805561002804290814639491929612403855025454540450625573427373850536490281824093475004783598928973157863035443636344916136045213317546308519431499535009632157694102859015661176808796236675301236202563510583626888523263724784648215109964217138120446212237231730900615108392919161631926049435928297350474945337777419627089074406065532314467020578193987118372502744520068000476928995212842749583521264828942846333799552998759210572462954929214372145731644396665830932017164727975765716991627506655794639221892438873537617657170305488435723250735494182611067953068711485745331259894787381292297220611208031688458235451778376968726994186764953168445974748782376212981713698166589271383657406340563531275714844377480281514344880700370467952550382517448640408281815796867081323695054578501900165318920570369879477354937449742315749023928072448576041215247017347591868472794726568918473342561779333671355176503175559528373691825732945556607575947882288442810211080305673784983129922446374049857382205567232295859270292403584955376202209080787342845328019979041901199149921303599561701257909932867498603507632885054363423214614384161889353123933545319016611644961398945921292749054927429617834627492007753638199446462931147575153688795053035484865397131004657627414696285928757797866494981910358689017762175108507085981326685951212793621782293585645550377803966613425070373780360444816469965021866059647341518985145779652881643122275668888592499462331263915937398654329837984254024746043273848379341448616816380559402176140995240206073383148823068635814712633046648899929347342471606219535017190396035599959136100907733351036432301439646785564006943261516892242197890960293764117517108299909546335375297046119461033083256029671648182410251792551126302607839073692239010300102539539449365239708369691770446625398371847591842079606386466516900194326605933142040491588713483826896136132313358946802468341275249070643604024317393233122360150013060009754728213306611260794838575462085694080947771637742791002880475171180727148107542033173159150970147837045063052439267812352387448869335070679154425232300663076126784769320341517650454062047122186740480623604782890608637015325841622732913478357032525611808415257864283054590308416384970455229655459071644853785795878484485300010519719119835073227258106668319678635218950120892508551402667221182879403487624698542841560658603703267121374345169075921565041108849618574728657060951608000219230012033359887020447987353868833362826157682477538349473069740428545701618186638129058839338922697880221465723287590312220644114009389087084985163615508608519034416403627160734334530700561047787945248260837944668653295226333764218467657055086108823960647069905530006212669526555291275857869689353767742412528693601084463960515063978750725296261537003786433504211603928878565422433730424818966431816225585102568834391373354279273177743780128346593737549593202966529627404437990730649722137606290274261445973160635676583285989119822709891372548619115007020280317822575112131678297398910818335240151909645755983038107539510533585062749511181465604545069717828680551182047993660133740605861888473717279977885743053291863532588781148020641296357760292401716414903065442032967282579567948179134998796263076005600897808922180247283132882143371669291142349509633143975427417818687683040497789907505609525342169442432238683363992297026428704286733678982523246766235193257612900027569047737543135946048022330461742598411422294499893893929166511177424979154857382472178896548917491379879894099429991493747528647930808759140342333449360420837460946122500736724442562605187467292281295321760479115690421158274509668682267385384026472110538781040423871898092753694081605496547116065699520257850717510955685630082083025530340677834121274682101299475577104189299177081469759992172612524187803570747855199126669987354896013051085805173236160185284789155364665431013467216426432549844907336956809095010074242485126517772994019643405968755466013764396572276687095814479022056717239538370601730467583047810629287148914429174124791135658618053599505881487926652587964311848278063621556314743743315399440116214812696597188325833028995476413987010852642828364707980551081280428473942129752720694927063210411595738831952362954846647407685264735594456655301700680200045000319782449939106621774459439904822564991203547624667142082304346324080904638151621732136115363549212973793541283728419891896624850873119450556619002694241517402518350135148575524873163918015975499755812736247373326152982162636554743728912063135262005034756571428444815850822114787067811017493810446558564827327595853215856373545732052795399433802608296068038938036127283296790801563159991766907594855956413475051518616207976848870979797584293963646041646584904264047680550285141828469575448748389738721418269874252713726340950890928502216275747503888880842585844312691692650558044682255620459203822650356368346305835180770305691222994814301842144087098057893248722280357304642844813392034492334835728235513485240299942026358936649916544001661161926333884781861324783040285147854133379223182530466957851700910662726727001838779640750511657838525657562392961965368822415054918765725573335931826682670299836141822443171689742660627386834276275184336051135666443580368531773750418129489009360546988145284214301614401559833563374325575732404009213831118695731289984682491080074263326873227950170520680323367852820988437353275510430167466141460648425142876121232341919989080533462160694553812544874776512121059833475795561603763818882157360449151746835435124543061629790872418284907829323488329004671020311610775088559623502077012593589587711756365745106149142745409842749255077228179344013874373925765859585608662597439364481717650869947160080565589433529469348504359914776505105041239513906267355312049565121644630478190265781034765120002612108919218147925693032689431121646181657457073160163525861305530476385881548572528492009041203313216505374408693428083660471942835257854040171883705108387870509952285726450981770104521330898517893935775057973638512659706730661208709418577746942202756979962051983182435496771978424575799747019239857356247826418411661224766708313408108886422715482027825838426357681603621776802788879469410311586009848952298562491365622290911154178387903899009849250203839659572783849981344735116456215190468811481516731024974758687562270484640335182826821597702056095872955573638715331745221777944664991301947388739567963462142868105100560405615263395703313660307294192854214262574710706339053414017109273982819591051809886036956154011636260032691162416018316532303431666441540937914363514077550828888706993462108490337025525027281225169318518104403306457324114837826289209009301419807703426645262978307182346950200291178141132856273491214937205278311547837159033283773143701017371946154974434509696603196625297417198981190238270369905862387778902711343889016218806889281650340743732682323247049752471927674640244953767940457030094789186960927710657396070892714064135854943827907846018654025678921525792948530677700822938437644250109084687234930028727348909958319903358949543016983172251991561137475793542369791960086850256588814941516236514166706015676279057026684345473860285265221828817350429344030823825694543040138001528120175724987341718542622627732336205985239919427573482261503419760674021716094686418950996111573117609433078210215590491080142285702960902342226272350398447371583362446055995548475491428031550214897592152548579357779593995457395032268227938132103444977582158568067155638008783500830533898745825319368961569284647567489777205093494138872541130994812755126246061515274452584079065151966184419772701520988613783109913962946732789649620656575303773021250588879626879770505252786811988227098314561773182080750303002491108784285971285281631767300570377538371930038009183915641678448388883719335852331095108655508348987935899461315590687032242022315967468760982189670096573518699253365365849045569397097431846822817041012089195858707098702369922527413789458155191880012885947647261814840847671800364345402731008797773997257715270297483842202254441994413108761176301218915434711058321932599083642113036820041026482453344208960111830621907070590942464172297788279956283022670685929025791712871454989431323382408089880233484066523267478223027066591952800683975622798546998947585796669202094392554299054528521439846764332391992660219122365712272387198534949159281395511586980599261257968542442714665439681248504615305617887389674618474985547334407923520244760097778441225138287534155768485346173577875119176095723843854784169195350267744181245738497816107284439735425489067620967234505772999267023668886901485333131118166442532830129105518238030796619371615044450201601624544458145450263753436328599357940873522398406847012778803476492206320177824059227540629566472274334454232718105213412597130798994109163542618162469359532994046459238602354464672221913099888079511570095309964933830910378711425783510497798071530183117092839959712486754930178505573937657408380313114127599781138682536825930640209696964235787576330740988322608409360479761537417250680217956165089050669824812508276363871262530245442472281560118694718642783439185786032973823050766395579587122444599524647993509788609664310677547124237850521950752809267302542741223499393600624221912464306792531977486663196995085264285625044468462032988459594560540888515709128916445844679032634040073920026512457204096257645381977425465025930272299177125955630364481052173845692411844025069045185348222867495068030552073816128722333679124361428092195297370619054856650490697812984885246964775361038242959857869535285192375420350386661736072484979650240772645070287667426727000140722088409052202197083944415531755209929932868052637144432379755689215978702271457775192010443077140706755611450313761879510247062483824434047639616854906935877401397354675904611191233461920821417095015850822091694411111363786756547177057187700596193871247760241527466527881594891350118353011290728249967237097483934276453979557581093158051448842027574301972078700849976802622453130952694720386140428967269442380224130980002504086264356152839721467154175986738194721304649391320838329582989689959708954810449555609428542086481003849909814500682686441298026688930410443458231637778544319851563160475648651369035328316909624903045996428390555432025914843532624091780771017699197650429069161712546595520551202038985279869421632124626548233850973031354365731653319092662418773060621298274500210083663434528330006516301083131075369673691468315648103283633184794204130194720807759510449933220279462622744608952393758429403009905182265694092301397036248634212154013468876187375365540592653817976435856654359473668258641821480142733454070387261729522494782950631403139763823740024996944005453744962082150128035124493706956603293610139143297817257544917122361332061965939421392186016954601080376478209112741294886855090174740660550305650831996568607465444314490885617615016745443833099970484442824973265925131583142179593673846492661869161963335405267116013073863197416079522999489574869899862477343143820222590847905586508151162024772335267626979965355857300421386294875936681772091925506887380511401953109978540660445137099817400772129459736133365589856198342091489686139888418548936260428884802692095346477929021721507293145523593485874699669716475612573208979276291542811319660393051600944899027981761964110956328543383023101973850940583240035782260848556896468096640805073237145667094711686795794274172525305946767615730714484941288845310523016846333071653950490614034065515575933394733257079890651869939075381442488658911727346217633455045453395895913382592259089380833130513139572941014569487123134030260603164256316901161716829802592479456647916087285139463041564024884534234763044848056034785915308924017936556767599369411658642433170097339522506126778428075329785382711409002609856714133430693629741649543980811673140276606173315581456671650245350740218384879296543114802540394082729311844434313350848722841964299248948464695298076649589685679792409151082427482255144812432996143174066204736851832254132553351049536840301319870101866945180328693431482173068321456523685253419468854307007335166971332212740298493892059991337312626949537833982633234177154746852753945943635005398863724232427012175178402978087050136838446769097353990246267597983073524849137514046942791030515535948011233061490243149840857682508001520271827561251256920604561867238273954339211495407861631839275601278193261115294853714518168233400441944037145596801190934076024641178925893157442673781078939702180878632302993622946169421454234460933878249586446795167974939569897627115319495743412920683045721074231697895608151242629169976377390974664513033575449404039242246758877073912542360689184196180969299517012604561992707578828107458246074092305135764840272409055040930652791558655418946974245569862796145250245978670327917903394812154196399492815504171833401287510173801800780614184602907302569196479271633641761580270303784858752736304639216276771120043724968590746783368462756389895774467731153001739069900868273967814453807019401980052899521785835600558192045042290278353809882090517345800645207337125787403959581990963312985467706308050286443655373840265342607329205353217120134237105693476778905464610456643617994449750393182318009393752872395383323954954426036339185063268846791616364567503374029231620062297752785958828462481884041092049210800598553621958868767575378919521396995690773549694913396845053922287026632880846607895017475049148735698146876657701237469326519698512825901494386689292277876094860997129745176855677395519034834587945333452352842620463242517921144433472778235090529986368079936723871198779251350475759682974292225039219283686076233038926146465469980247151949037820482336625152944429573566932363431329308690182668722492178199777232582658892831180156862614655831445831595909159890482368675947012324927620937628445986848147793199571805136910011500457800434068593717353758067514825950731435059923184185240193327746894000663609127494233137036356077921186353468043510362539673074834134690783545489272096698666730088997109034807693324419506416783257280790374005907691554272248157484639363289302060927137095626939586207954355002310555764129576249388521998811199091219098063797163923657822649737657919523098842162685134671780082274955998898896835845752198487332590209618730436394419667659776004410652825552097497587946837750523101307388267686608784577328428124041070315438099649529445675169396835046560053771767528278196769768492961988125692039348594797063542050391775326460836537891835221932230493770815841173828195530555178167587645068410589365379819527163527416497473620270424375894746815474884572113368377440747089600244295070505214950270459575258016350471992273154610539275100036488149808529401060055965535017519224072354889464276784065183875910684867557814433034618175608928784072969294600492560729448888291907079842998958629808837007071949080071483006746614164005511790226056870188092445081869653460874783849511244818384521124670422026977268755974748898389333121976160851290438750907239395830762553946308712603243160194886073523659230713773403675953478141413397779665264301290227188907692634583961579711386639357512374570504276877587134233479419711952366865672872019246523119816558379787163830479367562819203312482671530298377832055343090331729374966008550218443572675671687530373039885555238194015110751290099087858365369638758279786880857080767999397423619649613215467303079502484973944051031201614426101131215348827361614681580524431866626302531028380359660758101472505572729908258839699033049621446442464718813591604884663037053223004251487520902677785059787868845091272687502893326178825140174409831096686214981842126821784633813154330609932560616706256819957171737709220400260692473597692502755558490192528233473493707875971802068147451360665258235918508438085071926222600826432655618866917453104910191908408845383710930354854086412764798999767213781027929773022460573817666161035707825679304216449154660305516637083562635615184060660353525033597250466425787134035859236683252909981961195421910612629958830589177381033222209712362901250775576656645999199597079112378950219352773902810344012020937167607486977847634345123537052740591654043141444273337749044585144016640855499266316322843363398819462241718746869883129897106796740682445552737547284296101114119130655798806932781965496719992160440490367817389321380621149498438652947224554637993308761156010706942683652826723271868903075350616409142316066395972229933731330738440689710213239228840516330949426246782985226091883182504286917751717650824565827024733203536240339242972525616002795914471247383485808494072233064686642367512767284185945502561788961504013378447257177138149580902170255010304685764408172266899680409692908586298863069760752955104658503471945384730665419079636968526180743937216740886343773685913706100609771164122968635419123604925137212151206200291509040130267947399780443764199128717757483152106626594528593051263541726092494610527647476630318950760291952859488663050769297353843087630015646216653447225796040223700336511779913188872245157744029194616897428089740874608733040632294191130631588373211577495147377460603317047074095299196865583328789736052000362893134287623959371506002210770083417185365672591946090151105427406235932026484325572292078576657876524294196865639599518919382871456443013004899591306333116419254943378551192470574606430305493540844597544089689019253038289849099092781754737099850995292799450672673786007394953168209560665642893640980001584747824189760739669442592185714307228362049405242395866034813514559597658253514964561921211315626577574431814501254625596078248127708916378665506890623696784121578866826284334872203877833833315381821915368390006455897548302306712035018013993226304098565884106934131059366548973473919132940802789864720459352751134672499902481509847201979006308052863922331675941784399440614687831693728999463181535032812100340564445903307674660226871344156389239615892175835999843050759273218238666967557388747687889308957954450949209688254868151651056441969539307816742930453595700667868779451242152456520186038776493932133360205848186860972872580140362914636436891470288557472473556664645718035091440289038081465008324137494762428983958359548625704191047569023288392756456220845093120704151414678618729936892998006269920838192617542593607949553056962621579745608830132748724193600122382065429897720911539120986590074029859531554735918511827942220241029952691774080556679189865920438426538253882045986616650521483137374010230947857350504564819236682425568669910465133823819502385714266276117125168731661616085294244188372631012219385600292524514714043123667946078083860152747966766122188608786134528513406449633297852988843994958773253506761485952023144691447052412023050446318563473649362749292806232432171824134150196024340741889728370148623547915704334520441570996809906664706651958157702030223105007839658401088537415333888946601176453470403753392750801761687069681550294656844032053795494167568652109905831141639381751354233030266020226994365138421660303757473505008475916292020964516048892841915799787087505006889984860241608113694096226588926478819409960703932048402466544792190762045904185519350121512905362205289412772973462413281680749051004551802182393095830275227483739557744158263785538078030970102379401065993142449855180911550181183272208033999397692853982442818663000760228322318974617893222143927048434067224825221757573375445314637359393065698983474720000107843439426440888354299203998894180103164369565735376696634028056125760956621764428328307774726066607365432035684527378616632619201714196237794602097967683284161867356658745521138236801713270490053711774035114579140987204359389106399174957115928501900323190918178426388813432084776960122870647232318959794168473980276452669371723200247133994193763617377542122695912223512097649350816446718550524565924127511500201002894516119420490057121963625493512661496941155169204378294974682285095073961102779184634350185505869497166629372965117493823864325108770789857727458294355847272865188856441921643863348749052649471749751624430388869361364509592538454908509872281506545032253269199161747457936603879491108465858418104002570383939988100434817355617231308459101367989597329694831236590489785094995852841590293323929455422559155277227490792140150422425315048581805603856888878604253312481902916525752833544262641887061556396312488752837964515888539812042814216665747479735730736599552844238346415953929776594580897400515785527187890943320902017163734082870089555011201731133271090448774281792091289243530166250563219609493177238942188923269304657205649312521000388783109654153354249985218488600957133126345845298665376105248507250330629299268387743178644841461058146684078845667281731191747616563178367527257366021284257612180567920533463154683273000146889356764033811472092854800974297069172505622028464181148692627262904499337491860707980944632443748089471770322775693465816922549580178784254095233655794744566167944181447205571887759817631758275292182497853770302968275557864510061866875283945628756320796386665603001361480164641261351122010864523481254267515562242782906482100057432168339282448564839317119635771309957612550786708732227990995054303239935199814104926040220056569969806072643752805203347641027875854885881199713556066395005239896455339161602315223007236945960591706643491824861025868543455136692373141266657059454045077864740819463693362235027520663375710270138338584670360298885578042429348362279660795347431454786665296401737852492339492993522969367373429061518247572828256036620678079810669685172149327239613760416247418050147243957877362943049069093443268560575341657774058922085105452230170556026869485805558048973780942102637041602040652604613855158494770362716914810142823488282400221841611014960519514948618556702351251294440754468799861460040594919093370910816328885990949628176476718494338327057121703026330439523390375195291013679925941946161298835005835838624967692226621505589931795831007622055563065984704032558497876217710361650236500740585844138768623547960792776497995592691952215380778813711884870887043544223102269363456531482645842446542939259752271883572245510453550058491349924485472928948675885930835664260623509558823915409701408799341241049605872412473984458810179780879822855753997260776144382459226145007504921986648226428015306323772555888150771641943654129602647485109548619034363491375548663958348480406161608421598477388317560115610265895375905714224557744842678700637014011628232221308150506584313373368049075322512805721933162989490956046670768109563440990082706004614362481006517923962249530239518882701917765657389878463977868621048873948988215793492390409930895883338020714217380627983796074396046884993283242451287219854151689328341196251343725520886671103297226800315124728535778954956735836948430393150138337641730100340795758480700129125076359393526433256580701820920899359671329936108863657710028801837641383174413609607772475480539289035429752942968554179665885136885484046175796497323399133541907335579652782367870154668829847576985231574157850053612605163932641727573674265092221613371109353379446081784938718977688103344774127948086123744459143621476595401232510538766768628784582015479139044329137293456996205935082666087957162705160981423975232937380500379546388124104844229099487069194090132963124830176897634517847538158155371798182762892269930477248344174427865100743716183556804692107948060804044360963812006748784421963732187473385101750517196847756614566653269731709075559808164572662634604488722367735923533232459355997676757736444386288697182686853567106033649178316227172746368482106587932652017213240074058922938457639034504788340862555037717319131642924126978581971560093004644581079014871382530663624183226058302377725263366765001554898584845596637985021957072566613753894224693823267506404970732305582762719278947675713516456210997771118154388789609206725256015814173416953647112939246032461977585216848253367323520659016264841497312338569330036057705081564025979680812064598914375492404928101382870644904589794199617920079198660615682927561038302308748328378587054979135291000624170936699790583394204613870475069911691988839234398270400655991519081643232424007210546130318279523337272839030113141343270593135682930851161860077896674430209728073384981713599124736224783537668151641603059196347970800368662221880821686872301682958459802047768797574189649585049578073482278409974897900444371405507903750699343769289364832982685179871552836850387530281132963533073652162434610292633384826400585757068871294179987551323853232827386039298303485467164918768964986591737039324341904527077784198291416449971119356654176053290313900320359159703904121008464136529412606364057325402797625469575175998773279556727486345791531081780870402443329663232834591918886580415004098939428373069997711332700325477056241396485393440833273130431025182855064399342735692034366783589723172005227260255525831251918294334754671344798671563623617435252265533443115659071509027425702646174470437089049820070428230812202151565446074746767814595413323319021632962667449766184527161836226850577125313175831540440328838749914946681372333923061165942779237768799248109465633144165614079404846912322033049969536735853114322852149279337486261033201448503881021315259852883650406110790799655291245719843059720334463677531400233464215077229122769465104697476691801823048821801093082521065001956348863554970020823965973201570345199129766207748376526065782231140078052316795753158934190342822923025069559660047113815353190451413051985508563539548950179815433335593161629964138163685085413953893087901642263692702162797660499167457898294872647983620380697834117244536023413491325147699509211090430659121220656020631447876055775530418980758790489164774039837986911799046932577719815538441825414053680355291917300500574751913412537331509762379157245011252046643143356860474162049391256189719843987643464247190461251334741723238427586605471443538759995267939107119911206726788965951183350738125617777619583548816386918957057135456615602766260342941051412314039061115302414102064768443976836274181360281186058103362033470478639698497421046415749321731679946880590698435831609996378588690051055150087878312908890956254087079466449828454590035564971532500630159193473266711762819971794081672613250296665092558179090868678014665277129933518454333953389847386174976877140500289366708807390154330856081867849041030307448098219370712206694272350482310147675914059027804880550630072967191440592795774874238587648422985198092837233755719277209790208387771964292126856917055004521184674174781804657281891275696701014133886232462561095730124992656796308602097545388537920959561086419821937120947482294820054056987339019210922809618305822540669487714482375371117093162719205453221377825683189886345177417977848670866212452361951199186347128300369648629282204142996270944734150986878855654701820023795208223268439328295790822799950618304034419430588726915527694411152425663004731292480408562091241188194722574731429616029942570785428198144898438322365641191555048392218113065801227238783266534841766005083425433685513832415765705776759632042548060824438207619633524751514874810799238258903006518693022253235106473724356984201440094338424958905398981173182404306846335225436183210952478343050562883846499739181273815068265539148052769229396022649362699201110214837100173046186619619118231471729494163276830696302372702410058746544807085404813872774659968771424975383393535539265664130313889696252090896484493369203760550875801271712257935376995253069080782286276695549231247374947072626706317547371442863608834028790757336640741115176155566100177927683783794218454999505270428391665816671192961679333596097330959741048635854128080264684132662965743694473264878138579295876914314422779826027700532933719679826764997076839869714237551861002836647944026262528597002785625048192623041323866623302129954659596043674746166023828745666761422983881442692981038410164987371971578879261233340146522351432973338489264567224181573637949573552873274337354869431129930145375714261711120299199019867526152935389899037887224354764123937686788785516498749885454384319812137260678717756801183610849281502637767926045934216319691650308393075403494455977343651048862685628147358104152219869170018274080750811811683380799438857466028044220015854517674790440138376370878610404145413591409244077841504571935802204455994294649760906202658356796219187003998058268068806529087563790581004746868565763887877689637179469222630653308836509546234039365213718230221856500494874886551565969647294748925386998972468440354991192167917097533524501605586775426786881680401783351337527892583472373311216577757375320325820503898527538418484103820896977641782200879360615875763088097698884854372102878207246115894189965365025170798248283915009717273202763272636096308535831513163442959132726146228710259144522173188884505641299464789107143677775130772280508045026621084940823734851352244199441200010157956328939259339633945318403329303534056303512127121883460225929662430799562346352011667031526980640045346020558021747313404783620284783524277669447892849326336820740020772120299991776578130381603912868415760421878132359865646108852684541150517804814494690032179532303786984728900020931105702410364357380928933168733116900872118068765681518697178650836662122209952086693895866837622471956858817395630585964982758097387286566648146855573637152200962819787493870736019657597641299761017972190033776373291907984493361633152963980693549358869436909413846452926748909404118384525641814139344054940825927428780463917704274304674098334012252226224598590793247886748322621846960172308301291397057162319009575699109335258265065735161032666647038130667720263892397645815144454682808797974586920402103753362056645162289304838514875696377964723221130164978118687522962618740811109401409209987094759736185746760838832369315734393332389595596819516372956895605753653237980877172310714785358898376469636070282348022822761601698655309640241520393933784631930557065328489673696204029606798770623900711036089097895237795163801830145238730639046023825317996310195440908492356075473554723111232172074174264380708508358883496916566926201649738279679722766943971146839709521952208690002528064724700054696892451175099370077767334528529994812589414858520178845139841325282216665337820773520598609973152385383434314241117552522526478258307030138087802711931816979699014913998398682269364925317775019610075048052494689276682674901928221904836228229422987458953282058583899835027179827332869994753112984188320298420178002298026407975501581699111873282516016456886958179329035638602232244161980007570895877781215396021439379761404668501538587742422480620559606357555051124068967972699236793471010415405833157115827948226216394627552255705212208837091525064287048319829895646388283072282696190506662708615713564965466691175152792976260314246812071942701595214123955291577064192903528728659882674613082044515478250579939133324694222820568530526251607258527189606719438690227367140590493159028637711190172917658640887042952948824939467984642014715816441000914447641782822180889126245845195037460052708972637737523048691864314915597283583823722828580912941017739167589460202237812428029811053140511189563673664718271494430097028469126102198974654483741998888673782653399021225006764743290910270954783893274011255658292804538795164908356769524163939002165731248659343092134771912780162463359542858606187018799625997298157795204833808585362338689921120286841002492746390897935432748483225223195420742915072462002010881337971663420718339664464354669809887222533542074656723930667252746506614009321173296630091211535258278627627882579480263057907012734470365853213957175178716802748120257109697209748833995409116157244639745784693843055315717511980012748578102497844331671647925963172743195727670349391268985103578235559621690112521505419817736148601979340290591920448696083206400085403671862899072822470439856462054433064276190138570614849838474600476052049008691948288034901797021360238196476273737878835277810820972500335702111691298470866440594876740258774499939185111813300915080007729526009402180889053618281249697053844605242423077994285985674804707039781490115643000826025747425573609018867629168087843146292318475065763500407805434137483124782645144226134336488997924991779238575845596874994062059905876432611670176918231253578917702184482881989162878432790858231770194452030739116343005591204014564869565743633562763327862455033163306588061032899735820410279425203202112087876273996671281780066032581730519982528679744905229052575697630747510352797457129039625668154014634283195598503099100897377032251248005029481828168989225856452587355636762650306984523186079893459686581225564474750044057946472993493460457932873457515057392052699251303034105102422782039726100478062569321008630076299818370296493769930155761310410003118363113749300802161395941350096669542923734289565019068825691785696763578329639776850144827462235642850517671119175974572164440888565881900357206919091544798154110697841985571234788428501630673100636921613793258200659151352254916456074273269121688020489719452358207581291968827156726893556099902938443533588197292280313268675956157718670575060707535596248266147410522532023681988004758658204982335784521844147935343484462508279680829477089439313664832159101016727227701426999544781579829829312183788529108304314151914128255231855898569901263785205184612163569163680759992315447809878263975827456251213788323137959204889368106353597620311135697775738675981858852249577172077031911586885131848437224760889411378739638177819110715112287285938699905059897211518964505071367383498268479406328529615816107461368240031541731645266917099500735696535311881963399877962740041199980134358031332970213178044490233526611188456478789714658093191363619623542743775276732820500075293296601229949398221156444956897629892979853771491637126723276806640276971132632383963831497641979530176188721937947550176537307750934312702235652829834032860573882223868860881278665732921634888005197704067604014051712482976914003288116858290904832295427524362094040930642827620621601392587617786763769475949192767885771286916613341381498966174492347135805457947904662851499611108406925048450898641746957352914172640861107149818723980712336181017792081163903008395859742575250215150376805770411939983039406892349344113471043732594670624818149202928844434649048362644994372283313110312742403938450073370897058949203843368529171729109499741400267147386172561024149308111820072672602003029609844358833065267983701375471913905380139661052235500192128292889473668439963694301661699240318062363350046390731523914028780637437546321198795934132201037587311715759606560875735806712534416632582199675193682833193233654602646620326699351231730446579751944068058280772968656136190470141242089165174531669292638324859624086662252565076981214972913756696259630339570138355805970976025968675539138580109044884207051960719749002904052314733775898258073047052904243799146028911487983026769443377459521418124807406169302329918462058490680280266580396158582573919523257557011898788589766029311907886502340286964551996134886313112967528691925397365815590739644676313490077328702508770865806050834563184253320155058873387271305308506252142234343724152280062633339674637550838364712323930809106506801551991349167478116950334612550665630325018836170193157111632337045517809957122794679043221606995322672700428869822344799519780331725144460870247325502327043593904875662597606015858069474222213016438643576757131537893459581496745035299583837408992410209133471477399864167183950480660250241472730220197545813905711635004072371443275717063453059099672920517810541115535235203971729006535135890167839746423008351063695078513758079523519849011796662144371662245369000492876354571653468122716971423455957025755195295670482116342981677725338326194322579682971472344227824083415631819260458621162615877078983685612749737867659816094194590367644127282222742594779078738778916282183319238625030612757796969258546636746358478903650436226804468592223406651631371845284437313823750296223557404740734589086098145694426881514991347762331551554677859276333729349966315477920419492907626933876930872135038767631306397216382611242774937058298442298085062415754161237813712686460230179902918416512494486879146294124135367971737012315516147287497207393684639816491711925259964200094220768485627476014509825711346653361965294950084124760643547480239099349437843466363939896468768405006552858486571295259932782840874404244255279336730103004342179846836925880369673751956137349283853213659579395735976781720974074551220446914030926026752421630011202827094371697118883262435035592360394876696167171314277574771520749116173175928114498111934561513264167577429449619172112131851138638219381340186652094092381762547173143485219932733822337677997450249788373547406634489367932852133633667052597283317173322739097569849130147143117893571027966997471505674698075512367695725145574472644082546542740047515506888787873354888206688490448102125454400903775449568680170585326581459432539690277632466138686742053851365210315062125676644873952358593741129025696891799019701066679640044273619093837544307377844430235852158267734554680949098751219669011484806942795981517450390947696921107725441349848453127860374844750138133535709494928036781619147751733238221664140465492912768884988179400689452680414023375800924692821281078133607918790277562268782943537509587392612800809024983460642753324683127176012341250306758403113475740168972348311473726271610316469060184553192867807588188406705268934199710354337266104412955823996491487018150768566247979437253648326808078773027387357025795036187024378613260529135657129145674055244278931594682980013264433797048598267309881605490684534041994129697304687677687001978342044684124105103528463643722523753334618703062168861840755098144174564017568803568667586056392230511788012416260529170624819799274841999796908913495125451591903036596946061830417572157622909320649175679060589801072197519519239726443782265914190896952200931754418503611068015294768598946020565990528739425720316755885669025396069326114468195481826842586095383505240063637414707340182618395410600615943908449272272893232598744789089606323614265388418277748901531626468272082233394649943063964047725435090319805209470431617050399894452024633363067464321251741724411408187056817020071651587310719373423148829451625787692796380405307827550567588198359240736511164630964297413129824967014512770757259531690893715181070608281063316629941406812306886086376539280559262223993214392433017713059417777485470147720732632564934670216437988596352165052618490529683997179798017394052704633568598631575208754284844627020273864716585963391614548998731016509594782535273909911699894202181763708268837999787283553131190194070476636879591574959743107383057038294117109976382836051071573106105142599671836467448436713768623346712520075009967484114518452993481243560976045272763997759834215095301745600272223786034646918807873533780704762852714425013543656895777355837786603959524768284396325050136190825899438340406257751702913626503032360881669346649868076976618951515324274723947635135104198487380877310338233979206551979320801161921533469634928826651701363558602167828860270102627500645303469850667750159105838575150803384757562059682309092371816273303341043316974913509027985313156187059825814699430374505261637587530423406879293767564613332541859748845459561531387320910981865119529739039424269474906832848637867817903646988977579398954848776211154340384407573525693466075302010094284280332990878046080721676016819236976412747783835946030730838146368231417760291366328391657998335595113166035456915839416535500822581746663601279341447836044079343997495080583395672013682149233207261182563089392501827829801169211055102264098882116747296519225806093819262692259768092827160184200252721804543948634583686129720287972750819238818740261509590935833991999693897970358141293459712409363691325020228460659718606491906026761807576858642540244498944055298001756114729519829399564854265269690863342034064630071837684980606560249687970598153993602680673960291285623386301667029865232155207457826747368035986201885460022079125297491659908673172174615760287386903635585269149598721543705642094168723091899180804464573938931100408962441731681874810771892898371046935771657598445040572015873011646559207027221874206102643620209413345445795429779534814027577930001832718277351846093892947388958116691025287180500316883200973090035819168816718154173800381265047411808635659781185994801189662234385184436779158946579929990972176916837350586234218930941051167602757844682516846248928823081917058245258219301098890221557429432094377803800304881694783495870584163313084657821902597329004169377371003694011048173675863190790838618743167335162958668533234399342808174623220671224327641213473004280030954406431243139503560117181338472941950516333382539320348823870702669457271218299694094281309627597978993805315580571086744597750455682676941153606136421538558154044082015079810966025171948612257199747911758740327447762615161733484376476604816659133411929590868813579864671112854210151255813334372463698469974121620260168016093038397463147173486990172714465807797947641696540449591953580346705557642532730990186483178495946140911912774712307222866956478310516886511086943297232152168683815647023944467812818145042824162318782008098282914122051268738271067659634464873871513676730248635298645234938686116282498598846774750863417056457279518555714758278854843440593220611900619623260067865645627920863136975531017852631758395636874765548119119513746367289495162011316961292432689518719334806851116408102484709271505345826519916627296810489469712986888205717105813751090618597018665083637066893868436196186931793402455080653527300218627291040058450582958159806846499293130359772619355149068968382589668902705231770985099662760709681082783550337993415798911079152196253722296315031730060384245563530431043524793009347693722736472407240025862887530816916433220782693548288902018306077205016704215273833785565037898522734546140337353649271326678873495673641338054296550819345319973648757015116348275537257504308661759914317639677670288782563021187237829468670102991240690880579068410762235540466372897121057277330106359947094307075044417266449023846243949808530967481622374209843372492801960596788562833378380225498977998957451103708597509059530751498715227789889320229259474596790238767496690519725313432968009190585141372380539270591253769200431297634429795629690657691124094326165750073859620999011962285742077140840443428190248851362391769426719697704004297113921468996020780730526307409360685926426431739359689510360903483589760562901953064529300455627999939660722576252309243281550398157004708512336015929906908702691417300422052830254605713252309996783055740654826528168017749297036690002251295249987877274590095792459184373761275554253524541010789474721255158123512388676118865985671512939819232022666479730734347829555203736335806998754368280269553523786631372542523971829574487076446423460110364584054814696551270097384790768434088740843931121716896291846003858436961589267353624605669241734821559221030048323962674334691255977473193932776428834826198929678453338629084661896011748989805769190666116532169195686251872118981639639644620217480328823682584626599922348025055531904421012284984899927343424332570552446642026338302969824206546907881381368207065807836515953211088457294508013503036551246732387701440922524550189456437454287123118081167614500137196068421130719741168153096320223052903860232802328537172532378610289005141565875039895716727110265962624742934030448126104049011461572418242216354664554980433251681662348330728662783550310490126647610221023516797295718449513235151507607315519059013896706391630446850318924694350494864207816243911546057322817331645753850861821299238516746947882636605186880843944800045555886676479051863921692307544089321422305607853482347025641554564008543798865031305019239105850556944814862580226914271558511352748940614763969182204492158422336985763218386548959757843584300954124853341143539069008332826973574922339092595490521166342512173407935180236168469655478270285644080726441310026443397176839942438716655243513491157771127989103132820960181770136150980799721470049302156225311669252299260618404548516663006435313697119716719882265504436918818908904052499587763633572538662694858034488395249954030102422535810532297766391335018745497343370469060005222060947752735289287936104526384458411831308935437337682698530264979578806468386874372916156902699181149280375349068884195619521256169610807958773801424862249963700478747117954596464478752513529023876657113399154141692862291532684967074305290643077011393061950995865500862372138278393193905563201481965950387305549388542636580248153448347527248769143226400285984902226362661383900893601653077533229269852604657415486949301820243601380311648041757461321064848095161504497595706488103554335413848419179936055343794913577847626884581827162577527616929459198855642736745546491187397186272687638284632183846335941495313930339124597812868385805212180959677767411036178985892788538152893830221252540045078240646379195960069422100104824975506666794310579307012222053958183220487456390080874157099923344396816213440370915853602893238828086765744843795890323318667309197351471580622737085816933817837061999621413583599748900001365656385595423240997927838534563790945361837049476349927146336996629711345001163314725112721260879121629232301183201363361798101160514894663129797408003415653929270719465194060611914969806490286930333545960485199666222847991470024022443220849312449302329104448805722653476226157233400058762702334567761450507117432953897606523810379562747079743181802179803986782259199407534414964456292766284304612177199478838691148180475232087995309769507706604798083148454471573936563146413438150477736600887084057844681770782007127243861939760545813093168385845576809347850701605680493618483894399970755020706899651958643762295561252770175807008090150031353623067933872178567578920336869422918954226213981034196760852324774023878584103362918267905146077052144778859852997679238985731921592446529014108595515952324354053085022465954776177414793048622813950751404731432299288604554083737891597749835626354890308312058970410844475748902421435808391326677094539688607271616564965283392867479968816655299499046145458836538743793055392989107427132388814592852859248249406515733640375608495921016193871967668187681128098218160568368593098216812316483642099273237660742585080692039384612905594186097771886355905297983808353485346954219274681351168333638093077808941461140542242079643438014445909685982375303388670413598419787392122950090595987538049526452937998642810322448371258949549774128699333257920557065321395081255701420897826051169883853802639111128437066960163514600780653648961642220187892974868253956334551396115479606891230373401946018199590184025042154984153020547315247398415148416056609472754304197075888124809799901849971257141562339892538909425192132499191028942785846659245150111578929113911389402162418018985210570273981139036221223831723744918445268386450528605698114858647347825409298052670299333841801093744607200252079642939887208384230823013631300457336451363771535090013810726622404069480931025164249593463564271956908709461559268355680866960605652056040717668950927488300107358973402363291262010196297535621215395936415732149208530218098062411363989099752696481620734270506431152622757123727238457119813481670783485833496139695625283550180029229054749229831599477465154509943567719278322515922884216402975581550981046660327778844358272527690156386590988516518079042030025029716733502098548832408428510535820165356827770396267024688256394566123317900182436622097583048167496980043640827156262819319989700292183549580765082631388602166413486060902686101210226415682760985131251912111416017191151192621429243720139246541513863124720981729541897829223737851851606499207420001909327786256802144905132944405000828949824704195803739525444495670870471743020637076686091308183957039720510434721995171098003849331548517065579253490707932769531916894030353748515756177569840364631605104979856898179488936853471353848489647947410901616872366416136392442809721249565267444637159597507256588862924096609309665801949296194141877290145773428323679518998956769850574607053520916581293108693323338934445505290034812097186447374301592351804929192249445329616072867622918845428377508478917806791078040318921883541959472594240212004105292722165481651301434924581150794195397154227737851334260892253213535152247535946234809985075823036637286803868101654558431633506669936116530113914503114877997601052983455906876633100897403599703670476278822240808329437230921486413011189634436023798346678071753128352937101223161445215588901443183353792835769804541884151547992796024832043042974069333216125773320531066542862193284246834281439981311349752564573000546057027255903268683805984147301674665343039031354929335175580644341758621826333933171016653414290603457910872232838670293722050302096143320221862260864069837807659169357155834712265231647380997611625126130794574745689900125472766232950964957635871992782434541855051622073594726314653763074817141813299310670865380207860721292965237422210764026093503848031684497528445812338992915932883861421069387700200637089859484691718169285366814226552507368520005907420395864646116317017593785552640470228051329391790775391430615709037310600540219082096849097793872711637813797625082331322647179022820805657598923720650274438423648407300951679792917590517093880240383005177935073799436963328294700066057441877169975056657252035359088233940370387946302432162333632660648021532011607335152259870127456409405274467034614102278573900050666689033253560182894371707455041108564421016157582293856110544038937745630330959048641681274622150820214839772778932989992571094352279075998246211090393837359033686952313774979472461586532818440585071675731747708985851668889553507223533543099748661792248987113035824173401791143957478239591758326507361048964691734797203254986129105356866998379584778544104205581218089782619858375070997100846768528479187675068025678046707469781591610632210154351549498036264519902279950957637720337671093492947210361528283989782577167767651238951665270061150352187830419060696392115939423406920811656600187639177148479488246964126910597353247821072695207906956164345263575497080015070747499176774050369665625032864192609648371589980254827071108432813529904577892891113302913026784807705831858580423745735314548904375471532080128972775705563087654954540556556248545944022445691418039597261599925650716295519152064588350800984661340898428292714352565129168667805537087842576690018787253118961223045050287936281507602604003747543218103278938066998425257738309624015110952585359831804440450901896924219229016130600549058180368911732064423592960311708834409698384131808563819264801430267370522198307696089026460836432351225549967019844646948309238496827665026425440663511021639567122519638973834042791894496123616132902923311121969644851744969869411958691989878601188771670359703658244342013616873694086390427254212521197243864178794034385051262601592752461994093455859415827930223751052436129277409116213098912048405988573215596405620162222935717292230856481471020457562917092815787411866418710840804542494016538743291548027132215165637093726149087770464052162851329329140161697021611785918036566699389386907866786053795475561981738231484638683252839688716453554825273212328987826086271579607515879595353556552154711809240412040112925798163005501817998473223608423090980112004244281736030563801932497378466974659737221276915127853502386040533271526612804768316053772120836114854377918685576175748543047779580491118534661642442865954611406288990229392759868746065224001118856940286454476156236293944379400364459168846002283546750401371193705398745359510442222555332624253687519969698323037299130002178166569804916047575388591220247557872144169091061886663133982804843385930004662967323835867501045642176526136311634136143370885353528762083665134858925069273419741025868332848877614270219315288438212819618805477048527486599569968667972303155881570339714882884051746846891476053585496397266229485104210684952004784452980775410385585164258447275984318811486539504222326355755668065296734754345740817037549394406472041558446143894721260180866394395491650366465805921391942327000015621558904474272493988269347866967544187018817579064591828199865722116905249065098881028710191709857601975290078952494811712907543359423189837942558641475644085101756178675090707491143898366393294994230440511239289808249381497950190479341302348186307245864180122775024070964156406075953795754134185526615782678837645508634462617890934880578851788051951656361661726408297699026816250846007574652470300711293456693569079047406566382264238095871671948859998568823265690403250688831384727698107743925772167746514761276620747066436361346443363619054539376944497735920071102628469835471341723219277075462385515884495113546924703229045954388627504418599618031845598116334324876183615085983133083731214849492770751376546967254558766749837441670075546087991623255161881814383988560935441840563166121432405490731133691943357375352254305320569430883604070171860154538245082956153794251897500308282674066549653042847448800813142625733864073466174994278918777245314519742979863947391296831035290751745414581339122546313691820350083790740861126066880236175471716556356372908792005986674650743995111186525485141760679765437067461287871167480450572619122624109512500048349591000040595450522606644200130701654327048026121263727126677561392726012360876996113379520214712173186522611059145176645403898651629738223293896467029600212313322927603993741825807249720670141774627228403885870728960340841927207403582626187171224100073229311996790196239624725584180013015086170696098643405931499167867031756625572228254357862877766372133990325953012467439928410632439857438335001084868670829891561161826559053908731907551044198843290943475261223230010089866955200944228470316997194501022056751016417187212229636743574233182231973703291140032566056901338637140156570541262664483866929257860865963258836772035912947581441603466981187910779400497782783407005787174158791884742754062533539438673208017023756343912689596098246937982322820200993879547706845538470925317308462080735620891825242613651708728583253741617267110221862179190195520821010674307377741052004395166971125625231035279256893274528182987440630095558242126323870275140609363970729175665944444583135429029068941314514273475861773573994483045715638849361417855301406835859662827449915975611862962126885703881819787252500319250894945379058145107607908648305147031014595297016667650797909795129174303871380561815766029031125675938657395356354240842924153010254446120065846823549555262176223346241605971846349058463409428554537754155075060228506326303127275659123910363069871417021979663127641856788744551969902191162665927477698676744753022268807759734654621330958037968318533907377180310629677709005246600614039761876181953306542213313179356395523167660072440447100989094804032511561439693837171236358058969124878783630020611827028903154907939888390784353741899550740473669998378283288481214692839940259409613601476088611402824988924311290737600122305183278690314554220151279060644113423553322906276106546199972414474165719358359941906101649695849012447725786481262070040220359623146787000335524505649624488499176549739895250292912133532457646009301526968870122026198489195898618922185121348470071818003985802727760384756067826307277524569404789417160601252946292787052931767057842739956675892927319805577293047274399316433702917052235372675594149944354803504925483166329678944231017251232872891042713187748047597614578401357779505339366324924897686195118897380376236976774540115834248123609697042064549263305646347556472073636716261262240594150313541544733430706188448621571378051438301871468597252936060118064442426417132658337265329336113527190038579649521284279468027057409155945985492525921699452378222892977657038463486257445556520274954677436534012606988086721857585579490093852962236067860944898835563040878885345079853113821511336479426951084769949860751056848529663998287139132058414502951985013912764478810105036173189996415525676498377149901360084454118465173680647521647675641457639544185541316341746558026782873440171777288477698726385042687671421973292895928084982812444480315379796576183330424210289626504218107741835681604221349409578887607075593178813918690864014048878530938206146562651359043173075504290261100210232413210048449690561864785797998334313821073273840200106480913234515711755735618639748811055561955334312180423439067360232150962056005296428393012631878986231604726973456611028651383628912250275828820781445505768847530512295457646235804391444483862553033833384902859221237148298439458630624574432091100538050972984103205371403906507985533763176014539824421770398997096759670143646018540388628675758163010570078110779927732393406078137096991351879658765268445749694913094739763149508503073701585884027389588369156264209427450824525178883227629287624271205638141808801331038896041180702200449899526776505268961011129472568656603518979772246172581772812660000429434225061413346228854115480336194090068410489592549817817375733082100365640481488757354072801273322541942460545694898552906480578208283798173182410589653809421554850863339405226414861904516918902075685315528199306725115452300005318572526218854178609466274628717976182499480549608486302621204552932746884336300443991189079689670011571257527320178564165053945474906399368556591553677800227273121609782594020333991606788072886980660268723144542876872890015431357063724848187128610151097363041732628457044376046372512661717469904136634735129818597564416657328231345690903923205934517157969685269977461320519125954115283393473838990439314191200998782873001263657120121475654922104075442340832419134162887944294773323007181101572896266804562240949061516242555837134979241863299616926984988969120256557260043374607643173775414630786480491156223416052843758905046399966456847907668650899154136789345039761899797761241874857867014979062829026201018689814060147560987920716652744736449853758466924689970606888497289377287282521651735381674603642848860393938624758802072525418952480645270131331559968339132043638366571110841712698219313048067906742209413245985724115475450922922572717836508299114163945637010555615104329349391351377682778948874958314229550400126794841889512152244585394726080217759957243652450840626870984046665198818998939158670189714673635935111014678049980131134860956684391185165680604936182213895945865867773459913498561864375709640990639324618298880852317617455805238024456161760374054791775495746790279602726587036353498654613546099378826090437802086155020911458561953551196460642738482140907146546891810892467698330490270321851377164356012611926630387206933930353070597142475146692825401011778399112840243120768167205589973144430564703645191889442391126051433113227366067007199344451079875853619130174374855374690971650606957302692296498028023662618984707513948068015735095710157913822704647558810439096813071034763621733550645931883890962872289518888076600488529267506521758032377392166639906683486488310101821504204611894433621079267076654883046988697094982293777604913462936186129527564964938362767290766485264696714496520083158308008131403052144070850301694729072820816243073718803649468401022537460668755724740091948817535832582335179447307066685706012517644771599523734035774318329620847168499789749513054396014299036695438347088906405295496985371523200444066999430447877179551449797628466949070845782682983368553639080093504904639537607272386705579594601763153798180738847338166608304139488183269309892542877788488131639399029213305536184597413670544264113686600756308583009857330206019137674885456401230495979834284231170328041184504714529526902437422705483912794435307472727076674344502723643339221200732918970351995248729667801345842069166211693336460912117180946072932828197554920336744920090009775347052188805774051133347690960866054537104883865749133017240168827424339397852101247990805103221988265957204330842547485007705557789605272194729481642566817723779365732925488570580823873585120837207392218241780769552943683743735764336722522496423487021913246955032575930831152423061924911057237267643873582336863541611572898705965462251278602111890640270045903447801185262745209974156487065182179213962862164267355811738823510109488424540088860633335881997797295443915053274594912660422179402338242255087639531709356070584810738625597559691406889337475087251834663023358161654580610721269784918739920649189864458680905782127542092401044724995785417588753974272254104607861761899810123702725964322364796762508640746965601110414960579851658832806900786845117156586037260722864529141562981419581835804660413515173177408311193352472287194478207084611503075316600087838798823828909212416903674609051100323051772269158893890471012957129205745206741927469777890414312537595807386153763853868105535192429740728100006229267803239598341454269266030852293121591597293878094826735206283879876631992976349500050783906593765718736022551817624041005077782037186604141203354672363616947532124713936987695918228407240977452252094626812274344275553457160692185886399683927478336421050519581599843705126385408503467134574249280661884779414507954971531588212552832998481982435984818623398025856434583428510388420374108256386500025053757450527568814003752034270480473989153979294645143608347781633144438706201179006808759471497188574881075103138226908629267940590690157054910268210919995748330306119021249169186360207761095468490437040584879929931883648210511137716262978129197698699420313916715271210420369143865837705343690283337413668376486614974568178454905197547630858328561560332923196299587736097928132241591657170558238657603358386891694706217166599456941796702402657467612801895611245301064876718925309342470133609181865384880214976971666879167194693079593510541736213586485563998315891666794713098530795813751457430026826295445011814766316787379813855975290195474663688536904609205878805591854485550400604798177251341542719162974077948039645697829338165973727068222142494947353036182257851757889878610581337427193328543970743647618676547363178079617474426577792312732602007349678199699116379201225035596077034639693640154641679151000219453730072143603242824993802742668980052976310072769407100422673928542454641485614116941861705179253031557401305513444375197374246963782951032579308847074278257222896620942364488608786306667834147949206587881767677091694334834177526080485855834219038151826193595504612919813469455445778518482258541075098586180738337467765415980568208393426208121285437498761516897779643631492150011075437443873763145351023060149399877303487617233444698474325684678877186179596438835816382543320388152572098052627856996656523527301269360623494815041000719826977926680485821909619726410989008586671269369098256309165266962878747299577006382125461034096724045405170194050231531561651664621986640976542563821147178895077077579212707970806079938667401388149151183476659167867881447573020115943354429605560052826356346337924550657766075868874491822094326800819350596670007439304687125143976319071265163029327060244012151446853524206476473623158993469410887686060898065805316514751562908228728429416087097349274232685297709761908431817199918009335260194472835232668555955357818749066949102015388309616156133665802839865323161147758992058501681151341423712361072253642192932584829459137359292899585373414008318021490986679360476557995111747877075732199698075756167953350102236389950269001066912653170486593359154685736009791117492812669433857803176222195041944788691639646407441165915255525481254809395523894214625211720833138590002055954987492197018239369334112657469103657944177165426156285206948789322139662223324669315442914652144748223941393410332880308154517945414382556145796535918867933629342466406357260122864524022322996330612773918145602633230160653515995622380129485548143741030842719372834661856811459263730613521296533192850770534000169587121038605029684454374377945505912907292704930317769050518599469678728476787888060510414359961173787053033822094463073605995959448076583125977244434970609905456476004606369495325425298260904785701208053488975503203469228181753628032009649549302690271917899560748629984949087566458234000101291931520485569604512179976341719011565616193351326800750330845467307394100796325160619531391442259410463651583169158771534026268105670963173286915189183783465012044163112559661298950591902644035052411156701689411792585460103244514893832001403429572122194045795841443303502266459973767215153927378107643508078202688346318473504198470505765368697759439159556590477428893269549786837812015975595762386721132932930490551001147240443062529549787533031215344228129651626291914571646446443196193411717056377710612156469493016405448588320557155809434313492962382595798715534717081407541281425219885873498198252841479062196229949793393367711666564188709719465094444304861560382902429262153878510674523165800491799847983588927300536321140913302832733618428426125883461282901015431220733978376526889244242679129441276671681755855172497732656623994464112326692298041774913453991571238424340481684386734105361524104685893037978166197796235728018149278372758196650004878169104762387371060159289078328865764249769365122045623570657605432968776198768580830326950743037163219045151794361378895104550111485057001864040928524337664399382512347014926237419977072585989167831180597049624947317413729124126355339330185321033714286857534256819368526508164407497912890264432022520986405886269377973550238895359227069593543973755634047361891345793969154618662806475299363290823850114799383116699279282456753106935598051895698448824721100853656146197547635422411623024193501009882524799854286415127624943306405933330001737148202342964937866206948939303119924275523203488533574696836852651017438197495716538704770549597428395856925927322964933065848733284688285680109200605583523173908412557911291483325165563110676591386611382410094307356573367676366712388003360394862342049582902081023277524794489792460172161273342991528925961515876634339382238342531601397540645751462778858854602065971520981776836231635664655895833192764931995671804306226963358255460822077467047608416150728426865608210724509634732384431237053667585945112524409070828725176786424388852713405307301190416767163128756587614060231252361280940086849943579173971640137484248930061201986927771932871857419016420670951722142184257723578991020805816679068112404126823746965779684773204291025851568793228698378209890322674910352800471525496116321053447235263059478722426554799709723419865366017366994292057099990204802588732769755130447504609069470944302502181655761522676441315489530347518867894786426532565166120631671504127578186063491650971757789402668228210449987152759015047933830990776452213274069185104272711873534141335326865934253206587876665696119903167338743670243999983566546807788519352815595117997873913874012776821971417973749776423846064760731917168345193845659735331357944976273306338836186142226803432722891166499042411315978232877341045071584521091550061410359212436141550790063473353972521181090616092158416986020507184427849109224483898757621927440414242509960420454746394055787179429863011252288660877784494878186292407558819992480056758187165507189867194913755774150295158485629856739208856530637105521404667418836783506513547611284933488093809929989062971452811258274611655432795419660446364021288625827946023071860536708187868631890591726973649504155116885332916836495983893352316858839971746522047482614823396909895668799566351981111634098612529727084817641442776774448293703382884909318433091059234807528676599700033386275995752120444153260630055406619501825846975489160423923637733327977492765230502800956782402852552732525590102150446730707698405793224975356089563668148822115828727146830180513162443958264674462023647258569463241891613600152431904035835989959894054815623879801121587669205641354668859571773587152529322977416834348433950852853426783981157111470177891366403952222097607821965171603721397926067566998353230381328663299113001754568233437852879863495863502872685140838677936894851132484263498790824223557759257941440149767070473515561507075236610212634764973624613860080867918994828679300172866581974227602561320132025302451347541305001428551819576098135462000533198752375209674733625275033306122604705301291400336374236718014830464729278802412752132229835299388317030533524237354006854848905567521629648229265604533090780557136544111228368539430940222956925169298455281369894318589033659764847638967121390672531036208370754651364761316740951131370455684610884788425879282092032461054166636799057148710622557136370466764272051802606473581005668999322650777264234400620124059718154877669117781893440424842953312746218209853591902283616297413066589678425387417605251909708284407574981949140935141590974771694864672048827677550384727779895230648722164843893489497120642696107173689655444801090656643455227269181586078736216286638111656193890067053590617869773977203446330310457009045497046229285608101846667891039736145703106543220513143650717584218781870633219413043155486199920379580749019951878759142103320730270207485726873492878407464419752930477509659201279793108331769884787129470882060077379694171156107649274473269743981996974322988060938410582123295482770359321624195385246532197931685989047246800434980258731898340046886281094922292383068328767168817610940367875828596030871653117180019807408128437596491306074437918937448460249322590791999791429939142258587054062283498395530039132191041801631659404222556956778759999472560327688723277227703778932539494835942236892491125592953946608652817571679261929321611581669348410367113225066391560800797319870864604584858976585245828483236879558916725257811139788909675300571487865014654911848446429642355805280065877469347632994953399832645590051972906635184771319403071222636404577923273718692809746480311569594447735647618175440027986905282370131094910603733727714460625626197904525604229508073749255214612305154940729166572108702995064876231423184588273572147327216934181791623681714108957248106961795819144424529646362840587319531439258217582762269843792472053713730147710622768613568777782628402420763269164347477205715276468166353951887955262842988462748545079285073038897236265956265722378110823737547957640206173629334353892162612896576249422975465570949291420335182472766605538547893280693547614652250248007932533853295816951514944030555793696571702239656580037393729727140981677941469470537807392195016835848380333963667137044324911000319380457737780336720914505395934373599501776487148107897812689092094066811149531232509068989247071260760097812175986216856411136599738717471805620104807676297983297640335799925673036255856118162801489441708245330858549423586313928946242667022533573960952528938678135563871476582685795027857459221423691056375891203796484166668983701450548462095692665604818438841429290690316464624034575727101287020225850769668699983590146350018494197152634400104312523944162151397058266356619525871344230136165357244790419686609356198155399955925135997046303259804087045039424147772104273126640323118660079073760923253735163422323496704441456784650842943431419767966112990287379870275118497523031587820501168934784409798524255053867371269341532042901236540971579770112774438277010827655900224868451443120090722793129970329362240146146750955463101746424271236514156394600255364834936920646132872543044941290967768575283733869447464531445455561273201753889201906314429211060784765174545795455687049988327102508188221325760545848741656736836301434273995737813084947512863387567636800213069315399459323977397276321702445620537269416393182459561307091449989409828707527535905060824357549904544366157588750586249937142299260458052142520554321817024067366808399985981106750369501334933465841917898703932987881432911169639343152060901781272399983326084521719744881913352945837151822324794137325862930342295128115631518359891060256820350926807791419745686513188992595600642552083289684612977853360733169038006737150980618726508779957954467436578035172155413350651227554354942094993031137407214467415152395088164184170251311114474647702895003611570798327702404601768602777462828133527428322366133356977988203985806819885124211997649682349965435258272844175070182850776598194871222775708606513068381947219843745407459896483112909947123975118519307760987892120121576246852223170821884640897124287101445250228824236295687276938442082699415703833494425005654316702102560552499751697576007334712900077678386613378304778925823419348657783043484237973872089658372688974901812487519447122773292580594166651836997012900427544331223223267237331086572666940192299411728623618045450567524099052142428836171157343785052771210412024078481646358188185226583420649420153231321963464193239724616474970302163470688381875259756580547182347482422837777505975336218600302295986026533422876651201144697080060299431832030992914643627506708194554783988970907234655289638516323723841321004084323536497192545896383372424168304457585587070588329428980003436227613670024360364813243296922829632077562244424271048305390213193067391893228708289577399950345541184066527553545911999166337947007424987258393033318762288693604796710340484251439448783102434020966757675132355047074189194602363070909092254191761263226534310977860381996756695475853029055438830991151041846807553934675429088396268409579180301909148325894292574607527738458559910884438135856918518261501387622412176008248528975813722815766264783012670232263028469726877406372689115131614406279062842332632141385756155689113031106060330250270898239867261124229003066921389841464768740512362414166963009261053498233693746536631120403814064762009448746395937142526258862128375819169007195717490776167548720444500973751795389944930623307657137758800847436860978449145108985459348425757857738514618347898088507350822874689754002670960080464073546514161861172711519054230531468479262094080219453839225716516891049076997726725594966332619355272184403026441436784548661234647654938336096887084159701664413278904909410195722438643792153010219431870904844357829619997656144952569315883670856048291218764825526748628744924151067396370005010180084885622976124740957865698824242918575324659002367664974438432859023926375182038214477889306540320320559420901964033727266645279161217697735588168163450340799779144733403629508256463254324888336341294816029113088409719925170278149768214475573196682560930421920850464132116264358053204917949521030587797978322967409235285161326633325912211857604130555024879632003728300442920646736103576513075565960342196685681385234979160652564320214802276432953632596841062950348520948958368452632344342962247479435403326893675125553194500792925544702301196621960404535248391667451670679491440522821092462211219757549317921440073121447452199464985909885455456897339739039515770688708253594132511348719202587999777164565397336116600441831945078423605371455727213007083112343234942948460738242925311975402721922125319531662148283636388778306699182440052000542584823097737028823524822106840819184991828955506491724370522187365991911145130921589083015202024559225430031849307004120664874457160864265206052705686340592104543453879189535340137453158560595173449098818355088980472176237745037406900585739373627148029386965610424595953386347425619779459511650131636998920261613282886456892964399278629131036274605832971850900899910242410332217667513241134687008866683110557628311428053364590597600691996460524619850031911448277730334120358664815133157572288163307191621687946917445163953358790956846602329859909584064916491976864659209524442575878719157429254566134410937861608749243578301980024581415799026898203007109907872566299816190537851812358525434317360545475549476908461403802016531537460482763429662127261348786408738705460273587007675670848086027804735749895053303057141262577690669842713329648274188612130097722766801303699695940597246174360980537532400239011500400744472212548502353105732146907977532775401036070937058789107112128190405329536043284490189879620745652639985019926539088042050063383262186341835289655304791389289268583985063733211908297367706230090506834122215314029735286930634334235627365181353047402454284891158647374812011291835151102218130000821668657705934457990338115791853122705952739593174738268898075259796036795563980433821665080094955522228158322134165808564172512197449824909114939096969105914030823383604661474993392174072145886527199158581499487416407039851254709086587912239962424106899751847205031040967580658806438177684079401560711419970818982176540447985892053659479647114589141381557236493250513440367940320507887831825390779656082508027704271776761638499903761366379384205549821472904162907979476019130318415006090776590394289663428637213934982198501271972748024395603205520019832479121228058430683765158832805772365541766700189701478095359512606710594182962488402887934941357913360088709732036034373540326134828555116779537502013562101638960977107452667281427334986990646170909556738561445447938674222857493227947792940316322215084057350407199159296209055054425646030437523471891312667089740541354290654915137988322522716231379422086224963888559128903237202037034747871912384753586862659131513232380759804471558695877306600203794150758336360556607138386079967209883955649785117760753119500874769411306486596747532362523553720496870544826050408305560390462794862180306891172057893752367775913930623794045276163788565577770450499940782228465640941753638636976600776986282329480085275144248504531052082120467327190527809537984469202545693168165267712902740367609416857479801969299827513169348668427877138966116659013107332165502691497129115067863996105240019553626261438055952919425055619578589631329137012566057854540586406654847013688191670429800526859643229638325714768195926182444343337281796740734115326340315609199756023500118055225231673892017436192347828794255920173947433636954902995645828502447323094819593041862733479053740837180177891309794020270199081097893531124699744382563931179777767792086099183096418851105760710395028303981571399296599049340360499340214795252710463534821727145211905391620221350810387767041379191335955118813377984828987172058292543807473697100980054460737877111283253753275406393203309261174368715516193149966737360042307261694451352715536537306740570011207637678203761014471289214052380158238827466351396567025993011545789513088181608582049371681254947227138246814122613527886025434429188413674929157687258384055748163172812401789272603406884044079552029254248169470806862513777142171394768272318701392106497511624594570956162102853627221626430541405828250769952969069087855540573791391838058410789310305284122248509881631645423244579840519834642923274614232969741846068847851834562193677453149494441989373693399633634230176010841433867462770481418945050628614528511473545461608541698782286529600407368415247868238988750609576435883875865330282035254433490866981670987053244819999761416484111920788507475747966681529886998210601835466117714831314682110912158834093332281762142887739052882149191434480882733526570057030389284657076929566579363157879972898310250454231153115621669043238277122044892593414807791262018227155295434207859664364704866137503554771657338749336913049517529299391943317244805286366821656117542330538381606469675977848009843256291512264159407228512861743101850774514579933235443985597824332150896810116516925420964709438127752626646074709052996690639513908588349159696375941760395435925945590806226192785683060729863979005503614420293328402970996486490811004778523170146279466867338345454526818535082852120578016740082331520507434426615695024889682420130371818411328680638285918129356389067572978395457412896801438568926916276659361088208378611044133837575975809653162017811843311919769201134310024930594723749283287675542737243031622901791402848868630025493952067463637370680466704907429951067278035202423450430309686167331202218437575573824551554867463503746759140966712192255983701275943131054256912097406008718639990744779401124470002030382561116170100723604052407110694535087468238156741643884017490497245915037179323786050932915617686832738724085249120011931931449444182538981633068105246702867678719277668262601241798281056691027857673651210606250769829610012296583397785333322489360819286266348929525164992337364137376928163954361319901860068796357006545149626368144407731009518467669499883006450065554963508978068668584357790548960042097419078507255122689725995538577179736897131071712149347185831842507411855093247530038942976325715090634358000715557138413649410909796479393214631381245451884177770703785859180874619015524704349059913958527873983923977734448387128164886395118985442156582428309213006095450697104405344515559921388578335853579721742187464747741237785338871576396481790792548045834017164196658128020987076711207837475952598743990175977076523555243936156835716005392586232598186076104804865462055934560438541471815434419956062840007773697189742997157933308086018631452091171842877637739236731136932005549145802825830980366837092403755750685142402285714734152726088128955899122730823176039227283682254842571148302097207176359988503006551390196430989098467194428647296930785087055484923998899007484760177522368797530647688981368539316517224712485695206074926159105405843087563026707794275846882696674073485972121211811126403995155057191155621274843994858019749435513724797702144432059331354923122485576315160358036038390962474751499995137205096013026041522640469155278708958684603159495080651054636734078430089492071694321561701871783182592815802337797764941183435799664476862375047371411290833138911229016964782205934406224864687822773805864611977251921045549509094037911349044838558406603620343237203417170579065316960639913090018528375477274590868669424922716764243777630131758309522750154539433383629017477703648342232330101381320847621234174321175487551238409383142455575375031277427036805672320175907615695226471481633360143806307268168634189920633099868083650553404348667253729389468766147015036917496880361962998525852983119723501583088614366065446007175556372876134171565725322691520537297746129480549450431229192989343192006597946495347886582387817192018106926853637784598694510145101933169444740734499222254967848703927331994806043978663678555031066169877245520953745583251491125034610179850573372619465174057204263081358888031609235629413032263955723485638578693691998230590805550696188758475232890721155493934584242689192425527577907348402483693653699055385250055593867139916500851060725143363580847169864431654301112945039499506264514944393345124298984786628448865307957297009025675013095471028936750875035894019943824474587404570702113834213808439089042956502574003569179487166754415701572442084403142941419305199408299651665753995013851146445290932976812188849027710133003544414870247840285638365755470546083806441412551017935261179334889064429473259299948543758724188885882224810654727829815129963858389859714082520826841622203444680388508814231102853063286261699709613999948346146940381062008843124818586757407616812442863667340013948211995506047709494426861868455810002820378514424823177144409058195073104405012281578787626933024535584799766293694077845826273335965561214813323103037327488285159388805521850897650380305293326239414773127047230141674296021050139633717214661025699602246017648425781490309418409257539529880914611572413209998216316568065532743318589744447593019947166722135079444422792345483889549219104499518056504517690949985738355318535021592564646899409116830566932250269286525321157062581631236286039267611103288960190951168176128843533624097997100604811041935595246224505997356805733338712045416653862572253306527898788976811986463731619837113236012428972011672422785483979331751637347786412544607359600192656361470077279748154988619947017008428541201482228827834268788751486160956770310958884102151617859435410523540840320662056725330987836388830690630622323369774344232884299000960150265216869088381833741910196078019649944349806820373351476217829936958889873150255732497438494053268923451110475847539954263206522162045672097137793492157959955808898230567795731627867834977627059605687423107584544123239258246407158263666022759791619522223200670923515600609504343418317499221850083108522911032549160934133168871029260879221126608346148406438709095166930863742027450215109683017984516472367860156732841534724604639160560056016975164094943909758370380733902510394504426149908579024954224639103676402763281502304910036278188985249581827648481143989811496633028407088483986118584568678581044107632613452940481571159330407370939192966168796258872766794750497433856844454218164904883620400880441731206642998573644747749753819529338984924701414587992835266400965451470573482847184763664897575728149052244324612329532352753394947738047586678407247890229845175590275194838593885228826701067164996353208854575102608940537402117256868369578263074340346153456099616705694464045793891961723136271486201168000989195074199796585244564863470365553964494859454827089145314556193517354399185770405061731987948899421556666296274297412023353006750994800055420809757213909155841653710869284249530174460680084430202246068908637217681637795317487179238829107516724709277771088021145373612708760312150784889020939299792980262668591576382369201976139916019615188988056174464062454001698648877987458619941756634234041862926707370683458972539365067462527084823160069481948753012634451935237979637330833943210028776233857434197677437657934883224136603207545311953943204974754558731511151035495346781863026257780456159657752208608340536657063948735331752712470221982109355579617554832215981182027858464114288011560347522210418490457663268592893100672859022502367272960234635658467030275258325664317004044447483647570697480384401627464650309917658002834438133842508706323979155583970316203284298452774068181186705362144559758328061956933537624931259373110897535384733170604859166440085911545131224329450051705968898241167688551447886519789714252878573080675990743946967530100592160313419513645232871822212006305681873713903375429834968875749221081396686194706142216413807705050627785428155618049246417517016689028662559534288619372384616143424285608088091302754924521478276594056022237406621028969945994312306917264893105982147305835029500662930355491802686210800774807776135793803579898747434021515036673005433301683055741086669932750822881005477684763707855926796106722747527745808592134268641604892236749855071339239686675727933216149709017997962986506147143514560180035351787159460287538702712773903725219955899089223286174039861161123352295826715462316837600389130268777951875578181398692406488979315255678678795211884459300211649675218195358647776156046673042692231817882127930747479885130217981788144789803091836226891948455436421157359765902339657290279788262167376953327665842708965447991270651373710570291175229834028109995798099341559969085266807147833980767193850408439206337504012140880916278062150236565838660183092165709528906590089714235807989605281857438735861573995760549322680793927194065579342968716443085212173399406093180612006852177007139042046924444748825833458908288601299970787491624259608373270037288924164826047992558477019577205495596641877468616824462007534242320695127941287816203315204564867455078103133286462509989115269020012773381856725496903697973234400419195247385439888573645991924013283858819921329708851201002800464237631913945341085321033330332935504855091905738520124708572381984424291228424272527286204832366441076737690293832462985301147287239966343907310948455798958829667507373281711590555054039237440167904912116203908898733208465986969007192914076032366153361930182283857341666893808350802412453098626022295795133138455611672264401601227974747218492676716052333075921796575834026913745881617446587280100140057791740549516951490404925198407926267602795777826781491832475642173904812056325766737012608432918410643338630938600009191850248028408395389551925760541884970332843794186375697136029058897631156548903408045548516893582374403026070665613916301527015605209243508275516407036874910158314877741887213207703004432335092927331710190395200042088620723000706273767999044726671257125382573365393907268266151550129397474929818612821652984903054395396197583277867750283530183057104951975360098914199213640397032345819985721511461201431168050363144136682310231909671878946588712019447406697260778413679824370802971543996529570981925894664921630648020927282637226290630930992073778194368753589325649498871152728192062138731572378311255495061853504887448811074791999937128139024477542231224562687720047700867493838304044049641191960288098222497039378731438787116459428000021652992921216198409841268265725991269658525869544526041158245080635593126593609483267271137329088600544822959708579207357074558658690227559716386099067050656956360536548069035056103469989641624335130826076724928703612220177066625886233774855620471094899775512631047116629277056921995439837083376584881387611183436441512937069080554087575452633930264450970933682348567273797939643798721329651477422491297753585055077725652387899728156896567868401293701499267163220906420165831407375302413792460492991228604066244581459059623452537827159392305519284773819553733341280630512954665792174066615795699528874851956632834917071049859119253526215207018638542816119954842105345738015392640132902363122846200800943030960695590102610622343535302902703361667560658220283052417624958899964826834756492241345350208755318616975711172111714590962825276804712221618636583199129781476912898580185327490995827362119699372104164996281703832247100270460137990864658113127702562833675372035560099388282748496953361992429643092156573429546384708304740064065979757344623665366957130356551024783463941748908307788099522124357835622382103118249469678300402042109465220602108284410279830033320727517307798173425436422511388975989178414484773643967580349916097226963389987542283228436808098782116881440199114009709632824002816833910917539769621935132709638018823955276774905351875889753901843968088442248036403890369663701205283574494005273574079812618324501668206813502551038962014056636529458028916822755925116239439599520785193390254683426012526493825945211938076150228316928993740433737917109383103007736972499182814093075499338413066917578785400462272396443404670455517458172582350058825674739241575006083003681081450386153951588697528559521180698051962733154377654189486050830661377461500549136976925090410348286104053646856611752792391903065032023175198297020513653723267699260169529125795746447575811371891595389161761993518915574750195864758181011917066319319459017408904660469870416145668298005792353846816196268024592954674979725675960277159701598598799451075114365830402761684710804691302807438010544358229047535647534527659108519822518107351365872191500400065418823973474509792913612797725809315628968106421781921714524238067240258224277550459610273440313115122377225433110508101595584787648799450717462530303919945583149399255841068532927568430275851054507505786525036889422832521316910158195291246550963322957768053822509868199889854804921005910261048561493283816097273608740172315478538695823161261405135088800076295892250722573174061117368344225018298616291555912200178938344874849307639479390495112910249518693880236142810631129021045821022467227263622223177472195802634297520897282430635891584387331850134427569112189378594699152154850375733065454458090636781306536067187385049311656791869161032790077024558335197069102016572510388866895228547003754544469604053017445126025516608470572127770800164845952853501390721540213959184686120241250349975620974483064468735560538955341360318259651942475844662731365032375593188259602748361851659062703093156659272978480888426164946547375161335716064487537649693136845432485291385981697295615400288589310493905835498707783837814465238894015784057443004242966988396088561119997167812131990261127725439843881448691288946047957328528210557636838794940750174903765011223486431184756832333671142750701692040465123355246562510610811505755337745695515092856006701005083177086549261634839509723500663090886132100378157649578932843533696067362382234938667365397326552411672848031808956992126218423797187240299227207749231511345845057736223229732311179343714686117591603012778302557340762702633289574881010315346745401497981534656411538211703940663132071494486297224298157127999690285359631250928446865654268555337225372910630996256810849081342178647404368828986594652940255445678526506289988953048470002724788985954322550337716414751594263775824964094230276628011779702124708950399431831229935950581942579745335793573414508033988681349972938744641531058330264751527962787070175579661781686188580636777263879786206536938957822364250336055459355699449687276546226975481347107152960894523581808517041853849989848627971358450387771012858636540048617653546565871414145712466806867006029563622971275292473084247751834448128008656587603719183241305471901909029077085675641424747287747047209200681717707091982026574667190167432584681726021499760579112362761367875811358280517490902341344291020695402335388454096703187073147836162061519450905799651332880730612434837454524599041811168533544838398831050755668700480971234305242942742370303083217197287909313744438431989961945064660373107142577604215718068338664966708427939649973430190495874852125627129549682055085108472996694411751123918487253491679095640206921537971565292433274917122347686206716755472732344964119122839702598450580592357494769789787716529126292376939923347990244256919638301566469180542038468252894474691323428611443600900984217508661572657099864702544149024779526782637836337760777994936663535301503639636377824097682731615499121102832831118095828459828639413202925108598567914933590592696895002327419171763072621260360100241160671512517163363406595408376733783934393301826713253369050120335266062658497034129869782061805528849672530595658245347258766323366277147481545691997155646914320187753630096600549490065312935767968793407748583705662265354548506869963267505734482941615076438215358391811581660861011148146285556392044930307015471816028660443718544537078426348515781521442805799458236149407414796850641178562569659291759665132096922389552100444981553359049463519976081523055359187140831039024452665037580112437249285258779275823216488226323099222860074646273230239310412345304887401994307637201888023994740402346768730940994806338287256732093477894273947197943383431879205308576763030954361883579997592203834057997185952797708779989375303408128332662416624589963006276924144687183119687322437636084402948794595041249050730782157187372633606498754849782421384156580215988701683891619074246562472717096098210963475104528240479557932465169590893456088284258081258007552344067560484445943635439207722081214191336238891369084136624918718822556048118438563456658803683428558507265817895099163635411408156461439725473643925875170671203996448883304359918145693865710949801754291703364077915045470296108272534198042938373594151419662635557205334739461147316814839522653758461197151074776866343488113094897974647978979358141829276962689249277257324030704853085203756495771747363187196687774844831476244581200302443250731050952292503379666252948293851386047664810421549964908446259006374866374963789911213142630540333977036424333915832428332810682967706829931061006756290541429406183654361247036761018778520373631788621684640344745955963872422894333254727060428153995968713122562995620132783271457163670621559547531188033863891476148191239529602740442698605276119668572904553687768845799936046944620687187824497555886366509321446950996067376622832166968492322371986024459077128372495463801094286255092493385905656501366301924599098256442223240246594265302306151882182470878918027529563908410251945236227241438717062111276529287364464404553114802593862267396730837170645918845627731993586347315262228923836154721343107168828151630130813583813677545728189356238286894986583762870403768267039236533773515995628596257204956482332062893385426009910420287129694200447935777591912693859625032866032577108253375901035060384867809077612189644544111521802844178200712243281609149244116099256237782708216882141553035966273545274653490146846359979637973477129835278744725676831197390342678445140530115652226713178378389894514181116910901260556360375005299445660713346662688934921482156609280476478509330570440606526090257309217735256117002179139638653531344237344110489902626728239277842331356427610504863473495761055726102128095053782521043035689889704734624587317629822836059385870411976185580972764403819999987335091755216886218001936543294705284135367050959124573810580526925690671483577366894604858349282009622446170491887714906968280034985897754913129626936353402116641648221307301058042894108695293809149130130373615529634831286533942133905096280521074578679895362143065141141336078118044363521172529049808125111492122176747374680858582848145172741445318440123754726032091987958889165297874020826557845470765191884416672250552192912662145670171020144430223417604314150423141373401313466049000016492474899370766265329856666125825339359368494389057678177203393176957514136790296757407129056470177389505629364728375198585282247053184562303342445313691260945135328655544651404566117200066778380221091193148910179596554424278663890539969608569791180739928171697084944001201452315502494477229417145021070065972906524150465398906111648572331876942849760573916438232201210663276279586134534246703707108066777402895553995145218243403420132706855125785346555977815714941665364006662124445012862137115226207484310067630930032845729842986795549844415458982404765953195645257545933969107963592053903731697825434306415756975657759891664171983785703585276339467107243543047977185923448820793251658341124029829648859176492302526979553554283226138866375844097400862349252350003783629739011360801653834996547337989058922218461871933454645139772253864010577819071936703053805995042606777678924803478724505735003760885230554880364579485068022566681639199938570988089222475694710965167403398589167570869324302471448968699193217166896739061903523255405774616754344345831454811932146524353724289920750391378012978111579214720221342921830851251224708728647332895731411006687525480073527730802595357596850124500481359884868614475443169653158499812040600779928455018683899895305484030819919822004759994615467823302268118209031751131719719733269859072108053228889315338396707413033002750851025371340104005563576455344827253398976848621132861911175742064669714950901428066967735906338557451110657201682910476474382641119566587544178334927556817205175600078117247461315747109259835097322977190831974458292268036843142497444656009103244283512281398479797335953922434761338244552939810270406207314418321358129404882031461893208822479260631529878365575426653875799408107659852052951917445923183793637673336677865283638179586602762615576683144970394877657775214967937171867164181610567970658622392523721181943002121159063243140512779545042853651089377569092852576018128994934658159327844179514261437058582288487919647937243191724651397161790492312859749181618359234369823242361317405170481498638916302728891169777974085993816694727284612647141242313067351843869229173541836775993217497735047697704619696440337950451702637080913046302311670424133334997639862334191671925903169950244584605461594220742604987819051473023290934118813114364734651797258833685452798735679247517557131838400997862669167737580164622084464429139516594092547626351342687027805382206204591307074971960873681644647817806650925953552623349306236222111996416151510750976930926752196218428929142109683834561594150982375757120536907812988878431684816672624566666064444751002358252526378795263583917766600106398229734134533439984922960532778341463790450914160002610353990310068240626647733267027575780518505325062597848709932360175890384262331928352639925975113012241284283575306417807964576305341125724421367946094243698924767846927103067597869498168872752600028922828970655995672609313933191660689968537397678939893961065319313816505007072883220637630441900553118705780538570802350793226196185068397937298540868901452973383888360777105813117106917490591656612619995415740841423707973514541293633629280305645345660143011718972851751539596591847437534146398971412167684211753639164170436789624661118993091829582769744277450038830718945138993919626171015576921687294553263888082723153863311094902919840020215220957133503672030133575908475991903020366554497692678548776093423232283706817696138185248560252164613011164967693403342365724243575763070482638320499598322009703876241888068575559442404457951771699040627500128331099047148714638382978636304665795044677383776953257291788842966158623403655354624065008029212886793900674978796168297348227232078072709769478019148996314130740761114568402780437846588223296313367292597302585654711014804813596275122902255141613829690567729529055737027130712417263049452391050022795186629607209972434531017113733282223666729357389230829258677835403900517443800980760921214312427263440899516392173211156876956725314511966211001508123631153904118733442843295188577253862691500271611822027763423380770028237951781043917308417555044673624391605493327306446079758274808786802465323096192534811919624823320261898097669284360932855081365087617259008309779526777440059018563994125473467587618531573908274993355962589463208820639296529958880328584057203554164538997901311041746326086524850265085407564919014909915402066868039165118336798976322321217044208529754109026417322011976799204393233568603775065435935840113080407914685988659781664659667901249704994059188368603983616903790264874177831146845399057164853539412020923982937211313240796159497638744334360082643715711207546265600455094384912353500231357212681728895400797107005331269562697055061930278219124457570907492488646961361127201604328696197647750484271872016744569192625381778244116255107951330449974817530458489122092861912516388180900890083466933072265230548038562024320400297763685183267517316922463697933213264972711001932194520145523545061325332547181370909553688355272966211121381574150370627702841801582802091368118090365469638253703241057720911326734777790019724451690244223114323918616659823034892169645363884797251861520621085904218438532295158794749832775170102167982446243541948091664225584913987665285691052676367824709730478295418386169291581256075182057490317754996278263761806951323255219758614245269926890304851756387053314309690112140935752282049223838571310567305611743139068014531296238652015227179634441691173918842964697816593533250814384293610102439282217993031540249313129003798618762154157388152622895170036248773639555114502667426582838888622880793419352946378141002451927927137362881528402833672733864911008416084496839614716806422451257087006950165937843936493983052090568089257611260191261880135940591254719956571802583144557802289504631480322032510190446929881385980293718271363185775242449487491145222175317701662135180490826483638504026889966048043486373254520261734666221961538446032256380321047282980912036523055793045451897091161700576693189944479724590685887709953175207049092681878217204099679868997816885200671048761410035987432433682076239653412038694666201065346428233132274646628957072654170232730160024634985540079062273211233045708423222763210407239044474117405409919475802407204857514372875441319091350272532670880270436147242114534824369219875550953273101115676986280205644817412284237444978625303722377697555885199960832543179038512259962936065375534423991428177460525868932507532864487728069109427349755899204708069233754320612532689954048430690284397649366298891596799244195341854237874964495699298552389601075440438594297831920777469082644662573060372770727026597518732113042536604918592964535675639077680817012400691307805562504298139980848727199271965586781070871611181031918919444455369228873380702076997207337724911234637330904750403677336244982947729461012840517418211515464731226159332795565170941461840406804686114406657111546604948446892466556138720629635133055684389328569474380389223271617684099650992327720968393936117588418058268499311213595169433795822047004829919560390619727230295458455183521557146945183233583089335124488123174682980989040063868213800151850045027203370251430843343451321873519472299505595677702639061782646833394038742352511276136929399387748644621237610238799230587223780780327947020550731990261512228053710366251239098587076580294216831371796510102963463470087862399571797116301092459316066752196120032798459182279491345209225928304155365231122168136155098274972984678529176568743662588573656584373919239838965093688339269251846793061010582033166216945125458687930321573015818018617885753058661293137341038528790257137188551572972613830781459202979231370280622000589959895180391208900217569465409546061913656829646098303787494317795428023833256796071484437050237024944217368594531845740475872387638895141603595423614421701076470896701865177190432513951116288280071391159694267759618396946402554944814994029576731765177752310152566872673246607651256104997605201158574631220494754193829966598598733140281536476437831788460127624980801685300948853741583847931935452304341558742717546115995361977738154333636406817705481124754674549167404377718838761555083306986479466241109687148913441509240480351157400577417398271747817972480895306998070249272686313068565753808005592116897018324266024054817135160425365642101487302200467977581404804925617982865060049082445896650712712056325512519176921440396988703081351921082928009196365366170361787664350072433861762941469398906675723675184198510809264715945631578127024163893739372837249623338099049126930523012405274038371491100421623752849465926133674319324605305643717734709302685448454277982226940209003357018154763353206348088415906599318602591388754540785469196744716133657888233472496199129592944962613419971010941418743015131216103285127293842005481900617089341361546881596082692422885500497504299342758244834337555242194931755553602296072237849687115346211338050235870082480768872549559493446137722099413284984696752359470619129486964569148913342922157072836276801256980566591125929376333185612777601164351679466410418588615177074232975670794241846499621306276949096451080253160376350476421472148801929319746030514258221427629718783542268861698575079581704995776203927508866689595430345504651198067832833714849759739755463852938560778320666369112312297580714575649389953966337228571085378430215027266273717635496198926130899106322925896633707914897963013057206993669278912516451241720542574175486294389408086619567352606446770824418840210667794289440306648836923431753118064896565307338514914940522282041968836352215014863991264345505269273935298923570380325329536700302803548667734174492216852366189638905497869525799757340724595160094435396964628724670800445781673296446199436432744835391348986096388268356942952251504788304689519843888013465782277418037261172098765638356223369664452400156177083573860257563646915228535767587104788788319083878126122092834388389453261624146578517582631466885148135296473942618176244925096312613285830591241884548792296885300577954476430447835237409728571865969349416972296802297252052896342060274056328547605681545929215508890637956058297403679793404372502006964907974804022540077610653595687107927672426322977362267188580268477178725834818649925499519429496084413603058712346648714340285317168322850991206177627355973016659643444606746817031365078317193453708244867329946372385407904511314824797335849737664316352324998196230209256363736156410990163425834954622360086119050217855597602170361967520275171748755677535404127540438182747911015633923744594440017873727907358345938294993976552748243236949473779075576156261792736640892622781967779603448933845406477763983106020460396208138061638891316342070238982795762042675627972989713860744800349505610706813856610359326920525285600651883229658328522647021276756923017419069609673574652245209550591200519504280202946685532425834433860852364721776306175099253455185222873172919926928504413332297651883035635998980363418544460489412956556691698766918692205493352423330100113872514089601955644845520084837426009821570653384800544251103425852724048313548231638154411266068990454355566914334752031558217780529538893440841748593183032230125832270575893540214306182683266397811078465249663331256628613983820700947383941359620552122004609400989100495167986761237584492156593502954855974398533143841499264845907999152394324485529859520493673907479530400906838352865742805869962600145425245887044394905585044734980784869568020704517402244979837559762656752681943158111821342237082150339234967374417449769474290610657574529517322196075774644220882893621218908761558266903909025449349385357661298069946886477472590763110553996920741234551981666824258527060507680073468689824354295777464962884220907331671077230484939059596416596349248555291873508583377439640603449223439293218240704217263894209538982632809220199928989194943238333595573666178536920028313861267341792189671107104839027618719293941629033694278731906758007500924380280026619499183912203274396575028997802808903147786511078756051283545869194219540346443248313939121266373097349622968155644863258836663073395106418788801998113546813666875529106290837075386211467048393412184319188196371219653959540250322562295827466090780559297811371863346342037100430260083703236704591488569178306262864438870677891355490788160059803558812069259742651795119249476535305905490270855429329954929934739015576050896124358156523759683111491867280374243501540175610196165173030619076347386020408296053175537891000743263490982671254729779936227672238176383224391974183194733590566000442660066116746842259366192747881903330631015689012541237962191749465706076981554673017732861104505487518433701684866404160430926029191542570188125330558456364259134592873465257734428131923881628921798987737152723891778492640037442562919739240280790233917394349644120832598784736942190822058469427636682409139840295198598768797777822403552300920369205795271871465289528889576758370696115026835742909343781159998236629278615873300333307233119662044699107261676788458703871275889406147991198634864139236891834358110253724901210724623276247059559059183066004075384740388500532857437199866979147063710845967822577174578486949016557169990549061414782747016063615882915130119753149792170153221624045239802748036238237194969741534193929279384984402861912118524965072909186472476068392828092850030651754414940393907868457001487051756170339608449773110270589365766737504439791278033795377005035750358822351643491188172511916543245502395817390588122410681307700602488889380896978909994816648081472316878858397889964135565688416769635512388018274688363434497238602789659007006233992689195456010325073326931006784144414700069408499347180691127219713067735923310601082069150596092641954075770371273447858146819901845000895051780203345474427618767879589622960530409972473119332759501276006657184388385586178987872136322113156881663703030520381285885966189468924862138945776964774951267630647402701500741088555293420190008221074013069990812500184785726876976290661076379491084447680370576805203045371498871218087177670404042502295276361672868220576722819603667671309988280325236456069392448468141144709692769684606925751058858585345301567591905841953555675039736038552367056385028495639276746752953600501652816669917979350023216075729309321071042331637601907895179928917365465571438460701285491992356693287925597012564862501812836786001129302829903639961997472804795655613586435684716776262290408078435624081069849685547122046488446333247080126547467477491144059649845728079631679740570235656355589117627065665400308742151126295100969351706852725528374297434409402873545887009698993455663901268852034420000094625765729779321602273922151832755810677871370606929272320422752099207661722109880200738075400764021138245386032606453396950542717248009707125275955567975111490075349928265041650645209595054013971192171485106691935781150136968084311812355677509674287602236207506921930468590420704682624605866674342748991157801697616320947807790192379231836951239654719862723431458839830548702940666918199133333120215659656370710675483160374134585872518092354093022721211343771938069049365451751766700162989568460318305955517264112422047683557917099247823637503201517552461412632067819850316743861350258782527451186337208939683849617006879018541329742207312341029317702525323858925489021650529363947795889824333479981476691045871732618811589777555577283853106385356686052490848298741301120061093322246154608236027059169287211396212141617689756530768259650427543586424463298609282544909789471646558354992119791182440172958984895989817038701297496454091265777953214514193341578482883081345031658644895323722573776160752687138649303579875493783823226103692856293418426428710040911359533298524413159709381688402210736120008147139366641536872945956033703068180334962264658286226715380500039943345311924923327879033160727121362976333211875793480649949791975679073853486922136203664623846620017579895491936418871153093693429220640322912373528755783113111259772420644956927945804344177750096787988773481902943941908093789406088073953598934815098738453419720258630815034012308079323875873651352605568756897489151424105723025581390679774247965708706236530323212486832455380540571951644323780663606675419093499336681518041053705589271350334811465250890258624483180820465956744082660966560684255197211567257450715548353585097520535267263961292595978587680739964772278933186394850648435866213399865382548157708270107769230889393431151590909388614169944037500112283398190579288591588879932418851962125726322523021725604682390686260816812848911091723226150304946105139508594382455426471236055776494367031426192781528638901773508234900816290567674016869411020904067475827307808225659868597085764983514536953900566338385488367895008260244800821149121789890925281857363285474999489669908253589898520743325720914055978355587473944265397231345471369376175587331902868557248567865171410764132612198768840913854534889397013759855406229511581552405360464560282804874037136855753932432436334875273294767539802290083461214557449460099147008840286133294074600999201148530885131621671657058302423949295155763547454593706482947728922797815535646504678978347225545663490058273348110256293093014709497141349238449302948433193782880106275619905725456056695471494270823947210328176155156421050055871503039696666286308063412044285618018385135900180163247821693919430331239628713977554157828528978715694677490735645091885604517589932011125979315458008033676252243170887145669841645684830048890358649509490530608511896476165876143243790694862326375797159559550374479507147638859831928882806921892197578395692449437146330279297382804562672570560656473079089453948931816208726366658961741181964607014176033439050161557223784922436304348157676753008678411640915641776075764541375729493242391044923359882359853266224751115335704654755825355897329367118446207792091075867041548771081876544163065634020470508470481497476717145526082548103977318835207381589991521110210512622118332547928837588287772442765095186374048188429455245958000917897235621005584227383790829643065458443687284475185703443756844251159704631851100076026432409743024605895605900292146376812146710186704423871627510596753532802747236595999105011485881495737133002917370578961862736886298496400827757107506939893773083947272876421633299254010177899455233081648602098280137695977336770935352720963398712204515131734448056280089014568030562592392242196001621687345094757477623547614026035370374741746005075664490680550353776824768856321564854503094951784270470003802600252172128853407729622541510686656952935295135116939712892190097483938172510746217022960269578908490611360188351518904554006923324800217714401988885726425530432105474293758297146884957619731534972866148500790289471990969736566114121466054015739649020805468492150201654180773265306099220803021471774636213975203667914254954448945066919670723962190436245003961834773882902107084805233082163844224434701518500689010381329537580540187420207695949474335501516490854025412127184529630244279648387145807589235361643201361251905866597373437338115987244832307871274599609785751003764810303771508311138014452727369947890333882471709133263382039135258459421619933995467095876752578908764505255124851596115332814652909583944608333644008438758580494218115625409814096033710637598021501133098199391201070013117060902048278140252087453742929849019855523286865885499557281222324780671868476843714332294417771090063897373877084890810532174018112915560808341011284503683587308252023796847699383824245887974110925633190786185277873377197863161781086851822553063360153073519949289579971912359387084247577932884396964028574756995910783899667890484819518604640143684906572649743592462628528363113089671018915165557277576652450285910025628587806303880672122555818622447149207597923034827444833445511498852629223342226087369913376635062900884463718720182702353195611671214636087174986927763394218091241981662508505771887363296671214494696753644305462284908373110264712891205028155807509284145112066858411189596060128408310021338600551315658308880307060985666046892800156694613748655178208599135653424139426251201813306709397369703203580626767624669385134136823713071114507497826110742307455399112162852035138104916349316225932694413339845938877465156394720615649119629558278896193329858066258820763551156359243816134302804043482390984957936232277293104620863962760164086445255045167942077069432575645790019650564484678526664492041618728958826009541860645671622030745127559740679705359055466808362066627809339916138305078683144264683434687629513786277733771084059001938231837742038254057566372777437362361100074075306775927004231290211999149575920643081199181315579357535952203577109454140650035920953485389591922372095770886191998153230056038505961031106528700619360052726208968609706729634491157550845226321492089197985121849370816854000052168010057830855022807671211451915594061145949980439859507393404927469783931083056130683922570483881050238844393190818130870017913295645996036611277075908637579798869875773707448403561978336075181110529007668081011514609223644926743258193427877594714053986840367662554065134677279640938944703965296813162660863144436031734131101624933342788421930272109777677594905663601132537697588475664803092464337527325758539720330836074199714434745775812617985274190620119496588446797961282720577074207521773071580234561910939822989387944719941103146592199664428275354954040329352652166353668649199138898015256922151654442567792559741465461072188940365145416686908651688348118974548736342781540128462339532022134025036874344141043094746670625211908364846937254567814492033925081219389628238755989940675884530023022454733713523085257284259198050832201565368988695927613144097773700491068777874316245293742198042898013460845977122882170589842072593642385830380864041332732396649880911749987776100647360944592056772691531122342076750157818745855866303697084136190180778024380909395497977655221139709505268000300091556959720266000069525863850564765150734511168499074182445584022849891234128132188079426145557424060257395395132658906722894424911199714672977850455101496644121010055827414115269150681383983949600499162584097922627383701511166467486896995816102221034685566703391492354040621201473316246687364083708390748078811763946424578989376419599999957630803690180753122085048906910657509993989400567295296230553725030493219942058523490929789301493468476394841152503288713066805762927275878488316850694661832662187028485014894444541104113107100290092701608005057475897953039263186237518667766076589272205418554903619620599407806654094125437279932738997679253856916007121098480960111183082656569669478839674643495878836769195330310196592451258460268595098495950092754314543874493800468623536722001121703243638744116223276057660379882551156023561101705052242671716239732847404288863753499793813687648290773801922978942491789102846660395545395105846048937306451226982338853118853546822290331485367950715086548873700324421270781363858183275493255032576431221246108028544438528768356237308484900890634011950097500959989151988547415727209625124286737395877734333779504186712270130144224742924707807010032523243460862925774346743892765758418546333471393409745509511055437488362714702497495591233659692979049000706851841070202317707922353563020834335293981104226497919976738980669028535206418425049608181533032415302726298473113087834112617667786356147317583721082409828557304731649755404571918504826950264678867766662962163784363975955969245484096277284210099594973819013998164786573935308624672255130302690166410484286745016823548743539467736299312159443208883283756598609888984885934735492031570008164793767307867711935668918141550691492734087684723679616895655003150617023031904523659274184683659942926579764375430542323479962954838199834709296498637491030936880960985969614185952267638866259338116950432171210145570019918547963078732021147895934084717027871206380100128368955810571717146558891896548819726967897371946182626811243439157173771786029802775835889960164514376367106368517681673889825434440304276528834290366793266120354954775987083041426904263579110770364118480759057773193976053395574031035434920593846335277587037775886950236290857110780720961864047078199998119532361554937396232931681471312271379793042656474214156347212182004804190989792244104907625661727362753904187984889289897567504951527603500882596059025938367659465120866604265579342570472144309333788634642769148838176487486915857557472641425718927902740808348106601926628142766531184397162341228761362100675360111313566610569301603696990246114862652550657275080468093341351759483999505556178945333713981332397949883332772873821596209397933897322882327234023731584761106138258079487196778647662062793674483516443176417778067544947470139439500598207628941338828296702274670331921292430684015999698801235127681508519834454194469596256799862238672365187040814223920565700625473752872223136616391313169585817524053015788996484478502238768211185255901625480494599484356534146978609640525311665409435363838699216111628403375727438600995436753010534679325869475913357439002067146465830815694988253900015139503914514645693741620541993050467837445314156219787194787134202431154972951209446323689384163714659700471480865002938175877805926872413399582889624328468846036059165465771063847124560545063451278062036246052720605562087813563134526142315647026675175895004681160442133951632222523235449536656752463883380705747815502654637290341895266051862911417665623718301408399395281852506496034681633367288259184211863971059127621960429238477510972076120448185264727047926649507379853481701775106303333603941605721096570204443647646420905916928966889855057274537935560972239597368464585762258769420345919841984712781841949904199930363651020687022138773794895178117187122756017541766152036458903451499151638979274530721309599499016841573910585921115758412436978262639219177147748705924662852970831477484249752519295328961195265860455335770745985670413607971179334325737285760953053203473690803851338130388800914480051160425348774165297631699706726554761386234426075846608310443612802669222721235566396015908803422249689718214839778173060779557179580584534343649070644512893789489276417612309686647067020933372208454582274246847157466547767829704669485237686894880399388244342889376352337689544408210413992473426652989239367889236306165388280172591457354548853048321802665834254962103420746838289013642201091333557084985848292484540228853650020056507822179125441591591295629776104272392725339713651017810734630853257308819795711692762960325403041569272166380548807949712518792383587502743700557390280922381356314034856756920766130811046217038958073156844809584495597535139450114604414437141193405487788243700044872510525196022407391832966724858516366640700570469284068043739247170136023258212987807893747064347055893923707685115537658414042826394163795864155341038184806981326775766701254379288563577001567831035189919199460499017672355314146560838734996462559529977347199391574156542782335698796208553564348287466888011339572210509555505826074658671271200351863039423977878096592979240178153013473733121907003033643070941686570009835519319063881593293062099550113265841485531839764142638220785002770922645200490677090421541337027527287336389949047795860897044602955221716118324519290555750286872149683865927343770038709301931194522270612688366362675006261912825823161337300894992146288496228656865026731635007743731913130973092028591610312411760775370779850451958557272939940841182436353646668611732215774342659412841436093256071522153524238362942540153505435116909149272344349257898634881692855440315456484409644133724215694901642226554715213390290736986882795107399846024011500694201798318522005951209967957212520086113135755063336869482999480862019422729801052564599266781504554145101009314996358143361890332889034062890743319448633566759039709550840581790039793710718352953982324348713305319881715219540918703826242152747230161646438855173081531020667231777472332717046589980264876600701842063498538400934135332807149284954139328250366558685769833413696258137376180013013598268368699725069174872236916530400426993120925187555896370501338308920999698514698418460642717278749523468605009452061073583679827621597471348574006496833186796294034857605221743922108899351622979994040870259460305534309719682485722666860909801564422942146477677009727918884338340349054224385453560292644276734277984111725324615531668829574605130478139716148262632790061214707733525166567833679634458336728420669276954569015118186865801410746567415586854605710353688617978739553094821281883442289211595614844837856415760725962226655741770152842543367506675037425217387925843896939182684129090298368421826028270985199217439311235677778991545257085256922334098544256089491831516652062186814915750130540965739550761347972103140280171066626300703146304910819428895299099381621111596599742488056176086093881900740912006639838996939127722476102392921034670979866688458013646680925730068432957364977812201368659693700739306322093005971120146036302766638032049459897863434241607444636530404676126065956916094739958220890616260394742651364830228121037986896179689222727062599458178330009892573494531719341367067659516659614081385432638206142747067132410831351511165905556934505930183626701406272363395747327766944753154004884879208760035166168223922462311702705801489666820999982997637437193758574568625052138683441423280306683131929581657233964082474394354449179709839860962576595684106992908218323286155451690135566206275072823674792214314630436586213755421341599295485984741064449379084136878619965795213100182289122998035711615259674375394454384047776463050988195782222919735392589064020708128016451602607737682471320182231877594233089356326438648999872704419193479565812639744233641968837528992701140069182853909682048801387589373933359849029193423269041450308441134363934186806102046680794433165238966405869698274470648574744737068451933312983728060944450620968312294359468665427845172461049836911952182297436101920329936922275648279798568141848872404836075726365211989061640973655114452016250669250928035576526767486029922440149389670675008292045758722784829906903497420991905619279253292595372837201425309662234391184964067440472577091261946434473243376535441482660003272010932210631373459726368552770082396259084827700576806735835421516796091257990798980208881838680479254059700080262854704840273680114580677348432910590054559040073589848463793919061533668425789411705541479336470497926391821001855667233609998844667719908637674593806916539813513983755935891587676485422184718454273403912521028069684947919023062010761545639727490626140933728980279858567942061597726665036630834251316618761141440646189995620250522114031392521300118874008062310490160479631517500627473290255420675139442321426666997149549657451699662804396970410163181912008162254754853177814478261929564450612147127166607003051370746669503402021631165173151743371048687242700572912111147551078602808740092006564726056633080043612127113347172818758527755586772553636176988337541283317197865449268218645370391559295810769096367053901424847999907475066964645894149055546735989062710830423088802970757008214364822535317092303247203777574571806904361421267761134897581126374629690618891309820000788843772486857209082384159469546462233074509652111299241097355571076619479281941821665825511776913016929481932668589328211808881330516515658426685125503732038770412811029881128423147887759972426482085689073616147513717491883936676153395868720981359670350056952535723507360851164763993538031689945264596089968335022966334760877152271582821665550052632015213941275251528494592054018470861361241920511175210044004553316782263362559269256910135030368140276515561097058726870298012321080582732507110498666897348391106100501888793721622358695996938122070348388835646213356523638044884549791483924939364659001785201294165216887474814994155260058357734832624661575765853000335573642754604618809340624352102549111263120317032855662029817157009077712252391643883118470740367222841528279247915867551544854728900357189857821876226019750491036104367764962098651851517962443747624939642017323763086758313837418869525628434771546434426917986406577764869023844551561979909040290257253213987583583049767851241577698282785853869601785006288952010153764897743957573666398541489201668882693234620165588960087479284564357298616430177879793427427931832343206910658526507423595812793006424827555875852179387237263221961872687772480852184089133153436303834566623762513930994224497013892885855840299332984185882262083926261759719912304173030184124893942843665820909640681211302578151687353507779216096800902311212410087608289262505016576068396131088168367354738110522248117094020488594230801437765224247534814289623808938754869307817836437268869579625503845510658014454491264892711489719557704030462439897127156385725628777530169668598697439434277447340708371270749763005175687261791617625179184703002482658025977817516134513426073555901115442536868345891414494506695257440239737444174274511197895859525880053361804631618353953085721748392913605179319913086162658783171994913200667140263188051759084186249842731909330896785094404412366364510369103356305190963482204730601593506989210544341575449539184928187346174615891786937664291780519608934437682610673708000094967369204301438201263271286734469799266418225703907395388783935847500897977983602695675417947494221441521282328137952811504258014130215686551879866463772844822354169671699471114521990683699874326743101882772441495772136040364975961248040005780628825699396618087839692459657238693590445873110676321213603299650682909459906678081153792905167144671925620384229692540880925967728497619473417627945771928378752323736877372683279759955134008002600327313634016986509750425906800578790957978994789627342356737659264313474766124690705422683919254565537406171510438595556608279696425003460000202897599016638143882350877152227102408178452849705520732221646045073110784884597080936673742523581163516225800835789440696366264798682121135998186551327402133618467435058512627928126737874645059611348089183462894836969668742775519518943682892496121122139570494850902510964971663949678331929717353184685041584080690838056429279414085417604811444254106870011677004310363164230806750793300691390893107318441792213748585136381010481477641560757925799403191254510545065884955222669752075144515997309749816340092769433163922801866190495417325226129835768203667989924805106473237706344138090375144370814935902424500530005678172923748943344678422746977882143682370154954538526777782832778377240988101510211224309181107735438942083166544505796968646307617980864863050846658912619760034774899506939052161227703250462706791050245209690793689259036740891727018767631519465953667455111306235474402456649287552886036044163573489077207293060542040006446015729582956282376842810065042244093005865689255867662871856560712617996251005412919944925518055185319930982722688538460806533753321512934719608966025389287081712308514194084003431181714421753128273448992821892241278430429537308139726296166111884133461468363180241110582684938240839596894387734875634559281666601548441006465717443535094279808029282602368892746046195635509431348154446729393829072501798284883322175192558424294402188886056211298219880117043231070496997074306389793353622795739016559545005384840035542391695725395413200803916529660056462538720585310559692440077592108886829789508271796647946646548606312200805154036016109232706039500471644243476540087966392027392848478123872002137353208774035167395555227578418402203306853623284914574807586046900613746776865542971215183278595127203204042688474785534900984343165435212538156436624012454837693123705194774721719585504935568019080484548277224552435964164023182968667501988792291802330995866771463552079174400336623005480828226608959413603262527012726260106839477217106759094015975972113204900632233190806474463175749128456822682280767896233800633361745439393913989334133116795460769666184764801190309403881083155452439519211157976700628505427578869638534572427220537614568341155836803922792955663851258262643081083598487705976513014305731488311390464808332853597530362588417880069739372749072106423207715903033821734188940964227873834320548117870884973899505153028842943900450404479477608495824502364393000162196769600489111044587158817308744831488845087052733719248800037880779477898569680948023292028194256731103556158727861979376168970632483957037698019491651459346577390840442574896839953068481264185124758096703917255817191448209618975714702509603923581530434816443414579432869361536824717083683651821402142007026933223915345231415456917305045061894896535725716739623174152049828434903670629390809661328859441122897916776450712979410768260485987160225628635563618241213317873678849303074086057610347998621532108399490862502791998220452042781243294397957652902715641512605063257955649971147745290195169639243004794136170601763369726237881505774466994526918298210255316287861121716691893037869506400534778736189369122687353693776643606501731935501840484460058423963298381244769352643387446294434388963728306264009172653732993246363656059933909141861208917761885239280073933864003318277164017024988052505807655700066630512825110222324411678493493370202031726899451437082663048193574467115554697582734995988338501443709737128227249947820644533208058705840726068102268652565077853600348143059991622916590242984483933000529403242760764030773213667505037946113908985581095295376039191258186048701240326722430462248942064973998230559023644445581695513659345456627888556826866818383958144231984082396918692722016722127413861171163151282763477958030049618206680183395244453925917376565190637797798958893896662053464012809092294232350664408660539460649412863904911882462518644676614953391688771725810673969757320570309649486430529975794623546249566189230092876899748787080517591884687599653842239662118535955763995935579278050571684713004676490614708771171514815772519300075335476869735272363691577994581184965269626074850939019520267875263794955627620854155303901123892607353941836889893753967365326549565049695489642665861509706316528877975029213675516795364808709447270684867620639596446856061024454359137290244585268554747518306302775665909348272107067627110139439774177784351200613365125264268585400258265662057736769392277546684478936497980050155060929335311322658575177301826867727430724002847191819144042538283930956208632375853603175439047564753589285828860854055174538624798258057473906414765194382186903963856097197465209036884315685643650969768456738431095322254484959979402569267297058543907010862069368791915802085745340253392363794140501479536992300913622686783042687268008412072962688663016996743292895953088971764490086364785385627111670163615869997736916856205489695509849956373491398400104668201654809512086898566031839060273088043253722262796410771055032007159088079552175762596431910497064098172369646801494896854619158893050967929779022662066807550920689271182367667491472025670452366400531957574095632292765470299300791692032613536617155380993465560835246243190753052690875291976192290469907579124396409787626510430521272544264226756162226652736695085744371549730485320924165266602368238001677153038098314506381195171489841864083147428002062294593441402275888841703042069935000654199544836093018469830089958002122062858848157316929132055074968994484156075808009015440177653190874988213287405808201658130832098328737613855230293769462085565970101626555006858689713088790561518619139360091290119236580106039165452270766666689547684797075099175446103848542469553166944958997177749757671156269305351786907169864560701880432253226584364393070367019124898041867015665665672334877953780572089723780986049442653282985462632377557761463517869142639053353010662842427909557280130215059233788788165519735274582898211190877473804880094244305663721402574076179637747850728629135245325349000632200304418277218430108013769935425128350134553779040375950391877348791552326428996826683744660902469455897911076764799699403453995689248473702647136399120183032990967867688272227706187739033171770680068090074916318005755129888167563678522907069471735826406079343467750985137428596374018034127093305052008822235455506785715672107368708593091672230825936816460847167493114900015187397596177698275514020752196988234063673139504066410783303242374539618414407014395232836173755747796939103778161957779856310567830969296816336574810455231464595635128262892997865505477552938737789070711048303606420809944319024747664968468566379289292565180120674227067979950378171499083781153643815840935626491120157688177223304925546029579958482333611738556378024342991433816127588987015727087275640052965262778270545750460464104502074993203834108145877153219616817769469728916983949901689303917719404961817401072701095859287872874720616272591453119634809629599372546643369131961237153828822375998665620104125348849986832891839597478070888719474594585577583716527586722208088267132383187652788286594703177738412763668755812254385293675015520309184252099691372246642453277313825378446113250412318435258189221927459831894911528813415591764696834531658563693200348120491036261264233842592450555110746299429243775602160658300341131692765027329555339053718163473421760101816092270295203526323874240797199932015179456176593041137627612815344685351058871199049107832715648230707998696259566464474010368043949492523083158869304968783372753354937572524315137533679475600237369191799663761345067477787128949444338725786070405528499023252598499325833166306483742811259807058116058963555379876463060853613115435111991548974883711999790326325608726353828375326537678604570459555512515322113864928358297658528814636687724241525924492521236792747411815082313936351128324710764132329869284092994372045980565338993473899701098993792253394534668645571455036431578348138815369486559916271739270771816341501255212873112873161997933204800985742014509755262653960885382897804109406995906265581082793123207898189551927163188708345277354600156550897890410050714224189906521175833507514263403618214444590679222938685023205842416175831026334628440363249101564984145316135741696625107023053538181513076420021172179938193581162924208165089029990941841010248434716492056847348460368097158138007003958210802114760540091964531899211708142441526800573586897135993940571745053515509186065979216040850067952747044469382255850240015683392974355828486153705529507038854199080331711672538752515541229660156793755385828482386144576752533629820096293860639615254159941845857923611861918147573333713702892472072207811058345394612154754306735008313037153739982318525138717292007143749788696501606481367567264064650641827573397878962913180976653865930121616403171582759227019589775252480103805297474649562003634598944277162144398716717971329491240691076043488050487177241650244056621930185043396700892824278081670856692248794852585997995468726149423367868011288161855407034568907422219721285876667877606122699016296900128397027304849689886075629358382089540443628849300011875813304590722160662535324436294534632281201579894185666126708845819266974362463526277650843881862525088745176657382168278346278409617978672667922731682939369562699013139332007612353194689189307792493648847839185823252073884093462115171625453186256132476423392554045284618393710884756636111568685169461145420703188287684615491515145173520839294231529323342610903905723298760846199446503408315940664468915300104820522293532546372025492068118021381478772293255512664350831842481228360379677342552896843961412931257577385268058417981442652392518087877861990404883540849070830392022180243327009651860232761116688718465568867511563500761393252465209857903678806891485654403780130235237145392539794178877699324137861997800703848827357098791942794585167707363595785330126176891547884028544211332056251021327077904620598560083643403772552123658368603927530035801048060451296086774176656451825058485851099344192255331021804212876470734909703804961029437710274256353646217938463240356786145625500338612793869786566038657660501613210737100779518648098910561609974723223349227882630992991617222144960305401394020165754019701458756177410446327671983387117560681849488861638366956895730031897564157872300720054633479072148162430728770624455155817474781134510139975717877904394757199024232904845860027164134059115073106608533268133072808971488174838006073362095337042180595725000990525803901171346257927604942727863981608127122716420432588008276113860651280944695194429506660449447202954375841896738396315142072169357389459927864248608243954871742246995614923323698926847952586158148615410185340427024547918932084835070290693421136772671522269561075389299697603110757600910730399935591537116312528053323002235544629443948221633703780803005550407148017345988401554139238696619729269167181755319393778078670934059170479701063402447132318035908853971162534947772064844958371067409342087879151415869061718934479748160764011853673304299967303083780558145717852320998298740382826022425356330053693355927873219087074581513479753845780041266208712339463922691577953355989443598645712600525704979081630978409555621642888254828382188561831663693856867619841536627659252071200217499918955596897093355943609122505269712889787769247220205891417759912843713615854529766872970394218013665679166757750431878950695565833995362151964734204049175772698416173316777096262688666743112401456253212135983050576811352845982645565805934755940284050271019452473187583820380583264188585720318519156692946143921223582486701131004762353815745266115638028435395202697675088893402849893800680509007881120432787982125958830547878529989755700597644539316984264634470311232342873849863035961774593642155169691254081475528927783765096850848046758501544130322118808985499831398162273240043760708922944735117581258284126337715707020590511606808211078333977160918223011384534580181702696093157165208770926619529675671741445608046284686032469865822108930419183518645288782019884615175806832535441365556115745308456461711474794947611062645951179129275676940732703077815954951231264084315213294983783619514611459605009180496412409182990098053189432980789341187561695681723464837817996308854744172618825755921184685792820335702676287085123346582079225269949483880936553961341055866358378882093534710974088904682477465238131393780346665250714052191751710999486484501708754095657197402162255933038614316346594135824815540310427615152001177451866884229161848914359254949953524077589003964876880627247704511100870113290643011763559718076505862984751653402031757778179316927048587577589568217771246634237589911823073588372929324162485265918686384922967023165907439527682313291091558161886532773475670665959406835560061574259111758961937461336365986865504861761996561530360897666317370501326253719099986883467364851092046160730447397438503963167926626183650119066697725760768982432530555882322090083498273938500168331058034020638338633493374175665292851478284487779689248225835461889943124542943776829779247021245844334168258992488560098937222808916676837528670462413111044757522129601656652234414105005170581241958618350660112840928043968890594687145795091006513958744718290909814460077162115833301573854304106669809836552356405402053471990639101437921860109568137420146749945845493528890624747792914181493281464894165854552107683562712535610599867410511870604651608643468205644169108281027978211718309667420851597836938980651179409639785126974730983376532467390454274648318794973013493286133622274493467866111686490359771112628763339027130880710023283925781263262965921313062072576041994765471652628472636907370295781595919493354872306390258509159442951664963962725210847374190459101656157791706420106567891074717900486509036021135366918306969779013604534990988945021743497553487863585955640975418929108396968770246585808071689119146977298635422929551794613469358827253649786553898654114484637240020214989437492743752534236513421867984572378455074510915294284914173558911919890978250526679455923435071443639261861070050762087127443075294022118928304806365207813330608215553213914431297415543494232744920248008200850991737202387989718839491629159039972087232955821280152796695433552923215373953278419469158674984715851095073867067531787564583123466512474272769515607992100051735502359549080603123607172183034490971764489253622933451750317580800873873949986613635861932631562543446179294406401734778750550008767492263389081513487066234596095059831052291613078202584153056944565492015710125746129245394860275014694906409594099003043875800487336037671440693071369894814872945002664068885017617576134661576290689770662240830863304344477778636138631625867837159088094727831128727326040808399318723267567037477040587726244754460598123432795275174869035425758848603836763713050331603011771871193617104176002825172753358143330206460991388573600394064099007060740414614003907132134967658759124270525066039119482762000052340562811897772262163438189008601756153030735418878281914341814519677227512142532863911362262040496000624425218116326527734959605270889653291940644536183545282113812535214265239551739267052580682808098811347362261470727012560463768404700899417970429542153913948622272454627117699672259454486538573169336664987661854282429059858834401837335523525086726448263469471846405200175497899414096147879417887342910515591826473967692196396761195897886772840969764389591706790255780594626645590198186923212400196035119113309345945541715512699779304835733415953460960357364605631732877095727050854557629890737070392159364538585287473732937561130751528545887135963697933103378934056588377336557309229862881872157531889487466303463385893461082938637920917256142092618728542822617491565586185149100056552832379883622653486568744117540236564743254060142729358634818574731766338876689850810784807947824241303593059238147358524386988500774785515100919732678486390064171489393033258745240712322011763883418582672549486219017957160957506610219765543455177934549472086372855834833852508323096563143555277206966140112426066721696581395308221526236984610515997367995837114519091579754804839671071310511117497916434598115955012502752029283828210378810191620014331792571846536387243765794642489678709501667588703169151272578194670781175526123856050078477343122289243563585616599886362593814493911231228354983663471019024398094186513488092203971412943585363849273052077138297127152855684782387041102036446421483803060295627816057098720165449324079561888156545201068279618784296275460879307478150524338914007284444613596857207276149911619513889930205218536561638037700672257804126505474012240027146129500755541114546168182168611166655421460032982827781655381034338170404680130285434178786323968495962294773901904734893697456328565516087455399109772978028384331872632389528518869857398495310915742925901109918134538180269949482888413061838893361588430130692071773730326096289685608961732483855768074352713646892552921606949229153994364574996259063900490534944363273506728255532880804833044406202620865777528613183291311230256118156699921046587165529411342993332382323950184591028654432118668643638227200430910343317681197676858137675878965010770925136518394096788432360146747109983381309791383402639914824668126368180973820237701653518065950335352780386139298268599565321530252600063284628259811957614664932510287862348337020713966635628825795087822220536146261721728782229167688041017512425098704256400006374531692422719732370462991741969952823092340718666753769961407637212136913823612857624836551806948983850728359331998557074307159392639921008569225057241456267895620522238654091380742813901025997438266710286014218292892893136289218325377730498893170739203952231885774535461961704820326887811149628095448884146718596304925861847159249153517054688092387911607490847003131806104829007501341035844784381043854969462295222899396875864810821961543276471408219802154317038390147177464394605450970868701517262395558846692922528641231819810044414211477160781410954105276397968861368079955766764817573164316176508511846772972737989104305528669383683445281280667648560075864895824164699862634487836916424039624976113189890788930654633477932412850347698039647732349287412240676574524093234079908618483853074036474107106573466469679696115325439445487045335258009695795464618244460712561832813092520657913108358980201653629311243408267693344744512756847891715405611938257141587980138921340176989294853082995472595628777918060845910250692767478163160913226292637068221182091460546446364393990939720187432413306556024005392774032706730282728690614470016477268205166321943309010745988109341785547992841016855998238530468688110096370128024708766273456287038038478152565042651634778454325529261032267577637916801221263626320923472513463265852223894428656357127336563353133829010883697502267896366037401481858315865194066724897266066494690247946063115506354611732351512976045316108916946503545187690772422692034597363536363528899434727861777332420784070236292887344694440454304168134998494335754751418553146919358744986402134392818671336548610074976914302124765870399440863917732223684234448705372833675196279518570852667244012128358390093266131988352271034750186581933909799436299605158488838094388666987459705015297315418687656745466153314742394646045930618959980603085671451195119627611440005341155758387300112670655082103729228971806838541255090888695237360192412501132157783177788166312423837353545565837337729317322357680970590388811578732643074517629493755270306024418357070847993606270679281090006576914851087336228533555411321338474351317555512277615497438114576865424127369614286073719021685439001193679284647443035002172188525041995009094217716724510156673607033741571116581806853868764311345402962366436794865826276255777411040758425626253494832679234190377553111819179314549003110992051469143604090203977310533562209955706037712114630204253985666357710231309654188958950774830255294859989208055810795095888540608514486329411404721268250517944303580136029772439304191086888341906321356711870474060086563775950758986810265668667557279216011642660326928172901752458718273856884815136096257043014204639363920780136172191020393557700827651370473806623613007421226654259852286841311838571431581474097204340337730777757231050163863369561338652912724032380856017384132234510942672158056945792374488991927014387580043279360725869979761851518507239151505065024274853159267226910778422611097048339519258286115860484920328736991983766745414929105926274350917457461373392780812014117437165087561013795768374634319287503757847493314332445178590700021755359788708861575581072168770325985121254788046274220587099834243584695144086573571168100036463119302009045046388567309320801005198346444169941818292957453115723639587621475861336980957497437215501514011508674850416643649986248650876413121091497690521609392573157108267850117349856498542732970991963774001507371275909490576521031379350491774631340042132096830664911589602993208418235542723007984896185596846800113577861630526662328186950369969069777172774922235972143149015536049155657446636082393928079269598005746372867736930546115344237736646947277634492249822793219758967620370644563153127403617143822912211591633530854777100050765288116955289847820481420307243104066812157608812028174688324557547589836995499642284592960260952312882860018017132106893865427336439483906702274554940680577951134277649649586206236943813470586221470213747650030864889032725407717213797498666859414353682946405270666988127613591901974412294329450065757141834309767209292032019705261408921577943575118193901010031322670475824085737642988698335992813512285108482007619812073015507551312452726616503497150237374545210496879660195350649111443871437947640119739758596373544299752268279535381349965122693124517460370959826814527720782728902322922924500718014877218288540885863008133217476867107861967402913510341933195884165564883915197170487074604157112936221498600121468933829309271407745865828030601757190531321516177280664718745330317264975598707189983789943664311795643378837046385976948111418038799965388687767292365892139236455112988984145852914147256933794641696249161668212058776239329152044601573529182632463463593595324795050828701233501049054051028764835724027069330522590160171611669724614797771244282626675993559162071974685895628280799765539257656556151166250946646241733527000872607988417334418033961937124598572748473807211213685322172805659477198375761759017914418014494660506884997270090701622031106197035742157102345903689714185501893271462474832584108166967856331028299671528966667425772497485419920743958453570496791171177610081823744312321175053747787916872535891636027365998470163586493067126242252437002090438174533152722952741917282229446202713943537619650545835682229637702428065109613963585661085744355694355052968896167436417541864673089102125728789543424506057453555840792945183330548237053931695572635815485586090538997730728447413517618646437866635305836886976987068911577404574282415933065670998267203020811229923860901526471261013887650331563425695976724093741876430684033735995238140116132817982796303338608283838679200285034918197481327117740869086012690878219366524324888319137961548087407298544733649068685596017772353795099035964110860488502033099223030800933865040552109451407454322425845472515576165372976474743146195579490246645383283281050695912163956302009316547108128212729243341253148266902934835217061654119134804749672456983376327020093522669131566292738832543173615431070288964863872735488598513913787538047190195292267594809775022172567692335840656120437921480920611021667152383629969437109415312040275396895164539130891801718037882326343328474895937546448127363767047503942005672346346363743148237789145441883506710462650604931619426910927194347932275818456678465596938805983437220434568574567367256463291634227503137544755783934676305338360957489852588044784815271393438941128520863301159720423615303781651346119267466074520613805700513371341279659196155410964839955180314854894374040416330439742345419501271714121461470717270984543079879736722660316131209820926463375187875186461839740661607938986666806148435340919739691684534922531358259615796460800120918542591772414427141185727044099053236769774439899812451618005724942052829809548663042394234631155606277865132936348131744942242153695868746687680161045540441550403517066321350370545265159024045909763623821300110282152938999873010352265587234727180313618616436782427934888511902177870078896041364729824953209318973882532914232168745272842826861485975551951757745509040903059476020567413121832077701511291535043403983655678476465399749312653009823884901831347040592383421734128231098962909973589956467665675649648842901540155915956735701994212567657097059204870556125539179510619595143167967762058623237293628863683597211504288991734234338371086932879124925581348005341459201626567172672378540884834587073709966897109847926253665240545243181667581939901617947246496194293516438919161799453442794813915067433936811017890395843947823414035058644728539589531716673408769027700106465141396178348831796865220144972226321139237069452137807112474485363750211304964461179813252985456305107684742413318025814020518171070621148808907483613886441462820460299409389361044063830123810781894508445633039606503830775232916732516024422925854805531970116303659799941667551420646903368614677704993546632126198469401198605826800008438188149231834257748574441654445588700029495074311510011462762086996487593750736613056098500753460461294441627411375442797334882284414793150833073906903335572491748302109881184745574190461878532024115111855036759929373969424417547174577256550237445900832568016166828968311526410904190532889210310687074876361583027681870245804214164446205637566266701019719546390704903115092267723227104333357333515547963760955672781209710223587407207553679700216531016227818598935129132246057746636576974119003456615636782688612240700844063627899796855090018846873667870177397291326773381538867671343677395984898940449282154784303582314842504966732105198914746213895224142145375041551310527029095672481947978091921857389833045717006162613562015145489196827630224679558557668355489102041063941225818162271906786330404540594356044479316751251148540666939516784370751163672888812381567867061058808292320651504711005345512152937081191518550213086568410108171092836628746547655062580964186957993058343849127740764162366197332637856132315935891308577463030627254193242524474113019437597338009048247154264973439506452708657312322254786968948869026844239304140923672614355637406909812847303382919939663859720647934329753935581632800431316962740629437693535596637641376937077943318110193308616932285262994070186970339784349782022874462333268065547769091842556673154283740265114264268207030820909598503326062924488435264191402081485295500376862474368843748198006992650889304217002964987068576237531472771674233929228685990690946151388211162404488333459869702518323850689358577672648065604333857032140315858251155505480932551532086251924253503792177274915209300261511055045984067225577355206960502720084343197123124744960940312868907201172189518492082815567098245756162375233246990017301702166708560180133248528272703880039115988520999808662634018411074105399994112808441229821221894283172730418084918242019772829445737105510030782398208502379810029963455630559228160033260047472011411392872110749777133029573495517968267717264273408835371701020814863168035643206797067603098440332906613647890806728103278934125231663323060793252371567502505409834811909289206223284035941230127996225155992608908082739588473738023210619263352381936840868335903152600584050128281246986621947296406478654932700537528065549832341668325587865836151986644190446705279874865788993658337439918323262543598982263156815229591064694888829658413653507692261635702760699674499494076955510917576695379280584772880640275364615169936505426458825367293998835966937109125649346613960009650880654823006021123960838562230357868200111884024802585862648302336193611680404859639577426703055085787997128299996927985071081564147283697875987799231742880290454478149957357978641815771538958433197923243401791845071599779024396137845685294713338498505350846668443651762982636531895142985997198835167413708249791916384351076303854273225310140481063648039889379951453455070361956939798009897940308704161217399966458250240249109801470282833852234725980966189378073891639982919173337374648597886391804308518311476422931932734804778696050442020127103220434226156808391510433869823332289576319485877224007169909790440440552967054513226215123940705948352539209926188114261956013523496160230314101667872571276162407751458570138795428392195648268228316346189361710849221108129398291153130389440128555087016831404517699255252556496405124632372513866051568765908236545144733214662007305606155069401347395427179387235316245687307156191222368232928971181524788078363123748244412044008973116506090444049782613576132630996921853754964042408496041001762518227603202547183827185238949258740589842262659174415834241405993916089936125530182513922039861229937168752868777874435857356513146923214632299168332671541586749501878364595665352077696584814217173428803767382255565067917425542280501894892431080097928215257130739404478613165301926025376310370930095271630342849190929419088291299810122813431106880760565400665674345481365113012870818652030879425101746418260844063309991677892832187369607038086951463403857978862478750461106189758734643624469417249531791986990446179574985248411494307126250761303206114079690181225164399696720146462967352365231933407173724883663962563938452946650337914886142432441450302564862633693050074817097958255435414521722438001911445143234563396453458395898220960869820729720819999142259252437640735025105649801052251876964492106830467438384733372299864089906131432423312868292801313981279628870282665440533788966076721391118274761992429788641855227099815041847563269281987590090235201887041619444659045478982594954525948616124730582546572281638657019629951844880754912396526287148923606860532394221278084430669431440660705252652009240082978886163906977752319554542809013355423629987153829358893019446670181386621242877732270088389218231416939962285675586268260748795263475033248131479524837584053807901393230506822556069384311139173505442820185753713293547711563703116632228090912863281380870221785839390572035620607739266869062174182593970979422719913057987132514050329661840564438548997748810375395441204049721805496324576358336093869501864345074685268966684455721614101540492300761821787580341864866632229243497880127621508069680925041943623072637279135769720684973333502249148070862370999227699278416336823265200102272081109831765888762608264770234636724817678675205584594027254782580233994394230419707169134243340603393151767273142702578236642447903600999721055445513373797221114662907338022354884127422220522159282186514703859652280783453413918515720866782711349998505273469466225238200157316410171540618536495329623221552353956906259389824543813074364326133256564705769725950069366258168960756742096502066648459215848415951578451967360751045444140432161984373830459931501349950816966871473444129136771126456040067420867074660158348752370791329503468555510381804091854710008925528407910968973705707595530763127137501560051242394961105046092267940683071625003431455595336140551543675735037356799310502635087964536281175146600902865289437975580657856947195452110178582672468044663119149440198734643117119971615895812360548858484587742629861548942505432617848650497772339894350315288506263652945373741745586041803719625575375857434022542067485716202870790099431856933047596159060729520135751255420717485915712148493794853046444481342354910184730978716495925431227389330194457759632493276535444416034838301052067669593123346500405810220526189663295329906171565582926694760099837902728160129890678886817613840895945586722928306425456007662963847386948384423291066624614961157899481273463273466147721070518066042555069097338489603674434473390967449018780602961577067575741812773389772375336234000931532158406822777573793779267429400690280224549606180259949180017063079970794413960183259056733091189679615644851802055071156554027598980293857590365112601478142273808166189000074604795452816464503679833550087636604189487947882120624245259579043083480136001462420946563885419066830632595062100183835732700017278880773242348337399541332894264245128051731780474921499809627334715535010975288830977917010000756232700773798903459877280296156766716318733606055317099066091465088581889173962716455539568104309964857425972260189594199459764614780935233294089970906886718619835166157138511328783926854159677935289530751836398154375470410230550453881257215301761531187682389203052712825533274864094921562711834322379974231733117018749746028652859549412236208356880110410966361534340429921683981009724703105678661086537989303688386362390157998602820768324775765651647905908358560669897623111512294307422952926250446306356262939297087005997380137807191940411069401547272472339508103078313143802815143980291056468059319737404897923273096853811167276825325689410827075495070035478745290476096110464056362320016985159262805760833051804209228448668793663144421052105339513569322014292484946798630228319882465340718611253161048201071252278382007820348130062121332689511594165579407828195025734357744442136442776071819529351428812305605274036517395084228981693796759577398657962430878329093146257572102649629653896884422817567507175160493152882863968037222337870088463396499740355200572619396546670436702559973611638200329897539573420098887870462794813649783671496371924816352463355335704503257769557898876269196304515517102417423951819443181787874074954647526951495881143616637989563724809963200484630862035186521712219706155763438704458138646321728221433396268052382674620065231956825384097735295394033078803411792980999192307491460854343180496583855362489994554502406558349840300190997527720839147764412101648013646453172872841902981914531743379848891914420212263842492525876424989472685068860108149058622675442106702519827762540387185798591308617709309753322076515321428794676945479997060606826778609206680449845851036360984106583459835078946185792874904824316101979390779279041536361101125817105227220322478622931140457854609199510061266807418039537757992242252170096565997703024567297262884464607485096351458135955174400204235351733988678419022930039318477731465023720439887435197059405299308594499109121457943353197068798133259685124624421059055608923029760809165854223482192560278027506577798590158366146624408053471123259901815544405134055027780804106511707503972409751434702741165542976644680916770308545123725621467855095710891141887674959039340345814903076396744282939058323933377773340739435012141643662243051868038023747085159410542732590082206807403687576332218593197017701919340946035759345000421609471842343595233661785083096831227138006376927935483623844472511879347376156819480957484112991998207236223232915701302517438487980762411283778203990094338073743682158380795981836816229580565746382556822958008225496120154142675631681581973693527382496266936959327741718862730497110776829186383923253976181174729578300392198175085792618497283771125716137562275333556454667123913182891529886819934621711820723073965612231213563309983821276764138247716813238856939450889720152028278512379554355326210410083926390992840791063025410037058217524553425656072524333465204725097743754712392194269665214325432814202477478673486025244852846847949705706771495479348729048885978106703302519525256996799933916751664844048609967610288286658745476196584093852171000760917960256484003375804511940977071511156326730080835565194526386099081987305994127978358285342508987772060805732300881096078860083710485285445202390304457005440281798528111060467651291669936663299091727153411404052070156851165587024250288214640238917255704259884927829612639015350349588851726067295798039309989615142250459797406525449008513657741415573171540706281779610952891562067772917649656416057534150060087520184447724056474589713088411648641045201908810431967482378262090957499935556120710342428312668104312180728433917782590360845225316148440409669615001569899423623235987919055770976492217814834674399699267319120936773926000744422434849035068836628560973429356491504345526884023237046319979634393754590763177083437566698557174038134418468219834112597894998454974144082421749525202988735304184053098343349967839836558748989206544393293820436650523786804554125768350838536891347177197674542638166925400088548940422614911078189176280874331375428388241650452834928869044320966510548882720795768387522754211560640487394960629796242777468079093393066654428907972393840990936204490407562084027198221078224565602767691935206732498694657092283585199877175729731918982061068092870121136150598373680385444167389013965688818578289690082564661350873901157394484777927368939404984260010849479839998826096823328433244377807860517151242376961245136350735469300723879260496079166220726922903009715001863946698528565373306007947541812067791968710168236771538767846797182260502863679250187404256357420715099199682350084676713042941171339039186309711056319490582159479312346763110196731515704201312623011032385857034359993687562906351852406728179490302983718302664436898580523657570232425551828752581014473975748633581011743399852062103345588471336110723403440907981903979948850922332924323173093714259794448266868569638097072518578689307148810786358249002587779578486086189797835560652424535801906918542212568919883796517455228815826331483773469571939521913461007437641777640331679071303170979908785100287628618855916628335936291669639389704081769828854501356334637493058139381679118339605924740148277097326289644996412041795753299454239270108843087811559867372304279607404143001308542518831358312096447418512547301825993461624386204741512738551608931558349401169418005376377204685815860970803843446670617443743809343991360511678029389765113783419117386554455190223176506020091280678476392473175213564669426543987128369987599379394821859178046565042333603570892408309770899295121276661141326715673609472334253014594919332963744985122661943907998171943445874847550447625192568624187024812735545924431899521957227447107880939625582658915111446977966195480605279055015338408738158408603808009760114438910535167351564644407289005311144592449389711215115671738754405089778913408054633452817270656908799226167626048623661893221415040954790877020359773609298356055887863171752297317581847416368011205886609748396984389120926578832174728053166289385814559971465219233054641369849100631640059566169102739294349743624011551580438121492034995680657848960937718667666329083123230396696332770870588400619054544237518580899459320965224189669274310205305625185486130575981971777443717122349167821269867869718043777259678587501296322314368225909391404362196365058511695668557343887153976703648349239007992187105698581779604061973582125575293551227077983725564648264159997396970755995890097002365753919114720377239215051525253722994509898178648757063632222638989336262435770228889393211041118342053570045336041180457783284957085842922425221665749723495850214534296838093489978015068076142954166740832630243584418750503307484818633469612544251085798289943417202173523097563279115439577411623430641340709399325890419747664725498276262253751767137883544020977879571435417303192351556900347929505403113406228686269507215917428438542794923724564379232318938714367831721804002224527420076372704794525853260747012824562886454826087959438222981665484929069119246559600583403008586320117369476985426241425310998199658796616842015944977046430803650228356425036935591339767526231515286175033108952364212413451495590928117931675264207832001282888234176135282562788385530565235391563121382168298457140738299864114227551421232654251808798349136840920825315108974034454883464373107670696377732842009457642663264816295563612642529080495851429002401511655816282103631769632944123882880918870969555647717391117351148047493997424296685834361463888988291443619193055740208872068003075017062986835327017727218835305877236239839472924181741378079449280851358607367759121616582302749285734359989742771577131262472875894267358706179482825086360684341062802368987275901763958728594252879990097105239673560557019108802515025495827815423956554403002924073075406725285847498110049486025769491403826625250755131593805806542857330258643771227997751707616370203063046172761392292594069977350644418952359848688386514951408314074983057525812468947966305325573279854456459096656332060832453227930347309725640614129108029285825142607292034149690994717431689446537409279673243161375021308624568344500361721395407010549075849407155966969664398161159314368488532487765953389885813319503502558473639516597139267896253557054474730220085425080246972240537845652180005410423846335053820851399872683326568318517638633820599856043392834602146700061269797184478772609508428366999969720881541571954046230627539958793474217397513523779862348007986309216267859435523838138029630141224833196459213204196328471458524822256957279824832765692700764133204299121656604184915803557714312586006520540579024428066692997999049284104246485586255000648123465144325038870126946517449269748236584596724025678884876427135461235957347160392590696529472090298003617712218031963712184646758954880713725220105203318831942970195735821869300646549791975081202174276414382463802289285306315167664300241366236421360019414149367033578160677444011381047074318739397796595365515777727523238217349980989332653588919610419950600400683670656355991813880947718776313206954245604151371414977503599896276432359532865801694425300803760004886839447191373377989091092791700411893773814224021373048907041947548173055871042242209513136136952045674966439813835352705359649667620419574082237593639749533436359866527314332927165277858336585442119847026525028946965808974886599606381098354796554419196477839810989857387074057527868477876926332752291286764677649706628320349395485397104412169425254941904546100876118283288597883937262679423627163273377845605742465685441098536175116981416750750227718792996692328180375610542042326221813524590089148455095736842662161243834164607898535715096589729901600070062682648333002417911845298017777529827979971571731256398041571058989025754648919905590149653054884419061432255729008062633701481245408566232672710202596074485936843036818684391738089436622831272891086580372976969365610547331310057624674797167388781900381178282554255287377379492987593021895536942873656393533116694675241127126979497012295633913604457409581591467907944702580044522744354533115416476767847446716298481590234134895101913843739179450793661994287822808104723950948278089553368104030267962698058713656635562033068178955762143557708509628856362143005761041967157869624803358715575545859530911309172917816273533085890075595028092194866673680485210404790090992264825543640800844000491882677644222336335946863177406141846274709923357404165602859519888513045551186174606134770339018942898078124387877065845848367848204340923239431000071011032463183049209931531579722980572059217160952946011369014893827203758808747123003650927956034913829150464499852373274066478217091324451889673722443898987875926418621377115929139479235849657207105052100920548647799054856202553916429209193271383957342874700088645279514089583424304990317841333664801558661619362005544822277296519821110479884453632186186293361219112388095956155310420469403691825558242302359655237583677980590721375152258708823293903369215124978098321961238637302647551444574685825965793623689475065787656813060919815362007077015749543553209374937185469938846475013948120616871125627879966802033494369963294776755773263600593235890571758610091808330964176218148309643638454552197620617720586205582130141482047156438717138384601176823676626199660491128849504020695179500265221544210730109322861925122617514606583055898391353234680671308861596192718319433072695736780394828039725227090192748460804411514995432127867984024278096719806177494083797838252235150272456133238460487815932268467271305420861325395412731979264412908557899974248258894218082911546441363357827913692600127474332197777511861140517793498551092390794278134521406434447914835329309803412255486534518466118545981874753589737697678211090794572747664730648844556968628393950059255258025149360541876387815598707142270152237295492653670610416145436799442059814329262860849998719342418773411511831994817728731533173624211756418626986948006333953008136018360840018397221090617266148378822622649987942299768860864829830044923796528737113632774050563942248164871347219695994336079105785169162961532787971239939710009409341751866620056745912325268099529604257555001817345313175443871621309737991297208438241135033286842848827016653454427809800245608812747810842933553118124758222997412840477856546431063993545186876631444603883170381454937504121710937939800499140279637115429100373900009253658658896499475780876582103500461951218701893126646601781140547177963317493850163658013939324447492656243282383907613027895564357253348714895193947063057197706379491992528406454695084482475778098024787368530799952125878632988579407087226934101542372596616942212651779623168347682178778502085102183943843960502522598116550322765402883467384057860628633570470979152198314717418806710224291100249493433607330330079377163935008182768234465119992457494555033210120501762410313861865345370456129039656643606842192014500595548607546941211295917105539207406641675229618484557820647008113199367624757792812420039316773872071206582136023591282194297762829575430538169196279079403791559640949745180784225482380964345466661336413832043189951003678000650082078935163923636476894616020107053313260959389509192609050034983614425149682874013466714258528852225774969357063453320654876811574734029959872532930762772396583505964256233247152339801848441056521554702751673132624595370379497702262157794655440212897124096635733396750159841266017732755739317361208562542192200300579363375918207867700379290832044826399796189636988973605242029897307259476494208123197212331717156589316676640755091841680436837212017024939521059551282943932044006345359630840152668784401164926344389512823319568890622082607549994740256991731194726058289543563694163300362521307548990208837820961398368787015437420684978793568600270868604689337316172681635141052193466141995307507174545748980859181141142901958878951923840401731559284621984155795337996430988617306275579190781790850737335670792859291584214351824956634936842049719704243468520119656130559246681678570773577064065926254544608755472303349929613638009597454838165666712876665121868513497779308816821166296850485738221396838231833967545646514800392938587595964121960061131140500924906437176537731999546076889833008967203055973970102105925782798474469682562297619477621236162689577993747021880543922011543792099158084743397996890760309603428093036943736934160099688440374652763081514101802002646279030079527126109711438276581520094969291670282970433006989653009754200684565889994073103418951486074597884666613704794847904921651135634465291531866221485854540277982329430519277740956046375242179825054956788488152180348643965496161912451763284944959537414572933722907669954029128687058382377505247703854309682402523292399499351435036258082275450049407338406967346777386287556154279263347398380641499421646819039589025531879597830135898331422152654587494933032736167644539839378009345567473523245087631297128674702738454183456917165387989234727986724070970224962228689861122638318040542118881112242118563022894555297454590722228756811915463913745483519171265214980313542915562824249812189169344371309852314094340328449429759599305046887018292609472842405088814585762948775426517877741435653225229764835515680396664025777840782525791649579401991658728193302820221211676145870208350441282961142066719997977335741299837527964505156889239750102589509438995980488196207723021052659514212756015121913700829331490630316833824006675972479686896348383210508143641827457110067373564074288339532674556385488231184746405701223427341781498699719723601478103221286161245370268099670058199556913010159306838666277421456604917544976749327559358004947003126463995913654888007064081491199069269100933351194973561492780500893320828457513253724883234961275041657387032493431335711737200335934429154604905473443395496609707783720824001861081051875890183825373888432500534772754292522899073714942260271879494464871743192959746486034914257854108339622365515693028986986684369679315143047703821629084154515332307964221400485619112342141642065568230319311801519543514704563049610609890046572557440971300076939243980589974102390415913962601600710608959498238583045922201048377974326152489648568748192757943908915405151293720392030135938953242566411813708979560571534849102759205877774479572310105533986690174142496876478875827252696928603932044775836500349997230070357747151138771578314931127913073070218891552748809312648858959766804969396803855580705236128970405381336821546361823069489161677390500137162876245276739347945501196062059805051469607825612594074235906454066121859603304621790234099995428198406951193279602054828867881378116623650017724827135851511910983651737517445280948970058738276769896403982460549131819393133267165115645761107061819944176400725026091085814261051851666021341553704546023549298929772461123789895949241637051063712876344895691033767548811713214549796286141110451620502651219348414783581787810349937321373973387241552146086273818026547059713336815256320152247615632538336202842185546564180020662043330724886736253378167228018678312518742846131273125975810022224156071801810961610531124657824434751330490811789883818246040340976477070770382608686791666749526097698828087021736155606393964724895961627301795236224389703621857790513460570860665538470177081807326838241573019686578939060731569540448451600926210635090773071474394698359474693800393513956110139301643977531628825951088831383484404142492514453295665021013646471249387294662611253912203811579589678450993376280888170705319450612526021410043223302022102136738291792073343299662063923052435063271352897666163109213686521670789725920670193496834292808856790658490015162734105779924170733155447289654634371908678028945938820474802614701734604223637397908373129650579840680606331943412565764320600682398374962872640722504758609135044764049919617118913841634778556357823252749820203482244593602672720368710865332817459785132729698838173601188332068539747018933953364725232631576513909672836965850855510698964954280129083206223179361738105134448489865639023051786280622933220744553695834421005444475387514842162684884718490983362167897490722713749775284033161416890902480178500312949276569438020180881475106466801106685709049574468672437752336058166390206664590430748504621454788396765420894737800893800427036163771870045310753095544000408355389142856249093017664911612185380344319862468615231200624438771628378168673276308348187227423828144558474110683678367737754561641456080728878983338013014492561686450387974886787260758431146016926534327487662023256887386919016123746837990697984980723418309532393284559501773702361309916389904673351288272114058206656095972051301870624631079287955568411135387454428924365798016441243122871582520169675205752220784862820447452198953706777007367479498383972463683068237585542395736142269056854153406662938977513181185213004105693367953571673611328761597562553871869391610681814591739957308761992487617097919567937821781970343270108367971773921521363091630350584660565779954701725909029177464669493523034003653102602163328534136471374511919433313462741268728146289278321311132030346088029111548438906469886740442189339261440445958490704999963201147871872077294290735544652817908625230458478146525549696768652423880474820168924075275074544018766905616164116189455281887196412091173723604456906991501144886417534189567921212307703494715572600243345520919242865566577131213836210721819812661907036591048204171699401130739623494661944838171593817621697690964661260741127675088103847543893153305864259147623363623735438548663296212914108415131066415401340664860613701121027240983850895356913956049789224858055773606996621071467558037584120433509692728728339286175755718644817608621968030108428920415980431722444534129291460040945115028938059740200559926053197297662988988613926693281784073840672774033273251427778488145288120728483174175243675260753146310539629131313034185055170227036314493526748260242325347012948335198806229772770897858849156599919349388178005355485981276792945624670221614761495535915450226084335144778094327284323468735725840619059587457487487545764618137867335054564535907038812427589982749640180318981024701600336364686839754856060138884649929966390451616330898493607219767008988396687061160539401467875641237906849765057466634994586545555057598541952963117166680986955960586009997925657588069292384644789137365013582613818917711376141765423746661336857889745403825456379851290140051926561636820744766454227498418142770692693546518034734267081997190686524791517561133175299708878006440741976824861007218297978506256113941732339599615076702534634180584289850363784677009767448305839539751544231508341751707717008793869185677468954026848949918856145920028379825672054931434142180583177112533685247024450554001774711173002932116312188968320994413220020507975544009148834430159805445074540443467295138494575347185705855731189250381825462302515213923506503087056723014804270904784731977739634165946227919404047608072046357613415663158089718998136175560664428327570830583143668264634002657584607568247569823885549841137039088336953094536601696654612266177323315659382650199037447211840893067247534905076556095656014583277073658689898116417984231442597554265907275769780775405590640343033301159192142020548453920399947589256867064164718285694156656322015236255071208780577234921043612702563826863180671468052958519425479607021861034531521935492557376266442258673783093929919529526453695480479308751997304616666895604505522215682929745125360299103666817591935465448271928863650455428779783705945652932985623010819782478972343932362476700095685908311555851988836718823017196161314953500640756476839405758425139765679247646272746366521787749633683676629258784185719287664515738937612098273627222493419103498644740903781701643809923535512217919253015155350113350074519530843942363459094197015549514733540860972359198531443855815082922890510170660543412286805458436193822862505607643551634919865199640095080868988929960477431634690170830170196953534112766582373330456490935059527989248394526940361673256067152254597384168642766347352176128715841132475022856902794337130157095122013412143394664176585074958670102956959242347571688226318113076319739340498452616482191918922455636707300530204639912233566605672014428658089302832750571472329878460752839639007753705135864749684141075702951134155325781770119519386057031547256103687836909103009772952303424794150380512966312294360541302163887116410956456235571483188399717175636381352569315489456963843837967132819464860757831123294307466245754679745733424477946128286651690244243978100240100353629831414275474344737045090260639918073547353516665759370911962854328781784517192449207647253749572790446179349751541985336483259695850491818356275320311167677939650016505100941322050873097034246134749766639083579906383391512888878992146038752268444518420239727557341681726232361625048789353056208555434936130559734543584473899106814544572250550501550155114684112070514012558950717946538926038320795221351380816504717891563580521805195177243255388012233768498903995532822343461116430472383580903719874694612568582652088939097168859978842514515439884366583867989050431396280778553561912736418886174161129669847717307679617921645690240804642668051442876770225117064773271031828110017292902878566811331534883874999821393123699217788446334079007671892546866870370712432463966106409299372560330576387719600720746659500682095837291642518235602871998765208756716701645605081350492431172182263780774731781397065105660091084678506964503441793438085689050084708354629952601888038310947388591858144714748221539054938388429501616863330602895153260251387590211389376479966598499315458736264392346974799545366702807359999983277723211941480446572975104545472702636877014987508332298047778610129997890332145547911683101484252258694155689377718400746051748834209129609884889769429073627338367702413795155411398061399141906972126152239055381836138410229070064278888401793214880627039589318832074104011637197547682798406449930100052459762795259104150913176316495385874899484427281452554348432705670426624158654121300093007407521153873300679692293047988495937481111250463281686273636881063827147793842545258112651978470600848939041864144227777817491090182204147047316760256582936134503090029390713796541086118726264236305211541774999084513980335396982587591604077989069873929417236144255816108638988680428908933720256430511242902082318800818670725873316799767005430329531226336732839775646783457695459870354812829044952814678944942514495573193470874474615768712657002041943264081531093618627569726800442856949853493672688053388887046372064866880621131256862316131770887944996371836405241914256376025451332259282712345537496478801245579496279632346352842407524585480789175873585531423071662196309245943453265857817254980403799341217196301544551759532529113848580644506865028230734945536933014221879854650815581377656727551533039902219728780011368178654734189100510593550638707456034088881642801934201254797637557861665795059308214183979812507295803891248995573594164732680295491555822215339278131776220768738607781225786122829777423728985277991238133082021541992971851551104106359299392881559354750276105958962991037522709221998857857198868968293207644604216743451322574659366275067336063441398377194571881141937329925591351386034443293507689892960779268179751907118070777731298308080926625672482633388176341825194638323282822494923873506518756784586679462751266388096871618896405859908429950357013022326544356930438530731834163121372616325969201346363004966876069463610139377586706594966558004990389264211014026791836860895593553475476624778011937132175310418819021158335170971453789634191503320717505742275919406596625555517155792897701260352079078689043363303398130322732020589646850752960411424037260113923318812600805849620888471601255193049442779587186591909671274033541640937486652067537660304728136715459385576993311355772674238861424959187185831878980665512379354476843894076588911377257252089453905654038383968016178869655258473543501890445189106497866376879707371978908905621021644111483184382079756364719203503108023120127905997006942722630780784191548361179945120507802851178467020622158009420594183869342006717923538090857738711863317544837792682636598649837582500938748244243626141084129250901817859875389560628824366224430313566888723739348629411638229865700174030245956175134682537739387281716843135499772864899117783908152780461599775129151876884309169803152679139417827674559276157917240561551134904665439895653583288640292735325391132512239942187162041382036620178919743649926148850865764682247027380166341629168681790737069356094303938594125566804748480555130524154156087597425264977240662918011846500037204674328707198842151178218626096054381545584071760535515908060471564678295076175658649948947824210500438854263448120924616241077277367824034255751105013903965461787433348360207626653756077955685794377923196903651431181203602657479617742588688955234612859611737451102273690538344705556813776606452914613435870452369382096395072106865118437254172290809486057119672058858247274999199131008831785302247836766381745982200084274088302004766751121869334894227428555989328928380205455103992955396652173674753018886153330465442791104924478792075605582759762199070268019396975527903151070521052574000473643707520233572617841194417992735945091919371268624313877282940631268847033416636101570697990524923584920054543382961005388688192902940610940491235666982149085122125228405463378141317342786745796286765513479109832737483428584180147324507119141123535209830596331689263170883868783779851747749492871484105766388028520061393229196706263300194308488122887482800000518955634496326712880445211183757851477772234170348121732112624390066392388569381025120135031410894255118862310151714077822941213384715481933124040876273420498812891834265858499596595271036378264543459431083855188589166160946053904649720536150135680140252068368661557720859011299954279756745213196624012464569464762097711755445487912828849903368054597977833287488955546175503126236204542461838985449351366941180068203684894133255834690717574783611826857771130563083686062225942202155184492827400463291356064719751159124261880947801507164575551694274532590214446948081303977848564576387173842760635102797582873497265879867357858988660042840256604093338059429609854453620644258443073349882816912102884192040683246807660222436711195892577044862647968080345897906318603193691442730446787899627337999957304741338282121356811896491673765442489471558757703508094333731502745426099534378359963877269734245695202573526871803382170351589134260086773867334193170912167054275259075261714277928328565016323193575112526969537973506701228375139387322401128939119117069504281482368739449067935453928627927779805629642641143020225394731970938276195978644814979324648590814542662746045548471755631542957302515897327930669711291969435299637367359350164052622537717321135314745500383008170926821724699377767552398051091175616971890996044537899756688912650472477763738460345422366636252646773244169495152257014150604145172422715378099576567438133987492582539646098023085985047499535673000691044074989473504133839655779201230423138508508787468271879197660870242441405870622167634828917484728222203511621390708414174386537358430411772562543351485042017883159685027752814188846750576721801758511747670725442533733225426276065730527026233083110468316636095955103137985969583252949180398777159281413005595312717586455176424438105593740554114643318472681932145987710240322801169102949361405589229214992902786642717626223131940549674670866984419233020327346865817960021436006019083481576005196291271633052284815614819244935299647429283591705107827490326737215337884626023676684276593626961201578590920358392450572384170085931841222785368861153359824483726887220337832132737528452520484916102269702567485659355097277133793100950751530240294936522031398780300272438460022411779265456776814368081328408629952766785473763057418016667375542936322835720164227668324457503201004827355200476569178227367695385345776704263228130941794133645614483435392687728902792737646700181925757606168695108334402912268495861205217234197189866137265026710294314366694037756081343909226758700576754267649999220939113213776761177188315138996440407491283114215568136068152201167894313769269935578485833815007313603600680993972961860860434009342777736525881016958753762261773029941517373721541792479008957646818191965638808480094965121952898596484952779121709636908043694786565250366435458267612777245698809980563374083059174744567992304470406617170120210020867947293634255035546723955855958998676543400368951688080662838680221235023387141078405565501074671134455426677117768736064772423093613596345628331386805636069627203866752548366845560785123453964167520357017204169359395459782038639139361511808791521522981420487864714652435732424941031234826250858933336374058871210057550932347475152327706950771669959290364599560559284046643373729997841639164431426294088474966787302290592738335069674373821524330356598618851981048686596124382669546537220591748181938890776167006380858066036345595195740504815216572052677987898849734163687295908377400758903483317161000520873928920761542515996824142847989259881549874545853453729997304036403005244671347870454350401929965894064396897567293668800256898465793486458148843302285185446862105202318215542243794903240547949593445944302372346256736335886237381335312766147078581819615572342617341267770170125841061315554839349627800035710521486080037307253003179809317980408297550562107857180024411134635787197281537375041704566264609373697781614215407053110176701763002744657304729361810519047703312828616227943516509080834682963050572776886350967748767453429731656564605205929532564554938926316768139384805635096246705028650651987988692586617141563119452664544922245377156880129569442577967990319547106841351920341562719411283856801501197168817396178297298886631006651290517858282183046527821959239989869983743913182677176352866158366845435464851248525893432690894893731432579393061382916275169085550510584961289442913217035625275763466259251286869712135283663184348758307217808286054489258900394276054382364499198843769931357938484834968077551133332594011723377411003172595240390279429909897332175893858016926283907363088600387723742897686546651073352635335713469889703477292253923684859296162828742462695577584629432533476278559966742764349090259317032573943191592461457758793626081628328476917470913206681096488163056080467042213657505077449042687118988217515419083094836800251650195745118849516173475146173666148741459842084952168314537491845823408259108456195498229332462546272160967859030458183113482030225757426073083662528830554123608131013367751849948103510867378679616194635074659568199021107904359218640673115743662148671162729757924359736760397702279486392110025381486194327932015553806913863407813455429205724332666534173437870583554773946426872625699841918266422517497547381768324575030312345119740602103581224951558346548070962315587231453435088431551617824151187544667499956177585811477426528500057904663727708031428934164753162413364235955137591633444102632291729231944795630104332526944578196585992897901270219121830031696399996172755510168075398824101997969712961138569998523894392520024113329656847006978787807323983477012087618770304071691636681676783128733360743952898339510549584260660517668932251593719072092054885625648316668429340544486949262787762535772079546570441365968163079350973392913139298573734476599477129675244142143508639083534661946083929793124278153713364263725034158589893261473289313001260389739302801143699942098946505115535449920754590105619475355267155983319087214984619897599405476017584898402157123055598565687508757127377712306481211614858293898238056893429899665023585101651339800488892429500064762933674979316963830930470531970884951046283204085177020890135375069085218840814895033823404379766827428662080162030998232820640757406711489021485243051354605148683459063238833166936836378946288687546040927612529760758770782417953260435313138507708045953307066405161539462640524115631387398008749572128538244051805996731015422887764847024525915966695825567304469583040774049124462881507337325705569530539203301103654916318075281890301101690352943135202496221812817202901868204005963506144753639910899638848665725004359847554200556494281900362469386375641575218786288244415870960440934154470374772861791529380660219495975551764039360716731052812246510708880905483984066944992366358484403569125315601356742845771809729621696572914036259541184692734901559575398458826559593583898990711598828382541204307767454267259696266095033445466436318800155383560571143093516921226844669272733731314217751767829656499456349456794167911736506172277724582331165357186853332708659225414719496209646182650692634463729983068149254565706694693552545127096052765649796763703322365398304235401753028544633018268785280772609497161735974232014801922088055212668852821882113255354929184288731067031990741356963761112548944327223809285180673849697982459038639396273272559261906395724348102716752092401933914638216022252499067790256435674092403490623680376874718625889966310376226819748978356714758609186768130959636994918722879466548966720702790675440711910348232480818702921069780096767750875999574114690385993163491714061488802334312679992358713461537203554574255122684626071841885274508516269473223451086700927700173999869613949754420838500087696187371748933673947393279570308053691258124654648710530962323975924371639658552302621643130151143046205401870507415980951412069397539852150546620489365062347558981039776009978050522872843205647535490462560183615134007213344038434566134309324064774510789567342795258041383898051503538427561361044036536272843819038368444965697389116156048348441471007565901236585966684836216054554772914200835971146318509837735330545943622085341461744494114139289701181267144011683036092979688688071046444986891009200013067343222405933098373414537323747678564321663493482491221120712129433968685971559696812183767985877177523541841364840682835904605851220590123988023379444848968362066628715127428487802391452026221560373983097019408377425329664092203940933323237034616683938006550303606790995411359820902581890497082211942908209476759372611411365905331537176061531006185825756990296947604872055425171867360635170774581979553189725485305983767074387471648298039716508349158832552708529566505563076549251341097434965695802861027696240409017867122993577465565417050619636291066050196917898028957685676855770312402725460007205181425499181903467286664947832863497689644443632662228377265527907689063836570310491697529562406256171644179605559640362515435824896369860658869705030050009384575221292709322515048322450843899374255230722208231659793284452886828740704352159669289611897895609169144658961730851333133220198488518970837716829213101113554353812086369177036209625838515718941673988019688032091028956732079707783194062663845207859994082737615740872046888296754478950010331321341979584904848227312377548535671418542017196126081132338707070232022137310116363648173508086456540148725435764639891770830411128972474322628811208206551673736149497541713642922041530984211630450774174461956329131481357400076923928757177148749302402547752269458101005369004340238665859721685846849571781407227045059054167553921525204689840655407431962534504209510799018637316917030123809847509500879128679550130401388800797238420769474273055090173377297961039282643226303434463882469583407430536267864554799265102087470408904949402764945956610432323264923973331583969586380219055936711320273629024090061699052783849869661378248096863415153873652132055685231200089879707216823697144186235835119477699111232562689266737570198643736276730437945513880466938244916104907855439424169228828796133706010221982097808786692752320030091901362654632989575455037089338183425947268115494761084212845299434549157865300746186033818230467089656226733326265867171471070069885437374169158747276645836420923375536024716467631754308190489407083915099677256227626335677658265236446514699090402211338856208172885793565210260707256132661430454755112912357608513597554674850692967145716679647736640939473288214870860878443748916081796268003631463273016275809832631366328815993621978655132892359498592185537438444074509271537998531006514107312795675113781813016172352895034259199548709808755061220055238914629986413621294799387520201657115307124750605090925377299039531897646160104997989742879321518091704283765635105749271774279875562913309471368400236097740766620720147370675181117350926074021474322576773015867470697696643433074105063979719063478785513128833245004911108225161703529144719795969395449420717506864715276415945935194018566739906547583666373128048538563309856513668550157495685436369491884740918268616379379022981364924642755075251333784948346186444247497099818942504884876332878860835465686679563184501391407471329417481228081174989302595196220293765268901979976846936068127300554799790158421374998564647690788370342541295019665138377644124654881587878160419729515188829189706594372485868251464006371614318070485105769176902257858237439994309808577790369227435913543748052778291056736264141391096959384252608286614020257957693679799121409914701924472472494712719631388505236346367660541714668553953341257204388961435024871358438334678810384598191854114489763439782145555708317413042579396981096101340254800706849494597758941409663643674249937878361739284194693861256690844771823248123135040023578790258384169628116595864401498863939152911288175531248997234106231200919211537083117845100661412061166937279392320111004583279036929845794984729797593108085352144153075457983044310765705990574645402254094136616111649462717708072875016948509544268590769863324940943868882921655354835718840934713598926565016396517681424810962770769714435322418378979523519054230770079471740314213145470007238564957776836844006419948281642220009270520808241242021330996048294750013842072097869026745901130367671148661087290026318400280280747851944123133454032638703129266867362725446232852889944296029652524493390108161073647772192119732754284283964861030956380855440920523778562896380291953617794306572958757515765593412295786937823170070311698601643268106869654056360619089832411483866515230153561621624289909456087880908512550120791853316338739119114504829051218087716164188098881980961755658419445753781697249766521282628140291818533188232414593763623233461796872023294997745852122046100564057666920541176512233624007639780718410418698782894774238732977909715383748266934889964133118546868049659943504526531115723620708520124634739262943787896051229233654300067033024931805170036097402847555264445794371889286230774995906928745272117182173649734536169915861817102532432539448733113092281689979883391870488156390817470580749459234417802503962988182516657744067091168481748559048669971456734594076442731107943301378033073332379737189331002942228089726450540617155910887021273277589744917486077431445647880907051535228153363760009085387048184324574787421707738303419378790667056073477244234827594975743443091568182801656384973211008783728245037010545615712753882448305207926758269495829970838136413215548955194231798650914176485151561789850428562026272365798818757778074801510201657109923926932950415263527462163237554374911175901138414399861194610576742625799998633940163684944037939298429300608767567620208582172501711142860375024148613243719051134314190154431839005939645516315404638971217203574405249095836867363723899026353717562989073662319936493683510407517617243396843074398199767055582743233704134062749625579550476447174590466415930551581720356209053708735591833818929521538292583488727547536922253930447495593108675915620903107684350591424851392928643039722297695364121795578051376460056644573413776390841144360583912819183434650403074691938427620585182748384820264954509933464736016935677228638302323722366554762997399097884704631277300545791396769070730189616826396236642201260152006452942313152166154703592581747593621542768537384669353767949572468999840879308523981180429547577174467822816838510697329080736578281754002497995283819073834770050957751536493241586649136212246459526396584870731925583597979348033947470295108851332537360275383331284101578787598987416141047092015379943007358929131489210862591793844548041944296213045858864142219915420704233972855166827424805935616475327751445129547734320037174314748889141785642720610990681106792887390271725051006241412121035140180536310388284485213322696335074993206424368418861438355741102859172736266357550412509960798738030037954182262329173359157074177479505889298114720140161339148871041590937977692719690402157640467453397758173828568795579193239803728858709692685789914485562478444261483629941941608437940796918734426448296923832078042790755217107203387851934998731740143029598134448280061419443713198032607237575255815672359839710459431521518606256490293313028966737911527237067070804381382026046631507597770828468023693315742063459526649775205319743035484152772003652724617292518799554615090207276120883841602486058757900469367214987569300821853415472088741779735245902270423829541265361711754420885489007727885209181396771199464766653758946150776780843517224912716679739319783600717996016600012233914199361855471438584447525538395671983046313351442212403162733242484817778905630916915709902478929476528176579405514509662952884814957810315808424479278968367571795934012644830115636396191195288964889147940549396226992127629863805495161523905091617408975030081696017142396510097874920594609181724365715884660684671890993416938398538548390784968214139867521269765524947700781683463559917246426462393246842603778918698733870861636798169816778112725222637839325580651839506118164616420265581261896577598428028930524290295564024409120057910321453626767883641090859301661986406108412790691843302785853832006753008988760873622497902618156362556466372651341814439914285780316914848075245040120962637164502354179199727336637396046100887302782857739708549884811169688323340198422977822362222359471479205026755408275268816376810306650299863898187843575966253607519938483674096974307384580095017380274224476757344880539570266981659582363591967609648832210730108214500622445264447992416237260585492864200152162001422218540213403830520231170240944504091671386099078217808232021689230198788344743521349978701071807363398869971635717028253361596322631316338354539718652192845706485343220916166388665037403896363366453532610078619317920270819528676801299426914965530532028163494360000920736679403818428041276637530509963197450071291456563503067458201599705805455129593970678237752039525641078955768493693632940167371930668629989120497351227669190156141248221368398392845927633631097935102270513855294394606279320621399514557190877876607138215578814018483361172992629686076131237494877474115487305868015193066503702804778012854989370535354932104656536804425573458701145833761307133915019649883266579969590515430054056074085950034297576680991185553111691787643309745502294091911017694819401309039162185074285535340333781696369222120697418279689291590340428249850806279405894994379043802012853497001296450002111304546329565743080210913238980493637382057709338395846575745823951461179937714386626530246862300574099076323713475144834006035535226966167579133871829931317566396550086326943301368314652195537662754119475359076829873183538008980355792007029797319878665306043103593586320854201391763388920237985629120876275248945236534194668013739876702692687908193460099050899581755668793431441781049601026019961350973497472041635934925202624735218463371084116122208017161239374930373817590310844153497101783190515462108142923048021273501933328273786800579863633611243045362417478482957620407345257252279229992985467531666602568033541531993762211323060141014505258633872255124413262549033948002375213738569851740700467111842512340579657757624022583558155392577489202133478867401375774825407981277524103496272683431240563987252037647513053948192867196732852337627565386886293622893560317110881844276846895651673118471062052637834890798822871330004318876868298566540204943248620771303686868680669229890882769417974955658305578352815403478079448052638483699966689207358402903544440880504141967974354536517602114156647039750837614086741635956178235534281610597678041684722592545483510318527273233193497379672061414223168461458714683641663000214444017271231067712021354887902286961102704655778275756945866509803145610033805649676532713635506001052065671988822332392285251281713941597288634680707157663084868563034300754046748245622064638250441126891158667187002151090902942770815835807834719370398263751647866044348212015427380061070593657817024068484994081145062735393716042102463311038597527556073825189480172485268505193482819371144063426806234256075613877128370773118069138805887834396045584407510869846528712068051354736496213428150856383310306942147227124185385458194706267751806090147842500535458444392569077508337473985380242926234410574637850963511067603832924043680674002126406622512727458831617441396551641069729264308147614461347120142497010481780481903007320970704402607362943275285372674318178373499995637138660041405260687757450225585233149597549741123413050702736567425891195686540103678781422338704633659880321299306979651420574396541998154121576386544674741156023417028833794078238848374226616624098926979439938571772928768407884116604536442063422983905875861264608670965904441031292787105205089706988939335269785366128955663157908431765840161601123245303708960135189861095483395020012769924621702771114689621010468652576731908380053153597164959790405853246849698881776393320967383717037720280101777289831867046417942237739917821205680126401800068450401055713275816749572154976808889800158603810724984802565095481250832431803291891479009941197245762226781493573709704324344184257971037954211362709912436146544001508324468468834585865137915721220315631626068475349245642062786206120906525708407054649307202148190456536404978706292610771456631293795219496899515751743293411191746025707803387669050434403175118216747187253350467558753962445955897000790472015450449552620953263211019924196516467342387862050028120147374035048001987761326160206627353470390538227023834150292223975222289052824829879292429046350421736297565906677095553431495273092637572149789408339214878042694574619095636211724254930826246180130129250227425352751735221680724906448659338850839552955831222339253470687505927734920215308529563365112808769757921090173864916220742827471400047555683058553270017587582046024017315483096305625304539883058866066030602189899164816054411464030078880965867889280409384453905142622858343294800724709351045739910660065353208260748523387859884675584655299588620351005497279231998331626201732714883722495637018832329872001572706320896992670980598288959346001827897442837619521803740218211954222015157362161919727660339336164928462930938331973657590356391932537384317701980109491395033223210510572638553003854236266463559419988152264627346109223788451627052746885219593440242841717613456947151713368884829522013548550446763130080584744196712752164019401809295816146976607497862124648926171397800969132281337203079941278020449343933493586796894487190356261618538432854489419998648867386732034500744134573444692596104523564041821126018636944915879359792328600809810649847877410831951043174352074588054757440024589918577980740784426830886118074045810835287342790738267487453653588858575424946606393114262730014003076304675383764621579879447373500313997315382901130764730611407779814910526326253449053329086746327941824416885419658302308108881725443144781629725922071379424335398845682900670263575460337344510250761539834255712274094313433135242465796508007124658248019651854144920037381561619649170964149190141858182459950761849094965006090065516132774223165112179687491885552953500327972546308053443663022039680192633942504621584673437054285630230593207707130096170121373057868679814336383293054992228299554922507111031918667549468455555232134435963848801506448439550935104931724814638135883238434055488640619128001378537340584593922707581305285566486617644917076017065632794607921186197861666739460145292671565114922004264229746021014184261392381664228432929724381644295000042896090178033815610289469424729683091707378301525465473245612644348612254283487934248454110434869113260294520734059372884802066296494895650103041180164211512262711172073665767836575162141460555669356214463996777703826739688220588845466181997963406268531667374655688993753190675795347503154530930390331950790284308884558367853094175223150008316114998602822934733215348388203105352003809627996657897635933007012459198771754375859520111603203234558419321715260944369889153777363059748999247929871609966716444429200257852375090489433289871879147857449878815304954516039026772047676087936647130318271333794802940395347947784365559615763173852896381601722894542301240174379576266234364820657865658274649420370572604279598210246520010300084178839228656834678386389451999219225207448420729069846792961778531825810101326615363936420029153459446155559450745150774062830478342999626469307708607801093441214295949762713593100119769944044684657229218809230328409477327908864518712587428113791044618193240084261929622400666525809594008997964837208944958673676293742176312758905430961990557333102199278035085296482247152125986982832689864998015209367349477557972019682262198406904795189490149462043859787648767833252350858561800398246315829730835788659206333287428002167918206962808004567402190716830386796718558142975811002916281703388372422841232348342384208385335132630565388186826655034994189760651831614680433731356887954097141894098127184677348118727784705424792023186258077927093869064721509987865874620328977604250726258752498830195806593414687200724314665746401387144589603367479721748766127658789688502014297483862064946701072436268722298382643857535255271210674616294285130250587857172231488052567588389465168103336449381386418081597370975651107230024454771378900151601807168030957665848050447406133503824521169391892550835825296322870910976718693111301215341704036569829275126144522581952892642296053345064064653811388858772594782033379096179916940170981634982446501767725219915169126875742375303604663317692716029080945274705694207894240797476181392326615919326160955421123230853842724780191710764288978798790501225879032497367704822537252342976725494157110264260785309550486083471915026713429025512982912026900519081211006608810623745041375662586306471110325762684402918147156101950027932566129397433302323946917362687198923309070673744728125831744874792624835974708660920465253408530852982565402818642157653969297569105678347952024122698710034538782464463444131136671861234707953298676806796144261130352854515286244638999885046623722473992821955913674207420134872907772557807127776274009235285225208186084190173480516060241821280829424197277003629561554758485828491006135260810990488147580734167040727584570567854378696815084973803308358230845960249974779976691413106450396387439765430198314662651860407575301287925031352684412693590121536940920295339781217658803254522038788574935777155887905033881261651350711064317242415695787936220090733570877715452240305796887258411320324025004476667358636017335113452919231195040124920402079729284987150031598356566696136226444023544833545666692687640861604209296157961000040545615638672588132267493985707717579888302411845984460810314352447816121884275453122872136251204144851106393026107592218939756812512099008593985344725941677307150148470787747410453940569510985419733790764960168362261062807389832081162033579605714374000858455408096585854663509917029199217929270365892095918525170153367852001727688858338938595415342435759998824699199604310805091724875111470699443525731147296341005186131566659600981565578907224390612954236535766436125664328436820432673622944428307060346531847420460939586468137234174798697124108950911346228969710339489032278908205688235779347276881989597601214434302027225597205258736242932352567743140983447621250752411365900117558857075850072674475803308288127316776287081037729680256808617083360518053189964596356891900068031508290094276789410072640964528513304810224177780026055192659425972650380766683441508593023995938241436716947430587590390149790442280266414953065200423701005502167262987930518193765769644596674273081019384734448350864805208352222475926601827186364451640895247502589572891633741785366438922557277161146569477919052619881015276391150732873915116366304163827630930616730686266901525157228363658715625723847872562174536738827699217261990930953117138605736919492806591362000954771799511695421491430052846148088074567289448263661379245973357527958265749912804845642053854837698045593498278294027814505542599819362971266155469134046450700321979551131679842442749446059954001905747684909139749810454721578624530931027258617589576527636412454171122918392648278327638377400815010081651026078526202490631393332436871900509794239063707302281682726894246523593888506603020148977298718632680548034446647151346152100122112282543715695710753803753376122274447479885616839973058907329324115832316345523347938005310609057955953010384928718742266178405825476258225155988672811575970171335021958997929030312735556802038044171948286560788281096409483317201915427370796798662785281387294669148610842815896567930173718099653342912892160919434247967459150360931989347272947858605383294346047395650785207939034064056131999908486367524389802002899643972533038859305586846944669923657788933895347758880744599449522591960238542754874217587678231184275409353763831741773361529890935123687141837392553563010762476262258256025539384861239139010732231633336078790033126669731635078619948870874596679507158325146330280261325562069647577143147839289090320845944818892470855363957466927518302108808000364920420738735710838981355996259222384199153967799066981258948086675113614952455978656390001717827879022002616648154273913902612453898794285817324113661299686024726937437530115922881441399356972206065608732202631258168387048352042778616127812083603203779893089384907110671874080614796281969619583003268570544453186260449987620162929269755561261365246178118791788537355051724421302212148153292292504020253515620966201681773426099575048837004921977217342142317662649445437640160764642186490557314646653921335110412597693496507666802485313652272196282777777996780004020499485490232982052884445835818809406690414582715049991818289023763274147415971104376310034763351450213620903638448796338934634103986339414194710846869127502612105769395781159977401714730428277440279549504384396800941944470210158261606790473863992672597216720122134598607722418836903659155739977312234662673782800715215049450038653763892912616620581170556882584918017860648113914820668023257327013738651791048055030277492277162807211920875137069004281782363104190476680483162542856888325332764136371005178665962024068856447142351312023969601664643260749010455293870493463032186459250442739404545790293544305827507339474739008421199024352614268218415080153075288152411657139580353971113858284682610378052727523039614429432414934292302260675263339337654022593808767455287039490325262489067072469818599554663365521771512000225556339754826590502948653269959059282442057359036068777731530318036558199248475349960530291753471413560014690551035872370411296896950970859220810637103804581096398805972436303343368447510780361132436601907813419074518084871590765652411442817103215070578186130323903799119701685297843038930027117384610738606605093003611439952760051167307738173755711385973568104828620308634905217419049467897465577712180904447981934382393548520663636120916817933065529393022416306141461912504517713750362440320557211052655172452935836842321985117222604772468869943759661090669570933299169714794827707444281054506014998846833445433310965712143956986616284684990320486254594974644279078631246273203838872652741967063994735636580524068324851471409986163326501266249983596656831182672118810177341070976692637197861975116017082129690199045898580577855527320356597250867135335071476880898861814420552559632037630684359296387246394136495372289796575241292846693270747857664873822763254753019727320468882231492038772247857514419459909976536301669416554102309609359346539607807882902294548213890301119245595774959679119900407966962792811020488285739486981461935005164534678390378135845562358888196824500949846939975077627503306588508472637709780723782734427512276163884675879181459174836738245492289945742242654938867722907682736731359308225590562781897508583545653801084005081603633536385542565152674427811627855492649482885426905446806236590413803958863194677294398193734806990119084506332735610219792199910939914478724420536516924803842296647783148605023574337276934932402020035687090324742988481304567213899536616965705335841064755328472991257340184286021944595528301024996165967931536003981740658490629716608505953706141234034834291327667860068043582944719373168543248742969488491986115987310434008766452081354197800048529553763706063727570818466303759343972591837945235120969047359364178880899892046245214566976195744717072962197074624974838258677784762254290094210149254631891129464630873065950634021608560436256017461398244059740211451904827218491783796028598578960242858542200870674788336384927198496871735004742651143203787283929880957071992393383880880444234021686834179617759107468626889689098405356664946814786955091601100243799261951904828022469773495366864289778950267857342793746749563379750944925513421500172082107254448158952444573613784012990025253274561233983524173418105263343806815054828995181006190187621891089567477202196905840788691120196166241112081726226349356725797932275316288016906726840123541252391985540646814630132890705028927483927883924044796548260580861155821815666024918101284694274844342092321509198210735124451113902575371692966517085867847979817947495407362651922295720575120344349383920680928810967141831962413143948710999823455299474150393406799801797290196120862866425322473513580588251598522818656762511742375876651677393034574412029490339000442265742491085789389946409017423768690437263111070556706724086078231107620272187295356982394647673429528497286931100823327917308658909992420622398551809921004451337915273289623055449359636753247593285149105122211102305106618673261648524503094843891936459752757507371483282242911783607726516870857920841475735337186466059626505587781886533820430017001839902409789325327783031159907334426452727689058048928702134755135973900249936872285880424775829255440809921849424356717410386579070083728407891301204915770781912453721047519619335911839481422881160395129126256429114754046371276594551276719290794068391137959787683401187242427441091897843282076358124986760509937676448162794976202965865981305505368948181751713706079057325316316374588758304191583949280768997678778777287187463531503300389245044181382720679794484239973352384062415159233925954629663258157803538230773622805031533640205430598158076619977284821074107987767642426846241964442949359620066396358788295790680336650790236687612777418802135879321397531592712925996974421740521120194795750483671471707203433781989793946451393110150794154150196190742761871991575787287350878865345755367892784371366063021048086652866552077402739264056142162338721141189788635487428002741492716034382400107234096046089289847806605716023518974520029593343484980583297421438086942606961496874331603333386740101696807940914947817738130219869444528127336838311283219860037577842863720585868458556049945934177765930646990367075747927349377486854848872049490241724459845517513253466690251319040450118910409396831416336764941126644238412595969722133068476030782553507834098291227963253886436848252336706739110160835836717875387681408056290009517369686886324116973189930195180891012792735083733846189886856384670957212441954123209700477604772053631108071143166279602976725805550739359502845427199887517322814632135331127067130933394754619054631505875199049832393222088441974227585565857390635331939306128593104352320012865269915725273186472529345699885580665825409897980737094251188569731545213940032369384304690801178530452064930613381409092385618182427572901525363286885383650438772117161154315486157845045666510151459245087645143593953758314688100984378752635356888484050949200271519430524600727099357517216507654581380155181280670789815789160605763032694192434547482320481400516068692474619539086906233608215675090878676494018885295402241137343792396674767055102198587190971529112429279225606420056766127102043682992841031938067181217939084458369710269781136367884461174941988271600617077786635256903457701903341024732086537164664552426855044841747729789896236842689865393725649639482767174211551055485111350047911031922563516591620917003407244620737556007805101681783214603878155638862126309769751228813610909895099429880883071658933688833662351264893016853730811097803096004871487313305373915260685626897032912581696797282048186311608432648829148343817923032962227059371355698157135349000450973385395983322584978008491782458649878096955960967396479863507424147700340673926302703782941964843577953810670576839264401447799367698766843981413602244969101188926810893953061930447829819225464065913715113209046563252303991632318003722964437244560046145094764262826736018052332178187342840586000337864751205771490858901792431962651229706100902387890253966947439907046193195146017945324894121582982735551530684425918571669210639070588221644959965443106391882708391348675610923900889927611288918680883450939969239517299378439603642166351172274789248498736250708823598800118644490796272364782533931605152985471635644536218807161246662552101157599808918518077378084732435447752868206893777389474957462800867883994218949104468007741357698668024739482759841382401398863651565637160899398900276313912710648148038616814099216482579605904035857562180859554795131943335304406298374351797562660800566078696688995785338344665109000192431508084444983380653440817260657402101338536634169959071152843852384311733577212096084959574275542974813759381583157401652291321010034115590652946867046227130867811838424500625300318320314214887849127452571839494074706165828578008596748046609633267847944747035669586083951520286507834103154046734507827329075174364691854171361371775639097764001159419623015698554940623405866121012043518960370737736415718463597124799167298813813353558296378364639537766625186365647684913893138162010105901870580481283348193975711370097647159333720714961328686284406972706476061165885852588795519010364447297324947706530218161910271720034881917196639135854583938218043644570194764020888795228899526018836600369914404509285469402696947559522308429327043971961306253588485793060573181834669507963269045569179514101703347643514748838760402368949779586262773830289696559841094494126401523894940167434105949680924927208162021677864056423025772815466523571125504738355329898416432804215444219357866950006181742508930445232558761485069934161106595333940398517205822289151339583842335627567193209469661653863664655718557258712743432713460545890984085703129036019082920477310585189639862736224410738974195221010245978977764696788910182046363400900046943930971107222099162207685803312643900198880772131491581065586763896488417354792510841490333462438085605894885779500374340271365433289706866478269396841594008167227833949677020627057084940361318788386267955734061155867373515049505719499678337460375949551192140698974068403642175918628874645772098655325154752616285079798901373755098742338221986923389416176504738352656500171706319743090577655811893024123943995008488089178663760009082790732117196707990265066715146593823482530044754095611345700585459102665549450294907890341344912560483580272801831033077400286123185675647078591359222950666712433586407478514338693640413113174828495333324816134404963224292311980007869887467230900369049569868396583498654720774730149602652049607743934939808094996836680135589491800361273798944340120195279351836644900618995042791093047898756327046512517980886570468321094435681905717432981615405559976499271315024285778014115955600362924699761955573023846257711912314290295475612622039088722682977274843422688634899797042045490734293596543442894848066300976522604191652138921487877873697274661305852529853920282285798631779874984566728667876082955282988238792410786532769673844656641747240402888216889330415157217126023755165124414251791326113642927089322517328754260910999680473041372153552463698395276538565124322935081774877624301220393706529825943416283684125632140992302784001425004722443463512049944019651263052420105112426514887028265222202239886975704629023751402179743041446794052974207300641913424986194182414286853357250435136548196709546280826318325505092253424182600442244500248594532108919503429784351778014952931858762249587953295907250797387635194206453002648163935859125097478420788682407958153139108001740952363987051551818207287110928634133876837644267837483691974596894741951404427595637754210178436047662595263028383677543110306073576641886455272193817582092025269181213652549211131270277577413556393456495818073135806307428346536349868642672074466406235547947112032224546724570862226894504899658219576039455222504217237367922368445921355860425200301417112089022470327823693598479676912539757813390219592964744900032714966057129754481347295515147074829132282573581441741247059181450104788131255857426987279723251204662417710369073146838387921217531698472617824870449763207308750346579730272506754556773599008700395700062008822026162331115649615094074079335107573274021152046632842920382183250937254658796016590924774869006589028007176554974686693209408302995743799455027245544135993674440842094207354458540827291411723486452858789555122756078833259673359379668562286130125055647962790235678370979772435013461734574609113858047320811521292678522029296774317472884604992193504188734138515788025030712022453506465928257175884783423645347280097710429512515247866932532069706199947145161047143261479685347865158554779980085844094258962797244053242160131254141518814559905580986479284585240971953465269421734774563155154495564426658202854128883423421274590953844466478825542362710037328993440334168389657620882594137201334172465470189280773482064190596809004631470082989127949501401899497755703672910272592453470269982555376531416718703762105165773038365682349543212456813126383061718974755674640897172982412738133044383104944549851876849380136195969887917002158000416778727228878745726520328363116862082599330931198796446106661400420930891169415388149779699106763858817712046467376405970518389008766642180296636523616738443742540674413242933523538240096882534947284904009341997907889746523301980124747852791963228841204097163128644923030566873943296531576060678151081031593559813926147625234190185522419081030297422862284527827817214383091411950533541582603571906899103751881966666489482559830426527096725139952489331141288970405566054842910445329445268404057504693848386388904013930250192622373858051878482552608327292542652568735736062576062707526101039261065619176174434748044552302693151921542869183723677346455374739513600291182321517922901520368539552319592312577351221347411932042926252542307112225523426970064000711990282469087591924337623858708913904966332951836906787696061500552838017252492080149735958486606495017928912831642844694904846791141248308407475991629860863297816292739770124118458202428887586618638609562407216693965709845428035508844732876439805048539817104469208732053085473790890807356311992715331165195649390956224635557104891076374308266747080094267133444153769350558534146301453589360972318000858164742362701846587621698744397817410121182982957006355607828529935344753981780866843124268866428539494559409147069982270489332239945507451044557259305582315116110022028971429619046417070498459167934900405534334630505904928672118558450507666510987674940856075787257068130697242855407109348146758388369242205972832883281016882661793765346256281658539732372984708788039969855045892251588869925307771031630333701541608320428490771732887840041329930241996350159038153124091747712635673848258022386056292850532044128142623364739084078111314328217862393151633076702130623581334523964802830752468127721006505699760488028679857853869604429458171074444051806996284739399102910268359379713986248662115809573468603783187276286786571483909146105677158153990092161621562024601503321104681429437779820211266841875496984482167744520258041535835678232453033403429805253957807944767950000868829051076414490006317765696692050192551266759940819669695367727898251968755329100913990062735556640851155972307672345662834695233291367542139026306237332476174762886198906232949311024873959567639735606742005213475516755656925485405025072615949228395145923205607464197811611165842661238202417403569150962875298237368052139106731066320446316678513774191989022608003062198769164922022888725562342639903935302017173588141522144907266204914113428553541256199749263181811771446113211322281189121222582613235450353155308365128031828410117563877389077018036197889566980838013518561669032711819282013701336534220961024553602931084393861211921058455616166701627357802863717449406080689828688309467272426388909106012152120021165825409070968174769737393180509490928412135477401832580504743912291248631556845997322917835629821437764569945149468184750658914979840396885135176992823574060076343051528604868662561826541558234165297012317395803155833120950084849558330868839652502935515555471609500872326071462849531987767013988912652072664826391993998839003801967492966498454011051145041445660937107223589301020765069907149690092185968229282885861715121857713249274470320537315120201508502257285126874091716873999965270303171383105511676057351905624003936969127697046671002603470051702177039990408791485250589427777718581490961138593742887359518780421335967610138278237668429548816789428436472565570893658126394498714143400976340949340517986004778693791979271858433631278806279852390207986818648898487427357975808007703324989638551903308317591310202583469953268331999788924514588438241504735101355891864920148098378285114516878543859527911505884846366464055189603346524173540298159689582828653271675652773492549965293381434735944665553875787794856522888070272087985737616109472219061685500369543015614157296574562951160410447371122632863888410848201225349518989484111706608170051741347788091741876316879005042113637754049018388964754656695764156066275116970909510504540079594790327908138939759756282289077969623382643490300472447062719928385495914318028514009844864917240789387272852728884269087034394589896926959618139548087829415866626653467205169224756209674003932606683657687536190283520200800563038461884183027202873065203852068114898676468966025061792461726540194483858693910704027169717861588543681501871286631415567481881500060910134030097152422733809422905136753697350521207662446105885391305701446193668021353773069463285861164069822491052443573591259133776231244676872154527075462864030544311683817374952811987370158819830977551774898515623535105519617675585148042129783522274285911303259755288914906070398680051980334130765611792976265166569343112339141336597651855782329138872972915002045753438575830946435185842404300064036685635911327517500796965548871583770385656705398619342748014994542922319777472309254996724197928576131283583939149402531164480005921299545721103443165967770173488832844938241120880650007818666889614007022368286052666485570713821439517832175765410800353223575503872046867290710900620654359991235966519938072815836230741275122752165134805898130009418639700850475194004473244072189314188660643529144049069246751259124227625539407581463482215101738910517657719100937987683901196507260576388053133554862518427946672410099954206947755206374841554024776178015448494947557991421644016258250742606534021621089011676700516228168294118178239093067429351895717793016546123121196746180547304162913297177343556129686669733399655774642126047952329176244631030874028840389488931339173704602994566147847331435726985102500384325394715236343696596697182119691124198376931348356323868422743943925069416243705328574886360977776063232459053239726302088393996113208976069440141844555447593565997591295642124726968630050279883128403886021384289792044486145130540931089517789214775524308101077450586306493501558800215904984237493099142560320978062507867008940924849552829267817436106525716744802220069105605178298418029690769665124917170594081009823488863766940002861194674160201100336074443355841083179758119799738482139946055160137385498273689139080509467408026396372827291361180520769475451939335720562629265449789515839053836445023519275853972156873677890662722363708378410744962948300382432457991180525842259358394419806675778704498898480810407824818628548015541263955404562752350604248519881788270144943791444926943425368532334981786384899567857777235454705409260869149037408105077469484684155705983169232165319881238250344128744764800834015342261934258798723331463456124719661432565327258685690053444334333870826314322351874837661866908568263316726264911910435634838196123475958797912877889858133343930366723154838339591390656867914979741414185826625271773856527858291114699526837928323811950290840911881380783329159957896616132807914911352137864688205930412461377879256464681339363126967299006795872550914199874611832293610560169448368600871642235615635391935008784057002050664023371923028519180394517845544500084199691121034217778494552186644931870129453696892465677783511275174205948057163432551176933574052377593611367961770627298648350601267787487229511808505347592709839118928640885832502622473862234572233159129752646978111286179254108465648417411718656075184464289985611627810427710954625055179675495017131254227071263137335574194928779270738503901544667644192975277727378849980868202701736940707374510509744455644598312134426694660148903823072971371272864478091435479665931766732152229524139639057990650153101973010974537361878247039928902756813190455738800508254076388607592774662651298291454178307848862152895516491077551757324088174161816524225177076425260775613640592154214398069206927086070372415417903525533353588934273144972740260878361747575480343503947686643287144052420808907417527556675595201001860773799036650494479803924422387999117529243901169351061736850705738483698274267150929821996168928247791888250813595585996858890903206064961159903995972884155877776005470006154275160470091007504899369706694994463847607795893142726022862148882610236007711593859464491374529070702388411940187042059103589688776019908606036349786882425907501014743106189199253519421783834553179799149214543297819613788487841888907568298048160933518768666466305253347590405151538659632796546926032916307609476719077847657451540935581573204097054476082565269318840799048268184824659084905889480144041951865377141906542609132882485187258178247065838779098445959833628135227075764662140822225239246626451573007371322051049625254183778421247850026307916945150305746060473860899812602413926677482022159374509604664105059182284238240074324625435027212126613581505431239953093371140239597953089969825659551090312800227614291244305157603839542254103313627811310811687777965097587468350642773812888621822677561967790594056157798597383038202406440931070966530781255722840637210518747521773407103121801627683479519424310232516157710951119133969870089140079916519069281863098818840251608833470724379167707139296319836073085415257956076175280256837512330062932536240729412896150811221137717281435364983718908840613045719209981330313023696683108803530747983165434402217860950506185351744931482788440665046342592956579225219975958808241190550855756243214049278006369806226602669001460344471006721387943047149905095499252159460676165698911560034133684631262540838242446983424026755381452241966930568059430404578395306709653191771777939000645372416258208923682250838924336344458813220606750762033981265459498793925854615846385631615456790393364565404555668792337516095174954291674492188932381097381557036806264692616110321174992958363797845341063803862249778252602679118011036729370334463209032060436965728249313175437016768456985579597593627908427326290770654995277970804012871973673289746726400329473289691691291077327302412396160832119454723325011037530360698566001124674111128094405700422779760318018469699907247657752798631438987010880374038928767683852417846787648102261040069980849725656233963743314262299661893050663613931986218112644926262956016016627907705095210704857368960850182627890642365919918649617161040468360887451823305115310034975591846901809198223341262435595616911206159603878420555071738397258589759469774333042440374542928248767285552442699628909463325163161807635148644310639054897330825401434109147528377742721168223269043759049909480973015146137698241088258313679759513499247010552654224481937644987393173631248171337815262882086355260455998433835912068158116761744544231342912266827383740190645772371666384569155382976011798887540946098645900467443372688676909976732894944700570439803764686237518493042136441696653328867810159441850273973258345030355163941618877968349018474800591170360804735248939187802661104007661435349626466318676256812835981231270948378897968511556327973395347757598891349495700650964552848502642273445663231961837866950202513011425680627934902857550487914604848256198021365986576079269563369127457295792191219239207576489701392684697069967859807372332281828529651027562485431179658873410827622940449996665624155296676773791867133333675037028738476685881242345075928644764358433432749025325394940360792654616306032751513841496535400350347781436729006560217844651470897249693368695289185562632487520625548782527013852706956333328401256115158446822667764522036361085293250213201059235299972386849175192329717305502091522929377811246077895281616622886405112463473327474306388508860201307954779836580800728058305316697069203994975013715847962558052306954476198229649489959065025017266825762240588955077895248474899623565407330724104037218109516120709953687786092833616759094263314679446582424859021655092618508840611812956458798410674370684669252485508282421624101915776650391532531307018984140617508224137074020678794638257584982039637436474773964510720276226224273080593964604847094937581166461556933751095129192510468619016727722048013419669416682618243576874159143441283786636059331551902215072781071875421066457169238315551426678044737483158282746155609021439427058317216809361861960439194531442200341994396701872128548624719748361516831188312597605055528225815968084214366602653112264478958302485313769791858105285794059715979576013445607852875042993722391709516169558160817520642179707441142973815327043326440290693632855212594391434505142108767204996615773203136541664925754376382096020395634097289240137988158620323886313414775940126301127133820305051120298371281835065630917674530215236859117869362966303474341535356585535518202591448996738911168632322733665121515384949924028013729619841901522683947149635120569511143780636378256897338940701413844559089858051864096222103845836942773757852208459879791558972351116877510939442077190239101200312611311188766047160369490360298760643353702730783034388240629259635684950514442361165765422080552920006205143970553285058093646116122212556580786875485621503471890009730851318461891781086921936422319550285901255405355108551065909896522871252199045540554177327828575979819004918006232631307816653728343610529889434222757763504981601983937692870191098135541560310206805880991451838912659152561528990150658007135548133058536853784354898055743447991322924046111249466229007068920924679310675403107711309272510511292035586561122372891388022556944910544095892711003611385821645013295783074925888612411892149158505505742922306415217935950675813164945593499170209638235811229723871657613876949832262312193993803535680559206185624620967108748181488188648304769144949547031102257259082473486273827710664811922830110160293705897456652503089504707512040546224944619075381050567666010580598258984570416531940586097202593929359484785040167552870671272343580263851885687540281537900616383858335102772706573771110092998642119440669133788273631708248470122960110430196161004449853439699389641834268353572918199457527276201346645144670955329946847405424783796965284258733951267101191579864288028548104920681149258669901245668190020164022381068710378715613917920351521909495569894110170507565796144339374203016607613282478235827250370850629685628658507394431622327760627544721487355488566006551228490607048474958010174593440240206450376030832475257898816361980079132459848956507957003512688210913480614332302261984879126246706896625574558927307010489127324196826798806370461806001827594831409848138428522620777583265350985136814699271988524562457709039723676639881937185652869277610862769530038565870181795425584199960591006748183238753644994727156041933340054528795052479899684338072156778034326945217448723120261633297011300301922813369989735391519892863880543410929053253614286804148366780083642860442171130161563439887948551258202067298946015537133687550550512342572872406749596656480158568232827764113977952734568120130915040301350665069447750601536884794521375853410390790254824605284524940173136094656008809503461379423167087629706353984092392229415217066568483198710685367627401186522087781892089250847961510681948735320974499071224371141567053845570838939366600569810717925834651481846171110671016581952396464413917510771254029038754729794364050134763275748845744315706315662476020148935585695021876414652808556300343339969861931375947288394174801552854324488789671312573353973695845037133337252603511173073199465117030167057726240527937824537627565765554913926193845075079154124112691767967716710776294685249034310516929985414853512782887801594582743200868723111437175365181839882532857262060041548918429253158828461327962161460831192873172647592433738469605094912374671263981499431056409079693491584111837245810269457200134627616041606022915963330393100778340724821646283112249675915526542505707531585998130157659049509188014099332917200376417085141782692597034200775167754956707753434051572994642774812271566554289079798588577290738495672685208638673297543295637156064930226668306792364387158726403480152256154505306551178276296705443997378050249279350025841179671206128678451502226274269393141197430802642913929378709630297048433568225275350345287069017300018473092068379354755421865305386525317982932489848598756447551027459887471434344897718055876276421227064582478551242550830350179797033044762595507084155951729177162978899958731095135865625895125626701081806398822744104037462716044829044631909823915448079264084786249530045228478467160793289533671578789963743043106767618813960634772228273180650331898651180228047482949800745460544648092148939911260080368836567199389473334172852927841875492845489650900140156195141074677136125234414102712525249585815260397708533734209536675165381699460009736814156847541312762065518262501816324157372173099277319990592522026981890574579332651989787421011270738759780074571692557156006940568561458363742222026485412146514607173471484222076483249040941990740457507374669262381827590172853343142028705317343750545901258536493724212612748859978180682156897898797328603218563993993661550509595852422872969343549996423453457577430695767039721728274792700381109823051324150973141288116584234116295102459386624433890998384550102744038032274538654062011672392150499514162188993419760965139102248974131202776461420720225010214744857504982715860404178007685262228816348790555379316652410429150674004470208286106877922967406565262645798248840056428699873769178974260630264884705655609261210191718806512759472050500792737083924640381801410541723948798405417442202018388702474694036818095124460074234486944528805771981633149332564902525516089941532462549142406138695434902512151454202600851582622988795206525629977924694369422222806978273474976520410057662913498030888945868479887669655206039197549764373727026440254833169033246160744569069242699638857857213246877651986593329614525886661782894044032943741385174116748259146819709720052412648571854095343181070770224620864725433340848617713063506259104408519322656500966985041815147892711075446048959153714556375349551285393816032212961579808591125117193005392441142953486300563408292160408676123822286772881131747467029576491665091494835025580335073735686087127510311583533114042235747294956436915290102320148032431232726052423115399359659503110436997881022214162732244768704289667916757351790807532732648544241719030915991641036038891413747136578255593996421018207062600490364566839884411219192356645266399586431198867983343363400469140892923280377590077687359564873047279073641953686912716581345480447181980311646026694573850728659339301421095880966391546679050888669725051416415313857975711048368767849537887334414422518552694252522555730889617645856644460952306626567308761148243983329373110095118917256941220479374445497985928778875709773170955299696705264763412877998357298222918939657737046914337263130666927584494340850460653950045815782537060073356818539449790840633050641714710014531290796810934178310543197619811477667266450056469375448408909545964151842583069612132041797341797831520878704273092686373847752696460409116203306297239310585779565252977635258816453812833234637236214167720256038606592518061885939878334276018362057855351852874849595109343640947528375116610883366017704847431710017301585647713387224375350423850914471524566116950529367425069310613617124167223935776874930861580362188737980534983628233174619664040133734323040787009775559433345588054078958708000635465604756863794322403285592913270428313246701397227748056377640623452336547496067560512983122062806515263877419116931461501509904996056743685481802894979800482469043344646712960785558595312593319152801872786643439080895104432573297351466265023382206992662322434630217223503090663525473723683234677300364328682123524948592269955446387868788783130493641518220212702368420849537647345048531356256804223478605790842418376936508337929702493227483340735932052315317280107337349418991280496861441098182628698291360190076164165586022420115786884094080805299679951645983102689599459436280106761369762718758884123624721613311125904004735237378727841038497366541946628089864502130382373784408699037034586796555334632497234007777173120695400271157546696981622009385949116340865495901456500172606593040784948535866890600801453112339341827589109983402374252028977697969936755297084475760254583033572067815915658483250065429637630993156195926293456753439404676534310023191085567176397929188054053139601550774959401229964464506332775232461356798536679064909243263344812411514162403566851968166698548767153279950079085972460524577492750411381400533882417985840335836322389853844248617377634725198020208483813244304050313331798053092186609373933420652037220644458800629665459534341270365555047856959895852207000625872674750183968175611847400378586279520748590408615267325670935462773757830380609206906908564626638138564096840008069759777966847650891403158151684738516578073383579525805561347249924662982485470394706165916226071024517637280573515905500991890214348406296391812514043774407162592853506619124028916616152420299740444017716854411333397602389267144901577848737916747169150740549414616379233498797792212641540410024695240392253690173311184214544929366687406864594935993145880974461106360637841391821428400845556267041073625492304604318221188947135002749877452723234363301238246492938893198826938276987528456018913978974613465107232314316292614769116140646138220837848061929354727912346140779088884608917500243036962579685348088725679049320281693313575564864885247497846330260305271905134635546123006543424528548024078274687106510600760232373095483352966080786409640273825387662996379157679211577567558980574011319900801206007135361912677007896901759695034246298122629431933029192182086697668702239216694498446441181348830860386281305047422491222315281312718725417699935553447998148820177204964051275801864650886013911411164492364873979349085437774754650890549851596303607382855989538038345196607393258499013002041879870134637320235218557972490057494207965788517406301715419149871970699846451746236158219663796222277645328700599801641578521727116828802376353447927011942377861787267651569877829922586929035131134851451650609565019073402567794389756436292672412529684667083722421582894353228377183599096603647171154773819731698092127463088582614142271218015243894169401293822780082327011300647886454185040824387510370306746418415233137164585141272051615554515387162629910626995301552558460416454011874496636369873385377096723829500185243143480241456984981863489003952589733474905538139694887912741488066223719404697307033072282003268281755475124495823674401823434410000662818631545173570544857578076727710952484602669765215636315875807232187278934052517666761195130922320002916742364934531522509439709718941987630660999386745502520569459854236434287200277440949444164304173918882303201566724494355337277700515596152055740648169098013605473338394856722182556963740906254291675666870665486972303008037004996477948489756374540682845508502186419868999360896500188967368587494131830886467590649007420101828423650962221955955873258345984596626892710729252935237239091898793006041699760668916866637013977587979031893692009277162191315806587849242812778288249914931437997290563949138220726059696049111384436221111035148319973120787070046892037869753448897211413822859611029505015975780989582915255930939483631535852341995549666472143500064754437870028488628987651254070826104031199162081684217214810185606443220701268224608123281845151640985754763801666585425916140270446564239164167114432670856953783536585518160866182734963526855042961201201654119742629920217617613382586701702297682591131283396707108129186290330426545045369461545668593406433467749404717241063142515386254173648028538878111084469543573783806944154130746046818811795126371979601829425764329512852933158526439160125718512528339855023518779531470806947546286773535088724118824031107259078971058527390292057433583554039362626439482280362102297328174559855633565202509467959523988489667335381553309484849339296562050315197971165335945018676830530917884818151586718272475391834163860491235511511070827866885559955845897394149821058758021828407045239337187191117334684309680850977530345886453512393423826374805482306517908096340217138365331885570391266762796675195262853059923154687428032612746723702400265620249310543770131534968442859609694264895510431484152842229204273547716989494552197075607436237832019207803813947342783508465700135199487222792861199524170446536331060770659639384087500809428448363320951071284081256520789485555142268238647933153152264927382817712453353741522549957798977461049222335042155793749571202729504589942594515298452774364583062640955970252736219029785039948572531256145237212246927773484564924002175058416302850570551161641492017917096594263604746119689781554681957663174932430280072151509431831025735982772883192099786028996853134879808032688537068203255301257523965826726392442005445313536139848868871949548988554263577565068882618271915031768213879971560199730317260550172020715244722658652654404838113486091934313230608208315795682217380149427479313724327126907248465386801700095818599709153194592423676686408957913492819807052761201955956820129079091518603683389686592192938100059485795967518717156503458637398097148138874345823737496975358433718722472788691677353091923137867423938086340163800334193510957075999915237689472351229945297016412087934810560622437627304862805624321262080107580642222593570365786839933010450897931474391941621270787465264102240974539976058442233430063350162225966054176700744749380579433749241670915609518312753217264285641283857984248452521037946772118310167587956852974863111033593075295281212673343857003983015839472242803836501828778418092884462706926750810525326570510108785202254761909749430728093201454205068373473313180308323623274414293180645530476445737113822296313660634038706035033409897736721140512131473151403006632878646666206082876232214222061438460266244390493732150874776308685008439054392524488985092221405165332774964553775842882203005487787244032039600352983497559983825730148115727990246351945011271624792340457390174833263990910830430016635362123616967709385836125990814995701296269316721077285273730696049661917665550426594089523579785122062557958284474995874480421056637827167838058106386504065941079780760317545496567809791950300673017738214316049949765615085502327152646607687538638725259244663512410725970791168142779844294337127556358175550658566860959609219123251496479170209790038176798737236705996819366204735264294826924848517857382036077970368669050242215476991688890599138360609242892774315298732316934212562854011344742182445213624522967815164102571201398264453149028732393744604226030096114821254995875110887975316517156518991233440442491242331281506533495108248196885763618582762989348850343368118887104126495066808889121429357549740891682308304789417679839399647172959746265147331431298001779701559098443493726894750150291784350700823144988948796710210044052325370387125870420810997630246452399477893917376378981300627556007687950594798695104410251612058494907612979156802017719355328898366471657186449543193097595779721750986824559883791481470387938197386342431190498329845363504147754422538273398859365522435650115777305102782389957343214605401131970387777693322173969714617364253762808815429086598179518011027669354486067923750313669728346569085412994991838090628348629081664900254435637111981299553102611866710439752055022321203030256531596699725622894995421789466338906082514663377692437910760900971861207662833021153007012078284259319395075360374496857423639577591479453781352207551564949073996235556093587113732307471996100043182331821993927345478497677012521306179794862802926411466446564694174192704428598187088198705865006266746688199519194375980955614025986517339421560483426863101461918438412987698327779565565978861945373198563359385809536063401995898892853570096396602067556760923269849126089740069143868465548815437183342547239096820774743036540477109527998812181590517197613297390934461762909423884058053206853287476893761382782715163106147925926518974325588683733389702738092230014564358483791434365058287121785060923087712290376692991286416404166704027517994774861850405443917330152757926368065280698046599363642079729547195285792346662793862444100534687403654909356833107405732043926209707892068161244114447450082788856462981498042759739510506449730927600006364094579363935140291752232329810440401848434499710454674414145235203879163749420181175809704701180464446522948153774884704667360244206706967619079313886505916632775348050848337941239124776705030108594370801610346959639207090833719952289958250953419955941913849869151498839964042607190069394355890514117643214707989991834286207617594061205945312602926086565653392651787705525809882570395156912004663676126971397415052470112101901071047729086191478060951067166844803917191256497742941122640111852347217909773016080905214818103938951491075213628014546080379088129467050404042645490809234256776896120022842869452582519035794534424779215111174096890502515119817987935837851242377879276106511360934178969478397124942754920297435515200352905306541192392362852631946573873891417246333240839042429378557612988382269037171062011380879139172641178131530395477666063106861933130206373284084221929805424603589662622548269730671291632121980862631200869932081621714523378698308340163186125398501078344946233003117340703796330024986281832718966033139741472249925460020340166184759567682625315709532294119224213361876543477132716163579528376577909073788244338588774107233109802927746776547601244143024012434070929600048897637761164560673561789352058316047690608018005840156545206738507959994327296426602726202061460157146920410988767227935205171408134674743633748485606750882856225706777638507929301772486724440697215956658782819332228720745116722593513677615375876848467029103977092531387623633015267619051202462895957491628008949187887901295411092245663508559663606537082162661676111270453575867996410982584496735267121490971776552392903802759997835810865018580590585736564390378634442737147071799080338672483944831126685919412268306005195192765336354083544252662474000501243612668375631485700434765305203302879353182556048614600824526862893783380918678580752594412573793597006205665444813106609669359715367652427345660511738851620222052291779098973840005880550407530837353743033585080022429909899370434956144356458359823192906676659933529687265551955160157198980769940508992192332741507021283113637463527825947661202774444054799609493688730824961259259135565561245450476229627576070151263327256752246749515239564931823140578388115891095951370097864292452436390735839965609844037056943008222523387618126857042158633082850946299844267512171009981738625786405704385351291317938394511944085924995808081759065181144255650914812248834766583783770717409706082064889607177945603370143505877567505421527887988770670946687670637130232378667399567999543291480112911792921957193816258753707778444818456663283762311746949147478765308095221873964924946399539287823862569957339383706209602207887261208851529306073562209087575328808867708719330952586043481852814127195072477902471445094476096089593429465223641409712172152217851432259692291577709718193923480004163068691279484321278970266206216141063474316475547122368478576004614600301803224019577564220214761542103184733945052751150878117946731307253490162152698018805246927632898675544043855079862386762766895927688595985901403343402497317024312220392240914659709306050427534120096527680899241342526920343913987043486050102300566317599502379922368509843754333464828155406984841399496961491328142348958047512369605032996003731600277822568079967469175735104934474213601465348736375158631950838929365816952303041923714766477963862848061204308108151657400166781546980871505102188962969927561836843281715169927551835896010161538115769379858958476157205859760749176574260952132003966216816804791699624250260631990164061433234390171583843302947910174350123500694561189803459574159983936662805388306843558914500400187881103212270936594042505496084774775804418441369318382667441447491168937008445890816351900451947390855582371215489751813872964602587052780997117547532222051168030423007219470865182054082730699632115438509447574681398434949255249541835626540601279916463390983439860502746313702039697738747677117829066751265134924235133161645522509547031616984276564302410532481093448778310644123309146914494756557296222413958115301699839099455427475869602477795684826402046079803744553801249389241884541354747477119680079698860387331337642459863060333716990155196187998385120940310730116077795193046273524198083299388543097145403480400250755765846655083636591725784975813637782862362676402176765706554533535847993727751874955115565699359013362818678243820634758585477236061512539629068841800077958091116688575297211901050824229746466381960024075185666948940677484434610696689394100256929811072892886419443107034372434344397470212424449116801406659875471968779340070033247968856102855566102954754132897721364342242885949813340755120979225977572230246723001729640961359037389438654165969755609172520890048599011327366539775954540123098435400324044772886774712349260928409688419928007487294887792203695014093908163639007680922225858175730239465101441809433649127676425081433937760812431708757249572510155069700745685570338581828263243443388481939002059775133087897063429522722092955634627936247644785907733189745797983568244649620799841782607463015002541796555804620867433356364200416405459628016946704039568528331544019607690902345485043997825396946189228620073295585767642280806924091592518693676453904612285633392122214377315514124149923569148465200602062147410890965945991554038624427011982983688594198323653831411397084645560942217823681440026216623886628231124850034953375284250509739130623104929049796953462787893972062372565093352270873398937601690522875950369616168700024089213633610631627845974548686673227536110578171242033645133136137812042754572638855354825823876711541282683481664017475067809781974570283773785668576995435076204840802932704424357342772315532604801489579591316894967212971648026335184255651231658712673094653915287858832104288115400703277262016880507748350402592480425920294227124661911192606972873806057659524285634750393744805005121178497057384935415008014298797996237381541784821541243851614907528661472044971547834062272487016911392636957648549835903868869915247866538088875336818981180422735957129720779066711799736756496401315306307762881814184284313638554985581362090614165377340306061747120992746027827642867085691540405864601113519432270049661827719563877840540298354501084892421369609746750045755821540464854575397125779542102514343878539078466948389317539015514722104581222274286052239439284100780774746807046961534965814113218528296003443853445520577895606040384577095658137178598358395429545482793675658494207549210366473780607582033216511088558177039619869021717729891938359222984714491954785261628861787548092899689086444420547562524928123336725666606761198482387074822417906358959684003622257394704221458923709364808841458095150481275605014532512057369934748157707901679727059216367982842063184875545977441611868156940237099890961369470266717724213568739537346247492974342351340538347727147578850270813755527729515263606227379156500130702053539523076467334455480833592132547861445201111610391714714235601497160831262299287217100702603342037817351379997698013744885971101800441708776690403436313922264706522510576726672400639075089297633089893456624210328127399130048092350751464195917830683800012644600583480053702746857091518329542774744697460495218805614745521733020848095883245650770219545176656306903250019476180974901558354360731459447408585113424784246235263779840708048879566352011039675651571878849244595780974487508068777931457142280421922749378599458061172831258920454244389432477059258357014447812939441035080541328106682111434663453075450794245039064544745925547846029079988794570458634161254550988495273078120284241856484637645501705110008529921118537577237136534171082837501538980656211895213551716669079040833583931512908356755539205302463542952508554396995946076568883822556680430880629918466157177422560561624159739210110794069484197771493098437501739295709939481995564630423868663278826815413481143370403450741691081168509829707589276782847079288219595669947916599496710921677342169203730286074782616708789504029777512559844356509233110737733574006882434269961048878769907272671772966127648969165948726203039714644371661833329942253832469404611235248288599742298848367825305026721652877192722288935379191613924666351263481607513421567194540033335995162750206953029210834525294229330836788999574701225520092697972592176488172620131104588999707152745483022019358163226242791053888520728954231609472966954780611331593921390976658605492391947215695027543173530855075908527515087343397764053459854838949774461726286288424084261222553848583930244435662584718552467983354218083832242426240514075611935441579000456353502832382292312804376810119873790431886280301208768697246925886003566578973022708557181303637683862707924163057355124464512618041915283360891635625009705875595978449823847882202795554798897163873324136788227949412300475815236163757485844693975786039232163858838935814488736026428842251975159959098241636103766029627923431551163255788900418274739135546841843968333529796685161618448018728874435085315251294705557645827190368852851965060182408886619674750752867836701524762752314545264418740296490502275486677078533196420848841395757809139492063090620592553467912853650278588330693581288674352729616405437152200032209165872337345946197331886483582133792069570626470647780709944520839464537568008367363547170698987948601338991196376203718967633078065315520106163125160537232085233311438979785502808569303277248514443916171474195236791999099683453904325066144946892898077696695966760279459185553513499090683571054132786999556468712215876490089589720361392834243320180677276909861245298914196749075812625579165179731257876189543645288271298600108760352768087076727193004192237641159707777491397883456431148253686985706448170177545777107258476546152041733340536517798388498620285785431032567912127461586507131312255994356051938034310072322267135970939419169202920714510617599307101398483683210319016862165129742918920497818248310476982435817571051088234887236853617283357911245160633539452741900489535369693713125309300016564992287664288340491092587755577132673056682382950715787817674662462516502334226882926863628783071989070668357300829437402144223260248837371786099214550331607142140698506367522439230133927957945588940701827280444652460202672695136887487040818804200962347048508331912143662678087290033546427025928992569588636937068749865656516408307850919853450363867968061008455182250663925295540794344616003033028374906346520155389912625710391586728111079770620125798080749378712195370442284442040119885864484259185944721735335549744492186017807152624340694649441680392567252555872192599168837528594334195704802514571691867617271554752482553702904927920979667854689062346827025357114373218634644107217653691887503310323070668914468103404627848794021998944073949924839985464936180464681337550501503348962302073611185687856745525347109965042066774591233693628021958935486426654624872192589994654169912830762307684131450010787947575013654735579212545551456177771356800547149320765730297708131393686754288801835699097987709203573038043217330471789208694750352579015316509675951922446538679567515896264452832509442643624178761692431351750558298879516267849113398421933824474798840848429799433474738810306066635434714356133376917972819549192815196404136648248489661419335251516981235070131596871200981457423762625910394891968010425278050624068129084633481780187286441549667775048234285403362328211683118402300862479625984264514767226814712986632383558409466062649035299858806924390765780944745298866836232227304698404060703155577469813379862893645867086619826287352778859973894151324382884665589780568821553705833964722943914408312049650537099875154264232516660035948704376055241701475655531510551836637064113925844612883037521676599718635775948663228786349698212494183997870570330590304709813625304645937423686972439872895451096936291138355942813300813485475525330334824961789625751827567827376124226308449485798652138848401090755469615129412203277540061495517172452930191406152470824248917303529969843839958236626872543708068665581589486927358603037046755022319447067503482959880063139572949412441150304696376017109378562019913033962175105738716772456649388870020987662352569107997095139816434422178154325115843049786468736024432279588663136276397583381512620677885030823249594764109384036853043434588006456548048182158091098558209864455955390615160657219491290958522726814617147308917529720113816341803025432953077310912352405220396428213043658212158628518078344279905817573990783860625128925128133274837631215280576928982296362394295033996410486148796999952790809865819453471372860439639632938753508459977732817161903913395757314655209987866963443737604225620970417007243119040888254320332028963740922592394686875549751732450151141521913596789565326372394299144957080806784429338538027430894331905200062101385592856104327710699916115860823838609073003546474431442099687876609576244678583559165884219728050439557794247353693758734542096168264413958899154201293212252663036771225754594991998120845331716999096565811508966073038114308723679442566471230600823367636558931591275064269579559561198777978672160205055314086438948129818784559501408511758991111936331754802982180972691093853467422527121309535495229993165308667983769566665119933601420538028490054116561300367030078670986971294983976358095226359296284671718761268275011189933450308564190999588804812303091415057815901411081104265745585103804025879422583440676129969608467373268215036569081019817804384205091432384615555189167424509885443783508060909052743053010137893399279145797532494854077377393929491707442304840680952152700210890479952663730665503600905880968770345063660883455025669432319934215184261407025478630633921666883925371857411398119158043592696565349567099641931827898624067996541568872886737370510243075240846164223556243867702119548356527121573525357110611417540201404342608228239863624679139454896056960452499668764600558441996666530200090150063563691462354169775933508994304731103275992569107606759270569201630912374061260381688504940211301798164708148187759972494384278209088440260738887446552644962382731047612037681386413660528239406525554107831464596495446404018656212123709312850630789810688414390419763076008665156612983122425879566416321239201813461843668433857712120586125527872398174795288573260932163101458653979949295547993079200232406193636466380841997115039745325488618114344493608945170798814180501886571795635416709246187868506749485382619336833655489028415351837526279927800110850431858405475107773071070643665061094986090079117393852257098015712931393811650027373290706685474216012133580517195885367459958365420604900808343354103356556563264031975259795680409745847367540327730527557360558332031957896315858977745614585125672115648491341579245596298015668205212230413291939314369452402848472128264710209081657989470890886013131440050607604562120572651146564412721267122872553128541245281579095657152408082777264684321531973744798676353194796144801030257553391531352207808762144255447561179558512419349730581979766342216019203558236297831377409277415567277704811698972655410012549075063748142063960504555887525471162035158793265903045881209452336200522646195772010230132076746486025261165796384908297659336596032422675091648273627739515090988559058547467040865422725269035250734316930804965406300484259899868332832077120410928220065015084361643189385729423634653179546813902421773844160729577858738431647167323409624265460624610929847341101914456935213359853750189550690898949083632701054772566184571957445228797651462450409293026519208778424867414018616542511237050982558102347764263604729511576518431694896077175869336787573823860366623369859937027859698082306605654762210154894846561979223200908834000119969764547830699199063179969218746654788926200248610827593670854805820447533171719622345155496424624507349774213863018752283409410870398203630900435803627294545169389742848193152154164302725158401880146057146803717619082180245254262537762861073492072019859292720717682819062361459401750835892557849704665109533253370829734756382045846653992567569749396437869475888708137125357693856769973138733833615557361972955406763593310167835588149719428036155334086396272270401753248505920812887834582838560196789388761496430126426867999624360432912694639429831277253583347144496349811261094322394613029721820465925074744638954307468075278037732252813463014985336653640334237907945930435863467842300024473904645239983561992221815396796101785467151698461511634215979396366397312675070068082658396439389069907795913718232795050745551623349736925396827104110677872443595087079071541490887780522653977844119862502741150523096616762197813788894858971845757842511668601512915880217616089193292983769855677190687896823105124587366555003754445984300514227518478441044845712636176682680787774514752869105938299698878807919989067622006962254890348463677879550488008324470457561125092953934069076071921984815203738607152431944480647267784670547519596193537349798028786571518480830159245242395795162262726333335798610557990687381277952697360971182482949459587666946936149795186776141505145635221574676070013550112611864736458346875345216972404987635031571293420800548155036691486048562468875945417567749470173922830611788493907345530256168672563148549249011337138612820148515647301932023794205860667525116035272024724887308490952927312375693470516762550440138499423535682883864738599692145954441658566298582936361806862978289913760009365049761712904791054610467976472364318594986740376683681955712266355531535643146824990072939849569572934960097378572325064581594742910189190912328792155978355471039290288711657809136222768451555920147867180110470116756817056956339039436631283980156648271578616887228932474582265161115146372512169926953287529872110051852687226974886687739117305313782393446106096344202709979454897153224504470616942853967661271187448610256701239701865704016824497759072782158387390596608677382383618289600122144432144109849163203737769537230111090591155673910609689386991076195354216023795367717508115246181018834576043973146749169360034150100799569432518749430026749151360290823305615236392902524907195087129166392415436894091238794395228560525586654541355987650140975261129264027589164901876959305656401643437066205402394684028068614745457410195057800093853696693967451799619382656072618907509331933873728346002581990472929503720078207650215019063434259630191552428342904330780094766528888103179491727216016212481858928213436787814790010671006891387560835146913465958240670935968526731045331937532314253767524307194286511058667964022584311788519589830084432155312003446281306903966065244867599895710454910320338533270823962288217921662426572643440592717683582049893137608478737403891101380848947254618878020671200850942378129220751195420943505070124652021729661931449699663557801360624851977985404936119941030433756913023391557907383429340300424543351591455845753453608453838920029437729362871837378634695125823275770661410046632625628138220394916431273392021251874467330314607725761443118953090475715230314226235753925731716523670441762133728437523264880116825482711032024035255578297214637654479398980371221852262852632793960011041795959169045779044137552364877374386014444115909711128816821234372925755645863139723753855453573018543839212606581837264897306390934906795281659151369053760380595780926761588644152424520800729508930881102121861325589576956243668186278579577240078343443431246087603897584115479547687700088525022122267350405687785458765814368242753895715330479364576584048028919574068361921053311836886282768371952289632260319160879381191203754938149858511207117287915980944167461988899530656011652898850549686892627137292099522766214572998014811743675744357153129327594743902010778263506608052857748683139750096681098993680578858743597160583274144403426175140653927279723248236826416025996753971331755609774653102707228030295642688441674199821030278274553055865907400274861334138371576078233214231402160857434641126267564414608037051689439305263111455554347012198382848791576378878962086585887493687939190004919809001397899546106644940962444153339188030996359016177090734018417351530520093968582599739708031226113719561789980887292795222780715102829858418967465962761060969430752690123721290284649400323704070771910169986856647336486933279563681837899163890121456181635763828558988853458681894663541542312862821100827413752684205611877159237437172944768793255769352134545061829924827041681250285223136175346951418048995768569835229039367803702824622502118444216059123145396279930382513919034565761736994161595685567301266033886433506624585308547223492456590286575852247850587963682464160276100697781898326038685477952161407235662513536204295318634702661404760370938193007799533064687185009993974766635413423880309762192354864633300769510526651812808844159791383769219001674690533854714758348748872871611990261204030684242897884971759431473404355161323382916067736613499655715392580532717500718906984856801012162324343966665410613001237817297218715649196482747642515926726735287760540964820212464510627355992705088711459199827959345300102431972386726798587054880011081090946949314695695697986051390507682610758496949833112318917883561021713251678518621763538490023055891724837347808824649862071745132694376771443374244346010135887841513055918578773925128843625041706535496022984433541951986098764410895711595914473593248935302424590336788501234444300437122335057694373549522011189395832508106235403116411196164121336796981167316909241790418901030391698877822145023469365943892852375709110646837768231738793640647733737865537854467094087239976298903765655457640970730653997517146238827172739385588989936484771710324723351635037615816902506795351920261100010251441220994825738833397946104332571978927578415245361016486996346468163354761511675113918753331027097421650500941859925930069680855567750957120580639318771975718243333343703943137871591995097584135576571971975583328385852007595574864885824532511501162884678220048136232288271789139752833086004026533659276129108430976234837890818460569778714855534167581103072304086479369903933879782470316298732513276104042249337950988654352251864881290275552012805634647070995448240399884080616106334078382439848734539906667271501220260793974537132566720645311039688020931944764754509924313795062819042606238328890778574135449528056055785959873156785139449801937400206176077392287465397776992224791585814226503827158995487147777154821332908244255705244100210131443437919761858006463763172962174923143093817952511516174621852218848257941776711074596165905438972097185928967006302766267675114533979537839545000426659692405712245432156289134822180946661905486396368510451577317311959964586368748414500184419021133478280704417858923653172001419648882596923713375661255146919189504569617038162128379559493186669475647810365492026893771772388179161166250473359216090661816342707731851458372065516738975645130852444135035322121547398763414760657088330622077399727622748539142132841201904081125339648778249194831989550624055117020701607546166356422629427615350719152949498491425491629591865457228836359873363789609791537273477120562944053944747893747154889773189064284409715210722286767046109591890850450465291245555327514520128439715093104701130706770192508114369462664751030729578815995712931920640100491143933396731271883823733191567926329029887264722516055042620050257044993123800278305311361952682035599062318745327077671350737846951797736344068408759053337810161990632453531231035381313642225300081799020492989217479842706797981612141204839946151550506434548010326594383108446961185475483875073341244877547508755001997286935917645948193214777875954435390747827920957644264408627796552736125043772550333751484298748436351285195752316888254804104644926751199230671698915944271193941408239312009977328432974815571283007257646871559119669764494646984703622054067116494331553650519452111403889646099399519724238942508579613563796371991687534703861129737373134493483972956329801724194834513528010359739967124676772081595490843835195996179017531961767914797474831337109105642051028041705489521540938790339137558050369110863005838800322034819260634828794094452961283462230067078053770227417561315570233321104758952827294062621538628015762363933692461111296558925182125870543989699969708472586468727734235964823184397301475759868803818089113373118150417117151446618721776621488231570343998410615432688533336839080122239322286417596501774779916991121993757970148966826405171839406802996749194360794711086943783529920214829831053162675192860661766889517960514756915789792707188424799455925053301312925170494194756029231046106155690700402870354505359433288750816264530338722915179402782199125005848295843886628471615793871336374808453069824842750646482401535970714159822007022919921346051001386621314290137041935231634560065160810347848709335174579791069033709746414102086796929800448211316565527304005506538710946236542628985000244063270990774881948971104721724954914357422543437837801630179671824675528762422316698070363764004033615672718349332110849276939525484018089932499114342079777156711758753941483976209336955284522224787213235494768936228510213299453363521672985965838594831949805832356342644642310827916974572371406195386630224121553727757203250250518606803543296477601658987586856566816980531772713849185514196473592865011194864516487302120546245477326197003448503986246714775087986746854021906387149511215636845519788274362967996551178239270324125811119658960126159873570007351485982425996058240214197109574987102865516816114986041784217109300957822281528817261825218228224098148920672076609490950646782123304662073255908401329456600800589789129899339889470267070949379810487020390718666492136226271659771239133973714702035694759467031538132596072228702197668277094087834815882525203451032540487813323365803044100683768968466140539308995593767300658170415149476651055562754091911749534286921435272059883733589104808085093328228685467595573021765481839198322201579624805715604847018090903911463267511075672489749787103629570843839410611167399155084769582026800281625770201455984597042016591215434738466002811929578507950480366510365882146183291842899157736160253238572929688871575137279049778545600079627744638063660186524903758702081847292446469105810231799509666774064506430716125970311830227065862538483102174606888515254701523186230263648391337701247607165511709093272840410569446304379084953607686131638333768050834138020819548227174839395450161777258843697528781774555734108999658292707327221009248041238968406959345570526187930606449627817764066435553622496640157173468120813599432901765691310579935846373287241198845299456692525700565871276680710995763426753695195754777125630025556914225732508335479432496286993609623656750798331607518865189351146801944828106695352022960766255512791478422048346172769358309388632471679905296198281261740645034381227994219431076020844658422970906326922012775754777160531170275643046625296895445210438963706355332903170371430827369627346999935486710436242860405470351588172418581119675861514082612040442215760382589650091659629898488148186737695806694557673871718698257003511876424399205582708059796286894316423679614286100773229210896581739684410246790950479440408157566066861446778103679466757185683030378942067265836724168303674987318668062547708839035279035335433880058052493014227118075916632706364852240145703824197920846128873044608223614605297480398824938388989959908816024983743422495695096254188653440438727590177836784951227435802376998343287612952477085846172649894129491462436463215638620203965229428509897546890536716675253098356702328003991058591497497002975946242090142269871090340952660142923696849583964252271798052879330429663159110595063143465530261638424649326624316715450761911591931906906248487970214882750839985870501659251558373331912675297216912603366914526039661598984917655312347196699339766478793280589903266888633241187518145402844281436721969174676088830301279971695887407197360258354599191796956022887190100382275623010936748646568915852380590102846032254707416169558540341174741037641965682372630303158418985515586087451526040806703918141816951617226433334722311185323012964642239443835252890520752499679287427643574124447391173645423755656045766217841856384703688282941318504644751094111255579239287859240816952451886887122661690831740416218597618658810180787039952184074555970173062818231425169809611188824965888829605839937923856240307851333307588465880007493760729916396661132105171098015531354582272018944003443626744370962745732623296991164768393978482702988234045170094922041591334953707731050679525675947586075071960642895444637030436967633026991761169022303907828686651396201411474352867318095272713539964377923815732741099832236393764624336941473540566751064813815220944483623603755503972858139731574635744828964394904272517892307435250559102613037370564137856105050126357142304111773849433014214592720711390671305902803788064712077339407171350636570314124055153036606492775810124909095005514743339392565929110867055401933209255203924904909554069258422795732555257849268601299228515848885991403491350088756637977713845257403239867637061630895453901359379883906402314054347804857471848851626146483750573107673252127365261627750588211397694799893539194804443292042322259157730063395356097630954618530880092940377310804903956287266211933337951129363574240766635960301348684628960938715833451084483671057739253939654971374416380384630688799296909756652554397392946952535308614353266096658178588345456590211923631215268168613459872306921100658031095666628311179425426242653824857052769266036338418561429209953004787656916099038749709598323463145441165860940278849886541317297518821374459209903777356368316325652956911791270352606471237073883450658967058455979661496111420583092643711635514943880834893144159955325867773204415718328546417251689613986103812005068408326842592959411836023293196548965379568961829342842197129225823980345904496022466555611431399433401353136204081621390952938558886179673715144163630231069635827777095860671326179017417175298336247716943977745729528154312494418400286081178157290600888509148985074756171844089148340931849174368721853702177648754803753663830089041850639457290722026717942841558683834303077674735819321124325077962947975211316038969447510737007355781775845915022097073887490722467697531754062450456845856719074415228809777802219549187135790235411369628004045271370829885490521731212022132505077890125367262640454044762589295657150847184233309861582823963074671320172210614104136686069746076707366817538824154899893641940452379513583828050562269592957174542340797461208200757218477168147140719512681567488712059396291582356103012644644396693557831845829212206985373767146826658908182562315978441644312721006629790879788441129798241608940240307058808064044313164245904014483910292308195249035426806694196361373408383936326001884754078651815529098120708931444352056536451956558367477614885124562026268695667755270398175287750959970973766178808563804332694804301570881659154060598575871857605476707255062949433122402469537552824708005208101775197969996692191614351822330965084704913049417668597827739232868647356529508658321076379740637603540406668338431696256852900002502290759231826287270663123539814708803819598391801804379187230321708398513591920827111511345317414097973875827874508630296551478627763361855845605628897472560026062208743490549688609520410834281897906034335780661191733308056884515487611234900552567695579176873556692614362740745527799160887866228575426765439590206527612552027111055314070374934657286037954792270506829750938467433348187879787716377209024938133596387966358194771184991944138570185358926840836589058277220407661076604808192936771481757435001479907654524878851247149586639586989623395621327766644990856836192811912018976596078838677598039722255250150949376098409482236330194764765794707208515135201095689288135904213613901862210707967806061247319408495850700427217733865818327493193994344233332352896362900514296198641346343065566223714524812001238197567074682290076981802600793031199875608638455992725687972564476989014616892766271036818403957750101098444908169218274374682420303903498235758840939734137802705841204266918362745319038907830478761363113065718058053729937653917698415383008755677851102400648878178894805785832089280765766647678091121113954844514837200611383536016474135488649473889427460300690408780073408612492573442781677484882558706577026820346982208284819130893129190152409218621715175800258817153778773269393977312946104455245059228715565227391961527692776063146482028937752999828116867943865192583370552690063451070730375754031551213852198499344123770523486676977855484014813070901153046766227690656884375074379365278413733993268884932380523169422585181489414494351300772580976060838692083772745789660620540416487315977961640636757612333110846885551009275327104940487634430922000739853816344511340143598741557400246452525844621197108049986831760515409391520382562742627773995097069306426736465790198638792382358479945907594605646515345617155669323800213732350836295633333058447430477133210094046156231205388747222126735797104195947694969982888985756397351472721804362363747628322443798962404482243184090791100077298213476373658384172802895325008919879486362567453163279526955317083609414162705776662280579743846016334019705761057146762339769193513230427696875521425714600517640950912411708211383623301075602581989865977545373641567353164888436543147321243172362776197059492687068265855240804721701188333268473144502308619419532463103240603569762858640981355544745771418552861261815994289341230854431084604447755633696918658960802666851464955157214392079306073962114882291716109219378226532721998306621285804279705432897947578120816796273325952140156804085785865908390753816963857286353592313532860532415678316163128818755331839203372938057662119749764858704382395496531143148013035329761431092229276308782482316391280826143775171659524804987821735990294981968901583461286629435150830061529569801523816335161686437652672909562333187225228763680949140743743749960194013367577506252604118415608345090395177392429321431504192372172044275156186694899647957272821739671500361184244101608000700570559342968187052505695061255298281705018637261737825529453117348569315382023640673061590290678094944048565539947556411476176966072808731852448531162236336638540558707258150043584865299952401860576768484925670387524869987474958272390256584644382979758630103304844848204277819258828179151398718002106406347072226642115720115884158284536264180956318137285450641874356943933475806209577307863897122355073912650746566086836171813482352660221554432745298768692208819134012490201548918845405155135719963675975047448101067043190767679693021678522902664012891510554623272227482333324497805418673105539119281462706479739799710570129003672698748321408330591282586156477543322349650910023659717520586722479041296355534770602052009169364049289241306856920089578409595849357544375656441409303735495666630974519110072536070342856377505789361114602047645021641506811054680285469365187179613061349201046656923387876794209566560579974702680815018231263217107006959366250810187503446857767123592640645377791530557389071527002912224048722174681042652614721003733519656106860179522956490494419711559897115671494440450054072575752207113694552922541832104850019776366653127761705750783316578563342035005964718102241080951887501794773802645269603503661480930560030479682206775227080417661584900857141676913881395581153371020593953019631783894091908311778868310113894768672603021906739875331375802687202949888760735423802048183345870323435869833064947190588306633017425563021024190606786569257077101034074661884469161000146894368064499286675048765896060755749469105321895285697225170008364623322341840439584302128798677713569596604831340344613868616889027503703650190244359520590656618629121286140513533515887059135576869480849832290947533995553031432718654885704276414549129824903143597710089683536118824729785165487521387898236156926910715251512657786948049172474955923002939123158328413603783739244679775194877456337702137745318566664154698537429693692218162737989450231116856576132294567833255061663285072554516047390200171730603944754440060244739145829502655966247481461736757223188666072003638397548660192091517953480590197790963493708977801362544402228692899064777416866387247302749400917696567032565676761688318011295598769176624272916713278046009124900995504497423328292359122473554525095649806262586785523089195534197863630745779857252403183431124368789219260770525523545326608955195857084856257863479823345204817632945020198806211914642974844682717464195777844417107607477240628125759401226375928532722306693767027230817199636875998953439686814096179146353917025167945208884667013580790638719917949519388886871293314986376457895294661993492114345436370723083009888246718556168754490298286037982384745985850674217831226169734159004937046067101860631181631752177237807244960081903524236161558134335432491932035166912055545040099113968519044375495430370118722782519898995983749046571469563237613306978461998073367029467181590349310545805833703059875221215008201098945567274064315239323239525014262217742274473649738495788662514553099160565077464168913295908387486656252735602882773340988020672317309056135991679157352556515854004082000573019702851455635197153551761329757988467623622917806502834560464298852953026743971998303193833167413849920503065843065728869354875914736754924747233969362533321148234984988033033621991166153362332965989794957589667590354634749223268508279395376150986683723747174248497899885164995226273333360757405205379656485433940375522310766229756362068962292849595968021822042509748752133719814511296231742111219796695764445258957479918343790068823965015661613416030389999629307246361484324474863745799643508812552762852315390684482358520238352528850909829052156042567625693866421241060857458524421602561452144897050289875916159987861922621684936360674629762715353538129393258463012711710677532794752029259351210210511848957383722351295151229757997273622751534896265231176517241294630098834869179845163335146892034406907890353739978438048821321641870590086455028373080272821339808814680317604721903656808305893067919729738945145217391462367690323667644177681000802037740518263074243304178692511740235813740183091815777511642517712874533472972656674058771256311944111386205099819630748338415088487439485472868249116837066007507421823860494541364123518852741308367739229122171611047669021919211092373102476650236346437897222972443441642332720533700926193685730277327702171910520058777625058772108341863217283852037465568429537482161020481121434056108821093964653195495418035577623617527200257058664660528627535292456100716746715721223154067140152361766561056671067167788636430988020194090495182820435225265114510539032419843659132238539496644825089320765115170609360193841911373109130989697852734053695447144831275979131105658701554097495932091114032576066891457160466235463752947028673646251507734290431473830640274922153791246800262570968874708719216862491765250983624351614750500133626504803266629438818834603894565543765452516599215068594883331873479306643969414775752666338806673096975654467332940622652975832302747354461709582644892835523503196707582834573414703909096653671515157193668987273291534158165464758028206329865862854431215427417778131964401434259168293682980545607718655937250607270992401676686687975398603229372176696812335648995322848780578388890879482494109357139225932851984697358511039076242400005717308306227911136862278548607752446571629948592761587793063969777913515352714391105147610361952975011280197866848271582522663107727976524394363466565310931343457339948922041556589683535940168173956787666985806178071978962680272839977348447478195428107083671924963317203574792800660561717151860972649550886774992036733668382749472110281029909128592964068700791773359337628392307296729227193201132065469018992139086283049642864734111041520111856597296512712313242415261536198547990894927890589102030628209348444222844226390577160916688143209304758500691264241013630680866841222362283866654967121003066329838999479480014496443944856688131099321036641322129509603568493211286773659950101905561507632265449378817685747261427859841647773361644177527666579052966935592995701381106675249497384577916532718150548941283699841022332677633919454714398380022630452960184082045966932787805216019481216616518064574347955249998426980262557819276907026441249645076517920039387343230806829682041253948715775992114818315067309740530735347080855628850955749916844336187514982973416463196536572834592692916935048566118223975650285295631379814966900583206907470177393011997567949461499342318933238643034818823692690226908497303588105519690898909869224479405428697299996694427090494617052475125163759002668252659237400679715870556917808555917168413341645911336197926331647801303898108548441784105302695380726979534070368629012403138320936041747623175549452128292998114799227773746814023809935374599688754605253771095017156194078092583425237311385095466594730757458927952718028703561288326660202031354948887843563672641409465642942773963645595469654950230171885859205459970045486087739630284078681988203008846242672360932990801322223866936497539008202601318008658585486240691648421180855598583164182026962552066236411852315293784327934345721192076305125190547500081694003795655817245081284307106832621173132243991065807854843751655362704918678738062358104745954816270050710705471935672627901678495008959425799615421878900852117395285331778517981581974706174241982002090308537092770430555050427991130075811197073946197157384662218648178083200128376487423689131250895054599337567489241299098744077083200111670226889358737625467731378849359148881064136402129381224085494535933487793087583916879340081813762639146551359395115689150216518833252313527016260419558637573314403720294346179008418841992420726642689284890494145646999399320357856668998972213434055566117106471065434289958088896523932193636618209964785984678535842699539649591023936579104029236949059778406204153540255460653816469583398850914716104796697114991251315474424823186451422486809022454074267514080508852957177357827824260990252307924074969540152248170460290358590018178498616228915029756486996166175219544007846680199171296244771283175973439864249185411929383367587948917407480567777397134043427715813607576046628532225971605950634004831527889039206748197498835613266983475746726460558776636493439183913994860733996826256318401559805949048246708120644825567647080087375352058526614929961423519211365548034336227699580793996284369162810459059040008098164310405768418571304483983567153315125679166160062755250806320550352401614856340367345065258358394308960946390138749002075549421992425619450519906261967753006658624694746385807662736328373006351716308487297728246011724519893172988100879472298880260334776876155160668319585231821775130062350682067646012091772877517477347490864404006157462923762178515325008702531154873577999249087831900662131688990424127848815238940367417807180078843624548739361218326588130528325636907225631087960346034407975211350046986544679526798608455346736729443928889585725803715748900135816802261226422316271316417969948707151249489032694075941122013215955791190609739767360646211428415298598013806136737383338580494807922371141126986493702531522343267331802237564240617290126594920883609449418213022368133494332648072624372414148439526415780601046451452786163483088760587607511194632189425635188861858363095036540358390640815869965125202941235239648942607255731526014008060263117223692110914066743197361178395992551676088491866305024325494404127724297420652099248709934007066782259763954172670967202856690759992311949062415471514524733893148461951371693506723529165106262222341616469697307533730865321779998903359441182628517404116234875070646810450165639525083208509031832871760741188732159044063152032800852341462417944417692443212866517107362951000139312565613573388587834311986850135409004517296596973401258457490332148703447050249482808918066387201217482892448847796967084190452026859631423946725598375339255031323568214337506530396683608654407781629115957501081456726570440833056602256167346870870005128929330353674801236866093122424105088380766597356698880754702540237533135677568700506802685281453569182438580997095435195041465419258156800416102288320071667258440957433299143692581553441558650409750954203986820619431405022461712494103530661629513253191409872886842487230469559702161289770511237742763648709931082548432841457828888318667471719500085856927480416644568040143993154713420712719484915104052646795698071577587093378004328464454165594674512564042546940021017786236851986833249265402607946210890361673784719386895253360228607066604033078082028821717984518296158372738084154643832224712078219019071181377063110500295459655701261853477905307184614846002515815960426724253797309857072849188121064585958816594825213663032529647706715790510216537103275035470654129444572638878604492930409498499809759335594867142155812766910874438228964578251693924102524437149481808063265705009339152885654305144864792055421308054739465434347724936792763493038314505543999252767190726934057876310671368783449926856207089374363724295787625433767867363791953683553955350467391161849808303625522255984555525798249523353762882544214468693516526113631116480860078560140447205962091568461516923510377351075382599727067511592382314107558181158023561784855299903694095554341811243334143518232648080333759904557714977329588609659896681506489735033112127533149893090818057523137257753842247182653234359620823207874045179516244769954073887423434034667051132328272472472079226048488681992329073813549816817666674518158583388913487959253628503171554900567975403796218277474235453746230320447966456548560779457103213561498278874158973145916783833357414606490451892067573544813164122249703935068327862399771370025134200571666528436348204853215639689618525388086019289636929321578626434989139832501518676594828573381667554455825377760983096411808416135301860957669370328509283301268339688023814620093070335660860630689866834061850623870843774698528240449519676750077396988963529972346588807215159688447531605381926555453945366648317138900467217460417192884078072494468051797762573177122119269271222425704054298657373664602020588216699459671239327749174996933380731620609511786709678015379161963070524100346565984676118501359549252129095921514625037120384036232726092627752937074512845290269653801312708224431741635432259713175564830979342924604545762121985801091472870982503659055182996689788177334425553522793582695276608923874163881624623152123042235855088158627968140546974027746772439506635538935249556501066295098989881185722172598007076529808575007274193502500162488587038534502740906172470078251592041639677227811816613022798217401864631509163148587934954235371235418173984785694100049702325838730720958693194889438742752145103901360051435784004329073731177371296483284034689027537867371442560265168603544768546659203979213239762942253124475667837205319201135991536581366492191094742838083700995642764421261021781236377537090501482507231241955990819919286713909084898293999056538176936039033558139254108189376477786379931920993074069748247774429210406765548148245022226799990358466020308352630217507119550220035251295235324925652701426565173067351877050094531384060806024245878554572490905171444794116323620655891108960220473531888779703366621044724574300923712815405312159375856893278714596080827998035064223917772588658771311851085648517879367648685291435807931293274568765881182975516666324584701771347956983561037013759709073007638406701355981561931579367251511009609739545902657781477615011270258133740995092207526888957537636690114567145121473096899253925073603769536749565108656587694107412677964520295178235009778821042314385075294737114900254828233888099743085286371410746244927890023359910431032534546838154066308531468183512595232521836343427244830666159691535581935581819691670924777633112330633792413756419336383132372098964148081635566774243508139601173652003171204995204123837256856052396015219619865707088357385314371937784422740250876686337500921927502699877498612017452040797953713803267655321398894268422655465636745786456114054984722689446312422065380200673601518634240915166416129067596231319161385050328354427038102564332437415244762653914954048636583499639780744631834621399887006514600558057397306778216416415411261203635487897800193048158955945981446056139337161919011687875277838189396780999078812335260249979022446833829157069020473244753471545829049010742482134777830962163690266264528841863458617608421569907442960448399289333283957452234033663259155771385688381277085941160453464660231185299415865923916873860012659630271510789128146667458855465754270850095907916038466753054430246392272250980289557265381285469631447529396154181681202824173588378682582458080245194855189014131800726393681940853800932116662923973794954471240076265201997903398195097294252812363532761271269053668323599007840584284461610886618737566806174867620351301458071142847120684755852405572648898522043534384312178208518374855931802073642216343793368832228530247725440394044841790589842302820768906994038385167127044275346968213680740691262927009303491414981278338680314017698792826401034557999184294824403758739601757064432518821878901114532220309283291645472385800994087436333404862201970342285783606606587959996963282438295387568505488563848240002764934153544617601319910445345955748879846104803165868764826393432701583572119997701918901499380668564932721863996629173258753068171391153774584499533178161132707576136291119697595573257206781989623099654657067373677617887611811648704534188768544706851352490325539815542071783308337206174285682952037957455924417328235184317894884618271748877713819079377731080563082973053149129707532786378348878425374370044882546809989061775582079436120550513080008307119417552145029479120340047812848291712300752757075384287251850548703667141358457836185599971338558096056680030644020533816110783909999708321910146792375021975426708215137947200424553110448546860669090941524214980410732846667950413080057095895617609539058441345147062520635312657280469882146608876369253302918709116061497891011825694787004021973725143087560249113580978085366611233419118044174073139492413131383952171690432527280373570093780828682053084051557107509671464309525500750708761358207555382219722965170120386633067180515854365112273038147191021097299325702332592623376194259851886378900504965758250961610707321627282292944873035311756907719447074671435027943582835450651033644250974061656888711446860760432379732225479582966780677844538389540923159447551316929102192663566178375183364687208409630940174583548955212541159228927759296543470266380175914346290935265357309615323832222567089730732009073979875555640783631996077074200749312954615198368523738482198681117396908371594525930476444662639913175137773669695434516211874737743598433556709042182946809484539873033074263475679674217957567114787646998591430768758633084285289932875041153545291237029403534130187130204777271236332558431044742468537852256424646963452711309158794951235480204725242435366063708453590450624243540339779704764443669583094245685140106875070540774892913411632048956479359750331754167102860431179154652286303826341810261662612959076949299333184046818808643196975071659896793884204951807975567879346765433102916301056234838082604488742858530951568435084692996366119215372824067653561865003266865668360880832712285748339684657893747460995545671536694067880828400062809408152840476498925239573396989963494994264856776116736213151103015276400133188163660652307478180343280865642778445655469347650997007204305503785353390451124174237693673341743099343712834521023408309235225193590018373156010272068138931717820985633125737528253463603322171631643814803123215657416085511255253725884395251422449317733088100333377990883745059882694541960865331320450926339529230107998279413016891707265452554848470846333675046761745473903822113500752796326426317163689386133769489262492997564469132589497085113703892957839775862265643638279111103505797660615117431161863924617701911811720300097186123812888646278507682368683513889768911910819225381604600861620592657734920198810357090354074934714431300877270899326194884145926025167549554873017395545263538891073567555249312962494609607472699202750791852265450982023824961242548111753798419646840616223605155159213298319401047577226653153915293878142400508671257677472806138601497663355843721507572242483025646374787797287845435716311957846632040599790225524547859854403723415947418893314277458302147469116264342989484660691345054439238128700805506446145430211485326508813152175075260567853940662504164189181362442149382421197305049855056907967903200786228473309373665778089133578869117940193810181057974803512129355183279238691519290262014455114151787719091484064744866721865494199023869764334387825096875210203378949643533702033363589578275598383910812864421727056225054022487158613129529235202955437911973981341038724788607660343305902415263278012962440860002855136566462802163862078381852074071598392325911021075812519337094676332529521279806409699420194239979836792143690654890263213896045345517866344878055565711563680477440186941831688568632004352529817403129835297915303224197438582617703787086817181315962645862716913397187636608481036760871504728986787861247301897928932306239893542097579062534297625253734070001361054117395008851622077490592305213596334349582275204322766367142971985605185274690046769379168839061586923381278727870806641203734241146702999788953744047587709634757514220689568382994226558433922005943294225675883417342586145355052534627290305368383975600389888256949233817967947406195466685821833643855616147342170878337269378424155954104120745149554617387424418117078878827296938202673434294106799492334745220770757675418273492302915197337654526381030814738494890422972637030476074221453522608570313565698751291919522307139522251193372964988415836919065502644605243822586010550526577659129662736613205619342632657717709079660458325784392723929525713759605492786902704543586610719614431106374714462798428407948792638236684608264657214028444672156399430806398464227045251495452988247925337064548813852690464642805918139731440380308099046947782912267868938361628987854216745963229848864163391018489541533514012893568299369258586202121022299390367070427180937877626041243932358592422055593002150339589949451553694762324810230011985869235968278647814911102889603990998209874038975261347792987632163597882124295391663489668706767267136855818183740417227865618030056617597866790609578270481720792572183238878628062773562926711825302095858251206644327264079669984923282025380388497290859580431025295978863918721652539557234839728771778957818114762663604155263909442881055046171499006385209666781045688125927285748807483048922553545981609469349829069912886427913727726732887145452638337481435242316577415882837121758613621433658648330408410090109430081079027428767398602149198428886434489955580057689492280627187334146465178407044046940492994922723218505890355951744557015565247641857912609769863840102178543243472607714563523499250070087989930406513419236032110362341943307215472381797888272241788126858048243392641255881809442187421237148587846481444042683749609417713367060472071288642824282680403049672072850764827889696187862002793124863241386030755688102263612930326539890937237741788103803121601158850853153685425941457973687217953984179187471773979463856763003134701878250367627924492039735343320884655781697355722173465071211027256224707159117503292902766989387687901105408467705446245700185404070574455986095444047482284785475438629129159273117743707132553207920634005679294690375285091978788637454890897572992714746798544963096364753252805055466096161256532356536781730960186715568023493030414773198575298690203581291757398395266394583547520765776474601327081037222708494405422870509409346988771027432465438550996722762561685207477747612564970898298901139027132086785726596912442184091477037084820691686782639718978113510483497375894447144834695091417005910099552440855759777978466835497590052208338983174759736193145280723936217797254553675142913529634366735166580776903386089108861713774361647078055387260676326623096449481059697865591884492648417091787186597662852753078036317646260725385333743864327698543673204132459035896309984572628273500494610783011236040612537209414467797491717794036294880246680818807732833397229362042662673652382269710332451454703259622978429190324436036301835449610394683861345158762093282666639345961087907272731779013988699782582667051825446510515730629629032578360101218536652349676631914930658491218628251894008643458335406970729543822423028971005729261300485919895721069520952579371419441142389263007156125519547575707321523096533249774559814388925329265996425346095042201322625349942717286397275000025523954009313804654404689387043336932771446395412958280857184518553929839991208554700637565204311509051954967401988981207238658518881707285637591638053199959061601436470196005964642070797925213228658821325819577103331010938698281335876080953189970790436038653617454781218860070581165018232701153993204374432112215406947199011636065524742044250816013807997336743416988046768042815714177331820552690280342387136991873488260706116120292075418829536512881931529527881664778151312522257334118707764436731376392167370622973919401037560684498176852039738844809119401725033690711391861331805150404910476819870599729058334584483365786239027986670124989074101598572535852500197771136837763200531500257573396042858148290750280750282249597785219226930577564083897281531498611700923213729367378334234300378128942484715925611670155946069234632549212009189482782082671883733144423664202045963524146048657272077730441124817744992935642858914336645671001795647594020805057614927121919874901350160867963817361415456015434309380979780180812108788374348394351765644562015300579615830894350821452784218674271611691203712815430383890073364578918675621133470146530389690846443626957974528571565623937685560354091692908101695262671306882325379085027198078262421907576565303817366606185111827504338315589995017954058310155378193227942349990524686865556100903641027845644805766231384551786717558072829196987753388886070651738873775160879537762860492310879818980611138016299173037198061638736847799522475065858743436149828539663757008111158500558640835791611844334215644265938734345609181235494348980286507558181966098984177595982757867692491095990241715728503057507653632376992374523270550643333716250735178945781215059305244713925286242871440820109960178153852707918154140732934179875381407461245143960240061466264433643330899924843691801659398982781990122558075377563095198605204688414869419469730349742690074799551875578300081100996344532389343599337198998649668869362071497180801289699422520103965230687129460486218689041513563859165828963646171005508719882837531381990931385052995891242900696631418195351789794932551593700082123989463117389382710517661473997934217893649547882020670941225558989629613146107977105033337966992970964414847923687582078751371163018017740260563182212835472292208928428194586195177680665765561915245308448259181347622909120448292802753668122814883374476650154775491298775192606608490354467031276225489845799033701191608727171587763561842472129849196203856006514938966661347607717536459774132271194801796944189279595908075658627502175737924407694070867899644007307658523990175675643876627962572171449149485235987148926065781171472161888961432724408527303705775740795383696254423870093706555959666425910574749478513462355644939306241912188142324533191720482417916823798036339704895357767397006868211694388046989959399857863555039940714567811484796674675947480436189234745618027253067641044076326560612745599691640009684624986962439445730794587146736499638594601531940930104713039754009051193468174451292087477982900486615612461895521860681616557243343840375104537339505017620637211569227963075418167035783175545093247746662706077836634082764203574556388926207509726475998429297081152952340182516018653150920073077697408984258240385589810554048771986537631467375662941577148371126715722056261538090969351655325636670248128079581131036591674218734869546600192965709138722598913541587808077111039132042846910062700296110244331948296452970023939887632136829693254813619620334583360732472242954357935798516134890838529960119987246409332939434947105781836480939751250554937069292926757284586468925946811846476080551226175660482512810609587305570130983607927704541090312697718147202106670197493010307490724581434249385126380921488575706191010553892362781901457931907705527094385503408289769034166647439300674647056212444937844812353913359815237447925382638309903349739291698213807509522558731339118066309393372768814188934773788659447635035440685243821496776217929769032443759026217508637028105258165307886036417103422162585471832539807681322213787978998097341796025207597315616744472103775154742314520929446575471496808702802036801138528866909203891216948676317937691785069686911924132289328619898719975798509719906403151206594469180030656326951533107840430759165094482542437536893449097046489170560798113869429067682083018005428587583892364638095731041743453715859029237025869350399816563889524891775370294197350652993541972084500496819911271607872374840403756916978216697839716172008971802052263639489505919983865516535792003882615360688201833847980745963167002646568796469833272661490496211941249509263546490409158721611811060054231993908843152182612643404896924488479843846661288712438623481540319529304003736859806254554692495744371324097390432332132256183107692495582006340241630362021384824750376805462532070580574197869953030455086019958873559961352689172950682017622328733729799972828565162357614240877881555097665251934182612065420468971287903513040503189821657907022560635876375938682551559705554444470093875049246354822791859201151367475748984676117051902445276657475860807023753086169015299915984081762977917365920023022238901199900837618758581583352725165127784102837175703759842969071622169588517993244852346598984499673926318784272328107489150569642170869084683655643915991849059878273869905725860207480130186473746028378018511179530542637474271323264173238020843816289614681837265873645270162729973247534710099153406503011002602470052768279241673308552588277908285323751612737551810315285027774907365060933253031846832314046060895935144151245385245654476717742479500908631543757831442347293655544465228222777805420059638647632864803688551105660020299023652714050108719447063436512373724968832592111974457645266570049491612534675200210526949505003926418727338961862267851941153815032737676507389920507589465432075721140347504538690873802181995443100558447831467598875486480185787269115310386371379711630692960277336338276876598826132272831262701031869289376048517932401060710782435931877565423925399231454794045469888495333722917322223556510460205881424768496063579546594814573371809921443079057848797760839940817772542277491562348111478567010705467681596725753397493267897878744288914821330731037836287911724020892988437151796266255276088734367103006802584585167850325497291277414521630899232497507471022662276856111292849388546340850943654895777766801619910727164363174630355493093483643805803656679937385304404725730588829680031277017956575470838882717909835160022551303093236941005290853116237967970114877782170995207980740747586675210875129267328679822237104656895994775545676680266340237215576293712505174773736325663556418118786257544091091895121706109032022374566457192146775371039472364696456666264787931351941521636867920364966894478596286373878229435764148888789995116023003013848058427063161837689559172905876244974020384745160365328642129607976622674419743704495110335438961563850476694401096040767413746264152584193045724370542121208546722616561205701717263793303433578151888462046735911278059242835436510418321508566656871240095039904568885615873997119165579652240593988171646358013679334860530879665861202834496170617965301900893495550417563177615755733221095217623592533640127165690217924701542815469409210754563061114946347523270771238579687191686856165449852953332374000262142867442858595887035779122780382609373985008733286353431077694421631346822097160245017470204524417834494842414932729257536224621270095662728052491208502930596680501191445192395491107676226055787748357455669737765922264618144957576928544315980342173121655752317333126049410475544607892667848500623162964439055353006122062407231372005576707874775137705092203251522733103701405047273279920897451502884866615121755003895256614635526493863110103051702156543169392497996617786775547756288528279743172146257049185019769904664979184428459658647645599408302081163022618070379338374650153083263974130356916820203598549639842152384703546605379511144894673714894184991187459781978648589401335926719492888104576123427819475720775364775328399696808424427340062619810317131433666009499907218597170510849176295102675122147732291507114219495662557485134151428820895085525439727639098122786272969606504552393138015751503314210347473646914492866339778603507614224740879216205591522001787106838950856278378182464319820256964734801089799876098270875059270277694931900534109941922759782658205658067168442361883552781742326902694089556811578326690788474618930930588415879914105326742061676884968849148818088659962013333724660966574058673777444764321316091305887365606187322534789395769502854523181500990932027248180923447942357244462983899878622279027662841718930682903561505567537311947115892224580545541583713331829642305916471463498966870610129262261153574763177459501424550991267451017375389765857723333881492073745078164301323481353938495529309328182457940691787511153570165435991170791684149360817518711034407325246873747659786342849791943495812985834497706012923558613351369199636978142112915415955907379770854468097563821524010370667913766737085569528911721641473792633912817878681719912049092555316260769274774598515335773372369839143029721679192905681252321459239087675425580668869854822857001886826207155148773367144017399815149388318696029172746934998051319442339742328157062280326527578903204578942842358030634271145970793719786384523151956735351325409621902241098392434684412117946519857167671236233898932965207027351684960790827549455174087150381315906085245729081887710186406086030271777853460531955670148779983649552504440217407173865724759294428777404672302323584121070557382635088777756407713296101203482346300734019564352244378832831128519251506458871749420088457676120585166293445919506793598145716253204806122749157966302092704431070414698237612382097182949788805201954775336476415790787494257096938646642640685694193848585456942657449997301930133337257477916212455552138107830020839272429673074400102283951340655186199649641728059250228365774348936724154227970636442767732089709969378353243960267887096917205504383807311343575869270726583247145033938213117357799303533194420158188618257198530971635679369313107404838410922134845977159989090974041416812779591793364929236856181292661975480134378277441241267983385781756787566003181104294359364624375764774955606126760428264341514073864189586905540137705851696584628541263093095615070516501794438816968561663236104322063954057303642760906529901812063060325677396540056432083540790939712143305988040526800736897317120359552295818015624813887306324803547856046091826167162487121751378655687804740261752046756999488446555257441108038745915593139557499693914783796646653333870383226015941867754875301218813681674672066238208164203509015576935172241735878715583052619637266678903635650136008859546217540736807883557452866161003175231284612795392750488671469104906927896893222249061774568581189986870188959270878608085722324988559647725906433027969298832116170832445500924685853313301076276365229005171170486009199328119237824620989501077452896718317875844069370124145192452602716200551963313649277832488016509812849340035977312939420957476538518900263658141966465426399399834578092469705431856675796117713733662266679085270211991714113075240058071786583502040359890758125880087224097015366006247649647472763333756471115566490166332610327638807610598378802197855928856625287201339876414290700019401915901630781768649900182249827848988604119636703017395960922256216231251300502632021382148576383527621300781359098972268839627598395151668571330332367830976388043883109428390039290127527847253626542429967928582234822199390371488077089500413450008440304750447798106989184493208609959000699647847206738392821925701897464691501845280076744902050628017791350868068494020384877924132351590424991174971456692599116151586157911222506253498747146158037687908530528443215399923899785809024389967396152960626942704420636402793665712444853438889001970202014975373764098152753577240536078444738639103060143428157632151365701928717770996361096385548905517438985710020496595121456201765874127951935620295246238670902308414351313342401011171350322282249209651918695460869750975367573865037003401873251233978975832545594020005093587481778289038034231025247799117762198175903873105145342010382555966102267716343602406624373275522351481820135119699875517497260575970079755046968783517704521849040296321808145583489074788969611557415957747222584753703795689497085436638273948004906539102434975546133511906275891030869981211242978941969379088782161900260529268240429668228243728707214693905440587183790071910551538686024865589412294095361477783144532700776847682506234550939461989565518013051755567095739044294230628742217546450247010852379150596524805342042861844967480229808644282139012703892192073405580272369093422395505006093420799197911022335934207424080526599834144243913071971037823801676822442713558705754921119137802673810049747806968421364775442392005901671917100109591169825890660822669551966594322115759756111635816374900253132009101217603283273452367384201281985497021914497594170141115621290584578116125925818192756927988340815068988278009432407179189594114895959271628743721292928246945392596603046113683675991969544640565205188174398137357187446644623486720782344750844322414689455876004427100158863799249785697385502822860342054105326559757277442626588937677431451659601523395934903311981024714986787810837491231574425042153139764290115479962022472357228175031254109002946918614778648823010819511642464408007739091634104251835582697474982230458209961644579268575356780395727790153708732063642268978965298788858740717155752439978872016237008263293599452265322388660949098547216653295745933197357702477029296294251480127155284851100869437300572305136831496280285214141649109922032957934589821384297030595239532862137617228800563072148185824529115762579904066059665505181153602777944927162447146643767625683513760236008626829756597438441057565265076333461871978920706563549549399006579518106798567469010333183487096743332310977611936139974137099431506885507706172408511316171778190384946482746856740595559548627117377351081023102625711334850681239223699028221737068388559892556911308511828032573498831727749046604017204942845755266132174847758854513984710949162647507381384768224975899310298359206928297834660957165243942073767506282239510309814631753675211244411132854737693433155909906241421783703714427368753348255148577359572614784051202343350687103955746474523562676728118876493932459636938024769759930885396769925743664570790807577452005491350221723361250055013626374961754377731958328081829263914081402278755002165988499881192004446734407511980073928988214047328643880520077448281890497474801745562114766783995684121079633327674723801165236464217990407985279896263789090326615731583638983024716217304793515925263428060820104177148765993947122702117241953342403773800191187636118410434074456334300473130248684638393819594177345725593371980658333734845327158621723955296316177864443335191403659538766981974149373461139652396160345520060782628231405848571530205931228649945028734200924606716224048281670874483596353989453752950612174383584699262438852407995558545016172830471103380714878474670040203364384162798549922814672427164959998352175608697009520632276977721693776359312245679334111759633388987879500494071002245555744297847948052896427879915548888050362317876385253884182175725500873583056528487773761564701114775353331895480257314818313411280627325584485200018637615058979516679097941476508570229237654833069922797795091919123380281086953722449846146396634149767416869070879921872749147808631897537657575036244580388024497440098766173609049409696733894634559985074113637059600366855667799364569508532266717537996919924408260046192944700911798909724897896345211562602785169868721374688941870641437320856055243188497295755330393246756391045167297632188123170931516602305949443385481050531530802689728905788931115640237466769703051270803180594315974703321733073812189929022363909569273721838568799172060780435349244384006585209534836426512422759270079911114046860807116818608211863554286763606728330671745824452791369398517602883237488609714833406669987325521001441611419721636597529560205070935381391500544218534830918581384954484244716316418026004386804055720815673314254024971646228705780695468075601940118236671527167899110354875248901896296749033120635998145213854360679634557519624873456704520579978292919253423340996553042485930256264358115098625095221599344058371918236391714287941373199966198027885956582922568189737175460659058444420733708766832053479018433126610569930875526891987992030463511960922063367207690631305823507832171981633925733799135715527521943123322666550656357844712592818942439085169045752950867002462023431384524433580920393307271933363218346499777649459747192109251167166736815927737310474960833628950860124121686979528070090471782674036070079057945956251800854414678962586682774863905798600618130994616253584793778833035949171290222540062765563544143644549002571606592326311625450409349500871422745502214036060804420471372336301184449169551591614038667840636098923030892776031881460635595811672181247692441755945649792509981050983818992683847293944690178845431836452824032368809161276463814131360390333002880301783106389309392727644374763117195093208378786289294352235769367696596317847031107292602427069088620101802074894476091612579141999855587884990745944125435452260020669939149913551856615931928315960509987885360446599804774699351020899141711277526099353890908716474833353268054477528291622174570588561502212584935337224693052440394211191399397420192213759394641228583379341807081429417744219543862725675573960336168855281728433382035032341554152768278133449625181115874779857773542337721199628386814871783056798974478999321846431381325284844915244701311719133788376841979508263415531969982070156219672645824254016751522004948574727985299606923282195216832457412205944487259550220408636028134116343534543977548402282192085800637594594106955659159921125287000916650229848767440394050002328497752181382929919089932410449028894967803186890829239875291902759862925674152933188009987231945648659083555486758045321612821963400034470336324316835193448259090840099791266050887699419866291775447262881680019050868824931551133077397159656575433173880710500099467859315533054898184739030767752585419414938766599008324770642875985317388168326754121950905504769795755312768046908390101003376515096861559217664702194611345208749224392331588067486475095420131542604391238295272892265881167946372019348746892786151502207848105868195775306836187886048947189186880179690099785357016137705118577167564645335096193028902131178221370452680835653887343370244931054579010756405679796979093366615564685279089264661224278225017700483487128243356973760204545105912140065053309464445906172054258428084985706276296646884228791275393149751200432709987741416516433159986439858402336072915125031010452029258675195499852599572616802555841825686913513440717841827432550860939798122297304989796257253441371643727828602250706585177517555452791156185067289339750946975068175623466186092968283881225651900616126270560140489437699759872855033039186673122280437970575745904020734832977865659924559379018713858852255828169876962370943277336967559862563431280052923260135595076405393324871824083210222847808850205718607666993015301954249403568361277945516091379180933227205364850778916069338210733356426665052595870584796455096019116374093534067339920924927403752079427006669441829126807916733820253006581873125936422029524544736125712088179478959010143621287002032273860606413213946971641241518947271102979414957993327593775676667151620440076752614006197082354341521135598743908305065010864501257924921729411700928014775078319894217374332152714430620250530550300252997891836452711560757982304141094198910849856252065567842464167519820758211337401092067463035516199178995129333523744116203634891518338050808820857949083032292870523463991378233559092915089691803350975442178617406813964837865357870322510928949835502354389891697335279563849553116619340254653495510754265525670189902762745166631184798796783688676302085603746379548981486139280729842786523023328523117495344687491010843924312940102476258903555840610329099216500202880722395941519333345137746837652782097063998782745201830308420383484331865930196690413439535306134005260911031655502590041622403296470804479768050376901100792277107942937556177211866825426199773796096277602373802484512084196739553050097268242210163740590585179103200395388445126050911077784170122771939996688501342895003186831162092985609300235984346711281417573647847985834700055419931377323626021918022434342223601370172058863772383351869407855110341956993329368758033085909659323650709467601167024979478331925318476467818391522527115756817902195276712416402421207846723293267595499540577243137593485922664366592067361361995567321330752478750778486400657303024707362153234084591531431649842125642493043267308397384091603426568325029875063673016925603369144820142377592698944119650872917735431422439009464603067901579005322734805112500386955595049944321409096089020171073740038048133880777236493093607941053814132090857637216823666301095104009793516303460972186956387107034448786893766982592448934535103375857786043930962709299135441419163027543507121354721264459721640925544635263084757233965089828924303783590540204283985708912935256830646832081989091177061904009463339352543141765051079870485483962174098784807576326958184084982046336605518053197730833086886274691476750661777575830991909129829309431234993839059411968967223732328121212249929454100555342534621069499191780901053381747214894273248012552128636410887403580676966704619339224066717647510394030359022016121990223103649853820997501868424706341738511490435428481455006948468051085054102844000225456255759861724971297269743536250703953221549264934170006933227362196273904952379456640649245228926729089031350213055124332272577027377196116961817993633228627608603487440503865854585614554750624154346580856288047015938066704577977343776090668418641621870888287812770222141871094977567642434587381591546338816788813011683848951612705851510508662146713508579042534855071532760076242078348172146799971183306432981458982356693641417491368044109831446346042861399121027793411642203729385973861191310974839530273363734670314177685203055900369470048561234141458260180589497867908378335655232679527335956808074560279208417890494929720254823540953631340361015556650798301477930364853724731570342684772157029826674588423091433195671427908643048564505793179486286829464289275754467496072058632014947004252995458986842926748634971694218147694595461693579746152237013837418857498467639295741957531659910560191999651777322890031415340483873668859412377546105492609913595649862643897926654851514413438936236335393169801037007380721523940591584965061274269848476720479811894003005186995939286872491096247483297144490245935663395254327843354033035477476438302422312826820947443005012287662901921512256816150820244881234604918870511454742474233144272491772320848624554951787197490169982844734789422623014281333072275801804026435790880714663065028559682795228115875779604230405725201386099153184301905765180620469132921568318725038267192244866566597438565512509259667481325128130748479437849530400058124961624120866086614522302381840689428673026284185104011223738019505134903000792555070393583710981520958868761228452348289779374836713633213702457926375708607993706367775412901405932094599991432641267054388508650043921894127922681006129192653348026574498338990394596931203046959083365706363478859697517016105573635428191940828702000318406086121026562365615256711560329655553491047264422055205781009783233960121427458264029145095491164458614144922056488904161534617373338584015993875146850842117475769491903740695934549275319834952747933526783791889381144815472499484218239745775992920990474753327942063111591727936773020163301173866015422819998853227693856277709524745909918841568466487821310624182461221201547781614746424104075800428589277667449185060679853130802860680930709997771570218614257326803663532612516399698884509268919716014556986874711506689240393732054801587236013293362844955837796731893221697247829867433281602900077076122061709133658175667978560319421371373887223509033984541322003790891462840781913449120450677193239949590643918286075133679252170204725177788938128961883831921957801780413446023675464620194668183915387680028556619709210345838588821386714744857730870451597757166364148685668479130556947491487173323958400161146752789276898719110851964306803505415397708721079264099020885885766863721092642503840345786417236595664815888847335043282961122199926039224698018829013696065057183724897509456275986661866417804190234257318448833561301957827963876308972540264084271297775054720237154447002354583980186635371566941804736810503137633165519349584548856666809663501504249883872157362198195393631627570709970238172994965867466594139563059528175317173194419780676470819415955059204092551911782480402941034744429662985634872072378232886196374009464279963043296798345176605119405048075284900156545146745731848222246551424849918212215340016972043891996833018025980620184813269951447756945766708029832081018983905188181237111113668325280657789926250544301684775029738365851456762363784677561629470269626512602416825369624889155340066927803310163562378006497119867801765372368571768932447554349208394136639720229841719348156879047989817782838514368492220994853122512129818622741291849454177554279225568300673625736345269534389588711435908091166825868347048521669579564336952407916549835155997270339192244801214568883024562713286570973591743463394682599347688198085327837040108009237048647812202593738069042833603766330456083333855766230361628340121414833320014288694892136338813545202491445370266984589307743881996158432121638656065989264192950742121307691886991597112132704913305101478327454625005945574230948235515178925770012095111466368983484614160223797318180423857128875099345348441400455709333926668498026110618107816501996300154956637424813082497385654270516941168112940426325452684132007627288210091718764276347757498340778428187142408748204513928021092771644168418888836081775359044507136788579455018048458566327709854158297577946023959755050840207707472540608180724553130715285599419773324783242896837833304098076777023558736395910963814190753782169405269824233610152167758305503200627885096929663588277954599016151007946132967501071806650900742981961965920843830732527994242480417196396926143396245152398996614251493846715462996428844186944192186104778067735657450369919420305694187840994353309846220314440805216038740979248159203414577179285407150711349112076860215046023191236625182666889209922789132583544396393840961941389403716725946739773654995868708936259290612159023881744428855361604636623800972222701925437003602972845928544418485643560996030194756395867449991267980710431200177668920882578070196822851810440665634544599182907315109249324487517518276757091734325846760853783904828223886268404818149331433953726559210326802643205574824142191632760391000154527529241591106372194769549651626601592132824135601411073501315319336677955975160728963315182399299383793712142258650484264513080682759598057040907991945278464723932402258535351644115676780987423509425508822651560696720794124982648245169620757933447149596926875168274415993561997644436043999104727371903970163132641065553521504343645775062219453124271603875189743835405874543619141848440703934759888766496307068217170212188747720887135889008841044308023356995063194380020713376533797622776354014124830929785508218353114861909390561832232750579698654749389966964593946789082009921001282510240498159792444841553081086195871138810261877373186981434715110465377163863566672577171549420890780285799392634757654446837867873087497641472578482073275702346837613254221885324017420909124061982177799809269759640501721367405383293734160652513264106875572089965878549534678052778834358279002434372687756743963259293727405736550437879092726337537004998044681933222738687505654148701327234003784302420868481662780228353860226921155519635279995702584061300356967114874288515528087005097228590543110855769670007038734277449404169704739517902215362637917633993441436462248925343764641244608111042446711669023126219231358190936748998566530500958491507354986893653483519803677759892586037698376975325747170309638915684710914495110251541661812121231249103238862050837800239629902717594047799345758511162858060221713993768168369925379920521500585506531141800049111849900231855758114865880667848013435940317821706628813482252999244196286866688630408423976452523783536509512797264764539531467308875703070971421724584983911371269138978446874543846428474797580893416692005176922050430293386464840410396102598679258708814395952251438762728442781145846292413237221802894710996532512765880934251184236787438385856218766728541972192032649810016763102976146554517732945873985342752421742940050627102827015829683145396795300405180948544445023043133058751528347214296266341063459009268194644030863004922214247629372829560408126186219003385975023842794476175645342650282571764831494636683150306614026749320046445812261845090875019115403972634911173115311930972228487266829009974279706658355032915699456721284645476840678925438209491852575545947233067882980599953722804528192187958265788326759725408674034221651635896037064122348664438458121888427028768427222608201211533117645203132332783801510530296648681278032346509884303715446155239674680492471402710855175148740776076638383657101046168419834796560020335305722146706125546603269882274337322116865176044724486689076718380022081663409692976295245679282892731216212719847360339597936254239348901507399990129878673894570659309086570071126122620941899216175682523361028582226528448308705208233256438003925571456673050203259179454990280450918871718976475081517034540074612996151008000457326430934961246126849361203647166847845238775925185437087951805389607686526448596425642842386438101554545718671226117894517439949843466033160622110777609622854505321193100592051602974620083182319525680475783644666393532587112315916205486581841857369466990104632753619524364713621638229403928373884223180130243997818511238016102629293876883760576067806705469685115372993859552408857926211800861778187464444670201483645924808605494404023811966342235780039532259524986510599175378028183007868688744165421940760532894966250601264949978232214216015798405613175117880768605616229644068888024755322740397402022617332529189500233834757374413489778134035359666410004709209350910453247269693568062979633307447907206186579197216904391152327625700281794165178447431017974417433312226536982881616667884188091986793940937295927028605314091294350297683407345263991166905317142426714803735816690477716751730565297178861236027393030517524504239204761839218820117401433948796091209340787103638941653213608576820058622010698541287974837672632075930601046706296816436285431344095857044845948735987618980817723926520170881380626136313659851034833125477702615637960430579417743039694637583717705764591835444012089863890560049177785904280580712149045051387030918527831373069384191186511134795563088088200962386205146120757435888931122527638558722362345263541145724100069134035661099222259362743265690632361309735453844367637116508975093805598744544580441165392930201219455402882401857458219848612013460381028359301949094930219014469134795016655303696114651644185194448532388257156665760747293361405428571027162425220994504900907254559489176035678940841520366733899663749428732973839287514209939489013457416400438352925739111367079538118214376180680562607548830432549844798990430122410156389441553776472136480326199110456416127967056460373106640201175392501098323433898510355909774734712616682033553041772444241792247261180753198531113630925173964363028078259977808364303640628353173032769464366413770588886354785285279528160723806087770056727171679743718685811301059136922741824017211559547338388477675060522467638085906598634548874492779047928335889963352094944752145031421737373082835857116231656804296427765010032782621144596304910897873092637054869727283224735936597278007685460022574599149376808139400054602387204055831227164449541233550104965121133156120485593718037606700576721385789323185218747358750067986008238850447126414752011914696343929553103985830909801308617593141899201988392065137744791601089127716037766033450464670828127948350209328619473691501248074427197972341479582837890948046623538361032537212164593427754564676428333372688116048854427670887075045887262082892153690059117203312758203027586254524723541018252031251439741321848884726821190027656042780870477662833465466223215534514920891890011033899404240328598519707819183193749397602959553040102970730329857433273804434991532313387357512767932199666032961747799845863402308351889261568403492450852885289367419499386631108795630641565771304482078632373158290730236715762096761987336321300716856906244982997599802272850174896028281195003539141342914711861031164905266828013039072059594509925878695883983340945616186203418995342563759436414730078963027108367075278100043675514769610169192759942403923826064102378228041106881243269134533151571461774343417992556199966672458835287062125855546053020350799121708900832502547908178508776790634164995275585001983438226917780724689004096961849726922534434958416513688002449226988171105399592824796091038770907446328537527083415013299240405288339658125276644142086577561656381101395743883863246217494169917929388132353022901679750122812749863148678445999218723971254548650409059572355806249460309476582638629160034118464964079392798464682440193022398943736791272300242373219124866338213821948808310942233385952412581320789642833380066193272009921318107007103124673987489803809118589932027840312609645577783871641493351665787985184977794140470664562212662705180869141086304702397223896327631600171150672347811749881795883209075323117004757744344772186603614392385011615168889590693668568639511498309969616612782399061637075690085803313772296248307136445996550893270841034458058987166541255731019618558309519037780274166048596042841246935877124017169696347008426359891544321431075295262627249432382153690369876803497128741062831592472609935781289832972594924361212403368482643533531819791818972693221903828948883427070181184916696420254408650788059439181290617836237841382673561566918884886496944339167449439399838416108900786323012751858935018085277709977863662482731956571538605520169634502255158771463187256170280489838793579657325607158613216279469924737061675098424615966343978777502491306846300013754515614486478153950863945810851946224528920970355595453245038325569159564655558951677005702092707385818414687156021132585738850213462959998821213231493554882822655378813862514507869123398745071756307591668469966966755024996976160733304209619955356800630453952336418666862575590657738001865675004135778228771979786184166059205345311162169070409412432215128422363594669019129879401964306785851754578134307566935622695862758307391504620933868615239336507291176140141158333522302816162404145987055440380093036228731095701460917630999554133635898427797961554264853249181177488720554796447056483879695731586581565753749935302993288891551265438433765639844455424287933674259287313236581404956060589003644854418531540730686638322049591238535344041002203159558135259156895099686996985088075839787905898636464664812215073039806089153722357925256865146323360291646355315094854574442557007620246918726585525310570500890119764435860627324759851483291789126681140960858703081867632354329464004957975132933150311734561915192755058926266400965851338964086541878052629638380778167205302354080261040133689386247231528530495493111743151715498939376878550724324898712841567803039202786527681395561177575425716438130930139238422357694261365877012430475614474867088154950076571418113730064312332251820668620124860111887220297632917748706474365889910413119628448370278460362137070342064463422113013658102687375017702393612793180822715246100214248652538536458302555639753886437594710429163102980960759031888461220338250221192470077264671803147503607783630595329169887887567827549599896552169992008278373454143865136321372488125470201967129318773407256276193869892099716655603818965919453951158615919015962376177453678316502157945578713511436941373390730492792728417897706266234210577721687219529570924753795331449010538804501074637677812925228642090015287208792389982315016776587398603155675756860773406181587022355159162192591494880642492975275495539287243396529394307718761075440639792764457269637506900924260836555305947471104553000461343708149652186623501451436999493606484920307148349321234166630512495664846713677036415114019429746411177300982342710644738217462045435663653316832158887960017326528522281329460518784322178941589934783123079420878627816935646429502891552963576293402937344911049055451759921060537434616095458551801243648966045891215638906676680861382799556686026243055077465273244425166809029987927120640601099355636041331803972225924340668254138858686674077689250329868550819625314337931101511231823604891123103366228232749848939032481383750917792424374409455347094915914475937986707842110382219086803708334655515633494268013703601889806575850663628409741632497523078250331975698860852441029097325428954224975534607624318509133875614955907406350596890731923950933285865412117909237248424878713623673460022885645965969347503120767999741119847506584615216456618943478080185980275140460961345609981371625407626625421105389035771041239223291503740980657910905093047008043795056505614626028777603510816117418790919195548403099780807401482546955334306047693061029898170004127038620997010960067395338846313530958051624097160334044262593090000619491969882568300560187014866149948819348021211702323832773319135037619123400991574692930023418373758100160966258937587813055410565546389083907774775145344414498306513267474403042627658463803379706210269248768844196368644030156467256059999585725738381657525116109962927620440961410137639996471961968276334795564975035913925808277747060955463360915869779331003866899640728890704645230071548556855560042725299230680460943347934989496907107537584597296742901353153510474118383822805059423624433787156752333911446269294621248221758158209477767521916025586742783409904733950205342787360371631625409466059415602994655713729820082800837558188900801746392154776668090728210565380854010888060654465341806645605996131643887959681578979233930218268251885412125903616423925149315164811939830176875915076682503545518353399426235722565737563595491092065087203617685640358336763058553073960084295247588995798938707256335576829143789214865269349897225120062280090561981160502759806495059969742700716821505519362094233748028074918507107056568713156839418242570224407454193879591530269894745424585485271554365656976596207118676983214332555244218031890397162752546520773080911780121978072748244502625805386370542882304067743725452366482473623239009091581784464930790509131216768067581387668072059801598919037286364147047939350469151158478945848293632205263491417935155340536818850957561928341173999084306859069313135303916729697121062025924443515320933989817856888629399889395224629250391907439289010734780318465105562099183445310958165228674635422845655201090037746294715273034934628162170755569183638621818104506579427023269721921931567856747965006265336360447919340567747858363362857685496629933958574132465210655656761509287827243968934153600638960993318759373196664608549701018078775795291650265118651975938545294334551382624256763861108670889763903267801130778716419885055402842422919342491927010200876731248729816431495922901770918443198194359063651891230490081819318704465459847149264453055384213061545964870121414361495274677516682464755205972397083164035707393336806723447000183632101197160017948630449224891698523883653245004113750320539084301488889259752227371647540267023129639042717255094723575989040536636562888285571474626357203817521444199718796839582873351604671151253028648107366159090240737564957708502518046183634828795464784371705712584755152669446218225057020339992008631892833108338431691668727416055200510584516752224018183146320218168200440386046958961643079217877446532247088000055807455424307528812166665180381679402282359491942614331053126730969045589456049030298251534507872340643519075331766375501158998002850124664530201093368480653645368252224395450757569550379690274785312583927441075985030164072131429409285997346314370907363473965850898367235206416457742012648721070889415733143494666113435648192038488690935076911477572664696111772038469271403352658830505657700346738681725212386588356288947539336738555084214205958266825940569830009066526659682018910541320154834724723131117766562487497971299844043312384642915063844682361743039974908101177277355216356403758852116625427458605930009970231231368812550522370866560467317317663323136090561790137148248606632870977823248567316575895429205888341193646954842984872041000114148663870405480079256591558816107278338561893645148024641546051355631330374313180660337133432242179667927797087405401576230333079592405643390637989288315311131964129018070797156034193345055843346126060456074462694024229684782245077401199808435795671264711966209625056297546971307209456245853497768087794506903216466482143427281281579853224536392577207612245022309327578978868666697627956707228524276770868854887844109418874368236335367369031324524203193468589138396374944812382889941881772655283374075739902161184321863626137441401313568422484485518084223841025135856679803611757596669828482446318539283696382649936490317651890089454833456192859833256241731852761048917070319379337246700122071016869175800520555018929889592675354069875387583587277730122808476443877935001337197714892235505400500266495406760431266369210453714615223579863092348038469048391605234795089608514619731575343350938360586226671699528461978503443145153706250659385440977597828534468700803141332686312409833988316299780907000860087569852057789534646934530538498839431390166645659764951824339571106882658327930990833933254936938621639679543730474566231631883351651759655493480770090758849855554738575481524024029155790353282528474639816990896371111220359150143845037094142331409179519569109537594550110916914020600456888895154000697270226962739055889530250080398799035308239519368639802752601028277751842685587153695173242665370754625565643765300545501796024235170295625386529248360491397550352455490705472949523164327144239363170759996228626071350573969047429512599211583236565168717172057362440907931093830702078911379049568291345819577648514539089445890341754137341162545452385171955613953586465094176729235311430350799876757332236537554685210138666091023553478397777482347239095150502894443470105726663805215773146280838013235245621941986547689469249152128418813139642361968247168434872484309351281165750472348243330720835463631369389480483026265704031039216485779763342468919575159886450524659863584787884815131073771757365193902404933299193740787338069166759714577959656734554936317602733671163987906477803348214380330257141914067831198401680475946163130079267591090593211912100964362268082457322763513936114801523450436285360349464275668688028421190348284903511127077447897134570101281202944165511000459396030907222898117887262695487206794466077865575525980149074097448590905373629781963585199474634320726154428593087974880949727902630178081113680943513711742441352046053007946677517882207054550131950289274837000506878305523598396408596538029143947291453402429903218695531401725391996647985297710620750502089897907936523913964629218367410364366753150731648453755487054667621146682970356801719659932617313020907201372637276995934213817906421788915180692578799745074294421506455950921795778839642890511252981818569092480628056830840931363619829977180255766412034773802528892089456224384994134859595023001631454798049406464275793695616666675056388763196463642233701950544780274384555298594402542253316461137205597691477462777841821151091033662506833620408247190522688659712897796566845897109510445044150708847436004985891375552364791594877544835017104526917878865012426385780729078982262464183418947194010590216941127885815586515174549553849135129461624024935979920449372150992196251533216895754805113044065819050734020420879091370729735494472938210481323893708189126344376698127868288352029512268435857293310575179381947991569670807411080715593865374341872498835248650611843073797386347871527122292651156358425078951774884597422652067614300448160522230526011705627999670494435845137888480338084644092090673347684578916129657837563412321493814138483418691578277879713358624273755065096465002413145082838663861422960230999524193871854737162805601297669012334237378160540309527726203555002235865321936406158932136594862880397336714499860794821483454313075568106050537815732841519321956714487390200295021703731499925473752785126801318786168395850465541368565499194019735993980830312089665954978793580714237610563842554597146996332378175674189958486814530057947312826316048304722358863160659800661374490033304249640939048595033705077570631166859610760312415784152959634671430719970281374505496762328428362287335697724323553295009808916137928469805986196106593832296999586460308983670428210143136320613157519867842968601373195599683092380585951514383092387878514581608769260288466546381901542435035617442899285836460359185632985241064616003018989941904243568083309385474285935328821444126934709275548305858366457314089913848130576253635897868759114166404053700917916674031983412680220354031264945010093798352691840118273090882851478868150286399172060546068442084444367178836039919833710323156395445560956265568381445906354575008521864420212115195490414390516759133511917400200956827657052872907212358552850105460215420238707301482685294779940733179730236611398058542182511592168489386521493958477874373656093653232570734935064852261338196742805900344325642326588308709664950256005993928630701677084193072680616536281219157805675644247353942089992641648393526278570936822895419706074215930506731506578182869336838936294169229047695288759959618479979438047151275677837111612312116355307893026743444491512265035642521168477583803111469783817334335979850977974208425067457035727219510079141681967774980400885144858070307460603668626037412324188681999407782299315777776482893137485688918934164126442898364974027192511751044553132883515790112963530091472092181566510545400190467082015318428339441204215015726845006188187598196411126533663559737342597827510391932249496274959575821773063723306545941126584264547938784926391096954305443767655893168356698594576413472698453410089795377603807806451065524206950632808596413984576180983534132323298120396147226899726812329698918879979869927220544439169005635682873529640955151435205840853688855691499382217522944622363050443901636470445571494577209681082511783859174753045849644630028058392304445447501309567734074737414343706700910781398802356702867874021045768934481366650921541871643416173882997954021299535651377084738372381764861923863758159367156161994365784306785565385807978189990485529808717452011965430956348088684364114911648658746737215633335024759077875928934150589179174037175830225863875344077801247283023200963725752602485490686550166557382146048002805557757453072950260631346334616660989580186434003035379117521190074340456032911588478899566370686320248070524384763018456154894570904828774708514363379007414882422798994371510065321185558324751917390848991812387257055640395112589074856720208026688771448596540508195700812145924355848222051790339305980613227768664632919604482150068175434254871540314615586945000549942532496658919335301020371264481381641181235856944190196528339910092674545758809991296047372605332460825047871869766592997182793485565502947304246610094347545635024799734964325095494575921617025452945306789395171802438349097870138035004137970041276941628193239743360103295284359092680342477559451389839848663504986373558778423633481242748832600196194236713711994589153221729245339119355400747618133930789645527074636008731440211755524972524230729441105270653355179020562064236619670241131822799348547601963222852004327143971311387704414728971034870493108083620021568283069249611001105449459202025186584099826176537903623406163145340731106715782628665891449134364460342114354436113637260346407802700572359588347607271341789392766177494827286604019133266705509033749572245405707876267181546100624086463316674805129893872268304971943475961964800742792400720771565791472984890389773396872294390346789977623634470506312267135027607216152727594899708687147247492719848536264061960040306305289090846253621612812083245684166162963124967544810056233891764463768139208265605176538235716652649559240279092468033144525030934307041330294192677856088359161938407670443298655532792338513073011827822476950759525121237252636164839797755675282057503596867438712936290844146848630800584196871731870772300981417810304240228136928465663785954591636713761641512544221411092919190465232190291053341957058453034212876849749576903939719269892984630126806397746033305794801313020578723556730203721106224871633118031158254086805200705866224171275775802015483660516885242129844884047199317471949417233637424119703042065853651257642093909978861158205514521439848327328373793599775769738061025884518091814554651870341075704132213450373762026236355367617458345883374211022563210135087215283444506546490762270198572332987853525295610263786042747452279947791365718536657450217252588519842629405904585038081407858035361106352431953115454144489958469134677459356475714752621981632774514827749923223180553485024669911122384560261426299383309130012795523075846351143873568394679372114169914350347008473102157031466841397563551357793010482905772075418994368500342334744076264895558396590914994940135825832464088043546515815834016284994917371270042697032899506005208412086018994619624473500666415462204520995871309712394987251379831457271188643197687253052153316737086801057045933247484158493363586243672788738979950788663674075743184634171444970530307823081822394519607665943779513725198355793016056824044226622208633620973772465882128474810178557124098231577974935571291826783366246697939239364252116487485841916605551074198961397186233992802938625466083743532245763349977857799651234222077064950120002714784845123356616181715492651319279038802614244255537632563962292393623064243802255767870916213605132745566917579715682367033451053300077439668734308420861871475505258242674228499410043066492475384910966463997379680946562057558522861829358860677721028523189511991489741458838077646667875370292803426390362390884447121854390513114025757531629128271365917027451122115146910152042366571714306397727959218316851482840409995868848522424307950121656809805276335128539597924516062865088333533354943574004453959485790840944595708849448608613178037403172725138633664678755958186681151960332676204997211564884730624735831963078571215377574654404044662498034945437556691887255329446726176144930887219988847265393884776405214572900218320941007636684209313917831121418654310651368683777879421470206959603654807036020130962453969389102854416089978062035077790565245957841880714069585526329487669293189514885399364571113033108845262489704845854414612725832444077343752497687813384446091587906611203476578441862062623633640674592947524270086653213313337370987247180435451819432515290080567536738642627862898695811525049141563867709100295164207589838729779174047476929052849191995034653188742818600227797180613831520882650517311889815627006601934428116490048110216586917231008426522634770461946012105295169502299275943562179961308446180579996485953394094479096295646902282668928784162567153855657250752990791540681102414733965622097991636374588945089965432341596502844187751787466234953270910946764763053840552279688981914629941669215980842838075116552900663868159669146844357195766301873453189562403317465629259632085963104654091890360068729023361409208497321662966708401124868615268818224576609704756917554302779082386736322320279601916873738066870706825382922501599475096109595128938684946030285251889505324922120991821438025041088444342218744142540094251172932326362387140936200664807565867742267354390919858406316152268669152017242409819405676022128048102958178835353714896739522172923321252100249696669791028592536334715225437655411824809066707850920934317317346472592683453432716813571075464911008628966132365872446153457866802423940118597276239765238019973692781214291089712746804855832637550496636329635088049621291476481409297986450134138778213465967530751663364618142316192113620552228406660222207966912479537236886040256249730353236995810756423120484258000872223562834735916444162159540070690363633061108706022282168719277546838780136031323808497642400438998603531282962041135634211339046984701321559103829855649255449435432861966335439306459845413899393213429985670669886849280163640782621348857965181782074022804011830816146597984969008121176791413846551387376852702592475986380329720128815590615390648391512747734725554865065950407920113197976089679521730297576051769047789829300655121734613963407936999128498842036201213445840898740428547537244027459863493004557929716269750879037109917240453558918454365261897373939109815827613172896180574422788032913331850109605695977818758813361708777048703842341039835515729726316644430289978670142256916333002032432242592298729793624987092483358176224495421956080295107134648216398175042626400282732464632666274101356794758067022282531266027536480032599101717140423809592171206480144272959316688098871950230594734750446230098696676165895842250565068881728223933845868143749371108239630618474952313706266873017276724375405478773846075849569099091353317162882482098859091547200855971228483827055990112880467766750586131779984259301343422312248170275862402052985907443587115802748202932732553962845946359761884912282699538125984685999707964632719764628805167401672240886334932224143504823189506372470904282898320464588341897932592749854960845169139183517998707689083885367788427146354442114397001218964113451510558786902104298727737085170305843732099633002299518308048391903337669551932984466556101099165592192941354009055671753933926017398232458901729931366435799568959663750474840334198588677150495493509407798649120008423707584481222473458609206450826096081656003215727067337585321934950690190711770540728776227873357644080092182032956562842278517952239171089999333429966371645351125618271415669443594499982859645457294279099995869036251820383319008306406750463952695884999713291628120720128027801771939088687302801265577392243945720514206213314880198754172967494431207532519851337160467481609679258196115080476435409362854720516092989121199875959302445507123532280755017444488769134732700158052526530909122799722506006699961248814530588695690770466184261558758053063252673817223959464241910134308025428596361496426079507609042821841510988146866749493041058205127872450740869542004651109355994827370510499665634826101982037649197475368958133043670736421003688596874814480165716350513382261600366000173719841577227726118320033675948238969193110796732796886410208031777827403096979146418096220546174685736338324731409381233232364741098490594172029741139679199536170790125387584092261716100887290334730351005594865739519209274602724702122195595457007159723499868176523436639597482093817355532458504892558488321078949868535803666252691045978040093695996745692919179087290845803443583513790347853106093724565265546941798782837727022776948213070799887917116344138341759573067212491019310989305348364085052963265203258466287513868359702387162348531823054953422917529538412998991022307523966390613109498673104195987106301934690176749876667972512104817786806174112851189958058945895997908789587089378569510223945488159921190519759683297635357723610795150339282566921146692188416271087721612845991553588559954826616143440858247829310966362418070474637540353010403478869458768011983559439762860260210481145785145013194424301868239314052979900479862125070625050266836737837686978467730834903295673240015975954591079310934616936706426093539013638879426254130481043286837211825081654858837981163576984215882195003678756914816975407009938339036996291843398109012302397127463889331952713672539336053629045327578211592134672929420181264879525253285089891222518746449289132663153564862466050867802242533787760563973936882180075847578057961620260148665183186927261482405308645205976073203128754381840749045153653588855466336817382977897279102962053895492483329689905437450084760100095167020152109920898651537209811927598333261102155897952044642482305846339009747288273715913021535130635579011250018006247944910113906403779060675320106397667317446663434187804525198000308336793364441303630057873176504164525608526926555533773296831125452968729450078708066147271503183264302253700776177922429792007669300103998987256464771449445814322490589151313806061001777400614011312394837937517505481242612149307835965897686046446102308578781785565942499139973134783881273266721885856082539675381993353434548751242191267266823799730399122727566553941454394410985444225605629751137190348340878522047219679437618162123996220849475321354543729938809706368060327834091161474664664612960297835212562111840950843274552468438989323177290286599438538239943695091885721054415713409930208160485246010616343935837030014662068869943912401582232717283017409888571741677092189499584782528208810126163269194036184011145287903722079115813124553582399985124965937897336572106850181950607073534337320698395911130312997609612791561931322367568471444232192429486106870660087375007380943747280516896488117387038265288384356933740001841935492786820959486543289657413874060725881089318832479388238607026591418276910619360886637267569114543799617546894705702942148792932738568585062547357115848785066542288386032004390207285918010016956685132912644536807815538009134660722780429826462461387038454347467001080553901115579036342073076992058848179330486661422274970479021950959667572912385731582982507806964456221395219601151455987171266776089267049037019808371138918778002377333337690986191879805890868206347848724910610080805161873430169676975674924354261895308491168326702639169211814469370790837599891196829237808232598875156529317445902896511269254379917912593870629215785326752621913925802293284754795017980673816891421131668693537375178122219757913404233240439931961551313054185375255477234684035688944312075522045575589093700655876485717383599688548520313044252838646981291970949242823754562092430410217572523674681199229029734729013874887297030997443850340523393997888699636729625120917455127965339328702736487908626074361776047732353248125379894212250646637065568729072586669404545821962694981356361451104220674861686523963279173004303316899846888615181651281610351468187285399984189967107164774186967396385630591143459492044601392506642436016172872525852875160428266492605043824323672672645321693448030297370111161782157370792707789244363555978999880661273062503075002157822369622679281138976757939630881737147278917814525474660630844327408523736664607948873380433346296362542579695974823254265170208675422188059094368522233905647470480117903728807168835816784785449283080386522492476249779576558480289932651543041505830613847903765013064808413992919327398432222198103745735882619070814630612921651819924828683129065165475333139255282021162052740064071172741436901425746756710232102527419339879977722921301191391303165463139728397231556276952778729344398825703612962580671265203024818797990042031244364783426914651898552822712701303951922835108533888910344084138004667783994665027393895809046522730104792421644315253044788995268809146020712398569588654861329627571766394007213924155908100847193666133569378028333262073423994375527463270589125496910270819193289107036374452477642841310916668918671124814882124538313039596446516684406356922367731152754643209923677828281337876660477447746698609581255671612129209341277213713874944733296440705593101854354475091234005408296784988649834451030334988526845887219341992088561745740763381116406391090887904879458439841388148190860507502484713638933204337102411905026677099013128752283514843350071122984702299662035467877543043936510071127777020505988801745040586373568838141688710473937043863162029621921509947349065021993461333485195157390172234400623430152442096840382824532261635187661626399052749017567058040659620625481545582348310421981672621532913453649430895679162421116926993980848149137042284560247313413190797622983010717955567681870157679541632864361347385217518204577391796581239729923575464386907133866395256209640265263591339422547597615519638154096747540746095808966360881040349202977164008979482277926395641074277548881033890279065897537444218553650631872378399037261050197490332325112487072502932308008755778067857828879890611975567927428225119432206513359598284527719102073668185796617321975871588213062065881060872694746314866056318892575710942359211959905888625361864923341493346748149165397586359723561164257366464525071280658199793849281977786299122874195225579146705630092466628698190180949781185854021401724092399827130570343943868295500991129646928104305573306760133018435311637411601718639430784147562811268326924941013011852450127883045657113896493364670609763104865900139731128840060713713728528488037804656807850881328460913484741346565174411817870177873498296923157740962657070845669243043596993454246002598157157562865265825540946333276361357375825825874615641814367764545296995324395278345123147043506311976564394165739569819410919742121572645681394835312291757833865932072554725715685005883585555573407770522234113728449785357865004376309156541278255628228636041870198562929840822126550276270999999506106956094233195989440162023801944010468634934016166113523826853311799452410246037562097047125457382819107234487962855638751146219738172560034859525079393056606362766002522632465175535900954287715429687635954448974530646131151330998705127096541839065436226654547943835512237506921020665438619663617262953062882004076792627000373429101834261613036687845040283077943952889314285521292746154377264962584119556497848937534745645870929172538588061298413113354144682782359579304915218737569954065007582249929349106902434277027493317200145016036007206207096407318751614763879906523543679514969844389298646391398896998219777162344893199642615711208311068284135493117675138436719872783627620893824798281109654122846840902156192515496075330575166993660525350021540507001171635717895603134702546893139684993358695360797055351390947427835148945212514559672735193664496070029991397063566166190862761710939296428941166816169987569143505400980580686028203648770491779727615705664130977942189478272543055936499562754760580250808490354673143985435039762089516022956227226505043197091980361855633763915082409000180150769601983875944858383536546300687116099097755267357105317127328228532839890745260764849072127212179737447581726472290623134916647930758720808122776150637257727950374676874728404228517605488253180392972410496264322057607879966629933919668633619871076122936789428062733217212054427635242942369831657410700498518798891579379400649382840881471381261022129194551828487808250659647066853982839065016550180212699358048735383440368459799422828537782772341228634601413316843895015528928873968384875951731509358511836894072762067262012344993721058072989549618382933258117990739061215652421935661928678264718079056883643641568045642070256289778019892799547563812894390270854176138496810843032848122749949031907377118012713553506295665307678336836169574646938453295717606868075667091314620318274933840109556320662795487900526317359287441215927874127677683924016028736994035616109157188921216204478838978330387656259361984002944657008223091201366841878498932219893157088578566727690873111448385086396471206746538108868005396370789211514581438935378591909175918052495617124551376939173969293004397810884801137588590247873595011675198762354442818259862968659734506758600491655815814256450866393177637368289468585551433054627048634226039672836760347209893021004944933658361750261931641774673458868243323213573683679284167551015660868756053979875115825105573490558532162659309581455333240288360932164280528314898629233559967268695026342372688451287793899436405772458316496996814862027958394119013312836113341072316400953553700122866724363970948251124897855678534260141666527799895964341346413482178011607047937510444935125167021554422088660710143945914133750924884736610749358592897193314038211577838285761094484806345460512418575505445861287351958595034220517092346752502033772377571344176817358392128068665101525815063356990687130450922950978334641795051198195793115715181046420749798260157578976941839938750996542895954635921167273607636960166529177048004370797069012324921446768970856595715354984281907330818807207932558598822547980417111443266940176380378856763146718372982818442108045274696309613239739120773935978204469047652490442071286228614612586122471508349461128296337374138320820023996448784149872269941692425250398850351579118777732633257438657127941980125498704796012547721110862272021277211873589963845903963491256878137488562401964581083221811786236251151758106811664745076613173744635727411645166453784014642815994767148714576746284116183896954596629142331198259344135268085222390614022966470550778776292484069631558433005037701587845406800360406953434650763254589825222334191209147253574992179907613746737862832979602951971173215655442021018949310731506058247891943607883659664491102378140421406702050202167269525763974299640240824136091976658604499034034484752604479066578570969791544689352412733367399463962105520649558623119423474833406747583138209633395662956694850085573196661626606435550501039325677141673837703262230625314016769741616397337481163010189272046374966565610191753176257696740467429863977379376270443648691956000764875209147593705469024798384096261065067528733749441845839762776680804998049292576525110182236321379937452896722371347452718125122646731674631500680921259810685688628915943396098597133088227267220394220774346865970854531539899568663513115473882977407919207335438991220129672586256286436618247408676674439703336923651542278511214105635709713998093948566639621823522155394832993040814710580066531116211321223089856859200303452558829520202261745855392802061401117362491871934401755878037213487383008338955382501390508562342060014033570519913547992467457785317858473333984147025788862019013744189274213955375141343649864397039798540079396712133883196868309746883444345715096593559196120683571273055470387416129726274281756704681898088903858120052461991012801048453342326749445575898357944288129501839049667918483906945497961089064912715297971559237349007939790220507549721138834409161431405947241362145561327625733517034896169518613522058061047325505252891431604573858523860154173222166446068363388599009275795002673542543130267571385791546438965346999962709203152450689394066268274007579130298606787314140616873949385794058488765639164761106250348528364135845133671842060249108466037832216599525493022844329974440562734558793114631136279225259903321819832896413720902456348534877239065148320983353944470942128983691497197439278906820796814445857261397748068648218774720954416773732874387241897717499229270219760641447750244948122948619632868539603609359974989845122303976792068450290796569473736652775197047737394335188761637123966257410164793525402058642901248924978489836337678084064580651328002570960271853484015785785869176782947345267022222089041564514967672739301882897149243995278706217432895109566367786297408689956356110502715670593121647527232707359277822042163973824778790967904410716586801087204039404700841068530114698320486861283560946666816646794959903877786115354499677252942418559489872534255601606895083111816603760691778528895344065496645400903336656923770093949189250457471893751417675384390114089591383564228759059471264521124290437254806608585394902172884527221200795301073348976773049234347021954642300104171636037182233382976030508360798636001848738011388809296459374269347474681431392546845161782744478231703732544100265978926462607148912160840053192487087069916244326088065157066740337809832832407618979238722700438012498513012747985748100398041662545321561133697004054235871400999924578544168001464251412814773678875444324867148883905892230017890057923034269975912946801667900268455694225772307718418663238920714629261997268976788437455868189195170617091792633750337872605175997455267937507170233870480546593046822625029243625952217779449471606648492765898965700983755881245869092072250840737947255227984153691438287580611055254502643423544523059085661901100654281072493771055452214603513134489107405734899314850127131567248854556059218768782234261450894890379110914918951300856488931975106258422272221850839486883814446975047009503480694493620705889013398974692691640734932900651940608541985693134860118069226783560893508746191427449679403523404885625809916742916340678095094062200377777486680142014136811922243077601378883712779750216127286902704226622684480829429009476971532570419147905755381701062403325158993078883465184757554664569037836994251588510035030307494502910808562359325403085917239656780508225892559362775779735195045201072275363476867104859706010001278423113625681608468483866570686727502872658567172754084922376571203833009557572367065794545335653161056181908631353863728471369664502806212296289137611750860328444234801168908319828586155281595706923073184670388714181986540862450666481859451271855720728118641057588466365020742621623094430235634529480076656373489815951493802117164865571662900998534418190116734776809007193038201331000409477611545858815917585059206716126272818124018534655487883607778847951159606534142797833794736501204409547453538979801416054725674790520079630476353547823130636393004165537612928481143135450270996116872277638021154140280205301988461202505449854752365219334067587028337327301161590114365532267813850856016645620091111948058545989848618297492549415037119434590326824371372018984223235604902615073983230554411138243277097870459145230552247421878370593863840309210723769100009552528794365425361157864992988946259064838098346494321899665980845174075489949135840081037233170470521508428389100167022678133652226098483236095968733365379543548003829717966624763594554299450092834339853916425248387509410539760256560844296313082492242481808912012780884370290696504641245700598485800596333153392561903720811244762968806049737976837276891176156955031150675450051538192327300286748284612198962664733346031189974453603784488512376529298867226373629313793308107933959523299632207847746363931997455134367705169413693971882600045622783490148683334094348774142195380448150326355902105928435074708850725119705188878816795914895179374669481701497632035056966916463867810393072491701594025745976949516076902457681211162809271193444008135362905983891981851077168568708937814632387152491934758751480564336289053640630789565875445865495430522182126887095631567277110050428120258693887853223514804971701114802349204455418164011585879315551159472238001518455190415451717645494444842536461464266078940745357240446287986722061284274919088816289791150703288105349834878103807551559534270830932589971258554494158380353679827456124854617696318552405375301021017054311513491133825115676794814620228278268014942436680417889274352463566027193177764382994643737615993796302741863612399506403419023126780834019447301761121047807353926256303222953402242080657692083666470496715568984782509872710422989564368848106692701957298874635551450875485973596388206186889284677693431489595562312296082130061579040861195435478769273458245651786690698997451796866405132876638083841361587401826948844692118321609068559634469465038904451449425732289972635813894443146139560916788106838655326277958396980474517975541599362645493754152101948398080706421655728992226262860194143066257038199289248658664370612547691481619198870471306547751071380188773148245230880726389269520075375830168835559465347688482851290945391044552515716862135178696415273316276441114622102166127331413654434072740640423560308459940764782400723954487767168831788937075117552437069797323422888504521986421972755333535961190046549329437812233250580348218192854665184342765281359462924300465700621157917248663068824643057554210492531879229846502095059103663841729026893293334934606625568430230123841103438819471182615137735157657486408547074125420133143354220058493946273572088048551701587682032109218104909787219924498801811325470614663275180362504637569045004299922148436473564903926685798686091007712869079274102230891365806579560892723994642124945780790314148205236948823823809037829869349655640119935250967917991947269211638850095715324647632723357832623865404346734058912065099338218142207756971010929823573339856301709123253801222426744555035433843624304519679302116840705356643173441890115304698249882779581605768206390943686364203004230626660756109513950437441980324340031719364264033730974003836179359649209070522458216856205548506324645299444470768611218582232962810203853659707413226035548631929920206342888276099194107743397352375396763562654500762300284743771490844562692112997016577300653573282888957369544974761890700139395898451857376893508914396945783450332181469260420778533741063714168505470382713378610142518985802826404291968102459425431486275609538524122880134639990179145501488280463713906313605857033713383899321796622698479167511588561856593240596326252736743399480797115481636974349868646224238708941154141041633422990376425750703102127760813328130779716713648722562931599776147072178217796192347937983040132292814292560330267381293195220439259017066311400474153170214407290075499345656578858246014792796849696025811828805213903967121876797507447249980791168486630891484622857674437278066092484854113364699737899026995455194481585674772845195182540111030204029712827663508249407249749133751337352652006354337453820583258236720538228449591229040010340036961539772195180375504026850104763902313951099205960836079833838218397479528750782902163290877273449112833595396592154125431846069925086015541958150926710749715192018690471131675798174141061095881018526571192218669121766592501535809350626242971773327005011853223894171902292492947133696908070351826820875979872373052776217327937920256482513774886808014344437388448801841441711607894337193050306067342694447201511392258654751561977279416162364150161947706091150103853618442170377252711967233838494371246489287264533189488716059601445931506731426406453907868878346099340613713994563643663904472317623207807856815494726608017195005941224886919433180841123245570500085815184910458220552244205118087264151593157253653251002783416735759232087451828816929615262025792006200652930112762657658798473111775900395473997088661732452967183253466670760837277644371080843925511073470741543235364090452746388285517426719205756792151606323194017688199876934192988047584890915603612794063982329061735028115135450966076883303582370616736865098832183792604092147161198483121217974006440908352210734634290763521421075490480918772640910911685786179447262455886256014040694760402756910493234026315785904514675456244038939947820458045917276118883573908477333479826787406549338070809291363824950147959772176114666586645626739546735334677402338117942812361704586959077134734876750847586166109084870047606637107110174988370735082796678650191731921267484646700340020794502318759126454211779448034972064348517504292913655970961751569477132386203541583975975377388674214398172218894063948070836661742014940973755496678596356996165674945362378799786868331124066806050256609307574522142447476252082711629881636719866239813887744050442646254499648266027579484427134986243835238979579236692993788636811856782198351942612175470542162193010718871261061638123451619619163995634021093522207849714132381837397657070324460248889341140864539854339456700320279183570588551327012655277179746611105411071680189281563492577541646828285814361940390091601073427448684486296665516554691848749195450855173136275319808503927102370313513670302013589826808285760089795565961569342495232068602256835752903116169977241446441643288162425957627127731328636066911663428189265104252494950084684995070809775739133775563475800299054517609238000895079344319962499823226456823353077566048931285302396579474254121943125608085468973016641787853416327160831321748953553006442883899882610487780407676660790831923155215665206127043061939765565976800072611594598930442882228457051032014861549651563821282560728991960024421368001876293620777800326324735505914591190099741334975339938736416037123642275193452443581611768940960963691632977328372279299863731236136638089897332909457135152301978339996766280264594682890127040497588716826794530356311191352603455908459783630978782804995825522454081457272218698064629313809509273194158677680072778228111425535356087795630502541353387913868728426853789216122398752143658050128679294851979095081273340117458105080251688938529485913686936990588582166387946367325253999268907781035825236654081322170261295883728618041774027458721787644835418813796827263613666409884453375040884635823222489057790651642633450052565647939523712800995377385630011259835698904138569127586733689595714961953995772722862682980734155634114991654953227420198543213769342337034715106988784685878524484043347284352124988336963089008663336143889031607991262935466573182863248893180489753424923073660077723171687603238650703077628230915040742322521340002138885315581829592829646399873926020666665705800192872074182945550382010317668271076747141823940735852619878948710011611514959254818162797989852448371236226898734748951920237849177463499529939971887091920832742331718604101496053963707875514292188669314635471847011852131969245931030916451386294207181991751155578604506632524604946790909333206958823674792194048119976692299780972701268740742879685819873443085948117907424916230693716989174110615329644692692217894384281061538697806532541035518485939769083595720958568906403717042805268366995535434379139308543698385798180878123909691669324162373775601606563743475415865615138424984837301563017734234070417645850640030823486302270279489132066589945176498553243578620581485635958731465018073143525942136878508748953403186782344893074403160140708779441761557124254147665940176160032040043261481602029432501196014562268881224821539511139258860399209406038908958374548403081757328227603621372392029062097183848242672275554454456906200579343518856938791975075801848444008564241169625609949884350904597737992923670941534980538660259053829468298016254431103983298018140392092433012256154263122745555691938261226890239071394987492482828060559426990631250128579529764804294281514217182296010955779423660513115666862128027916990496214887964350418661854666883359549035781211415918717884403701787684389927885630594565962657649080982698707888078141586230257814256550733506052569290631103239313733840781037878119292507014917981608616610578343532974583460945021118957503092121746202352841207123607404809687582248853698414691009903719281763591686322843022245203803349982423582109749354305577204141789957126213136904337101553424353825833786405109366559388966371653194763969420572470345731338987253080911999554072460587195323859748705255928542077273077522285042676067744272968928330803219057183699155250728598335229747481515526630414845000142923119335594898942351188091322312936891332248491115498454323033298035957928135635629160894806264222955681092147619164544227542131773099536794146156192339367161684576361001847817875311869187191712082961205437304489450097865362206997433565788250497822768863872589290732965630144373419573742604778990466642469333948713608922951893273520825247664172145218629770020019012806104171768663992519701762779436085848966236741515499408682292454803650546543983829028796923564742771390909939014361106147553458652193145889081234567138115490276021809093575268867235999893574966855018507306996375915295380158335126533443931590565406731522183277176222976344912174152803041305247752340456847372446440573259032769161876333236131116826205095949220761197677614466616649922345443954782934660215946695151249785583758495265165548568516692056208246139227623554736446265672970443243961501175941952303101534045333488713122474575098161108456553669189999357571377099255729975549406108818159568689454513267635113515418083550141635792022107050069077089506049712857111535752231137792167226473499904522735398145431090412473461145404247678267033822100002816038383718303208982325483689542667892569686423540829809128162867265729351166320867875385710144395784011550978004203791671005790555319886906930942454288445979453830676769052380450061331830226416336030109605798669062828150388175861838166573830141383321792976347416339791236980047738880121140038054465376819111550293986170890355928421861747457362321896613785040608221967725602945435562456830045155282532523442554137605850646123006276986714556635533670377518378399038788995977158782455684242280312267077979468280494811114590574129345745147616583321181101347329792914046623993517105207408832538925040311277857579785976145294700972202473865665508378916936295782589103332330708046530126857773260309929859359729404882556007581761622392171733761101361286832899124587439897846583815572929651331761540377327530555872391077039759380342750787694106022130610968773764802688249981746004512572456217771404682495868496406813115708142850094566763398147172888024383851835735359581185930690143592905842899118717966136425251185865882400340414325922642565081065974102734784678394803200670860320996637674581972424047019861323395470973864293138499814588613807969956426415717823078304431190174299380889901683543057366816976748562893236616391934972162957868899953030009337088048540258734653877058664145549784510856124993491879456183450270639524277769204345261861635758494550244159374499741922916456235273167026250309592980638957247239177539839929026240240577811701345325311339079684954765325951285556355918137027988282299668455497083468409081878762950726023146072151152395982946089356207236251520274408105338048895020816388890424332029800402451602930843807535861369352711012811702597947066157439558018720584854014696038608642300790927456645435304531243417116410649626763096321413969035896615881336655019834341084144990988333867211111815122782046388507504279749411151179695407751288924607454654258192138511522937762707853690384514554509697861682784200368987729803913738117925286029193711351501338994704574404471328049098575282185147084510778588413235015279013007321927586584227342972926506939528888000601944044152491809499550845325817760927868877504920837022705600513423494982382694747712465380876347110109722134070822805300255817154794043925599071059818464756018545938140259275372415312681239970584010137270237576835818113604778783912690981977443831310105705247356145382796520255863273198177424892979589477031776360396839893965244454467679543150219177553387556701779253018048553934736935327411146934541408865921326334020067753139483952821075550003776347300031196429173917561609277687357854596177281188890031426092304568238198724262861503629443479418337524100160795429131657689543933738624349188899810810999734618008332275083915686458871160715940049517261430012272841470496920751711951300672676803949530882210994453603783993695703775196922244647024380291592521833467914394449069401466625479761368669924821921025268449400743710211658268448864947684347251385568840049028830876906054161528436577799958354032661280973167851944830509393389798559468844520783717201756114363919396386366171341092099508488316003432624085065062665072912502573224288582123823689507100765580150206639971457139275325114222497169964494686240268541491976466714490990207943774115041694538239126849471367480941384265766352370370899916110756558055342012299911813194760180605603714256888744378255466529245178299209581052457090394081580746384955481043391862148947571134445871896389184237283566223196844432677349333863260417586556605114276162219692048097137377660304548301208567383157724297376639563991174221285854082083021527442330167902263550136571527565007190155135077033953737205632374965972899339942095653481882498345222014674691112651263163837140429388767618058887630018317190884179098448308101919493329334063153671240434178236179541056558520580416047038497480569814495253662515657900367737322600673118323593567047703023026673063243948194551630450305450799836734574460158225773948036654456624570515697891597903390577776631927276294075972399532901389053941365980262486762123917949568399716355011287812337249385333718476409177623485592751795669627878628812716794612284651788065374796280784757945649429830085674188866548237428827068481119455965869499646700573220241136120569637275097854303457725643852476431722470029328504535273928383723761470372735705587252577293749184599110744418807991950698320401100895443925220047567650160707588839274772832442116277204786189550342832113023181771637206232680423634988462875293335541246590836798453573499669884597475173207138162682948012013961623371981201037188229066008243192518176550983703111830106658951164981106731518240553635994366603060512688224381845357173220850398111825618500006882423244425073874482367203591652602501512645111461897675151081857752778830188507552496256321149334882191521179762015067543888167756362475481486759870991056249162652632188839294796629958855188158869715545354617547939020624977091682688575266521033452611367454495807161213067360345617716392194328598557278086186449300269762687286620373961052839422394715239367467529867474814840618236500786084614229716121271308205253094544052632594482206556069942775968330329930464406623131407090852494126140274506237481393330476755318187635327362759719853701907362772617503993871682059413740323442270438612933321200257627193714392750058748572362903995875986405068662206748322992794514382445779093085013005932332356275242334398957310209859809858086651605046258769156942636893978317823863079870685942951392349578715348177488179242078192227060968345044050080824408671080389663427500922598918048756260764841165518683486558228769352605670561656215552408117938584167611375342087204405088907455513545246515783788050210217034195547490511256050576604003093901302228473749053240483625972791676503900807610656612218073861161404990259423142844539513567887002502112902703000364690548203529899506352694486118901929672332640504089738037413196420757186981316722536410804171853365106321011493329935070126097673323735065397420533181010411262338500932546626625459968953034709671223295821515704599852088609593003074788990299986871598047248366035462417334588150918030449331454049577937342540363447182574500672387532061598115365905734680018863940552740581206114535910337115798788396550506217834106911243870259097548853948179134509728870694338626727393032597885506932599874749652739069308273456276352852193418991805573591189591815649324804994160448488242209587420774982981373925385667789206219236506309921191918649553684050179517852439614577740792564310668088926885896194717369867371315603431851758517704512032092770568278729601085275166804360416488729664491104526793118119096601929582048769486201746154763847505365144824309447665596799064021875663677225780490062962070914978918174235358983610096417927640792458244379325172212833253580493110467093194531275134349321556069058602208529002948351304459665951760284077264641564412534766938749339939296070352383794925102407683332239249567087616148673359351831636385761589208938313442712683906052702361857594475688541090235693054883208670918565879980555664444256593317762037029584784875892672300589221136195498810468711068241721128737089068950999031347616599252070035905408711174492319969213669195517486429654567751628285382593501436833039261639754999216744991130355565794761268790025513781183930290175227871209595380966029900628228999816328558013382273279551763441820830698782762030313164503865329022586210417097240370766093014213059523312438260079920263897012629346174602486496006602045087609908205214896015818292894777959724470231484445205009256064112166574070690271427166088826825015445934062657667927947924551571096035203506037952695270641058388588740124381860406046079481220290486584629825678706449566495796861367847439350122361896628976742563098606439682724980015958949696192862850692418104251202432721123742126267325245594618263693542399740141018756820490986264457711625334897898518873307410109227151214690632097880661838496258528099156006133137465309438502567149479742667004357004980863492555727677352083382249575195906666707038093725779922719539010044275748500180732713257521174929357571933994847823279057262961127057031858759198025421564549772586173344387137491905681375498909648828992784984633297701658930482558314437093584090676544549543885423029124274146075903589712975463894285301456939826370296216768104157597859235386200496306088405357032163847245252147710239235113204271458494324504063530449295550005905139265915642231027399622193554108483470411194568152032841357251047302804172380668854068859407537587102961400930678130318926682117651520997298138553067131845379575483528912794608000672089282900663993059648462593813099953204271781026361757857950046657149063472645132449498223113980922454066808716497085497079571257984980879677059242517198306617974658660524384164305437121146682084930891806970303077895183791331685995719487675840139758958974758545532628558210158676380746163527360665328017003356641760842076655960201642995114092462547157454874908006313563572034982727664894722591389490517598589285972596904118960135607005145638465559578325512846885352503123639792237054733436764583623783421302770542387604172689482893581171568864950975501735391232523461553022396321353999295869297046633831240434328522063415412002645568647189619564441088737708863083398713500547242149997753947477983924353391378332720657951287882984599599380572196621957639478453161917071839770300530812480691784257739912186895633835743822033863553696320349835576541322935521758658599352586390507104857499999902835742852795104414473170588122157479025128852576750633934221252899760188938953004343591946532338160753316134534740681194328562204679673720842386483620381833995492417808106865207654490706073864760863707040025176172152629695480584055185311307851158964235493345118178128534459032516691531315885707340626360279331796078153185003836143501676138747374841193904918960733692453752210114333082946017240912467471235031844514630782778792490748907563444578539101766228826727051771191590056252695793612318264051134355650046788302196549971632671789431818829053447256940521631152759100826064688701670124265244566177010198793714969233633920098024189308455282385422631928036519598918872393307116857034903744741355987804778245491431819952703869235162525959854411425053294900772888892626731280848990191348095632624826003619808333981542835313602011719463687341491704459693918084788549986607826908783628911635323679539888747587691765161336464560985483849882984583156173057459521429429623224115472608550261332030052776822747383818900283158318089277132547317922681399149215140438644366854358595247407652483925522185743594089038305386878961514326504446342729388125648210518825667260000971618376150650370170079828672384602435340772055733481479755490375311594784827131261157357249023647934171222026904908330120577578921055509086974448141697115431101992499913116208685315350828787725723927216688596147011281434365491430658886182517499663715881808103574945291957631693832388805899577833727263565490709982565232438109723215452197309886142235981241610770086042428433089795432318317049718585494523056403446097847289818550262112669677997136111875443837661918250945317325523464866832265835933321682961357328655441938731799810298679289362443871260437969194527681553549627477223767652888387676028366562487904387406731489666857621360962952470019447656590535309362477625340981565267472715573179690466242586102033510121293325013634077966130934244099682402003401225546961148208212001787703461983164927505439030266962585768783372111258608436116525996163126646825672088518727243895022422656739491134514355372976284995801391382136604228454799129004646277280017510014722117123430218620637222469918791610239629084428855129988177632760388955155092130679865402134346305631269104999371482331198722050880640281742124103665467063458449764743994380334652141642409921501697131744100389992632015858262980670692400660202441968051970550444302558366792029920964258512402195664343429257664343616233633333531568709243028374879809926952330001521317441147516467352716641746837689450070657859926565067852076994463965286077388398870817071343469800331347576435063041157735017835133504599803738017180360105325212877108392245600398290820116752864373197552087366451298594253357796967453099862794836341148503396741566275549271690106031717212656684466352466483419972017599066860627609093361497574006796737850349845468949569122135008421923112871706018077486963711963440629455615069984687171196188477110185382408812903453939017593615237018333319261989336061777496689345876213382922632911400150777771547953100988069714298992031845342699375065625613740941146273062843695656992387133806010814376181267850904044737899176727891349348081588286730174223272808664209829636927933290424805812343089379224355146352252279167533533052728542020604835618145079433119181981652645668598732087130256431733245021273806748254328518333200043567489706855892038248183949592228682067974140065817828917240481765933071768474238800469170787030735814900783637027278599828615358103084929525069336746211115889843639843555707030920726155370666540564908746982710524935685564721414229126440335809507163850186534247160606414609165723883954611496864918698069232022835205116905844798145876596348069861485587658215616974453286630432668802366200565899726241936827663793615513978129939964161474282008237704083882459345792424645348794949472948431627988162819110091989495637979183939664460947382314202761700498072908873335225156617471072617364513259153870348746081168576502445252886365201855600209291846277093894125815498081169737652775357274472510810466670204312378516453852479387910338579394538577029957419835337583800795918122878445621360722253293494782914137275769768178850263606435046942985807545646080417261392797575793760965864167070205017412990231776835156540797952302590579989225620728193307589014315175392723630339243654675162936239987181363279858794233885785409231534452061895246021779233300087225797617342067666101802958439909778053178595771175337453996297192870674729927907446918021879948385672239444680795515740560321707915672077296545675799960992474641325625790565825710554796329273755549639375357970898425754290374724628344082743100735095025222475550847830613137355905858394938817827969405953402636934292701696249286304498599303156462790916748674350140876062712350688377397412308423537351692089737220209619191536812378800322373609564200640510958158796060623756609473230853402715226433709234308297795138194181569008387854725946158518574195179039368052873531138225591365376719505681058391795078293508403674698482015396317153022482266251189700097098512569372324279758940228478469836233474772167903186660525710909094850700620861315878976918774837930644532649380794599392762894578746173210935135616084912643229801261620614475043629837171674738892374632260086696804027600918388553154195793470224429631833298507681376793111906134215093117428176587625308429526394873079347982629690286926881535687845469376381734620238515422383316473416942771520248143999651616721745516586414449490187697310474821280080200276309467184908815033498969729153901774877789836233795622904099477563289906735102658726755613959530894378223301416407564779351837724147324564357255591496998184244685266369713396981626168028074883785523650482450759641464655352872970352886763229779543182356999888643870252277014884353732598099938543965058966883462621433691418444211226468108138475434605271814237921615277445881289966724164765150243831093486902971665454526155232021939578364406448855612601180079047587179674024643243561482897950734050367288627131511493656409894134913918837142127971419564638108635719263817995713510636149164057679465954014500624604707664611382951797389927841729527071383068611910518541828644470623512976676503322821092479817515463999032282399092174533130634149668255407650637146162411795656975294069173290721563414094657733640687955469063250154813009505389067035441483025105766693331258679710466187875423641486909812491418268301340678275972941838453225272376952019290047404854060395104071252745077539618001195570548735685817352788342028031171366303631740603793480365532842349925282067341477910166615680780411107616375493059553143864597556951766334361616718042749414621544718312741072876022251727335373779520032115089411403130069793169126932986747919522818661802042588446758837550935062848767483825419537151328155663662830817508228444421629381244177920624258561890427186529945785117938212345252668343582415381154149651661438866946637569885848713013887881048419532769622212676437670440990336967031274904587250952992728880284563912650890632950605138455434200411838929945021871304095800740341232470830337367469882366669493339446808317859107348886502016171254123034465213460947904425511650290947135857104204772172579851987771013173804242965987733304365017155844744222878023474301705194311650736357449154823448350619536559832235330471822399746862673984505642954266301103655044926594536091038082006231891054916716381639181180495503926578583412339242641118947320334986890160896294510630272773898497735353434646198005164808622250424316756254943914964474157733648505636926717274926803121135462619269988943854770627985303908967626759047671196548918088348434506959907896171619835533083064450872677284606808144424999675715424621192398738817040223689957356725339277198222579387183793054746261345790261282145273692389780642672264895396009325571614303264972347198395958391340780054512620182646443232005770545761778460936332291518377765137868159635787031357078733326839377820117012402255410697054187620538579732193129768426770449423039823314837901032539803671945853492559806625119248191609975954684786084373119366405826768112079378131703357091098251142189468944613202880228437671995200448401520118090485677817587404378701117167735345864597991148880473606740989812921184442893656248754788493813219942235972575783575051197910501548544957685500666115503001337374121475447877480792516254264668250669329868251347828023509154703611222855507082751063282799306246654376162076330881715308546346937967066748239480409907219998734572465877221231529313403987365738726956955775788571304231600126664497780181252621441751306436520110486381068639836338679834991513414360163653213637651038563665028552350037996366209709363728715535002577514634468959168949467223667662316742792029649136168331372659567183407144547527092109076188700673423313627719549838202241013706043726248696487862806885637611609939988430588764342715433030836062148048595154470660780292070599712363755605692751860680549537211998460072786789209034312656449489444628435837874235705393521741281043140538519679873470931082321278346603686088765257563921958545949741254329435735596034394600436926428288584870768400327185363499260459026424689840277148135574055551938853367287776635775943771325851161419721551135405073083871105810412847869731660172081552272848340093541777384987837473740587857634953781694689456118499474696683194777755402215508549758508166547197970219324650581933678200938270449847283858346290347553358498296671775724783477640655059962839173264293573632094820381770176253449969068396122675095045029457091318614221374947015586378380003108882105787219845811881269960856418648775926218926935771166950098152173473982940377969769831594154908672677974683797236082358526211255989518102507266420913236118033524633714945928271242649532276670251876854327801441018422264548776073523186751013143210713762228522582625731911124256484491899974286348704518524398285240866251347128531193001490243895679912353539006283313040943144216480210431664809935897528258157991015900073345453866342373678793958011681031922565998342635014060370708386404550019897060986742766203861159184010723015042177739090586580825404231431517682998632583499137330129188920886234097813748611819496640242809622344456773394368008632121447112770019522727106392951034629928387917190114717653053795623153763464888618845265854242138882779223480262376694084199153146658217268720317999457264257962413858136207997045387093585781376456707871704332965093707627371623110212170663031532440629941965379482909094391191083122789752895761792453251050595744984596573611365571081925942525514364790280393844089395931113889009493576308248448434257850266516518991874809946051252176448140952529559440311056443441915320706922756173567468366675455404821299783317553629301290484960120847119985195020463314725134535180736778440252176397242247843832634434407430432205230437062908393883318929552370132521027142158564247023702148048101419443200066141828157259337422102369640981712653473981272907471248103921125012760882275801852292006043960225225512146010394090557032506650522825152959637266312564051850675409204658463796696934861872449040422853971942789033698384087782273831310187152317625437804456203846698986832071524346860631236253364827545342799369869748598864805386936721591794606255674412704138629336553390994375669020679296044672919177435965720623042681671014391084176082656416210452172419231128366724113440624376260616776361568782162192099043279164993693900509375109718638356800463308585143753028903256795606238831500226181182750640255374126799344553262803547934826976435435134822567137520017813372188076339949934052340922444443381073969819328995251493455947208394857197604519624789372996025249494811864905224073403032303889907741383159429465426643623156919886932369432442424505893277554310695752433782255599123610916561494071288877988707758237655624566780681594215796922365470495516910328447919027758774301211826212193837068853382716911776656020294240142785679322403884237816111223868684740318893960654394552174879433904962808707082478173870595737510114126097335421069283556188459255736055683414024133818067202651406265425197711677514038761752098505295689355483351971044182129940931693769969353580424424593335541684763315512466579385307412272075853547451149810399655755949846689393806743957927582658471912189141677791691143438331163069734509240137487286746687447194081575714381942295242983685468457110671508668717441974756430131278853366932366411839004302066035175711104449108175382021993995193378927903264969107753948671256211484269682667394378124203743922406279553602623183186797935169763735294151055547225820958418336571137469006695205698270925688522307242204771341081253202376998124374405478871013269966745246979875741385195374151480621717922343837793551191949838383451241387581360677969250638497651828969941606655041210661159647919843388081888084698525588726047212352269840149890402747768755661922906284661046124768837791261313602889185831238327235853742920935405304823044906406807801087460158201402126257737983823851658134461239879251310205850266366123645792259613737226932770709341531678165334143614115229916517473676711495927445336162510743080105837824753572557210730058685756199838337642614254169560247919695638152290266056468066650792031439666233422503069388712210769388558663411400167662207918315877481689125270844156897967247237896055817076899774205241900578547990180578829482307783572652921934022698871567594222772605715240092940542469822986952834274692518077459190042550568412793921385909718089600714880400128954323826582582609545856279879348062877135506510758733156286309802902091239423137878382194588973643663376896633020457262716066158963898639658935344596935290660253808798852141366037750691709218820480023701564276777804313607731495552420366612544961654299333112728610123479444884261786898293060797063282182336099384758875262030917315213067279711125416015285153602270608319822234203459697188111596006550111185842588511502282563329565913092778237613412345408788851739215776230110683644725325416446456676494403288397038400654771119800534865632274440988549053617845841349134562198875531569033669301151449259220171775549363618395578969299320032675098341560545708082896341999226651765043653932852499347149309055046815492432909441951857240692764654242976738684944071941574917513891651020313591642203720811766723003146641313866678033917243532172848944960326481229130987083954503772079253669057705964423404942724321088597817197353677975022182178404794585588884449090478914566552116556406205062051783079333043417511652273106758145110837580341636515370484355522440166772564660186819571965381342184100210144769492333254692852243439438984754990776537086135224154544135201704470150920628803374244910021894133460445418299635512187089414132536702823358052619084417904891494447506721653106612508572466684744806826860739469850819256368370924969611016767115979031060077757721605778513302615664376287791280043209695148198008019094276188760187857731224590643250770260508796118784951039753519677088167719768115536125991935635944416848169927535907050118505605958668698103666036342159269769855014630761328440908663459045687123938435917778122147950588148428540431519095651833209681268145295578849335375835490573683274249860710838366958667532057627897934183837049813463100204246454531734352426814583617627217729213966247479518294325062048249335407562189391003005428558820859696040434033724532166728081527375266952410613054839680236575193557987154789059535317042392653790615101880691906011112102620552949136604693289226321660479845600026842963344108582659987664746830030404242616371492221927900283323182616567763412366312353014829676406484117371794292122241451786760334529022288593715613960137602436603285848940411760563535100122250326186230804498082564941093039625135737700077551481990032504084082113463429145299968075477527671868643233766149580140576013046398349285710585596622100882816338037452667014446523604033384237702361747677520903371935080559409575548315091192653045318089204974792528317761938102857751025936646868842858402488649320288240404860623172659418327970081254998876909661219158398760738118414964266086407217576643058846321816144827315324942874855796320464946105097219823786951327846105553461424367218048834791866231969623384998919731742987088446627598001423133147461789871061955298248142488792499540674211554765639002223994071241172187799404735552363422826437496194440786306728825957873325708784607166949624106079120492122973604593280058396540282587334438873535915117943651354320288198658961241379978483892435909405558696084447969288621612361797693406621154638077236885728231610342732162345781402899206267034676067120355986547530442024480313899097041886226736761502710143511821856674547463498453001198240225713582541524301255195389305468291520377086201787658788857815221569806127793766258235596142566354639534820571060474739159502928503339085136666976190930897753057001703453158473016272201448004725683124960011483420225310372302399000181241544372851419089087464914004813157987487375537051609179935254137318369311266325095607645936638298739028496498692196157615483762771840472763690049054397263598384324824445037063565489022505902252296435232884065557704377416713184861830527373626417512426443329242775594856967599544852107922139667850211613960449862172142045270700434504779739029758422944815207778930854546115523919982931617367297150523752457424522078138389804320457801640922388773399811059687854803639626370912735262693926046449435352545956498357393740639543252418759829832008264073575056950868655613003577018799312547526326303387694971213436007877446114862759303957294055097696889761927552999633445056818154130147800457627547117908371490508500567476191623226627809448717891256161476067606204205945981828628812715354050256202490231140768336786084997587417955866559617257973982291861894641474590913490154505075129009340028804313110608468898268158082197201282317427002124312741862627502907432493427874598166753469634896224614909805175583033677429978614748247251284605905680643934215794641590573160720588543373613888730273089471208375193201604719004790293267318981929198658084186222835156902605115785766545269851288998011640276509510230026000680225408444183394552555432672179215648811018402943363341055076876013708286202979843598768912427527096686217277315720983751120945689039058708002427468939807579657219805415314298335292518632780756605652900757108926680567981526760385074630421028283405743799788010148386218495153011208963688366380335125962605490042849733515936622457803065538231304012305748061737576897217246201826675336538674969173697450959498542592529403921244011966672507659198814500698302807795513527904519260252642997527530959127437458174391253383359334493501470072736559782814615928280058172640641861352355006834175594054650555672066373997089956370454930145658298641612969724634492910758573443976754069661870240589691331084926685363160916325289955588042361973289565925223459694262689115358029104343273360856297793862288340335192512206476174831952398476920395880758986996099322128771964398320674242540167738762252510285919171777780947643488978352790693483663737521188652357085443304587075028826205207090879222930583272241067052630031945633912518979959855895348022948250627637782016324317339298073708769868369801475899678595191101817446831107739703468129040180534986508317973166126720522406922202333933544465503401259602785351468844038392575532512969159124054773878782781139199404800606492660538982350293059934845442578449530174715525003020796208258743620173120414255005325855082077200576303018278695270908179135560028716263429227683783102587334857168177722914347549107173969340558101888721317638953542120333374877168877571029768898262257987034440954474945346853226124211120275006756093888045457046131106196918033407190619051769624418535629046710582365850012241638012891981305543373424797607258290282137529607479730020179805663722942844435718539969803466446293616819822134006042811245424041885248398273896750814726493493315471083768634979431674131928007476740343423022678767172729259547035880648738683144481034385234287171852592514985658086720796418501249598895034147577078058108409087522372076713850384695773687669849685284037136124324034726247047724933076819138092889022051415487898599946514963263402580184460106723734785525721473747639206469423542075830365424185912356882696137639823232657602109763652469812292934566000188040018761418559128197558401734917461385150826259152282321585999933442390018355772652006842113701614367739301364702485364913238751390665270505909029214613390696477662577287471448385948983776721944870023122641681961751736075753025663775082550788381115634298829420832074589649129344752582190397306669729328604046994418270857890788452141718493911166545962499993301168219457462943259348755591569443937312660042969135915239361471039709295754704360426165178913934369398547843307799872423809628634202980751064684348006922673480148849989476620480874947020072106758922192893320385788401919435799014227782190907915962366896687766632731469562616874135205080861386106985278050616051005616064199374607132490288987732170033068824149505217610522487778105106817611683576967216710929919701086282070592841797744469034287015943625290267333162675231436956100814456471903010644770329190745258190309171302576874192951544863326131599263765296226289346079573587808843012113385219224259872117977323718764379518897549248021643737160617930196865348104292168002527765082977250614826588727249409145266238273082476373682397472629903663318607763565921601814939771196785949361874859340949717905726807232158696166665138120648546812928342104246704801915247121194706968225440842473703600605649379629216601904505231944955253509047015435789342721747026246219063615699642832171807176296345281432582055990549027886102782244371707754988196038904350766096869979380508093696478902850730944739560017263647505725886210359820543558807550351629521633150468046956457305209131792183047056552473095504460219574912312916708047032082303523890737401963125765699534468635495995953094027104970394290183201151379151186533027944784452366659397691399435059604779989556052434721656010771293238278453540721974328548786623204753371041411986285552566065302134858339055511072225050803737460988919359842487101401240121014274063351389570134081911016457152479196705587721867625203130892036693584053670559358306696986142094125609858752850304037809534951744984438394815523366597310714333964859874686435079317446130708526367096167997598788586841641317803395939689825700962006021587094257616790828925113589532622131553533326329792201293388890060526173675002639694296100250393562841209836413401782418953240236955549299243655547435146237080733350673924320685875308248594361025614136744863618504970930730341855685707907666911416937413921939282216041978451146449376221234690252788933637908808640223037926452589077128312896776655212971176297253804076071233825648345586108161279269459766607710009144431803288658069900329524952053560647684313945966856185550436901304136187698144451478561599227958780955348659597943390513700208267404303491517018416533778531967344426986996748478729401086954972418987711114908556286473960144372189925297681187020052861340858277930847766971194058190474837509360576536461371662597172934510863127594265520898502841883898417923328349723208763119573565538075668750728737728051921451827358692114673822083992542799966099397405273809170102633294730323184664573773919251077680759629808717709949095061243013108569780659978175272446289402379184614105640520655861572634192306906351456797605245284879354886694605642991553888242411098922916926622069540874482567564922636063538259832764063235954693581963879343927959120961312941157181848065553581487932115377016316556687329863935884242688079739691959561932110401238464942709878686697658008971574869240849302036590828623410332651606030633982271762869179903239282325345280761838332068603457753936075436009072826789134611417214116976113714989499643954833001449470390423047178364111874944460023322499562546839713474222213592242292478442860401275542975078176619805325385404393273571765981795944402045793077254359759995388118049415781327959764666976667007909208912153128004223426624878606782084055274322131817214468797054352158440637679815869386379051965419268517528566891447139480767285770310964302086870134861035591207568725187097116014525630999572346379091996187378550024197050090735935142719893569754915659913742672001073860699982437771503567875245387378851903699983135790007019742087497867943991243516426616147576988357238525815289789702473879891202968863634855639296080641646841316527797332633620203561430754448164093480007446131477009075324098987176283194307979777066328596407336440401922789712074401791455089227458159897649932417822334928168459455629899008649294870569213481242668360224162055672122423301575530566368542439384011609455211551062261804403975149716920612173371903409700583496660062418616401720490000828977227945040685734676023237071151550770024733038268115976847475621287987477243850477408107598052465123639642992571537164565137461859391151621115281195672319831676068095191478737171381126142145826572240318475375005243250351589409715970743481024035221483998106575143683655634698274290521183191258823810828300497419056750335622602817096167892213314516346933078164283307041151869208734540245216789107016897098156284023457125178791189630732383381153773373419090638437335889924049545812019822693147797362927295356061274997595048979508259861678621858911903728526226850025444587455189956657472052463463236377916286150557300442724330350747053845741396388991661128387056621864833995521755655599541459523064018754461451889705135058079126094410730167990068173155248853272645225425011007519927871338762360851995162920795535995992576793936988810286692512767586822513582472677348988200146928887723248840650272193912834082489908985712428407025579741690152159865902011396378951429740010866335596751871035171580971131626304690440789700102313058994215101186666025125269278674758717068448132069972335129968804213553976349213495065858513510402351842108438684321573377117454520590773237701011498046110268610024737955652495917552692926101804627894473286813855529565233060600690139076174835079438930215871752568599486798833852839831338403732782953741484572335316649619441478013849648000962311643830931318604599643275975938871611316197078400173976631034893310908117906036180776776786289918781996206736985892881661426024927345546326201008157191724194602705082372005284355044647231325347357845414580865805959298839780186262223099438275295612831281020149814475583683666142054905442463062668401350664626613419228473023029654072502520492664739474708030021572565733460453788864243276890700183811799008403110859469477232244742419861645205730631667552369202363120446576766297756547531947141808623667135571058350997440180958814737400983135694892435967186700129021928024166047744733736249394608105539434879810985862965254597816666859448476836905255894328101700561095384845089129906708287789186519300886936385372807702715460078936367517985046477084388618105491815540074777848598303934915425979469866433046247808464568340655805860800989993908395817142342157885979872461622154177609438976551151076608264479269330856594636736775159419743901961411654292740803761218258882703672417884335405593063690649617378237132382278505064832580386882756121573363010364042919686597777097494808311879147247517126133233963285370389715566731450583547420023385505412949137738280312636093275029076097468759300403062047693431669134497727933854747317704836145131344712141036011174770091886470130578366386369269576597748976191302218658512377938371675714386618680123392974121574026366338638851284607743746865403252039733755374654969834092191623033204858610692861826737004847250098801748849071648293685506708801479490385368273028061608628418571537331952806677940339380163716002040103650555003172086904445700804853041665767086873482405053698494838760324708162814798900540596570750362657502877697811803213512256465128499223254208988333352959463350174855028566595394856990521274774459463861032827272962378429270129647752374110447630635285128533450244982992554812733157272361814015865299215025660253618044042230116303638414970094620279117499846166737438588974437556706387322264557443466573643394448220551765842892102050072007279406304462935140802592507365279579138238516898402970743223420544497644565551871289108863003094355068737021922682454420626187071146453048643922721633041960086626936299725325696809582186469721418131559384485474031056926502405956677700651495419851866280966963265480533911534450657786671998455514852899027050572023276562940895353904882118693315320403710281357748627494165278169386293741386949597590974320609001731068148434062831958619002377508549337288664942847710853858064593834530327669091562026228512682264933307641950935469538335707534288369494545451859987507987493987911507963497809381959235121669890526850547161619757723679292108095025835652024102349394219327881027726234554913698849724098836770469698426883920818419571941328662480973494805515423077081426830478314207196503063185462381932291230929080602964064687915122853533843200508077637681066917891913949151821846858407619301124236870352304305021277127047717980728760576722032348088106159813807016655384332654689048967795979348290838879128686802350594859703871743080982235522190182492852636352007491304186655179883227566620003412279157770388716327456838553606956644857534665455709846811391236956779457419670329491548632575072777115272130478307823515823800207859034590019860642635891085948818737640483098209837584309901484740751129405514417232588866810939554219825185836879044957805560959613393493221883407540095352595954282193640134374540283315809805399314814886657106711268561433498790416216936919853396614421285267834660379833340488710272846396764870025496588331588384581756907630120349071670000813029109557209018350378251424652518747853409025224217453343171438322089491162205790549358639905873068063802711320869252759151246398624248315766401547446138681165031572538615072232625129835492335896885067616033369420590143281071228629795068539009998854492691667851761018223109517870793144674662330939852594805319474081232467585490191556093598430578792733653073603484403473572768923602600996235347398011047327595594666526448989338754336871942627629827101122407426641169886008962805748041423115917361553034931326112823074558530552035771045278195337176299083292828350760646044465684515301316240865658759280092411430918203410513518467374689451608278946460425896598409529496914304831953173054732707823811050158802324065123093045169238354365575209650073167248873716998494886738698005849640673713601669715044205707427355432579199214181787631050086297005909287941998911751170110834874353587007368081421124970552409237129947417305958541768138412038300970319212909017743273422369791504335434372776580595357242220141260611647283554419954246717834814628683902361247449071975235661247737720315152454484575425802149309171463712100437961581324893146716564945936789295121431090227892110111467294981514408886525056413945288799689952267981948184946457377858921108908052636145742546469338308311768360777136484203867464558475463060720825678780682395668264694922653171097500855270382530524656783447597142226232263081072690655653728334414339536887080437552543265085443345793551962156090953379955990661348282080757917330372725794329784298710366850579383328252434863879563063428165483880140885003654392030880775605670174048205906825634884701537045321580187270690082952950011916802449986828617713363039982055648765573882742190679333811115598742307925020098865375321796115487118572951704782743850797760302661919573346317576945676584205904979882910222928224320835176556929821733083577091402115694761503832232147543718465711069502388079203642989142147001295527250063392423599357443472070447635284976468475541037722541448597876108124184479384911158655117505334636225531793952747564287784333694749882730658048746207271394818555119359685859254657188285758859753889182893578857501853204284536013022416909668326794093113314522266744277924379854975210504204854561455780636927700103010525786862445194284887667601479037809231492772058631310618616327786714585322368657444607682758094456343463331069826333436993370021045484543281486597737317005683176343789414877791868368063385699716786887718655779145368857263540814364047972380246342368307498077395109975805952500739503907191536372677328479525903202259085650520710839989513906617203949364006564107792184998493188634168532142328665073925070109507335350495683277753329933550536972053470881138127876046418148882704470381822032934636346825415077167785979350815473936791586281218527921477869262010427771751847054675983582683713440138870391415440858331318836796270360261302257376179069472767795828713032316853421587570961775619542625630712874675681104107322144837028006910670715378522046466313701776201906412744745663719955962853827603153390198995623259915658101000156837527694233631793255663009379765093270042122021264687872613232919359948119066614505139229871101372128916705684194458491482277255941251272823552536903595960756830880395332556208051643228882878273874327347637450138650179089799586325275717447776320988264155696253805944935011149137603434870564315082912072236266309947379431802779485733721673465648825574812067069118546139501919441392905276386076123377922938476295850590780119610761984360352622618674642285318530197305922451783265983680561436105400203399553323723864461987926449741431443257115473474602915825842710083199478133554390766218643501312108840817231391193531342395838899475170068617984932814111158595363604628833941652694661073475187534325575690867519809451331603258514671300851055327746741559681436209669103634756998454001411957355485525684865379973818475064293119032599487009776404128714427219581830023491456484699050043133774484346191834252285224122471763209563243711396939658261040796049903025349680305237924336463915700779546337409175074819825903728989524220488608360055495396133244069219409634560956474323723474560348794953731693353882393094577147984542539621889870951527590044910682834641799291794488142712170334373448300465802683528023642047342841345118919958384467166562388186206744830925847839137969957310092118143872979571039249399003787318613677740303384640243728467785383502612695882260206421834787977625657547702889091723209078806884014665645714547448385832798796764104773002617725906847170964625024145394666656292794570033845428381490565476321739467993065534955022252754271061045569948672057786229357711720767187894993337820170025606480059604966853339029489321271258888967902202904664629035283379319117786513452723169021432916491712844075566944687422348558057832989188335830789766157005520124345206601012590267510494556612664611846117878798202049152647501696473340077382634206419217240608313533872366127087363045008283850415044834000852946068627337079937951614976231176814247033768973327687307351160822536551944386859385153718356779172547989299372405472186693844122351504586289514480354495882383901569671457343294958150356188728692648009810791986128389025540004056873171768844517082757349852970689462049840750997857833608605246069070876601244534544062347253459921802199655302387544563427712010755194395410952178585737363634762561865112661776880666711195438478913180794137873366393569424017114438360893586805476359431843057229102433382826019494111192448819589207696864610640668361105414703425810789252005665026726728486854140759155454245242170257025439021391329630145806342186274966563544741262163297541770436930626853003712786046482864853765416744770406328169371559632373763342142522427613941811869771511429763824868724669678803363064290109098761151609662015427676164602098307226319230582684649108486696413851288578994047720911992596621293793670766471777918807935297514341650317898266537006087190678615132245988555815566891348202655439658120733500885349280005554982522250800373601518714815076033051214406028761848598354068799631502312279770680691787675132289341360896702364654989443507213563166303291132937082716008981249106017783836215302895649275789482998225558790716175782230389275016688202296604290146156974366099881730968891643947073458213114021385329727394891020724609244740903160486309102611024312498993894254962437485425895685449830210350335003836950020412739217252901691281364553779474356037916530353797382528971537621995061253605572725246824959887278088181054271466488395393657037657057195917628422751606198661338085070252168908080193658532781637548998230923052789240387865629086005453690748191993921875459465681470038980687657035764180669622330566546223053473796596712327829837047521730567700411356073754457936670604917879871373827433262403878625226518846687436364711087145465093869965414637646867875204068554004916921351205245033422089059968387674756975144650300857600867390506095169502978997429180613131234692563932039180192342020145666339040851489971501167887106830120975952690655593834315245860005074779464864644888403394566481929330939527004172072116782454560413253419138296465564836400205180707759453624392088778320746739679957890849632999750852036868988880746490532704168417004007675877961297341056667001020699475976658017045127177264540609128773430074839350529779324532646486885877765678711220592763060892222331507563610647403879397270665799471821543679663750071179754321347514700100159763877196718358465555998019864311803659097867591987187769865549525559410878542457213832519852244340624260260723839091924697484681247912569404298873866240637339463247846098782758817714949866852935850215808655405555468926720750780161271898106496873711575411136243259451311323782067939816452169848124671119368593988293839785922781182340263945492944436065073718992317190805259955058496670998957037714117619435890254935348432142506587321471292365999818397386395880885515211412005346937908407913717056293844662036991212657538799885431205304138150008241723425809465311863454457554420224794960686110451250445548840320421349552995845665493651023409900743141889635915815747562336824229467631349145143818088962102588316304638663868678555448444561416163534648863345628238800454338410638490188593109722896691358217756243332214754182970715514575971737709091839492087717999065674934607748310207857626261431830514658578454187986826448587252362437553472540192254884686243588962572037890986251850891882194078604336249172884180956198516634600493774542422394179770683980817617451278909314582992327049930671622745687241691608236715649350676207576923668174277649495455820296600329170014794051062900281109726243412596724821021378146650703119706844922635675205307384019931749458651955087928340679812061129526624524670841829744248682219950970552108930586953307494968911099847398973772220748268431980990747158629530431393035701558572361471341566010266054896661721878326838707046647861170064875683541128427633967485957119671587833589735724407707541338280788818723901896006270852463342173750333496866785649367245364435298549524306269682379636912367436341961333491995207449757716177149768566878532322519181507578125981467238227494596783565587554090531428974756225025022374577882953898295877799806490885444183640410165512819327654866801880938107010523682719977573747999767388270125084683256258593562531007591761128344121542697935341009852887789076624320683154585322004302428826457417071166869688718893316677329405224779674616806281715318143307675334350317396399954830293233030958498611181766529530537945096312942269301354426517291357013221067670822441836270206116647638107188969235486855760846725973065738728675004581678830144912078301294543740582458213766510154245234340693572716210395875811998000113812727649214278372659548742672315592651806134750411273753262751961046910789226681438957645349141256853015680937885314716654366526443773626791435397695932800897330439671276755784725081407248369323369949578084627722338640712345757822318866622676236879903691801848284995387574201368446179610117894513052757193043690619226122653929552040751940129182696134135352201928675109663021012534053966916880458832691978366955683268135228494093104882855923022670523559901087221717781767116217330319898661973295451956347478465415457047718732760065928496765422467607502106942007881706622042362068026696973865561098599923405023342844760941696140493773970490429832577654151597524932585301214676238494145365510960256377156908431525816160988991410465565409862280007653481246766767600802237446298910887647019539408267064455661246246669844160742637676066218564529294482703135574276235705899146375862727805689756649560872527357802955295096393484862826743339740294424253443539815628379909378252574846124915519076361033708679331307634213149190064897468053241402432074066200126471781635418616608852571251649315673624578895128508869386247946079652267212085928561006071783931246728047617613790821837385861541367833229211422853736794161045956085560960254531505854175917530263975525280793444767998941568643224728781989641132031468359654617253443627731478623840864604740334524850318953416135545722733210186247271652497361555169325418009572134467209206882035523039207247167595251127731663747231255510531583666987999765002546358093110502557787751169024663739960342556615656005048778960495738485389042848504546103631167478065033560570978624648659547768053924010977361842268793889967977708033285687668777374325956638728335526514686813292921131939339538508125314418408223472427610185260787522137070998870603462092688388370301542988304239771085046911187778341767184981425009624882958468770882466022540546289410061052701270438701355678802825168725038421278135656873574340325444441574620622237011800439043131916956340819976369477381073343958603960865693512086643579218419819467122559096062928708515844971896801212893333677616612872087985241414636746954559933160533652234751719550018707022533653982378568299009528313364557761165814913744269676688192558184099903139487138988564613244587644400818644633249061087540438802442648823174538547937547739081848111951495578143300155599551360474320298741372006062300309811410353012028717565501804005707229336609877466719476627861543434789146367202223044267126106362022229208754144095203577973517348829496160759655372972955596725697983830582762733353799545323937950217364452547412624019968838004593080680582389969411838421533197855141897303201714455969124578966478602499008171634056168188568833865980984516160274682816511847530551084529227618741286451031785928121915754106291356931593285572976337851162287446931101536415154235173868840520942668645802445846948771918896065954033745551321466348578108565290139188433016645529576889075785981682172629408387208178724944622088531934870139693480932219068122973575758254683846260701956799330336941659946804271515581845797976031212992692154409590318823007318250543154413507909146987289540964510170933807609183488949207118504560165481765139448065857435797603432529573315555595717560948548395582003291066439976878665241136724448161130557475597979595853100427703054057331461818086848718779347145437099741362319620306807584355907074528951769198239199684799202369274337793423624285729371233160268694540348245910728191244622506115420092064534158808206014268439752230420595712094337640120893595284513945110667520889125059916512806620394792317381038347214542799305370371355546308941429323922897295654787555775230220958594940948035536049812590322457214907075296491820572293135200802599023056827469998061681116057323766786571050820736586418453739303053500120307508929939658018565599197574348193301946629881185951726725446495287983599171653318396020731474632333618056359799439950943138184401434216697843427456959797473334883077362758424678246626722679189010122729343296271150120784490564779897100018738873509223544703069239754202558313915617006672589083530947526180632811559617338212576829472977638918243664810177919195714304909581866094292189019997718796948468991735503571308738188673138737908077377470050859952689611466059287731142724608709052767937703572402200918440750553536743577212513285315212709245000135389165088720717514911072077242422152096753858251751501557536954680677984199835209814505854063110612785363093062292371499828255898118534998861672446880551875198315436747635769379163960136076769218729661922343574201021461317522201525462311654214366448947418847601654069716147345989964693672823457498060432281331406708653606883770176607336134436381437934013042159141219185235427294414661946666492292990169462829936556365803257872903036482665035826094390505076124176237352749288823358475105343314572049543462875441470157039243719702444325152930042960320596196386595834397272993298737102250969316640459487447230400223751061717460401243104071917118541221157140361301971286833689814677388913388091424987254241545056752417588578216743940405696203309570435502077822619270858797951942496909755543158541676151476034042062668032344817326959480419493930822177640085923668533862994835089425731050256368079973669552111514726746976443757893809256152136250686622433049000000987007737460717094019361318323849823062678072764360608769914728204604007271121601348044667101021949049500108708965144670401852536255572547975058630668754166191384024707117332149205252008343552891478875876650904150448516857612358001707838387454330445082311626654852323672078411034744230143770722754735607966129925860068826444340503723617659049249792679205615066423014476037955286186079072063534303038250466879540186496634061453310710289880460667499505247555190041319405880244309226342852504993625544998080032373664228568913658304360754959049130548823065934406227955077363644689408240432382644483203138229010852759621132318455597604340252743958662781210541941661406368482240794872225018460547841838457757109622071500722368131075577858338628876224549642462211627328341669596732352582080636421905005466086659627407676243525186884971048642445931863703164845858117057901853267329050030392971322879737035588391527043856689045373469028677228765273609895233074919456632454363113260395114498417274283625951187205572105180307819341631644856615460367647406885787997017328691386178883344426410320388791466494111188064116270555025362361317934092361069884529456079257173213406274856376917654945790348295315801803689314957346934651855073723595673185635659803104240148082444678894263996420228746722251487427884701987015239367330278417321012703503304683143063077312517030446194065274038056620648528501414072530375238512514040739701823691320829948500136663567667491740643681648659491686807155503135149678568155566310195353956925150619949194648862613597418220819569894836559728196909779798686654988756927754770835802823017713921316247367922118014666183000685600797950404209130646312232205919973417085579717958823306090878028845021611962654623017835113290267202931136321417547192513224992109974911464830003067421551315652909239060177085704939825937654782662908750048002425435305048438092369428504804195277811003300557367028192762739643831058963559004752154776775911605548078985424987364340134029112709419379816229419099302698153117488279711558221613321995472600441956650430297387709194613844129918085398458365697841185584045026525657388373590886953703587327773048964391879922822097701688950649959820342152821934719747871913828696452792711194077159144266325848872752976215049425525501114967755035832376981294783564725249478955754217549820733721031595577594959062444686227874469648651605524395277749841579656619001359147252724755092732859751728144812763605913314226080880334931632909241102878538338970782282954276248028520525642648763546476283194623088999886073836320455330789833185445760870847097588180073886631538886413551754327934151378512480825455051348685631922153979627591662622860696466280737365816493990124588136960833401833875758464037796126482105338627518770090100618782579481639420296664466455889335366228514335997365346756580924508328425520301658334566884930740954773224689030716173985199767377404887730972361992970866104158016659103042913543598385940247729644737053947822818616995799778913692556706805051563181673725371382580725902703931404469096169702010535070072466330840083634334498527743095998710477643700401874069653344582426817803719934067467507866265188986877038754249801055519616819399516533604635816547455636619862444034548740195209832568594541518972535246899952516537774896796473745810094445094658811359352611261670856963263366245859695683812091022118473609384841381256162045632814615878478693941282053381216876206746843876850079185739932837587018312271081294252015871784799399482095023756920608953375261568585699454266402721303142937805381395642902752118661831518639383749419745393142495594040339757153860674020370343794472275955564827932497281486332724286734085779024140416582124325900900997030189364731058198933981239875039987602144023878546954876520938288535360939189808755366211578781235768145941473182465917083977177248391338274865309781841738953884916975366285676794011432539667655322138475646161108582382043512469318230040396835733300683896097962988971118072147659039693977324477177414818433309841262600383195029740974785996708058168126399495800043697136060183115109364699162276172912921282244291252733147851957832804793411675536786471496766266594632611372182688727248522303293199615145151010156941193017519978032195116265140185086539858853504128397460995215390251700073853038836399026204972736951133143610971093714421507778544022006562572890025539923204539055830584427527545093390504338397435589088660692769226568517614118153470684766110251408145239497223659264753120646378512281457135645029350143304326826331907658008790183993399536461620336174865414178617658231811644689430637879939185143353406620683564257408050558209245475373563917415364266990818912806699336473936198884405845037662389167192056674455828747209226302169930771174885428043899069146279584254398830920392576397918189245604239313685295193381827470539023091910894895234575626702297194941950599951616389942523825097704337815055757497071464727116776245712568399125979297672932517388811090180229246916342628401013708758597447663776457190060820289477699523741384024157690447512400714429616098158370757193992640150778568136624922660121084227528314881716148707526132786165510991687593646763870795693951090508565703127020239802531318264218465413022914073680475501699694113109904181327115857278885375365916651881370020047122014280290495417877388496624639697930234914010768910188515176653439877126274501855825256823851386121139085955458827239689353657262030438463585289059698488130198023090804510797219555853518537870517071782846692700969838457794065872670484011849538776959314883689143907581920057115998400689840191682219645962607556076630945277235727589992371333601638428238056904233729657071726298167541537231277966218405530861412490075010756789356141891443437070474407690953778592002897691568549111726703591996374552368611839283334495160444402834802997650051760810873200079232433122424826115076770188218862033540169333996721622513321141937285894454882585302094342139223747879258427618739141462742490861714857820132326473932781452906889800524520102428546603072739057062929978550410437432417371413313996342763459651184296979850734349020362092950028763987033988559649530798125868734091487987760619283259004663774999262980058133097439512096298452537309370297816222072046799770984633045780833742742102366665682291722206367043774287528567350541960272883598216908284413366802274129451613942459535922900939960301646053417372423275019989535267681281608310301286947473246010885326231461964247804503871215887110957365598326069320835273636233201700817894161090340533032840243609919905185159009553228383079599738662536519392677546786057101547947766396358446916998851994975003322736381386210818942834598051275893980703944304037016572705482083180522195539227680450199059008506174816062546911014778479788183243409971982058385546205292426543601228056527709618944961189075404784719786895250601605689368658888239443356445905382863982930497129368627499778851667653699572395650540813229475767525542190631316643551659523665736935678135674575554684622965271113778338236334023009319925326789739091938188917512543424823135051543254324268432632343467821529469926151061202033094204034775737769332635521955278464624805841278664165892182994379170007361434653213296177369313589361883579905415522650826478687116176134779923340363844140574903984000239568971651317263741065746032618053476303068493593899104269998616707732910869874873220384956226699678556723087601803646397397415905326784480357726662722152512857716318909027099262899450998221792750486586683786015032508311662640953089033515413619959903290890476651984700684809412286189026029850442104262445743918310706553831083225185555640548669733307840141003050190723780563613293005789415853453222243382763197005942322849077799625829632292255626430231436499360119913146487486951407137982914986031730104138885521853715449522641085733489190978213998238436073821273289065312943111603391863343572746957341923340695184391333643800554634049311063727045105644597176398046437130542416908245386729130549069026348655343820319097124828732601580752079016515871762164034905156225078887392784920135181765958894029691316787010555404443049149526427317902878583596445161382736948157722703283953329638842863871466600394643734752574241758568396042982666587243901822474269530685533593253401428973190627243806862533421543841327110500879024194942335174535036000363570871739766589949334298843912552400871413253701295805491378318471993855268693196467785700723504783893922884834400397592267237269946459478266425682471867643492279991918543536594819680952192048886948169789579850931173819797871442509626125066566584136726172741087937328849521480281694805058649946078859112049891156423373235465067659348026886928993342252415202526477030510449638552386710894302175136537137115360140714761955101299754242970454535826684747278804991037972646881304864432542481238394899748207285010417534030477989626070491717041553408249983260304927872803966750969479863947751034985525261492821848640281162384454825074165613163601072571378759221533236771218722976886537560425095202673225642345952694959378476905030039827267513875061691213526520423903842170166622063148006465337313192840063605299605977996043201069763481218984771786608298412930572091039928638836145740199476103373617823623455551296839229804239773292660951813976113965197579360679724029504606522566910029178458973387927146986397657750369308332243354600936855396512815685481891810898619553246793681581659429051811107122317953482796532271596844063986322945066470488197441386326842730099141855650997014292351437088529090296576137792044503887666033950308210217630522936877337200997975055707573236037443425395568117316597596897439430957187857933632241502862406237378184917970161742076580534168237531432777433728680001257115887363101767843315095038652023109230748777853378647200136581031508453766807127832116301711228364654943642066427782062008168006951481949843796660013501372037701524011393333523343609084262636013665655823150099237749015663298307067270547000934561426565573186558497331637578958890360202803443780113442195486233950683883943631826606864132014235622820073851902096752109520174546440261530085283571234390108008131738378091566577987973630826031960134121890572072642112585121068654875848065996922987457691312257133686017219241437775940843190106429547154723154045819885090574734494752144596037554120882870482233243302522339160378919092049352001370679159481122358191442762836609510765773623945257391350903643955893725614255501478019472887331080976019205463681846242986669725493664574889478928031374051064972752247190496163322911701797297008400279195400022195625970114984374096243561230286676626039499996430857871187694801824432731294767213138624436606337336140367857869147647205291597549394173096755873301648100623432044881957036932566447976887342922179200456036744417522385962529596617748447157744993584776273336911126317949255563436262470758717852662420559792326271605253391788845904659538239282163448045112556731794321562817449628862305809673504306925919637276963095686412970021218559167482085607319386324899919050676883782392733079114559526791950272890126380795377575857866557213510848454863266424982703448498403536711446442995620031834150575085210411643693245730906606600412428332447970714678387607371564880923158816904089302474049161036081770317653636865876748143774198760082319940862870271553528416115088994891949095693402631454146936732213317427164981542853888127324219370211206466629368324684259182672371706316615582358688005766414064682646631619596638511941241887613385828366426410789178924802072970075021405029705326169190141713714746652118481085711904546633560246389895226735660607468622991962408403093519562032417887720944699127939356608280152243280353393783360149823540049082227853500682460383881279676329605781017750399414473440454919564671558489974559162946022696650755025361040724519658821049341988776153271801208047618077706675628879240983502152017423005798955029463263496203421879463817660366244703139797611497992965347196744898481005648149825571902484808446500128944250974355565773469234977260450842175118629399897762984661866103262815297954537999799490096515380359723037672333184813019984989317741301902757877454264622582186793664220120681397941141800045612878708104578311987670177447882019276676803954955271838429814850398256812448584960441826964196892500556840345207929559558303719085312072366564127451165939506876223805803350800954021554310093202895531502781049879230593369324605293598824069367784254817565370151950280476291388607113531055183047562911183688292936128361784361588253561909742403103194423445981157786810616453528099316172637058984136108329313080095306552851646131358194704893861204024012898600873529926624052198741098998710265113140630289261062620433268640115598962069327674361132304879270912360638065827021019104713960594655905034742220373671348405112445114362813125351935458344821507955652075554318836099736297959091231856130270681786042240580333274829632231711262920712928567330334086278128280752906461817040734057981364020102837096029934566990042464522545916893969596133697352379864871258469722751154388054727121506807397005815863282476566163120857861527264093202634096914114092060193387159286041751770660127914851045574396906595602918477673516614292811198187434546577216709092815740897922093613021476048860229206574210590616410578430971100501599776761778439673728190396932077201337869535724524642776963716800916114701881447857358956889676661360031566809965562377883869713800306095762641275171231897761226040421786081705866325042762513352260827802056087262526150642013402522372740033327830638003493281316896532850269009663120859735963185379964473063171231037156182551224373965641711405130449304490370019851837944490809255185496486654683113453949533977103255608697622543497848508410021415228456847879294785670585994984204570746530978310933431514470158295133358875799617784616452199609924425641499369853585929032191398891765075322976706389955478110771946240089900600568579532354059619652442555897254803881077249251799836728325575123591344989069511175629456723133467033160709414564534576283757851796986256829663916326925761999703655239460006367403713754034075106778347939525205549298241055872203104998253688698651277418019924755291381318697314746946851440319205486308186497065216683117191748664954185189684306292560208811590316835028796798594866932531118769912059965643612731476051228368935280756754540134990419437976006017769744826075986113392010088540173896699845717986859861237846077860288418307239373637148157671128938131755310566669226329578463219626212394747912120778375407313375500589463685150259474201986372218166280692804596311932168470321628871688650993869570722958685963328424280080029422120691674748615389872430332742020660182310672453116875131637796594035801408609899953241409364761968487626561735644477676095667163221808598445655687885195868052009431113997888438664519350050693650207231182639394141569970773678830083439520650784033937817820140980184850628496196165499497168193372591341616638267311795837309799043586778909680996142336099399352741178396650919050883702277746021154445032730723351600363697680177768747587516671243084383510881667664231636777203165735009647100071481943928882272144305644725833376900564466759826974457827506873500444731293007945111461686262203989094907395755110979442712638518315556336188917761917720249509160386241070587490825642155692124987464089785319435825962482090620368215327416436312591407670717203543968452196324650609415145418047549116375977230305102583157548875157709400497551694937084926292877000899724709068328665988351705263417121008769181691929386187202506284246399142437293283697116519933025641395196812116436949690648860633231394628726184439123086958905347822531044655254950080200246742451621254144349651921596228677317673512497462594600883091789603710318166462328402107102128747285875828631198226660110941337969535807258282294465095489438012951251855214728534368248143986899843811536336120376034866984317962859434224625827407533220870127597982084833984222195623362758617966970353631967435460681529510318325040536868002562265917643584898333395203343537021362542583271973349919865485738061824819122572030213714127192598532531022992575959019844113470367418039096707987135317639655130631816197657630672985432323955703823822252154546706302328619656499445045218105415196941571555853566944656235100349814210041487944883945543171579617797107411530740467800393359006060626175438932433398406394324387990009920981163562471148077007445509267110458187794397512088378451142898473561056258108035425557267919188473804506726287981897909216607792349210086427970856425619073642292635373119565362959498471659889382411184674809713515184806370122457155370048409731741905987519933505451267837647982274311897204560720562070595670769587721561081013714787700097249287898478988631206927975566756274108569853631586173862670907155347452907486168766304128645811673175211469259162641769866497175106790844541210512695709895864610384366034802564951913296582791766446299122588883711640918000928494901492986713700795056423474495264685123321448504922434726673998270617763180446690139042187094854973762540888951099707383278899901516645655214182735343681491934718338466096933003104775977911872929448989233286458272611558384601567822784951320425768338105334379060691760620749483595790307322016412660856618010024970411336394082390283116003741244292935796626169941887703867380203677412590485854388595565544850829263189998136329199593661106636995380049170362608554929460473052062093410276765399659287084311941433542451094712496625742302639815038225036877806282777736859019026285411293317564787836418601586733886933868193085007720102985438549075060313938295620582400464988260279951549682780036788500679162850865360980940729598110105894206572826630699674871093506439292483031561648318262955070100738938064466924809153786563622641894643201227998745266916379221554028801822612547378992870815426374411371900470957538927330942056791304728510466648473498462907552482603206716945665476410204274370865073588233846029775706226345523956828827753133709602086880656375733482065799296579431099981174198079701686451678767176195784082180528752093262938083878497619673484576358117541825608722794107619664548985539547681522420987607439716572421973663846763633177495466127686847050711410019398337279841862289325826303056569116249780535461107349029822331600690802757064721363197872841249215259742940128376549553362841292675366981452695535698957100182898043041759648683673424457516731025398163577295353497238430764849559249872503691161345885289895867044412421188047376881631455900136654003331861917987057404902129521623798973566154908897234494508959497780471896248660151760431337653507076143199063897472749511776187768731582923593938018435777807315901848971348086090802413130363518812902521332118159363778119428115878275627354294916118432903391407807414885010169882878068579081527573454432607697337609330626500580042015175151790321422408693627652353636197941141419229109922008854590984532151433472360548481324868996464230990496927870450294169713991474968564048539935955700042495008945050079709016683457408336626024855194812240902079099405067974890791991965639709822090273786209317872761934208978043501252967622956291799154979470903712393918271136988269829337244304535666074741368132867250284655327442652390234470008323343494867644534778379819254258361340189977187959209662265529543982951052953193325882510802020038632385961249130144398281564438726451310072695865685869157055132549393389944885196815889952663829021625781463737067768071472256443712800983521087272048356770725596067679225131299417237818706612591381383296831179153690050164308883283607474027190818354047570432091038060443127696834311198773274957957053869799537921618209314220982102051118722669178418349276549540655013199401629015491811030163261924548640563451152609727635646487826746956267713177721331374173875555200424331215916887433150274011978984082090845223855534669911294492094097301079746816775308751801368748315163114910114241022810873450324130322701586622116110851681896653102830039217192866971111911617069499121097903787818694387612510628188697908329749508010181759152768827841065734826626429755647285977230961514171097980175084253405232631098343483060194642223234395625531203221147068200954690479562443139633457083388546523057564838848869165994378316202760831004701954607358009452599113488728632951952293171955713826496092072567157515128901446918161812644825406214877241742986684960081599551277725872551239858871906257936390596127073365801881763492892469266130625440915605408054057259135242706822311696450985135148182609572769570794780248590770083079043528137455206162005847139585150658662256587171851411829244208404249903610720084389388578563221644608309797031541253411738815849886260929173969212060364365251083326693394968178265577235014450116309070341813042999837164952632679716456324985218483597609460349950951121591658070526991197398984219367478516862457543300492777841348163030701905303376008340283412764448029398473704518526131555412930570967695890294023525286849227420124493588418181037725240969451267282816042214359496936903518203064562888448010280336165033425168933274063666146789220401604102624495925912922717877000705714824242247772199771521236808000017109256683787678965623898439428833213259331327234953543367399122497751065745133190053660702605763985768364095501771948549978234859334016438142782938559499947726273186725943473938737709688764166466943029419104996546125935073847811170232945042842379806296308394598985097254341288091884687127956060973565787625850156914012168224738060123514018286152564256955703209311977493556038201016276116992550054944044958472453818158730609985221279307817590539090493358720388702640698265745726258055343706373882672630513267789304766784193963511503738826638685984330702588764394584614265025318488728120486968143983465110863419617814255663995799418776994804977222520296884643213884871875349747675388224687103695380500858617687134815922819275647217481629151658553935001831680088525915895880349308637848560748838301171879171999191428501154183979261774349730684882858127848752927486086590463328443198149087810082370274294950053339451932352488429913079028176561072096842814423385396503187512976480929795258939126658330469386722142025721802674081079637177777264724940803622719041774925874427066336964825111860550114074727724507443208754224799789866930821255727802726631389390184445995613349602822385874170340953740915061101780052786796728408220948878975428136361035533774405852910130360761650862051246005834291955307453745229215759591703145022241030574059982941475889720885346220867733584319394264845779005129773889237313059941455480562230328598830800890642700414116549197749285779658639881502964650670591856922000986308188534696771254790661796092988697040861512619404500865051455037217521701497656471127784392879678757061363050299095486146131232479360975220936643782829513177816180670641980330259671641508540619295020524586088600368649817616397992049681847089983138430206672942153347831693879544604665362429492469868729368871521232370762165600904263675020985388602748765242717987595766245615691820920312146911697614518670340637796373670164135245494061949497798106127033648055819956395666291579315170703260450864010180119027489778101300444356160231443637739077780753275458384843635136935452698740607460159140869630993151879563610380632242588520246712065694508710299037662978530696777287447684347673005007852984571583137523170702324815442206014396947346857848555938415669068540241355253754298624184662158642839102777268500407078449531818177472300317193034457587765056857233331557422039943687212559089005306622728890095632325995117353550799293554999940350479649972909244691885665759024069257178225305972270665531449785694289943361537231501753573827864558586483133539691668217434304994804378694134770531596077901177643636767156954627289609997595756144299129202972140283447582131823512681681791782860962922160884021832873552235181687719385537575729428307005786415524828648956626799748046501455511357680680406723983877275602266464880393242310210776053027081636002550147276701313583886643852579054333310978701133114003124420158798151228356793950958751130574797713643691974263891704592450982496408629675581387301493773208707531150873386923861683336411521856939136935459905874250459470755786861118784273438944901645436743307213598211254572535531612455237666009203392250514991728230889916766403285134248171293586177989876935191499646240686492643163295679177782382623478327089760975612435773768528804671042032869972795026217923273608509583480174773924332566942137349689781477609054536149006244584496021462116647306989900115252962742816366180339002158903520372261761110841411905708820820979919550739651002748359867721333592325755938164764324588905222962416130180524858138438040490687332146608778904319371897233857509757663197141728286834822516534892083319857808127307104141282995002794087413919698108263967991874273773236123130243601627178116186577677753603948534407712952964635606201638453682101245493778763875279114457139789121138493880333746459930533116382132439050079854825224343683626794545275214199869925360914918942602973414818837225500873043303716187911537782574215073956516582803671015042968656165539113954922646519144162604956202990287805471866796079458491301197739791887128088822185312044338644320651960603495412469695572692824591652089920173501664953406282538705564604686649457401512936880222149367509143037161997645506791785918216448377068624157309846781626048860579993774533349434051213533982054078176800435767933389642150931995727748110672254370674331168657193727924315767605079872006197589689012591519086821510843330369921649128772055717424790396367830810339073554715127294530235690316758553978799112280080710510922145011986983564485213455513604076615818149370156962613249411026877845933635545435450965771403036296018804030555165121458895624120779967922028251679654451913259277525773525080911821609246768767562315452194878751059948236308029213149713161922447612176680144119615967480813699987095908527909206943695680439909551593692824913099503587790764770687065529434241859244701380852056952906072938271751158006297900642945297704783561359141666348464411640669963101027686360111368717624965975159712776899249906622591584184422333947558553488500957606101717241277414424588125031505773590153996237728977439431738250930509828544460444350273758571105397261730157323872600711515529698484697541924754358798509150169599257618237748541677425568226800369187882538677686554734747814896701305878111441207288852092963673293239286071780202276612352818057037007816160204656436117698905229192317628964289282225454263125056351487201213329321184503236664143766329197389627291632301535376688501314340550899624534821652708029601819153667864830348103352875535861687723269836955536404707373191273595031736083210633962992335957036691563936126617840779857345618190125535052778126160898309617665161910297948621671800790065144805264412951257405141305358119303082480267495208211923415416511033057727620296220970855781723396901168712039226676768380677853286635522283703518221871784490717145175426278723080520366889000402315073047565169388415798776492068441350186838003230238382049062265572275906159077239818142999597175830857597736441386168989024933919621053067900895530505661188178887970609033910481164564945982305820517154039610217252819320165185453527113385142427814206344483369220189425292601164226965271096502957753148957427078196392599746921434005776378116047224589540212011591371383015307405172716178975401577284272348654652865385058308695571071153349147956255266809623609139722888573998227318381520933688991134159250058005622341029611851715538814940236513672884188218932881085588235238693793532936931657283124815307420500407388001262280550363393155602217540931182588024013122575968137175124461039468975375595170501431238995970013352184563868750110343988647663147593200189517388731448672621464231129455904959434872690521923803891215706322578670000175616829405992044744515320969075309535644842902612659635415505644788375856599394782440986332962583790640182413955397176382723608441897335933043279632107106228210468541491608569799136383577682102516372098016388789507535007887850402058951079031422395898744175934196190691646256695175600794246681584342632618649041572171575727613957195337913199554850905352800743290369506700304347765257863778402130800313328952020684767449608294116719844631558917959727174425192164363583195804831771636793269145259058966639145834117169655025593030934130326031799399461825884715558182003949060355280263239658186169504078651262201174682424793921789040900820103902532531938684961287382240852215162481276431187557950224079551227516998232470973126703574900869298767731283895195059640515187328596939591500730526948424185810327452925181904148021465646902470000464722754574724868646936406303192210089552008783584034359852551882269408542830561008659416648355277687688001276971952977245276750502064909097631680368063447653925608870036854712803398128500189258900268166915301408076154938384099193829847678099952607168992050308411056638253823796001507229957093434699797016244578912280671266089026873583993368635309584782775382856022434675334350027693686966064733163107516264256993553094916027319829491095321758952518575787653744049098798586269884773612199246808738195158941337498730335864690778360046728641561488513167706154895412898792582909564625826580308286576194447198901909542374682446657722440749622493010363561067032519699648839162081273722656753571093133868900490624281638096664540042342131850829907518331242303002540995507421997122026106089589441160907548657668301022726288485849555765090623580167391000767332331915003307511900310156908933143184001397191425329243397373426477568446562525104910709039790907115416054962406805185720192223000754181157161227725219855859840980580428897792946851903889687442358910512830370675087615763894037309859752805855664372188203354938230393999125530095583388035993471112507489163870277963212189176808637058728994568062512152989774556056978810769184633796745359386113712658463470464094515727205835942187714343431676869658810498474557515539653031338776479418132553387463063858663373481587997572633271226870984983590821101508068621554240380662441782517556905948961256456748566648313054813634140345715107821409875777312625945291395008960689224067954795945921234574218552038105126804501405054372275471355078375415720298323762877196570258188163046121736994073969924833363006106193395579556301752772784640468093822729975743412543524134766107151176226222201659918705719547935016255404022368538312534435158566422992610691387486793215303858437937745512376376126761346675114623657812654857354932576884017402664176702163260308051562539445958049685373091267432692883599638857583094056403173092919714275509592359268601336586534158430484987479726846169593441713502221564596929865643274406372820056869077649150334340104279112794238928647918943660772707474476066232188488370949825931420746203626339656599630064687513974751038169123041972612090085506446125900775341330223013936874582367712859745635852611793350434496693127845164267995932303253601905040650742525541070201405134727055276646823108937110655831490845097483941313546353130974456038155702268269520303855932321345476632845857583811458875514293692964713841845453824107652325550977129882792986699827619580209174944093947831185674614232496604336510681949201299618904609160658204581532975035880867165464758946881572484604327778302422749221062233962072703773571386657762215152492632072194774118370181761424977583927177862175994241269657442805523217138292163927550156991477639358413802656770896619946409269651225967246344037712972246450687429543822440532338701393254829902071955271628682184364736886529226300233008795756311042630163208331898791863788644512129325302568467861411826810650325718031166079291266097217982940881028640317721198056168617521530346141872071602099118589259462889319618296565198614260260916631799708948160720994624296874675779535373978573688825514891382654754512343432196932856410548653874318965630150332008299923494269917146739585107264812724487086029325848602628164719021900984187111329336076163123046310954375483033842581805356814129215788094293979305243376743633749435947534526482954298104062335750165514579003217313199671719608890006510649008075334754491580651692618468437528485339159270409186556793178207920624687367175630214052927211488179600163237695935773712075523685140148153189934227808278235460332559040752586855769613109390244331275590677660472832299103903635734233611372145989799741691794569185045881800074729410118142291945070434528335392560827423312987112412928738127577786516572823181345986430506998757609135727615534743852008383587918834757128775466220399828669229393667663490142042324968263031639276629140419388052479593304522001837542432101450198456879532170244975548756140684601494236798115535876017947215784662781353089152532970573431315026502122081751088022364741185302250720551595555610246633465372686161016733224115708260886096334816484000172657630453140731890227361963028037926143108680370957201171972246339687846441347532462011470650339003918077672395699979701219173393761926101631840197298672808779674378536920860392001308839737580341090025020727705482712065550208771797867513046233648117741013536855389515371028661261214755600038520426105932248734910234463505441600770755547656427315127813250606264182276050291700623009341566722732564857904919406640774758756455430079190871190166276145408541332140112463060110710551451271008639925154945737320154044266648239427111116628307863269435734047309842568147221915882639103906467040152830268642381683752958331549195735206125520539236472482530514517659429384914986966162211079044776118624987809905727126852555872986039586479244000961515125515097360662463800382774660377027634925633010527053325353637394604841835549482563939688175466879815696374030274204174608619260703668158753585184361090655107555824870109838034114173853290338530711232601222383078706620503779663716358688711884106054708844073240279201468672445307649346587163128858459735260255448087006732278388381430352112366017360444610483470351007125581868070339756000843864646588788755242225943563046886869221168864076450766365984670826268971620175980483311837483599337786852309648044504898031138952995362899383977168764994995028499115643690959243720744509647650837151371090476209958442558533978283373670574088043300865334038960914349710199059035475985965525167250555072994028204032334787018367607842091516987967161550993122682060971812785667861563972293524980894980200821006676481286330668583159207503802875984096065027002731902332269567922270409542285677892527024310645965833927331997265221980436585180555940335050771603945039613905196402452116925113055953263068619308400999326588517717649843111226289827935508328583437187138663113809592038810441791996379926879492823636807703519307991039274795861953672850536890612647136649456338579298816056987774779761153576992740982130748281478999140151611067899304316759914403209474462110740805346588621005502937745511387936810095954385067653079041318696537771316253543426498638855277739585834066792043163072396497633192513883065490690535721822952577129549379509154759911648297771455901491683263101057117030175645061886693637399007931800131932231516463878850702349346703342999224224115054319884947720316462626196414469710021497462961051529165538644071074564942797534368179450437134723668036090519482112399592058791621281369991943567592250999457598716469086086423641276506739094105112293785342873642636097115163561907228480202264514793550375661006200041982007165402961606671258648784572805158564928330921944940803804191030666628300421512800992804318005496604737005782266091838706788773652348955834166983752570571999626859195763529433808580226131254075447666288497464963282370052182559562310463804517133649313486932760388186230357957018336606101290791452347831349751265864511932529305271068543251006256936916858250612663697397460665951326603396858647495154302005341103532479447257140474528980621980740892769493293261304498053701169704725384672866306709465800096695149400802738453729091878911303221373430099849696184779435360576904179360363989757058470475639230805516880022784017130823187882638021734122823639599377624657739167650382732763010363923209703296206882895039663545609633763716370151205148789979389258717512219938340411002923471303042868863821606183547956574555845654243712894068005178829298416642772861906827954693453940661170407894564542885575500246871290203356969514430911038925316113577915164863789821351375878765910393123163549114226084495032394177717206261821400764491897791928170712334487313944033537842179330545540753685649677770420612713508055879437227612318579781793163374905773264196008177475212014105202053762238471347866221237012937937974154283524572547400072356098562046442270417582059609125108117725781499524739872599672547470663019582410386063332317990261764021134764856858186112363392832443562034838807811992418303279630982483848636615329713932263977634657264522528173486642612316292729658530136115257198785420366621011158781665622595101922540728353518986890201051764510342293390709613735851197570213815943445940447237824360173384532199311468657726818277668861760294630115008754572407929753452426896685181323073346111198851706828979187878483422726358174971079857369614635565390521505817071387055544914054529527707414261025932470090418447650674262851315442873016197828599315373273997352341990270634918036014549009627340098226782176300965793173745260432544652871305894705874974670170811761593503995538637609216676370829241556862216172813700313896582215030738737604851860587345225568524720087942436841345063400098257446776488402078197463640028361291556416430212042948685475922931850227586343911361253758904783585003303542419875277374128176718304913725259186584593568896827418946251867418023414797850019042517854507523439589312963833136755859798494101288137447268821656344990817677991276268158553518666328116637228622610121779373536910421688133341462298829415063026879611331660879662401204517637255580033391879150269670602108009451676539873406724349022790828283111630302453473225737070971782540904406056161913434260387155063171704758731124210958445141214937983290797778481986780536684366329511930380401913390382337316975610400364614982173794411117321926463888042969852202416927455271247742561988716925054135322716130781903496466746559981161328497789037208871745577266589031144308191905967256467274036683170375254850051185860683740222326847842781842397587319573111414279487663244714252952626124090418183961674586670489335542204691736834800057585634778228001414290820181490052210011198362543887237740800678272214500562947331862705967337148670721613703399775856766423497335295773290309450008662052141692678187349918146526418041982909473379819352304436835405044252981043891328603624453018560676293807715369353224458003391962008469124936690735921164452426677256968983533950716934234593989998806105892781917702752670811362171751773237806570677057714552351879310465931611344836928713662104969711047206715437193902454306217719885254261407437454021730409034695248208982868443661202254469907913362294019026648724409628360579563735206691641615577005945583006901540127689756889066849261245107344859134067383032139276869188552646797299121582965137012801029944163674391964530706878384227723163860405042724450301829833760276203359935384301227556984491513813636986892093964997862720123221109695972025261161646091337298643241417699803417464816826526368222590997045024107059217905481066101222878683556007070210886012055640837509488285526832269500835951433357238638092496720637845465196165324172738785645154735026339401530370682637706007511681333554621129884509093041339699770975847130491306174008331477671386737310630282491549811902961529311668881922937326129303910857738265018746393190563094430737445898096189715280370864775867859377719121631778821906307284013854417911537753847943819152806672883559914848677910056611630253489730926266713237953768934186353711729654835714243297094372172255897444504566909725866255581878736363314613025048654179987734097039709839482727981576463853061236095110140988390970954236882012080303456651316016914495799981582040688673374552744698280311139972775784631337741574253431288471184408378427585541372086764284622412116178721187440252769714137234179347901295261936888878833220016718708310094952578652375710676587181177462957322128399627043878188006244181432631106665448302771127541405764231807000765230385294856625421295996335182296162227445880044211758295480877573880941756500449798846994550331928688848955323697289786630872864735466633852382516234081198077152977096187889914122902198242973979326175784102578512531977067335407370491689992788131749894089799783354512732673053417751221631414573363592875118371291137853058991057272018542999307174058438859006756475114213018202047850406904044043478955006830849816495212460622962846000802254336495216414158017879479443573778595380844106160789250329171691411597144182540932517981131765812380220920093306076164647085106167189663807978306673497176376337842638463738812937546221880722628780390295788051010963003920726558234742854947804823278876843035930443860297768538464714419248849118948053225472652727499591465535260446913249980576624970490510288458860771468821125337338232162340808233460370833211490889729808707565655543265145417563339474952820260127910867594899239192202071624139233204262639826059346692310572443535965484450839930619230446819154237138355601696494398950488955723273345690750941338449268645370515445315666862415033889950453882446443457715259204010241443813053156805332844151377069271149289708350460859626770854941158781019957254979849249687414610720763663352990998982090149220996621995752624175554847781258879580823533000030995638093795086304222040608031825168234034146630419327810683061335605060672068530293513148535752979748056668596688955162167665745332701236513902381653028047659000219860709161039884781603459961054316302638339159227609967530087993956121492133918104218050151868670974683075647523077626648770765262611735474396462767632505434138736309246060295164158416592533179590629127752992072901328201560863024026370000301752466738773476828855298354006237728133273618829259300026840027468493325774598330835206760446057411141266612951224952145649155269537428837223054398920092868950701833656473193862957513970150864198623813935950403289191299933682740177143670655835681827471074034847089087873764909040933421807216171710299689158262959035449061759857099471614643270749628807967393567615363113587155450142184439141006221100631642755205229826324429892970141492393644084210747995785509194659109921496419867711895617770081319478348153926370048890220855547660467889471015754631510415302855740540045753396958639196583310042303020010700326452220891338666891740999059601752947269484442653281795060797750812209568966487694319773406293682299428360491309176536657849787181396174318285874094231281714564910228875511472185581233751981118393475541946045346903396994617693847852482359431476795937384077581457455193974527398210005081122482597593276287643440821578326835379412979542860648603321415536910618346732393181493208752634624521378138473787902298107518472515983083151341194085692360942090196911688219839310281812179642022091836682931134457070478846833211733067430328891958311067728113272878656869723305758798698058612356866701811513258343192115993817561368465338966936099281913736333774884801001414947240713741380190068026825024565758592315160735874816707021761811076437926823330501770445266890201921153321704090455372704694456416550437093870399576839259408899286078001358372462636384722178415613304329845176375920172416830918312559313856633285922023709286936135370423654721349412590947530162723182332915363188741704480463526871557946071159241954059613169962897151833183661609009645743759312659888473668669889863256657364585590976821111790883205135851194891741188193806518792205631897679569241269574556234294064934456073515167155497261619935910795092179013898122351321584263204906672794022681777752349687003583811352452271397874555952450572932979114796368516254956718506933167253671305413794127598655709390515682082212099848403608035687351891243280014053257438759511271114851350379100664050819807464008025331814499643869910836820477343853789031198142582617218686148147887107164836178841731711948519161335786345085154038447249883728741273685117858715210648025771226843349010283986477782611503474411146648090711922346866075278062584792156042870772502553723971480721703654423136733203457475625454373371984766958860620284212096741658407335697267206621771237591462658262956926180241232279989928064683317853571133555802778320008585996622670489238485262822474604705151125715076404896746910620496801513214195945194590071175844276538745452150458188229669549313429907287859679845468975181100034534312595468515067140049907330417932962206766112898002830348790019317454701669042841283573004464018643525888305475972046524118947318845013577838359619951086529569499811077921417869483607190988826325282596703902430093360779448777097679967109789946049100146907099934461006835689005419358391595781090256616415810811475858888332472849931416119695301674208867827343519371769603533085720029906414692017090739114004066676937723920753997298897171800060511851280365323786185245763696196267198268457134206200209189167006132567990084247689651833077797910333265387932128978272127696422643181516254761608314645814244868442399058618018624978462540544118671314625595198280894726342409463067294161694304648896143755139742283364223862549132185901671045602048884965379430702235806532913824828954551376975612173384742555173762835397977630540510043843207110666516208626597836229253025133487031275990022167263492084037707285306768851380921808685735415206877600935851139279501638144534513936249597947419413564659205368838388923371094767788615415669065277644587372273064609116373312569318529041234073660125060179998953894913147894372291541079880576032188304478673957795117657684693460442709248819673296333499065498665481047063215456319642384067959933618556596453122801620569398623529986435521441275920694021889865532065586915928717237755089837476875968840070607835921428784684849097660167358963378737885832586670127011918259040297780216697349139879814639454152263829436624588591774866740915143735505897328462221429263322838232528469673886586469677636979607701876350549267748560194787828477391173453476625724317452815935621845744303795037295287902000387966589473598943600469335991586625441823569631430959377172385029688280438038707410402610072696467075880044325034742205140444921765193862854494689441299514493038322361394559489746589647132729279231407306580844859585332802725733686718794308365818678332376478347653517249876434749186072601575028344777092524354624776792541613373329285829019186556194034588419993305326383107438008931422173880637600054219915574609012536059434020857847349923902341241408604127862723487516307788968200732210844128862523510018502713584209514235396230879195669141600145933948365831611011486200277968758885624943341894310184760733486916297125375531080816391182828530074283747382221226285281470480387056285460438917580723300342209015361537880529846725898495164532723363313950997641921842186855025118748579179662762931245450815724699975109810274844574469823173388822802194349371195005785221303304637471185052150241654403902047424883350897429095222177936757858169195011734686345247768125733621422607246929667809148773833256262366785351593631509744614101082616047627751088885832871023189850472521233024450131296508692593034361016968438607767347929608085748616531833206103040906878909995971938902332821842269736087456480720929274051976914693467341309830313858756982503318499431076411910352115023491293993505639270082160108322898766788607651450657893447765536439836019142161868956411287499058447821089470430945287222122322398420899553850317067747664123397194641162305317760103994437903806916111141483794731527243458098061356126227728313680278671891593711034114310418988176919911560649660997124780587819400678434769155377349404895453722954686996804537882395142206172761657651038538328096430939617742800678296518940731572834622559905342071633530944497867211224896800144510315395538989685682667036846702571805843284744504030581063453781874754993760733736449739429245733508934734053222401113105387737857187967295803137523833063800383107093213431996894103990809255743247521584667252342457929097365765135918009470678888301762942547947135403120786208272413143213794851009847350191678179905062720674166121664479660721946174247333421353932741241908425626147171944932677892414372834960575818775556321373337699950393142558393937135174631045607902464146105491734591458642983615490475759064373340720324634205935599161740695971672161121125646843651092178097859399913232850103627918247393426923473712061098659499419566444416707353746039124207259452927103719618077763752808716835556736930265248292640708606557941907014381427400033064182224668453403472984946261957501701733353401035613596217054054075073640185210364918743884746720422779606489714344606327887912907655183894613548227484821567769620237957276060081726367854678591798545575380664996396053445358452102435791101631836216164269808799399167695147349101150482310657712079576067216905280597986828116068445642619978452571035411197415778541838059248425088695766503320144626333866659297909531717766015365343290922786957351950802608357425640730558714463082627836451542383776056108505815860576828809959062290273010548717367198104849028745857945620188911303104349698742183814951592254537937641499244650323780865165771757473985952904310633317372455027785744722277734192943088330737975930872234737296390191140906576649544865595152052194775997788633461083284145253689902448322518290745096026098609635007976755076822240011034568204927074931770245486301780359572989266665446648246280140039004859063767573701304072802321985111064587222393365214313795015366423970048277485717381704932844928093800200178147304927714030962538296840316612595239846561271034679282872859156251174602817612441103031160011568177995499851657291105008943538471010784470946214637244941463107476643385075975117234642277436928506353761895860989064473337700682386440827154457701326034047413977610198410096861117904985558783637395380849788900122118448139850731038088459369865789615067148793005516395130648894400547886842022042583443728733350987411346133532621162943732411821157085916349322911927108730867170755534396975875781210805068374151669725815199431762778428503485060637589091626934256339887156851815896280948064332293568387538632999762499729069806160522727411763748226139713697944640902599970523536460397806885807415481017194098172915174889989614617186192151452788933782669504454787761734672244180765548625836850264239498341300893994495868326953912890409088263471307820635603482053444808403387918848031679643729676155955158489792726418933400125997984735726290273993432180057304795803360425449000004989541693715078700392465082848777682971023069100811661163631639402697195788616578384295796751169073409426922675874385955751045747518222458559932850781182177668631216941013158300373904655134011135342453569228546221008509046246789260869280983275487308876442890796224552588917544957022822696153203945963085814421867636633813413760455067165849489469732845932507062717941611746454593910092148907156632599485411687168526364633845395977846334650362800892152428824664080110739874043231270930825873956367839720360056022874965735016861411578748835587808880000368826499703974271516274434324622049494448344775989235410008102884294527690844233116666068660307421914197137398035135953036994600684754457363750508212259869955270663319289117949614240408269289311610073712887571966308360353455229565473430698921624913435176073251038023431840173134209769658009858282615220898389285836597313046949150008482747429077899391136676227509265886511663890102384854478258256067267769582131898439824488431117227000387002394760284322512389478082307075367569487292456503244911058185821355294288525112566732729299918649018768416778610749746821155800619249228114178890705819607883380178946490395700141138709533828583405236748538517055657484425122956872414806175863118432350782304395548457821415571417349127937466786662955212531516392526491112651060310266722018478672599802546547362515805363275199718851779970423817069304405352110801651811737889225240048669404437216853177590444363062315347470759825981503068157005117519948785568858924815996374703897126879926105853818804285329512949579802470616510622995602399888761835763228691445559158930392324174833348117851595172249905403171042719951962200255797511448126225790741385509907608322697609670736260870086249466856318158019164311956807494386346936371340428966447118643002461014029121047936325586599845117866043701808598971041918238732220208445003519733446950266604337883489104489270118206250049197472982001194195272038500643140346808781389794731560394624936750823230633027812865873638093897604335997524593850612204469714177723195458543342326588186892140330876684128051400943490763699901558854175683396679419816071838120603880079351320229509030280451590286387760008440428965439767548166562158907458952544975434600990250975442751698361143346628667066668476549441175249098185825671797370887835948071759902717042457341235187508023024390884511894457654777524858724549252842060613071380217426013165257943240619230291572328835143765824229665981208116448387455557045180603616056021363406844001764817679247090142214127300801699986315230605320570976229598663884572182319822792170556164073709742691584127578091355531911019109913911897323199522534466326012110603473674644524370120741170617295789600919257448401876555325445600739201853151994828353555871041781337851866163016912491764857447596798507112137138722653999348840227635095039089132526169202197927554252983277035650128533767710893131451781359378815337914216003377765535537483775193191630149385738512018395725272396400538144807563197976584705155052923496375273751175238468520082473636698096229001165076475250591044534338580080160438950697917751148594604981954777239281962578728152243591788628572590347997737418069942366988565942400348969782265463140188679862805535932092541463973911823469739312682986858553232952150029420755121742873765683465831671474513099760172792420702654080623667962160690850224090462361319409005889097673241846217832667974642939512182338940047077009101485981218894688421659030026259528795647368004028133746447900613330798250763126619042710221499950149991766041890745616157817140923582720103414124798373312333068283917959333800023953976016915678859459910999356266109151870407430225040726406666666507448520582237707442489860901131031137645755569800758402963364202988272334975616114513601484591145077895227497219025540010621002352684929200003935413999679242103697983116346144657464368524777270292001763848006325428668367641096672422744014515897010025099558786011699253262587408352792917247930825028064951766332150108241106702650968620063013212704625179560897268620841073840206158358287276179634932426595471057384381895129816140836487836469687461357814316800072082182038596182976962658988726296641455928195142305239904785625413964636222579552708468464006869591727473339569191029154071755764577071922976978002092524607112746418141590553392891984739808532795483277711589176240536773154014774220666500730775706865853829586152466918157949469025366834644724989088466215039439662141677349478876128882905486633791303025853626871101424126994936836052582528906321824610941805628164479014723085589187423148638734037982259595279253925967538789751689321980448301963514550729114074176607565611809037493005262995643321909766205639213372835854408268284004322344200310629460914543360353376139451624836485926581952070149100597644080055669859368649303648442901784767250026555840576017032794613011193410738945071756600450740928846515633304522369087190664895868494893024257047626744603892912409335757826317908410862736487255599112874532690582975191182860673877565053544404740516823621981096263375375103117758820394951270909205466319505585475371528759398332594605251144701614454243044980725629230876440297720311931880163987873310105250127900892619787334978594593112673151329597008199285381947043126830286747062945138574329592321965410782575530934456448555332293652703334385006187526124684641383969124537782274399150621566743580197561126917028088296772507653197058425883421555557308192065319350818615493341955386421321874642115872726929653791111528364271022158469555541087481777209556273226363048695071595159322370364236133018118813662172626167085012765537880583886625725782317612807040348625221276113298815041263253252216533764785194653108920365487321495410294771918621534653582676871927314440503854751947598861567214021408584785153384318579330980194522535273293892643546466225484707589731695539302008098091183466040271442830567846148030779388730047882016870944457081510727689997851645158464989335418253851400522418725179216560765386544821767994091016602592243059459960784071597625347399317113543179102047349752192154769307175964133532821140680269259539565121154154616256082810719544178275990213725367850530509781334303383302586414300715545755621026656226915529703845453943872240371896041729515078751650414926388987826486539151824176996452917188311898116508924702318392662861015389466077512407669854497654395373116687794157099001058380401556232751108238362046641131668664674919482277856781533397771114764569824042312614877081859525896051167149670270837936868034356983718442322226290206220246438913632334696592070197215395486338186244376432589108348980934667122248791840247582063333890962226554109786420909330376116817649770703721863954195111304573152761272946026726213740803739069546690140661425908367237599178007831294862100780119639797613187633378815054410082665347110766295146810923527420211875741578255818099870579476923082498268154044831076912573079460377597049343273763001871920726583603199147021457431532758113759885245057372227921093643386966135901285238734152050437387490767088270844000729536681361724925840906352345283460195355317886884358963763520274412886511248241324978256165900266700741576330522358819232002220598264918255675363066972099447293717784891145556892267336339546161782453061962018358492751434572181095711525908613882176456084392864812217247724657155833875393805630949567010299792161186090453278084631156887152248750201372411746135642911328653645013191879113803245994356181662999646923377369846036323762936612936674927457176555797769623461703610557720762987535826846722662079497053821499738031688200060549609272224234283433801583733993445937017482465410210386164610803327953513650248819023388079066872114427032599595804855161006469914828680189733476462893732539450408380030898589111374711033456811726030260754231222606683320094994486948253445465240785840890661171055914092663436297105182770362910428360589095561667238155631093670413468896366199841537418740799627428705049965106240959780439682520686100293678270493295337443620912613140645977756503560601386751229268334947715702962198970207085937284183683969141983636164001903958707486551609306541354793410091818818557430495469322197094761143555023716265436997593539387697502355730905191824491398624084559092574701831508508667088944902136224580523091990798638151606444330370546793215318674944219807755239683162406186738486380368943073805099199713298845315809899654404835935163119902709416878851347741702360212658970569101378443942268965783758326236572977968349133711650815989499576686326074087142949688290165903338302306722586029538888865584256288936353731735051414929036117246001762483439006301361282891645241968569020811033682196599442754384552779565496650260289016178734213845004075470953563448344009147976227201907493146339610579042859416960861675889496739467834497738250970495454742202594123194451783079352483564025086657400733501746512469297384461302857910702016758938715767636394117814962923584536129417413945248052326266245596837810230348994522934568285526308285234362031902115036477597401235824259273944276501804805452453965545161727319997838177965661802415915140793437265722441892333358882939346188200505475700871318880358926641336016079992262747192497460339686075924193557417955614455683397223818587632059605431837715448377505475832924668063813264240355336353844536704208472078196309202615431876211201759901379810637811659464754362045292792054459240519753940560935271773258364323928007108696042593224043769259190961701521303582602186226261199416834062384345974938599462763848446831631148725134048783373207809201410134807901711699606348803882831297567183440798177192632032200225012564974043803082324659676329379070908218698757766795091826754717043781735839881856843404499699998834640311301406245117750159687164198833338858758639949810130692460056946032457310462708635291436866251503010752531116333331005808009056185823409112331246835289218559683736194661457656595253892986544187573033972900496506670418428467427939612935846874747753025247370710336417697672472522008504553270785703629052281335032025740234051669420043584308199508152338415835487817501986505493219594445902975347644699156621490643859865400930517006606568612049286995102344770505172689086640696927021665674259072518276150675559664472966742235716216645210230566563141178781941806844688711601679343564587881453041202732736138291018668549800971578671565473545225448776401138280271732633955216553085702241009196596503695832154841448853113093321180519415004068446429324981335545516410819033587388113257517392800489238453903901961028871575054479375749044507910591896825862357663263278276333432015171254095381514883994304845540017429271442146917920975280063307418718082105687077208120394296461074196510446228964022567760328495838219351263112125924532396853273241333502824617512568433704290350992696143449605603368654269593088038404920917767107001147256492519306716247151378546187650793531682632174809740607317746895875580088208179340947011259116770897096023855281363483616295916407034018459295639228565429204851412644391766199877328075868178160669797369832553724178503428019001689339663399769878552181461499542977027160893084285802563702102752978201570853518995265647037062511363174474416705878475994712590632705372401979043119786665436823154945229767616773605416495627105924496693871093367112164446906888123035315249502088430199618981551173416718690666006490850535079548399881782238377397198655398982400728141013411790352223349000011630130126396742201048500118270336530793513546126992281515621264351632304818069110630779991270032119999054190554486097188521435986556553405257671208722225447879717104762289464273549494437840832817971780400012473908833204462784280668787584261748911609139840104647720412246938131661648789033571004337164124689554011134125393946108105869221368694967199544730058102385649988146097675188522632779238963464996948399618452268754694431991461061929176514617147730648252237090570287527085155591395710452761911745099560587666242044015716030109562565439731316492390130610046685446446152078257532903649509096424191732620605126528188221306736961912915037724196108079173529567320570491714522023717614625489802116045638872901406580657187763373121226192650088268279948822370181189660898527325442472128918432168308634674843213847450597079652151196797923453202864214577274295505977114518519445741230158064426852940852536648220363728518115861354035556508871379116916483906094007378544916330994581389024902489993793438642517775503070550930463542574060922250013686431483847126234465268685681213868206248326884719273620592664151541800691090586153298999357922517098707142042647591766758686982671033816910513644896348843757671416883315584052013576767045834025136762995403519561968309390555805168118919370508875261110345421758696735630239154377968763118489970459638839891619564874092705323137320228072239861991744824908709071072826699119962701367828847310704998508652938200021824211722571597098739474989089856912309660724325736956978914680808744399386410283400921099512993663476358673900614639761250517540721983593027582213616012480481822902941658134320217146641915661586766277836960849800775759697606610362658488599522838979324927124926627596635622453669427133795506241412411600943391973118379675961106848184014664335387504442454939888765805349677509125951647636052201394665645340813636936343646501265646408447094977574109755152243599531686465891792246464526919396648105916106092112578145319382967869412790120962611166153976983976279248967953137210811762459215631897883783098318431344310687609107948873069278236479975805789073874906868116579247543778975010917517326968112932057343220812501981936301198244472654359974741337243140642344306483736826061339819406824664387700027853536545379935062667485015944941770038076685691862328916650377599530704746438501885044064744875756761960214701156995023135296271178282430284930018202759238964647781031582994485201344601107923501018125037130461316203309232562551553948216393320741567138830502760242877717869602259660654755340950810760315178925171394678194997797249909885609332895168045769109261889606354701287006326476659491144921767211416458211338434252009599234913665891865777608332618285021856576374778662973022427044565692856082127941759059440012933701826277980676274439905751154641771542156324386401414735957712574287444376899890015387087460945716754367341383187344936491938073311306132327823837579270774155529051525417886221583665940900287885219314020937598863480310716104109879480752888651271543258299633188850955088962791267717674879672775466741906873276981420502172819640323233531560562194109286707488829059237466822656092721389487535348724351774654143665356105167042676503707386877227538268632450263667411585530461741481240127566260839035514908213154901871191534945697967819900735534946391285600223757317362314257182885104167547167181481691579270557666849821322054512348950414337047865569645484956197135450760361271540377084619466516208345679014911676665101838734900497110181357571258798645095643780022538787654845047173597398935347105167867223113279839048974207182870174704239262452722043407260396297435957796814174811404997884802679895835704444446704294070259988345940484540684982885664482986148239776634029657964461432133214898034968903338204359542133795650886518125130506762423669777970716062440211995741804470732478252439683137522253160379900721210182283701582800143272089901694453674857066825356686997347420599430360243139603175973481993440227900548948396669588105961731891354181549462269554842156641722712521827733672965972277452164054271952197498446948590989435070109079173995722547989020360622178334545066383969992611743073828276540697720519613657434094601146164622939145870070444805774198540796120316000498329352472867657283905266803865853724949209424752498209199561491852249861755419299004225855395411126249336624594294396797680460844969092635100920702203426239591977514311587959450593537722789925009766736677441063998273339387861606351198558624943543463495116104129135562616459280712874001582104594032779405072648886025989476553302360599179880427207037817825655023115394407573820535998489375150322454339982557374088316565751576076106862710558853929511170337734737819572418645015935703320958000620966763668069437996866969449773195641872395017246633103507753733441896876519888485628305465177621895847376630594436685073905022115450799026504546099337756554395872639860926368931546567631231613458712851623196624063425802356712703387891767522913769031568996573279322986448609021073458290297922709943871834421188243476963753247409482062435315882162042345138134736429023394854453495365377740460459173589647430804939259034302405576438425378089992646844165582602957795374224254126370729503389955150877776489224033049848958179175375982886286332956837486021810596769829824029506179451989171023019970471539651383496483395469905287342547151923106281448387688642314120108179601282730422091162256360578424586888388638899443522463441812037701982405405665563386288922179088698048524116139277163808071579421269460968997584058458571953904321706995329287848430009528536691802785493806230905369044013571331859032911541075052107031386290427307988143047468521018791311551893984149766645081623678484634501912387486615250991140219362679192935535140387018400043260667193275778912688884436670886893627866522474593886908860419593459816906007613238345308234014717831283349074495507528277936880985205764004959093254743751509553157488225416547242317784051923048755274174829607513312973265787644783348659779212905341647175471244907136702704243575905690199011068623649900768587580857634159109546856948866554835597310036774630064860996074291334743362712179880351901975057056563031494935380154037875262430813401092525519697827607340523421008108596481161661819478980513127518894589807098087102101223412373380115810375346757616969500333045728206300138508484181044040584653987899949689441458571494928176555650409883977015921688295690709908676465696820243731975906056309263698574597514364515341843139411657315649599405037309828513254147381560400438491596446028783757760303607965491907035575989968512985038084013637725111520101745847277806199305234510869056257168567283798271631074517640829686685406826303690098954213744453335507110155992317601828082596238631334152557265516000752650029244532205570519232911298967459327216390817733425136896335613030615969126859800497197899804278408195353740411818205747871201250153247376646355179283562314267191851125999665248521033316658124771416438114068717497604508407663220195988439432434397505172501946831058836686410113548965953776674512416687718217047073172311679711960737724344212135578784487000082966035222527394053931774989734102308143642377399334494291597705670139903918347264316822920098269807547934019828467193905086699218208310496379850080818760659146549836675984888592949845832573539225549609017291541015082692670462652931249080706611227652950115599393241933014372287718758435845271912834515204761440706534288395436148254683942703409075070496690218244153669783679157346101313837778953733875243767849726457736812554832396216626996274769744293429545064899884563211320867339513843619958551256860275769497434992523091508665158866144863599539591626174123795340708067926055052874215633870738063831983750034895684465243742350233389702921436120676133049847388705969275691078411248436029629776014037260212063046723970139901971745801712019152364380849863091824746922481859688002244439183709827268292397373863181529977696966690912475332104255542951334849159547052443096264266983096358312941242779029015663446349083160713913904502845819275630410836226041526032022267353590433536784710729402571999938525412380716103449832249777177553589525823670406513581902174738389215501305136522357720609426004344824793453302475273957951533693519201190769361489296843549696748499202243123475077169095145538724651345437271348613309529271272987494690499218752654470848393569297958144420112953496837895431743761638741817419699153197590155306356266531356226470113097898201012242725679209064364338135873644828779664983002151625055095878052392935843291188758941933999536762710377779276084185355910041115367299062570694028565662917786204649984766911230408083630218955707088879060272019964271885326750648253593998984967464798593034156906229275245603615550923456074563652575344890738647520235194737326252404789397707588398093639709563068942921122573830162354150541391844501826205421815009057631744954116827749180659602610823879463167734095117897647103452340446557985386430003878194599002713422726267998896102634840840007252796374147258441151570048165028472630533516160570745808348052549697652504270031005449421637422712152124937810599868953518975695853925894281499574893461753292595476085787560278979749577669016692784234836862461096774212296364579086674895895875358396556695836815387338448776804617563915318534162443129065529244172839217694597468100686018779288839532001147146997144839793443115355582378259137457809769752292517818715874054612712386811907544533935536189606980919284951781070636657563547972799391055603660905613976093109200798651433800937800772851491280775636275809836846840065879625929803818525609739728807149172357931066974712725004138941705924842716160118302558239796385153078437898701211634910106637728138271677319563374084473776853395733133628813485633912885992264694635919708403668686598300811226306007960490854034090592944621456207230288624802989577287117955001760105682020925672925935207811166932623113054820467689770047262785840516879305834325591722015134078540252512985962154761795928800844011555716211811148977492995656744424044039639862466823267370424377268017625757729220145308756432541832343475365262726141999970485420104414728044202509093363282354317498090913565286623606179124574554667499315183542938886275804308550507894402246867129469173375570737458428251571886565075941281939037390221295272932715400173633361570939155366041932111777511083042192346535409419750037975488530604798073034753731350095171338546467578058260054864430386480639914451478599055527947656509910032183936365312374812655959768706056894486681184359681683848355035354188658337229122346019188333835262917944839771268772706559655656484713762216209368183675951604132104156872129920993015234788849907535649720486848244914551735938827261871059772015900915928773165257233672209930476195642667910802370885438573083110027687824123006182857038198858544512224615286231423025359950773982944153675103865178689953030933132997832449221211305197808798985739007446430748164640193207816142810079287709181273870208359802161240633780215814586619310194815168674070170287109981016406445807154390809370305436432303092402425631369110803732041226736452661291947862582374077958381767366693812646599704473031130547064214675211532633412083431609194850757624942687482643739862963731935911508965930161963054005169259503099994700822235465856256495467910558690995892195624869330095766036870258861120849736313879384845547048843954958765625906581019195693624410995790405095072988940578489668811221894969241586004832966366754136849515243697139126461781532306632618940546641431044487620770387103764921560969307304986850570440291861599717521738376254128498134317405771644582082238792949388289438157347763254123606415577275121273923498803453307347895231145403058480239265612518140652154017797797977950372412349288785818820500302474559965222364585314461912407204556330706490120546634170133644635095776284488079252466057847617437549032322938095749571382573419842641260220623155419963295340998712324358110988118759958332234712618234036997169239311954029308787756144286561888643323986993582159267048437415177260772259527682653722380260413606119717558958144693596456922756915277835535879862939270099633400333341215999758657408140665835491243471086730272855696492407029858523001608481149378595548214060266367084099179092576419075068033782058826597890506060064858817128460025624488356816724063986949104126959423756421874414678475752856459857678233722472415362280892870858805530416284884688169259848757572375287309341143642011508215665111881261643341752797576328873764561131715242581046178399913439299555420833683776029079210345781813416409445298557094465056547186592417775608684899848454622018377843256955872729036888428844495593869755733187592529316945816564525533480352603307632495854047431211814265504938580974805057819943807148560300994991115457578724516078830057577795830288669601657998686549004506988851559184928617917569139384068334564029929392491995757687134495503820632019748606625072154828991828091354799722159281722971489068487383378205275393202882458556703522136659238724711578683148344708153518507218459944381321758384347740039123876929167678838225282340229871223637831889654621415441736562040647173603216718495494628516811155677922558055627422996701571107141744142411176036616981196666216221084460255190903031126944839174927346782444503395522621739631120830274653283678091678385473876163079182158797160387417834724800387562079619679947117472320872006459467447464831367479562780424047317396387984844676221792451652671756318378172009624987956810026358703387981673471247100981306718609500143292645149763600945191397704609264737957105339491093479585249255012484501627601301524911380329662771661604779204875455141799068930623668667634829392966906530300313109687686023158193263603807763141773410242820587428656254909503663550333310098841015235407066701497266565703724580891489791527758931623443407107676161206259230956897573356586628998568876778311585997549090911095895254551545300764879762145049347947267188255776959878387617644385372657956803312634707623633037129496238183273617341309133138179075597215854436169646041993106570217902182939512864054224304452155442601708891805168211961363410696027135479566641155374754969404652063585600425502728768547649566998745974018265245654824869176908841646030553810239897802032428097656241660831776529894810879030448643904072811039220858558670754580009603458763321967031157984355862849087336989053270523308609990499195387869903007104383138638181863041838732976686224492453074348795735327748873560795313390106566830795864842237756593231758425764134129948881997793549946997020380045906152989862038030615375734235427239082039989598953623881484163954924155611367149421063928038591933286976013898375119569899608781051423869594267692440740633385515821444684381354271122597608097613047992771649589163753909616562582705568338119889028179801472197351575511658303703319618525438737888393717309962475664482017393729627156344064092562740260751373182197533576144897771850265327070969123913639305719873609074396715064429356639801375079424316954148624773350872456027370983851217847270973098275833952842625757221747075461689482166612311257340866190545202297510033019680110970260391954968701336295925801282297528292521227632269353263097513512392996830854747966439517539562656922198930835484265173228134227317653626493801373728293409815119485298799656442214569036171587625796648433180683240084499371771408256990893902805305865375624903259902980993712387216061496923115114658052654151087682380159227678965997948675014444048160139265389672954150692522312262239077539470602732635948372227525373332451606467731843798134972726888203058870350342876045005423517127731944180958846554959066979552640083347698393753886950593933900132675835749293820674145590569927272881763637793771691261255590584400633001479686076601558649585053521725825241734327376774283427787933774822056293516092264587918526470508614963194924493875265363861055946539890393542935780918167342064693804311901239695761076627528151000191253745262878481365307133538245369354595334330538059739905640318525674363335222977626540055104012062338526128729562425973121560380767282724434091755907745034923236529272186955073461221412912512933849020052350855732292384523073552093504015253083821706225438900660627087530832533131866679489476357472017018348486856890401515783550092118379446791766461768262645274909895702758987693748682433757062936483813498491292330795513096868879489020299582085262556622768523864247486340090521193711089446002658004584395697269614378354425826057493696733165632644142140633893304355134635407339646525348800555736122428468280513907273367181944562287475881116209014350460691834228900333376517455612285151236928260938353984756493686908534814025443984561924963895345333318330504114179733107730200406044524747810760789103898681843444242405793399613016813886039303699690510474800909931377063204954447425674748231716367761524451232191043457490823659556168601025381605968710849569687138359743589684994767264444114086330741449173953510637174881406774140957032228080103063251052592637117563896113734331422077474951300625748060379907346719295860244716430903356953246348820935261585741043599918345192742757091400687610840577496610924220383484801845345946853494424869035731414335046118095366178678725827201745145109971621801208584201425813309091920982491464323737299824400366422021653094094529552505008653024780909945244210906205830512654339562507873501577854611654369200673560801799937099577775505971804173470719633327134437206919355722342131799284849658913226310915558920969034302202637441022171255819661655777320736189804034331725563363278672471543484362343598071627491330078404645327853564941220374244660682452093529151241012951332038842661601946778654097677388042632918954367884639123987407964557991114244889038865474163280173177048738062269781091559937706424403286652593843553207389671040681330648031298022022038010864511875634443241616930901362394349848907760467221929902229055280051822034403572653442801160879910676365321962859899736896886389749376177777899843316147540308897789739157504401200093721292116788636224249624685667016219590135831668286333046080307164442086866987004165861749978893180283336150036348522223883631368163272020044099040206062802238283214399731490499420835601693731544886731025066880721218351239186321793452412709197378349432431211762002252441932908452534818832333606529018524499730313755258064596199338053034798420310697623516562436791264895955580406897189468581943488100507359230965344290805055164790575563673395781721082537087665872020635654678151836290916504259451294699138584781398082831217015573233718446013371296834201850394654852649240149508713594229921607551633998218101556957332528458307003522168145152556750925425890214513901265132577379199068875139686656871725377192711662553223861604034063213629867083994690669629961449490145906856065810628537170812501048714684639950724579644394405157018744738786417896413652672882855714904399350772653141559187617013177782028304897863442316841426971029769606133315952380797367240910252484670606491513312172617808664023662523276773485078934473662682636158127501895669208768120378058971414294006080513191820072353933496599255496142491065749991864445565187162177076773873829501430770420704410913555460646922480077483873592707946287536433530514815504947370348688594055658515169877128502944588259583218178568922883318447958190285914367270426182409117417756495363897362417654899608104896323789669719987945063984872547625128947759753435797494144997020412243236858110160587502011062759988430021642507978326760166157469642607727916269246742437908709078887930452141606972980233755040234935063789471328088435485040273534221039827534428487166635841910503641268783150842021376781828199807351282078139358734506862663626719899206812845827265425110902921118172902219909721668002165667847388704135676669418422424133323106498078745449775954905677665863687017534411303715453541306588481735416155268225037201542348783382463829807655971478638496282677359581305063444195234903993777017640882801994302131652419630054461220235723304083919026243641689659883778079674135877192717639577863400942774508361974211846567014103648295613001279614082068449896425370389475692287384173800461426824643421607985012023333994999910784073854584359931799032163847112175657392907952705492824021327716687334669337058706701403173117692634461473267784469674246058960904476392440235918104010514765126018616449861383986155611948912698178940376275114350834497063941356492961162981231290100202354259056429891672258049199307552133059549004281507929745173077687956569266381710964572126975201027895520034578680298021154766262014262423060543186521087664603328626394718897295385962876114121730964781077632136160107825743411824096538725352489119360483941635798177993742891241345691992222696885830168857473603503406642759130166143995243119583263194329157657371514969332582015266421309983490322908105099990771636359297730152390995105394214502863205650214867770208413534776843792426842096226942354659599674383345279307545012633009618993472257525424472476425701363976557057037841026682291258224133442237564826724316649617348717591735859857712627259707824201144521147820593910156644626233128277857120844645050473088522733810491517465107228948158372046602771546434034231455674709690462886737704459850529262976237442856143488684710022145548291119915573855286649988776815051165519465373354154485806777867940825742903503022273403108371304029516618689825033017728206708181009355871321685614905203817947117950156103818931181624362253302969099755830741417954002693730484170085517431443767880444761209278622637147058118821050837536899553682605010610825102765780268482384576924591769467388733925423941363661687561390075420994352453497317783906706063420071049977896576459347690903200153907631749087056749713035573804742547579493572535066216891646155808863934917981955192762406444920638990043740155910497658325968991819311886386698515240237206571567777535056695144967643105631672992802849347174141339474912021958021983910899903085473984497688983540903618956177930556557627707890736796396554824465270207859637940375270979090285797630834763335621922828234385556833178792455061822364049215561302909442526069306432986921035386584061445315626536847903987683892623948897553013223920125306280807028261589098004369746409574287529225552636433296716122998246741249903117184662856881814030670341693895334010607188232878829920742180309977537376888299384633637547358088223648089684144235051107480125995145373698425601044851531075390187835521690770993823777605360912708015018679774864838445132930683633951654717709636315374802198426957963702613827722749362207926407873012730111240314898033940361523407184942007992421147827125344200330549337213447966612142603386336361785763290774397064540061074794696750078489359626831276822153418860558666399385498838838520886967084327179844727413106558082166745840563892414805072410291114566830497441310478789396531296335169721859235521432881522763339992819303242072537172276983156457539730734003139260163479317082081915892889895351041697980420743695060846471784402238665441380665615247760980830756731588977228832885750368733769865571595623636368572269702627422900841653553379893132053013492972237296557220077519794794978671643574378011420036284658770964121998705100690203328165671391930130318802097807290861338405098917456992548929918591882550611002697726484593672363131695856222997647705037705590838546604740269507255264826089353884630831984477376483718331003317400574960772908334803881913785868025554514212266484908876956476288852922458199963218161171766624884597007853552261063557375281965326576027325855681044994563267508945133874602721806899624426850175815191794164841056881107839259655283825948313837216127140028431967625816414155071701884636111577699394440306337160376716177844502024469944901625287925502001092260053785295447079002665138324265649956027676058682841933098499977835245910757038355241203606157273477290789813388253719544897238333737706942067988891014914341219441518248008563332071587804279286252784157369605500143068967901548271980592310385860370571655974362251495630484689588760161513560894546810585866764686050423698475216842048774359010257827056333096668848221779820805875496903952435479293554953516188882069827392101673503610426358708533485802689733469965589210241308145415548720877157695029961487146107618058373439266829501126634161977386287682014302970167430704325197030980985297854934607186247937103689634522166326124534874688693783941563035077148934133783588703710591538606810853300437042318232513975185236120307179613547697513444726337108687991765702101652734959065454430303281529484913695300008875119470253391638154380651659300391603345424850758809879949944443801508142925178548771689218325738768588434795093565877873229157789976113408561661596612061813247090653965868715507947455589208700959018543768716787925041991071067293542288406864646455638442686160098976174655132111677189899908967361384530038984987410411642522021890901014348066626457291603578768509171305019971378988545203578668585119205793209971615180273825150821180014757680311138277485453383767149551797509647483093221886894488929444181873731921926082656686855970211462991914987177115636369955002789636630890578838013500808984381651839171293118388634598476783421395895359201992109454751592974053487055438489930640514228298404993947242399837672681435411590744011773800023319009945994413309416159551005202806854165677823271452627820307792054832416920403220337606688728934867694420359064209613376855595652679657303600372543997194683302197670760039115052909908071886155254090408308785871461426246078967379008016744354316684185659434654136310937745911413597721154234476127727836813926271026608841404597075393504903836895299694516534662021059436808784769184083195993139444979885490017415662801757069389827530418248655593233448656041456156877166510580180123977325752161485425090915945812906004871260647681413614336267998064984222849976648241381935369756138317124373041670677614547536001388808451155857634950722099724357427682273063157340014119733610442749294554198694420218925330431581867268550680228410170174882399720144126641586117967311999442090997155095617086284498445251168988298528833763267480551488619127435300540281749036250166107934587680441736780112582213515534645995904777309523907625774808369567166332034846971498930337539673253619286663658323493987589794444200122316183325543126644427082968162322677067374118618199788298214325959816965923890789578043574926643455101265495057200359967385344344321968284668829080560595630702512991084236414560673248417499792127878020088822019607653328978734142800951416790581650941972924431616327461734480215824989284527001890145034962656895006363743720370262525401634749375377614707650547267334262144259059223831849809291257771100292259860786628604203555687299456912493654242833209440231066303106676309505283549651661303256059592627582305256153313411182945474974543529404102505427783996958492534782609302641393484157445852497124294323812388539409137209715322340937749549754688458574851467139526983859233318660127178949835476495660436734717270852932605785531404483538920712180735395098751093857776902270784864540105682273227401592855137059573645243363300848704580067103305645348975985872261556108820830349255543454258346847309556910978245127233411231202352351427516800588304300785587200486828248698198885650140383126185201429300704820429056597449872512167683974229128711251893083335659423636821288066099290074109255933823325449858474703952661943829457791328479849011343699944874872782724851431204704132235440156880642764263034353646072094614509611986982689798039909277123534860549804286150638033487204685130353536521125408408945057444243913532064949925582455486574242771640785809247058081491818560864405202252590851780090663874174493218821992514532465192823627559102314542242278179420576898892793197514596589922982012231633675604688827353592799417889861836256149501093126676614574677851165280451382029666247855308180461781942519242542945190902365801268351111461873731166212212227300176290806642082932806745629162412713893375042508496098379823891170324596539249840055715164423038080864113292607766167542991951204854197304323408317831882808858649393642589615390774482412027391667702724404773923999347568792128290622118832096933954140299034278853745029357778512156187086851257218660448609710661859119328918486890486463170841565624926095506891799182104340921876710229557489373064686810274395281013625050656133310711734362428827175683013519352019803049875133599299103282259806273860880964475401450896438825507574923150746192116856227321257713077943259623232993973754100000724867374671227339405117838900899168336597517969773011380543895863376811531241759242651518193624746877281094188964235227568593555239557592475113289936076521209760629299086981580357488914718699549862877605107908444268538672915430583792587651817505643750157156728320253748362009131335517131545342791279815902236330491122705181613182938816237581494806493398760670915522637755477346444159049307300160975630632335905965416474791870656921411669813786863545695708683830475159539202401473106470117363632767332869481573265149900932343262822036445113088006836120904893312891808711958144930869845382852980164860721347069361705972352699140234699994698494950831319706914985428916622831207368140790570646918412325741722878102988262691876020011821476069621757843747952955376320073147749542111296937794810189488192732921085693409026601195039531934733928355408916954896869791180554885342278713816020254871242163662013538814149898243115817063751482364425874791468004180598017633255559306461585202720629783504880367421777526013237481172021163589540384588613205242746838419910945743090895813632494176980792375557243778279121238963318827130657371582558882531294773811124708800337200058715964897502626795744244094240154003288700137719230252404572212931826179485601559520864596157861724753433471137013311289747499256851314800784140721925447389434619015168831033974888035695601879621896882127325150656794623258307042268460077364975283552295361861089517451472731418609432639388848935955250114093495047483632796219703256662445169102387641768325116613684485607320301519176009805771534467385442280854717125776440048395003931470690299139978808257298324150323143257477720225293559209779575009221955700424876571618346922624287152389561364727748793889800630030043877608138582607214854756254805636606308213268326392251811818092038534825439234226361039921706823627928722546092916211906148102750448923183096979624706186880937037865505172637175805182106160846149766465556844123392656441451344835181731000918951059579877407056720425393488467949137087284791546406687191772714130194775743550091112921031087496787088375515440001505220379768847277355984184719983990695511069872434653007981079562276540893621542534999997238992535872457779292820428338017806173113676446198690284583516941787784387241278526483600861646481616639755942776953719180027538349802108365670644179460741717128974664970458553681997359387830175252468392180519303992256103224634531232870773257615483229252688847024587772592757502564733556479835396919080898854434943520608782656327309710734385368530496995220289845916047394636895047144744431387454661314188218677989914458056666841389066087736941245735851480529937267934621390129477672820216252800733571832010493597437599345602540171326668874994008725819181049081001187169266874793573428825770201034424905193793182608942343146732943905879880674212436252489079913281138906895125516185708775150796864013459798413738283412604078423514935529878882402804697710787947293910795417540030025587938758085445687249557543224983297895453427191700932016894364512854908511602157810484949213284513895889609193833953771043625256816343967983366462985520331563652692643754846841759099240660229162920500153955690829683431544280366383531505346894692194752031637632904977936819886693444418332868536333474152462245480057560738308191317877581804651877054534966905135935593897138910821519524623527316228618398552414620401896390855987888789428922927532329345476935014409338385222767864930331475968360361445528661286048896472575928599914623617711596203300515416737127859771991194788977448306108961999688005496442620264498178608188556490656087971131973717205472695149115362866162671209672838620839773179858875647621495193514371348466687962022454648493724904364059212805979771932577618807561328558399574483390197428547075146125580795835633650053611511241456920157546150960996088504616694265377811345556353485660118473520945315001945802740351811059903488146697536688787691806274961905041195350493494882934984547119948650309585021564391832014626389837649104104128772567749055394864442683246957251965432865289486946110302072808069410355358725557253048724244651710163017540925520498410972018652480315718467136642612605399260366329967501380058590296284739222748412925413910974146955431732613801911692707737048162446778033060661032674617223474246052599756123545147866970786110737979756341761294296658908480777707386783269835347827874581982212562856644085903219662805887046027192528757452046095244607920206092083101192004645061290293305478988189147228813683066726787045316516162504750385724630655151438111487452741697747516302827870930937068073013689857736651246156534057560719259447055991602101390442048885444063688697551580513602119102616033841762397172856072909370183534927286311127042361878629696360885924280749391760689824907336354051967019516485787523699438064948065000275359971997665670999927224386326998911475576108305398440750528515338263669622533085993600582288467457129626010475273429066311395879351509761245131489089698532822375355981056619324367659033662339700123008181898610852501372674549229060581010671907981905489998929942155312958005102239452180334091920140834431082784337088755462721484984003744020314764279200953279277442939612472585159706306135693730130358102463500601398866371824545323176832640690601199171703030107572540438595447744899597808608090535026370123513238234767943990405910563143554159365658845365721766563991815768679531619814566858115799104622769808127520947116650854321681607846331027174265512852992390534980124663126393157660183563076049566475954376291462860618721644404352630540512473310314711830413346295248118830581577356054943726316595099469685529724111891332254283237739818574679913684548939249816962155641431981566306222248933206446658665597587975542954140007721990987346317074225193501873427742263503044026241943769537709124942284792352772713425627972004029202530095170037454567095469570905530690900626292899482702966988174210888147065884490541973599523709258258030923034724721584877596449595159779486290741596302766723268187965360362275223073909340366508586117181922115312370570227423781577479694347834787374429801481902458249340382422848406383534198110591229010430674860764848173759645418294970442763642953519107188368608139402874545302755491201223929410065210545758050147837549056952099647454882406494780623183928982448849145533227009971369756979508138325808755613498723387455571173730836174060827274948168536887645002465981500990844552044247583358141018733459770206392699139596799342199746465394837885549529207195713819175958302242374682271070223363348438634713978740048725995613994954868660496228744107595435711719324313033302827617857475911977627898505893694953442592590544842299282299145411787511448640729501524419966152055274267996932354280282420280758805943850458893904730829369635152859490346038395217485933965979505694481398668941554135827097592470761657689355131828981172463774016824923148521066669278949098455563915285631744144458584260684200780570108656028494881817202222398394843863339944755540827515342088172181942868646699515364671148481016672542156060943237568901057855204730045851654824527865838837228476633879972097756280483754829472012335051811486766954130014828653231424225766520072334601896145114202768501848568917918265413430724742566649869017743673859276179843623039621322426682404925662066875666740873215969479459045043110975744055806408323023984782052723169535287792496192715465102974393850188239390717713280086545538542310669177215036884528070343232888204081849341425092381242885999147555806880258693658714892330927052385497005640586638156462673031490751398042672702729470963373762625768301195050700826927148461947632749428290010111915497349100980788700513059886270715144855631062177849278925274973871966269748716322814048318480627452206805863680495005499920001415357147031022335999557597371647312162385425294051283335807913225259773321230870055460713318588310745353814642282658481976618584614619393137986024965674809104105089559904381553840051031161933020459993127564339348245190051646869864292412059010074372191147474715824575215220370546229696614793109798649509267811391905484193647453608905740522119791548628475140359631388467680930807512598331732135977012993875944981098438081714655788194776036575803740297897475789617062632788370550427692208589124375760983472714379570993080451142804039206665587024219621314432364781441692720978015800967701392821070488598413495790060021067098399371803823124429800423176540677310034062803993100020736120049185715216711529367155706730298874244698462740312251898314341577411535345567097157493917197677035224917693777272902458049493524828368798447345038224329467950812797385851836914634833309479663718182592444799746473444782606703755874360713247163169152893571907715436094373157863432977231440969690980292250314025112811554953190419706761303178223857021049470711003131214841016428191262068092631349471611571905336369183575618462485697645044406133319092756924722922499307584804189327350395995042583678821359017027737870157958798413812040655474596765229676801498325073059159501657793594328344364086453365368905834920902580811440554389362577493499561683857076181264110135968879300839984028352844417250121218630777525069021873440545343871486015347388198450186229340285680318677493342968541350617025608782330500511733768615471775836158948660665575053223023043516774381950539781841958916482918276571756889999287340344420552167848596574373274544235179277690658975812608712858752526061000343768736593368388754570999059440691245475338187641084454728362471835202676325762002054194568086249353242654720886025067608110449779195121200164905036509062428090567376864518161157332295857497412025120205480852875044269861228104074631784149490855450433812874412084297128300711010493280813979976583308018947577332583207720475068291979261826280838521648011409869255042047737204503373106638390026799377313529405867429394149032852162477528886440189067564679659188503204482917227073307793516646923297084681488992245375156966353332225729447402822408124468302283453570263092292319771483966736636700785607185102649983589668370805532221499435233616269275858440938996222834960906975970190692025934282448429819728100188801311451520694918169459204223699782101746373232663648805150429106392970714459358325093409431502922685140748243852885028327134694098252033357274199516962058316102108423299176386376737333339222671099496847859940494878197280067702232580847358633997522901077089204889096607527795412979884164656338473020896787621332067865438267062515693107450023947754256388078519400654995501208339146665410603562938752455120959950043720355275776443497452095145736569675107055459463254895701170418116477300881499234291092207037005664013151678871981431478405091922700277888965997612249550153169919370031293431936039481527910756716323423011548052406773734838501465868845844723722135689988866701419578984362386176424275095145723294152276150776505878515177771708871734523500472497217233664914259239683397522910454234161417079167123642857442297532437370500002747535725764559829828892553201106965771999910127795642767118140692706126656392216812933346542481621448647629426711532244423820975080635900400948080867968944541829030805024184567555041882177018810482425602817190433182888310217484714380836740484643319873949927210989935815963409602802667603039462859950848792551960822363982579136930324917642586904619537529835506724017418570574065255117302690312840376150629701540685765620211110180947234069637455784075083256668201890667170754251214269900980310974561184672963844068489090731926513597687336655392746288569472625179705781916051595923642904411378938177246791305573323319370516258142306599333621467214092783374414116366875690206098358403641724382647759616159121487562013127283337836793574317747328331291233267209902989693160086972548951518761541821672592963502427269405753493866708302752760997020967507240099887534110546486383936865812291765130433458941074874383824523400832285652046036889768646301297415037996017614609357111559202542119983052063025919227477858113657294363093306548875125172292776240866664357280921455596043857361842772806086241715715131055244358925438605904908764772805930269274692721966408960231086965038872812424694849310556679689649801864646406606975018395201886866663477211046403752875194010028284235816206275206227387110406933935229843256770479976121506552473614868517941127306403149512705920602834718500394434139519643374727509883366489897479358088785846251490056855643086893331927597839475569068488711779614002531784215498146442059208220854562909818904618726957282323661086480440932460107696674334991152828240918376638684636477379498683733761359018184858791206467391634024964963295827087885875075727350193730270569659103746196806789338621368115138287186532091697889854017377279937961961371117836660096677509836776153915408656198764036440614710440500639718875556706124854675913025472692000605647923018744481753092809281731047283916094353185209922066650570252741381054338898029338137738475172405253350070836032916746446892946143590775071001286968438763180782271244890841594303141760195016047472475481231233466709024922189182043365547106427269501357820583018320020699767021106110011110172235860202936495755029095583983452046059592337081235709445399821875476634573448005252421250541481935692795194464278064142093012448370352228999529735688919581779558339039550493102444068088488620469363980388175871822024768844702522142039287953956628029913820698739626609599407306195789373148465787335058190095434018294498769131675865375204880306969431783863007218636137676009184797658154315218695500551582865337217887477199985580895824285824578695554248488686722182940556893007872264276518381373800352691917742567036031826325278889230875151543559635829076553368772422885662115892305501217358202354085621185514320005459555662037532888265129241998999708415425773480676793850107815697887132774205399441476865300895162367534705632339256921049332516383389531143103842911046291714006175194818693878387123142060442169363417446291215510907974232485070640605112213016845392547483525444507705655922407013840825748946516337623206098596686371067529788842220615287353325145477990091150276482367672214564166084801051196644495160539084073201321205491953802011190462871268591684137035151589421896427927593454608139718726570464192074064488458971998037317433467030484156832815754508932357726864058291160821764595015795718262222132345766120038766794372013020685620519058222732132740987827567878827269003318309178799227310107049113514658204569682165396114768334725585821868493482906398361062629426785180378083220575007948763998348793880205460394942081526201504252947852397335514879543021776087995552948474830207151511258941674358036415562671798102691329174918809486137687781260584659952944360153519934063059766020278282031095610073397054731883083595752689236144981480298525017815851085574785193761814667359099749451957085739348792488040276080108086404589517220049733343746895838002975584697504091291865347345796851116038216398750081138090892093728947217065031986865234019169124620044441020909218552134075867120863348308785871160440699569812652338825372371049810845117305642061670693367285162564953924574430152081285787021779588408552545844176450086916070531264853289993504750309585822247790674459505362092187335815001173764120627456010027993475228827593706319996335775916935107865750393308950772206860401823122907913631261641161383371421440447082338726335674724779625847243756512034287222211989772545275614847398113181592456265795237319266261107942943658141816043245689040145788864277854386988416118889080211882314626063550220407323081575973605024940604227762850422933885340732745793935974222778579580983052227585066605567729072246603872841200533080740338100780252485847118305581571387429515700792144553129161592658513994299281006566204259607009795608232885977075941446009133087523627231513169804709768136395915675121157771077672380942625830491172926104199883653293013224355015650562851695822124238355963845395561348958844258622468435139513374714581947150480080279198716537971794415041169158044346288531806585811708495215832914957467455007600257354524211821803922703299434934315738290444182609613802816666083363369623589585443530822874378475313775380324712640239027565018067133890280787581810635394276627558077777716025396266647237478696533495538957864310268682686703030787464706568839486072173489109693641861102858544081327477645799749690986582074989462232948157339299750067143348079904941270345178661657235643170789232048338624048996589105993492884914707491377289138990358630456389459122709767017662696455177067421184590056687856145198956381748387879483387348631962494764169728720462617850225124529354828368233214704645199762000881526554522890822536053057219300534994746666456081979214857445300167139009075267486740285098314198421623434834987631494296158974035502006957930717075659038746282175687506476138821035657323928195413917761005454922623569234759864753628975263388012339637929235587179309142810901505863721687408477043309956784263284393368102678721767876526080342306132389911477365769601808945090987021100550849936818470727083083564573984037993908919358174232256719259022329535819796789021526986482883386992732853596377120281675914968545753869908919889458887680120147845240265323727871037163022659069207909997911129509920940542624755498292228698795074713846378063839801221930857081665661810330322212680892422039958826623725027690644473774213407640903364778875060043811138802258058788402288431127805234981501901370974645213405460763179758545211934775761472520715914305302897772261022156717844044995118229821923465680549875466138882976142796952928678504060575974117434526238710479420755667629509575732195598419126129594181076881492853325175613766248791918052371522567085127913998937516784538206918610603844578416231660481338413895508893634576795513924795389085558935097842311606821213445373194561798933235302796104779653902482835080124700273966563349578322635992114336365726506825936558828600759465919769568295472598780117505837776168526077821330491105558709620109974812309667357654983281934739385473220394715353029148584509721682317941957428807375930874878814153776719618878097403684282485886685791922686978668695985001461913027538382106903402345763944030516955140068227856686926265701547843673276649855308695789554878953822684972132574656645169961921165689552002042002257858102537063823668025416552137590454520800863534380973107893405580260983101328592586410206082086822419975260876723492533140940508151007981703563481900263300248115914668493392442691458346363647664184975127700979420258582643713753062282993405318125614223359786820083176447632758767267097724845938886501088776780357771241664413943575302385454438606287204514686958411769765647866741932502029460621437459739006882313765389125515911774988542762029844030294596192697078368464407514116391517350355221289308172694828909351068352704375438465323972257619526252481816719384110412647200477048855842730260834606451763001925739132084726507132669340764233213733008977573456919289470942651506963426025208117151752976860271725766196002538089995267838870434167763809796604359202878989972263051345610054162073215263979247062928997315916602599638578822108599958702389725164956172679097109049243319668961431828599682901959524455763203435877451544015505701869161155877369122061959760992997440993780347684952434595629384371259280930708460491247966463900646460217182897382049935570469671744072432283157511409603548929000499483332133922690099267208743543963346267940202484717324853318633210758433141292294170513507353133385703273976161960037792022815263696521115358528912046309160443756232152383322502258874465638311539839624311003694315903198142507331462222366221591248236509151083686673824163049683094473276160880426994064221444398911930597647470088353269450405046374571894482092458897212446259613936486222187334937992247673121398729314356387979289247491747450982181209711557264635980096451882942033455451038698994838835170821593023675701288525137403678753004932945262051188736091388216240241682515185920763459100718732701738895694860040550470412982242807997770097508848718869285742719811142828240889910348510459474862629159115076671265760186868305457901810209743403695942491408019814944530280472040725198170851200959008219814794293523978673902623532418000460025387184712442511898967902787036937415554020817911219300364618083873962024214716763534704337586090862553696636579083634375700574319433065988943611526317238765302004923827377696890020143868238984966037824440295384286357712141084358891604344507723050560391135875535127507283160873967170993865601634212080229687502071068398427189091226736974749186714339724570605433725247349151973046140772290834369083469963270131824513160138268521990670789141207447410624721877136541547204159473913873142462011943724072971980542460354865809414323884425990300271214189095385301207401301016050904467490708609459369023359796812617878170278038956979257052626306014553384759488563192079364595155813963853821403381290615216676459436448531541793254566036591792732302304657634926450636942602716235675187498470307585700542841532785403765706868994090198397844193015608344304586316045900243973101434065346954878535266561224498085819183168071548843137917209911117476417352727545376675823071117481243432158798821801972051726050030561343718682686075822533883414916487630661423845391329663438278911809556353651985098549706311511794026220178348811773547250609493705832100974399515491346430936775925926181225954464697942729323705128573341895025546258026982812732327872905662583487709215734081909143275600092112897603311784266670199435231225612068278943070791169034434503194806790858816020865439376071562570582439018602568051369904442320729729917885145770976314279177930101628318259908692250047880460932470254827033495744054052946437980837433890301834227738280020052682209756019235286348706820409968301622300652775323439116982912293763438005125391254718666715861202101706298711945913502239718302436826860028564896614017904347354368620703381146168542405388477155939743130872364985327999257680013130289031903186735011435326001468822505100715162386090225078508351262551403520128763856031574846664567864954695685044437380916686666806345167746823433215101335117373118260865376297831210330825719889035827342766219742875628712007019652279540832802089756440815266355540273745926079824541041800611585404116735181102028461896468429128199167009845389417103142183332020626447546232770754773764530887309043890666177902414316120214256935437035085300329549187854734331904510014337809386902484979752465208955071727801672418083502954048804226313169643781028283480088110370459898711170901042587160517775019933700172168799535030688633586669567199738155395118584496921918843105945077215186885452420062511910103966572673204368941266429345266573893106271376404226789798862999597616118986467268448174952449944818815193883964070402222456031331666456373967126654937401806867028661228697183805454519271562431623272829325274617827705703970534123502472143061370991794778965825910986122456103182011338168656501251076337329313839584381345914461169170232677949768870346140204665235572855853209381122049240921886571125782971760948402241418715049251203096520266380627674394628160369726307814060132315750647861335081442731329240097548424018221509444179344783024239335526459088085304591465318417769399504483968942328363879847528872169915984688288128159860413443438440093913207105299983119384328718796396141376843614434559429378808447986660660142744593921288917894583296139622843053644625358867170594791166240968231028358251262395690637897569108196636730648900576931533650077333597172822367678705487676155243465608179189395370344442105372147829843793326820462839380124389466044858391037823072688724563441387553931088664478506355728284191013602167345704451991186706103286088733986804309915367665523000399549383254084877336583338167142205558595381551130429974768361202687955678843523602214446412425279242284764645622184059942641721971708044527348454916060473130047299389852191076367267972171372421389763055304818215990727492934510147011829020731776623041045074721854918350106163590200365136948938261604808643090204418213692262176742264794570811371829371096520625266708810284408972236711017513713840596119662729386660466540937425009146893961394081549409447573835362560562212680294887534101992629815704729065933715340365249673608165376986257146418567061045693237376361766724042711555103307979187619083425349610281704628355003461297529941192406606240993101755196678550232580666301027097783102127989679355175936824421895498755481776048858375934789464717674533799858920618145873468668322789339454619769549335701702516658644664765244662096842808835880814153374077003768392944460409367869627141085415245467873586167042392749156333262463236442418608209353500872806965642847623830457265181936620408318826380103432285833055891952582563074868660015637283641064924937367220801565966196080672398685123435092989495131377717110769512693587141913276739053746203497653346948805334987216066737418207371903928847411009108700168008393554797292470363517461432423120579382798007878507846804675114555019993417029956234100633887286109995074422226601726587336738198937715287781194527289820576931861896781406826927055599363815832125552598422033553476836280891568144028921700386712581333635128009594736014915811626800747410976331072904996141393170015131123305958949615966537785481659982695744678386596362770286454910772956582151616128903767121747652419607636865687674826233908800443042268091847001370609108545528663858471352808000915693644607699239478644036219633947020007994047742381227657974101289839665350673938644469851252341774289587705324974519995508970714090695006606248290019085650651079891106518645624289204980916244343681959810613744604318691120722141848814319294345639945693445836058974670045376336545895583451907970968773718951446099216367104971473495167579308256386640991688023858401920993538799187761980482524681537970618786931228840649126852154761020849480699872034651599242589070552172627613577607137097870145421654760977576417272563763844102656700868092216859920884038428574286845820810939466572926343467454532192286953446650459834726135383760980852267996322934505371524541247688047415336723572962628915267870070689931227773347235076668398800323347380280097164608630164047976997171320555621831979043147301577027021185368247621965081711151328655824330551395711770274909373070993227712904882674859761222275850772521225490874774448449197752641117230885623416195973450836165123312953617034701104028331753209406341410671396995518830424304943110594852257136483398689682143922985197802829934360662575598599120911700133358324292920299659209714576940559835512807811197864249643852357479645399422305823702292871446921293374459287336958801483443858866561482823872781937329353954249442531218568363831671639773086935432793827236456538214276799909962271620860451282323698294573863902507164290480169943107843474646959172626563726657015263584606851525001477002859846535184706017252341281790054318626231691911801237995863113277790580737373263864902807035956921475941905672568758300194943892597652366364096709959191035460680966791876412831646333185745110960305068886265089264110195728313577353201212740068366909997251701835444854569736335308155319160863255491469499230179705572807707642687794888344336695625634397192353225571575464411141116320268902424302387989004465365181398337201597385679284098764666769102858182555036113725814008820832337812444012412896377680231855931596910986123062804055955897055272630178733187848024747977213781988777562726176274189760601200410018481972005373602421203824529901216647771765630112609635950207790511947552911278782894128106755628379138995667708474207824278758964683754082175374491571491049060390230590223182829365100074406569017607032204183136894181308777327253715094480702015326003543598658600955854415415111147632409630203031433052974987938338311797010719969549860926005404825037138552257713842817874352522349561604727969284115984941082526699904689859771794762384775804308183369036880881121729433557584798681388587424716246259917258911341325043742107065106106170220997056047850230797140108412853416438181826654782148797162112338170979112542276232551282124284633977825607544722420331736363583105414792921148095944058781248624640534275850395515026478202253471965860899717010882533821693869235367350327005678144129199765730169873181502736457636616097028511374045526854109558925443402299620808119746914049960165487773324122066581850731221270397909164688714185720432746792606684367574778714945430859061137961827182125139570161869598497131646610878981912742150100699871620528227197939926154867507267918020488722806336721453872732999376366457795142195829398809690014853992118382630103916381699309592044374126899751761195506163764809940504619285207523966021647304694724556441860733315351916946089231776576353361775165324064957589528596214374258301737305703115923470638730109843015262011459706125470881317662614437161736803667087805539335971453700835687413722315374876962490897465405742789781322141481426777723598458141781172046268508166174837938878145116662625277556146486261086275503198635319452554597856062917162714996791429729046164514659730743538034931734254924426250267280142019654097903025095963963324294546355948674396621618002993460663365993559138931532055644413106232235767587826537039779031453903552146282029497135611810547269794702295398410176792010180876832971175750599446650972854151946905387883556144380364151285693665620316864233752148743038489710863190013803485423562370426798546667829001325179583443503375892524553665989804070895946088221380854888197556216217492845607147979036574871750106059831080206899436477558916926119146713381533639841400089796982570476739471877787598807677693638935388330220944734713101628680647538179539564379115411585667521918529204404271471606148434309741520077207976029344076026286438473122155305786748552807520829204662136005129333341819386007335253379174004863167880738822363604828703980689594189964872313080467506528991687912846107267189481269067225140473892960428412861465008371929748027761110392729431616320879507321359729067875224361511203261193529779270565004770750629397509249049183963226675633431028266654272262659597006245953819592475799515892834245289303986472582651539439266360549016541461699879328678274713582999061328560246633813686219203839487097841285851514763538886253258644338311953910918359685130866016781871844040513110271453337703579271703337850776683637004336202216048861186652137209117921174359258077683996607851366065137999477553206121761214928520479328160604377328385321781537849597884832363505659111877038035243878484711114373904977592125166345776776087804518178670414395519074642191670603840340345124069958734395945842746005449339194776582336885739515705744143628739729218850657795898065900886987843287670817625208729977700767298691235122883895090345663150232932945239014187891075687447195132856894201761231113826851088053085963635465088832251498261599784805315997512018428818513525126080755966695687593873171400540722935627074095806202878693299953879288887290229193850982865257858591610616861129727717683929157811923098650778312997136105369551178896874549048706657985979948094048739559826765264320188564563235916056392145847358075076909957411933171048770732507967282170028210234100701550057391687748125985950798733156375936352236851077738610635374607724788961729112780366781531757120618530455951921022522347498994897318716298279770464335167222243302393302088266349471869245065386820814211355283409108933711388433553422457436203967266316480641584614778394661504648804915628361243090886341509738619150776627091339988088842947425657543629335420719291437589105080431145354366301020807430506561466014764445442143925555356192223504684793442591595985731586648719871528600736635299952905836511564061995081788906963587225186550120481861424988246801332387084650031872241259234956379308316732431956910315315913174748501130610382749062409973269024513984322817109377434792580534069807553154973818004847049715784199325310424926991027645269264066767702410150269851449784385372941899082445696164351888223975719127870858189028721385399078261579439799916258812247280376314938107015439641490014911218356068648935845783956859426492925849024771090682522947249597923172942816564076187814875569803366470369398268933922778288676751491214560017264416578509345915597280912635104253895116168201787919192758368165981597751013114981561297662547763527351953414897218992018183295500277445542633932967406570480694404544685594214785917381085680632822736543724056630847268082749598780775524809632262166755568522428028957921075337137301297813615755730820970830549423412284531097154474383345898615348502241936880556946299395122776894365748901982892913931385891214768185121911384874866136612386827851244355490079503073831378704913408534783292702081725257081161670771685583845583431257198695188506150861584190273678604863106956512332859584656727436219662280812862390623759045937679302101572902927969928604028221095973945922649280700888484038325545312960212588610801304034140705124867157858433740544120012860547594703378427053270446371931198696409133776029107779124396774220221173479607545895014148695933393540208738169398249107234845072229460615427172369208063452146923572720468896913658012018966129806214295655659801659005472131978069123438203502910692891487619714206840137479130700809735448502373252944670431432038930260044767856515336144920033355090505232429283406613100827492097055479920466996905520114517912924189613369725311835910658390635492190311726236631449886143724381819397618515472699802108686528239821954946245277212263767740306062765176106645576868053418571383395287732471587837711302929093532354133960876929872542901813258272596369811370283175812881189364119016352674979532543905188775046781951230669127889479595043268510873151778766007466396217220245497889777565055960402047131856497355814525944877587318264084376669215750463576665050523479408650011602197334899784131326522158935597918560818011411052677424273680275191034484188464739462903223075205989283907293556555119339293748991006567756600117726976715471370496099451097952689828174621328873076957885183549835677387617994963297363017725703391799619679417926412947549461133199682838666448392483171419544676477638544020865993418347995579296539910834732027070259659325579837701931177388600827342182379359014990196637152122153872742870643469923185595235416500468772269409600295192997015012139609293716901238198860866559305637325377854530051770230903768988146012947391425258374107352616693952366435824574114481514674373506922627604721572301466215393942993515607210151784886878905489937827767405015097220499835947802295185927654148570595000940418532145750353738465255829570941569941628030151674155821915969482944808412882834626264669524416922151127923444248717790118930823875319152559093177205925233154961455565069290170420501433423182761266421938862633226953221529810947257948747259062436086544959133656303263083401930758080443882339169606586862774867747604736134915952046268031354176713408962461346499273588162706616811919696223956687588854566263054231745438730423197403799778441586042522979966969311232966054816965165715339754522881127231846725674694983408779569181686255847301608848030400041019055981058308758578541880645976412053552796816654253089491007432344649558377198505002285651165294799449833328234748231360927242349570961448454090083993862417373662426622222726197768607902726596950229226461010971843962105614547924150982471087820154444391136093808895325847082989106878556596801189249138568250762870107865802831319989410711102996548110075673970387630941253555266557865803667367167332185413530516032974117246911355476155760301881069972946508765442508404199393301469037555728950963740388982497205714162129912990658823347017603444730851790525653050999523854142011610112406263169983686607195388068839914247846173613621270368446850482761774305178915680567940256176180360427943995888583682175310676558172510216540465985056531415658444783394369617926405481921763063278247059065675032545783875953173985620179998846283127854709696810496011101408734702482639835383573055994038809238275762566966004838680964783653756968037344477444716630648036347670741035360914207591449238169875332567371412192431373569610082175428670468227860414796296180237138042011582291290038350629464778201688351584514935567067114166485391015473394866769494285007244815379171603997946786860430807121441388989022841110573514422932216156627008147729380629398917946963102357168896423885793578356876055406448892347528771955587036758301763148526660563595589779028218302767344101107878709315743033239998806243423375059863213491903133287802023663266697116117600502653522903488194187714411911075646252514620861151967412618677681711901091331273693810413399416221900595192215731396014457470943831732992652461414199161642042964693606048232765581800166470790395692936646810638004105576027821522888177346686786632513910517003193615711474995286928248922436672068696413909359599861258433187035650470226636736703951147584810574106648400875826070439451352565054018189668954271002418175422421386216877484684617006573665369310662621457127466188503490355630104445160975100258955201881941381668719049223909292267190696972060122590187702855369261974875476974269638016239681837631525599163122344041812784946390457295322635892715276691016830094746757408905049913216285306215724239198667267005209730385454745720487438037284366038851439237311718843358012984254161454739053355404900339954611856638815289795419572377483205789527632757641395132875945369078931200490624009137954568597139719100765644032066861921733542019178994179265450377764120643522540847181347825247349653466844346108106178811351582938801715727444046281723898183791164229066071962968226807923523856222592345923874888545089099925961611170349887798439278675175697783922430908299989569915632161486486257657929245923186250858679822622759883256810493071199921007947365626900643478085084056156626321512984191488456574147893856988013462169555089007410969131909980440990461937657631141685283570340229154686775260042369320322263501835991383055581614139315848393153879142425652706775392283026055553833838746594970264443416781226098939332029714571890434461357624920831660204611692463778048429123202930766962610048460542847197613748910030087819768855380945707923073129178812391733987140180515147570629949489652758819946948183650661394990622300372558808586288394229913508575351115921816978295402128202604896557850120906615636197311140605251691584961967024913015080550337103223315645888011532839070570852036367819630326057799297043350401379898405210245726326286568318515576277058731322424990168028198331923585569825842777203651757093494006848532662251341310007126669170338588487147506286105391336761590424535307229598689738959671102226503672212224547191588770452977893614469781713620131177707271784278087533247669239172360014592035507566127755851675347795843831722489044118046454553802892995586659522189273050075689524927741010464520301528017330980764894298956647097816478143417189768767841125731319624934671779349090456335311970866513483650983195960592482452691538432089272373816137085136073621639064556249220117858006198840543206108379024523682685902054173554117982568374846471867508513999027862141919731014094274352441522874483071219163859639689348757031026499932101666247549623114394632919915321726706078750277900465987336827943117540298510247037794089819872404403437771728657292838315916474971558291796558309864579761604453395036364824058590305311635719330591412964580898098078801824822319605668440418908393612912054633553706623225058939179855106496945715263569393695239965709002650589400749961765301361207843680403438996206602691958128290139536176885427497298949003756003329053406262408164678167085330962572571895917804585532050107110435116375432459600161841603447604543232595012722457666740288545160069985329550189491420463963393766618476386875864922875588475411432316063277620977134614166245431611025933482004947672405544214734384612816878632836027679496153417738821033917306288809289029086170796434563432816986147028002694705902151787275689869610065530739039421895392462812323795103003202175013519020276135704475148168448702906486209329604397520910659396806735909767851401799799830287580789291913267783256430733347961608043490181774937672547792190797130761840731034514168905616610982716086216386299049620873523129767171114591007855418938062768816620411631902325488274760034924432196968926502757177043413924945038692257066258944201988740427618259628164256393313030545358523399122971572876172580838149155780056794425579739843116553165902983378753570291013704308736560164503379549763458230449949428988126190880014933751071354783129444828691211066927740906955997813785282551597884949059015549781059349824815302549718807661872335081252042088211043256402277905154710437479677179199812000236873596352620109079955877316012333291251248722153762135276462267284819929003107540977816252680324061865217538447452679348088623115344222933925622330465280602061364528545862813803421261201817537427171369988087233269043646642387655331208413825693251403525435805834663623218047969611726495706290597011182682879528194500102645103592454552012937505448282575688495156232336183454595234797437429428940640587302267217109113865277290006274312893847257337401054525469450253361570337320286624214492702472209332555861245212109337848965264229422356797981045334576098463625938344995138494653792442296446250564020760445354915141133851528926049786022358380703532968824072042708916972161566357137585970786790659587108308354931934886527575208245524922432001859532625919707775170279462673324934140813961995708685214395906317508591560009046822684593495717909980022337410991792448824866034309809389966245200073761418644443134282974530557443629565261968840164900677043303763614023433740860379868521977341228316173740105005326894252808657666164242228016048101195186913483425725418829690123481425188003363123625381047269719113350730306974599264873940029039829023836419745708056826826503685324830048118843241309675706137048947083034650311878015798678344789551971286706663621373025191134262924451125906440895207613380746790676817165239450646548318391013013856487642601257206280412459253031612840540103788341659736524142943003943412203890593381390999859527415144425285678276208748653046157759130245291805480982576890356533386471411195285313980699343422773226132734593746673363428577429441651599252006713459206619683159488979663324316989426426713041620784276841559239829182851274073049267953057180264445970474513567682160068800608653799497214386678046317413868536476629030894172700031422692775081146440246569964354979882311659125729451668075122461143480619179712872024007782690467889683207205198855212536720915506360425121568708982950822728126716054858399656815394401774501596965559585141831229581385763954805219339090602624149468497032198509137800419748734860000512706480593733975112538784850458362028261880095011027800978924273951250603799785410805586613276064052181093911045948011318743391249989781992321434284397964227871058897474380428891940653000967764950482165315399049388697237029832040430503108857808650668686157422750594998173434490143918245110002367369301381072111133522477874132592275104284863919890553238904433301342277896021757933286231174741370623434660402629009030580057439651847315053620620116474095140633224390173746148784749883797834146435179098567772412724622806536632468445988181430670393604307581560036827981758186538866707211971949188048666885774971567277659558169144197646366068185136775074263524244872717625552927050982117804677042706919885465269232188254966268903561216044983112706513425025312729568258884057494047033648397537814437655648629390736698626095374299112102171911019057588929507986216934528521583422443022296057874391282571738162271620881740589232576634072089431449647015121828362702817388382480159864530084711590373298251876915877687383586118309921647185718345925360998188559042441708516601132618906226402141542409649512095730637028589794239628467803176934137984467648455201962982388451825965468680320558788634084003220835340737978287298312045889611869644070715675187655465343435512896055268213065925595662155328704290345448277762898977991547221009141810722870691081856328211747757988881166870435381699191759235912747824853699219289437556268069507403735279296695737261303674508153920194249201720955455362234683455621704054491727098811161660913009467283838399345479323333991828785498737230914972162769680660250211004830531385140726784003323820829662413813244678276786481827764501740056606932794039063681825569116477911921551578527485625656910634857545892097036506003451933954040624752807625236189399368687437505455490088017517911543289304353472962449244292760738666984071653262133840521725647187238466723891682190231537564838696635404092638430996866888455869055445186145726235029277216934046372492699257962922941251221226917092131664283077241977613535283367355445846203586621490698891235565700401506315248535942691792477235016410197426891283727409102750711233116374107625857276768086187876364304748358266867078002945791363645376442407526164927453793904750076289892221903188727435889094280512851742799546513168974509476450035510964878155591856132027580036727481949431242441420169570315223653418057200231607767497984332986062012683690942988195521682161294677678773289858467471805790514114988292462290424769052099631724413489873491662354781360102738985647507241752036038450399193825826879549173075987782435388500537029397067118025765873493293655332099005000298843416680474372025429563012397047296959088212144010945193081356637810612775035156286853616765988185847127860095862149390037505305719382573992602219286879085593098161053620672135819656058615304476635726196963086172963753384234832635104354598195195012641236594366607933142320080393498330474751997263768256357421177232390206648931298483485589124489380758833094475075225703421264384940950674537728208666425656196979859882088204962620193842679982048288764251725604986910757187700837635309476142681231652694934658824810323321021081743415689929785184564136462150249348565840346825024323136965421145170535510041494872760687182670078527049661452643743783674583953575376997460365033123998450197011261814405985809553744936743877437712510978004062769014636730179844268882700844922611650120392082649332313250159156413986769253637884987284419600141685842898010905651584355792952019828039689021579572615570170468033424805819007635349893415885077570514005888471324947639661979088996643833379660694170967793649996398393521207229899397294701490298222076946075904961687834037815137327833512716130025868611232171846916905243793013155737793232516168702139546145523741790106436336981911094367669652499592751145417637263739564501468179111869573416675952491311396012677505119696175227051950190183586334242326346768543828948128371917680041460540073354249709917931510747451668700251114818593024581760823097551276561988061672722086676597147726567762214735757886155804190860520439839547555074742965900481785982440289644454476178237429768097308082447447473763038448169112430133021992133985042034175461217699825098491916177456428047578488579787119145491835789564418318810450654088416221860289187746125603331047395965058155991500979960113271642806736156065937264071625685045982621866478246731213927405441943114928473690266660830949263440939832327632679484661494442198650919271573566314644004149760267456611994592655017175550116903377039550278276019269816191120693991281263882248714740886287790764560747065378943221942345104708340113602513348493499272732930361232202404524487016713501449956610952551488370505982237565147405990117420975461428726587819434058172995707426500520063075077518941015192543007049108800481025422615560691496573164040917924659399507058072096503371058111137822322687010181462293162880392219290023819060761897598200985135834933882795186342112661868891178779060010723961658283669399801278973687574068082775178715762054092136837913060753666803613098633281611300456176497564105702897756484891028192570335904751209557445144694636723633739904972545957053800603415044684769684598210601514197805728079339241522611633835313636419919544005462601783117154761573988450586195091368530348005546091462140431583076820926323377852124089206355983346442133302911227075482745209257405908810897317577173735157126755491309552806901793284779534557343403154508837059247748631123684283414065637630304737690862059221051373655636872246243382934967806596963229531949629949840423202177059457475477848313238107155820614626803959294493332821451259794479753042599314629832045384329408438240109091508702126851030203722647345640965548219232441410056879698076346740710204912847006770869626561042501686758354727856759120026736393849555210859487527327469522703081691418776600778412510680902309841790727661165251814322861233449407153018985500006989027141808385683034948848778593391303555046971053891658540048750016707823271164594296595414684266087642504549527143862823822381864754390357273383015216096395728178856407761712439983971818562161350242141834525907364787833991243421278204734546979662740528676907129847301578287935891427392966113028273316536540790103924082875748505090822352200289730583902656001665768617873321261718166707045140540164863879409975930335211236239188093766752465039937717737381845977806024184323709934710324557057093987124329379768757465995599445802124524453428394428433094103505680066386667418680234201128567894111260616658959955590394373863379188477720919633686846975792845791564857282658189113818125158916199565380641497944885868290220171840379938953229545358875290021203851751262455551330516899673397065370028934969576907441099093977415577092583900512580962722233068411647536481035881811131585337432125538702565165283619061320890040563420296021024182361668550850195118302933954231909210333223575062480584467206250335288944224229579466806957416352320871013454471045421020283353037244215187383679601768266379734203816569484125450376259351396843544533939220257563643722092755158624532967235121442076417674718535385634105389305727361463909893257267275655860951276220816420422276046675329090249957976107903112118220443805883763187877352811999225294195170358360198361589863764258062931864584203794524883776128723652760543479040942667035743656167190884790678850925222730491089410372403548097164705984442056494449068026346486486376619977406889368163848517936655175757272308510448522231570987901623384582906115349878627484992964828534880371828017788302496477699513545566621787113577273491354875693822873219767738600796594326037000172748677162240837747609753643338499956801340130089683013535536990271336496160907287581380912019485466343240226195941962975985653298899410834160418390084335829771638843185611496928993860749524209694916559091002145450347451236685665109182253885575569574336543705073870814506579816221642597428777035681921522024836941274400889722237058733340794432441499589902722172612760757324436795928492638168888140855807582346895235039083108327298670155153053271314566113718033692440016255841250818214110988705126192282968686188671335951552670294096212985103683275261403115633114448374357152145439504939285845154205601128613678649162052402273165824140666757155357776877591968639805358594373569489929641322540952451017451711002133640079105889161493571700278619618354112029646803223495409527823490074969470882810197639317686898044313990052331503781807849996176260179861584825474882956330772261547025181595532773361367827987323288352918942091885141440344094334099159679233881323959803483787059677568779252373648038583491114026356505937696271711346234596116892005567180149010871145803000299837204163107390693018771130100639328891523432630598729980988999728565734047212808309087599309010256285783876003905283026796981535481010784825175759571786302439720698058446879724339701231331372778226572815455228215174515645462995025224755826489907638802778657939947997715137535292446487887370259373234025654779137570190939776663001503250244842996969204735836359717372974577168074089753297002726735853388358829307590665186889099482502106119529185171197461364388346805662652988888657527333509909726647600257043053832773096156422437615607243630241482734017637141435992037728362804577851118745892285146182459216586245543378073596111332468429817474823969185936553445519138597522942699471160525407799498732694983280409133947288762789331501342531058152763571012616923010537927598547309266775486954304773994736441268445569672655231611141859868610166396852249695416424723995705122074045557124172982739122700422385045770304119640748546991365125762589229430164069190002240723864266343505726991601918281942006563034400717754767353442723921660573249885319622954551716227544046367192765196002833329743444003857079611967463129902059516830138087136031711814854412808805258474664010291411470158080597054917819766516748506116094459493001576918783596128657070736997882914039679655592444606448939241740906274072372078661241447270144288073353789905591938989461285414974696600438684775225758561578620777723191760121603404334817243331387243347308425683637318594623230675240765903330362364888070531052634296486929273767481267122877144400612996948630881553063815751127566709286921583888286742648886642182477852571075504371076606381897832291880992924080851097600538688426948025137838604672295470596014404529298897008100617397669465097079151754393739258241532520314566390981477339210563764203983101059524220393525186227232054807252113114864476362204158327062045749394106992670412990648207395729893842861312476665301357080267418959187876897810037504587586822268619171440286007636627422249445540524147371110930146829866965567548680907508296201684886036286630243397174534032130664839710865093111579292676862317472897468218615957476762497520589532011886808745074535506155961696237095522492964924386875143534042780536680057201197648466114562554563143054845257431797092082772028803510590630178219827258207356912668040689582246352813082598572995714890640739331529478777068016845036963663599358122661815875211135006541401892762025577458516522518517977223137110724699973591520577133418627548321780406926043153316832803614538894253941831707295946843506308970425098432837783972467532875136476363354864882218369089452706664194577588023998205525023444023449024203960702846444422061711024402787357162867934978731845602687682501050584279643195150952876212146643505975389699721224144303472777916471660365400840384244037707609029480749636176446114272963958147992530412488154505761271329660178534275317870728458445944614567020948312041366713613730152102993394157192358874344344206339893561290818852627355678163544408557033687578354661981252440392515640473958466768643688696080321143471000079784295516057402285085993593333475709615556721085037202281084859493367379378152203779755701191633902175308535726344365693546085569393518242428772788184824450771107252631959106425594165620242239606118135186435427164626328696540996133913723056063742314349733891008751968687133156751855139526093292406865903097054378340889605556506270838157155868796966455620101166700803710244295161694464552506954108131133439423952858387261771824585621757277627045405883908259740790921159655662603571364568587019218373447154711422243960281040737090790391947902739387364720441859469895643431781650962681793073077264665515092601652136808785573819898354424890450799608625315518537007137358157180426920386880469886278527822312730261146357759396525860920711074000348461637565279982567245693603418533286584578175440412742523034754701495354830541134599038407243436632971462662468377049515748123526879876091395128832839835677658344715590104672114753983426249254753233198803852078843164402987596165383096926458888066287306121570416342990442593284259288401496996008988855128866047442092333083369395636997536063192550728728838531535467151222305843086948494942527428884029300694897989552048525181010236950166650803997011089987179938714381536667168726678945392020536722025035480019356284935052272220076916709955697468137970431382779450099268542604092884416518812773058700299279900185677395296245554691663877068586763033269841847045650836739991976270680337373504413384778852969505289937693961483370114312644766690707798802870618746984328556832582348069287366416673737252589145619204709510241975404575473624344135693901561243618566177926921610503635913996060201105171759657580670419166044091926521085440934354112191504676876760908013970081058611862235947232862576543669740554251587203146526671801399803844299730302707924046654707260064997270740818268037837408232681467447321248976458480808673258737997928073617674523963783412786571146597006405523620948821994198860778557030184725022057349901825898744776692016035681609156480720147280574287648542652381684101920129609116593124088386766873694739884418750363454259979452554173088743193537353854780065347403644298189056491437516918082679259533473987888274539730701925780149127020266215390811743680581273065293784284677806218196222824308534374108636811299007777676914847509839927757079610430287136189677851999219962293537845395100795386642081902038223754965439475324278213585175548575973922302955817438991091608798281037303532881695769195032289292110046058237618769584873642050899620338818779313190363088520405059145602144827524222994941715864190840205001361549730938262538438406666803783952768230481787559654554935997474947152182915755456914338939691564630498528148070740583473639888759536054294715842244813205537074871912150156493653401970396690499000883482584426268000354517923786127758227320770337615639653850652883091820362271212566236598072698899439236103415841879814675562439441533744001245322670798099545577551429642403802826463312740046260736137898095926591773485342960705965786157115011096407377939768545894360992912342422109169171587331984575486687676892899702129870743739863087606439986769865699192658571735792427660812003058836486318101810771307530866065823578131015345132899009085854283936022220217779093642883743484886301542065971249127390577185614070009013037193252180334894245928730461395056872324566074748993428040806483214634757262447935248849899982408815276330892398019810542999204684580809616366353742335724714014393630583205869864567486384550923335611349839206229910960069729031461184685681935809952399496309467153544247701517315046995473510209950231678488227141293444474973045783853550210589864184563569901049782264565955163995694209529511577103369874693571874645877136996079228982657518002276080083070604699659485553648117692190842150456906839831449345470412405925238396279387567441760417696776010912218385969504249800062127054752684886985256649287402166874284640607778144926861022522929931997472075009816451458585628499814077742622237865596661522525267668332340948703327772004417169633506033271257886777369993184245592495240791290349207006076489729091609161582499905519519323608071171230469820763566448566220692284185467156366091475725129024069807304249308856817801474347265382247842355501189366218075495872085112302674879931197972683082341036455754960020073739859415720835521986513614545538783039132497707335612210893136260010881261624074075621439098063728440578415677573063772971494366165161780372609143345077235965250271529050662935108692186042335236409954860784670501704525083710505679786632233091717567807903949449566859071485063707606943802497916572373895869498177543292472753570884767433043389369977399814576001772975319777715607636388487637377049028005445866769437926059212458224644337066266538541108141959677567299625693994368868158890471917035079944935155909480265973264123012897885039305317409451483926397310459565385515946115914864689371609478746122072589329604584562671059433171188327594155634022627002743770388564049284071516358507325838719264407864226789582769268015544018216614750516270376044214735767364463582933220895271794093848983754445877121711427808614815358495639875748188821284260622247905855108825527348010571271717464839216671471067494278726977905791070264830258578458572292740978997744082812089682944413095415818688052534074258762746685978424600244620754056134253712159565190813312037686590263663303857881974521304485195946145712541485151279306163961208014488350138586538622876100645715923488171979194681001458398355140079836439474048846474755118169812323387490169468034114844691349526318474908182884831834694382755893009293627915410177579686868060514720931292871225760995661562398319233798412453346957942194407343396735950171962812626042185803977177625717103265275241374510949291823226877477402119352925503615574279296431693186231154827178380596107773239729713538361358963329559325384158204083218587879867052763474481917951455209522134829471653885010278109708825564361664453807652078195324261405906330652736417988999597493197775156430550864356397936690747878528595674834107218939667268885755518326522262414940898010212823619638784922610774044491152316527511731132482303123024075942056059188208761750553964488412041341043093384233172573812037756602652023113415485593536997920646842682631760134191317702459153462839988388235193379514968350934666388303708761017549326765491803598964218754358723205320707195070700313978172663603312452778667434967809546305480803207643129000650932289462752868506434984341226944996651310696339833159554799082330730291253058620754016370088124104169828661010539442363098091719975523757911793384518095290653720371707297721727668823300861384841674997687143140285958049140097104194640927721025177380314728912947801402870983759093080951543147390692186897524893175309577688083002197730337116778301979472878656742349311468652518980780302534060344253479496503761490420756878082867722909187347295911525425495293063109115654664749199466709744300059257920407424230971610458647950941303361849379362114783028796322149528097390466336005341234403316878900270519610418320335445777341632350561470475105757210882746371455254818696286872481547274091984202950488019629033132831664073953710852766940426728247221242071583445873112663012175221108112271271765047842383189801377091031626446115429548812333787706691370356749310873740545584455638613770564751182065133204678340944134583247996527813264262242896589465071103663720369699635585620095711209681852096871557315681842879216404030595456390399813062984205923744097834417558651323231897756931368544067334846834696147504252139755471006491882035407348513214108470283277515670005536721763645512852433156994098742111131894210527935704645851190793532818057208074799287090251573538118046417265695443303108036554164348064518911190647189080466947958386867321608744659640393764953539368521003313825417276551390538341133829241853457203292280082124078650461711834520318462980569725099172064420657718789375744885276849521006670953284659433890417453359850091727412099824850024382695160285019884916791789454338499416563776881557004578940092881345903536467632203223053794536425708883731325333495132329207304362713182101662585949634857783246806703309101591476346333830923065718167969662059089535516434282236602783131794278020099304985871824990225467296050783251436612905489564173075841475695051049905397004687747002841362788193541193657624083589566214576046953283837763572940919787174017991557472493747241807784827923454370711267200052941891549801521142163006411390082940649816664888729304867188101170318050915450854023002909271339093765091216539159103026457188292996077654746756079158828952164635363160818747290424247884383326201198092390085673582621838517808713956157883283604214529230214015054113414883393593385220883139908653232165563580726111803719545825518396712777578727915710692564079250519444689022114291357512227718314960579313202806099554772290486436175990057991156682221113311234128701895302123813040475930799275930112503059820454519715239773788110900296186318575805857010412546086951512074523730032299462718732017027100856625342860230395259713831473660157712708755886554079550650476359545421723522707364266564247682108746230158704452410757131087585491557683919764396524048369577149874657593878720868306286216025834859047663325799538053673505932269520640102631074836507049246032847528926628788383150896914509928001274096502670443356222234465358175164085426357987521776241247807662493097629299030325724107987711995195873866578023693960690751521629533858050869036948747989287068178376409145744638082359472859657804959433119844281742131777007711998496786977759038125617281333779682203823823938211433213853757891286260764894047451437664502490358184062569875483750197992022330474816211216885475982152774538524982126552707868682407263370125651457118790628918899209577661704462041738406859004877710084026830363196621526405361376626218147559941474809646195016036563797032280222825503974482931226723968159107737421949641604599020583319392818486198282228014179352216215768693496335214689448641889462095479722580482863754906220728952611609195868802921053130254808886676520333743272897848454872444406598869571716577841168616169564554562682782227773113813019369006447150018571065596433093270608692456966285674686148762801987380447087377020203443559823606701425027822149402149543547404704532733400935699234996354905929435115371645454528293283708950987909567805964843076853346633638075382970472489072193800428518430339070875525528107732905624897031993053101785011856714001023617475106221336168847831602985347663191798122224361652012967932665550528148591013213362390755349837130467850464928816095073709955347712004526719317667108231207168692461794226811170755201948300054498043033872360852990349159738168766915980058370446660395575757938825940067719632280318645887113278594294423639534519944997405874052945273715202314750443181363987315630658078488806550204730332473532811360206983630526388262596787605966428843618131410684053101372372354047842908040401528687757220832454736055875412294114178540844466023155050359736199242018038580834943611500853170310187594330885621960487461986291662797595376322431872769531978380323583290699421912523777083626050028352541701203881894664383369001886687615676277340537091035830495773427029678058869958496100272507866909722980258293449541140200294172679509220088955651030250287256015631658606137712537672500392102998290938821608557076696963297789528392895195006839383726398421654619281230421884898223012977073052222940048642247083535570758458784865301307652163572339364125453636022837921294937831767020896455286779498990991894554012580413465114145466554685952065467265570295164500803012542245952709888231782733769518542993172933146168085957184781882645106537032871338926553516004079856928136031891767573591852788555317139742082902470280387585740706825676827258885793958907177081681187515936457712065821676429557584408040255147062293056943372809994092719724036872046369706209513676589091128929593544632395151598319942063576513044455683964197661780832146667768377773916233604274214785136715492728440072701975870294743574976013256999828709958914522512835342455744561325656425258167348907431697085176215463493689472672441253210086617533334786580179011646885778579548626010764170974041639691453519095559738715896381255169907563286236969692437556439270918345880272874564764771167783874903839300386009285169141093752437610036271353939582683241904288014020090119732920498226856881523408905296886110267049829722164431288500212118284715830823116519652070397415195221861835756403977807414065644790101219786127748611072121675112690266697243953294491106777884732975355902221381297636042096413933170397602166743127985167084337923834136146970599471324801816333948493996990282173336456169513779407901033509260194375487233820010482583218470711074095935220780001682718973120654715890252812699187993958410510208168276234817831617722642319076013235742702299221467000018580762543366108422808001431686679377692679742082166610991256512461104077127890625957190666337134014202956157682513595262357357985479403104584292554611474606604884257943154788231688890924565598430785745137217618731173114682705489417186792555913385870452388507801915257680275189035210200360653485971062536666179478227091407966236253442264987129800946901304248665243130239850181835299768699216280593971795248297398548439392337169777940101681015393449260269110834613762529055145397201117863271928004198789736709946897035567510130800261535289383198095670319000708353694595997713722646286773950046636169116520008077499003838065914819764056625306933649477941086709751501764954271429690484735064383766674141123434024346613212021759353855591411068153845962519131479759115866041405754439951213774262026469821245691016946680090534612423546408774630286231284163371682572759831078838110536997692680337208537948718277570292079739052719514921455287329930990552732324538390242322447949342414155413383605869329629401165417960509423833433914488241945417075565973472549152293836752526252729710185784282513982447717030780882006994586669184473626258598331510735328029810137516952640859844313044805450949546502123145333867065473664194254678286068699126052855885504460934674419702924138029053223981852175855293092182869583950357153534994621419288615921182056567175448452731198497319475384441011646876781488533983573303236410382238230063420458484877157242168751963367845737912218003150453090765586615274585071434370311824396695194239983320368483017552727834215736752810198869433543087550195588975809974759173393402057931863360597399064683793625181539168159906181633276813810745307849449692064735614269641988125467929973202087386064096338528712859562279508227818935937684334109241337935096252576364333285209403391501966377733673493308474683983490544201858628805847926226837629668094087578258477309387582781376211758078969690723191596554288366106533357377551615450671549234034605943289334664639209672096549177791450060354489402674955378553736034942325923331380566761268132407289227976931214266726345554570711199749036993422534016642297094125975169150710192858671961114595378806735076817838269324238607518461879889681487042792925709696690818301362978730609774016570283349761867982681582488681042221878886164333514125014601319772979294224308977853319569604231880175485489976874146294694333875843738113532936403485959011118821316838205367721568146202803118296426401742335751414247502859721194827629527696363395560505280450774531101808215681738184711617224586368228312963097446553098087552707387856410852937491939549162417086560507984738069592349586708653996213739290659693531216016603952486496410104074685748116395617260790144436210826359528181309687527761832285682117071097005683316879671754401081590630326502805977959534886503384720756687809317140875729533022434380654560881120578803511346245092246294518142393918242944783869794239102864697317606056680992472944223601116092683529301021762222512557471474997958528897937329566401717134478797258366976397712556527067175859760583250852634689250218195152025380449021674141580163093795605262483186397945401534044773317585886206491251280222855017493504520980691479323916984193756581283215892465421532068263371752264575548289504081495333811857241566842756645381102473668052517283653532336293823418683446573250736609333925710533904338117380438902438040449374668667090647047475950428577464875516148997152806072680099341182225215309468218621585361088527949532941714939019031716795469239512768482711063293764459148670115931318276340912749970120079619546725776414962003102329677352521540943301797525144805580168375095121535626123938686970650167260175432944823116207884483041393836771111850595713789499816409555206918271373709145739856247236145958359714157145966119180707301920075423963514682462281616609281659633298744067589329232736146702136892734693144958651013171830358318056225588086065914589958832041299716048078543012031061776872540689495903160564264591506148044616556739533398073916989384268811069151223674586490279053431267832304238721310138375332340998003281382015130631650796902642021428431296947335150379304549942893942617355076331777353873396007930237445770625823985626373737988571848340104472866446140716633567657524945550117429613233116947757789043203209877728756496810655240433093108152964471499102038772342434630813924746100340362624980789501814408122181300845973140020681172797682881317674949971935645160989753242927515621441584802981815030690745979877727916650272359926568182584850449362373494919168068477921312800715480352247424695499401869739964761196575737698086496373307221376691479176585503327045856177341999945513027047120163042017323860817569402505674293281009820999421555170651671080445491655785863370141719935585773478061609957554297168677035162587710750930824905765061027361007310886774945704697115641975940799562542006498879236823159813640417646252801524527615699735668891409812420040761623841237649679467425335023847355899203255595938881833928694919974860665130078817749663567524603001923635744798502958456176166239335624470816967616760052937904336717919264146912459830361794360722634458238418190305307763942283778362329275467584745607443241477198802871275719561288621499706636113040302397204828549716430909912085081776359851542549868797407524444974951042862045461988961368835195347784467712665984952579278455968992952203014794267614809618429553073744683021646298676412471296649294519648879914536077124565764538367814783264785732514145783288234670160869474800758080322065990585613487310265551084548036049050179407802540787888154851165680097026599287077177966341677662035572432155283362598518297784413568879825842510286992152746111068557470275347407971642284540463851917122581182754940968868769930647508398090731407213771165021604369677197730402433275902596204965210623538772493616460431696364053430059690944139748411102646670957055863309304445433880238634613579836392417768419559832818987070833227890575523589498055295922826556586340441090043608031316372897589444952268501161222341499447834879208425713026268351974205876881865327794368208100605638275255902300227046249480590261966458151188780895299024881056517309483266424820873157818717207378494782305990349826403454165242754438370012794082691029319686513355871842994904209663404345780161247446878716289260170317778127992471044230432921325234565689905486546670499717623666991544054943233036342885444793178755909584901076691883956705949746801258830005847750422888304762180378027307396309931248812333053878680065408151243046999594922594472095738601233953092138039504896050201345211347068459275000564697074516153952801311531650191090317409206161822199885026219177737175302778543865675069294705753206485130992915312983617460571372459523039202092456144758559441102186599497190659544399398209393633966793839364617141839243608140647426071316319627743789109994495864654348114186393244195733574856394484977550195066336028201559873554126965729402190816264633950561908088688024110008870644588633768802878466087605514558084503771681865196764424146252943389006264434210856355297465025208635822670187350455523186821706633270021440649021021219827942172859903035516690343970689473261871897195345898618221683766992097305688072574375158954853493241464057816642202428422142222410997110744268479522538963641691774522920442632720731968382242838818426019199566821955939944557252000073479428129281627935683244363443295649070927872704817678632396624970979703949608867595116581651163030234857143792031902780949176361502402592081392230053842976896707948265367941963936815461591644735753298377919462055504935699031237674952831316008429792350138764803195552004552418576331794939584791501310228662554230792257925948467093205793948063690626784242911657438146087009517776840863173674519515434060917114823780634126498881932992600048422387873902277432769634599972083408717513457719140541610392014387683978750347669273939622657854385457672466022550836056182028680675895641240547375531629536152076177070282642219363379813112597985899007764516880524098354564691244285904530392665405798857814359485807619613495347822612543177252021278321157342585721608488623785623143498861228283326399436831343348887726008491365860787227881631307498259949713390168741354442653757190918162468289158624137140757566234364802547945667260504836035635080910233995633358209426362357245255380126407151330934394906862631696667346220952145363812604472710598709875858069029183610267780337997355430275809092042826354027112955842446531753259447707823406687498449044827189987805065754883338366217933226440820626745586683668864066384277641411841018915191293711942882289754393924483945455097986511430863125787291785011117461600871619180078040269913337554648095987619684484441462188840472056985057743109157092044012528020582554384157445285777120922072534941883275838121820925308837583386470275976639310734625286396151011443169699834517191357006265506190245838535799473619177882313839401067870743024603443962802360841098991827283949797154570969084241063497331543041796052544817343855089130733730115429324335890243265915405758327046036665809933037328064229650013506810394468425300438346511044468259928961889783187280408080126410099716309072386821321445805710610421127398770461275771734996467743050377261476468813268556581476484813906452702806265793371041517122481690057148036777259687406821866783388304766473073152623889612887662075557701966951867507398215812941799141672478251578320076278449660223686306453403516689429130091882542192138197279481387265872006574425837040374257659807895322225211139136469390038913541426247828329985128335499113423287618594978961957104938903915664727681181506629508141041863113755284532250620007465360869648500486112613342394131242543680453176425371790209646659835944732170210857196317706839004325547230665178474738641212069641199801505525601266630085489515735660830952210175881084338611484912981122351987591815765051501456337921298838753953088011810399328939565137601437450192050322272185437437192210382105278280674330339795120306178675580371029823769865267365271002163482656239692991959921966389463379479912683625372593227219955605757871456143808969667452613669688179406178600097961824277506594923262421406741696641132479072836894255198300430462239689576020569966238731146222017656744113825719322936825618971948516198093402707656235341036297166676040788091868191509373475113524165068190952093899094652515240230878705257410235835657017049427145100217583518673369176666518261205916086223431643551399265876784150724272603484252911311838936851853242078248896705443129068286507312840160307298140681677444727864607930615893970930271213168553837684034660751562046744490063788169972052205919433954843284198751676767002893004012818344857181269656348453871151240284891774920378837410721715014410665903313926629111130036558821088509618987431869246725858953493097114209910869404085383608048551449311962807760195530452831959934490690782741338427506643807818834065984380841437183711254721525317847415002973085637837196969232534758843480143905442009857884234644071413320867266178938859080700964345068955995299883264557499307183812593095267571785419819260955829088762433340879695072532605282598428013509495170698672045147922893292346715947729551355054734754297308748581916530517808555207204307489652988822312080726161719935097851030525762374386593390869515842634366221015028962495976455872085990887952285472486836187755735875233312506259049942202098214177754683700082842043151874331658840477799887331037862259003645851511340279130328212205878591507805856511964441475477153743548220792657199687000609660237823441496180949488938940992927845201980500188787343213622043632565785738484749869414154151343837269628566532928037548511932873992557470489172659855357383395888716389998282828253418013308645063996215138532116734845699366730860071361355920551504843764228535936951799801545392676295702454989784444882523791751293551363043171270300785111512485792792451723771234130708031926630240893012044610267645267286533694981181473658233717005691489422642486909366907756695109944210117481664947926721469429078008029636365988629185652538499609197143234540077051367134941116049685817149637471340939405375740455849447171241914231214985299247989232633950603216410286608574968377755488060408076493674234134210672947951161705338623901622056878593167587179303878577893114581435512026109168029043919116890830929137114280541668173931408949428309111070619351138111483974933168790989072975359381313832469613516077203712994678187095944125748469673127655168315817284235569623250937606290956178839690885200910238594585536402363649752488251402434248930261725762186325964897503409680227306021168261044958268979614297538778669583270821916107997680080940579506726909757960822329973978581395273192470983672586976111227422435337607967495263296436586191942809957278270201196304300244784765913955419471486269385174489338782562666994442558556535175989073388310917248545161403005910642118660848316313343226903304228983988029453699910555408087108151335385352881953406078488482165726832730650697999630537128862521144070151349239999543415713895298198497993325036890490763175474727823209783559974135124246246305888491382506155797413330830161077643696398059811041542334421645946130802842714637469836646485366465516172419787934362050483616921198269613555990931501420472591259288594769347794368645620910741954527316091367479774608302583769136918740022572652230395106146743334895416532337813181666138090150235209249887820256674800668420586333439153307357466450800070699422622367691409422392232011016070062508663110836104696355385219720198169827720831796536788315087115424838232741072510711644099875707726908809526074672686257370875663866043946244358232675819098637804357555103997597620897490652045617016379385150298576817899229485320347233194010274773725012571764617526572800047764201805712826816166893997553728283788997315847952878021298977272285464457354036650231715389943208732874334341031680608086985651719567801299596197036879205221803273229338261167254688247436552943690397471078257912703002963908824934813204889196444356986029953193712694208831629947556121406854268218927069684686807884512762533157629278613355312973115220117941827748385393868332157592124601739017796351520034205563545031549851729683542142610551553172848153988722867823532132783678683078487375931870312948992239236632568466206470934399016022794934584027617810727061502498847897113003781789797369731611813614435662697439923460654231357293316422725491808145979179068017327873040710792360636565256748131447828250206299043086031874406692777834786544341650997416254603915180111872118381525689216026486539653760698269048900562058352741447452777289336754016020040299261811299142137582373683071144541054921571610711067604387224704180880718145105667911742158178026603140366740299845881978311428515861784083260268181631759569611234933046140758532047758716843304025391917170994057389174191586692434667579822438368920649113437846107905966758255266433160191612393276740376749372578476411467766450667940855861250918989001237433895116529393262383278652416147557366167777965787737644619912472799379311974584586901646397922666729153283505140298901106182884957801619819730361370678491638765529005159130487964972169920626745815335444308183015058235000951504794195626100135530795801445918816354220015574081600236666925391811338232134777540385895364202416979873410517183955691482391773211603852187309165695710178521632317465140216457007980509642441962479665156765955777051838339526240518908260565137479720918618210380430549444807020137893404419398480483091983333732151931379524081198421777738590937959894199742178100676859663172317570210289353864720710849052960424893270163069677609935390139669821097229964410516755264615031900058490665610328602638445097009886541055996546235937503447155439450091840332503559052409643321955635893435434041906725990163251361840519697910715199774747422868929014003595304090008863452003294532776988262066977850492375990318722401704597373970863306836868887580766445630962850984011913727500316210318275681066350074444857528575814116168152274315773022103657776088180190271297234322328595215730248659345598313173073649248309889473281782193642855920383552987927636320040214376531684587782606689376137316197310926749612699605377710919436306006762016138396801948803222940010821505682461798323545116924218869436745472032241391323727630512988493005852571734846935300956998463126468767723240730705827153111454301952983223110317714916161294774540892362480494511928626615044335303375945376470887791083818027355148947204563936187070342909461215147373986567114000558417677182891843367629891611451740108376024023042221389152880761997699329591145247873199570475958884864681865033903816599071570385058361080691573947293977881035419550994039590375092081745261287406598404258239673593416201379095725295400969913753703259935711492295351845513361764688565639278292255393261883357965811302304542234917509260492796257391520062164148140283129022585380585078277065291349388353474445893756842411742759915452166956666793578103445124708645567461105826540649710561973499257367523203441641827250157070434432897443519209557066510108862494540863354648145894832048823321936989552098133996243963861597288068376409792516080897382946630169954762370577443723317443754318843337542760802249691268713170981747877945795085998027143875987945421963903495603356909845925788104551514603709857448692403463204840357876637844237124843130115473603879750926925774259298467656689409855300033581371796289679285491175779272128968303478791983326714520763782322288150579087147533224755111821291327771306812594084517945665199395563186944075021255921428425376057123982534441426734278157444146624994023618134671277394529308884023506215307617012657511013676584452892929974967376286562861976986885850679145159062067798273279210332709636743892274646894111730724618796040434142615858341344419404577629948545093997461652005942261335681830599484300236345470167736994789195212195749026564876305469311620653684212870501325701645762938984918178446154838073904676949143384865007531855747289040985217280014123465856727192004122474712907296117869174348256489436402144446530724496742552660250097797811014339213373751610192016458296964657729314215041747838605347272473451903657263805038639495786336510406997003828159473689316414848415121103230495169684308284509104992419937245469573798442688612386285210429778249613178610241831516135119598759226570994795064243865520223740497747556267413398371291741195166922458517734478801437774251900670930988098628519354663274140074598350799948826839954806512225200791861891111497339670874927681633369889720659611637019411842603770918994505433196270960543749001494500742542934420516764430102916314358680540147666499863692927865028874370567325838248462332215701212597207771376601119980046658753771009295829080923791026642185149824247352229458930528542832275004259527661020403150639899087515794686410448344467082957441473502850103548005916569857857087068476365972257238790950236521372537435094804929202015883656266726228965599910408938144499326090395136633389435363373886606089529232630204874887977198930097197869340517317162740320290384837261548003637729728723588987694875182307077798048076862283411140582476563364109287575708710546174519627912178927653366378251880503785889942402166135677976483176408527503082885441120238774321048393410265982750759773272187241383122165879106632581278039284780216481334749005491195371134334844627814247900044585168810299227596763884631143545734663909618322477326825021839361387418826823463077261298092981983499588505004572583412435766969427266993404085111354150200493068533939823709376921754910945763445723408781933075709452036047031160709424774952045912757865990627155013677374942019997109369330392237585340236839413383249749894678934763287365929050602084817804211008679620385477789571042662901762600011088621115267514691678196248547077565109172250590592705456419736486418274257476849242147833967629472219924429332980360284737150717841769995023789414095218017747582892383550513014244421932603699609780297219225057630039042768238716431547499057049116954691150527952208330142850737839844122655135855939171837093077409002382766030068338423660903119295309990826038769238739096052752136320741518988144829236564379112402806706569235475553629846677492459612446790177916625815318802334032962000427110762359243627355608032252211429593090611192343962997675954376396830325504457114010925199617404977534624451291137642686522734170901407150174010105246494228320875692647439241094944186513312319360440833886022455726215893458955702504090849527817649252584153696345373265260858360722178750265547897145720982192645628232755755432323024626758400031726491062922467452252681995884696711183776835642329189554123006498981076164412388239585187562375585465784804869772373055147010321720566176122709470371153674696004913173382566960376791730719225663533739088839226246775488795043445467339264018244405371144222680628409327322436657272945272342522770827495982625819835225004793035596843827018957990161259799753523469679862142894421793096158620479375235493661834662796290029529712721484471515734370436965667484801829997385700593084768509992578437939226407155398526025472259568293577274805248773479841082979515108500758798529298136202256732628303258459155816971316740711121988958231719984033575912627454201683137533298005631881077036920823803793209261102169319262150689196522833053237720772256142123991351608687660680776302029343889463353130367554309534737521648017254260105733868208545441053569317002039270142370879416775514012977555103538481881199505455849226321887716088499143687301172391831162307545289242699532774905113362777274979526137319609877435033631874693983694863348979005707071380825065067175148030118527985227971199521339008741112934166130400868892197115177756329834575382616344537588728040699748593198180828949505123017223944116421641734268445291079852907035359247936927217151036969310553402707926905703311003875415779915758214442976567351590729875293871197105525959625452555883997243132374304941234546101446373211661555042420434311005733338262206099310548774167657701591573698200987985192575886864647855704761711701164843558500234819051025118183357935303690546594457825548888253156451110536254481960086815872979814336625248729167842992220100798352090315279525493799095329824021580057427042584784143057262511963967488931864436337197477343422806174606104873531306348967271556453181654894931908710689314356472681401619625595916562976959681668857098670979591212317309987260148860522577465968487641579919264416937545807337161571481362090457788569992069280974597285237117571504398178974206979345168864231718735412223706826312017475783692722755881117107397838476396131776460963970728094768898532811672511910771658898268274011461869655590144801866422188078956835085065272872248581959630025132656362980657061458865441242140617705733273758806010012057493230613624781225074847291439901389715810163289359603456866438579338945130921143286457065097490134135433266372259374892116704540837135525623453173041740038661384227502064290791501903176049710102066077632321440117305692411001080230316898926330246734789201890654746537918371721010361785688392874342395462059522296789134533090739241241384550236441287117253798520105442781789354331572124899895456547698125226008798704163101832900672189162106626004864849276428178140458157017926306097916155698006777412709405625731264478763206896471258996029558681917866144877375444938687707450955033410918824037653308781149167565947952367259024338080579006973097811402633439531819469780587146485723286721159489115285232367951163092019173584487738786036456034333088621332616905764502675350146811309886853764147188446252972809711594756768908558969082771997182234390513644736069390378294813449412259534817319297325311898499597911474035462049065074613839815814459542166807433542349625544285245135435858370698133083781042795040738945351919134203445214543940129398550828373544735372450351842397238950296953533541209677941119867047902549561743080128442245245131357799348667921616003345321107303848893092180196666687681812003616274360709096810230648537765322646616566314822059344827995543691332586580125961607662850415347202530822692810670118142783021549634493620543598416463062108174441120807132187027378779383456448645763949396743678777631689316478061574101488607033364927800173573155947269549202224889737420051565706428860458510110819326353281435909983366817850509077471034278680304710374872998336811737186029763798564419419931671403412882210784345486552834108751773924276412087801896860084641152023198391151849828060704391796633319374021061972201414431484941749755471708838681398437232528560521031572554327067884924704329359613988155734505786104094227031015696226646143745353586451800260094026046915266729981745524948866999041741638802825029359046528673267347994957804128011860421386893833153690569230222419070556763910236810740351863803601320834670839585983385379209342131949850839582510366311019905091944515413117931319225484958185367700801422393783552071407983552481909649842765526868932353365478364642295980853842032915779629970010721366846823137570214511927340757444047431454763990571199771041325298811633233153137969662766256564134900357502260329424417910862556862258184746145754726413372176991385362869684449454146234299454240201674914128936705158888800085773681093620819558305878164015899881391914203820829342038273218014929029804162420904875459997399595541875314174873770481530584729483910633273565480247658905738351162392161357979612020433165738233647140403154265556851856477057991182922173430085538986462294639193504819217402517616587898469099707758153848865215115388231013728245031934366007353393711251039703145602952180964537969142126995778415054617611185234429406946233541369436199190228342049077532093717911693160022369453697833892787862647486466960108083436247997892829653648656494502584787859243004073202567909332630975039292455032852560182578012513461718055888377367726644479194363987215310583540989396079189049137768067391531868749601179766742276902154037143340513509575740697924966780159120439739006438010393309610050266208969954758451492532881531901937531456575994004880301669661538629853334037452407346016705731573388593826287066895051507219971272336845104917384440864939846206821353258508162010381135702325449122285586921792492766976163970302119179469648020233380584045770436575162386374966223787454604429881673679835561052035347581089958620606777865233327287636823808909068116266066043317241926787514000889123847414203087532336113841669651369313354824812653240726855458084759463867326916881751403664837007261284303272609869885448710201588432663008787330943374212175376017358648200925161443313381690128567437789924975107722704265259443355300356183035138916416942165513431707941695120145451445404116518811104196990773426692074653363833075825457318854191810681232293137960111781077060665967886909101080472361053264982222573546454321562198209948762504194809445341204530315340467461595818215231970724614070529686952854814102708332997354837063095639146307633910611366906272854973598519354728522029409884064038078040138561511432965037120871907045989143011582971621524527017433308844309626519966781932107973811060298452750151655324139778264886376679184877087836248253569409961382849778740250425890898695353667378062880059686595813877732364333186644839289283439435189536002531840316211009985566144287538860264115374481721981317750948450703674554306822238255742326203610317342310163912330304166813878965181885665345650811673241986299622534664402617046614166993275369345624381726186173608847425503820790014401651003182142079390970025685089205283121769497440901291952869538747632980100883015050989542986395933727616115104114438660917345391990463688805755205921885355433638490520440438864689875364811530668087212940970723503187429357552194275628509060984282143326822419229612845138733126987051975813542569029198991000764161576577294665464764723506788751610177947930290683002571129694765974346650452998825121125483292012110956725763478750624736398298815235499826627404453045977171300354106183672379393410675799315251168563006609806818621873359654564708268389683748785114023720101521402409489687663146086298830594585730111914909255283402928356525474938945984169135840047741325086960136597197710782953658684066371858365705574985567778642504778213779258457020372646046220600701131330341886750204491706445226774962002778954995923872179382769678503559980312138917197775358808425322785451423655432787287711332952757034483609877408507195994382066498762348767299070779309405633975625113184958653481301909193052587045859172942339410878696801538412765081619677320452816992461722877661244141571679307993215488371466325787000103457679982374492451002725658877398868692625524419673693115045495256266968554129298228881873967940914326224622255858262768020498037736389361102084524342110833398949777385453305726309207440701395310320969263635916911413347891713477359837227213575269734276001038635680189826204194406262116530932861044781661693338336872673437993121794762759147519176117081654591169607033776668699055128348465965282642863060733312783214190353212805338340491561231548848150416654046870013160867226433017459523719696860239513194788372770701916868863399484658690654625395665651589126082701540749606836437589789711378939222579589349593603262623392298531678857778593584563440272120061972778997640092651827451914098626593744508731752170746809604168304963240992455427268659409086602987098296758343388573300335532503548461386184301803198698268929349335549502661733793281802573882003760219009674362768181634983999692501302719811624033294650144169734059115437237300656025334550707279511276792849467012999071607548397794484078745035168672756910211284418144252353113557657305836815437662991250229313437490932747837530485354593961422307361565626850808238153928073245966215719805204904634490877072254493232495307441701097033884439729670270210835750161748217946645110226561811781291081771831310102947869567937279839366762636604351285983497241029562621726990414226885551964859153495994623752964014569451265511962614013071035475093244305671522626489869936143264638946246775389417732880691316770488630404818898205659534896225379403749856425163745303118296282181944165060534014112915077554105810441674674678552687396957239539926365088485689851293740737574368507210138184111684953259259621901385524642723154112016965544979602815579148654628786827107851687996383322735512613906065403571318724209526527812293989645057359479423371900249171872799318407997907427278304312254285428117995621255135694294257683144518953764307866251086586256083712315074545868874187840161213392275943292275139839006781698983315000001625631899624064190822039080333831065049693586024427544556725890653788045200417464513220787418632878327493414661346958406117225129956535415961633833195944738638431161133054478610053129637498325208606600454361250786880721382090122204113964860110042745124345099619258080260829118266630394026881498951221308879080523703301176624425260189765590174983387948428313447078402809907967722665802855745320133621122780648058468801697326610521062401659123780739676338764928850672624386143261425268908972655239131376752190567866167373932194507625580290910788634843644729565554044549456008821670067399663883183537788223014095317562926783223136579107769375391241638717134577387027766500892113581450019927648549291425916113267176155762079814283597214706431213944568250909740659047892703212014043894083125968680668620402758536265353890445423893907047994895348133691903676763499122385994030637988197095170077148179672973531555851599673322493771625704528066966157197079203225596757612353571215284779510768411606482158946890692444044281229721474574302882295002145481486046821961738564024177893927893655851151685067928401308684833760063076222633371129716846038371852950621105320286697858715915517555987296354493072509802911107861623455322345506445115509301893554917770542106276754090022651193511947755022684301605609169855735655837991326532481818595381438222265159080290349721470122018309498883870122941997065137268483046771125869239301910522582610626888518353348322330887220815185446199133964395684118753801269232212676561978589487773336643281046670854969259872690373179575833372259573489232755070943211330026126838359045357227214126330287267453010710439857789300078403645177511169211250058647247323320315348379600661368038636862958962457194480520455897043149186294025887443053835485551070741967846640939010163386302528081606580276453889518694876325387124965777844850908101103109944350164442567854300762008989389824762243411555631796066145517216108629845842806787267748879626736912594200611852562655738882467058034052452300339506146878489648438085908722550100219823201916701981167736480945783427342466891266965377518352714291622649822249813841063801334579887333705553762426067056994084737767769804808439932407174419581166459007552299047744238377338150251295716926954336561529911886375144660628756938823959055362560990145204218930762497539833647684135723499911860231347624779203981500426719728763714436209616390162060735589272707233218388913875743565304778812280520330310402958893995315127230089765415563991888513979195023805575764694648381709096814222953841749047013791836052225764114600183186337027506683991249221181116842577962629092084603374102054230110036416810039387973742729742539425179563022261508114376384098127917067903873266263490825969006858538162594181965409931342875880733169869742590285170207696048172378765722728605460748950578786949850875571372775167192128180641923750208259418407084242686904935000943073238549197789834629633612296235164451101366815325991526682573928880711932881932812816875686302114818062982058621151896668364051119944204880307138535678071610155003515190160052488289805631073660276268029239795270180429696068587643984620539180434155593267372436511145416078374128516478626734937792937975619772676789652924248655392690816651035012694044894426456995725994252886119615497771187595677734363891181734743526863298458567873979203096325988225651547322865101852422876987154576154018610201069199903398071206007237112017710793963732388185528906829819109674596935302176469540649604664673998239357631815029528937578834662924494050725388924937286502095246629229860245824669894219783854394918345075213688312142060178950241625792463443901375119059233788702833681991947561143495519378462992147065210961725412119357473481902064287851369131135928096927915603322073568303752507731971542671318785079406871745820125787428772780206593964876026889477304424821778146111407388765389490038548558887429643367750971827561373545510285139230325482955663099330036855943384808116570307704110971683502047544570982582652502787336951411561177553745728594001151452090878772690195968429937978190945262394947929235073416301359943654544306181080349814651071444502651027237568976611302690108545185281134452922477318590041112400226187383270161268518831849254649230380994651129383666617210016851009359104212969960210450332672695265150516037281202450372843456436723208832367852620310497065652905815318115859939648260850362507652416254410781240301072322108312393464414756625189775841329531058590067135762733274272894633661142686672532366613672817587301149647436978667962082248537339039095731673532725179603634110097671482760335076525203469520374840033445117678923564626436734666482303465020033562662583235377612370979246254386871425205821027519626275905541752756523398535235377036512102755173105318120939483185992035527988552606007745177938360760839382902969096140669065773982466489171919174167595314817738258602126338035190823425104209308242526228162342566296212863590852367015450110512214649315544379665609487758132481215717464001211388869853067649383196483010776656820741100791922204548127865948150295197570319049923606092954323448340421677228815849320322301884283723093055730755257198025224105520603337471822803924673827294533553816268494035478107705139453633666279813453970957470339165916790713608673296011710547428844390185721513490990647046685860954080777976264617583406305806373328231404275232444130734150231375691637725178095838805241676576998911958284789427682992584597108464947724904125740045901146105298217064764681784852810819759554122720815655913754188786091551755316429588270853633096992798509490744414590202958626756044153942627061175450419445916293421021323938227018735830676635782887933952625861906282801140637812889104522860726470622903721564747340782439415642175686512585267515793683297022570173655596332668356090452832662593975717477897907378503318032713618111101847576046049412340742298633587824486937394530760236093561447420860242634865133767822462803855836679159548374702215059849071790883943216049298582266218936273172750108341037959544933122720436775442602400097338404242155014196437411253953917557596448449255370924273468938994456946850741696660796782150051721126759762869365511025126371451853129814478047721889293270975123126705805036737831089445276351949290023838846099543435739155394693782868441879318621594390706703586035845696241582093240188897594055143278771235742113086241290555776361374019360613285372519851282366728495134224621302675615763135523553586880466107935653039003553682824004783090801812945962898812252305999468285520747742728876337832837828020454715297543361356574518815240180848707886060148699519229483699911197499623890874531195631704914151080341907313491290949263188231736224305112115415798756899553195741585460804693737424381411859029254520218413641188140529901962156161380678788808833082719283013376297753236321298029501261633876276954249417269554139445676242821706675860229518283532364860680374782706583088617829850941144037162802569464160964002841396754385749650615933234743235617160186741421824481523671849593155124697815993485031615203729512617837250541720123731991034243500218853080788632950797672120969764643679320222658046130049171396713134204175938335674269110480121545551567283184151964253922301615179125689151173811095780014095180398865134869493029349999534441666101229612225095828503276810248230847933793053196366929623210720982611510535021384167816252750741905248419852054975006111602261650721599675005549879063895023922191062490464895703252399131279034757632521205063130485669721370251327230551978135943188444788686509458945408121752954953363684101108603156827648807747190841285169737068749310463682302581161344528131468786456303795078583825460832116461042339208203929993526400500397126354004180688448653136081484075384780726219704009615273840420854229153501093600241324030009611641261403887258728262304446997413621293098220381254564297218601290136878765432248465718810767682169857215420499718602535645617498694451139208413820051358289612558587094957715109087941380865885385163354677717174543603590692462748256716028029605721929557585689157696335333856761734490030520388400762774446149757226554102476799545354270139633955735816205406394851490975359435561880346691706276174162888346829225853450837340299615571568094315338991197745604610916969567223155506417448760134349443765145088238909664611555588664387708911034745227371836715948529198250592654232526545267837259985711196657742080763236682338263484808745190196575556345920497647945869505611034640294696349939301362119645676000353489135675365812175549521445696763855316939038013699894001581155758380105394838207120408610628013759951628213910993656494958242275430627317758955449665349684130701438233317093764277981962689529664894503265689380658720127215600879128789528919465373260916134682051797130451743371855164787394560299871702396684825553089705039980601863433762100751145696814120386546792989136178362868118669897594130793598002815822836312307936416443259395110969806237396572650326699624500741645311145558111805212115039627365613793196267192219928271496928601551966884047884441733496897466946254471547753449284146649408954939146508620753312395745440792150937701523754028177412137889766482632195041227698920138893683230205243124848662266643824576093505921481905339980452007850547880488471872890900168540954565823201102813513052466617897346709816699894994197603804896076262411213968646983956441672566325711325111646566427459526997443853477205340489082818260521796424980399194417760063126041350987053686127641515744800761444257454304231317421757566157572557217354539357003883519780090082176624772526639938865365082883326723016073454642173424581805933037876060874415215877802275386495196143033845364573579841444717356473959315051995296451910631956603999151483567153530415834184333147843378176170999368306888675093317500397807706576059870133389558576679922350693674813970543957308706312603800604462020049189783250920570808062860159790026631394859037260575459264190362681302395101245116550741343126145579428832592267307639208954304946328321844827769153513812223280267252887010223053409670346669849929613960907442415381968032210144556002369113225320296029100691350009803937644284459932033503370381784884389155679362565607081696788153816557298173667781217282744175411589606396295097180892188194471370020529304523236080141805173720559449428207125338925977631928459977420704012488212118784924258510565230361722967371388937523681103470258512577240786791548437163112107655925402859282855818587462145431982201226670969580000794478092527379607390872676723976401804800932312188609287983166332841597129241388619171106600263144309869298199690388792906220508128352082809985931002396055268834861006573490700455622931500024209850753331819755416111318078596011920034509393920199644674764077500621051910001571666709467634290190717771414679544433848041177400179349021431017153047041718751016589961955830324950117837607896795646793697122397008396026893061623047681622264756771799371457804764340637271628617310904595557327764606001902931219711500427115916740513984678701428637962189828747950268930410544778597979636515166318876347381703746193520241799755477990910173101802826367861376270240582790124413335881150459310883654227508676850133877365440567348656922884409601052192071934216070294658318257637778340938070577452408876882980673272408592426477301526003664607024762931349289404197634834579012869364251742746446842439714016730242610453254664972721932300901177749267434769886010034926575342399120058059046621987827631342196038925346839580810805073508196330797993274789815478191784099319071094251063188660714059413960560752855430199236039019104247237680522461046576313401614701706102776818911422212134907127936974009083357481527530535496952149373668285144499205007241154397639713377811137343813274085046547832969170576597620044269027390103802291502153874540656527444370981312078220210939496145861972861982202567508001919113567297432283054492679724233438861186541626209735518432900332188208737824490706789496782291700122077524348259988638938128890436591007909777140612824813215551274204044493453724472530324949496205308135794379634347006539184607453055642665672020252371601434708600852929753441035108666081583375492970571680279494629126419847159746156486620376369382561496351764751827680826875921348150551430169552397177164020249319905064189169407967130704338606713879217485898072160828279720205611374574002622597258050087653676097751823684666117050299539666792666370813228354539125850263044305231195748804633958800330591566423470780321853786804170585291102636403281639875732808998359447204801216365250643000188346983481612296780604208531472412730021516605582851931916673001064608546706856555475542216043483162000339790400474353620233536901151054768913526659806658299976532964921508237972528939428876743675865986444063135367660847929300776316038775819229838590234980331775182220455916927780525251630415887995623314191008184562007515994511154382532620860213783247281660281372165510197077268656712056915057054981848420631326896908348886910717126936989377405817402582518776042486591413194878810207677886019960926779911946758918443306092566273074695971644198528159341740160931474395154885469597216550407999338626173170615530980994063612214818305678627675432932822749138320356221622839736234949928646631809399883483942717966840585773124882018050475667667034306205580717610036867016855862425060643126397502926035183384038815814733965233986206965549771191212603379988158266166047944753725969230420399982245679829752099049940017286926725489136830053263278735119155734872180270645269535342113340055194004479215504979995168417817393692635414733062439051623337806227449836220005578876195974858240264596573359855136273104239752555011347231749559193047440134007840748945619851435842446974848669528132537050107559496233291860289856504354054033180775523857671600784352829241256300373690501712789699465089219005165687504836197872624714964835072901027433469196411378658530138839814344302987029459067952301011535323938654148055820866449334059207232671705468024747693137838203986631810742687061564207876939329482040640048544692189739517479643077828633163342969095280707731797538230247003245126890416447487085191395355883568260424835136326897732164396024758582873261953999538776361865001120368762492103577353976992767339144781649095133888033917034059216313725125278174361901593702653947949186171889814055862940433456471371814270808807819331327413414016459485130356824528328033867512916711874224085826385688881972403697435188922735498646610031162813080945960513157320579098368497428538367797790635177557460639272481099325178200996673969436855132305332621907211976295461265151683963388004428483016429887282676603322638315534930540101450639696420080786636203770913666284728584616760236712712463395568404237187197578623537419296137943921825183421347603792360591091488139476846673837026764706404750159505253396136090320752424269227821593218589710739177712802707390642134172063405636567944871817195994133200908679160219215622172711188754799955756122083596636493580948368790348758804242769803812553421006817985770191130803364521774096631654710221112649814225497570981789882250616302017656647272973589204448319449677970189569019523320598813529684979079562053685241588283942636258178278669980304993780147386164277687609001507633716998470422501765361755292532141532286863733194940969178702619901806777237314889267471328041784433527630566808797033930765165103738287854667773821019071725676643927776725294123302549849219487663445487470061268767505979399851457647760730873514452333728790045764890215007302555473397156273137444998707247970932476204840987196883840429868774864603528503537015146365630686390696345232340385800455560283502479872696113601410542999629690166619763960809615607604566599255865000115690912929253221662548934012742520742762309535957497050223353300794949079267933510097440187138391860584249869416936488159405178136658022116393517081084570191691571561378883235739690441831983424504696994314828870246999852715019811735752671600660909312030385481375983547105714414060229472064414034683859025031700694614191807196394777969465210193618562935718174044577637136169442013405067635371498858228428157615609810449007999920633682240187576692016146676270987923094371471801585341189459930374087711874670073996620332090568790920699321122669184030322204904146339562367647861939487973196323446966079424864547747281650738494597961214877958075292274786223624495974556399195921119547564735622147786335450409204813593715564865562516224589933743337543018096048516990641213138208720010749881656475577021205721420152518917294219899491367582663390906832656176366900830403495822555583857042273846129326462828499203633777095011208109400411497112668783152582596102542789484527282247968950561811189516752631180877330853039629964586038274853354646013360996949668314142575454893328597572437476637569779705899645044204749808518236110236494015663326205176230227585605539578721808048987825712217256544817500324025114691962597105177172321920331788317057138387356722718460621195733029584631263315823702669958878025300749381165347434937202736115877370165635214644544334330293935851939100069381111117773904103563213618554895848339068343746569514482310056607692536645003808869118467781983744048533279431201717402286733225131533227959928050697730994571249323676444951770304266171308325784881550094678986022317682974569223233538531646034261417208716911811451056192479416276724224713190153185040176507655709891757873651583745088593753939178459178498578174500831791482101620669563101846210347398512168991875863860827292818089547777903378861850620989208760955498106770234924060562150339040742221472699280778499745874481240700537756901779712616521696122651286218529479284654665457785373266902588318293047710718031375041023431987767250677330416715978540175559629179092716469413172013321505166111245197112094001337706298699862487849063416120970110710058947676407470838813881594582544567804258484943264632980866504682737004087057768610389902866500516830909907629373534970162522353613282373415859479643551178566490136061635974065970018040685678117183258839144176700163528085934214145162655460052703198637883706863726446177156386502196131156253489617713150913102987100477734892944151516552643716287252422054228605601644593016741665775349890685800778403633643488893439917655545135816895448885217906255421693983942699468087784143376000166636891278341891573633762607950064061418636111946811547246444559778909964344751800093979627738693413240893287867268912041723916694733231715185781526001397740633078529775029028821396679796210063771969217922447955234602940227206623094752172646183196598513006573782856263301012598918101284620550830441245858102987907626220733418502556707611422709206533892597957627644076736916937466423260868732448765204772170386611030242124568555593348544348319881968061219865584594638585844940783249635914491252247859633816039867747096382244461743696058310502426333342404352067520052559717886670724608780551360641022638588485072640918945798350629473974212321564894085569354349935258489316230253782718039807880479332238087607175919559612221681983947068355242856062219541162831500190372498589034869041520117391082743164250429201138530849143617010250405292829241917302368679618881760084684023277434217072003618031769318854707306154254298878197306164275405476994621521683756192087909385243615128100864518276609449067283709072026576677535320040671021659485621848730015571628460345684153844081487857017380092379239208611860459122694933044952622054629314245705987807638892425638973000219562552485071395959010663036076409798447347508802478464300552295109069653333072504864687009231261018132703964989284449454121847174514476008921907964824244150754469467424434858301359268378421226215289154702995320374004364671123448757122818236586093422171058597487195029659313719407388782585217673521197449510284422302289854923320029675450571965517922076625234596935483846342993283467021093191626577405750557948795058706625115589926179555526879013685844188383286758380685536351835177880415854025145039316179758433971086143375383671955156216934570834243208160948722540173112663151221191964067869286203094273214354507306384435822733492756848571689059644094644074125403787929837757745670671076902326723273520525114467098708781396556528414913821056484392441633454399969103524056520851202854525042486504413346807292378308550790902049892654588558147026536984265812889245764991229739358482993140961744197080388744802155142592741561329288710739171536846484360678035282277217922791899691754497273884340912181579643455302951414457236624389514934449572528394342350236293484554509618843620239061573794798562542317465932343510019816501551391328211173300330340002880699913244159072049521578041311563380842288604632287859703147313686821748474976351312276783064889378113122673304370510209359998738203747849018002510099998624767532176964905512590873104428233206037261090806290536628098555299179868755182077554778121715355928942384924213580595970512125366723234124905495307832075834981549850507080078928955812617887409452649918520628215366128798549121879262563173528620804695667610587208918644892108025015323712139731253693252384454265520360963703530706707928807629789897403740562838734423240485071335957787285582356366160130310976920383168063915817155503358446887281340972435413471076719791761402504837228951287723789520990354824269298656469852957012876243364125785569564448918716134995485588670495842827671921179092553669819361863739026309311163379581582774019629933355533312169839578735494018695962720870222730897059213828964379184537471107759983732413405024212183966734776650875061047849855880964717368963147566604860953640143463757550822618255463326723423312988004922219632913107657448430675473386338223596309582572767625221066929465345772006718418321760277898871445854765060590001637011137436736141308984671219035479408702042839941474603377317854012148300827042147210045169966089146706278343086412582649504081337796318420688344875534071781339417058540628287325398775006625039101216359909235030549934388329146784562831772697571445972391926291145929212751098986439874448456715254456086089028960748587012205118669045729089881223078350901219101675617605923308515133270551159769680055645906623660622433604736888891758203981198706691740909285426073951633143505241078607975929735036686418507599339765089248476715969377814093724970226242304799688750097798892453264747287266078054830671217959074569067785991265083928504350311399699577097454773164639356262434713577635655052004664974022260976139640071456125872002462675782182566415968363641883300514306372889122106969662549706149445916836553385239726262590659722002716595585479105212228620342576042841956032107172736557825218442779794461295127636812278813655601129990936622179753590780850053680487029955743234579866936987321275325109155550721192692435023611483570113800980019015789839639374529411216126518372234767878856827733696745593287923747726420391881157416371057262188556217124651594846586582326682485012964747567708885438603708300571118528566911407929415183373285228155113589280158598297555805319021049658918357597896992042767791880563555445687107824892229380433089326492442529752174065434094800706357757704601975611140570847547959497160814721515965807555017820440354509791098881126087357424415067434496163269190885311400397006141574863381970427794089603227835031206383743003856169464993124352978175527169476957325673751129523286110991198180810290323227636425085791503835831889968207130546165228785455386159261314496171480714385906810170168618827058804071558914360278120053985000380425242725046369280850864560616246738091241782481299722315737092902553808429648477628415527588617773742485442272574094516431635953187462664553131811183351512095063717172594181743505742848023346704268220007373256847807229667489276847012175456860458556560501767257490388266854324315781731689591370939482378754831126704981327468022474569924058442507790932557002362204780393717165618168100340517903782519070231012707820298311202377893170235514177517260925463259588096470508787579988497285409159648802504338459467854585402222379232993363214188788924715906688932065737956871108068580816402988678242494325864975523413877727372058364108782913097671176526213077774180345247564676514593693757388847133217342987070011306736614249653226346324575383555334829421171659141823108521588337414439863257274857110186473987384106280966349984683499207716079916412503961671827210699074769889159265582051563400562331050056408963292648653850855682340943268941532876025916636822002314348443567355117523234913721244025062832566700038981636021780879459812622784873646118565910482508382149739792459106718387140979919665611881031786341302709611647608820552570543531191555869662502349766358437121343824540701410139088318422687588072842231575303265648016649036246357010806789990720302973427061823232918486037747485858614015437558862189136608562956919210918518794521682959132974278767365247034421535291200651452151832760090968789566750443545125929988266439468149206796730174748711729011974898221913796725606498579718396161682657421708350686310391890057173439991276033849401261010247033868478861807076391472054957627577539006225689155659784220780224742893573073048511384942833367391117030181431193115204982291800819479697923202461318807569074589154645348525595975686491352757224902079637732262721245983435191380726873556705039934137031939717518909213470034798946160121687214540767300808299579819906405008419649750549182641501527401878735718026115894864289953032766562264778201658538744405557227312735085912440789929794307207080282139903505069370451880351307089725304357266702875546478023776207228546798882650240367107783152055194102651912091757047087384269113457346892891559410338048480940675117348786903946721830690838186491693959667433840480238514775264959188719224305082720831412977948635174691663030520324709369497194933901946464333646097983255537963600730345095536311486684552552263624361850392124469937097294345141182752965295506150649224012747516278420936908996633863463895087305096910363979860656267850742955672514451205682283434546051807458276826757849485695674424843693722249216192205640089241378425628180100248668592122188132234877318081977684064907912526748137323647627158725865012574540029611112496947453445337133432965693862932410071870137723474496902240924332486879208018059684432274238422519409327609906701028525841574804960788819153814931291486396104076677541359998314985151475054657206693894371923884129848622778827882568680985725510374213106594005469517104051236766839908766457826273088557395935374000716823313018638247902933827032398725847592104603427242458856598702780747189700486128839535696417379617464849955239913294905572575933435940734048245429124321428497150593121117587209190785694869850874465889719281585483888009710559275281038278582880401802902408284361455017313429634316355377939326722203967778279918097525161862735530599036835971245087649317330046959383469111477705753460654152970109705116790723446166023724077191490568213282078053421564002649645671769207299467950575477838790032525870071007213521089271037374454690966352495925195977481469634402776418591550784043420262660570562248942834022526325462867125443461575450807768453112243376878783959663193477960102168920004893701377892233648007111702280132718343906966160530843693155013098303757707776860901958587344314043645933992213620089322985077137301161048414708658214738337171311124262886117827462506478936832151186511443180887942275272201348139546530866754871408689840394261529386362439143812833105368773338438576421690009709189046111289351346264853246686453855681581774929235597914942815675659231690526206415806563980781117054079400810842893352290545741007542426512711968035636779892959257277810399388268897406790210127482229325656942410989019542492922177292258472909196116631780104720043376859503672264693865695269106907675713680815114316746408284934534654361632823842312138929542340375961162679114498329950917346299240862039872624155694178892130948158886069733441787464781324956121835020168942929435983587515536211423276579541621573222770525787112837951549497433385888248493718933651649218777788307001490446935184541877587129582096982295826496174289577727227034150043831714359422568972423461957022997291425751937869573017468808938616105320423603366296118729001945847872166521068074443953082378624790420193622824945019179528332225480769062000166970808308171088737063638827140647370842075690168251561935117294430633597744962515927532538168837119923334871959050796289005022429110904153703182816847274899274499371877296295308309493737651712321490933726450878604361323930916427408006177076471834777675662740603647869491314654021048164385293932267901071790605315661377339125187536329334153856698862960309369914154303653417298613151353006262228094461993287455897449844308123810732600999272826349025691819601043586608886826847837371438728383371520653221344518164438775567418425771399998941507510192936773824354010349562512482005952647160946981169722070663258774242270510516840714487793660600862657670040686239068713430236365141828119001598370432636730085571482219392742746707731492876863674693438438094316950786500844315693472813645192936597763511748773397750725305482143999468742324068146481923777840520184860539556264453596836467825839388936925412236727782641301627109648621919847401835712063515608205099209141064930241177069993779814052757522935743847002976698672793856506488671929115883893653256987081572595460417119156816748802591122272583421525545878040506062984736091598077523059576354579986288365138665698406285369216186013178757662962866076778308811512494092899444017815916675058608597362437595235890980447022131279301143787012285946312703173314362551392136606831278340875548334509776310504621020499725792134797246610998301723868976395638405444063406375444720842930605497833420399672925783107440968153653938763014798467198965538990940392606390807364422173918929415227000767243895196835821666906983665715507144864954453903007223226329546551916185162411548862622313490358246235820514968886347618886500073762629567958888748360428701157922931609851504571391281077964091270075195722326171975860464569083428345511508774225974999303687834497115568687927768550100719221721646989188226322285674757744541903717556116300513238599260717570973180411293223387943432905715458751479154795454075610726915430082033218753579620108020887461095959402035854593729354949667681236886934841446789108325314729947715483010577198116957192628706809765970189354524894609570313503563208520729173286308298698900091567043684470058979766317152665594304448626062374712524953347244219291601401174330745259960731472201251439189778358245196464785008202434593730685422848138292070001411013894166581701052907170789519961247474833816639159823989194479487115533562684490211722553414778623031432786398815805306602857515173726767155775504467658321265958928925799986248403568402443594171983028831049640641287694081796452948580191465611966299539646086532330070259353477541329280718311798283597757281219113747837251666706391603057181252353079460344884751311591517563694587571754161745858283232591076023212147638705899252074400916574817818067740159051108849900854081888032625578652279378982782260254804523066103057384824417488354734613226879735764204509756994945022045852097498197574329623882247038735665076293743403514033202301409388930568112724887056657553346888080799985201113130950687706168323773730457578981098514943362222174189009242251259070074079161615492901080256938797866663135816976566364595308621129841641597789616000307067350477141029881003579504445239524727039188715826147992616782846472305580927118629251320211598116298810992690108149909948332817295262686760187177725230151232565075693315397744725545412302624872032852551859210173577861249137638085473526296368341686665182585524389694973916240555857185090614949336430796966320319654271040889955634984009316457180782297518768238825314915949836766900434485876740804786594943670728198793865558868012038404857493076046206657020556427658952717252957708908025159060561465647248442652016551747526145378371539125420976084649419620026703327229112080338950406306640684206545664843661388999698186366277968914402792776807341302254171889887153715523176100333390200565332278021952208395964350305664073002356160872527958587663865475834355855344752785073560207926750451452768671541661403017096951212762563773885346681358949716894812443779512277431938707773179157098727054989160624075616974619664377025189589567134402348549131033757154946710722338641202375213139195322505529314841033777922547306339460335975464010797573663960891286684161153955454900523583603765241844204415765901944591047907442505590512529583467793152119728421216327059886456401580797876251791217433425910876417917217260837132995212255092531708723380113955846710403918560186046206311805043121411248139473619332214543273356558477348356855057492069810914322101758056543432595902815157358133807099164177474561190326501043863826362186455199786937894088061048669457675008502279300178910685821857806713817917316218110470228271585101417401405496645801521296472099298251453950904166358020771035389939779453429700128985502221799090766981716392981153955511890452067332852585366543269737325644904928967270361313183534847076264902610322705170063263612975849228010463210957962334378197302392330154959930855416073742646995540440887430313899571156412822909515648172592294151309158285605164561559194214031408296058616793671509557228106285153466880718686450907969781985860746443276636009507459418663868189317309818854168483012867364651780647371426385320608371615091024434289453105796639888058847536872566118290433787824858553369721826414474507503506349579844744968485284103114938260536694623109041071279617671748132203596389588567413416725170021929114033533454399138018716859319481708169286097656841601786820876296248934182139570838793998651469741991741516067471881760647644629803119545750870674762915944673983279954038285892535958153490572989401346681893998942580525904769902357487498132893547945545625733279214020691238733917620712786490019870334862069841467602121873029034881398640322059884481830520230096561283770476614199387234055086692892081287938211507318153669377726867208941159140052854282159635212112012853106586512788115262247177404657264232374390725590198448888758702463713704190763343310680578455775436259623200508334958089818966040171601337538010928004872477370764560600651518011312873137525295288348051037418290872279800575768905215960591309030895051323865943066362836413840220540553276514263957007819445069705638474941047269087277441030589622613869565705049679535594644077778453687579584416962318407281353328548991850948284206503895367534804556449529813763976447581785656011613184082259912404689949320373233536593723143784790908723346615726414133045829508740544823795416311868826451481772519015151229594150341689815464454522901425953444280064705149388113122499856199854754513970039934988615893407584684707145013329570564776709295661916912250427659174779738447871604359773471527835977901382738178806093089201358804208307016888849218129009747970974648014687896280468632601358402553918664741230754434478808868452304568537381233012633696054965440418819402415803210567821315529287189635614283100509907207032234226983955567150739394825140969799260006216459368940629455489190582226332875717517132784838064095334724655999103760965519539957998693969561372177370347616061640751924653281310760994405232879155138477291724898197119883734889312939820621945015334190136980086188463684113802259389264995112938633781677328283498720659906966934216797199021979242483926935942113298263479710254508977194593789247862665562467483282713766303659272982815577713898185055397970033208666809620092379465594831660193246412878615702624560154038769866823720362620087782220841447391940974878279545376488558878249713112832034221066443805653355402398621268738833428394955008304326658161370901689642238735415982176977853068275912775816199991288345430658848174957606388025309358925794339986946993650357226943371815636314251307481555222830222627799471411325706427280706754246315225440791161531756927433716810397960536107753932080151996707045459887881650040981537536296706693280161483626273915224160334768689311323868245798152156954211757496464464508000059593359612205548824812020884910684334390972519172945011080846327749548239687001009332656553450843021706063407484018682015109827843576923814397973272937693591995152565952746279457957049865971938231785918367735513814133937561595442847222737951590365446736456080835020708890620706031075669977543133650370884800200455245090500179502131897107485793129768594008513636583993298565188408361253383516310795499052114326854948019111225807254970098605639431181806881295439298949177139819284113912204861226457962886814695011285043668512837839025179991367339481916853458326218735335667846032932727509962859530868546681475562388376194908945381747250262815728488282707749394520422832766010600954437002199988486322896126430696983904898288121106868510487948576571109599134330177959918234829357696773435119962464385843604441714338992070156983077842628786125030507372759028707056939691275706427603112224530622039218382107848321100075189531549514343776920701249393243039826738851191080685469266192667683862314253510187969490736691356153374847049952516036007541902872026979047558259743872575664953465860359571095893134894811646307072852773067228620377189310865379098929256231451079246862772420123721017808146776951953324580179094146240205693949063579068099497425806972776704360376874340028990657690065031634675048919899358627024404222858546961365781049481572977034377976943428430353864723858726713152709281930229634037559249060355189167261530186857363678466463185723250833204879416252525949659882407791517930232225506353060748373454226499869761799403831657149104780090459612716702205840476146244258915878745231877252101195962061918112038969637540215081864486003881873970297265498429656344644278059045594376400431936636171124260359935070827878558089539717800549270971824474964171709281619117025400406556342104383947225352518178878108193538868906452362201749774780249422154433972623564220156867544856838189931248085237540044714464441900021552817681070785381131038877313856298686284147645882295296488400467219288600330253656614754523364438934338498851198675638900440947003027656079689060694828008062980340061242834891176725160875870849327259995361582866518154600160201223096649624400524207941316880584414524589756596925587390898003937513778283033449779318502205817413751968447856648913753056421686046910320401633326546167558570649581807611841630576251018802324682685465009555975711437054695742395178359820147034152953278601784642482500474610251568381627929054868181117488938647474630658603859870517707450346298708582208225155914270519635901702158522663037472391647086528662909954195205673962288819653895056330511205876524186192185890159121183811730601721353235994095530125685994602436450418833091767709149035417252550621754295391401858938625803408828590287733563638120016448762729504416173593629005124414708799532590293616069702088581063873307781410033634163201990568289856017974844591269648828646285681454033921563237239462423552691657101849522806081397974885974673375345856389351314655440063140113129071573434332641535796311009048246603186201990167206868012643259721589611619063947708700035764155407474492295697854375718000122473878803168738710427393960476464444759906098662504089726823448916485129008621701901974765480147003075475043036467636753059184514031915283105779381351498971792680893923639755743840492132539027528167629699625411961311209363649500630040296405275583619615099615372137415343336966245628534084379190456090558662792900877190752870537439480875748500809165363430052224301136083147380309062031936663864312941687622057772896141280928841871131757888546228411668051914934697516169857293479248156749226694277069689904788353885907799640665231097539082704991676059558816479884710268723311422633865293059458878805563641733403160122759601937068075118292780094376703256404944302080363834635764503430830051767608793484243076490454159814195697827030648402946735803919857396968109803884685038394999594259611627311779237571706200724696395060668930066487976009482244010875495777079847228848032662194986173187906098380240810178306973134330422637447980785414637830366192002236346378777515249806403860326954689795474164202902413078865627214766468570037026382671621248278225210192346424406358046936384305944649364111866668072281674199967103717542720160148233292737177241807666974846633834665832050007816048154837847741924851392206343753379801588203027904176999370465573926472539530028821819861437799122860392820207939012573362227393723442017498662832513109485344302047795011612626002311235774605663861421388010929674033762682602545921083264273066181841278348106057239223622954510551465322291340710891344451003623353300180154903897801564676646810918360266772146178582027614094505576251224814791895559016492633328602940575430708563119260769260775187885177355156074281569728485891160172491309923739283477906468391365922444229297706432426933260949613721373319060744732283098724452038924013304849725486742045275032193255443581433630850763843611743996053097119019996845490341160064076101074243576570344107416308485687552707318261447468247149357111714366198616222742774920341534644654941265011640084028513484067662778133299932506062501872789443939552864695315330301385846439177812573388603732262441294840890251501262492625228048833861084882661366065713838038319128415858533319815519751873397775281140716440653176658222324683673979344625655514949201904013590132014488221432702247206712002765494611467723331377447383059078342270845087714350026739059405748066591792714947123355144655862777304441292668422963535335556127344023350361629955014024102106537893832554684768495426648173320344487122406846046667838027319772100683716676211366571437579972657174638696620948111498087850878180749834439669280548879600967966918491797358584347972262348014588207298666049695805674802136937403299610805257797988019322369750563066355373114316642856781849800006485122351311584905772305547182550978290075599452088274615034432724353544114313808098851932297026171507183357222210388074507837530978861323999876865102219276529407305805480600799243156344651919030539006344587401678270227074475094470439328234382273513095817983837661569054850060598542332805530746564799230200415300096174739080155035967111769570785256462580832789808427280668058672747875594035177356309498873412644337797901670728965876306816690697919816030884882751112183280338473345365596259138736017791501917876288373540848835611928235303129807517650224339797579382006879491702871769119833908186033386794166658310093885185578540203761778338049077058066623738583717233866711536793590583854014396878380132141899969047973020372712230840822722794653080746068110393937499318322833781352152445851488440464206618356292818245720834834393003357081813658495090587487207887527574745689152589399506033679186604264829548459149211156973742139916733045408131569065997299259316702676989455373255296755257451504062737651552837212994083608793431831037759313070835214635768692221501300036506490917179421861685083614398373234402486733949149084598855056727509566610729925456681407196595735989310678762112677762010656658644128764601879395535135862790869715618381231079244345715328229099951965148669511868131418314635885445178126372890548008617554428962876653154421727092288198412279919637472713644801052681127265982191058037927494140370914348961734946338827378093531122628315932029114868908625368597232392029538525864236867695613084494571284210460775070926272277335573346670276406515231175042873154789461100266087381625739072117183721046988183326415681760082405729570037798868419951376776828266965256800363648755915458660263740093420561027073540558497178097655066965382972183246808681326508100740527360470990899920624473748534983690402625480937941791077944039830632290669362600075725594610412079442780868405905949247001932503958982667370431855121302459182203876448529470622454252682152021476174706263291559380898786621789745116201589248036598218233990949373142131310684934719781507895792598032980901252953284831072950564572263265881315093129361134489153430503549462552642466684033428222612318347707423601309880715204899906728939890154034059793396689215595790781603868654162426469213994847943850418970828622334183582653292218250500141381476472016168428402585847006847161161796189798484973412687296402769214670856997527730134435047924716507845857951473255732080307335625679828992339065155695893457497532017573520901882073351232037620980749732172093319221870823320630583658741946212458899462297112253349184277412801715747971133132459010642718818524606981091281383958220105544925723343618405242820397629187218722874998482228316534041695261586261250745130980049309468816055245062512307847736348529692148091624292353756756970215739439581005168613221140284840392288413645179655149953870840594179727734873921999769385418098080362886676892493204020311493167971551803011556986440688645713740082137454319510275341418936128745945877396548699443081392228191940649834940059952825868917473933686209281459056923983307167067322638217659480541717875956968556951713641002040070831146772363592279246544368184550014970824162791598780812619708503317897461453122048871512331977506044895095720926582566242407259873520782868264647194629240680720560448236308818427362718044101106463117809273550046425087257484827001496759954695996887492428158479169535248905736150795516414435986687224592623316749969083757261175193494459224919523819460007675582144948759932568056076660009813936219128629275831452082539020121752641442009541845345906536813819718663621006717881832139173472366854314262273102944841268956297976672386657119043876401553255691386086618229105176927627979914100382195757583728020054904161354060439634753204226997313831454566816102934378074998530904284542903967261066466534125040450873089087253033484673147425035072170219871581452565060000822629327162127307513543028999312898149317247147897876128575972430198897124520246750563064007367188955650413272822344136728903545660608776977493302525958485820585435383615494095156946618045822587148192901985416831703409533480019557494489696158134433213777483291780395636514571281579103267890442781338838089974123628030664631333717265013947764870584869309955924224825355478848206750810014715567054888591191956865745423391924974810048765268925318912477469768123909053268143767939267153229466258619369171784268502482336324606736079002944814890518178559933491629445087949773190911505321563679155569238170265316112020396451577824607454248984937218127031799625565597517548700915619592657137347333088837945368753434829195099653569322736129104402742490628785218188135848116278104860297277032286306658440363633922761895326416691143088411295145565875319732798590970693877638593366088476438034292034370287951367955350771297584217365533528651954900263012653187903382784634445759530767589722836168533831517947900489994353033565908345460647384517710140339351820946011192354028299519414812263459474951893093372702995228421919783241190532581070719848091777881180050688146088342444584645800212929278402528390170398880281731673111590556365345770639862874621470611354925518060126361211909531529631214579505643166708766578913489089654291702535685000758450690928609259138669711895694651486343721388781859153219783878756349417206638398330904841723705300672341282264667224295058044587342345341588271960602194288625423096781222797268233179904231883996392717357804663096515998662860939270138631023063696041577858243496423976213550797790929683774712608966079887239712578657350027960836349687885997093000769299832493973417980928831613303355259708057172372268933686022352737138545940816733655773310702178278924868082434522213890731536698436909714718981399426512597647437637649797463184451382023990057689359119830363289290472683780804576190443969292912411482967690208163097792283343986368559100195413956131866082188160167121088598132230069995505296749989772864891089407845067704628754541485787410355289716855219142821896894183632957165993982161160093166351296197179363175122972254325548606353679744973735848105566107406099067304452383461165658997523417101838158433437877885621080842585050652465173794161550401385324040998310792234690328475049684021720178970271502917841960809142715412632367545588188481368000344661924804239290709494955852053133560856431457791834072986672513049407792330907438433955046976654496567716191678747545018736251125280728927122498987337387638247891384199424402398163562478228693772171478156179120125062408673801684321220798593120357364665780643194774143022893016822001495116652873227056821527804133820905750547902076416237127275356342156851707454457857921858038365782240788286968051504498583461221233820409876951959248299725646582211732917095117520489139355783931987310560954817504049671838923659566509483423419885627831290714804919589362296147941624143450547022992880742254051624822649647605738890635519653647934681482632840626702235737522020531903835781462288789824694377013485718543190331950710796930297659423437885977468299035013947105297788568360311121006136795674181013670705950908619348589025276910405255235925214326625211317668199899543754338499906103388246034904693674582198768831250812246610295329846922370115523035760229946559953472215135296482262188819720496864435971931556017155382208920609851658795869140524650229503038412003640671835529787768444465903047703235620025860320998850353528084820477790701736904284398187857211940620353692253439211140432287452496060986577717732544254586931595571762068610742979782520363772084661709149045658760308092494122262187266774279294920958616010077524087869652168479604005650620184867710319824650875437306420017802928779072715083883118661871700761117430507131101631168538235708804748321975374664552289903066192626072121271799833099301082866539234147805282049413519580304907594086723186778297696903991575372435589184299740968743427065790286567321540269766093511859765357110331958857563776385238170350103172419458542541788673520896062536878101419677824648658091474355716349674365757530691301296394405798595214351497517301349109404517515443852025238546371889520632217892299724202451458948132724899202797701476303003881861793665932482295820004189478701162891673423910116288419741168162649241896656072020468255978337626924857517151686186793684041442361686017131909889842924751555435434018543305640737092094011444813388851110643381223068322100351955498930648209156592380395500528987593744771633229315142741572263689728410140746440641407091870524934432153288096133235245659003480734005082296254682088117867079346661625386595073003292123063465758905620554370644549052684083846044131860471969027081839280113954609934920471605057699197039961896463361145369173553321514873455833184526096557077912272257659590440069636463364637206308371456059599818714119582252418976187245940202025398110597305011889254703652671985812780266857648446161864359127541443606896919205212460935963907105486251397956393874197573597183749300412117660192015184919209978921063208091760320300500910204742492806743181341247302432760041008717317298384690716498494933996276028317523131308299387888448961087512431230154385698360683081711693804169677526715402939197513233413647707621246547330345447367415249100557212978404478496185395191801512971364114513779262716478221865384145383430854459272554446473305712348895940139038135527860177727553503880844323984304505274059114344220223532088407444442622098600081613911207634288706999006882179463056619979451014448182676712600489049452975556322305501639666417507428966973505035246303202275294739164286692608605769172001592052603458276248347815456055992632870607430134435602093080929296399862073997319837419498688571238550308401937655857896276502812601911948408456699953335089333323867553134324973313324286332517505425249455807209843353991386040731758177800713163982803093042221671542318065084296104191677638683919696881910089587962274624406507324197493070482177628864119139049324024974580277010719610136438067337585731245035545248921836947126840217398290751868647489551365254554562219317069610741666935425996704052754125270429406593929579259888892146157752290834441578746954968545543382936905292967634089674956734924644697005932489374921392596695083310783880746623672428409520377259761120769040730967285672761043365167775392116159482529462217969975295777072957863232556532699261991440106784957878416627917722003285242731874847608061164935289350186055148582839681884681449592517482273024143650694503793685685468349545299988598203557690822408766125035251525237773991107746033788729047456019945488919099444769172150486924575818288183181547360601924305575888354012914249128166325154485201873016450110704444321855989395720378679967064448651376940906719208481102968212375487048156660588282227788278739849600948391522777110919636481775985091462527555962628224439497603048374235812283376258077683127290477364009886401348785936605135504851145748590031896621159956307913363409925058341211827515732190488609752096523848494428612809943147413821397574323032607036699287922367233115334773654766047537924455457793516236363311451491197993991166577799642418312579030571505866669759318635214533192964798552326877599136404504754839390356728917508504533037617891372219395072338772050086681008555844982350303529643449369969296088748339135761725892996102232344543903826378748389287467301425547182822311735135453771711600732822242483421852247060936196496269606079675623584037513851036592757354910965221542249004176718890671675837866346158964483034594094269900855441332714443291042899303025943998065166979228325815524429629067625383595132682578280185552888226652335489325867606360018428254225681490382858699148722258103608606938464141184015369269520531442503732180908136375503485718624008986799423366358681303685121177389080195022944954847551314582683929048850985314119769113033591652682524647313596120020539996913074141089187409181190158285420311524201468025548797215504812972843879643762530655297963743777556668091590210953301997107671453889029088065410593629666021134628842446340735020349703447639262826523603559549915945544404727963914372451292645795939396991656303317475741304537828323115548537181212239539382032315779488278537316173572044713198073582180018608642257469955276625764906187278437487781179349555123216908477741216640802228608041749113147893820299678729327504595256884499030988049631924183324348754884534105085375902000669183943619904789262721117427397570782355625059630493471817960158156821340671930335787386259265240179437120842678238451517783133970337082846903701879302468776576282493921584205120330113235565996816980631396112109341968041589734702233825021926228464079326153357361689339078319027855666759680310691881349555949140739060436726413472217636374987423562095069559509052902952121355988865027532947186483706029003938808574939837007333099647264272762713743505347970273546258745562016463983625318131582118312185483201244855636880290622662600604326884100330764409383913901371809271309017121017592414203830508198431068649518149283284677657663271989525624089588647353665229895114624871233984320400858470058460555042447653054915983752159689566805498732424362661735473691346364771336712801476952177076494733484448581238674457155815639353265726254031256401842824270207128040580690336140839173397323650172968827525377063538872619002339387290806116296294722015742920501756062723203726730316685984582314824289800300980414729487054214662830039044652478685652881842912095291309734753930398929124232217876451038038703963784366004071047953969546645893069192963226533418991938722171395430984259955041684267986944423982003474631088797580273414541764457435261627121533594871254614982582348427535628627456797310126866477852395321962894433286443776537272639542218728344787947391482037489804478108706711764002763009236075603991318625839672665675247109088785923020421000314685305610485402882775168852912994928900748831527697053853457532892881033733545990664952245798035899504905389767325432850974743053914313239282597172554063530413962590003648229328980293816256361112023773478291070901029420305088866901697930166650451923458839124593867495322220194655373171602598953545018568662558564131685678252327517947835679675445780942908717016945255603497445174379127768238580013540749759457408422995554499046402437133566005036983646642305630394415055025211151714894590273698507679484886633506476736293202132866126247963304208153104902529109363013143135595213606323634176809212804068955411637522331546797908292527310634338260386017415742265893411234437475305943367706494595041943908953112578758933970750187431292260221190742318047706345487778654032364431348322217991883085611414782960353444996814644431560653015857071031387493215805138699584642809451242100650653598723710715671909821329244148323885996891374474406366471672357889467914082532608815138753633292739199819597098411640198072486498178676559969738277999505552629862080781016734783460772925552550117841193499811524538090828215205930966183950042272546438322652056615806667953498051361056829689137944211787797777735782033054929211008663494469678404198330984017495515120415744452176130668614577906889682072586170224012195821546214912043421811049944171440265553177577235423784977182975673263722136913319486171863307753797030088987569437380634606938480137773487745414705725457815381044077325689629672509859478125117012875729496559410105477127995320862581515538424932749192881459001815049084135707968883047075317718382666462201806955875405345912134095503426562429422586895926375252726427801712859231498502462436930537317833314750644787922243250641328809786419079166016773651352446773262551383050113332071313642946973567278535221430185964502383669865117464004899959336154088525578904818544374271516786197483454008799900950704147897763230132115890502397957053627586708139203804132872756554873543638716418536705074908122057518858414901374617390168320923773742040628163281041782170836245204300513002891651442747854467970936003539158780384189336534027861592998805202968824729652453867106613843567202804989957736781370332079749221188592412174217390450965342106566218635581998918568633249162154953246183245144655351893569641983655115923542134439130994304680399309583087112719421112055760695746986387039094912801860392544925632628503150138726748116983374761224869209686075427527024314441065287997281991260847842753466870133749692676300499925846874758115047155593888919018485519765217936724351339666694207005857479438757250502019166183472865636134854690245076689193363702932653925194393805311169836552518790954113857172428074447933670694961049301782018834064944185267540027378373682807842274543331034423088748454200820746763042499037123360986423644965692988714095795482770768619242126425442973107326191383590286722554647296456440778534614350244316790278628642073626152456726370874990279544404317329778537555780657855890959714597728447400887850328198897031871473321249293774032651177348187624250840038481741764815387184368355020439748428548072434214668848080627247677038824038386589597275183419562047475877769499147466745092562512523728652732738984668772094187351269710349758140756458879589758861065772785243200903237820326998185510048813772859080671315637538655835266901590794599775893328923709638278844637969892275264945590029627218618887938034055904725326319485585628843144129426151611788899067263421035549589192235244569759723635538237256221799323668531964845178845084006483162808080507582244036627843363892163110485586643706368749771239293506603198523678184427635855590617145812496610345867260377673987747746661740175064305151400371281757795812337837981736328812056175375979127051723747874075789407022383588428634705273643512266894798629170981737173975846578681544805387908296854716480848060550495335808942577840957927345077154508717852551596503844234648195035302394932998812469735278337653412438608764190005748571391179685967718891783554767605605890149719881214972602744644504614896243753802567490395290742695691391259661569641718013347547063265556282733771600697435817901639886797235183304184114590885954632584038936631290593537167688509431723893621394776648586358996191692759764075769898620104942643146487278490838665757857024242858398413056308058188949850390752621000940476016058895143379105850882851471049811546410938754312779287636703297034947071924912392195908857886255378736039478987192749244509301167050548684949687711670944106790830178584496442928123830042928814278577363137837823413171214608450322743957490549097152507104716437000250403629855009260319727159026366400040136923476599332729967219880840083817496306572451623264730130662674275299731543597989112976660208641513321912584074458117542271384379645006502886761981364977021183341699092966320918680685043413572066809329091053229845648292777073605758242182467674226303934957106721104980581053427376349509271661735255682528972549090759288644682049740473676504074372960701788474516245514922945054084163247125299244868497987559610376412505121561913569210602154115108641858467920668803646744349007490604121207001071505987106901804434951216929279884637317296435640274198304019956959482287064934669166450629700728193228842792561977242395326308748114700737253228333377976583804413149781373541692656250843455249686663879572901995277438001469684419533283089630542201097363962431133446749308150286165424944880122689334651751945456644358048747447368314245103962946574961297823050727163956586485732155132114825746243693850512972222714354407555148851203818571583386354412416547853572913935009651171034525627261644595173290745540499116844597471250071649903524174866538311524621397386241147710835236275205845151567813411357995274612542104234292937212502422489143232096311495320973960010772726267431276279704524971161637422712187558519198053369438334650510350900244279651483304832683844923942568830828343299243436176763074081654477099946658099352907822373528348235548818367093438118176689517911768670269369559256636689453191669244664621225189059362710173182998183102828001005940962886696299041427885307527835719108257503084927943077110982105245486024634156711664504605740742618555765222788450631816568161553122115145117797649143216323035770726742293973627928361329772240983973394139029678237911860389891345073455227754879677843224556749379245538441704789617647811181683788603185966738041655635515880698015214686476448707375979695765701333034826390159288080675657673458390683705483094645759764361656988928486891431357019951615442083644354440017345560780809191527966336094311697672912925591805442509274890446370225207741929181145797452845428085888675334851773631768321945740236073130139153049059893773164235055116921266451111950001919701330737588457115674663141145222796481579162804543484007855886259302275441767256620300617897124706397794974560490973077148859216618762548957154938528484511602265624997225395126373173564042545670954884231919974550602042835985719828336496901888419377374831986073058170378543223136388928314914298020806319463903811855492884146909032423165960824678267674328283536629966771179084970674786370905553792470433580751761129612166278668991798181705350876463337249905150020397748177213439778355767307523782093316747472944776904375823476330149559581232636938331057846579923419214828831452151001873197200482573410573730778891502088727595353635725167719871767400737670011117278433183681056154963976170149861997392292636033230823607057336409181034296270380350465795670650471431188348707781467751760352912463910531628244012758111810983880460495486971302487933376511797084413420154063232901282912842176624767766887574202539384608833663138895463020834492045432263848579965150502737523487603219734764445750404833423600004474404505070578519839781592209534468876368107304257810408261973140398436746129903408242486957947325965686865618876967377226174773501511938546468914411543714904247840905472340344268322603486876142952551633483995165979691717023928296781871046355877826963374059988253701288550080939514535567916127450618488549962879879691861179207689425721930738341665327886311018744842218975664047956935248315368678703904060943732818954317353360645202558941144946951022182255162927052914611403541962304443652590684550184620377148865979495150655706222441708358226678251670925200997061452417650211386963366905589580222689374188695983246245234318060576552021760397770296933451664641932557055263145675299041677578420536661262700514389017636069109123745494439596529457740831075777458795269334271101556743958077300773920943099130066586820734233674791467849747699578913955378392469203778582789408207986499761016337117070082748405061128498915886585049238812536876814967340582168156284623527650521459682211552161988261220714341378524169177283270724303418050748565530447153350775465206671684521499606856291234646324360437716483097062843027134892832354173831689010512022295015237593477398982761323493890448740199209992420560502648933455395542770555437913430489584398106349443697743874650653449767428911835632437824468570836360036729831053498806783157151481729072037833262271371467563415684574301169003620158189856668193542968505533982713803767439081325326503125404086771709757537027163373250642482431267320075735186955393997912035514771941618429665088339778701953525768388972178807975582167054587422893273233647280030865868572985302401006404490584079790253598065814134957757377473772522785789748841662002774300964490986028212069251136130600235580849951575223678814219585581668729967865726113915089698444939069440099759603456607696648018813230246881865586665014881906784496518486471064892521129296491250442305895029356289161828074292178875201342397034093126751195918834306461630992843626567034019026850615481695437086820769551845041508677918256994279827237083715856881859350313084282115732062955498163416994038644121852966040120005463632735839385630688626160456770083412168666284970585542446120860095195011273250987431110589287819206589983791596962271211040732515658693904089003263254276112653533552324386401940988138664638280096515852991395441887265258975884929587712858789247327580098064125171330516532559564497990758203308061200036838656743217453462745158728255474625037713930551015450470708074588378130032374251139447591923192780334778300809232141882713400520402967892176035807603969929538925329255283128745481256824492324174674375840190907045609431421552503783435399444526845951809052847528039106732101380667610067654528048454313051524087518806283477924410122269746287546996920289979763347235947695978597049731788082827895900788128409689562585250365867482961435947934533949753829870009125334551470626278803991210310605490650398968061417472403980481931813137705029062571064642581767278859169677808600975913475622985429199455517958807362270359216899385869473718503363711380308513336672966940424122821873792598484015319576536911802023792933456116125490918600934094059483563866769191190185596392006920372686363502089955097692924966387940902518555435336996605973284362940964814413522564313290374569285191057524808951003538381089191307983468367281214992040197944093188112881813492824828741188742445498805058093692713969864455079874147077560540696369647225183062034173938202853306576887242481483430250183875995872804641689949576577648368084309405113570504931234623484861251381692051422956987277549915206614303108485346295853309838239200250462585721130715980382470142608437082384513397337956704032301278416860051755174645276221724056253159659108957530015175394372788658612187704599903005077582464035804917410865704618477597251218605949543694826289130683769256654024492153673921383103037669352903939359990799655121980604567352178846430197161941898213443019858514750717239724019204894731013132274476957300634975198564622833577344050464655005347894699951314945397080315989620822589473316532872943292812424439999317251798104600946470375424016392176237067971801528659847643443694356169652174146661674392922692666855749889632169771091967933706919375571192835678193774401311552178841254211077295094999282590146739546908392429479098070496702662378022550394327381634891579515797894263354587956115293267757184159336790172720353774053588329896613948468766021585512400143483361054330638368462761707850388260450272980021348235861755424551935855936443505838014569301202202671700841347694188227615159257363437959820452606792439352349494500849610190962974126627833717926225002201950821301013414702492901604128374372166359109639363878881916026917685257818722145168635012146750100177152388207068317737519957234224313688923755910253054987027112179424250022570990195081043565981464359884448907727312220405014934398688649692716152335777173854683249270845209652802270742760345514517498246916762957814730283061188884096972913108534822874889614953698980019593815486872288720656770130039192884576681397173843855516053425081196989407099226299856399977734317006519049133608651553924117911677371336552137624771651493320032043806292040259174278304177816954385320874479286061460888651378528681180599616975244903558755390819097638412035773404331382456151618247021954022145930248379390755659002917949397350625836768625101268214937432570113504809461776579810828069561364075695911156629380692077577291602232802435145349916369815871220882153158541353769580226587774446270938883370289280113031378195322887504982749448035363049667201903910581944197966111967618275712177272215526459184755703830876248297356321571355408410044749873685149893799368889958002571155640624902277360514903072392861825817090614605876607882000499665411443307678917583776318222224193688157047301934725998898670639341836475007198083183437105112961698033776678116021246811118757392159119462497920860717144836842209352052281883547167029094382899768942940455450538372732464368128540509816171228041705134839510370505707190734612902485724866437750601976753860483201026598237129794103650771972278138817314693886286716807065957490863511618458916138984534222008824929841425178543463278339908665542399218465938732287512934225836156658777221094328472842771493704076324916279819884478140356542480952131252778746643273110895396362794555470982895534689989675914413359637423904799564704345968535651184650306342536575659120117637859018292012218703460981292620222351590809474838282447780703007221364667746908762787848325366867252418615167271174623147448699351459974499541119803682887841314697401524240487494839797987873639528942988415922666292222289893716206303880771820923227425988548508864463903838438485715141095369572582688426476479691990392943385622315604827528230080795011544765738354025387062385099047394915050766827591446497714570617809357541326952122161342808612287543295270019144386492250663638370584329348207557331992581263456591657592512626707530728796328390008255404368327072224006687667495263568279560792140409482283806946749415040692698206594347597001032999897143160974375849929365609775747065093422624709311360244868539454111943177735964734551054964015540160920810431893503122388053711878314809593466910614968755048267653436133551003835801387149753403391359312667567326361187569734461170262518109990410544070417913798067145917660155678555169083717033355093635641791834650183198014768621191235296323429572249409082947664895776034839828498822685494558660302472007700484262570825575265741341535740025498610632117987503467045554339383214557436552592589388573634942465373962748412901981206484227692336396756263311841748524931057180048816952663725566621160782269872752775976890653090946724166403579337808309875754549864625734021273688706969336833593635881084072146993016024855476700472841797542136809810348452135123471572804436761044951854261492101505532926298857535846490928431066487828163054966950430988164279331381418187252186621734783556030436622085242319298614034616798613147427766115417872757640409651074134134164174261471025483775948197164829054860447617134715750146745295633889694683588447072564187091181360310680990570123294844998629727786753607038537751061186500939547465894734712572995322869003409604537290581177886377931181709100102721592473482667749460544478314710900072709749219299451685265324142913781882041815186554298387748557268279614190842829040924893868975848392843505911675259983209401416005654084997817430554869972111847293349324499603536611464291630254620421801155715940147098023214078340740016496473334029437908815543818192672036906613457195002002280607899083421112216825028759391331714424257469634843563340613089887824328951727133754168987389872072819746512914471989551926764740519751453548017769569035243155592571673822832709233708193994397468239390981575680062418279077964826950251190510338674324699829245339089343245630437225212952436859155064250735433055557082738631447415129071480135465894710832889357838595681343303527932888503606954871060077700880597191079086760441874458193165823667736739229604570517197110867916395889001056349629122741482591586702926188957975225965150328980450116803016362153225220553468903183045799788380201965464526677641931091201118997279452223438686099300514789544968450583421015601122817404603541241838279318002727182588181530931957677868343925366018811070420546952823763693514322409140041289799222523477494759774284092694821245175658198698539225194812115837713487864100113081034737554375396338100659652241516894567594650883494213710857803560687726060430726741942646410084724676244599066478100845205579907798360399214941026999495013788662440375171682589210629553475096591337909935725806336104754056796162359927975513451335733782903365081687857493604039046426714669380231978292466645676043048465433527923813518164993472304393439016127711708117572618945121490392973837351685056966727101787511991042017423756176710985644537723121411145402597759483160812876711157797912757023171633477315799208514304827107635623801040022130677685300173877171114808577839527497377859074384553097151244905906036026051388959942210631371768192591951580488477110757050824364414246867484003337010524684673012549897879709491734044983978720954729023044526505433388155942054443349863298447336796183252218473926158494666409084791989081891279799053519471147539580578871573798030820823894816665637861455525160026471276953474967734339437254586533440068911065788285816835056026117004767566902167997723021620958732462788449536314575209995311073611511552647643981642766101230384964699855235132398869869359009931773708132234133385629005073122776338330008425191112568164681575083779449394527134057025898328658175907420644122237989155487920059287396475290655900853447108105756196357901980444642395637844779218960575109001927229719952194398327722516973447857899442928311641546973174656173470129758052605600738535288128997965387068388489531173153455834942832276444268241619664064854268826480987410164910742554708328975267138173999989989363444407364298522471641954162890963140294962740619225019068295306166530056420393836146705503685062465530730770566914372971256477469281408546957221035486031729368551962172546486241568060279857624264873151089354940775664890227704337201091592854299128485380226541943995264430247544212724837843124123667804592183057217620875640293616144029865615048209017533624148609999005161726655710651096623293504948414138086373494589842358940543236746114549728688396214721896318450130145673359463183852153670401725771870710348618526138604695742873922333003224048582079131489460823305351241675905743820344497082516464590516048882469292332940961830132665573813234310616432813089911099019588968478169550697506916938050271701735728531236773766678800047224126191994234469631539630219588716311012429444633710090605678255154966892316084125965440175383313578295006924302703714604460187701635449636074854513210235873614038663501942500365546352581833335583608925652814355193392520288537648793716658871902787895218191163801387817806611538786773498504209899058399702389239697734114394271946026080076676126396080309747696635224899596040019207637195016279995126526824483775455900755963010360990916694819086886833259765805183701036949233937531903963489341929706909463335483117806890536909334363098265189216791970237475569232568227414534353806902306032702421666687393770157831874502160790348374564217116593263960878532967858605786520210787148168279460198457878207986458488150961928487121915792412767671777755885193552268013258361569827735954981262891284365845999960566874524205934161007961575105431336357854593093310125025794751709416355523562745642729320549099645109272224405844715714317008664317271353693906319173658216934423185629483628246949532769182942751942628245859001123567141335671427548749421507593918663482421208065718680957539961250956747924261985534134121078152823564386440585937678850094796159280528348455128158985606350194796021118482143172220123351469322984598108210647613152208258922984553209548992054155401222866106469783938361891906470498950860797847579767825489586307301138393690858847812663975871484244211657111046785315117876310254286641456515560783618058593595918624676841333676473676166426834413989382946801731381636181024324046166001819979582230089635224198732612262403367686564904340355223933573045464723487344774079497501557189797957383884783406415433711704300051196353297307601570452763554650601863784401777887788670736957080393324849997588650460417055459321529155176782477883985982397983134897299072013364733031201104367375979205073028644060415934127809188743490005550856950513159307469650295075800918245114196792254174205358771688421999145321602160478365412698689437357773796128423639170943532533824292826040263973332185568710928563227093372842531198823745763805388658258189041594758343125160000742150697545482267395820836182981162823845817906366105871019679692184568015120804202044176688277719613780717209617316422178281295279062738015982124595267437902731322954797835248900748213771924938001748023488271759025916038617805157844411334175016679664000490295121398635791299095956400270567613115194352496663157378386819506479001700814532882868368137501440122149959092370454491761107156182463605138533865652135843515118328143361925433252954876788684204116465439731086171291720096350114985221124290901805190458088936833100427395418462641228783536231849487421240975252735251080953913855387414341495659656379495928277379833612932995241463680750601318193978818756775564934944742539421968417648958469169466192829355635708209198602025796908070167505775116078350213096863061505067099418120805466583577644837693836566637741205700530332665320899346355700726382403042381150853112448718582465897154915625625342176100789385037645299096892561905986777978021894523192212428906585548889672427624726070326807060642930877538978296366957233185637832346489376589540354911478493042284578892758751161753024813893172855878724415970832681300563166953943340001890759978396770216612691837774645855874375000027978545019949991469844473735791301418693065635922305378603808143332113852974591170198964049183710873984064391214042704717513628996498489523316688264955976589591013873250653690602159376022056997570725259840958390161027323694415896126065118856222081422724115467644173387569325783747433879549756803287045513577721289614925201717617858433078406196536154127726317200210023428824767297747967265172748622675685555253036566242434004634759770497043669765573002090030266280747078500864376026538437440754754638531873021492112176800456215280688125332309728785970743607396004377592254034618427608805588018353842630940982737660679138882347273880170882683163254400603895454406562259102393565613840785667692629493531671450989938441818047190283133736316970280139166949854578494687808388295440208433628651821647224617794649256535601069127215155316576562728805442421150280257889972577356699240015135243950361153297811901894579109468637852354016799151081602487584626790888617128477726822665603030260445483013885625027637570119676520884936794910948102318963443675302873759217581316166058135394284156164048225763869558487515447540138305363313510748459532236555462905561725229076815211571044318998069967114513655392569645826515418651971058478766785954585635803606072575245908517211267621903449327565192218496910121931272145107446415666988767279045376887639189079210596789538472785037570278684740039598972017415713519157030236037882747481832699130869602589897874258830153041338490156717045649184797577973025895555868545166694277334513177302245117267204919850101188514202261772525370711904352520263936712200897637698293713622291498083246160491033855516490981977830835600049594359254697070157168308390674985098878474248592280196197750044935414550393111263626699947369244401406130615291084714377937057640682066465305613219602614895643342681421238380556621630749264664086761255596466210067970304305756649020086924464462974684474942375960104687554003627613167158367420575501940270600056648439388330157023447634178771579518810641941111345651473060110460213068574196742464802587952912234841597450434831614416205245609475860334682398443747363004780706476961075731669841348138045670009514268246780986123274341471538681550169547650468653884284625102855468244129986415148043399375096361701787273046837812708231885254332452644104936649104790055670089563876018171637633849543341942987889796255639034326360157709705016652079587604264087642688687803270784776878520224874085610745766843465336088528307638193589940734296226906120539597926263322026112651723857888505143564796473888148004260835114413580222956901736130868101422169794994081923389850587573889730406285565903334529454579384651550377203289089389721067176422624526978960304875838037847166682778213450074947746844563311869849853130314187349598891642381141588791460262573694997419363343567763969594367348616387006865480289339601528873405705748875055075246173567503447460372632756617793774619411894185337339315932856359823195241818501673737545809250465148859471835905437973414893241850932362532224168552053402100665495621381153485350249883311129124935136989388843900263458620160454171381920501106416597204251514911491983013247574306817779136653646701449937637731710242325213111064371525203858129009989945519131307666088638225591254649540926363721858527148443241379558360842357284583516780652589122501226218039034585533789918621607455849090386623046948102129827803131990187608705656703425541031244383153981432972428441267710602987805020870175557913659832987691293313631923371591834114593991043204487379539760400134455736629103527906124263159865685841663561331755764155552388059885642611577683659260905872291693813652856510708490432517957755349125851732123926000609206051737746920081965957958952960347016126454603745443008021353343449800260042037342570930802241541802837396566559459192543449406111011331099780075421340815373262549419669964659638520923804840388181266226187341299080619027127152731260540012840056308222582519069694769360615675608474548120140715161125343617351480890880341355308052249002105192715883435062181432702975304545810870825214468353157493118141464017668478770491986818189439775358715853633269804711086009558875370857371656011537811628161357835078752913383796207455444046849841097519156633035422848422894900930687912872480636015341763507271027783506040754946832724130508871130637407392173559157969770934536925311220524668080289120281406182841340693444011721553991675656935920954042737878915120941645629985633247597885081128994163615140862655738355084329134507307558698678031448121279395588795421208597797717699725449494557367241939525407979715989768820022543588362148903569440210839044171065579157555497602063723457968689977957463143168207572677225660156323879624164778544196577481709530126283525868590954944697245490184047047086007270439212133110320294967616408018268575293085751910831404078989069482364105628073257513918266265975875181924907527522282550087439824301502001656048534242509448420617337629751111107851368367843229576946171492572370848095786173459447128701706986582909479633853515350511005958354442830564448249082695852121110226946541045305604277796011919159725602058617464292418747153371543862986223451366260684946974202663518278760078199982288621510425399661595237430654884713192245798412078887860537845724162079449526846215726362006314549235778732419422331508471957228597972918031467347371742188496365690361800018093822831537081065950246753978381272295076050246372861962783462481469940634219713861968432881200849287939209504106740864925615027207879074243854499573903023020517744925818874445036219018430499698241375763999352147323412682013724670544001162460654898929952699280152493485001976290205659025022792383542228835403089157996270198633784974211664993063809499799952404885460295487360407069423259202469717269488122587820576761234461799601920713575595558882272734604370120356976754821202601881541889338487541158548713337538229470992566771694089567195258767153969357969364942672210426990144619552426100007591173187263420013401458557277557259303135617648710815852607434553235794541742723006972978479735184408841567329739014335460230853463038587782415952494039333635967667246286968067223881784595401470418662044083548854645951616193084817364911364862258423848976040040524434904586795291696451755872443371687872889509430435785683783647963293557818845567510811211060295521376214844346000602415242605900176600827690870994632722905906080580559932396301474247043428820207136794719442681514798578996887726393646982623385284781371071130413098525720523672181530668846058004986957043586680996892020842573371959377454413648498971171779030430542259654185136975557079369041897105918268747551696387709161311029434940111306503668728971065252390250714274401560952919150330358384358905830360150946252584155898935588516519413710757562527132608003152621929443040741946887980155007002389532967041850724307535712712249744478720778657619621442116856383983766613517652966108680764544962457553024965783741787341605855297263541785705774723713041488589281043533565584025607818319207850921782610273319854103098756523024527169017117083006026421422482185718058829330222235324994910359736806955093362116888891409763650099817969764901785879406433976496577433520125592955541798363721808958423100224584292580851429050223893673112780998185682349178064817165108898304299508340204154936990426684703264217938232958196954399770859345339357726680290651511403385879317035254458851741794541086620500748766880491286961583631116921432664879490004618357917505800731245368588315722669279293590078189531186437302509779327886690679620374236152879708925073405576847122763874706252183557865388953112645665893159107903728098523050320311384804842787740285540753849171187113739189809588951359563546927364254862055636705494199232879202974819305430527400866167347748091486373375795197817040083880288300063427035082459572789437255339907683504422194982859438202704286882606658601573096537278577720668153454530122889635943530054293898560346191642265636016706078823567557234346630873564998173758782342727335608257903382166800623941351006487750877409975082900346031291594078341053652603239532227641909334324051784472231927159914103994150015600344454830490260554375634797990952565570440690936514990690881252741831300700614694438185066003771294295090333968411891196773379903996755824063428960912541128652549056295427138099170900501610196376391466408235072512944985799157045681651696896668709930449133663931762363132625638889908112997338530875329917699259855799390490397864591524342052758436263666753131263170254055339194786099020363428566726742652918961461940216902390867113470042430719414586355637417266229428017745282592119204939916056564343255254111115264836665892093282966780324619868884889868508044874177861635761933252385505210987092748877439825595318927156155410792458779059947098520467391469324114725570224040307711908400745511859285304336681356018992893743800457155694529605421701752946203314035936885039292596778882763868733654491644701203959024795323271733112772779673601436426568647889761320112505896302362399695849618574009907272285297844496659853763147228869370526923678199596458538174829496153524987404203896268739519003369860826731846756190643054736255877560608234923888288277142831101336874141515896829638954295419086283896430304404069964360502727572995999276818169489436102499469092562008270059244521244492048606690522800617328032120060541761565843630312176268891173217275606172850458695899110166868999755425767247833963050229499405915647768157789187938097692215047166141099401978277335744618657028841360887860538241344783925570755947638585411514215076936336327161102266756017249719627635700603045526873621585927724001388712476848730491049695561748683761526726270288885806779141606320085184128241734399667989354393399582499170932026888702616872946891756464292538772723515723058928216700030323811591418983869312897482842247055931595462785393500265193742562856879058681815843367927694162002902397670328189035452628617835101166134418471681976994681138722593765677302604539997223874316759520076814250490428757167185220681713333859872879588393107844654923727249335263286548311360325535291248514035427365329985883606305296111308284044439630363871044298161075767876674566536079928424500323118102852216147203690550377038080589404723481232199857894744425744402654068738386203741490905673035581338211986532359966507831206289576270664043761825669643884947880117617269708365278666454470211233115953614433000950743919810401999033403763756234815559710977879502392982777409315436620218611209779767172078176584703831768246179031898703535869577159993993684594454740168381659906138514152060520976379109573911827004203924071688906137384450587013281716696198640547449592556284875099160498465501518053690433755490721254218453300662678795119344642465612667465022761638386185112327334540833556060000452888664877766339228074283582559168247838707539356876988722994350591590162046545993488129767370429533414246194147012283592110516337663513056870500125620430556956467195887082157762645049087793085435845483353615266311841979787324972421980333482069496816805884006424484943017938891808492289695230330284000209589463490147604812320579601126030286681791694645219888991628041267679395939211220009513370932503216865682415105136310554354876033344335062338603887818877348898234243105402814488101144597076475556480962142570026101749072977553957187164496528157862010976938478608735841094568572570203131299765498494944700377600200897232823526935017245932060926921733416790193270515161913867270428582688786541510096408447132475905803257633488921460926813546295746907547838571459290643440386152687245697898276307173807797987039361763954803512781017210167442973591493443779826655504053834707119244130817265241340362781991708311214313409791272971501259190749566148073448016637946193426651010302722017036863533568362335046695479900848005106572064831317506883158803343254815374430770958095860766448922135120840345060645048364881699467239821061934710179116660510946673579323935610838242683501684504273687329851926019491881626213578509249463595730319129986114087390190764775130349807148614870643246819144081499418187842780746825632233214121780741171420658756091756100103678040959677348697680925643743355874957855061929058040391692057475113151894752312932088630071396498597034070138821370722029522691950858934021896798028648355246717872711963511970754499031146347369397322210768941189676514829712676959265707212794336295801187015502653175912209461002780997390199007280910604684325613232251754540773878831083764066167552365635386812172752950047917624877906322481978855830819264992897955062770382586983820545416542924576951979435637773244727622004323872822159596649727465061859941240584908875750211203430122684380641077777518155297697481787513642007487028193172309333832001795026561054683136293754334073685937721012765619634028883327042746302132407175922188051209934252240692730206279346456980183308291577888057383917710241840749787647813603654273882406107856459205989672060804713875173603798969807005592824633755233684049340941341285231752840892595913711068454950745219537764174384309096181825049311742174409142706501201878101385361793175897936132341330559191894686194090581488836101178436706023906542928311454212581109114925693672074857207521457282623886464930798407287821442627266805893502419756731541264317656661183070092413240867513654390350533368683378724050836741460240725236173591569554910078493808879898682055471888757026447043676902885630360696959986116869116884583483342344308019989348797886177781545154010475744021628511912520518594293707959830846818726469987201698347341295016036475258381495202505767697291145056694296666076197042708286784738734084111595287406283790495076024282359780882413356478597437032477406684583169804976026245730158924051149223619490998691692093320570679488828643164276122944819777387781251531851072278121060497516971354973784080286756293670070733879514201035477859380343332695819089747218366649219597533870820806137348503626940319334309317863973063900387462979812398368274110329883289410377315768227908377488377513262406922844842903691930021863839368829221580900599664860073044414542833635680804406922786394748441635102256257374056482536090825678532925985124155437099429441280992129381447443569259845456273300947518501883725196875588273947380840773129293651558398519427792408389893694291378124302944028051412016745928805727760882776690721912330847543207411630807665215049125551195137237295937238249292257205255154642703093469748781944766503090977297572605751767652846213161751918306112498009399319285675889883991319941195537362802754575192808056481194803794672785109875139537186762926130825935954586351725400855031214374100578021864005744453300312104911522086628744728804698783182923088693793922200428389046354519736654600884555800240742045188836967384278912868461689616159759012160025545698184344888877705958072695017172927421356512210965216595070161054440550745615587574014475981483619072816677612352795541380509926380281101016093663822089708961903245677151483192168940532086518673783812883909967488171083168151096735301384797500030640629507600290863196726788677612474092152258703194536386200389972562682782559106763783471173506163974929628888993167922803841970221799891182053806709468003812991896855565856053316924644510745543155322743787950486642801954785324892189709980877844771696450969025052866510173610904603564930627543955603769971393102304473836301273045707822453666198344603576894580639334093919352808067869978046492873428393444474440902428785994846514376235168183928818686737862561643503362301715800618761065503658388263642631193422170273754650381691782390665810871754279164011028155270302459607099425355346401165056547617288134867750306790487701471072964035442547611050329791361128233488175284412636852961712896980897220073872870856516099227034804933106189891617986751466053593589033932194831301331395960844034497490458519586433548911358424731674052798176625862986773022204158162863327245102321753917580613306959877901083223315313490743409946060980901754650496083592760831618473702735133376631832965171854954503834058730145356913201758280027770625407341921012179073454482869374646778561635709038741011436405539232021379122516821512689074922561829116575513788988904094542051406639495654314427138963213498200881430869233082100967312511090008386658116835128995568160000492815073265387328706800985772588164104362630582921069818683219779205748125606209731102882734329506340734992773431229223288204621572591458463892567939304611700156452817898875603275647505418735737349968490411497054363554752204250111398675825252684867325101471729646075193386997136836943558035540686701218935857713944434392974830737188486585086183784446407192878644481995446406553989430302574626612850572535458092294381555385832045741672767853343424621940324150991395634261181196068084582071270216350748926666644540869968254753091935456338580356338999892333740856434138477181389721988864824202092503326095609667998110159842720294127257777809501024889403033945731317110189246088509638792922566558717089191457603444523949994696370782992381909277919076723697960250167644778351410432477192543142850781364538166791684003379868579635085053660099452082003678305475897406287865962639914231034886353991663896531795928093420281226399718331524215423685073369803325734483970430940107852571471798540296688552109544965109208796906806917058226041963049289277685880188163231397829370278808117797663208135523834000522678230546632180660700840711868223588311915313233666152379211125049941782682249625483803443894691351614771592084999539028645540800231992109344636535470986779027633024583801619306339868615609169209257020974878766336288496109021543705446574517840492723065703892731964446555528611929574263459819191975614297283490631990299395281641431322895965823587895530616357565353379185143123766556404493479392134038703717034448512918158095933088915299160251340854655540641492132188662691957442643423077608534438785615575044301901305249716581739385950913338545170362755151614633507037266191176376573296932139558008737631660537411132473180322513852146270274142988742837398247800137765328682621107106469474182234971558342221388094197812584680444356243899791348708082327819006274172306094045695094724433901741826603706951762361635774423045710309722740459309318248013052975538688609065260966319017539747904608048299027662685510118643866464869458557874202649978417958672022580142720164057859604671497279849857653988375784079275720681563119324741172585161743683948999909186350761786085142723131837243325711315435661346370959140170755976259775089931619654830965117083652895631341461556233996779678373547904141890223942044430442048762370415528192643731785661984257823424667647059436876848469265743426429953949306077143422220155274112846661075661216719975209897848114429267526355138043664096116276404603274062207911570602429834263085974242003853360943514310248507819154839955834024700978294668153200135254422580890490988656173252678202510331993487357710633229919314250155609575989892429755978229883150739549545501122451565152910985021578427073677477702704938534101633834489156088281920164647872954362186917713399038651312576681585283742197481670354276186638701739022791449236266810198305287908492241002329163143300668546118003438038687548284549197530603783357106743814472989029817506316706402330761248896063235505940506994447764483233443764691808301179192051989441851833810188377820293468334366251979093106403583472850619699969784841344732498549228375321620634796036555426219329430411646728823668527436805253724425485589787114625974227466332106541303757638032381289151688547555778718647601759404657579632780096203211626047655354705744194829045623600758098784377794470889689823378781453557544442092802502721581836170650935082912332235220770013312603472239866481429288596684940276828154538233859013638176002051061771565473170817115025652382223881356577915004621233423822622504295864833324480472101789991567497438225321721749027769543273631246102908856982106087401461551427562880883308432057441993586373585883323680376026676059904248006348488313016313405581539856460838095455072311936070165342622447067430610626358303492191157463115531457898308317545674680477490670748382887719143160698868800375807961438252406529061309567456975457575185854524157716292722603948938565941083624688226480260472098711286444776383596909102481789895197065287606969522902882988641335884888935721756243627888455371104990336721040680778489270670301118586228551889591196813741094221969896116423952595275884828506339861030530448594051415547338393131288472911679519057993517066942473454616629769204414129021803278494688761886849482367405473453162065027675956846566650972084630803886426355886591237005736282086378813030978353732221377421238313435393589239423709348899026558326271544352629197924327912012811807813018923121428873423502354008895256093482367300967976481969856352954823514238776555448372780137084584066216656029674239475458626216475471228965083498714525784966069495335739517153839210684263658155370818779642179574689254273242368683447908664888094013099701035020388916512475344844272445948411230590928803960735842841215558166252424444888769074072203510116386212621376157348675624138249899309853673449895055200032707808073860224518001580203835947985740606055157235616932628165090491513418891344460342011011921100022379078946001441669964050831785014755105313286086070324057605153688694096703406649861080748340216111246788726353452315235982639382871732169742263102274980215807630816883720499677928403992019233954385677289294511528465656391974056992310673342098035203450991150647086030100921313895890315576220666891263254691899231558467736700662637397209328224024785566466690371014282302385867811725300975952421857206994695416050462700444613814824692511046950268642382233639897988123381577205434671365584860159539191452668673052393210960134077029676821355345189494515327643049781137545122711497584343915893698247529185155494085165554426317618944892997300919061572565354096765229559098416875152118084149794785705452410993892535371571197848286945463307001216899944977330654788665013965215225388047518781988161392484698299591460393284394190144876795801798709888831375797398096888387751917778013112646700473197815576334824406822244519463837344667741063318468999784710219469422201592366974813745175674254831247067703148228677386740567795010252586732213013352208834626790981722119637705336061436990529127993175454998641428404519774380923335506685241773892030592871887425551195135357463806735377103173726200863241840754689098343223774421830083836346757205820717619594591901200426547632163086909283026032491013984466575709745400379069300055350787970144414819186513165276813150611470321001831825923292398388318053776211627577799607012234427620903696161649828749897740864430735359419338759381624712614202876264260077399259297494112309504174353593108766882629732469373130222808389274451466065986653298828372099739194952716653216973196459496619509869722906919332066466092076166724684944639925500197913817543208640872087889654418977840099031631606942016716358373357901776326870797234352640374579365565137376506886469973729756369958621380619774126605529763915017385644406774656800533993702576550882932329922896990043889553929203759013436017709372341805044535083744356721450823165975043624765108750143252653997281014035445497152523387248997839511032571106738808112671613877262515794867247536017239277271431049159451795093857213699010761308468607691674801138137857509353787074060897772691033231014706803477671794885053243236603423890283348816337886925331266917907822496190834167922783479298374659689478784328050683079703824625150930299501572102696222859510941820441193547216106509287556017931106675030834555799079209509712216810678501086731408134150588020600091277935851090532531347010327475973337401266732128573408272525940587366469934281634663052458034964017400397138820046867194935633351478398718467076067102175124156278988632667927937837751546830400471580669868678928151876388493643136914846272181397485060601829446751841543461651685317378204897862935985941368857478201951129881608637877618826624634403428965970465457013494811250638435270394075117058181473685554904761730207308133213212281934890277516365908207245559873827589332666273121332771634932964578887630171446508278008930019099304855458846336535186008975198891126454604607549557011688799880871609303268229722891363275618076294352296555779610857058345911004224850459865449008673529000396543872405052697935542864812573012838486807398931330405859316525726661471508458052703771635585879949564340037598092134600606705326304882904630709660178402879766781619212297243852336926683667500549319761799760833657752598523365469383478356342678617387584944929045094991037981196770014230816912562609888890330281828042165844529824107627322416759647759019020109237706457841282798122955897879315289268975594082832228470715567687822328298122423392320136888128809908193016714862863933718531530394892901460467947200685428020335867973867117944217002896655070317772318348172781449963800150745844424221080648818795972101732924714393299496896745539306521097773143255996384291165395251579777161740566454889987499970052907222375054764854865523463645891418899863565958907119997218450950366758746157852191664535919361429120799435516516164690816601245365073566538070345520120417229604813633625522960576355182152164234493622409225513012722004157874450211583752913134989210340265386271164856442323553184170614929190006864060813075333718646871265387522107015923372626976962679113765247833506462768145254506685028110890199343603730378110162005043175144989476977820897772968560452725531371240228488839827012444123980996157807494580706181427994908161199606976057644062170605721728739908102644049282865699262330154423416118965089167040871184781852806826853893352486680817254241296307606859558051909189595648643151134590265687118807215855229071799190716710329221144082926286188187884641213511834018842266814248680144330386325975138010170429711095931957127575643187382248748386173954703213343663879258950056128288686310898781238904211759596906584791709864981390629642305467423337655386997174981401142372323206718751874441900421186595736813159020283703469779737985561334889565431583865108786938356216436682810852722001050082825196273036627297993369815718819726306957933661422372052527389197142022085359745432373009995334156333791411420883538284564856349807872217385215671996887155912751373794001854911668397587834254453305657937918470047096904897232978765727779010340216067022505500020424088509522210728183721689231470387057890283993989937374874125420565981687635394294481463571584640548945159833738190457651882949421556671166057721176086656799863921266573625409489031741136614671941512017179952686634651288087660685998636150137767640828436830896348028501795068160753029552073182565389891053160772993023298373818781874424822735266211569818868926463242566705994983775044184332573462933505100643780160848728562386218863313843910310943337364669086252207791276810499636291530623042789647669762610895217384704831166880692771693389369148944704696097603844983773796265413000328272413779638979761457813803246057803312591712594716477246500874449421689165793342987322192014957797394732598378832458259241331803329583915430706524188747783340584916504450974583881860593105173049279426660960140972776341844688651289272661937244830130109625479426584233025976166989517434276141150811616447321969785612265538499401699196618828638680184212266282505304993962881411235431280780874590389653959876451914504556715868881011443562890535473749482293548694267826305588455409834325393633584259388233910935707804178677955335363977712532512079800184210764849201738455588076811144117198604542455683908573540377095893018639240912357364983248615474845069715178469513143723027620549450637467903018674374346531508885045312604414825502628932321032627987414263677893194111400138727232821617377696909727566500541576343442306320079465146933287801970229912800067295287765098186597491803993180854191010823864942394093355162275617064885882261253983733412205292404749877778968212905215628720789884503835499426503364475110990964085204413480227636221328968790119059795045212282334311407017173225050760246425368869496518601713820942495934092256374238967331783608169551646531069352794306493912325487988034479081603197810706946197556176031102227175693338898310261944533124911887552003893568756706232719094752704773201937920193101253267620063131013743909212686471024589906404954831587618735568386934963664346211969452297293195308892473892963886514890176840231452864126834664559277712446308464364648563364393270136013394732743426152622828769006952587066304737810125215611012034743101451065680710420988329915509162996323174164818434900999745066868268592290290392095964862598195486520638169949011467117182760227839774707870367820037562893797270215554861986821101952822392073919001160115888425501037494094576003842740894594554465421024146986872530826514425517224957054050090935611142210480973000131995415416799517941501033953748414965128828180845426522466489642875742320872985928124208572994902865636112784730387238444541041080340744628412608732325277535500490569170484732946235357081959094075212636963562367242319169446629987208922554382031812468138168146903701292168407925380207027288129846484143111562081820049784466248271999806749383636012505181282313271340215012984087742533107173379996772981450092240419288592770201623753851467674262759296486706390178247971762608616682644053385305030258039161337557084281526020879037228827624370319269887863422262473349405793120207282170043725306211390764228372392129090491752129987159348759662339989554029104784343426790814722521149096111665417564355025538990316572706283528100565137620890728037403672984105054865029600325110192806736986339374093367976619464330516265513787594036296535816634152092916366700932278650310505883949125222999641129353514541569041100186016592062074639932807713544024915576137233762941686580482422413183170925706037521270785803935566936299571615994052561524128117791147291715669653408845475370396786557987827028656182185609872289817776435416113747500578035835057616384169893910335712656982604864304321958206783110637321674409866779077027397117533029772169324056959156709242496516500456443413841874713478664130393030523204253146006013198332672756783598394367579265880708964104383513783893839349112684491704616821331108621887433217637913234618454968483202449725547018927668333491760878129446453750540501975928227088854731837326262374945208130366551535282815358189379895629612461306888079651928268259521137780617917760603352024948372231459064998060990605742627293673962577812800878669258812086287513629257702631078166338014117691767050505126756144264868408959083206892174064031779801704117482784728172869760248619195514279415327307881645391425989109774572742370623533921601287795153031020830542966908444476085385055822683110797714670177010767924446769067587856936943733793441741422199616438816080661704664091028054442539030858964303238358721480966123904018890054188591447451358166804969401757435926576922733573552187883804931126876311882314696139012166813108021133575627354004303081507798722421316439470411168874194716208586580016422554019965640281619933263095675578779222091899387870464662055462081665687997987860656933636337240212963538256126110171074009083827019409407188918188754111818790044165340150817857033647009516973248192411033012997952089096329267444004796238029131174850671024418635818399432520133823123241410542075064331168626657411654669134575002089869413375606596430327482619775215015938840618801330740736277482572511196344882671538769875277370368460395281489255905413539104141627311507024192467010287917303003627629866310109866418922105173673323976131048299023899106117537057067035671222191924919270682236428426454786260011655689168438775987057735298749062255209461694225984357960499574940374347737774265865443199001435965944288679841046302524529192301796619771376294381480115229149323551586324784419131330857031481164966103886630128965720732639779970609460475912748861665131760353306628391912807937774898277519761796493123537838729751029102894917820281370457399043295894382926961751641357217324618086421696852622074190935739549381971959094393871088423865201856242106157242735343082764898741094453038519565397139550632193456377905526341086139274016870238495682399892048567198648719649757506236941849043900313058723913471172145622835661941489781216199052372041746771705706097911723454989639796883808873662046292490012533824147569889717396405956803338717155032748447668265857874331292561455790663176357530439705614883215245479365262897188330272969517791544190579581667362064888845847942254461045116187648846594333083497827237966198786781945196997410331563207919568836093913247117851881082058201980096515716979856515148989301523588564504147913556936786231875014731819751134122744470014478679021695237509857382791989627637083690137944495230108872309173646469672295919775732255812952197834533897557367762265688649006718038891850478692900667203449158417631960245402856426823242109417934664055722680744318841066123776801072969403404931661517141205595666349973891241224544514017990576876697574676682239387038209357370248500835751983403852817395490653655217993930354169585525428442329299741548998586756875822600145408435629273072331607832037797976879984833373453260003337337551624174239174664569109498698273461889567265103826563279049317814350267802420559246684681511294133638318309049010991935859078590755357637860144864609561673408600147586275920920545860909816389459786004527250392144114563607044333180374078821722684615027746375265499707281620632428003588768582314966401207535987504354220486133291517109732686857737447111756154582853811709133628374269164851647302115398745053819020207815730569952238368796635483189252505006680773281911295059806028295812216098225081942989759215063306164239223632414172964074566659511743699822512824273290627620806025707829717419578840369428025552860569195316012377823343947197887092373377169803759751622992060344072128496853657297876366743565801502629195585813125234009986941524446557446264243873631619555953740793647029968716270601130614833108035996259893842502692246177526162469867233100050375079218835720004088398125784473525168628140246075423816142041486294818825875605749588712008592787194558927720886874410157939766639730624348778275201239272896408879271606091121515472761983004926748136944158551412476626050208566136473089244438858374738116420208366358676643276054862455569707566881358459559417411372272044040109996406667338960787513922348709559352605183824945020758855568953794597865022373503059058643836994533554201448373951248050856036120686573145836306787576449592689843458633405694906924055931790546519744205017438141548760258235043161646567221776808564820199512526155878816446329335862469187951180003755748450453136693644563255799615446089268040434350709729984154039043187019321826906774884656261274348712730491730448463227737528094251708811865015993323245724260552339232813575796165887719629760653801556559575614113811611110874722384958988997061284118402190669434624061533010487931619426027831061043689905265542365242813132355422519324233423573060850778518491871573691138851593526729488042306484662724846952610450764317325745340135754916085949214878875492947275102092115420749797610958066016757050810786062891548533388200608965330711677078655965700620777850681368656446811142243174411150337953486980289080014938495493474621132019750903969774008995215841345511752296580852659848312353997756328983867997643790297708010092160897350745966778093072576581905232885859595215630987719097161867487674070566576954127650006848811306934688576271837909508449142624013012178313233288018397867131849040575293566075682035050019595271437640783374492788468046447937798190591542555867185969886149585046653670767258056600434289880670828191265491026944525003622237227174471403702907119860121621221828856727772478047280710613719739291388990368849590962565003965098160842302687530750407810350424522379393253222637942374918783901196298057352006697653161153806015612611691511936255466570898354217677523005185386943623073498604839253423928741245066388227114858601635141131075618292479561012999234391682327867324709673689802979973088014526889301705292283666080935035464964150411454713688199037115528233261293096732643047512211202304458537312218011343096649642438583091372570083152716064555286193512582641798767138512629861148533221467978916402867052659208777964007599053708154727996273325885483631757163771312171161634878316762396435497813105825153390854359080396772276327235745020832690766501240575075080810360387178262189023251344692395385566889649761543912560710663993232819598487308549939357565279325389316912011836293890031905375788375063530934453587243489349778622791435708512698319476572438262199673623295678710783471900186817962548796336536185108042946659093772334169069167750214687676004803625362468661522501682138020403971834365147630331590797507553389605445933598120403949181039389922291511884290890881307704369540469628794763270742903106848224370702232082385577448246123110486686076995796693045039256746562730354332831733977537320585610901238201148047766031071586051140750520592814618780889351947996982483722063622211138893401557189099188265812271457599435586547241576122894954744021191440009052589524900295863011053360488704009438890621406921347890639622551005136393773556093774938827806627070069044993123762416568472318688786975501547098810382287320469928018186474432832685455854301043530065494407526992297443374900723973795237974031301479262719644784040256048026872733969458025357440651158281129073800455994448307592196665999183611785914406560227465047958973797854983769145485895835819695269205183824420260833223628304723788144087633858657932835744638606151432496676478445148268149916037911076643104702931221560433698037363437942714653032872914010076221432004344780158272757478302134417604605346090020512224160634882894726088088611944902772520611270149505186144826573860963781935714329048076778151711651231960452693602154576520647516729824166057434862665987724011889368788902834669295499397668848313127752917616186456111693252270552132451421329812651088661962964085346676846281075260784901401749369371014512645187806120064234437615988981997726031926326346334753021014287112069801619748598434032431870344384538474891087284139692299395576644431129218353790509245372147017969898310833144603215409982181712987859248677431432853201239774576514705187757066460604523278908484956645725974349020740442235542669223899468083379662499896623342643675393660124516174398683334248023341372465282186096272375949200473033653373968152554369228151389372626934127196286250274109261293914930750250228094712055071052471599021804965907219475632202683335664300270080445087749201987016777372991545545099526133487154258090823897127275051518665400604707170371041823972754234729663266456484883314361917235674960506016678419132075520559271469675371975775779741795749394134580673902792057626681573461512695586533570057327886312160553985262458594316134178064772030468261898169652657909487453456459711965917520661365996141220384187654637677871886811912625062429026456829198271816061886249935682072917154886963548400442975702164680290988777986715739278680666556542614498124172524369753603054743075370366440623054897082167085442658813554192778100067498440426250622085804089629918314391587568396935853569664831902762881612153934687942581446367512012943007655012819909824477230495492973495441146557189005802110327075280307988077389102832351886705948947406724747779170972712589214757262221395708607057599788485855524768704622466300712646105564194578191136935512246194305791618066876393132075819361179061729336501072604926146238610508741128283108608281582272683570743232405844222945340600443127556020874474398050188374705977445144605797948725886580255961678907047666350589491500361762188739164470542422334328261940019183855009639716333478051069176228762199776262386957179440683684993997099539239005509034935660420679530443104860153152350487608732076107902224658893879635268778050123360591161302845613124049350145539519874068759689647908583123744541091958285984324253051286618296405704972422545080539438249082467204324099173632154847001136139401103121762054804021406154661238835807822840493833544389895018470572297813912663296268158270240240153189819864947963003301812138598591114026784097009177315065539194551331001088147631571815626733037081397161003045250924615034042395858568330508254958135608714788350509681497611191348808095235126586876652882314129162295936846573713042728503523012853853817037195830674396169208487662332941887720410381420367142427517887257342378251242307638869102816594029231192632003892861421804375801799661922279672878644152210789633427857918520863574451733605416949791201925806603079620741404271220095845134425646784053659104744314738480358023947389243026903130843021718008563024076772281671271411920977461961903574873121010782956354021030355246600600666153569450950164212676294028642255968778216285317483948764489987601554517119126169408477783768283845374859307518607834011193720251203561374024725358120498762685767703064988407547188806901077616996783830178654502520607620815948701932410134028100765019215052769620839360844582465393070539120794155157176124153318025306471637508943512271124821492877054811751343441710570944654401404706802014598179876510625911235403921569745923855914915007953277943110032905154123990194503775778939157314633526724720070491530241493265907607125189011610366322199052054483102086548621804171180980663808693189800240004619301286305511758700195872098634039455869221625088996123398310980541729549073137400838856806083752519818465419339662819451116340638063079467818637612630168277244272025920930258193829928654850075967646608792303852768412469248048917555967219265504164491289522301101003989850653549275422186153375474386459345603295454218105748713994926940401956156100485008345489379043508238163217946087874890387591597172816765657889531993309028180334425930216384105271019726355781152953140847014863510560818498617203936737715866452308705936917284654423842757204940731753848269090134726641060914146907523046265155490917777201849139570613621277066316959830915946309561408853733327650443661990109530843638365322492081933820768036683914782264503080190998055187640062405747522923046433332814793892941830485025125059566984436999407266138741304861023361984105966867175566474689013831898820759695089879671594819048560482465783525770038344728994237822401008354001590042143303596711837381543412741885510171822950640774766910148570033914537776618784340229989659284864788776999688207459371326541450448875972432664412806559003526299773890639119631306083635523261944459210371433898949232228143496045531653933909596840243545348695394832560871359203241899533274960287092978532587766857751323133749960652867718449901269344346843299060441635624577279972432612301715492608519806073372540144655054435687520955754363379170439618243743307401519370689069557665473708332757001649812783253804127787299395073416684612936440365133900726253554043247608195025964902074719192887489179062466864252932674696840071064324457479545260265181904052266579431750874170415857509818232067202368452737226926563095103421477581156716907473038018285018422551377257128041466738361563506952612054194046288617605317386638570267398750232475725156322108929398301068299335823481691508358405294978275790975298015885049801144103883848660765522432202442014322734523783511292561858290390517028417145807986145123384077114331988639262214747033012515142436243103379846488403888324842453402543528658721324639776824860189054547445535327895043672780449792433915972280355700951393848075699534751657927627011573452569533094521318026837774152404879490261059449611397323808518346459850901539715713174298145449668199719528863998462680228314373779012628685663764002730528953575988767123506613318901288403637033682861811079629515296542139937113235871856535132946491024013889213455353836043908155342240820904163507859450216994020564102976617802392946936691337792830784509982052214448536621545691960984033303415286129846963527769431889691956147639959571217295422038770051913941747489658543708125151070999894700537565898010088773529208979227800988338335822116963892047800465956800498949299100445795948542650842716885282890655839770798338725081355832412599755446258774598044041201462531325261689486703927558196498942776012730252357279059774118889810008335233600842898753589872872965494038713212142536922458625654774630912266983299127080686307228969558129961078446607090038467053349103569502365062878689597594994192219402548075553332425581265653968855292681174231544727797826174791330131185240528601186025784701768738776832713220903845470915424885843091840405530381163273485604118687608190563381449950148768732414224239177290593581508501995122477774114889220571956373064865936367512705094440026501457512113633753088467722770553450164783879163270824687649378484258936800731049071204876385684341376115046180919842035035657532351251095927405386650994758346332190164796859717907673693687968305145597182132739429274503885860136687782150546011170567325856111525639461047878381001861501874868924547474808886310152702416804097465197448372065151969884149371016932842626436489813438312033025087230471680319991265941299931122456924209483458703437509551442261217450228696689818487995220903093564259512378908455809080723555353051364551544478288839721331845443973790076638771064848769034152995302742034065065508955948256121483411492178460722327675568053802663111652750476979873836766685090418390252609298486565776000788193868888834787169435835897249792480702553143057402844031503190615424801328955279860306841738428793207216034573318484637437422388029785749424926205344156576992448517631091380481173418077434999016149800524620524442903306762452719037300244160696089346099983372509628898435823564714949863413329355871691119271333026767300060888469731588532493751938939336560024262270109714667210621587289673771591440346066117121279001305557906828832496643448534955553842042689588802721938438985213991338490304499620163376413770249207616170540903345186176914432154085765354464729071096471320899639858998536302475578090614513155204822186564040240391785818698538495675496714801325646447322657045561701156131813532041301564961711622414310302728164565418548388606176164083644405529443266515943633470443411172243727693499372289122521728713874331281149293431939855547496165138338258708431415099277640704106210628244133036154071055519764862150045991105831564723601227651787650460161249720770558531610191132445845147892812145074821843665794518027048131761465837507287467727388935745734141890239215626891916502250022808586628464626653767777186346506695599135680921717121428629409858556331919272942423023007350402448370561315494003732942167821824342567335345511756783927539275805181771180254715206922702484344193526174746620748577138706786323452618585205840132350065346208368636247868675331317350734983721878494016292400560847697809736078932158671900456045558245751394479302683818042361903762307770603256485642136716708688209268402053840131690757358181884780748910508303702910529089365892891501679171178314743558972668794465581770499730405691931075243150907196691184454127135520397021925431995178942245486738954920262862034738668252691801486462731212153886881446189013611132833472244348564247226959969488213702250116804191926874117987955196600472236262570075482649476181978267233300684292396262066647897973977881213277218364154979849764818406367302186319012914946626430723280743116924238031217928610495179148359824235401014174556741279703401659274351772792257210059631602182475347295269593106116724957565440233447570084686891675394751882789021237640582634616270800078846416197811842414355467263780198094153361474025055203950860130503385545916821054651600619621470301587973566568286492765392253645330056266249908512198041987910882948134609896616335827991968696898263247823308759995022128576897191783127588905587341789114461421557082468320815985007452674494712404852843016356524012161220290411389557363828430315041784876033156304496771594606311938972415276028506605322256861048370353041911629482999778092403023410140602240005663139276113018886902961407490005659125758058605273041073590658978315960133145755684741200775907378348340845932266584353603896855653520895881323940203592939154985093052165012891110786515022029407807224973460246731539832028921371967112614620941982022964426908164135346323149203010442415018500707811483683495630133052429693940601190333154065311194679496614165906957243007722349406337386596188722130291654425135873654318876065247869477891617223178187885970315742135186261452398440965215366743570591587491989905852758180787829250298165151059649885154490364048059178624615473534010622526204808965198833167599457111210656589855846271480944355474303874391973925286485173062311135376623060605397242060810252846438853800671045112180551129142044096766354112269786992359230608326562420397375993458255828654052448727089161188333436571238118632789148851958769544087326529850140901041313896661883668854980835667040632082148349076538415770966619295594758091305625442904000717244281071451498696069644314570876784908769323956713032543552179358134440497365346400549528785157894182067873737486834204757041503472410390198983387081368287948791898817717493421592137105814620171486321140155231773199280658855814850014642488179821732769717648112888132349883857361560855595986393449892350705510471871973744621360163430727766200520982243784461307101458719921201358309133648012970921877721530607510794696651929791469847879927137009271778612843508713003791401500577842803992242866571501026303019846888166528273156867992672856742405077213946482606948796875615158949808398663369220601059219061717484195498192250500476199039832289918508756922755789205563169639450297164114959812795741598496610149178458000706618900756932423283138457619331576138876018009539972061832757291901725477711110802277985803137772860634138020260072993346341754610234000593789960200727974330279233694036598529269458819186094057065577187363043132266021795921550522461516223238356776746218865355286202122642395201735677210129746576254096461726858994766456350746295918052328224011372622412695944797848483681962936235745503967875781584576601185264082488608134839656901045394517770961613626588337165692509132934846000769944333229416825393123400882511725458565713442689035596760457907489210905386794254745361337345825450770137198548290886793627328770956736054906205809651944053020754563567479623264601418081789682464660597694936197608248098327856219985932779407867587078815048536927250335240952769171238239052326664370476326977640819075200096804430743423426291495318757959511610537881184078394442540327621037662082090423666944895258140113632513391607852914360329928224698676248774623163363453242830553378937845517582573642506613562968085254784539555876370765277059867175056628890735591963077049231964634645450971943588027063028310482020983951823452043491997681572567960550430949089193201154848188647723076942027891388844074255129798721562509741976364977497220381468921086270372809621003500005205949335523555333612560541184796995887654212687952491529932363437988684445993389285261946647228083190753450231179755546350854273100027163979184784399029632520115547013899639134633300418110155604530454215223324973389697948471127205077815194287868004239742551843941127601785853652541182970859478811971043969726897247960822317488543016203994147128195802754120649173048129884054481275591225169797228521764300322096492687284956917950017703119044285380532863212104532718612966817950449507850723764996152883312555145600333075531708729393263888551256469498645367184457471072274379983577511973493903481517229823972883442103925557719229262360735547538751395135977190541692583171286519340287598576196585729685768432446195975472669208198732170475006554416777185459573005565656642839836519527227517631448319054070886566693594020670546450973555603844981115893908711840866239580444961686911570841603557953344674637243122823081324557247813104266374304449046379543893738159946477919843991623371262429754040049433982933565040065099119348049432718827583641821873101420496167933145829520904752807709989140246662435468335130928655925738012722136506475966769584405593521290698448145067753509203045119692203097522319525520871180894029156049589813644378006376950877981836513090827064787287581720179814036931511108035865216511579801523204628934203925472339959103835541893015421387240533012541635528227608779287409140154137123616707405771809356863004666193626819849802180696878905380161382092245259655246569576958406672744262017576680577494543773926676722498368906510472979017725791588004411036176637949832175237548092510895191698627350661198370178253470416808917430349442024871426189586966972700419377319844663367508263963949020372292783878743501413549304569824364827177353748882357617662859142251741551241994759334035635285636739018885130256992864719886834287405285310277921115737742173325210607287910225451618522804354164284121195277692037641538732808679827803021893441105776575690002896983178093133073352791572117430209275027268836205245538840611376058598280524986427768027696398572518902623866273092527015435121360691174055160109065583658825305300270261629005518000527527875833779970512258048391446458592260827544722231695004464848921775359157348072410248216219974026365402216807827012034127791860126461225550142702104386675087968757567720292543314270710967632048970470188576147975480539408251473221071014235281388706571325421956733296515102349799912679088415399099754343940714711613034361079525773755758929431185788894473803808871969331204963429738153741158062481911443983253917791068077756731466063685227631899367879086018947025807182173333592223407929639893681592949419637598171050765288495887162861124897168235116712149377319303588625102978770399193045294875737038393806385667951137181381282111719156934684784325509968523728742278317679207468579934081281811334472429396013130034350624226723985040487970328947161838150428596358255643961082786111770987650531119446643654809557025372056904364924003592743271696630963804647281376804193098671581728027918984969355372630200091083712241348556013610445194246595092035479982641128938961642291363327560114436423017262414753939536416841055072140227170923902583929156149704849015263271609649976201780157290601011845852380017229565253441265726884215381239070157830870030532768320006737633992058323475060112455833411781317631395831855249385007952757297141088532272309453977216143568985883704325413246396062562283668907549864765040330605250898922048096108958104911202946808880202174279490326457848884732236853500142121188125001795705991867641390063244929001539139896381503655764969869305088490993764356513975766053249124358485648949367838232467757613958260411684822017203756519882794165340979058655818630017937397947784970960240438291965390262573327678585073192764460546790591560691410991574003320088861032359021769675537091284866109250756598572868547411659996856232375194417525983517771397923045860488377812525136777063573038223465301151325901405272518749798177225476896920200442470734224205391136204745757150115302081953678813737490278131836903422950106678359598960262684323419501106144316649732657571769462203415622571979712725504607345203781563785466802402283542618045833733129398522913128147364970488646332221932273080471087923541399898869222839914855155163281881229214263267577679167160200605979761557882507757535895228037177359145041959269304989726810219169944874925736842627132765943186743229590694876935077850734292252424175948453099860763899902536754562266203031984507977219219453710322019492083338357518526580116289671150400450700568115080474617316447300444796489077204364533916959709725873600771822745644718538029410708051876850226139344315316385589170702349153170553307503322753740275611274748407000566965436888100760115683144856041100910998195233400719881860319893921296478224023042448335169749685931665887223103535340946397646785896894439589099820028119571079409637420832450747003267519141959186057518358281597436585684415272631596756490164724304396617013252675349133888568047019040595573812500760316705765625778361450735715510287413214879381620796888695523804021457647369329269266142854298079241529901866712117283864444935075863062872538779270592471220457515970002025629683205428999756366256065188331435695229212461740897953844331669848261050863088347792494042620959219385019161317884342333855395561257008648052312856499264892072603480047784835572123353799242445897805787394371496011699654157038210210709049693691806984154250057218402602024323498990632084564502558516609929749092458185177657934936810544582798746201128636873541909798098307788131468460004781534507303412622087576330484706135673949786424279077498574821562924414123854293450976226060523934317018248877405538943301919957103976217980944062733444221102770121411374407220882744020318446057384598245797759153394970484084027534153833423261527245401852067326376907300176543854848098548421515597340235210850148208180405388175844175245603476426514799703126326431641841151386235662385530314263467889990076745473955000769384958958240072112747606153917612113108419255525246142168437401125821069086242075825191429030291474086655976475901379415241915183055992621427158031433773450333495922044544359284083205517577894543182974865469217997809143360671032329045729893732380283408093439920029105751548253679457507566587717519823228300643023008717325109585665789375687351343519644650148932971738541394104200216708769926541896348434719364340332484346725331592424735968695681616266643741357513501934609490956368923069807033754229298249871095510905380172031289204487393220521176145657292204044527082024162818655225902979017796201812019761772339126368928865114800764771844611895408262901430246332266295661984753665849175458284123140101518160930446330417287436792850489180416646594119328606920123132347167173266757945536035248927619568881602302324184476605746221602828344605934926639828525547201807869278508968650646990059276916277841996318401992134609949774196577074088791205860489197594314513441165349022211760313545435374342465989549369567122434950025249667170890771808332169710699498064116235785718794251568557535352811460976887030514944887456467737647915197421615057142129150813695557281096560822674620174047725199579268876608330668564320649309019995461037332644760921740824672612636673633549249553828463447669768276693156052823228251666904370595611462433553733605735716767079666694182807052343779830945897994741188135058443611152189894215449693314264470669288762209197066432744236026963457621311867002615283926294347911877505637415822689307539323456201553339381526468132887094580292784355220129043230662406128347853371586219572307365510373304333053337611885960818237956262123056292721000734268172115743604896684336910804497750539549929973022117104923089795815585965370410349452682318318984819536828770061733698258640128801543412274578727801870965420095403439259262823720274955138404774633135563693752594904763599944402995311418499316066730082398773540223199668154869759812556429884447315942230796509105909197157350236843840950677552599607332550539382368843053364937703341824360719547461422817539859229935365150367885351055625385210605437916445944951043128304446002622243163681560749815791843829215801442309482135781779496481118571074615674730702425511601886197217716399654376626216190754889624984651383657323402267904612787597259399804688622000461502620571485726535620628758530763806575889096400390028110033520687265317242608141156983577599646794282558482074737173971890413620040319044903233500995364924304874123141608613281639179025801770287280208625875058792356671693123537804744395361027110527356396767569004094639593710871767580724690448177289116724879745128012406713704871443648560940492360252659165667327318726449956911150661208276551539802814279954236305889734372098356883995289686647580571419685876095492110546300483475390784259740519342238487557926881322983119370439129157584791613108977825055233189794052649131353834411614311090268994077856318195293926649876606349063025323573420953789807654275632657329530552290767746261121104169413060088229506643044210643073790345591030828769002631252084563610280834950336282716634562917536618389801082885941295704027663552039947615939488500165030505294490329151802607893519849402464003771302411675808605710548256949667055934854881287868670969418202985916401299212960330894698231070096503113869855774941719813643688665162544390746909917685528271196562802656487659046045957548435488074179526402498477754926336579885392440059913038631275576443939850383451832453542450278934433864414500527293045560430644291764656008181537341827865030628716036338462123088074424281358352132669142513400862561548494650699087238988167941791691628782708692460940575279983997603848680822979722865863216947221732837922543816076197704312198556196419873183603976324015516065688379325358377992830593047481166980875597898356462049469317275304933843160182261910014299192971894700020612127992011347007610512029351036638183846214471477415604459714080012221311719603110254115118958645626689593052021876305705798142851091806980133162303947321566847294674348006917260650303676720837901594004676082389481804689879911534021945280756261780635420685731588380629966197352740469810688405761565471374874707527111818237294001548859824844941071826078581710828205374126113701338609644316530365238126480524280890246655458488698133292666498938832332480163199201954889757182531454075756518961755400794636908249696368490628430836060747876859312116408690868937539253833877365511509064356586072605967086165212526711408602743425207521272209311716969759464652523412686218876993934507669699265134510156921737505621189506204945851013275611466273647835002000220698682362360768289677579285361538682690284423573672924445326070244212528857819760816764660525455712469744085598021203005374007312268398453593026593785228205129024543049263402966319001977013170874131127759716856944309336158172384971948672069566671794900268134804960960757378642785158962579284669722828512833354004132710477492029221404250105056714096869304046620350429451799002822715010747253095588028063802236662538424186826776310617576459108932360332905348698369438303849660128293575100475165945411598610863443215918414671830232411758194215849600441489578158715033538564074889321126663510408239911681429269280178930354903618252995631740794657405829532664706636791421601386551119382040041684527542034239451377272580097460892516934661447703046348079509899843866617522749332506889518904623802783624955198763237513158061183791750504580823415406848744475932125790390716441995538570852601907228305009687696907209149967816148071313755427952702633969436379703521044883544020736576062905238953044622452675986301456555849049112176562073154966743838094739364428748006155416683630045021886048631591041408649708387343670183210900585421941720103962378451020770893747599057194154266900687957284153901030330702317735303412539500402040750706089263993415189187345154792996986772831323342026634359928889646629567189758409144625321048901231208189543807193374619385054714624067461043462565440160090795818240345251152335169358401872036150839338777387109358445657121772136959702368281707366801553486186627623333531506936930020506782058548086482536811678519741702745033230170738079654139487384232902228367666394399506680801910836522025150492499477888863448053351528905106389587989904342484193357448518048988666574572025063923017337311777623609952369365113924537811994278881461476817824216308943353966467227903479694275353174278466475611501340632395543831742905294130487030946865847172033347563762096293354435387326145257034000310425554864779328570975299074581804131331054813618620212649779729946847796488751316584175831201593858432467031345682514953563288826538047496827486330011908402507831612219264811033379608320430709145042978633313938974894086721478163475039137563645551014322555610076713571137908721320576783086041864382883870431630884376244730934489820775016038052377388484244652787515207258668506410078357855708596246443104693898273629006873220423650673572457394476785600159395786730045809815564605480732258776333836395763910983389576021812466343885475369831175519082544980735210873816056724487419098695067268756800453616255423078143125588037676653153668773983304938470376786902670149212942991497184196797297036971429659255450353923768756156753584651492226101417411829294961642179101761136177934557283441609720188013941955722534531087457897185521225671738503356972385771723832468901216247768035126228814438154487334841257691518661601216525718921955280959891095906380996681596070576330187549662808241312007622211236844991009798909198760032929888979257537798633363905080680757259322722894127902200138302935292768466071913180544020135654809355217887473875803814771267289794629469445185794349923068353086031910061755881421935740019159855030525018656821716286525490278104696063689862958769144539655785051657268001495348856528725761323117014771035441399738414084869787956209874096091731952414242249263323246204149644258667605314797582427069492988915769470361014760533131578100480011657187573654531300044813725592339070440536886357227583372986930255749952244088203412666067151560173588067412694833733175964455253106533428542474254092832282065134449071163870613960191787537298944044767473956364783153331288249373479840804755332507467480211797860056087269397182618837004984752796988013892843668226431367022354442654949113681590730940689850246114303120988820304337715777296981989952695048004517182527799548866884886493464284054960800157935618379937472318439970232818850536843181571384467969306683277090412130847284501911476545015472092504955754572606540082712563427455585861056372367762266529464511410421566544710733004002129167881635312078371513760815627010775817997982409410473311701493202825538854657426616773894116938430330954260996574299888957836219810691770427792991468342014363106000107631693267984770984927892579460673550438500788686347994059928131005745233967051880440952936246046920542255443589302510526879714624506095919232831960663776343700740276336941361793640609903598295483473689163852765009518081761260888330745511129133689113052619518374968936988182067642601269098527896053638184749400411115693299037407215467666555428574210301379129650964154675902693578108901106857312009327409948535356801415008880444218303461189960833354210396580607681979651727762147208324635808373053437448779630637987165980168346949553656890565054863578045695670334983545720764375045282409597931811634301287426634878447656273683375975042717231547816674134492284824045789196577426363797139009413019862460238670761940055277925340344074341293880925038486932619608225769866250614408672967669525807812927143590114102730240595048673649276619560599776698670600172789336250167150442695460197867490069410694947072536837151714392683479378873515205683472493519615820187496889243049298817852390349658857148901868130507084454447481551150653166872809041938269322856286505142996385179399302673429352598063061436428544927224305895084651454721970260541313835417369116932032027687880809129343500569535219006189467337401811561105253671446807239123555679062099487461897098291179169615287789426368975625392224751333338985336356029804829344959391736165108462494565153874852828494722956006093676647698160060634844524099390712056469525150247134457073756082871741082688643963757445835448034600069732725042650156329411312035748659413222408320350776078438394649096088705595855937368118474690738852511214320705214386698788040720983647852086419199484849429716501827051333955491167335741590634238792245748414843412468662323562030498155846077572013729770796902452077233647642426810372162166957411578711368988767976797266168097293240480246218421163144985422056848789660851954138222667074803537776143568265120779446872048520813924527897887759057732743587608762159054764810561768443823903068186300365791911470431803263644388361820642034827339293489562003779804557003242909401615393885890779093189131544283624286322725511717651082708653043652945687500209009832501483730787400549259257939792964112077030398517809257420660272772674380126833140436640117789355001652460166727209789262100580647253114187704556714216160769738778675531700936493363499011529454357450343298581875688554240383403215274523650095860303236528080295971380488850120459358243758630039443249109316346413530346261243654019288874491515149456764446646065265257758935454774274785299887693682267873908149849552460581387893995812936734275637791799156195941014433058216337301154853971174193359021331008112533738467591158005085527567623093759369781161955330195447191268711492755749941537527601661650729508247789639711633626803616085364250223700708234669144631779018338991357047719588692037252725326990376907646821499170907542132857742322648243018192566702396086643169317875717790084979544380439711348053099967740264582476187841261712387005212795202907751997873164469395208775007113624203667386650838629593944580610533970841498126948748557731395020694229248765066256513247253105076625695634692577248605638578188371041603100151496808736104295322041720638974000873373314753645374472655574768436192990178968267963387990802397906118350545121326340749129376150960641128153565862350726585348139801197196319825746542280975209798746309724787601557011839444317987388560947884688134651082133998386023234676715537094184014232125045910967366094774444824281308384331440679577960336655274015078215951339977710218583928656977192779055943238717001699133732872533947803196163752335609374485999205746940784201508271828952855617972242888373571858636218760662177783366562580307837272622769163256919329588638526815303074945992619257214747885717626126445425756629424956758077183217042200093332048718917793377387988643253730449112531763382921366817341892265287270416630388138920447505249281331726191012189267613202777035949648545431412063397917780778644556522775836243969753742423303975347059724568436180625076638436062685943178476377455520298861103515495314196346422718808947596151632168820002681461168760111091726268280599913133042478052007314962021608687029251478739255490317181647748478975298559409000625329414844080293526565426601254741755935862240843800640169647550079682063948368740284069817123698828324133770464092312177470029141812573990907071616641260766883753437748251546965547597520080530841330070181874464154724435577841756628810705645995637164227420257294349461120717922506754570026996430127628058474586549102096473926497905546802948610211428488940288332991385113948756705208917535414719683022648729370951108834120533072287959962888857591039594213881884610058664771901934580938279576759356330251388949074553928339936480637128711686156818788173893601963467362086468029654292107272163626644415294555566238690356559894695540845779074101583539680287302550600370818763309855782747537529503650465998952121587976538738666746225845417075174727145711058932887089826035396013889595833820928016779778456671412226150348078840432023647250544974676353580044929790481656931544631903237837416933234307951115911909372968903161237000005038127312475107544875223544727420496003929951137469856331715822560576855665927210356118672530311302914852728056044150496575603790167016501245648760852483227271023790801489403488821820210199245002033447062760558524278017265757394315429998165190744775826542770168360193409111181869788091454217042968477242077709065346886291407772193253381598048356355310719501955803467513693652534849237641390369889464091749474786885914988867659066545728357900696493862402800718096955307543914953780032972599931597809499675349371982527500726239472757296424843841245091273775156130299621679704174577812018160353704766719434559245265579071162926215603474176148096648207216187358372246697579753220559934716135157665845260860766754148100167578250307357570818109087098400829947620114221459360402296927868736350665141398712917378338291678754046423708072540079575999036542558431685260328610181244621434288995509977904557262766106250419138861612011832813620977449723092858409199306706510274083384546122429577136470776521492948946248713014997216953106950110690206289752350390986417476769832551093464469240578584991051841725601836971733800754324542049693591617076256243803782894729071352459716881074186991265783292589536322437394550029652140022630674457885104704932973697460821931319434598866879042852745141175832276102041213136961100747178958133258629033874490647876950590848303533317146303219295047708168379088076875041116992692005138200598202187979355701853840401505237573983475273761324066179966784527535854593346180928396000483517631977256719481443620740744379540259910995830587351720319521876140808370100919620022568192428705526166673623064756620349555803265854343986640726179502958969780894751676734727659506052374618086138018248950788095270549188284501343321578572705737942662385662101219749945726179052437855331704996908415232419865379193218652973550143021527687194849006486544476096724944035264281894761422766660438505727849898892228799331712328814619818554317814572554983007377199026825355571241285288972584305284520725326279428801364345767941729888938347478143218975911969189582395103621639890388329619896152045795394729758310132817178427075042757653511826118458381543211523400633680859954112370420893007389730925238589614238517360671627937087981487851758776291213198449832698643756371670880684211163098221765393788686046092323717743105202019075970399380516276271213850996739166260504238440074366836453690523154213802788372923087004306165495116595799225735193162992894791026825416732411100978405804996798693938407593011881956209600916934882620833589585247699354050047887707472877421854266975162932003409953735778716649842346064731201234200466874663461828208845117303087063853471376979025162672126251074926378941219993788418293787569033345427660344621193083793496547759184193495387175460742970239087107560362690672145503463674212471890555676512534606103586718185768179200562749125243872611472883982351997034191925233786744496887631939824956589655350451512004602185553029425826980250865141642745239424108750500805761371249708238286383824655001334157837731919413393651446152764758176102286099610463574330756665283226844250730959344894187549949694123682104242737331400967301516122636632759419894121706833323073301203180560983805806415867506702848554970849195963793456983476237950713508620318685239924038005673923027963065467986258514627617505829150066346899155907529249829125867643814566749891237416768909320483116789922148665845680262671693162835760775450189771923563409004743221202021757692779216333012309096805335220508607549236208766034110447150945325134055470171459949992101357428857872816167796470039295599437071888287115404218393613199037334279893891231492550291081602346118575008504201871122117153741135019519733973643000523850825053716408018415561308379729821462205222273380493912792067327033708720794449157051642602337192866775676901513211303032294186073366549343029387015997515706561576428172329030139676252064884978356674159046095543507354785620348377907991504104843655060133410919299218778627357282742079730311472284062832507748483811325378784858608084778250437344268053395618872042788624102543268058150841249117969516502734020111189611984048803217357432505742155613507880979435464982887362311097709629480728997203455097404613091697936301805789494387758463490551108353892990126277346285855686166273745919677191737514615755928999793332182431932356032636531429693421999523324148978772017295296885597948161646597374398066103463129602191407830640683910622977317359238496690419248245704864114869460613591415528786598165390646104087917447344200409078719514292258647259031812957316189914875256838483466873274106295426025903456596830123305789359633710236362709854791439530237798165559123804352895984856431376643544090307640818782686713841652716542480062583918616728915106220630190040130971406007075067624353488257012211358662832306288389518159223612302517507712232579221711607698094793596466449089405546732056712958776538780822280122717544165547631852886369721923330088682173425236282975983231168054662010619769255479865054163205190815435139443017284927321621527198854232824824037217185773353815902042147970852829744112780898678112988866220007760814214950177067742991512195487434817575473255192619012639873099782411076343616468588297217706776504137144978110840183323368270314494861503855318845413797174165910813553510711904825648010016878675916750360384316634856180092373161221029011697204785809029319144859076533598683784126759638950211414004433857814359900230679209831026817034920714172392844836683978645334289167896593369607951311756794759580005372881479635791598925850164960770061849900732298769462287217674939424953789265961927495089294492326742304015371220471566440245569372676466464205423579040153772677962330296134178295640245901621058755406032084159825318055457296965376660224897662297732707607166934171958119200908372279438727987339319290343785092427183798190171074405665197457337696621840048583089482867142507645540454842301614242932823108174837028965814798381069624587280805896129639587944410742134055489929230186244913736253990487429380349180829735050353004424510730850941628469519114591383946754701464395384494653848743290706105539767398980896666329079090286324228989334880885083249053831034147089177916681520377943930958070013453953751370600991480111395388994242588864293394395564601501620699615561970097779769987011344315196815377988233667337472581582809241754201668604232953978855761453007061270699027216034910328620480167007012693012028755532292687265423875969403798106052507367299199530063981556339170307488083201691170939268994776420657129106773067092606513549928213132676645769667692708328881399309238268152478589891489337086221003714470327935211476097944670704308151693565524839034582300373623194444716235415891614261191282821434733335534888854140237476609303782340974426627666677551239687524494861979205474055890754302950098986905176545442346261870587068014812415075675278413451817248199044252049004009115112331678304828747870015740840063598788797791779929461095409421658585350533484165885068433937449231996531979640892368168403014843523562022523645813880142425642541239313594826917090020928079976210177195531101623310983500396641062158130508275865795072850767182013029228027716195371471740652731039983551365969128014047069817688494994644096151304636305039462920044870112226945844236357779194523254475549722584738187134870988587919501118390587607507373327464803690049623769186330859964183005569504975791323969815265299308516707365103295866033336434551329877342449969127142580869688875695597894234464219868912170330015021322124192529374551980652165862497450415938251897617909349945562390781413157774689515348933189512435477301388657905336875318905465892973480959080271981712331213195671400549994086427147091247477623900593222588592208606381032151967881979019211153792431307848141437524727360904600869718618486616094006123797478194864947358419304852646219837488368452178143689778899136497714985922010626626884578690713319924641785163783410290341817424023094749536866466799150829868521609540247954003448979460985663765263963594853076337387859859273212420620236385287916135501499820931482953251563744120978781152698594915141215590207473185235606819718919559481578297800574559143831914674520912775346107123255484294597727534617690839154508598116959450856649980077901564900919374581990700217894359278426443860489293448858164118259805017515179696482599968398240574985357895061906531410024258084412122655399110051243615858511389601026566697630596198332156787874507376136777596475927055988539231968245415139320999112217416551855594225289039322159576827581811662408073351745263748949511667897209101101706863608971413197518762167260559158687545854427336999277046703655535293698808137753931991573032238571478137471102644426246740551303477336381688901102151925559217764850617059718979974998918665734201723131290942609118389148577914094129800665753710202935145015403766460378896346858998476267476140062644316568945275274107361069513054733643533280147271525079044670704497307743906078183244431391724432190664837462549174881176097062082121820373116660409757281740279165878948540920695613015247072389478560847229866372012418630933817595482701933530308238791070401572381514634461376660110784054059116027220090932491648620023974961531877986208207352175278000758965827228748967883748744517928433554652853063896492815951550603661002282727713745966585862582074763027995227487298483287872558182232726414730237008212455678387620830841043519078724583939886876178820228206791906293472654267034707456020992386943983450244071482011076219599070393429542539204692735298122455203429690378275088697399488302215846079864441693083378360963966193222449001636415600010554486328841558931888881967120562325156731777449977720710175010020395654207220776534085366055168273656543548435285612382390804811000700938643965755785844889706275847299672049895949795706097861753254923678642702504676389431131887410349708888132722746670695245480215568802904744729698813409995782084392261616030126354828887377572609640662939326001967763244793245339891845426107406702403988775654216507532071355534872817466258046402423329031897795284011843925802820694016397456358976678782602211529803772784072342158005965998580079966710387639518437252389150410231316023685792863323875564030698936857650076774196948837799998651837574903444131047637241807789861200320595184074129358523670387047010690135205500147154179598632294887758174150967893286526678319664147491230366307766346100092261979383848460196843037643697436482387926814345690435778877374836557231427777503870376092566012843245529726783181877587760741353890465128015189674122044764004955041710950879487903866621895638323789053063858692911923388835602563301105759080058773223285446381281432077590616314960595032391219077115753087705221391224093578006788045105629715091034923198285242661619055717050145745303235548502269327243296079958171089812537035311051313588348283226996323917003615128373096647621805377879661650660059099969051978458160919430915429310661298254695276824295855271841108542918821782062682578213235689300655575749091188619874568280437234361495661788527409550996352732876447697790147363665699553043242131313339189855174954054846938746825129742523992878619282233850864167525455462775784274049386983757012664245006265735762654319450935382959314923092998129097848445915349101670333950883452872535839339038459087977688737910145217096626252845352967144400968911485379719832400878050499575988364621836894323525285599551528458854420738382688642762021490877817680465632604486727302618029642125587078601717422671925063038739786427397803392952198440837881629270835186099293937360453294117278177862034541182065097227257014182836898012092967709585778487363627980130692014725161057891018504032092792261093299710131974546930884440007145638946325889838010744950821712382945483991683387459211116588280514427245707383760666526276294827836532088105036404843978078313937751146577790155741529265298775136607777708374340434744548585623165166094406608563615128969334544331582648515957249678321059624761321040359881323632623721742541752688945382150077768721518411607957702065953723990828982045077060154065664358446046751837290632240966838997340673713345473806653137342290738203401296506631120842342892157848933561453951076703642436613623313286706374333674278227819794050898316333210930586141522296423327448521033788426306280676484900045203568924052204982068351333893223366927646990672413239352349990744715101508516879419024219559575477687261105130165652623552188410948729156230435365784483768138098475698399932893261599295450642483372476375071021818166405717833920048273717584461114708055199572850460652118296035728627672995112979028122063787276891894460515530319489286683045690080982381607850408896292533479533932894551618647522608274796706482150136533533075593707675790144683422006372283333297160884471290345949189672735039810642911561280303581200229190237913388391237422983556712198045004554739876380988196633942049093119119051064943339544918107882526169601638211893327121662884393642133060819015555142493020537401864531602199303115307462798051592670707366845525076779467802591818549399352071258840871893805125233961663102572433755422272186271192593878137347414378018128480816185828905052163181186540870454993973692113067550537694604425404048794152989500921467904886313656472451058865335455181568884612135479447107703922104442619706172495474245019166255318091138536029902327148409331327271998635684070085713040982786270364285508301201301522919618972366078033580359408249825883272231457886731621854282422499338877306314862025524021382743044772429107856138051257545959495375512137026948233901256879167090850124881380716610400053934966320883571211437133150481073406130561654462370027831019499933703447477795998160833802699492487476715564245612269829148132974510111771612138805295843396686011254166354348896646423645339981388584110919255224543073552371739920926577326112590389664326723903329082658715573754130565323474014933597400700356457430532165397754926351495194964621377764958685738525636598394333480259977190805076688888774787402813516367028723359081616140520831269362995349433905924029894249046468838036853075254293871299381891855236062103349560318492635208161978056162681380865514072009454794521473764152246877892356821334343266332183895034226199835282787700398049068383752740598132431827604266013283260974150792129232317877669824309743196017373775608169892719689426544226442786964320643986600425083230301091069960448838058527647817434600665001869433703313717821490967371880361225656136064876320256923973299683771119729160115677978164861851740365718816168808979910573414000512589728147846053377936181341215348537288370857494064323236040922947652497356178841222889393769178005538966677266953036414798807063897168923534203241631915677777943901760852865025028458794127872386781973790175423522618504221592824032682649935061025991432393302258860767516609144545854027568457416772077705073339783100375795048054682256259484597091544220109625029255070667622878361040232187686438910213783659236967165041209417989157033729389142837459527170558032177942463857093302141776500200325836017042790822137664916210347980573881598963004381579942366735856640375983545825239953624028548832442436300263203515906389466123627070541937621627017104037899855604886823809445665218870689061713974658687718962940767946534331139861842757808212433909797457637052208764379987674024412658869042777815788879940714422796453458299618579742457573393222082977202752101613892662818406544470466044456571527610291666495362036063318891031393386486372535614744052074720639843765364467142049979712212334613569757843459600539507166904144233412948340157151969605582208820035761715513217971447447097792220189071282243528103740794831403635002292334575167801539059339289205737600094466718961914432084000840289994958597111265747634682841896026967019213513320342932896757214592157366241573649140899581295040351168854291317693412478969354489604120325808920777507567667794175799646914908940951679573042064063247889258135053924370143363246346188661781317883253974326500734408738792790256614503328946977076927849778986987082242263461598948313926644532697242773366317718338999672586558682175896332853584668322881706212106770902271218115417430694688144302906883865609666071818769380182331889346873799292161791017759795393832224435753712861384967814999380429194563421279325425777899641688058722823242436111016943221656642857530471645694835997860162593432292862094030095141602107719350253322272673415427076940475815955160702702021621052768504704070892919236895929661475450373144605960672347049490410266818538377241519190514036994610641648017458702064885946364522692637885477133871190363484550827130647793599879731269390816196246033662575562762761874807696473184659019676711897813810849196808785517813296616403358812984706773266093866136245777436733775035627441330699144115803570378593822580709445568906879250959593473007815981458368416944472944265082748267460006210987716745684135854578360847042106193852777933485929343411925720295609590221491179036040373466915605834392432026001007191076522255412080821254997434495607812664420787724828938746130919338264214375874687776680207182100953095061129118052346358393441793728408140994532628411950966546075016004032670579611922890660823476213947961905633051716420690476166395128246044858749552946255680236327578216612352928369773516840520146911545160528923089236354126004575991938584044386044396581917425472687426734435213983831106390502330857791277555796074649095763151655914125596228602250993224528757643889035602609396229553931830632941829117440187092770092542181120968847281816434224070387033849134434733820347866288814866413596734231613951655226424614750856719127423123044308135392180260009442027846708771736788417848323833446417996401546196839817425135942894014157024967349063604967457234052675749269361321163479926507328995956196402697351230720684180679577003902912772725019581710074833795734140452115756081227510252946087177797073485952769485395227597383586867256556930166562014796942359587992097778939934749109970005442588829864113087589197315820688539678040540153046661283941448178962381406362437859018962388589546466577538604351915819207828008395059882410915615272464320045017848949358877598961925702524636852587240592202259843673693001714886075683069538959303918891620791505629612031979067433808824244921240773736386329250645825926866798512299953437343811908437208381053987893195676053659869872785199506501925176810538690273524265428523976236521732142546165721727033807930413457606874516797261015399320179349280871230876863885572366545998544081151850395516272913337276697668366883386612084791971369393471563569125798059677296940369992168030774897912985436014610247496808302101885540527436063614689977508496984535622131124249416918932520805027434654169981608457548913828966545707186267638926533587241918853178344513165223389352047133142505622051551136104741230721629704208910170317244390967710365088689649872512138594259426431294796081584819181361750497964462402396148043367835539943588500918388715942279053426132858275103371149083827500590104513569506299349152100928519502622219484613902605229784142795393703849661551311606271122909535630265160996672639525552439677658516695156917269856341739959683831458280503915206981134405012865210319407520423927818864666347800276641120482098401136311811991129217480002958785737918156298744961031418284798991783451543151461031779197758160498631649190310030818791228271999497220271188208395502217560463608664226902403500884700884239430738916740382057221647534089074832031457438168617133873225784856757130947375444795421636075111783718361906971539515279021264675207667845833854346434247668332864000812401144776239253208353513233385708996496952552390960902431185446132363547483561942437681928760886612777687575753123997593887025776643803976859701067681890824884502390723531265943912028161844268879631707582999800297894682833912177060087960679454488152319740035744861764029896361176057965130791774866340877749608040883304567267874402894377650982219530513892321029025127087935185253552833337487305355779832053044191407310031561140846344243017440094627803203463931740311327380594003490246018779825515847374062079078778785744027116762449930294876580323296540366207558154779827915827946337991181145979147918936929264042505651635263025961441054147860285086672501291579188265574539996528385645654071982721863486892799403909150693731480702599013552034594650621133689941083818707456359279220156532841050052948963303095713993483803813614211447588523376537418264876788952098161808208437350211793629058556933570598303563642390525746005417761312332476147734632223827580249357231422345259077789096394117794475714593699955581379653983177912010764037508334144258462470529794348516637706711813911316790250175145546226098740270082829332658242065535678245146107146527937593011695144897261221798746952064043167549668352084487905998101292326349112524686510095124177383955486890844112421172221113259967581908105258789827567668563152124019730462875175474052370978873975722598234685202117804939703103578495458674121736132257840149866725293929079007514188463669170037750727548111193242245123858338401197764531857643273494707821279547674903219034434942945452380210830522088885179659049693716514894747760825289166796994906604147316408675420864613189432558693550120074218423558316042793523754815239589313373719871489014914132106531174416695119068890490894480452225101887705952410669136340699660899996313548188500103715712314776251107152799481813877106178044796476712137048174359069087044839042144900717599028006307494503735646615151888557476322812004890986116144376767605559313109182857620814690575997692999231220787897407455392008281100291705544479082097568536084758169482573506341566011334813566641839122659737195465441945060993980986825594328843625483813140931030553986676189422454115353435663137622516580192074023883268860007587275860473318064097776745102209486570991633197728220843977026740094747119505553801820555082507738765028063978079614392971042206042650678509758223325567491029228070519516378856233972009324433810744425236087977508627949233205770096222946950296838475756775396611102643047102250064495205569686343138623813389726246807663337275840406661378964791520991320816126911835899263666621626749217323600166786209839298765499610142266374034139979958999410064185480429040753104838535419539117415342364695627891072628954270398414122784600709351142428637063527746203935993495674774629506420392000588764941120817518508437318443450735562321859090284877841788048280976118947413248858511988131859317815193620406376291492426048073562390065691265612342910334514633086940521543922429685212298680077649024025625331808930514792231631854782704101841539263214089446663849422868848004970392242113210794204386008315685387951372577258835945323585586888518469772396305214780566648625086731602798378545305144414890796214142472054249981631699221861331622135285775252339766016276305101203517564963257017762266406318054734234148794969330858999761661605856747707718468762087515562246637395449381945881166465845656605635522392415338320899576914640976523281851663527940463226752432209725339727752328289812080669170615821705581297393072531883026381203787981244167431426387277311589018888853114419953464568584140494453504461502018115545390037889471319924116927252356521744886741411108470336231317045486672399522267174528968074048743098361195750130567162417778040482482879979840510330393672036151009146539841169281212118525356935831018174149743770409897071606432517927611249348893893431494245125084875349539345297460485757110032711595809443512739444390937605910554683472530312304866928085636527687424433012557569906870062656712725073021061679164043841391689792105870172886066392940631937042695984256521460545584925247319066360896460121305075774675485896554752256789727407332219352916928910174869497921078442049182978275881219610625646588660273074672211974758985408206825282587078899834975773988359483223841918609037713044242929139654082145935849666992160193104827713357003084336646080072177760207078538584930233625424114897655665054293749004736561084848666888698104357012527212509930655125376512142656172850518849750790099441349851490252593199868468856273768756327039147916734477103625011450449048766924883367913207197538359455994432994083270975340441621673383645542602278684006684976956705895550721270911901772782320761290869337351167801944885906289757317166760717470249538059141264273485490924983945852643298643242952582297076746012863775325547716756605908419439134202669483525926896664789712167056960050657159269269732711675651268940536742702618243918612133726056487321290358004871486546091087684015269975548163073959015157761777936294965404224081951441375861648734281492621658145030834906432829910046913992234316912360178072753363797707341989171687714216685791138648422274885472159117209463915611447041974518883114717202688238920644868029359554311121211661172401524686122600211054860842139508572487653810209434129394577014604161000210654376469956400400947240280150174537441402493023908662533544970727945701341404432875034252322665654158377467442742735843536548850988227240422836459088916029165953887653011020493531326571543136171297654730257891190469725651891273322945721131546623751549618633525660644948495843276535434258852279806795548859983255217511182673385882805379751182196381380984298958533990906240459343740619430582368186967681254882098921024209295705469096868430879830718043623964640013538048977090024773456330187161306313691968200828463880057382270831061828177336456311960567808772376669609445843607269084968857405606086978255317749957324009225695831577803503270792680764106355545134840000537974614665157041859995916515265010846685114621410149919614842885710782964465730360896167210978111500824936720221805282852341269617321964814849860832780434247708320140415434247961641015429361879660255578246136114032929750555579630368365655983520915946554009734968248679357092360688361242328849944988441653407785568365686155791051667309127848971875454162513055687132223094956028021350817993496043633385227965090025458563948141130271137713407898177468799691426596379946653364289893024052806446692770735440678723228862400943157062354378316305734450526855785994195830459756398367399240388596060014036543833171854065096233474167142651976705032983742044201349932301420562609571246291124811647180824801043031877715419346804679933565685891813168582262153654143238829931396361549605951601330367938366297641696815277681675694134675518013655974607926303201747939583816310295270281437402703590883810862986503354363753198259813541528798603759355225793563117654813308641255477967066338799647364904665617515830473759144654872926159753315456942745408718862600134368241069445882486196047225826715586557991491594044306298011479800582917330831212705865296590636322066011805816860569261653745206903325529019199985820163450023946724669327149441393870550941210791859077405273801514806936832147047196291500288135959450086902138988350379640704570651831656169162035682978711860038964430348160947994159030923697255988513150665187223777784495633042073811011433395107175638661196707587539153431823198974130984564090610486951030910393208333165737910967722015787410565686161040155945418730365163035134012147151224440114686962576335802317397150107685835915107810115549682449229405722633414699366418755667958742860656652101396125068787207512560380854935722513508706003196791476643293906272164751140152524699069002438137241822304117443203917575397893353944772315410517747702713139454455212920974146531656613910103391629608768654030386205435263592529483548563829568556429845147909474945966683001279990599451996681155903462925217578878240838464807749877093090908052886190694310564463319220007235294518711291214190005387195828959583788874696186306517655818918437008193761920813508421198754609257325702201413754748464820950046311173602335207671161395992913913296919677018204528140099118284820023045294755461190602918077126056056349837764102718721997832086228457977348117625847753427304556434717799008213445054219881362347821896731563446316947574878244972410430594017567156155076038015697590420582665094598048917027640062269184494507682334612345594441401251732359898823968727783912610150480231632193692317465822222682561577853416307905163416699035014192691246041686471603551461073259729035771154938067557310811460316073246811832172825755414894057414760945232811593719673296959420342026263130109220447558822918004898770738522599886437466519267480348380343869205780565736283464295463431523020379773205118084277191402674810033016433632555941650106788135577362975077770777239661739996136216332431643613356916468308350980875945551405836896701776496612078191051221997946463772055119840907052079204592017790982869694965491609552743451180935777020545989032745206569408824774257229808538650764400375782116183123679119069530306790782542000557596191579779143138256025075685377210736334364357936899518343569964688740265640352472348875227591899944816643239674576058577324090119735506930808958557609947082380244633423116752959953958096078937049031953790533231116334303755428688594768645588728345937229307885615510317473061714325658523567916568053014809684267878168866855687805996507467416532942792451909092740757161704545782803843887481864468671081188128390644214147785189564579040946693843759428949398757262017648726278531281674269053334095162095664281758673211771666905643217116072717750436091063210314251995744708921731666077683962140607673550831823537707050704502209103261522090935727663694649361275710785947056035507567053025195782516107504740320014663611419999915289522721253467604724875666082151141157255534104327979860197063362416661084977293915238953408354774993394048134168290506300931059311590948075019554572328360402763565226309027403713625387387694023289589556915192377602864297507161364165315188837644458962945758319074385352928277455094972497708025137357824184606189243853724162615815330306417325698307687139639142408339308283013455507104458291734981100525835561150525943042148628453758888700944462659119355192177096612270852122703111587272081262646657303816841771086004488915125410987242464411587838341295951439601223327368202924008753309396335988450140735520796842000296491427021456278841317238629112809603624055533077861132314247308563829426456255479738437145009766494461236562346477877494318116741238960184872380311459624270643824101526187965409854626876770126841125785903422923649193425101729074343799264414120570842974601537158945679648911271973845479133715888136115130159706347726185058832385421203356169536038226253566114591804781904415745940025547843839182541666290408817713259112804793955419171148045975455546094356871815432982148914161860501287409778535626635812898528699667283444511204487490287509453912690947236488714437489947381995732086147355344235493934262695897625185922392467797660073348860564201551093354469391740682379263476569460768550838711807848344730372255618309512248890514217076649735371049316448650121887289072489360551129152367722420031994743327802593403007740517217011086937401901492025184832444218625238546072728349744554470053604759236540338105917088285782016687670521274117521888994193919933435109654789172100038206129825170780848156378361889492420210041405280322364430852595109936896263253082457629390152641596161547930584998828277513132105602186205598842733814121912240136394216362453343168441573751724616534559624493830755418754620291860951354999502438763493708473318254543932834049608946844528290519545621314377356664717848635430889440165454670163574204698378800894343666234059456965275154463186404493859481529694860911286236950357079463016747146882556439398203236007476727688826529992841295934271994411436469832927018265740682889191036189170168714367081280729214793004180781430988265573837547954982739740381731278708981241264832978157680381845531713101350187753035616968373699741620086035380062487701505039137690533800381790357151235706522171946352564835386352929207574447754988778189243682588862503928696675266759001274416018924379028090650203828026099800378978880966178133558054845517165042078274570858980979232244476830562751917467288774297834226079400013202759268995694743337333196589405179591364980329784426161768474738072374528981172147988145603658526421203162944183937300107483522423264816163844966278527013903343328877037181955808166993600090474588691829622345437409292625338010704480656853399182314499598802335409790851316679543862956522575836341628124598361329657219277795483466824941780556462581735687353751960310741849600175393889605501736350933099207008196008856359703655703545954152849166975131743919752476690376341114301579662568623635014551868491712829503791506529456867544660119568111964579798756629302797673819791965639912486118634520950941327613844093421612443670737341105823446795288466253241367852531353132173202615406887721656986848287138532632460983635677023555396250979399921495710456780144481857492352678784920748723118520538089474589399228032174409118291494215075217743529987521258424646253607983969291550537503506126511864802587749347163956519542164411835388918241901011115660273388701108690612889157913055121503474350501899950330302703175911961785568092399729851066210999511351708591735629991693543736353363698807682517343938102018061745652090652852581116265547383504252388879847782834835739024542142134798938682077449162840287966891024606757907541382929157621500330687650524860029196314963689901761997649022268217251038889820431583150248566073251305344483448404656485022304354701822292447980507407360654438576724997521255828380285289567795783135707324717463348011050958587026200697052191905326990358179656510354327196276720925775470596099921454925667166664995419264382496260028789105127732686884183396538359695688633358792247621747467759582827147743346638831835355435781768473846801814144190317146066101659907020456922380090414892129377757477153958001932208766959857074997796189617194753573155324193618596403251442566724371639165754075835134327698033483325433201113133191529282223503329664048122256617703483194778337850397667141828433924983497949693928641730520212206522249045179380716003391168125270660710400422087979494644149764802100744621262756711198823118855197523307944169346681654866663862724535124186970041730401918078205243430376883735142604340247207196577269586619059910601919155006814735404919451938393482676933928889061455772073206984028396225849842092222061294730611629986798347092130038067978874926846277645189506789622293380058188038127407393397758026566642150012224165303071569612568730755296205262636619337696911036746972385681532518286875001745389684509476322512873025367830098544029849676120833380290503023832507860200375177582021057697951690759544647795981528864468374689827324178712110529459974629013843636560136134880574785696976805910725173087843116776625581245591153335474939764373752608909042396287531362203019045167998872944024737237391570163767240254311527759872823286166676525565336883481799921257639195803345599333821810429618584813571993219805933821814626374606720142084464400588817412128668532185145915704583821686103601458268800085921301978684895642504446757263996463079753614799030253149012400364804175460328633752595607510189796199178509895916912419116147243743266168921132615615268740207283067504884456492605666247891512110385001863117212561819585965485224235040237094483813385410841964199745348220045573916603188064298052117289757258936671900427611868998201393583709902720032976775280468877908597247115239665563994361308439292226265539244026905856775948646380052545991873507658700460568285888976397930130644426934323930364251441922357786962044104561161025293625477470690522028941975613117137605366699292586147622182867421154038693025343177641527380641400747263222634333216138434086387129009250302262405999568201298512336394186980283008754072880941841749062517562417088224883036417610931764122271146648626519482921775737715582118282303557959085598662876915108282050078397686953472950107384477586153324756467387898001184048742502471897315098801961396154003259201755970632861674764470494066506090897994746782251732136410497798392454660271201023575020192003326871104698253654304207921588645263348709177654650316739244418513765253668442765909629905040153511101022550423368192671162872125826520508778276240166940221989332994030314274573922223036940612163639301066836547164717681222623611461323629763487773612271566744892186193385663091254616493381636288844788331111565856821093285882949380924004573403250134745935999157731131261567457202948336158169795029322887702679169552925156383775146593780795735225576114483349696962781920388752822418928327936089536202605957412242249677965666893291713522764056293300780242323186601433601792950628758978914953101568167359013811738996933534861423447753607485552979229510380413543505289911470621224799358450589627787953586821348255640448925560395485933330057001402695605700785581263041145656323826497625589687313586858855793466112907227687427098278282618354497709582352327133063448239553348666378900667713295014910579297702347062460022260090804164197138751148299387518759632907938584237913645127280614668744793661129948793311150402198226121583737611620607021919466045958734435324176390923534406879884644626304845995495286312709555666712712682652365728924891403097649342199443670818986040287175412845605324079553412709288122245293848327747138707171996324286888812947698887545761542929523036061191296509130852317011045809593759130549493920368987469946034461663875734885874172651135216833250113427475093648258913166365448156693294166268851339156899384685443544137787382860367927045653899734260984174759536454486676929999578602959918086801204695163274627495454587150938484387433319202798587619089026146949413107461827557901499680160991349782999121445086412894133545943777090599203172775887859165138577821431181708075075026257304430055741124084075895969662528614438009050283538740529759091788700035803495044745908387697952671501420043035637887181447316430215902254809846140054179334294073452232239387710476114175426003766166079597211514059929928386669703470555915116492433238182237066624883709070069866129542878319640059441529617333205334761809651749300851964904525330205276836911008226980349168288173188998166562358693126374660309863809126371617373853144224258277106769150358042916784288393479570088582298171008272395995545634143869986457713279758018686866795204124853064303673130889946461163940356069157255422523362724424780283711019349706689616974900344940812845380258128980473524594151456911420728944131541428818050490142602093682410278058323907965881326516187875183168544043772146642435798349641851564390473852809699348619208177067105605530791151637623099593029558216003353305010568594430582770433394859089054719990467162450376245175464203964497333847436201821438615039133901612842693477310967371200844165723891187776626899335957809065926152006724841318365627286744640613060106116332502111810969351767140672939770131893188096569096118557543470273293846540981454744026083974986995053009890397686651519068163808401085921122712070844652236844420370429310416572193135835329676835103232548374732468919916525383092188918911595010003967621350569603911501473702340039177298979991429296083236511625561545458140397892439286974625226887355117254738886058530896370677842618650594218774637785133583376592336414123591512086771182904411426074304011577303792778360191922274662113671126955587223856467553582224406261934210018580229198025412103467732256576773216964194717135711961356028814530296905581830796942975616372944585009342635099869536121320790633055851299931310032047572321806773445539992610275078419879797524881300489446613624924218765076397957050404683154038709578540234682993619897117378835969731632386970827706292392406605991084079380318867660236543224956031439915818256097786579546121222399432877614787581208974397110491914469399865089539641563693415808410924621877910985636092589902372064338638061060982995375504833854803108777899263397794293270436385437410322975568851974412586707295690835375129832708191854994997217086102495854940624324764377135884740302082500003648463235720173666337306110669834212614636500159674790486923095722685673113993022760414672005307744710874722426169773208428257305924853598959692487111267013261889815564071431355881775987511171365587059119348101298774356719326246549986296115028429090758341442955362147761090816489927459944967981090381452508739621182490501962760163921393986759786832406875474589838900121879425031539421413263384547082599820140590052720176918514731853509345854627017396535632892469970606892747139662751229316415182897095531180440059216358822151188512053730670088655645601541560042602913550807678193382822056304734786068935574833721529478660798570348178933834710967192864198854986709335750581082643609214470094146944579254247059430973858368432180929414985367173427877983211294381557991901214711939022882940683131109013815979240793203875121254400447488538241945463360265205491682011576211031029114472872444316579733577450856066604048857574421027274510685361551191383361094440109875766558508299878849598614589356009891766457665538954177657155715489036673676532868081035024379099196767867916262588911652922047515820126368015620223661517736162448741599819215859692037466211527858036389912831447909778986522024232512416538956317046261955768135911296992137271321337644167426896041827965910639616702286121394000393297560251943793794235607943190876527377518267413314163176821239370872413746485639083763047763534654211941855385167540349765442005790538291709578294732173725924288738800401921805102453305238198027379971528284362199831658544332714237323167440992819218607262286816829937651062910398950398273463335313488484110754755017423093195173085400047734399363735771389708578917341878691636014330777693816229015555559677431956588208827953102807766278529567256365434732874911503086836072612609164457833102581599696954522615169412910094431002093011551848614334008541903200520621980121946986585987129163490508681016898880527255623516978612834803026127630773280890306464776442333194633252865956292391151385764150841804963034627588613740386832329502282708061486061467983190170979101529650331108162439676726856271576397202621095567842842097032785354442785216576155144270227744116016418345661710455972752151563961965686448449044922623927987945997315168699224353091136854324739085789002289334871961313420596093259341655057836859307624600641268688184979844627679236129100188958998075696795838924098188402756348153508728595333098022577043734248717005812906663589940911097343337508125190865125800278573821089722950678502541994949454513250430960518989556516623318919601383560844481570137273306428885652872647982646204189687350388919883855294193161881351680669808968091724043922199941557558331078158950707400818437901055595826014145220021922242877726292660945001111905114921858485875164404358397829416772445752108695724254356122702428186959647031625294645817472674540857474412134373261678495370996071387127906802143442273457693808376765316669830870604396278274105209217220578309282039628570030659772808567804297016607850572390215484155403210408632984739526237048889764204385226894038165231868091170386032369118649640585263458026916764198759286308482137790824432712969760586995428928693715148052456347579633527941342620814992396679213672826678722137231712608127657518359857978177309223070486482149802777912451859294882769860221179931083547436648636390622345284031597528983627890041670035694486659562401890221331261859141145238227390009867807832187382150301619831852842878487543923625106099220338273045281965165543479279873250659355435809981845098379456870509514450353716283708122568189906786236574186146536869305969598297091319755737195404436894595448457647345024499829829986040344309226881468841082746934890007981446541136741854019233382423178910980980283190397358190907318069320832242121164698082455912028297792182410507935761363939165918340699254602618417007102837419054729741303391494131612206274840472934228136914432952912133399062642737673615027997659254264134092696832760121528982698655457542096007767377248473169661493959595964303265695152802641810699204352398126990154396578873398847957853676372562259879702666900803392047932406962012952121035428706573189395386855142577615394904934399434556348691553062830803035862088478723669783442898728187861408280997339299476993931620470412155494381143655655749104237216898293726077456990495349486212250169771012251927880435394862833660792790426097974935638597922152707714184733561076540842305178575769126195704867111231702636237037261035649667801049620999947562954277149923570946649182239982659417349841231778431976040807379490479161243346231705184446927650949298543448324548450500120141127358244398135086767739981748939916661115169553790048018141473386363310257526046787776042700842552627256970108521112659887849153198444566248197027243606690063270504074317370244449962391510815335708822722302765495830099116549927523295734663960037551311990385417155004663460905815790614040766345281172415172293857917410527267134599661975619913930013489195744434888277629520261200492620924742290826083318260770741633501327574344441571381637043705593741992941408511749022931306884665329712098097439541767611528475121149811106210736514578798343351245741128800500718672781289931323953614912313410381069135989905358240669595434156991451081868924674276726224638155596770309806882895691494788030587170320972349396888383347962504450407092267473426782173129808264007238584973653387380808657225765625349478973285592079148123095976081408919257227402029920715302726250004137482870594447859659534896865023115871702206823756187321992633248810381323428494889497432259218262213536077124657695551210256146125721346238104399021490748348813224188617501089204836042824955820966728604025633221257125098449453159676061878100781107969947071593783626536523326421583338675106890393234004127525789221317096856303468370711248094330715460530806632596634949021508212412476501855996228226856311505114669681093969942111324825058220288149546015724402623953616270703583440373256774972659719709746762155152692581662666699363246183489037126084083300793682030020432858017696798323350367607174094779521598955886399080533511663225609002723352728258812038118910214884544685964047265379702874309099873155307584603817383708343471465227548530345393288934997586089453174804783436386464161143183273301013828881995699308557818553691606896576020897858098368046772610440974586113266640683657466074842777241423943230689270276798940008316749910488873068413890864683786555040008462533558440892866434803050876754562527763980707105423247131348791289114969359623259153062208681148187285038881753706630186104117505796991326608673225326307560652607195254903005906433184019304127662582685563308251605135305237834961518141775842642824545152506568056803928039598013478897260637857994701928880948932777166081170421512222541031543810060273122411407137817971102011546621760037442707981616642395412186428462694229289040123055858634641872072344472484189509316293702907136583275290915984052664020783555967775724012795192377509350564782940440016027576920884632816451015619791036875462857219186338834865366392481683237988587665710896122951608210064387400518865076516622086976537891026368441557151880856151447280507471894496322283136737868309674890183527090989341876900547753917031351130956130712382724726085054096186045459115938176496633780518493130167633039033992564381680212162229209770292350552620518974445608516712688112265838398289861309803389507114449628591046774952508354350518188868075643531738262666402119442825859761774629659527278219691726667074688161475581481216537371492333933223241442501493299639961362441306029334539306944436512725602828570293104313352062035780878213102065442925654381130256758643929046632955800101277800310429850304663741360743985407307205745462465937826754518817600089630478068442785628168822968466897143699675884523082760695686200284494197146984089428589865158215762327810394587396708377218531260824504272647866542194180461030405896357448620369208167792142018352381485308755601561485991137965988494825529801883261418610610327115826181621724648425011586661275998370622061951561872158321101128432900532031292280906200327159996949543640116295774877552013392812994602575381974848321988426451077692615793262610717571479409681075255500043554580332005619789024848132266909764346599004032803331655045611281301710541538262649095776082767269029411120442974824237565159229320189227832831051934552976306561427521682418161565930999360225638650836009830009174274568716089489437783304342749355316167574435953029572363920223970295645540062723602652759337832653856073467049863040323812181975469451951135299272888567110984995749102720462422190227765169815251351309877014304037092571717881817064786915712773202829992356648599897074451429029285458774471414162359994849658793733773333972617824316831486614151567184098563450003902570908709903984684882329970948558728090318608356185223446084313029054043245682223192891324693730571015910068922308111007936483566052861063768640541375888675649221284327506049351840048907493318644649256839049210600333835509464723539490988550129107447483395351385628940615300363736723510768867848019442531770635886953024913647109670372171477380495056207002003438283240362887109197357105070808145999891000094675951037435701532724890386204859113237540337070114807604652098071425646207529069498133428634526026990717372404825510243192870513883357620058843667834364890367011862851221623069672648586884477045755294172180157610106705566810447697146199970835069240093601043951322613722615844977870972142557114280975672610719505406636986096289317304197204169880249495025080356135515091111508365206255878688693930802672276518346514085530996960119841469578403671135908636207480533508070242145017477693038413207815944271885186497662785716145182860533174255009265727561455696392456339550634218136924440296466908154930895645512736140208382533899021445870102738477007387021330889038238890738182152442649697095486068612312886528906907557822550640067794611366862007629840273086629092815123764748665193381508235839742311466152036258595429768188960991894165699284274050381689272353607195462504714057205278333974518257639734250666635937573615504806154976643750122615176730852862523676571706093850438008154795018274941322271885672716712435400742718907807817816347826357589343693454230796742591620579162196433425748007253367727898852107794482927461226555727508445879936091354147074613692135673452524389472424419551238350066302782827620626618068997746310176408251554748145228817255797944136253555990434089518563684754679266696965943668063130328226273549151490255086506473511458296272130030577838342146249639052203212771339334007863540025890339308654933120454950443744952587755452611454615106751814225196473516487307802141541613860449455285961273410873862976708094003927705468540857436505022572751671506349042579211435411249719890948600432241757652507726377562481154435867604946136668963174909253342456467994681165780115235570901965397472748326365217511290532026723202146072794499553485803807061277076746926034782995419412542984776214944156787202847139450775186906047611016803071320062720475500665404545799748846058990625422661282084861235286542374258404918197089868974727553289465076966625135676346776757506985608541647748148018497279646733150436598124897751748306138312940964045547037241989358454442787879563512356942301448968962082880599212468240910330700096200628173734703327970769104612891180470269826180953809223610835460051279018298419464192639782191158589165916824556190145323732912789162311271143299463783784067907065592502204044802343936144446670187455355598386375479504463390855203934001417058741233246960378889173006251188340759092271364321122249544643367684113815778761272041025212973340773729383772961187708553891912617334626666568385729772605291819813551891488367876470518168087375742215412790837747738896689714393258424558727257647416523074401121264387823242237017066168491680316014073344849868963440927898926120691121499761858872593366623788603527727786649959902097626475071780537778948470157450341605550159027612851474054918715824940134333745095163869286596702273013965973302312604938280608365838048046509797730145220252235611020278950395634411790914449501398170355793375530651193990046166665103825927656043275214304227161789812462924727856914892690998606250103211425670356318706095871486768026367815274333643421353066358570824605010819901980034210319000428672687182720104885257495824117844027062292074702135154838275407097568175995436637368268224198191219798744142391509669177286239530199146740400038707961556783966287339872171779375198241331198266155175541999994622778839044300401505373558188634899947024182508710396427716366590769814121268586021554536947881240540343071506167949039070335836921139337076455040135483125595192569153758810908795801503587675951290119298906398162510757325140279404307729340541550912213130217401239531949537822706956920466906543882203760743346483864764323238613778135158883207011977000237043103302504346946473249552064645586607530247035289740051716328115345771888983200961506698228119721882473401492086404707550371478065512711672257567738043366904284422971734733846000500343374756452237433183649671738380724821363341659292631993017151943003099394173027870786699869473132141249087226972929439343331060356954530145961164371723796233049297897926840896222039700935038594655106022408461928415606617774910791967753474688034436764656640043606028069089991016356686960056553505246566906932014864303524070109482405249618294573352036787031273342273273467408176479452434978358194741595795088382263731316406366974792440060339664266572599316309819237372272659662468833902897877601941401963236044612874151187477475178894372945957314146441889754632465611465078779348641056900328190215349121508756141475753976063773321522832787478612858670019359566443216491810833535401788671510506845136174314861747773083923066505297598003946284249054551939921636260465232928646433254504936762806865704157874345556957264068442448484589145082790415678236714150916244364590781092708808842047691092584716011774332475298935317872952569650926702323721474175384392270337579776554054792805536343125156808144122400221706636469369011912978010679682699817750526776738697550911738509369401484410458933518895385541773625761879201120438962749130379152516659969032875711340759804453291890300449515559927925045216632103352310502156371999735324864956366899128251125957730939843692008198275486429187215800776247784361596582044178758913729427678360277615029427440834434566988397363823770766448150993332364915084545083929994913641793082994267325726456870008762971526537405768142194612707434294035300179003979340120228096259523594180942731765573610061312240526608649845794265575785340409869527194038091205991252070794843865758425557688600552937596378091761468099124911514188773957717833653000857708410565987822790291205130638253044171232902363897550607963354948344438910374131204330244271087149147463881617099373323651294812342819205129898285634740507765953585003152935203914108559626073740488771082879000375735153946821443661184509409888100211717213330165362481916677131947769016842961351198541684586943539627905432156479872945859372471475684559355643527539682932620146229977409929785442478350469415978182538566365545460623499724336995725058825783362691627172660496072496774595903020142481450326239693347598484305800725577794564899610665776739190950972768222334362529308176227158350164922875585482769252248008888041468427348333156446740959303145163996354968335807992027858981656640420963838434454614655768193139141037430425472225839777242237123764374688316691821761187540959000674444963176337321524040984338981682719821284781653938252583066146483025173956155190992651231405008207523908718183744102179531005561215119227428253156749641661459444459841001573371955228315809087357170343833556591975724011631052859842623158538712089742518490537090849986498535142581191854648030635900675788687773202658087181665098694805569374208986042941164569349976141161739469130710353016053797337187261906947685309949487203471293604836594366255140718918929409033286552849383989217360448486908740352044216312606234500139506749725205853789423183481018625686643252757355635398699308901490088543893184497017031691971772089495454238035623085446636833562485385256320064349677911656489161874171558634689260955734231459423791286684301069134291433589998056254599308017131603510597500862205270497283694226605437614899342049579243988038578254686025476592689844951609080440707592801802684596976721673395411779321099550544128819543430538516472645840618554934204635091809684383215769705640241934132493381554102299342391069074819241802291260440518003442267948471411500472957906786129241017782682875041549741347829960634441400991746671387238439215362880624957892975547533743457307213575283475370188409203828550482144571315213814803139291082567500579414806698984800625156938145498174773340648872243652036906882182676152410072496260649252028883963800590195108172238236692365000682755245755177986715768521867138509179603651719962159043335467029661401287641100295015946170581904905923611428320088616962054163086256573930077417769774516551935448582881979215228482104748921259610864033121062271402029464852878535975651419635364920343181190648316868517122102877142240762988292239215127689036053730137111208755902509201260643103342897563357711005524354544845981149110418959697605624412938942936452292612494542037116819434877633266935988562487659027716901614073705478398795259555356134053741441394511004020958535229350112090882007337816845414801199071959074531177446040656890799101658165778243554402084772653305743586475023134171758065246040042277453669416561822764302857079536227940691428310453864365095979509012029126839257471705146039234812684932516541576674542502541104760204114195402540195965488150060007661964494241945353163493047461842117503997366357565967627939185473385959667144331578528172008280402293276336705135712795399099115531759009931797163170383649865100649061829079573315740382211424101286275595214043079908139861016799565282824445110301249784025314753825285879158913939725088166447195210776473433354065896217619224889280686017735774696548474710224747024653016558262321765991341287949869308420286606997818441341695882058642906039695113718919347071948367868456988849447514425085020372704906150532377448786361548682390119234488175337736445119594427614469596030825580164502057878840665593626316517263289202715004258874638342369786792413200134847226713558787530357902512178380466487845188979908119865313499007228724108496182364671539716085112259876090043293409831684948284500598250960107721459965739294278087471550738232875738667840943413274178814824978889493430927368261583380200477116692804061692728783328564748565665579897389458363542541592484934277965942967204967758594890526674864095393096571500309501671655592800942014858401904366503563488865222819155179944489191582709152806204518670371497286031999006397934125998857907472775217385137458957985199896009208393875368249255950664732212626454828080782121603548451579405274032753873666676703231056504474909275060219184423785721119927445872011288761759842919808373875224719957873006128591822886157385188853019305075084644293779363287167000004295971339351373458496061416291784592429182427840371412037327553073213955615895659217293164461273916733649014864408330019507141912470955126322562640523268963841043557019508235409225722005376482466810124472174508801995429119436302113083467700534334303743023926365438192645854748342988125821626408529403088915125034068867063360218530536389646245375863337581101423102911344516497823337643534005996275058848200317507235204739851390755877484671277166222629509052612573317875947844223160487880046117480858254845004441201793584476234849563796596427119591020742944128377451160755037059964191518947627704093411575621786749078004274251606418825278279659335931560501964660787151742285038224820355187136171229104225814874266836661283680198803662838744301157424287474472438013707005677432821197476300587558982600183808967462203963894095083016389812234084478755390632920370375341565452480395410806510724918548067825596288479846500853225442113819320634544577615190865363058648251723192999657814694154823333423982705192567769924980922430533626619110446656447875549704598354513871702340075310697132265882867715202833123297642062918657033550775695589814602181588637982534502890882463636418387975590936195591209965436725783778625833930519009453468727290116522830991866082886476011014400670897052652393823816521473111307719824871699056296176239852991660104966921704469456056231688244582252214082916555634101371455562388861990208693172141716131324773886129500692290183634102916293481497466798623646225231408291074364968639690585562140812666316453048228674418519745683254451756276620964797538519612353109019001126115250509182506083767258206542355186340472445433313984375240949024552283855288378618925123414418578170454468409396084569255702713261823052071201303556330979561069486170699666427176746554021718602040165897503369606502591214080968015964645682271175421027698058563022432696423264016448183030626547266481413522857381805741938007702259433946706455429832690024057020202772657798263832799830051973745271699501469741980148494640331311466130367362431779202646879858137396311352630419721115432110691192977752147464265823058883028819643367458282306854576945085384927591101474262859326382004374719136829145937230932341860764880296815844292722856528688373668139617176428098655219699420753943654990690984229421047905032734832429025815697558129102750637444948037169787918050765594148667868350703998946077620493692275779749923448582841270290960122728147352023716503179387391794884105560504554327677875950549923795201652787371900387733862722661455799941985598640419209077771067561818116911335775130244176010177235862884359348936413182663797528800056541151737061187737374540483087531197649110806850744291588349060398910803839165943188421529819635188032501893102670487858368452702880769823405872299931202606436372330853520871276903353613049279529497101611824432509159806964672746875666811215816949162384178545080791533265665045309063735410724064478965122751613356131483703862861496201517872944677715306886000587403678194957199902926883078648554579710826697373753562448140269757045572216169128908737811138171350946511992248740769349924290139536798210921889503368313351441123996394807307829765219999466554740941451189676774823497474175865847095805314573024588458405420331346268577279110994697530479966422265005629469453713437025079434383254593396016614335049753107397840333242960535291048401780943059973097385909859905319133146941871513842797620051100286948201321938399961678657890488926666266872871477103151293678447769080106413499247380983599348509814697037487179561374988388331134073690562287614680748483273426172594912543388435878589975649028158048029232467707102502111432228740472051655814007383255571098524670622874603723840793007266913893521717189728223406961508735030936039614209720198146748874499007673223028154756944760102083952994328313510431457657623136543615683269922395747627451772585734067080319454137112935059657021001167613413732223301287880003278122034216929963121535853798738023433370767571654205267082910984166000458128053761352460090346451850727880112751264709710356661453093033249110841120704240887194063522906143575645774186991287588373523481301310957812295842884613510034931716405080641450761425150549102819333095682106890677598132886916228939900710280434767053765427407810591271909374937366575744183857674242043209306463951663941386899849520128250995264912544632294610838592549077362482164637283334739723152476845269324912400919307280541912849631316618406646902252234954419335655687080168785451633650908009956505406865942042869098639652215644183462562757621320983376965861669873270550567182850048818685066425917118112341042306601787774912285161896798549345761621903696231396208648291208104332054485753159566786082181135990430536075243334844019912050943641870351929393561976350447157794628732349137779162154165962841008104602121384833446729322570316269237297681947040725114748835512469157395406207699142112655570333741015219079045259097291127345822834915107476220854626042755635439239943573404972394903781914848158256561537209187303578496089738288127251409641913351832189571323825702746073184019302543788437664200628772652743605313863062469602591535738789382505796044471577144891615265996140282702230751906498499517273820466284565484020416288031405176692135380207837991565712173554196325185972899911018506370835501151910186414831541641991328966217061966427233138875602025919469657284376814836716140601954350103769712288012796064716044016600689820481851132391429809645882850967094804989495723840583953618063527871277261930049706129733737661377838726034834077777476017108940861848595959618398070862577352605700392971240298581174375997881204306618247239445121509220446812519336528833916050608499571834120895919452814758213397936473879183143372597332744402447728400247537928849090888174937405431356498384141487896980843355547635291008161974495753393099932315119831838079761917720972288571998641520432071901091711879730164292430703109628349916070960629807136579510090494918782368922582914060759739893698094099628373090629892523772497330325030177596288861386914810343110039572887099303735887254769465920008600564905780939247879275997691438066345220845519225925759879213259424627383937019657018529756466297776985418198120778125619926393732135211368846289718811650730934390252850935584268304949337995433969506232932539788606364121546915569656818877399985157481051037664010449674879938311246590302000283413366431796261619065881959392392431762529996536689313582305551434255009857854348929794114181283334087876176119375821243091738924859446048780274324168787153371690031907948038797336424875449049614274630304026329722404812824666637320133165482506709850436316264292641154145670006075388351011768295354001266116041309274513838538343136229680041547119971374275775864717528629959447416236518492717743834183589244373726817580643551695024914714874306974274887198816989409276792734562127818806968620543807902526865636346947072318637144360950938987377359997841074539602945434519730426172551959185846669964765915647788688636818384575653490134943319971571412459126323166666543729431765584563409086013745889507282360711727768676148201919851360593432574521643180716102145777433479114504845759788746280032587301534609914680185435604290886310763963412549310871393709339949734651058731321761667489017478677992894335800686325742032807825903011347185854318262722427154659089477587582930410428394061863006711792728738620465462199697840239548998558034019970718538651290493590252110318273206389230673539602634482962374185351898977845590452756566866566417294327574705910509573017857897199752468759120051843909455646193312677998676734642544372113122918596500616437789713975423100470185531089410647581924853941653046733080776111917581095279412710473723247445375712623503156054216735736968250031663504363059080418868452851886661851086498011773993809835204203476531886090839368443462495969726500203537095614456654486884635539329319304156277248151764326978192249676608533139164488251875756783555638895580825969433264865630557412021819500848439025890822810220894833221502477244887495363019309861765228188047965093643458635698764216819568072793777768533564506450940793627231662983972372489866708076270804182769485359487087406751903857415091709525825457715170244109792790541058457824398854328788210962000800971938984557139818005004376310879751961001931492913245964041458715401186591475115958204698872470211441806701383726785932023002053256531837968328047649069033148515580580023905375956327207715062139841617501948670267506372716699288430439128657566563905186200808302284271085990220559173143157129490951852966337139096636566245736723852185259399573599485896528104519657970675839813036337976047554424845246515372263029337442894525442964767492219276820729159734151944895645109693460180603556805681359878355880899600495548537269356878144415165882009437303605483752183608910685754009692385026644909780313698055556078246981300267796877735404689313930329681705326290545415853331110049828884298226711450723848898018239779694829368949629738421855165358279303603798259224796017481460876236334025519727825918456051136714366340417681404989216721703739432708645261247138869570491395807459227360195667128354415406169260658110423070825692463874857086297563234714555209561962737891440107762206737013131337827721743360943139130818795115373911979508431170711231788733518004248938886041037503976108633060233087248535133561473978838510346511409621894232650287930013731433949506343142455065880589481115541650995947969170415504256835515980595771248483666180115483878001352069028891053241502315657560558467427314960101445553130470980154907897107357991589790593559683747488709136971236843056764108477628169810648162998366541978764340477695351195207271518417129342102599564029762681233658556709099471616156432714720046647291858261413467193012888893614310585822944512613352314335083643117119329980343607727716690936567818175836486506814484392579413089501398213875164559892510143136556463451362020350033685208928073617862519673679083515870365538569884335080983114624342081597269351490408034961468936277189585999211941356730394169138545483901401353951970760293243513199110801672035155276711905332264298525670243707497788167327280870348169461052875917881687103748649952268952578745641540025177518885014711195728205940734060064300718248114344556475463087150813343379242610248168921665042911633523167417112705658652128836498869085908729745875079245529844597913363396660432762708432408466735599127580703426768379033376159251352537145936911967131992115262638698891222082034913041561400003056545054819773007647316445152518444148710230267724477743622491034857614509877121599039107493976001494049186086950253783355494857535700400321161525583125365386574959908895755976204565730935612893864137416790081735885976142397108145778645175907368490294104778906809797153197340340159535834101307726832643290068799174677975469589715721592403645997785250606553746996057873412864822036978255758970974572928576778764670412810626979410447822516012553051476395004465717275399967846037260355247122957612066753889380742004962348366148186127081904618097131602929105791130233876754948268554600122503694653696985509792156960077415423020597679993712350716341722568281315996655178789254035293860407367272044476419701731598444780393621567615848826711465499285029610867866841350687493210111254915450431923628933397950265434022022669346140399176449340795926138769074667142881817026731765033719463552478882138270808796860488693954360644393676628153641922021875673780894726651356619674100922026578527844395709552317186182256972181204893061473545565638138545830374754532419746725444062230103567872321255532570123580404002226313392932224689855790446559031836355633324625470796561395896647319748948284961879642908955119540766486544625932605627755224136462452742051924263123919030953009225891205957842991919790989929860810914329454773616907930206652026159670288083490164353928072099527056606915789021895891222215105406972408590624934030805255180215296064893492537465286069842837664923904694038087355440630834440331433125930884080871968469172836345541274899906722128214357911173989370937812687857627881993384014701480427779620156042181068717244640123679647387371542261376819172490537363948660606626746807473494872594206100669568034372139740097526608355075207532242050974896371325322581992140775476864445233683260038450935859154834427156022244251632372210522857515388022880373382900965324926278257230802179723923262794342376244253592530328237199037773527783286173545918353835411821701395438229431462306189293796425689801315311351038591059087102833824688622534788766649583491203295721772798394857986756962442080887130178021358773745507758924152093396588919106013338136185564513619141972930620742241676553044019277143076985010036468812906411757667179874783074256014291914364468188812722256807363511170441999429991556242732247350837031673923596976752894795979975541114468437866408683206801118095532584691833569255634981892302352113410785601909243874090676018384318862921676540590691476261018297125923048909998734685078898408206101039220445071936359721339806387728115103594452359783393970652972931962926134642251052174631467525728783590702869764981548115604441583021528492498390674707000473929355927426940989617611952107071516281700313848685299501816719723867903270669965993231274185906907109066186882830247414881333402752900690018753713152658450056133558440615819749505246734050917095282612472099402826835369043248976816205283771664360357798166253435900397121499616164588871744702106753846616389178197709050161805991980764603894786406317278475917246242929952912135406821475472544753403846935338827419634799496388663091108697596218056307838720949457988995472360538680438910821871250095054861181408320336699562492367078769366887323969212851186050233438495379314736188657168522329297928952944328995225912473461761526555037608725468992943497562921023757540675814349115790969867914744264094428011591705715482440842214860045972621078683385430605522875691057455696031827958892826967458085062519743740720626683165937627296411670193641946621724738380755103552921786457010887029193583925698809286492498133152401558184090845935178639653203497746948181841870577768419501773236746640174305337252303122454709092404928023515024124773481983239349316042029151503910136123491337806050072091855762289453008618927630943958676263609149377142472099644799797284358541295443346953189637732231010954553080192375902858026612675147620806384230920180719826787461128090111425215322633755567725134260812626191382603087673373515959702155487518270166526044771950620534981728655388547639997088298024211888956224848611599692181648503635996187422790023287779485545169660494513081025333486163878185951178587825453769242869873846987868060023747644925693323124600717843364523178291637186835119316419469415658537062381199012274938511017823993840365075324743789164958306697888597255608524346912559726743891700655896469936058806162966602755626748205417379623289244556486078923040513529167178380726362062142335179684560672598702572722232291779875882455996204784827881904013357181698649613601692175379447644051009708868216256613610288598185131501448158199513393047268865942484659746127720521792051739719790118229131175472396084538897004461901081336328020147252357215252526806666943338641471519948828648745356715160786099564229295115928346885349921032498481087023315368579263518435865746966214629141199250775483530160725876852813942947034235187267639495125084208691709504146192242614909101708349251111716965809001707224560882554259694080578287677290087212510734122409846006731162554556420811515615138643112767776853314953373601582283658771726317922898967827330901768255325236610615357653975031412340007721759259872043212851636824525719880532417080189542516708168682457615461057930380324522871584456450567560195362860910645909351952259915058306612481178154534094508013423382756331314586256539858367564531138748536605571879268507235665167650606709002538225551487191284657131199006725266746638961774256168166946030752939557504142001447876767472394236591569604721629932151131275585361062202403651853294025762736499215501924023774390553187235287413406819813764135181249830876918681554901017150323608187355110680914329273727315028495102758167580537673839640558437691910652798660712855911027520845540795816171387654056353703843779483096517580358469392616771238676793980981781603317733086045726160410272340153524604665070673400460778018031884817707607441473192083228645603447442674949380667004317224263693810990506469992311246401967509196306581800494256156596123337290630582495437471729579306571240629898559834655648241349864826639857963831503439850395600222509284894786910500251188854264970313115483960366803982952054755627773091979576777125888444839219581550222212174816967376996285542307625269344205160117750600601209773838685692781188701647952215595995177472588964077567015776635398843561886854710837702369997727359924404520895555205817396719543586097232383784774496606827204650373956205115683997328529298500518980145537757911296554458066888741367936901788402535492697366901424134047441985216607847151125576121124743840757907885305892603217160207819182807418592752306433468722656754550791010974677663873521223484287912190969981471842809841349369870213887778425759384803377705921836863441192385336700372836596010858839780714133026336072985658423865024312068981839404145195313098031479677504421371776624469183585467338165979543233583248250024486044439743238122476545154125039419204802362399433521444449882210955834501030372269135222012407739148154349873985673280151369587049421917662744499390237363056265159641250942868872718593389320033445805644378418491269999436946929602652630586815717517696417622376980357787623587144827523769751681180960258598978782474160991964928100042288133295046254168160183473395651574410344212802461735361562429447403091009602520836423906477424040360911547244023381493212055334161899858376265250910124972008607687476752242485847423276143488109782597548782920198720854752084596748613974391637992564136766933019779402125618434145836386318113534032429290156014759265827789364181362507297732378850326130790151440814380256193504496707535863920528319586969409909006068732263124790576075479392329144956375610106500444751035892116586447328975800263943964856422620001314024135736876943955114216053804757758767083463492818661575162253373383197051962047353158859510740474616417100881579548837372884651557903133077482312412943913050714227462448052995260820845790464463537459488350504309347628887342891316041493562352729906956768534640791011668869335645888862977674395905444563106752186809799485439929750672392098526510714013579850867951438219263627243234121259897514434879759061959492645924479757907881137906495759114120383923986429034820374713653670700561044455174443071387082634368457064767919254380397837297255648879351955471302653532418906943162700647606581718059657392022716607511950862321139605718138683171511999802870890471254883358363486531303347305304410521292481072602716019010789693349519647300916425217010688366281631777826253017955805418662510786967415039923305509156670956893560969371549456872802438722894013436554634359486568646810806458839376227576330472977386740866414357322821609372699100970091263535337960890434307993362717545825860547027210604175117128973185059449503926684806008981951289598173850485002656324847228097575682404779542967755710299019873716146517909422008040272755381310428131074907988630666501216424602873428284994363028968155587370231967574655181997942097864431881838053842529579586859899047371750540198210460423335763386064678212540148672314470166422837624432237467351442233138580205500104949487540907288495862519207516832152265392973067882171631853868408636779999491645480263900188972117822250497786724157794122421796282416649882783136954042739249975785639506418614425486057968986826317378431243341715403782559907122835792460594595856610232645250763070253589974585491228821341550248586784092249101792629193071177014938396713818714195596615703770527911537128582931778557024400740600201109024984084310843104501993343492596636215512234541202923441714456676583874462768387270479993839733714261170569844034610936721090317190413673874823500095199161612106333422852112049056698798822575466631416604921161271494102767808178497182857813412243936911742735253493751256392934899488990077149973496751986989144208455818982243037071632168600190830434219800256777273179690859725372289080872601670959199907195684419524672274479288588269887912675609125505097273768851705277088288730463797080191265467390723322835228979193207417437055488408197770645198349142932348187373768566906462237466478787402897242335759740279744330726513550515584625546200145243902169292265761198771658323952087815302074665365788451628152164645929771905692470415144545389999430187726611477039240818310335907476392139974018157765261400806987517470896916558174179550457873037021226815525844423903558795958630737452770168788434190203355628907197166839974085653334662555927105305222568844785495531802687896425613257738271950718526436693822979711762378614784072847617447431761034383785554350957962960489607052496109904745670375553476062793418568467546124995234697082881938546921987885361606238001636539424724454256865681962721347518937329837934924278793199994712701199059042057021829964085121587597093431164284074593274617459199123819412869270999400637057928281860929960097255498693480510242518592038744003663175421477529838159312427867941192626461106824849694342622327277058126116294867206141715633538760231387456526833679074335091845639552760815756539013888564554028692055834049710261552247005759514997058957940269170529100310256312767197516581856935160164590126624846584958285810911391349095317729123136918741991421642087914756221578091644776686185394214384753149679230709777348022392168815872759313623438995156050011473753220643533697487173758005373997771647560937354190789592843649017183779015083621321752649189639859580968324001015182144923306830044187495078326700103968468007519814772048588965051036551144199305234415822773577665716483970200961338793168638133502702402758569861259624265163946269222866301570120419231492889996260323253775568432176330780065257572938216320635658931243824570178781275447170975399148457845499779745512805251220033249974623032831949113191325717450859282133390424981697985649459375261663292647713973093787528737019442079036710591737959514509300556382053543291688139412771278438892815431840689168823966631755404320618668441312841999646072548882182254335835859616982202876449578332573076723124506291274407113991556019851464623226449485143453801568996508839095695444141190170429150451327190890546605933940181927302565021580878955323229046457044836652032784415525376044007123868774465836907517580896910088914196345042739212277375035749756993700474556968523582638138801949065940044234717036071704037377928770504891538695891440166299180566622853204639557580848685605419864735446937609532789173721681495051815665733995457491515032580411308345891104194151631034514823720553823923806346083074394362483446793828411217117793170053685308816283700935264946510206098228829493781644796445561846632795492648520921241880787514847199356446913761940207688528552225000052939711301098762888232263964250430921996345993492381184700441761908204507946053263325926681986225625020441620250528977473180229939249271769553876995924782597642043124955853480364335567579723019349218371336538598273253720833440074722657728902585415363433566253252399343849410841215682533122130789776292567653805135482651252586685556586520309802065928549843888974104096546762431574827821659805840285956601415854777174219898788041628722427248327454279276688944380615360766653896327520256280082911671722535918871965110374582358520019951778197431611749194237901350657988095253704068171160555122893570952176341338514531408193756264021759634229576715827342196839509168297166606956484949539556032904340916323729616859557727837906188171443828755016717072776968930098199334850758007578248197955913217034902933984643334469330766936977446759919049957416806565557364153302358662169422680794278967803517356253642564724555881225343611180613072035184302142102784274600298046737533501660584423924916891550844067109199198351156581512361874064423543582453297165880599278122165420927763310790282861605192913768568975583981589749138290408203086080610812649715565636124159824824303540195783728204335872942230491916541259958597957599451082228874154778101785572970262908275759496383618299889520595052848746393441326887682211363183188414274922169254706530772453202884867772741042301463877082064523167368841694798949276127512983679103945346369401649745450108492871574600805208066581433612978469176442178760347324729683443102332633994176280875198379734760534498119859007429740864087191577080882915078775553434962827101450862028940442802493082312539672409253947914210422206433822782726176130513234267014288445313314531922137240821693775071120844059754451756655363049468515181121771408235038425779361444047733238804846478575883924723658014512061761230056872518832828443059927327764748852307008921493233809510038507477790315863639763033415836633893786948431865999703669147491841026722563229501547580885770661941569930668501128053615993423689652869822510720528802356376401516632374015010366878510780981141949202950660222209594739770042208731848565060844582227941572838194217492268099728598348211768101213441342142093255002500116821381937415499793893448556797882971674839927786607442011330163978884202080585763100290200815204474297127579207886115908813930002637217812309975528140034662745909270152201639982022544203788064537752590083800702364229631402756932296349799260698099028441383967266015426240003955079464497554994374205037789221913530811356104658751323245188273944033684121778144451640362242611419720878552823003875399576523307933154597926688838564008638880299066882961806258929853233287844439871540134369648137247980445719678665290692475827909199312321776936108166319257218013634218349399287180368245307268186737950057192418688147460536545963361309066718190451247219292398885062838285041879203587320430945020201237466749460754361944042510144008228187979099696652724522520150438632466564321752705000765742345559562783272005248249962408001606882779828661056745681357664361925513513035955923671276665716680224076963250024332892283077489847455570420531548666961877969587805676789637965259080134932221642975865593530553684203989551167598803472904303322845483556371588668910784349157749511956982461539726668673149822696556285274166006150441671244914856377699725748133783886175855697183951354847871627083679496524258764882805367411687799276333704906071169450410039938146497427857715203824755129736265703176280457348883147434535338999254401908797026253699730674990914500228335189896460816530891213717075777694740857345304597729850703176381779630955028152407764746411072345834283427623652718904257431010998640512019830276585748616962138449477461909405335680850441355019239555373167467869580183309936102173417449099502888061337557757891494449388733052065661686084143728717432412685970491945459691306102878343998198133242463338437284406883985424198238309619747946296802037296633635690591564661533397984090250871376027050204643710816762868125208671643387838698295265342609731666069278640523213977249567969221369892860951252849757199939382107081088447734575491613396518391471397307670299552725330679794305006866739723516401479490286492272015852741946610996709401079516370753686324487654340653796134598332216822486954856482970904659477423074079461514771745660769940544324784243816985509759792932046819700215058277040988037719974453580639433129013153232972027706508148336821881860170761955037135527340610800933943304710887707869472797735184265276822826874706140756811061844685614956183511666573784769845983347499619775128262260410096113860975815879919772318269210438769237066261255427175048429538340483021916284438212508326956039056440547087387535763283880268334493110973277832516731995676661396432982588815781721225147790431709729417596195479242612832432417696665947370177719088602465515910326260338045734775929346667487162971617902277929612870339419726689600361121227347963550398780189324037589312295704758043011434675676876697147733098153322328264899824602190340530902139494542534308516217684896872794136002886813229383850349553328420998318684883696566098527136876883910518857446431831337765159793982629125426528549513126330506395738695416950529426932528619891001491864505231548498881235156329193107321529668985518751747004264386371614824481542845186813345359432970819671752225555913536566256467974013482955826622217593208741058617605318119727976388915187272232025693652362210437857543907529411084935135892511163307815389770499735375588062293406854586241073253942563625693352262140670582910084733155154985294164710672726601873259345059607734642244421095263652450775105234538363217490553155725950298859773036320153494764725147358581105439441476647370012474694756767619500614440022951238600585683003069514005026436953267363087945828782323006720243562357422170689967478543867997110506322281481932966536503281466159847691211019408297236646224681852672058580748610693120087801968463554900368002213952736845573486724595203538901192605537792870548133832114010418104324222657355164199994417751508809366142395206613367636951000600365148095629891134015340683490078756878686934017772377154554035639206860457547497548995823237347009617471066362693329199265824538931618046664748492730790757212106176511045138456472535308573051982430160932102582876468362659137494017439828595936604784043985998102023836684437268186188172072934436753419725169493262452356397118153811778082439671271830881398572716341692127118026420127454575317787676842754876496598925749285366270659836105073303183563526103882422528991879334355973986797670959428765840425161625310362499248770424857439133351930312112490321493523999930578262917116644348086417392984576845939169789250910745438384584265301652598602098603309250305144210730653241728929746189075912268109972246229617545546846282627567175077764029538032957886528617749647935713400417514898285276460291801908473878138118332287598602082044182966661074540063268810237713778673419137554750384279647480138868100621346580916509195389759782253720023248634717944839198588120787490364478845325356584034227264263682956058676995022163820144033518427538466588033146468990447106055694043275628872982053139448155373817610605472862276877902076243156806197109165385998408287416805957274835272505880761939355865874435947608309356927870285720273795189007049744972125745293897948625494923680232115831132489451956384741077938078275023888103883278650196015304840712658187206582474417293757723139539020732695676897983258623056530901385228442319551895405233178108740565917591557489886124767440901126334474886091791419785986638015661933295965994161872544044312764322082722539277409895531928208240039501024150722053881072022527237446643138238796380175014227430042571286225173810244409599779339820351767690564146252770482179915189533471916802902864977613533525525409421523164022601744248143379614490024797351629363585478605364441614444989010646100993729938557478742910443837231140919543600166117730448416169492329945786592648815103920014417756163146312075893143555053709367133953807449107534364904073917137755788172160843422578313472742474880209224651755611627980372188962115026431689168265309227906697715626044613683556372836397886652157856981391650700612726149846900794292838589352508871583095828717791976911276575550365478847627477487901803552414485001980226169059389223085499720492731514689207958716470413252428009979204250280295167797855061112122005343899511486028998841354608891278112893824338000305927936580923252894883259952146927473863972076605980918936093152517479559261317422469866406862746278065970482202989614823278907885725591039736997217295496197902357503643773932828360761303845569907048428118044353285513643251438892982069138099245156940548815827588637922959695298046827152566589836142525646944778725240663003078725439821562957156137943367195372224087879339069596422739382237608052697056856598776393787185050286729264685182015738115282780037916786039105323996869894614338682588143516357204810503432162642191857402210742898509506511651661642027152684345089058896660611602033649086040138816013350201346925962771166369630932463599047076820489923987266676668021853548798011937638377460002519807188782059966245021320123558995125873399449407337384192410978452778246108060089240044194622345480615899154193754671053804966779461240311775237325935766932658167543885939180554188275254543223155064844014463447728699937528560938755643530251118893967919056771106406777471849483180692932629155182149430169692161922691528605639350895466460824917484472709347885264943581075878251983472268508326458145002478619896851484544382475803380097618105919363473677619736997868370313253393650388190649015476783865179733256496612300846405328442787359320668848259547588462556457349082404174874203796477189287771803325493096434507999540349361248289235507444731651566083347083606588407571002207529291005576436593063695819640837556543292523063426740258651485371727092803889881253842335457684582004571971280887896153947146778561750590689598904205404985416527282932735734112263341108897492723076468153795542932774339229146472826505658093794061246564573041668325630690396929357897826635113127679714799771485602219608655070671457161262475590566637930944649235909912126321282074156459111996019844246499071898458530776455252391720111118746917345018728992521492495338325608996190794238511964264402326843450831345166423003853434055426221706862735895550673683619380233290667597933822057074517702442162861206894153905686712799181207893324185386534411396229240015276646177470994739944741027702623041371777155243718135938607239802464144480772792047564881148510131957680130657762252110046156493616341592596067503189717576603378912382950608612054494058723805847195401466525169616631162127719766482839895945469119874751996251410119330168081417896896759947268531384180377965014816496959700971045199488698331427408973185288122301568547504803213057362014203124715509741027106375145863594885840313018697230602464851241705137423488473648571794808216939416206807833417239122147002442896804941475312220254598370765499658975697498972232536237642957357989226737405705286930586469468881151089984860531612763808744443231303272356249806167912893048666527696484135522665348173257827059642402398752223536461865699627499541811052212704613041903414009165120942280586769898345302023586706939033493672201510751909178996541789465099093731837150468655556247199827544065755541642709150129354900781275107111085906373977528170991201174179895051398910433559306051882016744858327942757590864536416084869076685507130830493359613551079172751605475665207929196783081947364243861567288515759302633099518872906199273534252137008772990115714945461764129840273529676001841517475858391797621765135790190670728123724327600626349995248131236982814777772711032635170904141640285073681412833902976031736523710907014373870428272915014658315346348786628739895710088283467488584805063766001705208052592955051559754360355979193619730022569327969250385405932365540414585554421810577271009771690096194556437003703389123115479881115016116219179615901225554995358126044046775437485259829187350181022071740321496625474337431566928293907805518754759499164285782120088813002613916570341553458797401995493820368119374445796052930328994731487111869974830788904149347919971531604461763087488607016900873254762985229526425503281025387073713610627000953586149043339812632865327986530031321041386667865711911866149016112163066993820194188013467417508090002023590236528953086746387846111180512232524047403933407659707213146793090681379452794999047020905275987016483964985291546862519358701448714423244439757175557026188912014642527383497006996462315323794536817567794408204651611749822506398489148265342425464593050354528942524438805436925002531851959824305784216441570742058234673721833775879047847761062953305421210801244201603181146544609804318817255547046105790953204701216676825482642615793235986169150636487455644810716918807650062186327034161576341582628650710309957563963274657653204392708274458719505999236297940184079005880013298886328647546724462681098267137615150081659958338601525503928660811940166556847624032805358221017329222572112199538311394429444065555978453858983517198850996501639698319600071681838179120442948687105386483481144258453021197249110075290803015040136971118236482650940224225417809805901281887705682943708607927863037577489682986061254282914751025441313189100420950213980902963934301169557855582724186819760515536586094131952809166038185742484225540630388396375000202617573474840518691801483543792467903449014832959648743579643304270980432340513099745436802775906091162710714717270452750900423095764269866004402267770179479728688168153378203692291177222036054284246429392055369291569710850219272787446443577536381655048746054591858840203221980051873892279669971190815233275820946253463780458116577388247571070294881745843860746022713944613589261371442308739495323268821202256216542113044591457571079077054676814943715686464926949408267260669463979370925576115574338829250074590888505276562147455124113984327780883030584568236678396430723771722327138712239723873322424540554512583236388698903202552145793076073976831423924350193972422748611984198200559031842294044671809424220642778929576456560169648687077065007697667938395563528586248762431898713731166571609664004823965391102503687455204297424195720273842783856191095782183544158222397322144195193843634697898514199509920365245247085450470755720890931766175558539512949544141385565337809354849231674024406913116235139628090515768946957846679105513564740129360473843720475923679419397119072908724805445232268608850204650479918410026989747729123554269550826001912759472700387266414040227099495902701387927933778718829361212848034558600494343496534681956858044018639134601982138405240585018135971177717575860968772406149477023366872303579348535523087685714828285784730898064863645473044052455081723791569016606235427571704088559548128335791280732860580976303148515347173868541805053513978717541244157027505240501439742358055169388734681639034313537423056004744073153772690135306724025268112132831134204612757148203118877355568490790295469799159757815956434237874054429644879509234343054654577765195660244153942933582067206825344746446966390447645375728791324717907000884037446550000769692033359921699060812868382404949179582607413153269463077352420370958560210269147821541149811048762733021592234525686613082112941331620676733262957496310258287940731162236917198902439630156999408290696160659506202841125225560404763231243244106873933919494009001946704899877656429547943504064793917719359329097717699974044005794548047010674182425232078156511415548066403020429872384684113606505524405059541984661524352258509966592727960521591532876635921806439572831727120791689657373096302455194425916317735713035036323944453784749409184701773059643080208377623368651842062461172268505374028857366664218200782793254643537581972833449508116536973531186591309570470884912460804978051922181540324404586958195050475615541443787438408701878041334794449812369775089354719144708312360449178417458511245481125963023314872241986254585413991400113641129820573627848387595778120602108364806814214237946663480819201392090032768213400552840949443686566553251763753215871305481398401108177626086861809688433321639978618996283063476327875600926425631414194351217646792674175822395688446781105120664464608581575861915611985622685707001823935577069026761234892677068004206645587237987388612957688798496739188267275417248962330069801235856304672027779645844652481130277828669798203799314276302489109213107447150878523322855126559004497344338298534461807451184771563515413722945522007414683828950370547092653156359618462114746759578748717875066058520146815802008105927156732211245311169349547280217826792021672132839756285365962021300618083760226217504999208846608856607010542229582441136512567730550451321551248092943577907799151576373362400471414658744584259455503461702530670162074057929355037663514056667576074708347099608739655340271431090888283998383271153698099238783284941301574109668836322842180306545725390323967307316036002522228219822488890590726943468365590267355307988041129159001663029197498950561029510879943235237840703590016606210753036136193951438613174718282969194284305334975239629382332729868844157496654053244534627795964731811239117729072813270662110206103349816223095434076264773688771165644871748417882679424360879389362921673505569788571655190922464116373265463859488775528459603315702221687321196395260889666886165911934131908011669976366920443341071739019836327309900159710649925910385059117596262986963358156004060635661590619164062985058841056343829196763127443266432265066711273708580095103747478779605950174213703456052815931809970253108345120422574724676276005881658124138581497420258199143146283157674670237558182890861777421648744672495382920157253297393228248172098719122668524747600902714030781577525033246435140444520694179948327774623995736247790018723967486846803781015042166843197346648738332576864411338155565402030116546675929718468345557050452812760477219121976140477611424100831667909764858085852316410810564854617072366237772032539459019509963287977233971940486227827507201655864064922856219057228331152900236370214752923450603681486060341589157408779107707542680950899387302059533381926673408797168366612761971058809579800302548008846466389523397919262177088455580797454996766638609391332067593609349864074507740483197102702841848668928793644342947098924289092167290894586717200936014236470402920487610322446569646387102812089483616821983212091621202722525890834927937268172561522710960730264269793557704747978272423478975962398553864502766554929167491401699307683882663920811684710457616159449215037833334916529436682343268728185090867293444078917555117226490152603837113307064045993895321750569649329589089364059171695699749610273834514694319613519363512664322891725388946025706107892842772210516151939151395976530413960464563356127934308438374515794838247808483118721550398561465832082962083728655036371958097779713832964857880458454814548694762380716274865011891545043600086242652333384090208193875337382011279622006958192522363373971287385474666526819825735737177553389272521879081793671769777857141736748084429837081875192573334625893689727197016182795920939897069705625260978601119504487161655854797343036906948289953943352607772859408658415410692489063143854709857327395100931882056156212046684697772990173155860262423000124638110254505913755546558392041257719907640833098865411266668166394172218387496038190472643899791370676828131064501792036716688587073225849578053258005649587681518956607937315679442509106636480566707306487411895100564153924046534468063980913229570841222004170094098500353592206687177392004005438386033821331843039622043453466121403775293151517548064837079691871809597945087338772837870347289754414588182814307198632053727241125472472194060968236905214891368053868623202424011383400873191605093481050907114034678299218720070929655134395121641886062075204062482649998178117561614247663163360346889417592900917540851330282817161222315494042794308378975334778537015547089203058655129030194746830191666477139316026159204998472063353285960111958868137127366706403124221569216497041975583084592063180557562107027809171311608141666834620836802042456437188377312047210674850363044544751319730785378474817262844993851232500167045503158258143452065326320704006921136120218816249696889552644765209817566161902137945424808760233215236607706979502770249417069757417234025742930757056257678262485156098659321185680713761079815753717902572566215756086487194685413088807881932464192379937733343460060293781588713975071852356830004121225417151389324082864162587797047591118916386690988003712604370490372967557471014296771330708376034007083910629044316097290466198007455426103304214124930001391736522600507039550372839950387089424015510423594554512376309271770233242624768168358343286969093266760720925037725786074895961093063445101681390171754518843199832110265801297534210797794864883334971013629682035836670339528308835202980222606919314785579752271736075769123146895991219798752109489236706137590883727604419920601004636959958453999460831314107913562175646056514533541294443918965392967981436715659477938834030971188969667210109306233959136291941962098723148351549350251450101537781197542598832037569558045032934579380191125568897920692048813875941088183145471113894667392257727883914715827089866154667707243848594101201098518603423052730967687319012680702872093937351555833689442052751837726434099760275757187708828876775980098719779285827967615677104744885452333825417578277956010680828664899914223411062962556321115979879498955155887435012441597126037601712796709281038783776663286620249981360114091901196843710168614010000019964930376241870400206698696042039026537763268205670377180092026338585349561724675559735286254095578823008983498511421413164851527001187190433811120702605502206378350236025330376343301062869464680420141824746794979064849530403283181382884043732120889229168952222607037415220351136687814859457654136837395074143009856720161435440322251024504879564151430628759220738461952936858438848217131133315436414468200520897482044543169982940149999271389155193485430516497973037898135542942620527104817653808610354526515737889514223287866416870173010615448917702017892074962972744538648585991077220359392948767262298718061148829671750078685211397016834812444973490199213023655514859383364643907099330372220691759462386865317506437185197726010576824099229515424531048171620917018134279801022612576148020686589386727923347052126377235889810594336731477488752574974120538396616590576820305066935351867976490334332304891521641324248668430069246396440198506199869404703955280629286806114478552157201518814142783077836354707579070067844349523420986474206572963725175468669155172431331634004359433492903489814049292444941772427849253852772015035201035600284356296033494273441514983240509986510635736560783748828366842841420239778178348178766860704424804019507733249690442726374773681544975827841866935012548181091825792750294660683531745246213448751661645239162249521896169480377117372404986099916255613692807746197067832118529902013468136167055538006408141545178907622506279445594345342168859465588751382581321842473171447569010394755451544408982640511676944716689230937284695486871048637569387604637140886182566384450497233282521266553643496756381096221773364146203158542335547020016286348499464800642714661679037395219171089948803268960607503634461434270514442113725948612664364988154203453352276622732279963465405933521003613203145879614124995333818457082819967772730214551411574505263416878099137854144950320360414220069692411388508272995444757230453986690368054577234126184460796592095167768554219085727132737417869418929362276991401825119307437648988480121643728034912160960022741534841332375657454529087651666108397159322336603274885519860478765793635289241162256247255172608187906650524418216903866412284797298200740890131668956752887179121519848928413147348222512194726258279966915558972293835077224860597670190781948854951552325632339608898231473181620390717861328610375719894106164004015095566059570765580429997420265446412625260047093101728141450742377930648551442696398856815849574995571082200781324423464512663989603633731507527492175763076776016994692052618487226318921545428731063854449543251505617285075861724621392982814036435688941420082975420631799608898701147059584606332553247162813366344594488140017588404058889336711816722010790893929391571176947878866888461118433359409178619174756000281039355847481203984373389710578399920455106012373290862251765993229939108055139649315231680670608639163565386390681218878599431173492570909810328656714417858766727228172873757483437803169113074397164494546732668402616607717654163459036859919722657846884553586384945031564940615172563995739900080181882433357207970244112668863695353712690454467245395847650683718189882931817508989052126972902140129058564015143443280006875668985790111854892678774000391339928466205320739873990109064862048464064863359915254654601353558373874856803299842857165659698901273713016778051099439120397526524409216242698585711004302411075747721326442724720716196107319802647774270551812356405456887876879095933231116080895535374295690720877802263264395233017876195517847455282176536617590599982912483204456480664530842727030548828709872652342113843245730395095185502240030966970705386200532632737731029898099184689805108204411562313607289299574764846123198518043717206220148189773776998231719862368571412320845885299811803998563125771832415949003947443916503624247513094638607703633210070998472778909027813717569115250484149474641842429668809817483481756394640192325037543819457747748334644655811123760075055813087810871349078675380437384318399322723333279217071103859796242094626598596435491984407982094499304118685194146842216482942592951311466828435919946929350232214657101376477471871572288495960128035075889698958224406677657453344549748949631928827254485113628779722689089890245790221395193127278801917639051400055743631605780287828384793095679773841278494494378406963686466504114912414779242562970849211108795827827717429499113376230597380327108141535982026613491819013744035016436586033493543576320283250259663231259161110610181769122698230135207222742165469396901177522216621695532248280146700793952153104465235855242673014864528892314935823997232577045862023874762826085931065705161078255546162519027927202109944674816686615635214557449264836310135239089230670042251217412916293903048331057950482742836936496710067334161073503494618612020443841523643196187619317687122377417652844547148649343506716734545055136662316152798340698176144299342506964730652203524480562987461250342726891573313895921230860820248166632201826084198050544872023354483630611471808797932201192554961337206627143543603623598336301856785953369854184875891188900305698149007480973896770284142830720184103619733404586481997008968714139097359010464554719208410115102659254451129635812227964112580245991909894241761942877925646263962408999258521436610003551730287824484585584577664148139977470222481136167386088579937683390849570285477950684579823212162043430021835691929331065008624651189320052658794092338761564602156150418122737973387589348447368938666113200672860536038085522339771469920417447776412446321539734608722563372321300587449336182847646860147656429967655607751864222428038763900042802043969997880907346338439362169761330190329116997036223292442153148358193934885861505389654697378471228892967772569206257485120517313301550544066737927057803751614332992982813116345873026574311671260690773816497617015549834084335439093734282822494448636123785686650029216900730724784458473227296987966291492492729029110848739266928629572548898005219918654801125123557346420358039594909187956593463649129372366259782296254194820293644387643429940875424148913541830142847006818861728655312959463443089626503006434469093751173338981909147512199070268386463475760088872375658027689514793921507209027705359431859688741012585075802546784830897395669291541810601144808563654132917965379778623708202946272866646310358311232219801671645558813856476477891349234945206858487452697496894090279822321161348632676640782030934825800965064282524822388066138654768611260812922851043671584962124911203096883119573341665698376373973209464163921251766897231889900944343540471155965809436174617338185927135386592312545618980751306883967853533081753299373902904812594392947655830467467861940867912852476472400684044846638007369752705778535861390231952934796325316886945571277583541216749129857435523488331548221329746060253096079085365182760057627125803888687946442331283695670962364591301561719501886532619297249144928005723235035455777129999776325416008228320314987076987090861110935970860441648429186197772546926445083438585712350805661018424670425053619020011492290941244211594773714982597185063210492185254496995906381052946310584635170462081339001722120575572624115648564036121341152843064071509727918417362037515827155543729527113033874485039048022184097866903934697857848882868519479273985033188111697237502244807662509522486213690548078023174161922204052929566686646267814510933396611647917585277421323336983479166605745950439190602095190618003993002623490554705082219330331716249348066826406595571473351428332437546488563469674754129523524884205486292389569773504628902995480492993361617911738027740108130545186002089471064499674494880456565628458396541060387372290243976069099812899304122673775586206826903057126350695282672685146092650374231967030674096363875051567693197520507602372898221655744869483600188428442398257239488120853266660403319354675416292631841774480781395359197393730479980415550858377358305456464608421307666404664727166300670552257923005367770028390909868120412298413739752886444010742908120231273831701966665967231576902051142235233369872214830023308513870085437470674428872574500037038334963464955954190752209120975975318630265557606889310941220976623954697683878290478791812406539801123253154002742222481936261238597527350911142760628261867811822750575159865237854071209175901903876904413714744133608382002865908869760421185461054809211746382604169464494606338504555462480146062617774590030976239477226007361106385389161598745002247794074607416681129014947672325097009051943164530164943335629148671624894590727267091725629552314972961775257575626722834708231419476827806719418871385497285132286043087962551890693673044173929197549326420606589396552883498595536068028565703265183565923772252041382228258785125073735315754584623141948238021169602955556190822957127760160017249310046251691613978616353817246935226281561769620937013624841784041528251123457444683593350852946434420434923240973394301992058857604285595896959923500110130016182283796806223250216556568409005504551895152384605694716216841940601966759885727323664656462998646238548017413605027680127789011449042177373910746731601433835502900609407705270195832067827506403787785134146227020020484935066590204494657350317494657713865564483989558132715141197823761442027250517854709336111938235093290233163697126320005884180039968958175548322730154084450352362331884828830252429646153546996818260439881819888088707394515440146292556665343004396492316385056419752630396269969500883244443982249666615664969026049576334935721388226125024433830812445887405354068423281354134461497112296023006505444548902047519552376808063309132197045632540984279206777041274320902479678114451679323620168049796150653371214452712775727916756320298677202889242555300171152613457376779885075394236565514035786821623217865377494703157317971100450223272770712397069710659804277284370050129628769457006395808114711252113084171855298839673762128999456426123508134300463530240613681617566630274241337089712659497818187160464000312729722888308299748665322085770998176935724961201784152793169876359780225456416244889675725669199498602047403240299207423026262167554396969433395025366729397822133651260151025697580553672734090160778953258334227411776891190261806751991810575308897808004423355561610206370204811885330629862908439683932195600278539417261345268543257809094047429924877949852949226884345477288627525316926068590545460358843787638210384225072108399151938952454997140890570088723305193855072171015626636721501612973335061267879739677958725853907960596344995393261247213266448356099320195867655533642699144601910740028346019619290826210537633388134928476972500919199865329481280463774702331442289966520403199288333242316831897359054707487838467793689271871426985366748937887202278692016207989291315184987663723945328452277743051536347027764533524525416100626258117314891592787103532607296405512447625683612651379711000800262167550566890889253511324131561588143419583225668284137073958460743677031654803216125807164251326695928535065117698783163384195781532369343098774080150920316372708837363774661204113568343156471384180582467281594542582764490789439501201551105552738154124181015681861194557175935698049380318197865132091956864541218703746434879340178735663728520910457717026711733868190967286063534977217985026268210126741862641629247900234960348591710261784507718743716673505662338263663273633778309412498261193099145661712602991928035304522055799843410807429199582936205810026700589641812806549234239438711376055836459564015773094963006974082777424067727201311423015747883035107093263173645788797299270823523370266935500919532849054085602296131983866518696998763534632248649172787512694033489953206705900300944187891273110098569701561604945372563078935856123801476189624898899416657983115183287534236257164020273827647926453212346209724551237943234991917062106206353853008871471317220901567496904887868665863126430497443662611676384347116332746893406007837214219525961937973769909508509096858960565956347500241163932915740657279813000505060716814217129933864844660131733151291587239740310051155051360044619005591383513338577057176625614598707342354101265725398764291131040657348013733969955307759887595945006475629647571169804623397956518982048088965859931968047343697912555828219881394310220871026383762190200473473520111612197145803298563026258692741477528300127053931243871512207977158698267563440328301584232846243515894215681862571384181341383658277472712198692708351174178963562794628373753265553742036719630436800752141262408157726192350122198045254764675418271730822607069713772656545125450808698584865445694302452399382274773853320517816472053245618675665553740544378512422027326446114715042445290350934417670855789900822852794431651579310685659315539650741686058925168333796959552289133213443687684205260992645093728659281437920180362548962342854452955478253866802442591441680806247716652093225327973545486220706644113102084463501155552122865169600863142709314315748129508735063009928825557548102331245441170945153550746054297463140020769146291103619055613815227488569917392181921042845073513761536849599807193354513402423295662265775482033942954413271914852021481284421438468965375471868068955993627764884888291499273354645123216250534543446636233371704049331393211816660554697586199218118373850790664680788777465691892469342831558351316670223991603252501243183750777235729550085247327920086608880829687215933312112410526788919571305435047123714097601096532636018521083667935141743136374276896879064381100980142152651908419531174205904890907177389934893272543490455089888987927574257594289300091042674937314534586199009605165762770475594052353801730312483014717356619451305048053851223323630932157583462598135216758098567922780753081023962111515917322176083539568770315035312599726977353810989123194673196542125553029048523060930948471452072606267331766983298643116869649005575091393555805236024653396709303524569300694369212303646691901602564351635960389865392413284017369487610622290253047616306839018148795685740209894596917436823712666271283841257785840638312412865089153585597264030769893754426442257795185150747000717882214548545695837000700076031664015121135175371426148615969778997810306928154037514311227471400281177069390280267011806392485630184195744172623656803732913889395348316126610365919391323115309389284529099933347556626612641681941973563477655183962689474523947972890827062836641978816809812599435828846691007500999276587428568886304429230826612941387814796139400711714231082709118618390636539013002816697544688957773907918934515662060214562597135630598801736163569232953977812713516737059985081644254023397713640638817189799639983507746611968650770093245161098497757726166424006051678265022175905801245156318394195802035353514918747032469023374019982215024310627164677592642397728127783998935102542779391239071430030068328090676042935454677779088620442231956383262102677893524164835849888316928695754766321998698852411855082985999751122213304482432757088436124366868645687339176601011488448237394411383975569344592307404850327753180690579059039615283591190810737029692104780643746028101527227289892131500628065815112493167579604985972008896702046237701820492681617897515175421384885852680327060143072850135727982822706470850038975528696805399015403429153586399991121044963613784430964395326550589449429689387441345276026153466291294587264263616750787783402390002254081128017273490977438335505163106348968834037038098685363133419823562883080776335918356609613712748269744683313498868328845762135659777268485406390460044249283475836193889748736262776557528547865035496797652682292456763431045805260837358780916568758600894667319419648373834007427767130611383328058697923862299763009467984724309258558868230872711914871526229141410005037040221956678686095241505239276442176869898670079163795538506468543965123810815738302594867340222216288112173458554273542003300780325776019699174336007629084581043771871320427603283757172630815308466923723053081710649316218101515021622712945491315186880777964746770385175687373612271027653792587335831055009118064708986273890862585139820548420562043734333794137687243913551993242121989975848095351103210414836392782642069646468903946313106894231484283117647008583070101755471555641663471727719068376431684661239574248340295495018736240440580369224014087446783877590614277868319071612543182101452543409159697432833564347881600163820446929168440016880660020364137914347420225771530240239584004572561301619914684344947562172399449649320453538694706387306678003377451966293890444427770857519539822005998376181386088446276257019055881048501095965876961612335447483907822245276032219386725754347579042507171310141404571330929224548738321308671763374429110108678483984418948677018467510443630788081617723422752830516511098440261379045225175810966282199222347744414554946035439254850964277381233703017712845631079057802180752216912906327669405744798028165003122311950894252460631194391467158178181670040650687113212537168957861194287695173100045043527967407644407000837445360585731666913464865198433716847649486966026028863747026703481137989632858263920001255741240305471315140476879777367092242395070915393076791779995479489511596379341547392957565284626023391781471599685214532666317737298283130835132110565554697056945041640433846189085937642608599969238382914749044159201325094862737565789400898597107008645627155136969156081723174677961139245737963771137416199894427489865740092915015872088989528528215662946873050244526754798255189994333429094150326194604992939097732809782379743520430259246288443331297480686919640965746868455110694682791188018379153531406507536654181240938606657068247031988578510893336079075302657822544064250780764535572586508656016809611649388257597641516788598808751947271291423463296107890202683417733819745086679023025674346312918757941540242849671927295602656550221801915345605779963200395303001647801395789387291193959991505506763566518812480352934597011530627660261590243876731666408658396606758951456625390870537309429093240674873115410063820096842572260685010609574900211727692992083291108808806568702514880747855886635213983098079467225144209499063372653136726311777031909427219838964279142580405628502732714156668029649429411374044517301081782189679922729650914125552071886251741430470478576164822348134616990210502966294750883512729357956169667304277384801712257946019704256814301727781122587360275652245868474484175511926355001414119195260740715396372263678796449432507423173209899612693297812034991350091551031511688668449295851894008643044167022328609237295224507698230433305515142380682854614222494373005648357129519060661052216919255618143913319373120171516011115726069548277915626837460696856643900209638884946619874333656368180389543877149563933034296061233050164441083097733159132758727049585124778351325669978056026869731765968639631176512244633360015102813068148259155187892239348247769270527063293591798189712270683943773811292631817070404366850028755228301503292523666086535278192597062343204713720053549020081143818947659003067765653656564779097709520875206660342543616649912854899676884014395897214965752102595205639145368322103379575683529656624971687433874079414948467992657949157930706435934721511806627645596475742522578564088747244153945991040276277074225272313068155081420898654274413339990268572905107101996585354518416952158634029947014472011415081647553665219024566139209681023969365737012466611802166028140566098582690211713941574957113445343102783134338244257318690906712024869063251973269051679665419037192560646879726010046239865990285229540060269196556703142352918127246315788085893880060461667560500760078351684299905399238671680669277086800030993252834903599334689632941476037602496087048175292400670073429118072624593613463234105968744473015545297233370725500130277906043559158526378146688312241210864701744589586257898654067258456566075973957148815089170854321356204930729142761326350936317091319910540018906283740401208982729224715351648016221101833011475672481382310941378948422426674982910362897943875796392517377070620039427787182402217020508669553850486842536582236422422315527989641277215648541525443587334122184252794779679472707906793398602541839650698871410444709363457171191361243820847395868611550636380261527912435952980752221185426773851142367223039039257920762685013560481434886104555242541408752574167928082719504782866709372089088613041021574701591488981115672444719010100464848783334133443751649724497427428028615763307876360259042829305352231002017189113738551792545626288277640451133322309068388498314244929830822494865603932322536619453577406888204244537507266762159790061913267379183804193968318728836361260417201570651915736443668579565951389006222368001229348436979669423199060362442804452688432284901835158116538573518283785010582002298282387596599909839972872092601811074267487829009279587018060170662798302231965460157053968673573378661808993848046327176319760335948213043186641862382040140576051692606314791510531253162236672012988819641705253404433926401780860012919323981809228835947043889971029235213101484169963043583278528929370922678779656721569892451289578826383164096118706463115982843635134005372680885065392119141080787668467695579474169635762451032747736345865430013197423829386990898202178341767853993473078708842206997583152746221934142899856585660239205640404176956626101350785645897841792638807732952321620033365730983223099562699037664967768842594415977511274017457237869315902146259919238087283904657313778853784959691347445249048244984862827815748327730495683961106818551913129168124109030142306066358007156048614404703684995142375370479127548064124100666122349165526729746493514327700824037941201278244377860355402702709835504334909623486142604421563657987240815498334240993628602037329014140700530092001107674589371478730601197858048269279525595607700802522945509219767232165651174933192389523872311901368606934260655317802788070869602180995273780685811588426465029639224648280593980211483616937705252599472402741153032574745154139272757753847100978644927522546728708454299030951823565597501623763767564981702936888756500149223173312434284739061491673141961489544140914144369834562302418857110694394343178432894790870134632136340279439545693226278762450499096237525514289257424307192897568403852285969746675882236644378460069209579717758304109154339464691220626554289102414797255701045795119163745452012870597163810873916547451221187052879805951701970929913519241339857317746854596278422970180308698098294611327193419023112973248868556866860332642303119705243433772554004706347674886766938936768654200777365278006728992853779061112632609335456587466280669492109100160762400586139398906815789658348338017782643017174263333028502327836101065636291113143571874868549120694576639502696120072702303531649023169154759918343902885277908696754182620300212970277776227840464693690198908072646933252382389308780139202059508028373202697866955981223823833834963523755501744786828891089588837703565454721206399573354299087006261582115387232681286748669660642619749746885974891011058593856083547400824634274866806015369835719626680132507436229490295422400025516289327113117307893463123132128118807062643732480472701929479237701793429890608001115278118246895464726825746910648256179537507989667118171255213355612084256450355849425083458577372285863793848577052964209472636468062649029883469283479208202412831534278563852082092362152758925537705732045072294463735987237007309256461858397541643973641624465761315506640306301112204917068530618738225980215479236234033433081694940115428999037691788360540680289288214726022966427385979396679927075804235002340162849190509559604887276200292901982236064071190808713071659890733838599599980162738241609376133493352627910777708536708537792443343565010170352628100997525233694177839655804393318088249319569678343854074501494947023729445226035677197535179229091616136105144079909520203176175334789877461680028470077454984557358278758617619340640472585779138993218921800098615960958369596268639097718946409605329984543370611082675280737939209952539139659893098983275697697967208409621880831657367425587443098685449380884985208734713581890518630893828189123611102724497019027348449848183996381871699274522000221793196014415454729738683513815150180856507531245872398828734396825166070604120494002200891363588578893018173378012217455971062170102810924766174812241838441065042530704290261128832426485449436146406604626557015033407659156239345724438943941690845215944053732892397361268107678452553126427438935576474727905315122295213740970577898670740946543368567184580466041237733818283358324743384880186448556868782183588191297177867338224622091680868251311075623908250998874037535599299122639686641043916256584958232831937916036199689878243134840462791152106483490456037800811292714772013268693522580990786130334981114454415180299180383360311019655267220299428502617573167715549594913863116674263960702913878016510653772011268179769015944480864878891525231406213614980501453191607871018505653595647040499807641699032562080133002358695719447503672395832231625232046744926431975871628348989487682409512021028862487271581979806445448241972817974753243305220654503619844293323434648481602961544574640630988939821474069204280037240643367185964187443035581944345535228211252361613035525845365110525528170960020496968345909052836387980040253919779377753609075530043092738519964951557790080589590366861159519313316887236228536929301672151309696354840736155909316970412536753419691902441476958093723502481351717424659441970909407997982213236737323556032120125875924430536446730108807874339564750330083856203559748934798019043773550394294196130671454110541670602749593358531727134743810202970886352285416868998022437497336382350063454747547782529500107368642581834140324144089453546655592355507499305791497307534276277407098157529578355510574512591004596668347527221243238688758441587646361696672484297204133116734209044793940076952311317414985712309081784294005383643261336218066467906539683565504253507342134196031015936037300747017425015870605149416563347668745089902999706723988775060413389205940431000415276110891611995806220183429141239778232537626186527271339598995680931310634430938768164356319256294525808239155258645762510753762056603499988581749145636750041737190120612072778288329878651060667095787363996646127453248253886520476926499563894037930099877749559647415554321923954660388855727533154269664431304955375315742276574266046647791856828802686631268401192048282505279107867602963449467902024579646142562446833620251088311167862988988819541190691675843609807026564314381644788951563460553349841547275778206754567293398592558237697953798586797926000586498057397627018520142333702503052936992456415790815173615590090126871208940929974754315633809983390905803202796990861815748363805434218750492773914554401957497427754537173390869869781897510198257096165274052546055033711281415201221461121603913119479176812086869159370108149969356611567361589465642907891481167089657328634905077122480235455175969971805489722314642751573425908553394258260900670214309864925607167250054185360171641047059805720907008384364874624783540621968845538295165212021052828610241766405203633411470507134260502361344401179217236262291187570800418546616813667411094561250019463589341318154550459015764501850285532004493052853625923494126587699704846867090868484366380276173210265385136524260912714049259631640726930836475004771317238563184725959460848518580170211989724824387568924180144642907604471117489044810955353866409760809916466112127272833953572549303720844942239689548167954093105975265789203316216787553722589526541019148905410957705508148473785232631374502621501481049768475631053893594770378628134845241457017312615023638795653667945202366585525403666586249438660494580237275773264484976610278148968134751491652129109408136582851661572830528463883835400581793406163564098624710323516284649615071973455907708455172009012901767102943659270744661688607260887331935563529016980516901015870002014794662028074910595075442557493432165844454530985306354990436973207378195718961315235240743949913401912326442857010726652836616102066962017044985660095161986007707624799915373517794700379761344702792829259886202644990591292286387070155269711676170499341747345595896212322258193242540853419631308118826190322437848059270719338637869460872606521784296833873040549815440416440697503494277566725071507871588883540649423082424085943361650537141106059296569003925559755498600063052364535779746112991080237048410097891595664958339727732598475548216457809138533225340814307968754529486873206044193352115591587366088905473355900372905037049478857995044660092876509082890843794298169517908566365085848394938187338900509322148323810098410233163305490218629704553065255555511742122442908253278664835345552796492758339560263316656152132971651285707258165872069198426263908162246949845026562814213912995298142725956764308052975717413100682992316033772497857293034366983510759962333807062850182344003614954211179751707260467530331116367345748295002084187928138881236752549544789413529403362040166448834202063532896238812856343540123019903011619842527403383412027655575031431116814894720660463356800818489939648685234293883806560080562967617973158218159909169840184703674060632071244945913478246896696752746068501687246165916686249283118778173861341581154329962662767323751829666839680005956180246623295203377104628972626675828656191735897960974718635511882220816640262547885983706216904839100142809141158280364385146847626289015019599363426626084530001448011777213966179171955519777697871668573469224482212668030159167513413898414132164918992182567672748314855261383323877871159641891899343967022249875765243030642225410779559268678393391828942899207969520155455089035440734526346425341595458448919691488423010636660336991406686310060859497661598340874903661452346757046161813367885231437192750133930458350027375965330408753244572277909130161721110491875625978458038148139989454211114788407376091600629572861443430117059830961334469002023852340050469290295981497800643781664041339291578792211655256623461060148845072760461480695618731736701509853767976022324792124886513390421796638126027104817486973339500439373323455578669871270578473965553229868996804876416449634851316787925537394998921728154595232785951985783436453890582912449184547986658502782752325717756187205374181151697871844198716183927039684429179376036324110629150320271793959173349222155915078998585639563876161784737386881835537654179587999063457528098056167567132218687226738615066064783915422019889539605368644835215394705343602838175924372769994990038082151593721936306159013065491243439480272990280795539521720611929619753260761614396448889334480447503671125808875083681503505132854591085995339023385410991497310985707097366077394946171035095782891647434565226568012343776615116730247439143046010162184925894962069367730305149111734228061953654806413997385876281543588500054047335705461040172607989449570976806181901707355348335494393662071442084004827389248323002865849520323785683891928185304109718062430035157099920946297237994110856510137117745618333955370977290962589083069448297153603348707406758997972900636846127664984046225413964368329572284210633483367306868325891817146873709771806641095984398189399269079767276208889727540574300876678057033230571993662740166778067393381251469812712930970785736633132578557192611607551616209512410335849346230834336631890105000073320490703868224227758961309130992319157660804053740942606753677291570275840877015780771806249004403864501680984278293292270240025382072393682194013386678840040051629137100157831020523553214675062578986830729662207838280502489907084241672012444732558745072060905971767071331569237493087899857258791894330136305506233661103678383115268873444495420653739125282617497757572648203717550548099272699312696407444602041554083913809797886020573749248289934660590281723299323467528396181912202740460245085825338561177618169174930320954392654496258539393936938071260061590268045967345899937090453094088625018471664591585111960100542215882627630178980600241366772265661015517668233802118759632333399659210014081964781446231350267788237280486491822762850559390857996363902427789925365379616944425344851908860058281939027900204883597256519924785479604175254257749132557436672654749330234250530250495861122956731743777959302278895163161444604652684974643556106265354074047517440491786708837462928301590542236346338599699468973584079434305515081350597715656970012427966648320367638509858516891649354305760801409960353822372156102704599205209537489592431111799943837716047408682149415511792998690415297118117710598695540406326058048352464911989097006631805978850416114971477522093437668392084365909682308644618899955101252483437884397702241415117262290515100150115029826828013553442683370511738809769281908475414113823659311324977938649035251027122448905264526703621335243517615340148036994929676957193319093721604732481325187327112025906494893591230156620449979808341629968524457638140332636430495716620325047515565640321548371505763767760185234254632647476132607554842808905630370038305052349931515882762039280785475651988489419937342910951799192780134404970801948582514337118730963106516243673731346607759991595529863181306749550437543088816735556637779990174524342249934847841984254093678753421306231203200763127234123254605258801266363297923623681966827073300895632161899965991172671719315726143229209852981327836361124205708253818790266095840666700387857680611173466279442856736729056458649240360522297637896319039977150275906223274093296480598664882151872132459159085479004485053757859835217925000406544862465150622109832528712138984442360729360706822576792236068618586907313093046645346642712679741712582441629400288479149577707293260823103569098206252040687072175313788920521276018940624206592075237568211439402092637992145339557131679209816661271745149546470752184176698966016177089984603384129176066283235679319317209413711629301179629828121949917677784388720023486468403828624701831119420794941650548788755744316281132545446233705803625016453488448120599293364569632709192673877465846883454390255181549028261849610050282810580077394205726351544436934838343519016377165226368084726141842738077126561250981610940856485407710405375005611112089301013884819314089422980209223608797457261908554766424016469700051380547246264644701572115673490374301179440771900700598920478327988843890103623291427792107307733989200360812045505811560720008174491475182043327491925347195524465536980902392925318070207663705050047404094383331768263537335921562121968915219851949323729520026465151429190675228184285616585160160092297943435692461523920291724251899031604773030057892376568525061789805275044169479998059538376287764076516082416410132885567979428099423821552828739947130472856391982789814635469471570678924677799705919772050075539559628076995456788765755730765977984117332861201935359026483242868369023015502444651177813246543395748670886408542924552641901158060015437252970581522400209734575037225635238069551594884555704303155765840035908970314822533848372286409338640162031576703519118226859931185720602231925122318796580651174198322318924193011300486077830160635882630749146646152450660634606892708046204413307155473796247442034792473548806303352404956920921897356042056670052715634364710139565774241813541117361445338712439143602570708823324963783842375960513879621248411107163616918755644515984984155312284071635991898512104800847151677311068135793408973376216885931249923106634779548706391108464277050251237980682186579187138771764270020513125313311243125586328840681576679315237889257256753789406349609894039949695952038034441301980942797754100863322350741190789595744669093799753315404151378328944594748907072987946190334704526640287642644313001856558777781315718071925010847471871225740113437242574622963883825753366756985612666143469642576826687770912391617665280024875380219239054095911239079295059676782944203275514606320273113777829134565556870944439220986837796936047746506051620421708035979585810594066722631722671201147371413238359503378022212058517142335963890765443397232759851973083850815473215315703857790652225516906163122771119834430832566592146483934280959354259199254769170803442331474772666599407463309982291307051820006466351284884648880773801487636654424081796497428590134538832568689042403390097835574275246275124182636858355407148308041720510881946246446088465130236223228169407449893262729067878175826744976051757390958164492497377471135801832817157131123778061351433639551094392126605796657119159860968292976971780726370995999278953489262930380780203548843242059955490930261793708000711153346039387159212621777864586965448705920842195143988919078109430966827839957865302121858998641909010453787819024880672955759331315094063564750500523566093598400336058525493550265409524727673941311606341136478214184407548345931015584697213435643125769250375276586415353233331895203482409234826476426841510534890638553834083274645579014183218937995140136691048579350609923664901565146988685697546900242389497950413257647249739689758243862484195022752067803215367787388279546426843062716676672359951265546662837357200802694364091286764044986877365106110039820423167771215490184478749062632655083182955354419160189745981463135552600450818313070623498212922505746028347587349083948784232635259917859007469622436981665675824129446729231351262043827024047102419958438557354482556036372302468184903632153262557445418420921539596518827530421479457189740737687129622039482016331690112386871078360798009666236986016782711494784917163874678100036659945142341154737645565511741425162160307704915336601287902492493444626977510502780702481810749395243552607225323663587577352119115210793645439859774221523277967586701018795116198618220142034069206712067101721272404586122651126332894168892210338375794298156429806209463632740155207092605987289072865357219545733323422978075673461700573012593462501012075220872619823465922569461006149341931177340423710958503754954142858182898771090672627020048290150955612571798197250922852016045143739352027182720079912014697328310709422468829484875111911862195667694870720950231876716054496249000400577402073519931207634430111761948808493370611050363111517735489001881430193559087933310951775090224434625747229936034016953021014425070412998628981101904870693922809995385482188498519788984775611947400389738764039774350897772045633495984685971845787915290199996208436385682931232232140896853255933621882494915534257384121683960344962847188000645784520012523276362092739279065404945662573120371824193164928175621410718979585324394216639665082245863836972530537874642663588660486470250807949672865582028791462535700885916145455263511676251817453888890696125517418168090593168099166330289403074962846946930078666202173991944642486144746123022335612008357669372670755602761204836162441873156627625685428431572510717343783916420316050659782185590878741827086562463467619060191346368104268151634108609847942935636752672437819910778452303713015499470816083363606663650539958714614588427963608181220421395500856204427322519736599486838941389434443986866290716265693930580193484001909009745163274089315630317765828138160899814311617536690579821387582639355701164125390564034858425717806880671761709335396526482006324754148608987728389423092171820646223338918469626133331220892337970366869266287685798558968148258989398462554181901740276991277434044539266779964102673318136778812013071137186679552569560097323067263474021337651968091046968645192117638063743119464151912060958774506398095666889143786160205412317101114625661319001272475692927480867648538787539445392676011959735905747458599018960081578774256192902503013599236655159976903274571963839008379703128919412526318519110992432586496402671501273219231978094464314891831480226087139074168788739396891021680022578905395263372460474551209678776338372917224508698228969835767337873675122444349805707065781526204216138756699859163225461119323470030666188491855607066967345489119602953685109446066913449091827613242717001944934455581440462805990071886159158518520190883555904002543109015709074164636329417879617472133557371606074323084783498074141303630823243006283797110484278144990142547538641352466256748846651712388679710626605478606266422898054440053262783993506435774754151607904100195808364186078310573381333249473298497519374695706925307092394623741775313973307938890553003750351033319428264044278384122646311769112406253237598209284847785652767819916455728668073718759503163070691223736662784978632882465211257000293142872654461906576300920789462390434851771431654734042256912536246981944552913505546210097303116402192281009990927598114526473397384334687585321205553387491994146599207379722552590143906867481602528238716409199712060904898923668328767861205332506738850381946002201777408910706025483644216528229201316474075447398416170415933637639744771808014841593452512593542523188514335032381696503038336174807819822795282706108812858219886284591026751506641154089233517677018615573303052839533243904655494059338877258582560903104121943104757145559598549310896045659197150761759039957599246700977428669480847674968962369835424650612129656541199861745527191797514045330770083408177671626641714440566334561836089050436698167538149967055557699421084581897627534266491992282796464776501892702506266130139287821763868431862257570283125728332876289733988458979855382780933039678025746124913723635942516686656955535981334729934923823421595221294998852270317578507768192166845515290375407450924165575522190446694717475613304944946872558617641915751031478945677471406188099415838931884322744316785346277080435597029980596163426767338491718883734359577804600127733161798206042016116249262163526101639152578192349602939013703510586022277511361507838594294162419846449012510974815354171766005120275070459529267511063772780249935677173590835465927503441093598348549037928411468254942999224557264340649134339530949829851112888370348503716824606749031877511438756484681013504687713954207617186451456068056165596745207696646279918275068795601241125863225916593403792213648201030352125715202423584113519491843844030023874316799967071049869286283261892078638187602462378253447591635718740711892485798397289187344382864941485649057259231763244896023465235160966373889501402892331222481660813901201513914144025293993364064967023203844208155150206899536675182462580405495982927315468807146317802608526643001820691204799209718540381305615919690293224551531313327090948365357021454159362935140986739877345446232014991675528329302688821251447595152691908898030131244564107331948993552661510368695669150362631705389704635719631580989896071834336198260052660454243501894280338285777746243824759214845462045568615815682958464565262034608423524820716889094242747631244296311840306622330945483381012201493505820065941167083570756124197033059162455582369096748516310725106396686318405319572710192889784417893921923887763774121651404464301330162317172904185044714935291176138862413797055687006681855875052234152739382557099900590462802278611507041626035111124319735251072655645795896440635178962863583412740707343327014654786158196983981840219997099513291074089263090083507458391757124904252868546497879371366088388737132163162030615405018812560966329521471485017285241032173021439752615449053561007626057911844549026019011959133531152939712515864442981713890123092897331550756855162640529112158084611897653680289058326272641067573586284273474760763638169648861591981349022185354714867417132508582412004861104909824244899159645703127067933239306954609656689041332685960998217138691017658576537352554797733803972167319130990371300035739763070578311223470344457473752896399828853471015475547489150431551625878277261675604938425606514075955219850079966972989885506593310629545319312678740740941147055472615348249534219525527975196296649137945709939460536558462229553643260696207936121977071371048066806472143995758315118663331375814981470686600779932002405883658206228343282608364517505177584969407915019349675762999132667031587198792156700255969854406330212301223187065736153493019623020526905118212059424751896471790818452102268337858164085782023650790164233891160758551967950726884465675279723915475847783784759978391567019691165286586527299111887575723588324381331680425568026531346717995786620179778876199542223168796135382200675128857504429187578665128550728812236565239425883143090028066731741787122954456562089603226202689807293606593771692326874536450078437039937537917618756861758022796911779877685201445201156924014845092199583367061314972386075116317823869778617195616660379428973065272200453266631961701529035429985494167778297848429145403698129022141038686734951295145838637979376908762126019644968594194407434473156434525461198798205490419393279099203709321749718145203346436446868720438664429483958364964670831296443394526373044350687645984903292620665634217710459078790803867948865917044229781515314556883513611808530059238684083264603017469539999805421264590912396976801725751416437366990131151167672407413600014140751652134731221506988975704649897916012603969213728324006139247873874108609007142736653963944722453894672511197555341963223462317817906687740913995300199232917258090284882995656032060974168349325075899615008220275541928701400916154208209002152629726437881909427083149346895680168696466999321444547133865799327855561339261656783449813758865008226388410426231380624000523452275723598022128374204289673918265578412795016288976553524545198167942245750064006038453910306434600435749248670707252991695114300712737252542481388541958648779937763525395899502630062656703377264099138420676947129927592455918160337306137048623913562575834025914797120641542502804226351356637047627352452449974899674375631411622923368886738747749994295114276180742631299330773415976187454728893063347506566161379390537166202247546290255443556531850334994096901336757537087808550798101797148136367099368425360590050569587469901094650018650651652891800163662972036571669699952963981172081692364179550699920457266187167479976180449293368214887558816902426692041093006594795309487134992723436154619014720748006619918712745515348226677129274643317654563008090740343385361150130584322448129007250618257255285827392675333422488700983113187886507645536968490086961524899175776346820555554335653798880228524057080229160056386280604748183793943037455797344584180303171477076252625538702038746667996448368043221676905739761916497010572818877744890127170643001800008283531877765768289938044286022044375678029983010288766118224543797635871416932844134678057616589763612815713294541443922096540557191612825793746550835759805669432622365658864927735009815763016110746874971737481177606425243583174669213018950006040070545087449357515987650570923903806793432827677499084282797297025907673933066742799554526537481048364530411827704791790913507492387402994739516974212797135946045685787679917560378502644927367365112575291061926113205984986865551047549249620153541347524338818105933074356109685432610582234529943197660822814936713717423698287365629035669877092496027206471441263065509213848273905237958688964034039681214154872419863491376068815798957055619725229016122022224491263047441341767672490277628042725247037911457151460131166769408193274864168840762589342957288028538606326793049637798860302634508815221151748516339113892371191675348374498921303558562219810429048990383725489775065732624038255548309499753599216204770476722662670140804033627240183755093616749626610981644411654130683634730585869255911272543239939561850425919800035429530267794664926539943085387114702533959966273121391363077040767892966202722641763873787589335904283399721988598061875170603968598362778288194569715751981897505829279698173798828454787039330346442645739353411973715386806841692422060623218797614850102285223037247512291393997846088758780980297232627345718010861585646387043796369766933088551277683788273964646789901178915581783022296779841733960284208521605541826583799132665480903707404567157031056198325316208380024203221620293569487918355817342594719903113951475208073988527683847508957436315434505149466036401507119808361167523295807655182398215722607307639705864482837652489772787876486392966440023299515703211128867732210045936482375629300660023687071724821865201560304540217080547964385707651220002277269884617583057194474090830462915361432426226816145904950383965796267971514505318114954714499484952274547285204014883090135966526495228720419368102351687133514295996117639107905145345333305577615619616149464258867150041103847419808778360680896007527243998991707887777883237281740610845642924942396455012446173043539222147538603672621164381056695796481578782352945813847497050000238644974234128805171923173553926849686189641204770362132105648635835364890529212994895369119605431384794273123332385442565748231578366070432086536185837393409929453354515980089298374456880765738917786683092520664043135584642331263013845561738221731061821714743128207044472962669925345469583193534361919560583563654934854879526104655459538633038247061071253867984051229033704688270933009408707838229644233115987328757342601787280494986218060661864339012884427802079417635635726785998323920777946929870490991795356296488616764967638166042489199685483995971301057152163642728986618940070687820986669869375626073775939259374371349402957711104367354616051727885020732407182175910109674367910034864781838069314616943513071534605299614708490918057327576511741980271772169624032482237939828315169106151253569024431753772025792020902374104603156358352153238551531030529879859844953737502540279253021086185793737638578031286429006563103697852051967778201962116368020422576362756903296550749199759221047557683902094330469107037338374147172080319452946846622364323007500792042594715039379350847332868443223401199318363069133410027330972588072868596578319103500801274441334796905496940649321521821758429891198166364490733636103511735971933201740187435048489399310221661502596656659236764021655268450936711627675518524655686512988544760787328094967907431094231373473889302766789227882996287083703465764725680147132434526534957753226483325051236320135320017282249753334947505984740286278157962332656421236463412524171423037511469848431943255030254971685998762310603674387079158983587974761879133015135449114205730611758837390363134237082423827279400856695447350021959112098094055121344992133191942469736268305503313235711589718153045355458874642829121088471872856722949657678719125633733682320266760125435368340803872311668927177730322328659908774407432935398659338661768735583293029003265404218371915011751840370270725524557123967177430878551735892954585066769696352750676360279617794131928553842613262116859852868145872061970101527679878803341714411042502364995757017292015894710112605888518003108086619747858839130658448656492387181567066586503713875915118200001520695284560539488117032120978272717705053486971750632875088748192280437398963235377143760248626431703511919554255782691314706514989602750730617011009110452365768356347472499789639276770670352727624991914594126639889916561458093591137576126710681854558052467620976019216501492347967845233778565054112392486602738344168568047709445254426075030381837845778434735628112532674103905491552278392806252394952622221360363110845000428744268285667012599862160562111521353773287280188951792276065093562121660647464741410401619856197871108805562515949693013573730350635913580232353605477407800325140211132445631034799348051720431974501288774233269665002320399796264756227564579426883304895775056473372307383915469906587484723916817911771861551090803554276161339987354847925630631062119306976008398173051359294700313986729422357521552022084481541499669235695381190141645886166684905962636946419312642982470153078806291032798415038791974945538906786305225416737869034971164223303339450456422876602494961856861615309883344366060255713811251115779244477151835262041378208692588979121711365150217095876391048729871552105791238948255187941545799525962640230499060901563638905078120560993476077243162754631667460305483390993057575377553809165605839290027353465618631799586306231669113356073706841662203177739751663222567935484656763488983496778841448376261139624470452743236034527997845122390974363369071483285224184007603805984313709255719600051704386909700474731312593264381745392332586206173470113660346944855997279655592168821742785673893220456109753035804304174297732861370166486324912811397450025580123323728442398017752379750248996442260876785629991893047914873815901367156816197049635271801207084198429042500502492219971835276276900797731899100349220506142218907918734109147016871615049434073635063047750422355973885852836619536178937424944660267527477808073394522234370518581091991561493754736639027723231325106493406575214070430405732031117660785848241487975491920958115202103875785827326266565893242484590910120817333439278720038604712666766657023009809034417307661569702153801879482802445741459708456394344786041475193917117194864363329639192386179064662159516034898031294648562877595014484750048831735930677701920498587696140101723928999768146506973142323614304737830161859628077979794540732122916914648371237120626798231561672916522844838506917974207838828867859883029697247114023870647023184419200262219798736833236805310413153294666344653483775381808292312926796919047545847526348154578622659503989125156730546631424651267052752888902962768306731049676800341790470249783329198645555499837384617753356923352037456875272026655142439529161801911508252429796692377173633204130374050208107634406177445456096871808170677092743853739297973725395213332410941378753753222661667381316871885251098374236219241415642634872487588316386945327498054418772088799534178282997911985742804753688030850642166278867137913411602995014231338636614597165883476887955155377083002981017059167995626284299877332998942701309007112009578486130488443313028355356649754466890047701954604507589741230874242187067358997354368205268034847773893799885131653739758155149099787184952713948414011769306730259011470150134829823379356849815939504200966337724682562224106718400467697110701094826460930150075018344488222726684602942288897976547896130996726149528628809142096301247731113864576754796018788234773911277763171392562151318446556500734460867369998429243701579345875566341716346100642869495752210383437141603001952078433498401929723694493984307874763713699481009048474751244627312153531056647508335055183126292967889611133545505475460207350556999938860052514239935299417765534903116081634071867323627279975600093683740234412629450892131866258782872721096330690865642738055405993791270884775541092369610907128727697127718903845723081827169590579305279619326333572235084680840327631053040326171047448371546477389738339764548540653848245949386154974313395648550899073317643076891607102458379479965420536761126921880861704840168586775732763113679601674173797822778643889984802977333056844540974983231947120642983252002013040744033452954031243655573354358280588432685096832536087515354119492988900135113103800675230244405855307780475773514030161980413969344829328948657838461751231098308544019795097570598329394274366542397680009428537732676312694627216577579480579570887415001686516040091083145115214070911062239513546311871985035002717956913963668860414810036626114790901456602341101417035738846013784784719563071483518887758972602256474773325262704735011233768544057599861798618284593422187790886414299965631644043734131028985672301709515575655598820384122847438220339135711638651626250800948025965888383902183833499666493687287837808943941729444166247038638749021727039772390689067645817853952536044253389112694649190343054257700307736799230328117944120992139486274515611419056457835406738521566218672784250060880134820111205187597479655482321247304304961873662029435945631775959188230090863982544438527950089059796515118900015541518519365529992737435825111408974108305871986874537215173274489033696246585600042741802109191824709715777699184900989427355343486787814456996470183998110117866012308999605021213467599803009662791774741021770162253644167575237001184708548128690178348958907527249532234072205698553037219019306309875692327733599400146704648650490007621037827303119419236936066523671955728140119816727989254500658528880018601423437371074409107670599346010916318021678005297975228139307612756797710246012926052506444608413411136188146146693938924997224753154163947568731661690476611170278307402966775794412987487233756521920465882328648833240783159155416227999612980136114046769058716366750494183587646336141845981096407528722540840493823976104311498094334158850916278510418820063607051809221862399892337648774540481384350572466997531920369795850168208100515332472326535808249187881982598415369166163631190243481828054288714869827485564147629732536307401409204536711101328937250729189978893340480213015938224037976056407293774987139374172143012031330854522762734441116890142446606459645986257011555085365474119266597264499479209100302687618271746861934235761231650955436861734223094244175857436395794490838744784741700178799821679246324137473144308705647088775764494260952225902254191980629552055940462640078888465284176941505917331375243999169326775038195377259554831952975428591699580734770582911937733913679799017656254872913048069585792684023036291470862017668545440724604291722452707951804343167539663192757296861998544576047908773596692443421636369658311503318146236164045165165309319793973706990178290407968685956314364378271290135123013387554536292685024057016460582169256187855991815603436664706479782493483870225982039824250694753621393851061861181328468345452818201215552909926549455317895862947458516882222772440326098036686621949057277899319059998006271159345145985413296494310316413522540127056714200599673074364623586904337567590737638899924999544044526632575238566807587272563420078373854334475872515439331085047417859717920355736789675577912357661685640854910192596548374817440609111647446148272435778931254026240234006091238412550145028287888927488909493622649658343138635951028220344411032815379541895125160958535358331673489271962846833576396383233138801541794244877378764554950443095081042555104958205734283128437431808441642771596744886765806405542911686126286723505133373107339502579563912491561345238634850513301619169289206526195253569769997582126772449716237258890501194194380602816262986418207718873683845756872312047642688973146999221368457298084663769646321230244223197134068175404817803483366056205602304466017626451017744004770197678705207716955255010612513026079927221227893928955341999636572550742565214167694555538305476479450590312549843521771114676511133130544589740176834739785648057199827334075722164692409530703356656821119887330379585101749537790384118873622143783658371949513455734891031281339540086400489741714756264197706031932760745911981850525911929945643368624207515591089520828023346032666771949588971789062019104142398513223563450176941171042926903453206528912976944078776810899051317533298407065323929179635495258948025238858077949569288939901101057876573073117262199329474993916328648020249021987662461518330634152376779272266729270908015927626815617044500003652582480123082267387828753860050472400027471701912761799071402082319332933018579271724129377573529488486828286175638797850203463035423831753168637831838188739611139664142271192890325176664631324818967510253402803505810458837367666271419397589999647992347621475447231637350243726738582922322785990965822737714342252121608875625411609458659259252432773380591387790521930355611464997232831764252172246632992260939316078712919211882028611708393814265461917182279068736637935457324573124645289286627628890055850642021431500853037696291347179801007855541121222396326777541046603802022663738794871673410878346426172104870549305124057090010368989377107558533220451349250472182187617123685854448629116933628427250623824659602207018169200386924608997648237353639370330606838749376740146890911645383727214219610882886192291303550665424809541911403335947794504409058483670829501698059709169220911003720977109602140208454704633920871856214458124285210993591638491836686021266459101893558280561799761738278582772060656376132752764333889303267692779201802868089007722245585602482139297403242520484758751196621484816603973427816226168561467089261609374720383157642848872382908870787155638030438363873506219606643277094984201257342202925503046422881031002975581653496895600395684167106077852724564775550124984419511798045632465901563074784381870479228401903736658225357496228650161375280953703314083764950537529810471638374672251742483289004779346693512737558191241445049004738996863532949553573011680788639170568541055611544902987977721508411232444401033614553785485268687537246127612668607614307354853940949655871365435788969300185614980684138442433177989109291635056105215945965585029199075649745978258029997173728851633526025522906170546615132189318181049562373742340995719390028561197250285442919467220323557476445317976039323256473825836155432333030638417009103607270077871711288413721866857917555465073914693132896019289627631996230794758067410575230374657527305064901394661783079387742060382721516687842315544713609737227926523812616625855582341395446581543201013563135402092373994513655224417464875335056180866901684050662476496829210938745812487871564661975910170028569302127280128102115897869526835178438548256718244994049681356603955982753598130965448073051239832118565030386034599099659502336765150272824203133172722830278836995445338568458763946449523581436059205949778053837573920876996134204472326395780773007264028436088428048713476942230387391883649530013605782792881709055376899880988261660331031144670164858598443736503290442128692317757790323201990855873769121381754856455730166767639482315812324766689110583670603812254919953340648796394726790996490279090789813401470313417134562032871075841372782446957734255669433158494114224675375119986250514099587349543689464077553460431439641494942684239726849644674581716292454570684037373601367384990107165599841799714489935174747394742680929411544742546258515406751861474224809559717241525354635292313936537759957013105626836003923032858213442453225103055326935723102598044532997496012121475652510201374588459983892717305545239018566042724070598727705466799237437683659421793204015050014771296848591461165649075750554608009427456749677908296970541964546119847508397873219985768399227070595591975376707693893747337778152089665414965611383886492017430662450527212019942814822141979530697627345908429656203062381264808423300872357006399520023373721902812582747879255418247230128427571002404211867670664185915124434146303418174126590344425861563653353833874014752676323391410281240689836151906975027967168041230524367108422615521630488842003630231426104494188289018984921194450210196685798227662570257447523849121782514092496484648742822809828562951124601114767609067321027535979218571880431413553627481056387891139595766550269369087968520712792072384589893758222862386871014802531122333595977205602951886448717808428439522471438211116102111360959284449406773939295425208325647603656484973553094681177070888905925871622962758212023408396768998435806104219136545541415137903379064358726172421742456550544457477453595152101434219255408941278219174786455382937061751427776055081808542768972226707359626357440686958508871904851870593818203789040364165277163737730763531315905504851115401283332263868333119619006137536875074886175184963399736816675144704513343219124074654406070217848567997873007413065319508593566081122813363149942682601341485507569820257574478621047879232943257599706449132644456291785248845198935646338458958880242566123230590707290882663092355383861037824703777477668186327736765133667589957282151368282320475434839440362548700789594667968450161963460453963237389868711003421201161121406079774301829332262515458235349734098751200676850531611008879889707136683095803655681461724393686282955469944132439025568073754108656147403220000076737430381348358291469289607299054035439772856357888656666655285954416956357750360740349217807302889637360803996353648613739159303072847988568907329247562353199162807979024421493760825594063121264405182281109071441651643380022481000939283053318127906345107396060100763878155615768396673556200089690794250896573443870183724760922814440538880903039824796883048376820212200979516480132544947455185266997393302246631424059251754491946280488950851173397812957651764577887417174029482733393087023269770517859841173322333635772413536913617706741520005544927167648228249852012412495602491331378193081425432717889275594387462495510652639334030892141388801108423200491302823934448172319710202492343646540555108205854443723059249154634585431049506649151901874436457104215296807514021777818978096763740820073801393740171101025772364370759147616211424760457037392332666971175379073156820441920872179401745314981034781669308134843601192030496395362482261377532176969329040958087331384705214772013513376564497831965371073360017649163292080274156560977096735532794874768795728650738790047394314623913476906564893535781722490378004608237586947488235915423867168744223178444233920354165177661501918215639874047077617093090563617289233096611127685354372510072621933444739124055717201575127738175647790669511917570916479626092131109400863463327129786933017407496891614923913516235649900459653650882130767855302278978485252879822599935128985873257817676323112423433001698952184524750926206116019803318669844716861228141207293633100810703260315005634348158800023536554882373749765569076506501135077042929904767964013218901133375496200740873486609129995684758899649176995409542561586383907170044394214067210102322062471774745568881694534598364775337114573984280939934022311679248569686219211353033460524133451548838486849904793270002072234924249454451437771497904652481131026839826753705379636878361276994145936595481854765744233201361494937430041109247324109110860524756854700858372203005324858078542303942313216815451739598931162760728800334081958732459048801172269808384073611871786468916247660970558878795861497368164916288941016931972808622942916779228530751304997337198412945733366792088766149052446088772619138375218818589661791130052959754712843169190164067952739081694127908546971377594770320756042448503278807975888931524426142319533255867330803886203931803428259811328183478729725034281422108113992810246469108359733376305631417474551918315165374093257476063805627478250988453330127606543110747247331512005682604994926296027654851739644810455943072519466133328363200143847762229665481555027988036690741028020672194735720417944103565537992716496960204099506195725722533569765572138020810646716107183347501971116331182945957511513950666590163421780251046587096963666362805021116498943994063037017693365295948535266951895651802200290990577575446145404160072702532230245124438622602651638597684971820879375071487493563730748040588143451308095176909415270397312246664823976742151782629501537434971480950048885749989782225721016372544559574217041728820825432009288470078326264275690119231399061479905311168822760703379766344411458985733923760663286041401272762781420045068343523175975925086494071728330335536013332292968779301641061974002297323064224475101611599732220744893107986848146642444133254216752485938309658045038220934615740284346131749651325655461872782154154430187191687999420673685568609303780517716173598905499267708882585720870835338185696189619580263562741795846230674019193044516553024260060534800205091717539959201195019905815978939114351876766994947087576458236982682239545610442778370349810410073707701352735048021245813535934678721120023503857624978892276303216641813706309060999626232585357946841462329571130493178502940911024069206709564437079343429479588961639805216911815270916773695674487956657772470742936168280384739243473862953410683286965226294353773440089147923070830752386648407822496466630317579399858990146036545373806019958293150798372040048556478798123621657107604143591946956429207801570618666137869516608822885052544967094367502670203304895160912614095725103145429470402602288907371968684016182923889371265298698613980022598805033710445323989419294482706299478544679725820807438957089751167626206763182908971635550611896446719542517557711863950777206953373197096916804357792029570066515196455761460785934002782909166746930275108985250803505531452304312390651682296589122214487805744558873533312106742885520662140288792908687312504425085160773092888665735163886911752802845191582710419035618211944641224883372184670653488668572461519658721253262074557659806227147645344126873854157664763750450543953240786648247479380348238603929089635352901776372804451667764092753851400145416924160499149264543019021548728585053370472410289322377127335649463472355503281938701223176496093916998156585238463210784181196493922389941722925986815334709347472580168733055869387153450394706698051136004468915278229121142508471828232081381481997880702205209371245790975627522133548700740083808449151599745408065931591603001925531132948148255978446959462050132803255470598787848901488921578352774924458126627584889151342572208557274084759857736685753103895800715734046995319844018363668758042836894059294859384530494172683070659018003812052071615074386689682697811215569662259174576359761668688703681354407062291600365779501657611898670456528257306157195346475106876474988819927603413227037744600343922300178709153481805044688129358912959264271700260491849217719651440312718599101763498531998768311002572578087312989673344515889236497973224883822647532634787554182686875277902849918196053054353164553527798760504624348641786947964861429561039753658551205260856903112470518829156884355266762474832608013688350806410475064369081061348476770777178222094828136957765127705279536888570848281370200738784076041529046270815446294030805500798704796956807506974472291436973660323825027587845114179902046159730655406228977624677264837664657673000862936280456331213859457949931600235881791362536410452407538682504165496588827796687370136641422082246886141419641405198377742605302558124667982241899007903798150046160990270313753427457922776660734703444516196918438515888674219076583405937921791153462486326476333042099790483210883181998436154864597970164757644304996241657839383468380487404753397542685986567656828646097312766601531459238710925616847826741325565759216743077644808856706591766262457563406976496855059863459522038704284311464626271594984739843046284587807619612449333266457221918421332739979810822258531390628058282727446558186910776579385510389189521739245877065649463633602537594630385397890688052692289212724387980081336882428422529384713833585485746940121192475977469915719830067339802345131968946651444700725616853828999448873749646716426741637030609489110634973458977763767095655431709512140482463804159515399702751350197410399114401149090909965270806096217011071674550684236156048352684999842384530052554491722388060173165604222050935231901052908611784271974539121985798236878214629978413684202578046600162037487153476703588921737496238307413475558773026661894956273333172287041911266316467862570460802682333714510741308893193745783180347768001665248710473685336721464280461787018544587286611880741205589834164899374076655209391525115097481019498968906017408485881998864143282525425203201349712283566533417248987855753533162661506244023896830934228790088326449036656853337547560437878814610397082862957079140577675459960397484072309051185808688064574028701599901996873316292770348501641473275014803936205872571374728756298329149523848785465054343651971562432933827619159804222566398261625301461116924212217788475490196499722797862998687314112319234372302523244632868765876855650858793961044227659100817478213101437021477805094174172647450055336864721967806530902737672518464797955072334762890362270338285308961029615718434041917787744808605971247668348158349037572905530986916351309526489976978909928710850417200905080671628907626525641212414075173949227534197429237370299928946305295776642888915957381682354488966366507066714348303370149983929831491858963962159177678219607885636460873098886718558123115807296963426341780900567322596197546747653069112729780010682982980241772477609944276133542250368944246109384795425567840525938648992047765564706530115897143472327817807069019889407525592107597872352710685917759673906167323592324149031249428155265296727014697540990958252875805760606994110990151667578592576554077560447726131360322718813527533358573009235801215146665623972580477965855555945603162340939467590515163657080400784246389284278168697350718803020695235481752012534651382113624093022643665315407767248171807606241293865711820245134351425696578332536424897346407368436510593180724921171668385029708827785468671761854044742299000965294532919113400119366551250559277630070590118885995760631857542812243367327383259496520709920526084899157377943747941809659536320722797609573443878967157706129664700344304445147387584618393208578664424237533778319346843888639886854354716920890915067182042241593799065526343191695845080784191814165370768071561980640621088483528975677761023755652402462258844513578279202307518962976329105288741341733818085760180952458733720125342653667685545771610572382056523632502598671965098127308668753788409047992084900025425332519028262820009549088524179914727053476373504286055459189746227452001017376870259176203512444086499030670604422084262132434404728192012166653767773632336378526201732357845917852052260976405375985643859073320905284619344403660167028840942279097064916329276555445899111003024198929893844812907767307413166038124489992784293392986420189388570492261147041704712135270887260800199284465995176066779851569301587525151225815713318619801392265818402562643949760514920903576851353992351703307820625307954920572944701743008022564029409069142519990887956586039162428799056978599869471151393594096027758502664008401447885933039668291667337815112021243497026034346374424999101428350792375569011943782332670790228129697413193295788656187313262759961794902120577419220519857656611724024370161662614251368897092635024536774417376664332636629750920029611190036402458381610982934270313315361655774422654119198609982444532031150163759501815048346734288902986900516970590422015492789088546729194334100777571779685224687800009736006448501111684048023353536062951705419326239935267261890147995663805363764007684028231275677898435411179701137864357249475978761318436786215672479665196028371793041228455891318427356654380586994100731436569226710274838131351053531918072719136693878834191380869688958787989003204256023144178375097432956618159243686526728349244421976080062779493029733137156265965177838995267204219257610042401789484801146892500653991846063937254906790436721004067635321606988767473208724434495205532945446118809612328300213780969488259761492144310197737680593438428914866145784332721022674344579652318161611256093532173860624405193035094945493317047672614057952542123739735973977328700488704847883922799392285628902561622976000693927038872173747408008747440403599603988045207106178044801868514030971642112378110171924129256514718024997135319670507346210046156516337608295586913696926021575803565668077744349124816628091496936017924975432253158211282272546441368857233706244667146787691699739097969333757409403359885955868236994545348007415826393908620036361902236986604806822807074355328313737805192728202861074331736595118730407154844440577550498337705835904291964269172087368305423231072421799524165475080138336734313275452890486689193446067912838846616107415353521781106749067252543733465185391218323601179709818226751694916789968614258612498697896187025712434175864867474719310700274057038450578646608279315699568634753449334583293721949020130346143458629430957333215499509663434118691773367273815242292028525368253446744701908102942046632259549950654100698673054589955542705180276075007282029298511113028235803916468217382051328996576437222420583786740138485307456700678573108252827413307847354937899472873243778929435509990996265196107414451772047775584958581222186388551865717197522577235885043542650422003958414261857349436894309394286625104598696285450757843856143153815578229146469669526131204973947125453060843317413619660988352421540773109303141203356465281515241325318390194375804227225387282908183897855421528195030618691713015475611164249630686648351432611909331329401009166754199403081273101029838459096551566604751527022886420683533141759321749390426540009501664839862285538393544761642038184907193554587487215771438977594972838302197036628715324694729468195866911995845130766940283812341406477113819677582310869741660918038003816495873259844088869310084264948070472585359372947998946092259717444361621573860118163586001737900803123156041250618888678580897331029371685778951532989394781218199323029407086911377661380115869155503388256860350795177526423698516102177223669038956156371866188939908279855037979859232798750643643813094673558866131128147784200819344218203305787898982063045815698614864680432257672525987877121613047122132571913890396628463980943865618874901922437412452566595647051298611224271870496348005004175380488765484871868783544148906824069630822948641378662262649970225755438277315980737843409508269583411333639152955567986389964640012676430090840061649828925669439897223032174776505830301270036246326516138179932183582013766022939436515112960056208043569047890289044293433466481480735946669495039266498697417413296924508385151028617291029802039847877864934929652634655286808326173543246928196412086198724484727496133426031009298692072977859105261472151888348580461504591586083479986457907504869821133452899165133837812894357827282519991725698197046862527167241892750967670137734989143211204904680694289356270510283002019765939645734390007483547298949986867984135164162103483611186195908465843209700224400410006356947526285347554652092453725705422850385833830616206982642496045922273865120427680720242861921294695612596200962384761793421243795418143360201070142245392611759683188937725408970164465013449865127393777514556882369684399932281731643872982979961401856604563882179196347142174964960676619356004426352283095069548423766632331445000264782715038310559031958451528440524575472980235824444763347733261246671051522261956698661041153897793192757535140792596422828947899648128022037466145449893568414276702614295153049364331988933155941850645224892259763732390666000098867089440803564476721446716042744552061076988610962205563441758640057036625772798540577199093374588976485313551736401972424434768748589543879737542325190948026519661206807455689876710115501790930333114037294770849536657180032273539217738883779975516813083824726127159092618679123201142685218910164630740419020907004016624181552259491089327279724688397425485800399149744923289569051052579583072648856978322262378572001121468267023977102626591628704671758465089139873381022311519808036354026908450256769945429737773285864529197797464781788966665784499563866449434266550670609929643172420493608003458729408532498207055096107325705318694370147987758191162813600261136431742617959057360240273008637097715415604420218129942386853319574812060297117460588421272672219200769639252923653838756642403778054210137642515619673006392675227657174882813108006144595277041292462015547755173643213427440547335664952111754997242674680327537745108099413177885982303383874822779054648312527719237640469673733747790022996695605524919638962676513518127741942889725271691396718640204907469761593065238634670736742945642019145193124489523991895470644226782273713098448901593780922469353956912627960627937113939495468365848089133111690361708331819984664076637714125439338357249670022643505445049918966983913859723206051984565895836411553393176813707327829626219513068213754351431439446169308858637043578626971233156549503344752919731722807252461432878021489476270230818984975178199185245273962648133378365434622217428694948328239090807689489868920483094803951048771812355000026739605227986378462094953232100891184813431656285219748381322566913892994460742395862127952516480588435096001782170160009880741825570257009793819829875087346153722482447268845543079921127637253657018493021464552484034576918703662783797334917652749860692894604296658273334296795351995185702571456344935558919185680102714593509858595076510630565712322183036288688156462522307569111147020075695225964780589329217151166774724379393519737855252757533403675536287601151296423631427067367831584659367931633347656144115208208584673629019749895503243247432527479977926269793494782973466799996895572920450763766543009895510467884064256652152972209967303217300968861833932359571301374557735924377979035426373197106333801769566266718131249242982636166049780666093922636153092934030797518711647302430607790269408163700014078690538625246122691686960500874510207238225105487950126298062553290167433280810364062856895312248282338398667134107986414486330857013805874594232736679420937355439240346052552553567919129204745394355774204360858357287059752366508279466770797477795970512271636551888072078090157832708180842116317715681716291697908958660336368565849678538017192612738849357285595512889870397888410891483478684720215982664884135165850010470082710311436462134404676353286371491867803271201051142370287815620280188345020091549790805521071687001810518594061424693524730848150760459629291221996294501256402685735289954322008472544194371542325373162225472596567959158439012112331365435182080784248669618109991894520368778179579908373143246258487310969182446175343894355284613903866083320617879131910939496483756123703410702723405183203554711176127019825808805058102739770425614079072656337985424053373231725004032880157994338137970551128015410557968880782122418542390908362125230157477929813781722244755845582683064895326107413407302899236840020547120850719088420015007309329681856167660376198229916014720499491414145819292605152384190188254290072753623789178454393356510391445926751982095834946787612149136308087794127447882537092251428462317749328396044417109653922662119843570847379856784408452283455526340852762229304607776167460693331250232695339943723730303688386416387402671170036650242981284508516592729433326975753831565198298035376514093501256397770639039770464753196001810664936249643951015375684469988782770100690103820312686984349657442405551868223607603385095964663709843122164304830169154018584310621269731909130665758844626514405966328419988320298785545613283183042868151651781141960827592328918917286535830223232641852447943852441223040197979435084787872759817193776388814749375249427772037888171545671462851952159741482716513154813556543052937704116057668040516697372436084188830745492548316575420944642625825297757654137565835189890458585884297698831663347637110482020482023094297485902154072145693147637342700813830264645481656267818547671993648845120507447154967748075627047977409911824022290237002595187574099855829598683064820212897491800552327258521549310716687257011596565971582738109661661865756761166282592489928515612383910172259282017654371163759049784150025344206350434236098332260121276843101591592398666983580536198790859727315040443569616036375927936209384437522569377082057305823339821395002994193683399727696051253427021256944746044648619402081497166076460990545412596832890835026041977093159272674154011762416870334110496835801454650904924130506060506416344912066006537696122538355693344904052820561516342142767602196702867309939049917026863829027467310073900933214802773746712125650467673522569122460139166488964127510604724626774617194500760102636254540026583806848956886797647644247480573276694135445017986466603389841479655746998743727348474555465515930943764635600957512519969101415969610622535414116613584171567070586235284337940838804037844480052406770559573403352916522086437547550333028113294082967435712733001651545513105319200127084766604915051037098343437118583936155884802182437567704914517708842536211872653889131407628550128665217779218974480421132663540210389919612655853341050574913695360924180995354301381888455674004768110466347626161845697613433153069926407618220385393381719020224606427065414757058972362555826700790604936737097182124616864956041549095834941987784954773291922685914104200927169011157712530423136892545816442591345688450826938037729138181805393569892616445494660232880891630594631875980439128999927201293217736570536463544744635560966250201633428419102364918328709255254962942882281053890432962961419463775291054573477419601707022259556113436856512525134913505576199781667022191477900717301673459882274657094421514357963245084502475667869262378608998507965147879532624041991113854933960898635795679488318877349192657566818851608305086580819499601610212563196226314874741380741483088894131882090470587615005324784853776426325053459727822973863196957554032433478682611675134058776174547251652673498110723075892528882653888142717097929559095033037618023917139685238604165005270248756852708778623334985315981293065551459097600594363861912147885656068971366057313018536453961081170067862764311323162940119253051097881869322164180024153289206407896073090222461350109047653100791343620396088052966464903938602920991671379854414089354262366149816537626329869803568439533920112941037705622600503556583370909923350770352063819915092632809387127015818440725214776576493722046748367353739862279268983555840271919900248474435721781431056174214457115611195833054835704761080181073939109298285425171239267901719569824008319568716045016750944909815377859322692786624294697098192554917862871776472958882987680003934999936471378500006681115698275915092939771684217163514218172171538205704537416292779502688309721740257745752605198369607952744439706460985633037564135336927118511284685377043763310354979143622392409753646145998664433792854248417650164716596241789359323915465039719620051703135604298862999433491224444278358407848230187341872882108635166752143940999252349169988307928765085216335276237592755949784378836334859590889378812083586693915652533265945775641090061831511735077954480836263732426677147329257298527539252456437222070372855973908909116626480686583160091072501221542057207984551012499831766587300321917351661431050595811436159822701744826978292568818857731243842735402328545472416123883403116895575647129832506115840680400794333392972453513701912656782990349697877143486976548363464047880008102724205444130973545055900687109748781434477403978716592516383373632430518633821434832675589828835017408110808346481621577745393499878643351190104575852599409117878433649627074511385925906308284877766377151491993522478213742566857040015656737510117352585391226777182498488768586520139131993620311272154028483166716530025578625084822276981972511207376687908780118384539704936001543350354826108841666541467470788641482256273525519390042452817181829126046422853583001187108084915242809820583592336263711557119075573243806579209925443272718939645934480516701323936718554563692097158155174180513760467541598768002960506345417004686644323821484462340630886223821800519250713121646309186478947348374343949423605174718991966116645443294497751149556526543131055291081463944328147408032619177323124781939220053270739356333228709761506654113341802404836703826428150487715665596591050626463505209036934953609277227498223003595309374144345722640521269604126300549033589813308509357404344300864567535231729765017491255050865668950185624871969406806326717609580313846119976558582504672314157879389176001673417750600981256057747119921565988774715972569220769750686347958268725648371036835935646982941506299494183141590273944036556750818223182566576184097020318941386948658382730314151946392401534999842680652456442275489694963353801568632129048111584003964077991267479553217320581939930232159554643129130932024885730815602711062226731430433359481151859985300421936084125048002798891089687994014054419894598506543998141056960515904794908272032082930105554144576639522592103081291170363922125823599737301939117426210230104173509873729252453318437902861946761062077224724055176243633862309390691892586060708975526726778970405207825557727994587432899464777899439030453199239787662298593425523758978916221500960865844705371777909490595961013714089248814406262328283758192229152212112671725260146166175420048015695292941791786741881476149277299911635040145302006611975873635807364991737653028416897036984231172634159646423747642095603989952434902109143235198505515345142343727290725075194246657703727245792814571455580145310601734256014975473620050982154992964478810847187974284399172526759098445550332360698615728020634425159149133139734573321243318746698171920902393741977473840562427409726975785894709069247492630971963306408909629754669663258203811023420274039310238816477215111865897058242468384391575912854600840491435509336090555149817980072816322063515620771176319965491761454468098649752268076229383158437053574525746665456486072418553616366253037838668213565832224193040534375081459583258329924644731123204744184485685186050513601263420219307457850562246545837787203093054369229877733071762353142530990682106479529303952046873616000287207628844078925672327603678743185405305179056782074219565746046533547587777403438793521182731250338260549573195042352858136314640380150256078182884085265545648297650971828807657015523487968000689390990658453661147790937200445754012444442479267315471636499908715244682428312702787044817496908572769102454299709958119057499572187605439244490144831594724218697660323428120425522043039946955718314181023098315661488550940536119467934890410465772878406124469941767440446913844140207930306523740707238437500961318514290808777061704585839945102461851441251488640323684750419700228207947992293720861582707308286920616118139139474149093001300518311333127558246107632750902482113147783374933851283725401724144476095291372086225538405343065547667854374873517510114650929992850206938135440285770678653699234121061565154640783283332628212760799351749404032823985558791807616887853364809746979780866012642154596730947220672806917904729428464659943363050319721266142008219951027757217039269215629322342449575214427102338131064300985074217639352984351562035278970734213081750917887754228144216411549867862101835367074766735695337468844344142714495112254044035431871388872090386921171223885724799295281499575469094218359229736212321778023974567044369573238323538537691979948202035444200849603711559695692279724284186581009762603187908237173628937862439111805187908044825416904423824862211954754735633754229999451881047865445135320104214871684463874422600480162999480463262369405573718195092369162450322774546564614400834910504221103505668183202795812773961107612681028998874587455448091427150539975651320178539987750815293652056593867599503384605084763641786042514118592854900032382804422742705318900644119898832820335235823768096132498537864442044886584673855801925780797956071015509780746891468102971679233508757278858788685728157564486104677721050379584074799942153821611163305655127513012579233512134574671590881347829235234330361299198571957369872363194725194903755606304787039274796893590087969082925686111442548888417901000525862555334500638541329221466155244518969310794185934801069806986110906895965148729722597083764461785509987407381235264361927170221417739979071373335960185773824049824337451740726698562318800473312584168058879655076385358112655804887242402517096517308766301078231989941050867795743066272867312567682122464817270011350116341218635869576229536994845016755136467521362035113375021620191488437378391375857946151257234821223307149676741158175191833988227804723664425730540130163511092933093882510129495604545422874573085262863511345334097229750537598348245758899547063992461167518490589132029920163313227471059810233973145707456242401301016325522129752684936597362418090469334359553038003526187482863530073736090820009209581036977410385362406835164646236043353678311010156884909479347971110217061715926780617247114758421781220733021598969094579147304838512780144513658378217813078458577973456568044066053512632414058152167434134495329561846540665495869324162946587689297907665007096767524078116770859690527715393796902519428683763476174986835329987360523635238132630693030316435676325806195937453953157313880270423549770632930536354595197141955657108537489880927540484690037093229665345236109807295575693945291753099974343560148836853632812121913939570701644527085174551329339558168031647305431576110548746018615285804878802839958968164283652543619648429414968996892851369880392537640534528667701935531565957939698851996371786735777936193870580717989973345244018246710730389583070263255487990252733821208265321885834717074159358071685094122441493375788301237296647259422354519590011872193384604126705712667840028278618202696855854709435163429277965618456388782915066622641075180445143521537217876651627120231899081574510032667228912548795311875756413175494429398771345758314427380513862526244295689284494001084960930563467919132792193800642159517723570977165077872289463035775968598323366991066242778715384899033167957915966704024332424250959419161361813756478410929176418413325929058610291789602513852152121042334798658691085120047840090703934100900276803169788302689804801662499665353127484417902566009340701192521689785115084198255216265866063960254389070364365083014181123740032429890228187390207177293444118658483253161851484375068401424023073191214578052876290700832339627219260415529505966072249102667545419387189158027065282855863354825044832449978887149250791234740663587930029428200206721272486626750271497614755775600861064716276019995032180315393038509541938596658276078044734814809986816114615056529409725079231876614112890723971583088910914771633622065352182972302537652489008249331822972967192410779951607785377665298634760555252598363748320276944843856079643454995043013489162354292948911861409704521997047286416049208469173009897485070203712991868081659127410013640282863320961428833424762513018820052079270219159487417409582507317467635326194316386729402865052240396108086967073004978201779149688647527573289487340634339677370806610754616137977202448652722210000268967841069726642355282929512997983510288364513629687529263364757337261873795048685210922876267038494680515198557165369524831859855159373198375820372306318256235583509232277338855504359606867106960550685301490154200316588275958704081205857357962680529127146225139097458794292587210414689419384588503677463750139805584729599888221490246098538303302857901846765629822174390323337276041537325468104127007641514586197981892066625613979372904400699465314783641429014629699527962695691734236526094961241444765376345878952782969170897465502497888645826491519038045620786518314471175642312887462950056293872387888910496056894047362370965660991890523641131299259409227431922056796873069383658273885595083511564052370917325630504104858655212038252431619037006025044403811124501211162556916749416022383485372313327249119718206543946602208184436024170533976080031570114524114175905606883927136767826524169496848378466760462032205329261083290352351206514898120029462842398168214317701730146999180729235934032663150274866153130842995522438909883505819740568942584301916354571775360822927722874755716623511396337933588371780963559020918511309836813709936460082819594510397660244915390191525295890331787768390304432600929175851656772605801723514507238642437883024175491300195289381904907072278305408273479943959851242851426927743325778296063303626473053589088959839458013141077367538092503124855076361855594361466840706795408081956135310622105634958719357697346874738953947621877303306009578188471894615750591262276118794608121483614893795602867894428435859074764002850702934488391389302744472305306157934456729672396538479660608409999647427538523147908331703462270940561578509355850022280300655749034770102011937601208331284548726275865126974665609464289638970319583844561714028344663497963284948788042126645890708925614298801180496125936275256573936353494876300324621579424117096568303719364193527192116660465797567365129602881455349968669539325586968643998631374286280317024145834185187723721179047915339290637695825834245657244435040561808698677951494831022772877747020784490375623033877888788094347444991209575848444200662228488450616674775056859476589506752490389606278044509400487695244810816998804743309682080760418333545605005935696804033499589100479292297160187802809479550933844062576559806116652745343399700730042786010781147341567230409282327578639157124901344196546004317711888206575224872689745080184804492097316266183604863673778068041287897999145700692918824944752121791746442591740666272496366886377803547492397831220226086655207105660261676298860560525712404784877426659338282593078922156616206142612148707311258595608121855760313505024795128550245442851182602340997676127036341940126459597416299487427505941409149596391415813732573799818861488038924469734828482102804866928997794136366075832238601005050781696214313316790991660587441891801616767459548379909023050157384851909940339311887351876684239606943560856443333216968163579461922213026328568492473745995159471244547208146926727091104968744872063004400761807255798503114268376992124080524491666794707803304873625117861229870978605862319350390874679057244853790420768000440044850383596500212528895135945324325488588513399057185243763745267736159221539811974696435933190408254092350705442528204108233507150360266310081108567842333793855184014485976787553078658929453082445674088580830995502729971311502679888219563539018754599855264284569387189804831361372444583420431980988961665567717474934982240175117991989297615510146380619961379314544583308526560817542452097848173067771734633458633401543289738877022627011727608248085913911312227325819495488779209388368141170894615412227523652591505684056752620858025340871399301420014584339662094541246995086136328841903111269563883590451990279739313208787542478498473232607797902976970925940793004059713484406434099310478325324391180782794488500933480650317758076655413926902616164621377250198050258844260033655477191655513447807660170507946056695541875278440906795115629203013510763494416074333362800562386115128721058664684364606854529868617409826491316616366524413703286831557889829206504040205820780234904283047469253706997680440513566434132904641674378774843503398642435891914608987989194322722552480144445143220412160415556205481145851081089147144883070195582061187611535227922342049187709003528987131654819069709325164595275455717043989067695836897319197122653677286378990512832805504581786470373596166121182453152939034746590682136884068601225288215999116438507478589073794175829004214022938625832661737283083893278898627779060973084324612948412983000921612588510604921373443504706687207624533404615315906480479019348186740422623829692019963249254711501902514728125458996669647265278827946215688823154336288992221391023063001344920781613083204654399634616774000697582507771289723991949281872433339356934705479716943313082872149726581005775025836605358835937126043954534997971007241179985306215993192534094677409804402782837537211389594182949028105189325115794668723631293787799660026356020374224634876273671751936074353495580025092706368099466971087866890609392978619699008517137055958505330897416676889804646368152039189950038099235821279438145296386910313910122928665919969212154641849614354428035265356769604306189300229293861774323067715367596653423488061705497339367735004534266257192366213649608509021878677902038354789276562663549244595358965900089396689591000308522427962612441804535051295117448280132766621475170721980512870068163921374285365990565913339237920875062058395157795205031685600663671915764980885719260135037900560642151461428082171628591165854679441586499533802991187394412373296370375284630572574793729802733436010379478201822353229107724229755024019087525909425767612861104473340062990720278679797210415984725993069471064341002076126143916760546548127687281689248008963321823480491650323178363935013374441238937080112363040514404209520240319834544703712968032170094184626708110842045323070890999607957987489475224949329725100372993190629117472580258195012599579733356051189423967403844907749862327399830830465790937972536480351498378586751250084722618722424588781834004444380158907784744395521571751886804311002898833321797652677753808698878909652383967619298260255948969044989879511361302277119936942465569710249026684387359868654777277464534869616223479811755246990887475159320896830915755790431199910648113431038447810824428770583365209689859529527358169798028486467643515130769750284467838005942395324017866501536049838238538674216239125578317452429061530695070074400397422895435397167811791880173917996557927383372604042907356020226285509427498420069274636280466916692840039009538364700232976880207656571035811741337881694420263823688770257645074165645757618551102049763241467795248621981069087143378688080155217294026746201807381760780524325315377221861558422189871153204570499770961484153217967776613012761339877080758422800522519881305288351983328769116957002887677195485333844233936407748108509523287918640790736464057435561363398900788193924829721722577427452677280951369409319542295390697120298546452494681337249522126543329833082959639461686576153392871370766827410000020728423769326316260664521282780229859862411624974699631113296209929421887901724197184817719794175018664126291582655151173313859817204347615099773590862079753963822166932944101896475797172546222876584329027494029695603868710378381673403205564448167568314849194247219094447236119128845287115648961326264112011328096911656953369155091318295097271639093661824080840066490379792116841008256734461104918167548979812728722895292409383561530826323156969241986764574437179549851605035807426434547077617859311689504797941174711499807107137229377562318856054684698993660321383470653323067493353096515558488158975932616405564484349695682095639761314479443698579439822074914902779886475786081891590658794153241762472862823109218079290134332773200779407175207862263034166227359700517257395098806680475499379535353948640771115892590625970461862326245640833915142420802543344315369035058214999321848344871378240851082630680138542596325372303516878806579697598711195958830780722013686875406037527117581277366212278572652564307434795066697688746220214403112456352583145062789880137162795196913403369655868580207673141021704269908412952627914669052292473774835318078157701851560935403168707200969025510064024549267685730242359349210143108012896789516586284013405682267891072852411169243937315313055754255570012928812523944905810845590395523921794308338145184554283492790666829514682393411790182858533421653364054423912813361139854714347186149025483302071662354796741653177299171405127860803358898026706718512597495265543854260330458607035262225184988319290730429780239486005293024870861824584170201451385405510079017850158987662169133116500011381491843093095906790604107667057801212117167789151993924871831236511539831701851784227779625453835842325826233795666128116471468104097284785812107400657529469282952705431187325923740606688653907447771261003140222316202912343251152774716794451475808299541550699812158033249270891920718270179934655352238167635541248464960544182705311806922498630965078516200107639023750661421998779388844514297888558000270759282556001137466419731691459629612374410594719814168431719346522218449664159419835048990007363472404766874080511728638055600908086452053243782125774582699443642496217627399277153210333396262997999700631552585173316246014268127100604170097001961992444928242921545279866493836528399725191330595471599275396895797418275273387303545987600523568138996416063201165776145128517432174953665226810241215210918817858021938017094242306899327876702269410347859476126236104510600862420436596056561510221997752163244423285691856444170365335546291540654892633799155040192619134190049882503508682105540712840714246984474005698008328065438954169910415986977280579547263383143471709295995584078926403899747853280288093960756444047589328906741388963234965628701632830019467681195132450303362035203151759727886696108397980932493796327202262583136138705981831902677153916682810754121949690086931040218886486370903612221777813142096256170102273958016428061753046834845005308932205067199225720381029241137550686402549007481638371792787720175936969025742792541648328264391962174900737435884855071530343225206746597947808312881542262960269093071745300032514824673349496273923881685192612012439222711197183561028822788739182539552233965778847275325157072663849403954330533261843376873207266596459997802641231974034617154160174984196324649618976778652794298952813538628717981647695506661443212868546166291996478938924541711735234932456707457515582120167210925817323324640739247084645296055501160137126909329951598098307206982597452356446016588772104640988860214898534467855632812766467755256906428680883786412476600001012237385239989509666654166528434137515153674550380632410631831078957249957067972326949527019640428582191458321067925229984765093113105482875014658527648784729588256443076280741003764221884409726473983675113526946321030198799000524650146316154919051865096432317463958698079135719136560699909481888865329771918054842674249617977005753527216053710675711280408797737639362407623429837801977510150636762352887751176376111429954897611229752961404784833952150398937404204550074909980089359218423475092951719873824935199292991004434951239866281859348694711494755873727251283112097515021217515210970603914040324830062373883866550123642372560613768492882963248364933933528729777067943260625993999750306445294235275591515654400905896500599417029773448190032091143429623423933576622902831047742355397108291952675834221001179554285978221647935809295095426580298086127387867863976059812210963050944297863005772801277287326915201953641395516531290328934851043382259534580070318955707200232979180740756699397664132672943114196981162904496871132436812303510706160500762534853540993435162836135712617656497266665663840283215992192625902740233154093110367550271871371070352923512003370459196817103176608207772688988016722721309257533185104685010216115023712226288858604356973951470627846137480978847793788093954238267062416722080618940897625549352229617277992700048103676665880880199976402252670482966481098874093723149291761801763815121011465340743225480206911390103167968708343338311002383116382343805283953393089488549191128753064772679901336937199236913908657268218103634713421563771720982292341906909822234079929107081384180521786567745814706316181829733935941975721246286657873372179991951453108448418583975864626231222110513060064842346327842843757121688587288780864713282861874825381816120645301555307573629990980948207169571835876234443767838728479953306713541455109115477601919916468530365681301998118348375965318630887394904086915743416785064630055828319024920306264065768885661565398041956801802416066399253524832792781393481804579746188587486593341796388967045533778748097167653661455595265525657915491358484512703275302115099812335114836460927320478430824478227946129185845995008728594803129198798402068570319630261414218917206462769990136419077976142621242565567263863762285434985547969003236146872790889471072484736223565964645677145135605462635404639071439140142932481128928872302893229327707376195584324314781277324380161693212661687948536831873985948090005054429163615020051358394665864828151586405729910138615727399304909269369386886641109016851874969862397535902986751261882006592834225811457142104344834388494788014305476595484029174966912674646884243988940081662577988984308793930363262209566105249359638384525341930228006544534044027693246376727622976223905895850882135413476124067311333131373870483579776360352968046251238593472198625928301041121073542669822794022216151596089349226108790253912190518726965688864375045036232035863871037642345452398437786427168950665643252616361952753875905334165736817861771595736611251598287746635417663327203292479289543546862764620413172424974243323063481133447336526724092449856210255998404217589373426517917953487867485265879995678154127912506488435154024652485446160018475044662548771961962669463764758167862132924879369719220708112923861370044740368395084104511254316071325581728610963906892925461089104246525029314816858896360088118497116867774368129005309382984556564014704757873672423466339000064171990985008578178432801527829980255371718619743550494369857276396456650350193292150147330584978118080726823978289651724957834735193567451947467561914366403079000541352182087522968875397451229166249423334895819492546528134043396664910354546229783644509983964913566667380500361521957648960801475193083392756608251536420725981274525079901714002493172046005486529072815559088907323858688249856766519772051757739921649500962254785846713940803811712779550618787533580143322959071343587685980705327247752024689565815507641069789839983806714804969124311042321542340077973981987676358486710527613515722138716145804881877122860299145542833452562780776708416882662710664955306794892987337759178879571743357011848277685019688174041396181916444612243303383357454516334425143770336455034298672897823444678106182789432785683036689526857643474335693502756489435824031323032055558536005554315735222660624447028467362883923379114779668017423841278895727513651137316525731470347453121771331776015465919717127913757538518730235215093026124752206329335970425130670335272623374702430379572269864920139143517057573482933290977632436227933647890474448935749889860446611220618883919479126061621473505350245581090069999133765443194095383007669956733974397759839383261484057253335956353075280881912217642082363234613728349868141368560666751942131004648236067170610050287190820721743330409852035175810918355049256605585131829442585724458299803558683601910092886062298102712710034259977459108267085174661319848373236606985513862687245169896968107065379842250564571515366931325732262638597743562828995631664517634542289015014368891450448617175179001228451728938108513916613424568618198782059058094797929868286800346959292170773561603903897482749599847694630926986387064350198301115795683598421751459031791895601362961658731170265953453254171066682843511292596446987337149819353182867623968660366440687100257098479156878695021088965170388860205530601433021486171852080852460929244361228767730400395259314554898764169591470542662914814512733249392697449902774927960880795820704657502038590900308535458073880689754337630475016327533680526450307741790832078659685764663100477837730293459939241024257057127311115457527701167964346288095449777112702860580126335721445053296478676801559531667863916557996236157638760728295165127799301500805142410592349712449717640681739395448970925732365836909660967459883705454293804836949055532029571657477158506613259901067868534135069030037348851636633577103758835414380216974088773760885694918952234333310259723692981471920028857924899113464362669846076942176850146463735294000318124323240047670584397194569799436703974687243266608412360880170186516335846644793959041512344403478274544131696248906000449148296004490186341243977556674452103730821516077036587034598237318180920178989764469471771739781080099119593400772260176406163119651939007857246227916091237119518224441039254744097709854816495506276021838316273742090555404998734174586134351211494556437625197183696904025799176661960804322137020576950881736112072508036378593322946688931134805834747098631902735650444281258313255178257480395343778029205775828745659784387126149970809440317986484870006672361181800049716848178709882368923179505501524433591931703950072937500416192340935391786222764444113742389861437941677445495972109141353279433715168703665857571189476193179927115408104437490049592300073517000428641342291326002390375661936058358242422813420497703987190089764573089757420691098421550478606158569407842013661069461850814987429389466260994695288787174633187712612988122473363292491369353355163037896218769819854275535842897675064438137084435940072643141603960142586743757459526833346733712475256314019306953585732496155182835204533033062097190673959647994578999053277957320648692950801514591513654917641002312913725212154307529853888037744061123553358071049000454552536221617149936382218374524220860712867697815703938452880306147400451419556346486580929632661680131469119726400374178525163106325411416763876331032713421722164956630661023967820659424036035001643957120982200539491832736644229495772954803898699062194102079990333855893635738912254919699518366614109833639789388510756896684652151383326606373285464717685551660114191825037514143426015291626009445220025838407385906055137117031871800524565239742384238434253437484743162125309208438889927546366101851183950565235787595706011885021092174522473228668497190319196031856452722770143885446016950162810464048580263661552743734374964978873863197179056192643645853027963376381035588049192116836549869328487209473372935798520827126678235922674506173470766400286062388497676140188608460698805585113940811151038989719249439824478266761296485404447079290185313905774370570669365230706443921920173365036152619930496846676951255081177681323567342050411092421793747187664596519662665177983407322398959635612996718809285950427736226133376428114813492769801772808066622451140665550323142790380989249871020279153853116207123833247014160516229677644608560342375524248683482614977144931807424360419086622773854801884635115336953218991251032124521991941266452513931018972627934584796899628566842004310077501425023987336042132338430375523311753684859727327742346433399100134373250338610663349751078540103405746463780090534790378667988085078836798822203489216931508610837112909490505894529528361949890503076508892828041598557906475758945532872310861410527392482658090759215805366241161169216441569536085806620298061358969948877839608469199485421026735584157447308007431350195441969215542096827854982071769197096275797265304652964166947024954242992967350012354564082776684074404511268310282904801118407213828720707836384906381702007170590031086396237557993854909984569815598407712037613587427014035386382746697734011835671413371089554279430297498805962886706106762358114677733489429973347985968048869131698529296001199546720356529067165400833270539851123221097863105941164228929757468388397714886378432247894226066082284613376856079904371432091285878841723808124162532000413959547526082896568944704551657778385628683265646355160204561259345047419113353297433041451488427772943494109091330507136879156218069119903170756396164842664333974550909043539677312088355437323739626876921648161007287556182631390409775351719371002423494283731225237310318147406925803194811106790581062482122014725124677767185944529201198646381794375435646276404834308213608653021590550126126795981900847902621321624211018368895667361676282990050475339120378590986056481013529621153816288899122342087667493368964199043877099155468924213573679939716096926440630865775221429897061752843714315317612446855202409462813292091349673296846225469872451220616257674718837303456461363188176228372481225744690171400551974000144829532012383871021485705001335597884840193292892110094446778730133469521285613854136139569411186353940081894221045700910634495433322429880369040208594504926620779503664447284987674811211825677054150178533837579812544026655995040229058634364051294572355368122732543918319838253833956230137521826372661394285241144226754171414871913590596860988040508666889982612029243472456469624426149160715949672555810931329067113061253274413220478644980706471839429986467529110557726303572028594120307367128328372887439199815876863809629371454244431324530729598739362362494185374252543275638408521690836069358843191069105267796841012657030247145343912221034163171578166910975329742085590198516125427877758754805686384659732148893194923298157538539589332305193149117727095065472396589424142836068159836647057755514062492190376213326722045842422999628960902857719615360564036982538356498996200571746437871187806977288200992156381678187967639782642988934475934992683050525832624349171699987320775137941931604503018752729583862994771050978745293479452337366330349430294316693541318336349573653354618905184145558251827968280137220168095260782860592595734723125248472646502908596458845214354380669635096732630616101335758593371360473622559266833758135628511615541344673974149057121334370773264073888349731065966499769268797853027965518443709382682927014535479342206119631816505337915522319735341003594283984987839741804232752466898097093322805303270801562501246057088568782859981698725166595548248673631501857218557942681171059712777883704578144753623628561302244639527461568641839037122133034537777155343213313806678193413278143756938096444996625735270471210153098036491363731801284491742593734946887291590757390415012654603513509654629223936003328031229064118318290196331890552314541813927302318595486774005409512325465837570903367102510844759148430248703391399409842029135072858842645438414992813044701247913917055370776281487104119345281953297495465991943502512378872268696009521965078447816112716878161057677366726188893744793444872649372119398598872829656995906068033566008598866532349336533392483542160563820636146960772264806662270693643029398318016330304796473512869191614656289670979964142290071814339102646158613944128474259595592850494513778695522875123655746497258646713431951271312734217473130365971042035327317138051444127985415892931954335165717316765076237407077639073704807594324622537213947937529143392255338430098502807502223724301579934892138273832806156779505288988602210706491435852151922843259896321570049565108203105861861076993769942873122651700345145596421465785457642829848093379060180792678712019925567695567543553052426999612870817579378594934709957615177472032077648521155976285638519972031497341075790497132027622061398402576907856530905955072597080450334299564462912539696200002929698035725845447868274281142246916432027971596051709142595886239599067365359561784404668677534166002067414583836097867011163217253924125580390182825525627789935963093879673967009825489152525322362197173076814968294788648454151487342288942321216725559884565004357265509850001408456962845298025993997492431995017010597028406694812509402494202154599725382987208504222870232844792996028402611830884079445415799263175119874828211409655324144969446122714883501850954566342073223023346276087182215582791859763175954041423914126676035367352146423863767602503024601234411948797313454872277359041132779272513009017038784950772397888086379198616538056108701233573544247923269211092846319418587114945250113499801349144698527986322408618302061481025527960272097906720556303096942951231807522769574015674104888598784667561839555966124012245507163414579511932076103465720404158661521838354518535555696153464891800768730607577393753441273141863287073472324959010586030795777138909892716608511042044113948139322714941643903287334783853537587519679409809356316003596094032510118023390185435748098390221634548489189509329811595549294190106146167829305525523334896123878393146188721483017426047852472892233250551488007607801964938170705524907709208324077511995169863028154411997876216840456640599551203828014426683230792979697113893092240819727396430954798106710517558662124336357212359736593802129576357600187137798713789068259265363377576099071606520691033948235522616436996494268506889374407829031467160754482696897270480055169737551109543383293024704090576277724370313172650816840626367907771605742442728117410132423643937966643091913002673917703636146556369914866214376748110039886760358374493347544375625263941977425860848919432521557465426603587388422755801173439847327096908164138785548183380694475803957431651657782151406670917121294020702759842258029149204565594958717560535478107093069080986676718225145737036216212059850353798657741746662576417585937469322481139519478013604242061752750036611146316515813884448520872174707512516003023271582335549908065208227966529870829122751178591648055369249013724547023227942769837585765881178047459321000526131833314999135923220078862995704388473984550221559026111203417293134681002469891540130197656092984614766581075239785140832819784348053083753130060979686428687381601919123638682563819405800551781805744087954103993626156906306006314803472855581487579062881798065754895218130889058906510501597627772322255349726159240309167290154088368792286170082874068587359284604865870870978675573563864576431955538477599241495031077888744141030679361276261054597142161148409098649722010860789594930081180168745711259645061245681914125021352731124291750061677414243113754344202204132181978606472899808325696171864612345954221289945378806177908509730694353435037904704895631695428736500397220255033964343375592170858895974467764981331923486403880813041415456758543272644304969053039872898486303398286073863928525865903108768919556535031063165620166526810072494017687636666494102148214984883771488308105006729208988402567906232575711992534467779497475267593767792255772732873640948069285357671666742475887786104103588833914607302945028270939099620710998020711037706948327053498165193439917139139929057794904167784392655621338144592177690736969530651590533213998916532006267474282801156695588810735169916395028074215210459102412205470899413845277453225890531366259725315492692610735221223498847702014477845825104842071752799751923032242906105384316868869678076008514028929960518592218721295362865596236832356301993575331404824035163317896915687490627199815147611022967696538955304040342648108842175523089344731812380340186778231096844097493506598692964329722007671478067180849196813036213930405342831816865363111530973736575862519642338204153308456108735612727587861570209314058191442249995524366341077921928131109494909433021029494011821860872089335713323585053752859433478208632982636497228455957465012956495794770398514727945098561574152105446996340195189472509014044658542647726620827941026959590317528836732818444275156716016136023356046712208552420158046620611390503063928687883640531344157522104768710367706801902682055106591753790585685410791560510590124190107509731647743059098782267161107169991053327486728880700237203595691331562017715444981923209924394466797888268702946189681251091113709437997837519552640240727939479154011248364206894698263394185733166165048031834866769100742164317530910417104047461122138017373277240173287405728711945323832560502834936811078637173697348997335851745855493564460312766810098731295986202836226675974861536438213221418230347748488393974842769682335836170293553392407515973595121675018458294654464199568967004732816855162933625782817343044940216084096308493813094511994704392386261627331987494265558325231803174880891957930412362320884533717218909773491788597134911825730693317290430551445314922725281638512296389362197787929390911627869048517198610310861688345917508299464368969654867287794852399859899570553443774872361246299896270542124523365857611875938501200287236936850041388185376234210770575177846207740031923627412101381358615288146104196652671242332957917088346885165108309542006420790117834933590491499806412797806086031877033518472204331240440242743046715917567131048818277735890256696677518723377580433959693866166032138730292399482551564676940576063473804539530581214337962223230489497066606854325038323067416528614000726666222547376901644453970286595737903382527374493269880297261586394594602993155720217587917326185571535125690859157316745143565011278238990319100914822947759674518428381111866353084729611663464171946381582562618887722276810850841841565401049307575191517649933353367998751962076573641202740322700637853446611539230255945608415950793204105461751445962244184743761424326525902935344721370720314009651172451457442102929237916081965658967223219969439382320448382724890028785796178739759519824883078693870186150054272271593574007150265444836061576736281645798116006430681901822304387239095313034458982533145790234510925777346521846417560688257470266677847160328371994957364105637364090554203756382707070517026731527080796036404459901333511033292491657853104046824072769425773102661051403441229017897233238553418688047436922812897087637914873589817551108632016631135848544976997747391749409098174232154278091079479616445650034200198577823587173800745168797309661278382776520206790749240888658472262054627041918927502016765879755143250159221156226546382563885994159714052686146331989323305127948197233057460399254075470134523814437619618500879386176779121521391200694398408370718469237077442482695163617031562583096530723989873734865275214937361876621939924795983051457509949562483567470529478715649469266757249640261025855133577602839372104729102067477002866154914558722414167915436837993414299257567166413200142555699549768366542327694687816474708907253987991867810200807223343490100005367196342700134267043434459545758316426755312723184089914032830059820669062322977489341860298666518367569821735004963786129529847677142881862725073949174983052122990555855254306940422012164216727987959499220738156867141972218869157628288453338097990099373604907144122773376842835232031000581591384368651917483384816697192665646226947122779103107650063175978520914522821401152636133034564737407785307360807537280154813213843476016139337485217624985543626075589711025218743278671627035351621597147270272031053372097765217705538718414127925607932958034564072879593768534904897596521680916508188445985876144988488127762045674181635189764860998101015358397358701861624148017261586076268489887457864121197873938002444226879267614773105274066870537227452594106448836532733747322722575139417683271041664760402281482890879384578068019036590154378062988911189208705870454884937024617257792383230096932258847579536561491830005849565477377482613443168551412188306508750268145900176932735751062342902470736567704186227997170259832360924247509970531518873365455058206460066903511307774330946021339969733904221952583843815754255770378333465798620728385157458396240076722625594601318335002532439549338094387584135136073031055847385635378962250195754734270096248686831837915973859605523278832510954350991272086551216144498990804471313226305132218101613854728585650695700008304187883462251511426233677085937545495090076647876496192771190406219787564065710835708947738588427038076416233422853946123431415290399291639113234798198995308837581419874101565636097155789447858519335403213399373074551309701811988262856149148751191846209038968109960274077220907929313816892568380514317635961879609745773666055350265929883118485085379178114955588307109852870633127212083726374585314645367716448384507243000136594671422560025127555326147992989416784544133491422097445727351765495592169489975524366198712466801779617487446858228856753721766327231350876923538150809923537299035799611892252696248094491965874627517833640633153598874497025885624885599584288796080958521366078059847624350640609949640219578485015652529399217999289772210720323236867049995745688458494315789609407573302665717539104180527951696230833507964323201079413773191764052309645045807399536122069788327327862511908210079789216460767458423642527168303955137300067001910205719728014247292456746925392911957317840913697552392611635480379125116081207829598056492414814010483604206867080402365360285696474555190028392358633417637546605884844530244353931113588196392260959221480633879634021146583810508092208850986300740519877460652801693970455541174328281105074409829994227509253094652378938597834275331769360212686790733472872437376158677268464008010896938817851456391026345418703188747705433606972576634964022438775476120665312359905942977871654673765563294511671542838226059053558060510130132104542715182940216847910737054788863666059747257674305044725540429108462138524025785574690168968558076610858665052788357630783888636741223995884525291423134414300440845376900798070640447175405484064265867138010380132147888250570788132093968861929878701818567465650423855295836889260597086656213632740306840276184390498764456496267478179905562999952916642342663575519509133895068600313566243902415928418913413230174919505035357229952104015280186072903518076708742003214045059177668660370194146165839758062929320082912036588155920077096121198130024473848726825055813147904883924575448546922847940879496901479843613984575569583905401774235560099501964185444427922533751625383768938302003359497858731706739168337773090043474846940878546421994478624260845047959922264275133409646313568884970351879990188728903017404687515353474639017121904415961945545474204567813671886063427298979835968439092853577082134875488097574052159747542285603381939277320920020540816298144393412133991938086271870071272069854707573994213017627989497690226075473623718194769661807898766268688379936191904012460020850779797847520262923192212864062193316052028538928699308825930328899826048898621920971816741381606544232634182472789451077858225704538381878636457053383779602972840880255817129900562225610465825181602675222613819233635262047210792897036577844686785981462527760891974031197673871195979175766288476265545775417964171180862972745978132973154525788893339047655432507375304621348064781783305260489067345365450623699965133747785754544304539538502046318314213451615614329508747035163778583798876124287863438138377721301570293074206511013659872297995015493939798115012184828907232872810135868113728337437836501127404183336977705903636538556805224975776207253103785252682997707975505020900581809927243253938170322156713355820382175512362659886186716455168916270351717092187440192296104257458516184879311866010457584147291916176403521998575849359887875709693487239016162158003790990459913962500141877840650981283878562132490361511516528559866788274567642303973102565382683729525183758217179291838221654278516132857357430578464241127354785079345712908443416088474529065122994871641007537272389128053580668155041725717354645352159315681327929962304204202019725805456691325442023207340719335788920700440073486669361432702571387668237133741725743797668676781943621956784262744376363716883148855372265151853881957713128059610415900290290609160884942837578994130186626526236539198488161857718023811671686424093786621526902832522749443910175994861536322195167401188752744973473668228927610011515187131819228213382397189051939211457129045250458317198859396249110375103119626298970690222904431191576819146355753230538117036167593875651446694906561723790210065384309666151462784818596477917699960537209177788866289569924639775241443256176837776418947276509425425282058464462856981060203421385389574643924113197070442958923836172178533952877007226539704847201016083150382143876555532386179615881083670064684534661864433215696326979443294478592572639609628888027415019809657922349732708867736640982928507774917590500792895424201429055996700312912117758414636934416116736782428370720907477567614140364639545837083367447479816963638847292453614886348303288607765927513826880615862733567717126236128756718939662757929517382630609497159221856279445203436166711305877288736058522840557290644350484034142953040336050446153260149000400563268373257000438258488203126351925623847479240072692750036652884446887400207162435976823045475645564850294954862250046912686512282915690333735194412211189131843722612245104930808815386187672728220393330479575891308095108856962262280539556784721115097578177043816626771683222091850597161966753137970964836075088072075237104823235715358179226771466940023687171184406073410703403778860107543621392066400387984613317584266984415849155508406045772079532018198337981586473157593621440999960283912982580586093845643992645243263833049833578407797709464297471840732298616543959227688462422002780017752862346415627003391410557443158812493556327804303791351975737683642359789261071981581874705477420685983859088038735681249866227881356235195634331949031091289643467720663196329071167682159382932652365358565765007738783925769160671764010065619345654526525965118294625956075908061938046969666005388375182654475807980513226583282737270546300645377933648051980161794391609600203689780550513013770947589485380646793125887378840629440635120905810857863113277440513179179235382166435700013871425590952494855076737563106889357273475007128524666059153698838120656125445816723238306194891186770164479468772379895159744872462267763440805369631782504397435001379140189916301154123739503687739451445361530771997899942366503222950953655323285924594619145571830471417242676641599364414868144235076852174812416703235120944664490397891403759901339599276528264222436076577475636655967952910921579569887714695229715714634395852043307719789756035931101115263425957308270583940801442558830980929361765539247772947602988204292938500413960961150681848427383701225877513935026871485419533889435136419883305782498691645597407444523830144274788345758887656572726797966609858595570606979048384985255602486899178280428386111519766372012789483297622525022257296617167266205695219938619804826034789155486164304390278709446029961757041256505308997993672502062130803569499621128044390875391599771410313990626661245911974167971340768930034896947886658252136995769759502494204851104020293343270477938562943777461114828254336448303685775396271394162696705935825750023916196134196273272942718156869948987454594308773135988873519409725231750107730402150587243010701039663231246486684968273064898202911187890816217350478191699788510230419827651467540432465273399870403508994863205253415199875829922350527201944460750916563910210727783673011630935155674731481073019255469610573768925319338659131753996505085493791351557290827185509638071710190879265355694955780787973211965527453633782412436220025310565205856911405172736322478168227469204337068988630373780360995203774830827388538814333014487383329947106906023299472810461789688797831417182123812990657467729922362718323766467656530954880351504339099811008767127107188183656748060904300548204274575930212700011378459313888869721746145169177941372032781694851395495099799416490365653912145547485195362137145787929192493122972860736327794501067090873005213740665819085248497071443414342596971043808438668742985682687855670250819697899259028008458587125917714883246284990091524886644413402451892494891412324446695203651212452679624633629171924296956992241874973691415964987577693476829092980719539133692508247580937019106986333290066400857025916814733189366788288241688797321737131755379816252317240278338182502057317905361661031149640052811328931659705038506995693932707205846387635630113120451781144319700912335995223293122607748026638977755359796295399302679861737993622024633606808686894286366489234718864871529788123855856745883824210409930889742829544250830352281115979597530478137608730378382551011633287083517078500262238524464196160887320916391141318505177164847860342884954599231220631316787675181246047266486547752965782541011925186347384794064766157856832347329906276951194369305581955273646801586067581848812328279708600375329228745416445885404149918666698294655142852035942464496060866437358549162467337878344817562780648527893137638582918955735381317282218837497488516179220635213590377917377569435232812425508954026278411939222029159547757071957733632382044604152621690471071380495168018756084679630182554588868077870245125394055306908930737169689422933260345484743870058672237706653807307961053265176876722066661836057889919981448364918605790385983588859972007576965098783422567944599617906747392231443280406925852566903981331681529740932331570766092571890638547346554277730268414167592149791354923582754301814370688748494877801683888181566383486223649920289421791620240504331446500673370481449657691733946590953625740852918496853538031898252499785564173862450204997735886051419373746778741963239764142998760037229478048597680024005079885055740311902319139947238486631204327735394558897896578644229405558877962580679342559587321221437635933598229684420231325623954079259312954115795701992635702997064555516297975515711795746648149631800508390517110721846856272756155351792639260083912486515650138767538442882278500135189009616134984765432092826933125327925660130703114711561967746030529962315071997310507664839617196878707120119948661607200016451172289454025558969147562134618180303925161592086233437901588737331846482219460879920289262773415784601436630305963812155904916355569234455054765078906687529014511110379340084288697170285862312440904702053462366425369846071436866231882716954478106346767892319936729752350797476166153551754502866849536620014696266240749037909444705889572549115686349360358123424649183822512968529490886028549374476156021010354210381048191945011322712613224772868184680120805465666203254670078828278443463089059291315116434424803089199454617364698076399217882863418271110891613989652789884078970194276713703171350665624536148399214791391461631684771223405909721510071525520610910097840437177313343822694806619825002079416648184770891847798904107597643297267934313525128663981150627422089033286383940142265860171047655629825387605441356939878495070450503256908676647328156511442047107676729398971142428082947103547106946106764629283673791677420827483949385027136583479652455649614562229973093603507168648029453914519391911702560582712294358338287279224149527274840160719112606612863261565940041920179573025335738708135547466877507716582486686112777289669638935992953516416250332966408995608655531801918818322019566616375249301523360659795717159436381744260992663742850566170645400663246827679880580881735355151321277657032689279023902803604488297974077451211058181378213622977087342907085412581600694207477578817557713805328234127044282931614668643208663830738819107706522404281163070581060144844377792843176144272187019231298324409687480481096396371930229095155776937918901790619804071062375235711472324931467885537262663986834004521666723043432660189309474185120195959883559083859321224334074131953744561421213832802821313132249591128918934506053749708524347985706717587430760228951014488133389145911824727725187890267955690232895940598297954490291777670715301033841297947918896934777134048402119134092455362549623618276509157323838458747208075035285835774712060969230054593612005172700023594378997909943088383514240656758130426271337968765803963218816382628267334022150326897071235243063118892336776368611357944763794575085576612726816778664313921901518646172339758912206370548135348004686605811466767463785198633399027131108226660505148875580005333513041175341454388265127443472487915849739803620739648990197266591055998147863209745165947944134343827007977892384464505758679313664887939361364530560714739838149473349937770557798654388073296902583556675393705110739750390987974478122435456971799584334706040876123787462495484733092906365937473876543115171227825400254324881342358936770155607667117384865094318389498663580987129346661379854767696296107851166363815481394019186778340098035565155052080741914134514312409190566920680073429025618835046999273421544437740430181805410542861189874806746111800690618726747122050129659859231315616273764921740358360372632731667702597595871642951633173003750988736167887964966136523286087417651264275328422925468929918447824394669435266935126794455284067313771390885822218989655233388014929059353682650163822251030684235954575242261386184165423494940049348783198047944993383279615871875116712821136338541724209647033436769720294186960065718269391302548314386538160495426757989923393965918058661910311841909223674270865767808610306640465163240430142923574469734844936898533811594413245708196336665491990761899861643205194535445584070897012728455761624044787721519765767920161154289856155467653641656305837715029790087240044484713631684409349263701669154626255376429100280906471921194977991793273975912025316566364345130078300582779902898469744664492907440815403300824851755635029106795006391671881885828600947128087328381010203129365593930458136158245159183121292806417557423005092945870293281752473200380318526158207823337692190003873371689650296574914404423298352306755490374676021747398276063814834439177168680227748618213017977084103021473625778681282987494016859301175143639100626760956676822690708308969560737093771436841188176921473541203552337571765623002889398811360028573312352406857978369378732315505107767830292313533087335066052474695012154509240122400049942192033255323282290000182848867012052409559803849245616341081768205667202254599202563541290055247820224502421875445746196670290085115487354426008095082078570886898246992660876491761272795476508922041332364163336894018874220376167512883051677218862402055335998715512112752364734626066847890277360886099900176620969530341967379167720666962537772529735930993570400034799681391155398469082429218793056867998293726380076104719516249412628603832360361607114576413869529398686523169838971451494499572324535726077764017291083359111617460144859951657081431962385057095565990255709140113858741959611565786844448845890329585521127239434140249619925237071344251353959419849037028068105327501400867471426185775737134991093355041889058357406803867072460260568968629719647048469294651487898705328551975658622213973744232169785775880808037780722462903499747141634217350415051827810938646175361860799733771360307407884015034140835811501542415917703676308724542985653904785661393551753548931786580536057527598519132345891098834357414162272606120126846996169701431996557760531160693585736291707064314094172532027097641683298425294968611979273350961724121972937836761233582920724435027569867436472461289915151258857302375260493375501636602435420307846975652729080013559519964279330057467352190420354692157327465375599952823564691667843289319970990513082884993856397804813576040228702200512416233479458219686951575696693436150881277368883518582919157445647075192639144829530168864809855528510059629496347561786998506120234918624155743047674896281742106301115082441330470422657659315824950357733505132944458411484219479052095620816084825937652202645199619896313987290102701207602894134787012426580011253858570899857190917883235331880057646842858893578728692203278052885800795004765556953929341353800283831815782797078092195024096248018688802949838810209580330183418617619023430048908801990180002238525851185547587660320841107717265948784813143511350340793698601932286007461959423018873707764151490500533962439793627451427427505828509190866300589058474512158041454948423089480853305859959091193100693518577919787410755620497885009957192205695200270745833851067388813471681124461253857667752909022111077675268169524023398297648279652992028407523093920098953375287102237782675949220788398744563049621185084694208744775741088620878096738622575687544737458892860633506576656716072201256662752351452119452691885723806706309365024278851978540846506739959062093364607138811561977807753177831839944269000732595209260330786289479192252622981181302993911095806779182426183736740927901035461527754145848369650439934817087711145452601089115586319966284170556558335966755034750277451181570250996466539032810739079307738552415278778006107522370508237449952764039712653367756879267236723665548180234179998918994301013867448174956414410534022795476445849594648123348613144057512691677679918476300825032233112472976944106762847261607674308687746291503108665615858651868985034172671244150042995878719505995207302955733601573632307335090372861672116025058995689693414028399945685522235052084005761426368769193000649381653213381025052449103262960300714496625798568647023574294991403503225385668151094639584618555742605904834858019970757630632654646696147771557706253018898066249525571771424670877015412173487301586100828277255469500202636370071452894727180960880060440219766410286640625793083091543783861669009395568215736045108218008880475337562241597107235269863764107872656557060419466910634814031342194783561216507239126437626543389829944063041324240624949367602682945248410136224433933723867160849234020706650457383582599286256707735454237999933764608098514066327507209149054587293530373595036740565673526107869350580617378536602545690853050360742590514040613245684415805259822922887176878937368912661891958370180820910956935681081513163467264913407512091725408104146675135107281357396850001909277144536253298952879344814175712134025221943902933718430069029086395160171448123265075629499719288389023559516248048451306766891704416415933087522787729410813758790905045886050656104175293467270795115261139529216334851065636321039913553099593209195615651109097263635310502059233185335479843342601661780066014102393576552641874016298836589582744721113269475870691782818869212235035953599521298759518456727600568157745859008598478991493576616958845228412260143139237276281447619572414062433346017094876784938931045510258327780508589335325265250531628398846562625617589583384132292102513359972036891086744571046216452531312083378312057246825527862696955744250098578431236698757652504379162670477079245697022372472992388357755878404887535845286730654534027594446999992355781031552259127248329649735363217040807844436207465532567079284018617791128414730507087226488304777283986602638350230352310363317993013447595117534636329678435025775203955946794277349534141223749483047015248158365453104829274597418963373507311005502491588669081169051752433758444332056182664949499765598572830386327583905811305606040740117626730512040148009689372338206719994467755286828158948428440491734719025462203340680200675061053207030161204150577075926843175244212889314871756740863921204351922133969030785531913086545611688920521169767439709954808551302345124001033045346087611509697189275029384134404424462395945955630125297665927091275987639288548290666834869844148007047512574452442160212104897253025711081450403226852682548716110642433142058816272440734577490527898541265317444956051543303345320321964911314357863786147272772161172207161158901187559972777244790346368079870577109416428849601092806131660967741981118766453451043844366895708333066918358512437281449555209413944234363500274301377200354288943389932410778157743635725108188719110762688761064186787693206756075040260836436765447485473937148220638098141275138471664805089599036736057447175907115197661663789252395255526631213132707101390557700896991632440928825277159620692767930839328216107906917785679004230564498013047378427431486659002490152239960804725767356930588153041643055710269995479962109645596135182571229661937968841787419629535880770254539469560335634499215755279387362848606470504571076850044867998834707372267409115685029522114036507572904218700952492347840884664946428610838867910369031937213564659715412254088784136385670810493965078495481787469275165642970504069542779241759874900752106051437519527511952116878335494522229015456512531476445071880698490771109617743345610531010214867725755457780659297833293967702512185356072677275773647619689359064057945089160790542872845069529412280321161491398702637724233060153722698066213271019447845022628688558456976100626849833180300110983893228595005078320750821818432647054722540347920988452091499979534502370071082060954125260873337588800196436852098118914890771503554216329835609939334658698535892690756416899544005349611001601254697948042126141663019535196538940295705774147624262205403337178505712058610079519636017773960670619265628140573624139815783144372448153030399342578228568565724445083599048828730337309566187148950732081643256152738683678166060827157716959197917218095186437795444211312862100159664256214647579083864474982447342145290631616622287195480059514676213374206498696356084476797037354135104782780069300540325003635840960984923826588642172139128595214722875156176884866480764991829639350251436761347301269920679631877873431522903670612574722535644192774148482894008933857661492561277623722575476013841925898714443782436154021871219633483960239619354620462865378141149247409576186495025093397272729350281796754042027542734515415632725963257170350358170319589035710317787754279246365714426724281402007823658708432122942856557417919076535399050682929397450514903948787372958005320383259861945116875871903415907426136159794741231016941847990508353045856844941660475679468696642716677031916132403440192029269131529305715209270799789945355797525429302532376853423712039957336368002925906075550167321453325855270052757752907362594854614810210533704251832410488169870902409047429656858712701355554284916315008257995514754632058816384855735046709714235433807847677955816881645648852425398435744246786643003788163785079585095510177396802327665002773907936349870363567547264969481814979536422685875387288840072022212114900564126789587849496694855138431747753604244536862550132717116256796167612489022282923574378366634068110658887260058531632374536924106758643376195069023058210248186264719861472323559944838760505185152189282599181629664893022970536379067536640037767882744399477566359638846068237647549072225607245421074350095441909391272017306646504364843374093023331087698765310629069863915648922081163528821988069933526951018889628949173172886028342718290705610761286706096628172736487184047231038276457414738579863165291583658591092014928964326802793001782717437749669207546309133664897794648699083609463640362223453156467251421448141984657212784354329100713018739682464695894703976239254485046779349782519986389799195336375347744761999444767573413301981611492700280514211752142958574948492341873157091983804662293122001431716998280389273278859394939178834207304141597205349890211527324611658478089618852404324888183148373266263872688917191341449093100844116775719819332690521355813100864026757518510236816039215420182120742932738664444867135077718854848292573018591382675075942281963664019109736500945547262594173058699373636487933542334753086731786134919336531682815121661044100844008576571891300568839258161170921213172894058296794683966843542308272588693683038905483912981289775323733231256020112207111367425536332147733973036345313206603712427806808641031096737127148983305200050561398681288556271349239758567256576675782227076764265726232960556464540535172831505237960197616140831676343246772576990660666387019674769993466173691386474094424191750510866241146965852111092174456940760074769538259975185290490917335511520519199583886240499386519970411638380641733996474560865379087535343386638764270939057445079142667873010266198926964807935964120934527992234127204668766863571680588072957384790469413275798365558827100181103642221369394032842422496292538042669243697506056813112031412300670610200221268523610265749044227855790405375424077403423052675793865302943385797446252343967811572688296353515926064135878252737091984577184594016561830296050985931194182383664516445690594671175277953740694971054298903523669579577504712834576237908369550857306213919599930783560738497865550002558952054907439329101540532673972397843461934377793982338279206346854831301624663712962712690571918194181551829558688213002974302248380483351292574916724518405120649733585079743588465002141415840058531986768402906655308744529633784364315475704364272452437517535382621743270007933399138117876190070168406769488483641014391718909282201037612127348140304027547914105247544771322120974063936975668224514776017978060080129378262631425943137466144680664378430173854092986587244628616494357730152821152630261526236487214685680296988909825185603178391240221173559618663968132239076245287552395861814310138522453262420836851290986304814792091209495862110315277261789013179184237036444014845940461802030148328662904226950146830576484432895253982274223765751090964470523378593713939305869939728347251791276232110388497970292353929284372761860259371853941903119425443077193940315889264051316814969310252987357468615510397526969747962555231399675512869274936192855337586386077249206501000496624153587963508477620480951010321482069471468982048217424284450012646070751475360701009978491629145177658017461634118635125807096778537126438950401079230132141192891249336813901541167777697941988789656407426239926320883645987169910383940482916713296607650658579133247074385151681823579474344292163991890237694547399087770486671791329513956260508419330489915173374507783209111655803008836628884150963166544710411922896916517886522926689363417038243009539095696540942595258057990125823792315245310392620430597334470653264182692298680082183512650008049436854719547223931156644813035731217894506168182373499796012928276277326903383465021536398629368616338804406763501445873705255130828645651768105359117029681639754770299876669965164961701173911898306145490803593772120793422916889702845211862110671349257818719595221700391608095307415997237032351737069559496476674226732549697697236694045145535131775544806841846911572672552166715952013910808714087957119278903723111888077461278483360320484265404917936844964477051782094415924860884715681816702604947571335707921779686641132029655765727986309070502536442028851275616843170574133279087045911991539337399258286074528055087356596862416905596078776491864067993312660295814562840799313648398610112668893467272978474765659981860507106172283665188714878824506460661407930031565435161057755121750634381419675903370434883112547538728297647300018078725016618536419109046486758076358805670333705128051749740929034297392008912571478418646773634395315796229657953397650433508685422286851807599962289657613980006165004273766657807894836716463541274838999557758485533634369282244024794465946245954206351668051940684612043865147126772814298147892357815879696090960606986035119193754119206548170742613233186987033267369425244207414570151854335118334877796275071755347030486302678734554746866528422180597212397585433643382121423546172305779114233246620730331377326442277341807363402184391505080873097198603202934993566434729286301912608903767487681798778039187509381898888736486102383141793509451487129317306070187143079119817740739985938024490663818426519519325277345610774393119598953090619943898853610263767145723120823995047753361108793280176022144819625803578014267120880904291251481714473513770936705160450308692080487567090694557211663465689763998142842061330684815117634084288784887746391413791376291451726793807473401220378911826448915512505237619764439670051396190817965810427548240272607137685116630357700648894691746126995782470621300220504833990782181947770351926173207313470647638514523356956679775090803047617685480316586435866800853680825863347792269529500546036300848842728218875157674308603053251653017893991262803742624729265963076215541553373038792763152673438122315881411511148322790396755194724208532744736416466161524110034999074637661367589999970651378695565025148411091278537284906570928248291262892864362412203616270416836282111956460164180860193246443243803856545281254859641267581446958077846910775934003403586781028275306921065661948238099575281743658891104000174559863715291793425876550473072882297644978726575531864403390913081940990704270649565935393278011612719873246013642549739833299261293184080194036077815676244146649853040624779795252806721471679093060629073306920898787385561548168417960553486437881292366437721472333106964131103551950968610542080694248120346525904572221680265544740891257842299424944834932882147198005677320640525707579164085476972285615344757995767694322699688637171926448911177288565225187008045806110160498448473023952743224858622946751820407511479907025813656659242661033714968435784214053974941998328613061456888475774791724288625406514503451442216443420195625665545159181795718941580912932403873772813744974929481004800830277035271653252806001620730227023051405842786151577003074197252759388818576216167181523432171762359565444357510703308740359729188899222028592123218452773652486997094639881731846268319905903174894861438617972236439294169737290409137084536050597489052687943496198893360538942485966113035482883521296374462482807473041758825301828177846642057106036591164139115779839942729748039988137151508932602721948861166297521955607984569332035649470161863402381216640491631808295148259665851585937307390893713403106223787034154896598467860152006535220783307831355230034625426298100493764797778697711130195325774743726818189846008101070795305016859088093792140114699174093547307883557363895142298394905048493889559134385513938147247870874047860892581999335327874894602296300872525921677367832479497534488191620366706396831162474439803526053605121557286859827184323429681196992387470611874518298987748013192566828264234263604247297263705135634861675643305438928426756279930877543747199309380219565216135949474968349269192365469987411431910465629477794748763876334416650039656190636728052844285089558543704409441656580214809376530713520362086242981087115809541827460709654677545979512391836413974754713488146906734948564064399397196356098679784245769568317185355181540401035438009853300430140510602815238580181017899561383699283406922023375243033375061577811215501327744602784953526538913074014491292924245870166532007986208694459571559677670927696458037804349573490774519717177780108186744474109152651073921279064842383578252969746363585497463874938217881108487970260371049413362643064858831249037100209514690465385625025607242390449558303773565142470202739143836075306071219588315519703279711836167947747207267708742010031261676526683927498362442565553274297396868723821611002279588226352984009308975257675664658025055020542184989089882445989542892219892474689303647379585269857772401577800797797237738669754196948896430127335827206060783009345083815376293303973959281038971116482032907918282396879143631652844408698436589834495394475127670216642259747526315717618948409698634679599383240983019964655271499352876381206837920230767632135239435993386067685386503959084111742501261669416319661297302197417517747546479273898287138225001601223521585541965969980179134815155471886843922394798152414611035187448619297744180979582630114099601636873501327863176397570483258039762493451216306989418746345321653396587176962670512153705243176390711585452802867179652957800570170438797804423729098384283509476913757629465243773111750374728563020638230379560012495507911675409847796632750188563501065006929329457535153173031955636305948522774845381479187801073147236322900634281826008942489173585185551007483975781262614462461991372059102047278478574125519384389940087977011817252907918982741606131086374861545245594433742042084156928638022935547414593076794999259086455299935021478935176327209207271683517999115276450078107108488922678370838652995566028890406547916665024721006184734189348268637014394690748797716331099887081058685120485481378769369618869875843691878014161173302830181300113409780438629331578496178219396086592228580956939521593837489243892571535301195807912163497436501740185234508581765666753044247341249768626498936468309773059118170585238922122304728335475618397821370280812046391622264495347125340462201424315825253141143034444952062882398328162425600415006609929917864449873882725116729384289657334771183984769464007901872237794924012351718340281469309954267419557638474450409650227446105807647423806539814557085600432583829731083167377539372836582372328879098325721379351293607790263781599768660555753103011654435194825003273640346894805588469933055412569293534748630925277578911954712121798254282514697266920344854565783987858835284478597548560220945807653014593489693773563736442519230576411907361228428298218781986873145536733113151289283308064621819727463403603149154093032863771818883391737959265348956431473741533372580787166990944571936354357546938259161201792954552342116260790433843348528989692355698022314278106817447960631661860506882962962866967983378064333733159949344162665767683385677255777876174208050922613572993977116055114602435638082349169237605178186159355036661334878422333521561445859838347935889914141632726435340652272457186104403744654202360758468014455735859539238683102619499111940154262338209196561389329428301437525135659385424905112294143273249087228090969845605587298887242964947744470450203383955671815454455013468242599129814931848134184470520127621084970677923326213234244284574833009293480572954162031494700918843070295592593400656031569759921768974860768070178877997696141983355730786594990282977625383883924980595197404023934714778239721054182018074588773885416772140226571589252846643563412339500236333680914778496928161192965816775276156331407319899338603064652077356011230724050221979973056442692425479694913439590824605099885039585574095310171579316951944362689450221657437781957457905727293775327933822106330365061246038247544232542371451106112970383945825178441553853455221386974265196174036459406201366833235490474065012708039348494432380428608776175157713768991639131190177215845605078750505838685310405534542623006670829162909821321440663826591333698198101328926719795097634515637921130941418816862291193929901046430437754729000235856278775214235554575553948375813753966582978419445055320795798373087127844874992509155034617590461465971429450563513372663334656076759724142017055159837298049841091435764945686487963882878259151354800066214970691251113636461152774862142071192001512810589271047302533804324931949501706473317815384904142001382979128492930394225634867876900636372910090879634098093706035558576482488920505871311827497096976791226619234746759155919335640803321166639154725594481965091881387407851007271994007536014244103870110192683949545837310537442989136342856152434552217618035025645263263555503520845524872752569778521049576145216836948764594730566277847465802658849045706702285473302555296264700775503418473878851514011442840029235550633012725213137909232851919776871546826962654141819189711512805443593547998816669302984630206461083650980825902952796551031896682046152511558691082175864111308828648021089983446363041147539740189737969631529539069439018895155201289194034882896815516446588800523706166519857472412317798076946125067783728861164694120860209099874055855570267775150171094954422415363411850749620092268764432322712314269087376922521460102054527665714175613216047940979124736081059831925654517914342323723864503636143041553872131025550674355058695896357963410594987147465558192872096719798357783560879685657361945796446881218946450065765504916689893204353944097079617445581642076572135853529781456447449192368099671842627163065357755407400011508730262384769251938377514091446303931579980474606973604665619315909164404817841606789663329697167849519042218221991590911167546912851327665410068106019922098807866971255227837107041079212202002679283569926127317920325757308827774112837324391018581380520244476599621066943500879668997446032065168597529728956787831680364543775257197561534578451015563206852149768499041230127445502291427819163706173541430569201879692237686288446325659944599530731605491094478276315231651078083033768191686253427106523524740792459672431812065648777986247844516991078646296050519734998698337211819090700998801603551927400388444964618126475642561026217731855105073574320914817067420126883755888445012071604510950782936173313074528758286947894473614384142242730748783576907575244564347198845356512235764677978795499723458584214409282315554299769153360372654676003063321001876617179110274690960170798220427408816850234411786820846305976862411199318653210909061621857601744253149739060323392911841205257798424542105229088509271990079414813503454254321813420391986710145096159610197742685001094991925356734787949159750439484376595273542286888140814666415973079178158783085115200119627495347262887470335980151224323580579607407732125318637597041728524410239919868358844040384775230079898263062436575497089753213825937152226279168797715470829435278008353470860343484892097345491406838797495079235979600234539167151628058882267903817140791812562466894067248712982046503300580134585959899330414772193426706722507321073717941648926161268651617830096820132469839111629063459868388008595985061051845945717203499977133589894301740475765326477827438601213930351101633246201740533001562894911194095439271274254545974029897611986074669737860610851771492483476924708406913589416844925790493239830128041343486825629840792675087500583065902043742031793359485002820796817629306353295809128373650773157020628563545743559981538100743671949960381093135495743450353962927764703202057979566431828992824594585439032723378837825105483311915619495037687545548071532819518572155949022119866459746066398617939008243896105026591362425366285907963413188069587061276165335453046456710693113263670053130857194001442608424040624927237299785418115514278910004403405386266730678652578569085008171399641792040039035829327081233153673708061338354179174518060530796980227500913827497552530401884502258803042489170200603822435135344215999535285881120657313691006988318712732714199981561563074810115266289868868866761885861245039369944420651129501829542848169447619450452976228499026764796951998858739459907538993201184690468958232868481270371282135854470050386478573531066109106406023082182248382176744028201133243680451659254041939691379989234625358972422364356793777279840035223904920083391438111453083056549001904387290705400807157141827989550344091728465403866755165257279384252367887293636282660678868615592481884228140255616502139201903389808260723241472339669133697858980741460712533006019063330154923080356431559435033182965728248776773797027996985603381330772312652704837990219390284107041915926770858950810962644073204945832039740919845432825129516809425841441250058362649624784342723711328905688584898700476815484339906198178488975738290257874694748439577748329177848717060475362249012196317537398227801714964100554615421199708731466049437643551015323923436324730849198602024002638083442894140042379304077685468854848890825533408397336928851842624380246555922410699160096205681188515506536052774741110666391644569028837432204053879936308075209868949147091473260283454566820680548566336246564921373231318780872035352838889993124955831982990337082227688912013301636605913599169369085255595440738794789720028576938476274284839182376683045467546249043399190744139305732160751236763411959218753912631371826880215639481736485882170720759827159255650951196389053812418117771669990171555285144821155803536572781447291181759057300703129350061217407717023552778824565997065268449472582145355955148854437239435658777498166780518119221304780314574759509006723553077283792867041102143089712684616103285365266534111670969695884693679535315582306598131511790807843363500614949161108819646023826514629743478200482860936033453293153260777612084660258122808586267699308092697140429291843654096282846762111931549986692266181505875617483711709602457526179447724181671847441048810004726010362003920356402303096038683410937479330568690052579717929814241669134639897432554485527617159239798533989262347771620859970755552150857611897554832492511636328765045874517974167085181701658475792551698072779833614740675989974192443157712743068593358134467656379146603890385233333861481260485553334068950700879490796262179746377674271674697287051104007129750715724598081417322271148167735766444053885519421058077379394523947966716924747071379542983438424791799797085422589654728361001032928339619342966254044639651974288797355912032525342822006707191376120754166329913661528697770745094272629611585330816425744041055492092023170650670619427443074340074477751733656549853573806999911912556011008944010063222381721364881526785969933675799982375548344891504303763418588769786574429902247639186008678944393926677516431604609654658951698250183629545839758602154466236830031304347239229683545097028874693971630220203102816438683047618151968139470718135236207043121484362813924780233097283277517192440569149850831431961518283736711138141365276673875310304555962009963173282161291478670323032941327025182819911561341239483901067163605575932104570690810107176512188027025448902454308419292690316497477043605722152388130160213464577795852614719296261233103155089535785063987577714194325253134747797723603383313003010214747874923573671829836436551522929480696362983592161440764584602645772603671077632413991387027841916780952319250228013442011574110844703918372476041475438196451484513687124462263070718790363775912192194515994362599297987545407040255620637737160640504327456515183499634883956252143009740411542856773690498819867396487920191065692243120470998037284863898350695673003107867723396269710606516039790041586272520721982540190228637150906959658961540405248138986853132292271796698348245046540603315666514635335719024160248455510102456037512091238241229132132532761956428253416538252165464202628717857864398168965887619679286817168310053202572288706513161531435299437122204274851254946808705256664309197583396012381062053828703959903131706058815429559681209605308235698088668491917133358315609524779524349401613998382355585362043773474104650179318133577314990543327250799874593516679036500860260979620537536114541685244456641225967910737709714469500110553070548278467617121987984851705171723030405556430849700026713784013610732498017237958772099369164421317221953046264871690580037609942831028457533901861761927451016620627118430659017293638643771855708115101105209414132062980021634203844081565661761053103931724200890856357355328193880703438793548141464257709463149737576507865959974214073355286325296393238360658719441261115595128427528428694258838020506205244813816834932241511516293304614714047389861603561784326290301994511322911273489115832170784445444682308277241768065633920382077376635285712294464301170423866855581463232085416085611204720654217414632160108395650625386328003896526324025295027493298261843365471375679307154861363405293601360592115560834755196948725703267008318467298952601527920323329680887347817767299831696668239756642414403894103459252346345997737974847029993086438447827585013862519394427987148634038720902327895404012705420958960358924434907726410735392057292620538211173423643295756275344039390648084475848799890305003407657542834298597212830385132099522629322257967011809961993226073753647280801277066210476033354509647475695216918670178951651183408079246335418536201828838584344647411214203776672143750784780631455601358165668412488671424066081344618141150857545328416343542580262083083470142612048768928207100140927825301460378665824935415756159745620245315340687496132099908556438982645945063369992283143850497131870330255811678510022739112680212248373101083293297455989525926907718155079241660657697750448623035953473414583723172369864287540752416372297291588562624013439370024593188764599931258427724384558008942642054548822157978090188839419058324985711071190471646389230114126424977426622323125885116893162383358576239783686205486292922080004344677143966781312693684809680785136665759469516616585618210762731339333420272678955465765898703438670222120138213286743654315103570085586651896996727850838513455192158995762889111482285739698395055615241134687446753528200573199801577759683499928448842418411900091564350990425569092924429778119372906894945764062365947741700253577844868923499803517755242975493812160870143945361158896969624463166503831507507191465791934174738027389542480353031522997757597465627042613237016746527519009948386403319111049682142691160271405629375810523731794803947160729058584497414777837433289254863278531202456127197976899399116278929776943720078158857044327800948081272383562699268693684090935633842210271502584893820883516078688495299138640316986592322676426836627337711978937115452595354646841126811897209077626263448252431100397885489563580781347389514586065986455361416523760647767990550032934305533081429390024557324333946958415746899073645150850745232625241728583416652344870916041650060925400444082818145322166386865180481337038220657796327381132246608056670648295237770811784022680990490820191310860037127001736373278748750895897775932835897699000939912465601665835459257279770226205620284201668067316220358232464875312138834822572507987421466275839838681152717967864733322547145853340409074067721607003042625261064447219091505911115407066610123598760105913868234563527246897125364315930704724059915091554160924213064592946176708264332890504458207323317841840455182773628449531491433235784000859969991810899329883079295261674370874563281405465486947087996854762118040452313421812702052003153449031000086968369607271690895750206006217464382772284992049512903349206055835962354833841737999513867929804802465665413521051372258567341195864766122104028815227144325712260504554355680286463397219151637291451765580578197420926185698395978793649636252473907276650981089225938735358671953407196143180860955187915452768418933126031793342011453380983096896608255207572480461807586863243913754226872773606534185201278812318581844352362628844724047312264074708442220832734462115744634408366637742568302466850559155272534388339644000463752176459559610179117457496087064519492555684441459399206871364049883065842597607454734418560710425929133910169682609416773997316516319225256910405295421593202027864664836421776802947273691285079852470309637605224841928402335238867829133515255257455326912877069404703550504295701291456199561963746727467927645181583676024952028352991118325675131012275989684230547525991709167858595719779515177901945751085149231767076927428055621202482278800282166437919510507784117722323996944451668784159232672370746245843521635561768083004982995273226183646795630880285814524024596183499800786023074719242313575655536568489343070379610371394449169591681373567051148837098631017395310953058156313890835087634680169227276986478068275314973700604680075708813416437086619323594390177268859014571233712271680869747602077053217857248530973411669104879583184638966516682227176893110146347201326886609596046648070056839209484678364501728676315268149044930911371910830787763837438046731009247795556129086142367359586841998195252000330972600095996905540299453242624977800890164816226285883596046264751464602062898846107978693071080674870665090709832302691304115453904880062591260051285578955096756131107113775461518340489617918671251215329213899029114021677414609274527425648386711454264712629611433836090204687461287833590004495079079599452147083581743032560057530302340426070056268442018021403801476762446539318378791153040874201983431499689177870263233392874988369668782365115623412169958354397905895605489467501945019623393763983857246237181469798678706614589048370326628947338106920976929382411658370619909083944208611108691215424546734191929236902012874566220225854873991588804947671259457739657791253374401961776306450596566944581613841376295387712009444020175361654891017692417534834968969315963626739046672931606024200138071157257184053476334582952514697707691770384596666373509655022159095017951008317756533365498213677784943370676900947186810476086709549911460263069615098795643294036322056796711739282790572551837129652700477738980576056576326178958028380019184612521561630690124659634747299273797192118243472403010720851332545231145804079782253849222776993221778115636765079477313022861110689130351063220887986489393131570403619861243029186397106122302232491829212109713516179168980635850307952423441062022308263172558171698028812241278583703878689355264882401322389654433077012339194167235451680894494322961734013797342989599045976370367874651539706380502223314950974616984688554593717912847578505406834640949021624799491600847735892264331181816651020303842010998872537802433380087232871915204492096871099797702146707208503787133312968127550513449573795573635265198343097846713033232187824416500761651070081255997604074841928757213223305711809590612611737916778708769911983264540124406782789538735146519612528534164412225543842643960698297418669951818330675213135649340088034964665063273402612719331603475519403262350482442358466889454387330934476210067177517798461981717259905133054505024199520187476602655597354851334479536470149088993908594960213256684714252732409906186299693920618362195838014252165144876409808366842609358032722172257502382086883804376182751465083693609198167071498894569606445386035328861525788234598736748792164740898948543500419096537716897943727302709679386624465290612363931681470985075540858913773102274315512645998604153870414414087782068143478126777217710161868664388770273367935208258495472630487815744993425855649380364883744487794349711589882081256289437996239321871907128122443206295213141424883399342036526980454675107351400684272314916461005795932719015737774633011549225394727467517407523434213666766835538345792251710530677027895214813981405221920750009907604709820162367041588054636444308492566855120505654369053235769803191756143541659516855906013254149899367980601104228369432738590746033247277862327114134190917039672755582131859334867681882077753784692433621245863657770046128315491726211071662307060975926027084268280310468372711839623616386340983474011069897724131193249854359662294560595076477717095875037505219493378607316078050451776839497450186312208485403266288707831145168995554674987413257517111221104062428458443024733865880128689378726302767686691361634723640493737570839392517182492064666916364924153799365480729246559637062779502161070874470959913297648520954480350475436606573946604396535197050876723352603273199406981040068826953137569723144917124676687719218653711757359564887379016523974505302110354572356564275726438011939564287967476875567180954356174919378815051940953364931145474648695777800555581481785355671418070872985355356856424289132289656958781775022706145818395039228569116143386641318849150595670891367847046142976428595102220982331994352258601260116363189152052046949304328625957999896962318536225096621773599942973053788739157519923981671088682459916118067362627867444242852692178675680030645092451516439529289963631888790580220647282695763431177923192844858161849005581861558262867119324196891626009341457527247061060906110732658318376839772731414598639392125808670964817736695204125043605644447319279647547861603006862300542970381084606067347654565110435900323168003682802800632678171972385509775020989427322010812383514669212619540175272659070298866360020969402274173840561156179753423701848293515846700880886452890190480582371164779372885651876653368970967960966849494951243078336147458556851069789322333960681312558312991566184076684938027081368910458061139946644004550964114415471664125760678783594947037952122420826860981110964376240884951347273210192503374708116309713801088251232824915896741008812841743077833966524329932057931095631672948893455874477720372115234110230948938811843214808791048285504280870352520813588784485283400276816397160545302267061681877987843857214535523841960376671897882369170342980260397657285491965239939569174638900841010114053278616068243003870045076936764875566433092801571178486924657839838618945917939203847799346579566054961488956511584301177806488106734331355682244155621536878327636169400409966632157960305125959137912259567268627421671323586893914780755555891590933278011080759480993964756723003613101331188782023316998854690653017617402723631059981373543354058520886615823917208116980481344667231534023186215219160983522724686285478178220902417055147751007175481160716494879743224316182977682539794171479199912558445285109588785036204711758433026253058063411912731891482207837269730937353932141929476044805773942268934238984671227853585054232202833613411534142373035957844088376119381909113858928752543400644328523808529463675585998058947482043344803404238159360129165662586977223811693277813797098715741807649604104291707981070180754654053643525298228486526807444740183568203375476963554013949535388697149338477321677672752227597943774105556737783330694441681093440199290741181554760690404651699529681579116361721334566766658585090114181677022033050949190472969688380508411054813569652383316682723213360809290692259996215492895055989435825812129604858899329184469394017483895031152128572276575430325933992018755511025484341560113275748064648149973661548145649543291996046163041147328989949905972561713696809790529977018881783367360135608275667683088592929903400643453877167471959817374276067003718195947174356931202118023039751698560128190882234914152506053116348989268232215244362666669390479104738947945259486425948487375872160249297369575105656533995296572898632637381106110101763008052564124491255849210229500175501468736298611505189410742170280461224927972098119609158841203971334147024346957560036396826214299030814317579264117846393000061506546819783250273556046527260261894058313814059213368268700741579175628038448048016661766329106528660587975852420687241482167138402081485353115091485628962157343036703905469483791824524118009662989997268866726096744548936298461219353120182023663205307167526115472786846478715278059792757517225257504640200302800281384772034837560445587770625525201817855808574507141139685989012221485711149845599001349219584786398208999661451377035433473035332727423988820105388962138183828660283229911584451746523958322908604396291702679860311037103451286923823186811582996962698411365063111410519234704857328313997086620608169723856616209437113896162074800985785206941181581990640204731063212563311947270567865375374725204764834639363282016288516580412790604057532086439833914432338643578478006539431138345570675669274778282344059028589928611393430608439422081073989978869837361432386889059169072823018883750496171087382309936756163269212484673326367948342696313008617555735949900114726048514771017238157212615201617057230589651119298386795625637680673888705064265209338128860863790296481536897815419975492097753274351689960190416663496273143461657177458569363663190418554777557873560051460591724712366524146627540755532132792203110963215287735524192267028366519557446161868975025641868349553239541170215679284503002035426259843947364195520534833586825089526521178951943821946515451680627998437833683514001888547560497737847808162538663118235124021530651599832245654230281755771602013395581746383215321670443846034871871477693794882164897690272939663942703977085487230833181717176814038222926077428579235989367760388884301272151240018641133438424035501289644485905137679005226691326170422905948841520132843424266734093277013815052300574693181911050456797669320768483314090835740779371879202186812817630181864365860584699221931778082298195701398814734838752295922255779127004551709648993411487723227205203973113083061804055045792130648997033308744204845910505808371993355260121451605872111494639504599632890830759733761897176441602211498981007324816737548820155320681118503038374524830438709839263357320504186271246614529361589959145902143390032369019931191051654914968245249949344468405863129734002289798817285265267312070922666427150718735669423749747926991510776614481424539004486715090745167705419568011819248655435351832094106166581482524740346307938745175797271171553969217037150294595637029635417507569685460223381461283485184321872879471635452485146722211509625323582308704915310148215436621514039359563108453499593821346312196351368156812313398332848935393166073043566885867002762514067989477720561585080577091241233139470938800905013034240876191295283452326246074880342026560050711147535476560639808046936727167219303235171905045265374899081306827138779561005422220546612467197972578329543055669572839156608977110122315305791040687152274859654601912157208075534100662347771901147379651889766223276694109333251347344720627683889842008731173178002447322531208754814225801481638419340863684081292378025124777617024478240095312630324694584590993076391434784585160120484509466686868657154077528592184370000305594523979073771299130861724211554392078615196018784089310098035091664961302830912698240871384116632589668784821244884836046418556953307115877975411717727728707600739332903834516041882961754383244061671388320430963331490701769134943942150067186497714953171191615050539715681730152136643014648618944731705247645044836886508763768013449407928946078953307270461159855063194104819959090084168542251369554136823035990979686082802822711887533061193967763429465175732955006292032568500685255380785282166124918363161243102597634212291741461417323286597885895092344876030446168083529947656496393844520171997369309618111687756352307507797677394908112437699900687586829362162727031461908381985113505759235415419660526638753574741736927917627790406249139819115050174413362889366722010544575189924550862049786224243430713646813022786308292360240846794536102915753794103572253001456099220188338708627322535577939898479221657861974640381223825376576590671333398048797112624268495893368453187423583987771296363379554004411925482945444989248187618016237394210645153790235864693850225029171830462284090271644469213331446224630020611481320688976358998928094656018618649619192666329605802357434536539711202228843286333594049289892389066383911088551684805308117236020471024334269332126667783134340001868585953179943864427592309483975895223125636412570816125461338682388956846230150009309048019220837479075501046974678425080533239937550298556168224708971513105295455308077664414105237119377817909495010567990789189374823793959775670453833752006329285400135635265558965880474293280126566103307143623384877223605829750774848979535480500200021096751269952936645036289810216576186591805022501367304105099109497038715477824570962882115915335837442245402717929107751894433896164069755764654757566804380512920330158713739295944770054065348788045872641736848278534832482616656136247006760765968048276479183039433661940094806218835962258204289254563469338821120130456452502793698697041893175360951972660504814645383737781611368231412227991264666806350987144601758028849002588869543086144743214499411748223401644032040934189644544877176628023920350606499021895275220313478786429295008005135332347095651892349803616499569827762935240265470504055359170423764444176201395430484759859225763716374399825663003948772877219082863399084528332347440524203522752352032525756274754428527499299056907675036486655139683161394951948160318618280729308400279981191766889036098498932406170119278284461885649684437285861904817327884742489606199819670638405184710911181471597398476430718449563387677810502651672533512925603264381449108561580081334454405209182395880352395361886305171604978229817232977454376172119119632462688055306175731599789373504340692142525699398617926099163623732828851129664962207372408170828099340421919204862596072106324895890959931354326301584861780184733697302147599503716624955544847137716376150176071835063623362736220917478882070675024256570838642072225223945005415925093783184004836603601658825956941092065192863613676679386962823629634762483908072182812708523777605209288633607700049855152959645422828928371288743873785389365937309436564514818392260931462361821192345092996572213132483200021364013072461574989571943436976502859348738473727587635274219571593264105782731993174723671345642509964576309287955430984355163774897877025060800070076202729981208699895147023333769632210701803081707682881354637979656164455579198306318872950572958733501071341383372109680853587798865935720635490532511822339260665349801738695360788906033847506574211961765635342132441189958428726430025084976829776823276561430486327653843773365636354686815878654863084955372155627821023136948900247633848004386985911937384056690956803785124158542451968377143846127749134161166650102908502081978526133613688056488603923940374201892809378069722034067217853762920207121458332361978947014084420189875966771614473695726691634413240015582634391510983939195600515146956767233969249147419130754226901186716465187109364918400104003562007798592756639629141467103685299257728892914921131505768114950150609104087966632696010839452841936787143804283205455707017447017881273821998801066165334600971574532891934550845309233301570417603593357777256271556047816559517483332506206587447614027699381326441730026464421178193497205216640930321301844841014230268145090113500639419138174822039484913138216842883175272281371925551079383899727668852863894348752866657432046663446045981593483870245656854024978255484476820802893412317048585174319318416538016651866017163262937366563005273403131079920083920383754082211742585530543673543704287837658584497556094872774901379100421735964698846017447070703309202931825219960978179972856177918747781423728441664066231909064308796785694979251873619173747138404078559077386446565751708131267078000971041576404739983619120726824836313791515224785888522156627604975896754170058821281610621405152866188105416967171437191402134851568791297770888618043835859345333800016164035738672838644787431133902295883466286064387312487896947264926041696259272176298172214067124462958215028368866367610747884375668694109458648590942302689683086600658527067528065601839454008671581119808895629272524377009921823954103498676340997483853793576259002141451083897525469820635713556838493665208769811420333847086492688500355257199167865175138249640955995633433840841398403732044546975867108637763633352957550339549108869355580846915219721678596579338775426959065565102184475903900526935367347031319554824613730448964220663419810089693365815976350909852292017048247729480492369116517878052646698801641191028397858101096756177915092355468344421352689657234523493381266848386380961579221047906252436056154966800038225665234245767830550508399522452696178441480892816659020780263148127644071745413948875426332142634217298346146578257902830332208099167090177150482575487787884956985959115787616294923217340231129428149245975573578613938888925111003711227346823417625592749413046056359443084039167946426960020244445607297389049880437537837989332094428782362318217303141754102656735887823766733611825506382071748705804393394314677728718517418782632944692207582203551704714318631813402648550677040764660121854731221458677816538346894678591532921651888549287519320975150823547401545648982867374120637144779330985326153567019141731385998778394764010908743300366449351379146306814030062981276547153031010545464132853487102225845244909467072492827363900052245775680885244602250796460272858064675620953781200931418573210039337229507514626790459291235309399615588243152530335663149523134834627887492436467657292402664459206856191761021803458145874495736385633025177545241988828218811989905784004443556994837126142829522283687638802129336340800401946789661349293724231514764236574578001319614151208098882908436162271802390167376071191448582305585844910655912344345139424343239856873133995051187468062397141923299114571893506244638341269199464309899444486532469445042152895390204137737129935523365682603896710317247598495707348088127329584803476433876102202994466177876385061436428106914448687161579392213307400078029997663309268040342836792510760811998157965704193691836339653390941784266654336991264528469507122918220647111790615983670461376946604268601077647005710948114531445863190584226780967534337683468340887446742848647792189361282150526410223002232482853825826860797462876781088128525135411888363790921938310754472018305897760599509229266671031021088148900513243656445935763824570937305628488649828821170009653842593967038979944326368206725265916695733477278556581898032851097261475111899959186806000581854648450310611596633760530092568822341098803150375124390012503767244164919285425261984095878511757632124005534182373754119815242699324362800528520138629370767014765637932547771554862547409512842158469758734441395010150215833703454305714310780212725784032307997042735810535288596474054134504422719709744602762070818831979300992113689583618007157566210796681450036526880214634562502432514525182398387317210384721940239110432058619931810876629230665635918873603516636151227033404669271773191526483494425269356871012523845341618769777836718920475196262131382314542278163831450281804902619878501556109831623295466737722431807321158233675614336899301116969327818349551813596662545151034044852236420076189464491718411834895355657485686152717853708620015466181474945089258731315456240113531391334243486453698182109423329476274170180411781720429629204535733956171093544139351496072776650846399511733210671603905151772130129893665682567521582973235478203794665383959714057692006678105961333771946312656815340320921263257501352187928953689625135953471422500219702532744018760044058610855398444346354889712147512325172036608631437714060485364943256703550845956915203048426850087549977544871435424646599853697369897419092683039493066823475444272737030978058454882935933770564703643171480743619793735780337644600674885899851637231142943853274748087652457694356974629452577704818468202142660724568334275208262347538759632294524213895873265995940059894362967268242150466367426413401196829169936664621185560719099972619878510856888933997234398422331750846070479185225123203863570352154550662873775184990675418012485547089199432742296194203478648175819066624566138289730055290157313870711158088434771572210289913200849591012630682848154431940799862430780740213131979560300685337902161581163691083694308937738929977105980682477507144781412886182978573043024633018840624617563872731684040721797216994595943892654784191420155145367474593939713677862911720225298986831867981200079055557809165434309656764335316035422827649136697649734489709577174074562566305592353744132411846004436583251186154765902439303955834354685132965093687136357374888045774443667479080161276715999191609841951867072917666382855195999937549470533515913803471607710008269134381111016883579300121849240509461562981126489805504107658441214084487043025277391617096371526748979306492156305076939077417688955881680841962211207527300692875397056684113539927535478132250375815984640166260913150450343357066345317360190041906217379858612271346261599355176759891065741338055743774731446234055488797420977651198121736232589500237393767019328675327791369721878904522540042892908244110292514644118255913086739788660960653006798705303547132594995059681295917428547124142653332152349801669851734481145474819402864804644685104175898118525148395404391357950074967841324629215835135919878959903667970902793362375605364036847431368043042938557200219745472324790939136682294599090016862669990875015313070478315777393726124404933608789251915464643876891159308377720418424920772244837265259183470727046613188449029877667340069462621416686653829197993407724626917459731313541206241530733300458956324256787627602291365565401538749294196361073490095749761732941640665633700668530812377778001274939453334693840747965441507629407184446360366579494114550298065081901367574834969641986171622291318770642594613941430215739081069766678210106272365741633915628533011607905316288404992481255901460762298559163603649523720256679674510145147572203222367768587937531177259269415976815578760359295343388756204589727472796964120061822412779320488487326191123734319288264205315355301457309769268526502277274490381116222571728510507276562758327662320453342753343448426144938528646559408105822394117094912195003821093503852065019273935100041791188704290876219294463278453028096980104694067568470485387657221420027367044233601559690540116551296421445637162819919457460028343625099580925005288304754345407850528910634019846305783166652979504292396983384419810233728095201010911961898193242226442853570193752276960158977819465468358179226683412164839467899370893543295158018551256458691584747473721458565357820591056041164086442033774817012938317751879842409229299840579926712375935728890981421320357751246580880455419867002880871152545403839940985062340128387513432389012517101280158040979647273120193220623979545661469540929003069011617212605736958015266976803186497883079289099412194106979991797934523229345593597659958635960185971578916873103559422787773999683728768500440437486665517491777590558378213883296823078095958959140356696493043460512024729042159127997865008512584399525671118603064418750882138393019744060842400182250307338855520141656407632343635557731825969032683589791878120273582955352086586560815731879548947712821367399137375750656061748985681340910934511644594437244418518186355176161620499070251493247412173609974798748593796497686583572277695181943375313821543532226924765757963086377122361957063900741571848767841576096329889788374726846849153593850449131595866828798356730003932355142889488504197718209672216253722267457131949414280087406087465036809353402063898988537524408196114762274220908410874699142757437429160488014974195383993831191249359085695473037233247690441786200417410441595857092497123415916017376851930244918312814705346789674743973049456358413446109383472298664568734589227369175602163887490425304159096857153884732865797746019865491571374489931936826134890273580029244189129140183177029163873168250692133968205284850810850785270702361971267708817273137460834302631872936729842551259140800172610686487640688321063698619619300797739433744883438154903786716538986202002926690155621628726589315718241261338930668051035934549223123586165893987850446491438389476828268044330076689274208518931479451704876658365543819517258523615754157237944766149984464100212616734881754156691131618740130754256538884840245843308216316448116203092138494913795152093948532901109658631308651791429096747126415547400651875668417873267125960341128903747306937644470940721944219306711418900017592113554765762469489140640589462019123062269529159427355879196183818628165917249003547855112585006902023782733686353649857469937402456909420252786189311674609483902301555402242822492185783695721381976104487026626956251826369957777877119926900838160959558095590600500448829610779243243701745043056080298548575890009425418842746955818540294783461288228303774613989925698795005282459984842996341990099387035601124520902920995860711327058443168948390722298272873367336450494281363174653102577663228082608004552167703321133859935839053444799227895239849636161449735146113214707953101924872940153917501773033881685889797098817251872695083064599828221515994758231730623556217092274040006757242395942857642203467975486093531867640645499823301767719497897501159791831272747312727982107558788707068266085792499307454760619218983034079542361109481953144959913188718755669041826950663675497719189580824420512624796466936136334460020056064364802520316500798872891595410020301588376416930442297541952370564505143275486363540072861613769542603756972900761827558407361751982237999282448146107925036136097276276660133395852213403183708360157872487072367339158455064610682017545400054394413890787366714880597735014275176497942148175907266360503521952406658387037374272109702884156826542946327230794530975081908049465552632653947118176312748521571389342201479267935517685477910002190672821255564981228208118026307079667677112217729511669708087286371939915989832610876361648167542183892511964428771810214464726109192500772306480063608699683868516313356148189124443271744992065710949895395147853857326619330290454607495538990353655347825988490145715604588409732132543816822470104871312526366852378363701277095108832543067800828687431320173750149815170666036282111971128966999228038609947115384391806554805598441635900132117583235539786280803077302264823130718814470904371590386238718919139444972116210526008553440763346624165556700140732281222254497167956700640290602088678428941294652466433848820432938443562179343002523626480276398122236342028746247847576311380911138011723687049127022213428088108458074391750919492998302554943688210967102963151634137059178304820139849491874278588065204765762087760409628979315272442925520611503165149830551680649876598669126795880818312044102973203191055180149414909647430139900699382931954476300729016965594877691129652590722083466015297890747412147442943379473631114292980398893087448281076920202312958005082627906438944888297084573748759685807582576679016259149647029270234325251702380619395508608107580718399730124635377181362154574249748800158622639680666750873698009074026079182329850029825053069262551990972724487798798885340630495033717419203571970860692270785159451344540645264427996836880131943023604681612655338101227522747768825908711478661966909306402254100437378436154524166845187034310567810274276221236766102799797004432544730303593959080433544954734272840571521934543674042179732329416575996894905234957044986029401555749270815036390188416644057138213667192929860827794594582153746075466990562988614579405647338022623605337998340268374089588463111387162404728681575998975091308974281502162744598317603890586148412540323490789950544915196258560780681602787482247083510400351839878511990644681452757878589552425159642533146357546312931657721250596623339401797877761064025960313643471984879835849521566321024085207220251728621903715811697156510513256636966142391629747980300728342296066826831373995686282014241385679694102972636286909560000318426735605920743724152665793214627556230077376403727245648846718559898467744424785626338574142725810202765791366473349634206300718147921443224722377009824648694923935611641294615123971255717519811718558992809331535151485416761410433792167119966978451608973784666013960367579871476094400880779271640161306672407145761859438101050600945048711150768916199388769197038971014082296862985797651602619620079097482786659738273600558520408246540805221279174639087270988997755797182359124921324959357955037183957377078400935260510266897286706358190741284035353371100734217207250803986995051994174972415754568577576321459012995601051906613273954927810669804700731925836867878694110054120458411261390561899353858974187258680005032197181339814224905625787996336028500324514290461917063302770894768360182766883193390537821045092207354878048682630067477412947122146848074134491446163463488015191382358776619330866530427857917238772844023159915491418883034880905875309897284587018437411672943138550229743260582265904769452335671829353674374017406806301530792478406214595782353632623122578216891480590517019403356705058389689740097568793711740189646364562204382312729712980523626871601751100934166417932459778363422617619050780534728560588720688175306443358842872324111219684675864954219857891390657071948102561183874004921289296528782555828935810777062436057468605453667520023548428532123925209930074013671209637474890421317795617982237702278210697842924765314482618202509970235272439149703088154507668234078817070143789579662960130908999120559578711167429214287899893811009849241435791119670213203704661965988215195963631191122927213721629418990451123831590334683892511010269626650631919123365238172004261517002081416064619562592433886163818351892335706267249944345914301266171900677095398523675545409633559257574498985372765979840191874502151300727678029524545263282127984071721151939271716140112179227449754186767706734426496405940813046799824139392311971549763465418652030901379162184422538077464532351957226992565870738405805595263340396842745504348981006632222862036121341914900230588059015984746539738477126006112571119516621150555450366777712062380528680036227759316244182246179561877907858278162108408486567035084363671144003818395143242738897048807827052961525603184791421956868374762450648335741949604398197528399580412378550805524172355274959231556840434304231013244427321723981490123602841821540024077838942514192628133087787364309076170421546617000408428406182657714820747754131362741804782218033598567659502241194865511379662338134298745566092950986209259681464058843010982356176860755648271491658491354598133750736485028550587643928901392127328137380634320849780024424630584993373983127468195386783220542739156093632314777090237960865973407771388574238617771711865092184939750782594939964519856945503454477674421569858560892076997969118957065752600945738846867852653518533365161196905765205604594624671806764500734166158203679847732469302286447508353087050422102058694619011447834692703978566020272703792769274701501794000893229740753601770772592982130055631157597451784929499487999404826070625908015254613036472452607481998023882469149063622145509782965938873593051046274205854033265716624129762989261286769216213277345085927554502388720255918764439247867403573276225847931946573037987851631948796893620274490231649728668371646620682609955020073688586481743194703542996482624237685782681946421093391399290357609427348467067769384276835689064380530570958232312403965833532491980554427015594892975601123957197089475705443935218943899778164373531866303733992390767504161169324162482061991469545043095262389642669951039863649008051569083842532637649022704376663284030368708841618748025882330625995624467297247770835540937885455352068658974953545761690956410422367624511464220070726642182200881683713261980639822335782294576035169512850463613545545330562756019868957519054379549094251632627663437389581845069959608905496026846617221652684942994155429436610835613006683372891743982331662520217232488742430625284331664565753204665583527549453553446340621427551922017201220264183890688639163166735467384273147791911457637688446555029131630158640623029572419113174786969865957050413705475445577844593459518705001871553096374406449857456077106434303707041771567828361531106097576900796010319825619972559664537359219933603790743058454315699017809329184445612094111683440103243695877664816955263382722082356324899800434887969221197321257490992423778050314351644309803395871072032640794366025433464901309819591413036897470622348656573859294236391287831576668839494457818828364768421394054655883600493699360731975459624983241642974571974634444134289733239709666757054366048765833848266135626412924917434936846879588495340807573511861972830546356443747750307635236843125560019871933377206468799148382344505699363164120291066535314658927035640446663150532384742387702032513931663955053397036514731335989281089190368970454586459676724975819410155996462509801229315664348739459438056017406173669547380966475359235336972144132625207969143574365222721311351510391110516776949905945283873947803401821973526890682104162579881514753880034562178176037696724205507654960288254387070059466508352092110995582273312479972671243003875465303281153090161398138026998219064435213651857980091289753702998871631229243751922019048503858237448048099873537534635656844780572413451081290312269670186957254070496804639748535032448311698214874122086125218760464409853045964603159318966714530443162763307667444612105451608776503589581648425316628195902058565252193267947010618127766133644391422895191557683935156524337360843496093951478733383093132969339360111236752827840139809445307526570304093710438421011896247929788368273108370656152624801791968371168786049322707250431117816754943414256298999175519077315761569634372285308230695186454586219477112999626979710545651303410995435056031941748252768457388806924657010460705136901328111454713570208670580588723055841130610094118231827421425544152543593661952394991115318863216804558664532122483029275957793920558302983301577803007350513118422959791935439384726703479248226190897791083432138278488460959924936736976499274496501967415211763711404369796375923521566394359544498723572880983390240342934593831394320798804881151240725474510796688527196031615462033724644479374415308107723959734487313302470806237875675606265594128615898570205906952119485714796487710663092012595982698120543203964366269236115939752470904446625924082546798500626995579799238738203341625695659559585601699732578110831290295103639078506150566789161190512410339392985678888087826992119555565231036139722776171643359641004780944184542694475258273243134995166514733526853727772312465898239038519485219795884722167617261686206214383323366160356142968730653267841363264357379043783815122244807515514423444617137862540353531413317844770343440232437858692087816373886965663286614980795851766620306654282011615778769526289002368157662165425681910128800386740741349810386776345998845562317892796000799902822729549858595804539920389326922132628959964248367536445100123304020771907425125189779500074417285453113504374412924229065126503491197719660353037530285930102639514461256743730734028303410736156779066325903444543063750753956479541405821450771815812444189154372845427394024719998568691701424770125434919188084990429921014261499963261874502702172857606617123379960158738324340843290901027848216021127636940707674068400593398287681504277513531180412417882959886390190598854214086876298336650259698878876648851233859491037309139915155748393222541136571695867657746266445254713322371545693793031276993392033263343427790227350603118717157316623861219459333373003678442394597868300062287516286738694709058788901270664052387101953947467144633682024025687683133286799910060406178523644220481869155050741346345691646397621887225824057528754255658433359505599582818079144563941404272299720388434030407243774090505656024841195126278946150237062312004681161120576875808180401632362453426858328808720637926694077625040958456361405320768438188027791320333466121726919092891438565673424997992323877815751146538616331829384126828896451664785909758848379669056586421963042121439982739050621755517777662617910112132928701841102698717914866165661180890649975933873937411442978100357203205941466659291804273362739574623894719586123962187597309648827139224604874393591398831988254823990346439614280377390138845170184712055138256863708233166699960996432990961410837166474621157822137015164722121518033296727299734543454285896755434557903262421564986550865606066869924726525356884006857008044714269780970080640103664687062197299801928971746908638438888606170625134559956153819702614156103704630738762316931711824156688381673209717272873322210237444483792171232746321103731606860490601250454484998341259506080467621544219859333089431391130422417860856036415448974797536133766780686925522311312873983696548227561601805048739935697056358663529528783925775013657151059058850436829918784649216706237028599525973723990510195842658982268572518913036890388340366015126758424491730129368152583228673395850014686069861329168933579787231046778655616351675389950135081049065484393535623385192593013696063785935434147333091871942186753289981140445513011716688848524172631521670416131066273401983624056574154671221747058277885387044423050890308700828364762904518235555801352107353527779694372993574296599060044693580835132797422334797145355326723252733531042960947354169606400774609517218034839708822861419861823962055093493332662097420733958398948660236668132037896877550349185527772996371195889036852640524104575116515324859844623548128280809208264491602243546064077786382868559960790087674506910238777469218972430402305540717973970068135576276557429666727599256811471005466079913036262555670609687316065319333507652128500831772222486824437815394037143746949539418508914801755672397365231846086137218319828336780764216015574873566948598035469201840275179210402137155159148349895983042433689736930700249722852193208019878629880913786626032977752386689410132594292605397147536979442053292207832141823988469507432409870084618800929217257368858285526346291620786177205544072060576043953750573194029322715281321078136420850567232788895432363574294218973721420237117641662187963205816609090245418619948249994033866069739406917050053248861658626960256159013126684792728747111705289975586626688023258306320397544089286952909840201911259604527682224844935906197741668738930271048196554536585406684143296415635221395626533511770061805996205363246524555482599013473428617598570362303599021453404034004125774722734455154929207832528762264172681432837971045212480289335850972096325672952579150644309881161477430627829141452599102570838665924654301332553074302791256287373294087991345298779354749724050291840755967828594653916774895234139526637257562831127149717036422895018977548805123600858109168155741782174353038307076900823626639674435426996915735595668140476546350257029826482304608765560076214900894784246442953119969219998572533822103503922047956996256675274875443126775341122810789250036463024424277422320788018520200720254527062170387158864795410473760865591185899638489852067188892807862024395228761877826840208831496269371686333771781709283335491364258236196711236999870444433151160855034951838130371719403825036001924695236439904892798792783548030296203098383296485230322974017171534851984668604962753934931582006869951206302698527491992585705852518364926325324217045643212380721620981296515526868026703414105568668256174816107538070625245615052572363941572107124844819440665050724559947928084935287294584553159812532836597130345497174297986025179785339471282984160832806972282295536575983752038384105053894028912711314179621491142044643989678513384907730042177882280065805862768318148670793058838369056288725633523682419713252736116146919743603414082618837829133556043776196764819926294590153317100803721056931418449063169532230176779175166504764515882331229704781047493322745728157806404139169945651058937332927911965348759594636817558443681440313142921197163653951002284986972651379517493265468620106978606834635075535260813582005047536384770578051867566977879594683152543601790165308629667530455197812094398350817224224630528909741919488648340493313402918674465721698133968369666529164316117782112119030600884754978864582596704627646189736797622482371963574204551411767098403877796965055506749586425540379024752585667046445464243085098297718590867388431035834001575288339878659592985441295698939792204329683338487978949565271272240374127833191216145994471256071669943290869670145424646767845010162858555830783995188283666370701334565150577385494143370302349728697460777015284738697497939691928198991935284401878901786873395316257717444741958606420013397847403821252318453895583055739192789322584240887428630962156814077262347871782577186847167243076946168418994234482601933106697999293289872968746759868567273277230798676714349424808332418465517236255880433759433858325287180521736596008843887920910470602401067342823666902543714021030277588588648338918428361827977868946702264034881035070276135042842580254839965736146286924179272221062103868003816116691848966599116534092658545460017807293001794433384761336852009234407631658433342146885975063943258185904371007448417476910680188061200349498745947865638273281050407274095951484456782081467238827819790355631392965906631411976773566462652638052195474051635585981520172789439415336547009103579564623154874097775152842439096642999842840048055495956694254758116758749338672015111306618674143343671846832780796149632853732916251858426974141851900886716968087627749352578089491544236984208066718919802210814797626314734708956951615109028151787808964918149609204474577548278502761396570502448709886519698122971823979205535398135258211144868695702678411680897226168142074958128670471594267178784123002308120080131340269886749270220283913192554523645027167515593156854384192774070701107831840615771395351602330014095613698567776159234839772080488498724304417729264795931122690734981821113393483075424252533926411660337534940287768178354378248753018560136962886939285858904498578883186944537604581333490039350006531896001094392954747597960244750515010649802403049685343224706681234507371577230254209744274482152692316918973179276593937009330241060067504785015586790309776561654361409855913308533722880163228289616637829890189688854000932279232462469223274321723653489096989491796022085947767825791292154579788980828093200660840923384843850511439256278488272523703317811062877226776394948788814984207251789550189645939428126164046196519657372743260791148963200028845410408077656943997657745904860523027479897965018296224528573314947735146566478750234907505996069603338848116671043850466439077221494362291104344269042030116757293176788735831603009970042670620465306464797115856241778138313567976850654409374121100965251161413082975459377075615760601528574885032632545089561082261968181015890351069988163508557235803419898696979865615609860044553965575809267130543857198806906513481713937782742193403497270702000560009184563220121015747575580696853263445001130509510819156116689812436043954411592996578575633070950352971291613243174158720175906946077775678165224708881073354375083640331519041660128360754082970286911085421290791011523220128074566870856463414643162683531281684306050115744832037449200631186184011298347308371761686436808738659326326122886896684423254567976866147999859050504732562262021080365050155329958604801431850736043608472914072352921078594023522655561308761461924380240816396492431197301481683757162897052698642597931025708506013212808949510917486701171831073459718958140967121835213917520349677177261890388244673503710814573961553508685958559372000410749951247275994524038984931256328300748045775773798600314094975160328691311772863358312795080112698786113444817670731760728627776898030570147113275860786058605565163265871231653247369632485271675132108221862007681669808200727397867528181018697091583286359917507147003474701446082836894413527334864379345717999004480389918054193718797620048214684356886581840594425523405920180891910748837384040599161076570538725564320893953424405495992817891580022350671627656540172596900063664743196480135207101410532435569320935792911294134193283048353861072284636300568985850468051177570877200476316871035087952597692852781218882450090741518226862451413724041039783646232490794308513876570368562884721229581969968730221471940231784153117433492728292275947776307836847862518399084058377406901641535289793263656802912546376682513447584400273453495771865661871063420644931601377044062943996798424909612267614364240157303740875161943790973213598187165361879861679526372988503287860617216799859864624231385089544081460284230666569652661303320110938743188533158415851978169463327923773736229805477212182156919649600966656926276232689682819691115542219258042815263546369218625740603641850125976438472252945397824220528293063179149290758872170284888196514232682988879098952217794270703474602480046668360349309750894636779099568545809389069533437881463049606271278425814491209369828753361902621705462861908497400077556882703594537423225121630214816657158859989960157712749925456042315880220149142977548567366974973273939772188375570023554940042148125738204590040940561943236283347743036773464664310100696014851609817765221106605294030699013218403713859500750585824725320474641000169387573466785494559433665896495375208693231878384127894954413676003061549405431317628315812989420049389259941742573271983888351563345311708014278845714946657202218361930290896022261783431058332389849037179908613426001514124594702170412629430306694209235747412228735575503936052491623975764920856381253642931116803522856044634426082379849336019544797819300776372862171676270972856329881495037022127831888419460930606163170708209077123601081238593847733000247525328742618067739320619353951349010020598825492633390623714458459811380720923763156460554248899921453554568221503592400365973466898268645629555291764711766631051031123770274836508156640707763691147315312044800282315503129822868325083402225930418833753596112231692814438916630712560407913935198316833413033960304787010294345878878912782315986452876731697518230839239271578690961284153300766029092508557862339413409634131484892220348898046989913478429756301593612909774181245907196406983680602173294553821809931410708139562723348074665729542358949513681497969257476423728358265867724436256045804177092973859087337548904670654838396595275955832397126861966635118550787871546061685358227367075010806887498425015265444289953749403812072342983749547627860982947293488271867554842575292128830158265134824977083477902363591335595865003904239292125822169337448865920001267870489078592725463774738331938142272821450971176316357852493788769865734312809309931160538846533977373395320578201208898109511915916985348906184285197111911223282180863417195706193033779593017486263615938043817939719407682113707518342977445575668137600003415838220995314638725679936542762861362922429689612117604692797455007873999288065715556418067377352268180680148833499621044315454786449964141469984953808418679623042545015094230607216892263260944499299916250893181339147704227386740603877582664102806073217544236228739866046426204301200299735877362287177000743654730059442292523258235135701969010144305334220348505404022310932033059419971106224622547580050389212410911120771547427154313209627177414722301326292513491844762840260330071644975972385781705837887321828608219214873941412665499766208306031055021422834636234252537000846557788631743447921733154496042639998051134314269658320222910174911717725669311512085007674604458354634603906574522670772611190801037298096113005779461075361533675238384069904599453074059138674758954911806629675277532762812043830875465424432416298138196060810923283402394831339420601127707492950224303034503124892962750331560917447570155493046085824923478404668267114877799198682078539937034401076243800235795087160620622814740299494645728663880309275539294910250938340910836270383315914553881669199753217779878674515277023524271061680176766444220684028931952025822543644139049877719677151050315825723456681339926167031339580786926659977625356668961538938969974859265368091055097322289203377839812043680875395791308467007680459218012355799617794611571884217172408299594817335158010311669633606337062467130018266016993559235963309213378541067626411900362283046895143828002235774048102236025002836551442918554426401752860937751925894667410380280553314223712606445992990616472580372309867705682184533361790755245115031870971248543087455912242904610402641940401388804883438944575610453635683649661580578646663175051694138090358894565328670310441576086371783821257458171817901075476640297660189399702729108080185966988488688961438046589660780647027498421859904291706253303800647651587669085568975313898014745283267565047042563531664830069047481041604010640931277320562886614289210922313433897163087801744834948852546603117549277479088149332185170038059462714883314482563953599777750864305761769884849550234167501903367597414750744351317877370970118071656754520475536791422862350217395937876959807025347460474300522891572822631205154161165872784849330255556167373248942489704388790666661522328501689131134653208966111768105840187691137406844978011662770560095385150672065433283155101289855577617623720021835192477662185100274857667408782092850167514212216348344691125869375094064036490043376571135865172307926706065266823825174804933448383408863788727271037222259030765837321415271381536489548760017183936383044987507479499727855599283293897505506483249495000774310850142217286488241288451686475911490480707256772963407603179481014337099484679438275981593280843202269483152667049970535775590280275211332266375382257592607231813129477092193016184369140581908352674321707558865236066411994499573024728417308722940436416957485255527418294766084333713975824241814258423172410797264575362848095571114307851937252417614826779223919175905062667599022830046786030088672889525905994478976411930192339454173104642095294568225747510678503572705007397964897350397493926093555484654887063151539750862739064193860020469576480571444432627109113405563690010665996993823990893685442116307658961749557882877678596231674659643524048714137132188228371861771996701380207539724788707542115284346998427182908588873586440067825064380136258669666858472846716216022703402517821181115649452695529560192931169839368248494881942484483591965724661398556073475335123265400949049215337053250652335342015464112200064683017990281164106019671697972263045349178416824664035854978613833011334089321850768568094276075693995419868612466173499810329143147559096700942446601145444109769708116999368165471501484085133746331755548306285766538463056463125205181658264628224322296925569853356620781872634298506947736505634343949918385939022337139796770763225094172443966909395039695066638593278523124103378250622654676459779618362898273831086972943299572613223400011986258436819149234512010896022053476254567522173293579916889671542371032792031395179187034271291975535913401263690104643678615105523567170944551351692687730928418137834790202427087380682678434140226782765183616829667732574102192418209710924916621491521302348141718424725884081114016339475314149722979564186962074670525997037132566798582781756349922652904429234408278122356006668616765917905312452218146613197746966760111338013250519654973013132577765532553031898368446560515700846747851064567983253684278929889082715319696583273194986506629819065925603173021933069383629413834000296741219646674037897505435760724899931281965966004863728082270903068185555667000885277845886335402909362856025722683209452221839215206758573705453561178619557658820814913473158902013318694881640101214280648897985352083474525643297954436265967796179930551425065732215939868104395245318374850405016491028055553208253514103929229256290700757473687583683779588678420592709059468218771601267878640998104483373467479607814823285300789985322598277021104681482463761479760421965389361961942273385011616921519165453204279444140366173963295735184514063618151993621217045201397244348529084704620739891317288078256234744994092429019965281141817332463562441852948181029510586924108237358389216991948193871474167453925725542790268866619116844690645501875813236890528068596215405370206587539815305673832793579433914661120877315552743938128354967129478079457772848519895328496283219733862044391736682340331611438842104437340376406416705817494988455492908878584575436101173703237027051093366071408232626245164122104084271399715875629406734136835262620637507032469661470016061393919363240275611189805623402234881685937229432904414174183278294614715809306472524608791413423374659203779439472531139896265826447890731415578261302463863917831911346201590959273758138648033168850715936940913881702646606996466996682141271189175006400909017007602896678075159998944215756510472672931849585914619180707139065359771095107955489267009801207105352194617419634573570126076439720417870207545876839915834633471612456366139960636354645047316778150623497300739968307217928518450294062974147007255048618215980807490066043778442581971255601645279544769539005178167618323644773428219721166807837024109245901111704517059176340757884111310825673702949250428762343396335429961094144381151953765319799366752865026955160401098508610614584127834808089310611453987051669522778654096641402888058402127280202126901063811666919028037184166997623649369516700830984575805524437162615246056999376657686553959732350577436569431778614764004039488245703982579427809428048421278721931707692968499465517032717345192607473601643814422421749107531988768094840310817354192682167772910271326550930069419472905415102501928961652316719004531705716673142425440908203754786143184167713194219756486516266939409396682151505192978301831534565504154876353020090994986920297226595256913978528740595539004471479113371443817630389062813157901059735265049645652079983286999644173525341413124203576015754657562455481618281369815834483290416525207877885805025691809180105178825509453132631704350415048547097277155401187986653219078429799517768581962057195420612894739831207439689079181238598188520456248502809712073833355922869869371477460102028515968044475830613042308414461769173995498784747990793643344577076907013673069779389460584432523337578559895942090177589460509099489900926510137987396566245056634722377332996147234334675719337160856972177745198782120971772282247727684739660776272168469970862942575484386765257774885182213808741349434372464117400559863720273238587184858606792956911651168200623160833185117491013573170442387615972468778862199066862962213550591811789556453235830054650169133614824851898835393900523633513668436736024017856190564614385258557609828556342928023408588939709384433942165402877023719123855512696554982652034329750195432874988920460606845120376883382190452842823378396469112183341218649904737744093091157806370978186434740067690051640998470025946984831347699895012754400590055892627919572353001914165224557169721225498103251187764656023605211640694935334406661516943511158280747237347416047706234897437255893538478638278809695689215696618244008094690617765910837338450905774461418589549820624307032723036750002673028460928682681167974386187255026089874239611189188797981485364932107164860190024046187120104085812512397846690063139529538892822132700844666493192312337180991270478692370133083892794727841346493847041378670960626669375187685187649089555877138369019259927010118921801001972734162863748528484494456760256057215218918968683059318646301953461281161046794364505268487884979888730517017276808738756863391205630718335516764011355166214141026905817745155377351244521210292392409615172638922682610099464874155051454430107177703882434298721650223014981824865043599287448663707140400478792918697823698688965104057682557241379976452339864999854868936911626534177118264519910995670604786937567080700833780679888229955770102596828049113975930107915943627932556477719079464373037601605288641784654761990582781614244421178157548463624824135052656797379484603259740958123672225700642477672204764735204516517143050707091759686138808178995970557831656130806479914532653582381084888733815035105543009471826745544275335055551273171192989332735070383780675020010863114146020103415083734634928935395228169823476862834501130668586836898134406691373165117546405998916456258025855233803835648691677015011340156783531126063442652292806339053225710632176320704180889359492714821344300206794702603541870696273780773706037637606261284321308082472600476623005394935746286120767417945560773521404351620164249779015400231439747908481629346074856803494628160796368871929806722593068460423058662663553371515493495341762734042408062295800388119407550613712435759747907114522826496249466285235660442324156334672542326300983325424928718284494219319117268548208203210395253165330878614980818375070361446360626709458633343703897994905991592959685955771275008906416063302251760732865530815606333261720400520571864775462150606514490508189763226076560439290946680018003625498358148322261667306819973612640470242743241759450878987086738663741933488653200192152867895700473826247461417587849715190181633876083739118993529720493902652427470613566275226431091321656647878746527049745630691538660692564694987695651272118898041078212385766838608491928199858208898637060587861891892174482465071452222205041646772797964706995628535995268604741249981288873726983401500539913697876692548302179138650609860685184778821228338510213376336860943144509244658564423923086065927508111946676600454840317180402474590332465203499333387794643732515579942529400018977088380833983648083055373839279879661249482156242415447526884582769996078385701574892151910010938563808764414713331837665032449956303614455502262869851863383207685477579179720145592973202666657962546100375510602206221175185457880916178825278814189616477071745316011201511125641262605397704598114285716797249460250938218515865844847729459629315669037150550689044030117283725644514446621994662662288867213105998194473150514533812044777121090884377049702011439985770367663973552728325239891925404415818747628526785264862596341722528745190344197250741959194784299211337122675637600944283448688988676537455881634625121354687566308393315396630588868675592668926420826704843678014988895918677277291677534842778607840642178062602286576735823864962854621394797591880101673038324821897930648443171026161046121810244155463538357769564447733757077995330441090247474566748066450358285405233731350565149485379257971662561096400286732568082057073719541986818814690099581172085037719910331035616007398120995573261376062241255779645092678712909334144128151149176030577044948843947512581272068071385076746849553806808765219224768979787279487374532953969909879859811374865174909223993914349693663232529215518059629333130276763973473229951013668418046411630523385784482883035532609258699433313341674696710722583206855914722177202393319644827347196654465939808928490196848880890821355717131401459716816268576680775058179333601093083482286171999642748024246166772261815093451159004417791710778074302674175066699983451397004982971016558200585963226644444112311646466102426582029169446518198291182671901381134513749062491190882421343888610282306730690622648307441961076610527118484173290626966285239436194512037306036259818451126280521811103487523268176665137006000103342812613777229754770273749887446478428735516637243651231377973092490959086638133199613050576981222956863220621852654337122319441062427530338690491643914890558746080026013601107343143991835419196204798499026601089201888145290822414558452827727266046148018829982936390113440705262671966377740308220571677970414600644167010502289860871328325714624475499779896581580175233443529836010274185728807551938297104817031492246213015829757422419790423701835092570939704772922309473099575654311194630732751691776199689827379578973020305275912886048647710218260284612662656701099684996982754514993982206765047938980585163677371534330294577131508709144295337231655902222209620618151626516365084583154674980944338741054281675297417770703525194906934898737156593489225610321619463998882822805486889091281090396001176819293655422622474223941340222967880308291637943978606406510654232771575079344424741721388751001199812393144080622752021388778352443556953850164268202295160145424922630527382411967892026977292995580209446312152492942940597492815178491241757194262815370000314189636899453501917999157348955757003182714150637040425955324126890894904214028125736522249442996246341105746120072965795189322993375911264832258947888189901911919804045326688041787190825561506851152697449975827056179158164336821218440302406341176905408783985910732403558249415942771331422330486102751592820106926529100605087836786386424009971381246799066318652717856231460877340267048737767328150121604535519265567194550140858897692185215874592238248058327163117620268741299026761142717805583030706462808573182015304474635067664847933245100982018707730368226928107844866100290777162965547523627560916140949686364399060225146755197120699811034067328631485541539893948816474830436397955929794499739593309931139880815049556229761147418898540455327458643277945457666875868440710190561249013756310549472756405623420356520663649392793445498669215874167760125170763765289112074995821907893695974212031674087282033333597494862367530050834094523888285751956634480151116454151987336685640471241090370563054430332013957924086012985170128132191002518369346151835002323148571032273664207608845110784645805702653307957701232106588618312742680508120415701370134477921032408984800304574665293170719274532321972321544792206282232572905530360929280800279484353584740323865887950299242023500428658499647186079920925131981270984255930185419767988661378480781567421481646176679273709341433301783279798108079090853035945309877397957025940601668579295374354432639951484588781562586498814421201792982570360950515021581493713906738841263086790715641374182315941421960013438521302875158789032391197710511290567632136676955983272510970994638223992057209776683333851173174765554475729082428921803577891623235240877693931917314993777851440340873474642164732518555884785219155841932920260914130135422569235560572637038893893297630132758749463323398866321481352438927220062800274324578659541196924867365853875878200935834802222602578076814422957989638291660763320732428974818450810024708817686814301731852313955873475924295779812787150535500296908042352899389418553928175462185560073534923394096439236759566836582880219828368262872162751044532261665647374534404016020928709288446692223211257602444964070321152161988688137684581161076843547759395989710393907204909437128895138367040991916034370012233176925561944744224594439327898854103423097082252777154633393895642004567447290686113419692747543653985932400703873297679304473615201522517005389295072056578246292849677012652500079198460146933479437614537977068196665897669880241548457865966969984062051229523877887307947349669640166436344872518600801488818892026412731339044499079387955962688512601187785450288935520238677061168126985484695212306806015202693209689473130748965866140334780952907394347673622031432525439916168405511596111754718589715254397123545019626233438275173364151061605077146604748999429505040623382362481633302748045523369673929120927195084498219476405472934630121455998086960870383489244093158555342346173868532112853964009477124894983431192930380885368489451237851834433317258045630357461124724277572386113402449718247521458283624566233958886967627303029857162281119602465065244793574132847156605744175574452271405994531396332940877587532549245662926421585353511548219112337075265673091326122979648115689440256154914085585980361891558264865765496271196465301475394353190174816743370543063260319924720200895622485601312399375795597082258727483579191715540713452498665340612081741517733194505869078033473070408492765200527962155964351375306933096977892094925663099646766256102756373181959699818467011309574936404745097088646627786426245965401504733703555019955978080733543842413412156689843530226738064969823321411816402766771824542886889724413016646059875474159181475245043584289688911179848705059913765319647481785272083320572031535529722306693429870133741316833714068244499460302091797245763323105709715597792735254901871316258417479691902092716706153232186091530229441710969768601354693820321317336896058884608028244341198059308618635542332486468013899837338861032739721549146472180228307709938048609371027818784106342841551371644034416213045657615808230770242392611557409813904682763379151055842217844449244395422759901656822923100701878850231210926798194228974910172740791779900262039278680327619962179755613915578475269669879393572921629616452325003245817650779980852920408389533935264182188860602729119724411617030641677889684727871787401153654682366537121269064585633414443969834370280424841189791587344669265056846453670917896290672404005666317952557518283386776737128308262817454455394405752411790815093857069004153363353812663995833553498546823293281157721122076287260849214101345793064758936250722423886746175742143456492703588627988059051070264392222244119536514221183858893921199308085048386543396432124440631466698267187126492311707042655866872488067702029678973497706701021794223869177336521860459364711450544782981360223988487686477890274067054608736571076750917771104554712685226640542919436231206645499763634278207071644286681437530723745675757392530830231329638513454244485923234248943798496069747356404744585148949000063891434286564418106370432372342391933161675147977376625116484226033598963619639355664252206972565256840469573030918605977652412418354339923558963383345751971528328652068523923993693618356751958522826931952129858732542661827611461832379979042294946889113701710465229609025127775152165708292979947834702337148351057776233684719985444647886458315562391819375850869667500749035222784559640701379585478104367035756828308208193723887768725376458492849794822085931184127690197863779053449252673602273007592880242916656965260010781448159440257926270427273559089202813359404597715713385750189775578731584149464670971274161497082679789211497885287537303460662538516107238199201806998621042920347787075355374902328671150838727617668558966993174793324414307401284981207449876832402562398537026612661484811787799761783698753855380328653293750651591907627472132820687551275535096793510668845662488470814564820041873657077011683295843128545235225374928161768279724991744205773226209806256747592651450838524766264351267445162452597324191451300494758270924363839597187399445831942290532864909777763462467997848416201357337120720713541210972228431270446863804343632084635664409991852577460716569641794121928477717368458295218688222995708349009081731266773419244663331929773621689996919406741468168369226450424775531794156460468326536377027438764280452260743876100010040805824529724362688004917777683601015167691811212820769171255959054662959829737712090532219514159815353138023643217138801642949966573811706461706159469250787980268608238979289850944415377345818605099391662785408337384689545452154918332828890045542092764703807273124059501259165395093524499722273853328312589760205637897623632884569032872019671072715572706709658083705416601527036886826132706822700715525009979623332880751681983399384869009631218414140082206312405803593692804611234111929955302010217232455097909066604439772850649352969813848033239911654382927038088851488331467546085907646567798834856283069272334578167088006807421374038156860753040831476808433668199924141845616739229125925927881878005109631377835209180833511870193346427770838926122873783385386749522653079527096260427540825676189716527424068528392141855944133329511591470213804236179096948888136445400123263402921970116865368071071680224174588741324875930156903893124705319941628839058513428692990364110111093032006612039797604293192710122172093399079659677014120702526033404787962069743983647245563490716987002703757496659856699609024204815492216164997060634307330009308382201615759010549812253202355510528113945464624303186958731332452827861496262740280102298795126514832790013196590193626304575527916477298058206565381890295402280715170524223329315736015891797033412114494260541263380514081861069836050254300447606819996424423763138003180099601659923686723704126587743662668181145674784440290920019057946860295297606561812747659146212720344856450919607771909985256302384268175712870069741977525816349086541952280942352956745319132400113218123726921978128325223870993980501990776296712481752571899428423748924670085253746070542143607505565296445064464428550125505386051972998817783953917175194979822449737451713122224800693344417340099413039604236899546494552211860800672499440009889869995242189144280023595888152761141042244007973493667335088626382973432230469963593753272688026499153036216025787274511675885838502835560009516079671458594453783748349317927516674568727262827411626711963389090070647847164544017997689909995473812896543535766568271390905358673123894075671907296318117407459973833231065426028087115520322634786233678339599120219968364690230441510314972929204615450531777756449203624407736055397011823470949825789680993751717790953972168876880784789476435279029705903622152563769963057025036439965354318145400506115826482738844657084783948493235129007562030715563113467708356149954853144813084579514631680868086471579431837615335584948380343058587810134996035689069367834295929909872188299460306332535309994913046702174914790012640333501785093648322321899997283962706087774997908347826573646756820536131501630609235632444019045302680200708823464071378882809164243346961628723708394652128196834984686804963092130120864072530481090956839338876508549085153364713230544188495316117516334244354723516988650856922668261613631980724592520081309441609057409950096857554022999484993957532233889574864045697772853711436591478455286488545124094973247180649346355779164052136595343839757649767680590477538486997606944052078961184223661523431120309157692920863914850550366069529323029213334542192296287658154888737012171023437329235941128511663623521864580343124019045161518920202436643027758211775120054269242259585985949997322444162365368769296554967589008688131050562025275959442882730644909244730169187676588923309926596911255261517283259182057674964682289824096337250972718062098672723993040657079044626451207636689908073504689690291023972009412897923610938827204968842029735453042814600040301863270777703831156082028640734506882596949189991275823039742555538129253485392215888288676332273318430629884748262576061267899037202517483249227893581812845574485364025978115488552598759461293826249612372488897198589490062020852491531007667323321793808003619265604230184788496912830288199023044092037966703511741319439808323253085554139264501465752856697468779196960686593690333839650898047687488639966451273730105701203027220253725436911085839484040989723548030376226805666236187169528510372916493811463588321595730923732828997305315143198323214631771605223639778109128129738579386785395188836504965181861005187375173201735436417507571729888398065773727217175678781767713844244016055824907014764142181864515727112581729708303138295098057769682093877140934123191267000288820615235759420423234659107921172688870806369423134254284947853509364432020330490732469578615577755374303494471995530304835478273470938646321765225790097630554443019545728161619905196986685824844523025628127103022972972510852809867712776161709323246617857905720971424118993438353778481997051385400923922624087952315935781060788610605592485908826860824775692454578639156269263779711013829333986167372577955902312906412384664601565719535711554631697585271903899767396776779095973184531953634279002673625743735282604656839573906523093940802955465904011419343875676831192937411191482176029025744039018496451493419208970975832283262961116416922263024769594609049019102798480215303387584347572402459530951677496751222841507050648783023502820324956534759594615924837202293448877927029403036602427945575436294808454938673838237308800623308296069125224132302959804920160011680108012391483084634306678379609301201600278535590687179238933800370624651744525681532772799925968120390299514103081911682282298559855080661078825675725099436243285428198645854340235928978732692424202222685179801728328617958963825208567720672347344461605995790175755893070618952134204948678859687954313118761761966396350047497731391331110576653485292400409540442567726868683484660962608841093533760798819061025386844163839064773626425128229923566004289744854093189118363001599984407635021730235740155335299045602206203821378869789266931907255093107282693350348056316092491765772894595426826753172142733163262767707999979948444794451896563685024423886120763224145730215196681459799204940993020202358216737611755969754460642146309761303995736127065044048249662844453921453684329950486508086768987646347804915279688880927415752089920782343781304254216679110317139604290038335930929014877233150458795513032109134304969089704952859282903493722859521219187425583908846890244813970909411133630869350005354225201798590653428720652817526719664945532918039197072511834929846787836093339239404268873709212889200569569918444194065244758194688147687062455728704787937645124105476407925949853068407706614094834663685661809436143557596890329211978017506526619967087672314597722483209436099018601742254223177575685753937388172729679774318016559853726433581585848137540950779618272972234664527293050787525768237279470051359628111356544730335120662231224092620371506405456016161317067287843117299521694665888528809420320038271883902721455707643631725977676435485880364018019931673832245395759422412977789331014424309170148029921613509119862852627451018248404783718245512455989817988328114296760561705017253359940940611211687585978023739253176954468689963870016793975793497293181107836930198412442080192416979461584685611823365820842652464390372851622888193153299477105934064031286196637326944059650264566784982422061326620362039546921334549349803438045701031127273321806762550536895781714344568135020923449288678018804759748121972966098540438733627637070820257578631258045074725534330497606564188244438999764441066860071658884895519190007900014287582816698229061588406367725582586992409938288926274324882030837951737520810480817160508953122338030219500085292832927476344163309307396982119073424827929878554168791121362805153563354312631719723111905596751589497053266898421583438252502502607938492961330883978334403759738485565999704282734712910711232840803954308980803249825123664530704012224340661288423239568790860801429195332800969612521016907648302602698840495122770569059806301604395131016136670720484698486750262788944441170165982117720027775461196054274535671326399469434771815059298248297909330539148133810116661830061547777737019841339153078953689774290880944198311297421541130745977499774082888369189736397160377509432273737045790275193020339162101260341925226317005142291275105260941210876540185873061020683761650703533921299363546979726462963176849145126087319355199623464978833283270421980766728647362624039928984860824935735558897521340410739651827029593833063420168270000610976966918350279093437249339884369198094297572664502012721816258110851174815540732998090874836129282368357620448059065272251097908531122417451093369519803077561468563307879009635199042460108354864226454632972469493450694447682830656287443835062535791221309347012526254369640216559520996631917748845784200607452981353736456238965868591342443914880884204988115420350372207152864618730878331088672841000750399569230012279833855304169655255396594846689248739567421016017179469041640922465093176610259308330556021880960815625379910795728838240028014283814677537332872661588969315176350494983403915314746639556245371780997194593961786514985465037577110574274210972497604671945907137278664882424004199460534065958133925095101889221890439477371104866697623907684112221002340529122015405119239017749102041756900046942551546401648458143652277100979731845721503515550984462936025749202239947091370936259772918564577177123785572943812564356185505924710581251712357415080301258231013459817331887311845999966804568281661268384177132453952899957338620376420793462700023513956915906434033889518044009099326736481056878465344332418707790821029482764764250645102020245212213989099373783066119856351081784635330528051939114724661466650224540885874548508396221301006696674184799297336993161877026070612706311195900142900971313033235219194545998646843761771903843776063627567007639485645535393950531891983361515945590050957019870121582693295757187609636383377022407659822723717785917008653524539243721716042823870893093010448312121459324413712320483117948632819130724628568134050784785094384957157332397589213783402018263208548773034604398548621539466833284045735180830076119922871786598408412547440046460553425510798742272307929373189909137708521133283257356503516636701170938712238914366452428682191830651878066402067756188819055294338152303413546569590653822591240639175046565680334712997784144318914197811412104385753521236075560091557279701167631912145226827536111295147975926518061214698705191281555504654708026862478142631773335938232051042953645644005024379858521594248632868072975321693798816436027542469747384189976689893467098930470170762322269287450667967360224435129521273472502342374782733646325201574181468112371844296946005394100229477686657688302565455869928243721027931402650487369491713647742405347462896487845867270719537615218772781570735476667202641332813609389724596423781019293859133850092021581804538172391143842522920921828669410528075265254877545656418375811088779842302128200058153113662992401524870260383062346750850190946380890565887153307281459577812036018113648713924356169454320235095667471574915080077989839025581155072781181178494409656309910484507054667843657631547183652814728073354013118449940044329577475771486747525089455753021136085176361798234594669632085697788322582379710087679466810693125923952010265041787718636093927282144128456980271922161138252134199256991745794598635700021404936133090391426458147888841352040320124795280692081482867561702497385477817190983215848182472305876232215776673534323886370399493227099291968922134707928997291574908803942546047984763751561007040326483248673987994981219008107872410625367758478901897298924456529366717333863205334661309193514828352879942660887117092523859948351908394162833614964051859017294361124416150886745511152070198630338974241969995889128920927855669790035755449804118993302397967294701376871844762690304626978461475450333106538395163542444288888097398785816694487402885370518065533177215917703064813242057406512726300887562849047278164632473162566826808402477213312479951373772882048987004134402233694214274704986303082733006160012798146375785260834678284129170086505440032417906060332671391823685693033372980429962413095110897180811675241600204135242156433365949638164080099201417016400419371288864332634062956341325968514452575069979115125494425207547911782920140967377912701403597922185473812211351962331626182876122706431937589796472115922012865267193911475760585130894397392572038456382869214516989847495082313464722876860835021807836299018565359546609842859881395678772582223112582841526821365613996541531761685037273242744056428542902820481560309761242554189425771957752387698045367834693526592702139701734015416987356240118491612589638269836940377055264811103573291909812702647946404760951237130460417701126045868910846834967360090463391695574426178969666034849370829783351283983498202222736359985512126050974303629039037358579626185700494837654862298824198240041541147982066302592661658466874234396325880354331191848471770056760626395821929472186982564536198530446485160632309278995973321927534092245021833614559961559113825329948618570893448661928948050550158795759651098299392081795476888090075873489242663066259099890968702194632364040712325540831344179576159304484364451996909476801072387317769224108554060512194269941429783707143268721563340322859516881511252270458113184546277689707289474658108071537168055378475723386123750430255165922741160890305571047063097590041040566960256768683075354722280444561835658275711604238716324872571571327248010107399817131664855152534031712524679786904288271913828991732040419627386467824874102290744363586341405026606827501765440965055897540399196865155428451658009041362229318447708909820646103247258393846055338298851249164123987170295707582843742080378732516946287856611872761120367802664171403440893459940145884294049842074389836944068182355840283532458737324597517264722462830723457706198726686996080220094818513729394452067214698763984562595962993863287956410979813177368367965594823299995225849478670945719783772587821520300147106130535849530340054450980486890150235661187145645587630322079873436199502829417949684427819464036375910350832343841906013100080622805636817972850839329464535724410702720385698284392746002637893914333258080397607763042822179238386371258933787641309926952986659865961840138707496882371817773038078803979426948080619844063633333207338797452275156280263177343685568554800931668551554432233987122100051382285574067502044788506784087021689716518099485650325280855116655089963283029107910991153848626361660472107003710990862773317896895006817714164862690759869921149018733943302282086826002682760651791047111817783826717456280022034027925577699412848411754024551139785517317201018707056164212723554823749254197165047628284478004738708507151670478261016579968388189439703599394565989756697826558693053549130146991508931979476360413269868701898378599078835488286295739510938982008928064169654095546886880339180977042188710560985474675981235255295286064693759957137183661398902541081669516621213601359388709648082528990717050428522271161034550165420757695715652974871697785330676847366132738101205108442065536793326561012353875234630015570254535359800140917572009951578182848963002688560893027478126859930416866593903879131601541212745864311477923291510303069805647736164203359169633324428213452127310928057832326504371230315387218812864038957393908460073886422549782985490732310320183936536870216887119991959931600605981679356017923153171249852387785413953942442586927030291645660075506162772746991090002175789573076583688598317628100279077244125245768395941649291092955067338198757464531811926790472279359287721896684048359749735932908103681114365491731213553904661212078741312213913965007799009580233294359964681898769652296566356173188157494262324402901917472887932829879259713430636371907279299240005891946743190770200503070429067870279258209202682731059209032832425495245003610225661332298322546651352363585826665190240185318044171465980822541611726487858227714218752708248428319747310921298946378923087965726118182080470963404055100591323672526665900201144153645509105002662770057359636470780187608165232122450633743550550551493653426370621492707235041836070065627757769440125073468513721290235408001133675710946155617346340905116957740587272496605438529478864146068618572650413320817391410370015955531725205957658177518464831848124250784529668790493896525955638218859917773491888308045269839637278222170152036257032133343041532567430908205455575088956119102711987936566469163825046882182359704969591911892811988432037412663771026671488277855975977604882490919479920674748532890425427133333890444529736975989212990092180960282897908531157490405046940609853077233472281094767183501851055878759687099455920580959590149236558609737539191911250728941397948525399218351235068024408491683398075348322727283425414779485903449925650641483558493918768589024512012118481474421000230605568604811402048244088012386010446990226490600905837813821830253667612656619390964862380832429567918443435822801892660622235879325531043601803507694315342227855944522226927492274179569523224043655743398998432851463527407396954995017643531629552031087056148631970257126039233442417546310592205636597859816983788846220811662018126575384741775879684042258314968179496397344251846277152331857639855924407918328869690076920634166064878963574100501781862256586589679930567692366076807315679733546956893319493761665808063791972897478681607945592663778136507415492806660628298168537660907919153080832213349244499484101321360163730036645441169553055194054028724478450347408926465903681236051383178511452535107334977389088501315285817080403657324290321874357177508351625317364306051609958080664698525223109898714215338804858983304344501486798601943420628490118301740309081548070467028355197856133396826095417029995089554134175133280643374808394190755699337934584527306733759393095995682231469855017166401417276992541446154503151422033586170889159340868321982752437146031727194841699052893305789799848981116801041093889765534895762318310877683985174837084966835759355287231222693602834151264062501478257380879901116107595920964097070603713825028512147063400037106045898439762890683597276936577380926364814276933028633730815644699965690608104093506756965938058980542772743091197214272747855819797545037765075025873851779241722624636105957619780230147721133876270525892578585565311035552164543267105859258232073728647199112167470916675782042582567245804196255872703797639261968916245790588404213646612857794889005703011416008579725778295012087747828068283998619902043513120630202266080841889263111723417624429534232457733281952389663216811149384377114078681270090265524708083464119618590808962961368196295956996778136286224016605360249477094249978489344843264290753254052915350055510590792007900489634429429737286376771274736516873598822227657058471369947591153386886063694802265142770560137427928812509616975767972277780739161646535700930602861452895655829025401418419332088527497981818858992894629571559272509194722093526875848976387470147288946538761175860757265357412016349380710407820136435999814295954879433388445838875706949469379870660958171694372510790726028064033088499481014514659770044670364621256932664407613602243281906948957951100682085708005176555455025261906797154740406945938003757416231649223515239542437305357745947912159360635300771004502390176631073998492642603115976385284426323234350364430869211209657829521866350554864383944716180854375115877926915075705538131676618577160485772547882683977889446228645820267341337448509866924066509376428740885143448031650548563648812776641720787473153584384680368271950233116697805991885598699368141245957673965401635865612801094322756272261236778588746808104284493207718714466278092457259268368942983716723015686982060676638333932900668532092459998422719512915962639012235483147275580384915381565227697886803028643347004791797464503781761188245817134365540685889642596424235848771095592059423437521594984806510701182263523701063388635291103942493876612979097814779674403977315572342721974190888229417619037492864842931733070507892645662515587454761136084092322729773864009985202528530179619486211198988334751416680913710924181856470902623007410718276455204142711422781249335029017752732233949062221230584964308459706645917331603183607748742663402165035516587398367975570141602734996223822108595789457043044376165950919282058616375079963224169259345340437406708700577803979857726058235618266590055971526779859267353478436521100203694208601969767865692820122746899223074602980395820900828376578892689900034028086370382929953189983696814750121311076506967021301413652767130106370127198065500730687977566446190540666225769288120047094468074990618795540367864091806844639605305868991387081611673376509198539029828026499714340337119450160553767038330293381165277905281099274355580905470356975846236320966083219832007932062251248767552457015850769840550154270744398846683551921460731636304800350805076368526599462934851197568307569524097275271486666167648866137410957106202648030228198059405158551832717634629954603844941497743764122507669374418459647696175601972787947589700754021435158995099042946637180229527282263225283093393962046847275285972748339036054837126783148185715974749696178377246581529633667271124908476331215062216941634330986327214054484344817783658830364637246597251527040464511975894438139249498302651529124613043920662068275995331002688098578217096937418010908336682924737243365183763071937725317626668436322027851349461109679195130804724219790960557155058526383371611704206134942828412236490527576808528639356324805498103206594482265584531919263513383450388832277011683861019648573894370713941769441476456088689372347169264802874662808618160756439989546482993310606547063988383714707788619573435727024378142993413381651720668789729046758400129525925487770202581083121995027722961451528048351349184722090187967923895195659593837832339987066393270102048117426606866152229338270380934915874497948437862898669379536105194563090390017880330277314134784413218479171254912695691274353715264393720187948594085723583392038628846904422204818617548855732602849368040379767639402967431496498208480896804649649067185238472037552374588044595183469555342637752311679876500043946511240089834571980176644469999115718753766525056664980583653844293494133246084549734651019516262002452165370534087531631971017803331412719407989585937233873050152586847592183402858217382300913946913143573957600679336819604424424246605926034373144346897968226285136296875787503035104047932037820848948197220835295486174914658781836938171976956342701541445061032835475103716494863003230778158305670438386857451825688999387314151940511753784048736601898435431641071576063986544800982583363101801677624972597758143436505231754256404004856700948169834303189674888622321029378873869023192850946340847956136266136523247043766428751161903764214060945233808718795335806310553978080940651436087359473392129849882376540535371122417245016819236212783631616445613396041069263469636894936266545623973680543894440784980521789566591835463053493597953382296318054778526321003899193543838832993399744941910500361722956008588538283331440812402996571749205585434297104590486320026324703588536817350486860020184996905916769954347235566774629983997634362532470580890713452496088658870127299671143327007793941265315023075767828726209968914610138605960972104638668447025529393233522094937890591844737455853753403632207318978338354966667553614124497720277106511967838764682239840361625255603720420481335461323387322183040613848133951862067702050985894299412220548987209733803686062419550982947343675494317960549780652903678259736825185556719296139957990215724023739321295309183222753799634871661021964257958963133949595428059989162927420837126177102596664923466808875463650296431793105893498539537236910122437329915393251660818601064323869589952920189680234141853358404494949150516824676781039137899843421860435088028641748176680582050150645123051476801970070212246731252201824059296581254935174926362345198613800506695468676392543155346434764455726969101104461528092153709007205845235658892980005204794571135375348265409058776559137727509485540015275456708637524453758744089176484593735804731226707618772438850825262922511616427032112201743013035088370267508713534383483181440447508489189254935938166564293585341692511265021779894265576721130585409792202737856845633176803908910202778818320252911874939069682682006133587652719936982238001140690887332267513096182592078647775910751924029444074575770898781893964145225115961264825723564877148916211429895939242802520953349139887944528616224505085474195033967206885695705726876760006395345888553954929966453278587261475511761988001073101564056230201316054112828314455142583745424823496753214710102537688359877971196907214014227564981269522342535115338794322079493934009153374498457198695524608370713910219923435346095568994265908596747854975217107643016941621689352914777309899933794357119584510958229937500394910656135915130369224256821855521652528358329085263813880425918140795523660980833360596942895416800687738129540528010321090651448762904793005412128316424420460761383244041292278253125395663822215795126471937960667513042756785644489175592351764741526354650121347576325308351301455459375154477689652577503471100746342532960934266318509010475493909888107149455818719684135397618858842146569163772459353544108987435082687249921380815516793028814258133719150139735803190089818908220566703640504918774355492737977103612761215344131098005870914373759861017773121571602713619156703017738754031484831441340288252289460534735101587200841326062519432973775815842184404254484245958302004421371086458346137864301537774796543968779867657090140891916541588234933136333078694650081075985472079142119062151260794249108464185385279180587198413712068023461390698672812158332542670908211845531077011048020715418465732498970332271854296950203268847484085084323936175802065742803714571640330876519268387152506033656137175275595538522393413770207663313610095400937405086335604247928014247039690149158828352173322360695294186150441704611423097895367403116232032512834398547620923595605968708193773313831424830065884653411498203263958055987691778489266355976562244034327434627461341177693389651586000993632669036684408995295374816026271356609426974701868805459023088054722990066108671466220337194734767138874361292329302015347883027683365654687013710217869485227482961287950448310749131122085113844361705450854788266888649673914645090048937771046770039827143944640955871735910845922040967135299177899282215542590413808502820135256559580994331615990938273032997088389181186150455114265789324948431080522912473246907832262251257757765526392194765741505284485598300127851580066419976658205444028983949302712967459703604702793122766820301128509884892607432094058514544193213680522120255279604097833370369477148485404425584662633165136304336121684906669509158982797119566625937732266236416842887888787923399005726430749904705704656639312004096968013747648401630642610366418380586588684018769045020556545730899810967454632172254197565989752441279661014708854366618634765708043472211783118588601306204664331706286878565454847902648939324228456956724668633633364818127653807388954554546762447385140374539478568150619225357502601474245443041864281616604008405563324584044631392927195311817327216985124660981404264783125716879158279715714956032455900676530945489303090794430440884988150388865501479340116430787860716108844987591746954973212843958175978555821724226713320084874932051426057696066271343854943827056536771455824646500291293599626604453146814690714177167384450833205628489542990979521379059310071696157163670415810845599085186232459657711525065715842809177192675943328385937411379756234369831961184350490322101029454909146698719937706727636445024380620838219585842360531975565126980798258822834506116183403583831556878382216938162410668262435061444448859936838411636807247795249032542669023126150567372229188393241387033072843274213523912860200940089224606524068556208394595199730171151450189023728320457457956218983409650254118403736333155416870024687956902143174832519815004237067252230478743131216734866613076723183367880266059971547569093645937657792513605745558303015817281129836556958594051068448557043230241362298167550029531192892728400820369968498834539110633200939609546193187324183791372838288560559450983080757148246600435291116136536271302896245179508784011957415549828225477260690217783276829378447719468469829847592698379693084687950887843897474564592660215631890905643529973758394596013313611975449978949842010614377239621857396470216379827617430194275713151024239124363205444443077844513383128838261814926680675553400680192016711069417260864535125357868439802494208162870461603671476301191855614978122829834880412172658161494307742707576195962108494134731193284554036354793484949925820609167730955740727170177714480159359959696351880215309358197902803906400052315975535453295421199146629105938213177605670929134618498331189016501249830203465402305893477751677608612155889667395240513782795454330335450802526691985672281368195732573363652022855513647671458904293332005058024604130380799914181785984461024130025190726874256751992191522362619218236888806691335490490590618223566965755960477315343137813740306111126935253559171952652817303044825580109442192985379074558144795104245534642175255563183506440344017225605264114659323955578670815435917785842965219501712889738597026379973516744710143479886992630763742756589806666892333977025954090497554575334765025542790202677048671057161285905977087932955295310880175374190428151416742556798943631247972565047679522754833977258015972413738203862900480605717831906222017945146700379893245438707258969568185150199911652495131980490162018440399022700806306259360730919013178507993249573457940638323266308746006094687069647408162193123514019848547399482405611258245656001960787971661615951404150215503898609427523737465798276373888608724985389409552512384017415959100342223418245201299598924385933737404472872595815707477852029379537434180976419888014782906616063842366633363743257524284808006092105298426142582462589109309729222139525588749355418968946194160127251937978880252783456213443014791726834210666817564543606074964158034744182599894062718242485514512628772974328256810471493841936017487274805984687575520501794741096829171566467515199219526376853071246581275931680287323072550795371097198209468494016409410033484194432737639309986736271153065637307979015992703551580630564211857851879955105822367492065593478132957143589994994161278123660805012659312661185475035922318063777712798289281865744936993355632608719713784384888100831520927983947862700354666845685248791816441710964335867438612998766925276232690547195406639248716241836028420137040508673809935864458336492302903006041173654935120079689290385350006925242635972947433686323346723634683971846918002453189752925572315823633539304962576527489327239776251909247224102862075585579970692758947988448902280637670527004583512712592695063157243469337594755114342085100689982051576612346946786777338953319427045113512917879777559401826729274650549799079926419522776928922693046808341510105863410432138191629183776622467678023249104678440524457059801246403157298203515127658709668225892543909174322155167718885072139871723944194341224883758993809896440463799290371139636127717238160230804867302329895550075868979078980843606313884759092006099425464997509833520174936363810567567397051615103067676284672466963779290302091719772355752600177784236024904620307999876827379395582821662988029311496764280489792214219223769390803528503176800314108364635370168050333644028330292370306997126522176958110782398248165061442547216162933770084649847055945023504715938118763680238469225483749469246588414926358760356979224002103003218370488837158999888154043391690507023778939019131471928788365561091224255659348820620286964187560644424460420047261656437315708951832507164626976063495239453886891786224086769165821652507256703699504738989353070359530262411298485303919965386650216099819517922909479020424883870570352702918116173488686461388103520108902217854505536707715431625790846676663842301943180344486877394842432853554071204338338047196936439536323059737150476140450339220004058752467390984377672707004030806686267800120258281006776819882718978822745962244632886409032729768517225006950658449381335391902847422405102787596945757587314839066176133884694291496665918115397539098597004133645717007899329728076122356594556122545574228626827213525404857928410388423881561736734716190287425298218217618461340668059615196142916711450752190528305584184629424447987052501174277180221830093519694660984521229087088769356692307452140751301381273713481350836375408693442051192586156978967965486795410883424341766798371405549849563222470735335814211906214718342652123106947446354155288443045537371231394078459039487135880683902330568253831168481591045330828545464731818645325300709028977967389369236639767905438648633173889615122133721586156581928580368100660658946016455272318080691917564811040242462592805676591932497112938638788297869231920044115006535681100410430070675740158843451455304900742885294411101348805749577279247809690179480409610894493485080716414037673647152501853868900922058374552440868293533231373929073993899052800376570177376581467816561379385722830052771838041167676000563515450746183459911243214864510552298414540953422124541867280771653207417088849872243419434702632778022843486704353152048799488464916126141783674822025503151478941277986197192879016754248742606599985047058616048327487327108091612710921701812276203906800934223719164362478216004400227681351265993501967335249895543859915477606269848209549271135328576083952137569943083599423127998835745647293023984678524680603639125764650758737301319351344128717696871578390821814150828610698557257628705857715426562818002441386356105091832660631732288388231478737878198304303259869601530678874865499627666956900996452347501475890509754648293544620535121996747751865871343796078226378860335894763585054820937205497497440808413609183031225646357168482628538617013805139011028113071096184733226601411592967809428966360676838101805069526687286628194663391006786069338175981363272950205830211330990229239069268704810085824548173463733663568002166474105322481593762768295790186338780176468018170922609560059482603366970722282713750385408261951976959369892520195623591854038519272265640042018523969001926811269298895723562403599873579972133539286367904970233621002055870494388809105405815144250132039343686660947063060347235864060994151247010333236814247350044357189150065458875548586225605382914822401478499172004345849173349690809973459871481197912075579657405031354626391471803601933175930062716036493550192166777574819737047779753645078064699553720245898109712301986671731347410843857963007765673793970550367133855207878542696759218001075084046820487162690029050549653168432917687945418345933631994671283329863559766420542138519537367528624697678395433739820157258112087309245309091338397020487704357357661467214004512496444702454608407930187112147569546118716183445023932156105003733515065159473981222086757764289593040888812248982868998205192918110149628881486803765615363925390914491038006377748659895073915205092622345650285469326651073767876911829217810448840843141516532271580238356071290815120346410376335697270647951897705688846027966150890724069267279725322123689093181303292232312628397716550341385460916742675577942186988043033472202690412799117324748122567285271898917727864893037393945785557740267992989327003274417572134925035450149880176026832541347552052426406955662040266724234333525360842998015353310284273839737665074498152142926810328603490623380733428693054234147522237830148885004216962985819110022529318898699843730064209522236263983560623865675090663890630072041467390711807968232888342807612667086601437760222299615692887402935394319003485687521422076306143239311832324022759275491784484265236482658169069533512940360343299831989659555494741261821647230078262021461858762643436132170183740923469317689783540080113470337256550049511155660438081493741770979717506859352876152856884521806375654926419752935959128620216430660691843765283968478759231355587350232665070697746568707343546017659668963161030269929379197501900053740551514826189535223050947366507804412061865986580396723546244390871737363010680306921051894789185822433533545849442777063089205131248291592944210068421354468586395875305697449735821858944556863293437556429045109530519665621405060359766827537092036327277282383521656383460928287205395148602399724572529679670278006390068336998451402173184185468065685328423181848048577654209032967884545921446902213320703625303555966722494172674739996066222096341235609561197386103242009056884466024499026246817039651492084910167574424952456623197177291703392802796117697510205776272332461359311424724129424493515540913758456137487864089896993931078475261503301585289853066240605441822717045956718358952245918933319705324726667685657140631212561835832328622414519340537218773442607773742728113224314737160290400440943612606393305649318991594885533527239646743345646441380166347637761200007657091478965477240560604963056119825700665780287218445850073027864701220919881144222896078086506245616561096396186245000070705424032608836978231553559533015458482354215980279519440018835399484505846015901906553024716192259696052353288360471271926558596867054766879677701929443148043530193611782620058271402299429420588837490985693042667968232775359466962854153600616791251588615105753398515219305959352891370321456567348303794071649084635108638595541383936284449743031707757772613322299973453832269146110472330618631274510618046323930860859473532849416913956352587560097867637885749987280562917577320234354743595193214445222666272903903110249237508122170328632114468357428765204496340677604320377119203302426291540395385174771138342724996313812063559489669566154979018422451972016402883029916772443293459971987946395999024947814485098167995812613864536161850797546804456849302489860948656073214396399000882759610956522749479214286342597110518795140243095183588300472870864377585858185393456019945537770713773938936056545575837238009187892485988138255698435516463645797740388089979372206827172300652748158766099639596492894648613172491354582480983960676345688567898958013504199284081283777074688563201865319610541918242035465953020328813049919497190559666846001340233427017560758232011417677399255344792313934349549510104826220516582229440691427134239188747837546626601137397715837204531795789286051809735245544130997900152933210033878830586617575828193779585975848912546929423807934711664255925558755571962443589647255667988411372264648274411109634820820400145209615130422527848090958246801083028229892775618488278973272687636062743478511033707432847583609917548646996815186108431282443657356862251369321519134833656414206652825951146347119658492962856395249921691235935266620860022043545882506851047250215810506202728992551406529274356760523327626945490693807761274822676672879390515701765288411838848484775545125583647937508763205609135252299485826504225037523289699788541452660334212258873963867127776445809085811043621455135063010475316767301828289416722110530283118503303194714091896900675542350557941226232228816706643198746301746984892436205177344110803307612943141488470559694848042147499606700640039438008041875052129607528526576045802263829346812230953889492038406383480755633927669670727787283241736446371281120100403851502602431191396150644026512262595395647777908013745540945780187128567821712999817309058491690332280596557737491763731665114088154742744274897019530398683745156461754390478292616181020850490873933884583119382324546158016693457463666704541199189381152095827480442723993907118368354114930517741386679083551611808432295275625493286325523783996346550932231329198302108078685026343972169908424361228324190846089258146376577633807791163572234684985144153717863302749459959260970631647508551487819697014860243056608068765679611381187238866747464657950160880355221356480549123464972354500316531414873704143719324374107656992468904203961688254700965724128328597598921397828843457120326325126766890518763509036599699255741409339949151066707772740310893342935797579816432767593229448236415849659733643481292492358882080106559009036214762409827810750029444268155721147271078605765190713636300300240759918758998882197674441157530613957437420304422149083870203316489770452982306873841781705505181362237910366860232617584664971682465670044630052321986617437178595281698795951952751302379329632361973266642311077366705345430578275718079054718843689828332285867638340294249818863646289174464694128024889122640746137821284547062714683435137960508725478421874332775210174648405369943292073928736963713808052632995834967375197944375644615372637879242935948546220987101782936275628729469911622695593603082050718590190691441228529147281371382441248097548294765210440826382765431229599490137805264118128908209290888281296555692017402515141919495360519353423166274658052796858617075700117060283855139663874980537934328527289441923279778657907369760072045890862348304159902731092655923149837452107176269456974382292632005806740636667868703939859240691182584564792254057689020390779923306216366301203209404581825904266859364487333547854014252991393650218373837357530677976995688275206745938964476509185160738137668846300228321150462752042308745475083798940278120592098602148081747581561926645422548602757528161314327915081750997603850372728123231490395040799259342970807292355779134132741362532409959178146299990826889337345778499926994626369129999560263921401319808994642084253704294337806592478596685239723381077476120737614655070642762978786825483406196518048319001502116103187316750868580812466255522066984593669531196725938341819620916868943966547914623874893789930874869710418345064165697645642112706870085776844837230285218563966791549275483487527734800873005775601109899398568881044660653857197822361254114186894171534140186781285323372073800874248251900783948140179782661241576425419752636567368998899132801124253477667095161834061609236498317730382449292683415422553350521979612707122442154131101424424368937146153945744600074833463319568829705622702746921637546278849859229401272184552214821310271255032506631722897314008339635393611270651078013291111561141447585977501920544329098417795392767266066556540778232745227694898015956008512869334012971188684330665378890045726305750810328997233991038822572463001180440401049133927137501901918156841499231832217868088520837286789182042793112383265191133580844629606818776060821342815704871021358056827138248666169845159319931961697770049976403428928599491851503880088348330008153466470765998080327849435624261727728263442800360327210777328608699811658202472237420527141948172475424865793158904302252160964551648757966677006585725032530661527995865810917746012271312347888852667508677966387008580096411242885869765686222123488466807254798135504626209580202482700094038435458179761393347837825338803193798436996297157614350813010198987325730973419274321824621363097405163262001576906559618914148250008722061092904455780311351898549676585683333280136528403673895922201796424862424997395028895523744848218720483735436897951584600555303865751560459442239735102798144719122098722642361563320873698178302576116854900963099536299690393362785239402744527180338836908022707833621088293419685296929470562604779414379421630710899778206619752175642731500629638607034660763211446269145730856340543240239002799807511089876389270992572826459200162728169443951620138631236189427487323292889907497139780171578937762699483264028261491421427565348838803673753330060234188228564158642910926328212379107147964341792812212991681373534729094891739247193331943362236442081443134995288883818361782024150698822816599428069115285413755668091982046348396305577226923587374060417310622318962623906620507580607098850734792759590380377575245074212259813136492619484882793839429671367447409962673922746076758318653394851338578019859073900996802899099483355044814482878956167350388463543736253677862813341716009118774010279593949437306790944010648177981973151822694694242285083435769356965622492216257875667074100321728642763823993643266804917355842025573788930213629750765438454344550395445292994933232744269215434310018857322629693759172334575110354055090403169769575028496916653202325550218987282795169663296712432533422049496537271806531589723631559059038140667750364961920864420594377869974115142786553803264705153498907753211354183295987254698388758827563403529771047537550967827735343885941942921202105372726689080393758358681688900605068058873232070637226224789124900464205362661527198842279912888397916183165987186174204705157854836687426886524568308694034239230916638969652061554927565964980255988358141850807665377514174666929119712241000849273573894888919936823546614629412816449842971573707127830239779487988752388601747898438338478818325511259832677612565785293663612701104468591923657691731274625209887925721608267684556777362471325951081050345078511264766556136612189191743465226763828599273109688870518305429440218606568152759064034046268497759518512569912333713640856776735339731067615423209634887081634005236535560350589371360676133512256441877996931090594569653692375145880834968851180016855082996222696297011948767779293159949041428130860010540077939377040863355533078748528101488318629883176113516581719860476781408402862297472643154432915290206989996018771415887230546697517264969705118861491340086803742096077365568964642169543384883828227223744023247450216415765934895138099279923998570314446248787789292765999244734013364106480457296326569684110462992974869231952802585696905016143086944341007413708818472203317606588688045022410168113675435766318927954925486630737301075069117398894507203752428198710150870312949109888270664783104502076516370909239130625278891296874803916219861892396433136398213483991233789225269072961975876358652458620843157298439227867033094622576979773156598940833528570898942518852692158634228788305799091771400917037030281706853856935387826219515441194398528590011597022667693797435416352941355747508491384483506409185330006748607722534818679548940841112841592636573076913088206045915687205861302390932865382096064760612454095139229931533265015806434780284321355037476482431557059950256178950179412952902173219497243451697297286230268926682801425306068654230586109958432100122245243163004082223024278592879569308586379801129433885952093434663515908858893762296859853132483661390750899589738974402496481616646160515359819992658095887729692547586532486307674199815310788333161801726828363984184538575512669536335909300430560428406171845732570554616069014648064022374306692437227684599778308922719981038582394042382197475722972506926223643112595382946184742625787295263098888697793497072213435868926210676040161760732265269509772273243349466947177046557453763816554763239449533487495907790707326568647572828461088850338697286920728765705548309126746295934710197593541915596828185613903250525417100756782962522321277191546711288412738612571125388834609221390685647817355721445644533303300985705457631961466056571948205959949618753841195232573190697320796390036548788395143948223814906639578125417250904190548100702913826853350542132212898506204636204369662700856435824096678640276030737648603687202417471269180093815098622885991718983159290118042081089359265956791673597931576144651090724773064944565500510121696277043546575114315418831400872025555214851582780369917583179243523049834582489380507049494830154725294874467183528843752698949420681073164458165553018783337587334178892555827219608895974286178090914095840499468307128341942277600026038628011921603256913065968043107161268599532806778690519546536474052478367452098926101593046156442859170308590423305806261340970819817794503217669185292374913847127953446837195601833976920145745036015051797879663957638457949467943125867816468835842373217063236057320516599966674865881245760151374925514592096225287624786984954160246074490786487731422282242658249179260111117805786575899260431027433422005293904783861398457364153280057988509025075042525986278683876199791651585086689968117077426080936147238176796505945348284187269097306253648166931079223832268304270021727581263002127567404053598247831918293163988557189820532740843981263330647523249935700728928995997025927646017504497603000864339451467532634857736742532011777894198051231465356601135782281387734849488236554847366584145295049312325387426366549323919744125645577412268802976834149964090693472753962382959956833259407125937439446436302584581773901561568062084640126981592280553367965904878525472103758386086007671528857430052770334342373115833680008615434466404234277709994949552498386250901574140256378040116106448213007867555821928138226880503096270642111288613766201341685259644309861315059056823634945004668409695922222737640325929609315945291066228697046237257324583341139061873835119080368582128375957175996618282116786131925977580870789470491960424308564974597581158664466534024748873243922594396102030841435878121428012462550934781064408221739663377280101024264819984636178075071217352798383253905565305891518352086065239405082586654577134907654628162902329669980952818866216660151989834968712480732071820985946018482518890488560526945126888078052941489511473810194053060196437041065762515600327361501840274370836657089610576174443170832377107472621604293209542381090511281064363517499290823910290792316675537739476424010895401806556537857915016460985175502015704197370361022716612137563194883255842700889324796969881690224132276499405925651783954723924110044024689733327156002248588693997434522894641773025582116918997602307375144768200221478278077687676079689086443463056842215137890409745886409660290914382198438856533241036725644435517863553157796292012831537802830896340614070021406394889032771428377217388501203811696673144370295127941653282910294310579546884831507301796744689570293049877305684726923981786026783279630738889436597015692024910162259371858928083993043736688820118498927963125952960652211154459208234471720831874314919459154831231353798215691908609136901322888946990617287937705816594048926450989140454579609700047426043974687446741948392777475787571881737411969948732544296962562027057702477296947077429619571902791514542662504895402677605770697706593548076086368857139593534615111546626883678841145607329437634966129967740190730437247490970271026825630333383693884912139144002002662986141185684609047776681339464322034639726397635836878368366758247908108083167260046170848543390813541275557935245660650199415360160337783699573991615723633350565643962778438056907478870208045780528015138619587355399016205102366605926701612738651340008910629836036578609483243294402018792704161945617672119510427732668392280311561696536180335707415319670767217983750967853154992488380827009737640690688213013155673938500696437932378339140994164717782028970052459209499568730678032058475043739923864050863570225147163983074078053148778030503961901191777705676710003890022313869812941413033822294104786504029380386094072302209209515255804951894263930701688876531986513590997268766494937552875701819134267537627525557040694893016638136636161809235380624428264270550670757897736078716723037884192625419064172812283928465114624366898874505048666448941214322600528375417699629075446766605578560062900446632050569156094773068804673165261817211747953418172208675648138368474919262443429697867234992249532412264897645522698312591323578654497618514629518213730973572838197675986472848157669841696145194845734287373586081444225879370967284829216265354124779331326020230938375578500763202702044478385829722815964189808504820530060679515502204089871871679540584978397254874425081188059106593234086963526716655993445062506870917094502377316150935457527757834049471126449757179935625307964800631475095724795513056160513712770401681231061232629959289227826373988460653481858188554158963180398865314497504329877351813005950171577280552338012232204120270036031305460068983333667612056852994541777751590940625154751798861618369113084231283949618320576788073742666208466946830649948484189761832114001448734515658837135052062378662758048685300092455461322459196141063497581351947679293545791464832425989162071614546500535358211255664301236404361395789317706789967075443992148377554187247003495826873874636523879885663223847155343979986202824170641599672137001812170784064618573983605891516570560827958560000407708779680834645581316924661120237001759816758499747156147340581209408921355355480697305141668876303919397801904810259434297674564330742767894422758515152353131719030599580817121513766837884865772057625126261368073011048420721405683514777259151982038551422881931801409413123103180132082680412925686269455935521928191767493834515107380337346669271401536958257510162691654848195383820615333234316484032069860327876846552909075584047580353090390640106488418679350687000832304554906462582850043257474036935874880779667628386621749096410444780866205115725169070779393891439314578271131234652328696916741549085023517853328256462395819106200573079530361548909355071793934113355101269246912900774425221400400790720742890866220773140016822059586677468380081238629495995768295586849039175085461043022910632140380624839291139960454911058664979248951149010815406502525717462041045391244789254489895239042896222320299486780425873552298711200597941449524004852272898538793603495451341338909248593576815901294260558959295354719551271225749206159807016595767077903801028530108595908758529638730540526879869115612923600403561209178290855851587606787654265942465576747358030856145781221509061221465155216029874325889579564922226933001525972649644638516532536058130634659853424683947499325803797542351519123673247009800313458853108438877303410228916601589590883371791203328489397048741630722849306980630056568139673826549427641413762874141796100917213672467851365870937143133055600825858388742299015540855024097197272333481401366649567575847841460801199922715645224720138248391331229957198731447869718015086794303094800494474311361688758746264310362848875720680109308395595630303508766263566534778580895718920284232687450623743433382871481468310185500206666090981098847563183393710725318945391540998520268499117416066730394001228752920252919488817280494447578812365909013778627440818895329599944951680699493848449223325321050364434233626572817312203476281374720717909174099391385749423965448798526240358694308300887121242914551615014705940554148125867521398382615588014338736294021369344947003505098648536758378845800510917345452477702228333856505421865975728689857486375561142816873828394754485957124860968833635504458032815815757495293874079896842420319090877581427377272951887454595502130270957515182975497167324552953484221765349282216496684373226323125375518610802809029142277726885884692901813833778727681713478122637710434603595252809466271592182110782768831132969747805379326754217739962015867084899579269114920227566009588163664528931109276904421571600998684335813729874128528089001454689274697970535222801863863972883241772131262388690857283742758775014997993103362093409485326535306511458089720281177030647122739847641229330963626059910148076936137592392689448923263905795395381023917713264274322712165349254232104889107450349241335937208080104269523794548921579411929372159414853372582993300856306144624712369018720412285373025198672823358151810898863024413967408323466349841747510695886384011749474793461769500365403677543687797627055291539730255231467040954063185591384188741040065698407840896043891073602391891655158608846207311537738121132108998803117813672229777474357261228326184829778214979549208175807444873560925539094536641201106638687377364526283034103112136682229934431598699647535343876907863370056397981203865088327405524939211989778862638366733369066385542923177460149929700039384290636632604524841939808415828950605107123517145023354166925705608741669082767386734473349575009429828013446037330587530761652469468537008700930808381597367741861462840744000775509598580100650665126470009081962917576461092608241995470941852810865222508779181289771467350628632111192320398938755267383438595931937751634802496427671233521619829141882965555531850083328744606127493746420987393836253746390593903599682586560878829799366207113531382124866942090862580130818430400750967752895641931977413801899324133597359494417504057212643847043184651793435733030053813891286131439755529752494551812678687576889021367759818062271170172086053074191226683291570008812349061039406944665590422438102789632990276694571673595289344774340556319529669013282471519943929700828574781654696850393896086304360896498976201200523822595366345398109077545458582310095829659677945640237280667727652384710058154630335800013832433091620566324001937842071784082278862476063300135480008323806959735214656202578219968385856332697348471527024840089365926009737496827122930199298584947085868883371585379256139737474198723966009058724348210282066715626940959647253086946974806028316874090817803745866320004208754584582030372126798483783159989827602348906153040877297558121111113641868497850477253085633625926114310320765880517630934378992738704967353702134776987415839440088275732136729332086036285907222768958936315755803998530820281497954161602091636355835858827196464113624201676185020624293787386815510626359679548594435270724443741442091173418537657688566372389695730165319272096436146846103757163934169602038224588133201262162258894260319828666160648007284620965278679007106722972434987672662199958167507711245628386513671576578043642914266404717869018906797764895347049208086307405782129973082619216552298884709736816908522024687470047289602925846350577322259622493054873249919050565633272488688340554856961940483950459756446133305744531976583333454850230112477027848947836304609002275810829753397364676858013189877809932062543287130552708833250979793401569092604576057005208116655266163361803685531817180305056404183761158527651472475161932340292811603339228597484395094583103666442601396095384285161274489199939867520614950457558910103922731525826090765672480595315835994551187335225533363641338456724936868518287245289936535060259971807718335796494077271975890524085446348484542500148311020220056299050359934512726589878159791384338401590688116770356569643317203343339903623894926048609551570516710237834997423466174509073524984658737314656801758974083624779998370998491438675380138929151242056185512284650001593176854549533219009971464570661782875394095510410964231263070590288288495783795175466968834065883880970951370107279343068923260380735016823500063896490529572844882822628911973610185387390516934179225102297339856130110207242242779581526710335142874418736086236473583397181817963021624892872019505739394245069294159584503600949714412905430361110465882830798161919958515433451234938531474076109454341350231767226974307346391163528485755811364611200599623599429974913652300578883285811807291933171522557044645351383869907651361806076613717113075310976445410117135765272492424075735327491647654971173918206672145563285884269582262857809152540809851467391817107902743951791387482222099545501261157609834453389835793747818759643795440752112072373255397924346299656872735455675361220451458889617858128067953063837911024799213516220105227161642949022633520329465178377305306735816811221309346455673970498326918768080609573725855148994398582165947946849856033762433105609964586632281408267052351509169599223605960543684763326975715041333765856600079218827628213141549936105674721394105270849376927637475378916722131258325633797062384480454626064451148312272105291145537574993456068921172473527469851119063017130441807836604080424587549896818609376624755242651603977865938277538714121496846905975018760364801725434560640966195597769144487256583442847635739710929043147522101389249291270744582754950105265338196030322099230701387813765798225035857500836186766747413869546256300970779000062814959851645960043070069295686347602812757445770874921672740687176807000385872196434065753112895163812172840178921116282957737835587313801363498426060529737061128254631830347248223977847493619352650935920073816106023836129842024181367307527149333681502330622794087585786692993882205509872650857083745222750170019136225867058924083248884822529501004132922164438082436253011767101662056934521099467998522115046562078651341248044440461378702108421243111574216127080696010408797626910512893297902444941172430969180380101760665652110506961786012270106857811744369048001328899331146445523655075402379037642911680664112333196427345181378806430292280937158413751452103950865816282173946089168252509955482313631168320118998742102896226932079179839471203384173770180401758509554878935781290581932650835497170914934835962025298010259010775213145559023232184249718660062040644526559745282021592513576113271821053719513530414939884081710919533013282311167816323068445378683195018365065843756967101392700163831621598772535281763594259874133380234006706488890716339988043361502959783390503143113343675518416209747031802543504128468700157880239198934819336583091430942304238923878814434599077304062260519668169893714221625330873732049787129653562822309432438574834212099437262948408279241723163439243396767097084327625684613831432867644168673978880419034108892007505659803020707799181899560741571350263412831275926391416790598387617594513789464315895632833154772852092408746416442042303981777530629599021157002129638603545473496234437909854150341871784934900358023243256955683021253843668640288384161358709809797461378284263683918557482573697101971037949733096950314839571361398294966360019652503165945880055941800015966935748552916346977009231444728879317075855256168782986549865874327394211409842052445589617625567916561041830313715385837399986060358999359028413577327626351950058749939609189050818243361703279881804028440902157191293054205379558704988216303139791837921090535820536852586754202311244148123396653735868450844804984124779015597468768810686144427872883328331098278883061154803954771538395413107272548809231233808124038686468977809116250729796904047570327541653248996136927077093805245198263234998775822987894515243967209737301567487983820111057171455117054203197070831810110331979931028897426614435902574193146765190917196687077152023351068815103587092876947036229991537339916783691433490659999812708459633614674779294704153032949558606593995099259259474935234722707693766971485927206975157328605651974541425945761593300441880521916499754633440579515525355157392234265764383305727292428818402146073414334338974394262331400184044671334266666317710156028108656054404172952575273275578737598416752662367832552809219435714949447172515152924956948332571023581693777463213265120826805249420370308424982919977413482981137185426559625923599068467146665576427502574699763712420095564159323150336533217266182324445229519283311707783611639300635628720728720883856771066952012665463143985826114563958044582138670072304136522428702117958421657598089828040642550717349406211821560623523502911116201529251308620116347949929814215220022429631909131460889149274736889807114280530850144956490952513321424419519968980747052726103585625362066154403240674851639334737068705834811473110552215987919403564189956791172353353063707532913124648667811771374382206868220694500055812179569636212806560634834640049145295922572147872470659288914848355295791289786107850184155296504102989979950101876553302597221636925361316691018611991891132644611324160622611401624211590183918968078904414336991752323517040099922174710912084633845205526281088074212203626306923770668496857760606574745012507370786094344280768166926077674953087681847015049453005989467580323499327326147715699650851294633449490066555171098765903138001394756939133269452902889193012775520723144986265059362999731826618622198826436458017377997223960073776349229016417462446695595839708554991285953102921289145694363167769900833922377108646372365461717584202698113294385571015107678722288585607291238171754944332054602417133709740607313764842694952828829775664696534764236779447104426229593449244637980851291185349613132537489340368182431354867856068539104381737280586472092595468638001970594536351886571220077597843963497970841238599882780919428193568382266631491851138149568848081202826406606295367826393248618245945077454985491481136224036688985809135111529181340675502981466244422811973354605106285282138785686375967385004476061388694602877535293304437252457564309176138721965683252360382267558806962687804086645352990959099740158355181955788286326442827918360103775135655794470927630925215270140472611543113524467884419403287245463787503149368880107269629230190748912820182416588127308611617507433048724626602824243857388170735816858884816230525320050466164141896835770040477837444882873567705376747437709039934474477074981926470657951289047172384176533846146048787522378052639797899826167906144038574341790418883912540360431845166866455078114148133569088062309542384740103133906506469984792633311964478376009340412981205634871138022662554179655369896924525849872769733369236101114214637677526926619549056055972164661957130881216057443484849719853307158969639589632126833764499879312823457724321660946935818582585588987580222178020758150960416046911647368517015676519221220140132725823151898189277245766500415184216983747901301745171469168629282427263594194748924367046243001377026668242130702599281099924569860120546760282356855821417965318951940938512948397698104994795348030148640847568185056649938986608466552106758027794859011885257487089262085948864577088477295581387139825311339964152151458732908313663070147261354001289630760147975716264491129472544589849352485472742578580332880942604760244056341285720966933988973338686664522045044747476232237187454219249427527554876592620219951671472262834349341096877796321995476899824191225449786567325972712906699421127403392526419651775743478289203186654987982467605237396470189024712807845411613017388788147382396332715140353098653746090548602999752550524503368225012177920394496524901694872801702320827639123285142575521523627718357571593055254316137405814099447007399667515554345609503174693080490214530559270805017806654791827444493242053679973625034885290194116148710836039383116293599931423773208998792423402095615101533321364829521587965601844651815788814797619526333463693711940382418776643736738822557156335972618324046765552935313598072130026700990177447593375995774398498237099935034021292083499734595508421868720851929475208456704949344384369372276329250415290111914137673088008297196009406940113645743732608031264081334240818809673500198590343275833317696089425071581525420645385416258011754537408002337374259478156340720545170181207686224744317133274489866095236750718798022077100168172339217607743343489453772330810392240255070992879087782581797495848781370477735291423344612312457701547063108900940406184521152999791325852572975644137014030553236448437081149417417361349780599328109441375184805297459175796468276519344603695308286177878164417600304575675103034460128289873611441222381792686287942757662529054117776079164397091503975687270878256491400267935278964279581658690369781767010613466142938246910013513904976553032584249761890361369002378772653194009935384694768830140816707855557610207618826011414991120311192761459660644158813480438532496980716453991277343242493793838890034157253798335750062591038314536073828030496261044799590625977697158760733013966927357272491108163278626902742977431273216881537179926601592430677036930010932959808193587894939889878912101527988842222368536160297701522497800739599646940832166181391129750644571598951719753071313725913560783345757156311266601611596996514351429048145927378203353595758078010009296451259128770230137696327863132654250448185615017589682208126450073177806696035004238972400983960303889320975508731115976144733833098633000044050762158565054954497345443568439295418495112207601224367858878773477736844588228233848536851986030345450798766506949546014272169368461284562078596275967322163937467820102333535585975957920561846430222611804242622240797876879079847765307583581360247415298789160411043675655618845914369086708344345915483361262566738508974773167349930623772069178411415896041481925239743834267569324755893415027016339063053911278201638598788401714341123492466974303323390193339053785824330553410345104616152012463556442768328841381141260780792064124244472645965411994794253909237067756119975399778458185092330541902973883645793501578134989337665795627409776236387435298836534453648276758384081896890046972360610480941726218526115926555501037031264786333586472490216911701094368289229337417502854467656207406296049303387218833346690196361039600360868885450372381067014796222701307509038954983659382125311627264858849514509769315840309705407225264753348456201330474078004294317218517197059816481911597339600475459552733654420366328008326705169078654365061043390559436345243098327485714797815797222796396132968863003459261240379739246006931156773424157374250354714705452595658752548902571043831192084004532391569980362130626877125353241951317469113199240563506844208770177818838002546251312086627761232954986913523847472212976701752078586245052708559124705868919235127498721764131792751192640133553896792510621609284089270467041236114034592925465083594179068676152352243009384800200507865295428315411316688537297293211715209161224110395667645359422301638728607788283023546380315368392011712668423082852208875023254689538132934452830870976552371230434010926897347641217589345222599428996019397544661321384264304034788795272956359538235005716013244204083357470092365574065051860999657714510077633048406131310636232164495790588748540739604086845656530010631072133036825215085341439059172981035812871442916988481513460055688708671314934754971689211864047387271979400672163257130546772334871912059735609161547011398429398993112805201282522959574898966114607323894278139274058360733760337330475818888885863958155875709840499135581345860853025849282499741580976827066054143373143973148741979311729395601515929475449990484757556849290974826507996206206861826069780860339566617387663998606669660338078662902772697217025579420944442847386253935372894029220551096012116001564752027398938926796743854336747557568248767077328863746905810453538261899155522219020604885396565585713595587885897957447438693741669808945668842884974338853402563564364988372271197370098213928622999935413088528477978937018660428394579798093065508345321322613298302500877451086051031859366224334928706752598663096346516358116172857670196735939056880099231422183959569293249321826205916685688239455427687274517771690862150718146662578369543788487560938410262357180693992863870252939636626572576426093823509911715072169017979863960372989165233929054308731290364228009678762679937469742541439005256835641108354486018586584902114150381246422219337254748942300763151952742578154255180676764907755535911689497025141165810590138456906694235508026068425408258346179189925132569907790745650060701331594269264463068084849500540523589624553499324781026300084510946020744394505994578361527054456638233373540857480797788640221874401850020856189113285929970050189857773193746627733783846210309768929344651354773129844943289084437551640992874848663024686962059874200803751801466708579144857100745902170052159345526957062172795283450280709894841483378703218929149720133401158939613997720852324008816347252795122390755716718583755634974297820208917376187548130449338399880900050345349183931592046090983254174787256990022065331248263641538973560424718648253009359256623214418682128679457480846015772314236257261895724490061837249710461866698423526472624960417873568606434419808116248819579390809430130861161658784460779431608114877158262910450708244032819400669306190786375268769408372643477864663449963684732125178070342590220571158643884273520285910785769964268860068622633034076729479646307956056331839092359322550352993239198274231679568713615325799036240032781546392464589393697828390541661810418619999061108347796370401669618214096967438104710055396183495611182841182987573765624511976385349170672746121886948449425646758559899830543115170499669481566146617068339783794526855287110258649017001989482002198198077030941930543069554729339657056254369643676087249874860618721248426742124509928592747266156899867339268447464751558721182631480451519600416932651888802138110778116012500229326684826288963052197308379820441109135540883055667760573758956083268512304595182764868817334747928811777912375852469444990631399829987772895787366190887702709640472319782493391997669187631924113126334420496055340095708695895355017978826244728778172402047382674681367059147547805069989214071161005775164789013234892701080532918276856882024554597740435623691753017782083460647287592150276185606673564236908749113764502919374506415010375873690635359347680043892224525991589882301327475709590032133544283732414571280520470134191426896816500675469170644378258266930642627772534013004889119449434361027616719998420188997310681027134155038278469654064640192203496157895105831705840129095319430556295213557160487351306807971423764006538231363190572888343393552963666171129703106992138900209930364554776392751368497855882176314460511199482467605469316035496989859163248939111519767633975325021136973879308921173743677572379201090800860948238050031829994850718382830867227147762675187657309288597923545930712065518831247954605930006556686231984355027632935854606383498267178578294868410196465684973541286224129939458882275188691944132813476812092014347877279913130306036670762175181943116195420212500406839856594872443543805424714686276856801469776584304312327048120820455284671955733892914197573463085068448756567595081925856553310425768099347107670008936283670125828737317323171135759842981665373687649383674150614992769565675789340169592438093103893289215637708702682436184067620421776968922525408106372936903045978318691526592973309632662094270140321212972028562283866710867076731613934714384019433494204971274146446902992494719467374615001581074808759596768168196572726265774577735168407808142222500200524325769995384637735162965324280741260660079305330338259999192875657692083558365046562713043816487309797608481568517783630961242089416504331357822710416298348277893615681544572952555558152431693666229631556959858024502881181533765687459235697110589597469740602973022736897709439456843769070375374505005578748973098126255845626820813489587428537287786923104311301623587032452390190713038537389319234660036603510742386036875693467502823533542986186270986502462982914696374126603903569866131244252984804227292940619104977629871916917283730334282941849476205665942795470737903487063077192451380287282379372515622252126123009187760322606963341160928675285164088007942485121302411905724582055569169197750582606605496709573846753178226168107030514102139062582534119425130001512224274705458488036773474234816547780076075482273185052961468085051539202072785744397144663713903012997570532669331061880504850815500474636491048960535280402906129855187314543705743395271918836800678410843886203295971782343672632345104404347868497501771686047570554630199481878403941655983335939341963116277203739399151385831082201903593675221373330144166884636594613194735637151720258704458354122713126020451522330700749109068078172773713238398022519408874030504405578106296897329795743577342053915592648994380462710818333392709795171927257446649398262629103401830017114457852244615598373473041248241997744811791586121707416004289465915624532470311186986594031884704731818142147469526935682241867272570064988225378792006124771630068662539769331326920203326249640895514287211062716598543630241990006678741377816982801355750070609929892357736841889584809403979482001981445374445494015466089426384947354557976515973477366421714225540945385002068230079455178092124801100349268057018728744007563927402620853859241295770014569232555271643980702930245662677212152201698178281171025206878931506894409829258470757385374873743453180875923965648275440885649636028699122688800634858694894628066845274095822812852368990144392927616158644328370078979314575696094491978347941220432296145419738929014257403493735495954527697022093100944576103911008812772196332376378775022616694665537070932397533345330263308827886502075276926233613727900880923790750486497327281464972264828251813609922974228655406156994898493176675899130508381726300204820317887097723014588542028812148876433153341853781378326854983283462236892122276898447842395199731410415742838814624364670528718506745024343990134132207516928211212449665274117904822643281689348078180564318025091773718198632755664563405654630418968528690830801723061692564066363156578382598718801371051424319626697969922691194393528702445479226428392068658862364598774304847514788676298023020831580059914757053745933817050842121679963184017621415166742574995961997184289546770135721582029936812417902322296131628768779099124780616416420422252335111432513068720040041896444337924648346022841096151199626592039808321213957444345341694359881727775618702711299916771308609990541185066946902325052295384276049691820158003195704591767156975512733781033550434895893124305847942507826935417127022079337169492822981007351103753335791197599017965796758291162684142242293817365831213601003648738607941866357276028880476364717608004397157454713585760059664289443755337173099793810326841587551103661974925010637264206445889557445668465853434274910330276563889963051717950639871589341490449093885744038203903692523410635571159543468285663689566847541152147076221815412272958442298146743267316902042093790408906503948905353603620808922243319516457251890741742478583974818809794503735033622198808118132218933907447926964491704379657756706187818049288869621575612658640814124764076651221887000661833292405279483680945065401072270001041592065890385814312846229584063658006155271851857663868940220975258213639581605225257308017277729080014108235070505585158826697900469329792892847778254357029434332804224055443070217880492041133795107870819519868234890381778481068587377321646198321734910656006912086433167186195576981416491700482825142104530309956114544845796123059726847974073451392708408527762141192710147145756044868247053886307659111571626367549606486543789057745797612232909052719264183799178059130597687479989398656194111437869174935152624345515186978737015251069537402886990299058862034680807331507490409488870922914334781695790566186287194001609015961800854584588598416322318601025713709265730743675836115335162037307825823101122123652797588253978876109816640628139567410553464842636357109421533650626032752953806033312128492988687842564649180655666357746003190002039211637179185952405525047822807324934248577928116463397864896080101103059806363579570893440398114289626699917499041880767702325968717254933655741462974204537977992177223253996541521919360253477551218592539431620676674779306448946312638707980178297480356857814323138482802643501273467104375595495205870521454507712712911569799977099503156772946675029685457810326114144926189207018881163425065756565868845586481106993723983405740571006803165191704817285728730172998983626450392882812967129032267627196794529168098121527493321961640083910307823094623069616137677259843498946128714110908829696901610082723600928901280674121985537795735008016940256629418086397385079117248507001992829029043963297191154390257807002883038219599089807698286775003237926229794364083350392501465215964117034231799605664722008055745244925001078326666136951427887768204887641558406612824395286185130066418024656887736956469946646257423752562472310451975494529800919441174608993726291756177512080364574711383064242517449315039901637786684684623654539121894911051787279928096601971939999840037975101662150588912947794163976730079387776359193052971091217225267469142165400827454313749474465178199238948363630824625235441513799484502929153747838872975748878214521999698951763269179555111470973691979414492966915938556035463100178856597424509223253760822349264964874843169627116146538880395639587590218001917489474289341429933668189374683248573271679266670840066560796735566270938927346999672529864703680702972877938615995529169988858323140045361955028810843602939742763095488318387320029367448876990426540438984217384569864590057610665371473078433036162579028279109999363255878908860032996480600869525586178110914740983698928706800697667332547315916715232161751203468073819566528288199578209141275626519461848246450956947462615406343379886288903918223781939986407569920157711423325996136633068305601919148642335225695933546082398547064788939019966497660917543288404929109737167509825031038033568776821566547599519624316836138502426940032368679790079010736079615272581388350121448280975114417339349234474433059500873735592181251151936388293721105582845724175550439928127131670418059129067662403338742560557274140728884611339508215384318033621017135797823972374567708148901377560150034796135558906417784072009268250867439788257495542861826095217433752093455114332747365795389113293807101560190898474606551075057852862412597216950003692163427976716501999767157165632324809419640210162633586686018047709320951947311082897909008534286521063440506089720058063298688192933861391995943908908588472132026135559813238929639772992925939023815277056895091702265829543944430278368950389643794270272798700348266989639604191629897412584135312643657973244006305165258035380698862491743019516019027805519369637600936905141259131756410222498372186732297003909274494778910513574793940639499849514489216760801851060219814742763641446945280775947349362665274118132314792449256745273263523793588227759304348356899809010058227186916612094351385911287927838633486432430058568598740108026551076569423884396837252235045665465495311922071775964717203483245493166848399372632361387646939580366405403929955486600227249167092183273841838757238044015039367825240295420286667437974419054273175957020326682616590391249379587904465467090104873978568435347698039366277376084595933425866687996824104356038139134080106780646912229712985558992193405401662419936635372142786957662868601974084370990609016305164193640135437169799325008311830370968525417889317040074765006817526675669014281183043812965733597486310855884879984971343273392752234362586026304757740358199953968632734028629876456212055457997902721092015120803453637680005583542730085000231945832789128651303137175534050029142193330122251621176482097452057951202235494810173672504904947931963148779136386852257503536584936472013927269743918480564479243947930575997639945186406673414982583465942857930235717277822862761308794593396893144162451086826486685027263695584267671309633200217877725228048208878022449856836205875747311161174438951537803416426942288308195568120854298936543101645903394782545656305178750510860887262402448444277447572416277923959020691475250669054899890679463766067598858860499049531579095587636170606182206135397069382036563024766063609551100809015340052272792803612330436051502487104453351190257818458876830295809771439062634765623425870890270463239002315304369738395224768842544410890012414645052345037456035775029770923585689930170954111387331008253934560819651720128949178556165993324659809694244469079728589676786609527913996647002228045567816569528392687577755211180644575243132570344427776646590827318764093221247050519612902619322163670889785921263170707087113625913819314429617406649487272964401788830404944943062560808661415022021039499917800658791539832367261716936689594368857450482019656959999262214435462313914960804698760502012105413401661290067772928418075054977615447593646639625876735861379256809752033683304308371788003963889421043645949944355888333503612118806005365061711783473518066102968218647070748120299494042295747910266208302492296839752244553191535342293606827332405995700609138048259526422725862895325982266635974985639277598259457616882458562495730170594847908524354302554219295380687781236012515365781247864031442240202357157436882339285565412731494786861956063468249133161098721208017146229962672585868085255234407830288467862736365776521887661153195827698408818908789974583739962153526655014192013834212492816710676944140642118429592138060401095684295346889356019379309089631735360341263247428709206180956622444365667684460810516799244727435301999545405248795634641214499527446081209349912278718508699263441284567253763766359010572396870685810533439512838685179250755098435088207414897014934508582379628883736405012206247606005521680686700268250960426485628335187902388267269865114565615744131293862092053920275320278788285029680224239643935050094532604132492593391108959661788885946795883367644324501855344506720339441515045554991788946208970233165048488067203851027711890783187306225109876507149692939448982708657065198380146221860605218416777804919106903634658702576767587566260288009861748531104102571735161251796796821224153477607404110374655128081977088512655803595987356868455737720839007095204111973323708427123540476788093922966539234337372656436842920275357801779959440186065367708878951859898965858437398640478913694739027243756365958897022497919114394039294218221095715826060290286519212659645177742775717043156955038778059909611846680407065946324853456740640535888091702525530967769619391566353663032804696086823833820484716255748190327235737255542320842637462933503157187544080581240625569740562418128152848679633360547870422310139500179739599305364432449002493263448780119522625379798560905572965450278613409418079880488125175749719288798397705311957926307232362769504156723010267392904664042692641090897222872753766617049326400056308611600145571661395016418769449447462264413829539970133965835160555208520875741851727635341178063836897486396797530567037540650691533450382715255627544332706849624486913651154368666979320725333278851481722470311106424614349342474071393168235652912937045050138932706810756093887923971675643425352478750024379129748450022092072026001687675288949981047159603675802960481877896270189408966435116277311288257882895279348952321718077991227142841025258582350703197146042585255646477000921402049773285913296403333449108682985743290052885787284658485106136820478878970674371272932926484612120511468147790179719226497572746678637126811896657586111827519970380727664836696570581025125830365375834449786613918220433327317590297039661728870225289912303265352905053734725935645699621688250211449114340661983208335465736059645881777093130576459649586975345907753265707540979841528932829730347433544630634855562484582465791741062205977775210344242043097788286032548370399084705610678995013965457191003488398688558324585716235802325338874166111717772600539586741621952570714791981855963598027846597716220469572854392217309869132519453012456254347775554617578293351910293045015694600484051978091994755683854541779753147613543750077654237310854642005010472338296204806465773872280519135297507328533836407297625264540587904184146432792145177601396567893695474428186150511354081655132843157176559859243305014197754395405847495352033705742421143168356926775280445036882688446350053557547972082355002881948527166952326458754697310470752390377393091192992843370139536749573021957997911124765572129415414397373455257030237973569376311690294121615254768239655014081531221893830442118721919191446401691459416048165682488451546748288112586192004889943469669549473865238542868994036219652704453261618006856719605008253155434651208620575419658569735456181652658144104428757365692700648573714465871535261877200340916941177994868736287147937910109200658330342107289307647427454943669580762162270195006852671291420580524126753648719345683171894428676110334257726074815732579954662854816609566779070596035749399655120896770521953631772937281015714558658241869634113755802544993409597817920281181215266394264714972160546091294381223873883599482656993459158140268793182414634341494294874276474380325840105940685892680329931432655205243220239840600967976774135058658936796881760236543983116929040112482334628633077779312508965385215799847506571532599522483646351564136800483174187699160698642874335592679951323173968054214921225158931345730136380895407751787550134211819769831519893541327962967982258738556805653859410662369173024523745241694351526766679787447729136547518931632152166947089305217466412523909326610739750853818828523791591679040071626409955154554829190956772124524843045625113842900467092265323988327598679173076901416772226303316721012145858538929913311304205369260053798225834577347688198422700789408821099387898857031551377277922122560329493160032677525390119703450834464393390864410406620622530459728007617249834580925858501361011919165827755594887198786790090224232560005939795462065192738464685170584558271545670678205864546673262932043722652602988714811311827062268581021753473610538848755978573192808707905701484170676916053815870274846729189478423637117729753251254732266107925678378149730831429191716901126790922148372502092075699022790925360843490596103531018889863621604145173569881821106422843711174443051575707001559965766302146535270363161390984158164660434212838545853474650807551862472441282739621014905160661786658232751472114823342394069502900972838002342844968012403293680135761001203911186126821615110992774491623766414414013003062954791593579090899494023173108817104170323626472546632859609809185894352989917344099439418816928208770075288357546330949810733534494857084659129695595013309740167828827229448169828378922779504146136586124204862039673944170712626200514628708699262264654309559747926065742689969512018552866459324565466349421153752680036580878088662423244699981738882822619658111875412447280424908470885487536222939227427724718412124771489283950353556000446875291429764215405565549874957842712549534308853629248710091510394895582996974457240219412620852228231902271567117133042499094060523923337205006963271517913209698546089928595601079213755952824127918372078087199415684456450809902798563747325146176063474030113201134917920072718962633000524519456148787125111198802540996672492693540544085684539850356001927036165197914094871837816099415177647951291656435287406620393874661104035523945471933392707273881874157890723299631317418069134746111729036475908577166557902695833213669795454577154532425693777999496001148473458475526518531667637246220646638342271523107519565022146125099115210439181040123028679183338974357687749872855363454528463313502979647943667197069723625384657485081452406496770920176339291710789357412685719624995077594432234820233512322279275526523499797584102998018252440294100386530441740171537851473527103245490315384599559076580192475192333528235885790346115933470431615301655055765764549962466144953114377996423815371128737496472814009934775660633316205641176124460679642528481333289102751077470266113969426208303547224430157012186596562239787325561030819730294089253368777756922577879901100409744594510037690349667602810218328808662057110450591103988136606125392399231262246455587777040499206025446145786556860303824308094251509235256578144460763572542992551603670905437294066010609566151849991539961057100863228128980577169266829464364235497799778796376627175075283906688379288083008859963945042411447821959300544919717698802925385284898665174623980623825428089348635346065846515522957523469565765835875084449935306592725180533956559778852538097626395808303683006521055385603160352265101413806366855162143843541858056722277356093516688404388151770309395486074455979961022216829475411619940846332844698384327926088515758101314048361428486643230660527602027970011396672266425427579241444567378675753664855837989104187612041151548264836192290230376590500963478450649256207409726810461896245302812563254351317521840844914302825588488381195443796046494692393011349431887460734890847908417084531274796286935966783505435431411720379614884331581363095121106436604701968768935698440071864107541712292321175665979093303885190091067404813051962666893100992611796699777090552007210746445102311548784524170822054255303246947998456241127583040379010533785265674201885543057040133569502323851113207664000334233555376438427643945163489618113125150195598337138095604866582383023371289586429164238955801911709447603662627137087714064230301000298438971694461178581041106672112172882329355146065786175929061020026473757652240640584470178365755389106750036157759740862121723797880384274562734776768559708209348974851691921684506929239233787836797934138381846644660552875860932121875336405611998941033369328143158333850445777390342484737374892534579615463555204034164599408721830903356164941570602801601586083257901918338957200346062751907566561614779917675121901923913430292668901738613423411864806344623327360127710618871661276917288803547996266747914608488158096121306836908042199252170969035398960401207621860641378632935492845616805255532279774406421262126696348413111817915326933710092257506211452454604661834791435290425074289608103779867653464732582106524066736500008655768431606921193576726091787468142333081952614771107351058187568974290985672841036542567969874691191316630210522187874074454264148869036955616668841913801356521001448045746508682868179689240107029021782513984245487963915036801184364778292699722190461753801401624900333716245902085025562411162070811971852291171072878012002450446810754512227510505639124052334142411742504645061310926871359217117694617703480948977295350587740348674582705668101609994424626048513571461235446416995269537362926694126048210050998902479316872690936458868103957907554631029154089067748350914876257450443790030352640887273336488489161724272034512799381727862852216396621482291342401347287294757510198694108617594454590828572710909473358383607225925339816349738752967963153950146041742945964297404867590930813566215117652939014716780192118663174028530309643894413627794060466172474396750767890294752189427420042886851589311990757449409635784200903306115918220125619794610800304483943017307161966368713781772243712397173434896607045359540395575868179081869690415924314172777690904450852224819362760245701280281216770131783360271928873206280491862750504319638635389516539610577883731385503946769013613512736217627784528674302927699851081081240190411143484310315271129741306231382801416217614547127773719395058865399956948670988609937170917576993641768642371266314174091206820202524624206667318417464239994317315226172412141264022031861783085805765221671647030327010617595157621833127211743032977949343311977523492526531039783295964487607500101654156216936385943200611560884858575742554002306641495738245729648592769408443261330906104405192492879166574922370242386365333842693384134382556211639861461087644925875990617256933121862660775141507455277974238318229476637296025373283845603322696882863124075994153399423242930277582578505605279678562342613461861739192903222433681360029552339087144356764570841636303770316418645192213781759992857879514750949858124393313501459446191831695479184147791686967402122685425015795991025223622822227889485747860535468169023031003420938763465326488072459829150189213559401435557050006744366400386574385387870167745369827612173821621610769938623571538021316264808789726648747740843509817468953112738663566850128095685877791704540030752661337482338942303912341165889194937844297773420997273418860127953449188174631551910904469175613993107596142665302698282247439237614130422836394680967733121115020125790072275030478041215827371325586766628458874204753521848101715513576719422202775703499074883017524875478053252637780944676262520315351332231975180879032752756350471721615838076314790368959631133057195605094681161324089863570934020192875849141676502934964489243020541478709398026615876078024831891029666735727691687468266620116518488248208216084046613564209488212938249699872398153839815058276553939017835947720022628566052123254257233670729469506009196571323754112763596460088567895003051744866639544956492049824779227439778619291369751121600879461803115904273819836206505161233707231467414683393977321296664640575809433144002478307779528337963313365387727771955083484578557803934443862511811220275131275992383005426757592370970035151184812008687412643840424052372009717232075692485254097675348202559464633974487476551692838113807641890914760230057632426167988005161331152142212430109443256941799696686133771836633532505523527928712824672481094572384705342524663222168842814782240031476399529911723243547855363919783470887076275871505247140324212933467278442512040742988848736571809189599331793592661577661453123599708646076549199909864998110041432547863513105292135629331789935895870859820060102299423067479492437801913093990766986553737476291662908432747480546851617744119330377079313195237110414954256369399746036994257942021474241081527590831449892746766822039059630867330590240353321295641103792842640387466061356559663503881976429313879846433960158639454683538739836132181379146785594132129529635574925414244952037910332458803371527902842932896325533381554215380382757452610640189178678507381429468383293474404234828991458898524436398566967410475631469278803701966932372079944264423574493499319326219609131542813219190579401498554574747711973911210366938782686583137461653824336957044182912049877310863954060971297588595205281472518497034031603052438330826492067667275706328916993780285135477668691445048976575424497229108951907460167984502202995487652882527337011147670199023448979829094646072605774413295668539750992684365442529468358307406337535539589769703189446610122257347439959705858181292261093603845542284443207258019140180679040793166470057909904043005336426085908109355280165498791384992541939379941568606602793456469179344828487853230842649876768485732976940787015247609195974392312934540728626803436428054592115856224948919973789113742975489989685598004676601957093309837807693805857103388691604889855684843837480540708598753057491987501019822854809073321464982691725708051883965369050882607965059360922366025810446184037532819500288871324553131755156520560007836738689535010164982895012425131062223706383284547988089752983600876245942921774594979411514006275266409621082272970305712865992076098659284658065778671246886199205107791674327567256536048997607275536249706330334806385952958535145212030266811316401003046956035089803813319709378224966033327619122253027244667656768018239447596870429767791872868304011017356735760167605266536044944142340670530405021074773281807572893378161766975894270681596045139571840731853914839820276537739605332448178753741759950352628960736592667169730937643428456295231564450138107129017740958172951307555899382531234103226340618573250303943270964363323150253025373110079246930562845568470680139345345266367117723311208888169840760199535122227101589166852235293048152698018518851777600013616218458785327214234251367246882498011878990518976828257813805903551821059165049146899526710434193419273988427818775242756638615384162372890458288828896727270127885220615952047688722152872787761641721441719052820202082676841279288050958523878343230586029044417145184144508121517669141784527666565373568717077648994815148268054483223477725866758334863960492857034148496223210094556532553593842187694402871602376133916159673490212895032365033508464614231330519367830109689247314227803677509513037876702299392584960312073397868456559770247449730342318286635000676479906722223254486524303084523392411466780915271967643329879130435113310015836642416155519784527752777164218503217056807783640351258641354311083347047958429072835348347803739632580062616815330757054456832814384784885928639219676025586283434901917138548823149033513222899478286793883556290065633260023770283000118130799410702192428680106153929225281685239755933984582402073504254220785344451439724592463252478024476249692833053214626245127889270594003332060662452659242326397905813841222766342974765756452861086802145911948852131296271665333712150021722244784918932370550556318574736824496410675215270378540057022010351209404898865902235357304682226214148782460282036519681845155545002765168294343326156780186617771982942380105236255340903572139776212381324198011447267041303970225560726685338400548829335956227919410028904277341159847594388727718500486590888116287811413915846804394976129351241108987385314428246446085666002757742985283648290462189638849858688082223363122542338985236825301198077164228969624729730262689977702298130358640743679625322969850062795526747733444832346877656468287175558666918291220638511158823627058997750922100090402115289499442604428728648352868554727008967532893848244391542248984128258934498618122248955139415406028368165518720670359821379683106457398934828538446464989831430969312220905366975194684993702419914669210335920827820624546431774628089344905444404043227420702222768030769376594684926100605907389727593389254534330419475056854973327079648050075232401568546033807971650798109825513291086823539685023723673798406775392252452466719695368774813957924309423109690419025353102045749394019915948004196755351974661396474442629982151910521068511831084713045163755133270282809328658871401860111272527287728966463547641233340877357471326226333310749531394717715121610380074518179424987655535470009969286015199986117738402481276023753433906768929371884683153538159642652808455802344335302992417337798362427422498139970290707886363540045655543923320365433032420146868041075308094385036844443584864153004807772823403063706535376736645106205303949015930976816615751918862539611813116376265830872301455042868289416037444049585438490389366769736964431395600871039395472946337617750477594306044051230588813902697994444000064368481731778281322613074167508976483677772175473826913732057993260223653068738628823202993839266549698601053612146358074302070815280114029004327860440276724236201451479468503440873488309532159552911320172356321317489566815791808296827099142040079035824687405930003430255057049554461808087642440549695854413188772924616703253249447237883015126480913950601572886370986547221604209003670186309551807847338856044041617229076853846265939001647583741560950925227921208835347995965030694722784392903364578212533506052131371484639528048683807274179422756308498421788428480498732851281314818049915912313291474579061859166979813236580043828672068383207876541492529548606555172123872565393700765485070963690260108641729409206660595789353919496172301823167622714811031813789451612886598306817006872029907672582763232407611988956866945783678131297926575516695019566731993599876148016809356196684488400051386517824014145807680459778291362841681781926718706397483123640333493780744242214648161815758671214188221388043455826334320780413302526530337183197788079195493924436687566744664309129621222774949322747316840980528222639503109482073304939821808698780130271385829057188100280464516308320372765737730989533315429894014586956249557459414282092732843121143686202623843159016098130681856793609685686784978369600377319894621969837320606930955981140415168828006497572536030585691055295792501592845856991008083961601325601753873523542847602393695988951110927069919386771201755413391097164642925372220960808545868157801368021250574418669719775316854062896135175184426321335000085733494383131966999499769847197697942743724424657259666101622095146573190444892038309385048131202159642709709665747785746399052639704356148291550405772871926894163406285587234016004560529438783699126105034152520781167499309152146143938525995444765311125471803442579390503196270025149773665814579392215955059650733772314392861682095705148285228066950153739199813807294561021668601335234735711414733851515558280643799727151479444069670852807468203869897533667150711401139156732519844478784017516005078055489676813727101994859380945890456715830617961643965889394253011626792902263593902226819513948192878494131068700588933140464687118146991799844273058646578870503416729529715034098443663282911945642905451473815288583237788971329232845252087406907679021109844491822976978671722945437711897991095387553072620797822103545700758168861333155481670573564603326150659987894877205988106760918397021413142182170361855576771597419240017085055466585720722306728163145924806779193470106789257802625653013330013132392478709714676941202669176980838583071203191934257293523829938704784282555717010952421946895433103775199197704659557062430678714998943697194304114953566027670752006497334828335921076652602161866947734131294451903155204338948534431980469861184435696454630591571292528281950511690646517628231821810788391687317828690948564395411357600823042818851835681904194485437513716210554767913230459351299326353243125077341942662041231628280037209625533872997500279371814016843788736643899309037940149998726838406241495925282989213315321908458311508884055906177972974874356202353331222947561773030927513826665162897293648247925294725524010202186996216635587302861607159687622473058654822766030760690358752132900510762489634462554153715237091250395057935030615527737962257557496111569032030033787244742351635814061935565447365019772064905084707275357446016120829890424737831270988990825110961490157025883628788164999344380859617884220724127930303496004786186813466253686282846849383546437743577495088105109158361963966613637928124901824836357633834692984155655531148874531795705561904819590601290849069311108201794965090304940854457044378949485813586472503010420996114673882801620624243211258321489325445216031061003589916371862404105367158006866348421949716994730300724605206376367155602567341633715278768904461348447848477645992055607010234502256476490986498954318731937804452864177107567644829907265447810287053023579151459140545476828313773319664412479734937226542004113240799136259925824283925580325780981681798757508560479709061001841753155395125728517505125358634346351149450693912012217910648133129732519467366162030512939351882723709850750790500934911232614148489810108343641169815376642097521977163666896085107763166304721973329864352673037020407453749519805470625414980478281084452487980302482237374939157103788470972118266673096484902935341318353887052822276678034887118137360473503716054977636636033763048807634751268927878788088238659110476141278571709178685364230434010623768201773507316931397990194296602818033158612065471178443628352822333431195644194110873912888519263139835654881422719618572102203059800108965805090030023812347794587647596765342083265678589612219265811190614423837417267819631840640918618287962464390564922637343499961156700593106100591340362744638514462029337567195436838840198413127460767462563822434075150788380841540514806739556289165856241950892185049758576831532069137545468220194320273090407024639774340804395561293579102757304293972334950793074276829177065477036861315719995619862976161011701813377831928025694350912697073671549868464205997486927012154332297428231417906646097409189515438114276860007356291111566191037980526340072565357182065424281219946380309933236983975158920056899456415721592737240659894026050844929838502716250851937384722923968827791364638452182718755006913554661781135457444883786566304366428328033955979483481205991417441291385775331821373236208850426857670606522249039721095142234413443713453337146934052974549449115919001292933884545170992371497839460786227609175452728381482663869781007178214252830054336686607159547694398774704626276776161440677601011895483634571065933503726184711690333519090555048841887230563207088604675675764824997081327058379711297207683420707568314467206076667035271187827628968490614591610743573788974981285605358204041958801747574871075346774622006130642718432698835604954885650883351076165163567894558374453954020392791604726060460486058186405259560362565839271448552730688647246519319976076971656531243452416674749584874968108670434517783617321281447776336520654081567306259342694582053536435056439239169927016847943550986055539658156328350437584206707303105011456924037699308190935511776161989418321085878441807485743874427201963246785717706483489637883094372606383107545987127863252993559716497388424792646738844804317990353037949693218446804219480943935575299375244285110119432695863460964306046087686505178686024256992393862792121853505414904278525617316869643898709813950650548530238079406807182676879876581155863913904579760032325987256287943097543278226846384769763738992912540326969788919452332987102524549771565466388501979862557737489286745529849452929851385888361240544002374616046145007747399882161218633155366217682132013636465281156571695885196134700951817360677125527549452096679076584542259889970076836037213029198928603042451065313477163771550231354602900771610354690283890434038778063657375384375315615640513531020605063782243106000505880936463761071425614627333165103053055913737038478213003628274111077040454741705136892570884199996581516310359734121196697491071032534726099940701867564361914613958796492095518883847635408423657360166338712210019067357420561790926316739437192734592343559477671701590213997918468534008483460893843165053369624642932564815813643173226067179005204602671408609815407971220387821430212745730253821068917986790149170982942815810599824250219772176836175704684105466608629829623029275505435120746664601952915265987152982093017019655230206009612240734651781419756152297248407426409437658592752101035095932056431810789844366380195476256081528684783824642345213813932543413009221834894656681032574007171116795086256325287159592377968933715590860476107184978938582442591860095504271776861510176364898415698356199027374522613282780461932835813119333608533694088150128230967398465039250058030868508802073654016725192617318347750980553035556644584702323756449114458952307893625283422505583915672507499792085690963980268321577856500814910794078119828090811462549886929580431245346216809637908445933563850372070769249371560018030008145622026758151846160719400798664285437131713727163535819931128909469910215641117672998469604335823766490576796763841932914570446637432612307760784622962368276195405125422538565000159043712366859454363497224949014410838146189813201579649477344388294569748768369543732825060911850042934380780522228335641353397553791632064638628514814705542468084498536536408098261469296104868760759555447165219095754618709167658521682959722293590757917851900882921818884567682853886265803360141971140729829264229661893547693288638268008548176069520774554804280917375883487589274767139255585097213829997406090997981143554976987688512353285673612629738361441613190864364243198368190450814049102017840356505556526487756747040542817520054376903188762956047334555474088683936731118594120259815426972110374355217012457896629892740938713965676735543376528954770627904615920983665244236110309528268496720140284542255872537246797058343069985873573181739120808886425577251570438375418276877384078004925772602179196850504996720277893227991340123120212495382214074701510371739970707815530489840683244795712688256124628848492680674381942098062526801873754071722492233792552279729981422429571400025642620219319983979389786388544769493870492729485685699507302531287926518561717515098353709052548131466389540231490881179430868752713814368548229513197098099714044891732631592963720564147141305858560604948356801593933226360161708715304906450623553836328539021659580154062805492812164380025064414736294612417473482853635161301403865757504509045619102305443519010440577451264132729243166424232322179497296508223615013191645484179453101926174289961753364903213615656977201105617299582685602630839040712972958324306995813706769028945763569664998555603278889131362425530688604097979037065813846302036222729081826222832982226365470878968541769923199405750677444952682822564105123485426765014976242748057151640743608499464464297139905462232391145073043661941355684787525718650431309629946730119000990613851408982551237224801785431015585460979437993469146342345672401460511035648212012463156032627326879929229747603279432542603424491960267401795010005800209470908719536219545679987527496293755938024938953023971783055169713755781016582571457844095514755725081076752934617377897451460501844479252850665501081459155620045427934883851765885370003863580850899780473097875250317951675477296055647211816823165969971843211650212879817953590735089733153269477986079276257379708156043805518109969649034385965311977349083418782907887299193200290369639126249342507485755939279164215322300103206814242001695556405060181742234481743497947940506506571619581032607746806893005614274585973467471340868410571039675415371053664067189492435102270911002643925270521399259455136974589553667390673346311588177225490781963824145124881307851683807922843183856515734503752114444796330615818934629141158601445195772793184059182598195580739875135217082781414326346040469796279187502169840846958780940834398303421173045495058401959462544882913044983471743729960265163797927530497696708862941736690691590063200328851604277930231564090319559725028723425895189390851615261030326997356449912372007432120813645919158024998728357315480298484644054401386434261834301527116110829536608812864122962201237934236174374527633358562049508665147076728350468261281639608088545808744534476348115633826700972711092188426347721277118600630142418579807408883407596033537209535758864199839469701892791097709870605371338673008051473057929086074121765705961167257428543238505207837714221078092932257128696357555049752239264096959220428882736044275878995317986868732313286878676501847508654745018779880679424478763727984926243958487749809004580262321933730711708224619350627473503291574709135176085154641459348374373757310693892660293336354458497834022774849816146733924328176215154878926883467738066633483243533882450848074991077211784455611828686803470371323930161443363561922170754782187109473961248572543541284208840279882901614781111566146266809692496715788908540928833947216402988329056176172297732763540439554597991831123303407556382605669850669720461104869203588773197263270334283156270571386871955723631368953069989539596414905359589598673791459936583704864143792116207981620076811032195359425771011517803872070804274355755904140990776813164906952803587170880958350739240667890525855188290684913963946905831332778587536138448403870179403234241399807618122699004780098628755729431876325581191562144074012384271144679870640178291876027979817646703990575952852912553805847280331211928133449410873288811433766471102326300074817762101502568719101275688145289694999928378756165754719265127367227864700771248639479631407224985689174118337997594411592892035973063646608712540157912270777243117374329139830278529568016850367839307887349430314058835771269285656832760930183005865357677044509052903272887020691078339087054396586761116170273773634187288325793733158375568946354571203061054986372629191046734553386647907184127970464658145412225268995504519338686190544243250023915937210419640066238642205639621022967585597075853470775687304670789894973093354363298069471981830221938874430362132445259392852874962601009251560067788449077015383559302847035035009819570813920572278344859271327043078184124844712965855671027331647348135086492135063276536668645136753309111862993700616932181238107341560806763505523251047749624726522855042825853523176285553200222070869640935889691485816429474383180986340176900621867156487877960827441204659676065463413969790251624181163321813929574506882010456915770571947140692198815919906252482261881148310071675513934349173558065799159875429675920414729620968517892587343806897248373014062940582845143604544838167718397826896859131581173957409996590428285269007580860860779933782537096329865310265155794018838700745617567597969654905075218919038235863894001621333596462942821006840940085401930559299111896389585173552721997507763973595421860138581134291349590817553495107511796000177288008218247182413890772556391557215262599652378100450552267304890077153758653418155319845356729516802525321076379329319965486576965304713489337954419368514407212109750453221025777404295979739970596318046341505594862703914230978205222474128008211743174718446117408833865497115627385460940486008333088994522045328002484687806048517522290952808259316976418610651532402536534799962537297544253430821998300252976805319393609517105185677501498214487826858821111505202661609171891682980396438137094963279098352593749351665998555675307015862224358176857431498453392143088702623042973222767681564824298848327611456199745526771293561229010202921375423873003079352713233802308347433510249015516850012214802863796111128038955688989406222846050538676029900409720430218920476068296489346459629563048132474059952704169050343229207686443980492498464834465519674411757837859646878066262673722520088592635118694010727390041202721667481682141281500805668559547083250512461934480744850344156614334164364263881204857645873228492786028292355434332490629783838864829843713876117633679248943691749789490976286196650063346048789893186924996437873476464949716634196994674341931058848001618901038894537319032742846249901452665999953062905618078572414487257865002812826854347432162583192482818421546249798428411618452601505161541824102387243350342972169129881200704972527369991988319707025810032910007821761899013996322552944187024345584057740514066796772759572165232666553610807249162680472189659186279580692124190416386633559056204267954786308274367441219861898062069700040321499380211328355474499751333306232448191921007673639247276151898558285005179407740684713355112340416529423042507660380954456573263937272210199627606171124314429515716697577588573210961521400811054890862029454721106402008459672934676447433839744490730283876347376891951394309329717703799022160080994232031112723888728654610786814828782745870872204976978824559258041085027426341013433382154778885260296879393740321196789501111484705780715420680988839499424737616665611065112551915094281963586956987774526149751988578710994073730621222136468039609772593969106903923460284461101372265877099298479557338551758151671548566352998368589628411398706694680432863180858841499236890415668542792762461554430562386147634838403549018127319270687447214052898457454449231714776213549350626459845680988738513970879362996786210379093963004560319547577804109573728814258387548025691692767651301716154165129752448633639080535894381892425329079811104563674169807535737640113232713678209649842584149422715692452037498894769475941501384682808301543450569982072665039862377803468185132104292972635176258749614636757905958592224715375685333528391348239094287108383563246382121457340362244529014297023263889932200133047012583979603114943711694180162623511931485105384327541396321210238269003301693112081282451756213681460551248115416576636901127724976132914989299028343519332404711941670841402504046440289382448341431644833052705979039531478298603462186361130077629692578672153565735032210003915449458284809495396544958366348631164234949478056919625311632721137279387204398821530119906685593077997397518290324678510444187592253042999690453143862049867082929787594725476969299097702133891237571755685589767397489862804858817668484642239919433437027613697729609558598375185791479779616740275401351072798884959199753496462925038264690577902089161544208656908331394048833241230855197559040812497900881679161540480441797755462096969640965544775037971609322640441756870637911506914670549659798599988366132730269068288055668687371324317575361986697734051152615177152543948947875771441599362744105996480426341219035001206249603734351045836538047816122535593687865898862597817760177099445183413791126368666705286790758633945078504337910225755736972090914986334777761726438950797500062539751893797329783372653364669929003206226476662363684950040881572760495470047523380572514039616255393673109579186142711948348021308522293045521452369840984424008665897100074459672806270096136449838543106257415625115878871697754747655837568993393356536749710120435054953660783197836311860863196724583108368605708503438354793512983350083337821133261380020888503146119540629826700265653440974685899073085786600508235868390227528427357121377512378581089783193043547427701309457233144690670484384236929247084675576205305361518272081042849395162325705954997917163531657844116892655470114315109451159090139298718547590131546934131006211868515423778909346335580837638553431919983652725487208949912580881568002797404517954916070985663044517047912911788640709013821079426424930727717627739012579576874262720524055320888035049860264132024804825342951528083426498299225454673172646441373605296639960205675108787177083895706888259656636276733874830618774385844426634790726299726763267180209359774540108037159570189939015481132137059308629976564685635761415578510466767510269609365022687063899831350909595223657769079764393334602915402566290718925801055723497563678218955214860532744795718681631325729200193778741460179690884508121439519860103792309010653481118953122732545840798839131688738339920550653503895232988890854677818692291742846336091677559519228127371559593701264251162590954113764628555071698388055021859108038153278053897182423996246334184712409385748281370320733264934557406591179835901534876015442829314215636777846357810886221634896966446831272101281456765867564770418294470178481453478201627960812720543146083233160035519799142115071519478787672187582455454455834859751215076579823708694711739501819371706498307606565283392054324813577573089837868371680810700826376206407661407013181497507276963835124021549202068779841339727927160542979910783407561940621923045181983547207375879924190540539070360949405960451096482132313544181218257111153746223364011828047938731958461014301198056486934724057071146368846701617732314309556514057787223727106079413177467174090426425670276608008411796856520327540374582363691013806983236946102561242332011543887747182544343271855491898256918490293643044446027593025100029211937431850221424361765999883543736676758833355010741646308609645012051176558812267422080692609045271556285626413771485870772417942156334269675496681303810585436314227134505543881051670857008582628195504036736112357498922030723900152408144673033036243140459088023652476353324494602207430105227916679694172126450716662740223563355082805324459020571434265450538454891585122595082111741925736242221246501771371921623328438273649382606289217371473836600706929569201978068699765335581582776912552371136421030697887308020129925314999694516790579199881109455344586989082324168189284860486386446895377728918079216358839758307725721814236272542894015483998665580208254652209490987695829435487764675372229357746674753085163444036905193143830404640277702760854704521740892879874788438495715315201780055304575468836156044536608140021616271320948819497969097201252812214152885435319473309798752463246123028658077062661586985118798059635403655272610818956741970819096492868227027063888000760448935728327818766524841259264893968225172771830880446593315013318394604342383556614911307822423306118671901109191327407763003969816492438753613464861713040326438121278087548263617862915135480043125477402764994564508880754337311486305278595584778013186699908914292111164848408934667884616465296993516045593314300959449836586524139141888793653735562012278929301523918073328980618966807897977863569271516164879903008903183215939615335795809298283790221044013457843580435689197395605897582991714848645088552951375323663211698229758796587615732607095409013674163913294605470836839355198049655911261751458737217448663472353049243194756303725222850918185919788583188786186126516789860699905685638107661881664295152532877515665712237194166299639652349803206055206503569589886554684749555129230189242936336475059071499004974938112891821449597512055270949166426626946778179177817015009007814687808869552430238616325397357426544929820250095184530754923750930202235002028848172162547030898060456289265706124965968046646948838419282526609101605889125909114339899713026133975857495673110302983934403474351097220933396184915399159078988573652069476516570354670584550736537758309122057398911215633375491943269147050926734662475161249136278096143049822694645186605528640561376584937085242246752645784190760408353447618958979349797830106925535057651527730819968021992200675163227307042939749787918788800312532125370500909175181141258154705547206832331708169379027874818776042344916354800497864318153257353658931509438239316957721007135447157636274811991070328977559384777364323657098870547407744636949196569411580125690490646652028552327211667087404282621121492397446349254127789741159761248001755628203572401723518168684764769132930480190769750310603123053746741491502278139557928317652098530908075769456256228613564805384704536054875742013585307466442427987333569255085257626752652871722732281527914382728776367163701428204875674451833387898044595245882066547972344792720507931152473612062564241663030602665719850580415547815363387187500226643400045148758809492209546283646189208531383587074853826220721734096448243120759306456948823848453196598179675086699676659733846761961364672595459662327597693512984870078586693595520836712955178818553736258981241359189658077015457340703025909493239528648646387123961292265950616780292232013866621388646404422382587071442408088364834102138246515658475807453313731167450565261117463601965043676728447589355073750073113739184998099327437454337376886029005261351440728192640763091271988208445089190307056480037662105619505654620361491779338525354205591711491708906827479425924502694235458337145563354497571833013798613106916059630869764402059216795644155451227541316986483524210750800375993100267729578930340249494571929260150701768603721931004686946040824073397044104924083925434222620697736139177848538585323977342167125781662495748264703586214160646167912911474088392785784979120470600561510076361838734303254954192152224675869570430936694422810602659935416774393183980472762692202230204447316873164874365562007382615896504856896639520240453552075820521254227314284626275241227570309627318865190115748209896466023059221704694451650109593388151626922007358697451872929216966564818555191970989257946668888072152107497161148006012727734595019412191601038165031994680295645466090367280837537959368263712104800207340400191269539907699699836063267878013416902286351246753827471046768815828782421450627164541815921143095216910754736854301134122065325536008434912184964758134530844315251629983134844829273068541455436738586874992940065602954545533916269646582605614472861348138823451198071540112368127221533272648897957512979064231708993414555484332620562785554042465209574834982572342087648562946638404298608207375468972548352641584317878054062864329811207305945377142222871194889937795171686411034763433429776991564188840989131385702621843056616732266746267010604771101067317194636476197317124583443872738917877421441967114838106692725030687093760423693466556182820064545788791153977464006075911766784055820243726578810112319225829493047305567528463328947062514286699148603528725341350971278084570787816244670866322846089028637375185399570419113693441648771107660709324270376170787359916792712308978618373526160023419277028657861171719255258842878126972607444033173490222469687314632348020600144882322377442660324169448010576502859681466104190748451802174958078613439112302168768459636685637861399869177882439318136826391746360309663316395903869457537283298851350550546130575416521130611796508856057255010336743435347281782407820890289101588820514510869819792051295688933090297880704448575376522489264030396234187037753819356293805109145275753941570788090331671981125475149310279084999243572920111439249316190042434860541779381213194445959395242539042131589894049269268108549260018578862115859127390891160947815905014893738173150922158708120499026696717896321611108372022138331874693612969646286933163514385526597384134530066300119104773700411725532623844403601321583403664442645844670648275385291727325326839136355892370429697339735734450118623379797844157416546812570207300911474692056022529540630494088563127368257602331949553281084214537577256318852960207115579035843834268911958035498430907979528504350809101497731955436974152883196719368316566202469328909512269364084973767406645906648082794718111872688339971281529471379306254475521926727426351684398266586439332928694518391483589832427233859209064532292707892390968854841166917956046359229983364594595451601194252670587542071010447689054336487561142387084703744289867444910306186113289586319970515549967725928427620513895493384567202953234754493248910817200506787359229911903636946226149097785811425621219825381297153161173591480145105042082479302737113627449236533661420211724222190974031748923826875951771180723735960924923380503790184852768768232522915376810115926093602108057275010194942679135571075407605902521214648096416578475147865261038844783128431778759720391088869512130495242376942919422832947759158777945515835696563171095117231277940236278214168265338971031940346039211688182604145212930611420772256790192945573218162344653689165333594787969002281449368819833806005879714529326806590872538725988319268523630612679526099539931860806121423162500656266997681458694276818142057055712616799910686990548196539414150175903974418811965290539312508036370446703079851908563796007746577471375089013460014097865851803615646741269640945383566463512547728853958758791458286619026214293381809396329444068822697237727630580317187545241359190556420695262920831670771661936480436039804404308881574421428596754153864620514973738282550837123117977909844646700254548606265613988093195820641988167235942752842075504725052588307038960086784660233018995189772020310844993912395965360921173292971290983375996479581970588884216243203081043653354596325413748387418865672944785529991718391222463120147891121712504829907173554263735556481354599921876292978730535323709409146788972068017814255301589589621428085710691275493731769417219846614807569227059982989880915491579078763828453350816862923599609509248243636753830434125129798562735839022073124865829194330815813650108536918281277697149913022259127398660113800612860289671668144892829486571365722052990419267107844920006467606788850885699380107074122916076212595267463701202979866601287956538496402403322197923250445965541462895691181521334587029031477195000896407557991900849742822663778759056081512256842430919468902000356853911194042199754813914322852871995632832199815911104943113564470661443377129122367075244838183167517280725833428908700471467581580392121843758689785584853148026788463175196993805521484637612646444666602896793789487419018299519333936413626103535413886654066202176502130526663800214868990176149891193805957607578707166538445043632047952892639372838384451025773402550212583294613581496690838033856825877618059260430939349208506948203393831565743674869591317241831550280202624003648265704896458339490841684715871731661716050733636022479016994406215846454969519119894811685557298968189577774481007172812402187611990529018068045255754714976025424314053912506972449062785274041799341470118905147095183925071462990663865166533306006897083948509149032031162349718304696994143563836582600703897426749728830583445864340793217148942900070241112525611770423063093691186102476276716676411816736510164110549227103900907496780067954856973694916540887189858356821356054359491894649386652298796044212200600430072451551886839616036816347799533336467902879076339558256506486498768607761314335358974928817401626637616486913378550679261060991588650855711451054464969159814002294345620094076244959945303097365680395604174447086482156273471973225959034331880206786110957698706192703950151263937661093266097605238448407305042075622411918141242943626012147542496166797454957861427039792111893410716267038493845552803444211385432263422433918758290293919039462363839298243324660799923452466445161726750886773151758763413410004589676486393026180360863956032544817134536625276123653837996893115667012905802586804157363902219025667109657360919447824168978669078115831010757862064417898195712546347629929901931939169637779000495612289417506264794803329681560901584197109113701362181331705292133532166995902595578751167443781599329921734203831382909927845607673862483160200437599992499578105398997620288091394246293598798428178106801354045694881581060607190705667771930369737927752998204464926814090695993352629762568096998396096052734049577007973371302882147104223230428102974805431677063777672923095241727615080312611493171726670091232975709025887642658460219519321409946093393013659444270645931505317247301575924605779310935026020800679090273479011311275681393322752544501606533986155718273951929696522287089054280624045472480319812582676718778625408421174023715769596646504620006889216141107901619859034751721180066497984444981834665547014009301898314745650986923969389125609798587313546544813618561065828379288542211977685314904926971222978870917922754188988368093468349950959115981751158622519014428064412625016617583145542386143215418801577390744314040140240136761705835098626238729682714813884477561733071735945422121296811939451251939492026487902016276663103717789665106462863559001615811895750319597641564558869566787458901517558730947721736679619671179377186098086006202663196839862888830927308341914965286442241135184676747772235613358046926098947143018542051783003371098565932309973962202118456095266550138806290846292557540524618062947100135505200471927259205919444937579089333820492949090321475508663615013750757861034264310621998266226276931588751927763183430937969155839886775537622137874141797901403802436931681449516492258368611954441474009330700937964549238109568847859059384638022029389554023653061751308938951876370382418876530872294779994239338963000292300052597807556861814796360473509203458748713523497108184671503659058195442135697205879170788908212189668256868915102647763438643439600250106642370766408830607707853472591287730808426466398360086032804420382023244874138284556944498400148188668716119066124507384162344209316060215196816901032748111709721996587415924370120072836698736193435588466626919329488159668347947981863979762851142842870059244694181511109118691559749065688074840949294775384023716689437673744039111937015797381080511721939003236102314395155815867759889259623188648791266024985168106681468549687808488180526188696481676792431052597114037605128042205976511757340357177632887723234256457860350069030189017688812428694133529215779439193011815867085753159924758048394926780739662171843386623749489333479774403988973431382078896047010213415784972564744828057736830898785001685422522775612842073115133667906988584002367762299258470197803489320466016782149250152804027543925787270618668105296627533425968918467062809032343184921520601809759226327236358616165411866670963529459308411802834361469465140397389096609609312128783964497005336119131618091807353419551007921671272652664953040429591003427794096274253567748908705955270873215708894183270017538836695700398133128135757003618164822157400570134932494329989118816403703381490243751691742665734986178533567072750548236152824609416061300429478685566001642646936802159394102665916360789150940377437507630976551073510078448758183108797133278961632405915251580163785204260696508701115437705008828625513407824393810193577438264513384163061316634449020668215708688946407990302237096844287231093470476431827145664418582180777520024504285607730387855744667275307969550352466880998307321686136727995001985752182039604643143565303382328992457154817362797031749616916505165035913052960146515021432301011777115785052327797966069149839462395780260476385094873358672238625173348567207474276818184787446299364257798351539999255156360208434499916278953322083538905308995314579714554043338136706194485959281082002259565642920358930425371046375897376978965830151860519061510638158015903345771257804892705423753323567966467645096803643953590080249741522618882367680949535108847736039221901750851674586849753220407920316642293452889178970366873387693345319218380236731558071474212074540080553552445264369514695717358413696574247620212888336605253073623932922639141708690636610179040898472452024438041652964829712315164383962656407820512811255422914234788878385721953812098013699667462316646691216524241657973997422912120056049623563145116461957676560437710043380434737598521759846580780543352500902275470543511738189182157438151131605110813526656676956550917449519811911128457921733157498323955162330190542225567293636063616413977936526324070448202459736815651901806689926981942611768893064577940869562341234104601712601185272411865440456825642203091735802914724422872441714610770694725967232069284688261245344575846999936875254551296318062287068678776264824864671298855286941503399564410931093186856223980010098277147490161286202281773223270452983930315585452463848978206849141562110984977194314119544084165016066923515352127806031104128344437755599414906901610520951662855046490742750334817279279142694350739588588395634358160324969910043571166884511765324280926402616788403158878399650047049653526069110287532546480761485402521027617342471171182415657599273460365527171917230511247677772265984721297836554776002250368092670388964261560017314321440480925420641035815893296465728293713259430260455568845198517212844740798524212277037467831615590037038738453627676615789598746363592002909322207440628029281900848028710024650827342430170004963736968585666251506705082439074408295693515962864048214046060572047068984230148923811740133415545688984052190388732881797626913681246109926524844678265205134777655815849745793777773115656064083130462673688610419365302371565100274889558882558687158701786068555247548303505759606611637980954872000041411573392212381198915430419265377023879363970328820660480043601422875166166674385482415421076143808905325501101183585978694918681119027170279128056051848929993867706974222540997599190057604726932259731368087249258203247108368768851732435659540732333596669891476766654850531812072548954203178760351553897828906061782294736449817515774885696926533607585062067287378365942768824635528235071654298187595222983442680844459651910893262407437974804058763656668784014845054219093823143417014530153212486213581300160208820327629686243247149534932080444256083238674453292676479911841784879575489107088676609691244368727274185212466417762956963266289567296191421556048186992906311277980960209054572024953835720409692274909863406132755269789840076637998253874347736670048266235473011341158634576268982681544826315941511565626674462668630496179410266985088224805791370732665441747627925885400320921492669804029031077257781748883384270335766253635093687240148088584277053049829483485517455199168450134822282141101460484442687922937635288456666888678688782102119576552598386224351127063012824975191399667648946597414353642433278884643249504173072462366849854865751855384306248806908702773964809419517259369593890057513746674040760926051364259561824869608153961686062443914110612891059629344597794300511709643168001141691330945839611635317631530043049219740366503824819518514807756466495209170328863406053752508577987028427094960952361834026798668548347527853513496232279550681343401063439041593601880458247810444594657483468865848638064284354905332895487285630610785481324466952736979784051354074076356821196361842016159046863014828897497916510894322631775010828671061231487192823836602389992703240261603201041491327406611775826438580002069123633775322781388289993592370773325320001658818385436613579621042563364314615492462075825770474723467272910821830937848273144753580403020965031491601714599750134115344705505931490860596870192645381635556072081099618989693425875383495947066888469667327788883668712777583065837920959371206621534160652018897436335639959972132254633542732908248634239763329113335028406635097886507172963359225577659928133126330526710373070542599603581359935941245093255932990121440962953136976752059065797069790600206127307182321415407390055532887402693287682743566180293700730771798262749233594797651531530728747666036460007126078724183091695297200741106373684451173625689899802770159570139605697711908573683673674130458502824434719238520342629266872112074393834049227990197909579751562681435290213548455464747914137130278446288666748262151681128053995000296010414866655738972125716754597577442522283756489153914250312095710348343994378264669259330964789297828095621111505900267885746862716431563239539873790854875344324273966814513046937052512589093032586445996960286185570520184558810681213255699977697814163021206119609776004169924453249107543168791201548923163124569678524765253399809244957765058603513290002801537667051977927894323773540197415320384020823414795200053133508280597255690199739516542753673241341607995505364487116795022171240769135773311660367425751222645787750224014664139389278976878433227275229624261561705613972950231696074208823904072391565636456473714594749769690421471113649122284293716694225897551181481725075698770399265155604462723150072737388793892474348511286065310712030756495110420723774315474730475668731730589179696005897306494126492814449516453403325511259283124544257287616904165182120542814436960612198402155514177313000883348015112516402517963583261138096114221797881815376060176017811980300503873812397177814387039799567171248315277994110088647232686994434495742688774999719834094943999737006370948586871047981175038987427700718908093458921061737485033016486933393664374903560231572198495294744978233863008730036697792648645458902731029302715677797335460946786139392016606381888305705449255281224572029160727129959753015767241725069925905588451472419595686703373930247866452377584844100103311337671716862410553563576847811463186845858974057447366259342205183762899413166687151521318798881639292512214116102399657746467392599674336832300556822422620091320775450497399499554909601519565853854867220143107287339846581845977289574053342772879562395675290337908203091262202949498116869665672604377617193754873058112174316324293548868520152414609720738452804497620335438721480063179416450604394141911505375062667872139285421005797410204824769993741235711123363056325307602086196620066951188833396779847170236013931433941779101549074130585845917226878548046968370545317040825853312413301395545248114874061476242006235519239600015360345221550144049460720421225615503717482343105657527765529230989098260012438508948046974746083357087316196440286865312731695898977128955344584246196174804559190850065308858085548598791884760425472919878816546815362332777208846006166717909291487527773006565767304023515523730328318535486546859512489574151034916253076058069019992747711293861310474943712042161004751645608513827459385989296831428114090288379670253067107198809372905376853510706413509956111899358724651480453436883248541102496333827164028634178447696126788458527254529731493920969148152089235514046676912240713935426664529944718476000645302456225985996364743878803063985772746283293780067064678903892919502049801107145084544834978911645880153557847040213101574878355269271293930712745364282956899018704793261959934766191879754772487481810443734610833337137733755647490370668259255282613389881577680749574244910658967098902645132364307996365114268156998986121590901076242623410357968988992746193170414706232501131095454498723822798944291730653587286812734100997134461040578608144451399123815946286151316387269874066780720923455124771264556045993649808095179019407549593121425004631971407766638284223954228589308505269471241828568016971091723262504589020168474990464918256418163894964500351417271083434916639044526428989798317049399035934871928194280467084543638122851856472205154990517840591041554508355467960315537818881370724357132192240020026999755720501150462685529107836091443851901268879788085981713404206015495542847207294808285931889339520539713216983348019161992813933653082934418761417874771444260970324197918353573304936184675576158121713935646447051931986350645366317486697636119664411442854699248361687262743180424709782909766760720282022647978891191327415592027746908007994003070159576869065576850837050733075332590629501389695892533261630256910850779884544275054559393567945899752164035547801296957927396398200901179755706341535410027947642938860065269569663534901764029128960793330076431639033631166224012416432320275120541569153194171435866414628638155192980664065436602873847727929744842215696715332573733872365348119581102403745438991154473931828593305022474861663952442328308858498975027575386999062633399076199119274729513270575744994195595229939564883215833067379390047046348782080789956284921058246119322540212277536342470168516711439300735208336273236891793629681769901793301994104395675780615083160273220183282086981433504666652023304607630034019750986215382078755083365448908640865088138157761524524838206185999825972232680200137077980897076628535407318478716078155039435667214271717391840652845834684444611288446399462663161521024464687488500193116725869633300139026793544195131185822026662420019061471044498048311948760505079638905974957457705858089457151305303242887113159552639980203508787549605182067005789856213381687613541614268502503958364574311054726768309019724611411685350993849122342355001607594939956319513484639487564302207319324246882481071491410386273027584195506254549908098758723089283560482749882809836711469238886100250711083808819721002866496407852656476331825003612869599329749879577289031410228532661271413515159321718042224502544106369476588136132404245928121859054422742735321384098083680739097792584614437075184871434835528104362761647521125523509342405143965133080766571066776024823990149231478311678150381443824506580488436396576935256654088594690001378283742148431712002160092685337112338781558452658184968140535939452700644059151314722190269982196903293295521170797349723010675722517720529194172041972302363585278597646745284854836799914162393627780778079672284355359107755115757139496169653098544320425406804772702801707577671574532851625633633641106014951381083740745366279976202754670641560398540302093024774848386637532331187362817832785890199563882050744219312861954350248608771700255812188107163160680630999097207023558641334367117483710587621405963597159813006938149325923705231517144495897863871223970941511330528204796469608959356434825222946547048187021532747375329687017102820946178031826957213946700248233498293635264317796439389599968092441969905920836376052313997317118686487786287534761625870567296649821701870671719995536512629656641650643155152410207134903882408119322569543443207002970972677439675011506057063894589476698235336198498442862377217335040821088646373519580090179850557824129984502326342991597947202098566558299874375299999557795846805929852355138459554965988638334271826486381099287055916828408906233223956333488537920272309877680939243286648860044823073113099405306795909288428110651285690360693578931903750068109560884620999478573017031280355243358705537466912713653509539129937394458229828820057988034428902217316504984154035418468464006034577833042764934772818631117678523267747188692732825222366356718921082148586881795610956502166526506231649097943505128873934871231445467546177023292061796234019277657270899049269343516722503121320800398706425086745154158275982856307702838306850888386128278546124978605495082718229157588133821136317498119631604054606412718172759004469516800385622139148579873550364964687998140062506914556924977781351146664162457594883247358574331834036250802657238489828757551043981246831767036209968507885572394396225161079317996936045009851787506538232011531964036613002075903349851009805368144074926358796737498862191151564300965804061086646815245893038176170105960667389156614232890632720727117040565021352008560312359644301682649425194821055484509605447380427213397043737872947951100256001679271147595123472779965168532356224474543361725200046411196797722501466636918828077478825859077357699548694516590432122082958055241167838197885345155072116522739181300577358740543453355864707011403370596795488864985073341346862059881868108484356603969354092781115427263028271119460471421822867173977201648332733083344304967399917080528867971131641944323846506189177762090677655914184637276312135649459914780745153831566820639517119499063769063421622081291884678584745967503575304215535457853918374644981669247456140279497111636466592624433862007008905672318529980516422606068696095727764307100884223089953060311806055856410653019151433375281691748849039488083983960805978134114637515670126531926718198731011134890171421856636744122550132524564527616050042751959921798813342449546365039274560967512549177605853627365093666193626870722429697642391887697193080123224610015097863306749437282031859404902575340422956228285101656375160060342851625884002201984373880846507905804732904524451985381813889915353865334105239106928523457928469276483821334985141502832960270010190630505347008900301097522270792524397601489364625868404260833608667517304802726174826229071444204277849502264220364343901207812183110217069444975365489565336511001200927308178785213759990546001289250127501017374621831060709815844289372243550191648950448906580274585528893989995637934294356155978937750683456340360003470350493018132854960371061736651525317613535012252784358175228837657188912593573237904350325081526513934199152539970550728785740960636960472767710450467016166474826391488092330863781602009461353579142905881079411111372290398207417348024926376798739812390921447238768122768524311044981056111098903323928100440039250487616195799396195480465959630659573658918366578911727169573019916132888592276846770597288123440133576965275094599363731715648154177007305066991003243580993142151562921403287812515692524365912132095081011553841276868229355708776126108669023863236588707031225252740040139894728660150691565944769730827629225231541249406596071907207169959973671259530983216111694759558627069538272321795817990000839376850331924495003257595779257377819595659323676216852967531749291289876105406459536508401157672742841891491524878514021055500290202217732879273203572524064600267362549894274527813929628215332834926479948476386263133274174256000779485900046458880511114328073218417053768399675100276859073302036103600327035833382144704598017784300324369527149420968095191806524582460782676945986979371748164099726551955459662428924889623815149098793512233821732300509455888233352629477024855876682488495790231929173105494354393414126682267567344426268217744362417159431560024589826010496156206555034135731196460824800738576328758357238872237355983192854917641922536212270128946795027792463139634416828483360175153762751679371660181188113074671794146105952770723333342254765285520496091419361725853783450620740716234110655670609090076588774837056542036243712064093259124449338571242913363068778944262914922472039624385010912855690931911098328434343695733453788812384549577204967884278899139184151266120750399090604455853892332167647152128379127043615600392351085394046399657772729264226144607946269889530960200712741441717927855075500263035143596995581035411575491665970225062570653674800152308643624057852145915977256175817452228827610685972923695608343140980137650823035142726409087752299388471098053288873987899715627679250512760452697885302977073526998391818251216165234389462087599875676667570146510822871490365748569209697771311796709725647618443370969096313615872909563429844837953393684019140818987497031949598057675634987622746173115000506568480346521097753239442145707733193781801129429036223281340987131951765633581327270219864087651444750616293708661818579844734752546109428112484476782339364879173116785067367517877866793178278720342158714753752189698329403204043669105194041042427203322184539878628138634845905975920532731796494323610703861642728827266577458623648246935413145996030136502958602150741850534904362622143784051622146824017235384511405656243684863641787489752998960904755085897388896854994913993521772662902821681688596902173939167863257612476604636896701163784319402889165095152407387588259649947300382269413101995035113520438116917654137097034296632797573975689805643543358361136522627917847488944610240233743667822694545520586491205752256896932646087963092180242356402809539583261484877066485886084885863734745741790840445484587264972188014871875076207513712420969110602252207930162981659907076865035750097130568089776283210186452396464521777065816195899702116834986810234786311381460714425906665449134030730122280389979287168605540191104668064809168491751134396705874689894753917718837995247052866098238932762106804329428642663937752995245807865963908726306904516910734291915188216649038063256225361013660966465215070481051146569448913649150921173942578584697356460468317744624188040645647221632804782444301807436243056677597602487597485525762346507737390046200452377884464951009298654990951878202941228975772496198332378417759456234449840484020114616987695465444424936399853439346355409273491603154714744170329671185126390997595921494721324645920099489021005506798689602373027695604741092621269277528862644429302931982317761993988772840570937858110328158547009399901744948534393070717145592134181702758998498757553959120726952504382451765757456416411084235353478050127726626045264916746065614436716208799936292375943876214810935171000833328703306866639226534613191481102232721057901686332235018675778303939327522205569369485826530712118883291995327814058267300658376576660871783797049063217111469505818848393636152429300433951247365029391390574795837164128026628599074082577680307272848126723559256390278672116543779923936002943831052696278457374214828046138761460366852641532970518851542705333312222524911334638730167064079247591531343598776043668624560397514580651715189631067856419578457968951761817817824312018132071506238346672759303622536666032312066384067847742704176595362314277299166372848284615159584475772468236874080579932058882399525539248313520209910625433589984422827835197742787583861724244011770504237201902847150709272293766753317297033341092296060944831691812888829062904646691129935393582887100691133887877371146808178503675662694824741103810515619159605044459323402103010044319828851424559822893630863416934559776845628274787705627053017423327197772218482673980130602519341285079735551388016391577780514702867919878359443243110269084321198637818236221690201447027320246815048274743096615015554201358557821432760308171862782217013217517836956683921910326631431516772696467501994432149328737870370596023050354429744509223314861437057968839935322370286322412281393659987118252005340447479366409884637817000110595502616358715568889191452858935920184346907609150208206882853419793857332294423227788553548496144361167041478297107970966755597536865771213575726825538373772001011803698668009350674863819988263374311766794380962834740658347216473114545316997086403088737847847341718596439879690931055550163761922140927859619547341781111695502562756785552951767410532408953273345617376980741255685276809484705801977925941730511356903329400343546504049779863766179174389419476442167342323799473410486816039868244344815858430435815684208940719104371469517077194707206722712489304810636103118446300831283339678389737239952226025370163659057095629674135656674000035353179782442006571861637372118926296551816380939852979182045685646562135568185905141287526135291898493601863934147839300680737103778384424808672816107313750437321021704019805482754554646373589454322816920761284669899100338257693194888223025031367902198185821037199510905087875388985419904004077745187914393440140926813945249661892197529117771841126378291416754417556549579681724751597122969069471195727106169021241217276480007890556445787491993283979548375580523519582513959182064477547361010901118750498527464582893153640468602592231170422140565850480486914817449130037106332985393734113962218616270886768105569359598647587428238800573347050918572593466847886003859166317748352830992742874345053431091115507053088546818967321649217763937464621688618556528849355542563718727441099520534289397027628074983275471899041132060188050050566741742413829182089530486398777861638877781593356716379941929420578652118431970341929665350748934045405683599834311792617629639213191498168145796355932249989239362096925305834571312082431431573310679281172079082805887687217851451872882793135493771671351792102093637565806198441159479332743941693139400349394048984098106751823621648545416727584224112576416916052406422814340452393644365778372622084081009592832540831650585929288323886609449687990136098914464771292971493128777658289360864003866063193863071005635096064001971410564941632197236092757087942144750272450832003534259540580991120998338243283128101529735411536405820664517027981409555174942505299192165156002404142525617024271477085433719983582621235141048707548324091225633815437579437069570710005347678165547700612934563789230540713618074280026794595054901693029460628496614844091098222994973137978298814285287115939210940745754630883524632079427790530604105297263225668739272313193034554811797610956444073362763857134201162989322657268294120435006048469121735896700414191613667128076494908001994054742268009225133982460204845858760237118360613307571272007308988174291965363755298908697387988375875774974260829063857790393807326206815915470720165624554417970704131467319408086094213562939175048980035671109551490308789418089651787413864218352121834000849448666033982779233864263148013638993620078130152275639254845983109618314332923951001042107906668123387626502955913303835474172124611000278843163624655008734978949899112325569693223519042269795809310817628984510802961584860368284164775076468936832424706610991359927740547419725893898461091439262537462715604509574828758830556889950751912832203510213640713847659517623038464216604190436614054322300135695674481104151240890176155748125476833698726775033160685345967076331097537629509162931898987908165092220111699672972612104533594433865618725521781748472953447389696631864796928128993895134971304893221780391677415775486197219963379362015903827998765550330093349441802669506873785464739637579274413806502686669387124038832572266245568688021302445647142649380804834419590422209526807253032963031027564486831911360200631018741780506197084607976700279128149322136867319156122663552163716836708682248850831466217175238850612010533759909098845552519448285346818518090470063582762076528302254620474953389732603723424665847767026189993892915080654271010028035798822231316844706270676082841526381913988797375687678137191029552505091048685976445495327083297933310359032177058943080953987205438432488323949125637510477409226511986781780454968218842687398169453195721136336515260739176454993955797119968621250298213587699784896649572511273230904891949649776984054809680380528052040550146842739295905484672448146724679358696159958773530491009343425521474665179721479089446240469045856595309809027650939008686488794404875307598900611262536140147331511058585774689778996199620718044046715108262068252217255003903869817778839616987320401681654600349971125160979844229795838394835272038827919252986705642679726089562666180352199745448676958086064483809828653859809552520659717273424785566054950125768594012817492845160929701770656370742892147953764628354040851597337220899053487045809314661077423404845863947281023369607153315848630640014107676156113154941815448227694971378555294316578328572612087987073136123176363784430353367394099649902860340036703601015662689893707499214836638033123229174945874060566476408140350396368745870498205858550416306130221578605802166719777836839050320202429984944207607530354996791541257935968781030626709538634229436887599445951619623327175265745734568359547695449920429641890842472815364112203141283695172662319885818019660337297764491897459896683210620280402720887228421637953750474302740300564367932822690648759382411941919216586594505967497891059513461111233263084149455350300021313690718650390972710504563792085014107491594889943945808600903008609916954587103907419673365466334367925080747710321534110828686491503624659531733304887749763412555928820571724940798831199215481466278453942604885916669152316939189660937367785377044049462907837253463537660075312346777069726519383837498580596990745722159840677083678114950524739657594612985835535047839682348148690145862447458475405116473760446391004006803555792473028334066990498286060198297849012606440121380969218537197091283991261424387999227449760268025233253207022973890828987861173992465193712498757288542450531610448672394648757255228075640480212534898799881284833108028957433591092730462306315111596685826597065960684876460615312397143362159432346468130313192692541272421943342131049689037456547353984741789434342589806789363316627248137717698460062653206874905566016843987326182434428015965336102395230562788354425346522496277543284185176896557579398279252627489092252844634459685667269346972342124165246769243954275222470120547357807285864132441824290343362779794750263156421333734900450782669854553251680740385146188877089299809826440506603699880233872305758417432714363215834369288784483790687477015567638836762754614908920071689746265851042666262252530908324686878428583844743243255046912551503915646227340328572318485880495092786383399714663121809088312083246040579603934867349246928431927135928801821421219162018175949575708378693944415155172726179518133377052672275142893246701087918226262970208059903268354784793378291431642346031529417226697439401502930635519464812599758235000564994314861351540388807617022400745517153977493957905579705597136788192989617697931379530088177160814238053340545463599691475427624710587988826990905048781392944255298746377798715324021685884762682359514137389260594013165951083747463705321513437376911513565926959008794801864012991445292268037908104388351656582280832021114276645620608289036448512674594321046178583437809636249389584118787877587192770531404424756888916492380912520821402591776729642065043603990659326952325838835278660762031273230889717820679942776704460982732431626451116080125657923623229291067711532715204362492957896781188081745202960038142827445493533126429287483570788561618561520616468884390124769974419963026433183786702061779046140355167642014077614727750378255079198805475297135918420351648731750120483856225065933234595249199527475108131685890681353405489685273930908090311236535912434140925232984680916652657814026256438166091936894758489891395849134066073667384542809978154175792706012892492011777330166238030905463474830896054739614413553827924482726685395404745360945294499810430557240570574028926678249600106862244371490354096144150022752391266282326038255106605742721566903527507318138066018466892135589341415575150750360644448706702646261708388195370283954921117496878699589940787884826968270695253669720926888379165438367271361514972343008706494713134457749876531247669281651954949197244818758759324079638735475964668580774357491960505972709736899703992392113678775596177428121092457605728012445737554850477662464644916902997410185313433307292443411698977213134614646889692027915272165568282947717156645254850100803075653128232699024017353637446724813182904677583386612695040608109627793667197170037670246246519750231449797818249045476487511506421758502134419523890539122066771628202665764348992558926454723181514474948306797733905087306014926164458308160497574241679778893382195199539517177501312683271430020286250331615529691089272512036219175171821743179056222367748855838106594738207520504094694612649389158105114316838938337504115666777875238742136324584856530912734692442714036631504998849028916961033855424911679641156224829789942288592118662818355212428671556153283508857907125398000663757520751056608151812251148780886911074121655718197141601870801709036744708075143190892827080539517794564144422727137572802639088176673902129131446202433238254302656876253142440272692912059002736078960470867757786387735758273873597217452079674845707835631196104828351438189653644503080813840430263356097915345033774856122573308907405783267747034387278284725160469541200460311568435057718473610959930951725221057594916516527363927793436722276233610762779450120057991394366906853380063196160701607007640316432082833366271200784793468910604862755931211795062440577066167288923696288331577375749742964993446242417382047719591463062740858693777400259022387267644966862269895754520079389633195067740465107215447310768563009988462445518649418054857620161986653773057651376342631893562741033469639853237523134305551640303085147728717230496895733122473913525634405571016464561524341007112767783829102891062778071934882697907228972207492906252418275500888274290705671190508082181690499476732734774650591232185226201748149026499685967905872586474763771298040925804240296555901734096913670216264605983345312347250122969547005326875090715291464266130330599846995395344165096661083702253744938476890673687712365945655725707840708467406882099930119902710026463305735798800440111876819060732792070662676617207039816915045572371139488058819521087342382703152162059249185764649867130821661464563821399183552561611775429381607361030207900188533543955533351623219946826876256529321975760051940195455363173725526557155937689442048732306095165660951698845895809046237396225041153380725515812908315900272594556245657517293993836434060106950040128912378808204673248606881262465822828485904324297734445649488321755586780137828831162425880732537743693224093128990043607588077702882244901034592230182645685465247528360455100092126204539208916450690827364383558770742729752307093068099596525846258546921756123454051791751651552809875124946240596839352297273628908714056408719842579240254813701974489926113674106845016466649284482212139589391963289638566265199670000604505460680360597731368353022716620619003068851892938769036603536614913779946405511385733400735866744288861993515115770946696700956231487367976463630230793635771154811431482561534906247753628729469634685682758131996073127884014475204950927690397475695711805924365455893725857188765335868502281567043669217753096527889018651944210709044212787004500578491275077763970305545661151204328429437508741085647762823971755643548478788217983838352101630109922403324305429362939231897989682919554802723926566287201451416490602288371091696962498760270828614660677013270047197662761011689202602866351066837445023086356761146730978909252398717010764856307679798150931749179822119235687320562821583260736987014955903659099738680219618049518843908322960296338885201220804848566908886419854960705512698677220759722439651757314421353935354853193073192958240323055947698493136441377113698843411228250536535799634279838612496056023193549588906980112943890774230341770852377613166714045397272169231473247656860267636370038901575251499675218752185418282350737238189829724783273248252908979180428009535339396221753280896555401383322902157888745572810720580618042985314026874540661832446107761514330330357850876278004688838939318257013406772218046407329042886505196106970808994013798282997429203350886072007247655715016762924964835431588381033339923956186286219153359797289536592617012269264167555091314488870787569965503519176586767809528475998684036337456637556735358560756613207730848120740870139804331707663159215004822286650065178034758399440269929715753158094958708370644834306868128249929269642363064012211557698029765558173227820312458642674367900336351022702525564432592038606831212868776719507269850068992684967679974804637967285468078365940499401220034757980907107604574334486345092117470853047442664099610345241016609979284187252930477743284417982183323374831805912650963064726934435895685291091983289655918918380909764211102496181762396880076456009919175238121535446691726169874152002398616963280652402306417942615166948056986681442485447918731332980462394560060458125486211674561211473304817305405431716724731521411756212386675096342536721012920900217505128669749183148795398288025724229813294737800976021094471138255867517095802239537582574449083697366386196479933001328186852198127203156785593277167028396570775743575843465063628721558117540283224678267226722594818160118927536699576261778736534406862745263233160454533715303486134483347009412491003096422054803030829490694377121442905313471498377002600086221293250057005728179216016294167766938218051317485209195467580791096542573167187435020540284050499590697627110627877563405313623954034468224990629069432602336682024265590449107744746566394189860922506523831774318248327287940439393605304533780429475941604561637617131401983825013017921199225617808883207026300275972053069069941237701054053346153522170130589505203161190410809496740939051036820476340668323989328720709554930199623273739044989053487703351331852101644338020136419518110955834353779702262757028433557406846198812596175090515147395538555926102583374024776895171144492930220930642706049234932495021187105661287199230226286259760062519864367146736324915026752269744477607269152219958683504629950611232814271456357379449857657877332032270295858732943264421132745668259414091424894655520742435960229124375758422550855729232471310863370283180198928856093602099478255807074522814087715122990552190465805630463358759866525078948636309279527379755867556745078000858370292042037375574014131154979142102656726579606011373724006862271271086145319969686256807591328871854878667164527828341222401661128641241757562511057451757626866201916665860597468031902189524973097289393088497006975905578827116603242055211468079907082723287096195926281216732715046101823254210490262211206294899974338212664859420317439701023607840925577331536602282068197377239432397756257882266588749978806299625001678402867762185800080139395350392173538303991192605018788691227962450356521824149499821182356305784052475618814112784666040000360106596876264683627046011163768965693506280418560488924540188463877308029290686306104507536598004939683786928944991108947077884802492086968174694490284100032440902947203903469322361417243834236114240410602315433891951693744640706019018843640981949590629620699630725574254579855516709455624944746440857559763149062029496309010029583062569413980335484621448108575272268548912119984523746230739082386785020915041310006326243812247330506524753303030211540205387806786513960172457096143079010553515328162184802991954651361671755785484257518907367112236562105899254718343270032682446905638427700926483283991743941364120517494865688200238985568777543441921497707567490893715482436288812895824798451499208442495191588812586594354494137314603288984836191061427615684041226206656853853315766341730999799848930283904090405225199273402698685168448827382823953848480411677579962621984800209380344883844780551987703833013544089124868897501938822364406130707434636976767507121090106334138080858609434308405622990631579508676934160398574715935845480937736127877251617540186973569361909423027325772604580665486486990906976306790772961715644307673786423294809091284294719132306505029246029181789081250204276789895162506240272413268061541807263266106283118955086728074395762306999142344747807866704013330549733804249774438215015505662641937519193159397317018895553085090960352235802810385667310330116198699512948254701010134969866130404384650733951566853397181453032320537238073626102635110476683058923214352613405543472581591052380888132876387778500790663295031360726066765281169150779446446543734951117100575526097701796385501653232514844140255863022614075574486319350806126927048424434481135949745668420589050125483649557377982652728321407106241625933619833122886075943597731157028577251593645139786512805304194268201867369276001050787778938652423195174025561774261362675545406912341153689558982739994161701522839975629792920371083934358318966074220253426579401006758235112509393901043651898289719802318578816763518292347460443133867665006189008389255910252039767583651835220211124199287685505944928661903151440342859554661358875528760313897426159030329721410220715635985534611288077117024752070270131055322601414045429018929922132365388847578290101150082323970299864617399184636328908726701875347529158423358623492572178554395788337956317651019381206848049824047458009019860929538381883095745907457754600617502346688409759119335640433195596107072260915252166983123112716982746794679634106436421759866675657756517941397874335329030624416295310192425339763854598775560596512656345186816753563029470237591062408461586000937659168705018704095816113960287710530452360501509239614801421277513354391262648830770020036769354416202331547111951224360804740271676591388918310840272292652065492866134191917185927811508888531226113016259662131447274140118885085033805094975932892463535772263286404288444880606665837461729775629832878797077573720176628631588081210957826497786573123421288314954411823755247309943018980225752840258910640950145968445906132638125605863560266688767383417312067477169564950963615567695215029203024195373354729752004005366946400579682870337141454028246620785300890121707782421722837375768883476668804910134969526213824784257527595573317088945198905920872787096342073802652865769813946202458174441495119065416373766877457951535298414361391318211680699820150187902197915864310653056865223437786737013089357742427912377806248672368623374913815039758034403135952164946666517209813823745668135654664648266986760874043908795303914066262760552818386878928204989532526525937089423519872283990349691273396993304800701454656750960880197341187250586372023382370116972219408431940531239743695342540431556643456835379674202627677710506747876239183890589804894780155143527421522343975082818426473995751559637812847178696393701415545975317738639259100023238782314103856636849522494434659893426556837585561391232226488992501773063466958714834250897670051138044303324847386147509404890442062113667970105376205200322342789572855749917882080924987698608683777561890305657462593981329707999026503298306075386908821583072926500217927464990313453448731154107805850482558415317999511700922273292242098483834317626489376478491087123666491992387020448168623493534561609392899096014398871737376908240835584250632740723189992098714288317258050611081587745687562884300042500950775857017559770094366774268021664206235095727027176708885532530453897711081470754571522489540286310314554816298090426081652453798434816793054508114124024962698081950055071614104395560289559206161345160666914898590272793645636303839021796604516966737467119097677776496169534422977150157982234255780047876999438690334190783440354546523356180556126110412922117255513477640959903441891837736641350196454071672794750200543682680593815058809406246217522927341301233805695118780887154559960993096664873425496336867982627097307852051733155042962889155776234618588751380654145836058126519451736472366685602426373846605673251199867417016683191835382740283910542554922372949814255082733074915181771805670614428304893481474585787163052916581631564802933782000279515895493278043815773587842708084605407174856151383003886184551944820571030155545161004213801308684670163522591133901712524232458012002500444875683847602555636707709770781483196048422219398677516345305840295300095861861966101958231198999199107968087266982007796809957687104448976198658784082604655702552781592665931256046703500565534573171606389893789683265282981647172637954691824744591412409961625357069053514746296547187544914694274617875326445282289504890455165953657473320405291823299425906057004247496455346419572529695818876620626485817014636984064592800972533387233136451720507230301270558969370703328327248049808210092348849598844020157851218799599327883058720520856770415391857835840497405713661138242541733557907772325879783739554130665022885779780564342644248435051258978193214270422030386387081733127112346854826772724378001956280116302478304991241224394088870211095349867261158607890208905264298259594933044845227043668822218929737611572026918953041636705422566224223200412812203860487514799677572423511728401167158243228035244158597962483124462435843467620305452078588869840630485666622880894846420317657512987138978628085411050071643621513070781901750093199146902931347684824293324264356360850715286844243039464510112527050164676351412073574047499004967940121972741652934082464972351113659054649237207703449104705683274287765385653543237086492973959724690837463306516829287729199540994261786138794628907515173987373969795149293351894814240515276126307667595857334744403495827867005025974380702082183664483678433156174880493120016103555575533841764377588421727265753961843873324481959848384203268774200438193624289999740680388639781931056392370882621873881097841676450380553893988186637621948971743946245153849965028797658171693995980747073958372245160696971718948057971246938187943020992818369477589607693888597729334368255778082053976169711297193739221460918010933532621151249286525086521798350262630753815605395689811619193198286346402192025670702541057615128539295439666278114425627484877292151841936709950759295698102088299686872678153634664914031803738102257367683640951484871258922160396552564884995332546967307230030350942154138759146042718933000414760133569047008989193127244366207162993347345049617968377595088862205073103467755818238797136621791202986242352064620389233224327635444601233633959499199387187559169556544435915244602793823741186146179951632324591179288564305572082432818102367258478093376494956954847914146857367733401191237787864081769783451225609326322053778192698183893879412427832337599749259068109847598980633809702293918297158330587566151097052978818435139638502147340290147044477399901988433516635794752947373348511294727205554548565263460723147409797649364464476075431125572294874714560856157950613418344652993169218991214452177827256015974124783394306874329772832473187147223927311152937395897862314501246208476329890916555848741044753104296596538262715388299550705413431697950643689916745872270961621271121231831133232817211022689355424488804634069500895120486749758327871309771228135717108075604612949017998460818382688323150976082268673218837900519400206227543234755036832206241456662203241442263772926780250393047622827968270991973978308319446014157965638495373686471374251145144726206111677688356829287633555274958943203829959123873038404331241793212434193088484295096474477802743806436442458756949585826756511059832250201513985385114048397961915807742513527926034618972880376483298020445219523747229928660623085884304368211360413834324511463156011057948950656037105481822039626312247807855699532043904736175219727318090704444411507442336561339247109602448829514550221139866796688895635920680437063610485224797257789161578402967998651928917510451876621053363458075565912292459059596886422192262313959845557095813869271419737028513260244211052579135236669126060344421413803476688711897378833913976766448438452376372646865138456692400205233174631945685604808047432126254329618116387542015444602883278796859808524975658457154151164120405139398608732060528746244908873178758587267129947513899067337227172099028773798035929814240033252683707956486721926187065774114113818680975391231773711022589833668878438935104982062994726098661729903060455508437931563448769803981022718332984048230595537511497101873797629899512387114722592836018857729153519577565741840682867052737627368925975481601734999612895940973401983926825430988228746998689464762123402209229135021794912247847632125597058398647256460678085289150748478419095859560099490040975874011395483358231938941472559527290581053805811793810606268694835425047553406429772030039195085349878142917726879353030162760528334225380019007070174416006396796110044589776661672954296192877884798382178439054194259267941289502834029880927151188809041952886151735652016863324772156666060727673925905076613960040141576507459595252833377198894235365329618030631669788144344023890698273305227783535752826885671475242490304747289674676908432633975994235087903234282950628768488360525424979828687344077248254241202167667657556976639217762140309162705902477097171265080036691683399904323225852547072073185915524415294426068184948519541000847969699488496793195470592008649745502655481027599977306383170379570485134374236870007066489532836921249224097421617643577087184387784769038035376382402563983798341672721113325884146263034913251313515693709149960507508550350865391637473248022847734336544438646815384628589186186855297651447647078847021432851546239293536125627469660556237795967202172378946564352192155842079333028603069346589125976417833906578882045141289121651457595436256832219737270295919695784506577603717533859805180278126098037979244301607392637877536173702058382877466212064141120216114682069406560621618311603625017870853571377608389109327818405474353957509811124809120560427194594062957909222343406806760338511384622086924806318746695583664234465266073634743489061730595524104398535388300913647584076345622327515465175752237808363730406348773932170760138333522058871930709073456918211969906321654390757498410249842449653864991702121717857119559363377680279467137091775445977806337566564867073659475702751933668570397151948278209217695550711245767032831597734331118039106157080135177168262425141465617166762122606274220459657149564011016990866309555715736698478106731793129308785573366129277020709228738326579137547959900420279014493143560197200790911990989761021990441352670033452587487174199245240882118173123688550123948537697944915117432074668766033115915261720596116929088037125263575557202457241530302918092054597012274545546877950846162313782599538819838151483412307160758073770419029317559701218616161591999617823435854778695252006999017638835760068965443829485298653468001378851426429177808571003128031457845334894348774215665763617449904897605356928310667356230215898933239776212896683487748388856987589980691142353879961263632901334203959398089156545746291876281310108037468753922594618204520468739074864014071694113580455638069556939467471756627871352872517322196848068409525822450707879548272978952518164681974460757658950568746958008922905085069844056447939131994883348892465000613677358453431969250971713846668178865477277200500703266002642271004737444316084508147535035807990970859206252950794407084530676759876541627340809781670906040127366437020742331873081946044458940491011131694860089730163508159277135359580580919409915515545717047599876209799495990886619408339630466302024000918960450816691248984548028388583665772248823180290405203979011906580405055585444411413281349584641485032224805467522062354192295591182013309975207843947757665626617863442566288099655376663056416264753500846036274973596179919936883914123940124310529150514751620720213485419212095638761876001599348043759101428935540104863934869046499764765051803415663063803606024710661514725847491412872032621312123805195227382654671513624112581277349840319328384349535995529828758703463803929624792644048222954482483026797679911397888189010856908216865658495709922122746412590339233375741779582913324109267002424643893184661379563213806868245582024815329154682716653217327217229742370234887309754385214157127856578159249525887879238955667514703089465293287574356960354242035318201083584255635882273474427677875301947224847415428233369464210872081933497152075629536651103245657136990062023519086408721462028126833266045339980375343217533972703809693246686714995320813957785341020234058845891401335620397573375821353910720119733491313473686554790029680197011172986347493049730202028201313307098509926188931120444770307165528397413838717861065918199410154017352287916069635734493475955866513746596491447625852983746462603169551174319514963648460329014033746807012434687480462382867652536729718480236802974750540611353299231954495248632534888817654014226697080222101171794831442116110447606853918184859388636191891161916810608500123575241975489868739446281217538968251714743150468599855673586821082471094385932831101932363139106477222596773860204157284545556360807660085897022396141951964429455886350083066211318556890937541297588301087673582828315055670622039404153278038453444954143529657113572445784236743842096200648251508035044937385592730456360020550147216058821141091915152252604719737535672102065683246440437402897194000689811942795281654030748590449924649700447453947075534057095801295301012565047184398189640511986821126373553695994475101803717012810404927883598376097457086614540047229959837840447482597914821471506729490949527433856852193275420140689249238660609006881421122911323557172790286108931387859350175443250161068245533349323499739976073047736691948657833898690511735616362023563868253723160761239278946380144274791579974500650977361116501421784622322440155405536406779068501297285699667860297701694031029198657628726693766617106388137846351060674445522539794992017918893348166277852415820224363565852236460849402137780804616728060553250442604173508559180140595881905847525191436116564720527222267983414794792025840134132416413951447449709810760181876371117736855985442926576099511423442931649317814681287332739500425738077971397481522831273342658077259845928050762029467484170121961892809335713980239373868177241708352373302582922246735252110631289969340202690732048532785184214766018582427726339294553943413974039580705362505829805962188528369949270672981068511529252530255603233592460747725425082971421269463730058165471817793608212413121862427917501170118633881411864236998288842717686274181150975706291369015807566238462304166305837351931237752987804240696315889276613864914325633702007036836707292907788349735814473697970781375249383390212568009326993786394065099006287026106535398063638100583606215848118232692460086272518355654896838213834137958606862105258118956065739207429705059163621470727467917252178624408124703253934174777101957027270329023010033666874791548311272206159859532033901828576126426899209079546103165066005120696655802750752223671488349359703324543713188180614219058158280940470109664440304899816972121148533154184326431992935101989081200517584152950463753235495552614400863984116623449457572681461146214779101986157879202432636568283956524686768812054898551274294620178509675991339489447388010128165823405422213134548375997560778830961561636917697696278891863967035274659591594548405873830574264128771030704616101088006736827003546213983207337731185256032457683936656834337401522124213748201906622424925107614759650183270989124055084697805285601442151750001676017766939417088331921454270763671666163673680330264273512754673274618098135898017798808553572527123851819075840851959822768802370812386389400645808838793488262895441840973822737670952962658928348607117640167602185571416860583435511438908603176289011041525697119859079849366120309471706287812760815579551646533910175136234661063018528434508556626258417969620666275458154235288419979942415141845588367278254662481423048438421558155992997167138428492120262325827352901827719525966113063352464689841133871628479775063201815052602661138177801223714586475271979810214654299187766692347507638414696083301925914350041149963964758263557507791818442837481375997958780167827497016065012631505991867341234565384030898095870170487685429586404347228093505542760581319150023087146517723737419252585671260002993626565945786325055484278842700990888789275496408985545646829686498484848572227182919321417346737507821152210731449061155868478586040121339420576205087097103967845689432780117235895946110612236099965665368045489251643608325462586043481135073353907904856276276196046408681698199106422701467817611336010897448398758541688182592724574076190609300866864683969013547442437835372815508694383623276229962312195638060271414822555913422325206209829333422092264219168458624656482007575600581914290596682885733411938574383817673901141332141970249556883713603950238847372493034418883275339230625765746562790795337577548522481482684230401460037662477590882153094559267377204880405355300167960295141336606788710018495881670413982514945407502220179810355178647605787993750523714223639611400188979574826281288056824087696862674483921157623137181351051873787445792031080637683553042440855849943679176645362547466511844676143319291253921730102112669956338417386456777354925192554660368110731062432135565559415302029512290838536360890871009517238199424133436842621700533278308117332326657375344042706845266362742603213091802680941246775691051129173443531421627845670972133222476284959641168072934302132615003476832983890212822458813040663989749585566455621592554947062098983809853900520204707253132818338977934120483313305377973408486905991390163064973699037407946753003071413592856621261546240871584303014556708318731724024981173560117567383061783454501074409265267384247937987107209609392147177937355310917738213998720498469832201592387042682138257305017914635148121053794348382232680654362766386474024606218296677479701235270002593950291352966458129751418131330870133765573494691269734598032015646368108845751250416382641304427454126837063236072497711709264178635023832403756246132437198680222821099345097500772660384248622669735437040972530660745816913259183152676996960042213344120290990644852266640956408907747229445290601497715584228668895283472903178881647147667949076815984748289629569140258295009519954267059356612625325103415654548172284306449790494183540071221650978370325794432138226074351123698426488461558593798841989708452423060141295867407745199065535252213689254119518687786214853578626041018485999852745131860408334710676797512933249318943695734029428029068534787130401587082486321356814288015012186455763708319585668612139128905397289101669132956187500690491067746364460135158407347792916976596457648532381142415923031911287857001412818838076930935960869238277862639618930267236260653221111291726505080112767726516068428062359696001868687140195541259974767293539318185997970664216611822899702307402198614905097483394018257134991640867457288484833950942127851636230963829123767964883770612878554525565471291899453122367771821150979892312150574433096480035270191083537118455959098657347412130764905366150254652246024120324625180738245565108381625431922034074987432141889813529609169354782135097814901068743664089396761312511267408477713420875052382763835168680958359022243966221995474502838692234659059190249661788379985532663581235197315330582179746226645580071677573271159577545212986530854645201988885589970155078773940681338374537561693567612045183287986723987539989481936974589806556063523307005853786974262877536969272355947191609752566769307080591399690620541061422654512305449335786132344717919851525581384376190470658470925948826438785799606674003635939750028856429419011563252332904240833377175818725614872221319195311853327435809506097348814044089716990240580985092879133188162852750235969946858898726347083158835796401127848959153741117207503076829793331452826313881587810812848191433434274889230221781304576465877236731387634495038738346278171614813251844402359864804347035013809349345572102515590297418912053471657977149373106262353977961412155293829060759734469218298097215483545507942045639686157604576335702884441355249183334587208283238612244022211330664923673807989338064474929138787389462819507625797443261159535382626197688228427216783123708305969338126655266697614302855774243070400340570111547510862385721530127270091077182427299614948013772933887759169637768925308128408800682784251881274689290353250702611170941388259032613643288306083725056022959990680973685849162782784920343195808926130445336681671196136709957469450304337242398081864648354981599227603214969266928340384632537636084521339161492476897731212593614212539671103377066004170210638593680874618343654619226054803150551453876864213372926749242234119196529105343756746111450957266757259462292732610576868498732706369251711935525787766330987337432627237260661014747289884785892716855812076537306934517929548931172937306780395583857639535979005837142381193580908305914013548303020507458245182392123434468028794401966480869858102710085782657953216072654706011171424142855791478150355759052597314941627068707641377610911690021961199906586831133976099738684711225410351153871212515531152238654860746550795182153372733866764881172569246496915242404041992942289799116569886436104405328910338122207628619976262096599177858554615255662843448302443528642881707593949304077851500399526194077499138468709431414788280500021622812576008376144755289807757229051256801751950381082051576566933973563993717518714739755218740452266089102439326647863695533048867889835807591815304583835701694861123089635414357224910547860178759376437241724575424733600255876244543787007739811054698309261881249449942705510972677643101148374960783102597757841763642915211100876886879203570358078894317554658682533147457998563239855416553496441299269808565180786297163373926943343750714647439606275124088996965213494614181359445174198269421133993010718703154894128677709921023921655535755021269251131416191305591852790494916488991667463366003151346527989761933497119726939319241608121881566113513487502437506808115097581703418328090807726422229220977132779780519589944189674572061687743199941385472266259020549373023543801707687306835648793714462292396121870636560393801894239954770462897618123641531133483049078806838511022511815158399226955917631730402540611961719073465652239489958208053415168979276052320908019787581799007765250994760211673434431030912602407553434835201995873519185991143321309856681922315396049312607330845838543673409790800904988642455213038442977766115311556593425660273646545667231899516391691672619858590971483892322702866290875573113154970793814419762461383543974342255634010301961553810568219664664201934750170336728200912553566792550536440412692747071450367778351338833182237475602473018558708542448308578167798692614108564177698726648257111774985498547629713273091906548396545574472098923162696354465993804027446169767128755336983798631408852501046683656664016439570819427654767673574521518276540891870293718108756319684280792496749933471676952280582710626001731463287875622296320787457146226269613780972815125044315360117675931392204171228933595860336000130633570556594985478928236418568472110728210069247143322607401679885640442642240605199470723886977235442269942357010792001598706508986515398111836157289046397704654744701446006050891222782680853403297219748862714476105457826029206476413242073139694340291182488224571234995000320730541097990091994369763732341062584560674838290608863750343962001305152752126117170192426073207445495649616656517557384058366228634969025837600111352939870969082664281298886942877920013416059409273163215644554138750811222196745079675649140280381741204817863999294606384588177543172891922149187917651431966338647915575655217928282875482676315078746551037355554751694138870400704409819492625394731972420896947170948757501260018265206514790162885720404501381643581802538540640448161268186971055274729712692376573869531446101285353833806655960887120352562835187665538799112175708289545833308998758577062434284993811316615961949095469456714014269717033231193521714624161496088746295114611341493926716276311523178765750584501071129515601971327577442382575654901505999023983816573076413669682716035712200659358912273821870045755421414510458280668860803866808829064461020318172732245551963427581778274727176029121387328986101165416879953551541573039821475937635631837154281649710552503064260357073770362055920456810781686438244858668455599541825367891684577810904217359825744553619457974621983852966394323488588190303013722037010226011765662929993861866123638346976281500970398018019821728947913599430320286339754535412812817857622660326118874810024638108532701318804696890884892553133470361658230829973981111808534969765408775785689381754051005055855193998604140042625675994639912938743890575417719453966945952560786118185677477413121311888545350441279908778760816348401371400252962814043118492871120466929167277826025782928191426553747261799541479302097247747693758450365229012242512106244645921036667229961498180096857842828444387747635219286633615595917938601924987897779463883050921107162149181639138435568620887739155718645605160228254452645515020926067429995720419402013114667443104239945991273537504438887228915295091766335253771881355551714124816714683178540308081684738633875028888371623331687960956837527981900378666650594671070932950624092956743094872546130434724557165145939348296061382140374403401916542203795237516623795186670598142995597571877593370449076025681405910261728471387268413486775982277193032700511096851440508077189956007262231099555303871240868548270961286219054425524879021625261514290503487757910882614406925575132332403921131882692256694495653112099461908793860789219560873656276461389068873884371941678393196578024267901578070212512617472953528930954584400433355924297674378919081236586633929616606813958846429374740698512112667069419433884228090552853442062565084953625633041142852444579912159663994545232598031203405391264846904711476376231151539695969151692483438689690901117898444801679025915855778920914077207188601839078832892154594246138137246534938452903839782861416820498219848213702221819776217800868451375258137660652381364866120101951355275392473914204233992666336691221354035341054467263722077094767792532809835574143680214015919464182446801741610474401765870738452098957190692707864083698992577439641463626152999955895296537059073217878786280676261864529089526252299251837371848740377322455102141032603491380649653959515388342150800246672290884339437116508572447670645186947780900552945645414506976193565134664345718572186181662340739709115891872330111627134648779720653344654682473889351413947781674776682488691409196154366923299046279499364406142995168061181347378950892221228152235155138729407219331633449187793807211115784225762878362392443173208139594533837165487698062403290116669115089797439038111551503670789147412416505690815620831846449992750596329963956921079805033316521806272647470384527148871011057149932565469730309419514099409403495699870047146097983593015490712883973668703093607999742115049049898314852136242498533581118536865178914438134837960680962854459189650568594800307575041938303044143918607819413929769257092391606504531624378586805809645141855633813701476032299083713277225991512676744848874692530161757309345951701963811612257578531938631368122542934371003051893205728165597465403841816625930243099900362470887194040126046770922522937007910056876931182419466432281161368927185219872894069382383505365968901355448313983930478465892411498166743230493036429453847304415547132175148077984409988593214469499102232830207981282234297412767870964279536830105166730395839161154532496283974182146505410948918986158368971769498061900299524429095926715788297313357087979708267400946743175894530559647744444404536971372703497189738264702116090364088960644207871081258509085096655821912938455081528235344070251617307991246703312344529543061495729703095000188206089805592458194046804410943542054859367234756947170593777221440921037758100008548468313608726508219699762853106638426882267089849878323701964436627785648108097320547327252301751113300584620380912406631617688678440583567411383543027882724352309978476577628083476248957305434839174886082330254401498857516068142436282112084057128247694279312095804232956569213331773312870834140047380837893904066942943396227601595949762055194932441614085703312612936506031872614804506056932581463722068148276591915178151221585571999155158145599083146157305428516108700082767977089678444543869732536067387923524475462929707056546450552895913484602509011655938349805230242417486020342662777709783617974001300820320086264570073662155853255971276664016386400961193930132422356980838022147777662434626402789298389117407225871230181142702462991474840427613388461166080412082039221767323064269991222856854565346563426682989066180271393859730934448879538650734940022453798413788271105869845205012460466106374221058777773420152842336824441799043072467877522613926501524112259304457657713196460408316523134571105605007914886896613777536996190873481655553124571592454632342623884518510967416194089520018645422176734732331539399705814079681452211559432850309254311575978571467515191912782189225007072533174504395461723524837291784696203296292970490982303452578133912845389135070506910044053963910369279649262070395037898429232547134266897123233211043137743355152936848189626141661895703366890669168660630662984375995971422023867674876003896140934675576200565334448833254158463617875709440938797204176285066616634854602039057503905921343138379798724813807505384589079111955268758003899536440180840456451225948517022479984556614599468454028421024959969668012048018525412094231484991470101342371377614473385833966829459825688435182497404761081711204494268502900185543606566836294335575698459769577860233936996390041962254619568427060857667202682789086644392441184458171983604465551010231558494636497964515373462153426742792534843537542776860611670659714256386941935276345301221968009759440956807329751173381004042020292121312254147333775074000094683484196967672790615259193963313937140142669180870968745292934172377731594397445867205990656361906268445396961748487580949864368108147258456251817323462151514567036002286801220040270489889142582229619304355510006024039510082811499924104772508336559806409186354349593048304616016426715255608534947540876112896693325259701437061101781700445851326919941825263973214041425415617063456549948121406186993215628183989400920280541210191064212534605448858015882988374648010741678451147688423886888004006786021054636126091454609182568417609544198970632416422931325841452744553871840118204491891138449031940621291283515080810098703953039233554411312651172871023790568869270630730262608831022387543711480513684980080795965824653383165487790125628403330806244838606824743408231175859311653480009809984372780514956857870649392254646870138746667461440564974527822571276713250355756280546213635767960396196702942704494836582446355339072403243274666455347445267018711117191725546314773416800977228256316578827653436544124903589649290565532368059999419894304985189367332310884865774500328980928966381264034144974693836652757121251722619148971206313873471536616012051926132814056108534803716847713286464075393502323535237803775993221890873379524828143561585156071550635847577801467618052628161019325562734524703628003350222328455389761690312740726724760235776482192193238022218457005884207547672600842255898272655215615030202092966919467478095241225021272965285096289587065306459046812367998476685405592968789820306303283999717798311182164879692114938776964235201275376215142152507167467652359109595680656737466287483261253809506811301187167164464539723474541647416160172258481599085265003774895652024262879866774092532925123758346282800938571634552654302061233408133285415288574821182482255856639760573371787327892029408299744948901343793043829229098827816877499212806393421973042431661461935719253219982834369107931321908591222649242293681855824923422893588446952978810048211136878810404704902101008979320221005310515342781805167967794839063610839160864837149281552206265151479669789418217431820580594820322325993490947873437844026768170282947513118160305781045868786084213038509511995469843724436098889106037599513359376953752469668958060804596020363872878423507965106483233332354616120146580697963854610274931299125753443824187632872150066787573818076885931531786223642573486047020345380283748498812023504381137425452968467192699180451749296965060937894217326691272142957000077991965617223002001631440025017332242074758408200836252508545097441986146229835240751393615683632434370226135528406174703372637947279908976216877752099586054639382659007921699364810969365249203384054801540226255968110851681700896468464089078728091482998135711412676786569261352378401953001132256237340274220202121638980815995893630146345977929679521598152372991341919745819193896718360647188305464751630166127572848511455391288998308833743888040619901488791982994417720872168800394486202572039020137580146921936728467157148098769474231688312544398590020793117851171767226991511243369740949996499795800093885989109000069730203585745259141169211707382321318834309895353385544740743915076744127642572522613089110069117397875671878561779611598959051649335161356848555891451517389005151985167763014241020955955492213598821815727855772413130403237909325404672950633939011102898623095201637175850521162504329666553656741241185829029056926844050671009610630077568207323191599566458234869733864305748942024746205563091918481740836633927752218534475314749259133154467710900170319973371172809690834678384582956113349294754171398406365974955701532303325099260690288474676197771655499872693833795926664549194093534003136642521991338331518123433929423064863505339268017026987957272507985590964966564164361983477058703291281742665084375602732025548284792964393685201630020711001541048726646603089661758465143451260369500163320606471042798310371590161989670311833603846654696756529615736239776644428090977841781920193264160281213726447982796757518104384596741782987951042249985903517254480447532976926428925965222673096600378632352727620678899712594318442241117863543313548395046209987402298937166053467436080624416681931388069168373825664898287537443031867099911432994567693262738808075253719006936091665538464343427065222111743441179581726636405018964433937951181542615524198359239232556673540104178507541345667040469909475282852232283920300134006589091833160327485823322274471771952033695228821085358444535698860548949622382647201533248794510626861838379677164723547244364943119536294171854254327215269963867172657450432443503051688987910363819888267242838552902285044321282048553762489701124928295732336736038938937979084619199706646309236690253600565663095027821543599788903041537201137616594119412026954110248573752959994008021551862693084762986633255765231890207785401380457703650432129669471095148512752044855801260068748403540628183049216074959818917341300422276613304582179706326142971830388397315973929773177887247085132952313494717774242330046702206924378946908519867621818791792301639038962345414355078153458204518510029513125622180846559480508877470427886863778054816373159173868970845685577244110607076873543515450982477146747051232702862364620226830531586755672398867127680238683062689826715515581067303625247943240429638258650931174093828037354982488733687265972768277157634318372729676388916624683815731411788987489551007063163258450289564898281086350231469720572741291436472805135842584071569496660607404411378568829143771771700330810969376594462147462127685404125389913774772699980525039221341633207992756276151540078586759444845272090871029905911056616649404223549537716641908298890832613476775064770973115221490531104191170868515013316658705324479987624717730263344032153245644636125317265040108922078003053949828947355607061723004854455376209835609989818275083488933109586527249971838809117530838268658427421402259633458384534288857614130082503877856150160336379351184749693261453371523967597731173765003457718255028728565821649020983052190521513013733280761520885728007189251186449763429951980667203707375581609573668126760624385715998525140028476825003029597781590232697300156373465493062910977325196265141723625537946137386314807804049673370632845502112350427110901659678392308954024745940746554144719385324831346850022100546223689460629172302455728459613175374053863991035254469619708698479954054587326461734181093181889988378430548858243601181601397676282253453066950962562560806763361491693381688144164759265624716849129817337442590209216033515205863249387770902210693574090131014334941009318051704531104764939036412743346168079803474357111978768864357977848377798039712005067529897595474012787466567870050645822179789406792474067462685684035048937480134133646477393706007813474398730539894625446209176305883165933145935695313500083091092952945447625475945260561975338463976060960172597365726043861018097675037862202726799411844984625281324458042974363150221588047998177515987111027401386443362170136056943975363981556638139360248006610091048328934186562654565721965515357080763729018179860025834049773994893487569195902779612313423829143388392558788615690202966131575976158604658910419803940892332847932248881940485868359937319100604189238849176218236703448904637771678816355085403693255432571820182045725164950556339321781507056731208569507046552078566792387302798420851305359456105170347834556836416455872117339504612986973304420576301694123166103934333227257615369817372866395226821962752545592428672730908881600843967118521567077524156004817640982433756487177142452575486537526100523633941091526346708210084441915662319334800782693210099576217872534246644651839229610861212227095936731417711621924556658650773256061038514383875049458149952526805449315773271018668268429184148303717366608293836863333456557741720186322928252732062231456155579281197035226362719822446633484611392938174644894783503969191163799453450051194503867516374006190739213537339619723373396932455135261252868007664949215226326643084629753713817472565115427316881908597516290036846325887088737000000858943353959259593214893307329367707694552626926901841259060618620326983034905369650345620915301876458824453781308657838025088971081333763382098354576831857152017233351732402336354915380814040598478875575790746619818279255093256927609850931679683300331636716416147035601844968147552965710399602347246174545511807732367773270145535023499596862218354645305228262877342501955023954615305989307113427941664596089169377314292098893193530675801675732846750949320856025328584297265997996020422187597602226770164632714872415809524961475581854805760158819501008121828820646961550887884995811978177182584030756918580654987580218932268593427386734220564007243347192762937502387786995246878559258325459323024122278648576103252676944156911390760884616904203475022961495984550708017928396926995878213807160878147490003336646206311713364057768755041917014686904969085342751214151091947566027419900799112871573327529069478746495574751322688312280448259456475286706245269834821977831955279841177323164216775051626143011846559291688332910552393308704426923309449297813324085167502726097059912232155989805337950580439095225608666636194563078437391956566791631565006542442568416046121746044834685365800808833540508767189483776423781745436217099019814893262060318252613152820014075355403886881842924578361528291237061057703418634490055203909650989849429067025355976967253221218731037692958402621731945449305959931977532423023495932102620883399994459671356507983529120868302999371441616701672242067051063825133238494567995353106011722230361702921304110208290652821093293105204499788238931326085753000818333243113907877862881144032133860506876889888882453992779854850409937685371810163802419001225743760810003904393929927144920147187118873665522103059380542469773311411676711986342191096929244841628675214483459127379938157251075143408576420055607006604412374617357001486330064951710760959589392330630649941413239354667698343251830564089027547737079017023935921764260821716037956611142200156557363126144583366016928839721022837745457803048169350417720867092474982154634989677675222513038082356324039213118708957892705020496326194962064226905364333047667963465403575738572810417739877740122981250293218382397815224672429947720593146814597123448150081469980242422865649853469610702885488909576978827752445622965586393946832062670686965522841750973344991343798305797223897143307934783711017000054917979683531240465248494477890591107206405304964284165883451091866647175753054060589293638015493477379281145331881758214675271501350667541407328995350618788605253600551259642304996297986541336214612302922148174789889376608667680822824776929174448772992855368920628230450087767080258993901959783669457429223353701192164253343535847277140283197692399020726844238767452129509368398850229155461140583485491484981684754339344271636625146335203497437680308964356443785625789774226962234794604013187733102637810477820808268799844219162052882375387792143870546456443610681296359596586325336269632239590259095996135355269156116460549411160815150892116711861329090687045224505693452606877029375755021569021572083583853920128089617421217851088616563101991935023545906708629030684219683251013590577185278102131216226050088514256355458545145014809413961702010922268733465458854760405979186563120731745155231071853171407335278221552900085264232178408812236699901920781298935734601643265717643375869273332000930277143293787540259948431079001936463843762639862987023781499287309914721092930599511378177262893238480353109554221791920276532762663420330801756085032329022131168514795976082958593396539639246576113309173801767519704468189202980860750637166488076238768267758106566135922276448455198860834054671918668439577750394011369816900308133405308482998614350592546700456500580121169736716534428028725175822663418861861110146990663754305245747502551445094764049378651275503333338556743265517694477439243360503736276873183357953926478508059669586516372933608982642568174582943673512123203294900413776980968682926992168918239476806931175401891588563441453614147151752243610032391338215078218390611696791132951273959838837790609695992235193012857664312819538998075933539985843130764112676432738398347884404181757816349932351217118811178026970883923922647925873380265434191940410361376899492375576098972077690286467079252845318308245761110692982318535815227351088341267302023345063549007968910864673444376936461988230843522005498577452113774446673848943694700319715703569941344205284991806277509942051619051245255353765838246950509356714870972191572026057479173370091374156178817895164219824845063975678322207893422549179647347979208944860537120921936435944884429226968476617499714988778071488372930528481849646369371977927422306988773757557101692738677795551633387354945876474671962187936950077923344198874932678517527336096136386796370838441664543985987586445373918357153325314866140754486593508423849806499781286959070512099247460370593933209523521952674193451256713653846427727222265617515810359481153438240318278485857441164686315180229066799893242834682831335142349958976981064387207595115170875219961968236683372859762162977281914125673824855706404859648359551084600001944059624387693850311821796496746177145383674093129166972196917577408408416446494116645718836208679955837896783983549037301059058771617115782705439101541973686426718631680842849614944828605855187014243866577656678940635849165093000032588055289175742708553843222027026366109824695954534349377997979871691122598592184133474778192845882392433342179783627928091017557832892170186914170538088660056988426317370379431074465797575883723813539142782220293740774820689310664767977860941314175113416914807377298001619874310547271814108291980053711094091539359206993526077251311319529871897938670225922565144472442128258390527976770040117115300224621029357176529987730565829868243087760793102686272782341484925977335323372402338847501152333806605957577887258357774951963915169321790112190236705773766930003918744847370155050955209976970597541390410722702151790857250629960856301122183408934906884997294157958483158246868503973121063201792107452192713746934971992907302985949032420922456335813831831465116170134036206431377556727150722334297375486451153083871989376411219878334225601325405348771304355677517176979858386108005718237990928970708675758081131103202785875934902808802480758218651492123614158935074375219239697402727683738637700678295551613419205622875511124870095719552268791986756757109966374706422929535278080240031778918083820983761289614692304451522869167887832758862459297980931515387420551724334195334337967405438598989424438011331851744082823156832620100053009761363071296463352054010107523900297124587495532727966338344743040807585701784679366975296467738716676514063729031041927671965423549060359637076778907957567394494381536034669001990411194432403381193236197121644373827143854043465574123837968681601626357716928238978291715095131641136216924765076969635436636844858121569214706535496638435414926268376657242366592891363770824471906091659860692981162140148783438848059096504049207568512816013436770366341268409084580602083011750825658411265100039811339656238302984563454140490990135833571444158144541620428182668867076055289519054243978212319907061807506611542283810833788181479874031011712286903206241497670648536723958950810270874718233536527210750635032942050581377827313082303026881745403222936894878657083793437612809368224871432606343588731658108623946792131150652590725555679170044183431054244047701874823811262382849642737568600102031998638633346759657565283680131710648866755130067195409505659786570916306536988221572146951386124029824673760403713937562847949059791873671818433400595377471133033419571333372320858182972419064732685736777718401847650833892141798554640864177140337757473712941363089608153694946790122006094559674492679400967651579150119365349067730831492378060294675456344814359071444335644348912696979895001629915676990113337535376429923619009808596190579316537267778658930012282693382340174577683300228308992165165939836501238161209379918357595356268201954079996813651771461590200001520832520430326875972338902884514232596439929434144588804498587693293609767090248967767271756186093656742149131136734408061761530623904706940359099754696992624571975304966776492216805524976259958722685928997944666821495862079002337673702053596028619987283898649619701554551005418550913777543496046468424782935618453967716317202109457282818594694235527991408613906728641069340700027808277416129148797770710159995738995420522628988776102689892610831144442716750007258595684230373030090276201327987369324213880473944846117580090838880233807857194527507034306652204743068109854855136623861808653025966593917955747368764177247389496737545107807195508200094602664012934811528524332515752231237868356338285938969674465513660878529722834250217528803421554447066050732764140536502793597800247036534013012593228610058643171668507271626340518810211457159396862963633536940396833731429436666870114813538134500577869956863913811725568352413866346604277353289051823710838907712565137913263834738113517113254132205293106565756353656579192286219350735932038956551544138220950169643358152127899107438755769758838645465897574587189123280775061804903947312153739855795362938946759060758988173176535319296775358921395361046620615941265576084731782475436464342114095443725770639468604469396046992592958658085424962833271642942996280636557459988145212309343771289474166871673797739189976484970119195933733953858831353954159905468417503647535946445628211528139692337263742328508246411237405146333849629378376645845594486558830775082048096696532271143336447413004792091256466805794675849743581924481658574775010482279692492147480717025606069570917702424783501448583042120466537258995433470559055876520966286691831640899482276470194819813791503751656254428070158686634981235748894514385860096821984353802420447293745799226337685262816780955539091840581349562898037680905114216564652736573981196694890043786969318094896969962145842057931787405937263214933463572453549154224140977607255856656407377206677504519818050305255299747695849075326826275599215278749342161578763456964841229056416560389514078248217558159957889985537459269383141350107314028359395871390913602287313107529444989863503404697094870035970481480086848667577834647938458618507701497613445956830941363890617549912880219880976434103285906275843885508461860323023399014279772887149771615620689915665297530768020582255257148475083008297832636429568180134861420456231355329611974017820612944006223131549015304254231817517330088577738071696155846056347918385120713510322477984217371431299984458750983186734329418397475352725078618057564241859508563359082038497385637988359144133275171630696028575227898674083698375220276791647036389792763529656173497147736747581209708517695345732559897973165074900408404600679009305666188085131415356378127525483669181012474028070830044398464089900195702139355628321437610321896669188680942159838409307663021656783394279589852031941806171584096246265699142690521408175360769619590891830320117448646474538077070891808735579816090012844248922707040911853865056496552290481211494264108744667966115018267936244779960383183111660871277071627760446581795845472658658714202071241810793447615428525346213243801139031014195623755209590755396054272308515574094335519865978827783742375723016769444586479625970527692488012207519415527406792757206856690991101533806104971870107004215541687005688500292638796885590635098870361808470494948077398972681210561123280390806895303888350968621968080336400606477566775118503121499550809635360831600773782304181857553192746981144415026574767161808970478217540769068016919032145400621299853429780827322913339734892703552025495365550667244855151996181241498666811759971731921619946116560610683563541041440925925132845011260791612283514926790634717372832029850720894503258934261191900548237326455535967958169174833762442094264219014450796315097490597691664703299814423619011084990030407746979715082616101301157437259285639926212625938924865899669437587268497736166968755480372177945900480962315035451047137460523160560527157499181153590926680404627198860572026068209304893034551832093885580495575506517014439529118354042232592133938037174169161683974013029997046397531795583015965109008686604193493496005681814675524183670910511400513755541864691870823931677924210950979451854359837199519328687346594807962697006818995200743004749208733379046898003945772106956334077101305700000627498689224228775835357851443013036207785102123111816337293291412443428192473726778214525656103988226764061226212203056074426928025148430548487379210772953304432088739530944497862363496415945634028383145315920465091877739128556046124594108053044101256424638108953294606960210388216784730793814153215615842646141285537000231438227523396584522308934119575365720773534089210348225380831665066056161605644713835192698490498553000244209386326140852820708645399389256098564385788112864954484766542409135719625238787373422099485368465675884731194602020932069433829963287408139578118415382991300472813714923182160035597305415961859819471255130422309835210512347237635460294294338642076658625891234814160008504147934258116054870349125696378918978877266993891810004215115085890052026896341284373166914632584962970293518843811591214040834615126303379774259346558546013909779962574785269584021904402997448778606662372474384547549197635113949226850588428695467401334423340385009282945170085450507743178099249119871785372619605323017318967225971126428307700004368723803847182082783390095154151491302398188133578920086141091060439030013782981603545213984026296420870381035519239227506811967320133505803375305082805540142991069939012948683471919782497746518124442924720089016290382409931356561894535697643948491164231211091400591168331009859818343417795458170551332815088110824449307729928419123464357894165182779941031060408606862727847595765785061237384379977696909793694725734548132090952380937332969344384889816366943826867374034263738290997214097073836827344328207470552059977077940795705137284293922272071694655584065586140058637929882923056307926212631011385095616044052014303901459347149217462340852193565369572030902373931622635423485135283751891238727208763098379608899033988811501424004051149576486247070926604985714506351465117881649396500859372005442128858671561642551565664886457702913622948402896950137477335678991482516250358334256728584138010050924405013355146997571853507187286326341566384917314961975233195666637790922312668167383161861316893366525037846482042623042863306489349485573344300748235370688866476450495679816304419584909459226559518074861940834456755884104080353740705963476684126170340504117969449714892856808417314168075038253249973198546681131144964592464226476050759251828220208479823002200164985632157616856229995197817407778944931417808985090647050478130683524843649200215197843169046772652784446430518169787330641469152432303120692596165159660872696685535084119207776844669808746222800480723066379268649082582515645746029677979613113289206766926924069043649000626381069331228455817620973780674665626597255635795050104228260490389487781889879828895026106738955568452360896830555755520454898342768387924883201088885153360477332523282215994385131917995653221287555082747472562253969001064376288305479624164218123775839902449151693629145135587920880635937425993609734833392046998117459561742013015086392823890919101520245204817342860945111964063796178878601307713048343837984120836031991284315168928640895884885187142720412166465562347006689202477855203303832101718385453835344395175233808759565718176182419035179954804545160157854457752273108020953449895327153833771534933979637882783766683007297764485627683455432414453016385940168226588937346596327956715837498239644607050702272346928898543584724521776228099215720297478245621404191716332911480055891067575872322725640752124503646754667956607292371185716536508132954307066892573502620282597922603985262883012094993932759597042997165774784362716956318572553480123274289375859528314234563714999898442748774326481381076364704108542312362458013195958169043472030830809574066268814758760891228865126723684318990530228444505424897727005631986280787053481839195805727830913501613888274350789815507961639900365291070353229259794237717765658035902627602639460301062343118928797630429991815346011703321504347465807823613723967184037234729097340680655659115340355400561929709785709059615379901033982970070345232360666505664834019882316088431375291425473752749942252654437861769391115545403507084271074617703358236174152717418655761466830169121100305485946649621670930694855421578793911595733094313932685775077187331128602308179839225016674107157869363657963377524973847572161596168584429279239524585362121120587203927170521043375302891080827545472234862903375760650397034365298757882891073536581081246464289749715871641125807202879567375674122112263164588333620924916381246318202573436192815621488614551483787524098093067677252937782121799666868210775936917311173646362992467711257465956683672341596023296898003371991701159760973989259548901731683302891911307018066224837568177887794613660435405406095506612857753046951753705593269412703139066655861011812944871280132782105039417914705125711950545754958680191084300967739956912354192361500913178682239479786614959380105017947124366172076993676275615310944307617580014336718642267760779533419327676952831783552293182162516990434804307263170394574231184155490761009015542373626898357660590167717530826096381087771109706561822453249074457258228955844497795914152164899779667555180759776153157826851823458472693086517960219513704203607431685478683456752935483130869919643701225750713062318018325747905756488325340614995317586499283006557835605580730675028810345486257159885839605737635259317007523881479307850949110986476342723263863422131331144841492589039808097296329816963724861680037459282290590036671211928219777299114377175995813108300157673251709207660029214999030640737010137760300374547489274856359788146409187783285303769202552820355118536279037561834231019026627752693821757802292824557064284174130946117424910861370355357029036361009693541572008360913194767672544027233042607259508534404157163917002367032793815185495992096484067172536995678037330714553799217923005072967958900600296662254087967288417955015721070194418528353708491121978914611731282871417090784789474054742176980253442093276561757772475814018385525225671934668009834996949814299787051424733669100456633747017433869848565183212955659452519167404905448306549783331403936901935347673542942237068498935937031750235613306746807234578936762735898894012349581738453079865475015368854872313317980824175082562182087048382352661325631574978509524305945156494210799510235015539373452093513689172508355576561579360976052804988711481923801812343169866637202319767382129273677801546388434869669057687269215348730917872587332568582160269152827070788203252630777999187672856007624049841955363778365869945493617797883503893618955495571936902693063888892635251002522617499562006418686452413647185814464428299819146636336082305944276483707474094870190674800112096111029254130961255907827915587827159701160510700716304312508073772633938042771380349186280108733094507041049764307192957758310057774976589755083905119843784900248740896306623941971696620647657774946498230627164445701188086933012550505858900033627938285260524831397342597814613896625973531232037973300924486745626480733036340524331546629337553029010846373376055472571372349280740512715795574152700729471043081968517000521700255707256810170163207951368607927965378982833640262052102831552940258273843600906502568790492486890720190645503237087235160553543107270169485150252601208556199887532005799115678062385254947121425215971759869398807058708959204950883608421163950832678363753776947359425372254893864100258091670543971610388950056416114412819020792429130816473058205513153842549657720776849940091319284854466145439377272274166338925174437982160014675359795111027701838933018002365297224950129328219294562269072387544206289630510499827755047282873664483511581145782594797336138924072179415684251387979811936623316188829034596073808003695300147299652712052460279766554719394373176727313443198353365486807491059721083465807332893461062673970025461590557237551938429386633718531195011560990101866882596639218669862504900141551777875015596082389118411904808913280144733081212731817343467372441181917224420248381200598997581673173702754254439039708365479970195608551058670134903974832676486045469654694206676516510947466847008214982333647614539023581947104118367845704473201292813082958476594823357137267910591616486992941569464580073050247346980450094189710950549740537665853636899624080059981474977197319577080535866997357306427835219305240859487851065118992563876472898781691565612976931498898158352101876965350498447167919997087874805739722215660274529560279468918162493806420963789271020117479593083494380858260652863854996571534626357407061761885670538789626982494458020189015504863064679025759757791919066059970138451553771413808114551724452173338113273070689339278325091716994523474953457841358188656940439545759435556354244143083818343738381899717496357694824989070718551077194969292414958893265603029357527811155950505240901396507356214540522183150782826567731446941833957896256262483622634383502941844069042425083185346097999235917143633887769991297275401968509547925615626404865133738478243888512227013605948069071140484225799886849922490638367365700345180576531140109506950380986456724882440514004775369496928422477676145911802493758557398577123240346278627444810263585226058280699532092458902605006510841637859443154461634951678640563354936410210167986568524796128850068222389845874028625133093708674222938664198801411498423178980961620207551234657835874902962349086734794507329538670773364949110725086061147827062611295142203980726844561973751760454130441888991085478299573526240359790543600078168924061587327682362516105090892319164288457493041064023502239464078923162894517126002328367570938058502733170424672438165229415529356043095454647644381771044977170022534805405588932459105588178374711174868614773356738919037299140728568451010015236966390323956946964271826121650278343406742400556609394130368019828505590302643727410987238655860750791089477234876771892650723080825385063110354655597082770196142591858874670665916312757413351207105689306233152312900157200058887709339566180603211775296104024902970424178573361329243044545621941143065701197203532005981353629101138275104788492750522041054040071951562891656713983210639327494791651570119777053551086649748106937180110634566661439805531340381335220619359604188573192809179793590553228874039500291203068701559901196611336118234264533858620217476016761308982786328906213863784133334261176743120360500380417823337345139470054338629326134053687526118829336107871423370540866281709246972439267035219431553397315488436735111096558071687002454761819327597916243364699858254710071413454004958071520928873485806582841725589476289215894009546750139183038344267942911539101569071595232816245563009389819336875846939244415450478769816130300264011929761251299222444567741584131404281446353455576081541414052121627367172963809599803939232270015358127089243712861570917728318713132794051172022683006050380150988070656503941951222234979092795155654729158192322795676131995880132265934391830204972132123615407932946114598048531589695710610820330905884990353059108716040194312092057895008838194299134925477851398230625299278508132948995912445286780848400570506230421552380215380761239429665363887271492195139259017912022628052799295198595040315407443642047193320831536298251839208262765523407836248195677370890012954716739998256711082467923321729059797181835511186556616561674759534920326890924734434560725187170319935270448758394116301241825274831534445042966173187825976527502308008847981877683579543341651756926982579625246245782623674463091941023154770288849109134990800479846632315711219945700448311847127080553820917284239093313427736664544084619711521581429320157457081666327176279923910886065200689625416501048212336321071429769280842224223315519713574299956617604278516950881869655661456349497935925073592714532830370797885610434811921344223353243077977326164222304318038754989297535240946185175722339363842617970328606308394013725710805228229536434751243058559384632377887740332895265181408527430419460349357366330692536278434185205643184226855359270650653834516761207576266689183763572020822611941157352154288445936887187433533350686358708997003018164802418814307759149608802662594006030284396546768676314425516754567250135530235248269318027488224916130853871538720535665621744537623135280132773791789705823002712378813164007120156982036704675938607332476427180355358746042741917785424393603306849366328568661234004664175486855534263441486572786360127892562252321324193074138992441988004850965139389029281046473431910503553319200251260886306025647554520988665690899265389914287647613091573496500726250209662765190988512535984670876432442150460152512763486425553552558939705537151653039958975414627554907858596244708289351714201682131159179165671951033013194672511296903861312194107331321246669588853265187306341785502279369422105994887749695532629452214208726906151493740440351675175236096278163043349268160650792933393519694644294918333567099038215232820711193427819900329998699821351973304535868088626500493409070625814580562560401368912601122020468170530225141872867359654634579000108667044344142867171999090198733708979250973940305137106739131895415647954928265264394088259163659149345451788349033717798862900274602829422418894723784318265607187298614702081446121581029597909282303316360565353023542336246075247053486492499835832375834895776677780028846763055797033992786960567417229010855415656821744988503714883747128824457697915041081195151588998932697065154510747759936753974502323640052950551229338605525403371427607254053344714079778114871151202943819712480272708140047427381126362054640991093916262301499609085865186214738996532872738790892393985325583407443435690766860180346117205412352886873584670931270269296481137740195808029063280251030070605704773797474083308566519198895959125234293306781346452748085507954646723834823291169885970066649242986282652849335704155546162582997642037849330921505562931563110621404184769766718987674519153217884306813360711737934663731111499151807758589960356903317085234373499825557623390624261313920604925356792487825445419198437850603467189722177652907142830992189846661279525391775457619871044649190772659433790909536207016890577794789521133313066520607950466235604082160603320288651515966724666280596318790020971896255743081715003011993437154843960271515212663605091396845628791394244833577752582557303908106993891130526400755933475904066311541546516636209132965946156609176703669028911970583155332754122817180889510823814625619230839368668388287319690343480155114457613263304345296446401301835493916338537522829816528302846895664739981946947008529262865476755408160891592101900808436329263578423842158331296812751967412049769448622720514059756562057109416614570338468396810424566964999838400334028494844083314472620296500970536569524630965685145284708071845506234715462929871739781264607943816940694072105924339546637089421718341599770957201424701171418924769095396200648216690656822266486895321111124818415748455770688724334492182547083301642784827800627045469057410113466722100214628828962824551039961437819367776802573080089009972252088948736007321274468168607819498278784904872966671614674769887272735811828574441395982847555903401908383990536923447426296060344118731120182462297697473489659062685997206098166334273197915101286970440424789203690454396796742605000719746375022681195346648067031536313767872850157619562344112805235776679713349820699083774674165547516775403387454668924875583203492473713540078372273897869578939707543876717362492186490681877516129609500265834411799594619509474993955457436906109084704995234028408594250936138068662601783146878542291453941808593493959048805397218159230433398020449608886019469368657377976316295859079354129217464925975401635006474704121899557407356199102025456286384345638724790069589576894688035831011190931214966818433910173877907982976225942026518744993383723054573808327535938466443721897490828608692954443030288779905755085787534720046040784976217594218196720944527644738709211127428568243072093770312874971970699577593077976847074465452132264278891182896557232322402298368047820205333966184115634934690299897856849087285824667409363190027626933894559115379681058601872525596692651354396616452154990001587822640761824847510178393819340488888902261995711929704919302972416662826919058334093590899995969049331955520357085823776377879070543538297716117525161763869173368154398560380059357567041067563741641205389112391820198582902052208246391294315809857176173212773346370659148853557016528395641876399253851070108130514340839373430928775652370076767753197768268724768565841494107221970666703448232070333326832360544898323542692991468376504793527995399503753887201164264923103990820328440215183549499629576034867107841165798744418345902651918111673143631284918818500986347576335982673882872112994358293800998688882743329316614645055136779077537319866509575659658334160127944987817297707346563779623353003643036831458863376172135722620980878422933989750064650366116387388490497996783921316135434929854659260632424098627660857863581880695711547312644766779419803712614579053905969504263346521996672045183569647240960326788011686118270327240309271060096168826240807513960334831323651237964345186792536667102338235864133591519550420424659232725206558315455121382175184405872109145740798805994603423483356403742975178116806940028111318217641982449719247391951081884695903050370138761089474096434607757756661776636836991276606313982430819211636926109404929822529645185901203273639229540458802999073969698874432294100671328067921919739660057051534072041566267165454173171848736858846369128925806015339561501449105326809392404610757887662417157671885145189971224579530164973551098429620078591697449219401589302792141946925673520931012702091565240930962439665506774666650773895188652723685023536447917118807751353499180416192013820342096810772325798925190106588924282855995336278120194854148647217131668944800341917023230295047674896639577605996088054061880349033986327222081403755065321734017646250900564978457808255703347111537947520116694590503734097705806810731389581779701191878698943910232208834230321850030857515660567777557991046071083747538722544463295797671291142187949471579729184302773357416015593282592247507100266794446456336559036515251900312811293216748127087915932258039266547495773550034106813887910479498868893547786782461897735992727777379510539536147286815083406537064752831895951188517865520055042985204651913154831677924948179576351435461792501724874204065096302930028792136247048868444327000184161055709179967572369685958630022730711453166838933492651262749220254640571906128216231795792576262769532294072051861496308198919384565955880242755973379257227354014955350005135889713086996684513947102443293733551985161386812736531482788005419409899746647847870148229136810819475504981432524920232245054901286192746757645742683126057430704631716058819868755631800316611257065077603948445446797963199388812434364602684231751748569053697151247303460868904770342775071486260978939177126009482214592980683558341031129380643301316015751305783820206384912776958317229310270811124217761381669420734065699859265405136014274353216584031470296687531374212066245212226366604202738190871260424215074678886905098959680950127753760300203273985903922380038025486196248911265075567186747667927734422442279172101714995368815489448005036495601838329330850682688316696955922274769455786813423253936185335749854052471231095249438561511542716959302957747370218511529842244544048003434328834827294099332750714678906487835612427918493684129119148039175499906801685785210068040039404851508033513140658015813171411283489090426318322164267746113551093751711781405194495352189855625051668792480682044517755748719191798609567159892728736386561378957502212396573738020929292196348034411392701050317144166729261372919910912785248950942588799728556741557461210893722625938788878493146680421363785629178474824468458572153599047604333016674515744254705715378080257578986979306108466657667121924512499715622714414728621060802983686386060098572372067335697622804680473727414760739238847478301241032506570382932683011991721111642512104875169968493584645110947135362611278713798015219149820590646960546733873226911866963608693790962181734136688988095570857805694132611800096191916757400016480128044863091728014290527476349736019282153836971937848540634372714577830685436454376128576047219126318644381614154011133064904251498755715021950205461116051108281640261880090795741979232667669582734577432513950582946065591260132909031020026336738741122498760222581034949820794393217867220296995875455915179078491655009960442331937011211260988041429157684932765260355705204049384183077136064195911598195910199083505494430421832807859404153660729588238488948184643692293311210887311631313381622175124960852833484046689717820980383463331347167217441140898082110905801300499704364904122681097540938202440311257485868442814204925065133480718205306355005652190552729139220534120578222412430630347082158754339191885533159901018844077712968963920843792596805829178495009960421710838896622115083004307797985632391733849320509354878964765481540509535888211591438758910131848959629131617467992373543370700617008003376650914104855529932046603538006801073842161528628067082355741345811696450196849986130803734962834724808007009563456909162153945783773494266227174530426047156284188331149498541407255392192024961100664738380004054478169229149772518902092260046725335888182128254558659041596118645324864478463134776577656415813152158694524313306441621413217282959487829516741246255735362722046182152103389349382285435423455043942728378985189894313126230882280522034165550598765640637036781245013594834721436219981437175435523360562852704752652845997018667919878106970029717228052801796556027633708731178466839781791850841776816101619922785846082557325722365267109307147317310519435852109563004507895760675522980213287999599259284998646956966660516563860943219137534849349282957700653443343446847749833658689064980024574808980608096274744448884597104689270056664882565735798043452901818260030972554611828986604105259277634462755608378494644076589499162340574929048219940539637613312037666736223453891776581442017212461760460866738512829996158258770617152595539626016930432506265115377756829204901430804419752306756343592041203850186780537360771274398119106022930434156734379366208222152908778266392511919619558589823350041623150182030671050312254463397807930924142731713772963669801040899055577222913817752730277620625370596818665112073131386248478824773611410317613527896212270941812607917480861722848032704927109399121758950239215791279749553562255126737179845839544072160799536109716285790581335296119539261904960942897314056896981914971959629548187166773697130211351387513183107422115706778547536818092768559330619027492524513874492784965423339286852874402936282810307756491267224843370460995361535936215259856535055436380279692961203343189139633545442537854275050474192041496308938723938088248125927845428950926177161147557136481153305832506950940726311893414323306787774217657951722844230621036861000804769738395178832490221574290356438943333196897730000210772386511458531722590943198468199086207569115690147286006168734726120356951409320426972443892306791293842764855044485303190270416735263246387930210821082028365988477436060068657323536465621113584499264597454262017794493799624426796578844175675379281380471292426471679215363803265734961829662753543218692540059026812929326655002842278460002447396084761985582922724729968516711851165263398094727555880434546167284367797364761934360698911571051465804974332951296812149357666405539162729829855001802437079779194346306820711083697840866100459585199632256405196482693849640183821153821674532542745556349230142902274253830408175762082690061538449408434379420023905073391618410922297533767025476121075411652064454841209776690242953004013929431746641924791494906561759587598331890312645057784375662096690695055639903127810729718770110919750441957874600708330809944978972331008989937065824596707966396484651510848962450508931190417742946060790531413169561556436033729514546362156978751210082244178727689740539806926891409990500551557056868145449238428733155509176465262477815642461089231882299291541971253528642381724249932441371093582502913348940867992123600560902205847152212582919979807323271490063151781767470824472958488085215662274174560752996563120602664314754651086428327468273134256793949131309196382708459499674964114130321190868140980877118393679195670180006596899361266807860433185915009022507539573356682633561374925271043294133913783417190387383805510063730675013850003165111578283341340446092732176214013552876783064389657386910098709423146480471865150714156148106829747053800409382850042977903231505601672622538324168994922559073245359698029292149674768662937693234678627497945166262629329089544834439944458511838203174397097124023295567368770914118160893507779914569411288131153783145107335119863994670929506150399126083947013136177360158492757467061779126244601969914084664996642998910377562464662962199882528907025493586354258047613480356478445337578050172393799566869615840328357147475401148538944261349249992133732555188897085991796988674389359263308454493695818094347550386314843337486811399967775631584156553365039487129639605011695758599755701455428716721698858045751477210667933160542166512696804792589050715037742511209594103216641382701788967675046270396436928166683690341117200143810068155389514499760479601125949556296851523404373385390449172278189382307368737781195860663026683721679851179559392435796668675572900818039419165466114372630612895621780672119621032520972747344178696937250698218445426989046661125302710068793428462480399030812671675436748911353751518360264804663006485006114877778466882853588168285333253616253950570463613747320103296689007385503470825588325126477310861542162818136684639467461803312675369725712677625810531728498518588137292075213857563550526424206165205808744514617959333547062510503572938042707322325123964267234366730090191918760891399493773615876521601435483217565782365975801577227083666496708726101316471465709338132517620696843561585321446280079300766571452430391695069694235539202859748199376603743847361620567971519280558986068314145105518504677247286434679840286732305319418871652636830095031316310013408590660158212069617516016832788199797401972541230311279208569763557121952624810162001464792785900581002860713826737837931056930975704002047109833859680419528502577375587496531463915411967507175656908351233154791301162504709376277422929846363497237845551759194953614259550724594481899587872537487654843143230024715091655170445680836792291408954136866988445386877471619262730282819774646654129355874984686119903777941142182805482251148616366571600445391140745174492574066568591048730408269772059565697482226472139372404892047595786770721003332442853888885376505225421803867847955814458279433659255173921985708932611611806464099354318511076493903742549511836611843587761808453134911000910767335691484591983558711842160111161231097057563456642850330919250444674123118743709602124435770910828967511702718788131998604770037896908196225540436795467327929288174948163319482007830038154758205015004399918285114076732532555737487458275648851306061102280600258108747433720803823123213557341260252397339103258073726892005629205385706907894165029438211043083679863575524564645771770426385840738442702055896083543164837057144065792974299069201125827886149537918749469461746118132645867738998560146391340403286351604204934252732751914303606312553242021521842393953869727571311041559121032964242166224772700828588310635801336782378179109293072129256446853127073549312056819953049661637456702063781082531259190702567829355078288984041416340180984328751548611602889866256729332533083262769868847918743065331240897690647850210374361327062225295784804372474122227639725831372786397731247925942588550121245894872951428250258084644529596940077449412185319705116810022322128538517838517100761699536738601003378640837716094674128574172492444484991642952942317390406909253160890635301647388370664583323949531373890275565528904155085161495490866113582287811033645895426079071760485945216440750806026960929537652278980818913551594207171979654926208325678470719246604643828863771044105417972672718675587769928502607268246079599915659716213201777714591977337531119232881418330921756747501895291961856407742045939516403024746534513160006760352192071691186251065292324803799609180025772511485784979773840330005335692798202303931172052908023319234779322019423383457691508069923194366204878188565478554472420662708044900983866780670342545760083459138005197847571654090475652715228177845419610430038155217864869127224113908185808527673972547768785079763735580463894225745802897130285245575514998114939934748602591518750970729760985243036621768640759077986871276894836119749035782263012657822674012916172209176812100419214085036505619015154378966052062044671174061987855489308658321508113695232475054760719045632866674332024302102694322753559223672248649269265147916373809579241843429126530651338877827458200889824725897381813756054333115004752357542796452846374778286753508204892169383048238865493111212634071006967186115989062994404785692200676936246081512026044227683715941704068752288514552866311518335859267466039548764277355948961489852638191168711736008695093917174688291321650953686751727693547556260277151933964024975937077442087939851739316125958967920508711345267844954200184712311971112224854750615290449653795382464496441487248631702708279032108769785358134156642155018016164454909731751949282473447551399804582760924929423459898069360128279229416056094676988745103271349017982122462595904005564381420509107111816188076063923420893679294586070947512788732181190271437762015344622107842673508056581553969076065347293546588184390365889778413292552123817677509809460103459986354516468113966595640001071861801605068667155244804064789397353511992839303588626457502346990569199789763789650543211336736182417743582533010835209736921570429516691698577789317605124783318787127138286577374168978103238301401276690223538229550025533897132850529805487546540483626590813719623928630504344247444592562022496738877242988839712655864133244409332610311360882655853208932466948117577289799056953676043112163695721188671966130023195295485357216398017237324067533462004015330414498231343890170651312767294865275781882587787488902027489528964730433585752271586460208657439473477791488573204958882250692791058303680804567576500213381461572269727081676918500953543105157806812934013939097713171733849690681815990741706410702576188283220129025154765939690272239189313353212172926131066583306390691957626499835234343428247587208306671806987667171852283703880152470074261420574581546184924799316715304300706497868672754371798877885587514868361494937957247336012569049230867479058393527294982731638152776182464897885534156131107844431554401430999631099400480307706721153819324767514062600273774922438187802587746507618039170352854349095695636210407589863567139175866331695122696550708628128255686659395626694574567708935131510335309308225975217853621388806814892415776098149383998424053769028892921898170539402430372666977845895261201600948832168940100186033587835734831080294952653592672116202910185213636238857888449458324593693766789706961631980297569113740842468164611510474109799369396494462861867907084156304531136955292383318226535073601702644698069865256434274766758248059561780812523335842009087361204101175548745868711577229681395353787229406453997791318246893955831910365247618657550136321446182091028268025826306710422447667783272921797592776343520491386548168704666870251130082459739446695433337350997276714652570587605935170108630878277406994561327219065305245565379982819790791165927396468939561963132809046109413979870389975564922142862956586494732521164649473676070999245935475478313564694277711787853267325121566051753801850809116686598807029000693293250126906561829526024766632755511060883229510536304256597751400567038444118822960958662664508805085378661479494013382410532144053897551363528999882523081122084909792879128751038523624481643476302669814952753063586977375162144342315785294259361135461208387389209807112968953439366613178388609100824546856860738899798551449459065549902077750843866233607605178313191213925263313391459008556109919418487509970068770853762251452270582750261264864381347435944393048476390208354777576325415009476798670561512194096615789552097185860543658426401404599945327859270787224968892111686795397196672685061288491713260491348782106683748294256499495235591367420532267655854259067206400917081533192283161314638075677649666384081421004536210953693797015293445096674428624290733461447847688427330543916568106194851640972072297729454576264669977607406814967636506770309743536249204148691850637159509334298539357553675670523030825533041716890198182811220704800640949150100879081529614745855494448759815662520295963664578722573051810170940546001364792020219773987971335838980451154212025764360479898899215011546302786892744637719684540220587300812288035090234053395307187700133714607950971550001896082324345125784843969268871263747033745396765582310474602284909981970716914013769342151037746483808496458215882687721398102612042801878967312203175320680610435518360554823223457117302204992254142102077454637130629000671072055211372443046578104568992325606375405919563130064604308007573572408150646396253293972912735607369934857837244350343047718436264060980840579267343133072562441890875509851475982524082971094575302136824064994218407988770212071143735049477530785234398065396295348334844700478724929551009950198023075478354681797759112689233345891730753336612034412212673019466129810181476276210994022885665501222861795283417858851965600359856186108213503743937289419905063559977614787562634151670523512380018347592085927819200201697778789937398372938930135602382520444795352305745940724049508942547688809605606523894192911279466602543085529455566223578843097117505465160684926796895995688416116788687361722090142076531531525764744717664161846001568060432075055919553850943705696508831059008724729413713181764547526874851584048473354772566475384818597156735493528206817236735233849110676067233220055382144028506740548923935182634192308356826378128959319088318154069892429933723743303631134400223621976792671891379925920631814472019340653781339682709591435139102376768160195429580362505503253018997142466140119171090397543366706165970266903562591980830454577467435697621718901828749201465621316503573433878530142130414431198278679062949785467053068424305817421600292519985987859489198195934902198065182523356004413212108620123395550948686657597145402937064901239388925440011139698019322741002879705060878062646028264210146293782434852069735528775190462274274326070248819125328747493021923867640966962432360230141187086565392351378473587198325933146990447347653373244211691470676345645418379413761517599329956706319436692179309337203822765083200595463628917316886853201549463021360773508345406757280815478266722104457629233005871140016840050857631169239770588059083697498751673532678145415298083647104220127471920363682211271065199399792205997813655064458629408027939802498357588947001454173472654509735395340645798510318466907421376799950556473387663697650150311436433193506654933390198048021206674965749519261620798461047754010638320461971441758209383015335022020494167083156590163579615887588484414278435768501074312348406761107949708366768438128252758405868516119022427366438438175363716763976191318456153797978859387120020714933840844631873593994706334539227013070668986357452539594656730697026780417227029066431087480041314446498317210686375023464652496667135730411574385396581346662233997285098795617557899176888606928595841622703180889508679993091799863230250670213958229796771714295933523033714893355533034078553027473205257166763234933955093474966244177418261478612316060962255112021951061058638202016872939005470234393302649094325586601560198296580273342633739781414854388226825695595851596027309298163576363412757485018491496885660930696866952687555671509814700118605718910213111905563548979886525871177115812196215361010813195373777259242911138654206365955776756647908593035913727820172458997181232143739031781273517993355186313053665427613017035526579233590147142839461832328306708481125914773529974980141999341854510685316801574472053526589388755768896238328068607046538981121300680679621061536408221625702084260569674030048660253672327587351712623855654907638176342593844691964937148485111407607863776244979580604019431072116420650268972172525630936425240748126648066551041006942359895803441637302726442243824444605278434091632409341373853903664769679838368239813642662910060570979760194973155680154726289108260642689092121803320127095732944944092729390068474693439543603339457684524167309233434020235697322508188875368247108311365953030142204015487108802909467042630300037737591198494934691991958797071713583797725270329670775335112007109668461494311613410110027223933332315177876100627698824426970883345069442059099238794147844564458147903930587234674852568406680550206608578396091272761815013113595987456432934441197054220549966788344999311699517622274954229286228958841511395879780668321204361204508454982145093965653787686576779978078416000558196417884119310931176221161177020972073026640481169921201637816679937365017894700762280025441578518417045901706423132667508413913550311739196982733826297126178398224583649443218876827576620376575383116832473007394039021027369232523645410445141539490894818144235153937491389111701485464242396469142195777761349665575572853657809380759708715641727988131131846079134849434926672799214746284826523547076344893258074139473907809077349795487824735107466950446638857443134434033128627696707300778422521922288333295797279805689755302121218486429548421546211872622084047635375531284652106986355613750596014082730107990134990022077748382739230109893507467721024128548457012845876512889297021038633817749378382956892091205463274117970381337497117854444576160184006480064345516369788235204598340663058927392102535874932814084001891621680411184825663694495275201982965001317163009192374547213960281434270790272076359525603829645207571696243103961727926055319181587449382746850378335406761537328339400233754963954299642764988615838814373112368579401482286879424552127511857411129472684066382281047059714080698599925789206342366064841019406217625621624933695603397649721285532435834423566848756325730027138006431105508677257621202270646703815006770327051599810638093820544963598408236568040879529440594868500602228146425822342810346835940200077076645851229330326064789631799410503671086867595264080587000365440845559032065126601239832125613581065616562056733540793205513511691331794376905389288712778862033385773438214162512713649504123375172072986549175984447871509267203668055959855078430449953994826697440447765502796967319948574606322271108128407529479489969771345413398934978027461709176136791588124901067278918927928862034877232059309736680796361369002293979130450953158699529506392532365095533758856486253868089514529575879407600522769108307041018193962983783698832642060303949524478006922293737713113782537387915658579930824409636139271308681999938301764491638030127193615084169604821954825508798066118484896502490379760279045393676275748573015077384357663332882692655546465562984322777263458167378434045132116547885532586207757291390288790951031789775183998021575694678979408009886065951950705416919286283372754037581430934149544184286202754247453415102487376558052399322848264107275129743570696951208826546559670030997210432458112966394399478174359153640139264930363317151374077851949875054118908702333681420858348514156708315434712326681123240616987080880401054381604790181257654177277477254904657700403531384441474675286612537695145254974305368943809813950162866526742287459332423050568723706815628121498528805092586135547337145923070870812311428602625577461577612599483773066978407640971789255245957987818434049785543077875363398513602060796137042325832955387701224092810541643804814583346845304577077785723194934666428946328602156066381033169899315165429564544547909017008616256622518939053652665234949381562320814313941951590419898424596901981122028454158873054846549500496913803408654321515599612110944331607335698901679299883750417769778243914837556784954665574471034028688514119361076042676286408827531225830750096209408554830791255193543932978726639852772042233493727946148990346009432250607984813268292886509048608061681471173699102811528157269894023729123854184033780919396580486062275172202162470845011335919881848870919760817573078215675981934856135153003049447717015575538515452060777704173998318195153707129369861993465323453387277222326912878410706596826316692807521925247124214193223189645865459252102486721337770786374608393745703180812776011509528037780144811724673057431434673453356593394971495871576101205671338313506064299097076076445788114881191595757898426847278518008117904123192761567499216438092220957368774983696534442287804152403688268068379912044669346900169538215175992297681491835989083183327489998254622280707784519766772495946852875988200625687928873383870743263784910680623013773913043575353134859408134703698272202695095422980833158290894208506376836727735835329436503603156813863070922734079211724493125262006423387280071122131082568787667201356274704317138491214411131105911900286826005689984409926144219861695019833717948784468971230617629709930082667057734583448476828217162540193488198694000003641027071520666947015245578115492995559842552963337511504029340162476136270314326040917557630610438578503687170023911000668842167950575600985089377357831990973589749485236176076954443213021945832910039991221587199083694702290386193571499389688393338913084209104869454633932601155682292137620646693159418213698013686871684473023688962309949733931478020652225807096824245794463547285737361569034284467363945735356622613283704241989143029899319802844862521579221979294123168352828863637375853878436804631081238384207630948363856150314727847394716080566428073412061127964605255377612866243411099144269559969357641099475272776167959285781503191295524538212475216192071527333190131615159792182248146498262901418136203483192148238162238814196934017202500298693943351773667745301980181016750638636781275349941283295694146130058258983898151507095826691573419859666349385274022884458514466990281623380569211720254115885836041638721285945856412471371665774022241093661409044397306618216188088600204959311362554526220883757165038460257507045139858855459086910412166815454014972462876210013058816016902132326820754312515915203414570379611335164007219889319169115512489658007461643427096012359168260811424113358405655351824778806147694751526924084552682044829642831969718487535643132596102979227566266690004138618844538668042419677076362190229261990937004796258943444338107496513547203148796465344747875748189643693203265438787670784025010636614794892714101161065527814820944913088848124224185888708227514609207926282675558603951474460311488762180229608491497969115571591917560027922938962232451889921077999437875052404558842757937163262476572140124326858999718582896758326904152829783733838528708870657867799589613890384410261836142836414377948035439014568129547066178419509869434576555148808262909070937656117611500665454487297740032264686453947771831512459642999715310899348334144744636484368219943069304739549875436204840761266372743269943371035523786292537201510611913302237052198659412521529430191560971038280547883306706067532792547224784927016690589230013771154729914143969599021050883612500311586581877025383623294808772472789191386470223391576207114825194824013278108826959613016718346745498602914754950939759033227520903105153793013424744274423655899264638922492484991651630654534692270737702362832191213534895621472379782689005724827894147117299434310913828464597797030590251661603441494748888158615699488886791431429028465613080670878728193371122774990486121459237982354748637246276944769355877207608524290850694899411883002123530438673537870133531684098278389497068139664442414655882623336393813943624923450901940886476281886221867440669258034187045028182177259796836521904303210647335130714670728013063182456237522572730037882083970643374748075050667003278533688973478336557193823450550141636978157642684399190371084582602837897538856400699430879580237470240990092396216961083422929323012180657482952154520180454385204111200633935475598564769305848626246756468942928343012957259310139418886353136029014974028884879323199905579376255724394890242489296176101351570087811141400751758628986380820937978802086961999409097910263130319840908573912183614432595278098908187521744819184404999952949700205775467493716625917041713929098449834647254727551000712090863237322845132210177330543290694274972107850513657249078414752792542565017473925974211476939868350224840596617067616620304460081468743570497561979647353887224239713529204761598259648201132814524269607238042883341750619196498582504988858970100457156981348434678122522757261666622296253901028565536178632063156558064060459609110281633857781169549887625648912725895336829377583497819614784383572542589383692829906651289446058604853955430018113183592312129939128904460986264861586738696406391905002371335991977907579548822884754207927528304341667178253142075626450077540696619711905891371027555833201364922387178711568631159009272103631868519042721747019751015618177409085435514228671173888553329749549014619046490270909089807799002604503248203263496609120515808402394558293919414083762133304738618331558033845242343934952495660535603302080434847648596970054157654824209526231716045293552857680061589260429644592011082321886154959109196889562616269025698338199758369309757425724057567646350836353373010605325557156576984743705427107656071754998706796010017829101673848670523435043570632300596274467840145637230399668035371576868937635721363020325601756483052710238345818557227460671609205221759814037938405430422173838301904694274863852117251154060276541134690027680640245593986276035347625947666053966926874922210787230861782623634523823107719674278905850282620953642726693750378911196654599827489372906472421992158725275947075046264331192053470312214064184333226436441831502568987516452221751873366536946219500631733533958701355547592895880790856865965398792377218068144263891490199265615894229572442838331411479859047530804879488617393963940006995923309430706837894975288793250677189797434563272926854350537533462587823219604030569568393506206857578015729271186842558549966476660017263263698859837369847085721389399852034597095013203668321587955844481854316862785090445574672265844739248809353778900996306176461850865166849071726894717837495694194454282375591529313727792503362454390543152536515228743296512285464456022008795050475177759351796893882160473996214674548141130503753677866867668691830770915053119246802016326660479494555424549652186315466445984843221621807725003011137950931345374207135749555144451590623303665668951663999063113741320780189216017261816640103146936177003821509723600625658603117536404833226598791805350570465888544092191148218493453232886723613911672718870762070449211399967690798906089141083412641148132047766876981882763414273583806844871376759333822665139755538441130851870814375651253154425573096615845233391041111353700294073586489244119306035588680490280910975954631721047663942916595756614173027354267430313623369437798113061314058793583261629425752269056632563035419829028109661837385735041669694298742809815370775293525163003722162781185836461932706713653829810013840123183838382745568620838818485033637747887242064796778472030030735633714165563303190149647779328268135021511337315857748757778972443336181004084460325672633998084041364627447966781942655048170095780770966940861848202221356270275316372271450596370204254414309578843668255682543874282482788762258865461877973388026576856432209563850893406045327536097733530009343897518273576307215502400970730655211906859974965691709001973344296897110520486534928715774411904956241401090737228692195584328377077679392342104699076953148932958443514585888351314614740755540868184307265460600333534611337710774483483570142800661133318062536442683853835464955960740432013097666409674816683209520188689638972548025928811000563634903448270602717109662778776945979396796490124009672273222536733940545643030434601858254608266465287068276026853611617554205484778499545313351430660039294555170923024884065027891619642692890027175750534405500955802550975162153380190472915296468978451171542867438117677187044040142523518694252269874853246634635178812698556146161874395383360604361708209759235389474821311502897215799892125515814132508637643457878708774016227780436935192791863266192275650459779167846636122936706869408937138837615513787949504161356441009025682267514487276670340065180880230455893624346020258806222604905860739083600944202198246948605322435434305879494146886770023572214361437711790319942031045503037275306828765755057289749073372083371784620826412041503036283414053975020825399335812746386899838377833104073909720259871093618595548482070083293712632041774710239624822386753240177967860789450756553806754284312189195782626116065825511085306248192779228780010145814747185447466057659814760023625122518682606581728102421801202599444205857418916834585053084335820212656986801174610736098471056808063127291640543904045299249354398198888660461281857728965414076948959735772361088812206959225896467654555029115939885210477332576312327066968415300509859977997577027273104392144601555708234425378478837288419415048179153999788202927356906797611123795740885071654471674395361798508736802304530056374492798482477993336147326269695068542297332690004024935820689677590921243931958041735640452673370114384824811486502184415714928849366516161356732877828655795916782315637329976302316588752400707662714337721805473413306526923038783126517611934801487532485995943773093069505123263177458895161262460002080688251475895769752122362048057808204434392330660657457190718817712934074801500585727270734683539456727405826201831827870795954556478570421366531437155563549633108722379146687038432096613430160603324972713661217790265471497676919486222668004943472785252637599878350822712083566101327308602748807195746655521574703000368076214795232342778944884648127499898361570323301724416633809026516836204264008184327043033383553108887587483887499922916805346010925278118593566234335226779801336933523741391290134937935941488481206869488729570446843552947606311267603019603319039412850188374035401624208994276460116497524123002256717278914651436116707843693720343705116851732929737490317030984956021343222182541471130599060718002169886936032360987522444783225343627536400051874305627712523886852570778369339245358653473171737013088040867507535933318701060771256167329355385974798419284595230011983881235521750598952654963502640303481539980991329707270108844540227550301056167867267050676992241200480000555773321941721669957228216306057269889546172059136815003345910481847975823520645815146644253393312323862400048557855769000433074767567738126949213428817542439432852265605696177273510629645847710127547609457183665866698967137102804401480042823851572605591778702328531034054846114398796835323690664138751234773672208490128784187507286265049489929701112464162678381239446242509190985767790108416882049747485129849439342949985258027536055815652542744852287767632809993559791622734017323600911111016287734794919272417552271094196156261613925615064928360534743378493803713832957289937456323305577339988308297574731210189382578050390410345257123985077176643185576436927297956267441429110764246236834678027504719075590048144247431290740272195378196678812739133630214879399947605111158690133644373996991420270893052209400523807191909874307665193878574193322178648682544309770466575751480918529564608973554803395621972064022663026026689364056174699291037345356712258686219103156335892665506446186601156078102968258733063665919329191157110560657564162134859696150091760017105640866291866080560307898422486323752568667999897050183524842095063353693279882107184331849561605810169057223343019084897278427340690874921127964924009546266566334806087483809329325753959706446109009792738004404389298390710207426041086514565303365834385350926511970071438370896777198123264304107132035400652899136442878455276823422906588032038740889479512427296322992296233614962825361067381160961175265499199047438294933538695205159176437435443268959013926732307390398028930471049620425918857341854971164529462581743350722978126061222806114398651511021508227060468979350611493351412611213392692639758611340469413924261722615924584745259303857335428643115822513270803018976819972130312756504834026643119308822443307327327754792358789012674865423986498811083133827379762100253155570254665901029536630246276757368238397638831810206102243927369494595288669280769555602054070045129720079420610119688014032576735332813933686692007390841160735657068238259735019262998028119047047329375431507668527281674370086530490135575226216910526243293345396975341234428384317518459029212080171660287203816313753807012497066975808693576449919379368030756959502955723948935969930457664499382509859194136067608242766579459675522953241952238404193605007922114255764886210743006718742564830869843536396042014155967421080544004309116196069285091626316898789407279017164837999615387914719563827800849942496902141871047608106149432946322039833059820909388297154822142108760150596765769877016631813514960813489765029479429639347674800693804201272980349840926229453619279547629579245991970853714486104537943365142997649642347257348643592941822208989781570192823113599739146878470548440725151103240185259791380387128021657319462585643844818279339293977651681230483378077585230676632207412691592506388544055834961819207637325321863958400104549306402143478564724301508821265749961670805099963212424652245771737220339276877984957971148300337047156562197380631766592217331599621572403541225644979601285774822788489444001423806594074283333296702431492093471682627894296122401662635101037368988346823449831641536891100517426998168773717173908699287191480243877879509926432070842538922188365822618269133031750974672925378860758048013851676645751267236763956731209736149582567287180148965552132834796694672931629584773446905167488170081622464398011522459443892395396633638079258420912635139555716732176077213384703253517104590431720838302746285690055301042632931572982559290670520965909147738062169452931555991849621709989226660796647731419473804661880498203002857169954275981061704983242771694146291412191912708714488204562812808826339343284349569194295762748864286250190201647669573860139460033841995408724251628052050812997256467377656986186420338522507262944642370783979510897914232624408300509024704803375598209315569306851685577273854304565363447726651361769840760009361339430681133517405744375339720662550145749259117246936725373644339007656537986209362336026157605281698459961590140514171910910913628279963714830145737801056989504279336416973167927514158608875667781323093908453190670406594368950721351931421213715893785002910852274506964414081613406438219240953982479277582226393663845913970302858577869266587364716305102752290341894469220285460716797531120093139426655691779644540572982776963755471344276521655784584690242410674354380127238143802605091349244978338636662867301492918064265082346478165747761943137674154293445811662018758771098224628420323116543764692209362297749463783867597018364308266038409830501326268704382857560636065428182522986936927735542485181621601636276502591450963973657288914305381011996530602131815981417743852672882530873189455907859810683121264143545620258658423175995259159795056844150085228457943948704580820824383033328399406095967067551405231404063025791333192351901497946649932459086480880689902058350644799485876390247016971623387575173979505031219193105414018647757850609870200894291735040281308887488793152863490341117373439302841824450393080299928133962854317533052600452394040945547138392635008813276987392214019644013264411324051265921153921554889354179198093124322171272345038224550313130621669484051084897510677653524868442298125801908813763077972920396158885288710125132632970158101089870664053334139368223237058221024788937501681726650838621015337117224323053383961328314828722768917170763116396423487992757580441560632358373551614248362119601985300924377100846231360051437501007825492815079262351028137341384427364742377835874231057070309813012467497673960806195234639225372571734676198952689379372671791816099634701306482897128792301298954557181979941226333605811616775424492111632211509869229915949052016523269986930858909371803457546096786332009553404208578418027503349004717048634593388453396451575924764749332661794994426271074814262848408044683839275407958408182030319795334411874586667049941126170924002175002428247719388900669863064423628431163453857587630605101097742560246482621382909201917370843986512657693442341118706619552872144897859005055111511752298762576915752944870532566238950890804697817949130137374179559801538050899955227816765966864079183463829710670892718973894069219504765763654709178458055817439926468359354458298678472047794820356816800354297192723923251177767047577113424505768613482956021101898307731904328037618657170871789668378970425660492410401116122566637029141941667992750544370525963768444736757737937542251576516579934020447709964400172074106257795782549934488018544366887959143352850047120316912205340177780051758165080759140553821689569724919177060047832680097711973609517272644856273800559450631516439007799097817782982847721284984204989207756297336242118058297989837667952783004103871997387118234337720777940626928489344983260439371721931595169016421245296894159106143725599622519217961158886802475419490805717795475634780513610017727559283227187669852378419386938840489611577796262888354928119632125031663811865905824274680202568741401409816912665696867807703978705288775509034136294689554734036836279388791911063382469075198727776077835320239202152701585298923052544842302617838884996108798182480877460132382055569813138258801714055034197082570228023308337906582347657848900717404894580332109226522444636046883518939372544094484612436331646796006634661637587027500632264862423885789357561766197118589043353116842437673958072691365227529616868768790950024239300515870489455467570591970262129979766294827181500358092625509045952512540858580198846581765213756321419288646483475415706015837137275924161080266833268980164666788580174965607563478890543543159263359120486980368369917123536432819045525804496269610088215110859198443993436620471373401627353015878529667196930646240925276340750320023933263920352391949062804920897860048862324803897984351186678478428652751490377809487382918593560441407291326708235016881131670508088238440432360274243599266926285345411842549074181891397465482269343897398329380113547308005636361115127037806278788554536743337581691345745517825875341742276466855519949575218786647471949556964564078879062719817134529531252276186586489156802081058103195570987653087838151355245981915620545901939376182717294608528838348123098625632465444221695662216764967148187979329552647307373658913452802948149614863442205945024878217629121721691434366468074288273496504444512276349913393113119072596864742528176240836705389642924934176031315115851870958686963953357163322361603267194492610371970599127664262029493618828590880839594464419592567189754631107161683633864934029468193287767317899968470013452566927884172598066297606484543042274232082334723354412529876500202871255529444082881734377219480402181628740882492684327622873914311134848174951224346695936954051558949753332295458243139422766760642005410076449239519885657992714410592549718872315266242376646698688135360363797780644726383243028771573399187284541374053554472952178947801833000332661086962456828093341423430989784852762135069381015909832272190380543235161008162673192628187277666704080511186518450862277454274800380793972354108790299485467154087854347957160313520870750388807932341954190190466199419300403499752206661888562183913915653764591148405169981709298996649447346762393194417680865621662359023558788555745202104070033228965681138155251609097084710248257508649890091432908337163758164913877345264071001632789214716926293389724283582398165327546941103748679056487339196585690347731318083982744661376045652031645779242083968696091329835083054304652818593045575195061009078345709588297638969899692269637970073528211173203352200050677259565675270819218938373831412515164578002705522504727633237079684775893415474150486410795653511736195092308206273208224397661893969858928118659162158969089691291533537423470713800439850771036604926382275585198461999410075763166896321685973764518836116590432317794039993588424521257920069905209005963731587845036158345718048449351247789918656386542083651471697376645698949232143826000128740848800599684352258976351225655649241302103321829073781192648746573648686513719472081104201648335225769930112487432216196859773522133473126472552206058598439101399029339613635497333587321566229251629781628335652444788904055470961697029346158910591684450927310565410333358918606509127684047499547794551067347170483825813481178938641204618654052364336294026100789609526929303948387487658407969165374136429704710681765884981467249632000364456390118971160935411584898884167446282671950621217613900353855383381401406085562151722074038659225650342308624764139790097938197244394327986454397425045471752291976534386215659654577223793165865176955238847519800994444603879202729606897262543878495230315875461864775831019330046906603954517973415774637629731537185245001537022146302719422226480558872633048646217459213805727247799775013994599586904548663769807218077145565593779929632408432893131706086999001017162836103980640031174846723293537967125992764422327678591619898259026200326385498948147767375083313180615623540629424041939323898595534946898656075053369138385994365989971890854731447928166007361424804236708994013105493677831494547816268222434623321818905710941713323761353324475531543076753885747451677633095149954653832192377017973908995714466497103917750500704533641963597886508061213461999518011276086060961363585417248365920665208270301399038042860205046594103665408691014540651341686780239296066286098997883277936316595823970612481607786829034374236017383586886350297205473244152204636151085120200909699553658259282142419957479485593184610875924150298550646285526681636295725811848835194656173529293797797164633241332597176994690779726400195706723635000339242702520189291951792348360094176436022361775353307717929473477112520343548211076731158376820943527530926959062245130771156252284457301238716345881275563614041209126827374466671836389565200402036265212995682683754844224565273628836137697415877116438837252777615020108565893540302356794367240798324770040535056494908388686016079547722240582477079996944720236817267071649272517932570773445114503663521236744199364758102081276277600207617667499853105665601694833206545917071014394654526192424708159040736511596712491548375992308957215237036355768908598299892710047450158055825595309404432195133940466596614301605243999752129156636000833854793050478924764042764724699820192741139137168609853802835711752904878541272668188227760582014868562548476773451578937060084421082833296439928813535952048985374982684312047552787233118459149658935204560959301343303122767498683594167801349067082176481308521586151127244479235309324004388694509829892774471402091657718262349917104658564946832661880963067000007863407594610101316289630511350892404122111403767570650539046502950723468819304070414664896884959038448937605810675155765155319824358471481367497367186144757720443533259807336551799112833756435254952613259603661711802248143872609090046523115908265245812882786348066469248492346978978033603195551509226634317538308209321196292077387991237485307845179897286926106468113471335247108575719314424322862263761866790108091439050463404698063864922691937541416593391885533803384429377393543576635541036864488226916714526955002496176102372784396362968857698225378723771834765209299320851766200369562733599671252429261268607191173722125369868141048880184382392796397481090323674874349321663930425207582063814607584561706914739148174567263836354563653531030954037718290132255198668828990511178028446596024599309664774043727576835534758505858346865310177042896938955832746158478538542640904352167488280467239536007861555485588819121677577478267043447750097609842276662674218996817010529623551266323336690816846501934442888562620466262081060999530447235506674240574996312526923546319402838035890337560017561143222068222056559444542232512901151181922444235652013570101074138050169194871190833183464591864016432238503255547363407817099156008933882373492751003746834938394540121516924864384800549444709455568245904126364881862618346195688602737333636223994200198347024157973841124451867972153248939312080377280442299321283339083850969057811485819690965594625219091890643318694040312090296000879749606564529110924101813934286423814771928316582605537136014685481960858130816107732930530016483597555301017376029535480722913162287492873386991600260732700038911988481708564110901937644835636921349174904806755736027018260287014062536436822248402267121665481903395742973288654823247912334171880470655848806924138031378761743059214574746328776358861370060048924864373379228745826404256809999347713521595747589843846466188297414151620489314270933872058949183537730306603751806445777551365550384412975527829265969169229876847081165357710458704860053781239607839572444240772780476557423970951090445517484079554827133335267663705624462326551978542797261150183758067855778755786390198758759717486777460302889511090014670081370124446768814133837367762110613601217628795302217344902924600969589355563940518112100024364321206655261364385531166949192597199929645812882421615422424939954244873236742113883714930956557085085769218505554659075834690807815967513762117361364800030404689001407632762768137169726344122214354694436730058899328429744711170206957322699659566544048998586752149367429179577983126253197391833224032179565887795674246174926541579977723006896756565687775161041070497118159618497509343320850022641550792833007839101595860237639823488736956438290620606231906709291396558673276954414059559761253569908884584809675039330381757569423742243233698357580785849861946795936968668379846394125842249176205235088631193980105941833011326856181228427256164107276080466819926679779154857310971802177493974453600450849469859465006663563426387906859904005018810639708545567729143390260019084874867279793337828390435060622857954474671489587786466740306464277422929854288160664752058891767613250129594019455533787488561992784367840062894978295414232143286038581571085102661565527584807385722687087743782950758209050738516160107569710055451414161404984736600523122938642508376454174192017235684770548097059343158346041168187589271559499649609047998473497677114198779713651062384547990305633050260898684720909283585756448260898648588399667750960362627249685811855611815856273900450117480080785981482486294724557455834098189273040257472969500376011494586893672271313964899931212420647136689869205112558357128838463050041982605487397740969223954765688477883988823343712498379507633352780054168264269318086148012566151243043813081822132800268001377984323242104125208941461986599826007050225700797397010417144751380594542650284360537965687856099538927330024581212707988366334329019912976214886881834438262569858573505345218789513777535635388744949973994347239025103982990759855788455846347513996521759699283632518985795914072608991714632049044933403161203085252885742344726601121132727802411497920967269306670323896450378513430893775258352498185288207941269141358485233024139514666041740212741963436826581181059155345995350180666369502303418930827998753218048832226286647105056184510020893646146757072084102164405940169450046779464901879893458392182374164390579572366303278217631510024469236171793345478578161365703067014446144914474669313405563634254469189161207338607871223863241209873392189466900319848502359458295510597823555407015973825158782114145447180572359793398773872037169310263780892310944401094211761160069818093666856775758312489126170774514804707304563487096568703560089612133345020274145294689542534190005298593117535210437639981582890850260523152812282835969955669103833297186187237727169977370948673630799728622954562540379159016715650358995375570510017457870620553320534354974658699553755141691384833282622082491974281769991588330352284130140988034228492567982440164860525151353508795201481381911230225369081097894911944763041665230180725024694148865153332821180958778635394738514276900042413109024593443578428165794979880962247069719803324640664221884620887409925890409944266968522630498219022164011921218949061559222291710088185871207850298210244696168694610721135801178843330063827433998213982567775520694284082470609591182648197870933333389662404937702424090840068396244359680341685817426572648283081040757142329114283318637179579953743960731041973612124782291387275434495944690454508825283683307875058380659486315200557812031389574334705438022847380025370867926415472739628635542771072837950079764577126209819448615176126610261338463200615303633807286466286041961887583517235764865281560046298458616144003419759632893757537769584693367063933443880525990917097843445533917318446874548546904566508708486332008787699321577167983376626533741493438833948688981989897808857180095961077122742911648226054501438060883319257630051285842638504497746791290849469575644695369530084066318486177370406868490384697290625009885922344910093942022594035004898360011205353331678443653509553427929790630132783208747896001679496534991736742770195106907327813559965187470975705418786627995996753849333607243038131812748182038035097937030726874349015605493550660516237453149852530709217232822349841432229436577923461392376475620295662543307425088527273778805350072303670309147650491910763536919352536895717185914603292225656757512958667142054702055957428096826418340169478796231658216629833797075022354058001766316922187501410690572556426822759344789798099135598120980336024003983329932518443819360298181165884527707380211420469723224223891366582924460699908808030663226220422513022529048065142020723515588692989027835968353838214776674438825191344554945043336522276790889698389373478536079885004287406820845876600426890016084017344007264423764208335344552280502748307995520636212156752395841763075169283195438904209035743256235821948339185207973334541580312644349991145734838924949422398455773851833095308113111565109895582289388219150673401229302669702135061066072317387882977396635700520163956922279725301745402097697919577100341000989180361470328090676478503989898395641576680566072659144862229110987082614249952150518054193058344744742618206805263870976176628511796773389555045094133112977277986176801665799688810753121820038501020015977464514376349134036656354977548812250244529483621115217821859868102296993020821979476569536303193047653304075996370321129743157528015128226328495998594519151754117763024184052982076091805646540125054832710752834394871516332945944441153460688196815532991784432186515499074382567215019359453687652482948588289133274998878312336545203058343618707278473586799344025049675803575110007837066572925703046584453440137423311006650895451787060581542509935184628195820053591143989422388572165568290313896228500581062613707669671707826291138955367054594259332373784465725576370309282199973431176017876177138043496645715659745786725561794307340819295815919804659593196850017438270316421412624689331326203864006401804752542371093060464588921679301347279289367597673094607058026506628519897256289174469494276282369363827729516041171461055099529748010841311412952390594500457934305325232902384071444815229201287515577655169949163231853755380603738679824720409884446904440040112101769779768507226293346313399872111704761495138538835291063125344002848276203636840536535310550190555465147183791888040529017852506563492941892449782486381942065488554401843425298591383329205861326061824147723848677744813163075010506735873064599606218861663064199082624903257209558445387859374888281914549720702027388096773964171089240039208901365460646798571360632918565456527472384162285622895391008696567780405154439777935951686612656735791947922872343068858279281885285397324086510674550023685323122760070546442466723341712703787826737000121297018900086019708012307037443998912805845623424717353849736709066244596845745166970968298741456193003752241050680514564492628322904029560835295141870187437782822464591813611989807979879207284361868214540026134552698639078026799621476814342209780979604583275396852940539976512098178685720771235057407411879201020653780916911998640133566262512777639270238949806623970358179985827714955597433351501068853497667250499116770655582888512251729662516977995345357195145917398203996156469887006806487997919645920728534464050145404123299555063972687450425351634806340816925586348007292281517789069553259563622814783726749137402193749672314748475185713079971497685092698606251615995337728889884700234722987261815459616273093835190637417939949377592186058053961302901709597804913455056058963010135796264034892289195624430414751676405472866075824017794046374593542319858966808522335816265029056850449819458953297754329216151703189226689297743473051203480714061178345960072603814999828882075769282329585242612696833350063995410974513884678771685347922456101200373962645737938436241578569750510008911752996974670725205772079246289972362085007539696866974278654652141501567455879958131954231632955585083990676588240825356873437551811829827048632534520085126745856202408799079255169550172293632103094979362448851714520325200777721610285152835500715667832503911601459010205764787561196080613035187692907872473537779664638198670503546590330217805147673168312926920188866078771530791438207213453670573858176973488635775336272577461363015874678645220426268295617590847505602821857122671874738656037197324012760970909812255534682980238418423213540306517238753881436009735186616333920831124013450000381414329241500390133944380267295421329098083881888990835228375923389863667141489790335449695997927583080130184783797753802171484119954008040788213312373247549334001773777470015244871083415897858324954296241175936235686536137006529015064021120667991349457066390762737817019885171474754390467580581723416541122853452132526171922015892987887871435914475383276958131645650318090984750392697546165214114511402901243137309144684931879604219698153333209053598462068155565843179118814098560954069483037509414494200940257130454285033836718530073822981874039646747472936531107522987870934640017754332986192047822370912574213116640821162726945786461611699207197888736556939454028271578276647102581682758352606736590577959500697880136404721092166588023409232967343179310706654904322204858750958230933148673076448746593256068119152356287555599748370836251216453102628991715184376695133652340072783618604815706905453380977567266158062149633584671414191961418932024954584881404544966928140257971402856536088726569640988057131731276434266626236393516214072745425452965685682230511931133262688200452003607437272878206543756807421615775001954847730945863150272892073217802484631913392334357741023893689363682814494758268264843920129274004756306806622676133967802990511546582723426439608196799478960783685214655477369128413655990000132838138208011780638539280702052716894570797295637746082405839582696334559954342791410548520495684727587441844011363831965078857523998550375570251908975868043981923368516576890225460402479442864336845181304590219636536063144979714994670435658546770458217690991671113789316409727061818135956905068599241848038228613036827341149953463471191151306735301041769222233034541991394919464656217091613276153573785589205714080088416708999881863559829123422505987323589444895414476850880424369970194737359853684154733706887645830637729495141068097878047955654696465737161229806544269425002272857756447566226470571359898208646831339485390895365880234000351291843394007404896184580249049845514307729033533114980319740692227901626902387554136631283057182431579499380780879557543361089056596950743436172593968119735832360518380185012625315760104993675374199583883394550367808881328248604000563859826290110219641896165134994832744584711384975427888377538236818526671109941386590977860075175544702821543301214172512752017160700270610347160277673861526884527171415155417874598491571961035265283180585433745677732339790500472500612000777673346449423807022932973048681929835623323404614183890218239673676894343712309284453736468825828246655006883319341527797883582130443365415515479225352956560509154697824613755486983105672819134190470461188071750377286709437005918527350793015168189198567699775103824061107252171809118131799958772097311652802801061838399875392966002546775765153143456299830790073564076452329266481706875894643704105066543118386447135560557169555340646020142158331692870347090639698823459502072613607968815938062869512874084586691382540757888055067752148528791746635989295460628339803575561249260188713582906360611918731252907296426559177806137436624901912625486392748093740833726591250269980766404435792234667168745928332896879043476610568820602995910347021014515708529853229943246479486585462971950201702850492461976063288464204874661588411628773953080862713959103356029308284058761603934032114677362685624136011592314835715033583000436781017979799481742792852076905116130643595811095515464302437164793628514391697536429902212118115495617190901474741645870094492488771241519886683140835427588279478793788913056223832770575720852242073191143987302425468565500168198541347523663362467439151576589748746643799107793100278213400584839363661130933479234207025574247877386475403603681529515918972038506480466463944566554322293233804618199557700342412397361685120004375318237770251980195935684380822266065227990480215477691451259655351595112622335875729364817008988021375609030206986252889145498587234255567710670725176326919289875060283671941916699068526385168778301122389379395206616745533119923339307070083740239497896911716664062832004728278471981367786802123476178787387130916775078623195147808684237923403029670328826246743569689860507301824049206053483937711327855575424584814943836713367274383290883751929572132462590245233643075307849896074819367522757242270285023226934629920113408105705684141949607819370345003501427092693095580700723662602055303470644797378971430175799865393232241511825795822144486621164136334379469953210682766636888333321417754229664924195901532040533621455450362502439546333815880799241299094270481501947472241826074770722314635903447915538855564149457863828342322999955595830653398389716527730175510081624408799336260774185203826801102221048649407699906080561351746084890078357896548316945311452766774251784303186006528161902917439170920449948940345675341226664445272378220070354341786063787630676318497634069408725733808665000404801692917067989514598221390889923522376669165708861169660790148582260332642761215633070073083212592968399892654352429253056378148929629823300882870521187354974253505114592733835111292823831968543536986119407920340276769300722259413310512308929324352134027908372853578296009826280545531572808874502212631333728192380531852859615706373651538613979634431950900167668911795908028783796210227517281155012295943351478044287377799771256696490866322750151199313756277868780721288191656254315168415226694411425057879976935887047789669104571467343572897497265089305419815837578271550867483013058694755849243610940175264665046194865877719813258873427965596554599599620490636693259272643848185494091513266293849828943302231332040777066863844375447002188536367696282050027023519440272114478659779513041598908145563922874828723095489926540125495359560146905811882614586814124326026831395657133740772585339703901872011849639297492773424012340811516350653124069698158110753630505677505502508690213519707402611230052788727975000502361269248513641116779953126127473128918840131257341378632254023222065817240201672381695167154283768367782877473707402113368443346786356818573453511051310493653669243290445635240355823535418793525062893149938014832151865890294285369014557206659363263434415090761761800345102738528340119779713399978029717081482388036756614023356863800533275575696553680518889497921708580354114916926380813588730588201892675913193767250275920912896688912216721150610778977280535786186543131889837810090883525427881224640762662885447782661037361860952423471887762111313881726498471314058167762430179890792504593817663903003086365297117217016508100152582812148464995825980809857811279555739792417146017469975883377848356053484733700983349460762094429646709516869291914584153561603232842167128418714132372057690599100188596379827101254189774208104132236259775729044456897341548544605999978475341584523154242213534318559951767325869926072730113859561002446525953682308159250037106944360356514369445161748565525488003683432543727129048581137096201910400921774163540158626076192755961569399889269947955435370175447404093371282279263109446398331696573529370783905363085605477779092597176687103572884465892620965750244430567733828874472250730662719421148486820199587386756558699594741632997387947861795514377744920576010117047420294412438338715190616531594621563785777895138460789424816409462259969214571759485093725926808008705115768364341760375775887326237747345565340413574357074773455863232006850731609527440017414276489146829489330349423958504208285262843969897311934518698020783426670900324834440542177450670320318579014386006004186132575368835494525747443278298734815442072077806410573783093720247917807600040974379806308415276555622386057951438245152530783708788318842554230499121187227870262923863978215053661208627392829771865138824723314413836403730991454254799843700691593856457005634629506132055827369108818084562350967521501911707526888041293106288759322575602512382615221622655131889285660751062571778118594785645055326883771970671827721483341393561823367968754738153916687958059060736480882790051407769059463783729264620550527220495703867858249185991747228622364011079530475279532437084318611413996406058553812493902147992846571905077006742326432622029921120433950233014878263251349497487311074808523276244570449787527189614693121082602962628570482836998234949968581206469790156632793757657258651993222644025852170297444967975957711715359345414722549226514812451127782872157551987243111365451235502851402515870089160854797259032109660544888367689730498712128657349279095752866961651486262805900509778129739209247898414185549067977574823591113090684422629968141454830337410971721588906952098184742854429015459020218678970599423710849367924484948658345916455731983032455967380648437615742265046042734502593437433298093785935151077151471332222558262037250978317637539295956855114501817832712785400499836041288300428901190355900153325042422933486656203945109112311185298329896817108485401553817830331957255556470999000023959639646634592739219917380933094288187393661512927784006390978270124827065678931257585763527653738272029933148011911423587682448371306072470817092198184983287578833353148566118855516761301158701609350354429673083522522788671064063371916409461637139413553995855460917742652310673246281947317948814998232464882837952251190509276890397392395501624887916692468770971711854912177939012576525917843036962665079602395318735132186455595682785146346973247558579433289448006670593735220324439080851642983067838427439460389480567005147392790085111176170368708641034558517234828346511737797139189364995557642591917479988017943181052747892414085845031527820324818569084361630661418968722618794311338882258873607871647620169472414717489499038317481020540670438379265815416580098942109936177396736797153783431375186098123761612542691248565692504982764002713696351988450714748784553307310025695622852528488068134067811168767934562333117209639797798050847697198480690232833872157943828309322762029052098707375089162930176993431056423309015074262702551741763917965922810392401964922444428353883315066533615685107485054727095496052479150407130925335080598335850592994030775164056173541003376763912772809665709535447347065930032192018646693789671237320287816761436155559066755008952326888507887063540728754802110817695286779966528151953428477623179155742240760043090304470086849136612444062135155555752083465914677878322935744180858050889104249393006345527624691921116402791753219042429043824857505053407432330918183734093590629733095899115882728285409357773132851137332620169274036946684716689456543714424683094881358410531406413888991713094630751715321587130372559556360831625646272962685821298257618938475638032978214836516576570502430688166863207762887201458572559732753498842083153743975702135519558327185412267149883051543583561319612230350526028196566307505364471529614168967556617741096959467937267754517345606837545662436870537784933617421741753057784197448532768056774793714148722707384750973752310108054382232790166541066616918468327598342701347658740300110716275816625182447950188473669943545167680726923010411487346451276305644449818732055152590235122674949646205437532584230733420157644986444162730086287637031334751121177096993008704685394076011873472581332299470609771966454995089341196350388647053079081011517833255923184161373042032827609967562995138941109027737602460794789476431850807468196527723828803133652205487176212932111800393998802997018650990441206236596980302898638198022534782616173268534466245738240787745156878541629632367319608011560969430050472539385524275290341534278191141711008909491315871656945866478372365460649863414333170842043373008543620448160651825552112046907497392335985784533408821733548043251858625453001546649913687776195060827489178551163159041724921268883983356671170342660910491250830696054576188183175876061079471654598001623625046121444633473080837303557200852049923046141015375282472937791655825024868343424820862114794118876006040383322148585144448233026884521422762221234363525402961979084184395240713935216269963772368196771300351660810285325038033118625459280732474997408976018651094539356748826129267802672224651184248832505486323241327976299005700511431241496915557460282807284294562372325099154733896354114336417448468928285126699871348517455822304283534323792438542257737100454797445958748760981615715323867184762955601300333754446321277845900942686237813804429166913131098304868173891194454739008057985098295386032893893984401968843130610768255222636543623007884182920592014977000043581304438213375734377365613025098826243803225302819483589399797002453589416261514940627864653827794432771219468587754781261504949675882553589242502618259245421614412928382438273805240454067405526172084340690261263633230512584566252638971332390107895710015949712591153360497215032834399821239749053969342063117079464563810693334992740606264361534142567820979337004991289934440380885422157635332240662928149552016521826570579296718431282894434225225540127016075688205322601207351085847802580860207438967376576482046781532877961411037439746863424796720065986271241460866084774939032662719515430312963161049652261946894047300879081133725356612311405875632618111120592086448013534583155167471615016778646614268023790018962331896459582392384686969413346640092364725105387363996740141098579468488144636471444811991492634388352227602016917784174483567936899094032733859855626643236799702103278780131728779618071956949859046430834163364846326606059370031225656344115850675012393267803292688990484850229531534523067596271730676867291697831488965827246109755920766351357784309187157691917604515545160478183018006164303919347647138655633495753163857911936102668093678365616095904882186162823711061789267944748642749668418584366033963449177025942492094979757684122248269329949312208722962272987581411239939290810902708527471622935128670225741368755383369342701854671918663535791184998770968125084207208178829040562972458496903140290363936961744417093085887298347679369873304859613632594728165174710686540528381560604024711925855385079948171024245655452957047288296591032229527534491810471756360253277525829200047239476423033465516797268569110328712650074853936915237415850484753834283499574886740521630614828352125915761493170188656439169988436650799646984092377133062466125185679064996433577544459141397250251401164274749876398392460408381848833707179833067491130974177219838935353634998491529075361329623398018312123873166757649192837427988144618238380021260868680298377702240667460661678173140505075558090408272560100971172873689482199788054225824263463884167949990822496013937786113092734339137121065288566436152070208128023546040846755693434810083095542511800732341126414631797921460293596715060783589329514018258465403804877398748683554810329117259022111492963853804910179779493475284896558528967181093754962459264693152366715235156136501886023490097462279057613752703060146643390837512313546186410319663606490397651338288720531991237688921142408178054708449126379695887874599040902777026419916315194639270703126789442778739533086004243465579471684575386738790006620450725705485667397753410674273587382820587390024637022421830440493543601023346945832195925694902072548431491231235287980027977160815034942312675643801247968226693406757008029505486936978910628735168006268105212651894902491151138932441275223974355395749227885135849062136059553796413807269863421139911957656065775132378545066880984888734878205402232902527865002164092254349598910603367097043037325402081440986087549422132940216330172456435967479814648386564931483384386581690844294132049211924539007753673857142583058870535439956789757617321079789918259534076835158533007383922486798813458448277562660191979802689520553960835050656711657630731547229053825563397515550752479446187716433217977492197788297861325885431743051915115160322014294874439362285271217440901500318916237297586102830335812506797643418803891186185493866420222874519872476338467421508134277909243881004305417121494386389564621742810812454252527063493965107604633398416092773909132553948167353866435778157801109168367088274622786054043441866417566514374861645809908614188113046526710224692081198716503948383206930575877307092221226782949664046085707301247771748974209288506219986954151952542099877400241952646761805719408955469029509786247426013724614078528961748719660012216363449057799270390945783620229780204769950906377527289822579961672336347130970958093766060742252116402975644656968370621991674860470416792137093762899663306153071725513505831237029101055243407442154452662367024395215717439580058664437509489103211038616631974813969546711078901878911236291825800850227218738046497665753911720569180437380451568250109160561747229604527550526585862035330033747068278544359005792513002606689522908029976765002760539873486486849846637307232987272780726348238330906038803133732420781816760024801127408028116398764194237517432885127704392089062141881316055170064454342079145985580268852150701052548447818010116118700110871662423687110265236759004381092868720646844568242524462098234232603515579804892806304455021687596108297753344228845683131467346964599849753579630524972463961307694843879511983501106807159041615415071573199661024211145244665638045440206428545197454840337307288450702692852095775493915363307569302764442665002947056863332780203091780149973864442597233782580276602086643817511325056166001501773680798724181526436861623336007048664538417029284851572580270065035595028814412855812234495702151976845638076250277048024493182263048094854375703954798015738422955408335144344331382484507064339553040707875696838240917608678207931615670215352458140625665562159466003244774351229086491872558387487051993584852500630279820967789343171061710851543440792209988509243480405687697553402265770884955022818614527300659503735218058264386387281359861475165343941472639657541065630704713806112187280865826357659241729195449805053227145670923177170582265098307171144132038884781246705308277869072533668727089094585389143305310619512198240128616249568641441014504398295380698972404028286715867516750826517404171228132571545644321812041789775269437325937327245385121003865299398237038656359080988062192836436804737418279516405137572790832354994619189246503326951018012496407640847798739513782552784971199966493750164543476223921754175898433186103083329547356773912362397564874288879423705487515930768685677558601683014867471878618532558104317872373598158539487444304319292554878333488288721605624067784230486899353685374356015612308262855472584100550870076855170180495820065188767933598707537967664081967350422192331879840086514741196477240311505095699922311025393666284428079039339115477725012321790176408620086025034958453314944959741440562791683780477510051964936115334943485295905586428200485250070847054921234567360950814518268256995442846649510794232015044394552390488888744451015373464049088313669947556421539998698559074039339089055874345165581269105574164824648311321121633870414174643409723285248053927077720657786225210978024364541417771519426791046339648216246060286638314487185009256678755494227021321295898322732723506061285724795827197253343722988542680773094071962826499549942482083928558460823170924824406689114300035502911337409761841064973048890628167137659016332638226011341584974729146920014572353805057673164238134224876332774238679463634053553430885943596578355355473175537131623301239541547203848763929486510762508795314312708211098008195034222414724348545720985456574754045261856360970960575830724938498195522780780743160047712083295442519771193748159906625952836693017563317026470914768983982252845712516900785512345771873966453260073214028349741091494418010251973938985448562171331972634374626394967277960957333128001152866982572581394341926965577619668954606858514277056998529817854063768622804012422102015156782409389054100507933789007829309107238223438073149147919582918977186584787633474239549255933220474197564266058331388795610975004131096064532461254956665654425160093403754291223481955580682729404950795856835221246871447873526393150502767613279943688665148181965484736467848022158622091516609230359114399162850911786768577429156662125734022992218432152948413934657320007901641959946178506354780032795753952817583600355504164327039074253082647730379237060119265959725280065681643973996614974586129353332044463760828135749116898748971798348956902864844758478356816175590365380855773772819184930691536322470354072838013404439569492728685311741529492315499642602374615056426643525137001882254494128852034693832919472562940271749974014523293686611783605949804309343649381903049459395505444926980506908661341634989801836832881175712760234605430614246002049209524996367275053795098365143755530580716080616085374773123875011887064717404429572630706231019239603605919186527342422953738821778360402380399918225004061583610552519414549251815283223946753396792628940246965694425626035470523014060458281383451556759659472380046949355459780875035570290003012430259323269456699221328484474835086382048213178744909058205864439237280988261732758190304658168970575517768545834406277270275279245398453161937085536560048517902174065057251897541110128378357948767890429170712696958789275480202088273199758151415277394157646169152063696989628265205860342767326188569727708705945876053193558862881900464192846773241068355960801629453081831734589292872562521950955159820275769840520010133663389979215552959470608005034336323167158532106368958471401698735073774951765944978399045512974905646958143808417576872404692969133500096054025274096899779476199011560731423012641761647217719324659383134280948503546708069075177553448939309558285376061389866790190921073068888567372878367089825037382641398137177537180530275147478523271089066747792350263844236311580605127394945591076010290338663166019756577088437275510472431751964465832943238738138243947403414436632035567323890952391021844201802168769512790665455328226119032890773668936756869253803636608595649894778466117409208570919463450722308608972737797319372873724796325702595379112858980397644963375195867583938526562710149425584285006175079681793947824310834551837189870613309445325440635165174835254546568988951448193823477491844336798006665253523358804951781424304313845887116667462292687795868942060143235424874186649654309328337274416089777197827207988812736537602694566039530683491979093540168964928345279912522685376843257366675195606167414759675409077218122486209865260441181003346110369393925457446548379185508075865072159548066361585553562353181446072831053360795813832902719322902893286881918880111733792866160601499043448731050880127339344801230271640146094253577214630837425439626934791590403164924190117714798683370405900772712227640809644688427944611953203220088586204115803250531513498010374508120746956684458610608726551062801157001770241845922386136428494954321763380103775354485279140685696358715078647028788863706795715229331784854003234665575495164162240411235803595496469215479556763910353164939434740780866012428795460810436813951698429638769785431922406980417402226181609571323166822977998890726660453444022423819474098622394321691446931614885333364906680936953868157521667638865413238503906304365689166274031277996057835619865700181065954646449261704902571186995122810984777321084200728212380501542659561768183739269958376698601391087025201689693244627315433399100463916597738757378009906564586852866212365803725203700838186991074110299147101870074887036151467078912018398512590839109669294488011724464079870337686658087188687992086257244482127638994990509627507631196887839271310612719401489194092637802526415474836400217270452549200297221741204575781807816247145615394903667424771793292826620213026745053334974878238032581633036536619178798635992641648702251769476428289847248251295939817266489053505131154426286874908405072535756421761711027641614363983381017941091463277405768777047863321628582313637319747626442471702638287712603302460784646290435922658878794461479399981742872443123048715851084742356403643477611410245723705732125614541904569365467870239254102955687769399701908130392727173178742684781175518382325554420116451706486682445209306211487816953246128074649745848567962586087428173495688861349392389035649539306650321826534414965749236275255478208352397644956967185099843799566592775378166471980115071688575428875606724232528644856121829359684707403735518764082788470299226749145419658652796413860808807660120478407948548409313787002281574387468983170783493142969084834352967215010425839682646101596032952860481066268059019892524511812533861116900347975698015678513963572748511614861933801121613328016904295857626333127556228240985194900333324641665097779626221064686836631133335362656314142024057339389778272689024295504670807356967093134234008830996362321143455284414883895288419606785841773328250173310068974462711638299901727447054789041324037139255847771371390538829587075893967081691112098002349874922978686840886367659435214662637602195589627815950322823169977633420417525350984406348370504733462461977260420782073384331572592875483264047569129722404908837464116954319461401225401161565247220834405092970803997154633987520033084652736897731799499464304040198416893366170270552858414057570902916042436845038667144018468017413476756158596944422079226237297678463828194518225746236152746312508778601883035562378635728048856731438920301874543830331749374884723647200183184229716827437865693816765400093494952934594576794916781898432381824773310838483162102458424010441180049798924812390645398293857870129480170588320224380692777841200716618411668311746463310717923484899146128574644337886210565818872462303466094158995375673919960805926854569310125374478347523131725528544638127767157489655832898664470750333715030037223141728012048622384360889485215622219454263995421555045838208198346799515351680689240128726099233618156262953744783469734293513205276317000188324726264503384061443919037084053774368828313328119122514978225898714382850629909921009799016064371892880942866930203622608924279219678895330904101480486526052734975290623140044942813742079321285568626946337662694887848689169547647691404133851308635509126500329697049937399164154106614687092313150878416960013504112366343151982522567575927889308378000429922335905483783940676038459437351414992668159235612249945584579343774133085111153669641798502658888129387441744395939183297283219436051187054679320038131789763099784095284742942580027263242419135094320791579992405580361831370396504752144998640679561653615750557269755092187268546119041917135778948998094507910034752208329108102938540364818207586318293941935614255643190251641317035333801984512440394849670934536013257119802222342227177547957699251968964884812431844890936179343358287677085590082206115733730357903492100039009942914475505681511674774780936020187159759556916576567685896540583352493733401901903139296647756088720716940195300392627284187745480763642486685972651705052620194108334341137388954035772888811197825877715196169791636687956195650685018661486240273058905455287108431921991863363344834012460652479916258188353709711658747058459734046962472042730640537074573263932088583184140028086509094648719300592717875127952757929391856704459107613238410744848860781033766811701116909605011608600893471884036456670065744821181196803366146830912231988716650919914937825567123896172898016100985641795505904413202076231084794168169510230190573791206507885820728190005891207601874831581546680291185679781224614894469548613728932607871127759382248017639583847659139656011437928381565630202148505218532779691140839623712996903539120726882681005256450701793494925052559488399889437467316215352984258667098974158472519758485892307565174569465405304725150861169740451026781520632045025279209191810464420504774941408609569291007931182981516795469258050654624807539461841627825702839490391136479405268690329658232665138208589541942739839512413688573731773276968323593277818624031486555926694519491829863753906622642479807839350070702833622896603462449891640274157419866266859409707237183239223738270650490090600199133792633064847213807260573982345025854725459723267088494221708005719413840184384360619106411677777928806149369282464502767681134244791977457018567668512359752956438078302980005485838549210613357466310522706034483581053344478355200915354748116607329358976019218661569148557646850467933918569558886462964988387418673899356850467722021708263191175791673624541709748672284464674569047828532616559846117742888914499478266115325874932884656976837714293147349794669052626343724464679397755087077756212979938545863330028874040541822694229171832319227312105967175604148032464841662888967071525369288352978255437564850494570614408826405528638235581914969197009352250420042839149474407022287884200708489548312365198654756886004200138428217947213903583444149933028835617347560596703392061354063735996321926281131056969488629326070413735335355300946124824413173741598775988035437642502267409138553475085619650808841120827838277445153209597091218818621390414119201499064210277896032645334510533760830189053363211825661104600904008447396149057206236310282324513628022309156623118376008764574562526844844133746980730915195278979722189278221377953579160798929910482392191591549406747407404296856950447170847147572241094788152874813693676540385019256447440926399237645731502590501275247873067667249900414535994942504208006929561091673170204079339493552884771506831421118512364158951472157764900669360849686005318747451610656678300197185005655272171680195207120248348534374298879623367110534511361910714913382568674439414565615811948723141789447057025239737526468009310380059445394762804754582204370239904219490897154438311730947935350589486554191972242737031335800302297240950508884474958423437955101645207872933102899087769877034457414165993848721723796686179565251859463743013068348506952595927730812313451983836653363043550357987036766675565578412643829884279160065002525011772546176782439291965224612139092258781120128791295300450204270111513485917619312508319088407641285890194733419459609951292863335660075486708119594079661335338298810076644166443059622506307765277528525856941947016747780196279457955787893620037233707924083959376194866646123572591797583808217673062108163936782491654107888411081636676536554717097173210821356756636905411762185861144665856378783528762872053841069417309629542816653061898513329525387261428171341002915752259716620612260492788442522565672175071284279520929071778051685321851306248349688704829587121452881789498431279387562388956565752611919028546684787138028041976107484457193793350129185665143383251386417695809125879201144876954408825055041234260263405395910989095927109804831442984552806151448258886460062019843206268713064216151428487565073454781718250158102086937143273379837727105016638928949992755858797591881442912253929489102115595990676419307096944911274749038871027919060642213538960867881055559472559019228675816699592568557282118399978869678743690027521180107434194910721796936784665958498524631853653183287780533819257302471020962504968438929392980317244520585774272759937044406122868480434414485207584446104844651939144686492184850499541058006803026493519297183562634556674119878154072827470278084611827083755815288748506453111142211486331601417167632448453643736615541823495396973541305109066699643573883883892532467838938200073365498780317756375583954904529111790997075219652536074007295141926167368285480546963093558579793258338023765179422427046400984248463235865523933520975597287613951213125500182247345554352114495858296194343305854450582948807067930547508531430182549379054118189721827386181035358268800311893047760313192250785811730787159845691859259957273743182496441858488527396727051730961024323496900269367132865092075550339356724828867115110585929475011104593194587401837109808347191013044849246397530520233352018965252994786759260257147401669878964293523349152742424233416998771573290225622531158216773559010054217540708031684125572000373290923292414517253918020625140227733331571907239286896262553375023004860982410401897045251035121482055926584143435544500347546829544811705101858727964433900673163895348089616939551045581488131092892882944775773469942730714966931553267068414718477531526495364955075916647339460536428485942798457233719095632152396955879517780718327637772324687240613790809490717308127814534020014752267373717867652440040883280283366200311239690606125654027727297923658841322292281484398885296132200483870841794218772651719488758195991349481308061783422454033072452362979356662478471771563843240239775733145330068167226649416588341757425670388402938269165683025512769704269621087671605176170077275175941699102834931886199327062032155256698132876417861419583230703456502124851889090192801530260280549449758343941254208432786105721342058665448242186341337551105762287006610146022991737887108473203057587994396417674128644528171522474047198326210416026954639583732127581741530603384636531771509583109833108223323686100927115875313744671153164296742827145781904960720298997694474286281966021184064047120706637925421233019895859589597836452686727697151442922058063109633583223947665267445350931247510934256194183756429686745629441527663204977109069479132646716571669887534865342229288106041461252903026010763974440761590707048267324985085492433850810105697702606328221916716792537546352194570540833564147479885440368386792336908495407976936039443695051751682710080288566565083361051353445325120238997695451585005437528967553042465384070049054839926977542434935938032990864464818757736017944818054729464642463492641550021060939562308167248520848709413023461946686371377673161808190725703628737446054842394897878940280598228090085864896233537789377578046625005527856883889274601914291554922802686506696407707216911512057012020323970606167371609119511582761822181819724720853424880442901069528822518800213406359214971330454326692736672240116355894776567814557553009453166853873478048833644371354862654500424570078835554299132456556556853822527927278066346457874448810440186089362095815605764383924407317020553346100365703261113943863013794884522988656551042699611220035247512712321600153945705189409789706919577277589238297948562289866106575312241830034686055030975303671241519788797646384095753597412177569687464026681228300960417787059009073222515146638865602500239851603488474387963100426146275150576963167644333489108150147160917579968689020169888283439080673053988811100033885615748458995722659115651574905934639491163310194200306767037129717669739204585942135702745541077877390451154980233575458449351529187203764795617423477434187517195982320187192193243834511542917044530427981129225825255390577354251976771873850321085892840609803086469886003540153105590082894714209565792179781994804335461322819413429574825398727661619238204347300300419324996338603779181737928651515142215099982378326581019734034559839560433717354141546990053677498776814001803151959699531532999727230419384161132199188655985298828214985977300019195953309431812638625182821169408431495703748188529861314277496820204610343745230717097016947625346903656858604133448377935817320816465993523719734069014370693650262735218456390903040784469408533156079229233780749335513091001567736271207879749016474689752922447350151217408143100548512783962245882664240070930413981994597819562121112309321479304680983008034403394504064982839540638618995851503877057342505510009398887789527271123271829301726064946727559685935995638507593869139912893300970880035229571287599954896914959578527944639324857487403729333591997669655649783130105866603234283816421162041875401510720972246190635523957646167489045547179624753126041430578208099182127895504724217796482581989080087616324257402373212393010968574163890990467984531776919438654441509999344183461660180604767542587922888349091508660921557653009821141788914572341996443745073134627817977032964998301771554165420761824730378567272536570609348700132574267684263391924667381466845664064711389431776152578114659316863989540614134713107957783530019991366590255365712576273253317646645993395752748302593201178725389564800199753410564229215991132698252802598809447572725038188509516688771633260919732390800384333563849703279603088678944642580557373083705115797855236673315082991043894612179006753520436406903026402288467423879109093046620020153823425038588452159636308716684274179196187201603036980950361413476924560883407810701494490202934016800969598998643414104423054475602092142188700300461672372059526410509869583605108419177679388139620704245517017484607799608428363488991458509849935899275086293506166383432048491402923126166531045419538251077678157206206620587706062362967598224121047305500118389857414154402557381368211138038690935572575199778537695051712270909363714173156395089430751772021142528148811447346777955207907238364525039704426198675252395835400697334439022236015936752242281569869685229393892530884058637989555269225728873721879532197241586595247703303304946560499255116227095312950003325986978965448426165769061251963902228903724841817947543823625305911460368425915761013968003646491040201172521351446369545867626304500893014543800922004433011144880189206768454797774355297235367155747232769203159072520250663298177194772238821313426819707755213463004651722313549619297917254847644733766249293757686760675466124951039059335740650998682672872962579710406331220548753882911443607260277393543983011332068678967357274289760769925308893875361031388268228462867980196578260693388287774498212639179666457368696687384631646068537753393602432838437165369563890761112526969332498868410599926740224629083766498182127978014463873426475216043215295598635312624875006443767035621235824595166347362370644274841035201770724174768568259051420174550480913512523562666272266505498126320888649355948293311477465143482225177763329483114636790455525090865168646134119114492058957294091517094727139520411806198467755948922493452008929344491099182506932461761381903369212226902035242137197087295142009040985565492090495125657965797812945599747742349847708905832456781091798993668485193940193036232870166934770722353660565288116998391747693058487934519905724136762451764759469226733576573299378522058479495610827690886777786712495299494580061060358303054628164218966570486394983473452616878409737954498367186662399643726352428764846961146799492702670409666905026495418908948743042856754696705587733595799825983602813766024163837119025291938251525823746041085224233415347624366882959172567527874404764669911805346759455888776928880018121391929290944697488143616721859656417817207712680568980820848884224412225806445055147350286623586152770594799175805111553822064872692448971418141355923572136599608202719114185435569176203527067664031971540360118316932727522888385940511929409482159790860259253364581742960027767711059231016634832618153017510061242929651588916213843719507816163352686692719741057361505950284828045792296314064557516852062658997235380508396093616681440115486045129101625350603346947912083767110029491690986824407983211795716544396119253891588775758216683681511471567125921673821560935790925129365080250627850086093053586419402145192873752633393549233909540594731106779925974683800575273549383948641201416870780920701637656161957176881862505247187462401846853664376739264289622511618395478196656848828368676065445487755141984995724875444325441822730037645913106157954235706017289289654740397014506355149888089349414058598129592900672563712619727001750571886998221288579851103826892581545640945266517876529455817781052133407397762889248906865859225579857234839377657085126305047486918221864033424352651869494761049648372216928152612209183763384922269809247121074800561555519979988964135100696356071243056961852636700786862997797273015324609511896101058076358707859281905434398341486779939523206824587118816873472593152205044013067934397835717035950811778657876108644372315343655022083458172437039155951077607864340063896481061960847239381050784725698949763937374839937820977123532818594822762850485937635193961252396274437596747950509688592392040307787610606806805724814597291916873517632964240803735668656544914340714047471260268063901064303730280756204969706717241864174493244386736789173195973269673304633449896926766171327081939493809721864018264100369234256947114191619950177536503211467788443413012389105945577887752815754817156401533578672641267065679071179394909468860362275623630263684633672701786712833523047539070485314083817437252178929871643637852468850745777362023686662129804139915061884601522541380710742945204600206018891926314804990238658250117124699367529018353923355323870692596793793452021127015499598935855414528748406341400151345654683865588099055404757113685633590864724527331750912985737795514987343070713640020270530050387204763965902922990874212299640961683792642800940746669547773646690354799831243882465365760932902119851222704771856323162324110563530997799309465176443525978187955550935981402310393628301767441305812121964862504767788996756004544766884898281654405492249117474382192281317086865726763936493360838906240986061304667768860704242717063570933638439684473965985695954969680455378258592083839662097005064411997284715588914534663797956234660458343590921049073027442828042393213147230588038631796456905923187866333339759555192282885389739473890933843509760726020870636718734231793666187141706811990359656332080245973217451109098605684224146625521337857147318824055720534573247259556590453674357516927019228317767759143716578166330639444160737672222411913496464715037307361900746355850055241940575745528422242967932604866776142906777503130025529530372840705292016268693191584778761183528698077993083529352292939952654776153717120798827070548509547649075837433457248924657176318600380617271022651531210448207556907061278770963954964557744917859095678947482786708610435020641265898466182142377068451635981954835663765821601358034333576589292981138978054193365970359339348639024217543626327049718190465296247889928232737526791080949065698059752113977160314500023756595068196039814661673922544430603350952325192048648099263721540425460662945126924885947709298222853347282808256314613140007266999362075137447911157105286812520936577079835729368930305316195974197764791256191251087228605895760362541135496125237540163648889135234723552986023113892702650404281096603794378610288279807356999102805367508753151739056726228847122738955419168812160088832555214670589465490755870539173473876938077935212784710038321794142172420545034908083528650463065161235954631056239881828117628279339019449945346564352819891370503207581831882948554654155070478666350516994238849303121540602123770410017553957655167440528226207481313420189890592252901894146307734751407036005679750692720899871787743118800174762479798385017972006842600363297567123309260143944268247784500278748767601723692399903879357162682125986239891907050081062491498794862359795564288512000578691365946205771174002690868413608175340020934236068703105813054532831526685412925015049425648848542221952955696754106216304945178231295229322220310713888290442947191760436367549705201330226672527405029624621545975001960528284806589460237505104714660254441745995790694579790580929671918631633283604422311315951961018377815403048464500894728743475348793277313971593232079233561057881321245393696211473363851633173824144506954149255576979786876257350429372568906298547496928797704586866917686276551516602026225432155124184355948448563224158620470035843759779422116401504786262136087036835979940600833871616379658887682600029121783189707206482666883447186459284458257558013830077376650617753605622273754138896890313664305642125738751142557825434874326870531600038530275740908089461491238081076279668194136638479211025164764781985588497974319923630892164630975099420564517789989663880704739339429895153325042651548796072509404686418489182963366707604644632922730541051407954197684448522049345005868123399236637985278284093683628508677703350586140571964022433189880965838660117294760398120460304897027768457796136231923194644957583098113321292203196011969929836142968365443332265173561293141442094033793669742671915053001452456241963710625822211020161616859413410707993391386990592993333087874687802586441684593699764694904257977724143163228563894221142747975996989552411436656812200530266665585726062665646253007047935444564696821405265639348400001425431396054070189192647529565425911016056906159064587440517885270118877281852578876023590626475433624682545976932109985053807007610200852087057044916466213092442623347362750982678920805394697702381498453242910023790166458318611792846658003913355744816697216880178580656632250028904253422328713234034842749890995185695127247003270095668602994702953498826930706180297668404973200553836960765192960921075469195604131489992062691129583349220813022658798192565676838583299326501170234147552118757158753239660598455884910820603564223141546564032984059945080018700668124749776678413195213737207108137547926614598452190422728708797554573087248295677964103815794083430567772890279031395286332028996812848635601422714519214487520255496325868143665226213635465890069368323737773198109995947803891916360548918796626924566304208348374386098581636010482659704643421176856090933505287805544518022600339579118016520184426987299597337877521456032604355276305032969335069399592087258325138419332260297839469889953684461771801295832544035950387509234938250834675946387173427490639973993128502477846781847538994554790673626441357511133894791706269324356790407421322184238982170838019277044961217088558907534701021329773923489121645523057268757398453842282491583430208764247446173627910107802197044122328029258520637623993105682562063063933942121048620611159180900723640562586672781346015176198357605901218196119462855714408483367436613993699536061280888593451100118067468247496651170287702535971198655318451979760452482036956112540613246635171420634227075428404495845634807880495845663412336416592042423165560672452236291133954680280772112686687081668144234209667884923736961704431026009974409685007611892948266777793728480884812799692930083604072794991474888515684646126150800203843599016276644786363756414485007214869081764821743095690434318382099277531789229944967200435985862917538840272516768706761008556678860291924808204066821519123915026093610617686330121276805309660376703344246119057121194163348913330250755062743615661229467274294749787416083830815407246834121506448151041154542797171194148990539899386074779550668644175065293715590983585056726559547210026119281554860445543109491271873513204937619501030108907999574479479491882494536963788647545546107379814654518916802089593915260635072554642269852255067885260683937152416855542072260168477526857864210764637842653588000951718735030294269121166800363924806183886429271403521646845085081233519981709884806218487565638192272910558236090592250838453523073408774817328826137239696048741439267190726641446617992359367161210829620544181219649860602974580450074605381332655668484568494370375530776647683446431372312173463999370987439351440371769448791662905901762815090942453861713043218754437870976880493920849043185452571063846845494108477805537603829760978950244917900281746233902942947328762144772890620016946164872075367357879494748733107223796095649697401925986223392044753495122921640212968951874568800666177406974015407256843862669567603512153780001648784166470002092577619573267403184790489244228312524040458862334146671189190278029525016034755612184942326396621491093215423896074775208708509359634234900170772031284136186307115699217056385307898979075087028597435537295787984133705183703788931216008073858385993673483818699928479832047168661358546385839079587569911117990939552488749787689620506657431082991718418838837913988071274707159623698310540349321699458484780286119297829615489337344371749519753875873690754642525240949277180444280101951888203767498743800941214126253862323122802576923140796596410027101820800734529105504371543561860553640911538007586189500105101058175710309243545494015167863116566649187973671155080496162680855294179650381406442561233634699775493249490366248357744257117359529175688823136242856749124010565383093195573914102868627954217635544558235863251109243268739332286123087896820359401980955705014323744324167034433634474872123211020773631387363039080305859424691547809868086812415193234236547925390011360920925535214167458468811943536147864092389359874918608961425204798279220195989696344737916018415374544351864466956388638741343912497584306928559541176224151487342426078361100219649358682386074345635160547883965572224684761081610021854701670214416047829441067901670837936391247928491338258756942805278774153587928631295079518564368603307235494589090588789095656032495528624707399235482237575736330413139179021702758159287574164976598712477682727325729263173964795220564050870910623115223225474511387003916956204260425065690443909585338485578591104803884647771574335081470915758416834118641215937930872908250148667893545146539527421192957885525626480775166219132965345277540130230879061492044689814624173308770655623966257443828905923551321309243206465513528992869164071394513317193370400777548093394125626892351476710348654596594020676936533835710699153025642061607933114626896955320325291355288141664798992462422635487508855184505531143928488508450387991360154505225102844218893332202025433868672489821241416099884913704741271198642727567444506881969592697255491390382431830596617152488091904336931817034203086661454176393063764832383813899391325755730904539910148676706431951881150303623989114913460181509444298092794296799975735127976821033314696411501681073249208954416819801241612605903852308606531061165377477788847832423215356810265346681390827365728609472933036464705073596382941649577277744367948484448531425632762632612574947100517463186935117593002456299037844763431568609317082441310757304737512072575052203401598477601276160562665422466775748086451278949041590771775265752409916828325430955278681134994991848862960374583459521743097246833356957977323525410379886655273848141790106919454427939543178702976737584724570182221390109588918051760123038818660696987926300703842800947945227975002217056519914760156947637999873092280229939553154035814739444605798064409598052972675272331532516021245222695275364885504613866308411067147873502653078052790101930472521464146679003268941485547639005012981273465140828155670932329933865932327390720327788648868376580787733999633935235525364474285126160709206289145682077128545260834857288019595799716614634018026717447914114002098970419847591810588866937333133667339290218507987570333716508253272389296962624218627329361476620610126808994535596051996953290846288940476458867908845499634888927228488665357849475489396114855963019203492874428777610069907511344194747516625110827975829249349325301676660375934528015402733933296823003955499332934780826827625793931350951242698477693658636085237361670355657237117380408768816530512849407621306571269670173457165116315195531482876502943063209086271709970098585676417565340639023581976513279283087251099245325136346294439926683250269084660685617191115478969516561859251508870055445864347338881470800938541912301530022267476284336630879773883953527487963842390749028179556778928213700245914693304708152155760745803011581571856840318511154634681240363131294090579776847630140933804827271347421813588457541360954328773605262244360970372592048212280407016140672787945511017910053889954465116587878246918463510457776861370786785364627961266488141152239636881685882408140260760529823075651716581215117229111169713297128374608043999918148172036552524576720125757419882798874925256070262421219380097947227829344069215743529352892430587909802354165252325885265153188174617793337099526760063742710329593174873542621643428972406807765907349087211919127908980038185464369624327274438225499152678248827341520746849793160400030139100226879397689001751995120234155883679164699934700786724890299469949788265535267828779550676985591219586642275498429382933254378313924757715243374850562229865237870138094278640006717436877593241745742284303714429242246588544561922791195430007792218229685668822815845713478009130001349964953205439239503401354097451459447081263894889955520003986528568304134711065399682087136328896707983584814438072508789405994847519532561362460228306326969480520902031788141423581240164670371177133276733807241649421246131813601257828694721697480290787852672217962567551101183475611008418931533015224489660795481483310008585903111154675433360491606829509014640421926998509803172212765499444263328075246427232784572414552666749772500997379512039721217826557118827727927319018968278854827512993541764385505854462059587207597510802992535814896626931278168790216237610887933329779829104664070441726278888536507583269231811447721723053558910227091046263075176364699596501216644575560649149883809449624378061586073918705872700802943724257153556834152186065152251325599944555690335324652971394754660930790051341115135640947897890175167765493351011003483812067027510840498566438465162553351354426598179521614735346088469135075522669482972707480823931459133527889829063340859568363675870647276056856703300137353745086768421616694621148838873023287310709149456871729239083182407304034882695447762937732311019527782707887617891276507028581760635784295188439350988016751586899711488420003029376265593820873190304287320292589762655098099746730208823822932907973594690876311197433927251820398303070560367535948420418923321054826038598322454226334977904467403785474716143527526025489509957760226263148577380907237555451548161713051382919909220018561455619886918763812303608080526114937413663414124642441691532833198306117090590006131668514150730723693127833725753533921982504292026050105546796213825138095486953092318121355732387951288553472883916113073353266199678454587221348033674819473118171299321517336576953762370582153488674043243608253128144368559847016296686541233083347998882038659953909106079031522895192438084111588810527416730940371796450132032805560609844411556774524982944392333708976450521277635436146516122666496858609926629666984105413166282168310373596656431105031486798120276121345738035793836698283049910115985254444977322089155117295298521902707477846867976550122667059111399818772196179382175266723664913385299590609285796219324795133156817472041470212153899047279205172632036148432467795403816724665225591540056279703064275694702009796762970304491694285616027620733349144932988102340444594389150808788435004294577104870737499213813606626161001151958905806924158383680870026097558521601430953264724791153876121863326626634914836986077036874371840889464833688485921890322844994899067816736096733317073415407019062227357639832569961264191596477658623953261633630459683616252100356298307993792461896084065520509157989338197068964020594054055999602932228529473229397490658771317177891150899120382563267769297818691571724136847763228486255665044971881680146867462658305750515157089748139530219920919345928138858181617153316924970909179102786557350078567244332946445876145854482092058061174985361475355611642392835715094170418127369468786230349627503841110315099172644552525303398612902063952443832162082633546789664872852419948174448586716472204670887658196495037884077079738414188180545023234426930034102618072650237857838431945793886854574323487466218822357768659231446159891759842659304061320019762505760741531296300650185029749718721478609827066291104204847686056276878152014381153964572771311293575926137178998570722690695661478296200647551942846777426354259593719073122641382960652267163415153763838837295955673332987098280100776928643173317981966600818514624330751889329941080554399393784081099191082577581653079262210826543159083728023160606033441760892025137899599839885636207936064590813370284892877927790240087112268754775253820548584361435635812751184025735346210050949770963572902314270883550730470816413571448607444604112048183464328396662783952000364669263118990782708756832882998678931834819695125162189929090658337762075847369296516470221830868493773126201282319323673834461227435608480845938922525027187627482836939321034485241203021084080273348787455536572811573434462745242829230200284951590870170952090925417138636023971270787505074098142508000246936492119367960262479024958230586074068888788547259301658290187141285559362394546674549298265718707150897868687144128677994006309683416520317670999770306080213761465491872015073264828194628349091385144864008814000790755216388605203088392300983390485543155872243410502517623808106133819630949112434974326068257306213634827130859156634269980091781560807208163932659790940210407386745431086375555067245881825399847081677117353992708445749857631575130776530832152125723513641596379822885838477760085932964723940815848995709563351494467476595809333357127654045787904627372206994492322483021038346142598065311617043067382756186714935923247218503182799968491801492700144036144631517993048084544475035377174393800487446126190375256469249722476854611491495419088813334950976447427486288401088592292852740320670333612965325876371736627895420350135959897197114639523216423356648302835572999463611141431902364023143455065499684319191787203459743807921202720087160436032434175664541548601445549810155998846612800608505182054015631760839560684858334428007242509935161344699642255735404503348035259606086318458325760134746175705028023254967776769937229136034989195811827140163181645150972793139467650797131070588902588743632922802534934498616100036411670328079353150423072507936352647616979664403997985829437828835091881308959989267803576371043905915870347086157082913212348076354608650548507278209926378491159507647257556271861821118915969033781561262146699016598693939331325077659125622553342763078740064005897266256314512007409580435469312738099369393607248711332563315835819583463404242781816640310487188097089938633391905566179741346365960941468071243471575350261429924522011711463023143484336997238995248127496536024287134467241137597942830087383299431272248111826290687587816893782382781398813990705619658792852942044813930691909651586784933924593956216986594033776653910000500809100294434851058474029429769432099642601649439459768937963204314250101415295284199418131732968944377221736026668928175307158143178048818882493592754722811896525994200499299522460011345380229070724121853943363374408901424482172938122204219500344347278157458189493564828681777742458427641187093900139378656217683295784830364652603097889973541890605280824933412509159754782012754848516967744421206091918038069854293031847805649926946470435468344739567870610320966676018494386161837070338761535444887325590882270694643441975854731907683883993129005146958531456687495745640938168150613685074213076237100470963878537663633306709992342300890184085610226499803040369765806006317509587170886540679180185007711034329971415666470916680788378627141333655590636225485627058351161174369151431709911764779654476698280860776440676438783652120328824004174161887893303725005608820802872694146008932555116381159866533463622123279336012209028380688850188448002745810592247704963046881242870656518452360470678916147636929526217994803223278736148646761635931062749824939728365560925559967472117473451546299280624423046361346034419567028639617841728185612194014218924631898209276726874398729485155705641751334892527018557245414962696025270608578408148375607748543128214347278340585939585365379555546357492327058196713641832709261600924961527394585799644032694146371934519864615938186598055098715783185094306815349515966101454930214961868905039527957511957141972297600009010474819982681524390020863635688309961142315173121136230556220172247252683074096119412314410307689560404517341310185990787505148645338670856937549942491201454994634178689117076970301573180058958917676311803572483710900214040628948073764453804523955102245937727865828850169681472843524955432492180755932332934752073308212011441915047320381686129649859006564397164025037185594541907063598513905507392384710092561383568956795915287768261776206402480090745005888314999508396762454414030446354736150991308080572065642477325554503275607745325271149377128282946816594852982750654074766322096731649675693950488975460078841522879758662108408958348142692684352410675108760131769943274156183366459528915640208397522500427426206294176995451360026520318840725636668073927568718789687650873542785330728216114109040704230200406127441695695068261515406551427197193129659724370035247483633544669032646045812771549060957913294809648354169279278742483476347241927396919115868515941530709466758542587218427632230691281879400720938133302948464048453186982162375974467593073862233442050800604044388636757619286529674980659163247049298703821875192011705041766168889431666503856468103894957021020934699105510742731516266909903210591157688512580162629726102624429281783786283556075395360459078789461294706069006627297720588812451529674587406708769393105002223842048721225608397480110566345469877986297180206286510164461719409942101702879954060834351846277321956623586097887961180029836542684206044056657528632153422372625498851072203002291722518909504964602131419193568517351629541477380482426191110615388590194851716368318757370364091335067900311253569028249674748414677575952264878111931977966924163585612759237039187743155122816046080740047165704215248617065964772536113373999547724660901314676735146237539498083471292391371101096690919325753070298434228686363378378492049089549287545345038833438610042242793887514435723262095349574641714882398437627836708392293361308177314172948947390547055396896606785844898416960233244103524223006153050572052822092688906671598744925656037619220007929216257009752161195096967422219291219276115432357654970949206154027993233780524610751216620700248877594940894275715493874286498138014249093237801361185089334545371761935645270762464824662926425626117244931390438719956327005054277826728982172141781531567173010626906381933321130408615147187224324980155689553686085475732270252800528544235017302062444399781515639209926337813618995196759718044602633012048264100693326043300892698071312794086165168892953002569786714080141587484906132140740778888124669087353635485944926599649180937160535168688376053969853720504136756769076546553368322165436923187886042098831137647917502638991949428546638585107996052237307310218304162714097210761886170844915383272964096296698302523970148061923635639848737093409457153365204903057320859611926462605929741977581366173159868900196789317859136584060010775132195743155261042397720815220763103889498959189460655961669851241018987391359753819433102287295116763169736940589707568747602660356204620326926740951594152180848845867172558477461237192458167232994961221214933037074292626665994938435370789216731147792154557641438192686341763483184763198596427350768777070911081483372485470094769920173070028245572097281204753351602356238479164491215881546787885961834740758999090125761800633883252590807169992017142375766593338880515027483761735222596181133616054144799879881110965786275724425382713529848313191030906453036220884114390042185568361659260177542009150087492275282002342737045443489406582245381965014642841715114830880875785911260300384273733641380214660591078479956333162723252576291804188686798941176872087649520657473085166363182425806435427560602478158488347282224593079747926883600070955559643468316281674983253478371546703487211871686206951122275972589348207689848348363637827395471603697335379077620094583870491644784001043857252635769820875157829122569321467919301170418825928383453481113802242331723003364988475078376369423769726707509817104468568619411888975240223004356123186518913806295585099233776986421004883377468117404033634852917464396546632915926847384002829609219134698735409193789301362893248482392696831225022855391124689798197445187449009035832930070545406623495485931619235812986214484317123686130227300467775021739964908101703503237581825476226344862555108822486373626803496883428979532342754144581677415107889025482443006223272011676649143334962996472852983526633385127873372533618453067021209587490443119009264643101810123164543764349254240422905733695410008193010005257000510637073981100843922476590438746988802537466789510983212954067156661410661415690164606236530327739858976686215399101650992812189477679764003089020507965470952555386164840883270518176856824069274272701873284436481052255333254473286332476898869464812071718540805603375642761549926313057296653153762772972102412727301151630760270555168950897494932865229149368604873799362341908980103923042698875243139991608860418296751113504280258137733517629839576398268184757869079752759966999494033589756127170132355456482274238251186043533886297591585516211797988223983838518063679929835183024913456331977970858571335268400522009743641420867628099953400015016726459300148330821727434656885226940747367459586157491473633418687810179138440084233740462019489370768424049377942285772697366316353522502945066910641174971239461553269307490396383687569733302621218929992976901625697987527186039952418018141033081112908689435643502227280828918942674863679762830314200552453512414618543308257466079886819730429726122996248050538689287169642251678745512101417520383581153910138782282903617950090061939319039022357508483241429311441038498542660457682061870362227372191132072879028262548622834782449966851736005406066108649155430232712638259365636380102221312914873310519574672454995993477187004649821122328746914772429594901193919228476482146851798133411291058861266284668411295656450480142270580825638687852197461855851825385715831004880700214659733958670668338648097294631601313471041958935850069683597739053310000754830085204315355612987300380390946793992438905278465857393529122622234214193268142298172812465259992533066090527312639102015528976767414450764871441291632568224637677574921458219692748663196484306556859261721972999152074772708029835935211786702422915096065959006475017449758708499576986195400666330067504675164737826488310471826124710563455947972318676018216551971960760949688828734174174061163858830710022410756604377408216638765424791709217327419781318439508439198582408440550181542321879627984048558699127492157048368095217396368654073300375256785348669938632068043690600615063504582390553043447596871308356057316336115187913431945140980237478942580552034103238319290987990608673668575859417946544636087471340691472790898313706908957074350652641851549945400538480329188562582150904848931319417420539016636720695002868012916049154245950395449854283876832687117736191168112890374665371111059087563269684156068497054802261985628596133562017996199116436229855749148896180631654459532374684601088810994445974355509990014008860677161298427323405558421584469701608465329389327740111021244000727138998486671396401932250680393572350943701564702504797780346504793437414351813356862341676194748632214824016495938007014547045866155587243322988402700645821930680043729027276092492557540041484278692836774847183541815339743762796035002320614530704682513918464599291848845201875528940525907180015143191113722350953295428288123298944651045678318156628270758956964617487973552935499137403173801360600728603856479226669283671523767398352947864767127713942504749099456614485515531606317284181215924951904624815947381293692179605605761773159222051160999942389793599097259896597265066644352385313861550258606366355942315045097080420891756612548820398488172082835335236029260885422063527421965224615082189087078375583818942380142227612490708464604855936485146317330314579792599842542269500548247743545563869715910137813061501938337201274203324077429980415625120848991547235499967312214904434016766412545860101294589089217054435917620004877876448336863557859245468298088968135500377846711898684316786974101951377443216898926984394152179202171355224823510668296005789757277443894688747406763387260133622113880339569986744790107908503745020550764160302040975898843521831081078473580810889648151227468143132063269327945533829488811175272904439524218192934807797883213254445003091356816469040285021032100628916031860427206712366574768258081364425260389286349294570618425079748272590315369300240055823014577240899276129373442840421894877646822420172856147942447151910252471989396202730628650208311216097565972384044413728208933310735306870861853705509654745301292208024451229634534080457669255465629912569644023393684640089244153672611012089452465693123931132917681390324848714268344857482681211322483900370855587984888357008094547425104183671229154679298582323274248363876799466206489724592072116978313914959430349585536444352534789084007691346161094928590230758583985751557775778778068436884355370750982850264582261880862564081834092396228589611849974908638747670139135260232971315457165479582771489720319947014331683533081193402687561788200523654542991844152880108081942530995017362842717905450948373925464456625409356251186411971112142946942351925536552368527113826001328601751574358536840805052435938962392606911014592825646584553720755222385980305058894832572398389449433538603555335619860913849351476962556991309781771694921935083333618205779676220393324870595197577693499605788852915099466164050427995538087054527365330224643673930069027383100808429163328240537656909058749334939222288168135341743909979982190387246487615227961214791333678993729501599373125174456081535372949857842045441778863519125296684542159712172908471734118163360553234827051916513166037928889212293739603021501530979607588902978727494097774559757698877107005669072652277941361040094924870033688143295285079328326916905787862459083610354172571163383945182080935940620321993067506458112036494050764661593451592198758303031676824328028337934712731098536585634462217928639400680941315116759100764770704041213965353143239210129842572831550035731536381110537049885630017354646339252698411466235274969414304711579410145570584909535880691643305608936041194690461033809110573258310616796603525319409832161022549391316143038039069755648469670426483407779940188626833980483147247025958806285989295173910222937825355595408913420891228680137445124927337451147901190481856373553959019530805211305657968539454429546217783375846887769932387232910098155381402565136014734358387678161709066857118293583620025748167803741305818880326110387149591622905082924781309337568482195748310478235102816741632283598410308158011224253270274882449086345535859914096235997499648282822692463433896691851546249995171284296701582373552577267454879164356983936755070579306446073364987974648691416252882157769525537713331403150447745379145050066169116495442917468117822179152477480073744982514264273524716808397860550924667649680014407708399646926590524376819133157108086314492950972883825485385308646888735370808757818849431878515938928824151675906798873264415096364384166196489760765418566454567148333210909214542472354281219911801318544694834976634549858835042584797046861404289033248054264251880656334805301041532983495617673479804620351767643615944431266777892988199338951250213400977692603465709176820392847738090303521372169249859745811427727625787327572227947302524370432715269205233895979139690436279765003060591222745056326592663965484476605084173868230759577569030724238136748287697472649207903730173993272523033119972199756528055409325821024300901191663716279376707731133516895850380238489859375587076371323065801303858824594092340227676268815487349271359149319503289481718350252052017418853020788312891884482958769170634036809871455354214285161701450883788954358525154873360731066246096670614554725138304850648942149121977508216375267195385061574733874694528327053527483894900696059332981894665019764204669825452224074360643123528185846829904842343279771222878384926991629801989900457616018955894460665063610255942837961556714346254050869518265482873683095554229107022074542137306981921209434900531795069764887499885811715234184859302146600639983747394146251154478077131348962645518104332471561824732959334451940227804747028628022972742886173701917290118754082060633786334167890130950782956399290666393007315692924647593773926505817380174167499115046132846099278299427565695728022492265737410629449276901781370374475127346923345094785265620744834755087303061671484487251405861016324511557392508881572480635339556948850889875885715504542854523677582316833946658085856834763429148994893830455840734706409902906550969119245852134533602575075693218522086799352005619918839823478974681459765032897715923119181935172663248335354781286191874382748314399098731245466236739712873259928185733537326498664195373638362114408061052043214325596848892175194276288751923667253012747657737189959137510271645559213295972750595351422434189271256213134808874533809468339063503309125588826859552037049542708239129146092082672893920614131981942898938839488089115719214985402276090053105659644216727689879266326451309201177758839831282257615833469221580307206719361316835030668857648787241935510851233645877485751170968075004536504664184880120818705426403346206945650025410322396555907442162700513086144234183114210408733439240932655523618659453736435267495501863162631069911642540301430960732924241864124120575202959791500094185568554952183670525759640762976242329131933840430697626477775597976527625991205252207486117532326323580437470055136465065981498724460325261855622825750901212234931185535736200907648561612409897273661066646841839933226897254844728408036968892356528635854858896906278865984962566609344121227347145898980471510680964143779390673655713292130612551093196745258238972267002809803123994623809547811771056117039026434156633630662893597938399446169749382976627315290636413248391342230881329390962324927527635622077485381507691878174139198750758810140014609278826512712640519252807151354520262424156280037819250447147121911792826744493273736172215552616636057454194685365712420740971683060959850868307339172675953595152591947839043272542633574603535094901775204531800115109480672584249407580713652724275063671701623687693889829433594917657380696818276996036011645183860226723900068602946331471917530212682075412851050952479411088212261531658005092010299561272461278360666083960862532752200818009281666159344023610401754749392963092611031701230709675740047996024120136760841637602727925521602290367283838687336898515364108942360636907909357968928077311308014396206522582077133064996289761854733724738558811980409149907717013138006987633550222284388853530301903580262866031054533383868716348671943220643212551858426340231771428171173669731364441237923126092879358783222870299445719508437010084552146423783705922777250417848744222380354416198803375985088683306358268259907862263440811158993818082873185179427582741131917019909700088509578582326215825784842303385824815911295224178535131813203921433837083960607283890109587010669851851371461096030080577276856347403698421766820475414859008799244669702849695909711224850584231976031195017305595876760800040728374533027566894236556618358267052737969596992126871046250049439159537428834542872319122957317199858826445699800070303479013232735865637996052457500124630319435742779724488749754350811328983057009372628473012997676488026638986484561992392836287364620526819996584298486501788340236994965325395273387846900045032778481764421630317971944149015021295642344719104243253882077081660105327894407535273659590512593099401506117620257984215163631536115939175725483112181279123373283127077012479857079403436375959396375241667033730437931185134533229701163171295176577969600444142582835388203023933621432568821016438108852179257618240887482858772560554079316939307452367829599143696899360383003458639083399200172974584778629565873757641393534098930871876100925871772629896327136220040093225784257168265952620706448708611123018805155143889765441597649417582466739296092948505635050000445598435639589201835145528929403634636141795811008301433716711218455473744086780897022671576382739288703798357662861871397268210584228307796486140046830827104769979103065073576691472326982523385418943712779988836220463426400575655991669307462680487941585708476362915834750046694453226751687235071070566216610725943985172072461584896017747244832066865455527921120511114333231889942992796537066636870282673656731520418243328300463586114041229997410595914595608520175649049013659445320428246751241337723908750891670459614824254805987491129958615543848835246415522605274475490825665172734619758638215228383966695248952578798929020047983523893857875083715758213720734515357402180638408353400151048571919484796344570672007849582051117459632585857075495257065949879986908678473612188856723382811752636011467140565391042574276795312578998438532274994957185464038775690425223662060353007607531113267953816397351812372712011467553917784085726885628430687346681354595868492055256905340550137506266346980492410739145769122457486088048065252608601677225480433378025039547373692046846139106977030337372364874768565691433825112793724690773370115280519831611909558819026148788395642607762951524176456137692609617506066214971897399602229089859635144657116013179466519645814338851776024396263797156887499392069269495205793548339147777159686294881711120384232671948019916939584451689147447576993296517117039365387378112973404583531689206909601428355438727407377535056402456650450080059376342561959126283414652338775547667799357998958286763314447047753724629555270680281778804403505187900687446061974033023451734069490356751497828646051670871215960052737629165173927562243871614523799517444520407410809580181138824415001241106527092668427684556254989103204036922241239980589622635484574806356318091323532275462764171195980722939067683092701913170076074273137891007490207627134129776121720950378700242522308521101217900339673842204583176969067812435448658342482496256397504099511143602470745456970085043006656021723540967836594215539815620598820452049343922218865538061361532623216386090955300160176472615480455968851388035693885592252442095861619503766049595996061698020809241731362521211451281233331398718622367280720776556265021659604699666170260228136366807305627619509477916449364282671490279698845943701384798381651433901507734284513210618728685588954244471730313455906223034210401983536537855064743246781119277822979676298694682753153095086012542014953583554471311944553890792829110728194748920877275509935219627606990165971924760559371899891780778147866622517137070364586887625279951059799328766632814061470646032133231674648758060809530340301078633910123715446364180143214621415722170280593275405887480760144608992805789720123736740222781455562593340732535552819793708565563900604077193885380290085613906119773918689143305435591237042804594381452009587735610285293644909834954665175986866254753698173802135152607534179325441572011263375742283688323540461129130550708683973804521137072346627685965127645959609103490845763608363890039174430719299510869290405584250595992408188035042934748930964967789689743623074364344315648074600232727916396822592951203519942521674108017235336065031936867137156394016443065469028900672002459722561207586620828117048178471716918064902766398395553601994423921369163945441832274546417095668089245651711809826859081400668164000727127307698990103128870281300420574141066375525485964875105299148574656776974275965372527899872518551987672385107317566358946062194405339479921012247419264416310944749206265901545454471051847227050129917283363607728149871910895319156171016816045152216014436053186263494219749802068176599565332846635839028748052462718729926443411602918876727795442922119126892356070889076372892327689460164720422401017587434963852899447077048152151632290664263827045529423116273556552026848389308593571021581993184909396279350553869838377373044096324459289031049121277835826392468125382036682183438041480100247344103590815170389045327303959642406363030459109998647467200675978467227594338716153684657648424148813161106741962401437718167968336408241785078628658759176329912559472798944438111113305143813271235571240103021731889329687131138396639237095181178355421362574638789593350730240311022756067987433930925443165043455892417325451538747702028947085008281722209737853041186585498493723381036672835276291242695465293633747351018214495177784703735190796248795603747604961754659951046367047953608110708113936753054396449735209898558367400657632842765232057228648115501648596466286955162786519293054333789166768551712455402708140554086289995308176051596468011800666885082727597185589399186434200801167611494062541306368113831585216220458320129622984202552357164700818474325031525239584836028879424238717019306239814166453381965300320665080453430359423868931168608586806466000313868971887721166331687797604240997281219505789043246541128618065847305647577329197726444831345682900494386536994037172526879360825016141457174218915878934726337381978057883736179942382291897137514742488150163978585179815624452914432682037144856334174321634414547913429464275751367664656369169342523850001959551455491924014479592041788824857937733923983231548464931677876112551502917677530880732571901261501870382182469326011681487311434988383906142007675176795353430197560349202850199428543387022339427215880495397642608884787818163849490533721579776706842666855485780782940918352199321021699121183935546371439943143520777131165203220727089862348952135399662176651277972114916703278353806786533681942457210867499924390081287908820855368395335898720539986027171094264003486723364893136941117807082280517206424758582363803178923474513950203759047430204316842208782150086580111918724559839569782618229412352126621169956109235330489003685311635190849410294987571368790795377531540102382861455417526745360131177259320376138066823008624137323767400021532061912409970802267615961966185368711277847040435040834893505816411204508248710081414883556928222299159159545563192085248515778444665101271378970186537582079813244811012474084355298034949364049210292827467592538735733234661344326696980031934464024878016019332328566761585701900862648914390822282510349104287013624672879822054523880905820182719716024236955078658496387654549906537897903251689710926252258852484609932909106908814883229555473974527439742171588042203987396151125931468396130625608747421344316271977060115397451143442614765306077707804037843450370613972105283109067021789561079673392803755403291855070497162548098286912005202567710031895738524899136073226642672712640883764214720931046585561950143322211909057436198310898307173644796978995356965248191501556098216449701096616741233213357156832279424034510159859157354257091613567169858331752753059583193566222088744857756287322575216710024195161039587706117151206709145953321247401393440555717120983306277534810210560156472835754486899925386039233087781590428905474766029155592906050464620553288200396963437662994245763583955915416674561662137302533906362299122583211916949394430721479882136260136481111574260831935717262840935811180439246757273494027692402745009310190782631903850298627272624592517530808378246038732528506572275334751745701611907879835358612539249723503351273204441115896881403007711277395773697178871656251247936840005274149873701921447289206456061290409813641668595857013634141108731352862339738732793992506110186100161334454124602928622299011454158756950118398620708456495579724759746113245604121037479222784993319178213299057472710923661293451952995374532470284322582657676006355349319247979838917687133240987692294983142959810196273580607951400351926248190758998891871343111443755682460011147487147960883893997393562590308058519794659778361068834985406268572630349324742956527723061802525856633444778427082432757084107497424264905821937412026831891307862975142146880440729244847156394444419583325993845568105381815969666047528206130246294056676864517431229826623916583590124118149744156269540676879693884717464829850817304392818151688171317633393723022828185186656124548861814376881496613506184200277429922468145919323001901684682356673527575613293302429933062645570479688482280347988879349232052118670608936587467006578543063613621282864562612847946761822937905339523322932147586690035363864980011983357472018908099217544178518219610381066271257801611263224412009417476170253236709788206444213666985120934983650712751648533392943936427994911401291934516542225631871930565559645338169404162094168893728127019308167056538079398195122983291484928834673873758217093962794611670129448423742178132116566019338740535596259567662556842344149502436905114324476152684193209378539590042656352232894335908443781729637528365183352029170095500158182209148209191105890461211685921716718415535331433966324545840300336977552277273911050620087149684237884322411192743575147588231930321881661360525247427331335820020220052824534246924499455983237569860605088164054517382891782387371310030193660282775307124702134312699929976139139294271784082980584561831059966218242119104652529460866811354503363500972553862731377201987206516771692348302596568154722869072097696540461742218924670524183328441813935136989638709238337394579116280974817667854474908452532465832727070553655821357912238082999762226739101973137640626303035491868856531309144273747203485247309092667720908572663706555629494928126313915505050244574662641867608974744142308333829089445787912650073612552978554658727874344511892384433649099138223857442214738216058063953934645174319532129210600315728163550668937589230650057622866459978368073027756225209054177151412041531898873103063766379697212766113824229594206548529417362892020769065293941452606088416510734268582676907074354109799533718890781985851306489312281131869244935443910553053277862139023180699825896091054021072215456307330321088845557904320930303687373076309557551099887977333275329605304377386171354460699909338262843314283046678494200855055202791586466119812993590410569817498159608304841306273996590617675782930578302155711970969971206491166485218317736334270403009855654534796440212177979483888189557714127880772623151126964696815636279459658165110295416090954225592557587609693507932204954236752661809384861305052367593656491267140045739173061320658876507677458455548635874204517305995913775307271806419576689851165262164724033166700146583317896854792737750643192925415133652133823874904810462886455084310596532037632384967806437800244565177931841819257844179142243037505363082231075563458538147555264030099012140340567579483851512092490203215628935555146427867544929446892853056873105523428032949355704880583373853416461763814729553343936066058473448878154347699268856955900438094933492047051576155614487816835224598915224961624981162182179469134784903179259034322996110434491532611669004583865264014189397878066001448292829259150436533319042165931541595339147230537576795377407295259901425828319686390114845767943986491559658561308849763904562261312330166684976347803430241013116519321530156590529267020770873796710815762803966401308399547195079419960350164717251454159933880816002667935520504426995184065932107123066777490544193095820750834560576814862222585313354546506238866143573354277689024044379233957867835399620064540951015961397194361549465442855216401482552398314743454378008727211660194336942473820728515538894841412332691882634133175099583326653670869162852213418207700150111713358040439653974777818633731126664669207160356971481131500374170210477201670098301872172084355027633617203260873711527908309208539418124133194553799585176718972243373790339264602741798321570458237297004153677075852190698796204798734818563878492818240109652913002450203074237379987040923856985180342491805268495848315108687631057316601593243008663493078933205548044827521022279805490076694781098674413718305581505811732221300242006934935495259471350481248915451090342334481428139069334877162378520799972915465326990955024961002738060306098179392277809796601692659885568215360171356605100451686600337316458006432027490003022232520105680091919675254837290277804919871492650927467585112539278328007856705775531263595380876999069750108585136631601094266080873192702370024182864057564431238718997875890694776445915802762240189433544859062545428388417304887065643781215031032431603836451992608059690950574145984260008039175795927065358924537756131124189934494619857738573248921908768410570927553465205807399854676846615718613112098338247126301608135688329907800571163775733001133288577420765788225484853314856724761190277555098193044673570720759635797516502071327938277751048702445664060715696965798581052805156428368785967241096207313919301361069879341622993908672985488696732130852743244758787377314044710133493438646201484886233246561892142058969976613723299944214762203070008867018592160787252501285635084811935211672054339093746758830931319682516547236118813449630672787270195799696379269527436019214414390941954634332887784536781689043853812669996341054364807063501786747637040768144835532729601250934325921827763531064260854554388676198688194275991533729376545911690797187672568718363682450070483708720017693999325590022293036461479776286796391185517130512176833620012333618768682201430411276340229172782097359673851743316877366317919327088067526171572903331365890796207106701680732135219126569986951297464456048940625414390626088603180780457135194446497237080387829917839195829494238712479535608367421571566712294312268738956159581537570329676889886621350703795128169325718103025685569274362648154930298107002478841064129574260337097497597718353500446970696347893477415835873346000350817728753114279062629949299780488302341335226648808263995482753047122803962314430997129443642885409075526088163317315752437191051474451842333046454668670305834861330674982171414885256095024685430747956811338060543647357762484673794373987901028189851591051826689046889872309726485250249600736715681593706155256694615993157150587459872932762467156772544792560643124949766311363064776581007705947610605356801233993426587642596946558604506458686493091544859487072415375082880924383427870926667023088183015021998146850681385813589849555368308383352519180506232523422527292013980458883189046659562810381263941808627602897716141466121596867248500439460546847571697007101091821927672860846788557509927723070282713368824601491474075681012409528050211844565368866725901073152198428869220264793016296984760805019773559551934126620662985528234258997511207683478039356527755894659404085104135315721468209397221867835142180779376000411143777051187731488395153977007699906851805258267635067789709177235069085210565942295567647632547390597130217045119965068187167730767110456696481344571034588959852229106631176450649013724053214932202644469112488376995845920828592251580407523467001610950247349934508675939929700486430719585299662652325821821829458690215379103442086640374944823060371644086819883532655786877718743500264351834455443936405983399238764185744573770822118554755964193413564828441916848765508012590900246765158067557606982214282227405324463938957637130577475620365587128063244806336397117011981487922321689336700288754831111457308135283251432471426556700707994603701302693607877622395971012527129074152137507951866300567646910551897371755620716219952678928119264418825063239315198953536474787317750622269046534370386719979255292935466571877047692406173412979844181061743472651146500200094367791457131475614766050041089578743711228305845505781159616277545009437514132398363049519737763924055629633778487950580398118984062317380450740505400621268648075149809537132545291755528092880283130941801711845140650727128782801405899209432292302082832697890550548886829420229025424490923055184553068979357419035651067698697231029240685754882523112181127456913496703633013690836839461320730058716015129842905013986980517855460477706851094122632907187641678674711731340680715426857485502029540130982775993971229660516799804032324617001200492162043587542641382466924037102812515462630034304051349184533543582431765909160868763257614570475602367035040207103164328234365205841166946108573643910562546880800695129927749842007635674322296642277475465903112073346855825981816407459147369769607762403976175106745118844160276914965457415879041762686972125686763294669707855152737676651740164598311485843318137705537966382321032640465675312946051198720302860741152321347660986333660837426358700301204346738970330405382585310127149416693001046241537135527968344302052902846706178678030408244320897660089904221507306192086219771150260349538431654125173320316445573522512466366098322144299892828037250237070578860100724606234513461954543569985824402840074835463128221123601505769163751302730099283613944988917514350677342094574683632202135558091839207215336853822461101636128923152859790145455368186644337837759530379382225974298091934194461883730995854400015584257721563380923163774635617107010054681759116718877300555293579267043922488760791887986663533174372303937555920510270739537633659541348006656586115148611740233399394893747724333000633007076018469954563586577749793742486945301668888784986163875623682805247870583659974869067906640081368180008908087094488355743756428579137064403204327922515475676483376525564132328156929469144625168458344068746153712408608996273894328681983306345961261895784583391989058369510612712834010526481190817631407424303402956421400755591094078083820531154415562115067456425250861857853560684332435854591875226560591532584139337167677936104230489047291435344972535945739721729202600733530464195507727908969768760401591609689524032275056719586273446734156017394108038222675698782595496626144956559276517451150568433281062868803674000915020329071640766779247404172354401826893632458662452509759505176160354078836651509141566136961223683427025046530335273556620904067471813073886812219308507538108927045267447868539408872365248801150677803425505178052677611937741780714630273635341057258127103244233647560513784743817054579603020358394005997609534171704150133395418387939642507802748019349718252269652857385839851140551268744426733883390745398776564887404387399681780020890510638371247987320335026642133483440195609826306670545347600181956665531565920362734878847566416313599975257676172372453458264825432495581485044477007814430544445526118117219748389857268433537839370366867717783817722172575542697564137203313091730826913217985684682558955315384058171195448373456368999008289305923630818600123528453749847138643252932368885964688473829966046502149384773390410788250122617938947059283605569985427498178404781646070176189001174233772356563917803811914568499670859425428719243762857209227099107043363754045564246337371914641424896628879902500944103220672037984019426515483770955958040915962551750405035787243385076639954293656015788294822490592103485730195103142531622444903048056918939826655816703878341856912713681562420274526299579674910586593612063126520643877164968803100351445492988125376874221048290841187295248179812698908779579268113252713282823490932465160103459734828817192363294798725185367385757703643944543842722786773957350172525736186530602244808849056074929266911604487647177484639759025455056005019875899264084692456979230557378004857647639368695619990498431748885580688638454332156693065724703574456831739883401284207819040136201741455110412976175107722035951527778056972147962862357951572400170960674803573399328672181044152642108361296022411928701518097274480213591835272556661032682861613690877162828451636915244918469255269548749647455806414069619265358216804397311052934661564386000078939004519088945576480257914522730502764586189168415495765780860400774749799820539830838514636666064814069172545693125448194942380145342920529861741086880137530795386267933347524274312290544629248908250970298233548101366706989477759872754114255236094190213296760638424069908439643559119816436169212967553066083051989726208584685817187255661250171537668121105979829527064984838190761731729247811094017086501412250292803204231390239711952884116167367561712590497129609820490751081591533361810701650545191704878463209979661432958282226183368326033222187112773807521745747307433993445336829565557507300690878009560233460640833222216504731601477277289922255781052443040753273077378298953708629376469954370560591636471742572026218676208076890750222969730570375081364947686880958617195615864143668137811225105974754799705020902230811309866924552278041864047577760186029650232602090892208145302578221625056155692494003746082364100871204107079137721435515070662373396744405076023607114776799358186069481546770549837844608411941640904355523585437759947325232634881261952428645834012053331599289560072632262383719949625124244067417530948585721140071426862003095624975607743803513858782904554118192967780754119610155404476021558115282016665986709171466754845930474568459058081878392950795172823302469686136430740071557097224239357895803970507892844014568100124853388192403523822945703845562244453380991635666612413761555927348543120126070862391226060456461040317773838613811180338942463209665691241050823183458219644111217989963371274519939016220993888019520667707643892755582409087728802332413679120671300687376817478631238866194479380057438204952843340348427189051544035440662261810144607940276259457192765789895227888894675472881518582010224800703464525624720849384634330268559332609314302432485522460926782695067382382331315603642661500026916207146613048352870521255192075870897009383331669640911215619384113071088521248727429639420964894332072638583562177900254409849889120703947202980217593123492798351238389941301383277227473176227646443430595985543324512944281512437742706913136295442186463919745780163315763404985351934125772443884110714797723256027231546737774240771765405434638284790499219215423460571846025443777494405720956273156011440886734851274566436216680925278081010608654194526781673323158047492000507958511682360069908946295685655026671665272317978014092338161641019106279212858770439800645979851939893092461231671935619519784551091014746458126477417440423158721148380689213005330145978693685850999684977542781714556658118454883536524531773584056356977188573219334111797274504609811130756880115991031812437825743737787351246590454304150948407513308737753043280521722139106434842703269106510215508004129548283258932374658612259317532124308900883111433460162006132383300870496373399825599154126716950661527577821656576407685984780974162495256219238245236862921839866009895251040116103342690464864088944256385879252952552233149318446501021416387271654454433547975002392968162821899461651963328252062758388136628707690885631302298553755294867427326855535895904953133299700985430676332257533345336584343378799503714079562708725493112345852820584859273426268570872462515034158076306804587299838661916376051469789504663557064574248567940388498020421068845255285413532490723647927846058647912542775666053470899206424256058776156455726874980162856438327166178917714272963125504853727055505300528666834046926936254788186759197064610037053958560565757974878433574721784529035257322070538391401601840079683879571483377837207535245941687111328881658892831953682767284050785936892924265635563675305373750737231966724252202697068051453082354889208536429119102919353865436257787703291310801246237431744771901383259187142227945455568328965605957095862454047112019416573176934240872967471307151154798224920135196999063735308816798009261329003696061569613416608852193110438104980089435150374066669050873084649597475433573726277886506865387601071077029782810641454341067832127833700908740897833173298102283723975003489947371293451120243465447678993642476612403026874066403641733153321061112692690189084778594338736619263716702056891280136360489656448284303227671655483611876819024232011628114868459675870207305490336501477636727838229010327233929369836658479374742889294064823633582044551785063905123271928176643425241662623808177953255950217582457673811185883910316917543591379666600850682387626653356407627492364041594939412316757366067284169876055990053358081027772553185881752138070216123481325605054087792126954996747208240579870339716618883273179432421666147067745149534670471112624245940478291358601848151008668510850943787897835239611276058697806067066886079906026771204333645196014503751668430502641656240377663205693758063154462046651441855515663634752138010391898802062535096578693611063766772881220644534799822331383261873212650255699649676247293129916628222527345993338923260419662353069509800698136083583230841863520080059842105601281800784536626148156214080033204887628228337755591579557036368471914743605997288359597102302614803273969397690633380068219530992352843759663568801457145136672711901557870032641764608657042473879418709272723214701429519758437141426030796254302146827084817236835236883323271042611293248645349716938029690925614479163530076882998424040152585158066101579136757698609895380146726768558952802754194282811502608389930238787408901394485624276286731990825425144238545334173782658524262999085904501076722196759506897949845705568317934828741294345269978408542867837396629109491118470324778255684118529445246666154319790877977062836508994924751892461205126341864267428330699374349319317558468922197863982575317507014068391488363116828563505853576457274815861436551644454036051120788725628072900199397676709571980548268777398849998007209630996240556244110674862003992338094381272487368699832960055215000698778930040181398062895398736182820722661519747515366833938350959606305282481530819767487143761848003364208372409449600716731376153164091035758576442874710240448075084019940129134198472361103039305861058071870011743596666719877194929073208023663831047432572640013461579200130267737427590144925654064807992226994916602355212776683059224089628709986669261091020495129438828815152399741533604608589275679818494258851456737215634076891292848357424719752801872985265528113194419259182660545295627721996327227553995844032386039165914044535334193280869344347339285878135994567538729444924998518784358431767311527959712260565280555649779779613994454382469154004599664668721746366239998933025604247172375001503977949692129262491293278079022667381802851350506895684855365709751446391958411617512396183139057812221952092527752529446210669800607570173041311592947583010874831124686193375538870350816239628303840467415158445512199394388282100727844507644685409510917133891780851261378549749312076124404423793664018572907969882891262854717537305657856005780103235413648411997260432664148302237070599211148634868742197389595161802067231122537082996357389244548372460902449591802554753585701236043845689105228335315497517561272650335091780902543963234680489444166861135168281894738342840011058145104533496570260630814179473263810711064164331727325331684494835340287695070748543473193047007970657741286793923121960893371206237342648946987583138241172624762047286189371257504088261087056443929118947947586286512933447206319651148793605158186757369198616855620580452637991730514470703797604136846074366451041523715804964277246808203381931855126895777501628789164404291103695699906298811699470259769901465917027607206478882300252644871682723501938520283423496694099961103608364432245512633209390087685147501690321143545796500296392482247841018418762062669218586620398384949148646883614115352964105822944942281255779148462397468900278420892981429651910971869703980757229171100348667028150801491619995505047696799377972718821324024151006928948105131407617796041226329635023109402814998027880502345831546650941900917754492518665083963919248142771154940617071430209561123701020313357524915943031137210885607657576643683190852971742380998128773119829813000245604717304662040621608917989920660828032721986019057966964319848845130089699861585207189946180573122556448887996192281188606499997874182479101284573268472859116687438340262927601362768028873310587213313431106491739177751654665017533335726242325159722092596477180734876141430378620608908944420402327510130833378928933734906007469877646416764221050607494595927977750027541823942778151371438140903757905528868335867948490512581074753423978258206141460710171361905514116970741235317086771470246641712815108392132684782739965429017767724726061707879642761985621234110114744502186358683573833056965843932111312450083233312783271254754232692687175675991656313940967203484182014147809678694438390047070137912469661249799357220496262499344501694414011113501531120820169757510193790676306187457484565493482475226414538599084128318663548184977770409625239478175995865391472160356126841003645435253231111308691337970996780367656666342350033653880639227940399785124914852817989649129835092741356163507615819575184157240447970774283677516978889816511134797092928720207236510087146346403347466940677872846281765947787669802807911952307064656066185185809986638773449930087013546786389884740181186120643259365215186997675025900558612797830834992817803669436357001403490886985080108997469428798459112959504696884268349272807817028043328217999589991557763738227229346001633765085571777351963249780583124554162835047605381580209071974992585554187041414238214215350148034969588134554186419249872382521978308768344153846297138986406036591450278092857008241750397915937168193993824148930668093668837918311179332178492627349951583995113726062722782836851292139450632477424258363650226723507345177014592128524358692475171069771437704652123473554002803157097920030882566355802179243387667800248601585478647931884538381661563895185687349238439216386685592100851847936955372571132767917371038512363054740014577694383682407748751473582645554939589442861590428354693458806450169197498601270718814028142702410473161035469704995107950093143471786837962324634784780667915186828241577383119001219986602458215188846450040866150886703084731694418213836970940565170318445698993383631492378656933161729372545784341227812212678642019422348916809337475416971996931075293100076821330073258649367416115971073345347448249207975395204123369365657658838269061762929074661222071059381009811920386983961635602024675713175117195132992800494254791115089671816512682683199778800094009303382196236957492863570007716106522969510283147079240951713258299494385867910752779228979275583239501910755896541385747289948982406008604403218545924900592578153545005507427714024353762306959933539684839094343963112506828036080742444623132984737117848391996927179801766112562173055075637758682157451471729168448112398947741534293415546002741729058757022550583748356330860897510318601846932880240636799179775632000992994396537635571005865412509800512677193140231467742405717289160184265470649340106299336080788336189953656884211623426844003143231437009809865185310936170312741357933254680164107962717221771794636850685259407367719021231028839175496891565616138999138515200187284856331228890082928123223285405428026988197332353815005721632552422131517216225682948598305320303664102842762754779034547350346857061791058202415663869976695378522148919765788569509436658371513956377459146907806618325440082420168884746175479884884730775054076262326250480628843398846901319442454574338759746840108069550212037928855000914363925709708234968435742670435477090866906856862585563380578804151076026257515062455179316496118247413977276353994793593646278472516701697999679376232891786361112257713352399285284806660341753226861236021695334167253045591512223597023073983632439083080578331252232352672753779925512320014971012315750100657650381164716979905110124753023535029423759559485802424824250369982343503776622612820658701217231254397470399134440731914655862642900375933354877038004022289985105089852357786860721484385946045426220657544677349728053497058435318336715867216267223688073855732814979283193895734711016689411679902277499500233812719162667616042392854479185894575003667070949275329739608575936101357027144490851336195913196329322806280319972432214170836928569447899297219152496610484450060077058008810680548720791773835804796565585627059801263188126140318974526118797464595091806865737885027658987811009638028032057389385865585056716124978468610451766549934069372888376359935642450700909854605497937716036042101412323729664142031103232863503714800942688124213735968431106892328861758801415561498907333518896193309638944043519083691778618681312114977028312494801427725662121977059619511381049205719417828752242956227400725209503677301891635638122139881519926924737779142782027285853213044070426646370956929401543434313952250285449089137251632935309377832513255137360976480473452663554672726171908073199071763623782547305624881352838923928678716571575225563578264731726340854651872042498723790269840758528893705030578236582369319627805994391447721131142287690352140973612310706522692072966134108963228874743607904792158682153991560295632224560258108898570829213452132894810563005681324251559066748083513024426323721156127205079354104934245988469948662197481818956087322939661746154108432536547333571717136968444555144652847398757784925586911587617140603092079875464434089515157803628192052323367171066009376004041873596276310100394809450977836087186001174884335327780000986845403020777516209587445899724922860247604333610967970929288319210664618025092675129082885151397167841827436952914194537812793866715140026137258257390758473214491771811372082851584944390776234014069996458395641985456339303011419619786550001148163173551751875500164243441014315901617222636528419142712603726178911226544604461020849148473180404645107712773670583197641228675191388397397948233551974978821980326711244803362906992473291400812636116782199424925300726092338649309407575952482631300339291173412803580044449480304074014111717090568071758802331956004777303494610273005326741260983649107546143630031043953358962860695693110948056102370528982144503209683265081656823166170860690668148683591881505302120615749547466904271953375997856723171772154814811707936967523345217660879137916741112865460201526631846364136938369768672020375203231680506179663913703031348317890304319023810229466159794892426281058844563527233229860453954804197101386644000410514272088660235415933489935967173818421469287571271917918157789059387861661819771061975548959631784988882205844512649714513204346102608044960799426790327761889810683130443022315858088056174744505992850863985329841359107172462039550707233186598635992459420419655978714109530253029269941395866739033337659227709578963203497860665827941397846699681408925370306987495535756991878314868560790260825223804431623129448668185808882661644897162341251744274655346038527800504252653347893164364923830829034459465724694686801451437422892869237928532953041381638504014595616740444801047976216575416468450338507027670030963548864859793785594601040725512054721081076514171264422567336937801378996045224108439648692467466555143075969980426807762671821463671047064348755673497355758935194448655795314677410920313015913206912922545625270462841859465484775374537613473436653852735029441541055567526490546998941678818762049029475073401611478636451852263709832398467655375235511419543684363913984554016571811849170679082919223179671153969717468973721113236173090548745454168001113793031479570414921501345094491759944916617381250956635551191714336636307874574832150034697299812413234612100862369562058107106792606293996783299849862097178018380796491663120824248826367816552513705931026841818908323248221446560904280404922350730013821920200265505306088133810591224257060521948367018752284727070962150262244864551275795366276014493325663141567542207432094735418347538102509243690128345240664780862588559203272094938733194410921918351615478101202294788523279486416358411529649881690192918521884798285150972039341391665249582925320760505125815333334383825227855128103691475663513758222980548876015002927244170531460067529183878040999271510837956492599775982627031431865463745620121829917377237285297364943214821050954322848668899111684901934752043571473928859183110307884480523702912240570068360545365415674646676991055233856062592753047746270738007669751923546246654938545952973867573705063306461555287162699903110445343467904471082751478544961951073876709708760850769230137107976768543399899163622558533457458589522657764463684405756929533900020837649294954464297317729183860859933893050925296413230043985868651516873051915033560643510738630213573843325420160630897400981832608801526399787278948343942411492967146309012004259249125357646072860035215341880714291126766868124692884902509823059330747548734747123666630494155355025581274235055149054554535813916654503641199346440995426142145458643411001329163345828132980208236885659268904599909457240593762061855878109355337402930211297852837852139449970888597119201465842555180329056273636158838050220597832399672428439609106283518385077250595756310265289534822136592296949769416412175213816197350641333632736856154948956169741742501593202901158993519778885281983521045446515961736332659803227124331366923202829253752358200510052764455609414521063035031036595721541635341370944089306069587922613785342199245153236140000990834979048472017078538731189002584195756716339915258690663682998062823931229997161597729252904942397510469283224361014716874079008030657838985065703298749321517630845047287268507667691698245118828194503147783178170053266496669199111320205120163448271571567956886454339644782605288577592504900638182071380156391396566332929701155971895228137651034769387825045135764926038228236234721527167722509178883220026342024598400738991977044724049328682408995964180552994024558923742574903880114810275231378262613806827112907721036023131471824088984910896257481843723936119651321223082538404294374828855079654778022356095838496157704121968446014516334133752204285509687289771758060602579014845991071902381482200333790121239919185246489268940238978757441099161236817159674354504203234705127128451094088263903608215829098663449734011242130014209529294883543096104163289807978030034056587378459982253757630646801350803570944792029790746664346632104932387604741455219834688223695579235679948449949286309677732742595204608250898445734271381696250376128642506385182605764469420458450285515566366806858175156087480030948469825765535613505578625344036971054138030920638976440581225728704698906905683664480207854970238699909191247252849766461414505575354517952108704053395064051137564730024285458152353591901669836883782260463588841773639316521770024991629059824560513860366017547412023845321831990369606973848249023357672388824931263107320830108239655894070765388769721719363503367051566455348498549659465881277150796738075828214593919233192305113013452101286302932354429425142533423917653991618178504436355058011577887890415895423173204133271610510494530202601377450409060628570659011626128962606069036868925795533141759285827130583200203565245489469827883491804365391221738200444811828746238547507730705346616832457038623316214288259483826462452759067165569974733007789688826719949222531007659276565458242052035664230769114261308395933766210690882907407215393143955817421542044676832946258912321604023601473050017953318324882299537824915347073985963598406382929861167575637395755044110538821734009293223948665216267583695814712957427086182226592426658001572112364860300725694305362670457636721728369681579905805771377818988251727206253231748023981305949572119182942811349358367111962920275812811213135218303229199993982525543608397398829418612784642459698227624123559111640464592073497398621712355671848960224601248189497020249729363665727067306075331969200811112928627825168602887606417529067035822449754000462465798438250525274629134285088551077412796936313192967298642796921917604544024857731303671368158762507630109904400277949617253125133144548118573861175397083157704758560171868458669885416183205113302227906437146008368454560808949269779829205238891005217187386805317991433394617309371978754592532218925735451165733013222704144023977733257309573567109545056952825612394803628064990198576605333370455791912382550568239488914167603693444062621450894506869745820327834868263526654018239952818631243913648510527538289952399039029693174139585652300955613649393558625564207673556858770097891531081081823424995441982944952339526753722168425423910222713857031477560465467953684668355234287025309394460067567554448985321032667771083365702913471758738592441160640269585722351456206831909802244534072031789839616570466571539961622829394424285886126015801601723842410707972069555473943229007420304560272614779344801748604141730866087522348144250348275521514980283171336534532944488890907221714696678406709081706096092958752132034936141001748319866305981327413695096132641459978458906992055801819085832355551744050550266370386377069553307873406556705043083527252743025244510077242950265430831280424271249957878857525368742492228409361322750755682640277001320543065108035997352337550255440613694803892858732458674784817291187478590885640745321433918453006521919869904320962578950247640516545229978374724286707197692772709327177970096172618470579199960045963197620944519283921797871009607413777056374728220281031886461448282525282053054721865495491146880410576554492663141523010757459195514847470831427104409464985241795956064769414349041868416719630097198415004246588695467731524138089789421600831777465384786502205604135844931026180310033162911336506080190996966026111926436918524605226247306669418795434002174494292489686511506918805734277439895914195791110314200058722392411132826905510847969241476282801837234574323992835605201792185013287857820131927377479750108287561153673390803338865822647255043612288140477380205146813840247432713576725021410453596910876494050645382054985734093038181200983292119569674167442816775961697114051114085351335853596118514848785954831126415030499983302304430563330310968726367197913009709783169545404884392697910209019551330582490038516676990784949405179809848760233429609137245078208659358744886408492846101970380034977989725924473139083944247606252323947279426524368850207640346935206910662730476225364668357803083646629460076815729900878596674437774543032062356158907198415742410486231134581227418265253050261371946294915580093319353286799959564012695366080052090138689083396658737820523556775515655493162517230071981212278233104359154644397035674901889053314808120871419166491768821416102576057612458414478485471941370487462571081363256260222071629436224367245828128247545901845064796502056380531620892737430654879467060677021182743911327990380683487725582366540493755732235443404249754254654405186106930392955079334284299197534746566900792044491545554910695042887826291608768364283114283245035803466715215789174405295572756534463501597884174683263180292654469891120516822780993307484300723520292002880745392164111553646693225413361032807779493634541740998266028028754462754681568638029844654180895916039728775432579991689728074115804538046255782257328718261310919868411025132563229041394842414255511330447465073222384118020260901671999832755423784762350853125880978524395754913246274852006771461583597306350727056548470831744841183240357553740432628116385235612699078998658847148805190584160994600880935442488068505354480727536937710858304329871758217678649266246564490223611092797314789937707628397031448168574755284317343314587192039545883364459908463017263000992051602194691633396926241737607790304445571673133394229315468109954745710287974606082829601361052174443734895816536664056713221964642606535636321517757247038986477959082703890841977697531772369489230593632900062251074456600182324758821310147922593791312379271216818731184474523199736527403583115179600163570938008204825302642733914321359703541659850824402723962306523296148610027851843271715364214655204314882769189362367545476631107518204307737181828719770195107476311450290776980218567179662506819412832231645155723404039423692617218679415590145686204836774132310641967527048965656852873215069335395119018699131553212721190298440620963223525948457076705784572957088156540648038681606466575710550948899338695880931164131846854489475411032593474944445977739297663127500896362422794361888318448041907557175714127763772064601246521636544375293194073888424599542535043481506561088982957097318782029561871625127495186234469585405933024567221836275867479105200932225740495117496711931948303311919417818164905713926460838055848781500721642143377559512316340268667785581300056645664012111886505650134601595775662135428020498232357866868881608533191160007167066025176605962565839079629967845213732332829651825167354058329202804494223163791040962951583163550327386694085988538219388241855008595690234572872013362360232817241897318831274453909575922219465069150240617454235967127399911615616379850218886934868184826703798771562465486161881996610781914443823189184333282379899417712907258366932987961690744139537574317664734395482929711347457230801902376906497238556450782377919646674121631295618553010457563493208647429077634730429742777737868227172860580892138489572136195862689771001924214248644111782864238230201411170950228647483719151987356680626354662372735590789319376966885437285040245532086133141195045000395088645659905315071085360759728594162418058199613297088365312493459773403384553882596281049536422396456264226920737383909958247911725950145805557788924200753679228752330905964466967431959758240198575670671394693795361024143428123554938841016556802025741204637210791237068741151961515987057498078596360890501804319987323351598830709494877275517673129768390155290572323810933115090293718303505621680394124305245343514531362193588844570820892984312386248609608964512445196918864930910602869964763418103647455306194443477023854558319555902366554490169820064205336023630726093771324598947005294063061709902339907343541070385296555338947302006442556472093679663549760324632665547272456098152495444102657761684765613778438467457855813898539918730539576123967697792076688201829962926942147349066269161421697146737226455029432797393317394471086108797396528249844844290858144666322217401481984340109488225895139686548221984595003680458496670870881680600543958032792190991810599411523208774794925964039161484609816158127768168411737358944124640004162948366140189508863744362050261936041464282213951131339635106604522681578418599979961354492987633208023189524984129505988840670167914344284092595890828820644460121750386818637105894343765467341156036596000796237379215533928226804629244291028876673061501458774258200031794473472969835709205641488974864141569932145657665121217102063876177661437049237475027470582320243321738740234561280848234288007457201166967872829704616538785196982593283927182495486238511209429233058362312428199212432561015936824592118773998335074003283454963820908248340774423458354281519157774149683962899118016639048324656167908175988713583972225709720129834776084143263944724345322269757024650555466634023218484743847650010056218703155446753993738830371466108855484371165525886329785678196335337930658622178813863329465499685183686781206172045632344175553823854615221626551744091212862165098235407455972594865675339446878159508737582301003218609388941220639149383790921409013201466788251259428913045420038555809796120524235894524407208713173120626064247827492987631058166327299832937814395978506003800311250805734120816157489289637999131433565603174936235757118477774225531009584567502142789387076281028169405276774771696397178945003472642883253011278018859664998994650284921232725967474448892512252167955749651405004448851791197665136181451177233702463018049464363162693354193312219687366053934190284432850718944873045567372665273907900837515120587716293253228422551702785140403143955065900077133078193961093649552770305353755068852741653164687496831275988160359819123454279958737622540988600044593629949014286479817564616809967874560248418964377056638647772533217227876753100802940892902710207511665771077585023722028101192047239285700829456506864916734906472323728116320779693901886148081471298480780475209535609539342667638186683669214292117130398041453542700389190884076703343197028973211112032472123667605895051405676315707630460603307266500322828913655842179392432271126365674501059323258526896693581003567336535268350939404128500955087888113781934221128814928488181478779646039661295519726899544772012948464440766925574632030009969851646920324818880950023070876351282249992914826578179678756356351621176058364152069371308361057098530444788740296537177520550192021320408031336504685770334340243125970419028062731729546479766041173686717311001581574178940057446626528340477105663260730365312795568640278634649027810911090271243859116556561007899579998488765796166910569491959908109403461063452498905049774145236728877600505132854660868153047768101934207264673280201663322047923898562236116770775075486049144778857741183150466782077471136000956508338395166446116095792362414597358770887527354595690745390701204647365713784199713740775594129063599969936525531849608350611494611724416879073523614015497805914480128350064853065896086136868525018053401792941472624151039122156867266210376111982780376283715970373615327797770504465486212776400438468029112384183567530751417913753862464320348643738258865706889056673458206782872231407841060417488074191295663210191253920316725768619994597188565345873544269543094391554080007120713424817592286974573388906633476068283718439693833469199193749439863052013924307748653807756189838248373017134552732018927794669166127156768752235097365184165126497472212489186323614496976113798940195118829756008686323565809431583815225295073875615268391846475163244144755027969764886077530808788771222420645817708956745456178339744144180596865772129627988404942958556503012220445042138530738168317130312806479092361731310339829673816784889469253794360758043162875964483386088296157789740160805635343125145481466956476462717390203847791344845201812355842033360879348337585507828356586618666875829304084281626091295892284126105319235656358795807878148069979643150442577165675210670094914804089131497692346533736282611785066261501220159856973945620433055278665409034413874287344979549133798248508986930416676374443472193040292898340311922379390471604939871695727790524423527852446158230988159085110387038610250530099711123658671049546185831031731184367898854944629782126420560526266846735833397279786740908940563151032353760271716649022460617273556533599637644538008847580763021052785549937541747969884850374535586621449587119164666042904405365836827952601466825970580272365969178106176433789632368446312000193766994738604077660404810095525069702576521203828398354750425349918388584990462009689083914140463795277208693248001721637811924161345481922899076212939894685185574441712426589461151372639454282723760198330243825340713087678654308535652797189202101858639250481249122643665208483757306427194747379485101455377975010030413000854641032793302864306298625491284998828686185110016762104376119645305342988854968974528400131038293731176102948995940973595984623867618990243614215201106367122202845148667430113335851788012935877843830031393598482368464338143528952718762733772080710172535036876762298395014818275851958877824078015717395880108119211314072890067062457632351896523271337606585691246490670982225367206519395166402999577579187302771939679964844303732583681452460937611963211390855916087045794476207715088558905771537948479743264851370868074868936528606783097054275103334475716653632228772050810660289834252671693334787866744884831843285215210122518733182156245848340300687803585662401252591985396480506990519051417395361654073459559836361652985576473414500358764075705752178369440149574147545503863709594325866237104985130657414751408041804249007896529670447081467409208735974639027366650592440266166559742304121221039618393100416427400601881273238782037381890982545621600145363908117192182572441384344449224836103518125958771605494287219998676871715677555225801742962703899078722355319461854562369909022536802855861437559242230077727976052178166933390895616343986292820138906344307841530401767688324291984555615583727316614840408778318626366908916475544618804337440247041887604164378088292191963969506906447352111674097748244816550113965524685231130683080810736455287684873821569209776030540027300679113778847238087795813210478707743878451815626037224044636885171754776230377469567941253473146087620651533359133457890525543647846356979419949106787019680744641960106534111994718530667547141558095716934556160237307222242970329789575576109602643814539527308548336502138292936135229366407108215202134955954171382028131551622851659959284828554299386010909581275623730800257514608679364729744293985817198493378486253877339801417126812881666502235356778931822644179111953912749466256104555744861676593671908710016434262382823501044606476348948161553071263009241415464970876493139107104429469055231116827944782770009912811483009421122907091221294717722282920558299210757881936250085400202125503273627048416014088753715362302717289624656835888574876099050985231911102742188059993274850152657995288782740223164799644278328058760317071806001349005233071269003225977536408899532001291526546048156095222686419727063026383728186424069614625080709827141268818349031322059754424785876940701883461037545971777522712341938884941202139997473465263201337656683439195217884528964498095531478869654507772196137772430439254949178374685810886623625179277056321878313993831289547098525043282411366766173808814679033690179173429326699832968871239592915852176750357332165421528083575743012393394608674441883587831331374154057940712938038399157647811675938060534134242045664054748382964037717557821231008399995618159636932250659247505657360267902554407664869638556106295620946085397787795954392284903520537888836241621273640112664188239524486606219104341361672240441872113010898653168538946307031952680211733700436054494696608492019499096801082892795087567985144855448511713999711260574432053704092809843660890911167563643833162711141060268036077629364545130233897230000482174273484380852529764724659336471111189605239070219359404853965328347373736486742326762762977653119336440970857246087030046094611987181631315308647008554547820582613550845580030654611960884853728370813566446364376427732023588306220057694368863498187390944785240960602758466103076121905185311396014543181851389329183620622301127593440732384565107156385451894424808710517741161541458530240553780671918242004830519162201056440795057373749555445071017918948482633025072745818024128605104366517445683518160448661541378288098837691921848561727541790123927131906677610719297999717865743740399095084391290403680235896508867632647053517081554963869083386790205889958848240066474572053311092479416884189018694245444738509962989557690067543862839284655989818832128839185189899411030123508253272691374542608647643339017622632064072925420940372138627838786621049413924270601095569337050686257196489836182088782812772121438280683141894324817612054206901146504405697708454014750457714097949948367429282084528539543004135655164085309417207940318929599612014023079493463646401571719925153112218070768825251307891191244417082339844569079453972123726397131622131817431356062276529394576601827082392836208048670959231064472704588227790348170315436881836507301574167845893168854502466004386763326545041648411567380497102500405917179054988477741154546230788442401476500401062878539816991200030791795744183189916557404630091259798592200337497880138161799007426840642479364360741890908564120367372582008453005059976762980278842797996725754504651951978593882963038408195128509710323500972049804092631200921183767815836368895709620407147711153453700714902659621192201895012848282373484927355721952270314845529034668608491270834038563480596050617525734216650752428919043608089219965205985442212137383497951868302069113694548530598542720019871851833664854484801809601878078587203147405353316509083200277030405997928388288261133625632222076065635842040245116619030116564921567728896862463946369798750755505872849459254790936698558804182628620463053140165529937130584966411633522332762108351840230634873154865219947580902837760912502275200035536419651190073445300886935593581454878033569047861232975499335294869007831554209346855215408861635708678374428484466179303580314577131679173845227396365850223501322520127013568899357487542208340391706548535268967028840327676710984727054900890762312074166788015722611636082385428695761802818435361148935306642413605248028306097263066742914787209201672890166315361678341085001515763039254631073123750320215467399224067767986545531209217718161035668851564240326832504125528689124776570553588297595384259368074616586828813422185611470378619065210896839757278800755946502682565058994988395460614768891873390642061513961199114220108595157256135546080086469893916739626623941519410784324220990624610589304394025225852394499902569440427123649704782378592667447143382428142189250721845694137910305150949818394506075799780675577485240365479182121283947372147554027116890413063925817043097908903730339420382434777381642466467797066889674713031695181756511333481262285392215226571616011449968527881340190468193213187978104350559655618106891495996777737594719481713667113397644673704057099956074350025370647524478067188314385098069654828657364944452040361476446217988463580374104796854979392815182554642478194168860824410898105299161998923401606578336747384158593834905662983111887170303303198336468046132481645545681599778820655273190787953121024153475033236868771572883163580727442407152107785505192736031967331133026482543243168999903833476784326646324549103475304216538954659108332477885047995932319167232938669969470130958466965966698874668952249053609107968209324580862592297438139645609851251400130471541699882550585655904170133921193545487379058027471135736311787805202594070540482130483610492765903617068410061748283078091308048350787047526741043896516688426036531067015870183330467607262277453129150418576040639332116766049172971356460555845471658174723180049150353927876921001940307162709869148974136658590286370180807630567323033937095829608728520311303807771379899553151704863754647495027637786812188418542162178104134828579154638061409554201271416971449443156477949253473023017865262803948258974007933531810406209146446760808739061291362132860746655684649208073354138298645295980063314451598758706365486445887270408462249318774433497962918970745619845842272546835631020748287230138687834705958081109970005008292813903229188426214316883772761803116911279173080562108043450647083613499883254778073566328042208223876452699912730659912200930611020875076238887274618881654684629697048752367660605129806145144211499403293834848219717242789183949445918666222882431322493838385732641571864983223449185312028574266170889207147064257206881524290522279227532726487092486757751069768217093093720033726926733754088517931198499158230855578675807276645711861065861815536614908323777946281714500862231635087712430393127688658945328596528985072509523312151154669337922587941197093515054626370511315989303622051615307368033922785047020332582305223053759429002462857961085909621918585571547333316703613766904231539425684199127849115574858495318070281496412808029519951650538400919046250199699246123854008696545122812578971758500262490939955905974246984556574852850779885249319275225115341838810619869845352077526034825886984095786058135841862422326261091266593262557446089288900930817716723161266399902111702406208140583970884082817262921698959329593046328409225504290137346689932986602579538838693937645955389718022609977710339416797965451966207025233142476738914932615692875132585166279217883540218908169922795463436834662123227175340964557483852023749824186708172356154962351477164087274650611136470840401971696984424479422617389373356273967051421709341396341513985943622684363206194013649586172966907084039407541171026770024488668907033066258191063637917223888539176063854602586172642710416831283212614084481289720832447344496948670393771591879695769951361097843633803570123750408065314946396440216654067048718842917236430433282815498875424722097674167037782797529583039277823197137823706796567323997867640598791013220730091744731895191299975393065754045462045627395751768026004057809932559827687975938950234856907069983281240998305826946657549583396171336451967554525345379762617276237089765524873297289799174228136402669033354871859824160764553199992404310761309443638050232590104841080505976557199974242253346885754704774621309593237158738205435416840712724112728718318917731587677094313737558962222667729327825316883560030861822271065285545661217293268101850574440646989930743667926374297304016270789834126722442631531976936934871047865381225261308444206493667583475733047760455502675759929421293962899656300158404784804220269298854420759146398686264284672933572688575334161703518907158692211106370502291587738155179239308629255242492329018063704708416573436335374589304179929475405160476503940983022192810893232857516011085121147215542281643848249790229521621787978040193364509193753783177857275341269218578880024571325701281391233793783285554211529590056350265727194753788915470287561259633581025666404509296560183849089521131695941671645489984587175343896928206781172361275850103956286278171910345188503800631316117704710838515976908949784952798910475236373638647878334971910945739464258239999129262520866990607369602800067746387338038992702415071999530260623217830127274604535614928489169863764581549767498751860107330165410377489959113728924324097778891008963212840763009109253570156156526977646283904985556307561026937641846517957401437032957933837295905407138177970765814338045554386143432251246772722946151897206278321155936201796922069231913660378692030528730357144267844999026156481449703931661329071142919901691565846233368328702106245116201854733973849929022504154164414573821570533706890801172806540572058614340254435945167496057431509042792631701976684602004711226927915897355097446405515172280596149798434780804019095599945762084897048141251345268669819208373419613631847740518269657956917569843969083804314227891359897669987751176530468217682108836319277154587638933199756629630318245643898623424712232680124618527127895916277046737138276941889683065173019474568412018523049151140624239885065560223916636436899767046401340499511421504706048581913676430775183859822532537744933428937754763964859763978314881058565722868625783076051601369465864644753723296851761998518237080680636681047698322981303728817374448123858335767968593866652186973287784994184456919239688738043902566060708023492067544980511591105196283077919419361427954991199116805153019410919737011503203633809397850306246548652038126358888658393755225506921222162284139349692768725435795573314365704448329850508123878906236368577576934200868690081642853661291239996169171344925228750098858014009860215350540862522889476889664934283888144416722047521922971287422213582276142486943029216279161106916405147983117736713456217822236795912389831444023421938510715723314686738706890536135208107860424276590230025321050659694694281171094432489421015551544598950578107527982905520470097896850816436172333152090785330940637895906268963108352884825977643388783688548292635315886739760980012864052603546180759536024785551858888026739222604169491391757249434715498559722122023387106447583844789383269613935543338414808740773239661725230975379321257239648593400932947493337794880266251498528294558122577002579559243282675672589308319461948617568485414845118612542068548002078787187512474786814089418964234116987003455252845198091382773673975501605176724971807407527760682779125846030101816772010041971191401433023232362644391973018933782448149078950385366882494096433410525627764758730772833219340525226544646743638986081739752457408645813716732541631655102367071322036612396620503122754821786157518740530317632430587837421474848602613592204540148893841641871762800417874782569622390565260025066793204301868986850101101933181103408949002907288243096694129166541582121076126201533966864119309308388057043762082686466795397965271927623273812807604181179477298414364845060329269445069676980833428381061921074109180158182924706742186885377312983459677421152512404603404220761971965171540579121003472355964147311843387236098739012507044079268356475957383396657543743783356610847159832663300762143946424423970971899101457666022888189485363452899229070416534162472162581636880018114426841953484058915008092005813497258018541484226935969489310770324833230573674297740673097569303051623241740468609924817235508278962626391863339985171600526162567670875916615299012930889921938308465772201497856279708654070105255037394081309974526421463741359418104428791642767747124703919266384788731451075025583493375421233109718078005921728975473462190692136466292869518823932922342366361123762823509881402539833941555836808320972485854861021003115509472552939199187752642091640571053336647347076257506798328339243775082650486123600052816550174592964009506532894851108482257277039018276342065677250028810832828853264671207582995025768972607091856844338441533426463589675522680177292981859639733581254862264007268050570444226156729471160987180811415827375255805685523629881849022016348265096844144000970095245014931275476223589211745249623476104180635651800980696454847924776085009531951534368028840874186832196530611482550568934506842808947164572774985512484757323788434174204323604879970934251164667350849943306421305259187598827605710751559716818418610601078762149001032603089144003833831892948110308623092896079363896966046174569237421479170639625981827116402048081274348511462861723707084762633654710863712608804813332876247692258650623793832046302881456983437151686560730540781468810476947676131209879295193168516414728752702002296147211229848140500409977123113423654243281510796781989820334434089587599256285348286777330434635665358012100828774954736238927191641041754045640251166523824931689464392089756987050147733733872030064525099385616947137662414503316056859616808238694427936003286246373840831080521119160973863621736955143041969768863561955112531477691323954944953975442164957816711485152070502824270307317453965957837558499181895693943843374559861702825399834123887278329033626865270606718312682626914261280663375760930751952620123377478051496958428652113798329881145065230764497627475270864941103423191206703594713069416344408154446814123043377164876981129864132201050047457749861232640157049632867240241423377288184881092113065259400018679320674807754620618331936446616496662013964923263847486279734808246304552362552131694875188141973257597590035980699688027322881672833810152238799532255803054054257071298096356511670269320549015379451787632177445244911980458062602088359643241167726436907846502414339405336569391300499437488417920689235245234240758818599602973595139242812579524384824792975930785986920858404530671833000742227564928925337628950672220815377494101111778010509443942442558874682908544146371696712695315121140184141391491023623485662596125851907957551076962229135707917761695349005335077338164593758497346664582926437811046059475656905664990745833949301985234820614622367459287727017630622744487212447987889836193472979881307790380644351945205259614097531117954520800767240074327043650964824556738597599213106141645258687199888231389142862017045337487600308414128764240863284959755496826993305755925901433363544260903830877116264002826813228322770167811605823153096592431346537504884330859948415040856259191227780402505012143604993718221400725462883729571483113620523572031840876942656535665918665712544896715057736346351396920989507041054393222536003169002535989328169679408234315962879218808063757227816295943969122864537313387872368476231084195439625247511347564101701235474188617274042829887671595194566292610493945920644375095155658332173289421517400300275881846049713647683092314243404777813144696839721961750120370338605864607885864097128744684821926963467248240220384163906030512397138784622545334965420957136903529269049920315672653338881045124514461295367937214568287828848504226129226137127331423895945068536565157181170793197560032383864073956346687331697841465314125965223008911418235438703699571052397964173526302225945060465615610126465701561325554798887983459353668173216420281463113467018844157528140448109957751461813053995962939019930028535982298370391701323652422219883718812039138404591505406735298179756375606506287307581121142563637989024865824009613616252607951746238980613555923537488162380635732784273107935707526418060033075049482628891016322745520400066089177988858644836432184344994886793809476793266022826667785204531765565888408762747370173890548331838438882914155504724157127604646796604238102304187405407347950918223150922289779533871229205215764819954383605855096103370195894613260045860389866798548125580015487768997587643970972324008078843704865426719337878807862767910722840961302577292532727709905293340182613407742632221491712374727507578344107805295295194449272200345245505800441301435761104041298687302076315308568261169243641446148112976527366381445778200018028865918294941349207806413685921233015524178168436521467466326571626682973875525964521994501034503301015108475517238900060637024658211213874898464604689079542551559730977381355314248393137576975756647096907384684647315377296988999150783359554527501481251736816844712871732159030666082273848891810039913817908415000275184315017687410099131635210678651984294995715405263551514639752306857542540386880401975226865419646648064002464560373225711134741816097970451640576415542030612791207032190385073408128989765800123051666687198593078597838652461798932223187397700117556727263863864086258421267111987864452411543050908842396188397513825172863329223287154954199800095289650462671766412899000700612901377417454731211279548560534823983653171762949599834908933608821579698426189419116053101617962634499512092874113574078348850097745514311777723324885766075939126473531442969108039598883544407665891580030421083071548649885020950514195482915275781614167065258741692278560560835461333998128479745019743443463040714296057520162905440252967876837462844395167632743885930017172353307356352469668696224475821421550915995718108566580230876515501978658499154882001857670014525530108230076913106658195480915220999190488429014850848580647076386841456344402993620203719819481936440895713892721006452672774148040520251664124758154110270629321145934809022796681003298128682173452001023141252157033854513083665528414584436975037868376578176434318757952141668056912078446175613731835442352982410378792224718677811405754451277992378211390704947227265323964006001457014273427222253773853507879020413664511385060655810573640142873886855569839652817678622948939415160574803757877562291287346539688891560161752691439887025823589077741696005816290912616379917258861422425662703517324889734584898824556611472034766657728694538354705552728089842586623875803637022781817397376901941952830451055948591557544920904851661376831081257148550430447497947869085363315158639573610601302426342178148682348273221364780762634383342343798239478997598182042689497379867154263107875543487985125888119657408018204957642939342167462140064780213102488757973589711505964665553657838495968967910670777629209825182181768775802762595431095358134917817939478993281081710677044667144846489801099862982019929426792921798983472985797755972068295033395774123404548290359768095318260218775741064959749847445858721444454686359167715872607050651923774401459703382734659321566903732982344365939186929098861349872669729176368603925343603444867843635723403186451751300172324421529026530316774180096502482031034813415639185837320653076389236432141864192115133319985916696942112142020988718794931774294597288078763732221093426390710486442515658011572560716415693391917193682297170245605918549895920416804683638795662546650670269110166384611000269880259539069276974649087881855165767153506464097442597547697230318005928549957076909186301595888163716096445889680349457913593378226267740204874983961749750010930645160747320059411187482431875861425287719556465804505638601368271940007336224762268330968022017804543336808651482489113862596282263428742670123699334570577238127153293530741477200787376193705789037336423745715671940892212589148965203133643785364269466764348249667949203217236625620599465616925961019987710571476549598242861382862980491502991050515839147434291779767448785436857838341669699762881178614411919224316366559223454336237632800428539605848605446211233737371306838814832720090741228206171034712702184940225379925117742199035366456028738346659469440562259089694488918132711439993109698460833108403237901632922368376555276591055409992347291125584768672516473158464947276632507120951519358759645181909231551447405482263875494512125608939413957130739036828673817971712531445081322812155850674918056798238146532482008491656419391146510897054774304311505623256819295557933197448935773035307919283861282361177134578773167946329067180539272924585923634218024854772755379552824754393880388597237526202737475849168704779588966448870550040390982234881615538191415204333327622281942985939202507445068951171166348284783746845246475404644246594235004016603951090289755719768109043298225329446456053783984018320985833613656908458779289577819641668225283143691265392397014120616035024257786260637817392385061592982539535829346263248225397288669727300588872167232029012377064771079553217681522850252290806571830451816901526458900690626436889315264111038582135011420009058469294842073770710026050173148477763992917030109768412625596758295163680010558063088149329703010679954734060621148835035491337742167810797319414440845227754200266053980645870040529540395130118619856690847264397209230017024633850314487097377929593014550425876624829286689210749134987470886995664608741889891961045238647048790690365661586116439279658475764989484243068531861134524053764528727393453184639305668397943085308145042630905879008383009025759276922049451234134812455590828639786340881143758128526286979011062711323427062424964909703139542312262536307884542725882214641143010369784724041339346624506223203716025111485659336627087516364278037886674883980410966800662719425417408438062853848692884796359045433364578806234513284179867485466024294682089088265039312654073949905413214199261050486736868261689542109375158901305367443808568986550792786857442261082428979199486222200271721896918117820994296015581312164464889934013237782206577857886859184313654301294528772657784401655166444432945474342074253345501542440950488632955075372696064472830246262135873458354270697884089254746513110097169062961287332379444164844415951934517960489256729897801803231971862837315537033337699892783968892634380716629783838789057425568481171855450859179656553323930658796458566211004374970757012024494139738019905765389440936059346970535382873573327822018226439707782955003260820847514213418610503663302391872003449500607505245213386291501485064680769558966567293287245505598809273371395763443390948986386326548669114781059496118547266749298224652654209430821901783293832069730317966171932291727382522750244063160307648593240976202942840207572161180549903241737398413385910453591280570398598989680076647589617282869810942514107271072729931712575616401502775762306173564520761022190453915617035303018176232144608988484745519434139039497171604214824293844910611620429585597298980840570184535042231219385450178172816707540509269148004871704331643769400560401760751652729610733934013735376731996614734921098672199750775962797604592672646494559454083786263912556342592220633292030679680665036657154955624213876936365811485072799635313402562630177985432786571114391920732311211212910975781092273032308282781553618236889488692416360861632633524377007393124852653094694755419692367395570034917754302905019075269531053971317950635453631684704033646532150092690201934928753213615147811117638355827757361965771653705607273277125623523738033608886766374635322101110255153508867725796947314528347524070749831818278193464679026565122680853716699671076092581833138338050939415104238391851351306928366130179191076240463158027904201940617708591239980361122261215305030219046984835526397614113506513673445743806905613901414629732800918167400341632793885966152204665314176882797297041666192754585691585738726251020203858987954746811704735511239527600578267985647467303266065359275140978378400083526656302127958699544472394766975442672456731689745320169919161523674938893540446673818778632685546989885039657019798257129690705301013776394535107019994803285346241396029631609673024569796768630630135721947439596972993246110517421481150441604962245881313825534464456531282653613812189775604233133911162533394116984470714233837033197879746788032213828000770495686318419239321301669095841845388529361504269813288711606098886970806932274799055133466069347765333168918632353249618182452515637957401910303725519396263248223067191166664693436991838535881016550889464414755724329739373493389451077431334686695494525533023054523604710371367065589927925779639977964306272417798370607020182757898975705872615636012978832844176518113563630582026732054733824506536271942017503684240883834391781055100317157329220851755373861803534236518813815034401034888715892464750261089496775735083683249313540778733393180005630040997316566053914056324801153733142344095184837811727292721595855442640761434885880876918788363439883212364018696280605988461851266722751793709747455871936830479768141100202519412578835275637612416002216468863026720498778468919499872097252922167333273240338976002144476741473656310372137427056120916042108613236063477027648700814978840368704193808439698272430509627806390861088584203830763407814696622091911347137146404772884695379954507360538451735850967986699578334763355631258212248401240799825995439582952918402959660942733981073155727981484396620023802634307798800635574160552449825065938276304052828554836299820717342879482803735741263198280992179146068817859128465482416667300827106492532263118309147349592935614146154837602689477732377499040383603049522619674335155169313084399382592725775102286314202741950048780686409588817159369813012116418127311042538706067042920556437787159796854709328276054285332485332738562693344804177550451574015145696633954936413212050930333229954629745862664052696454226691425013325846143355922099578796580252594454661441851894808854887557169631866936777891007744057860932877282945548363190579297317430758860451544297473659262915095694645250564348041761313567538520830835696735803708561298598307552923862557080872445867275864429933602308596234336106158387381283168130853292094908857042022131710918851686012576639735097063116205521052245419245904257438735281282908176801214515306352705734740382871023687934185840915884350233668181706463845027266311166762956027521287651017761713308101374120995486827766101632944746524188491061973517203733640027917275669684475410228239593212173302629454741078772376819291563667770707223951877997597691283739290362543673281263598662334885493610813041739106782081895550373457170061798572282783329400905476306175273165301285705953419368435443221412606118475739464711519047912407090950067229846445146796782922984171139866478714893040533394458525341545452776800388908611207197928360312599633686449352558694233889118707679145538087513738824465461087135165583995256405962029071288815363529282810135704905528866947458419208585945880457313648292297826492987646041037439866608603502441182815220778558165182596902800378421910143607099793203286147592576767937187638673048060786494987574861981351804958857284736978336876200140354083872097159298021611544346329894359904833821485879589967759400975875135807115320661308358376070475112172834808048813080614760013763040117639325937636669579082554198395810521661971812292861818394120494168427707544842272322056067083412439715356691942561567589581461048370334664339289538127560657306193847900643832533428541458940851916089333567880148396354324713665144063545026384919544613795855862910887709141004156602065834246017962573927525543914924702720922001730934272189715876982880318657956165248970926833590759872271126204063366421531796039063422611428294313803159080181344206853222702309356253292447169676416770448806195989534434451070018398357444691548314351257082063889171404907195854252639401241691448607939292681930208454178661088194301033887280142301741228929641497292722800778648911045769476494858659850769210151263955180208212875430028113686593418892940104148396528571522770585003731700784852554815688746903940722324722116644167937301028066467143353111487659916734419112423425334873141163141482002906187477019834835700450095457763903908682850070943895607332021732759482897693482450977739281578054729842584419051842710704641477352498266357125292544819569796400269228844928403100716670277246266351741915086394241198674762207667916327847992998878193951285326689773014219129106934583082231273183086893566837295739932147927109349059867968454743280181358479522152860611986656898168020157951468991205048212239454056345956492097869148029670589496505996471997845233165452487928280760435947387601475670102463597978796336352511210947732643076282810714955817713056761357214430698333354821551302107065750674904348682939599643230699310275056230953623330299803196535359382433411799563132154791805319139712613834096498732721856352743292659376711518909642919202619615265759918534120762790576468227672116127305718239270463192733095991174278451855449667784710806052442010344180205966157821643754444414956445961714266773704097334221803922588225439535879353438952163252339441335655640992307768051712656148703941001056617898109169333811635358888063424374158113657127935029115106313297451286847597896860682705115048530406249019179488887037206961470029401911049411735913034545806944534224691010820200401157681221382375022385131848656694693201620843120434206019954313785073107106171338158959750953647373727334155546995616007587723645226587049621027519000625262322017499341623443080642042472120877536424238936055999445152017579196544069505742233173927167913229481064181653250940701872509003314688534730714837372611723872350777695034740256747471513830476246857182536027047297995399053970178154086635228353433308463669292158638424646633484706576357134240390965444489003763266240232740733831517252204390924177375983280912341338176276744329772378608662987835077597597373235809541614737912991413204363678171921162234442053722962811761137969130325462917988620251602007382555687035144784562230159384671092073545993345274118406108326280300929992386219906824676014690873268033106528928110194017565510501506248624411786070710851313063679973865385746165143005547136916083086609593626724077179124265188869288344504719610394126534837821379083864699886957258840838539021920806297337176031935805636938077275500611791172085734885318620013219303197355695895443644480269709086204108310667991766356036731041879712035256575643774960042291041646716306494163444004030198041424610018798764824919334347097094054494068769043516770909085051579993312117754480668709469324062251203102637363769767905778454692708279097605212074467408554330284839615208855034563909301107954532435617292904831598810410023080271626538514128816830808360763491175458101429266378830072564040762629478396599652934178555249978642738378395648617853788506847353817343807492448083785936102920075079994417611285599590873560628119558029722948934566031072602197020458482243393189388752494733557345306532704154706627448483618889157703606727535980310781774283290983607031045018393841640254528216829965532144889669525960343628655423291046822858851179759675819026438530463531932625667938283300951908814449731850294182298438277998756476859692958280196916538763405506105643772586860251767961239766334958233637172915890175915761639623673385419546220674082978239909377190234118616584990019296103187517807101041953130324575456534624775084385157831054969569524240771879541942379063916586284407199416896954254900189661015095074378238619953634474940856471310212734399051906213710932884770042171943117488570028076887052276100634551940924299980984800163645748358645794353767961727096643279622380445635094987184943258925527633211005271414033770349872937181778116368564597968001060941268491224406513023819136660991666713436758590212582068760873733747315363162568470498971975354992762214915262323659329689618074122690347126673549705918170696941734856497075536253272110975652509794314465690442041559706834377513219891480454514786963366914317491060263227910463812371315421189356745823710656647103872665596515981878155188430475872541773159491213152822323650705854207017446182854201802275788050118654107362257210799068331882360326815088833200126076859778797362405753612620680715836892024083246453999574773990408706184139671748199167944384249240838310326760846347714492672582470075738102895584126047653279540334932168934183986452065915361360257637251964907008102744221139274776430867641191584911617819246521522843786705179952151471793647554396903530067617871477028429456267306027733523422111175123339175099873232764593377297175582896150547163946280145568348176478538932135460766008619721873716453456364015561874209745422727304697211340531733186693681609518084973749745969795112658909674942653936115373377849823922732606131097424678048249172250720505700626402698803710853532541102674689921269526292611404923513607722031399135821118536416315564635296505620723580193538756561474388698763098351472563560322519868941934786354492307290944954874609833891975543480049622847178037607569149021008388806451270360275035693059778641862215585202155724376349423494025897055701840088284247564518985385136730372699288397990754103765474320203474970402457107927311927927833899023958069735417166371547271844366488739587457096294007705376920849818301798161446458407300225305410498662811268232473981878702769099629223653075379340413082896691472836682278165875807100058302956995066633206372565106016338989556002925438665541470724374848074771409942314115802390090915766067565626622627067670196316132473485228516918277484423543954389007862302106786987041453349468841102381380049381268029593832036670924457553434562777815572965029975937352654510467661248030567196426599151993241555967407740911404223707409666347549940040769001261286008480844818879723784976057180338870300507291115195767033983676872804479591022774657256396713687255439356916724609082876125318147205907559415645914752948508568067985239160044174536563891617312340841037100162832584600844243565072127339512478447693001092216360747275583575172620437154271245226909767292744327612094525719664398123948184705368236818572188545638188104275021948132429491785411496101222791448377383723695373795771363544054266030979191880599222829699602777864033379376259506318628580131029755573968398645711020654473809399268734592993880057245950698597422786433350830096782610031332776297229391952713454114202537277591916744556694917811475465071858967658818593180884096807567263525954033956256034027274410919285545565973467906295975883040236684593227416961201294875400014004523268888244569391924992173023499811153698366316559605033027364878791569354274638699768083455304647647937553729891359528923119196200951104719785982480149740462808492785373607697388381381063439817733300804040296367467135365926525146716566533699067510570417851603498025187348765977353099277884296807505474458127085954351118456675565004348290126052489028087669845340488262971392541831004896663480907601194129835179508067429180223279060513955212829517264042777473911905793021567683975538534742139967028448351739743412893796541920840115687965461583710900107605678870555692042828822394251122282498487263168601479873205599540467669708013779528438601765073636817243426341093168815005289754075281535387646155788896108966453234459122660881471094439395734558798265248110951939205510173701203585482348523276697819506645614814768978094474257298847690112424985607214689658385683820739668226000766395518804563702536778024015418783718945462544146495441624504041277546330647979956364666047646083943506887618839622742333926687310268529187280357315756711597914435614776338291556383506689134597718241701085763799703336882338183157986854327159090912722372057257062774143993701695214287457901282869166887160428935535142190232708496604888552461069541612750504617874878440465891327063427913769531840719454140570117654155466931547749201687567577635066239283071132078582083620323154464458687291728610393917727766208516575100836602134547756229640246551426926497774093972107320550964315122996940415768598570818547805064129930657966195483057263123269367789105905824519763881216792677662913654132488667243719383427002696074996052410649620984097792971027618463846753902396128689390860653107577069066629699299612160559663563748842843437204691913225605773859304873539958348174482887450533321383783270442527789885305741717721205741114069249184529946183690218600754082245869916623266938342618990681094360336651476300155051541262093151946997784158884699340170881537411894606331170907332455158323409069183474352262527409191230680510733569056654783393361242946507807987629294665005740114053214341016794545273140532433877817162905104961670964687505638792920710990064488244054013582109051956093774736858254396655020076634105478047151928405477449561511512865832271432953871481169842304691439707048080296447620219371778632895675573229325611624106682717980256175012552101315288286737628063067438117845256216997851113230997474057197252181998522893486101066398173356893499916856167383462187380170710132259323770043871958595967561963708859003422934619259500592038359862214799046743265703788401592082715441008198849174008768920899552734526763973815001154691276119689812539002630881990025444720178166789447231393506956880871758104662916786024500932509217315261202481054493139978385973489246374524926118423580611538877214317575428795234948811708265877390664342668466587204734986935232393689127374648487807514989081007471645986464993737537326067075229844635621355446770720070090507148021589204382825614372841092088057559552313925634065639417508037541286003331767861875125973901747938438307372876759495474124047761769087811336495194550785183336299811099475275864456132806527899956826719316715544925578863419329651004610439346852915579511702393945265628702673404362833815877475543437140791393353320743438776668357818885507780534585210438189556796486742111726405574182956068786445524694636890218333964827505601879366242361168127687899161913423213520520255374520852259080966434798183246179526173456992393456859709641510343254562045099948328234273780584606494351382567213397463228281714619587803014337785503969380426897845752882792994080897831179739944960180059299796033950466718833420239798558548585415493647526170694890201758389546751993291872378641126347610335393063943800788827873833465108768909386480950778543905293027555234928277934585041566888525952318116408127907324640536096154078440639940166736526960467369046598337592202428043429104081745735593382354352653252398709238555743609818440183363108831776009530048824803177678889576668085231999594047266179581883938437433281610367876350229483745331021369586619291615208425845319584185581066185666287667728945265516910754624974601675933231773635536657863804124103521186666679759273409818396079269698128987979110346250635921545737226007951720664835894098968390830853921030846087788369471481231633529225918130227371038091487429454316608360986834512567870809564496547779027139416790957325174191107737717672834829442667859183668550285648646521949549902025122919965292594819091129714929659191941075831025174114529254214639671384107811252728622686581668732984968323568687193169262162621634347746676899988184814381740324258926962436658231148255356966268715981289229520289149763298205410106315166569544253407887641316264827171988738241962960663278430451780241082403051414183381548041271893102633169129442042072998234099517261513141055688711631510829684801025372758363495784991302134756902412457237136866656505722558531350399035754537251193269276657115167229371916493668246863295463404057198419551138334798058752251610568258911530740946387284411685337984429746491145455013453169014192881788658476626912925056834751813596306843511146950643894999577254141960541692287378855395910145247138486325945549310976865051271303559331130939262146097133351060381915968548149438381313887578097342131864594023439631596952861916019452125092416315464551754935767936788308782642144400413802801021206863733521774062459057849169045327426284093946773846556104411793347414951485414666353947972982135172678561239371287139825426891232362373378867590934923881097512498223270461535043643213074599009541246288209760656626129284536784784170310963189167577249506826071637833055907603163737924874659480533584549099589571827856986940699297839610100382369860135808080817343539214065620853767741493765249281124165010926154864907473728598344541171654606416355086574803516137572137675879024743078548730192725039068775514656782364453942892106433699717444780083222002913447689433108409955294529111751969428466689010465703434050311960767898570610202134804532020441460254131213288394839748406111310170097287333867763459724929128947700251425802400199295165557374377288062232589890984962618521760640880536184893906077449656908696764639704392272276777465850395409630525825157228229306047204900379901542246645287222218035914636199576821702271868256683618704934047942105406808921286789592058631299761280734313280661507628524805754834743312739684906135167220020954075214312445130662919978218871139136458244385534538802137948142621765327292238732583001179581580401210574642770433752830589020291411993775706432988198932909972634266086755377373424968822574239970316247374825092950807528449830127260721288900173164400357805302993417539964759723465546430654598537728010324646690698396792026433085853343561427674929721342076524156826428728625917707359959526631092636472842571145320003460374219800256593392802925840730496666439967069642492844626593569963700471457275541671578132613131401782450910643022647426022854587900924770593400743991900147135540923358588395980231918285558929603211165014587875436475916576933813040978076328434394513965247043354289793659962967641000712109455739959140028130418127190235975386181510554215443339049956067650960598727944602960710190695348211886710944672947412133926866047440971194595273378973889561536127074944173846478663937069862360887479678452900447201173143995189228968470682401373227523005974063652493441404012005644436589190015304140396826437495198379097838772813837647948673393774702361352964022759656649193486056844875808971576713947409843076971150202362394175949055997872871784737313287292897036906122049532144963093781021572588694328130740334232282158362151576636577386931393986688244559805862364750661898092519636235702729401052421830714604620895826248566964315651975173132081945582439544379654890777629127627122736092578248014170621144312663989961449750650554116727429720825189849676778612810895245596142824359145658810978185008546372255012478952471136601578631848254978858838555667835223470082931007256988545895514848903097321969381801357068394163902591135636013385855287104588794103183237383856464741702944821235150635943090211950201406406321945640240702195336247616842375186736964921531284946896569176962674634025537255266704037491842945813810364337766141770966630065299217210271652390015920480799625763705140659677878131713966747380996041794536296304883090957523226841453696577013199015608653303651951091882815976872947979788100277952097107772109892988638648157787570184517940805276985070888005390702866846214407757049011711371913979202743081058260495268074538777205076645280074154961233083806334361014624458133166447029078121186066469151114322742564369863056213133597588705640230865687921451081363715733164145327934853209019861763798661070166681236482827998431604778794690894737458698253341756438907638706353861630933360333692389582152718121488329997416010733351791540685707604494776758785964002266075313018453021773222555798576864336579364387320856781917754035674158374488220840194079814289529555135961855903998307174758398360314301533716418602638359725302473377085930619795757557576568491002573868543461639732760290700189332592333410948899783245624157211459667034445974926692425116959657258465319785374460017376373148924087635307104087959319375333118711854775828323238400928797798038983115952830490154662576488689510310448773460345224326830421094991757693154279529853453851084696850622506448196164728633838413590712647931995425549602106614629025376213499626478014590270407232312495855089787398307729801130918529808873146469293854710734658448729032808362062740234610818678529939105910592180304371131027176897748041079215622241764958899689996349322880237564243326986974289778547854066514227282112496692088567966609042732854577373066686331263870646696158484762156688242120416670560161171587129812153595140287180479291640100898320328226186612833286028474051656792442613380109641181638375474576437326995218344011579362629491311240638726725209036581455322970534327922446821374991190468910849788404418433379821565236839271359394158102729162734745550999832669751928950011139905676582680477397996819521607329285795858799964075928377017026408958908519731680092818942989368639980992452564670805525998822205808150377512997135058383365957900710673011794782840524608583790155483493653445946469918865184948725796185261893154570311638012178862117976829354704699459537583180062683093996548359142332004512556536413256979384297920924579118248424951919438139458561294164751662077979310044866081422318639507801671166435543269365310774907411379904433033188622915506444874211521107545381440138932344257089517729440650377397016238735463471946524596186628608756535893560562442498595444946695584536630046795703205316249758004162278975142745136249619682459192780704391096180227760628900099760360753879500585083279154384429900334545277896698860090260822285978170467384173188252107634432007086506499650394883752256299756584152405887006216463956752722643110383186467672694740314830452372991557862659820832238581791401841508654212222573640675257746702342460886466340443105680264000885481975519593561939457366438255162389664663990517549911068892424372842695884407884421863313950458260914684832336501773056106564183144815379466062698457724800252909628639305886943872667513375157623262225889495130351881402885084795172274050284969902800099291531413279308312263601388678595548029231474428393678458962730736428842500982760231015444943751854820855479437931011778184729880202505384625821966651793389571659313905426255034322867336121456739060411665722910584930506042418895214086879900052287737341570787226691573911810227066420843144732915362527081391018790002784816154246854502832873375752647983047385381939221193111193981757164541764195334307517607152751715338779015882686192208141403401396713579887503851934012666711830110907324114498167254133385010550703814145413375089350356425333022553977012288924446088914755462798276234832721169249145367113720519780247652946254758391478126227590423381432308143585801405594226319098792475564771067700445541241105099695147881207270886988128336924859002815045359520378623990493899279240579953900512298139734281050591282442284319362062232583592731029678953055590955718633304852983406315574680730622082533305844295990041405759893009681901629141922981181472309098552883100143009852401456885957194547777994217337824248774765752965521622558191833777830012218801731370714990509961226231745921059824594724594248088965654618629838715941846410010780227506681510802970931976542276244528269799243623602816821194089989428580371282773883498417694903056619494092860039477689246924034279654406922893352749975761920409141254662871754330362941324610190891689795310266154123127572243045397708496863820040873227639500802165318251418393562318613076109384699622000838250315584031574544592048885611490380952455886924413591725200897672809012840572228112162495135861450668373001123420796762165296138098396713059528886009290380359310338138538041215083484804537350533787515564705087212068035331284384609548311194272755804190436836417531488159307114705044703821238846826893349673588201073860846233473719265872934697143599775120731024841327358683037714610534989920890955121112894347227597155694496937946541439267010135425049894908709788506466839743590649175940343167623180498149558082346764488481069397757149184455219506302543868144211603133912819077622337665655681196735370957301080483098542085937244119356338367789813500486482978947561792482130595133765923575116014623999281131641866250294548314233310128928539804101736919132082009624832513422526812439223101371662050566522447638087355573579721530448894232213598385208698427883784906361675707314869823423692397095580896061450148883681685982532832820239398538841578164402135181984181747742721139885558542977713976326737053307447516703047797326706463966435413815513588311426255547068403843730832061788728432610172915507293712155679987817090689497000298291136262844470932126848993879492728751672305003123385626954941920868925469725092225695752500263904716424255568480215762261392901437157549972671121345238507679425663860525872313696472766944524159329109746910664168619621401810804190351618621487388836436047392205252899056463089161417925373814677162888096562624566578560244282150432457780156873848855520706252668591749816610391219326810495005882918602370111506819485850314211054421841633785707529584467069948145450168881259732433947349714060009555936179142893636958702451173360863443619699583741849648328210441335202587391502131938955491654441011127563826535816853296888988736209128059234978419036058510986425967814696966166881845447105888498259252359270422056525490160725908419103187642824966196625984433701285914176962398672400826193010591152776047358336975448050928555472502825530177710082900881941769247402059055894491535757318231199603268570460813204436954616363602204844056829281448192570637568509851085744275123486102907492905149062621510544695856788348501381424288272188590935882510459641429555265780819342572036203560710982019715526486161741942901383851647597790998049256944984889240889286885878500713574543822114803141814717205308404240646621107001288478934890503431538431406858885611737016637906567164425854072542761629370011918208842589357935784062538566201626603398419313158365718281227308409367555607368955840572857890932001819110181989006574593610715235256548145289903630872418422603587163806760816727372337363490559189134824009288466645600060433120505120551335342555405106315723128239947336031329483389915523556796383198099508714372745220665201199687185594773256457450597472049254856611992961208976090992757110176219590346039809499800493267647766605452265184981381523688475139229389567904228855848566870036285566646998535409650589856641377545365378775540457067352027883268585646314413624786753399908281603351036419966292952285775577330630832678370312869350666282116624921287255013678330613124649532467028674182333218049930516514360083528162829241002579154710766792419026378680811838728067817743862883222532661101921038744461534366577005157783303701076858161741577400985335947893441138705450940679799432158330110676639919789082758909168641855112512840980423941278794336854242950754964370123937619660597079351573359003010380339169186732988367137362392352959775045095714011628774064087191893759039291507987463621929685666729903388624479804425858353715708598569400944741215621121016873554298329905138731925450045559259578960158500587374525145124770727349075118805262889267641803095583876057367375555643075057010897751073623259099065044796088263908841848504783313337899854533565303419605987948635514055908643517457011925014710378356964855538744485362223843437374256623965329682087428782084597333885479164756095045168107522458790249867919664773190146896926469456413835864554501117274277192882305912418849637769991247396288124980350509747339929406296918403594445259237890691588510751439082490838063078501268284801308791201183062500846314620756610353827613379877730161324735503764123761467002184458242745980693287271299228770211586934894367302193815485153276684333213909022804473670221947711061051111924791181673641627204123547422044344136583455112674822588809676521423877509905447026806495090997384473130337537071135687957398827437789002425381617137398859806252391929146053197585478346711445325402353229270331074937169084163811082875229037055638015358473173100817808717392939886857828984469497115331733416128199149687474823778813804703511869888309737699083426050334923770326640221452162462093798129018029691050800943090159438930307279498303135576910360943113720038198263060052577402805462591774889825834385671317162340873591322349482787266874683936414866472788126432605976586258430094782089453321240881533590798228198466749972954957186085002930992897217723088268721187662301681780641851362748229584172524293106316412450325827669977542183099883846564642575813221681610619166466810225727289625823854743852740890503069576288888154246229572910991706386995307831251139481359978176856590910727051046234713165656558633856471836220895835051568460279079392735481347844755182974212214330322810252793977488481386004929909173553897037078040378833044070835961494825726369429690078133733629038133288520374228423453909784819350618833376488535230571749008636471580799769143874111479197674201816032045634343820048861384759662247182545263095602505655745608837186867011363252650493651857349369382771131504245874710512719249138536723984767983080089718132103265407815315343071096835716097425186623094211455032178242055966135007804242735773306518567516925869890608146706657423252214445228029821173508699185787953607607169538503080845220557109807177841033403621004074191659955089168153742471352918735646617119453670310185940196522933789025549026354547279281148267255114883849259961340884264295846802904578739144919756506430605360921704936675642565888716172717677934487816333009848938412000018803879973553350320310206837839695663108848993110270022039714518217582645859270424098950812283714366622368887269880997434847517777732869829040224777219356181054239364734857640009571471665029674049292047469430330203545062939144953438478618843674576777148640364481608896524201473032809003853660658935313572498437510076055628158484342817151795169448057748329406876283680579978863412083632820485858635894781935895475974134862538315679967947375592386092206289983482929404033783487979528210914462164643694631359525002725718170348474429421621279311667871735052486856154480596309133150910261762899863770307067038324487721334399677447364506354702593464645993213523526268793096752510692077262201007856458180781727424928278051017374881024913183644413826982046321437409604848302238245985667069178854964694815158084839736306917774028801991188455734600897695135495134160285984424726620644910122070937792705590869349380800836853290336772937245828655978355197170471277583578268930092684770044014893940054468829454526856896825878632286206861977169364724049363212698363226056026065503481206162868855527033050938683588145769721380128355730708746260090400185941437743743995194688963782953648988182683985175120838480604839586959566018804898686831580921840305653745011879467749384661658352435849478327754873084196847280675969586597217970853227526748758447430368551971156724078593542159721593850722245372477284373152202314886399230125025421393340186358385540318238248020060760451636038415661835924880582069602481548020812672769825766603429745201287593492188781944814577007375471388922828119650245539173117019004604699705222005463445123640392987684868412301734386467670498973113658277221566479590621244233530293181878227705955527174456796619609154394955537458324983896863226372623719125134374848073255394402380616868972535463133791517634547469236961580674434748391059632343067650779070683491698900298295382069403690210591684076550499581952211966865355098622340105013688187288395748040124860951810355024714846488733402250122754711769985810442964420255010580662014571091871178925136033479812896315867611779472666893781662476136260815424404668594182814069385296614721488929850638932333036249704841702929585132775620851323172762609457533079535490656174918310501391004027502704886401070420223477468919345916162506151442673580207988109985435750660713158957797221205316050194076459863358269784455856555099274143133621627468305452454615487662124545785487599042342458224035898826533144166433425570219597739036252481195666329351429528261269720779569930989482064689873380990658682948443807372460887910706911700719614337805705308175145332612235396156264012437621325723146745557548711417007487763683029458068017334985113356964555641249540971453583791819199121168078423287299590394998156139094210445413256606249702581644086742529304232063377452030080687823243501595999422480437993134606021872823678297593978170639904814252783889975457362440450472410190124685226716905796850652255213339331507568562136560166921759223262563867217295308509763073928214013477055396646050369313465008635467787245648399098252150465711630542603323344779233671045291196639199567527992107939782276987974587002287151333638980209481871678414938176502809639030376004741143900609323509439516203772663284861711572939579923135704745203149021262310362716865007128877299291407408061282826722214727525868717531487874666032307481899666853643806879175241195229626314838210385294612386085209435895388283219111662795875105573065184735386831762957849403973163585451728568171154849880888977935490838879210124546024299192079183545847887287866834769858344736335350445989444054701455235789003507900137429499208153581228247449481967748844246896486915740514823181224913228440475105647875485544935121421431407089157418382958071263368806886514918877774926923413393467758213867392625661666762044834945320034761868485127660657823067240443007254638828136440451706561804339010148065827792444079668326231362806744254191006087765158652441150447937862311790153936096885951949293641116154591368798032878746729053436947970315852908109197820173516748901795641004849273344001629191844511781735819795691897049353262191437577129546123162639663181455807653867879051640458448316903411866358726966872376372252274439829928645349865037569491102774789261444518690347214096374925159089683831391045767204596386225444982014249676167089468520611151129071422327577239134349763910170397875957868749565806259487041816210040484069183915831610145307989939207276688868730122654509895481144886263053014366814814024710970542696519955456507706266093355502928027730266760290275803220564939489447990492514120156953152475048613959111065777824383594406698724001876752500003650081499072604694283071303837034477910398233956755561906839227604889026329898550976432881691909947256176490609037463165548123433123628297285667401368176592888401761117714486769935086369723538102284445543781531952663293471628000872228385375998425957126252914928393063260720337096872281846924573132795242698321733845054035057160404839559979768874661236762465237921418101282955931739396924722747928680576654324596843607611436686194678457702770900465538926797058383597410431937858963751581167302675480808284941392938760650359621909512779309349445575385197832779221137817368055427975712258467083111107441754378894130593208212011138648808659236706937719813053414696486193387715129720355424963421263858186655947140385133372429452765302977877111192007090101160193960052659691594498986183703874049164785766319923259086433198465676052022078047675358053125387642818384220126453679914308344731397360574362629646610887905203077182922023217049265321574360845545115796691406586109655077783596916003916563559026915410319783552500245387144746483198848422409120319806917638875395595026887705328682415491066583203156578553338251272168108877281553180581331903652680790977667090325206006304839775840811824975456416820984105431985822607550184058717650439539536976987718981030939438190682724526069274363166661371859475314049475008330353627714433310113355199976387381477693548730533496973170070263537261552838665568128339201225897652320027269292481285156297599044233862773389173481294030522641098134791231564100475708553333860155461471841345382595287072008096907438003172011326916845406492935054740449605465699400633015603020823885117292752774837137933488934821566964830093773733842199201826380650799583577717455267898835889828266824238409403952413924014880986866699404389473504261033488814749051243745228528712590381165373180289413948887511679017990487808712916765141129480129448960761016066648098544216900979301001227837972245160794982225439143132264746084228784275824202387619707202123289455766998095064514060883912067228466049660438518208269143330340096559518266205305983669199581511917499350154589583817711588968258453052021806739418226537316858893614957144476428022184553884860090170041673349039902989140931423537117442275601213201227342846874662936963785887272154600862572832954682310489245483306204517736441845225350096564381441249612397513696652033753083843708868443082495653633677942953470401056180607513778752231624704710539814046874587620287386607412182700385488171316210031061973030251120767271467267672071621047382856737638739746496055829757251981554020096126611704528807089531864534325227598250182879220458122644997433307128910540930682659567232369127748909087415649475598236835660256157742446443816039573335017183651449649243027202666966244378800558293887081427051313397244079472557032579271428066852073454761083023199262058527446114550686047838822313793547697354463293611647538483790657405230968998428640005266627603712221937579623747201047951868234194831991668047005537080588864059200125538278958759486759094886640029767675864728318062499674883477238309562133434279944948020706742043782334116736469403788988311897156141395808615990901043784738683778570224704488870528023972515980549530466739880158445829255767654336133350745346208425335613163568953425357242584095316811940875048882086602202627069826382297337916879181481581541598498939017134134939443323178131921872320743133438638300832623402025822495980694571395583198378310770130480539846118565364636235682871501542643194743468312788623097405361266497364634891203668102552623994972205739979897820144099898988103043818002839236109370947526615055005974516289510547457372469810025430222904782744701719080809837905230628647187817328833420244541909215710880024999486026698112986998423583789784333610241005283844892835563651162295769023533591263334874216764460804422070873737466216582380897944896446387536204679041839987955258412549103596034638237128918603127706297223525463849403094701405616973361622542174557339824658294242059420511372476703079802369806650468049091440426611411960057741722757966523107619793459231671979511090433202934266672371030302289219229475563249010068823382061216779418015361699192681153765509055262189654407515620439394595361130794349187084786506634205615473239730327689283505112289583384110653299817773826995655378885475673551625727290772428671089580336620950726377028422164661317286768272663994599041304806915972183612944055579327033728515024514124067078643868194780465619550809383730176022249080046562862847046232779409006331505918473214725597657593451463348013536825220801811059375469346395023968959452035791125356780811756706021043855810471365100707742024650062209882716963300781207505385956011914490953852141796747395263181539846537606903917871591439804519341177343600258446099261433581830100532287188116226656705006885708209626442833037677487886785474204327298973142530981878582516773291394095273862590402894979657382803376779548799860932378452459679479822068002589732535215969314476221991778122358153245497164642692620869893540928079420322066207673536239522403244244980729670449663459173120329323546240753477585183245623807913047586904702864886793925208020453379095156945341972519404829514473555001700463568296541883913523773068416392445563259942926390998406053656684032065503689399461085795305352877314099200888691264480223197407236811356894869585120592599033450971080395142933457797959263378028105400300893052356561628593286492029600279770344935689931447221550507321293499538298684411116294568322559036179875760787886091060419261592719037903744083686329816897934788927806552724615536604872242011739547895428677158029993123285985332810218574799839676721307679597634010357888479504254274257992561071698850238434942001700674226648853332173166738211102717087174958986216913256497899388597242006201338823437165710886004844035757604616426096457661004797739698158249433043047522147177348459919559609363247423149793018842444399420508291695520786586585914246225911375973838514636316448953866167959767681860999211822644060744670846456077530651807647401198641322284002074508139921764983037287146615905378435835067694486509874033858819847688674047179453924682835143129040329421308774001508117033632508625548577805047094165538107420629326900011589519815705157183295335608428078059743219802371187933300764018680768997781923545865237234675132203290944967479889755387045626467364745529397441620619419159849680111745726585901207639393127495159482729921537044730159015620434145171802561070248121987463005353120075132923712736922699617410016066324464302453124915906279242436248471155763962980738515309422539133764957808045006257001826254174583852721261036421154359118305140876239969021916026910478342384078068096803220810880442052487627903500949580369866097666463182741929624273130412317503513353524836391219806481756171560425329249322888359059769428482639589905903393981411329817723980781480713505673252682465521855373328083688973835751321534878192231934969495184591608076097500077608406473205700233324782663016947129039421797977213108507349831505182538096241878832752186878422822133861100171682069239742904516665696810351797355689167839827465276874292838278328251412477428460753251519532928798658675947259982142077473142684411931007684420482434356261626214027588245495539627697158725194134357668848271848519881465975699093665212821237021488921891897231045663987277265322507423239926527695614963021309596085861498440561347868149766825614796444132954436883416884162082772174923840670163487451555503453690225996228393980408455967549757543429415608309956649122716912118919624701441773152829781105796909980395318573316879193340679384994446770583891522859432180042922880863561697090922751474571391935828143275894201662576770239708156124826576942171471751552190219914950459269710554064944631908782960911615561508016561338034872631123617870884604987062904289911567859676199935543658168577160254006305330456627423516336651588415801696391318620286465189362760801740100593908687567488670582465843925046956574433506366233039645730952658146929530919020223094378221544338123440080094175707415380202786447439021086709654851480611168872373062223552780634953463908715702317305762471684335654913300306485860036561771094014818322522668773735457614884064353851992802963199859182096261749979248314461152524656829092143119186139584533400606307099980794220294676876022938902809197271275133245095685781490259844145561693972756737778962635714609629231162696059908633428239047172030107680700754084608135538853957957268577105062778181630143158128730873071556856896430457680559800489709464309886007042754964954118300589419054642891062893961532831856757484321324977973198841328696628267382240663599120456596924234642432754410004105708486675496422572475745852887607515228108671844898940260004405354547371278596386951535240598439894844054851748840798895700638667452420801473478521290619542597476160871803441064608749851773883979627096766974030339957405591705805702283493716402930492772012056510318419201029664930386665690193988087778688426782319681189360942392275869210823232718209250775855407081680354877127783534030774395579400863157809314637690423366211551779538529251739377221683648343979816939513504129092670792475584946817912990785339414629499731911923400967485777027016327714511655099118003467938259689809568406690863882636263539748548494802000023274513224756921824620260794169958691442221598130880368081785398183780088002705456027331957744735059747945342421859156218334504184638609717837865717998340072512233737074459638463624686262490658692243124325945631216484623818169112177994090454338703118176042604915299337223513803651500488928417936379487725222748389899762773092633007678579434392437547410586653242960117089856510824498786341701130411800038436152586927732121634396351496658787407597102362051750905762419688587159006440598547619890267764983372200244278885731349812326144183781461990852929436017044112745188868335747596065647803255805597022421043915532780257991954896155161497369626760860324546110570190056868993803551828236288576027549320918093706058172063047372500658239575022393963822703010735948988144045647257024973717622818200880902181380335243429442386248743536847871680181958196903720861442190917498597760272168045719838338457569560376503427830032521855883965894002187181301360743711245491373919170975160127130172727382442601831108858544787559436251026182402604823204560038202832157417596767407022671387967929619313344781939978651196641473314405276537679590298729669468091859814122249509165018632653980661363774321951924519894440814589840990764357176705166625935998694224975262874491036838350508016682325283510138090836644404653449424308693909727487938756976322662844932732367354624633465042030517339771010464637424807697323065215423256095849815701194470747584021091795426647727030721599199137102944304020161745767943901147369207740803588465686724021379515624611672163490714523870398427212037498346783546810115450113359065946226594547845156341410787057779720139416263438231498230041377730948363639551811584849866218324055751860452681421427160938732708324503475432591476288907474461874551983241461419045697891177067371089921274426861891174191999537621455756889187240655213032335709707260924748448693420911304118615638842976968469041270469582776081992478389799698751227121796672728490273427478748639431961627097481137950075247240669246065939825709125711302126681394695085583111549313348336929130217626487162158911497859263350159621812073184501231065999030170310060745325977132682648960993171932441777622093319577395375355492329176789126689663044947788695888916539982925536680772891835848760633503833680451614871521719366358699967651722735858516244817839620378238292348637157861098987054531655184452691023669612577808729937374797586858020892077526297527316525002385960577836937094313078517349126406120220249621860123898923590389126395635115922474629086843905582114439447309008644781154288041879202154420553598311608356931968427035972925221050417309921978026041536660715577450754575167231464565590598476134304038891979020530350087644669147682044752681711475501570423774688186733559266059409788700460218648669292130247998267837952303112559659104769431304383235735524641541246461651368698196682474503624201466259904708452081809965083658873006037572052063483519040042453300291017539356244943823419320077548861762059058545486983932461494501389941993996018065515519720650518235255878234673613318123879248938071987312475261481458964705293411071299173323427131344503994194246432668431029451378522693887677135874477507126739717498604329166367803499693046912443604999720391566242785133126113419833822621524998916099022605152304235453790602338288268553667452835199498927805720165153657596955674324361823361209515889626911694520427078571513358771149111187624479993125611995324460864129005709663111392399034686142462768765501161905986081131032844474772192916397874818311606145149586942264745300915104904853437284881128416785144068587976067014012860498208504243138975627492919580019753034896864334774966009131734422882804928860456021706148512421498880746442615530877352835664283303358943353798298473607484988560853910248378944448067388909160336123339151612072138615535402137588547362022491209434717614136658466600817467168017942427676855670932621987810888069420734095355488828944998425413036543957542236391272464276000246874242314572293024154763171074467917018114180836717189031658896661816918120647559937793038859868619940567977113901814709883726578109510430100301051823042037655503240276357850187894714844625316994855095044023423100029498247663427570706197797729431641122153636191188276305725851017092993656645028512487016009123602834068894034035380871140464374448714305935011216122219068864513411222895856879908145979788229973244374977893779202406883425269400348366159803941778349146964596369112401939988190753493896390699077194048065610134457955997906626862282193981063873459873369459317275338899969563284467710296196002120352194151402965287916272387903261066113080791811554063479771377562189351155914748824070983342761715736219209247595554981427377205680397398305553932743756173911059043288706456840123565171802676064538067673012147664639016282848656023606675436909401791196502862402710373154998870734760269187408678738077273352111734637224568377566173704030844643196696807660607225399480630370837241526534164139389278333799842398302219810849708513496771762667142591266504905768126152178286005116505666869305582010771285619363455992298845553912239173002945796355427107412556096631805440650428291979179918942898137600750489434364572883967555547970637523776838879463531806156936162672846368829114262035137189704474144093123804287158119498945505289183483261317798168194242697604067867404061006607246958219297422184367417467089915210087175158740943788011285337263436763396095366881393350316560392517605893482376016468636047876055012765573225206088522159681681569375854240049229217894879981069771514694458698158065528966347036798633562429689998941394893692079090376337179988089349204764222291793827681259827316529043104795131143339250907906914539298977782361199124823782571162214709577323878772605550766976982404779305054739737681407937131683346358696638574981456110576286638826988563855936058706960377327657665381686171454601227163844820333271023376552576730793444363993315868590337613902500386773271682498206583295319863302774164255972299793564678770932468841621015478808818697801828906329142244555359548804727701783171596664109530530134289742739398566957545173930872212383107065102308724230834380790186760343250653702242733679042248910489913800035744672961082173963388635131901230443083491518676826010280971637242530713764656677735710058628436940442704492245019241608949865835743444704189017626205454454427735814470928297784043296466512915795827309756989928788663724842837396416466886067770960512293613404643667870461897774691863039506200586208084678573218670586169911847383379774938163428754174756883283202871770302073349464351724712757760498181868845522039465548263354972767683260909571276284253978022087969754638034082238379623283315725989138687565454923303970893056017193673319153265582566471140976547134252424854055732351208915492378418547575230168052963583723226825879560107485250354627107628634832820350617166001790866619568319130969495086492642071199115584071138170358096143692066588845174956471704291953040206266902575367104648096118453722276572289172652591487425322588900798080508535507740532582535958200252632270379623423100604303378917824098323583460216198695321253866633687415048454738314167749600787237008119117344297302282219441939271643735968949822974306164571068329173304165333872852738715575379331855253866364156094389699557190761572850548947076075012787358557777161418494867553290044253177853912842621374784852366911031565714059038350884928207999822939133128598338169211225490993411983133128707002802287368663769366647058246695211825669886634736729712304915089278405367162553190842390394094066821340787039489404363633428873068366172491665645477863208663698127699038596223608380798363505505099236790251153967160314341882736926030676702400593571671926878420916848456194237808582872515656747674657558678321294328777795174148104260240490757899378930820297121831970546585413793961647778686275118334872120561721756167470623356913884883130701047350607479507092067104828855433024407145385015256075481587877055819107498200871250554543407993527044333963888856390066782937003019131184943826292920960463606714460708476319335451883040852010522183222269308716467180871884536499495529230327491503203790401955735410582953878198753265401995860869883229309685579946009086020988157777959881339107829017267629113007146725935041305426664605152692363993103465570794849369370619324630735138832735488810671971159157853563822167936958192132839820145108546533356958535754915373255714272938923441474614337516060154353929853226028216717498166698838727928214063111363815542170757773254901012203200001263874709932532518927366303826459491083004963778186656805519019116504396425938507173706567790233469823500973731032498564405922121268431768034272963678224148436542382856695914589986576444058281864511893268247897117776425783925251263360506649815171711812018404491863219042626697520387974046231615905815501889079926516727085057474321400272149608537096268391467222277345416397724584354608679000352552775550821916421546221305943458039275365284372520318820570411203866976978313561445948095097930448326894634731461604578543617410667798281183865839253422472302038845528287188490300793514145588301478894299572642568760467753550660102553969464407440378280451167069126440742196921886755489488967789396182614007548364965646036550082705682325228707256796239126571674676772318336025840516091190903949617812555300098090602013260668943098072535183403853035002663861869760814536683554221794307523779730310996385479800288931699565303681051553478476764660274960739768060115218179593987338310167152018076389210874188626154331416755150152054598361142808704012739593887563107391346725442132226071621442759323134129948503411423965431080389554143533849761374093603751662089260043263250938373561146421488555930836765283372586919629928637215780506560184925783654109561034140155427529498529567105189396716158090295452689523277910634103336545873423668133801523324133879118007914952282773771192665212708032096126633211678274041613640514220225811170332794294234611503793128043002522362730694646690640839348636659740696252741063041208324143128326821652777178118564295137644577573221823831751793454354297062062989643940307271244183556187455777661139134312081845849646636681112285338538140967328991395877721887811578715728416101675851222287044847306798463394391729321094360040931171720415378712098169059645489493375977361401973609357562924950468788396950867100669306409772725325333460634413301690448469511526227136278093094435169515210766103047244468155395978278051042046317237608309015565353689350228429598969282808959331982213061289633994203826213044871381846562480412973736986544872219792571585592900401583611440487531453919612149482564576217665528342553828347257842997326721699377591633640928058995095035150148376448134673533698191511386664057662085336453200815625047251077437945387308993644862325680301929111898127275744150777420059650249042942522725050976327921846588206563579781255505393695357036482548630306953842367562499636477255773106612087218558943973548970543813154956950797891723335774636148311584555663878480461379770992516693266959771205682682311628702214218537923957710958195530221356358248163675837302628005087596300765050355597392151405250061940213233095448393511509797435023109221109915465308101806436944662996495513617681279557272075129102854373451594195920736362004512169067254164006452814462684872773158930265414157223594075972737957560664006746260809397575431346166867332387796869554995555344888896075559728798390001014675184164278204554732371472397208493734475232147781273549129411202413284103684531122228712317070302457715678998428395260174300612690018059661385425127685804107865923826931539350096596809235514792058650652462729379171974540232919273212118706246538173246875485214848739146868342456823202766232774972195732022302301464803367516383877029223233358845239527498359761300547532387129939999952075848187789937173748173104796927991189408366412780543754750839935468421877875370636989993223116961585356289129130019141118613237417361242709823768285366231608260355305889787320228640075363725822662549514946450765035176550370281149976832023410954144793407354243800134375512014979686852022828189030335406414259321253895807472654764449447368083810737093976744306701300578401266879159784000923046937915967899942585437632813603262130726274480372259963267660686788237516204525179693193459935139806993172392549832152690912469227084644869509831584278921627503958891804346015197576922852391048160070368371958425579004021475080172056724735552454671192161680056029306306295871816488616708649681175527075067165296152512810981522979548862215145855148064580279009564287956966718220319413316869779947728453320351840266371304926478249580904386444326611513954685556987752645774658948378063352652909992947153451599298969064139834389823191264759431933277684361970972385305162826725437368044513104417115802710007820563047151766825273837062115376563059867243589572274749827381139857064645946046871432972608320978681666961144275508269898726950240956227412918801663017286074851716489688578799339900990931177127907221073608870523798995017094491503449960403766341981792159100514528280303563991036790433453321595363209996578303032528511612471728997060756613387808849394302758679280542843159159698841158491435362916085168852430568412591719367082171301045430434511659913334392488015917967046155617384022453849863828836389610671334107558383497311287867094272437243879827868329612312285023844299151208237502082183710656266075492240220861949791627147222934764008530379078677120677438558827917884574514881799586945322541403635291286571392027563942810996356446112700507702092226372610906976812017627922524138248439256496664788686403546176699478836819791563028440551519500524914244023494566427183579163265224282358874899133599830651929844492783315021898256286876797135256756486338568036081119410246010422827505893972608996355464168061038531367517533167304006937607589378267962811456197260110476433492162092293876955107271128585055090080150949995685858897784970149990734900992122332952713128515853650150910879874761049116832916908893183250214746534147072285911905735450026042081800285560527291362758381919980265923102070259766877711568839876460834425715899720109304493780266903226569589689850785806340057111177282422696235376643927158036701264478340073036540115822354070804347947360119199720365039738064701066555582927012313714436543515967772299703576945224299604085054633853561967246686619126042910056767142174753800613169249191716797690372246758000614358893536226985671993892828125017559395764055061675055504815886880376829742004006621293909198108307999830543320726218324397070478929065225320273417400999318138660841979396316246957069517222271369995079671910274640457942616041693961078228076531048206930724487865513426977438672805103740316966766028155939464795248844888540709168218651708192915653945450639272305299112618272604585643643377641086515737576942752266460353531190535560341965093787444699031724645155069222740348599346724334306826022256314640240413841526744823000293720739566565062782499631893123401457486352249778799108331142175214386922180016535283700876432606190370998086272005431480432848209554355684663804267589033911218376812190998068636263077512220046479097611893476557408654655767877334426825336250594702056191488480996948745857395311170034432927618423007154629864406066568593075040237968968065285699793191086723586846835977755590019363321961049067973207001412551183024325312647669318457500441611415951345033270350184635502974291551103178260934554733788046321099262884224664219944957048995049781791565949900411926786199481902551593625805955810129124934996323429560421474891772383581383248324630175394695046019119539764728623588008218931094645482684464685213301798447558804606272397898273010082548941664365263628251352410294604201779826838948010981546522482475157096161703851971507149505809543627245769296581811221953085308034327722014839829673745767021054468201051210117501638025034042798607001879534391253529143397180589820586726769338126555100323496731537900036387263189432442516799495976960861745046178741225176386633124348960147099935809991617245266946138572906555003444463950917544812864572102082017184494698550037910075732192039140652079105301966971874764339741224209044300466616298442426602071196632108327029185462852379286838286342096901123831571844129626584573829326419414331214680498162065793312794339732030347325151149569943808192648103260791384791272866007608111314715738017239375094466628024043466714749156078827955077284355826117420848721540210427612177553587586493190257074047562094263388843295538541222538366875522241484311797733171098624201089714406903071904508041800295855952951710633659069635703176468330669497620937412259983811949805662028756830911315956428597011443503963342371400373648602648425286382500326424039485220533179192022575965686234175757345904730830369583367868517257518284130380526486321831428560979581094919450060462352152273935511790102843130495536947229579771476169269188417472922234050783918565102402550365427153059335723676549543824416714170520761798027543278019473353470899426684034801754180384466341783224501962936399876625840291014815849624439860046791145118882926574259133840840963035424476864587765591525467662359959299513841771192423342995405052339456122215909465344922925214683584013840084008676714605876447768787038920735583909941361366811147305745199207881995218860800535997480828443925519702064172548015080378199980346543929518568274729390791743234067025437295977864207592638792684723935809020831159709026386410690052236595464602550701192281851496962684984876423240174181550028117207525776798676222190535504076526822154349795652404976578072461497904399109632126889501511631070906220023519269182235644908907826763939158159309382113460967467682001817392339031030480066120891346198721431668768698877996174540166095010522462810100562447526645306056814508281896425074400696665736804540335285263671737478924108150204544728698801673068696597070381188693192285958018108347609358121747313403859430716097087001277519977961097732834795191031341421297133065489200353074678076313428945073708244917078686696145183826317498560858169036415341291201472492963230047819796277138871474655651218636053517601504235116052742737231869748242467952871454440876255511297510525659604299259769150902133874928456890412474811551699869638333247883256904061452318260810092525272404241733551440189612828648487337913903871399843638228313563867533653791008584089744825929736896114154450137123380745312607421475902407515318701488165748949861516946588466537206786215265054307792709410554860746736707966621191164556873555853170285174134036469527723869710119356717435505196358755725571414827552638028250577671633517300100575304706063220411354193509115464147614547534501820384612704037225303621468106354766830788301126446966991374353143261992547134124916417941629360334420481518140015116220427971383186674554042046901294442237692499989623335064033926996500159858119014708806720189537471442121114666155228131231060684393756945327360876980694193790627818039755589179863667068714086603291673739760300326786388690919336111723723703467028034496259418383494195698988778911432727632904513513816667061797977017366898279433339352391054174860366893774915152832028717236632345617515395685395287495563117664845240305326694027781986037985456414510913289913512655183725412468934637274921837232590122492375237114541750357477021751270145358854849584350719135721082474198550077830059854084474196862872636012441045794085523378220240956025672795034265456386623747881328696194996920275807403377945688719799864193087373891825998199603193276518666372041232036430087574927351245210306287234728668817979395490514355079725863455779180983602605015682449203560395100108035200633315008788249711178644134125665209237787920572099123024528464050691953788204933940397158206494967026156480763803874773036735965191049314914689353541250182052541423303014409482540772660680402766957237144756554092441797916274643406999867310172447836095808762267005015437262118529544919222178032087179447530339993638052799878634873041669621451342288009716921184637775619890978796495700977568296613242071695552450284058728123424970368110541630203594327878262880345718960348543229920319468877539739417621737012375492166914540881406014791469954047812169513133475433995656258539738330302130823238277974402702793679910637436922189708606009822064188759458601826469860761759984175904025790713139625757745044686886898576177655979721212892912827800264301863548931446451495735419635203188431931850559510074633117842051751267793116963082171332087527859286950133739726296799512517838423476420787281723092443844638718439919566793756649734911174871319104822978394834846918581401053858182519732793615292245232578898061816391714956450214393838893501621919844115110016422504491033687262906922427945598132129872443725727882848879580395407323006155624770251490930436806547854213092840362827591697478977950483954802569329139124777047590289109437848829948905473862249461471242104246113191176115616559911204665959080400297518415628669900395534008659470207013102098518211062795816258593923945536677850921281395639462162637440293842933613161089132147213512588670000158644432150747557807436039895368283621093790983605364054343236063137153540228493221654989998983542288940952672302150687699838859982560496701489289984607922323621597716728827950841734140518629911848216929807587114021153419498859020634170606562991267688709694000672700862159169668770888863652519649358693727998698184175976132538870514534154021581215411298770400054196887216398547427791969380365745158080959404988219142838094957075422529064729846400570848260189641503841631361043222817112144087163643181283669008046985509868629818536456347203491993280835090930453322860417181391143983114358710535843532187674359633400981768594828929468562288806584579713850508379496990534052341428260223946389901643723207106359396044003777603791466256870170857007287685203713544834996338248141078656758859405276067398737175327397890483917492869280658916485408522021946342715124407315947316404896828060533448063772410832177115509259390908411031809898154036583139083169976379445859611575369065886959690750730524285989498998218217713352642730954296473218081032009832339103390090497174003358231425831903921767623809291360545153802105983691261805997944840830103515373055841896093924586325590794286867358762988442005275747972952833864491771160726700526435918285386248076002004652464420570665645273305699416611806370914176791984566436018446051876110759889342915866075364580725498394842762002049762930751114362836141589986058427442410628149341888026491520627767114130316602257010572709068768178864449719308507033157835400859341341837280826442317480556960027282959787406630479761885354159179059024250309887238522927091232010483132501945429351205205818700872923677637565023853631447061552433899046084610476677585610949322889906010226677862065984072069468850279850626214268950261743656400645206691024280648519843557673003279423781716583262377765602300900331400583783372212666565080349997662115799931067763881349116890943400302848577789797711452277478479502218356604433246814281254590369940827989039544956921304217811276317074979414442079116430571738081833654643586551956044857308426995809808569696438339029582400791901901095850262983257125795663457876188305633149291254479649006746834736397340600143049066694610693501307582462093979293567074464349940282065445425352816847525023478162652319185357479600252869575205193489878366948263611964199627705386642703378028019477803200441539838592575535347169679185235573205820810466453025551776558220642734938201300070981876686211432933462634055316907164740383194611913532438579163786984403451523597110790072982251979713291333976484927496950895396789748206530418979990682857246353156408640459962199958122546715310786671642591490517968020283495168825658231396737913188036170332900029602407285567277928255319262897306352548694739027887925454977431318562726366389739293336700074407072285231719297965942750665230923886293929343859716101899173043730346866968177521784848793900393397728030950815722673535414953078472266036800599287581807404427819026220251214482328019960071350101797956318457883062986216528069409700304880314189163377607359715392135290673255301594578218802793677905253608264633350646314910936575284368275267208070099363811792522259114626606260633731463212740294994410667452379285428304323066277093122178626399077215034231114130087039112036201208232427719434929721113106494359438775958832139243678882418224320548081122360134891795354507542835656745688772277157959951339422394372398949160216886771534851818198573975529495908452636116709241869175282363395511390208951420819315438920237541536145268837278821982167011910327985288774978575643682010423460062461069888340823896009036903409565186096757102450088900693389506586311169264919552178781092744658274962927367383248397588220986665083213746826162513154459925328564895744055438968194244464599094531730841772801079546324858362495961250594988854067955465267597981438991494689210519785181466883996503538618213809070467299913284682422562193660453091119108487996468706233496697702093431346188041200803150103740924862088115783057330601157933361097546067785797807174703869138746404849990039309461429130375990995708990509926355512318431013715092600921692892710845881471179482594862175623904621754678012806835874070179901901180968849387907340652653748462213214875984612499040482787850448946093842018715329904755161763334267403985991092592033482664496290094556101110820352242668493512820284810113982662491993741928712012143413679349316554679414117850763051926357056472267749798638347746024855801921102230219407408389673243701891490871490931425909234868419273248850696499117604787597197311595207878033011491908646165460460730289240418065374363335904663236154565145190470436397209057479240587870488548122912735485583544956223476492427936728507507468699583041455203585858581101086072219494359640457282463625324433263924527958358522943628228299708927808932156820410522032933807864584168124195422936680114738538081330792734164663080548862715000496805204722809869144148880148514842681240799891522556949649873325651890975860121236719428365525827402551087218397237731482841759954391231070632244817288550846387472235798767756106950922616157040387407629574978519851864421906684283924481953010209892025130317524658102930482527486246726248591060106364766941688520419493325911713603186609374087937301715823104524878674289848627627547215664960519717470216020240110603826830356164802575577910279567392506134325117247119862889765609219134067056360957940024025523262342771362658807358004236027458703044898627895689942486405471607260154320142833362599860342770288946965172533260348165132585034954899453371161535032629807256864956138866453159000392161373522165253615758642732997628174413525861197298008023683454064092743540188180457713674900406698301011689386516437721820399416520459068133158379959531493001353132409325197856278423718652553140826070107078774121093858368374475432352015809540864505150124867864608741175623986373501947645361349990921534397732757615267514773070339078542572706795909317963485076347776461188184404941515793440836200393703262201325981281501949469930427103603809443865110646721430078353028422774363929070559378257471843979365999562238807506342585791050828183644233665617038234301938523068639909458713694140115416525147553587500784851986788866960221184174858794653591996717099261853610682913428500126790950129708912985009820689566206184651864631650071600212708231709974327886426324632578326425757893602364020645101807095706584179695383393821318904213627981844804346261967984495308912575833940855892034359892362391988937458102168606193294995917371571309557371248466232995940768907656288119819180848347779893943298238340285700951382310984891017350834495893663393930285145367233597077945221444100125680653822421669016220163454345727741038368475649952139139753193162509889669813844025178877692224661444379099948880353921972257850123508441638383266835601745853359753767957874430638406697661663033976527377718987965241568561729662760657378486295109637947376557396105921085128590313054415895684807627473174558777451149837256087287124393513537927373622326408038498268278625591773965549657444090479264570994821893790099634721014929432442032331444837133483657944888051406109850962987710239068333096642859254415396765318490055418200546950625934677634727096682965616524277809645054715514086204715174566046983439010346681645910918568617708640247170286329210414321612469911633840144915517376313802290980455595095670867498172753251476949527623166396107902181591048690610429907535709619749175709026736816135295544205878471599896998654022235211552092947079141045868042143804911811192164104058162902981843119033021718736769502511878789978473610591404844134785897798060332960144182027031493366996240064031342805118596509826333778455071994148954146356730466887148908292498597806801995666005376285619641562934424924616752710958354338102648378254227172925869138414021259479900772255145089679589328088163115948682837631651610226514917722108764713576254284453000076327483287009991479229705866194964598061703157817406020976305116845628646226836230705412406533687724574037733722350002233215680298175216899759654958417499390138782930418665789733186187804897305660849468475590490524666353852091162977037094651800046477742798853823349978632491156515595737511171437378859899349664983489781037715867681011267364907596545474115276922486841413968811796173870596221310567187187276218699113161155397908825461361774192254666835247525112500164457726642056238477185596047152376941610000782916358138655904473851032915589726841577186099157257928697808131105062901783758501758487403630541549369587259169387347274086653163525552055692264942573000613565676098113180135394112137246283694492845330878971350523568278068598496964893999126028122161380644272708882549730380125753294500248823776040479242478089802933821336826566941723940408423395761121565659511520683394055382312671775021015127381129261619716672145039981869685019508812022559938542439754864020054180505970515787705190306770056495912501663109684784672417048866745847218397497926676719752419422131051452265617380235267003986242703461517866569657085290956073084035178297446591286865797422219651893004071476095481808997672628534656920860933193525027405752992745092330690440631420244616039293616014566834581012424729611297108702889890998429918651066459707819206141331000103411766741473168780298073293841358794040202104235192687198222476837512515898102309997018706831653252070099635594891898419640591583782994402045331192474937087272191458257997001658538292041455027143126703630336360458830390735837516866764998465034218893143695395657745430306405188648656693588667427925744897017144207995939685294752012115122902292232406284362048559983894192944015595877019725158367640632032980305464601466876910521327969143807303757126345838688630653260038020776651908090470101398906786894164226314307729035592532023235687536591976943099611763458620207884939445812742608494377008252842570431012178910090962856027465078208133179352641565209781801276988268434097808816730373065680693768674450613770764389202471812873561635704797352208514313220030406125599772974683568262451125599710666547442240308964154815991757200454940335814520858232247811607321128469756196413418001994444919390997180097247100032678762833404555586634361931310363597493047434126729490634525943317222647102716361735622861127610692971131775064377749345982438668715452989690249898212698623149812951158196736606825714819896512024988396744069010269278905552328681983256855573964606879799605975121060768074106729834384635160099408843086685568787219182520018640834361016522744994628515388963062762328021356623048166183934238787320745502660342883521500669551821741124638142342991022436104060443730756698435454170118609798919534987680560148885801548801275696726908861564598653651377318445435318226951589383421063983364400701275146928197166972961694310878033460095927891833659158063008625031688545942315851272314446795383549733045424511183282435935134176303595283156760891772088309786569462920062270815345429699325417999833087988027050782551090080404299178769289451713819182003909153666883783001263094529804965315737427475803107315832092734021829196691216615967177689121540305138368530222927855641662151584648332577782080363662535854603907501041226538613429928830312391069103371579873525017028643848169057220013763393081594978639166688283411676173047998353461048356804675435704052937971374986643619345671318287746456811102258675964935543314049211693215281650946479822425050077368199328350228686606437728687051073344237205783512765920557283163638234728793607685948020257186661297049740043682394730035828750370550713769699682384573096135459634340130706472606063594372133066257587478797055332880163623241734316253338954909715756847344305647693678287399201456750972571205356765351808471482166534806617348218993544438289104891905873219118231350902956433609450627209075672185643329403019880035404309839687242718952414702133417692010149080469299661196821835908733165005847989409707382924267602861206592949706441640442157539039940853034121503274913583393907474440216677719619666481921259032185971322187170076582960669225821628702560116830506425853961119925867084219585568947239794365788648769060902157885104842179837367974761081537785335700532880401657935421823826009615082211881204505718278680380107822512825594879411226702156179123058371827504350750349331714848706341945274075593695526065115278514584155408666769785436357517579985661681003334713397453937554375677026930720216395132787583450625287027681355663486292496973970025235363390474499857565045075401223513172661124621564144722260373715406144667196138629875678496715040570241812226994590414673696603911031462678414037654340761485144040981324866301052553202049821794590074545407929225750040907990695924068489050899058938485265529812966716592040383609528832598669340156909513670472133066836020620673169592302564506304677722744182198754978700165766668411973537848960992662566293492705539351924814459136968510326844209639724554214098545486748383756165835402219971313764214424974322788182553698355651700960552204274249132174828866835964460062607773272679842220396066618302265450462773491277383947962589927574879920616910618295649817622542622884758647977298481756282209471008744678735561989765003016855218900127157648571994822325997525906665813052860557120066940442994013068375518743816793282826378344490921289669337200391291137064561869145627596495033116757365874615825960700654531499803852898611370283518712797383344134555876107706086806733982082662750267266329029449602877903851576670274289089268768718121493654721201944909762674186074811222776561176014611702225192163595338124319925777041630497913359042583599498879702792116752534325495559665517383702645887598398866381037834731852595137747852175750726002708923678731465513283881352348901376528886591527389742162590043453900416127055932614132806153887834047135822999586482071991391525592634918910349903132263656748896178471227478161082543732369152810319658107949039464754162249208323853410209910250020908692979339606037011199480531353534683581302824977799235795183993327899782357891466463900893051030971373401494111818047812968283063804463212060452589402781389688708742684486397534730659651719870867385191718642092535234358052664970018434811155104589417556788939698042284418233858892794651217722946850668464466705306339955533599315151807355527720530552791712005953392869285646603764860165699174565257493900529577483177841399806343244498974894833200113801794272168756412989044272220222685801915301166561417967983915683883522286962094932015838432505920108910166352833681285285809405482706977146407368267849899051077873611709295219216666474192857442868741720449857888136258599599842397211834593902563804130046925365474399964228727723674442115428183706649006337162247445366589124885897976732661515381555033084635145317195871161400287565136830153734563810810114176780240753758500406211733562785391459102622357897444912912698055351494888454567835536494326524722648205648430654674625066779606291443839727886679002589312421920935574692540337140037563136126033862090941237495444855371231373809622561189290886435882842038054134089715679610162973240181682291581686389823637199944824147502222610305799960562378489839539495799152013128597639095188468990482237001855092561852475948077573236686902671675361666393250944372230235463649672242647729295325399491752528355688741465787559562972472477182341739701453514330160463402021913981919392937819831316769093936090836437321353515914520819762858973901677877327624744545356789008247048074626431312246194836692862100512766764478033009405806142605207603701379069153770319472190824477071115053940257466140392336708455200541895460183232954898263389248781067723221941824653119689146256807069457102751135686285201901005710216435149828911107308248833895687306035556856818123001828093759776205802294705905568720737542329848019659422167684338107275702896475349377002811078052412610223124587538198868807675458317017854250443520642324443318702073539351161799756249813577400604458830237912350379012793686944434279152959187676344922907949833462064828376233560033220282425601962701863804643527029481404534678126047892440097368468153409154508108362886042399841408471923328060223497536534014225492770620516572311120700248717487276945243734138628780524800123664837270329967698494148359235955499930108853738984323784074857580074255542137148648257654712912957643365989733330103784769443089158410923599944439262111863221736344940025005194821201873237473033966273302027249751721806257137595126454306272783798606865532501364295302817418436095962508923901709268133456992130896554935172994800300215568716069342164270750152656729451489380422405858847320308893183315997439520135986808764458340693579018019101732703121582427292843859281066112283488611675029317781974683415379362777642861051448223116734825711686473143518939623756923048615592719657929634403662291378843946683511180628500081826842656836272912455233153677737738630123268096443572285178671210992100966977393559656153372586185207288162812308705888505954108334774853844076418484312283270895558323821500269670646020308729147249680184488293810495078320007874802883634521203741749353395172518788843444278670217319959413842053270845954346692751991376119395878481048393034072112079604123734152764541036688922400858048398790092879751070896037744410320285694835175847374505669530726841537650587191966603663832723242785785912945073022117917830629551988687875186814959247082816410711390246969632526706402087985465198750221217456601989092328850746633240845359969089046131048256973073734726173309703654864549236592607738947069755039560091817958084165782538586346058714257845288748400118162403199648740077034080272040506272014436427855774263617706074668286908189225098570752275724525933562330684730788534555063310907769048115676314177451143765659844081804064362576089345181351653211369737815256328019345230702754667441474790350581603734514772235611792965178457001478149300263594009911082084064210194408396018218770565990003414701473618558551266021903268329473056487784577603679191364624892372175481560187584203128154382579591610117774379142774318269925339739216709961489297207795949784893460843992964922706604139353910547014069044744347538327208353281558668065483922093340932689593608689131324001104913509854405764562721538811462952294936064018935243311317146231189891184520306837095375937548690019298897038965112260269392435823036675443907717150220474890717471591862243736525619661183057918674381652902139350047662402524064291297748283048937257789571018154639407145700521909858140930608396829591576421492620139507355177253455820364357986926184826972635656011136373053768378272193423954294496106447577021562477379662591776521287034645810574163406852805549885007278783795335585830887727978224210801463063163979702318505957048132041268415636429649254027996308799052599016493191818177677901131243168334921037062171900463586668704619621643759545082723577493640477380708889916553598211551150738835177054465397747434980677967296191517770771844402058841291516571602025620376776721931807200721317159427361125159133258471448068875292660077659256084251505266162007862094871058852315710126368454592678167445020004975669661069376358395977950897375807401868478560877879329481594294190497718714010302419401220391434002219197843575038348287468755546110263129633669424303747060922400084711287964662307955776715911244630591154816886949737668730906204016974595626808997736055477151464914769926600071675033161884629884604270107484221459497299854048790125012107408142345880485006292946791708938545795596581344879017192722283136800692359902600388489799644769513740134869859841346657405359768690644069130027733268847121875183611944238448415863042195030563138202532243067865661554865509955205743706099887181592674005529705880425078761057774425401232067647511735309439238724388565980293160740359323678788616793164119176129174295865747411320990609017657655890549822435703557726584475828775433415494159316842206917565616760251703574196864612545600667812227802241580346372533231742712898824532649709318693144293908530424133739524998378703587414890044475903930054030795110269228241500864362619033217959071318834669529204445603362906541562025315684515490577456832232035277131385216455126199222297088028903878813719401499551759657424732241571170000930692808559014096471200779516168718273161563354630728038734593366910817191503147321370677482021792246381447442621659327740908727269698773657788927742317892335290507193687317483357573305808065686054927744737748659989550808498736067840419085172279010587836406059142347329525382955629783889474215673582749523290588715749920416578062453421020626396038399806718847199995009572764267701416478059116394732874907490551056263890182445177488113881287521734133445908156654848292546862618591300737252163280274336362719573605464373117868398669214875649793868617296922148094443342810127210258804745563928129325174785632017108431705538381870006992611502378247627002074128208795066704536439199644179520035393144786453119135129032903164560488137125877630450586770719992649814798666124649265078077165821312927291220887476690935398228604770537204560015438192539308276840726708595419017737443228572780927069741490444907740806003223104568657665396893527205431213731646306862731081216820189933952260863741813301487134331868856719921358238755205886436078933003473066682234978840870320250615115160515809264258058094109177349471102417344671193498392014065875636528406773594579234165120444656853087898754797047046625259874754487080550732776956228271957456496834482230085754949236258092564769598075013221083772303991629676514827373733409868647353466025972667195565528094516666231152285076090529366498145154575377683580648092505331105925311778866655243881330503426971612973951891220738039178194107798093316744766124585296726783226402551867181805637396743208799605924083507739442945783487146427812122690192778596151300907392281749624287165873800813584195839940267823925895155024312309585547800616563684365515576670422799695772281458145269757048221364126989699755314325717821020847080888765611168180602181448532423517504246908264605738007387819028180564190615286452341049603356334091474548924268474520987090083163848293627662924125439220116054588491982426933428141724533461727133231676064503825965176785224327645014319316058316282249231961454795182849202736869237125553862420815031015305972910029912338723359456163201155293863238997596653325617701179749536671068719779253428306218621680578687154142876188887616708848158165049592806048212799031588699061521851690405659085631875907234453232943153256194432473214172240576438934461984997431704186609270183539183480341640474426770678063405823440859251099774296070221852004813182223454770473214940150562897458421214345416849832206670325404867896230352223969167923357033301194106885081438960255438845298315816588819107510724299556143552838667901952235821307951925198531514231659503832044897266067523101567216809053464245092652265390047311337787800520541672847119737175329025399566263359316482474292560562825198191218632829057119018031082342603134460960545702278618714103415460248451181900297179086638276629978985500461499789109596755829832080899233222607687803652486826175929015596958574192651343468293821476755356849030575803203645327030724107087954258830721899941292702620794644789867805958796623450555491394291699301963583823065747350616013773023346568003736209052465015105130464122111327279697885403664769862155536038873905443933191762052208236757272026938622698385208639593898965288556119724143468457820471734624429735884862875642609636155534387058818671816126373178447975880740613987585781616791267555560491704368892164022959128511127984464079293522989963442492123171663271719132827022403829935826657751159893315535336733362016984965265211492240489919382923679543214923978523630378592935748087947168945408654962078712930043446594968626071087611064036562716307079568492618142355345556123985430836529912622063027955656395645691147884817407615065439210295482898882598292567565381011636233622090709663139323890006844573279922302696839267028953735927290816160545176009275693782273990051983901312809077390041015077355436379614275863702572639747059987500957786436984311199471387785529399062111670348185736048789993616018972546347747866818102220054787018283439637363517242528659049531987509500547682197099521351980831849312672443806848123417121969925663055266616755541582948774640560806962446334075967487102774722480626258653013489199964307708898589472378671953133420860544523247322438647770854748929398448463503763323067178363276142240824923439833034418050209809439303562343054657273481225475739291252841632150999889442509789372335064353428611355761929346836590710658792434312424172262328074691360276079781433869671047091353204888108970249112283381668589667984760474028711746852253107542157193329006994930181980606610333134841087386135752718161605004996606949007685004734049552800809076593377950847583195253794370192667682752390901880996272260429738940032387155086571999016175036009750080749279355351430710783607612265362575099862262333346394478543360735797458057168998120022309490555852363654098617758384817877034950559884815267386688920314723935722598408498069748515887692752451284250470881664973878661859786467378110263766076502783559450357270700662233709505353160876707592384170173672030161440155096041361061156826110243484006517710200870097640549574910085984333747107769363359660385483054256489265024240445947479270483186018931126930121026022152612218463350324174089986578847634521518126724550830925210145548326202927306714430204945262215140040374978821117981242090700122698180831710558636600402992732286983048718743973476079838351671612957723724085286445357917171087215876373764188002642214900057979234593731047510812863081764267726417916396387218251887620855731882702443437308430916774646989185342285726607918315738677754155696177976272471531695282548379460668984960515120565538792598638722165524474706096383297590607522440038584048190233131134963111861822079091618784870773442721935117931577081384219170866348547032016602935626115261416390759911771914411378793380856373399555184914714993455858692138537218161903145456418221562261453283518434540489246889676055475361465620507697575125442036523253812818082983680630705324176214594943476376726948755032488669358553438550944755106919882355364384188856102077547184739054607663635806899593376632793470187121308461116342999438393738247657749773790208366376765360659952609041331025530513182680575029359677419760122019168501422678336948135667303196380290505375419539187378337437184689438708065442030250057751149559726485198786141094091300074431957085153622563061873368689742727431403881425770464911069094894627609054400493933052414599049150107170240013235827953493899836853699829917140398745766440094228375958052686265099169600992333333956684840415662450779064454358862027754109356194418367278504109720773313787128367046222338999170206034379604577926325720710773527547893787386567785948111211745434238529257990902812856953800041108293529610951915521550297086360098262892235664940070000866184836562171669046877270482912218142042645398413877089506550838918193346247375624337009506680074891219110661967048012618503807941803968430125891208062711375671826795616472515994753095393044764491799060233531974406068701119272127187743675635314754420351173508033145290371927936819228602857841056103926421772693430429910871972272154748810188332862764448719830241058525337837939424131269647079564430192642154104812438729696091406279518084851369780543264727296800275808506839341850103879314705464043493195169845506988915426763894029709508125334870485895696063787556857000805282975821677852003285990441863774108662673974487805827107449950504655621496386755016066580623366761341105954871682705494476826512862210652798887369170624230632149616965523782293737172366513531829432796001654948469466704552742254454729846998367202853469869192174719208690412496594914612524448338416034399515549563444350477346407122585697789587036405867222407783030330617365872952106715983869743246245714717706842155528895684971626136033650328150515356576083256023839025065374601168832183838525156791309641166529041594139731737474347569353089633782911122012211940662853383286159918284579821488193634957375159346390128294799831616623838689396680260242965699787860824373173109170737755448317590092829061516687892779729608649451939234098789737273634971159644208964953445816387980205652637891536894888689539744339699658185627915540304468119796436703778845155158055978732369025471392510059311729201357095625628890389741193389566277676656486793852107302214720450727044508409439593155753629159599004305265630607315577130901597554336257932108287765373133343780998361130333925435975235630252434295735081521114400585800110947866971634045560397635497727034550194591312623398269350828983474184752847407965267075009817060465085740393228227449565173134871919907069817485148621254511624813157399904682335537940506663919007656620959010031173982382071180229589368080575203679239928976012298845065502760080670490429087038498516962894404232648823727579902980558382344269953506610556608449564803513569533385939527874083488858426002944857596724266789358006020374364062883284438791548769308352981194216017775821790315468499859197863989378224158335511361698465555243124266767094025001827941305003630879534063104622661843933337254903163066101590973335270084245177781642333117657002957276459895251946413511385437046001794249857013267966849181690245025489674655904292197712689496535291326762098725923770503288246813583603304669005481444036268204221385771371383721006034728734983566478928387855479805802259135610513845441366814395915537427752522270642644283459340905202944956674940643390664416930940968702654929406156447242694321025850408316879326109661480586724001395695254783181717397995083829711518734454461749528488610157774841085200190080428141576349068193405972275926449528171430681945459031558139550626063617606051696254251640555224628598301995608150343553360146982820771226074859723381952147279689035898726773516977761136482434854743743375043929133837243228840740311529064244743103273225530927923874032448861823632042707090000004263433422307153956706581049993601051511925526082871370949802176722149152468463246416691210197980291225164961128132272482607022099169325970582961892575878392870269646340786764156379115660149359327666800372996479135802050242844506596068808886953283859037631530317026837778256396958639274497180253652530501016911593234293193432834235773034108516251736800803990230475501827257419880325513511299120763135213290760365723304278063482274176152063442590866571027123246039525093504918285966159439558973721455874285409082988199988976456446316398095435725800594837749523219457067300214786077954745846387082794031339547111954681428733355670431935671247536493980486713155553717175742552593144741022740942064102857551668244592624184351129823085824957234019510853120365820431812662991426317665645974976637140702913234990224708406623953170966264645579271777924205348544178059973613596350955851713821801222175976038853209958071511802930351115857201489557056128074653116581400870468706540130485782495935540171464187046572689245555343700456020624320676771080107802128468632105811282937048350566276526748802171981088885374150836099461551418398877684188645168506317529523329918683008844325986817923326908468417731650753058893312559999892164420866778629929804456524290248378342372096440537968597140029055584806437910081300606535007422046925631315137879368352017044111144264722407819551489247791886259413791488315951335681184332173199563650634995104213817000252209895967726795333793254105673957194298960359254817921923261974499679914092381910864266217945988208839577357851087320844441331289712418760725064363382315114290459306724413619220385301914753241689746138363797327804506049179883891332752636277991647808317576473953743392764308475290292582567937146520771561105288712033615871650305674934156642916863454721361016443407297746585540451994833093472305260170617866842428015690277402366069072458583372002489073165701190624854678898040012771873244512402710649375166246272215174017068457263013302417573147806060590204834915431347860156176092423810653471073038692572421197262660543389093503316468249924895658269274286439465943332304669664246793336692815734352048506986372941698801805567743492550413086418772099736456558964144873130914267524389532453733389738761784486950822462336133479138354037858601504274306388939999705281108800386611823158212195633154564808281933739175274566072367874899087371839529883485613141478566027225787964284231636336010465091067030619941202034308538920532703443466255247262201070829005400213054650923675070801834570007107628304584745437097237884031270290228346340283187383712437162836804221044097794009893904113995644010011448054537191037848917937717865381315390429745164690012323427297476199772972824463431536409057667210794545448121178478761447482949083370933165002970260370606468211930643652477273923219244707076835816808652883932520932631635951537132836283892804513321920469080322759748959575537662812377446653088417884709600886414824889817976105671549058094571199700203685664295677353911545292223326464480902637092160341753850781161529972679813754134649024663109833321125694221603479619197773733211115287118764166250759532071076695255704868958963951095810505853741107293023874171134326590004557127614192515971850998775712057240552995527012720837531327048713455884789252296467322361577548004840422333128246448019141796156068766297677992990779043105752196053126057450597721242750844990524383021238836149263789821428259986376944829352079425966232392092825928172141301583855565023337631736444045994406821873116016589198603898121917454538450595598378697322406692408161562811741611521368971519268214252973277872393991913931113685541697594624810056046566292725477410853044372446492628026450106151554655496686746129980872866795808336768486682667064331969514801482428843034599199651016056275021348990784410105851296741691220796098679109133744507632986087917979531928210324213024580046178581335806156892045713194835797613464676827799110485876357304074979894060642352610354058675103052273643671461228795481878943182347149113050307197804726019429528225901787313506535079769437513578711661625732658890006382498701413269691664784966586906592382048668152058590848757298065173572918638728121946283461740274309516774889317229862739786776985720955097481729317960032351604555446700292115611687222385030909901356998898818095326426113880536170587261043484948383989366641867231486723862137583516792560358633113029371409438010226836327375734753356673489893191524577848511403207274930779583843569214318385556233971489300102107554839147173586297978428659081010273438764214273014228417978569084773010663299670968006906255600221201248495247964715905483039201807449824748646898944320813064496739021919186254140870667837523631295282441584374408611998849939499831295813966721198568764976583424310778672374706017655938849452552372172891797378978406089325183028939009332064947479648540211766995550210001434027131696027121063762544862648312642984345090551204911271570518281533440368605092511431527206834672549373622357946333879723962573094072440329066679179070178777541788801481289079384144031855837785130489086584933072573095444502657094871875708505237737711558682250340384605959280002287009388911659011567763891993294909259923632669895851628143634724960497568563145091920749104311171404049507682597964377276754578804072901036332118577476545400738884936576552714449790128125264418961137990221145531237570437480522978050032550151088285261509676154799224468813811242509967001039231884416831553425440481234413085554361822086737906806358849128821207706594492210275215846035541018972588732336912379085682547508175395830869386277240167311725601157560515837411121333095053860857585030296643008671733760561087426180333532042827859693817686372110291764506357615950054306298025422855236460870759069519762808760660574608190877558285699580712159225823300364873529690056772873492543930985004728933105877696825724822581571463889749231399449708828549732073548136906051124689445408091262561882751114531713371584418462477443867065738244773541735981773159270872858043179706295686973480916409931896461340618304660544908952614825785467076680113201496037758822076685867923385913834011020776028949977437017161411462193591788609048883289408316329587005616613840129622897810789056947240808468539438657506306109310849250557273861195176733139644349993948510485661510142754217911921497078905657837450165317974589034169022163967448458221265797184014420806092473636190439521650144259981652124632215609380472700075147953958948305305583311772654151777545298596151322207657536351953349627527805857876649332891087104851183335690712396675051032442473485179550321159231498040929637045736003575853641647038270892748799057321621649557545933285701410160917163878950265958330134716371801368328301207383999686747756170945626772850792762920652019472946224679802492877358781949144458952814505393404768578863015562926999306284016646092402195674704583053392880665151274683433588154356221246520474697982039022215096242067380516381965770034907094909121144799018445117322583421384370169494501153749987605462719912240987212703642542038491487047503754187279991251048955414384290324131669430041008375456614258044893641862714339898174124414555051870323840238469797248105017450772256538902244703640547314742996077160433920170095148298871435376454210299816365451625546308357085007928304040487315525285734521237107911949635369787341037034131354138811536867774469730955913012054764400217965910708961396258094525872827198419089139280460214933986856323566300075276137654158623960915690974672605502370268293023147995440981629557236521153299197730391051632364952437733357753989361161114448497846112324194479260947581972949078409954699484995792033414642117594194958641744196921278142819010825360448110965592437136410423231478580080856648290697390167138732564084630015293916038894407065130691787645688342134216738584313220318888826528399678878055652111723132300524099876883699741723333057311614545947844259221244998612045694946733148813951023487176432605319007545091934126134284942518952919108641857535812705706094664328619595268648266484196442226082122236998313859476339025825804123914618363704123588520971871786053521622064940224901778061774108181269560207782385845887083610176193689462793131413797984786072481535630727734702723387991774318909372224552019051439645725207632864861988228968687001866304180052831455946828554231580231750885837041678342578317001902338650000764858968745147217358227216476150665101087500124949128062289412419519266810136693641904736694390236686135591178671835637387913246952659502259921342238695537765502426633071749052794871701781746530125856372039121155565253027304865143109785073517547083009222924923434359383556937454537786378537909888105695486280824666829011453851888072240112708227818260933326768396696707389821344822674172861574786210864177672626850555252047331885501668698584494221366729562107780992854386108157825273413452468951488205415348940402898828280195401226804655955843326925897804854141726939088206169363005670789203582744998838531245744184977453848572953493336775186996034635184950645186837373235245024919398944517681070496161042612137444867650788915587379099318314649420926204436895548155539217352298996183140541113457403896730148952880077736839840372162848849606371361563666533186437343152097705604411070551916884102652851177158564792164068880763387926376222934049960283846406159296922529828942327493868351938216425524247126150786322451587210794654345920749070964633171935532867617563397014260476910712252811490327397648282576135717724518940365613171573223438411622097678768393350405686504529998501369997185729220767306392692311164272097893828442417265488197572885496279832434607014269249393208157865290263967063874199378856078242773315775508369982104925835801069010631261681828501384509506774127497142797248947019746661545047615178136017812283013786817229065510992559825924748551715686581533447575129868358143671041278139624579324040280702635559125960871426752680559136408108752470958451755287131539550906690732095063389827341357821150587904653502865688762027050682532193416808728119767655917396178694581778657869324292858167668513760374700997867093543428782816286637801249849334653355627960893015517657030931554895220891032759497319087395020241070536737502150415009207540802372155256913689561699637119094587640864726493368641240184288244208111464383738774059872019357027824006165370671212161155283648120116198769081461039420791699631621536744451084243195224307713587737961145302770901305983083599031932071691931374417917952422391897293988179944775342244075807373179189587247649268718578187496702917722533938986308561480007391442192354400140097163843561279375516573719467358787817276862065689092302719351578044161777231936417778969940956442541818384313421954517788514966907639226770229940384199506163042358551355413467698323175339790449446377289360305850137458992954494181925543145018822976655721404060399444228241618152803177937223190809202232804322431782108686769929866383592233113882208873093866565011841158650473224987018183108501254355468284244635786367484347199918290912543404660185381360826863872954687010739835648673739701135963924757443469503541121725104390081614561740610375381051253360774239178785462226647435998331015251329334893447953165705226190879778915053660644944582575109325069916233740941266887722294284160988224568990965648422668872563003402117426882411016597449746427406892711091491385828081772467953036457382594312977285486538447253399350173330026912832077838495724904595871013139070505823104684630439938978754327216735171866397723325401068552793906398341323225353254752417061796396207265707761164741215459629736954990308236611689456576903502640336444698857108915348183887230613710907009766839289929116282850881732018215005289747581622588765758148611538332074993830185762970116362461365309518659862863606625385052135338376281609999119214306122555774225421752905001465364405845995441171839932469108385348866687527766453349006191576922983161687092027207038599976000688743958548326834317063922831199069310185660710486810744399525260303261679105017183651120459268233279353772431527536341552086244833789390830543168567442720923661053606420957393019687128996506157281218906690739359263426579485021853565416513907246856973533139756310563857388741023619793032803385149658121449765793474650427191541495165718650036300929732849752228996570043117795210948832789492744478671840367533158109458726490857679973080001488664248427202368924477168644818749215148710460691301875525077558054298118159550455869114521412144528141759954990351486729979152856442212571768846636438813758076185469925421369208839554399582660155319294617758985265842126813924774117794627686297390080450466329260227929854008218218133779701703126019411531713291440788771450700287440575241309901390766345389116088488044213985853752418061711434229877815644024862063663104037013630008847776665140003723158394822993229691991128098237343823078635187285580068159396940452954856153646864210109119784470568955877787655375046021856862678353972964835243781253401937675357705324087152936813055731269972964471769105548569383086970233795743772872556582389842308624544697092877259678081335850801062209489216225703102432951471472394433014137187225796251032551975122547140271121550515731258286418965136946680007897405866021969047942226736728207548969453983693849666922108597967154356067230029693116250957706229488774539846921837909848384413366093985991575722387651506038971921181449702728078470270729859118810820573240459270916128269084508590801984394494392573568948355701082323464918294335968954449058869829622008287389998318981311305283183922937826463674524229434479084125657927591741917938680751330267573127515628375420760759286728586895676799983386057255097223116509092364654976080331697534243459041054776969964859646927372867310060642727707684342694111854188030523433455928992915337498937502113727960682718072480532628734948404596261810967153163068656344733518365047600568452717131862245711571841318925749664005774999281836813075906859685645112631040227645239606289102974352503153658564418196887137248356411786753317381040310217765355682110016794831481798009715849941731063586732666277354703107420402863719250286911098620083478229359421114413388919229875607946069257845141192315793854065331869432270922556661930419119511256616265096188241435211287291067552380198433055648384691217960015718174612382280635715867844431862297962510052747778747786514199921423558665286796792053213716726226765513731425652983725410371560699721127994616917144554077878304353611559601170406385017440144353233882192080745852994674228420431697358747732450602140350307411777833462705664740688680916796683926919820954877092307327191046610878833858890550365647059730293266295943718358602845009457286675060766809004475308385611210238819401361769561554514181063340925701704953123128414144496514042205500951283249888272070935189353572000800906324886532199351110559800047409899743648377869269395720282074408711766315261693540351583225758661561142030123438982207242435129500984474599693113092224683443258713986590499979139922004362389065956093651930051184127924870267875547801680489135671513636118892825538583384721432405718914403694720787024022076882442319020882183616680263867547333696537096595951002003386565676872917413369434524802875971080411945843545595285227953105217442617380116961878816097289850671715146763837643090330275498987915275568388252050425714156281619861806747789256846465124356395874944847015391687430121256759440992921686844396695137888197980769442262075460077991607216576787039633778754555193997576649996332801779063724627998842035858847030629058681374873701517764770762266502111453535115830915553987376625556957831829006915437825230909450700274925974484817549783502463137926859231130026310089382160227632660227584196362969575152947165271638849703126789588674508990561980930052618319597521142114266076964047367185579940703982542438328054623936553660083334676468062871672702304078606280054342064208438889084669650090645686911551346563116372783860371475497748429083274108297236366712844292852360923018190537588604807165103730422788920195730623497882341834096361349927671118558231035093386990752825060467532039390925692596213063212848825343684279326154002936725669438600745841135934081494519432986694237402037964015665491223294682800809823186162111119768704242594698767176840176040389511139602100686399675335750478172396079091973985241521747406462679001020065143133678940041120809329651605652183974356466801115922879744722734704137470288839502993184043764594915433752931770160955678270861901462769762448335851770580935991001172428384099397428221781633309523967521774880531300383808125221634617598426273780372066985291965364336732037471989263341298178857534911892552978214344199102190115378431457361479406906336805550493545297663871481265795627497408043140376630530597452853766830130817826207722456140272627207831251577491318639332269671464633250533678476350659352059731433642171585148542402297502443526327128248583562726064842352363331168973379170655240653710825983053170437665277229775732392863898909143560555021036122564833686122627499932661233241690931140401081614474061340753804264445993089897510203782377996120580895214775700128745159542802931411835924184212442570556122800603093221028765430682580260247566770499029362686596918574647106586098280174708532904052611088858717265141757207139402808431854187298580663848436727022633934768601953022354241683352102042575098605744472485460844015827001631495539963327327630424820502250700936377592571782011046734633116760229990062875314510974065217883264196900216953758604547436623799084890327955119143955272281556562572897622439091307898589022644331876144770296564327917060934355276448998185475657815325267435231637364692701917945662868326778504306827937526368961060633533918876043605825764539185594149765010238640548275682060111271663960445120950400216852683857906070052632208620203759604873224938982974215545653051806776038608988977390395921027107734947833074342732734416991767789945402555526143653687530583269305809210326083502201143452729032693395892474119824012576300294848276129555810604447083479585032374576831864022543502746576570603812720192928774133372675859895291560300555155903267585456093612948217177573510559171137338354060376285166240240999823278037009811882356076832359848553503088212445088420213265489495074700256010275593524792662017397433636324651047636108566505233076393174339224172912401885521121434997918340599904665858205359836078524510007435899351225889522184234252732022187474227071690083140819604948552291216925912227042659474907625792385720719243465733646476539704465266480107678835307310680466756118307532528275464921251555168114255494249197950033803744007294587691780872886525319582462735342062193531297331258093786394645147032819190013239599019821643222611179752783411248243763233310804062080901759811196372246045423731228761151008113831575663322880446017212199873729604876985259505865194232716266228873669809741975732490170822827988190121151141255176905022805626424047492389195064660255598784220542304914639576078977341241476844965100179810762778857398913927255357757904337878848694702415094765191760780081215889142230735565404361829413595195317009343441482676534839947521942631111730889843196578356219034391361938335783190294244163763961518973431477715951975040379618476772545162699766851245271796540079984830832917179831319863173082311982834597782733850803952327017522348985626150129311884906824867168316370793002714704766168049032508724165402652692415623115288352076778635041403307957406496521385893878286158366804146578644907294858697123520065177630709780987004001371143776902258620724628326369068459003621755452282255571074634384394629402191777145737512845699940623934777681196423782083238453418272088940472355114860730882476211451608945459112128062048880898045637703353753981861834778928583110948040674853367516341977018870850326863176684185801600176422068376199506257821148054699554882157266031144673374642629451846918662446188497005337894034540903296265833793598136629783473611711590281115977536016713571562830705308696256261027371644239959362194547640034407118545044150902440928491254034252315120020426407300141958799770072276494236845901424330187383684486973408109352619705538201406416546895311191738886365823512682393688917992105196857785902100419450097041302203519116519353341490749691702437369110191048048485609228653084611359334582950459224622807695070107957329871336724879455363148157897434364107931398143515934834817570293653675555828510477423591683054912299429914588313699366913800726967907077485139612195526077695845181376651000027351972560299263694941093462843062382883709574557923908918155485851742765513056268365338863062882473671630570878175354518050380926134789966018535589034852466824965471086529422057430357128983611564662135933494623454416361167737298179881703676868876255678981402638720901538477043194609233478119349510942365244320588742397637996814818307625772469234756868232248253570086215230205157105137735978511333959181161604244784917121155133094871629999971076090266509154589050417199832575321597024972173774060637226476900815034956813283774429413958375390557822429987601531756907280177099710697391255071392650213320140374547147951966211543349136712935913808960727124356374549507526241362024732023285203095117232685256614340388488162557848625502633936410980694930288906109155607554641329602708866635912892507501382936861395661710678243127899516680456660680119895390019720356471454024521094233903744984035310719169408337983462281366875471274428815878749695947536035964527397104437569014883930028181166573603248083478437036143379707687048911212043143849563714036305721504545101301455320476105765553889842408938244675793721419171964906121559957472439226397921893698184514742222945104514457475565454232021248658800619217930815126068118457583781794102619817906832587498939293868867858708526677654024066337162055266668310850841956329912676468746029723875656331895257320194741676396870748562984690588333559668960892614802445992487396034814592000887423772875188491079061782865845957816213093361036551831061678452389890918343958301303187419464969958148693526543501853605184420276952473265727727349211253136771531163250142601081663593236499991204853264571642695853555553362784898682630952083666497303266971305808012260719608279932606396234333495514434200937275235284422200684971823422190426694986717996662070282911523278697413790837013628822591670817512971676434952525164063814525432446338275171586391266949059047232435713450954790038963924119641686721016599657132440468076899281330261166328758379582627142147055778327395700460039199648618327917038545843777859395550724586413456778608379009005403065022681071252673988335683756719940341509145412371448800371945615380485317641645951026658838586622579331756263431548728473295738964021569814608139510250812584844178712616720766279559197042850211903176026363091049463504894103034766324752160689891719000804623673260367205537308171527506791593298445761539714576333524285638530159443633509598978537696661456913447243756982985930704881689069848556106997115176642130923099638904641197895679695750209698982733224859392767371563237242973760098732160157880072069859336751725646045142248561772188082702575013800853097753844936254232419068057520850149599646469821634771996427479596472887550696315236945959005451895540273281513571625092694233955041195422100890507318295543746299291998875150928307621916304427094475889502924553326830868845787704008578665306101935467511351764646400048767296971234930539679014547887500244308487784086673422663042050170617747398505830020481906642491915220200315741539820882938818626135458081030234689774335952661655609962983577836225334356408642460441357837899891388752728156931230360132338744402031867517010685480116020266396268150268613155340035263606333132078018285975725889199150831801122466860966740611659764582766165550541190444712454852888118487420994253252943298761781216146564625688322383169391204618080937772667286981400778749666382869370883026027168742462064775798789888065331996078338465394733442045289968893365497009878246691552322648338144353877519233343503211514966639253428980372904969133963373354944739169176219328463345810162592840116798650183107404775583745500950252506673234381362068972535019394609643930451457131865347700294957874170704018737543372929933557741268738219680665345578822496325289913468228355212397812053315527684805021250175832647046260295081127650058126459588722155798272496768550987728296728226921004908454200516362183635795122213452787817065056800570188410604788410362612747322360878853210076451158992585985611192243075904071073242593504168644187999857459347337593233769091577144434330139792438279692837435706182964471681882270114966560165428600206966676969326663142698020461844365141873535016248721922585092525409252579790576824173949131046850614275214875392618831612773315305852522481454482503388749706433833692437848711538540545338908366663434504615969388231949177329873800747105834170618513541315675533271405887301615740738816322804714702088614971739828770132867146019809570683990714694493584525094715717287879723311202189885605512461685343770398038193343060835101810640391276370091226594730559416035950614142044848528315788834487402074180635935775470375727233904282355938493950560151368232085150445865436869911569036858934024293428017722803568836180050541528707896241314278756762952997669660699094482628154160747440222783982699571093019017761132509595766462775828857260272507123647152727812735956073069630666818050660931716154040918538270348145061256715706734378087961474795829511359839714332437024872333768554084764799858362678395068876511332154952002932391843134608576649096964319194526027073716372406129313142648617959582902410051188641228978066732404516310807694822246053270928343351655510228564436500054956269848055387779874139529217459997014495966611737922293827510839703448871888561852614856339036477506311282835680099310083573837049402980902246836814240156492156034270200251941005464421987570931829849438156244547925654949985754140585559840909024414056460948334380972033995029999607076619758643419092260510320870477590296317422443668107059380709996127038609442180697040709444972260031045730086519127044871276781070029641695231196865387284223396509206933109502592220776693080233631823425158603539550316575746029207501877648114029811323652896792673188755329810078735149428987200026868781764819707032586525408989179441380083955085879357542098547646073901755727817442260986775220853650611056081852672596128409561765818382605111783870419855548380562528585945900380105978637314870150927750738640878572705851677242279739595062923000857216783379300696310712829080695462235684214576117779498452500674092680555078087215070842483566462029825886302615489977314177669856331314884436048723282005205555249987873167821596618694219421970315288467964136618356335125338908436967251324317249275318830702803244069383478084680488784150382101283566693611294123147448560147024244936142990282821844249386140977595720282240263403603406900971926948554165505035882027147228165741968483297143709046915229866187020977076628634645594369520276182118014349469011699253189614178971881526568490042818433915657385132013911990315349182276995065071462801397757851570177142497329712995146025601337567210237024556438668101789376814438770475792321866012804803857828378905356773269977855241920753511834857737662760792334971793185247458509618551102032855044342391214239296882112944936461724711625045570729443522148471081390464800142495798696913689169110665533395735275761407986288943985450811745411463949991254303402523453416350557123971374030841666363599442181399360481841580794882092077929817186975265382707393491541439157165569855332253857173377419675777431773601491977868355698198408692537494657407533908037620001893648221239109145382354153311290995590612498955528767800779023921974736468931321337106296932848620269021865803484094505152464181991378625680477382377751113271711630993778342892790012641796491228493894642782312787260355771031265523875896274628067905097790567592095854547283636383966960832401789938222336972648868418481692756215286792738036068230210030858560078470817505371314248467240185926934404079026671401153005653348916659550784260555126883044837223457370286954741657120262183970985277278097707939198118661789173577242848956160309652358011713093294727563088474505356121758460108641065892621509062215498419502211850479547556825340067294950577500604216568083028608313579494317768969447639083643036579490444424435686491025100889310933010975548655487215268822548065104695953112957750587802695693520657042378126992375693371254579963282620174248137387848461302542918874905534035521710792875825870694304832497309631289476853907462274965075736582409653109232857475239777582773191757743458506537140612801692047849307793749554342398681903863981643967969684585005707221279508001270004637480624430178010668967839507432121524342461833668897146909200085767424194436398839451252805334057991098996049164219800475143680614520172711248704898363949927471984748503414280620006085792404882819195948853922998395594899190890682854044640921088973200145972141398736768888350842563711297958681811584602529690898466854816731064374871633905795587329781900177536056540471120087353439343055119457444366599284612612264588511278980311959560613988306344228344157694987342771123425845082292976923916643192606430436687067062383182527624178182569347286832308729998581684969040064162598036353278308420697317414344147771347554231073147899067951425904579691608140278948255637308536593440491297737944546486060393713242367505772186411070947685216715710625677019207576458860016468998807885527845486861809488746370416692106709125430444684990735334307136368408926938039711847295141151637735075543539653885399982815464154212196753426557508840278918268690746864859636249076438918777582803923193951027267951284438474826627966517581049423630691339595344951668662834975317449888901192591131193051756435451347038144991698962049356886868979485348225785374064631271293367769745941662691733364900278216721527796015625753433045819874063714660976281108994349416830277117457434297106062112491640388826028763475086782102002803605246836915824159077596329987165276805635946344993006631805383422626153698265213337592430308757900933242816146789311138234463979992081300669870155712524642437971618755979976766079679639826483223176972544815843521723528089683600411349472562457297254484546723322526636872863937470285010241444346739937965706255658122296595385765681766691543768441221027725279184155832960296583199956015072967741811199739412558155781251759862029776982662539501827543173185968346200300293990233441893704840449630654886616960386712195547351670049077800491384969279896411536276674020911712527309557239690473561885621403616817001530679520141997094459623301989002025680410582121989176158177345271425538440546081092957844100498285629579650555087561106209917435174654845262085436339766126440407320472522079579497161774596941079834702724554166609318597283988740246103374338116687733104470563018501330986143201323863913220342664144032963138073958461965597358857751594492504303414576467314039538563262184880011775666584277895895212794673403418862284293944909105739073184981387712658887818522872223084022438033192964088350724110116422328932623931757784107447068187544657250873003348877272572021547679486935108264270543436186853510957416412272015556155696756467190035469307597647992999645604592846312558792191043056574974298123265298486149683952687480838060323495183810926390109673910943255379259680512631867415413959394194523182098560495950075155271655888390729661055238663961226753560736421236538605255878774878162200395001566192639661657415020637024142295043007002242952998491620144973904600538462959908448249884189167731202382100117634385140302913162984853252506740591375650981625869763044014103291933984537276289017882450417800004480008331612890663792631425462591445159315607271153069242210718401497535297075756211591514259182531889394699084851329751426077188885240339837048303316636538192137935642503431649852728661178130339639648502849701124095107800163237855227317831220502493501094103671302526660959440772363024190514728573461406215884333701966646898220547657072161269453386183940089069471728918413427393918075568095754391760778501295644847597572084629196413113638944019704522594869038911695742084588612058014188917274781530859584278645634432894101925514948801665850679972908628043030957563386046227760280318984130579396570727725012683194106585749979595008940598129300878373231177034891527985931266734069164209413966454158509709896191002302635937367453185530920483593056236070944120103520481125524773560135251822141870747974944252581788011914219168628486413502480223254928569016277784758089240409583816176378902742379609518570086891254559258683017179379946165844181559087267509647131138395829844626498252819356330946759621179559011468286384563332614131497006031216183180306374385884873180122127217729100361690964924092172468640365353214622078826853857663022592239554888002044489342165800476691068499773302734535316521477722916314315092300847744353169005515219265375194548525594164770913724641682901037865552597556104126612801607267800239617796328583651482086318529194954226286679708189974716851722682366659911483811939774979814318012596498134642823266618843764978368799729573801751822214843849011207550312889378854674697925381477480242814502448886164872714307813916947279777979785942530510386345260874365270309385379057165876119873848204488022419016629363798452731539263059621141418098186825189626251567393527014853881275544807687062516738414660263668415948817786436203977031091606554948769443180380603248501161134074223580189889647226438441591686497679561433355484515973800100003700481528828007830684310686288491580805200575078246438154453415118006189358844202751490264969083841517638102481590331688158418138189242597112776232259874561946125661484084456101229526673940398758971140790785454675720267781444597933088007675507942929954156425692608410927941547933598366609050491678662252336909906012907012578811794194607198391745410447627120588019630884699438275543790122171738439213640077634792316825717736797580387836715445322096887998589396022378155082726870314552375125234277109125986164879481814515212707194305938350530077657984609482758030637721745636709624005967251296852535537149141386284303941037175815506091684087677058662602577262636355059273727359958313659503784405710673601615124761551689822620203250437671506465512474963332310438222986815065922356407010769941731321995178581236523143519804608319648567171719466234494313063680379084643047604251694919573267467871893442187834884455477952445236024232664196438957486834515094701668144647029076145259581655975666584177003176695543526357774339988503922844336141053440038786027306859294566986433074983117552569676892901096677846493129202690444396496575326590572933489771526338718520100966721997974995883699769902885381246615868372369078177722017280418338225452837174499051791397455569907576413261300862529942081761018608037699827967090331815400735225918341356265119771886262197019848778033450718229652262724518320158556915163002082445381758586094984239861128785326454441286438410895861806774277666712891320212879942864096336012365083908907432905770967052951963552671838624489840095227607198858123737619529610455943965875717565186477685308944521625055071700530784721922901946675259280874358339332843687977187208179339446577339499414985625164100300435389796720623114954606117086871343544719207135972573052281318158178377109509454713679867902859393673812535346391573189028709451926285016639894301585263668556751426302450318283109550523714309785164150068023460884494049826832792717884925660828768540985686667053911635655089938786651186474826520671885992998893927897898897627966886433720793575108468817844242674592664289499020556336162047934487640140480478263364280026657923924788937263691968072757394090422692704503017924463693865154298536506728934964885986504778437421667693660232888523077162779341295583044942847507883019991090691213486165443077403051876811392549941874263663040163425783299230570540236510886154297711169728509462819841583361751512050747352781621392196720406210989234867146571901734076093134180140688726991404744967929465955882558023500461719750143877225427682168962758526818877911669338596735345210153968572473238065456795474041346852323215265002297390854770357262254693720956840824390737390388642482117122332586689125518967100089890549259029217065949592556463860848067432662052778126882874070250636545904113876518436400595364809634032552599825577046476589048141313929939820884020733493537969164677767690196047518192431829036426214756998775701251560465771767239361961541670844827381007343780096493915783850843477124002568008713265483971168126616746212549140202560054731491348559185136577674336837285952036954880981578858916173808971502850005091533712400767004285117785383421269129103360601099599944688823052851586215677592897233366844340945709463564956180718974478545925224952419588505392379942381288650138056484903843555543499301863861559985991467321051796474882653137674341826694605925924658258393759486417602139669046095045924327495692084773008923112199572524370513334221035772003744958520613606616032606276689710903922778707512328490560493697915338623149577571700667954683003608101621332999624116035202488861491870397040447649537971661486061213563720955885437852380156399976577395278918501559690424821991855506461318652563670645246530906365998210914675679194170067962537348921690077206899948691248426978792050118131204188394338002556855714116285675629713041114499792399744430193040238329610358970299613475936292352884745914313309408758816018385467688244897315773051144861850021119154961245489372491249862336938228925005029579292938801133800207254221511912215415873887066196643314872014291410597358723742324361012415429988715700442804054054175492209199522966891437707065053808738837239499558763467980519797378185138454073022462304184825484893341948805485533280116153387662086248911748343046764673479346885446282548452247058167573685496200739621629522266803080964553307276581235431860274167617890357127026389363360027989904641970617431146282386757916004737135692805022806377998402011619150787681908569311039987550648254965719431396377314841894749989574658158270220897078295641306338317679023605081100250519790857287648141552950121162038157047829190104933935883455682515365094629885718467899201791848778459633835788142058353430616723447025150694110229759171948225668879232642590825789629239145485356382384271462071269211511553991915738753708536971756934183594967589335943921698763047470172334322917093818508686255033599201516353163682786052683141974496289810866452103531440251088560923236175737900726734016585573860489803636090403808563646814817641400393470467818562976953569940410268865764656269473149571476004053648510107902377372925235013840434722397995450405703616519801533645450380520369350749333694664332463133033462681103472007730002830930807865140418832595189653608559413238337496170005718067946770130752752912776511833669404265831442279325393857721663108272442410665117308541496607996163899970341699397520655427206720132905354963171411272212735824765431864532124588685146010884841149847254684757087558274599264039119256497406730760856970751723274726315739193542915348844911138632528892637796248173106318865387794371773333272641227303809950943164059729746177400928576278516021769396862760612433203112225864595416550554446015959944058360505829858806093815576031092226021475859858218034846653360430999252725351690546245982367288007532250099459859662859968756512511058108025948136499511118814345336782656561176490397298846084576728730680559225769834650110994603100905571506190015908348234090719490835725568102562005939551882660218484583539507330586328025652458083925746896139736149966543121166381207024912783303158084844946090337607734392647077473398641026074104988802359107383370918629590580133885687664550321863174009044883004722218126729226115201577798667179507646979248413320962394823119600853733195913812191795873867180090267266950687223813091712894542310984821167568754518622855013609329713384112866999153002705244319507065706613479814930273779627423345004982398553675267540515851942282807258133521062135171802913216299606408813896142634728252703395515949839124454582431102643549457765471606145425797924550876712916509650458919843815501331458665256229807324145196222084255761443410589691200192904489743531920705180106950609448745030475468686216447637839644101559547087054381686682449491003135061172399529444258069265505915852733744282877696034576006980008699563689866054476957202636877631564022915768379137003436722010365920020805570057191941153464978935584780252425904341357466408912624432732279636133432175502830917574913173876074205977111661306269214756010860001396509802687229246992082219711212796208937828140293648586197795507573750807794204464092568149525479265294821997902168839350066934262332400708839774416318583229085263168671672317289283074745318558266429153725059663034680061979763857566212560818566830740163692605769620887445358154577799543707450253365919133944368449154395927614828104466275477622530937629835944296016883123470430815258581707299829863869580765286883073778583874737630235063249777370476035839790894372934808103772900764340870675858620713941464093602434259911337588919701088121309394102578034489332255881913478637568773450702138236692652759764555785311676443677677348030701582538728552298031482437083899111369857656877182101960057901033592134853231020967782291062369617613148730229936578530527722879286770663490461417919399534673528359759329126504814380830165257867254834405911824362351421623007677401727886786754326070624001040105222984864629153757239044800537066092860395405514501934685858319255433717362535745342109798027042420271759094053113763515612448502948126420918326752307918622449643019831034699949003569873794475382422522927149805078140256497772480264310995923074944392639539125828136238856333944388695736663140312930860283718083486271392812473747413685503547324361901343308793708727397518743043524765738132815582556244211249906920758735715962106876246255680699842979057147476825797813069276726867454402171982811667500980406543551543591177848030834670326659070832374717975287040517844203597212867031520028614974349951654804467287835086340699576680099154366782634820893683517966301002582814072918245951302461787868758888679108360342221235770219873966381947246232147102389206910470367972088935454411018442571483031540424359094983393359283395181205079249450674635025751840764363186246243135775732242447232120375815453649069191413071342184634162364174347291269638949285221516953286648971682717696967271146398410101055474205491997922189552831239249591507658346926411673593567090595077222772518118290195855128132777033695531361965646223351999347787799979570997448420723561015165833624623699412983081276713699576609343649277300547999825415141294053100631951615289933842512545289256628257941812731548535489000390237681146314202074577996123938566882352315968190413368573252677158333372037642487095492827777343382230808253305085907683142968179018015893253010842051078724494551980284481348705333671122177589838616810923183237350455213649188042188494674785735505641939907538732882147713172849527739788112013769477311371025367710095122867527718538079325651375001501022490315019290259901420000377446999341956164447847608714611512764184031355504881855508629892984932813092837196407218280575049610011048232643932785892857383417546858257016474076397440751436950368025447613624239959017477983743207136685799412346102361224059860656062729520085386570142716865787046185009745181304886335646232477895695142201207712352120862093286537127248741443931325444557483539115861318165796906345250756745612070388501867803060992641177462147813416179603886695219105837948873637432612273397500953093994574689783865789330231195522627373354671636551158978046481679936650029828094834334352189088583876452794629864415170499802819543721124903776785700669682707502312643119976768907474716483625013251171336489706269905019494665139668841702084839578473644830675333518621003927204657002412403147605573483450132011717661124829235073242958239563016611736706000058368972540221094254520856444555047231703574338481753659861397219441076367825860693460439207383713851059807333111062592572826977268635554632621626172277227343568524052076092529961928579651127155944992705472156493308985309771286437674014680598505023194162962605877130834619180678643214352147989401808354333345596848188804066576992189874195348797783975933741166797308643396864928899918138533735812071710330994285026841701108152595034873396894958386710464711610342274195536224264827193313996805477845910246547179742121637400631630898127894721260875441870068006422807898304712395490639812829316795995179939033817097041967814307765554127648731735184376124823422503668209993837525866865949886617429009867200883338296772630550495172418739215425361796960985289640908347829204828001498476976641067325174053013540305912558088300226781463611437266682264718756596610701747326588408989555763288695907333176168059251456513721459341939922834137328313307963209512327737550881822652796272775336366784605749158809383089799501212307252553589102104627220729202253537444388811355339965171759856969231257640333076111070562105094538413641617694173916505317664350515030805068923986716107383568462538474413731349309764020665874125600002421529609997353880866224688389970495215580545854266059424925567594975213840902934375176803120426441469506598853268372034141118447821415676201393613765278596408748802450790027018061182804140055963856964196229949704379851474920303122110777929456268995355324632859025896535173892126928132783803005093542800647723196774874762932155353394413923048723315409801937984116024696284214472185905679672004513824568936607187377104598012323586282961375722631870378371444516177323658659609065016163975620204975661345737300188588287057851561364075413781697524436672169667383556243716587085151132479942181155846368886043203889603273640181119310576069437837211173995994259550619164553081798152856338265427925123001682943208712750171522982188321510327613511511882640854148163238348587125041389718823107267988521639524590667615402001990722387279747078996255996008514724617378733863385507043798448247109563800994186110465508499142785921456658930326388152119190852715451395605267229890289657495549350127555866213559724661012059111731375020818442349405168838369180052137616897671081944136926749503989881158591155291777002795122182635552275031047200288194378005674833634518877666266121019677502357843539565104784484713804319658349539537571368789734469572823058279685611636526815736277055058107752345936535581416178920885253072039305343026033533739342676059064360828245498647135113455740971960959633635115920314833817564316293472595455247066100701019646174509183408131130189867403872124604357539615213155082993914164382939609182525212477605700032053393786903149906296518614063106537140396899952753633567491055435172171447229573747649535553534402144530511673846779660735531039043578661396302077376096828426808373073640583473600260255655912039054551047314859652379698894263861070770667786729150560022291269180971965372604492448190408157881181093045237648720233741337293783908397377895976204937206042280997415823199109799413767716045858752474856213167481867905313295280800749272702915679138195391767448690091888930751405624851682511521131218102996561802064629580525684506756022371071681398946874894632204231169448191658671082757319132822660849448502444069994345760730525513482745690200741743319895048880823836904513838509843494714666662883659269592949267629738533194496847586139729357023789056031065010691550950689690762614079488457603095524924253061429243578445786791283661365707602850296499951585499293687122245799978162588815950194805040512375941588102685407521911614388385305161375295445459902954866034797490994555397660298734912657001772776302527778714613218078613150283280391614195515542512798081287778237486866988033764162584348455209753839625554229216460368891139628665957235990106885969161415503703479207220969290679549653653103700476378845060574965023102937424094487395940133319137817836007227559970456381323435273269264003520776237228583583546634181871442935916425688025247750989981843650501466200046514933536583782589144305639136216268964462079010456842877157698849334898014457309494135699911911224516148090860769771132342339402302809459239165121167383062513581434555934430152739382919994472649460578978793801901930725191653894816691148590170286262601132651619931725323927864971227907962583993500592324312621478801088046271516359190628684679755745684025014125847606993761735671193296752458466388246306487669909655650250024859206287176605584265277456645130270193207066630274061104156274886207866846808618633367409668675164139290378777024430718585814508270041809537686404426018242872881754080561231574904912242424100496210449139960576187688379001540001796409650504887482389415863388974189033458391638563289465754748165087271932864811547759056381178715479883934089063596178027114791434996597393687119474729955247560998680504579060844924917192726942096936950968322067720803571842607940712324027452628280328540874228425991178516289114040412282980032769171162947878097320126172427417831241725346605640487008512722808163496280367937823600286591204680741825299017528692463596509452976062230010582320244271672454779536303939948030502288454052035719507091124029827015353528551303776015100349828683594858411784600190703032497901755360473818126867270824942386247519228299223462803634613398487179400599798491799205494661813157818025546350982892389542279944896714381884112990440318808570154139022464341778432131295248176204246273769971620403438641445790647712418007295776912417902023583136368904001738050702438084604586122926351400362749776883583151317883448162947708166067248826211964973591018028401978685589614890333197400168149570781937389394580472539919092846677794472828827184676401680113212808196735649897291818607869448806332571349365880217604195445196883848926927800074647581717732465594152732402007844589830267490969257017195936560040858831228910121317678179187922631609980334902519438113225017118687098187148536434901722723290302301859511851813005811529488500963774410984469683479316575243870152368888013398934036996060374167278570270776033663936666470458586802966915990120683787531321918397136681935162631410962341808923214831851022929114286335104299151039151602678622408600381176686523339684165502725091177459192557572993472384928853194095843472115433380979319614928557813131276793766018255810393501252776805256362067785923747949504692329447226062502511598306927711571102305424208814108872791398658355156015520634271866030086870664021918691210385749967577362331448054161591308106615719109785263076931636206345658956596350417128313092467694154221723969794753471630897399405125433139916397652878270577434596530187890529389567913759388828221188413522396886545987700360591130476521138667696927443238280506634320740515544613842803641936906019244687390704963570157938872774947821878878849551614825753054541448040382184684000553005143659981614113896296732705877882106232137828381537761934755771044023462709357074150141207783329148388178889365634875475885683239456726018262166176724010270189934630493316143993626599932452518787455720904059929746802581579555051021294158044877614363707658463683298739659157970000731914984136189741404445962337655960344005046987990611986349243378512812561733754075896956430396802698383363126532460894941397583120267934831378986029929965012699717389703226245932445687271256015748801554234928671389395813065532968390349833328795923802752261699438400435817939571105617148612469217456550443792332321548798265744723055650380857295372265673345866305976327634436060742698141734929261427333677868235639919581787614696783222369672143054174604025413419888480290224595489920165645492535494558535766241086543291312201688503333394655612296054561106030873509524745159352756935630172995568769187492001068753666553795627375410292606346267649764752206915895615242895829528191737069279043260417925246841271191118732134300616224880115157505350753685594551884320592225457889277505357289630479654687434594623744296036087659729835340108606741545588744800637659197855311554613848708540652864567563517301579347586813426178207473522322004376494028095095109741043691211846427123993584129856458312096787771569474523715196848034669431440024595614144949295694477249385289599963347609672972943211852845087657252800829604989390399018459796212765639806793643925086014755676851614686616203342449883397022758080283903730795006352296102877043428389650955899694170067890783607332041591575692708535697571714520774438236893529170639371059027381877452445960296356354757088324550215783262457620630715423844551950040551499724811287144502120328287369343500759600687671302814737409158456487700110862578099032904228940080446331646879148425362678206844932631518810572678851144459421401395654164666343935452635159259894530080497758390644775331615771983179435866240808869798812166202649033636611327777923542774175604098612970000545207972212014399471968744827005663614646390374138159644994192038977038528892671318083223588198155089845494624272032592450021797449763836460078489286427652229723744105421834164984007197602987556930039828452772582730131720301265416018167030116226712731227714965198435764747080986207346860014419801513344400987881232932096251252830723690245723208286217688042351625794071790957991139581039255487057162704685943508732061201818223279552501019180724938421185593564110601884084455903597238726104716688331927849453805475758799988332277104671036901225877623612486002577185904128123606499883581538569506642760596738672271577550131948868904388936436929185938987522640531709736677793857640075116730555926866965024697800861174219101648271892916893364712236723068010001124543425008448830281224470761810118690855059165568756418987731018316831753672540381792563861315466898131861880497116758908895558898286790044404521643115127088148246097235554597549123713188385767893208486982245255374105296153413276388068322787338766166110570950643259597968523770817135365487722073350551077661482291310100024983522357796199238999214517109717571530613023651495941543621264140273435190534402756480763774064088167006034671391311950231633191764750963949825672136967513878433585212852530885677375344315984957417607180849066365574663261623987265098868891350552019924322298924712684353584052417623714905374685685353270787133806121445955658658299068972860359090629686342486335418025472701153525583878255416103353428433479870992170636993401209019070243450062582778114342761365233863608390966656935938449192366214700498148079179762166075352956083658172787168078954724352037095758492668359449910801651190974805250206274835371113761295778315484102339173944523388908532121941340108537326161648621818936862899695273076132140703241040613514646124163118013068635023128753493323726873161981753690005827306301997244703646911883666097169125248468020968557502487027479541954362301929354556793214854113064821663532728702476986093236118157675303813886114592198255121945536388556221796465521228687173246272285485808795147332218185496014279778368958582862659927207368824106972900432715317661635286344603200846337435751371018926138988306939935258081425495610073738132434114217780995736310522115385952854348267452026536483537617749874790054714678994911587573571197064728712375375330066890717180759617004688773579764851275485187198622556753566930095390392964790415531225724464199173456068513951344815768744192013060347309675385856852456998787861630616885413269623043365564685802179104288825343164952713126058708017445130649200185363441047760634115968170646715757195893930891209459125655289619351434208118675530465322850160851928859845243126125079193602923123230630241810452095869923640438574247423164074543203277120955589475099026077833248889892622574646490062470609705277986351352705378676790795013129319174333058232507278562368012059156620126741046282726786974232653561160884759284360380255603604003558252844890425032684092969740130280554679913397478992926207756173329416022828435540715585983101325191790912971269083376978630179197697820550029855356252815364901752488072780965688865580026842417080580644147665080228221048010917182783639410299576444732127867439285671856279847992999226672977370300034100466544868103784384979949899776738691705472300425993398036641211699061979108519385860989600814434112640977763775381400769521762292340296731326254352464586074634757397274213728584901089669690656605107452429982030598578104315560883503898150745652932858050259239284412109421206089738822130983229064470765617331823512423787545709819769272603563558313729336448960938716989877103339233385862532760227533493450057591527581654073607423562857038013693385643589829309992837638382011798160364865698159150588116621821131150777676918973979187925006865985894483920008703549595029096447724185802135017357102810952990552201598702506246521945759158215195878982116332615649288260658399626469043297523236964950193574141415007862264163006124618207844789392261442070478620053816462058965674417892447496810527605609292167106189343603719402395382023126404697793443801270505555023227416710903751132927232604598517515072964568436749256913413091619169766374188739087205766537946535383767647394448215572034328835264714981816288070468579750111241322053544658767748670043703944667894022260302389862779365279015094250631593169203239958267753678050550176370905516217671816078146795827179139643899994449000912366776449607309406278296023631283292010966204408001126044430119624943197964655267438782351342740718773983800227080510637384746128533472655180148077926847051223398342763201345502226847669547652353664850537143594921992320620076291174887487762921338721341349340816470114035437789699540985301283893739009483342429459778605787241411999111088675927353603521581097725745307323178236752886752107089065776000478465147859786615622422157591407149541686535116188196611385591493716436371597948552343900007820009564514170803125134510251380851709717742610937597575242816684507444431302490396151302488943903176226809625565760984347274719087581084521552056120211210819297294109494749591249390684863318581655750135179634162835340205119666877720057298835673511107179754789859894390972311940624516098878156663085849316987601310551729233348280611770335179823133578028544336260146637718784793795911131260892674272981530721855719832832773975364677004348997301256509425276564861164647362261777498463433325868914589871302576773857094370844857210342715029120736753953298328657589382636146340637218193672091554601717302789781922648616574308460256420765255217051683464680690734436314716229485263346345466951099714163509718916665127359945387013017765843796801287456188898012865375322863763883018479098010424791057711577190915877560388925039524399577460429239682692489623515381563752165197507169287439641404448813974336251133497883320392198476060501530392003107957267819477596087552391407006553718352392810095074206184126118022724077202670578329917709207550129993799119343181868520602151816761566237114240260586167421188869270670786668785603818469722390331452150959463072482027111275012746564820787988884497707984056775091057544581883572034868585885685666733359284073894300861447826658490221153966446252029506158850818111814442070242321691966452615265933143962706888909541356855612696984402679728294491661955073368996519069458618480338587931081397017511192033322679230271490341555212947748657201520676428357127616653293395325015989364159377074413542504986939238266563409497067469835495223089967305465814922688922519473433788429184001970243235198249221885121840380732553641779297215662006883850802333281129308959188915611610426735989660920390856727268801131174376901919394335188789369497233608829054681526861979685735346489415684041393327102745393673878866799999966037222008569384752973630693490251854243298069946364344825566656737710696690005225968666698214468916911188956234641960339534180286302312667302029542540156408083954273856647156337969221029508708277519503411260050772135686229080546865234231112831809685781759723056259281695175934888337159130833736074401705721437558195095974662023316739788821009381380067643663306436546473671241094806265381807555505506459481242020136150298064391614248704674719485745536002094684894609042400463914450384658494634994166629323404672602151663245427214959940770465324139268413829723673533064692174048211957610249327245793481764288197506218689322258821184849433749618959586819345506441188315714665008023671630741456655169801216401620225119552326538817014766018264678384591150337294627565552034417150730302252238458463983799314864995863423017628866862451150689125985794907861033927703367674409820845677250206390850228919172443221498851419633586392589955309736085651716957701516435568193476371000197066808732029441396728568877214712797110559980789832507747284033951349035834813428672752318617740466043934128309454810195157975376632505745506296690390012406124080609720296301748164362671412396127826149641199389039619416647240592780282524300826835489770682051358523453006208882230954469214509513281394759353992584775002855905579029944620951509380149384620956474938567164055990770316885953366437955131406499992221402596804519148784542188931058503256939275532515225485056429467700090298911927886599749191852027958050660943620470669701298252835488268648601388195944794903118689561148481418591965099570942825945185823737893999932013888543863888350376449834443933876362374461453515177602592377350634779195222363602681872287297722681931515216049338878504718566023688345771135296638746244991129331444022102053043750643952605598938155529931029479875974659856194509744590289625977840202228322913267072709183777420664660244805589469552052767529093965201001866592637868233925747178201844156679537324609774454963425875544006623181890567309799485732694112085404189402451711185014732304664594425717093573829471926564624459422502773651782556531950242314503540656813683933451553283757546868828631687498895947332839600460587488633847108379936554976421251434290998515789670682099806286698270049963104986379470907006750855983110732765232147206014556938894539398944929491226020686845117524198033983529001026694002900918546913138547102876862782321809139377610014575918930901798995825268236343833698689902000513987224840874948137172912060779647200461896715856374218932239316072043250917137655700059387620033988697149348304375668593541955330796823266084442117365382447807525726875722323195424466557141997229595704740728937515615932410355804261737689378080930527945469766639726219243342799914121895479577971973674458185066329852790958723490872859723893216240783987538536555978679337795931914285384029088550575867764301569957897103336961808608452756627961094628974345099697461472565053807809841226585862604040618459290502748620264864424004187199730527157169552975526027084609678847085551022194260354372330450052374256107292748367934730566660247042018940447207205863441936615903327076222108464794579623189907857069317371543308926296856557475178430594061561083663680397600108985852216383162580833625573527824773087494634468296211723391382690336490658277742448020883837411481554443687903177754505953893428667016661178833965596609146622863025970575028189289841362049999881253073794110852014392176665240226606592772885381892542355670402281685209513475276590107670169705831404952130589544516579221328740039144448262149306585543231532470652388346117298231680131420999426961675709442281879600496798886114274594889312429127485472171660680782658415747823538945016496645848337944569764486619906328291162118713976852246456630702945838469502332065239944853504740367433836890256164979776329414717621258968004590481558414755491556772130865573024510439527194714178174756175952322939658079933457922135393611768809024339691474834011389213257304924873249528658684464591468583996737337005926283802135470884762140258356003354204404828722177516299107861328283564680186720394596919243993782801130007366073704029197643313563767660716189844998009299960652003998726002994411116143108475902462568628794989565869691599232429516819906073571779749707306513955039832762396984732265330351157775805913716863842176399758648827529293798105966672916403014260698010669953815655963655586420603423172836639165789646097625042513712465842164848843431800634225088807415119162423926515284672753985771270277139648450559032888378195550207444325764476702513970733422290875921375410733272026763542751938587721023299787039716160875678328897457184630327054471384414367169954951029639792432304780673169130706455381855043798674893834688419388221096817746664403781947882967497477079270289969259766056949948157766784071316442816648222841292274476596787142552970878385008250732583268542607915413521603631440555256902746669656144618031177003418939807012283181879537391940886994342601655695727986206087641586838790533898213729527380269591398137246610668492439136218229551957469138916915147743314188177709539095309383890695122501502370349294847803595327422160696386644045709871238949496571916135718837315062034880605902052523027300188297525147647073841116168887853319841863510819327451805320828425085064478462491946622015600176520158794869884954320444114654673002396234566624105367872966356528599852104704964302460857494429226677930366411722024457798270965032689748823631077009816673892970098860535634361488587711689266441633146025574725481682082552543772205830812308230456614514501069857101954957794984558959110132062312024060501531771622961046492969492032728732809026159591563385823638418666600635583845495601679148562521160468447018152296253536772078686278586758994587400014604616139703645379863861361766185213731936202943217435331895610113174338964146345364995256196092412069758811570067535416518776206444090491882941004710227167034792860408800571967632026007933106796932413700451379038677317926284340342771167157950204127736583305200371832510269261043958117027642614262513009657418416264014287730587603542001360893377814638524547330813060940209829682182204155512824790172539568369742203272290661497632772635364005079570031447599513593831854747285520595754706433715998699881665123655882416559258701377647695060944817974721212986935465151874636396245436106492528682358711945412193560718377243835307794262447936632116347949748543197402061241371427131027791166141450449819853733550538428421797356598548908126410204200807255305017192676666335356129970062900992546312752885617853766993290482748564888609109927340661678223170367285643834057193734532612522138169372220797583554455127726193315654441388501306517721451715342153313590378055298484400186826161773269731797359672069569437628975802470323185160298205884452841855880543974770308406668458407597423771627241510780710668407748902564672686981043911856329980238412290759553951646939236393780289659948746551737963328124072658768767308677126146476150177353104059897914066201531190848526283291198146149111846048274520354073355835379544021810366979488742281012837456973924022716516302520678683911542199322271758371111599929982539244076597595864392123640196319233940947611742437140939767859485523889888424334045086405311865220344395578712842641423664508959161752184916143105405056683434501603777594291371679554680156113911049513263165946117702255507528602674363316569014867782611695218707104509977497761871673572650281200513641907067439500405693506269233451614594620634566273582866652452200357730567537000895710305087429807974656232753085432261044968691550852545258708447702569439566616411378140665246443936625994941697635996679198643347022624164331791869743891305876000217192687743484565209030801780144642369967548411525629056169576945340902269465750022805929712257638201273166108342051846589171598762443882617485988163606867572101751991545372159499466333004036626072753564750615199604864379545973081482525345722926508824409843006332093587509219536552686387845374365964295093286924202073098773760915808341546131790678147156172253644646721404786157766624530652500464566182800373740050867399790248288205318952688286730626607647396326581738092575453544370446530827675008352961309883672945761603496646141709258585928156240041276195769289869640773292670486220396482252085024152801516080452908872290856310695421113540531330650754198769481221497272271479585092815474724736238040751444233198851442678292734008972993764784677923112553613742086515425238689307271516610789163897355331015248937266475876687318310926234286273127621609947456058601832815418570093124279661264182443798892682947799622402380596503018523937583513354141188170998870582677632441606167457816226670219424381946606037529353148227436114712099569333533206352438459245251538051831993029125579008451883984032809818691837808909409371689952971241616157597696544384657826148097739907329178264996701035076880322751047694926296505900662842746179968943635727312273708510497365702387661533558730396666005066771225123277043041893056671886121976848528622036177431742319674006492040225187570125810228731340170986110368710554037595262712011229655235447943858583127997861646981747883282122098876260907447049767560619111731153014392945468595489866263743406111179557741248938857106202165419943815506270030239760407405799709590213895184392417083658258621733856590733196418691849250041972879479493128580267571622209295605695596065503909087036488117480708520473121106888497003111202190428626564006609123059267591067076209887674683376154454714147859572882537980957539956654350947816096452952875812543377741574490817019701119006020263166948710627615630777168829850223423543517475804147895425163950441157945591335106968048737058740247026804112930979362641985907210571345711347575850545882926498821905427882414405471178719666947727468392263978641675011905484961762888047163917079016485605041502649805188270100442291004576163058907527881759992420617081644921069400026112838144162959495177917479795563305240912503249024859197076562094011538141531115319731396549287589836240325852556790992178625754200536851419918353614196870454530425617374146450768017562283250423685660973139924551398709987821097223580589741849669292313466905765883722025354872316228863915671722784806929120579659683834700323908156557960280344992429206239218093811350309599923565042135415804170395584755429463630768847041585010898618514018703442378278397398567119198113145504204860734536788003800566473390432993689910228970820533276278253796123477049641273102152065857717594025200398267258379723205090118868227161539160120056057570939478535611480739489374197711336706920925269514725601789400883863554383137871357714287236962079696946352584778055606029785804189140616245756238087672184745085547553036928546716818944758728160530047982136177856425111350956742538154675837732276056357670961477896785260822652867058760301702252808010551900985348610967142498405726016014841307442613244895067492194079035092566012759309489871829644158737526704893046513145036936090715407786964822719047264254622873933144955548328320540533996830633262844530578217340914487720441037964798081846724559756775003142695822705710413216752925698482995624379218607306546803552092898429637388496379513543368777138805235368225748050897535267662312392613149311541327281458278879021053492907300757012744441585867112641003444065680912898858527373763512815577294648064217205669551096234279518724636901284196176661756118001084643050168075433378284424516357271989222857452570731000635889969483562521631395581368682323355895393295339969458989131513580874726794909046890409427489354111456798713228792340802859723763276482623084309501138208093313109447382374414726623496365941237895972000653474677235749122388948999282775514050845590825062896068560466170236336785009228849913950531557182548686492849057685274735000108334458342748150918761856415635624207456729842189029776263740078494319261379047759254109909418468838785932997669865683976761777426277076537402002233937189038074610864332986306018079923233231154304187462723896328071454780261402932212033832932526779583838610616475199961675946601107015624633902738451603219139225592117930908617704497035352503298516729791261531138235508945334182995753094261754960065073059779731835268373763484602108144976551083994916720455103863311449346522400585007294289981102699082491223384903977355705657624791474711676118313032377189590144206758884307938644349889622977427127093886334691341646943638777471635093330276054640592532642073176796725190458378139304188750546804041472915652170511893817668286022086235623413510449723611181048430559722134246255372179078892787159036558262549557171541976065533498767672230457179572974258956106020358827442554625917447531903301939405854315992175074166613753253965967696729314119634814245246020056424152879626076402526649628450377252725460348028238153195490247519125239715410183296651578593608983941415271490005707157270094416413454422683610119865302728741970991783567830515136255307173113865004304507171857835847345196074886591030704291799462834980051307805550716400075668085476200974303576020929809180790283126881455181860268510919641373517593493255778576874355943150162880651851293731498668959986041895652486137980693440022650884072391309093438748685159441582971421940390452528788014424491253563500098351632597160976847563706223223216188290661534142818971532569702282648344982962989400501675041877521493394138123948761237163772782636817083478586514952550503723279010152323050226725982437033871420550657368926857412042755185442179906766203872653856103813920383465210018352445586110501265712448757695920702825192851840764315976162243042370470532368367488133917702914867476201903949462429612034354968741906256706270348567716411209668733498361254448103104650634163968110588878534190467598566908967963740406525596097299691107999272013352448311293349848734216691941047864707168180215250134317767833323068564270193289011670838123465092692881673515149363132582849077139956692115470253254247969059099628396140393916304337136893797018523391109246920588474922084869804190540854199193750186759522769395530646220314471678187498320032180307822277821024184782218166583884916463078589344307499816164162019520074223475057837227554549803028312972029889888007904499117471013381011805715294584115011014396364066035785027998636563877238002676569235930215544577387226945888396382209959083370574271073836753119616769830023895088233392899512707537636993103758966282736241476409122060959758100233435593977447962985809867060071218709766004762059303472930138040883657438404274413954162785185649070786875747808698783098496094518095472819785524383548559157061749806505497949287468039825673391783308607965809626784234954757059226228840255373179794479467262499764918283065355543200077604118309299665151946507276705350668150463937086867445280612341056862387340473958660321153091134987118923464781892942524066144504410693284257951312714277578389699385578755370000257637177528595074125649735432758252024321805697740900842942976634199952629947576146187792286865302207276645285842995616031705713976018215602564725832435304674037487439943542661880937819739315762828732274667820255505005438323176207390130975709835043565581867093829105292810388152262164460339466918471944686161840410575140977138898624985352511323974038647716903963485472120644841042448608994879451739013033196573205280856718173934000831437774156605242236020422376238162542060085377910399131704024869771697526247657246317508274019184754546759654103906041491783237595185275955357476864175554941177838906907350076653884858259460449781971627681156112123793116067931090488178298008164578519793190363799039037808282087132601033853269597909084097441373571616202810492321031542796560874895708429764388028431003373085750751208065283245514593177481829010412652426622095810715948031634354989409017393581534090728038923705788625052373396357431994497666272215156631787984693118663987995107128482216590783672185304108179187157962489454452504605208451269879265766330740309336786036181213157385892130277100071819823588176661746164184446196081545610482775693303172289146276139533463100448595377050112204724206243319840921027003198034327978188934370303473305813893927703533774666111819944805812147706110478602903914363404431493982550743557398482196735397805877157880069406918612632526536580791062776191615649093826397800941961630601541804784078936464929460066327496401136390103936963474001998409799247917236743001418021156771979491562882764321729566478337450637369076081269449815635603340360375422415594008793794512547211384176713105895469509322209786603385409536329842339991143281601296729026528802215862655261086853591333668885695559951295179936444959337932248896625927576104733103150808191596738183988036253383886985297485718599649357227018694691501426746084331570068441665562858977346644417400810796157020541313408032231348135036842661922409655795930659573285411246167078925436011867903666572344919897347242162929110211383141161478149415044752693998025594045602147649455934908884805596661344829532317529512428318584506709540585590903011986663801375137497100327831413207905739644738429858242619704454198012121966099401637086502327923981558426775108657830495971394411737765170704120625824659564114404480333009765033143984426565969994813045625018282532866967354306689896915396091195431886298918948883922378023998138065039999294065946848487292100715574082940466411518961137410815852813748992485871115181044207550716315643658158501707434559068685759002869396817555343134516350975869900587965287334349781226249749087849024625932822844524906633483451862041923409273274731900505880397767915602345874466499273735779770891533980824570677780040934315345008343562684334740930002838987301450408617341695189107250527755688845486348515780056785510742038218628601859314782387184135961280222892069151978565595689033260420821968431150239744144343521521599419857858273324911614236196071878830663418087535911994787366596736813703252701716305290854067181341071340253504299060563212416881242115065377757694998047867391321663891350527617728128427072614564412715896745216323722033946994244133037475122578341327243314763497257128657280954455449845277115736995362879933859241326104645203516281682802316775914134101947662083899993076964464529490500679517929195816502391226485659270303745078251442632024020428224048996247718159553570811595087120557687360329542107777689706061021277093666666570531142582882543475226258654723653892964680831966813301694272736731641305525353332017210361191576446148617982789353135919591687222482680325982794594393268536556089140048645929100503301281953900492242813586207653873425880748379769133410977693734530212486065547385676506321283561902302874855642026067076501220110991603168554405338673459582005433366731644470016433428444194643484505684467030657652469636646852092994945617751032430122739836146863484415120058144839488908543474651248438013436936890770268991817168714068918833936203173264364141529180803694651782040582007083005641024270719358328997971678920911366504801298782973295813216723032191322426202254118513096090560700748320681956089530499294714957827122880419270317031568939632382694465322474639027857352039745259241626043151375101416676621905146258546635006504148692399059268037197977919959993095495251870607849110384747403712583670029501836509366258576305149635386954325204436238582574288311453013211603858947182493252201137231507308570847541658697673893025618324632066482627280346988932468053337855956330472426967105916028760601963448137746504751864596737979194690042567896692909668785542875525572496679654558965199111298215050127661047240694826650115203335877384609779662167283189381904761329516207684121541338227630050753761839846736122685791564954057364875813791802245309144218448108702153187687233759779874256098314095205365325906966807829650617456169731302618040148421575211221246682365289059073843252188604109049444842148721831955251060774433214040996142353530076744012800670856392530242110616750768697099446215458407998922243674862836203382106504187747430341169368167301145773572863602609310644533558380361917302136523164281737564785625158596175806430555463860523484924228664780457948944100347250154009808608893276009746830554169298239111857537406816781932999348650265458649616796197701201207233846323246216419750678505972674056125454118576145748735172262493635921815913470927998196936981563335522912122465729050270995162414301497560725863762736525471154841571867051156943151018040466169704767458169690784927748132388644881562588200594446024494776237553555781513283355022735149510588298600537430085787891637998212085221678160678599037340607080145217830975967088731435813008114577246296631747198297820641586023673755272779741806319759996339925044209396749939071202697163882608558912942710897856329511638634314633905087400118407041752447428374425635551913131581120054097829150275627484991601746620278187929854978249429222009913585640965928789483373143808876977726953872654464844012232908539412619417001769926349457236043501390647544568061456269716489448107787266725118555943101444296884256684523725488125659349654755053902342117129546223493460908730374746147794952260768539650072303578650745364388088930523643573970717886289833937316208182144117515458933659064588792141161347001442432600426502007880095606991136151963583924877257785898171117042982012693196913591140566097303028160355137903060150629549981366307348942690709636460925627919908964600277085745289740724143129203840889292510610967021902264155001229508200927069911330248318361618163675812845756951171479910558136183457472600496950960331105005779555006584448684494081946385154665989306238041042973917848676623456581177599776526024423121125208512593177430359885463537450340746086229802431549265774389705497701089233256459521900995717681999249629213679345185534305972514863715650525276224007534397260234548206495316961112923655963251671444856659850638768512081078280720194313879649670048495789585152192622505061026311262037998897263161253704033212482630757891204245338167769985349473082626114929710197492369049089955374167534912589206731420298651183358903565038776029385132353057161375803435764650608041939743863179283898710474373184425474566342373071914956676930243457155006725213890922213267022489063475416474351684376750615017072663680256934295982586377355215580094690839019871343234722411674960091836005548693787738883754404088833767335198370735707646733161619832617692703690353593695041634556354421767694265849602669500088481584792408415723509394541869527656401844003283012478929134716315089819382419896995448281889720660780863445140237219773667272457530054195669353157629193487298584588868205738274053184714667954575286278118357738283898955824355171604391278663890117375542065103364470859372099042866330306280097132110450814190945565518000095690860602040801486675823075159193300086367373513843998656547507110670764750622932266739604304901880219142721716034306783642243008069668366063704453584507798893962469773470165967542595056101567579458664736812422601098261966420743903137223858477097567064051912810442931241333400989025710900444399615217444187101692350490554543620632245445497076330659536571207334009270871605643436003289467628550570016432763824875578278579587291096339088435501901025750866580362000799528447361974875108434265160262741717461290859465358786106478382172060687686006072307200147537443448021924107633878340039442369009051160956941790540849699642350528972291917392875313437538827048071843750730548366013363075993716260465185468560484820947107074755848839236865674536863304550151298796824394758592973052355307964679075951368789235867804876650690774806457698128188975601356928169373247960384315271443636145782693652146301207784235940513391050607314448677101373508329040137443974243899138060823214607001435787474892569549112562015343561438032047996990557494665887595124353747060934107007332702366443696159235835112804483562300133699364942509409991278659821256279330627969321131509046475618922210207376910790249143388018388583066111383538684015973412130175382120910736443867658782519121469770073443169912401365456524424281858286549629073011337034836905895264592799596174199483910132046697032138460225744250072405562737087608730583732508845886236127890827020262116527825749188986284871774072997976322638294336982842297430641520263057015120701434110762547822605066427851609943894724968863695502530563035163258069062828983099261972600653433009203319527318600879302377290622206533461410157282936014854650021224143567508345511898510069770995136972729166014556145710542260946550102332275711360557104406594298585256825670611874687210309633472704132606219803497828403314969301001133963256889902126839937884035588165967004535702355288018211920746611501803767590335089413365590135483756524545189485692715143858566381635769246804827941529823942626353157327637939167020820363901499213314964824198656616310873212768150447424373045881248938040607075351349659687197611192240498828086480189126520191558145698532929639565739017454816859683440047858586385956924561533581116991055638093485184830367246586759177459732372601228001503226584979353766155085764858325163137513681725879549993155142954616702532058702552471027145688855663767055839694442619379012421999315962618661376467800610422743835098380669309489506871299599303946836890809735585769305380602494202063227888382930055611796298162670200706931707403686721380816780115645387785440281917776125621125837513881161214453520807415499985444569887253911609822126754749624648270443058997697163947751810657319759744364447511794710217734561393947713158245326580321710033965594018767947503102220495558728371631452563946294653596307537295210836917178533778044621871920616989237405924086519666435559097977172305917947134009761870275857307008369974299064154829588738422335987898927574631082408784868372005319658729176166627607061684095634693348842290418457086286454206524415725719851812758025971204341333072779633938526360078670547182013249732712585210262909082305036089178239197604968193325597479203779772621828112164956300185425805019430053417177936276398080522065969335105456081671361363353709030087625384560939176303629163854392675334191618960097134551308874728268470710799523367065756085466094241712058319408134441721918366385386782394190521320711986932589970343596550646053227518885461724217191205339699471356328387644613886838429259120884834102404063983457916088732174924354033718995367665740538303169508696002748209560142616207636853946676177454052457906670988945318633557990040929827392677969522896042822818237712925092813874722110707041511945198782431558649456417790361789707417843838040907255362075824720142647639571893404639311937176575991497988003390686245451803360189879883876616823132318547277260961328378461593507124685472625552312333368425293374618757673465570076133923782739828071040274564585015795447300318099422141230663900629043693930578296680015935700419817580206512135416972170973819860993211001696306854865854880624676476104358256674094859927419175428279186337990221794874651169842628441752465924912182824724631909675394126593349623377935206004697397443829658584994716225246907123002258481919473882553971555332605936508410628171225831062545787913078355447734638110515255045783084086312636197427074227643030951011471250095818449991467714356480805181991567705402580848612959533806985006830358068949641595980051667997429654322592384871414876767767524019280746531648524782921171194083119255469384786788352822551661286634482985529830607383913008020546535993466854778924433680036426154673812205673934515882798597423016330853096041587284661980124847796309094050940822833343449471739802810682551102808305296462195253821956544700773304789949286189527799805830354839882793444569090519510297750695818162333043444288098889213448242318509883267867020132331188937107638496842119455066725294028615277405796347505605208988851347029668687585830875608350001942056877869351901943846680637599694571309841090065780751963823274511196778333896499964579660445779679456776181240046573593896146573774365016816651809554390336318978972959808999267015223307858364526533229324268699741899250144440075091305410471113565001935897345149016803093772700688946346349625486092162876812207873992014736284637515781287812079463908613205529598360322313574227295458866657276308788340964616236842505199767294457472304700041498636711322100468340763939766652538929997673342942883203883731733912174275094126478528640846020106987800753451079132826428755568192027641582533468493891539459664582668487517065298079205455743044867448215434696146204013821066879410199063328869900750406346828977297236440674695767899667855320876204137124997275570298741026612495038958909549701228433819350373742706804271585366809307343789275749018660948947944007203443091204968529575100461029874181805172984114599766147132906042241315302961707673094447371851856978677681285813853827568840458095796648070181460961691817628353794499169568591287494494846193923014279501801192351061142530832664698999654128026050566112078440943870960380504010790317210971436239389812327147952733945713849994888911124036563124296099839929654595100140129048837386298218706485616064711761923019975899430348644274925607455398505304231227341540269449815804794460539695426248421214390536715256724750038076695643864416231721479084572355651786554709124480623931110664513037090282423105690579668814465557448265192736726012982715054017575834683561755915145251972402314274721727571504194955763910415199679118780033714161834061053643873537464278816574898709029661541235655461270980323527265615849738848341206851053688757311658394937365909094956358519655459117206276331650371630507646550767518245360602561216999622461530317441035803855280720545347222543526560237171259207580063831153939126888756778474589777860153136616440744120207599385729747636050384411441034753406567950861424989920623337869909228672038964861905001177755895262410694011621288935356337036885192806398237203809091161575648040734413700301119374798732703505414663949557468159037146635077019105491998327104294394384189959259330786620646337400093829210099632470291317776245851403895718346614803422347541348590623379101313453527009846966040086223038400372457118676772405733191516293441771097459645661144234926033535212751040361599001333835788291344293430240814274469071370433161644477768130838342738966275553550060432572044656093421921430592688118701059863832469660877162608328629108825984477770995213664578439541135470261790766168495071708823511374525056845724277168257801475313287303761072417313085062585831148327994427285213386509870056614662634582081267571455882849202741443433448266600276354650094463420976132427122657199668670134065670618535125936857526667783661727223956269778833397544442217885953781416852473479607330631449912161771864827755880570316054096798463154485474676512593899122476257686644644449711067301302121586773706529964333724917825291840490408616148477058188077902188667024716125688930759734776605599683508026308934482172183249985839771810349063322970977235634847155700325667354594119420091447872653809946454648296940977313736557031682412365850064431634003287837788348646831351503156262454662035361354336891485573314787628136678264825876202508182668358502766411809222925148037286585437063199427046815143025099314902955390170443637909003931236127694618909365878549440594351061937140042186339100786516923633040425891826423535758414462450390467344797901516815473530654018727345585746718211969748224534062601167608679575981655975734947119958811045784084193609389992958427368263736350734158004160667530511244421507605859323445571856316479740056434289620117077784139519964270350319988310998460824703644934470313247871945150380448514677317600807274782065576731743736231879222314109231506634212198557332974213676384917045205304529699426230793108558863594140286056788188197683202224301984809559227864260164572161697222441699715510365742421763215735070640681303540183017054751298163480212757543481573453115816580119440024721965646210603939399174818431528037765907710420322353805862504824181587629057057047616145613660699144903409079291602704647869224428342519950962164613223840511788115179004008346235878259872414929526280522294085304484110742873155314277474654843362692784846913667078118187942071585216570272452323746520155000898898303309083801941661631503690839410554028587817401479314337979977341207932693239019646808212499392536987216753163100471655239379846798334515294938887639537549064602347197724247276561114899168045393614663787747271675729730439635614427915193385014620058484238307255775658991607465223962240039413345577181100968783196671616355256531037479874293037301087661288694527752705598791860790976877120018006810043189702262119453058695641443473278137325434061634528626535866816455539545272030339844459072366829057210389029733478896941664337079315109903963481078685330521762318844531777571622022581862652148247706002992241877989744151269294883594427174255510915782759703873896197223117640946900402917215503321509314474146861350744280871321949302343876786448200032954761234652068634110945299936898946898358191271279460892819776573089790825878787422345333576926711163671056023581832610612629955726814156180702379209033293284263138200273110956195211726838881692450698457227414566589832403634842117002572800798478156462766713799558458449336575773811425390374283753169700896098627212757740297688759350058128360084346907895753839315235716923415773699047846061985687391044602223177742907911886278559995673024444325861430875961152557545148567187038840862402246995152189926659727828196994442698480915212554640231306955171460709828788493541050657757936260175823022447617534345060046292826214041390023719028528151523444554574943434495764526869546507832017037544629380136194341970306897696651620113424397301322752046470877244900884334372851424133428090053009846055805356653052500119944339686841408414097796717932327297929143790189647890721260749989408672812429883225188916137162158827864637133697465235785720457432246363904326124145037421646469424545904412175890687826183009354532182659719642334508158800870510443732165331465219118636421061608397661728704554151991138080692818202745336087171578215223265537589991012375736300054691834704599496263172637246375734964244665125979959965393294880459602448398563537105298743661310260117105281215809911936783085509100648422269878752355959840304525609353717134946068999368487241303001509761052824968495209836329938243645484982759703679882696352490070449854728588399128418989413172796098553894441489664382451206809732238204249472332766030835155471570160472741214093655081479938879472733601210240190276377149781628798331966807931777417125837682044592164946516866049497084633437159903734015359971287830109835791717976994443668371121067813896590471629438913186934152163969532266828861148087345013832842976551119075931118020281197396368388656045391687623761416438464182889735978244774091813352052019968632402275535939393559043246442541248076535014255238653861167910290941753487003182598672955796835986673544183677665777812566726505269422924010700603708681996429550957204546122860967249469360006153017296742510314662993163971539696144012149114631717758411303268622322290970973904908189044285902017604582427525934803419748354566043051413989841839557679889833557871604920146350544539995306111214576418378038208802480285449569897954301742387485511548482543731006860110701427984108386982373399353899913573174374080164282569487001324766590539625370533455890829703409039594106378436432119707481749089070508810758211669607498382983255569506483039953183656442924033549852496314343074333658518898509013785926824787228131699473145504252639712555186114589220940316659011236912287327188317933060695787446192404241575975362309890885736271122874660211588565174418062800430671305259680621575128440985310030152203050587917271584817423906927493172691966760353221198745844275668136704142561846133388268374121058923694615996012321704924345681434156677612964659303906589169193980475457171142906502266612782616907690229068921156030415010469029767328600676913855777328734038942956529742335459826344101132260609227032223005231898942680181021995403912859577878177647166426845422818905114442706070255660588424838755460600064076295377452337483351453103146125222170850339113757186685917210408252840455688880207650240025178538861957666056823697920363693114043615603220950124238432822391445848921183198249338766337078603214126728156334567749434132881763120741801035710672905180623193643140180987939033801944348483759691251948248520748520756992363048525683145778846207013507341204972622116928977304775220588920607171455719967583996371785679064734792169422804372338025220221445037336227372273326040647083583476124290022308754398520653018175586661729045790940419239332159168556192855716816487872670732887496065658521109538524395576912365660500923165731947294576383900182896559689340962342060155242226113612519835857731564639750892385552864295087667967180522775332634960208955934238141536819234897444765401095318725540517525865589894443211741773974724492323364551478495859565399225314814403825022452101061541885261718213348428733661455403587629756223654365726646557806697347799884782733411803938006561421545335709513751866405286226846562652291601668052930875248708913197931634553892561856942582506230948182293264997029223942240878059245431578919985725147744626823979848809354977661733733616745688143070094742570498464119814307406961632953930820571633157195314106830618720889930302865072652915344635304052656493636819353576877287205658323823205440829036499991347142104203576913983828203185826669581272530652346021495976406559963458612376954123328040346619643946329071865697013655197101653346500114287682390450109780059190714473274556499478248976648080273680548910976047224942017324044484334257346195506408798649829425403334429236629029559953110402121925189835386418946999738833105860672434635510448355925638207266952218742318188686966738474332542023236798962325657189577072670986865476196007077342898764181494668398047051088667195433200458726361125384001823784614918317196169941764003114882711453566173704965780939604548758659084924927750793541263354291711254186384665621348130321979868291435084098317812646709808657594006158866369716275331418944457576462456513783383737961886201962680424605152017518145112968504052388566923122162947424403792452230748422408942086922429478378855975422613589108532523547127821303320179908495923984440804188682330813342161302115628352793526638114696434714865627555791009531897270830748766505767825804765410177841746019986477889349266651530326014545822827258058043153493104112553822323366192031127171889516257185933639707242297891596773187456097538568450293900724166937530608356397043681877564436614358922676433017910098493217963190826570100486055305545355717952910389339485079002276731558330437732220318862677473078560546310471096209807708238004804484581309365905749518407450970862355176794487138869970042070635070429154762780837245407317777068414970313747792704751494215077942716225885942546574264245481416712613807213256239028944915953722317374270270267763499675879012707107300301870296980936423076914454773426691307173905520132049705409631794251289601704594189672086825182812436989494691809468758354122892274144404481690415496501250940704776025376922242027914987611713107350107603391360807182700166669363774348375784167109612470214970588374981835608314312924862448511159660180380088589581148247506638134260772329783446621504903920220944878628350708879089678071217492333993987444843657407093824671722494520883099161467292784960318897378266764096543005757144320600792772487199004033586999625248981863095918654721103555259917278661053590908885970567064647156589314302661958423399198872297923051061895355345968282374073664604832901863097875484537301697938382365506466660983732738592810521989519205400528471055698081655698218670132058444891624658528927181767717721453322882573569568201187815213637193573189778781642798480014209089499001262594501842442393190191765849667474601509839987739758386987043921382422598146918801832947661658776503899673475496874264758139930985231170091105366808185193664680842912638326175901170614556199073839659953381447502552759572306543611299508640559948971058963068600108313854960221089602268549652912591201421339320800134076205721968336085155113994131319755105730803887006685725546102654877434252350453801605334482694353633239784978776802250877704722437162395041361673576694106635324350619927721966571886488406436052984315622570131415187996999489934256960450922410821143233119353181694987971479372134621945543735046586168838120493138603853363750625847302036469718495986690336375665184970418825454247705240135098854524348583904312685182438601949869699455834323004607370769753565739720544653585164186388698878946657988828778681633526188490915431016032595894914764245794467242988302668454345026378299080431794031568123311891452168166938576567397577048516177413033412630858592561443513138584996655034355739165706747666462223877323549463139276694250626589017752170996849542600597732763986438665578095741928710585503791111821508424451132694661067962865178941300586795473771357472569323608806729072599408820314559784475439524785782345315142889106962742838752500794077798897967200305612326039729383328828944270888127109744616690666844519799805830869901391251726257042935323290378561155838347870242920359224357385690377178981534274287719893575147848713010512383086316441359527269615518658140522285952925059008681656854338195308857842502807877090659756957074622317690022364317553119708257035467788901644103053008793444321337047014957097963002461048904799991706746487791665597970431272990093426315501953378778060114880691868799164599050933791000207854239598876047507506928852084312893474742444077662488928707504616048678821053719051011478396845520463968149282048670885009060928722581343311960129774046494321517314600265786254023531673613608671403055362784218161367706893235046277021669092944275665978355983902026035104967071684920591333026838152536937183124359043985140177021542299023699239799740636396863286339680871588585941041082534512445042530344751272197221155203497441403830109454877436850907600354288363911034398704829928502735044352825620242071124194214613630724910097601497562538094621931403992456473752414895623925144162605225469172812835616477109038418212171152494071641314133118169191449222101073432128035681620738201209096452966373824007824513991372917018155727484137315628848902229714360093481893711410701477320342635961300675095925474032036601195439328485141718063292498469923251375961391562145525303755488778537578632670198058065077226599616699570080858322554451423789363284090204950410429995251725899521151988624073543702233184390590132272331862217412838428358375667562795733212454179716824674843927720519654116947358178282966801450228011079957550702635947848379158000339457773189608431823213734324141705239030326968490550251370937045901334157760986249106398626855232831775907988481310162823157221033856110698874181147032370697075154238008622435191133169944738252389365137805520829029630941400017453157001978499600388840355382469877125554820027474288872272668873936669299275641290322579629410019052439648963475135130242789068556065894616754934492864481385063619881490229064356216210547814488502020330096278556815328801802740566632095301537815859648116704333895211140647524406071530440361504268725508683660814717530146823981058235028705670211830222220248732453293695342658037836105132182373482233378188628461196677492446922079845227442119753907191132014862023020578390574749718376119328891321222288882650473670561427824760292922082700047684905302717855978429026472381875649984609346336145745812580311248686171712190811930164064022913633013937914448081938595504211297103516539341052609049548842152108910800679485884813700625254842208559170855984231015744337445639489378385219646926602828746875406149009626847563128046282608002136014570049222004778631747219529585398263975114103716306377544533185799131367699235627603659962047693903003797401583181730511745407085507224244890141280551524810690166893201797037010895134776631770649469015648768674475935753929225018908807772503371035307304643250957580914739906458589207619273266336120013993280346472881615755584628059364304149579945920730095753689695790278762425159461605945870954240253943789390248693803429263571874458322900176991594963900554214647790284124602751926399337091703499660080953423826931161723702137491129051514056133789494817248069970034502378300630254891276703326136750826852438850061868878380176073365561426478233345078492375134047149981539049961235178884100164060810302653663771028463825754902504521126952560740610710926619499751562626532392778516013010352870394030435612828947433349124007190107196500720248175292918242963000275293768899961039313434347352789390626353012608332379609874839412276464423628646855786966147562697341368800131847644250954413811758539334718710288186978095261296519547048809760128878860795419491691854055096446219329089822895663079111991167924023393580687758435413561365548273772291174601112257919952217444414023054732373956096330468032964782221416844089433081112277822612169106199187275798782749648446463043605643492930466934279405044907610909015336233151579883370259986227318849072520395462389399022289690975384371103124636678173538771210074271169006394627450559847960964257427165896527329777133696928545923935640319087100308864250190814445789091488779768541661840661546084289494240709669520560738240612148783233534436032448720200862928559070301167220948404980624539000673210357421332983740759205170183919390839057138882557070218074438283601492717670525812693487507364373424575194653156340077334873599617275712910585754892431103712117146461977433022450684314599201064876637313969004838480342709959747851705426559366560707037838410246548349406482810833607168526809258787279563325412238932862143650507800146030849026552423205352511853112831730173062726654412010317820021493254172129881862603108490633078051758783490350754919102973906742719344562156565324808673546073228753422659087162368761328795633750297152102212825282400094224527219975598481482869903229917319027091416995261370970686721626376334482830362163692604145946776391163859923420239817519597446468378906580922058807394277174325624191925106981249739561015861220022612195326745424162909735147489187289427432821857621969005159180817071057265448009799013851247779083658849097043256762293484986946816788179140755922836761971217718536183088597128234068634458701024671180805253117919598101458814947035429083348332154905729142880818558549462554897056654224479830898422157855627692644019860782736681632347979287961778643440913569500051443975553789736322893965828893429879623657688376355056232862426271284686795057031848121879263312471914858315910594266295169823468712898193469493803854322606123035583736066296137686227761354323274167978879485553984606786241361310938057394118103319328579405260280842996078431499875716083988679112900277082476150607474340361079673630219522088412447562203046955276363981488632379163717859786656830818872051157074816628984521614353640950876443074327320015189856307773074787617341329517829172267755109078151860384776854126504486609852884211645216636887127008758717809399876503522997741771029249892370698370993441196199764890432646324312946085237251636075868684353631123994785330250817680495874521889275953719845980538975518882211264841053549600748012826534491133751966990481450073258701961335343189212977672327028968103184864321691026393114205836938162446765027320086172687213113101341436269181969249553952806980548785952705989969521918275779645106255381302344635238761285652776003792197273616913215459811109913069734849172248105308118397169737202152387871290254700752907197160396777228604495297509629609239761645525702033327022521803650240955519429601186864849847531822197171156846919795599821469101721315971349125265546531870761076790710315665161391078353750179618405676754539599381616176572165698037004127938757084982368257170970925434909195378745479276692251555195983231318173748525952775764402729642201601843355896502210987262858202994409463892780342770987827799170886102859038239035185718636365176933455183517474026978551207914992690729839079890358723753924547442304823072972076601472157236102934744649961299634728462357899816260177523094762404143500440569597640138574284111217024647146748145951869859628672479048944323460673893855369179758026273898150824713563589601745231335661654073601497453427371435525057175313546066149108032159949382175891646775528013169319106190905811548302300547921303439430276059948172133051218722434702471232018902029377313662362221510107482614925720148212377248984610106044767406144005916275378262846012470625979587937991732570256627357245548843088736206816190264835987828644881295991860047599288967764366397873356688656382212920222849258318008440499366703122031528058060459989080585010261957036161512699893064965589133024006623782453309492753913900927124354258747084617727748481185890529549680964949840619469668027773534369691100212250821882961283703823710249850512776435352381101888572414800161808113936566260185132984143825250007845689515682416579673981743418267963138279980844802956818495001706924136190286059255726257181969029548929008936501374701706457319335745391436733708058601308214530306634311822574831922839260812554280359833975755575348452226685280644926808513815029399849333994874007427578059260512008058633795613550297009139899373625349691754076305777700301384471210190042467229306265446666638432573601332740097144559126047995699932880140433331126904830604490565020741514566817289682462300197636040504623269877840674612071565944367549394521545857106757798890262689568801274877575591614204157777467098677226703075166012877667489534541976153923948209568441974638314322921308519184086403951883836649673232109649965839474481572004836549993776015825101957444673046863745625902223961763998044887108130554950141572960123017727426350393504893001561399962907658303230921201941762601092187237837169824852503065720868927705567506293402915618696368047418439293839366248199136033475069924116759298335097780079969919261978236240996009761942086254836071629156563463922052823657141687815031746839300928372097474998964793480326078510779077123538384187526884618969932800243515605291132630111624949549686696481090658091329817183582971131007548283288751043628828118746834945149720905414598591286353180399628910455282495671750564239345335501603231502544550517249967495587067445179937078766062958753943374996280808771422309318302202293756783513996023152132757742642578620501458388962210189661390555712214526023650313188708749590743611798232552049689914572220751269223123887508764469594935721637943285564554461783481547222071214238923530600002002612215086289578376377388637433304131196291085026157835229848221482599952193089518697063569566105492723211467573376602118211270297341719926807966750175705222020285236222790044771200480539464574922709238669370540958546536541210256866446365884335025658882782361042624383264886353639380246323564186122011799633159946620130176959815572611585718895030224675232379995733146194324933419365889508594440203164884966872692052368944553797586629601451670527307784913254131365910090798102855705528690370404698695808892247433384588408877298398181002259054245044978817534120478111798776944161114120552027787714105650496343225094097763163135769718084453443114458049151960401708730929203158675433248066781269307505517588136491071993115837990355458052910462519415882498102315519399371710185646295345908843789707907793262944943522744218629930861217547464915801022347335856315641396225171254920287190164662561383721500030350983606067740199525415184436661492459652375219041266948073101867038140444702138294885968456265063182086288764014744949250222138335986634449269819551587990960264848873035123181341924095624193411438031487593793074951810078610825524646635783914508288001664771623393204511863705578106273589505693342539483513246097014590483419591822238468356632397138760501031429750130798758951459771362071473053474355392815776208583249456609074899943037484900222955351450185348057624301094935794672522095564027728934607022268812790272783178832453332981320054711266990009554112886834767991941966603576472481138969884941860258439084972655229609698405963144861344401849404377325186287492155628037836127602663152378586448055513467541843365036577658637045803695498031143175185441577620749819642893771081800954164532160413593019659445590475386822455968664007941776055859456108842635743455842999757124112094411073046016709944083254933062972886546287802744515061235927366513304767835079407260173555047813112097339405733461047565513979951453725413260347438848538821477696188850177173734801783557274150973047038469146591523732069500361869813904494686034234175388681818395415581972893098318567929092676099476544558722879737895709766881956276502232847525759072203187021334875500854195777231530329629263930524381986360620017318704788719981964875437319714966891132006886072835512554356853407425353663615253058265962858851584187543850224732441549784888223522108879907808824373753242394107698061690967425897274495193537159839191960891854862464921423444541073843005285513199620435960028588017843353182055998586076582515026274760102389582950548367822493138686454814880490715473772896389791632014550680810954505738930932351195456790634441984686161001634095732781500335920149906952988574410289462324851124996966796500371245381191983059493520566583173588420933712140441431280259252859792976851184971066177968490211631075813704852708008609270378782323844356746889981667355942938958949867758655741576112290930401682770945164180572900404634828737539088769886855694395268222331425563008320407763987325808417549023735596512593435427939061900322770909344628574904760057219116154829326134482597879066869173837555281754661624947023937678851924828552131265580688659149521164423549256891092717669600857864664475633071388828276838961835897386689514968620279910683185777783427981617753103656949960413832146124819080950461606747146772920163241877525291633920620811764286212220007389199834730196522360284335921133898624945057353889751041522187033680456895674407485149443477371695044903081752476027455840600765755357570888552299397091808968513584346679450026417849575571600085480664458991693657317813850536819479751832885206655011720151895216203467299182967028283357822683214899854959325630028835689166893412689854413070722161185353050046248588314730455708960009264772371430946195987364521811418242110013963844733620788098389116672207212300824416685894967988235103629349680093434314584352676204686778877698762176290826393450917980006356235848660141631774616385689355148558495085340513593819569698833798488183755737114436460855438143188310714691704289679253391016508431167008354979267032053033830493240230612811564232132587922828421744112675978268342701206467028769859518735443906533210217568310700750886956783481251622449297061830903981617686064313789747586967251974727939844498902392107437984903526935380224115956187274105146660488065499336373682272866996806117178315437661882470432078749114784971479042611096067854537116355312099616029135418721939663420254413215453968955344575957687427611411746387248840656921494069088733089207555815419707298400390864876201446126044675012113969629758030292456373950232786827824778444171070263121406298492158700595821320037685633485225819917095769001330048000714191747754435706461422758815602732832006675684961276540322005121479413419945031046510754432078297681101930266803355176970794739428661197094191094643283570606018397782091435519658179368458434544545415307727037269666127139236880317094322252528570388349210677922549359476858400730085721481576637718818669054067772105896986019327354323668402651960593839358601159048120441011949221479063949015067606585757808695918936208862959646240389416589132839378251774199894910614702237481295894647279195957226069211958783971780742808216983767104778347472243915316952999228867976275743721612756620950428825277747997987551763355552500942704082547267046417857021489274600458558637319377916491930811783060765690833508784003424952382310891954498668696584696405712902165915168987599724594633591793554714224963543183899375107423546901956163098576061712196439906543371270104113053063551597273787328832840062798480226706812048914682843052720586684659476377127107369078717484345180642047062350827755523726666443354533440513911721978006957278891317100231641174327363813225383768990018312555343939268856847142188947771557714546872858216801001355993654021586845047585018835107836776537360526314685997060802487108999828230427126917429815037453599692499984281037260689776893350623776140319783929135743304166544980962440910395717742870030324302454734190865166328188189350617946400881743568135781527338443819092363694519485615487866292202636691452888657344833243516920975829121780762628348834575925392413267660108425952977810301645896065726532614303884087366367159945787568681746451853088982552520483300578906395576961205688395284278372236591532438983758330680743876607097026074818069423075061699268490796235433442420202321240643957020771466459142771505652145617046612567573264734320940558000793203343829130634528125755362737462652761378488978140489966836064180595287454924216751853817389884644805699592305974792673878180006347529825467112396050810225209432267446688259124988977172248176327696197988509225228830833323199648343285186922589415469977817572254383901428021450626411519398239556540667175793167450487601395247306647811113807214687461523221680509330458340444911816664169548913587745484146319326566113143407070594067049127568890309831399616001005448723018583654459251335475956477758247177215448325905467261690403163236334575535707193963691179082125143591408586045252511828175367742322131626256613005281472885660979137680100051125333110605756793064029750927070982729934882380262422748258295387732136708522602458186303198149804892221917364077124788172290728251143319697675649082526641044421301742968065202813931647233638276267402626857311103817016566226611722860473137813294586762794662299524756134930956999146628834722532840987361503123569328534053735833302429062244467889329047432661301583215097473844188303813382884594851786359182499797526186687726116017311877828309218113562552720547538389052935958034095634528588530366171772047601946869101954348111591326346609405987848757058655416323349647766930384559399631704312515183168784433658136797707263389741625773593286445383748941864302396259405990371670037674063831464640206321407591898860794845291003754119501449200411460894158469987062807727244131016130482522643596168662692368409502397187358347142249391692957501495544437227215353302243129461556216464015000636768064050801367143683804475178303170231208825435650274675163989723734005945070492551732734459160406655308490767420865914770716187316397826194306900898884099298014098216269874693681510986289398206521227930851797616333364037490517896145426092274494805755434274811596536561317503904728539606660749024990336900579747279508293623987720958503905418795870875940842405374919107980122310839038342419322546968070661462702211248425931896615303331199226072710088696747748744748088669656555205250683330263793824647532596407515728339124525416775091750707666540723292312924495737202183398123576534352635770806252100465120209826820190632091819023547092153789088138749699076357660019672494642141338053680920470902508036971704126996489542299499841119104828225851619936577283069030604673596051915045763437718936490581178412450836362734195474082856198805836604536159898580068156584379310015636975548299920108263312159779222802167069973252276667659553888714913069744522361282700121283684157325847312256235216955292912814027617839655115852941512185643136745144684808266745547145295107856435711992864018569804474245309346791255216193816291174297912947240683600204776540736823827732186033413212285838597565141486804299478851323556580364174976540848855338268816209804072515925842484948220832112812646410396871972857268342322208062608661613996969321191522217737416736869125418723535341661438503136933333308095539920108617709629875873832937259996799527243837177075946796702899746912450847981390598886345916794673953480418419480877467433742922413703720413892793112612752422902769180121432790294564677026793182942043508133825310011067762832831809073268308285402811372754496031717912751743521238601506195964798203289173418868790335528648546134535812919296614288312403377562267113366284863173981811635398889255226915963995502965636558551443728848029767537820942851154646954352277780676509887278229847149804807378946791315840624133382455709868025558181602878954775952176946667524586001866384041781861250696093548417559672995622177137911106296857219046101520237112984883738662206398168485095655191055984605948469469846773048271461152547450210110916292523287571425703168188856727585089237973196380792556652972953922942566563496732887105133219296929837600354688236001701742638973708964891891061941329226634611296217536750303413730297974124332661108018266326525003222979040190833450453071721363098413875972991707296229110878399341232263604954384212001851626075934875750930372016133166324404149894303929464803363339913595221200062708744725779475734027723262410929481359194716317197196307782005105257513673900881752922698342184357973702102132076759130243226602024756448467631437068615759078408842342071051038699407837168804379504861329979318466738384645224119391114087653177472342490107344682400783640861788290110317147294022541841974255398432624958617413527062310773191504461284814332641893180021713700718300339619015992288247421545781867735518262198286417441072501181425515752375419516381889150433986453350394911607827220240503569728172039482083189830697849018336396691859021385932470070514858913498373955582075913426830506634699147559285381882795927287269584871600531039093590196783941516397282097562815859535654924520837243708168855975548436497987432292054018061894323914382442387842641432109634698348826049351754286187718633394925033641652846404615417308073010815713483377679565349620505306372213482871496295994658040635255569968650076329302527484135112758664916844902676949539902585394007371785853737564734425616108612279202207875676861644497670445262641750416937084247690908957784002418542818016911115188112365166471624665933237529199907791917601907400104467093044323942932765412444603641765729069396536922737215526256809191807873549215423449338078758478562504975090406661313333907170628011874643595879539793146506793081267249938094352972346723046736353812574215669390154229409071788729933164714271451590718951453781624215445834986522222493286260936223620112191127381726482898370300947526571556334720873161656231045366223951250468391870208972486746372622377391144858355555980497354986099355042242469016975340190958119432850546142359160120608796341383508522849339063248679289964677545506530473139258905546974136202041342206928184707359837962073652969488981997213942849019608430540193698218414656636340155084281377839297591804699620377223926726931603073802152071732663953447254060770250468692235927718422189694155711321303959040939972809096643170298676664928614672494470113710544624464448132518168106417782469834150595730986581172560366768991154716138301652575800150257110942481580879026238789853936271020439694779386780362865363239254697521902373770506878747723172135307956627256465350502535668580244534452221054632837552028015053964162670567621022471751063686480688521130229339073222961408798735745148842298169943635075112379356621044771317676758813129328249822359984827726733446782859578885894406953397075018163726885993896474721420610847175211397853675388863198060480538102203320521535930590679106932395589139528631779757691531214060297848687543858506261183544909805305330784851043327934343022105168744341260976755612307716193460613599357642713729753429624051343108964294001014668568174940777659358865833596937559468509547398449068373061419948002638588039111104825323329557421802124495821991680005392000231858685922765189845196801261948160151515136380305821528219462907898365311722898080779261775211381381308503069219922558349898464530874264825636090733675786454935696147416653933514428958588577320360400773915670962905138550216629607073499120780401598557193714904357704263618720408259827355478552976096678325611752590401054401939441579659263670968040249157637663155310838670618746790364462906940074789864780200245114122762955681372493096076000857200864919481760075318704697050923826648376893278693813096359751810369049169697175201056441238705124865513957378214443699172398806360758393004720656365420904968338187580152931362687762215407256616508764812012417452266929231789842913052932946040885965698565689139622822947893216017058563580351121165768309082767999578111319175941407971301531904721928205425909798558851016160844394017457787915186719098887005622230232021376181671828072867203059804294035050622904617804696011254810963020986042477912248122340344281691072003664522347734213137591266147005631561596030866063907927857786405375284587291177171577941863862704229183082527121596484036932042228792382476680239923832662439408875593112725430693007241811337271085605364850491668101279083646893663241654451665695063134882766761297026277752578258286080298604451178037811021429385715210473225670107943358847786504935976973402632709997307445095337142041375384496568651773953768284240565075676602743011097225378622100233665143836431556817033958733524752442033497965685939089199881391667442507418614987555806273862953673853164643652837784207339527489140097010312990496675268540252405432660750045351760834537549145134748333906193743630950798520613992918682422069477816542556866352068474747809186021982625131989449746659181843024600618994527067878117152819776383304169687480625809880387678413770434726517278837669274061745612529956319082848904148456526681050313854854088338944464271895216913197052684330747517008425546436893450803856171238913569168794307273126606243755572347950763577717505441532712169704154494582573082502135169035721294957137187749622992220026071240474967170226160841301315267411170719829317121865295719060166303495675732388846804620374896973227546452149831579029465866440680119415176688578359687675332983360037146876952626440260896020717991420036804978846522164950590084276854699519832640507831428478467237878052073291148332404922374036146660011070738088294695006676175009204093946836643645758904491147739733876623612049774394674270149953862352666038497963028715048313354794265787423652740440159893167452773191612000125767299872523561395423736449205631845191021096390697673840200559927175360369489071717343919089621128092947703791647274945767374997148794659340877368572836868996450177741334973250455788621940336592365744797357632318921319346507985843787496423470080438104996213902429990791871685376529953910311018039598434751601215797447387792436597038480792637977942244930237313210458944328718746682454005359552489383213331734674033121933725091885383382432065020110964001116823543812390048866676722286316143014367634712697801949544592187564817457721656954584661823005896801263391142714730774996003673350836672103052859288354314284023127472136935959110343277740250644424491042100218695121871040202078598213066656957363811062996502932672079280472073353678600676120248544506473549924627259844553565699150763121451279035252646711846103731109210855486511335894491714756384823759178178820789457958165660193177652831589750661049876062274625016637334894204021690494847546956532357979954513521371742947413924685082237858473542832948511741803052909138662588848820085656565046788604689933111100114276287319690842419377365768870225661905765579998929293810440006113023760661380450001200836506868170564525214069176746950981858676054807028108396443435063028620421749261100279492698928105295672303150409988817772772712071138994402266287444333887718569860954831459971689893664648081337533641788978966333468327182198695210750223805911766739667304217257382305558351637291318243551836317480018209234883215164015462618515072699952177952202438018227061902887759854872755037841447879997974949216047225538039883794964116594250480066901393381098068787705410886858422485061652627109059606773818768242552207843972629091383552949564452186027029413558718416335832624454915238456595003783651544562701300183486882319331824136233990724247216551951678896473231976681744974052165240750557194062012153171456099962433418573674604323763074842726549922677098983555273045538213404187229050118897912814440595722392736187236307442805901015074186968165126528523292799429972651621719939774151693170078688505305836705434098160470268625038034780415396607902904814936354862093113512421212557382529253704626366366862999553433672347347309280349814921490185270716791442767929715073275779581395325026483597597571408519430352026000353908370747843551588752376857939239720847179252784031326970632574637472283937255744269663853402248001196289352791230629943369004739661847840881191580851519364154708951157154616020562240747566668784927052765996672169051479472276127456721257936569298962247407789623819020650676049946497669422473149092651078493199094882040244833416416390863825993712498705979434453448509328425723047184241656005211691715158339941211015137054663507630111316269396651626680148538398708682881855606592622039259499797351424520370096015870734392615457459398792450243215547552861345799564316250965223788895920568021832624981382246747486896388137086573648831930514547836139212386736788429083379251093975870738168520472592827000727751650706065810711500024686470572149954033982343972068338676509615615988553401821613380090311540841328194871658293090008246291225256851632838547567633526089504805560141221331150079990376004733201105016495668242358842183898745870703222443004271849243403477011701576205483701933068460930432639192039698650038633832021456322305141344007471852923604779465839065267888182935207333522794549928277581216919698193889560453668996612212827455956028156868759200221178578636475764044852078515061639984805393017938710883000819998219147187674299372218111437908994732060562739684027997555189496165213500866500350167434962668212469521044301362837789141611967560478790371801258074751087033732186801127891915491834304187204422056516022704150217519481156002427737273492831151326541855977074777260806724216816486694664333827855585275504276585304457758569238118832428924770210660392725894008515473748666785543815943730205658992659527709232677740219481991527363340366511022001817786076770765021788137052452019360606436141768061999806147636765296804910093645302211250231696367170013860037408916142967906095690126335110817553554099457150209433219546701654939751060796991838384488866088459845162041114243446530739510485525824727103621111032866856620285542905046272573489021056536243291027891654439452497871646085262628500515958980328510622203802666825171707459534651149491436698330243974159490419097654223312701047552602645879509049135131320634324156702426743462695143614456871441118998526094165642276701075040249177963445048487285113268088661940091389470158979910406185606551577490587423322043970547942413448838779643476433358078935178891901784243698755578551810797533537766226708719261375554340839791950740065709097058570146821935489071572653957217262044666687651199185569835888332289911418067162966345478541006152592333786459981211864267027615281251644652333281996548466787638373549994249109279466884194448643391021192564436433437014774835065017289322363091071210497595241354093018027725835820104015209385601991649667560990092496440953657077223679107489530872803105963117542196434040329165770582415253133690651587315595111677690529943232384320261884613288399535064496127982978272351324328255784872147802547484917218985826017127457020568938890064597732358308368795594699753783695966766324150370998532041594819781143888372420773168569286646285570892427625389318652735581454240057327280517954672605471208693051802687905777219704790308863487510253297290919589415981640980889250684822934816391970256888625253803708963769652769390888959421009938528343961083314212618472548216170837633610801282955305050237807385985073062213484332052246258824347127796294635774193216268512065534345016259925489816677886644907853403682099912256119049825994364889495575443042250764058846498680215104504295873555440010496664901106465799574599329857788856736515583816577136054868987515512448315364902582718862280075121370681214835441973830278508044219248973314997331890981870130351320443935231176554945565349096584204985601916210196639235149670617960055049053724513437211085348417252358301996799061349343148259731584487268894191876560523880377030124871790679261467937526091533106924736826420762201715929770812902379657134616965397055517229930637323853790537502317309875534540856956554816516164167232701450252203074480770637298228818268264762185554144957852502621336607666108225093165909495105266603718966219278646956858956644756689190802997090493831982191831499006687227560422994042253379644183085723872042043379510937403872248692724457327738834901341391700051376924571766040771902340031886062912126889950068147877179096007383630055400819068740239018196392347859350896888361819791574319043086474028636986048149892282216910652958690692572396162574824436873863785586004983995110797882694600975811994489184041347380794900164274394088494433683273160773011142723747751052859778590910465658084635852046817528594946412698217911139110301051313518770160808427695754608770470197541413095151981165856230789901652518193229712763229866119150461712512476052535052572992226887193729461275064024911333139718588233597736386208642388412773766135078687588619147135089880409129036207507126129168759243236183290694800947651615993018907879488414647829721252021885899604089919387450427565271725502110027642903178641465950306034746783861799492120635045457618947364094501471036856494087797072052029961515256316629223121775358098852124327598621210466018145820475962271779399455616102307991372037224403540396002731252263923440477524711706853389949819420611009772441377240569962394341138647405661620174669869397075957161502266916881993665609595978961545032136746875503683775715723900586419159910463472846171619339398399162963773495021347547695770077224316268176016902398234680943345794748323245898134998873217404722283853582242422018804366136424001830454826090053941529052795835043522045542839610850734719536558861340174144068912039742587332212013850963324638349997759803462500473886007639950598993795548159338761007410426193580247797606569986752855862614045060668200036431794076836363114894206139678307866247733967891486230426315134293543864647575067043522884624747837596581974536440624795985498166935428551917282117964934225530185088273320520540211345664254415437420904836912492603927014647043906113171094023101490534850689441036809619138938034468502274234475905752217511480951680450709278399922394519707692966628650197261842566401007818536769708966692682775902422319617649833087607447152878201481411311112945794142996888299900109181431424873719007264278228997190418710991436331813901993288603445006816389644849916261583025415453699088551877962014608871680285734810826766131167297139698190719689358116849755948917613187816337887438548163658817145685018814050445882312552881922783993899692114666134437260671858819413116849898271708188012670183455656601452018425150857845774661725424642306052077266743888497006655922303952202285027947847286517271880501673195951974849131125520461960704854836727568071933006687145762348467635217254604808083383781157409047564717201857535396875350820911725010599325031320262981246103383155019574093398372827010326093920497037071678830788685239494087719291431209537212103537980511185663386991486817403639713451289863826302326380927727952055411107243086883295567912035475916986728858550943993570136030268294718023279369278970043074159714725353322893492358664579350498083085742499781464641937843579484170513231724154312750467055476713957662916829800639996254765284753893802247551592117089507623259773618376554861810609241575216094707340442393705926463979048123329835757564402578176342482600539819563185476878942117397780757059654819503087669264802473240735515760716739625432181480118624920180027573577573181947646335490878174161056269937106636024396550857684016658259006850861549646102469720470559682130714168899733763554673343044905190608374799453589082077444657491049495662111249379629312607901652333038022632551527331563375639309892394352617574817574221201132454860378147412704831175404268189783860833281166474583874502419272065272204107618003895722471784024137684264140429502827622919809902763970189625413942285551999783979086281466029936510813307851434300182210614537870475627711257246700881079061617120112923616000380520670741762449056464429713246082103472621746160483864068093582290106923969226727662889170499963122782794838384721921661683831444188769586435416914013514990265369229754883870135175396054658235769207985273880628730300977483217433298539953085815384320216388980650857266471465969104164978922238874622067739912841917509328917668402869493419527315942655954006299580228945919717037623026571070213613546374189971511925568776632763659924711579373097072895461093283567580768090761253261527775352801128581514059134979513446410819795304057498337594695497023076280706585992894788799495561153281333040001682323095112501161719148993870188336771967780532192059761979496928957632146551655974344833723234815614163078313958424042923084852993388149378329418587524006090089430448280175879672885206107833151189821252342266285430442345718832364158391600402969338444889512033773959077124499217628295395982329671655400014171376139784832529299901521762529457563448717570401457229017384984227845848316585830212349840301141922310617585736637315487967738028567237149132025431571866313049193350803385744527050857038348346115125310061228906451944437180039993857997514595046283707709770350791611776832184621141701736484657605461374717698927013324752380070255405010293433928056815753898372451785199801774205613564832518388715771726489408838678802859337700979490425597093175351817253334671044358114478988268658917134605112159347712931059070094180822109513014898330814154335963881248347718822692595480850520223138821635605891443118568932805645426557132498001953600805912276367837694677311530197666548528265378403443804987551617700830859162363461274822456958665493061328818869260438704802520278397589641521532999614055055844220276581875789215652416336809258716126563832534546168500883647915660071647847283578544717340913628988816397788367352985111478436751095226381260515575617835489498083736738558827530746225440481971227444253411535090868038022186827990754048351815196493553070216625543955174881565335007896030697727803847736022519175440872971508027815303405382895805646633975150850584163582368942323748973019118694748175410527031028588023909455860460355165557550277296856643771784556264926964315294836185477526227969135445440657456266923142275854927394450605353565255823447907605579295842774276479254587613663648217605037139793675347065081240388804346071012354670232884941288253661219114267729943573067371876193759596510665701420910554304721350872740161924781096152371794356820857344718039299093049737135067979406113016694604404029357561140892004139163257454743690792607710048777021264340117959886092052002897584073722819123012362744051196668781666403213129794495300648660230731940442638310973059463266629634183430874477563524831620385482751827124231130729120245685090403821126517781372861409198890843317063366365273209322980631882485902906763891982216810409049163999476706915605623365009269881266380888885657351518354947627047089822994605996385477125675712601835384237266340874887217064949977629895164858242613972402855758436248001603309323997057885764828891661743076752715583904974500483545908256482333999636671337982198439547366513523909214286522532741621169286977077414616545430991471200933977360231697482911338035855848255117542707094077285377349832714292125891330880772716742710598685716590630719159760919881005487954786567453561344688568354178909766791377023261219792983659133020804455144524005123061197224607641375697706275605207175019603050271537910699041859646042254405551746387927230524199923666731060758892144904782139056456950692736982651101021685622873397510765675535974623733840123366118719640362202130423427746145267842115745732262439630023059398558830263254476180041200879572214044853323995115447651004800347967188230748997041043079929736755087778561929906755401874967130715026649130631753327944699120359511555846068402619680780634272987893176261272221516508950587025239012601821658576770826562112166333486924009444750173531498486389539856610260580782307615292041385405619618810556383138639817733063129855830926354185224391384257765786823327134034563705850338017883476807083628079580881768853344629107829061626405931350588238448449418953555771603953972392186010933719453339403408968068054177972769230129455227278466865451753807711047192538909077744083333141124349278607026118343625515376625637931025614092405142821704535985550860482857931987410489941848095943346955400511024933424218995584929563544714431565174690744596298043483634821678458423013766540419969851095835426392875312342977826010488024517048566264205498517299942702566391957163381972765152875907927804638866900247507907719592522685683587078113229084168968438116111035518744886735405475080365598967351566035415459881009230224356409257059394891560178297738282763858135375468136438583939376874283864411260751205175049402257909869926595536071649355067696146359569104707346549692797621606578442080816689478596073175664777384536104133307439207316533145020398278347000186113644910857678426436692731228770552026915050775754316055168056033841609497430033965590039757235269050309858367548898822712816558928046735221418379182597999819403295160982832008647933430330952484638445781566354665712659494120021079006135010101760952327653103412917947972455837459449760682056060955422864459736987363267025405353396676458913924666200735393290751089135228216466192411352645834164064686496114200691823919915827854821641060993587116224302062097966992271139137557392460952581579074748108615952552905106073446241737975825432766675765338432187080680624798386816639236250556464686304610612660927409259965863236231752575610509267942263494408771282196459584361719057826999240192092630182566772726137350958147568794818411373392766555990611268754352882427831104847508166302594195114651250738692766712174278326047156120755524153396485675014626526620366360165466979001934659490360689888478335159165779421351996604613976471881717414357039351571359472930529495004441037044269550412062813696885810045550776546692200077111123031658495826294980794580618792890538995709143448501344053071663249913086534830693754588325427510508218205744120449558017533328294124288707716930732664219185288464522755599473465878038039233261405448971366462601952647555257620252047863775501694970857302519767660674312017121962072125555536639801339031969980522920385588765524867481810038567230910452915014885258695260965154819524615956225803680583235132447815837953580685532274876530254614036668214791459599813578878946953811169880087842379287060042692703130023418388512345382827270557980182119858336706318202412992549572488212146709219791432442074127570410252514304954049101667969948240050279996240615540796142880824253132041292000414592777870672085587145276084625629929617236925679751100683194961699227403272801050859569249124694566172321524557672751198934555797922041800572238422219458322137302863587435792004360971536079178928766551979280946456753998387764299025305127339293208206757908190038582606704241602317355087199018853048225697036126186818779030367084872020446175789012839917317589842915378559094215838997085251516800889281404662800092602693032332147209290354945384789882909003761600521334082828231581452379280786960973124722348308910742571705770390890829667480137692944511066978718416640567546613662148808047941182059633900267702042899722207080875235825947225470852758764042293878953686339143485586862524801869907715700065127581607543076193009485950316136272984361095323235079262364398228627759603744055029287169545388038468804354441276411715989943386601224055114212944566863799134149875842679992515723733194838354409210842152670357419709619053465529333718557390064433758587473376104674162227400172572390479271553186184704646879573609709395384454827479318227336815610925697294051166343018548868918863982571231292811810747437154305233753782691969169733270317060939643961944286823741586479715141420007216529929938881582860618262933490701178821293613440248712001028937820601489284597434037149345044679324327109266401259392607061284006195509044019420064851327785412203366916427556162186835351459530067319527792671799421941202764112875433685460651563995022784242631373049867187399134054350125490797561245656839599579775797098418019089563975932054847960778293907809801604401143664993957778955511947076670816501575093779740360729550595752650175865239609497687647603399481460746352462452798532337248404253466500895199880973468754028427579566356970974953895154649084993437596500159349484765033637628513020707772882280772826662590156763060148395872301613927631132685945848887984383661003229224981874039175361523002898916724786751214311111505404587554681628588007010158946939164983378556537842062882886760547245499327706105829638488936435046264949538788708412080163955643959576264952160437723514433068175772309259097555210943124938478026362154868059690651976224351121995270470583752776868168828452884246917672475030078814809540589305421993508890373317097989869248801857887970672570662584482084666517962419618825470661819059455222125161239825976829519061750369447653516841882819189868566632788735389661347630496985196399874431935836420760309359131686295343817329274689707978061982291835690184258091662480745003430358995266605513166155281650247027044797141126682651947042154276191314032926620538078073175500737984276000351023066615205105260907319662745976310876941015501872344742826353662060733472348235488754038614252249620607616932218752721718938565474348267712491401865156809382999506244351700900079416699730552221531902082674679170346818548392198103281586861460545431847515390926273451076174704655668127773664915263445491244521481315837163349367506994033098462296555596598295711062117282355723220161554420592223631620288031380303097806426042240238464553414209328917085793339363610967150664957889812578716942200737114026784774539085622502661825838130531073148680265815730151917923544315738880536792873269477821245443269247635840506269590469089445291528760969156906995737492521672233529424610044828675920065318644101458014742258169304976301154034210248465588968916757342853230153487809519916516043244203388177627999491195229739071651821708148209967915843199569194393602033022198123146067095276869461919478788478939217869816848092928204704238796145330974484146592918231350558997776320513050742059772688625605122687261962324412039284158660306565093689782583795191405643371759515469921875557015146603685386781553790220728914034872808801240645055180758295785592349432523112350280066168923839292221029767506618876199276026851716980114714468610694816317551465955621539133778861909046805666505885023982106578326913968340998109052135870681421926884626531314551070190561097998162981710456437977185719023312688447847907177654630990705736474590113552423779782805328602300668600866002850918362718077296129000541814929364280809014924001419021532069047686344249259878086129719681433778734370900079186789476231459733848349635714988743352476030628213047561857921870447808884312104875530115341925222593397265642590253433035302624758399927776328891535516669251584967135814915431005225962002992321298588786424215560164406801702088383124790017796970228308605747579464737402598284981335563816483273088626585221755894670559095533217262376263734416062465568733948129484110306883857542101641607972840433543180945545684696506216519644416078875402057005874951861987094557404090798429942957829162355765060127315728488480607370411431231445194495851565961317644017710536091906086161481249358487419639599838315535559242536898302256279560156501709596536533336456716212526711117951486416812417198154973045040681884614434842823259501706981514035223379210652767116900475547885597811696369981066640755316111966887442484709379339518285731877358009460517576003640595077765410130683001389324816102890077318908186176598654786998619508541861851460175862874183876462767197788112952971529029543211398825244716565825535285966600849153953926557628515595129949177459454525677931639495286863020598165227482503112101868028312538882281953655293860787375481077491088398173179065047480807376656935434163997854972319245127234643018621727159790662774807235997678837831578134506171092799546018592609518302604706696706214638053053015256589462294533620670845271577219773401322806306978127922650894624314121420671637748309161859595916826881884018477442626846174202098838113356761164968721217913301262057123844215386038321482792010902538579713128150008413790257501505982418601135843806323267859138519233713079355164598050491362061915857515847270232256069800054235931022308607834364982172076276051099186154471437932972818848668875075321537384277656083083259633809697977934452652526609476635460096755899800166587307746933848853245968087907256088208524709616447747092397548267327856493476108459255741740398040981554386491313027063992500564531511477325764531123367044056602843386675341861852728815053921990913505359192595294575681333093202616219455069595370154637606402064560632875795134352852279224205658538363269003173178683840427472044521441888006753267513147347107138031890431306460255257496917408779675906929290055616053364147854253592221601595412219720017638120319041675614876375089013522780491438663342934121273529523792854022987373051621299943773157603474418412791722233288484524159974386252870825518188051488258360238339640918022408873362828339876859029650432389499045353228106178000478102695900965421828060905689367009463632598508209963826320907098574547844500077823838115692483463171715383776131013672699200398572228202774645655598617670156971057374186581169030242376165593188362085723736740613462508963875973578564462946813909477623793418781474508945064413279728241719594221131380021642201875690247278205776621487013766595510719356495893043309226339276275489704343808003716206051983991053594941394373251879237374056754789848364685755955607318331660241265713887587193269265362748052004748114864975251735422395154101810630033568735051457142322614659054186317606158159687649011719009225782084817055664144366137393493777402137693354837359561949752312161406889169375384972314367158619162192652281841939433798244464779181835828028341051921868972730563656451720246153421289763229014261614399436801299301607158297746381839090402891332470875682424282980597371830106846217326707007727269450747027772020057723739487658640731613100061332410008313516056809991596558406028139432321934068209613051595576442666184615463410284340405417712861419819356897918176851424875603167715567718924538618921226267856871010612326947348850897033358482422166282898566969433873564149836272603297322033249773679398106413160563361116241495788559079345421366259914056991388909717104997527826393076155756425904645331063009132018174575991769028413346364182545512865061601736288846377303759064807636963827730255025828521818898067071048361714352209926304605988073947169313294970738688079863832650201756288425354996362808821048888658016599582024200935347739931788084542187210259779286048382148712214660307249795427834972799115551656081921058255481973297361599812488447663938374937319596879595017478028593015632594431600709650587915312569442508656537397381871502629405331827557092655230969947385454891139179249292242939537670162552111325659087811343666737450713422263087661655347995418213041375762513114150026126013012113231234700522873056518625901214877354465585523452576463510984219420670185122801303635490252988754943006392821545388196951670793879738221168679946412039673251877084573667459667780208622398248781616928220301273957552078383854059213669985060195303895259546827187227808977654607553273922255167418113467769424966040596004899559794631554438630251641597072774264550827766585894847559243003541385096227330291526276837964879362734930044033215239371412047558085369659519092799208587279322620289741599657200961096433633499159333306452492497270872966548071642504675127329003993344288734200314496270481313765140132109885099840825034141892272343778394838912926710132267553398365505950344085389213345580717711503248274837734118681610404227904664337751887309816512966859774348923691984288121359060518295993502370116354644603070543575964094904325852725033785757671061745210374861930582931619063162439455650486935132923648283758926291245573560305351401950256937204736098225285621634645767667822432287140803321592125371263872557084534589725720942468494707215802852815090768074609814564297307759935631905479240083525845182683487603191006454562729493343262090930551410759848120088928703766126393391100005797392840944285808613122344773662196156989155660830951139748902027932560038817230380009668947045759884435100425144431721754893775706941039053852935514447094545450604002071282263175062690064254206126595804107394666927200146401364048893009783628401940294874149407332650899384561804507775261829532828014262079109858366525574564750371179908003192195102674745226848079745276805935533787371505504440004766024533474343996193475583850113515054758855737554967014400822139098142790236367171747663731531489033329404020147298545581824292623837268046104972061625971709860315859108252668589792205711085129733032907171045774851481571047691052261930145843718275279482167836834266572136084023833802491106671124095738838604146173272840246584870071119514891329676535459686903518287315312777718186339299303038683867898693438101484685880133505679695994413326136554693325886662233831868009457588977276404282924103400292249791767405793311453670278899876824071858251276719756341132364488434346099117960234672179004115204664357772493277522441341215460080245113522643305540453578874091944499402911919618408526092987713410886975375156198628235602020107344468060374028456736869683259192341688609313585143259090772590602478074974274857879616302444877919156590199692301519759967175839102143647662623925742602868227384033575234530058042227152388969187676116454043991488507978152037463023510855588151113538359714154091378349529931269864578424120299717944932282195148223550231404704071009518419382619965709488570664084488998610454608114234579367730983334369499143845218171005413045465942346471256964203043006536856571726190639260219059064852741014651993001062031515297104576176249451529486451849570837696961394586149779048335511601883066174364480723577314708053959044339448423396993309003964940251022308847357349795980588004676351150203448399918575347713489749157610258136721484144523208117236553117209905842224015482897601264673621852727692793157588114056770055238270085159587894687702788794047118613859019153851547584117844849655770720045189908569909613711155218617621405730963134305438125655714921544118370729377355081966238840733588060374697568001726633874188066912260151780814311640087217110754789683604908089756163648901347139369817134934716636444466810579991860649184646706220811049776210227567424259377213643558680547989169266111502837120346875532134945269133603366874017864781929325576065223643007925969738883632234183356234955897841893535588824056375813038848607366609879004315485270049867815303364149174706409580273666433285121455460740633446962945241900800945618792318073409291891086000478954623068546337722573835930707335031522173240769431176452065773792100005953111346496001800653737510576204053771765516048749720518181096596083132872936859251705333104799222027017081770819236915157947279271583552792134995777192813369895911177487717309300836974383881934375697052829002506319940144942043760829478503532799555776958926071980944305423017453533257857683155017643594978978195609410594179632515488403647216272048720995589158652924018013033297128775438166721192524507570334928456712953879255152219857131663783668464061514481812104429497183719280866990112663996036883441839741022235902337025306261526345970875263873084368377951151198623841012141215926496170875081758104058774740180480575030775035907738111138119363239974414094663886112551905818404384132041013436479566114203692135414116946047249624471526287129558200003713081991017756994489300730604954391982152086420620198286010971941499614305321060826608376255331016587091341348174388600065056782945081046426239393490377063287537897684531721191644075474678760719783995611025090101815866919305773882599473145184958804231343227545495772703380053527013744288992531394479977063374915140096178943376918555817696467685644881800004458718345321724669194429608880334842006856544140554641641804846424546821381552243870684694517438424715502613899928680592011399673336760859701052065241776707980025494775649651544390630249879006734060301040105256321689834322088307958960519926927199020288800887718902327630662255616077649012406801481768699668595995505902543325796597951417678707156282295790905250454469544413937995543062683562921863431504803716519182391952897692651375204429061887565479308605350837808390334301497353136915662488848416564215841666855000034159302316775234157278654867625239347113080786804293370879233063588979934894539250573118034155387972849926377174157926193460423003537860370145789148529114330877392450151968359526550786268462318035278843378374174711401659109254617126615798217476422494255421023601669193917392261204086064621361185219564003904477114768521551101642753256173255892642473494798959122663332891564897004646100443824943224368532596093738814127089161940203387846429933181973969971679842109031189442137382013133976192872699157364772140311630889723023789522349137264659025271965289818532683902228145674255298659860623580700904815136764668008382679784946386135050189696286996141960756831309210297529788290313838309696171478466697229124938731110623772986964606526304859184534393712315347237723287178478469772292756952442284771855051561967261697428794407050883747547991742279237313742545950627571266276090953636614614676602338395407889408351950909030243644594499085801575871377148089388349566079479977913721565843232782438915683600697178864326986389253663024617108180230819994795242085647685323098871474471254866659879686554328995467516254254557067286779055553369811053026678649040899093387202616305341219861362300941499440921331709846304941184117519121515674302486288789618128966850110969641348946778104803014542101020726529418190743521090285349680873868093682973703953457400420925327305995555652805871153862518264627318707978997262413436097721017289443112243999920705528327983909853093145959027071480384262684145492765556466311835372483225736227270228174193965155121313723134181256634193559394895609336831430455301811212845375474440953062381550033336199940014352811929162002444084819537185395885055303790016806426324662826787210575406868202760856078845500854730050013558860356620148060682521555913308837889224651166631882212947446438987867560749003702098267201322191005496870071546951427713134029169114392108182564709985706689772708340435197293977472008575658678748433668326452712405395743092043302280634389863415891634624603342717433048740769173822257325109217782969763704284730446353199626615581687324590400489023223745678645545148193356983890222577389329909915240084624812949514208050719406138964832151265070819159523368067993524755286839185903788082634051042939351146289529178389173989551520666414267258582931152126215419965191324911489736619539582976066697518148988365450864093985719396115723235481164845325103776186085182273918776684905139880852640217643238439256197806862407132209810980462195431972343936782775155639626706875756751230764198575587595930237518332817437217666537113981315020080989791944524117657895650411531586726038135370470585868155265669562712551480687044135116507766349644640868456235356913928338695526773929008074683077690370290794228336291035233982794419890044053041065268117033487059182688662300545144665095983063122468213440894638387360733787847219880282058990120935988424536561640558131015898148064982235229445532707198309680049147537447565731824775020586240897043194855475558319123949732025449037589656408636330395997369613810999654389136811928839838589760924205384945373927604428363862549558629364539426240477599573469380227050150284159642077552655157375666296697264017494437020581988337327347596763921737804477079992144217594544948102151349402341976786556699820676822972172700699192249233048400142159055648355858894213641571969557341102930596394115807750956253063629009826416802284335980560450623915850659505268865621963458717898168936645217984854417518891545837645808607174458575318076647560721532359600765634780083432070575438818639964510711312446985327205692621068477645379823385789277379770137899949598143586055080386369797250063050909841027366112596507843629121213870545649374996883892097582212133538343576277309180104900544511402721850234349227637812051616015053550131024128674517184182839939588557636918906358198352354711740393698034976052146249173154620574168493601764031852947555432084388412470455511793019821120199289069720827608825781535643206964401462762958800927999894655194246810425034735485388651103087917977403034282961310731058324687368715796768088045497900328562594206595013317576556607697878271120452364705735257659078439830263496990776063559724610182889354838537766946157040214353337317720869889028228493346294908070771472691309423342700169648950383024337854553609384901852258332027021894795746978496742436832751196385511960610326590066043264020180921268852131159554393130279778975060579398432658910074999845084851792333282773645974059803617236563239556766200278267186676405002655152518659767938472062643283715938590146331504475075137133727444997461801574996323468779649102062267154765068442680695739986100993718867046576071401095908419655152695231284448350921409205638216359404970190170950802647983879412633360606351674034510311064729510585664268935857559849548692022882945565120311575553941320628350387228779166182229465790431447501255634214959281119198229056977138410585124741007509921839391963673946629823274844132170034219074843376202739113597698225201581351553873365919690532957518444920685036488401510663800227378560002045780629261728566600220106501451084780384982618698086223646434653437668032572312721672507592198600646486194903486306253830405963146943705083695578836659010556820075827798740877094009446804450370874843387036213118716771710940882402267600622214887234877489919910346158255267723696791450760310444510718934407964849486447577569725101621735147990563408399234829250413716031359580165314333086926273809348392949348127041676026225233820313779602944742470673882949902562125232501555238786456131994965746740128752078644766966442639551269915243233920571862084572097145907458312164739188963076972291010083356435572280703514360209223309191169678489417788801895425607018303992579058949073656959552346911223947618372754386887879593243524127073380982113747683992865251348561451987404000540734104760079150610693915457401064052649729942361575131718608749776193542727079561782197453679846739463765085992468934951221804291632620743683010228590966948888684110541128525189060246574669994464286475455480751405655011968745200425924137397681861839978764580288729859122625945423498238702000166279191045588905994475613019762731378364524931607425538962382153515357699148921883283322741939654248897193428549180202270263029363416166004437462068081500000272612201553733710223974450123174066300997250869275719775023197995461974253192621295774600749838927970603966150157257392324479650745502634084501352824283774841910400858347529809565677661915011627100514418735059142745514321597217695463088340846813064362130769446916855132985108627189031685189875553347566279413387476570855895294809962622027658177697554245261901653995144363029299303851032425354963963840813248180081742095303757880943868144500321003685924339640361319859080098419224162080565574612802510732049151837025768731842638616174750780177759066229910010834603401146703755970465275420357883317317632035621201434950083985566704181836513244134137445198720656936102853869701583753955905668182595570095937491483960793958807120273787667489554843778232473040575877187660507848971503459044605210609882217167550890253432365427438060868685183368430283032178218177154686128073810623772939190021698848839771917892152199901718294148620512897698912828903744744644077301410354907148234486272667129077535055437436353568933036362297141118909632721986736562397274673397222651677370300093577286249167704902406963830063095425591297518638392234561448880395669206301070351822041755229252995820475074813817814011424819947974031510693017446962741193523148201606451710431782984833204839290688414677251286075263777356593508741109616521979495694038673952961536225807956948840035775876361255154252267148095946018749795380703357216241544169825178382850847903120758628803240866665208576131042140046553194659599382728225923321362831334395165725616964224650197732859648867222006172517816440321591324323710203927347762375822107417289814057620593558705937570408450408995357926445118677440159976167802189920874399401819302750862939604115760032006230636593639487146558506564673481659165588127933687231920202273036714718764846185830006913330723354370074074485711591391074788978701483871871264097461168863277124520348788961086978157492016740843741923550753280451154367966003802790422661942507409222053908404024532925823343824671463534605396625048935785325975941932382974802043958349331135606749970032427598397268882079747183781610937249029129775417098803455498634976818741745331553726719002489940493231708225402058488735131301289778594064355364554833794991213934815898055402649121621779972600461427595169223705296532708198002147185807401395939966475653214009692865466239698782364100130739831129119524389654948871830336733881683732079402331824589760742787639240580747650318059637934098574227255867313175010793641500982868466011488682696833681976869323864333589762497091985339797151734934401213928157174951456074588537235530843772734340522146369508813434201912368983089088640694204049895685006694132443793964350946989104489800072746668908515972969169104137954934550976465512019933914884845566217086809180268216590145032484590403270415624813381614171518200695505695375662130675309606043320248758370188619828188140567162237894521083002695580615890919932040866038185682173845662963041437297324344241373000224848191498964744645233526331688095639734471661915952677755292647685707655069430590363312709125335125848789107208365370100093571607248738518099367977701992075710607497713928576904363870774887286859326694791414549220088287814307662036793662855232971312615517983165777197252880323142414082353130960391993852009112633110972443503176663669485996829796798461315333857712994568552122236975164408128646166143324288822725335512761592647757993790713568658169296889826049967033684113669165420556982083875089190905633862810033744752789604762368011539427752142482264307276300159114070315585401013434885526272863859685258859662397866379288341432519456861455980846816439845394006628808400258071734222887460448558398992579423091906963604491497310186984481092903176110729649142437352913246246853302499578518535044122206322359494598673738894401691329352532041192188272551754814004700572845819063123658610888136159176269037259600744327847110812490745460350017357994072475679527701372666997587978666054353829417727786776128474477371285529708280775940441635884069528887638799677540993120916409321654870572699639839809343113791383260999039169356403056644979911344248819715606352407472600286700086165293507649495747033180350628599346123559678683515894609573604383877041153525677735378844645340733428460636512498468686710909754984355602361772954282458227591521580161020021456967178484766934416751173168673630815297788080415731742047961223663767909135888703312777251425832728185079179289152433367828776424734346370234607703732143651183930002046891549992420759767582886422313756507991585015538954353276131067780023487489350807502938306415189385106696792742128688320368757650927646110132812876697942979616744176697029382379334504796831988525437843654822211124088149075321295769951070076775626258869753668600941223249070893079733771455516699831137401247208005106979914610713265356137528419622863216909440720465724437601292722791337206586941411473267608031074120022265444714980556802151627823685053546279881466609521864650088676503914115258369365795567439625083939389524431487105732303997709575295062200437558687884338154214029995418785034015509132306777822307885917961720767129304175516924401820193234147270957057176302827216123044512314058734206940016343948905087635865966680111785460651857084720998054636012948522813971793562828344582584576682970012112509295824728052229396792868345673359962928524981366216310402280069271642953537740947799960108248675233927990707760324644069310762828899346638950004718855276620250210289168570104118352288403675226837687889260430973975603477163772239334843973929459580918101362682997342451665623565518851207082424772680716080878116823023817568031199573591447793926420944533786014082673753272648400909134775601779527281410402407915472218206805904869469364218402116725110262383324192402167200234688210881461949188001811778971846580035608346440367164164587189790710878001970028228290183545890117213841553084949462009613824135828305482837721276571415422699629772240353796451875195798225729202278747078408949357431892513832132763839097070207665393887409015707290297976841249468247936894950055053152689781963597561627666069129879625055505897534349216201351440289306648529789270843774668798131200583436336448169774732840246594667081840826198186055991394383051546868019616540613664165072069589275643697339436151505388509843586308214503456013375611751136453212220426357569878122256275246788160953475666177100230604544214337211832636079151304238863534206656940672372754584444703259920587102803760427710098248237670093792895652053721608474161176369967978566518354233364882346295494973641293906677403494584736225023192875285845817360075753916942704618544508265705164187803825364025883563121678275099825109752718044311734605682369253000948964774253088734366100411178678615643089482217798057747700538906698665317242684879413948422410969594226656010193723512741531540858645200920479581635376267929981930767729698921182608105041147649362686742623042846960745293883484464525800865196372264621738517587276048197186421374037758425351434446241818426876704010306375606598701877526339023934771673727328878915029612107175661721679517926964279504427827555124587925479257721050670804757783205138290422344664531568435274528729775366996105783481789325156695068539713430340262724080981811954780511798618700031551534904140558231817976371572897858490374610565093888067180591370888696017023898607529406850315260108378579231150152879735611059432293737400294292636043224122909150796940276460058397965063938738270680085197294063109188108659042942580144386502667537237123958860593970572342159445628772649399831530323618549676021126778369378902596045753757872044479175226507640353404385661465543786002875736545499292007625032569680811538152042228684576283140688847042333838070679168954484969691628076030454471283584499959507976510009764044904366702509170703656422655193011929204544767632207302533900300970470531360118361424119182806783403773075108792118366260969945677692712147403178388484764865406982083159404403341680182171656206927480739926554895378179633295680518392589587804634900756980367959340842222412246309739368299181654448927415634481281559530419802463004272367069067215075686490809204744365269599390789347025278622687804429531266417377960598054727879271425199545282665103783570443033305795016074756294435366749898288522632192060412180387851345942944948357813364020975368635328334653599799853536470819487396531804476054444209407170395097029485510345876873923015104395362805694633181950662999476065037996098417833928897820846437192617022840275471826261665037497148823885906465516659080366800269463188701540734489576424394915880393425268786647407610522063208865007456385216570021122603639507279475397930139703768114798437050610544319332340728603248820433193007181239946865869029163816805908707697315657729203701940967272750376860428673722274707038475872742948570154229168425894096397504064940457084258015767287445453030220502221375602043874554410471372779710968583672438202613771150069067117556657198817874464154008949968096762633074200331540252099430391987466620111102221526397686728616058413063259892361107884025972697225587639744408613121020020580292582742187891549189778243106773034252220036582017908954288903787135239801576309176482562071138264300060094305153987962774455745790393592795075130646714002973574080680129833245042691025625542700502697045986613050942452280794510809675351095067114282154511500171629198126237862837699696587265128020312360611798666843246834953219607335363234878670786165227214371593406469810791397190676304242782638064399816410901695063643464048145857631067879916819294718555340879556194689028444039347410957076274946653859114022433324669561525358654760924396612381409408411928950778246659791867612573129315535181376945616961145968379581600472620659432729182929163839232360675879351859229920300724781782865193971737011197208559556925429051076425985020423871004526751104874902802900115992016699558712294784720924821892558914005126926028306633263512900551475041208725576931645910799302690694050796763852960253230039397187996286766280147653238013105499211298733695739746636440943304597476986661457456626401108863929733093885793402781272979055874422851427359447525111673216981313913129428358346921638858053729118662830885387969132120281071523666826806554460113343693194088808722981113213885544897984020771793659593028818569416319659422557640367541540535372999786345588423314912100748791917792341529213509524953084970690873261615980750541621908987868744989753806235277947985193121240944135650047378974520391598269199491718144905364406711775034071619436788859982735572662896776979412870638277480823780485456400692106179451461333212836743616328739026310204559515343869980604006816709714728575355425678021547855384356684363775017814121438227910598159835205553504385177449235423737679946407074467788191829338924968518783199314458381046899586750299444197419636976191400070043533993813650999696434333189167565057377607897461618782831801593143791065432507817176128373879891406389923030081039084870146721825564056389247931468680912818642087715962354327812088094637471060422577816493525994512054995057399091435932774738321161670190002680786723442338465160478444540947327944625218153568389956238438903123556341714548558240167641828083024348605932899055884208802735733235372963371464873379157220532766918945629793831963576866049071367353129949570392775546723599206006532880778874037374393543088168994754199521668765161306924058112983085926086621231240556712639548622855592191248654300529975356753439704087526854792557548374661175568275545307274034640714755613931019810731846482820847369965002973745752924834219423085327114818026849577748288623249066214041292118333981925307455236965051664415173060533355169448996866548005614653134099341880208268759492670207967091742584588132541293092290133106054820806292026993542731402418364714346829527724427824412387602740927520848864548072487992504333394647151717311967431558210498720233832855448844621664167476691518163154657524704805886074487719907760171628178595235074742162072909383569850623623831398843500557101643286711095528029417698008591164371893878819605730655731562359530398753729162418524526760030473831626324110378554220518020038363666852602893992328852584566014586604061071942416432840369657081120122580803956968119743379055267828936407048189920166066356358154707361276751592481912219879048652188822634442871696602790875958924748175185603228080621610352619814923163242828037755630448267431972168360164168752337512942005974921872832864474979673787861818663379584981497232187225901531555239243497107830373893413192441235108684543082002689283030919477110505332580879177464096162915712716958482880832418358848887123727953471929577100395121131300436551676654027441996662142966156865690696103529294825678164670845717550277130023413750747240530590324923813953886102619447260683979822053062870594787399493850476819535842108508219526394962958501491311300210833704935905484819362144870874868992161856716303171405134688156242069798962839276713836515624577594622718569301589464231942056999187153365255514537315641728071323335508376558848271295314429641043395276876763303909152805461598001218921039084091913602681629068973156530871137115546133460976987955617654932915707745334076033571311479493750221549768960417356279326511155465377470838090163606009162715137555646261580064296915680343701908740939467304158574698817761490562727460430281183549265609705213476251767173507876355372883974050436428694486082233430458915012030355999809673329537503312199103622566510923044357077186212570850772572894285902982816286390092204318291500266721888895851103788364105628667258982560171473196061298500308670661047160358013972749826560028184617685951433571342879195548900088603551062602453536039158392279106703996341095742455125239749335213935018528940204392335412581991653286927139272975434451166638537342505618055213952213913975065440458108337253302681600044511595648674465926089162912419464246675015207118170808237719405528461089996968563350919392099105926882201100585969493375863223319331107791001699577462639503563138945433528339973736690429056766010550574207206681987391468195380545619707025652537044180791242119332900232001573202461782735984561450831554037855326755639229931982895540708999031559315475369939102245765781815877845415464301533738267935489046779424435526635618313684859133160567781933851076268996954395008872564427802801503354129947041862330009027537506724113519832091839663305522669676420315614562360463341199444021059198297792456080461606721484636293528971954661166865317641805373612396926105555029578428185064623265034265010567600873690855505774230752361622734451688513374089455721872308505909110899669813728141988336148645197804817723555424420664875853030665293892549204136909756294815736869766737964823462752803263449949465687346507528111366128888460170642852311265322700680585129582592526788554084343786770167168452996576494795397983784794585550761711296512411388565647551976563115285048757592302715817557548738415157551197156150005507468955896324335599575672940748903313086716893299896922146489234609296336749425657857311729225839747467498207632071463229738706301731477063883678599701773836425058980162686726763549340610066745350755444594397064487074273347997137147047511467076900669368614841824160931151861902709920919210031599955510529454714479811902643529790724162200934037403656529363497305868140220543194985091441401096557556450496504842561022915663326423919946187289715560715778988998674200223076940493053972518117605021735685253819545304739666237653549771153537025461846576719885368478331202453767199248391197024289642537733489554189685131133336713656885637101810929853829642751487743927555917750971451175136276884586391884695735490874751704510980614930893972832372862386299250466745177849969244026516204771172510838637889711916501318489489668888360906334060614187101006924399557294436225353261448520627832064353697106656932532412020408132853275344236506513369410063807872079330655982736477744610307802818527232574342784875905809344287447963180744410450552512446989031866447134776085397362136206490152670112382137256198084785659967718014550735434647983452143546642321146693338303111854422242108963063448159296712509185614254401695100509679033207336120299277909763522681363971644595432080630510727717136610453454343959765064033997341984306799859630363819952347680725009986799537541901765454418029959061405706975431551652913967975818905785359859290187563662481536018938564154425959433609682064183684943369940699026529661982461297609072587511316022690675779093995453325371913744476436986274643982096424510080151996186059892757264935096669913957747932033111113368855759075327952249172617461231237018808823563245527932172301067877278338536866123489348552959510447361352473276051100882550466178413258812552676937277933696520076995765867182322352839911293494276366150323793591200437230177466500505406825243884122038583228959826597975609531902187856622305453079404245206394982485725191384542111494343926834785733563647718366705097798753545381102204713278593975395919769553740025608440826296621846716982728347728709559401452556013703835146931171612757427816844335590722390834093475366397056934679424674773946251978322970798304333287464335087551471956339923775329448921925305376211378447979014327227108092192298303863509613443459238780477141045104787921217497541493957500749172189641583574100531045241709281494663187896702527814209577131977153414196174765293508049603557171276757538317278441889818528882804790696249249722288816318910706956514256896809430593160137413878946929422795549354319996319637893471171539310201537517995472899172815901728532198650272134054234844250346709251183819183679243663857469667396623458654371823325346580544815130481952626412622717051032454540509682665633394368883109146668954114243896801131844681120176591470548185839019409823849847668050927444607735509627574293593330706140979058150041107254885279262327494729095588420269682421660478727927132041772592939224287460780772464271787118181047207880015042535885919596574594744199152967077577665265942426281612327712949287433309233794917366647466743436967690256425931152272097074525014043391728997304156272971582660460356006016000606651181942105053369535428542147890483360100051073313845369976757720771561155697513369699987965998892697466725547860613174938580737390691539189791172575392359338130193429117964856789089585957723025795350213635730045241791164566648215205619211826846947234436356339456251385738546307567731276985634839865452217217777196482105247790170753575358970379778886222061086652366501051988620295686918094931697020519224108916569614238904469273706221806746729061508735072771500314709773843430464688805950870024939030051888063757668856982540671751274972408258834438655540223575858198600370982608153860259062439080192717834155897237835243594785989582538795469033564569560772774736214746163273273980806949632669451393042999115593855034983404548256563340378239318162866853401097341809088608773690427887712437102266963343439594710802018998664974157192899897999377697841232170080934354882139223532961088501346542191765908637993501142419857816734077466955536105747616510416051301247254776846697893227833140246427663619654547116573585421152262107654522481026635361311611749401241731214245009525899089431610947199847958322618240598139641281976775912860970583819008675722229457247936741692181545501204495866317507920773946771122258006570385535436128870740011426697323967590776362565080686638931020912999596157272209483097786951611545918665686879292983968122670777538456117134122792504636021517862501686598056642312509184255015428766997808737821424773480171577718508273928618433669413790020629917700331770527060235186003477727536109252379957766435230126883634132919781878030751751043865963343551775064369665844845376061845808637692270635258405404346789675538130365745130523951871920174130619945976323748595303590747919666185922103914547369678545309024922418214267349961310193839647318294249009613540357381465983876647618135414230367602650383247529354240437227637272852998943350375898486429580171650887870095980931340627840206811523623052762747436975382514101836301789010163705769664954054023432349258544958000931730892624312523098033484118729293432461047401692904816932500310058504087141385024237251793210430591998476590386574358627133803366999298981676735204148703968990221889401796019004229876845176459310373287115672528373630099111101517779976714270622984931744414397342384772366155443399932663493229584749031138967616489845240476354056662512928848409841498099880107366839177935328148607511496711091729928609222859214883143759422490865784944290134258213805377942727720930673721530352456435822696629598167075311161848041111567140549724225827463252373580727850573405401238110390544342958824699716781718651163681431998001737559775440866719697756773023257033586072196618300006168494375300854082852958119819357538115717783877175396086286006754284900588098349556794009050644883411987076776990790273643737165825002735808771176493550255981152690136757077950128396606944539020082836137207936150712353786624783231735539091308379179311311348991221316218040386631385978130739565658949066132307466137722022598598780819372658883439534005882709895962146817252297861708198571271979223315073835362439646960177672550059464382051810034270795210147569579873108355163333911895189752094112918489100587326183422741830182279187375697396106941229216801202325313734726417454218951470841354208955315680509579812310178443797252193719909038362502477615547423625050611169800268314847956423425051155150251606760160009868170089090912870981679578316586876628683181895928567227558488102878334831685503722107945467872141295021385275187194350169661503604159775333879231420939737705696925913821669287540179650792799376178421935107311540347721748741908453356668690916075870969993485242900046388867806591395298549163632226077383844717900384846020430239522055113207464802325297605591608814905347275479429519892856611407483899177199826214166280202782960007923679128750939913941978312580068786809901893869645165890828079501361040507577556780617602784956152804114457831128321974437892063052911493280929897245058281576730784156861760301074684840782839611543006798369236422333935658333641184382575081313668191276445114667460192434682594999507415955951280258286584780350381438564610152711124023092792447953619626105153624442514579057752741699228776126425612908923035283357561094194612251991873887014562474609923203186953192278453186597612230508289293313922862604313812073462848651998625658313815641390137195202766514782949069807777648645663140579513362844964808745966372173637916765387699678881359136274990724238143783934035220000345688314912898356286563625920701685239214447846466917088469115557781461245067389106978316491868163778651620027529225329501102185264214448230685148107755693867221233074536343117968785073284334803215009028260097130817810366183342767097027146517948323481002751534002837280869615627855511010212044935022492638054226070460667582895301530520764058044695821154502865670914131135191561786728521185022110089304480848223951696430729664822703011203171073793310748929436320111152358262478971647696626548849499200618803597318754264440371752315526443509144741913388565428988929238614192985072163367752339486851848891916019322490051295407993689708334305125343048516506702027893385253031450125482582710089713242091114924055548860682931365664533632093849975655863332313032148358865970710800505887573393148685173257323468765860383472129128576163691042444031197371588325221592173235388952961145903963428696116636989986380316148554813587448153318384668017788467486410150137093045400170619589130245007089379152489679213823995899968630377352630577891013960858060462417797442116378667085053723331615622400387358629485505146386403378524451479313494494901267373761973178194974782788900747916714744200775731869530261074795716289822680690742418980999473489944469058259350822323092121147532522926510958620906287826553402789526068066983518793269327008439628691797451099906406649852930915451867685114123386536060512442586554196197294029187743835727954601325243840209323416105097028259617026491879296633832011866291914521614111222820597372746705283253537904960223654259036729966399521999572943854786976396068899177322524061358952107839211281966610732712910632588067731021045316040102500157266390989228052100283776504867954357165169837706299058191373359955922990676285453416441649811465513794632419228590485908110627507606269035233786906549847849648364578892852148231265983983846089474788008664068768912253377841217066649599435963287755707357374237243322752696522479477273097343791519264074878885668406325637927809186387495517721159534275683152417136888352695091598027524840428682214747785630706434400761681795137656585448591278356400635995464201287669652643453506981954837370341624854019213761595654797117659507309823427531800648478651178862075422987397453574232147884307230769031571654959786372771170921525094131660573910919233892681511660446183949305238245460822146135202975786362687036141760942410727925998114066804905892178139450749169124581634403536968297848819107047645818816679229384261661693768634661981069508407081895929540708563863700672720859217886510848239322544181893635462871149549563635563782733027764431715891393613017003364581014706795266165705918426452358897186475195524216148875082023421949028464817029684195660115782098972925674370586596571193159734962276546726238894301836522300834312138697426643262739840018085887117034496663753088054803063368906438214564844812098568025593729967872456729995060349801909814931852110151740286125627323663033118915123352679321023164480973315320668751282494624408099905696191389000319329145772675052024061216242808938095996826968226423773243694432337305559800043102855667208593558476625072840481223831207451232383870749394223842413090559371645907779470615977518691983184006047735923653633976896898877798564061938617133811165032287024231359172640960193118693730599082202228024391716569831374325714435502505142031040842155744777340428295581061334699990601690012169666572248265167780753813663486416925304247224857454958007640643863599653768415074339383281921508889652084992601169012494917724068747389662435803361810931628993165282580080771838922139000516711118522092443744063955008900590594245855455136761505130963968990279647068296912428296034432518799621375512449591153160805855073935246475438150242981020658706573233201737777325370994739324988028010079202851969482188562864240773868386478977307121321474133955762078714415668464204808535102843101468937042597219420303411816499460961761795726481734111271705995414812458098999336518643229806452239638319493656471809518098916788547927954661628551935543053028949816336483307759326333044057127848889856909222517184021674200629440789112836385257591569502175005661689775253926732411303266095995407742324044000162026676742095040594483726437945236473260929099085665763408519563774718263163360620021350557700282500452558666665332721988691520171900944607986428685968310616006494823567470951802705386635622467914474070838795388430035880153761855160587230531837056322204665498099700051445767892981520339589506553165407613013911220164547115930527713172640370814330279011013564959223082439412733095558649605351899767985024555181001599563287185163582788696308141923820338950321355726640536612330473327697758410772544493951276977009802696030579030223604719961047570032354330863430211977422831600165647040798999099294786529009606173083224835706007097479494463955937427856288674922829033563905630020096936921413846233382201030160723240759764436165203474001560302121790200460602672024453435093142794151991345657840053640948824422011344383788716305042803190435989818138256264703199783249153897791097467246390084263442350055242027536001507140018232970413621208311064926314121636295527755038575536525885435050150597024828700862603219243414271373250501191186446140995012799692381700403708741870618421938535066853471918955528559920429701504505900085533156663563937406041050843086570490834299814780590313347984351753452143730606706885603328883249713528440935245122252027909102646043250272726931448629020339566221296421947955766765284086148249122012083462672707795627434542692940232119072223978144394528389622767426154386335720992277039645150757539122127834196310567979834949432420849764523899169582987281145480185671510338631636507952384849699187463735221109764055839050157474808524974173969413050265835735809548755300856942451335821171860472755095038200270036077538313993945140184513417083334224254284409067470361442573739446380852691610376874046603362916158428068800445519976411175171670434840873079035729955769053855955805205830295982116600855810899852068054370804745621335003468161774852595441294039041416388949099184468390476430494877454069368489271667284717294814765409131155887503942226969338754702187716834935668400743078495027032525903532335879978200926490763243445899233625851754255112314583207386342699713542903306239262744170994767199537292570001502503964830128053381892875657903741727201851008329922258123939636799169016635486455422303499111192922360934798246925181930739801856631152779250426709503809194850967012951323398579431270955822990395245859997469658200182388260747123850647063962201933615477623277803698835278974771091321707660107853020009507363308931225261387099447532662954967263573318809989351124506944792927073668499669145962111433078529504326247602321188768690787609872906602324375435563928464813180017788275453576349122110016038026035570375558327012753940137790531825248624345090307176576238008502645003390268029013957908003964507983318954840817502762531937208657556482065478111536724598144020053220631379860010147596887852621315659953103904600986231973117050675887776097340443922122442782002554355214383014725272949916510839203134598921948956845928325028223886976820459559132862520179988636667738785051037506105469680708779935050088084289105591846353589841029636248265339092078721568813660004120013723865249697831389904057034579646165733555507235647389084468921729490504036501471683042749339925657456416846580906249539179797402149441403236807759619433581519250956112475562446361554937813614062677952719536545271586892098978781652970435431543130237743848745767383291546683108222051870462689408679167564270562843887813803926235758052770278907016056063176527831971663434546535310677399126104934638036458276905371496574083275292904328811191986762716416401193017540033931187411170170135423865789272498893495833508226994474714301702347991635139951942306156691110693191391279143475236929113487805907151913933327200264421446401724697872241973493338153424328876013898766202313179351198106946405247874643620820181883437921667566312265993262285749084634328314875536114827472483780551836350299996268079161350668306142262739380248023547511198807151734458354316234958169832633120013294915369255334299630556573674545629457207038672925465627494108819152669458867770907914355154484801120545571368470285053818127921027641532892243394943516227579001663909740550490973477236728036086187512897954158271643194461999495911863519719529448325607384968518223163352307517143067784652124194695639559257762595170406856407572102445063219878347198841739895923406134462743129219169977413512749669999985800066486533923926702704131139523991958963443113901558311798162678490300346743714602535840528195000106113799855395290777447037471698635213430932727002930406425757146979993916283715879736924534274003515247775446513153818236971881451661252596441440808483043194322499262486016247207441078203960138704474184126273770182160018779135860855062524711537276469295573918702924290203085704989487319840924541702693486348019717772360718050305588978489974682361454690651055733112790347346404892763808872903479672783721788406198954697335989865286547400871511791962865669446273337195772278223293129923756780622271307873600054440801593884495136050155437139168603143036130312839796777779768820725734627687950129734590612417646500899783115035626533340175118312151745717526200582147454920545724832763862214513055939048633116377742119802580261606331302124040339493742342655968772447599208287015709175449660757079167526630052452832946664876697097480848669783551885097306463896249940859270938212028270129077914690825437629769661543501779843331911712729127753598733462593045657992835617104505345380724187705691400959634595317621082073997582696811627012828470189170659863873370238571434976287321340710216427646645420453687802624204666664331490612518886084065279313195752314119498251627347579945841119781764557926760616435869854809481942475199165856162710122726350286234145553442484032783126968302832886340713519230888420324315349721432194295876754516324164933174909129786257556508445497286587380526288237448883806807145672254397261883355290673315136838084644320163105075633266713173650721633096047016393832656227596805692652838227001600287300946737729195554115438184920168910020071383357040762069367128286156606125574457549074839373773291394502948787090253673832513020234214474766585447617986022853282795458575630727211045765355997775060297631333197701407029220769545383960419558704341772071367774077269323053836084120015049524225748126623576613484976815077294190980320858934262079961116818270415118373965789571775190621951439006094108596353834158501049028074409382360150295618062520695011214243623880526033958576936828880839890908623894746644660868097378026936044623570982107071235070104278676180189592043700324189642696731539954998259587463271901395244172449642313486502095342283701514829844087368178489867080918272430048384051592896661896404049480208403513443303353480117004658166857875446663015386317571369187236604166914466460934065280173621337621836320763491726575383698413838332670229225198535157431671449560135726254929305021584521652871888608907870213819143993845540490301165162232461314185497426478580315587584119463427746819630626531898545414481694964143515521947033321182016967159402444893741833795737298601228351297798554533132446449835805292499291959999587679994910077012191085242806538929723068040980930328782468335454801865681875098199983187735908683610255980948206706472950597568193241695970092296816176971224855377817020158531001874313082024549734170879403273486851160277730569538000321116147888681258611124665874382506509758889005607419807781665229493430635586965545594255751994269927285545174251948164203057776890798902181617873786652613866508054521324630075473595064794832045892096998726327322749955102723260339300415140270584170815642309499307776015119380974121272073062282559029192511083611190466304191995367907602755243878058826476651354663079118307906653715876931517737612711808424201231427214307557307082486577272661390379667625605750052814983376820377674211321809926303240632111795100992090162028487714351870723286009143043066215557863588406358634538749150762261760547895360047106955816420671932987094386978179144520037969827613612001099315918960801847480077893342873085830464689690289875191927198043420410456545249876893544134421857302271032061881787248315124565867728560734900478860413680902442296114503923170011988348179277048360454941905891440849958963420141449842900040953802100357879767430455061951943497761634050314450386400078971478484245636097756587647505797706042241350693823633236390342326630015361168506130036375613660972441912970322845213982019951964072615422962062475433353166742138423145309073386898441849638107627879565881081682444677460073936012333383227684672306501017644267541615502004321541560529301796519129889731890947619341574520821873704117223401571578857850447226698889371203617049448973471966723147711184524803069506627142124871765819465367366792960150042186648218846512095334735803090239117816747666245349839305608545265508984703053048329852390567397932105136225752852705409002112591055945726996632706663793304480632003345804594885651460547952912813925581247758996890251616761318990866221478983710015403082661448725706479839964677125187823938654362298805327421901172268735129865252630316022302557872725087759835744361543756553241807077299536877708835113717856900879998806198051903505460432372008115269722202221266274025705871877075915022597642007776631205526167373172597867706094486015546994423486648577906772176958550293459710787552587672707441788473445671874606172670288145042178734209741451117619583788596522602776098376702433668258553079122120416861262374364070136570336413100525974148088544536958470963811348901000780880425161253185055647007327323658133214411047252316217893949841244817995809017660498571446521762049154160438523273652997046846655904245791019725709275608782826100769026957944112229179160473695327866650937753860802137224392228766917321730154398649102338261103248104627671396795229171359391400468319052600371353535905437210891621297041856066022083611251825080837242994200611031343188547319090878793206567732100235254670763034383742636846033481388487760629134108636487674142991342869675725596354060590086721180728640072367810945715319033770029912297056899895766815845331379161366576200150233857153380725707436346745678109253420622628432782330097141772214307980326627285854492942954767516846593962171394742468936746309835318969639598101789077695596816900495062866427586084322956811276458629563159975280088033682836799747719450197285078307570688985144027137270347078900245509769678268264934232928996744215333961175123020017098677136538283805839125339706937286839053389194996886565579451435410919524792934149451233684622417675454187506771216590908183567053707273884252334850560064045114034331942104284729764285770676724038020317217817997445282760360141369094402964531144446057847748528064260533356198396197888825747902842466726350850481809544718936122868953178825617667009748918277159636869213769202996909677558964633786983350420021627459127782936419267087809801149006736672076464564530769301088249179127650912750497836999756287727082336637752089106667730057412906342388700031178970728323557683660035014703166077157881153642497181091369764175605225083221877401248140019665298500526868048296704882486686124708922804766559006836463305800967545266031890224961645667419262163145204124599695248416733441801370670430731659714693756075984121288855319063577607749718859321327089588894680762210255628563157227058150648138055281825251535906010759616327513116071926541037547429286910051565192800336075738446790461278892687681429653716833979886208329459196405908697746241868298361642700057845143710253414080775442893668812729532109264631833100455307463626954943987410541742717140426833301280848480519866294184726451134119442487818692858733054547423324197617920416938454415151155408521468498682794302480958059429565174875820064600521198688813054176918980023542888003973706260991450074653839520186172269134486305112674504099772654534241501991730242582782634525362962923084150293994710279033066156735397480087627388726485064782026605540011335859049029008466731746307019854340016157631223380957767707348007019761497533938436970178167266295147897806783938864638325699374079655895882285239857442974203886634393218181400389686258853496241948428262142260397552094464632545499394438892823174455966073848834792892848732943561986706639784765078112075807305589992755100051794451403818716366791219386987176541112813884145631575399230690781846311871535883688876104295507456950359197278396956767112934578660366983461040228586770068121061073947403674039015553594983865047374864112481252737616027907349485604379779309516269346002524134199895330438817002905995796230816206539033215803614422356546897769380700701896701251366292237466644593620785787322945669784455091491161933375353439829493796421195431821504523040119491709631931953810854533474866778204526320404623716131794055719907175032482042232342536002025100400849101157717528832756720430389528927609346594577824051619301387768946817343048701568275008645480348567897797885268032019912792251933835670326419866091634227699676181801877668213174733143291049139298217112556931164135332364023856490083999569929882889430244473526768560018581766008168986760566669590094762039721923450888984911981419383075960627386110454717991201856478909644013912163239513260940948146399046763487106844040959338890270575488484471519595420241202590895059098824323038053063647127072320561701154445445715458762095514688893708708336405772259838627848085123912152505272301097937482803176521252029793571809743580708340026794935463134553958412617375427856773236322842138011335421139817440198186546324938432048211250805240725676694432567804557671213268505413640035257890235963176674828844323481570077138596089662251904672946919621960823298865373359113188837308852092518932466144850495732301304843273465003584319821014350500798729007444837405219971342533377760351587472830229306673249836952111662987442503161529734259038803726884999228205453858998019697149702007574232227393344997789714483348881461579513787319810912015865708934536245135786549828619489358235672344436360862865962315252749089819162558267787137394484325490799070640627904898547748534157177857243094045937582337784200877521536748576300886716043119746888602396180568913843314819834701427970849520947326222514894869392572831477657539995446323648298996645606204449275708146747775552094021076469429465369018870649698188308718386169062188440285296763954285627196390692878624996511287213849844196817790983053853238370897826533198830848510964117571166622156757142600572462732641260694114593675200085545716480756321714617619702898342201367690862333043479022547136586866088924873903612054424320920315287869944166420023588523078167277629068592704917972937684566243477159834405129548283425190376165153272660056833023750866756510868999559345014333990185543831240117890170490533779271979521492634063613955063159569469208689423102348576646796703202578123762789574042751270320402177902514062127792817230853767076498288646919478199731977689864533239190644344695244727575928571264760583214897483766278564706657711220090836795109839222410462196441282652963036987695297960238193533859038963027232397049607685325865460178262954240210759372836461202208259060393692484330307122984297557971311184798544227759761061401532647034827024105713671730343911453293954144704248207496201227075381882928882644864133387432027488816262427545457672451510890326704949103312960057649670677541139498703258957202911837188585563838514644047652751687467519464155846934751163371356189526068166517663822283485849836843276244555477815056183974156245424694814581163437737404821122349461291637392554870294350595779423283083940538751332931259500580793131181897829140941843203507897670630439437725201582174891277493430799515182382138752488962113812969563817737008840151632527643479222767293382574072741795653506322709599592537608624197689281837021268540053110221888385390000178623163404276599715947688102399863865867930865420228547023594309845851893099918629885403121106230229954425944384620203932470631123235445489366956535374749262424921509738039709769953579975018493227720558747841069536998200914123139151426253873395015050956723598024181084638043120530281422349404488511609128913514831208179596248660112734615907948672012577496611213400393970588867650961768851242943183097675601650437281526267502924234786247356538550533610958122653080885278073355502243808511102082433434320280463258671202197507226319302977961465210981887457963831348858652110591434234597618106934547956073456297071893232654894518416871211354692703455223737213753003772764788111918833835110439672415988857443238477113854024692271709726626888491437455337665606177637467250185699139239509953755102835496553887880116178175304643358509381369746263644407486808430112266062660931397095435786558323738796048013754341295182162956620618480747093530805819412452163391624051160111333594945397482169455216811790671345333693856547781612891421081288215317832645283369279785371426467900460150746053288542480994167498534005215979163200787245757026412108574604443271104045264958614948450756000734159510028269524914003271609145962121506688486872411497170278403710261533707218192044193124529214220096537343076656997826642337570378158162837346043046968310207014957848478834751254916333696832674755970725795565752138503508258882245281751852681642924018248487691832753370922052793918400580737856382364355015553733310558187423720512342614820923797973037337999991855918159122233786311537420818359344288185991421773277458974003199339796421532103542805751468274637999641441637815221669438581037023904211064576991037052022680601067046094843095327461105196127390295597732558468668519958388522913202155414375273978582756142636674638201051217927127227378643680513323902577623488610710534392646642230522518869178508371139420622796816024311168461641667830463630039995505225858758163041303208873449292808488121755515478238960039521022556583048090679801783424506915324744783967134404485246198580966469703762681423194901566561267043976203881449276140174019303400041570614448293285825259072709542456493738678007659386753441221923129130605624263224086205337440554644216730703712896954580704836868763164524364733643260086715225648324254964975051937426958690775093290214770940755452645439577138636397493262163960031476057022235807710222268425493993412308287070049705246619810134506194011414079052600610166311566942541091065105717487774758002986544926589408988614528550473792845512321555023105937421379716958157738016146711366556824085448442637270752859205212383728561748427669426386004711132867564513863667804393232032662158645766519413153607811321075013619488396125674947446414853116966761577295475549117948735420932711203057236890714070286003564421766060664649792718235589359648888589704874145519193836760058200898645542300579974082740181498651954464701593213856450061540993889277309317552448892317447337260108028709033108383039299400228617207994295253385827125243392043315874288821860627358165373956891065403949149820196090255964018638282643882011691662092690405051795003275473169961212374355819245465197567335613551552834864074874377409452011892314442811689555323174167327101318985986342186610397774931267837431032353263810421174858004582925321270258892081150205619496392356480170535277177252865745323378221253030772644430468821434809894542047025766421480157961471330519427165206231367818403483982729442943236928759512371166394086857735525128792093220383853798050966223278786463548926891711021974051893792874613562787060553149205413683859680178213577143866791669346300011706740670053446650220932064003377489744629343188485719237413253167247670243612406709204498204870152308529451740297228632826427779861753860623969985265471142144666744258509151443176851216598352552432651918422737504106255137544183654512197859536136877553982809615223405316181905131279144406287105010027586203945715912044997322665150692675403084647713611418550972880589620061035580708366947505229075378351488505524018081315216329531792961044671381234433680644505611617819094778214672706048017108160660673459172771855209425954356033868933047542165649486087642019088209667365205046760819010149789660085456307648191187781497878518104499768300367525654727312425053563823027697868281050246440106021090016634529260359999602189151318743526238618751668373804946054381675785905859413386076622095885027522332500821367583411538411082716744812716949808880644859729145316291762034403569679785831717879506630301552711483628549838975142986178664874384421328330915353586292918823290671061371422458091685497482643121000172144392087555233092640817185272955990558713574877939874813261086022356820598215250798080817113513530715436058003416588474652961966205185437092191337954585432419933653626696528347175793090385771582808811038888806620788189759352507543576476673186453294517706916924816819524177457065162603991147396737801108251659560721062292307502534479289999500965913002989824038069085554655297116485451465209884578025314000961404567924398768489482153741888026586967060861660375459503844473456824433743226611301035527780085473578808423905120524736388431366009136196617279033306551580505981519449640945814392951099408996356539525564435679860596029682897214237702172694194789635569532697488983712052536072253082338792844774990536916417562657232424822556601970789067262619857339665091199289817279409803004443224037034831400620525670143583793502350332484830657891096459692090101289408470650078424998306716733851532873183251622200935789141933032986499472474698374344635393778022559870043563467207332692290166138555676738944568367245042576028341985001917264306557237077218337746599782307462087560608373150057883191774579497605414210152014660161280607141076684158550787082560160951203183736111951713934726974112359882910016239038551033744390128295435506214461611469008044104363962713657217907415252464645979764914135544017078152887152103302586504409183759979715904087186246754198159474480207463491547793167549148941284677130024219967673943439427537623828950240481017717032360414643217766475646294943174150371025529100984175123281588685150846953413660462216090587165315824711568786157130564268559387870542360594483541207031170453453130845757154539522964780475183193205447868243070623555297853656327699601635173089180677355544388449342735642214382247663812296474863080005669945587688966123953616765578563363769729453997134340031651465955408844780534596669831658439078359988764409118851836718534147502185306930121511558281935860179464579375664445896077933726029503626023350286917113749113703487245243118710313888486496365687462601211267733291321548875053649903881632722449816521892939686357422187427227586487611141311127754355649339159939341909819009163506506213309032613033295505774876412236099615810520520919220978770018165307801525406787007724109227059585504442181943074299478805788661620953681864982854252240950176974817611301047970049973108482708444219588858355367275903071982303096903264483121736818128353093797384266345185746551452180114143464859423001964000116663909270817397833474309346224810088011456361026088852530452999170377531471838210600247839433934179970408898341739750218255551366219684252908587783896665873775241894586300032788610282276156644058968113720655086001690320418883452160364345411183724660307061942571940276575456836191452364305197131191109932542685903041283465944772807287025370496687667181395998116210596352456140910818785996111839568536779526296178899508252682490476711485996743797229579078054567590979610235734007303440042027118205509260377974188046476453469422988434578831278621285067779956709096897098363035788506721925453293420328574902014773170325637948734925401769146063584519942201109240703099235059868800908004520992242699669447271997832106006450970741471604536315538257225307729430801054805047518238978341397642450098443817314774633938750916198892549943585591495758783835095051416506796296402754749929197040283741151725845932547025299787624292100433389836772875002913607678539772576700927169688287046109749644657296652954628137614991264323542089029117993723472375475444148006164906622012691488535613250437113286890508217797148515447760565129482210064308881475359910790931988219267251690316556751711010584269115221550640655428705525080279095902849778468952873048781959667883071025925017070251974471972884349213243243326180859452135847316467477356629544846007201770150987740366425276572644319723332763798628501096271601238158599589168300352089006635429438314840025435814847875908986175688934843325785323272282929126582766375385104969278307245479919371236114632251139982742457426468715436533152866957860058527033805334414831625642094900332556861011359280178825157166044132117252619422999332106275923628597799959619122552257087031888767710183891706422146365819370047766896478712133909229868942776124974810063992825773105089749693980417998794256285004599593452617854846995067455115954739107972415176291076674835242625978468611016623428056563790736584988093642412998716397537323833271372128094742244648470393772558762532109771400057457563975427328332755668756057776042176672544619655020015973084121013454304658140775604313018869385353312341734938524148391709932517156897344665084968295764055464215494966931584851838142323164565601320161794849226605648733548833200573294110813610626987574284843289334592545973170467315079914008020298747239095634136645633800500396182496785293522117988036797056496837971143470105876723562802824400458234927281437101228060199307313772454314731934734214717011408306630008358290258694079712096836248712291882248910507353186034956137328379032992367584007345827829980436581213103944218680369461706265034899266742147936437115767870327754358996918533515747173457023905684386640678362806432240902972241078006178738990856705012554223152410744288368199098504939135024897202270397144698247713906193870402981126802923964740349000894223562065607418641633606552503264633736138144628286153062327978484296689185230583186066456400824715471156186906791404970074069992749133742136805526014541426855368070734936745993614797874535434317819690179259623823003294058869795155731894671920256937217832493574210142547764588469190202147132132617096742251799202713701722339697499625415582205353211050246745864588526275184559870854753651160111859013815418727088270290434393521182931126073787829041047232528082002740859126094451895800714597324316510785694584050514314801380499115867391841182413681037629158664891478288812259512629512037986298750467850329359350906238852474544439583521246745897955389825434363692685645092353660599657811300108948870048911187229101939688737367944896891821841311901871865769380956645874423791285598184708767961873926729463232203726684660841281049422903923414026696069722428574355609055336597552258310618711155152266484680928289723710706187881437877279088625567122620095272470369497281857373079274700755983095228903313647782786021983412593133587641768061401265910849729244371207672123838964316759633825663325217498304172502108309816484422598909306638441407091470337856303839385666391997292578510553248981000010633412426480752986955779782330163124595651498439909738722132601860414323676347192957811692605987547034865716489440930430388499656569525899590004538598769501238147050080265971814191300476800731467510147974326544327168993461871563371333820667240617040531106945464150699117134543824550350787653327190694520232892432609109868090668587170156274312268598297496521124210577095991841473593564091294138721541860100264405538174522803696216282559214635262261994686851691038857110724935072542589999002777752701645850000343207612702669326978484088179987222593442696428607131039156651778924794424671231138016512839851430263613923055085548944127107973358214558636684273025587365725500527924161308125329475554692791101279512036717567452193375695920818188787728527515426233267406289963835423180361726340435523453381244025348626352296280818028774248238075811807513767030285174528741810485236394699881044232338819604481277557838322306672577747447931665054718357376406331978680250921927917779966617453025047138754346383626167209782307043738174299756395809148178451810414647254808708404592284809631363043545048451857053059708457121715278541222551788150394651700760518611960687062728084292848847033329232698706782844157269830628538836334079107281956544344088985539779933613959843036116848506486257883570221725766556636111718787448112248283371481866075910958201177551952695350520339511071653842565329302971235352217030534044726718167597360771540639586620764900323344070090587609379422349713386483706354035969732977845851848133895072686189100713468378700226627543799203287336798899357698409377070253567665876635377309089247123367792573071469327485478686386382387662728128536272840360848237965144409921487817703683677766522247450007242750076318973086229288195984179296234463186985819677851884431318456444720084907007024295525516048199528838512812594318956331457284635763251392460006904048414141965109884520989696149425151261816527269795401000377901582059709950056815965151667321693704529463618331178050406317260923261324295586949059584840646119340008920527093072772595911356936492001925621729823620124549740793606350635243326169695018411827959402017011467694171348242203373619846462591197753198235388636558377952833555036166313801157468826583823768468783849835721401905125044123587648773713942502207156840887444755069703507963655574591657116726219302185907897562414614135187932761677044798081318653855206204941331864054754582548361898856003352221803948557766870203274448575423978893427888892217635678912565727882307837957754833073552026813067190095635972819235023956973262271330046638665644931126526547708669909200823546705668383693571494765312109946812848888680747114078111213517061768461705686434153673580788409443599843870641776687168393219505167975411330509239671656972532863723650939483809763358127761650218930046236696797867110604249393828390045012864834594244716288995325082810546863131498838621342532543528656791614699251594817801300707106209701726365974452594796904193505115518151736979083351446214761030149054685546714914215124494158061014305673087944116428384378282936115892373075084820776829102861527770084039735543091900521967844505565307384536715034052594515822314871080624768711503036035007635407562466619248636520017856440600397804211856804146527180741809795922037026431744719440594197142738038852522680858956184186322167509495461719200823281599764650838531928051849050026586057325717795324909677204295685116552850487842957010898904302303921996809053909988269593802189288209749063499312391289985969231872440312631583414937640297580113651826268823987947482956204041023295770860929196738583496115740104008843236769470167998555540820971489329623612391443281813421653192777284242202451594659262877867560334473694359467059017449162950358494408432023756145717353815973199606143290910286919725880497726843305801061463576961586970416695375570013047890424680552746243694544755500434302869721878120993794573852663807163248428430056054200704109288625359105474138429452699062379112297986427568968400474290471401032310071802490609968898787950274824580135703379898852489507813259962931347653825982929861575206056274103999232104750969848401785069249376884181065989615759088175606960880974214146049064166975679075569247451246422412362484335592075652779159083522676907531952315997413895864329005409021906215446712362244497946166976503617941624277169448698204072599911201766919041607165644019494945371069389143863183638820224802659607904100870568934284492706904743424690932680040855055201886208975267905801325510235159293084248848207148053960695568191053706948663132782649412113403809089084424929357905067880059164292871129456912160858968600688844570982514512259936748654036688190440886417075459635341871872789495955075253132355442128018595144659256834550751778069948928440577406755368283877415264491196570986159898467307253097257379155175215428578162996312667199809979508358733136815981384069315659367532408942595502908027274972826895411303040357072915866325841626015544373650575717466834694421013016831414776726455327144828538829153426464491039669305082875648018363853600681452800635490207259610049951353308693892511617434619484556123670481772879387808644067955575707913291197233466736448603971807006724631725239587048505735249436279243734064529613999224042291825359872574854031258265741762421709866333960131973743822958917070313753422914079668768962775609862356457537456843433141720893238184542105761343111435549122096987758866068797135542692329165287750363341614920465293327530064076952445120096658116123053670037049745500235775006733466378878839199620529279549184427689107351810692255510446612387323010092927589370305337906390759411195906961430980046116197707627783124432481598837200405209875272677543879272847953164146361578662071245637129417704193003756701018987017722495574301853369989688485266572784754872809086231016528306775445104704780855205983265374434183202848759602184651693938077805363676844658071830407833568981365734984310315401540012791629774131002028319685239012580735832328633898671264589856067219232103658594889730277788379890765395089666432223625384057927088875595294170093309609205056806186403805565772545066262834167405870076193804803994134130053611740076563635075727634088675195053839472647555664925632783513346851332755020391819572752713910821103376802684738660039338125362455206806031381289140937303173435084487674703931126170505082165939214526756785303280111512633908349834415403968279718196163395669762861401152609056322419024365317053102937092561309749507519349193543073174775973526098293931336104015657960497360879866724221584429089461132655266914558903667555129022799463180262553383150081007312670241806700319774400778286111707392223927877069873993064689904743414538114223054870720843192296356554648366701467581068749555128635362128725695512102447592692457763899369971100414630851536932650884468018228392404825536778127753172575126197913388976872635777319978727971287382907615623555681451091670900759116053163204621816287269117512056600638403771561061373838522211969820390024573877158975849353587589346132673813931051272857049775701741952986146224092961510657313523118366164585305362735302514713751096184088735743462120540593262191408165715399844854561103825022992628629788108493938722777769110948940869841626647819558675665806118341907382541591337079502373625618385699112351444450187430003930309878807892621352576147364157517985789041861368618077670804325733863158792047482314574210683788800242351266341558353051791022337098239820156029068908133605574883056917695857772350266013120874284108554979367395702851607090684351145458206949836224209174095116290322966522700335068211717980135245927399596140432046945799062987961063946870881369592495364074493833419423478541400989308539533061715759063091412376728083675583124802687018016819303520381661422766410942058893847820490117717779290417970919916242155371384142699690914840658882267483817486561984793124307295271409076044044128167180784959620951791025063637517370617529411520935341843769884614080103861239252119611325274338142570430327980106450817828307909455398152021980266723659238189186848396153314902379179360110414500841402659612876230493639616121786609431215434130503779912350498883665230536448009818384533484869654152835099724164076165734087097646341159882325217971736572146504009323868141346894354261389264581668276657331442038921228609629462545531690954544614019358753574939252239917594968280435657385240284410780654282694559157149508814942804235696023288998555794682041377251674694888136760333427130772989362229031001396076643897727684467888417417865262015094084256447970858489574826041309540563048896535534654722418797181407599518027303760160581854818998446854877312862134234443395407082253277175978338311190775293455315606730978326738755911095819441024401519579217871281539800184526035689317174780100779260016017662436722774821157272545338726505926899485242861164658713702823192429693255120014034310874121229669810358747648446905518177037259250512600636189273863693978579524352837183503119993894252012056931015456440641678068707006473269015376989176478059259479628154611032898417565426870272829633083887018482844963273188118220980355980389227873909866714354028451335166648884531044635212687660816367544032427745591593583538054092510132517726159876982761348814402045132693239181356564479220789580468295652694259596920873915867303469309842665818103073674981035887038003945960863867648744051337363982620639863172958191674023846250728834439345754097435158573237599353191796948629811328206801804772106689006019198174697995264365027831417140765086947518459267637508392982033473468253341803535027926980830040798280257213974568169967524545608234957000975952718609179276630263361632578399287086576280365821455441238289515323714016097959237995833653588636043670289632144690301736524146062165711679684668626039941312036452613622233740298826405449158438366585794625416942122687649828655580053200096016164751713807444626985425141445912397617736673928008372533615713993376728704742541922098961387479425966117825218747649145470528071630103462075182095662751149990877976357131486655218143263364097443271735504705989386670056784097563886376530380759693134032545127185415963028126231214742952980709035182055956496802147557475435219176821228916283965873382903133993001359354905465870086655135772140316937245326292603449152155607795447066831353382686372353428957216227547024762223453364000144007056506675616349508941032462952006039721761096975147535545661767354459896732800933415693644760800650667329875451394227029446607397032559631970643150482608005022990501028137668348909088424799515731355280554125568496426066110305698492656675568981295089199809164228846551521759268975553506390624371395104758007468967792232242699703682187947852864003557833408843755234159203412108017143823520409102259751229590505847966189516647888745862366290078219711213530986623819798049533365827662753545804253880658168203282557624972108778617132407758870958342745714983401761337973018319428201963323843150234314129310502716430735544994983995203137974919740307878487420402029040768023303597031780496584175206228965744850020483709580351841157038565307442948872302806604178466705590861794659662059660913355460824767482295612577842519245955088568657090977645669336557936747482910359949290893638036031937293088454289691075549237449368596701389426457580196536705323379594824906856468743795341017994523398286610448746768369174852047775515463643010175102882026525602628586169616933499970092765553854230976129603269109713072468323792681409898046773697412524314480499426411024028975575731960639660154038876939230134563421651948617537843067326134672707513619866828328412849617857139634090437445885676847301079505105622325486742012862635926707639492988934406976358352383530895403342647049720248160220828144446235272409073236226739437281199749038749029389369344109240244170346975342469131657384053829245571488439522954162348753393061491454574394169752451458656688058233405767643642948011635294560085279181210464244177191951258079106982705899281132758939423493449362177279344965320489872661150088739628618621376597768875762278926824830421882470222386974039410326757503456469922744412017812042251278264508392285159742572570564954661112206160828482871445828266341733487263833899968285108419432976555185970943793760973784117896016875430707994426054576864629373199354568600129015251396666499561996428030403829783327061245666514700345738714143092425939860875974561123977107085828805874529126516293497561783436444113638426204265176719325892273802233549696962458606637774688289067483836228271920794568675287671679440608579457570134032915004605437187713931603461686587832387873108389397541243945141181715238588156220338640577895590445021696561005420251267739047509293260699896726044761149381757272378165811603653524095703277459595365360987201724376290301317618248357458197942709489501763993648597364471243079616730532138829432366890302550126758473940283054856265115649883950181631433077737471142781567403871494886043276605137140958403233038587204246805355059311707042498938403349968272833544470094130433394946816715126494157806199069335384620166866129561142421871465698277900564255015060906955591717502324331594491851776213847087673493785621304547449487135939258178127526643323258255866333130166752165635216180598989552150628270673233928906778013755347551767099676112779762339160517500760953144607285659728821316666764949080653380546039556768404008652290051177236593159538704095726543847054472816922753475925210190865416291234289289488260921687756958026438600132938316332741536611741504121041787359224049702336687913265810981024126042735239641883017559531863555435267730109732878713728419337544008805396201656215861345329932716487547244026648094871179431341253537200962143608704751467559965163776543754927459814786374732536810155961774548382910039056587927728046714702240855254864037407341236417443693909025077313138984627532986326429084672486329900283693321247078589626902583159802078068278144623368807296108234212591945734254130929792695018653583037555020755309319705078157891119482742037473022108107937269768241918026358494706618402898270641690157792504624412755962529625905047671571861912903102653581208934536092743311018441576224996529796672607646670194213757575213604495302356160054537962269185576811255231720296908055986477162203990690193167389104886553672907269725028572026734199184442106788059127821120722958731430002164945777253225671608741158696219305494481508658086935846767937396641636558213377999909760938777658395091042297045680602105743649245521096762854460269913919539798753213142857222660321502736832613065242791947183010264765256585826917884539088999850938013682072518745241755133926229421709054949613196923737986558715504283632362773647391107580839488829169744481360506019976526659184673464807231952657082903206572938832683870430099901886560383645430192847962372207773371174165814690819266053701002017498911720594829499348114674862829299229051234589163709790215061096143998534490164405191155198607760476402458924039340344833775528291334746065188273085348471743204789001696971598796262155386030412259640105246486300255252908938607285567064365628906383208005459898342895606788053600367470263952422534734590314618599369506995483093575934688578692554985875470302816467974005246721971735470201641958768091290149017348664391614726691958415976551649402271168508559231884009846597293446505851561051133662615920056586293332664455811027433700182321895802875589647908013693977662769964325595171284856676543632646643142237035927188464221793976899848861209021022289563823543668748620462371360669560990316671419489803266947514531947062494360741349171097576210886315664658155866655915304825524063206904897184080418802836683990090201811964306501617228711202592683206183360393478418466577683522900530103596340207575507955555663573211196420781102937275221662100634485442904921224107379485687694548824684446128503396721115842601193812518402024697499544257431113931183319637346984162200920353670203200202461818681603217552385780444377629104187191921627728399971316173043757542196312009959772315719454466969996652829527292185895377955794472928379816169865140502116214679253317543708588872030849364400890314337566318409994173174923944897393415648795542794403778812771681323727751753074252625827859127109604731395411528577751228207615222212897634748800048852452523788401510826626089185008598957269543823550147962131998090558916632484662805656911286082633583602504195536058968799632730593913550520443385444072474436072543675704266627686737583608951255605291003238521741583786202180896291576053452555992217574912010637055397783253418773135564819331086291839237914526509017258257310152271490431037032313252142293796138308506768298407195235271812108001239200589998818604078719835859647524444856363165266266387581349815088389126049514639598196468032299287050321730754540505867495733593155894055072441270565367169621752369048408409104221202240031533576471557947588903793425862295834292392208012487835790741315137063924944209637294753818428363154773059499779252516143799050999609508119062201073612379981825231079425578795075640317954194413629890620878460002886599149816163911036876467857908461936839679650661004142243809040031270236610536850554481822205594343956632078808471666625489014473317292443107295856589843533430435436627895236579845116321895970829117923497292273344327361087927507305227705191557259025424520343077231496384395588779919152396943038048645341010737034482220924844120174040160666729972094650818827993882516650243165205465902989409976418667429412591145638906085714811692978299557974814430411820661662038109257838884873094757033688028417002480490810370587288380741463262005382773402702073711152052048697814030721478250941840546239132338699040966702814930722535818876881108682946349206128490442682389459087871072014429661134907354396876016913782235878146324300435214110806430553685968384629604370934072639376245386634737386717746534931594562076978454029617729395912039255336471500344827019770968552059995345291996167062617267873781269349807810547733179907656502044504564022571076496109467156341742417173588527901328015965334079380762111246932856030745989612507274256905524809331211463988962387947971533509293261360128179655292536803416864590706323960406808860724302827207152566268741887287718270405996340535979543461733105620266496218600228727509015325253945877837226014915999407786973118721295087854737770830616465834301830710487156949656587843887301882459008555690696896672632239212359132208268126959011840435748716837483397685677712086068150668756639709445932517026355372328783001976096693477100304326689241939669223033540471312687075902980896264341518685807464218032254406181827261323889228419547566583618984362643131736515825669877014642899782334245171414505250573787386331397781052428993240530628301770637227070747382290674606323156047394935958120197480133033742185924844035400295553631781436776880376624116321041930893060710099720882116814909334698628024204337497927430416747862374848404430536193585204731940681806515301351071739292136138727638236730359022535599497114591822465180243166394094291824554399504274470789752628317428961205988917496883481899407902997253281419220069212891548117490033312368108115424584837062963248339153874538282438484145405996506682148895544599619873531866917707295062486009072353449409305817806657938182006840833944489666294285711730738280436864876588997448625714722937414200131212830457668838774090963660381697419016976968183111810389583279822735688415816963026631135700714266824281000226812401576057388115692837283726478114570018231029008916486877291933468071605340897083745038383127062516752769971038753175707750113467729317243278300797971354065650311464526225894249111404364611803758247736273160253383774466946637310174081039082278890682555868146600612658756539320760008441257870693241536486961926007883845618601942367799460030402048294535070109487708657381271307786403040747036448966868709345938439034032202901471503265275498383789987905705982455825314523621564897951292459993557861080271838493522607005258170757018090747294806959588148699265437157464805361820711485982364617730829223142034256511251245235202371934891353373030896732479264692523901987925588750151853561628527277052709306771029323895911131928362115572948322355580712731833706172111569121445997393921390546791107023730160547486254360297378214583970076576760955935674921176767874072054477517883576349249522034968477754324956390518788091872362722862253501614367687424165916000496595573849538537853633946745869726485102199869232784295050196584009898832981980118352135305420202612423446254574751936512480546034153242493168654872027115554612175912146910788227578366449550406899331321793682285225694283567335629222973929711859892596813348771562470851469022593281895516705221195237861863247238856803119614942360837254398336745698883313257650007413456039106311848401373586528537595981529891663128133781183974952767832513168507491488271070603232286097262178758089166649591741861962911533603555106284402023595538565537711702117751300324492249491029192881587098416120250074043479214676754064226133038272046763042026174221873451399524265923771021319170742810926306272061938884886809000107718338672384382822303426092853089461735665289737362900882448084635885850770921388094573340804605272932089569395970753753856694609614168852086412168256458339734478702735634279105803073095075140646019203458971005420033978908362745741063437181302809497421014744954292962237682874456661556790848546330871577346737469126228920586993404825636333483316597911750606531184652074512263427273300502050573400881189826533572572145418463859078022163707773372979285649376192882861051595579963423393291053102278757766424566445078809235496305351264244743197517016317758651613023709140749296758167176004273765214048593992632412687245028550359628724903469676350647279500632496911832912074747620615786944615592904689770746262166261052373371614033751470326984797269392667836355102333764884857588533803664173502537245883363345310152842486649884116372339768077402418578017986574407954306889137245430337535686534285918054072380855332254658357404740834944268148598855754578909906100791925740771579981881263641783518979685016477022558122273306332276176100672757724470042015449093110357884011614653914810169505539122923785193277172381829597653444381930099826069494728828767287645968337467972608361540723664455060249031484989476859605016958508498921828498737439525803740908986820376812314927317465407223935764724006230649671913436147654380902438814382077283544111362572149970435167501197932028674626964720051665405612616170941336961059901837370440153656840397321313668971097828117248009693676038872691004327191467767463231102706680770544305178949418384980676162887735853620373728606854934091115966957500694596510162339751018601609121839039996038268581750790364184030519782350610476757342364310273317477651283818659645099604912673448429042229665159490294828006229558402705912211765114434475686691981240306663681260496672656975943061881147176054200022014581960490558514265169032453134744434937525802493022978233345340242123252532983980083338899952694794232899254031995603831767055194528142921940180760576108118481199542897014248585527352452070698284198090344175039743024273605136147285850394665202651882155511605514268900071643673493366250081967839733299667852966089000456220774416954283783256599698219015361821184149318772393721743919766362541003846872337035795619101013537621442433104845005642861313751397464275937131790015888027864179574563786686964056278359915680021913246700169310611568408828499252649152122372604928448242460097652505043243438588907394293101196007949626987266889959797069388356083756801202327820385967698914628435162738407037369224915267639700226340964064406041610277447783222824338956219736423499342453153722563000491379559506875775436696809254598696041493009119406682217118487997528038211413559448240669179730110730602507760027605478318979405526579914135140870369601392039933476203469840948272892315729403171016065312366410278132138086253125551653949870999984300652319533745609101825028907326318956272934933654116556921943178598431587745273727350730684447060086833393643232644129444754479739140492814224592894310109967704378116650569373674631010079317416112110513337043933118895183018738772895205253035747530076194868012366739258115086922918806713189732661890619140761904503428400157222817655900674355950652560914272858858585480615759519535303430893981393012619249074337063553489005465880116122536303663761141635158173748441767230393098088896892857423097395050267334729499889758817796782013652645356188310361144044843589600526809599772054625578295349249371937429943917555853583437870563738317791486127375217004762319562181021172047949092168076689838572479932922831784992537907189340914472956483970476248044017310718498111774515186539673055956045220590997879443307098582037374481262168329099825663419034383785172334894173564461686568905459611382315655126574229518475301026945086576622390077058976667270627394981148501054299088489520373450709201990069719780675921525412305477201743959110036135585963044379775970874678429808635477322088314470866478279057245314965455859432294477717233320624880047991302064633441748764452307962883592980156897912001789612129977881687881775407786818011997839620521349884589600358542906375150018893483091864644896804658946135705409605396370597103010593545087865943376109652383601523312297868717214362376499048630369952093089284921936135387795328032613481546190939814341293491840271526960958227990745341304121010255458336389268402243255523015727776290756305399844507475115721228955158495656367933173061079345154646674273146862702698409183289772852641974023304547118961376661658286343586797426866527056827016642290103464218799651996565860121754209764878128087556701427688707411038620679289620633159190399476370367691751169414014379085321569476329160008604708501220565426463222174274435683534915107342279909778573472398935451566714546841433734563217446163381749138547573715066877878692396292135013937415478449406185720577391896406870161353172228813764370650231212852343766598195164930775140257521930957738106213308624823303837195327707339165260014492588325024750995515277810614184403192116515480792229079963989407263795203048749252359799460360558642199168527552521230050102896947207020943205467509858491818582221626371802078620791513292246292221862457261278320358290710045532776634487499729241417642118997812233331930260561940157209405079840018632307299243710115653479849052223811789003585955846313640883613744953605058274159796618579551073595458058799062367682895452166562030706269303115696979175748730492255627164166667786290985332457608632206884836771453006823245458226424251863681958160769926063275956116773888414935225427886762609309765795654618323708423041794738151975403599432848341005666172529874772031309749942401033758448200578931096180070592962667422950966198129127869290653550192759649172712841676281966970762483332939396247722504909990935649553130687606338481657891467256518914208140261580755572352527603544926738906655743672033625289579190437060512025434379042531556563001449777188508453375663672188046447640374203053539542297333923918628207247094387022592433879147754924758795588411265123755558991963896113142140162639862288315634754306503987152326700096206943048225192496444065667347048589383312786517822531816819928445267875000440931736286715382303399287855493887429482518535297480416532115512137194359253452685303641055220551874726417657938026378852187634810708542263588034461112000367305029629531250369009720640420276465495875443310921429943766695117434294642478586555877560890315981256769185524246193084798914409147573127458974786950785472965132411451383894953953860819822404899029238750796374807439878042951014898337574935209211779698161980131103173679010772373634477505038826647068810336561870131782926084084110565740684599964820820520410616840015859430227594712830445094054996500084416580784358785215076882534107213165559094142213612887288758305929489068680861793141567432934615939467934148021744323393890773466786292593860260589389011816603047053519470313877681864967108535190524742101487521472116193096739640613169512674389219809346493260014521889574065813388843859338648299797678172829914415790651906067829477364958965515589419931729988743737071169368654611804310982410724520021376920895212826409899949643427118468025699487366275045593073848460650963785582470964546213923324776812438003891155383532912290857088598635324175099611057043145968411814094588125063319553368459695002852574542131820433662556325160614961281040186581835299109120180985451548729828526458648404941037509172317512201799905587774382038585071071533543561234163953759380286412505225480159154372375329864047938797249517178792695750760158994157145278339156779568067853146680843691668300572271063087757275659510088938730394743638339209139825547322971340728521966355547073203478843611159068873615610342635121257295120528361389518670584448672275878879921687658102075662922222039872301582637767209968719537970736334057758437110758988474672143185286222041934298257940110935599073140351061700139151496507685082796312323957860771684166161062089665549510176684814023368260347097395420145028706502739317469381456216686818194555329334020780927967168649171080558386648412091916238695915385715021520330199749097267600932746076238148554142427953314676804401902263448496208835665368600849560168005709687048077031543718911300697136284343371724121006539744442405533893211406867845317743998607275202531177932179444539544758739404105124942853210848619705665141297788790283319330626987788440288190433755066674532162566860633677412837457889248158844620772347751993982654110532773846474663924271180307490736740555142933942203744052007870258963217456959131380959156546111597035793365619289874031596854625510014963522982162087273220256883469672421223164899546867322953418289241926855819240350076196897591609622097577259966576690180064041375729750413651508578720381449626946172883685963569095313820804627530791052734437545289506007023729076283597204162182381377170343276213124312435262127464954025020748043767741600995839243621469929612495633340121727411881036132725666390372651350319432465866866482770692136813628875951035286842975034240071162421588137348020412391045473165049058549258840211588498420808556783741448526776266707250810633310969908618227504031242014539707233465584449851795222472604733605898478437952931863001742886965740131261962882763393798096640771885570079778947015922458457138360110770916426046664583176771539343603965377192341942808603376334881157782722118248063317465091131906410684973853586129962152445167020348377359733774017881886656904115841730451324997326174407629408794265899589061972076892225008353717448660193421062932001953456653863398906971135792680285031447161193859516942104302791817726510997073600685552332689655192486259620837283246702849010675835730611514813085207370365057907718402193276892909359011546596413758297879041408115022721629700748656468431696360502517257699175458437568693958037768162576116586486282012084872947684618056370263028822387161341325457903456654308656680669894277629537179425195967174588531969297875224273860099700363404010344313051244120473862899400225458708288163063800896687911868429964471805356759979915581759857771466374434552931662062434031964392358760077779906554935046571012239390375839784495075406863018660842322354961586604373169845133670740895635845083036014973748937546086260844249998326277486202563992006919649025713273588471450265429115875145398265919637055914223036987196099637409367273591676306043131876215375277327667747205489361902590384177758853523951865748187182412162547444598807896780626060412756217179531392600351059105831263353043998607241548071584345548123645198476421361157740616318907813341482095825190004233304569065700410824431702658545035583478967972291906554804046162729049627637730033306151741491369369919303281628254340238598122186182606872613948743236648773558308771433923268342247133443147825823690199581753379410471180264815940751979119032137958828935474095520537966603555751637713009851895600728340773677771900542954357895230081781712330187233551953716062241993228715404442787730871996753841609606705016256406105197249575830688698601214011395472463975523192989342210983543639373166150337302707956223008843651174723777905421568536076391744439507639658043560316533692027470758792303035242875083391576613306525077445316651622185157328215968349500399840916063974179305880965086905427993780588632433688707321186931295005781284910943057643982826181378253670670991010667615209237782228239480687034082871110977323280879977898156646796011817728565220823383183008688452256324809715476724172356827969770779015181712497678762140269897438865843454930864896684189839121250621449309189280008705622724808669264195781947666026360872823496344752093232838008292171866963364833753531051437388265620873130435531981314992496415755805630104609236404465773156895494648464253920288583621785870393474424003694601666405833510325134907821866657316591312390041495277657917180045190009625827004049486825187828448722489884962977357135202682124344571409874445719433393439779460584753031021262899412158336132185192756818380157560732055607743348366012531123539285059723744081249891688952757675900598319243705216235513307107448270471473754813545509652012378191125375352475737525544613660914807929590841807939721712266249425034392413775330257852045788500880399809657069150849621807315513509999230887119056363180723474304884676451837944290223145653501454053509028226729599191043703247213268527588527569111692692369894033280747028794259679960883420770572697405444786312768812303791477418500963795761616561573535623894788616397801300506456433342392858941903561436469023731817773388739159887033678585138536210518142615685940183288787442232734328575254916472502688396070974474795097648043204162337159500825026998995152929961203939386707226272712385664093081194711904690600565805112705427716922232093916064768749351937680272955541650245503101395063372488087436272789064752519173756417014240674485768113672578728341329225295846576880691618528369932287854278455900981292428381744761347864829762871709744901833086688359066737030015415958658923608406208672571890658157953581624338645740306574423975104563148315761406684572138136396074279716395792260215140674905788534070783612100746340452360161708417690903881045613451012459562308482434650009369533460776339793898300519096972943371039112362254036803129052913841639715490999159059801245553923681953898883905117216186022218293457987544554070500015485688184908078409207453396532871209518536944233700188648528946020636591821666487467770708464418361071566898126826698293195343131023223302824118181912008562743152239371880833479242371684227133235364359075053325149943994774290850802353015299839072944605550346639285979176966560715544962461660666607500004794010563144788534951739181106744793317340389888281307459838562136560722171247351262889657433900863382741013285215071160918570603331138352916944828775949144877764922535074687145325808976366754779861032992147974555136033891008580003665569709366101964871701582794725007917560870246839230677543707871395709116864720242997780999052922843648739352876844632702039710594079285980387148291045586223753077357925209560153142950578618848443304342330707413651468856078670390562273164569481564441043278880364783084647658334555576497987651675502184675933353320232109014283438732039131323217849385084318185629978393476030375722249871858173341874668899256239929622948012128316176201781217849831684382243903484253309025625309590797141672820065884355313553309740368105863217476840654587848080600803047662417848063774452867379826659477872825985836870701121542058961104686675615483118408733642057600176005050998700240478627666068518218134108018654994820336907492449005481313670290697037337580305214971946974243953599550881304202181316960321613303841081307744730226697322472794257727829952713565461697857419590967854575234942550859934417698935655281890736312004352395184694472152725683927653569220875999150380804898604329559393890310168760183714970841254330473478874119303765103612652229774597422483757872674299995606713208743544099664904117027453533092940795203621553882152927716829881647357485594544857610642778418769895912465560256891231502378995202912152217962975070760874364182868628023733242653137093810945699589887211062537166996223871528675010223217438919955325221623006351290516443360150174237773270948932109908155180292494334234872218107160807012245791157823886556207967852153206076369872176149030379536776292986949192330216856428635877602377659101345911900686707907967821458400738730747071377949200290467999779860883388194639298869347415185303410062196682450820460191823202935701606690807380057063631140253539345821254520750841678881660435638520738892335848782681665482846725347354772920696490911988106413649378431957439290656912236945002512506627270222385653508549940601543830943153759573061683137563051161015797203657550668607487047164097272523145326032317417770453866971259129689328926871890522355775748062134852299493507919236689894279114248549754041481413188079233878851041719023298343085395547135442810018261495020459719426241187645473684844410022255326830794588240537005876493455364996839452159620051733849889482394199841862436608137455995306439206697230828787792396481190549061455597852770097306241774445089364180390923361577820794275025747087825158679971800047677633795626224517240083352351719875072781981672057764577480492143483048659196960656209532534432095124399535291516845371169857345806249971249858135331482650035311833968878171721713103731452071916621235390442480953710015592602827361645893189934350426247699312225556869230888320496169511737883964383652102299623986520285193242524158127536108297041364407500423916198512168601483151314430797532378253715320083539872899654165998986064467298087937815144732965857335596249385898086544090997633041274312855551609890085121862115751501067154922054984910848368316711870280793470151620980497175405910314673682117757867810319705277337392536692523748262335073265874164906597654345651920539919822353063319188778323589362645834557301073173798853536903707731611715343389094920743046566030886051906896482121080850332224201408843634163995744650655784142232558698403722827951942275598513227075114965266895104723616416024945605154137699479696003502217089436689738951967727704345224765473023943558192500999334439659121897941098454869178305543318800003540168768496625871208200714538479514806118454520170907504603307190972840754465543345149202919234912592444778817715084615638319178171430873175077425345213018318173654770205249906039005871827847998461345203939469309349205781836761660431919280115631124803201241496182811478873783619307607114398911908019620588267667873012251017659836206597343631183605501417310843357839484177221011387811498509455602822583858474202502950693941838600583231544055576806619133039543315267715139818097960960882937725874957735111712502232981356075826483167956174410796890080329636320432840718876950041364129485840328161748259107573112488235039754956500142106424937073552394920604883884819026763337837636035248356213473230106628500559511490241911079534646332073982104415866888889821362466497220100128486470613324012482905042513519620152444050618336316276286383218717548484463339102880442445964250188897889357865295990632056681931304545390160132534623384802641883406378493157601318865015814450991478206832741805623586345429490428832791802231233374902031660958969906982961638886094191877485268903364695898648238961466749631519960042233495615251227023285279678076991177859285188375623541795899520320722354050254701395035953739095695728918706855828849460648342974603645485486200346393103932377576945382975643465089688055481533337918438472595063726756407245195744896403516643695213474238189780347489283071744016981877433472186904691432641943656896210563220480767897888304390801580850632557073445429930466345387953197342515052091731935026015452851629981841387581946623315677388001709075435682874037663208884135893531732036169083900285401407775828721889090795820396180643663689038338452218787837900920742683950745099069384794018548454493135465190164161433367968637939828618213432714852773656698808626888662939212780759969099170626975119093048352488780150378618923523124422387657060841848628587133526408529501419657936764125811636025754214501333632136112193426272217262537547136920767482719359368921608983103097337689729509293320293801550188170631856342021739436766931115061880605132528311022764010071587239396557736426975553641216950992827973314640379318640226903394455495289111494816352183452807844626329668340570930237197233160326554108942731898461210163580307195594871551260021662791834089681263351655150484812574692956508755710779564065726408212177885578715331871104201660890171361328781074898890981824582080782087254411290107177362543954249035832517176442684921368646344761330011890930964531755095585591993300727899325861491063760731537007982999563943027649488026295525292823387430780148598554596866994143964398342020291120560213238294328421912711063565237568705694637653456412745751944062171673846581065244677161613038484479729552024600413817361017720779461123710216607341273377267375677904200880076000034941287918203448522676734246267504407272074504540885313663762793421202699951965284437047310319469632317969415260579787439997510868649437809116129209536941812518493568896930057242089693281116531676886218843983381231634569172272278624768509464371806839220356159130625793899393882767506901856154543451630124876672344137042141483738951925111965228517962107956402127444450159918061388385650966769138867857977764020124433059510671372370268209675752469716806953783010223037366229687159032816541280655804861576403847227571415128241523930219197397229490945572270195992298276635493126042176911428931432210769735527314173868849300110190290937740104180993849116978652947228582421916823356551347880398405422234287713006010806057569049093833133810319121788206950745027016932234714208188088468520951937410529066080721998317133322690985906313784594516810474282360515080646063829877996042824872688140243533210232032935278539773816789956054215001632527071099056313183931187224648149101385298442096013216027132155026419255520480356938682971336208447661007054068701881230388292999427128362843938125848042939033942525820066303004345853263285339038176043688923883927980649261403016918153226467329145548023916151549532371070792019776062393574563124179950542457588264535221958569935738039578495714076976111862302817707191504416423779573310264115164903710395733890071409109481749443420899830653008505783749349441532254098308611200951478797878887805135197214974409915090773059123855225765538544355935709013187339020132990634594991941226661778744013854683830801541347855020020564115603258263831766429604020067464028786216117703887385005834267889603097819768507421213462014871601245266566988434823841850133163912708603889807122545346968252637830105222852592399009708386813497794121082770241368134947021039126524111249827041862541878433352477034693357560393068888190531792914059290032293062294741054942886790238793923408613693251609992163600041556549069641555396947930538580683865103110090642335400117644403161334270569100460409050562724211734376074169294809670666954474899005890317309224073870840216248291963581681715098259606087964437876533174894780232581828726945458075351867024209804059924385346550000567911546706415685362301790156002831304684876035726775712561259040086325020459998705823188610761651243099972512395372386965968667447644994404965792135067824872872452654322987959321307321761457818502116587300732186115512103235217908200440591444556445172889083113800515225138870082934602183396090967628945869257315496782062835348119409077477455478951420030921225181158506323254730756000781681180947711323874036310545203736559169929064931632834013458878083184830019887363955463015505075111110051729304025301355978689805388974664176847909203590984445949065124036949224832561056791014341515194283934403085502047169432981860425897839928385174744353986546199319337008243779823170363401850087763429516219395531055437711930879020195257916912764462987139452078395622859950287423673473207708643386523246736382177018850492615186515571431698135269284834954860779080690257544742976224942235521455944887880975604632296627034340928257302766121614423208820514151389415502503760451494096588975334557739490710674518422801350698784384983289830867991299330423790802149974847465140015778878730293116170989827779811712215544445823590692310283283173825592531431468948385656283142342853579678150521646463274285190022121321961615039824061736045828831855279743324972029110629157689957923157595075872322332644911844695944236319992382195160261126494414867433905743243074328657521379494606389182239028964979278607205215090214754372442014102723992345260526706367826455696384301326968925202753638246812878189608489080626635637638802427483227739212241401996098901056830160805694538343243383140721895092847996751052783223381706250021864199450104352416691529058912917117397256458974647605247265075464583927344376223783560886238156369894321049665521992539992451686620581357141412538731997587113003297972472470073428188925797739750464000352513439960918951880777835192278154684530849555608943103707226314165856853255885230955165795028177098569604279154384851409535437664915237919219298304346370671795353235734520200247794923367935235345421495802014001047040418139616532813752846271306389959598575269215409721584671768152263309706244785725722759217747493881587308024733560598309097015336285044033767086623051114116332625871501771148305911658621987037543376436452375000049658449985469218878608820030754334973786138286660561708907916147739448781992089024073713423158238567252423402642610810774432331755316792538695682499169085983508275252040850983130929048775388824012818207881063337278327585217349398503189990341541197865792360700799343470825357525361206635112043408794495094417783845776103428866599207468771278156427498878372856157873766806671079275613585701857712865688148106599642316174530976093094976250590898706615578212987853727600957192443061568566046751558176945957434207517699348211862284755621372014533876818115248861691417031353164757445368144995519241359237781176432103725557921611009410502935508856996024911504545034516127446759268453473901537994123531072672097011826793914341075485307252497485026289192143546095816040127970527225764627821356001694341379402964177251528222012019543395792080260038920686555438083880405324648304199079535124962341561796986053585987235180570256001154340169317546526735514601335023531398692011074458159083598544449305236331669355077549466559733159500809259908351182688590904931353197472384226141362161594477189492908581419048057967766301578528659453515862261996580080845113460609201007568307215790930622742556257398406166020095824919285138899859513724766998587731641082837664013595182293508102278591517772474135309462894044054616495773621182516627489441286334524032895527544226116655729086640470370187134014745962833962583379716203632623717569689766452943174396249419205738469082472403826023493833074487003292905717308702338302750871466521170488077136788036870250056986283485104796039025435884120573737539060997865808864413082557161838942498761914640574370183375093568138167372725793989652145626525089235037588557430674625990016961858894827491495021171394568824292840888967925946930147543310780619213259478674487150128218091431477173384312446009318194186631104826471905669217034457239490791895203197299220117334471147105086670850692782027365557651837478536301598343663095925754822063315581197865637223577054417027514697891581626742269848767529456102683187882699603311101012508614772470022860576348566104628289782619586579377553201473210955933878245041829283609531791847941812403342700497047345751771488693139449294011348387404841419881253258091914275421225977339615211535966275035125308210996859788850425520755239789668467906943076654402681982524013867430576963905124843553260311077647094619811827901446015409383614342472291907221814066009632908979040800722210909607701710848163788381208937759083424592756174398497628681921279382722695586369549208123456774053399446749530519946429890577119096632617064364510264688551364803710144294970676089817132775031854213506898218526629357051931168824825756235449083833616043603154541528988521648517120873024480155419049772849405017305288479440762205524956399843247014323054088423579250664733478357834917233046908041845428861446289400493950508807508491043749918063142419931576495777140795082890637045875093625880446532520278683119140339684666044750231328254345053990909597963236981907463963370960568030070988450762413553506271662863653885358406743351070937742759848045712790328794373035353162229349493550253702244942217833007904827521183986229416009996964577989761688816663382456104131332651858484470686627791939071309866563490555847704898268761009249372339947200353296259140415047899486942665608742133502382956145531894400561624515426422919505623860348949978552520532757062422917645079718652013694415701754327926195032521302646988337583800519056326143126040403371380800005831748265778457421744676761395826217481610651248444811281571421065607398511593783637886213597991138036284399671210576389735386297440422741680708437567461878573981901346671042376355554807068028177125002219481272924791287012766068111949944329542847094632775624347189819165857500345233094479794814695311353770072728577485460146726229251019428373123978794672935814263807874262554563734572188249335802776270310934516410160082652290700654329140374975733992644870052426192495180845767461545433005489653612380930648261883511035949323231991091771761945399756866511496802981140869732800256830552215803252907512988893200669242653901811431526137101348829738478826080714182486782363542286240347620495894248564899923955926156668303307700982332168137744402168243398569654882871253870955324398874337697768727747648425405158214779139456201770602525772016841524748961160616301133912975993751397778944062202057647912316776242219216764668449027110361546216411189142892271530361846769570241598895147723121333742857274217188070884536153891615147888291429104814936777591803484157478940209706139647993671505441228236127280727350820566842923944008123395780155662534465723449186815000476819375872081058008143714445454583669578418878225585082544551273259971518710160128609665547226399339530355985389128852709099769715883789823982172661714650980760310383635832675905449900695584975916754545515743817568973993180305140259091216232538746764810663341712961265805754513438806736210224045882431837032110236634466134635059403967794516888283812144196887499427476136665513147434659891597481206096074041340905746755553956228411531498335848740800729362240294094360822121410373662338735474616924021955028578001507123911439671797047391066552601469354428254589720452584145596433105970369929975271185165685385367166044470649059250378922434839242482582809582323690379349930999739674176891297329876401264926407933623827658504752228164877530231857022611602142838115813809922969611763956830494587439950594308483688764798214683807337253917885936504506841399191913070039441487450569418559697879151463520350641668533245511326684906045873676047206285012549989306805490719737679529669282190799822126758558851402161201614611019717911099286008650863237136918704535095100353623504568939998183540690765765428589536563512245910419056113333094360501146259519081447093151691772044659612137063822505544203489942602216005742495903637346550197842354964229172084921654714527377360366160883347328396678848184885138454621872410535445713715001765489365379723237109346934602945140040196042387113048728366009935883142272975695589829599693561780464936567653436432490310915114653001812205821866153561054017860786062440460540228900017494951729803488596480930201223761892680817633282293326683156347707835725032241065571837835056788777165267683613687766040505704996867072217524497474543646723483249431408263742386895500241534656989132525046121872309529789166012612376060276945860118469572206948208004513777516790717355730511051594828363387156538957586568455518285685259679239083916940651682587829226415211648201582125422351244031725254199036032893490230094903052242208756951718932777815645358386308716335615356713191406865351778582347803230539596856826960199581312421627087137619909348359800122265815606198313877189846541977243335590778765768252606075105078118549167060507267586720285267352721055476861593894447976217627802699021021390851123409728801923560435100173684603055302010400349620348728547211669407271664185153188250006279372446064435623118780123088835572723760623911947873579891169682291142389042626240722017210020059219885596240383638805368067717040936538637600900040472552435307895004493352493649134399637076577595601693324925604748155383410575171796950967946846005228328928974428620974179883141329791334762300371545125116747638885414040409027863850105679530467832412279522696404851576929257969263162989977785685360007137980033964590661896240761833469462393792661882992311007042923991603533966483665011187553433443874488529927017630251803678946132524938642479569853002545303481606656241171153912185862929214368313036778404108617777023425224186758437192081319383196644803934203190415918793573778703825810158242863460177388444678814740178170693095564300614600729389082390968816069238546721109236620631243992526604696243254936736156003003203782800053459992085892129631257959080679956456384997373450657726268251168912913494448763598722544381953819851380005362023694040607156781990154130637941783424738669985389467670764979162510502777037360178525012657973620332248466398497290108677704937033577818226804271811247065032868631343306631091414464428768538756502974299442800062575734672365193768790398542078695418428914468138889082274159259900770109085175533076200252052360076272557393150752748255188258005976477779981892026516490725693784088183745939318612052860151834045272505433541326845983441359224341752841963747095836551861712235524022172804764021977888852215435262706079306456003221091221617868889823180349010957135932930815612033797550273214066477087023842847072144203760171550541995771687786792574940301884208656491579046744277736877504124746634095942994360363484121609408380562651695727450337893072519571281844030660220209201818763723574501501726589811038175153396201631389763236085868565386555381602486470613613021863847417695576655252078546689609000530646232625949494700768289920622873335082412388740434053127826677165825131727618389156457278012869195855567721887189540674373138480078758799912880433907332011833087991421455802232420702434242836713530316029952635257454909794941159058592322892105302327589018325900051115701015240523774860472353205773266066442459926865382580556419165845950593749317583139833563354862160893038088461713067682333990478369064771662700174136197944345821328163507126555431421264724678929678420600017032262006456426553160679810562401711140169797837493297240129464335748040288878876994196871815614079385332317386915939482972935105880909251638694759374629153006905109766593496828188404534978543256656886578035365460017787038174931255594699274280815728041844973165534167685887875310325874838421367466573660225779221946492823347388986328649235324922523854470858074250673399474806977402141531758131183912708492291158763571366240822627320907830852636752480632045431342816956661845772220571454566929224356278994668613268725114409178135197773643438187692443029925098181731403073784519696827097030723734880213015121767592636864463931611974277350731012533620621886697558262663010561468301307023033316362150491631818104109980231681027129545375251048485468997017393874065166206144254715199820605919442427629426093996163582460155679113266765808301019063958826452022186932259161918723240257903615482906738269943459904356600327502664087375222954259811666545198919828542233559410502716828040629987471818803161607026066892619145187771960724905623649105620293478676448274704147386150823402474049142229406401676433388962923365744227110029728266598934440256225113867468604450675831266620738992964546312492417784868717252406576680114196465244243349140750792962658561211731384165926079961868903035970231704377358994672378918246925111059906727160789030593838060927401033041969249567676578420538195710556699149642057699269986735129430549531155792316557362404500055594214853095605233187512912273328676028636338724620466192930683590606522614822488195280374040006916290233817570187300621699013964228349509351388039622189986540889971787176451705576970813478331376657419273868759442367614910527262042464928773330131547587116524944732926663222721802229787028471298669183272154088520504918542773161089215843054818587525812414434646728957262396455757565161858592697132428805209495346716816936858373255385310324671715842971458433631446262511867705856956630006973272169918271583732527574271159354752239040389237062148480114999677660473875888029195423012830202405256439706106496776609134346673694752203110806385924360823794835196912376785639691640065725916695980305213732409426776598265982048125972491325827865167302609174007936192621973496509714238873458108108810118628886164846086690603064719797152789603376841497778589878691110849333785434768097546371648620374760839409790772959299271261224312797977022491931349762790125127274112731487534791508144629027768270287730672747212481453493669642026906996576014401573858493673646411969072546915692855969761764215641686918639057809934542722062748163535418118730101055906261730011398977060112168307242732576061198912374717211086486333903006167949535911077164678478589405478497999921588187526162570469662878418396473446542193449842724055785669339306260029672564324876292770371339221940532572757357747524007913168966186629275673010076799941164783762392546067155996853421632799948559648441584278466479711289115575952944260429360080991173015342108253995972373515516323009510416372046737098313715103086035349234981659372695086952541388136243862624973455088037267998713666137367990838412433392882535876894348705847365152831536313134283177579081637153836301333588649843967992335959011661714834966549711092931408023544135171226295231503381696831578259837570941021627399381468584505508697201820246331248498486591480058484488566794453366933061929797672329596273713793319845177355097114448252021499158543846194387657540317384211902513902687423997844454670308495384714883850315397709786888168603485965737548995459399859022622241815409387795993410093465528175891712881139527202784818450031751258736034263150971559839144034444707080404237027254624459030708496742945467151402529666858380136302408086735896998874956386648178098410939951811927723542433735503799473325104094127593756106670696688707672491039235891951221878227234117893480642898374133137414601582065080548359141985228153071022690454884385842658839155455885024742392971210789662334345748819739197665811090421355408368026890864783614234138471338447469353899610213504170142659288765094360724011594326373654571792063758508906156607530340397765797789384370827321665828055702891873627482156222858125783556148240130104667335886490193901455143365564382873582870791796271588520315798620195473693617522796835213895422659918078371644642943374684997886843244368179654231991741124185192119151182053746745344994654893808088747468728285328525062378304031074797870553821936354566049350992981886822820738345341250153347919557156819544633285792847572951916992079764714409505208701433482312727167613327531161020723628093894062692595368247224675403855782691346669615648292626848892097481240625215730870875827395932857076657477659757475535868752318465661873809684780316238231663537252355462974793968051023793501422489789891971356308716428956565159911806008675528159044024420249358993704812537001054877515402298089233192684082590541368665841067619768404840762883848202448058923906080842550431969868282953055471044498720218765411567204798186444518825192157976465072376240959742770602215515617796080277609765140123705002380490946831316252190732821671858701927518259418869007365477047353767917621932016785786495550003318884660637592230712671088028213738630748993928199247728183602276046132631177582293843477374840267175082051457250451668690218569874872722836771881649402132808251263430275137924142291301394762151315087978774069226167568956456032295329166581982320511619130424989371928553971300508832757241623126438598850662788643399399342252796860438427581864494581402616018407686760396742026520723245509992621159691030928331909466167723314261617272313517189385492081061108597746841301286285094957895427003992542195285344385740431988543584253044699779586001532138924201648758150048781703595765794581472435254305270170006608479257800336334603503843402252243380390490536503728093713592354132199670169986571775642089095896969949747428013439358428691092690057947917067615901078782513598883338778505234324874568648418156839626867132985797544425593093754798767085389341228206133823457610480581940763478730255574220441795475422725810953711112898770023764008227803924265147334837537535221134650936430698707113878770872865500496925184017640842815260150853930959002613872435135100267648487054088392494774719066094573312626019443912615570831985552247535238081857407552202393137140384688864576020392391639271103985845801540635391836347191730316497895655445319169073939445995280607845419325960318048692894505885647593088422486982164238004496607670810104934150189901148580970656280384355013157266120072441629030990943588246198785476538094267812953622926030178808299383416545001874438137327493091381169534342580835270721429200292769136043790667736472457074928247887687722077068371646135187413161504731442362474027776687897123107218952166493392156215811499682343906264472903836317112012442086086562901252864766781020259285702100252900485203084640997461115079564004146823703695907602256314582338538212188769096859833064615532079661799626167565791753337553710578577287712570640517463067210276801185822311834206898256884080137793941635196524353147511715208636930067201173389975842901673194913311730598321528728440875252287871729045586765259932225250105981768135505836920285256185197376148726778211110261274940458071215962151493844071187682730919661805000657267871149372368806762233300679629062293797031064531162153220381304085768272887209382325407785490785114754019921041516846063791460657687713227978633897724241492071218933633289507610989180889610033540578599519585373067208732569251222613576107547894493184164767448725163610955196708675517259747206579147819005050777545597580781025809868232058717919654590552741441323230350101802839755374095328940223872191222582037519482026073375707297627495662506370950747671884722039663011899752690748773252431562582960760207312890677548357960115741054628459289441580939819411949775186726679337358512948111415393014518180257084073085571335607132240244841612357934489936037163033839902591381933773521656517768337020191656672041613775526829648427502894800528992728335533737672556308991533912935253043623011650889966358262077895962432839026119747999233766077490750357955832015243554293334571727059849501098400511194691542247232589681231081738876752901474496842562330240464902509242458622508597399119778380267716451939863616130675637245812760818244760781287827235664152916313778999027545638727584555578518384944251920019179106280140976619559328581646430580775351139487757043752908254533192920186761392456315901711064176180534368401142528400264836925870434818397387446286258432334644646800418255258893185637518068685738891405157348118155735875567825590995180591174843265226357717048852675784111152429155190336950345534912856159975616983272453918909776641353200757598994019013202474595375651012660334105927169239751277630077848279988574650700098694275084018557575555145837601991280091499038372423739752482315524574259238911499634171544160460228958385737765032850274209555123744506935131464186913265020522042672396360864557605710475307839685315271434976862591045405329316279292814078559341080171383968743565379469362729438416763325236328264932412357119458253689188934030043692030689751015837240771547556122843796883984809556382551414776747175631614820389375333805568599276851174935995121512378645679815131936646306833752503762413327854910813901035718717379394835559199728820555254126722742068945018437156779255473913658380014650642586970224180263667177088292274494415632152730465284408713719334780098096675804926493269008857701658134818663349741604513986917681279268348598453507507092281143110273370924722686395504318820171854164901012745804585704473598322809466682597097699656530516209177828318451450387985139190660646483355567891002673088338479552550672693174962058745379131749649500331350001281804054137959295050821074206143337110788748242632059040634456710837537663767645618676792551456049766255042828871894083998474280687412826426719725098123093564675003924998190216557843155601103262042434756209714438456482270365789202630597635308025985300232720335463549442554901217750980275044617404075598726413128020236008336781302185023902786595028297264959189021075803528493691537766060858836825618143530762625433511455629050691246800245900257650234063624556397469869415626220760093593791580390257160172085137803098800828198503203077341741709932156667640562163616250280753138115375329895697107892454681876221562807797593128566444950407054905869633862209485681138059324989803764007546218961529092737793348377831065929550365463944185076184622761736819254160259989497438963535480980852428924505523148912597776883253183885204787854226324329122782903371479123515276119403543760920654988844871319289088712989205761514265544339989847694151460316092154404124207043539564236442490752075763335713698916967956075961392817361334650242877287077316987311239676424216294896341343870218453226167811829148646836736226427803473917222117969374626876316729958245426387916318800059953323225829650648155786117124282753037861744966810019404721245632715707548252771237122193806838788943470566460099606713654845986440361697447047433963200828041549575476738645465571563678704579513636443529081872327665791854599250735441870119135622227134183297488302825375473615088342482687640689560118171833415633662437163171115813539856149268221238034769419369468317980685878913870651671838598030926407754884965255099377106259306726451044582708088710151962791849946269660037768130763253451139819895891288201753498931115545079261516539779593458163841143511893548684783310286716631780063378734147521880107536422268231980556467970642198125217240079414204923386133662228451918380598901442590839121408240399001715643178948228925227556717769906947118978990141508726735679992610240839973391542239666811846825412235834140735614594420396925426065800638269411632891734657698300236841340376191510036632766042162623046927135890319873204467434489438644580245272924455592403087408543352847124029414999942837621101518982150272764695683571058296459945935227839064684176076307931914093787495993574548071322382097342520978739821736561651032914491541532538834921675761033551770380090119966255697863286775343579317862680472353683160074400180467878154946395410202693542975892757933544542743031413218698529184997040621311402879216878660809547593692639379245878681241030325927669283671971528313911972391683695540491115882310584542470601155150610859867317766129428734952255903963738037811234865759052223992419051755698624879298593250058906662840372666529372529901714139886181227181020247136546825269723187371131742546742047535237388806408990384942728369996748991399755710870413595947330676071396723524193663515029470006713824442189969451484071621449276899349044417104461066450506973689682407681333158338910733841609510502680619475970903013301374337398172393979249080870366772802102957578508553922749403334448633733771185548218280342964170416256055230075446776141401626618260232953596459088068808748972224348123248331390070276567578777815824307282529869558991417062664343010978867741867511500322992822533822791249407626987749638237166476145216060561988155516878949713613446116606236366925257051309055485177876678875755703962116721137319716558288770735258758865151541696281145229743346017162792189402541817367435396302761444186137040592463603393967905305765400571944252814084220871912973781825668493658947910905420120323643355987555303519336786232517207396254056997721842654605740850879176398733952862458775126705090610732999430850943434642717745705916616033496005842763973277653062748308869730651582762264496381657102092673801414499495427857138433163822378321591730912077521555807193833543739534649178761519392227872812146458684083383158462704124268719302583788986373420378730962045000633974901659816951409035221098852764272027163634298226802904191187659040119632285520024068011958107483921416972689976605250966309680200543885435625317592318754071190634704573691600118532398944201872825117838792869009432706999811454053717454803746805433427373719887776538504508528412442679139031016413537615127069699689148202059432384393583853388970060454810776737759714301258915041213765701325645491834434666754337709444469746992177389892562508380787205414298913926456598370085541257394746298875018096954162276162312797426571952278406048934641774761090541611232666713706808308441636910300466408661850619995148749866682202819658694100726123825930582741971283390117012032046461352233513712582653590861848362947576922737307869034079061702525098139598020010569375394424193036172451870575292256145741169815364624067577340836939814539045533743815144308884086013634846809810966084307169346751598880450756680948840695625568697669854922254154060418675841698785466292727882835319872201015122306429015245126064295512201172865416577931523399251166275078242415177715539990914843490883003112352988531034805624405732031221133407224876966321117095294680624043075386872814627584808000946529531773544377452438547825141123785606044641395778991387032257148317813964002323883679253388997369672254189132344045549385954357096451570305033736896972234970099859986170226548211347810854702201006562032541254976523943949550859789054213848335136900154464518303010336523143440798023945075323391075387635047364491559502541505426153391278648106194736666480099288586456200487137506917139500319784433976069661166485460188451810829851931584822024312524874943259607076518973575172864738392363472462074018453156626942912911703483122267693896356805132757909080743525253520171235548413048696084246526782443072465537127817042587524313079458012216915475777544871640515991779710173441255893416005746439632920063227555800410919225121622302861095445253373326805286824369633397670818926064586570556784936391303830806711312082592132939071219207966145934263286666642693670928290796183450092789222269007530029266759387589497225819169522951621550162213547040844242125140303356386900637386872529737964161384392865368988354137362997810175779564671758626878669074120053258710728782866833498188704555946383616108858735657561307830336213977010063604024780470325814246520894372381979499900845526025535575198404121876896223092763122710760107234683405588818304758312406882782051043002595586383500194271333352430668286499625205603813973650677752349875723122394834324636690986953359460212492255003573293989899044876084795898980250761937212449609524828083901494398315214775401977255032033608886927832064625704784636188034726439897287981331230070511976925533025929693597854967966011860928906549886239672117162449053027327792311963588207476640009863815179899229872619240160556527124839017318564911625893081916948867436075111092433577441014577968843004777785282908173919580216006990434318486928083588433356204014895373938948537104178668767542118556945321653083437974366893652804021032254525334424161994513577495022564033009345523418645824465608675499240842796272788306669162762955572111571865951858840628277377931887646499152151234518671931098436390228272812029699163501337820831581904123889014713952579213872044393762682885355958107421354199922813442040186605713173021424866524947900457818386563373043024574656647820195225050606380006660429885810879407131341360781534833805043792719922304744401830246038921697801736194566813456582239255172489633604558239830757687609867872623772632406375815228944087331822919163353331893789457607648068337241186726070652225108905383813366334249738493108872093497310566009811939875110225479650328613063297906870261918655293402011819673034457883128867171577596962329752127817697214577497161786114302883545026305914412898917737337967880846966709794361311156881745443661903862394193701699747074277939743925923836282418653269665743651102191550109487390049072101127634559528351431125912572919507478041099345285039125953351344765284084014858874678463272782451315294868884642516021886774743317479776726003309757943955406031463446515827091590206492447428849010994425125740319744031911692380632677604144598561737593129107286464075993523078054027505620419524937475948503361974352359582715981488859709993803453518074187829653260780703538816468468929088654786173858346845194617952402459629611018316576763325229615506747617831479734633346211029107154413520881897777064392678714588650374304213456840467357430686922220445055955396285008981282976221785119794852991848163410760387480090612153867647050401292243500606801943331441122078496138041562201244225108706392152520223832905524331890130911318289124892229263820346839474956358388191354559929769772829886935861532149067474070264136963044899075028289792250107728761573828748312629187057479107067883489827889005071050819742685365081187631669163753869264621922582793314587266297833114465968369041698903619088805138030359617337279102570618730919661296460128902483694861332996975006498022014247924821751666263925625889025237778439043786531999958169794665863805405229843905865968457951047418432587716821107108821645967681238969957774167947723232402238293123972242448007164988610188514403666832545559517241433880084109180893914121165730972413211194628061482321511999906734959188894099170429654032242794418626311993705085201968493868022682743530840101053440714433820808034186312477500665076061681835225435874878339183221801949764249213075716516610459722170836782149643628876294158672195231401032367689009233853063158713273709048591797691279325624251402376651275355267546845238427180181374422622251429100800139102695169991290042595954626078554396354319245318718455581970077611333470431634152090430972088368645765837642229797550990097721761066659995981282100962517324405517175301738021080586525755362427626345479824194614334744262842396934994270733364541973439931739692467321712538370232945981136174744469358351551687464477108234277158843965684304264394256254615177351922296015352142330751645634134573529710550169330010690521553456826761378633739138266412382620906324287976487593053948697827892835799553606369902216284072720673240328389061687594649433619434896415130241004130570476173723785340855974846332161380781061792595086877336477143797928421800217959274547935904937043434623792937939171799380748891652219903532882361003184357252873433536202531904229017373325914295164761308746999300269915438498152174588472879873727037818899992696858159575855321061825637602978336181656375470085452415468437207887965724875141267378223251890425709922456721267578120065526206532021483812965537607443821101851263889836252275727285271446170322800939495419844019493194813785609940089449308794168718501903618431814085754481662710909973205149916350691139242767842430577201574918869641529067243888524152739775142938470339949927837524874441340787842268649634827057137137866311769642389117042027427870431039794243107679443306914143695072036032009616537400843810024094300178962830663424354084391136293135626717170061752408630878675048453083624890734493449604333219309922519234985760214303117845336222868413665631504651897002215830619125499511662315014430306671348341500462005760256072393105316753737289761065211866780403147065921268995043445725547857865652708984999193498695766592781154743125532827597001651113432882301753139141621780739209121045569406825491830241836502589927894555915781880343131635346377839599346116554562824662000248816437266113886979266814800781674274586787391770383643768846791062415736502506305400414199955766702580407388016276076480912982077088889956950636320472113222168528270821539814416513951835963253468340909365407094352121798819990631355908865185092239285806550332566848519244166982419823901941867110586660283701468043892909110025957408817240041414438026207596850832445192353765562341416686865875426727154286289093834433001549743457339053373796491828484660196619981154399747019861065510308112569521092887516093587368619746174274426188982907611947480374046061110262501639009050047337171384629481669359954923107175149549277031019726869042286579630969845791223812025676564061286487563000545058322482007556597620846141034369723588921025397100607644615860531796398125577218757797946439010370282148575569150621778855955624688683697804560260362345599530151546694689236817932051592566025482864577754665181747388526071249053271722032562218300765079751912840159429668303271013715854117241184565015675824721689575471391796691109038535443607307578217532171413343049622865811635046954911594595175059722780512828190820945158183953576843688810116423681520048101867519785945033643986478538280836645115733624069187589437812786527065142751617008717973236951830203306397428392798653125536061902146720526980671949469518875016502945107078133655151610378529471427389614501135518424080779710782847266960322599666307529366137581001149016537496298575681269411994419724418214077286232673247291337317981431385182421738719228480976250708704950250320136301977101573616240939392628966503732788897619148777134119376992718059522486258019147650594408163736235030986281159835179507545906369604607736245793228014938739413477958821259493644145707838496231557900009432488620906544330808089222919338573572251333016436121980814454046093439940048000406468064199800431360761577000215700457815262872967717825351219372816364701021150067797472424662063437623754248277342906122605061777068113707499463683075922120091645477913008206182083883083564820376606298435893860830496293282863421746173955206801180256515732639781238542823900311467064139960908158018325339430064590642091684029536130262684233902164307963959022047769408437881881805909307155407495700812619464551093494820973207942927931279306123955479642240745473805770107658300265600063647913761359823405608808042711211971665911082483751930115811496054286080193407424919095061708078746434143802105124945437419728399496188749342366346316291882423212481302929186370122728554062735367473543984913553551969553633968411158287991692202368809573059828208993333927759322116694181189691360417962373522510984995151797920283224730517024778520515330000800188097644040770560870345377186380111377093237836240435130851770406945476687122204492114855994458686946278799754113571135899359950348186301584218554424237584822039931493774338281644010427969572830944829386745778461952027477168197557141787013694571112275356094138350247174344738325153570473572067197191906846721811355884227738286691645955388752703192534873202251739200161986345803493487861592987920059975876711611937210805501511809501071084953417660093834462072183310410237350751445307044627501644436769480543516835673937809283048437172980602547013031044450150011942787596560247469531374475268703822070191608719471990792151760722818940446441189803370092889875928112437197169656658277238351237622623559581086239996089561079920316253620996420755088561706606773172249578740518650138727395202462923887373178201953504446141120961069130587933741102455343914079479784353533882034349110519137133487710115006651498383557784117779139825186865759881822179295993750691995419687580467021528722356269827791464739392670349763393630078450760671615184692191661931743368650157317371366217208132442093261977368269451437125051011079186286385740872175499529336113545208504920419648603688178696329037073781351880039735526260847745559212789098377738173472501368231989236257928620819852980271665610205203812208824813730404304235746551227420985097101699302042645612098425238557592305557759143989444453129632364173178330549345529989050514367141609090611090167454924829153412075737440943842823476205601291964022150575993557792299378044979883405680739647953672144187652885411487684590429219790721847823120799343359197221388812956980370502782302382443636356462043950758849783157730390675665336017745540806828595801085455845272747216451687151017232355930035191407278682713327900619003374830242290923548892977617093231791873948299404485357890899167698210476767153637992030005130190066584284359402714251728849225635104877237951051634824274073068537102720955538516800931424132371602580004519529055341379608518418063760429714030470870497226514979960835294465874472494426390243279057105807101261875799499758518158387755574084558577316090938696862200808981364901618821034335361043188727141994127922253425728696614115355654233608467029168689427639042734940681316087792739196572803855244136122797171576782460110507461095416148901222460832879718878374765309592859807745110252579054640096248565984562508225536489334156088903255541220765546751002342704476176557649082769940272153361044925262080069784162217432491560773116981829248258293700836883268787191066285710688279465832850774655622949449023400234886001787816021312592408010331612256086143760721988992685193886346005551593412345469223248206547013189899448384708999627094900702046671814196125515623339952993854689373181445588213069182681500734854561872197351632599190742767246221449671743361617287507933494104686596334350187510051960747042932198992852291995680596779443276675350869995319216230131376427994854859056544792125613248246574141168175877706046905202729971592946618078215562675350383581136753572125686717030629973964894497757937842426314796759653308620843690684565094914295265207835285316111651750425597895470742153175126012331950714817001619769150135369578440088125830436927355874707825522623290446112964047553435966478948107356115946772499740461630429911132020035350156532188648744559124225681121292466056348012250950590957472943143812773074732816479036595542704780002855113967323379068650776142191956066542969895190370633550402865416097633342189389263685974818506174967631886908695212746476157144133881858897574138460894676696697953843565250345323258857747028042111949008864539005770642264951196897798717081364336353571128007225330888833161658358527313376723628532168823354281150084506157799512258043433163601023727930469171103646488102346152836520114496821017397232583971401294895315254686643669069191830933132747688320688782813581237701089502723576972854808718428397542143870072272246820224322099782715041895356297612029504537114145721662639970135010218005110245659852892115243539856658671912949977684002915272080455354441985494123610389957813862915031559110935309055866238996464224435281792267374459022391745382616790863844014634209874409916198637514369645720813855887526259136618097049599835962694890865446602744652934979517202612275909714789919174753105574758520712146711835784280881544935203592815033349365959928878048421138166070923875389098474036142214332577051151861676804459642563581163966798395399227029170543301191803552127241940005910191387807953065059838775969149064638544684238878514139504818388097611945783259541799097838948411736202619560351101966371924027104270062409203267746453928264671219529460085125673203773240683408293914095860951610416889066235393161394257411009647730038104868559045108763663438202326025238449715812092594844481114066859443728329251011294807301283310027284437981113071519595297183634887363035648798357961506964583276625623134519538365211583389012684641524499374738500756286324853227353508717112352585095665603285571745458558874969951661369492766217266354164226877983925525516217759376976263810788115633342995025681231620429093740432340514314846723894981061902943366667645488117182335546572958823784071185036969312413899088877154602049179029252347493752082960034322344854185575226699459480892424144266869027858502514353080872005956298851751010018125324717426199547196876645642186381497447961345500715149831448670247354448507531262405867786891094268590734426994528785344467443516689253208312204720858274311275328405611831790889506788349062787060589297030642295794738433953728761840351367114143392411219874354129137325702669264478259113353378120587989625884466644165964651929817737073279824379751589299659504855426044448515027366341951507405123649362140079238333481033926106617480900429657812584488151447301058888792436224387601587128315851396423270980468359251444747540153043795291923511560414507582340773192243285974521480927933594716744033870315076873996930664962815561560671883404366716866905779351290025323276747456346964945726339320736406542961984257946096258710958688544187165635839178866530700571900183153402248508020299733435037734426215478873865435244906611220465730769124076330544965047351350094777513631279793720295059024953600353446099532124574182878298463891717294573547247471612522588296556042551096577755033196825749246442187895293436958857738543929242964979339867251472423227356208438182393949822223474870823562281689841079528189420377406057026094801856251021501791298685064462556359502573961263184411161747425009035434082272634964316969595686081895907973817724095787386967810792312935348074943818982174326503411398855728640225914661703808716748629034770692394167261564610680696206994380570739381151776079548189364567234714661319417746183040243721364176341317465998021859721700148254812976480347232666455256250111714393874377922269245111695151294158569714264176800731930876163589259855322779797537420268831412139064600449778870227565871049895113466400517677461911676759764877472514383611102344581224403839264201795785040759236329767406082313862822613521300993622603728569585583165586397053214804093832616068070089523781768510340667975539215600813588177032383641873961996728404672651872417733315632022218196771764923373603762929983347550270058436893895599445334996727325827844651997346584713639582792068842683254413369647781659030536526569899057539502253363428752921871535838810984344369580119222671081626691317880288881856490173089041051992939857571194474419053749553572336083272837070512834098087855869933930995556087355618867504315232813278989780738407862490108520279287748921603769653596687465877226861339933376640532489990457646542719260877588090796102041668187166386558078773318662521422848898966663085408022713975253005701673637473661194667059504080776844035513206421671551591019604588184591820181961004081154956940109897375537114438641950463082580167721212698223330466485438610935014717508500102137728135707547612612154390434182629181784818374705250904597148185502140284583028917376799115856229827923190986375941073667892438237178680320649196582573006810322802466950682708120835125884125445123681472923623583435085213321154060528146568808755185259507215402217020662515945080965979377023279704189497497859838932054034777507215725354180304411174333421824479081727270391252027617681188116229625594368776408584582408191356884465095511847279089444477287885769603860922810700958062663948344134762081910182966384242639876500785591225347010305418384136629274647575688383531938681395572298493568169880251799181201215249032525148827327181403329415491768185388932469683105983711755897828606688818734241127202476857294345844046209092850207314361235589475072709868088816578824867339843893763997407185034047853283406170328504528000073800573220459253691687143826522347531595888588815336720727613208932224885228331444691843633381578065244904879085327536761057509457031321577387510923388053559723408082539050116408996504797999125772407022999700082357953563050989774188032286662966938054836027369047397837222109925191278611379886768472546989087483419970851732516057016880177443663083114721650053718052486946580929376502229008369343203579384496803472533302557238656384408778229506243142785656845844378070106930956689488929318397435752016660040000069019535417418586025517232046900204053398307503043196448470444355722181825365325071920071432099850829541424233303512231791720372786821898221641697128999154817742874271007739625341312357173353935368223266758121554720144946228534996807729462315311435298649911788433284337510084002886369904093295558995065869840843889209666326122831242682543374887988274097753501755757859927347618216456055037462286900998365949072393798375304882648925270527339032986847177838925337080447264758396125960343286786737547218360021857231457865002894028941902465421586588336419643608823876994724048007689463643444149619721424294374775932501091806760510328056232474634036211046249789367418520604658341841706968495011737706226269011374610035020146428749523888690903290709262445236967123650784610941532152245534302726781970659878091062680447405403705966186194062563228293808269614201308606690544280731820266933449754448358282134735308654056432122755193264897427637848488789018219193930739565302703497539378846817785431364315057150810421877113692309162023115644736169995239760018185506017215189833375845821798492732040356588098591108473917626037758661018356550115934863134932559817134202107038989195558634424230281027924647505531742968869564368792078822987966610612965868397179616790414024530795494322729973573015331679114714623441378078991415037348974482223726038640782125877127135472536734079430924747035386011095938381118203897092859348624081438746926654445613817932765246928631955685450264875145235597871359727857703637953091759272058473397930688098680981785017824964334160923199166170564548587133737464367008876732056179068386068624079944054777258828383533924539722154100349769214326472944335917966663441645643108012185626680875781436748258815530727233989784087004284800248626443820335187025678265434307527511820081181151117134402519704779375729532480056389129569552775996781554024151289179133038198494627942390490009161999524543319438097303414847920444537913594672845050907904482544528159438352770067532704686482108219059451696669059298094420766578518303215926748635842878240161996681662892959361815767285530885913948885684098726374811610274049801894096679441580618966816037640524106695048068184057287441219383808513742416474191944879058261484706308590297073649325670190736893946105116286265304733527620167878308640217127083826519831151455035578064235709491891282752537275361354905271167854193721591490310078703449136064402569498091119231961427466789725733732524954692362643361383919107724682487267827850252653125547453266777468227457454707236613969893779010790719647353408840815590588544870040042973411808974181736084486885085844655541554704267226071298320296418305610618661071440367733847081517330347121010569333425367921205999088792613931888105724174348522676704326679003767002203720978032694264844142854868055093127161873518489528822943881907971259172959747759967099149469045797210886242560964066976418493055410403233866984291604520709952922721361970458297374539037041905653459704047195614879442911358386281955258876435553985014827655083224545163142206220602481964983452753081683583177795033685009772657837315501214779420884044226320495493727461521916072497463690026119619789307984413025553785298859288540633413710271544476305032613870726000022927864221314823356709345358499676605649609926964647152899020366434435040559556751789958294167653943506701457005222963321905601319216254177170468541078282179201074909227397015867442781777796986624600191987076362063592358193381068087612678260384316201717299135269910955176306807569700164883806131427057352051172957393086581420847889331282324927750121001968351144935975076076101249672141793172306726376216152751362112391837228786531328202617708896157767056949244741538071190408258564745287392576900564870592618191251137326429358684782345280556894924894705153040135184295278272930606172445863982595507767408309063078713706517001458175857557325739113336452261356311789255692740061450295900872637014693727029350862559201657682811551606058649757462397810858959059795109575821559071173510962911580114477281336662246684202121554472949476702746932766163002443782356073311560235924812828919387816991249777987892891925267333638620636500910685611293158879162335563101398085066029596362411610065683856782891985307016343639726753602839907244878056064870321347026805508089935720113297640091053884806444351731393533131290977766907417601150673497305974127196286331189736090592664668707490059736077188520388066346348549025068586695729627552042374810399242628194419192544122381321794895848154412939984928952767971778765202562905992256237741283901485213855487715599213801337630000776944064251735003787391950399648231311222812222714451081142651735278831145241251616705132122286841306477302415369027619066102483376099857152584091493680316254587799835430103196870140135678502804119811901572322791930889825673879023066776760095931891486791905496482086711796847151659256317589216363136694306714450483229321565316190405862357287426698470773350333048721611447064108271470760028741054964623445938581115479918800718544208659657866608272437428270290552150237195525402536175547339779100138947369558075891367226854800242063529976658071840084805932068556732875306013861405036305881704074102047176974407439491968010199900593887460848899801339514891778361619492774542063616160130243521266157376411722843955094297820632713108086639681231002055347553669032775844064957736901886431831101284433841660301700880686354280667509574936001182687755088784329827301059011841743318416956135738095077702066014487614170397088286045857065701447359060545807399539939790457701017861476270394118246398127771282301163491719911075711714508877286280635689115319069579862403375622581360371915678639360581028952167589474093902520812750544940582365741822625205764132498729046468695253528012980028579176759752585662082473992022255427367843622546067643343455609116644883164929184736768165860688279307284201180827382957800021729587092378884633229858872827285788588203254115709203742716390796608384806281305049764612761092198868949532194498236833456091907841817105453889461239223616560666327886275431279795802160515549963107043091233222267462256850463515460248830436169674666232119853757765173958439558253728369780645135786265597807567787671284959263018778883205370406075770325074957307988724904778576001382537163608176346467931955182273353519476848655123315136456214002694010887394445483025416670746026679490255533980421550758355613982031731650341894596405673674947573675932736014981479813116018129211086647694232363683748818025254759828783849430338097605551989403129013167338710561821697077947229870568936974140276835586604944416659000580800005152964451788057009533149428872627376319359038205634892252430631726646828784593775221050125448966073518470004108660167322480129457823044036614135573514778009263709285120485992708211601174008312282759088630190048110539932233362250196895618717331410362135237940574607262894089313230830585568132298391111651754626395454247182541473702379739245847893421759171556790210277831563447762261492699494557064761862382624985549745241915266466679734871436291888569341492196717973217336336966182736407459037137714758192773254924562450746471057136827901974724048237414347014101929242720479193181966219953900219663277173965331640569450136012374441419589341125957627470645046946534509614252474749352363515787635609118084816875345729046561415883502256923157959252799344718146807808317290651385976429678930232630364072041178391187105633367978398721944376803424329072560223436461468692079693845796764555717640303569010758354124172238456672582061071618149913141890772236669818356247932420473575169755241361001902626863335117607181322240405042270673231058354174168348492158653804880581003402498759556715746772534546256871334452537182388946339204994436005778929442476139985993496801377165872163124356775910870577496405597990548463462455891144470665657734348696129123977150669599113117358583958745545263603824111489171222360692798389169820491846427995076209748273368590997460076765516086252859657287017555175768859660241352659087781252841496693750391987602950014511058391459082368026114554320789858916910284078462645864539327296185881390401308823485227010977357434800509150311110075068688906617718614144270692719349045175735703909496442811412111698071899688881444368652815498053360142369319819042997392680853866678776966980546171618864624276687818341020496767793887085488040882386153819499798514495989339732348513812970444718872325738565527083696910022755325029388752770700479606428378229522501534666918816733616428333472473295118852459986467552619602054860581241413515035960027105690837812240388822590198419614929486756254275382921371801305021083097727029575636172606259648839792660457870518106990231348944121752531113336865950578983425961466539164518996395305772257698905071801555785470431359032111488101604630864079927049345485114444501401085425989041194659446348483516646858760869526369713029315126105560021293253541027161870709418087113062907653540952765164679819451544504954913646332181197118220410576122031304950191074630042623661318777820597410355321333641129357005092646450181411155651138283884366466313252165477772415696770634228292304149413281698231734667666339394117293858420234582075743325595387839256481653031039892052193855381023175965170015710481941130014595682851126585477314020350313762201628591150019870950116191200572748245930808419122574543043441789894689452926745219988512031654595680248328386770560876129002247752916419133834726820739337118114012802261175465180094257063172569629276035607573028514048996318995631389882954569318843215156217290225466994939571334773225567504363701981834693049291843228742192010152563682837077521223456502355269453762522752380952827653327503359073154679285474203065773662929658069323592174583714871055032652893187733394436664944704985250541884897937437682839914039884626349245571864902617728269054677797488914542889357446261067349761397552776794182090860295451838335872899765885107695913752312855075939533892420828982079985540024494601839633379252617734784343232790436988186771015269436125222063673705167294286748945977572331363717926979708264361493992184602631421508759676960892436332929265094958381492890359306711895475673117263010126207147651727261512552798284845796858112714684051997653714112232859899026578787000987405774734672098683783711521959451546821938363353134436195290386637576316018680861787359645535685850314294367642554038000792496901041755136074664071618162879112181167920519008808095566031884934703558931168263305313232125912440139991012317249764088483640597312244458295592589956154353372034998146794387638564008705477575416001953818457744727805615760023340069834272135712146762240028443601985947405948692032996713622713684473850858665679872230893661782742440200671015450777761564900652895791578175311056953008526948096570991623076764350793892409724385882704841385369400666262545302120403437595305404957192609912557788202863715161728136922257098544368523487186505220874139165086157860246515227788568624493795463980943677804643270514676238426331947906787190874950104454080187051304181851964930217450745490222749840415624512914530978073904802121434084512834742301082798821843215970788594781084418721413628070238452213977626692113440789830427521723027281685563614778299652534011147479443197740574066696559216858987477694093230006825783492028787305087307008475140716477406518581887701718011713130332310451652686159098815666810423062685006224368456349005038354622915191752049965348726201078833473764766072228824811640131376796558401736280218110435818610911290907387891210111714356054538924361952113239446057113379553284783465735907224565945050275109732868951150511039639734857317673382808925759202087355379954832143711172635150757307143851713663714164987887312623185953935435520926438813756606607309948942434293243431929155216675562527718163058337515909965215317933960409919472757566777698641414640477364106237314528855959637458228267222085999610772885144414242288526165285005179013534814191378189090844099112054688767295370584602117053464377756817487749184502582334044342953821192176228728939953771986308246102680788298143426570550795312299764882274025780388997303188655297542846145935041171399687645613103835444228216208865272525165092621495938823706380163122461307555231409213393840717771235364477290876551431409779218396529132294919829105720351638742581400736506883550632982727279099098180006538845769095347783731475782375394700573660613408407025543492197922250781670008077689313583129805037062334354953057254350689459687093565326642617218194551907758283910709444218013991194800467303080091975292500640793683169728999328294024474803849328754805739986984630533062198114381640357865305245908874481364254030381257193522083747536363646308146282958826990115921153960722539669744090126736830374933942790589397771482716068915775297489141865486238362050648342093269510367851493147653305586727633536133129893180987343941495211765542918194855709107428495018748107616096099071873529898627907933802765901948081636846953444149914644942425515708925404110475860956482192882953422358800166797087209066851401183614607723253757690361154539291585790138676807240353610171290692330317578863077481913591254546568144674234291660933729638730852766661910202053516810503100318677909901468834524309760108195080753050798239937706612737600749921921571435649971266763235179658977655398632206537699405394512625570353826223579198934059964276735835032970710031178597781209137720076053912168398666462141012742771539373572312430162867358566429033074865773464409812238568185262048354549017207544700075307873151321379536946057138617564824017107124896188965145679456405998613523787537382268027286791145900362642050499430615888456713909566002982462500922122088155972988710708270101162372625225494581824401788406962790188281611963691580019912060788024712645765957068561911775751997069312365821111124918047276283658837354335822033153371416700387588427817647775984098008941105571706395201269085581824364280315622027483320039466997735782270522822464102340930593762816109984113461544369505681660335433977361110873933782344653327396995027969995465223917665428894178352175064624730898450825579999733469399625158737188240371999932709723258838371944156212805298033183694715769356710089728512788071830217464869167657781084151521427438284820856795358189895280974651973305943177217817346030510516556989354123581609908178383430419624595333599711076298617792695793955858074597109963339638028362902442863977876923631298080890726724998459306373039535035599479759034461645942056184506719652384115802909463602060762070844725709057859735474871756844049929512054204204110708864549756988155843447644681539141238150255874684974201702513391937845582190394775476656347384857401436274711885561166683593840304231137554023911302274242077762616952895892282265158845364902707642390564932226171322189166786392129512984597819379871556198690909544722586970958308973506556391727351313927409852165876052590950364961152851395918863885873283235808693266969412791746598680426172359548202826968646921347013470386992406564600654602466244335921971174923116665117552753178582652913813402346318369958486308449842291314427868366311850719006997778849976039258014099100479966246798727222741270899743729595277220490596340478233370378998969675595310424309388483596591525165061615803855465008272319309052620140112663374290228321352036654532236275101438068745709736444246489448140419260790177866744670299052727035934073438346704915192012073751828389775609079094470736832037143345712080680558890920020263813086250641516126165691956375328733885348011675502532751599944340836993118096054619735258137736928692788320027593257422140145335751453487196989989512635525566812839274635481653374365141274750264398688375456786428443685170029869421902939734562255543813419680990351797015292011101597191241850164123534996695581267784218453946703993137742925991605416860273907734414094181316306125258046067916481804068147147501525071739722104974403380706120646865630861316573721943286589445609028604413006058411151865067876684277642710376924931035407151790620020965371319145483554824457635838924918458003146488067697739327444400478743095155935861373411284775157739181246676732339941289950349435454134351267891672900860368649455361603613710375072267168268638536204476417503691922351589848408903433633883586636901958940572275221438964058565661014987742779423440075925186516738396113548840998224382647332193064015241903475033943739666579770206814376713529199762110474639072893565483701078600883550307304822939445969549148452303054181226574324677371053111025503870502636052544634752851058958186981453881390835581399662712380615719248694448044245226759822972660396977220742243513179159193688064100613625665138445996706148431399103465008590558199336642612016722040191885021936800988255979677196110511758763048624173624250269348397540429951384384448311830560204896966776973935876261349544966424419721824268785522932003139129528831555593541475264390397291385614561571831632179079327498420268664082659045067761000679700467570386400753310561712345068414674221604658431692992581855443588633621848976056880207708493379654373932452102669393475467874185589367396277019659893609953924526713566639868553685582842716044540005496777998493543478267374943900505218382759287799549062134064121980439172733212627098390736903791316233651335917571255788391837908762176489337869751934231037454623264395022373022276098220970965335995434825762235617079687622727458024141187913319936712605396812908363474746796824560366805614826796080848563399797052368655302453334026872650282476461547759644575494423334649782230632209731462482653654662433504967048260012295648978270783555911319245898968555732996354543373681399339201204868902655779154821233489700205974296480362074441562455929444391895311204749272981800764952078610591395692947095386002113517850130462893208838788927237885334208529943540987599539151707892381332962394905178596092974141928974409064290274463076242071208933051758753845174110298913227460176254534914385489861148194009629477868814572553298512915187142146118614920531947368059359193729173026013000462733632419083623427531556359167465370051343375444881053726969618575011471421037164957877259338287488023151381234825497785936184582393726984588588200945329110379351443181084339818117429820058028268298126081665738099934060853200909604680693439756928667990418926862775260474787544573950259087998668910955436206379898148373796800409525067383144128342227790972039397420291228366429000547926374626249644221699884998495522019571862722149442798878861867971590163501148764909752320583034743143373664821902642671208730569953948648992513221146155877104379299339283516689596788314829363622376536051437929524264401026093672288544725580237401471754692756068776104942087007671693739493224882254730555547747073050189499472889902575095999790037634040523146806325727775974076096828357127809708777704379298532995890677281643809420576776598956364985929471159672560556212823348363065981779688514881507166144962852899489830133379626038175440899197758931258954436422654636667301297348198198236895767867085437434654379120721965320283018082950248197195491302025761291471942224748280003380256871074087383371793171284845705696694834106995083066021173962284164270033597644213960905538805599628543892267062375148884866703011447610621085386684600280909369674991834815253810367753290394396583879841402481721757279636780225533456838442686668148185470689505851562460173546540901006385306750035836272801101942251669903890103499167312043537518020207883136550717666730893730977343691247468502695606502023504443445081772970727311518387914111951399050404166580068066123078415572328670974958445135531608428913131316452308671078731069981972081158785758222725487768430573405530012454800776311470604573158816279324128463858883973708968525536929707958340295568544144969394961371892992126756928413637410658558566771131148663033862803239985867144305191680081058331084682805583947710374110867884906224361227234696947522522441458565985219424045228234158873259686371112923083083549258362972155440640169268735312711441905907789586426199365106172791859500552485279522167242293542310831300377290472211116537875519013795901053251371524469585964445218320856050953191215947480486905706413137260596770813231678514625373104920405201167776504887955567280105117399207536945866618483250387143680751708773209427133528004048579027830049231631287892097066062608303378587593909327587607656050893720840070399163434212104326696459912197920132745076106043047240620836378534842889889594617223824626646477070098892717907540958782370414870199278207724751376902144114628049449991619327812736261509504171169535242132933113428527438145504441679321839127281585077515017216079012899369353680065210208626113035490130659473619247540495830661169028159953439004634743139143293563136627370585928293071574245521765473729113752838146882283698395730921978914263301197680202530593770874577986618356225958300717120333743328904755209155536716065494175316751553095597056621466275592204983554514497171694156138536609627346627157781002682016928143661638701398128949164489797679292840059318695319850329711900375296969739792285749883788103459420405566450675358768259214040925450916434099541367944314677332243628297956543739891742560052931658111394356616071446500937342475037224841081623081496145701623968219151312901880726879028186325631278736647309524990579081692123411930324020581887482102340400219259198543385568556742695972953860273750535542478997189026117103256653040816120693654182296057087511551045315074008459791291509770010689083113783765829275484814325241347259138981207177051610590795466263937644965630575859124638415017110012821709828811508182228181794221607137657155278604013718021788836058690744550720924439169699612123390692208249070952744099209088633365278003206766677914838475842309312789447965003303107503663227563373710861138365010179020581542169440362147195612297937979888411377207761210846535256183329432459024370794814171470097275925188511193308216427583997738845436755409705689364441010655780773999314662974407225042769625470592688988254466935253717408711765626292710837271578714505165300230369936534267589374920023334808055599409910403873009355382761976284888173830361852592212717835163414748061312075677661973604565283502156170622273803964023235155942453527280188514522906487713294570585740422762221187318417970699221703204166138895648511311187861838136815757765228699442667580836962642398252006297873909144367436460770189886142236817369135547481800631026207646558417944463581356528112306236364446672790311846014814428471857104967370851395064688853914284436838943422126428378953946598345006611302284947748240716908567550744246342329223586909238209613889479739350111831190249652118490067171348582413197002285197204381720518943066655586113443555267935038447943300811341726711348429355099164422832736350061973918312346926562711708048573225156934668085929710057872563083011757655766784251793788097739241811052849875768133038827704363093054843443381686706665197738111587920682793007925373075590329917133505122560471424582711782583280041858012660598174989722539689466702673121708190191263860313296947074546669732778034439918467034486895856065949929556974557291567583744953251300785892978653362040244882490163679776064058869577382275468268357470562992999268225351925152921040827277110654758838710295233922201560244195326153118551031544720592272068762425482826439589468101376104484694959488030794559560878519434987353430631205628644759685968671955645174530022755860504138831877772707009161670781771475303382307056133390381031460360300685444205492279512825782368212115581774075150514477881573958320347214657907084296859451241661375958895289144600217754155980434683773589061402066620932395747518520934668534928433114938239851371013124656981026134134052647257241608786803098189552824242038568774165115012272934793930032167077741124866110837846159757837125892295374101529712998158781359384899346112684029562063613002122278602400308132890402637094471589950714500001678985258871663061623943444071856438683000107504190390409770877687684864495864517276607020724321424135560184948338009904844375935707480443732364626951208291835944760511844358829430808489354473951054136342536281614415880044808052824191253788324279656808217096172421953196498704076149780982229410901073324836932274240479228555613709313027209821560698432934494736824128675017424705747947113244298587171080424663131176490147012759380645752382197147419759206384123522820950175257460258325068200112018051771344301975151458636271509570282867981397695225489219690307661570041100760531262826145700592834962662475580781175052887851232998592325369316081276800270750881677118153917122745539783852685865949311450452513291500166716771486621418788814425730808229888244257709972885530843980400214413194182220943980043236463090837174574789095052827115072471314232841942931608981634667169915841287552952410571634604756422762482164665070119527418149625104493477618951744144790072955295496997228665091396028086951760257184457134533976544074268030610152377721499173798905446606005999194842607627045716455478119178607219398851621246425486404122231468642414462665128447880296320644421143217369200197654763227716425991401694185560944387644448959266755656448986416471365461748362478986382706079039066367104673086676869574091774511385386533507586813898618043957082639665550763125541581322599271869675398761946318338147673678755384974277253645662145844511774530017243088236668786063104114886775445824979335718237673734929012770760773069247172811992040780326311417660089283843561605900857738880916569770334756340258554598333914193363068312541992935592782308569135664526196912853146367624358609615484009262059980053518358313332623871756241427628057130249199556612964391741648246766963968648184834118167024351089859420001329812529375871210456464745092482108283047250562699023147873682354698131931443392309098143224566551187464080935593051389454318220372645439953252134038196182125981260679466163250780652327122025456350479684716017258872034424262998729929496448893260919537827375079024186862195897014363507716092254772064221929505725707257666058646531429581333579294403642319244693190285951661135110928201440758993312732379555942550868451546639628119888955267771013592729255222865951832846181833890125170143119552917522487105496665977284902948241526092113679873684636714661357313539617092426629834781005697964076602521862553076073114259819088052150209027880069765382097907663100614890580109639139740726320125250461554593341708082050935161240926579879389764785730877842750926116573652426588975139097269474991514403740253758616586797479139105581573347483373286342286549909247276218582453709609000517392364761981079873701336625230883601129047099347126545858398637185915049709965517976838611599343005910396414574932183820251750448573623011554850092804094645643283538196753529413521208829788492007941020481579345626447787176707033141984716838888333856647718565929208812274183987869904160394913382235649483976869428476275569632471524437307592844436114296157545297696632879209991888827268643949763558598664887065863042457974671153020544480111010068767862017834190117254355749789603575074349236729264077380964952865348090566256542182165018895328201788946698964200902544849796739416561253629356794835938443445883031983099061172150657934910393194145171315511812463092682611716482483586994693457627672435090961359231895826283223948217795673231712536380357607018218629906421924794724845724149427554686934072501723283332830172126083668888957021947046381022013492684704314011336667465081283178458811344583463773627768327496186021138340603459628005285341165146402857594094283373642407013453947453777241586136269033003922047130602113916146749278910596959368378138311000771288858083144160600968107244266120121317193331135287527623853094631884699569137374523289513295915020960313048744198179401456941003157877504950508915435733297193181132579745582250037689985236212588008319624302492291933181764822614037611301718499127636041358337303764513200256713158379632274049002527720795339200913209961484697985389462591842298194271138016165363560222386371138693087590555454442670501628514644171366239548477451335010454357031069834003723843898823201069159382751963177585621102726566343925535405562633527091953997082900402388122617543364990928207157163808382045618063487966064990872342192600622105480111830642007927172049715029353893971125456435250396618370318808473223537391861136020871227498350871525344920525086154904055403859754223460073318678458996681985121476890677005727148821129322782454938482576026250313857180338867618561556241829386172618572956026172460160872060340353389586928251123136614741062724924199785745250096317930157342146409685632186284732131770640244999558980337484678925307249234224470550029400333033844453205015200704739303550959446571605841392201838509712354351356951827190570233961193468277223955301306121367436292488797829450764419095964255997897518297212003793030239989379264580136206185461734780615681431475093834530252232688806706808808930284008152374066759875538956020275765042821902962468919832498826887468314081083901479312233441742065678628689161796404374877309415928593168672418595490844991660332670843007836121541303368545575088393438867260325489828509186041879282752888838366198915920822146881675615860979883072861517174351044051703650828967367634823739852138074975374060382434900543196313494459798234405265291127247522217803636410320177188776683775145685804940426643612784263804132373970721414518296759929227273877467500831369845682665141639497633441291056040336619809337496788802651645504744654249005597751892105327351344104993423498666368365768945004924341885700554999904784121088444960424653028321998095612852424418733552447268730168566926149585223650892044061788518037315109973639702699100477650427992686543880472158135639154728320750246523821425174997327108225698803160859648587651601293577980952772358341145871194878428947495478449967423588092742306093142484087555732640659147687960601263086993952379990613748960314841616305530351496334411929896797783608929433592660622643009615370267184622003954481400031342685164436953363649981324936170385458860722711282275022088478522357876531609907847525534866382050013477085008132861499271172083900610849872467388801461711209208314129236124751530002384839840305184943093464340967966267441094452413096692132089968537280195726701632591072842291357121510924488026336624771545624531011933327132560753885573270262466289148328834027442732568943752198852423945998257080796487176292483321938208775114282781017776935324266016011370671657974399260415559198301528728189700072554492541027248150453330000603592674915028242138136091697747501848695368954437658679017183391487740704506360627775692507678648171687204663836338245140304352402309536090206065232288786586248668571601952434484092274377017670330880093368349901867993731377935495186680182187005584427077687495608140727665171043323934474296124038473768686783471836693961998228129689086788223956182167886836870665505869929931585990195197711191980215421156183138604027171022185050717301490472100620864749435040684134612117449039743032868123762643405848559955679427311964864109272274680828389864203333706237464930051351698747821511468270267575847538308769228802422122056396115391229671419592492394487808754425201327004861018506699307061578068980524804580254013875095486539516973677043307363544045794812771121760935630374109318796262670537298044299025961083520777133182901066886284476215625862676111488982874592007342631402143261866184749385128832376139787963993991691365612764008179051476780166193614381468213527826114831191396422612770594046703278719160537863361345185851795668810328326421646784887765875447289658467855534830693574626921553897457741211290826394969922241395590821649142312814089580820840527349611484258278566963145355064190051271698381728964173897268490718488434289271071864763114953320512865723108153315986420816828274875992421048000285863590544821756841434992605413632101273616045287959749539243126384705548365858503391312710003851450688544216140784660268407388747787835436937743545023966552570467926755702236320333051631317881447769174888047374501098264391297321346619040720888357352641902566239829016967507447571953451460517255619975680189198439440537633944945994041400491962792589561799969489988562756292829974441828564840428895943279143912238634196388677442090770612131433589735020484938392727866875713260125284885541259465822903012227942299496247815842278297357303326324832190628888124414732485025809031409178359315588488688143541572741257064359836188579259021621428392661022358980830989717945872998191195846251548410391819176505565542549534561891146305291317503018994727400717433016469729219734879265274811740395204645691341094173262009755286939738655068642922434605428376142868991065133050521182469462488948640404403181279312439890446947659432051933734281164962620217480782232269800177741203112653300137096587834832328297079590934496448686169211393541271009385562374662675039916409041805769036976344195369017202583549632175528361911283725290985394736355833680276216264426600712806584108701106848326778031596273890108540605319050614089071124749178236384381619937673195942643004912748876009053610596351057452721465242097154768195055944494989162810876776333947732788699432868096887661999808014751293297153815940244607569722517668156539160208381268260356339042502222318461578014716206303601407657902225908898568147138620216055075328120362771107713345898820048073061363708149056915540664391003596741766125357764248332347797407343967922272770972127820426228645764457897113738651614951536582643950663077339318072771889042896585412644244830689047924284985252341130981815148545696145535638497283055496282566493999115986504526233867588729671958692457676199533894645220540784837640043035127479614154827417288762275306033189727339657483438732469341600750421212676222686108546439756541638613177302967333654442899964930456740994361697929814422841120832377858630908416293024118615797355619231888387465867946382120598998056273998008627462909312385557540758507985978569976780194645614731366770146884840735296377403409644475861265659941986736061724265296208100862994108558693293893937921001196345689020872393456119685971443635090195440274280534332304324842163231838072434645919914538243270482644889104182617752388079609031697611937551339521938940317078400637675151648490562420352040762824462195460995920893706292256077606818661293989714173173668322859869632690760137104008136914963706241833201863400393045956676975031445093869115981376196682425854816436237137071703781975001987887179131876496464303501562857402377011467110156697566061492229846758701980828609857300550144359057867027566607179718158779244495739170480070045710591833803621712137205034695406595870267187455890511258860725224985179704292200010730531393635676352049555767751610734074608392322085056058602001898539928732272959700761299007745932159014362519749498898908228901497875089393554456526041364181327339434404070435467245919122423937925290300643756634932751401276668386671812830986390996072981032683743753538666534253641302060044734969642658271289295592314443959897537543222011678033049438167598331060369184040096157100149778658974601247515235612143201938471264832910068497819316434159235756141343511081872041460351249636513175002879220581486264438132558951261672685435299298923430556639935605481489473753135984185682598946878806237980911128630484935162557283141768383444521273544124445830430767293988387512393132043642761728189440259740731252048214526270524711719084097129622704785160982861293449891743717393350465556888825979938072116390212320697855290433518449174930670665502086312542633172899782459378610415812857683506344522270846590576022141889727860744846270450992503532708888170191261013151588283705761287947653536809974352686242538622431519773134407778408920876267456045588994312917217387242814601454572686913459555624601514364902305869178647813491713631616163520930383191981566248016376612671820215702284704228313416053099134366904369039624134971452976172273768106833497318725543244142031539732916136704496563951489858599615444905521738593095896660406631576774925578618264056801152237136048098545637375899852235767533881373524154717886964574179023515489058588531483969661416318908709456549405999765986524015262024467311814082384757738010414069472061016236017934163199287310147859684563261605210176452805762337929285395895653445466859095056353324630680856738732763567021672884117618336157326927180308053988325660020845585234430460298425271006862261185269892860421341557502085992662071267809714335508303164353951932935974014044873679881663791868670771611053358895394240200602988665916736633659607534835601604851209289674234342015113846162373999401425079973388012018403908342854752955840086648555001347885491365841454933045072464799799324835411356133968612647478918577941033287973409115966428844990960010719520713217912516520008290418579515719534023238483941220289302390071157800311210683844491652104064204683107707972646004126326288425256950982309661254924426411724675583938875917906093069793594835679271241646276000918574089595838571824191778045642207258506104007336981858829798429999996820563032838457215176501169860030816001749715865059247291819362899240510553023046364647576652396718131613872169992417922356675197112488288140275914702260770393558995930676632912918467706624645656191773312433641020077263260214199495904611854743550056104978420507139441977637458995588443211869510055375366489750073015953465585954329623464988387680920998685331176309013146783976668061727721002067183695695394283356099374834812294422953024605487024095670922668038406320944302108923757487695964939096336182889539138843709865027185795007569150016815327747094868631399752509382195779589211906260835337219344007719853632739598802253588730113724899384644648402380858310022146066325757172932854753209293689882525757896966511633168961506932043883137018768169041740408302371576505265685699087565399117269815839369561164368917760813707713573093599204463079865484486635727086054751264187402437682381448938976975772601547384686962426356340840437452261504531700577996682435290138747056946729455059691535034121021635857162927716441493781825085166614783933322532382152751143128888005784576181892375645861370249048594632335254562045608115150809094680336721235351769073067860694035968448903880665026349390021430488113663676424183638424795618620072046238917136073962153462169640718807735845538721591864111570715437430629370873381092488996479997580434321904638986567145807474758326154131802110260284735570888623481426943352503428340168357204421058275342349547452355321057117016599393465251247850099863323159618200790720528563824893155184494915727209660443268773453503523701057600908231756177816777964738867686348933031941782277674465061131792923512149828373465385328500443794869853399822699635304545372051092549950035469086857092155663620329530886006777533013220652725647554787796240757559523818102731125829567952512797907426508343138253722471198138268205076848727519992397932847379572353170262378953936464327570409261683349540668039159793316306724048521508478771083315275926563343572975031987204709558353615321122429181420975978581408887900897829018376663494040836193265287640685397122027989233315540407225512741166209308773150897330738212905859491465793722594784584977838985963930355055118148024832709796614830520036170075172306411751557339802363916369979996937427958976312378047417240233230312848834128052908863846267034967129535156455391272089288999884359372070960623388387179984011734587452422861337880018357442535996053622989917919658258550374717379442868827805762024634800728128265329201008570235659959688437768057301747810793209928709929431651840163192664815956236411850665439912160468756871543804586940810003093255675497438402261807858321580786083586099215536028252274666548839305581519672309700168797252732372590369773491432307820401852448920207845325935321207634136781337823170394591080252139495726187827086076362669884433215118356260097740923666275221965996011000086426487630759034051005852204397545435759919805082779612450845789883496144564120960584537152585007532365669070600848226143251700164817984759025587340150145819960128452512497329927548915344424089659309914619195837769503771509525737823533090420561626230883097013386536272214160762268473023222594263633987334313593709595324381369646481402523419244514355748303320037189233309325614622975901128751636042745559138299606425711787757301107438840320066865522307223290512724234499663842792847777762448551865417443812661323466083067684318320164255325092863651177247472537899580598018701253618468758274025070983549938161604195223506032119182956521634972607120659254450392396446126052876983992132850179331609324230698602827771046412315062185875275309852446739180669221019867052957247366751673279301703122306658039271986617516105492227764222771403138607063432995691150466052916006315397113182963425207615545201601490080715008501865375220307436836169910983383283773254316668503166588262468782841814209208851479670279599130696483529128344665617275596427473449207859989651272141163340681515521480746263785089999592101744362718340982343613883656598545018316319418242568358861863361841298429673985439187517550086906805782186039930998703283140252655136306652958462665923220724923073648229089327609763207429989817276102716596611577357122116074078256384082455072851705195994476578191887967806348547290046351074139600988296964602816191806621666136163225055215346869084321175351038466929131284229732420377246260114463130357658539599297910063577991753786386735658174512496549557626662923836094722645826917467723778808230038164637189788443698332030624948489770260827062484151887661519226141531456942596806328655969990621077811917852665957592948896430858722925245540420400334391456309686954942712221782761444536342557563061767492447142833164398172195663057648354067749186350810577259534023310215551042805874111623779804725483861976319563882241646362870452614218691355656593877620448319287804773301067133939077535803720301989288985139538045976712027186442414662485653764367375484669607512016803801323997562901042923723895546569191065960114630849693853754488010941466211482202695327294439402612324391529491124712403341845681896883727442717331390905782889439010371392764809986462701493646841547108952026017810924473205833031082164416716252992426378225952124158969505931587258144814207266022057008907142704752020372142658421575387141525909636555442851734411630252902148420891117664085321821910459446413227435142380921565075584953109490200479986126391205011617846259829472192427758926424211579938552538467865626609571782136682344696677237819558589046823396254146127303175899596434209724741220302411294278559587981440672067932401572611767809817546772397067593847635346241596519597537298659359946202922279828794118745073928708359947616220319911828251243734198272504793049330538998684835432652543174737490872635614808362648638481272218241035022599729156829818765765048402437623809619886150586784541859451233061144750121785632525573704735949831360586645938586093942475402523537475760174035297727130638963552807560162598784404267693150574946758540142718493386587537883528576195423462215900148147963052431196563948952749074544014934235800309569321559067648439595596643896216782599570336524285747666191661273913398336506883206424416854438990016463014502825001686665408178355639538801302501099523530102660738175156866378926299525461773233445854541310111628300915016110774584787192831305105257131861173259414291601408065171820445357737782967264078400163152102010941069959092883290900209052201780357514756843928221848549456839343431888652005583542576789167721708960968998184141692035171572627911814442821692316807007157139363539737684804731050489551142599262597972962947397766418272161194751112400466888889524085953485069430943147275812397189649459692583808352469814827779521552503506496614436229057413143938050812876572619315354008410125620023499387813501000977737682179866931623693809810981080121839333626455214385032421626356026899989858429124650506487415176111996107904723175561089999702620223505350745398954878943122270366136084192846261211664378615418697887497644311323484022333865004215795165862590619827309795585424634075740321633841309669394067054414513063907179863755159134559713763740053673825382647803723443963610932926353980040098421530800901286994449606301056378132370682926625863628480951145442855884028133763034198822139606327589810162391435932700164333036682036238178139513255933432206196650406525881653935846510129415461975313846009181137597591890517123277775649221708903711486065125166177906360976090893586615775943874674198187437472567540391488022393577496683016205096933199418748637261881767039638246939900548519606450416411935197996199877146378101016554226566190910365329161901844586862490515951116664807944218403384592980917988314828402970961484297993916678082801584135249084391885412505074267061792729993305986186773062111427637122077568199682988014889984465586758516029200574389390768718807425573072523843336449192748292783335106146223025884976780086023736177265112837534342590241868919776942643537110650367559589597792374146299476301739377994141852849749539142569673861718539173582623592278373059218361519809698521816127467785120075268703686917660630299109680193125328578228241843986715246999094633589863962780378897133856449160580079446254545333832901040092507191433830586346180864598947085469770285956767079859436845100331900107296283898086385038452798803672180160576611392049367037461065822956349727413766728521717446007558437632704717844927651534084198087250048797948121855275387738969024975970753768337959742592465378563055922219275924120114863368670159540028115951309452675933007496404841403389708777455631872826906674257526037598260619841542911948024854415065934853787180888293199217558764861549676768747251086605828516162895066150406065737305956713109140070460389535701335137728632540188498453445008577050351024474552389875834668566886048149803985555460250201846593075871307863955949277380698181194935735016389442225637103276104580604772425908974978655734495173327521322017486481881043414045230059381427186050811972435770548590633243527794094538567401627277498031119233201703564993725805674067749483786880974301696570522122305235496047562277595111665023797896745110548405250693166976557919831398083367613124031934398889684427583991500373415571648350357653415617514748965943071830028186017921852343196082780307446569467085528666812848996870861260368655594964767601185831237634845858205416844568429191921362609024815119582219229396814407455829516442280596578075306520080099238098965919635907972165394766364663432838468157966394632508848239752022902271394795651959234646188371920985519005193914498636032275479031757197803465546177693833107187684903175939934825214427797272817647479455836220537147214225401299026793239653016503183791032033906971349111433415874288480064072065773526681478762378960855203132406332816570556567333702962341696223956672678724661029671432052947262398652522264702516573391263036477348305309703864039332014421255088277843944079802975450383680969460505109632955829651158855529523751745208646090925938376166074130111552997748867702762724059345580119627278101240552494956670332324844477617077013276207775791475892579025058019478891933991622251989946614374227750719763895840799083876281424640494254094833129066393500900688704501878417814362400316687970464859246789773378091411582496890706932294485768152161861032354839197107749832889060950572981442316740951475553650292978335335420504999953126866114063777666078435363003469531841283716886832040353931871132108655628972533935457259808143157179869813997522906024812135107215603181780987790253935862570498316932550755554292953740585304381294171133091435688162631569881510842695958345315912390131863293508323260188600076222475561653191360175388499710334352937589012915220232167957482780142695215389098531008780765969037024375870863469990390596203669072010147850635736283036969210139776075179875679650581934796581881125345050734477767701539952152361366863869105826293401915785859742010924471559184525253154799809682667737416736209401615665081180029351526059282617582619741289329317900891475740227838359217621021194875755862915469010305379461572498106434624181410909312298338901906611195688595911703319785415676879723162842979673626611606846524174167431646108296636216292467133279383436661145090727130273404989600781541359499053903644941247274364857551943621581988385858172249983599060442799152740151295467999294051932582868362343434033068563286827393661297891630214376453002105568841420003015678110489513863782451983868431385644521493835123141514697742260276017409652160674543761422023675788171465157585505937378804628354512977913576089268990990750185091301552626529182820125550217477097173495475393018172364021889053296721772348157384251347350360258118899273605037159146078335170187126152081366171171076034115401568350874821368288781689546617402425491276395192205810460494222943990149998134617465462397117358803840496196355725709610097389333970697052412399008259462239753316503089697910386600634764216445461995286225542094654015866646379522996846261279802922442603035573984299907440595227314318657560177742607511394563103188940833655856118496941264014361689106872768061835989994428625921892687911254850571816597883900996755899107236517208143349785358281097765251266488982253283526310979619322136042411953293409665118946770496993677556837408979208519068639673064061152077191149970111470209854613480924294670830147795450480707436460668022177775547334228147119614666336317657861998620956721256183434615336503596148889632144317782726370798792400293755010649623963244703765471328568266931448011168305874167902504296866219121131171700826764614055989691236102516597420470700334567195179683466859431594255498335685379913046937939709532191668905978451084089044903420681203513158484853977869889657007235532231830803264446846076886910726358175393000136340037819001479891940129266611787654254389017484784831945018485907165079374168606046013546365479587019455893504924622040078026319283346011294181963417547252574464614676506366925805686788843818350838931680689741756888125648508778444411960150944608615482864948234330862960465158455592894393552796651309431952612922665935054849921489228549512066680164617347254246389990381175732036813281424739591785845683980429181256085373463375351636265273182263388872013485160369595044535738703184609713544873612326293519374409435139137686955988401324463788115729119795308846687523829104806525522982816056104531981999358639381384055592351063344771753831816514047792457203000059957289521409236645915024654974163376726607439694566233400959839579831069914695250171503742729442554182597395950978498194901770239266300641242557775028405234064800525617276991391096727921258049563167668135467005264188530099654852261439611890925920452362485682348684570055622970708967154854793177315672252906352140764288601806419506071159035157633734149876155785009542445884918417541480033867487459773568254227536953876329236792700713629083779803189474229819173591692402371784994737304058839170326563596024041694239090312270670600371286208115089248266692503217393414619955962674378138485442413291353989118544954285843415828351717575229965494170043246033231062100227897896107442473258736894664093950203043735823751906564170303770849216432126207973379567801712789769660395514453108382291908869635564896619984630846538890777233708542639961806196055345639222324977312759167116829425348052005078557998190207727529703678609658465982561294529887638273994326133355880903668871164978568292519325250408511103231230269823219097896997294127170912064126601486711614097393528498086467632776475948402856880065072248413085995296690032008495424142257981357758693149645883213343148111089798237867257775803758025419729680958842617477177796899602475687922598511456066413204900629914934797421538672490863797745539861618358282942001503125940493988789754139466354691693421674833782220658924032117342411693878910435392503271981794265548964112355097564134631036634093176070017510851114115758827615094360182375603449275431448855710453672258578578360335589691968283390046925215727951683621236238815181515642526280274241603250800246011501500491393915032729846968554722720041683039599059437888825142908131575616560057162682354464271526788261590718151380873982395928070452137785597665578527535111629624873965706368338715442520630798069255151702193366417831782117547703118375335897893595364932750109779464333695937966238902288918367727863643438853515420233845714525367869115446750433643843178670533927030582408410399535158433208218318239364174893506820813864694794170440897523319388577053696270846254093838818663180911575919474302200281999468358703629170198957706867370791394892693051549706233620101157939708731131907153826395837096281927389965233924912288915278943010024760713231588124352784480552331665158042898030681767236344846749708195981342745705057369393168895553345643403663858695546945784524856398983611155268558474556829397754742498006931501647736576974099396109288617279165559193108947462656645052514947611143636420956137292652687267521881924966406410832610425295513969410270327128882504844953226941147187787469540085008554896111113802451615881211806144268360535143517207638793350961395959104075902494719641646970275930109985982089875931038898250217067262974261907552785657053443577968032408551306772362259705295587552361381304913360100092106509144372408210227642600148776359746303000306097541705392862490878927982948545592863938182824481619242876989213478868702772127355259814160923353340792760129210084055091703485773360480027275377561557394391517765047421591517963524427548329672186953144117926701969534022844270109894628966436634367906046255371955801564068330460238042789572204731767481207051349084988718507149669056763752826126644260528400550699370697427985822878827577215418436548152293671239072728537123340092730388605559313600676679772074307631494072368003992985125926130768070332648514507515697224006207270609693720831259962644162747001124875474819195755474051594393916938484233683396526324948354088453723966062161326745624618790701194524806277371686238110682858909527894661797407164491570846345445124798182967302251883618239388268493026445468931267505840518779619610098986942217221196395947757610868108886620913919265071954299636753242280934810365979712517729824223405126999187080259955960479453093151420818312156097553726033836413053538165066637636288362828974982649278284619672737297825443478847790512882504465163178702529245330009110817153976776397527873473654082539890123819396785907047897208045071219490860878103916967806100878943537264443758144614623760211885812101912479681403607406033505684235391400622922908002407564077921362922917511369806480050990155867696823616934498716205744351362217008867644428299757121701380613396318469480430381081940022033994372546069089311542772357990220715138493400081139146194806548154516555345040743696447539910510353115631037105437261951051463127817000343017220117192448189600040083117994179760400774594583045252791062299346386164699008993000906677076047456682843343434235457190024876691665413425008333870438015064143402454312638403264985729207546079623812287497954918977035721266824795564703061928334287400980020135901868872747738418797176676364609347790360723534110003018919792075534051717756979936914656899503992301726273988430995500388635640083603252109076112595854082514848979336067620286771837972299416963069581342214648682732965991956162644125246705349320298702963583556084998156174886213621668593325822991590916569282083737273820039688188706071117725524898623646365792048936281304936306758916246735729493456764731374213965936169603482471548190923670069487842645012568203374008741542820603559022094103584457862441806969162922848165577402581238047362171617748910151314506395626153905107433626782683831419979244232109389969098104600203026504503089936069105952483662797390072164996929416394531320102863365256931261589373373034832832344100386595665244910219127707688839945196391955604919938736487188552788682068679665504196179795980766025155385432564055904898161851794332194030772834107311658812701493869238271515705370115584539180053044509492452593463591145897555166719560370354838402615771199010531773874701748673129428094285533898614626697910054397220066818556627038791247485470008117504288239901436627550527384299481103761328912714013964223231143551556019548937547881931392339666682632713300813557599354248361152033103550236835195611087870541158010933114346129188325622141844380472495475619716190877954427889084577605772450388338926281794782735602678533011362323311240235139316973174400885574184798366036866564475054138357344666135869747299329367837439771080428462901711025258229837274052890318637052728638781772254626402020520718020697004155664569955774967051754215341529820486166476351889304193766304774189662346587161155963464187488624516613260804640671135680529333370820229836003710362709214279066200669547415444207196329084211907589367353171987498506915708798832524138813329581763630714809640582885968431780735750846083962788468309123328761663061072781808932545446606762505079313553388584516472950941956005345487831527402091079304780744184298568444300272623490544723043560062934513543338554061281550049673760462048515497282380920021043030011691505641153629514945244766473457364674405462491850139798859642726809848966522457611230195712557672341638957626460015555204916656228287578686270643700734858680034066487495476483697022162683448437151554172367688128620505005601606197417867660420381028203221223481390092321142232427377939841826126232790112927286644569749120605213896850168016953717633931794146990017284362151879649595515940078372454752139823264403441077607997051119213056758190213243527997203970252756739373612788990720953071229763148209502513850507287049660822110246522074705139252645360717005289119900399606460627283711382283784711167592124101605561889970431964891348200732321644000232979769408693570135232287481477156246855704286684897153911879522919233434875600741989057955633421321477585408620355314453178879969936636603212222661448717309363885141423020858002199766170098333571663977878382746960520001240734880139273985215016817410357896462863000426279481390856598071924900487287534171828856060004303795834322961328349349480747077882438252185148408864099456816509112742425252493320326822723619422412016982483772494093390147808772582085837696213069589754237020698339697816735602886078806063471978183330821749882379848959678830627709042193122309552632219014657290623908788909659057855843741900784385052277382362401515189200065719049871343447321019893338149657396640340473104542109741170304266926077174162024353610266406092008364640736073533648975659036030326538426008283789111669267827003673920661359063720729816281029659080392629285464180284548847103078970137558491691928176694597118387594096431084926095540379804437702360650131893376958336150105954294800815820392594011506136728520808234696090957491681128781839084404657688091727939208787797794013399505176786324597220583891818933840024043944270983353654597233002739867029642050276215745139693885100456482169204282736917461946961306670283416521749792423648753304495424915979498131225225329156112323981305278819774312648027935672940454871317853611334489076347836079344744111892204091936119092860209474907123503428957948272296371392891076991409132770465026357122210027220254781228150700309024441170096190458181245571403105169710373214664783212259281040133496111156574179799486051864345798094855034740491680073200070940616535099007657173870030610985305168587589012296073527833119464989586318135667464462927248657830174512356131080083747173389917128289753635602123107288052939394851751091612585767464243175977042021974167133138990408719756700873003087927872693643946415500471453533691882237587019521604994324765392332374720323897616870261274586370631765968041441071285580839101099175730187882563592502010136847947084352405294387051397078990072253808984649740065328577829560061517062148246328344537386704184114468539733724183805687995985414029762528514379067901616702789887515424458802975515051296591764366721730159001764794432697607986038518026331238275171505152699129235934368383627606750937400283900291351801919462679821988594469814159084236883583207244645046130039585677748834153337249797102223325501419071573116846047905192279308264411272218412163579537758469970968211582758461103550390398629145957028372932286621318621777556858551839319847398960333188069345647884367758939445486789361836046951190238111661329720865524382516767908135312836272540981856354831526422190667555298936610148607863536449801456498186407649853735278882696060896206387911325286317934771521117956091369864327350863281728137833835431816714603105773645805600580081858035584075900969978794780146176144922417496546189722621861510499740557691704094823885945096575992804804744915029798495287229410874344410391688392637216595526123959175650653970614968252327719665076522386346005881598319793561648190823804647295773782037396026449746781680818187736944036739278855779624385607778527169653114017400944081629323064365733014636979813789438174376412433522765037650798140330130633712978022597307616003372105925139925896898913899148941795325566607513620614748938522271961701826691996907249537345549510564266269005676279345550897799771318127968625154271711353518572042517163075103610601953144411406872294910198028068848072433699773756684248715205703802063470844965298761767066971165530401295352870860870964451874679262000177070463609190603445238528662009297895514132224156936583707729528290879504063282933134079659102961278456802450948098866751508811767564454308932520037540464262730152329488654825667686751107979128848139966099393449041054947231329312118166762098626275540322994690570504061038491004035400074291776025073304467075809281380776448507876773007777852715883078284061787319125736272086017415646855412770231594568130127275125267828043170411369009539886484765939221264181865808483168809371204248602345912014821749439608941340542962065062618151166977269450547128696251036307010395480921411162499088714601318430001831686219368850372836940457884386058367406866836630399701759315450492539463448618331059504124030111729500521334141745875559846899464785542636862914137952104330705922620709641690364122626319160386839390448277546681318009216487592891908722173052121242866651209427197422206191357692575636006243368611638444372250905087130512627670064010373866662641286751802350272290284393681662372031260660470989928430470122871074300299358202216357115445552604261019250550463056758009509382853737142573227904421654697711591284005826414299325676301616461560633519990072489420289777554601519160288151343829144091219878288644499606285520236935554021858766559725140732529694096096003048756315777241693372067212031253369842542701814320378556425472556792498973510913147130376541323089158479533732862427379251489908979403593247296369415831486963383371516810342942361936400579085763129282244092618532053038276918893944725793851512722831509404256104263998421539041610817443442930785030419141371274922972084207285879685010844483684210773715655862661692138663927880395221068941100063619015442612811911644955133262989510993252453428543366577658763427138606677711850485908151931463014713206171351304245615536170108523370721374387037383428449491378761476742731644315076858209878395550540745321436788515315775925014974924405323837530066461110089113179689919279105423565576896771458696749128770097577473942372443651802219061506834394459775458115354856431872522504400642426905182696580004823925720837536387420167111468191777700611201354677398368044330115135147397452611417839137680925731591868866408825779732583180215605118582834412887475758728979086274182191553906579130077825790001111058683721745788773137777716707326112637939395158913832630083894103002010007539369285711027572354416407346800606913861810562297792718005582226959481045210195482964201029518557003087724294030947348269385066072142616975952471314183260608862723554825727371552626447831448934401946376169736719788225672582106356012952463726631589782816338819167682714526753096629265029938183532497920154170269999856305326120973595070816688715418164521328662514539938368429653929682867047321881659122045606004673441627837517252356839360014711417075395232852398483259137101074295160813452362019225673932060719506029030212427840773872848090271067591530503628714517700216556984519907817156769034240711635215248748080508960745923951652395212094380348905710117344948556193424301524470510988589977109010878341115183178410541205566218751453697648302467267514362653764234390394860230331490232081009720413050802685813792160358770203890932155548650014992007966906279645604413103015517538902108030369370269250118620402499490286772452788947397867729351497602837151984468571979955451013471787031417175989703012122849595871051537272909863931906707891209417328955631142315540390349119660375069678057408123076704918572234708266694864671135713281064155459370250219263559046888261746630929890519993474114933869444185297911657118569182666746909989136590677688858154357710878135081082344756567980441077303012201617256863195252077211090020048757155636370555172199787558799498387530326657329016694006915012799949831704497800962463316817562643841460129928238403201598328662852925512907648470296584993457958462430129597715653321203513744402420018740854841558113686831271138857502356208318574969515193191618135515495621437453681512411980812824284678662330697342005350460252720008340088912075710522126657663266731851336309716917285128072549792831131357401643681743370773014379736814277204318202324309619830882078798960895012948653158355801444963170589129049841452306272533633464719365094129065979018434859717894203657968048226693429026395239762850224633170768409099818508835665860795922382108570241145979489375703610328949637529809972020394398802498452535821939015161699567557992584070816611344157583068964286304043929944363286980807022856499483678835419027098079410063307660270759224524939317705878486983658777151008411370344876171417924800625518112416867670981664042040365322853353100274349093138990629958619014032619993498958919480152651963452330722064342743599422800415957174528787191975979720546642894993489436294814930778099152933099884958334413754334439129169104796062817680730906293861957476414538014021754678020256189991990311876722211362293544650818637208213454821295398186908451404793453376591386000153178921880746561519744150816688323743143034361904910387372334628459273640545110048912939900191652074332100503240851946165174460677254503565333766546167477105353228036098716805164607908236607470989229607737530937086147623544760242910304312485667852458974612335956874970822625415225729480656912379980446737023449853793835003153483358962578818500204140034197990726073446476489899616850946267435561922083417455366865919503947357287789326032320741691657130619182359413813745947879836239055875623802287163091846338375481441340601235283333571592097232919069700560477635766167130985557022423878385672716413014460732259269254110471695133927642297769835239230025364304431110620434906983139969675615233609731463204278029753664619094081071786344661141453136798071655719285105134695793377175608304139152086716662416667939008382660301127361677964198535798851192881215749907538042424604816405823275245068228533328226367768665941965716665190085949936886762897264027494390425228651520168698364338632798678011117129487718462296154881732397708482890052678252313214281115844760976004358946471123782219373548437460122935486572096500709001630855906083263903671888904863481639022283434066927450446451688970516505675269812675752491685257691347566465987272803483500162812386002258697689981474963966184834110183362038815880094717334782490125726091529708093343407910346351012934374691346666514189957562886454933957644635301093340382162589445939121347375974604407397668991199705401606452760189881373219021282351569453040849505453382258441614482174351212188065003265655432720790224373183634863409535062564348832728437491181998000470709220811165838331746494178779953838247812373437640637638893837372104180761976940701927238738188873210913725217325383875109980126885166977583912013670139405303216352360518751009227345434931347253242797023784877321912152335431152191116119873663613491702671642784521862170738971559789724860524231671694273378269977571222637259382883877532610899264560956349314490854934458248262891855616533820829933963936702555226708189565787847327320981075272244438836459492315353661488274008753979325551596096245227766076454347370230726277819853473902888730941751551695042950349246072017538401089690514592657356462160319653832940769346604312387432545640044827712633019152568566204298486803142872241536545395337833226219892163420516236240508397513647754587652266478155690974657615960146730180815437580004557156837768987773301880684082550033230555481190987595951932929869505058381552790464537326052228967167686587729827939417619083045253275954703322015957506355791300046422189990053089199635343612348394313400312278409450895203466702492889867244435479792490088583186804347342102826238568349522432656183104031190320146834494584666742190787313669956014330902646776636456180675599291071646245260266325799501523550577983166207915761253635158810284866005068443976429474853458266583271380971251996331028034776028756237666855394502411895133902277592775082035734850749228988187596865131164467100473835844693900587181866223217034750447253572515114698407705483731049916408997508879330209602984403894669574257294955490407883300635142147854921969642674260290971820020165141861118674477233545360398747764502227677055054214325908102510179340997982020951124635195596774122358814682515498497349854803937685520950776531030868609782908639306550443652990447089338423153533533529271777999658936883541843874982955654745206543227616460816225011415051663729725090101499156893111718499197158555181378130878022176910938951093392669930501071993399953327874685665699013965856265241922982061576135890304888005603153516801768391375057634346009519501249813123679311961284637675393631699062902388691743760795494417574281399580818422752885715117294958519733975148052344057281267536115047509575668957784753852047932772464132485206118979528947695315188459140868133226209569690070638695424883913878093354567660308253155490585816714189267454883272032369134659954710152502951065967784825584173481085491420437381800570007553425186270552685626832775674201051763031610833129175812752311427945100815274113709885260374234923618068865987060315195864826285485064817578626002873730333298049706467508777432493385550489693946225687452154030323016480216951568323653544771996406745275220800147882387852537188047404019742370669540615566664699980042273005042863064761118710407137384868035843693082056535568097977961985017203503991534203546537943928600683865227534160346671768366785843707900917154289852280941488400456374818866718203311660982693735420929546956420242310936479414427884435515827116220817604023259365977671796342487158487985629599748276681658505562995178112282218817577967866086116521765071181167511198951560877586698231866878833585358728611642627914355724870391632507917306155914213802311873208786516899041982075712202564810706986742127517953878905426054480129416544925982651276754276218240326116742874015745910892675848791041863310411136822003125244727481003456772800315463170860800013018494913779549121339484047604411399094824861079510274108215238862216824609197459980994972779119367014952986900227977914594311722844523261980492159018731800331759309126573340877200701461706949106150696646317224998866394972813540451275132310227088696965001442296089380350207039919560076525819493950683503323422981315241509780225756305675335938800183751388845276920104691451306434077406259491158767432386247006136303169811238376549120420183879518947122112916230311598511762196793616856680412417971675000955093668479880448148154413208808226768576766730852875717891916232935597438861426421043256367152650519463958419357780842335884514377738499544539289774047748867271571077583195841769431185366529705205473777219768576968058976484341444229927259391294434354501630406253527844020915258336445769549106411888481701034032335261254460294455313341566748958702233708795468662456330935038713253685746341761810814454880665843341160550803719671657254621966765222731031669435106947127678141605199615844196388796220579776866747782837170660549061553235679675377170034551899790493737808110918574280371073588764700434000687810627661561940151176312149757176553131333522754867657552244634186711571457718295855563249922429058848098323870379238346112794684220941671382233121601186651262930578066351243404298710773334843579463185321217818530580893893527220550571310958637950060150213515627441567141797921679784186077320256610163527112764078961908335450649291455205157133933792539809452521569485277538124576366184491637103147953651382095545217846040172029977244345799557331304350570321613458351842639570290014250810345636984289989182502109258815568848302390371538087915286970549422527615518768516533953751587114449383535012610957662965090687392518377279791919414054162535889688391543426916426799794289303398213947752034557863062498792162207899092586285268589104444659648516797040475237858105397052446903862767843052795098712865451012553190683528373080927347350235984454570935594224746900121848192141372303621527932862158103412739352720857451073382119102422957359275557667311012437386919636799934862115585300356434524883529096053619596181807560290362935013948553810275055695738798422421075742135262610866630586023561989645028076953260213575132404858380453772776128228811067392678641916065165865796998405237968468779807310484427394518808209934955635066540962396776933833714140968535016231607256938343082352674833971710063499782163638938504974761986264229095119490873471336316245359700140548649405283769416184209459623756553101976517173932410734539559217448438561467300926657943326168331351916498470348432477228495356378361796189442275513583960651480455582030119212259210531203380473260915452345400826786543845491677422965018725898628056105746940112113356044343834176554046978103539476933476597778862343604381307235273194065639928234423341950745969065832101798451074545324675505066194439177878086084039606265529516067384431134960455313397547424863784291121077004156145750422094967570863682766585089646982599675140005301695407409867922403973381912968748657784970961316161565092689625390837405613753644533450434679659336676318882979293159117230093722629814274154716375683442386960980363811399231634073796180274780262975202307394040497614939987984413094337050923882445518789408100650889634699292365200289784126594564897887795621196935858560552514195634415258101540250072931574114493844751072824832179679456678293156095100776447661669126778443333660983402866731648202204741890950065004556831260528589984540244327505874424893259851139488120577991879203858887178655652111291057970122566914570654884736210232433689936457562664793444889637108799180061068601139309483958222458416087684037269442425896569971601213659321668029889729125508056528155153499917051927727164921719768151988869911153136829776102197807202878426986697036633067695040470286415297400688584974995393558105835232965082562928656407535877503052572724558019032271117471697330103045451534691486832261025565589943541244655706049352897804914360274084055117468587669620142557262019209712670084262876717317969945219179767562280815895780611728961564832236273355679425325025464782900109082677308563047396663859127132825400367642916536261213798232513750597567763931528866792292501875993008010101060392476363339916432240503290434074906845231413943348847745570838087456344732058428211927295876355376967048186145437223668383014041060211496299426596021058180571386678413849534260530456982444290981396833593599155522222846998128953143138650861623826748627831177270976415343270549952883724458432128747447596971036069665736065107995292588237209422711850045779959844843530245005764381955330362285767025662832095693041904914274789434588004580367404758735457914614690275138347246723309331266755899973878563653961993301086875672910088735766838433346976760001265287408708429078990768368035534603077479742226421812164331677742253178417078003426228864267737849409102869446517294767834615785788750034335752246983950555353605956468687715678436332733921532982150965434421359754839837574810386212308656156263950295235830570434861537248419991065600643474156747120114257601644498878935267657062574379466776811050598576925776150235836067580676540156134512345111490024138177027750068400874064994120417941165624538483829020710844610400173801211769732401726657623815857753803391344814740323872992868755344054615112776239982051302278829119812002402463980276684496783779862439089301232604108777228826581339584543066148285826367739239595216829920818140783303558610871877344437242260971301247267395170882813911856201217055074780306096304235425239680623260874337181145914821026456384951653349235295388911621612084375549579001498563209895447611968324573204954425332453274263823081088985514050248465639837942835805415069704708559750380474318090884658984539993044659423581972591263368980960068058409097517744658600814359950066975041414024417321832535794229679365045772025431658710827857018602728172937876302092689306655379880740499912324495898784232607088659877660946489494484884683790651648195207877394851246411916964614581880724120450197191162276493203899472809636162262632109019812569069361090973146231598958287859113830971472477399396754027780185278702757832574236837247846866242472507048220666609937264126242582435236759666191067690973634670272237637250255514414156173205211605318866681934119804460407448325840113840141411960877098587191280911481403134507765488130669889938308212209615016340020222353283020388062021163414550963860666893218614620183108413625496261487392892290017517913617132192194826983955747265538547398474888107227263976677048501201954918124956271221516512790364863923623153429615911940262372689825393706322081319132767419360031574506433102957386098316775992556520405016726555481888316161978144535290328827331796106347886031335404043946945185561510261526458242654017477876578846095789092194306476471620045966167573829102709497277430119286692161200540733122227571905582147503568360941528446256499912399238640292704689258303935110385215741310639988479771635525780626896115755076210264417738942303529047893025446673979774579084831551330118957382966816541693387071021393365967511694817817531197982599535673720758667043172087898994282201381245453946361655663296010199145683693602073754582174754823309140813224346125071141385112611199184126838636816199135544828413188520483808195886871935241640372298036506383370853556997245960636150752604769865962390739514830456788536866050419096606459415316743662391957804641076674786985043881979217886024806421797300383447141592917380375511651079677078449547187192457644770917230573575218123320366444073724042904791484687615702325204523277973620821049981928381711477511944652896424090615942160605712889771887821772198104006042572958057608055185075607713654419546688220084153660651855422958383349702076002109983450089962138666159601068280801693308505669198547345274629877934581954022731669704771079245987601263202695829788252352338936536820243898222401468712042388238550151514942295775261641708793927115585831109643193642387096474414309648675788598376894370379700555510243040639278939716301077608032407609497335708491999184061755793695683046695967607836826232496640580423119148172604558939760756271445602719031950620139979663110768044575346838828069707529585111612759550531480451561341934357634774656708931369188461263822778386743635126934496980207667793279413280731405686394112676314573850198749476743847800172254753926138646320691033602106482549918249088826491374319894797705107010309435349209456791016987328944628241504881873531554199452751628204175725202311260719347564224882719214672670521586891624639489136457743855633440316565165017034551830840681003991967811390021713995591211896613145116121096134722831175676798851245098174613364877253673607011572722888904949434966338404162871021333629958469256015223994258724501188025765628515068828573544446277560082702133337987276442905210645302008929102523933494578633250985348420234886476607631622084214178366237328770710614293704107724624076232690386824315817466596651113713303953663419028854370747995871873360125566618109788387621841526804234837212233376251112360692829123493371523884709812930469922559483192929966683262781296351665923230254208415732216297000910678792152092021654939161973208367161509856203782608630548305265804955533126296366558065178356661655478977230047260767734604350349476573838758151994764729915452916836963070112192009486700957895287362946294188533748931260487017018948637054608020859933710426581374946756530530768449263471457070242486782611809539644501707031176855790082742549793559400638627528295248645709625934425722278084174347836979684162686453000460401481299810267924855697917939428518177999744111920001108375982136525675898479547706267743900703681787013546910104903705642692589850641706416212101268517573062932865162978813336934115668305713742351869383263287474693495356807788625206892224647509560959646967191112972228114341218456316850149769906258815641048415444323717766631955897531322257918071543488610352403813845239574607655543169295080350335561455429916615725332532252024674316795680738588960717700228327041725543292483101767083999195024530946927435354529582974560793925011060566146064069170805350356987890101305878632254590446894176059157279993677769278847114936251329922370864085494756969427370859101454036814256099625266635508726386287198805236250085232708326921488772160967470017222419681149696092111136616141731951410766188058389616275700911702610236370355138036129262851406921301461154194516978280380940411642755176979523139949645844801642148496542687209116898191542878216904687878310543133455046479184365192303004554063848280327520730067523797374222409135225378114155063946615944361947186363909260812583404859538684597910074813143517073830091696237501452225328141233694905655140853079629749284979291487547105881741641273684592807255820377992778966935930840146604147205102197775329171737531477705233833363422698382413503651595154191485244766511749890306699138872754622848870096797515936160755192215618002617811924622239580993933402403836021133250245828990337831354552076628797982955606086426340206245603171530863652222244511341463154078550994817803995750239409607072175961771223771410527116467004238058185835031444417220724503058892318223562982486445703570749254922054464872541517698174923950305473921550081327437322304705978793851216565948109892306939974195857104777511187769051814370357959450537050365125077623078682565355200133910696535053429833397284838530245728480442731178970365188817616422548844283636450335783461053765382810362039308159889269491266254315698002455228032960764755890744194245838176632954073600323022683479483856781537103136545620639780632870658292011768289469535103862410474744193351049816121965786785864606730060075474832563510755961614465765178536693664788535496849743574509234614274607901425453044215991082112757602546041875649448618412349485515635362995951506279830153052583693060347581044258835729175955638192998131932049686614999462787159034183819686915983549787467548061167636893020967905737084250848078155599761794564824568220668715060410846637602297579093397447831192300422192520238494484196853095158158256739276495171548022108755765810474361697993387243328588273433052037354448372423535094454117124876358441421319857437629553229680743787327745123368767483053352405367374954470905309558477949413288554448745342748111015085287265847269857647147867442853876957339758427903779471948449660183061982990530493549977488141751791122753157631242416921565548552535724744784337206065271020161775433734065991278037041089294275920600732267425550632501822058790650938527687021179380880176536857555689173044755196875051600106124209947437307521512608147905190653352730251204324225794291046783807578958633533697075458101250929597866437300383726081571519384410198164870892944568605071918849856953128195476819057345335606844556731867285971524833105402165292895616732176653854088714400407012989922689615319149490737923101689422597449490894034414457486936732671653196252846317689933769282789701272907509199322689973635765890996061163902459300075468224888316192589228247780062328207728065193882024502052253235186090383737725648111740657507563940890783033500036686882647529554836713384712710309780618049271941173312018804002669731284460702519363915490784725411504925240317491580326601973752666115074998132354775887017370632085366519499487206272454689154074202058930242695512395915881850815378899050607794752382454605452093171260842452657191307997944484947103928312460306677261582323196369547911542798711386242801157482062097447629481170471895211303326055092678757141914676027699380537702894039885125945232109460472787617323577927571924774313432455210594384351117066782973604015529429638388896097157874131497914921046109806474193094214666278158886224867467584797950242072159291038417076711887492413816850171803933276483577954861288023046000303191809498775073065481689520049766058966847345381000136990078831071732435052791100682087973956589680665184273165224316307211456204514453693530762362247905766551559861551042351397415518026768673726062435130847227619847336223460140703029850487650008914494769848127083330168283957058495861635755505933917064174663769821530122863531661799097921875931513881202261879601285686742222982531479176307579460999342655761703161553460294939500740499022174430953125046158792226698627580684775103816305142163357098384351816831653533204324244589947162024378975314278978605757792581245503245884128985689091244268712403088434340186058987369722927775312211490970532709201607642916648630187256966473166548108247771845089492961458674862412697474252365836240413462386000760281076959398671046603909475014714251979889813005079284339216687637609171282628104101828979759273324976165995343001332731848412877063467113648069754401622715546340628615991161212848989885006519166773630722639032333365552216696605974323956254846197478921585198800806659460133159962202397090147513933313385704216781278174883772639001688022263785006013559311896748759528451623038901085582461916451506502428787926513468807457064960364129972120809835481394466556787494920054765245888521232038870400655306380979867042190000558998320923402991010021590695858907224549861494843743498020104043742428102760208023258578531578835905821595627536907220976177993455514294526592922412108333138258764569528925580816013396582748774235255199173982860661209404601684981311565868682674426415193473640980759672703851328132222507614567733282219547569028917036585833648807905348178917280952652591721044045448232665997068879618620071271542883435180861958895359267524239079222601197923226231405481594442447379007861032223181958533861137697776248289139394448693336610196738533069783706208007760453012942871041322935234366793784427217371923817378869522368098847304111948328463725500107404553750876567095475733615899329442953400023542000627447047008971115359141182852802308041898513546927270698311162220769354160235736827497264170495029194056907656261957532014933401404505185037671528413662507493875179064861850195019053225321035264441215578367897326001761976465114923546279408993043534524201221233100799861514870499963788424862609007599651582164551001459519690413581522622729142003842772677574535309956069270970757242290946986706860278878340885528339827089121224871598336716042925759328924111433320440616004476562520429163025510208733577197555695834841199078170616303451175682330404484030686616188847608238685688965959941757994346130991305620376679314406631130262473537750698266550655368303195673302211741046906817085743269785770059000439191231851526797133456043973203093498251948846472473479173131980165691993593347846939565136372397203794838495914271591179023019458542513105563825964496024177026106495117230380515176346870979736763091269715864042231177116974547283055957720332821910551194797371121384356234742344149373212151272765367689714910641932988419041301656832127029724750967697932699389553568182761266514802486708130693207273354536436794267855440012514846761829617386535337006673220218409078838362802598072666109022145028168215782710567436363346074648744740890231167013120076443214783452760488781682195918734197041297157538447863438519551698466358775713663619108187552211999451934512199449123285672767310605573835110583204267509407120171171840372124313922290951849915718694381030646630966207874876527306422193960729233186012106916648561290743834915649370799709058126334391611780121792387387450648176553194507256853928896762458134615166969484933614222390703776448863509083338459562608505024609347570193235481732825511097977861090893127596062561972426390167457707473862198949338668072561434646644908944893285875596155648704696862742020267910336004650281463176132153234217115407460500908311641322616567905242784239298272452052489790976636322775480959147098188578795256464516459783859563124541286372888995238352738268795811869408651533831801616512077016798398873366770179075602609113905646056029563794749406772696955865621978768977263603085280926414711929656100657892468491045196572750665977337233815640460790940863371098595396569755758014234992258979848366069607310615855935877333753221923879742571638759634889281498956391716433321684879293720856016221298721260985284686831652956587357863558853855674138685807986348369544039638992572279919268233036571682507161492985295432145554659649733063891873102890962945132459870960437237351099159501705858236908457399487677885777653959973088300204460341846024829358578817342924260849188736168252958216201660918687088784857096811204091743143974722849313013103131724802000201420707353181947912565542141021533668814416582929670840408235807509870331584791908866441464640520156571710320984164668544181797739028915467334197152319599712173847345129598392296517718342699869253404530160706865291784390396127797226585473755756610185213996655462050277610063585628389235722198462736052459455955066821370480082607595561203375104167852236093852577556617749671725362737498117516775252192713316196923331575464760279773225338258465250236321031417932724825280654360520341545366178824060610630385747307121528684714864292353759417978930699791830345911099580079434836555305616629490151127861646475803004289667726188712163584969398219338386257209280567263970212313079142199850969739709131826588856690744577002413810990717110104919297395065290783768567495910724696463061793360200257662584186673681363039838671318328339350057036145840955183166774144731528874873722841376142856261039984521761366059833579792388001182604042523624768201847393527892629406828786323903026297777730601459549181730215685359687562821348599507687159384015745395493829871218564297590792460329241278426413271013878117628107614404694112184498884779130707785074393684694039449942350255501625326696257260435793454997826571454736401112258690949244394267898113774329410552535974280490022824412259225524455699427314113462731538085045611420163613801135641334533671738209627057432335414061145101262885887544518486234414122232365900385186545453276697026693284857208248293963809144158420153402518341499328833003386774896138801834120549197515990923898186285876896078327433938540363467213824743218780160015127032035000391719683362523197146392038005718027205673420602530276933535248585329656264518951959168532619578853685708735654241447417450218869592233885040896105300196112668395097708294746382139604825399473209132841841038304509148122991623818294936453209963508422236252037407351906817544411724151972294273482534264564284267205767690177734529953145757331829298314033668739732927404253472253695817803742315890480834494135350413177880043202487601323111827214683192804144445225189052085265440402468806921848585755100445156022469611385032077087684238272923979964294247794397739646369202550149678681259694584307811241811223462847424614583793274892984214383188148256432903352896570796086093973580183502744404087342141264040573059458895246276184903401401110747645926257400984730423758324755627108713726108936809906553925468941119087102141518588007222362698269106849236697700888438800010033529042125299464714072917769023707969651638863988384064879237047093169627884598967246701479651597417388741080351104739056422597399639978811320828353067964499511366196216280038704907554941450830386010096959707502235471222595208307197199042075814217418100563431488670977785635372746093113195423784450813303084216337215871549217682201924289713285174152371053768750348840709301642587419930348955409802308412482733804909277348475221733304395758045016206437079873524584418465294796939988001650102116041988381784218445191521375301710775990648259401112311054910049197078588152605873147971119289516009633378101853172651607508160300403777756124951427612375224114398224812050526802209526739637747010556938857870127181272335628018984780558154024134716680640589349374639269141161941729510589030740761808425260354760450749958630773719812198842583645230195935086141743468985587755899399575309497646135093516184185982391505760538512545995092755659537411257158098700678849419245845830876603191160691748610057538111850060259142008204557456610881099921673165531154361986773909022003149973599452015988610355141356524347709220535619134928158253332887219432733875812184023908955505513676648357552815516060139450778406053368442541421122015924941451238164150125367190921624098107506903880411549745721605203027284573097012794724643060487894603953579971946481437597156239653316449707938726564111828659445919308772062418704772430149318496769949178396240517508184433453235598753167776200934099160445267095643722557353200949430890816141017440214931015480780362599205521152990521133476742740188747983137093275237832706439143850240530391173989149056167428899416438302419092135307441111325412484005382339534249313181344357587923337784424801544997825126351638458323478903717673031648734148495576906409388337001012113277373180470292606169099264703476393577364226361207850874944520074910080786875745568449120683347015775778860335357011696446803829057713908467987109394047942235177437305708155859360164408479914961969252055699530774404044759148873684617406718237611680822734274002795251683715463958415492384920821026945380660787263882421802294643097082713314161609623815432216534023301740247868184044405926590786806560122233183855787859355199717338534901678735709090938922297509387295969170472129427107393124180837107468581939492866397551718368361451844381499158332461623660778589183881010670132681354597845161591612335667403033176195868074073208099062623745268531108331611470502583612550323968686450072236645904124265010733089212527520558850438836004022215433054021201397808796909370929481073740506040394999113332634283544530087775709884547186212013885497103276212397602135034305048563325974048418358070395267726602036568084238448102152431756293887846875049264175341182443934638263097535321266641847705791071321625887875304485731613133381170098144262759060794075868752459920020017698857768500145076890197474438615844994464272537437688640811313124198476275694073145736318467298363532416701730655346025728986011278124115355185260142717460914215820587299833260329986856582024346005217684898911566731547124884836001285602273049421778007712944481577744012659084394930664929067201169650565678854262736402518017188004976195702153330427580225312497964265984210759454911773093688675384767904026596160343644497236521579515647128476365554097849998144856931153269924318813010185061132206094460695138087246472584903494359173610857114443343442547108563564976122693334807575323663494293179223567455594762043257629270057791320879710963116641121631311168362412046051361972386027993989701880580907363966446669339579361924911709585721406963458118071772046990486192039181927056818706327082455453358454898616001789494773665845953292819578286383831508783557197405902530411880203814512416545949844967606890421377840588294387489570317554802451375260101044459179979927169814822730416766121425421073625825103419832708546060755465660121759426766406396761207801647480277147185259447105150619843815328576400551594692683781364281230667153972309570093216889473730909997820093611926367703889392067207524422019373817820250671356491886740544151913943426008158419762899681947528462921840585489351299658743642459946644709342024188361378132091122159467927336637541563519099106919997449011961895181349829793479696890857782177481833225529918973248770410248548931404565871749798322848978605406750369514133976796675686512382648046215184983493541049673775392868311079549274870003091295398445661442683080077054089885832444579249134103383950486682544731638967577626848690356964541497950113540974948239648821126303002581814387102450756740013856100927359307384955540533185581413730613350262124412759189461214134704214732519578632048473008223930507148567949734208615076745516014717664899766754992810136913601340097597784438398826137068975401915610537094720181475655716897127735606212907964496828646959128633549372202664987853370310886002730758138394828959723214031259770497400623235394218152214502544367740372438922829288209006390957522625399504153148764254922587290458136364926962737808649368497391812997146610913729457435804788119831674683968855962905785113502273815154935256129580018152470909295925070843881499459945882229046469551594967064858710460050291468178140348832356638674730623443955991675734091261041756268942218664004561774601044813719205505243156602618213241038391616398970483679550623529683476753873892639357685060048484318746694983830625661079308369897861348338861122033709529779709863623269736434971563314810484578418773281030073108229939109990159476352575081904646318936488540023514469034711638156171749838936214866944680759877600819408316134439512884223300777571865792171960194309866670225009763542184925595153165480602190579832980847767060324905544557414158024905849126150474128012229640175021899965025197446708473800594495259516034173615088496522413132222685201987082057573892780634464455324452193233962996727432313964479565625572834211044972849256762966998766822350695252433285196278810771673566188044975944518411168647557928550653429698147620881479478913193175276388501183766710156828215458177817198040864188145084485360113295292215063522320311036378804941390021250387582254573096448920546577599773510848169365249724451226168325922184921839052532688203188898678835974158606613880047159202462338675341627683347878534391867147872085645351494885106159021546761702202281800587992352004311683840262042591442994189506550763361349997962260819614919324054072819331400317541103709857744091629469611601112417237166597332625713603422320192897370891103950143342870572508437447164470893346165343934166578647381912317822005907325362554411903065244642763137526218959090467111687308565556003133023123118028343439677931295515086601552773742897774028704098849072132520545489676380529712032744168455686161397230204675177971622166624714412223538757814968274490932880225481993546095846706003812138695756198931118077630508263414767371000397945732592716662855017625662177465334540776201293529475969146500999396861169498553534095814674709219578594795995708478196656228523253459649307888170630929989853243686210621868300266046209958701721513072757823453540185102114458332527938966203558886903354698212255892276482136980368626752110791913710425450060589355858554972112150849174645990108471374133564379165211224681452477890142399075143476219066633007114730444467727384834626375041611520068934893218321461520356068643827879349409547477248309069154760378474328433384414015126328105039181042603882839841444184108739477960355567689020733432897040356519231294409297053896448393274023576086056102716059184855724996032315157661870850326504115852838941164221062502835455686127918558440722053041154617276017841547059419066440072617822648131585131782889292451181768039014423787245652185082791893139512046646335433123272805696487659720947007185844564003673959335252583737082943629592347625819624052794881947017127587682360769269781089064260725545986500513294484569542500364489611787212237285149759755383716470128277276012407966968587108316532304701561110257520946237722285657322336630624330545836006094186072734346572739670926921960009806624668079225805020891415246702315113375467891917193898351699284064063508809814535321628043038389756967437522875896512677276005471872927484963785282552177311183517541284414273917646288379404716711548650560375699288810200833154749698536320783691142320278847708488364408388545912332441216879487041709682617598268031142611793980365236896699820866794484870680434691114287896699366871318889202980193147362655196371865836736061681067434592612250562363872099040929005950924114608339252499767221189440856469173353310665844140298211796678334740456789415291438810827637566293930597794162418266313071425068855441284771232048964093172447603922354277716527829418292282849022437380597618161677741461632036800822700957848777096240202757841280046030831390537572941284848925288316747491340048288394042434326938860406960206941716326666213323278041965405630030244451432728885275133373480008768918984740616551279151718902986402364376366883323569301332947422309102591103567303521686352774925752642156761843278362563891731660797934576295097926302630491212261523344650786911177301609474649074593960043545637137043933374715849609192259429125524850002770341857156805761146082511294400174791278101113116483673760530698706279087852884326500039285286303046255306820571823194960050434054460376242219316713443539078470974571193645216159751965108232499278978288589980495754677070952023836068561825539468197054101849403389681670170792271990803314638025127487133929280665705948286733720193411941126062974186325862694136360589284598297254600528264072920686904941977706043450056986141272438895349174712605811636159656580410008671116740639759701256916834634596302255977328725162086893334970617738477839920908976876025721429969425568409800580928914403042616381110093530900292316447380746268819214606414634157586412006203079511820169955945583809413365284514692537262477321378824698698928614368113117608036662588197236631150951530954593402415316175476985010565479427764876850141214631850723992455736374503258579596235352953563034096844046679622128354554439768563831577332547477348086980870903511689361885084452449876132991622109183407440484673417065950971765453555518657730908914031786766732613671547671878788606367733711615168413004823291357367933828766760775115469853811283209653585035725306288714945557009641659295701913246922924995793611019374409200811486041680468990004039640591890524724077873731462319087559086445770521296368683857194820276083886221281872041711269915442114374381535931332695902826302569325057330252711105561249158892040423035325115832933274871430990241433866044636468529881727955368589260746531616653522676870991418490464263083140907398666304958578647211750624475468677545269719421065339100674922670001741256120720935861394982898212385149184800139155137890234341070057718004018675338850547889795752312265119968510994662075999770689390574684777400940454313797699752371942113312004380045752665535970795651389427132279929702073112576668676901357307201667094078415085230991128393857622279862536328937665351584877720253415651387061874815812648897176093738583017636386447175323225865779420818857741214468851950528933237163524928601903886184591595652088483184620854031904622405266189498647364083738310565156899950108847253882824221614204205681499401683120754307945812103523695818855880913710793182596240730508905626182829697326726150883182785721895157640728571359868362545645556644526067128208413657796208589508309337882485834079515818066819951307397763585710924454764733450662280342067903179596391926638776174817355836658937022679807592597651542534958199320710711757692099781488134015567091757621502545267672836443790973964895956514813706593697467535065874545250840566768148536149714101899273039687164248622652960446623898978968563879355046480623521027586464537210619627354119550804141866534406869639608844268315956167081240249505644885257008018184456638159770514168047177951025511522283565820276432198576830598387563431064362687100584673165251659896451765995763909294449735737124355136557184123662066195800231081172913818680684207195082429122529751138100181479455349286774125920430745056295649484070258975161537533426761674036178164164502533264680305601581738654356000636483024203390426543391693527616590398770907340203220727804792202089476592211632572087915235399245652568944165418582974906758129432831651306666971310331408406238019585517555047840435253753044049500185473771338693658128825271845808613769425568458147453844015203600477083390215674150026651716116487248436160828079874137132428464893464446658225154245240465133633417282069629225316356869134806339220862960308341140675705523791543361827404521789344528188917933501736058136658121257445730832159338754684059415413244716876582296493703445586858750762041373814001809036815711388821888209654757078137760851516886183630600283168039409410871653631579980126474857518985823550865481992280858260405629526415899508144135879267931870708260799482251407701390423988979229692667508418022280699798116541593935607490732468742147482492959953070931889314104201144102629807273262461215824493305121610244664915525380513080992276507864950185644942494438243416308946024037792744379386234985717465846598801207093153761624946994199451435050619039402015256443242452750892056055414778886329937837258692266158711700438189012951424637214789294459774213154715515832384315241881235954327687328340033265392713219115947541495511112803814457524200701652413635687685937287770363837703140258070514696909390793716190034008685993519981935454338568789780549526888533478992548586050352909249488570582636781810411643622564352447867940658130222262088231892073110030830223231680957893742264376926240323616263756619781710231290228841326373460773394111892645865010138233996339165444184749222279154472303231293695948842380702785066273120357853046992137971227638628088345095049621147013528931774106370152341357962381627051997256009040933123555648266340140392238951423505470289724569189396511087601555304558362209303997625203441990858492935069783661894221348581067370174498312044760072138450504869259794328829436124606931501395840622949600494406495283063370846267551351494292255410945214637011759533553192335305664166778368593491131723843307224502407383296410237396143718249417373105969657543812518513728247325714553295169551175737904031736079230427770807928804991119437901547079781369099894999739572689863155408219089279027621750344130398755610854102464705283129908602299491805876388340289930024941525593929811237774860876177880896407303254217418987350657639270266769472541876744585164164558637831635871401416191910695964884710797540512526131912827640010023032406749213649334084985618108392954106022251475838595922988469538187238916800574657061135235915309467163807180646936933601016447416627178715966212196454297552244298196564994140295560348893807411740983592858063662015987052367306615651116993722867077999872033591258411626391098436118326816202707029760269087398249328520448173912104865766384719445477395441791709992889933535603362626863776228882398881800589658571960962496674542708119611971201831124986659231652448123681055767297015824296099941926177422116507011357311588785837044022835101731102986576794909183708961914345088231384309501296717296222727736333624521609529305427573533374760447072357771529637934026030908752803196701729323296377438060814699422878530405729806806572071429168455104122379092772856171268314976780644884956385118275927077168930554094807571774444540773094529341538509943184276958846528926532321293670269607490133579987212914333183511498156758463844561459649198397505969007154443131859199967967572941787256031685908261658364249268011905527470787953817914287753868261215940080006208090581767317528298233257301627226323624454520940174264049265189653845488127465443776218196885022454706216144510040652895862596033703562269533688701449361184527451619740918764077105714707225696384897441278417538718945678447970985240472512260379390232554405676591384656725771681099438695615922669178584799980955020446012623604391710938274842865487147033935956994558085082970624058209871507614074636056147315859008621859937553267173295264566052451078727315581133394636044221948939598924798363886895334624002565509784771677135359586437686206874170118615142479924362506227304551006782225074486155482990568382059388105266249402996562011072584240276691631349222921823655972724402588325983589081040474327273940419485559036266822546100317462834969730955983793329891408222669873422703895025679784969476615278830249655165224426206327317722443345531036688074311564748201669564440995821960926057169767434830896823400666473655375844945683869021848262471402866971599889242349573715324872190028794001376650468968286599100069111323696065393440766178018561960090188501076444494405275937570750700128564457213156390972400589604007710950428770458072860192864765301393822651245872753780177618716327494731131147904722607102828263675828664994202939449915735303787119701675234954143844045742543567172681241384832885452874643905465082982080677664027819814863364977476092731923424315639126124661426554928797116098326030032607117373482954213361131801698662108183659183900303431232247205234335256763851678376615246407698325907430532239383122977620273870443091138047421026202197721392666729754559859311550955103891432201084293433832483328751749751941903894186149512403179756009537108780051478584243239228216419479914017255018659713315552177817940139107608280808483992321529748095277761206739528778002697676543298114478430420055937846554133910960135684251047489236313827025391660915579215469460613153143795680593035443102527329730206694587932529118267501989191626628679584585051075247893689308463182083465428792081081925852046716125156221943129151732583281715946709223875869722180582112309681395410568214686482521756794113827180267502566402924660117111277448965019985168908617406466966945567251319288538100855715600395759372774491922606602395590025828174498512452380743681976354706406342183404485998011932754073451663422522873170020249330847879214447001510217109292180471418945292641317014550618826397937905583693583131801779008726490741261035610244208191758168722522501628054696801811466607447519563105804485164183638958768218145981359368430490007120203427597569344114409577109978724005028075744605878272002022970041707505022856576036811951226768646210342088209369045463615594117341929282963648925849416014902000778570672788437463597351471980520913993234123247000717171412628760820296083765059990134339606826596596426536654444932562862553718289535592865411326951436860085334274362880229167589171868038915082546464126643397916731447713477016533802116765781041582786755035135805094771554212929706755627263024429933003837509917556231142439216495039748224144514248831517623300443626560856245832016569779528694434568862251027642800850838682331630135193648876456575444258669544576123863975503731710552305155415853078069881683261304425620775812586842197938296015025259198161433894835688522351716279385370611430194646208936409924005345993860963195912953363034552623363390550431743097404297886225356429689111579570477976589984357156988113717202924351158973203834923279280254273377327631624000117061652018436368872960240056039015059687745970453833260256695652315446961569772226998656988861966446086863567717257362456908369512695574460560612574428826198974224797473924122341011157192332431451321298502349905611121387094313921787598897700500155628955414619979341592794600323051872177786615685743748591711159222508118591048886264520261468722993102129477397833535831517630267498394455608196830693663265847060048103669419667502716785703341330509217430521526772222452997513549037174934807896345090299362371876975504442310130359587802507904020640200515635991085479415127371524839141266182352701594543055352814730508778127600268046230938229859520886573980013022118212448916853680003819118726706925559751695664362483604963654038643104000817594387022726491927390358231887199266633448125343855803654609642592718004857486847614704522503392597895567823232575529118458013481167019388711708434793430429204914608590654392710570794001810551354786678001306501685554853656855986855861229554516655093460459670944445300410322225907400922167385905949409695200112984503126341473279141174552897025090341789588420685841319113652859622529752861617990675642698307128632511266288017113942800556779448373142290995630231876084342842744741177610867157344548498095106259976631368568793539615371522312695924164167402100737944537123518200923726550743224000462164014320486829535077157669449657803459445392676383960307830761227808142799271365510284654856234647105227161753802434923792186102035657514436225594382658203617391719924914971770675450166934197077058173857886432825985081738454526276047845197180746052718729723496742401589503752611687271282350956222924473296359607487740967986273334614695048267533862971379680778102968303889360878439516866376374502132769106497509891823507538179424764844718983904953579054835504201614947650407667198986119951491624303662664582373109605669185861517496799746555846748536608760598652241759763529045430593722732961467316677279850981434999329363618033046277109620751960405575847761063481417246724332413073578293556756725202760245503178873273193219491899859757219504669115488459459224219914793503319270030811172208673091967951572121041357776572122409798167775820082496173077475421465887884072614346189621181601372544170339942939377008804128891210547209704654698162140132204982623932715679809017137494047569123118529014181171420861072039272536991789348224436498855806629909657168538268535656959702374489357858971846260080471521869784852945277036699882003488099398199099025058690865194241334158973707372421334662397950568347050235303165721013686443000559594238533617687083845167551212340239125869692027118324838085328496118801875844144791107659178318808257472148358663626066093092702638989299433155503932356644843448369167161515005813624490185289037821925283238502318289100570002481235300320599846737649914068472366285055683237734205956793094825265236357069510249267554751351343596435064497021444048697382556353756944686535491196268576249866486318304048690936988872370740599686043017294235547793048182691914225142865790933408020170634184619352629798265484394541195329398373142675443489414579747612773780498099810489416864352206953088657336519547682929120902604298993718417466667903687979157029744445821834906294356968689885581621031394947194590818813536168611278277522950023694141045476058262693548226691987631065391724792830037731203909548801932177807825810249048900477918183039223946345930290668639747935705082032072799448827430358560113798056416035493225353062597572549204312204013706871345766932301696295641958285188165366090713570819281162113755432667052479601969060470317221308068044048415599048774569595759518183524950608027163956249568070299175499569530844021692671858727373276180643054390147859568294475011204752697190599885542862336481725834829135647238191175982993133035098579414104353319329889660334918142810500672740610872030729540889939338616540620920811589740949214597314264515987732512472284769193747960994370778655894296291050919123886207184056701488689936983908837595726776129959818432510493421794032400804842665453619889574052793769620233990745081526440709689381202791800304058022525263140286928907213155377919123842568351643924816937166626176261688479976291027970312528399168863324114451709243952664163162782648573407104021980879447689045687381581848382897354537771410106596659698058381495702961125105443332461555937938081466707692934960124502390985641927963462444249391986203155889423535660874210391544762772656398375762094818999498937225687566045234655176901893856143220538275024714688330065375294067120478154863736502782695541891162325560577954211194198619606283913449015512195241011795397653443279019946848806977090126247394766231947878592820423896177035038681294867161884996292774802971683788910066538351011802728544495961213492206734261313246983235476172231711659972940232883324088460894343027650513773505800206245165850181361490012557113984757005489425990523519145163049564836333563000271088480695152311560432874341257433128442430824949047959053686404340240498940066735848932110319188572778298371017109931109151499550639464734173776107819167820947021138698078316386465843657675773894942014685533146428037421295919891986966300673143402119933643748982385377007865792786446250129862532236275246459671352140894166051092335296808804758554614492125453217703522607774958186027508581501532871108075473894068452281641748723057215160523325250570145723254078240984102419543671126827072024151171681046802698898726231614627896738106953527367219883909286753908874484502006505350065351031188199605407936495742409854045529422667705847368600865189971969452708998320719461617026661982457018257132830555706645398661212962580895557867639609363940808129972439702045077778809715226511130073598370164974809390735769239209341281168788971524817664445731439229613994894831145904944622600004734341920267030685273754016779118537534466100712458330064936106216342400553660132723491226351273635812104759297768357628720516148627974228913405106435415001183360374806450786485409334080979101757589111473759865080029576975953651066032368006114425224095905023956901738667456754874403629041636206589710881573792410136966911142110393814492453676480219599420863233499685920781055784799933424675919056399797412272205763672603393609920612759200855806611401353117763170918715667867435758417783820168328590144620646320878699202101458412375103744877128135669684881412470277740156910643093788793043946373765759797753589453527472545775222161177059754609504993798610707692645848316377139228127688383346114668371881231429410738321091756252511822314482596942987746393216150348255595926275377273117800534042625763649996920350661669252210804362162685642195088469435745110624149324351591034187696319756966538098315365335111929295235651352864412743891164560976882323332664039435885158240788458972942363216208857497033389017346393766800748981310288864646749581995303866119376962023711293651250223267145185200729490863017688387822791284064408831672639882648222800929734724576722606513049140760964507834930779231108031011397906025969265331697574743812995310803529044837895878574778220844287246377705452052002995883912278564283696940182980974303678065438261293347249777301312754692938383413387754449293855116340760434054750505641857277894802159031070725627071705220666505854059774294361639515500789027951009747716053538572885133205631976773011628011853190878219782711838357571837510286046097804257985571969566648223520369457299554464854486799266880628975599474045271506435826350696334719310282559941987123110129957368052698461076969354173740362885831435419239063465502222031744627740344544775363001969421393923267971299642906946013522539647810514169077044623622951135198439595671120826449729989653940317126593675711342306590549311435182246875418498472185998674557033278398398004656343678481986772483259685675778065443080609014322689864831793564060045392071367300489492222818202564499145591887283962521176650940158564993983651058558827699846653257688776121441162951696909367620920008604564719733408123229685626981850567510042482805276879791722665109067434763011948767096741177663252724716678411523664390606616870283835743197797621479930410073257302016086318822323844432169055962688205636633581532453034962234925514116472150665043756358527653792419303926532959387750131692480704693119561079358224302517143043500855575420587383915710786063485928800941653560254920634956985833517524332932661282292206181873047760058930781625554832961351442081455262112149944999616624122414913687999687004888026771937226206683112921762813456718587831271858903912144946706146900224725803700330329771540965684343820081189043061383745500327301447142948792360429359071955542072202524233026960284438862432376535911900405711222106824862428382710937904369063939528334159891199052222628696322847571192951789366854367002410753379922445552356526717081755056008096738611326174763842839338758184679305720862621022307799451327335210554754392315569496749958037431359297786862458550614049986280375503365738542200915112729587549415069933560272380520272398790428217162441171016614650075925440361298637054836348340433478593715336112514509988549393652334277402832322947615372560424495548329548166347287687749048680997821712420464581758320022186002605795206573820149388114624523871299749478004819223447288914471883516940360190360199996577401410406990430575352031510776080187669229662432075998196894343154143077888301412842371153283682617328922452655557391424636816067541544210987830624731105093782162739249614784994919992564623449921126631293031797551683603151983295943974672192543239615203498688639462881085677476727163950005915292971022026997469730162076046710824707764633810915787033770887660681440150288263693678312486080010358895229721576436459995321835329924330325658830418790223330088010285380043499093500878398388385618869196123232268533379299161249270179058705579389167616274721942881233374753091385857982171785321857627221311163407520495122197114544405653395401780889535296618564466081248181059132092478873099938536127509763053488236602683160304116558187211196696824116107736958384438206460757503348419161057756393454526127101503062321765471379255983913889662095599128057954426718433821219269567906147842097859583586043174266816177466717178801334542725027140898377500312965268659387713821188139901411857053375305288187131049549590567636739814918921878337622970866464945807183029200157080372601532233241071085510842273729299586149136990002983073370100277559861589777833105824770571671494415251008505701856163552005724495993056387363437042038903145701812978860391728052197982161644521096516872243271234417003334345974864796013173698876447487285665251675280491572234418941128916151243943206573484657935153698514004416002455313957777967765166392463107388411942437243478090180090526602067641872598673913352945452165800645555772242595374540111891577182933688029255468733263428681884062587170788748082627380621449351723759546898528639228143563343090319305832126473765095143641395570924130129657083432825178303705992015042319715614622079794864742046921198011192106820176278672454002693887919408115971577437416496662667496808315645003150767653146743175757639518487056471240044942732224676174940711931903024156189209846945313397237977645153029104261379347775056207861169471594750967532373160390329750012422579478968033490472413265679426175424236621650935452166125580727122986665643992608119222895287526348181811080889625781392418068561186827449040347831206884358839768669385201290892334669933892013026653774663293949346974381688552439286758271867527636545339352665221459861076690096198688022266191756896722931955517314504089233085050309133920005233550298440984693038750437437048794183124149504249595570423720725088328470147700101165984413660589843276966043257661511871774356447899215372151369267927427596793534397117254437392104950483142903140742060598807575799733226213443102390181253506403190676680923058220736507957569022946958806399872793976128482211870786104692104429688122567521842535656503749301708564938767033886584024238425040012842711481561989401356254447329552014429415525968204954488078706407326841445360109180762522939353385126858096452259628582943674488371531836985604312463694057303834151274763418797484813447578402887491798041499934512306403524869414441862966663500835382720528870184635403735658263463692283040238140885599896130378214979655510480959588912166408460210624736488611917976731512003284147661824907524419833051361560985835641085657423805690416047252480684603402146107818317021748511312696026300171163072298104735101619292785018676691124360777023357490604356723802325673075162173875518876747781739093414260327030458563408340453413791134574035873626409787142677543801755098664251497196992021725536172187934132994258880905664211453202369953544641637210114705635136541666203018793749410286008845627538756906138017752905064985830798070481090428161417446621419708039463965193675705810284598787033865922481043302589538496294805132002926651340484969784329178735034974628642951278856695017052311660438201906785068239194902678807511298494859002297843597307678558066181861952736714780684604539886686168482806628526514264321345759514444320592894984512291552355085832837604898524290961155662993455832432746002873441731988229595551506082618454530275797259631204435275738209598000487519146737487449088300003725098785731344171117690675465837481157621225653129409884841105258074018309614356835358566830777409089719859833805939901302159331411013680483769305445859552200716334398670629248359822797055781967578951459584060502847789689744787818414443217693102467250778837631469138177132146012983466712475002216511909996972590724028147435745995405946149251453018355291774334701980466451605202262091578811179142598047590675767791737387247725802297852609978031584462752677454454364545186932336006918836338470896764812208450852893535668178307306305565316533617146507287178316695407459945437835958559744478479491827388425367598320102494690957822567386526742841144013973805731743377603809638190011211802888923997117062903333463980704085610416814428353343819052656206395473343098064869082588857524262918018358749796179581368595661706523729979578742834770523695715269726848658204827898474813967947090795478049258263628878799137193148737549716349722247127522410343116981217281076174960944027002555554899008265413102360297827945573301899331006523237587246019295857928121910549801323409748297813893857438118527970700257707631192537694187353038332077310935945763900403294322436749002141220405257507733225145889616676377725035808357021353391097853363735611108228176676123875502420155048778784072810029816717910054284373614181874665414651423918108644398167134169252003360133810969100521574169327449974329429775649065771364727575605450106732620573461963030713758372185114319056285889487183434120391515373720574959538112258111215819280917572953637713193914026342328904891926865185085912547995493902789131057499455957764910060354548536406254966766531652881022585174021224344271964606108819587459874250170943272579058996688695811527782181661892536105590058773391957759230167029937989948660096428535255330609019504038592204172031301474983192484728425975428456331710975045305735876469572570570116673534967088318639024012221530645316713285107943073424500835798550183762394746978833314787692288626501466022963712776384587194172109149140381362308952444106023530250697140656097792429048088009618630017038395076784576729404571550219346482313466641679196745127713952677921501123393990091811912643439830357470904106338291017977329685762165052209240874739021515477261531157432910667944690907584563586076379188284088232927152073018728263094837313228698896472415500846974261299529173909828859810848395469149070501738243032576839688900777997828703307278408987587210917397054338220166869606781189962212258129705272554120427256854940813156502358423091088869934208452650807310083862857123110373592867624469752158570985588747796451583668841924296593428644339517217748065416162584394290033717089970518997809842941318660304263632032003186181207985675355240383609735759931058987082370268160150931708567830239125692746553196377877099223076920005854433035193659644743393859302260731203805607306768321741243767207536956059687602958887212654658224443519866678889261111872517016466783822873424723749983136444002994816011201946689888427964657849700935370053243913525864824168521610778729649913641898915144464706991332496495162984389654542739532273199691772704110657810553421130141791631348588506986476908918135565663940757700454414521603873200690727256669155640945258661660960549648774230863290213125105549009850438095443478772223561664970107775113758166443114112483258591528870410817704662227154410065138298297306727969890779139600133830192214567099736155690640651229240334523815895758168331543204202659508588341007340166112191145166955526332999067024325885295620418791307484519707978128910190321299236868665557166403281794882664323260940737796820859245527903900302742339128193006771491392460425136023838199741921696232881743454662858801546288252277736523928738290126220506877217947246957896828315625936759546476033978277719578839422683288266952882998435507001665093194096159508613163842323845804665769376977736205265700947512185997720266048282873374799176664658834278560956540185122464264667970430935996193308632725996378979009251214359339128583317707846960199455893537069413856588007913220520761674127786588541179131327956284046987036907885671614437946339341487667251731342985197929414354413773889928456384920420192698963173433986206251488219448889785585073927235638087148711160340170014678907512005671444723105408672110161272847599934503074583973154718178048170950430573440194308755488543546940688839821881880035225016879017311751420497222369186550929462120013189380388707264365786642972235503643750726573000013406287917875944082238582442362508329847015451671948124525582682335155185782366367051866730955100402548314239390320846513805572155181422577437912551325281756197034886852398442806643986938995554191834151806878083884363276817174024840591331988070640111521383294859604424813582562675559469339627077464373610893808483600508134605538831820196046815194895352900526926582981243419091585061927749582873288478491146384243813158945056499849827576771178756602979459505163134353487295290849966856947235944427088714062032615497790761408902048339307381746618780210335774784042443946889175007165972417812284856323398712626929310909866501359025588010174066506152249672063556682777674604810226819290341684558471770342039749921389963491942877236323708743581012015838464403640317363834181527020626809244664001480112978295373715523455166092721169486474173714062979595892516101880785726144474137003212661923154810081176770878395073104133525635433262766400558087547596668897495401998694852740440746857795837428671835881986231289440752162933949290486719636128610342403859047515531141367325475045956285079763190065589754346366048175648740832218734290449278477590617582858966605510784056347543529376331564027657130633121867864818154666701304658875776224872555193913019218334740043299838479031994076449917547295943244989494857385140075078983542334048633908079718006973237458883093199244123004311620967008599133553125314455936897708234376171873301121314541777951436763100886354064130013554390537519256570519635605029297563118990910303970466797285473179717987195044515701922174919239403904380986250992837436057887164799024835410846989196601378041459666736535938945865182134141870137735276063285358700882297519656703575540313620571301970564599017620720739080966818789165973632062406607651416509697591856853987878233885066879914206418940158784985476848467866032689057544172951551513165392593912017921350365283360101347765214386758989468084033922630433313208273384030620858486753226823080541778408443155818519515824776421751655033513117087036045727828825553259826072223851451584764326502754960509524667501919913733464404819894546775759259060222060799147348077338967379109071338391273102308950861617756178878775030341765168763477120035122131937814410247213187896587634403433019551151126296125921828642042473793586000461324869756629931262917522941976096430875639777887982886109495056102457500974031353625715888154124428708180655774414719090523630822015632652396117406556438008642945431297783122696652997164059045271592269362775091558826420638043039559604576495590074132850485495363691956723563578677523025860409145523952000117059949552071746330836273051072380797184682895050453744807342030593593043128067649766963212291903408317338364790770945840941805344054857074821707019372113561477906959987874610444185531314082965136689297436986591675383895745888777087432077904167300444529761146346806454641347490945727564349337659618015841730765123732354410493989652806538635121293319733719220192799146150687121442808332464727495436151533310498585646634487679770266784081213889930072558240515754607597343234024222084874333365515043682507534849440438384040778062155330849413472784259305595806842137998518100077422412914093819596002424935695063365653127981697386663360482664666061021173714961523628454948659867916673899335580886544353391155993777968204194650998391293881208439833200642494958424835092089339892141597650577524699818833080407420766821193303844381522744059104964186616013860175636322591476436180556040741656763336909460236215514147003685626843098067209407881607106153618583674944717675887166811297657801110614755017548846960365238347454451938000657490179990124446504470505266308758387304125130337979449948616990467805741185962916993734227458766037938938561373248392941588126874763311071012998874671939597600305768687991462459587746650041686507569842586588171578343721102304889047517173202306110039074327491428418973056926702630839527813552804843550098008997920503959934278249911507620446973635465705871778656545406126455904031523863994306980537290075485737539023013688563754898084158223172594198433875130223967400524157091748091348624574781248177922147030486759218321449225584296148916870417423851063126684890467054674443921180100141314498543438007320236341586944443616511387991637884450765795619364311164846994507213742960308308594540852836494044964207161898605069156096772891556220682298857476214290900994255473571336646707063977548098884023548147074913853683942212313044677924513467645747023532787791410938377743676424881255342007434391498378389566611752843783958001002148828939469636473886263074345776391099858071934086636777744090846924306203537790109618893324215595585051771532584359013451665726918437523946621758853436827426589407583887327902435043050908010389716080526597351818718812604231503023634775259994608738037004585767393541375872323869174662836202922431559017367708669537093330252657073093656823567000449673870655409941869577822363979880732142248820447130099606123021603072113393446612906412044455338174691483160563430191453282263603404226411179416979304547794294269133009913789378955400208174192351481660329048415092689634029405163652606317037085238551368156379182551406664684967283339887813388633689728707036047394652806383425630595488529371792635428563258361595317950839460291653990652692927477645498247401493110770216575649159860327713102878500796924695664355609923956513751495526015968383299000643166815352918971054216581470321247387173414609766337508787151140113107281629269359556303046438553103126184229783897826655718214948240062790652051324981754549797349707768865137275179604945695476452464944684841135071568410507674584410221406336600292329688641788622366678307896485175190161270102321558562293742501662087795601402078923596910749213186721845511433447391082544035172734498726101976888715864223008311096482837056832915882896801405305233767263053189524699364297639281400898594117840575493342319350042605212411649962864517928129086690088341554328162849312813907907472176268167213848551785406615661281017396527804258592935235688010309501694790995977455858516557248172770424001323801098419288588506148645454984968719024314050726723127399006075774443318489191466847890101965448697220807254501684458422217404844351924036088494316762524855893888239691543150636425209362373848780439242546231766125791783026611481779444700070460139146646755838028894060318607293782334028569448492838309954579481954646177362744177562210280575462545337239952536458579042993633074702151859770961128274644262204952996653399553889004125155439172273717418282131869148623113198654349476876752175946445845371349723542559287605666968822219324076167408523317360152644667905815415456355860557428685192576054251224622813793247332483835110686638985984934604631136582569662688474325755496077146927969770077706223814066732582652794848366939569650512144047564504685355157715081473460545373566371935096679360390431610512736808898904923675255219126934333795499517021768078640258133628277089729420487610174492051571122912354157055388449691503743209447195745172622362868791083619583469766943942362481910778330045416183101426398170065920692709604556203866138095689230063525717303409539952942479589772128408320382706914906882294312152686194319029901742419451445100777060058576067924158496698693770920560524544226694674568925218207204170382096424459833624436720660775320243691769336437882919524377115057682190151721405752997238333935604486427313810201820478569038749765724293700545513722382261656567607467188706129973846689833500177860543685133541762475664436714198970469080507276753037796198855260448617944103690009984053185341002357244472369380588418438677903785874175333410824590034247515398737474140569965367716371473097779865110885867758673030158028753737373488365488488867295377611096175074771840433514269849388076227632104382654480428302020674227994714746030604013162465807079272674458754230024633788887302057205222333081991262404678757616440294619058808955904572390184565769718367724906703653356342212115926822598190022877794093653047774416448665628179712298431689348699366288489742149567846764425142782359047134744169235432432425648302708348648023181259324482604167666217962877921293325752743503535669757678951779542617844315428662832551615226721730486384910074190885382065652583767225406522336800051520616402948873629269337933597227874047779731853026752279134962237379991273811629088546466813459570409391754227847215445191923159005020898333359397943085746669332177455748552191873318692053500522856985508903992428457466790813105279824481745361785478442598015701407600514450102209656208935975319694535173890839660376719140407839097162622450306439508140725303264279962442219586434415044080913683699605764979380469823665749027923401442550705063050839171869072896918599263185732932359612727683867082512042303228397374317781906276873115810294084785685166602062007242248345706700692671423328971201382367306536742867724566795319104334830294636606342200852224307346677570110949202628220747051965030909557526328847780028102652030326573809298764345826178404808912440066554296202043587341556332037514256037025972022565372603111035373754682710576094474596993503950585183068447446958422044685911806900103876572375354082364249249728972885622643362783921466606747022584601788829554581133869511759975158121534801425255534507088999753920876994638005590777690891898037484660574832131941272594974195811927887653723081919360046492324582150425757789586880147559558522610788033003927834397780324640728757595593597920271388886330116479475938172993736565855597928151223358412489871900545131066962617044387928852413623271896990733836290702028950942116232736243425975629440481348406556417286922572179496276748337280873650867739514573840783732963385520064470066076259751163508129706972009083924277972113789273703142551414592066887256794496676642208690338709057926000350001691690595461316757681416986203384778891850308624213411848853355933573329218366529640808595822661759615052951126329588766113977149452085463461800891554319167268799592592649519933462661327677017383878632053315873839553841561410384757372045133319960976845966952945544686480842255365644438841556331526780937716188913384578506977420999096505497652781147009664866738966153488115955220064154600113372521385003041345032568181254274060808975347064858351457487322688870183151275264864300431469624454885795335248385770797396309697828690571747868927526097202868455829206035462333178936649062173745940244676654553813258631373361080592606786703760537917265043032772230929388107568589514698265487527715468456527027672445434018784731381406100158326542823276529842348188935248234351755267198714326664251198878267878896654340267006766422765275947522199596572634306749144866810733631261974436633595256948091767256439681010376754645098935741858470551173395131781251028031149464515874345217253081471102936428919451697025448485742800122089440524616849447832432921837770330134670850458997848736637974085553753768571591481121909297408741205443912592232090169068133884184739665882616703557476187300547447728298249119451061755797254414534871622855741761087015829229989510209430270294376517416200209753325565111432914562150263860341611100930882021126644339778765232189469184032376573836365641453309096589656254854577570589382824151957953016132136477344717368234582736965557562855342561098105013806811489117990767190923339987717951194012936896979434005303814223272873823970918961492328900695844659664192283884346007020629101334289886345190946878012771214357474057815308871631773600670903494943855454275811053749081951933360963153785585832677178123682077569204782695231864309079593943791890830330942729970831727049021184213596767125930322205004225814242103902190205943630254276396563438960093844632593230352009777637863581707638944815954713962363294438603628516836300678582075740596960144288604025084309120610820191496898221649173358935048423840893176103146654898963050161139245286627260031797611040369952026055400866797904862245929480624844722804457994338125112830462678960690806999574038263598735638835484386453904385794123423709392954918795061661578330814873430924392860139029890101393229132267334585740090387466221316873518052823005469478786595935043724079692018762645502597673454856074867159885447228530034115582932583435239801333636375716424644907559475096232172576074226222358633028743622232578446448524298395450044376543365528432801200375115974364375939176471154766428580204385557077672212815549754144431867800102168260110485970569529803185433299734131549507243584073787275527098424942001472466487248996808505278916108610123486580087930751994525864760362086207126724912316711555720411992220858700258773263102833796857209535822255525231726652081164247707708353691559903254224090346387685341673764107043761448263284045745860909545664995690213138745301206778238311901953751619014153505286684768917476111536147893274952294637977905876080299433400455244030417689688519541475479897119325700299514853396256590535096540820286713563936502795758328367554652417606431510625988732969993462961254577095530788932268621142520913559821158278367126454283704933039678983989456415079318490189455815212943850951154472695043797260378169211626436329739270904196124594268296446939846162444750876339228693137014786998413120959740932012172833955112331481023682300381353597049403080797330592656460953128098865297006868709539565693822669759745752070341033568044521807244519222130395706638601684417177546294214198297031239683479264071696336767728031983569326505316102867365520190913741431583812653228383313415636881090865521161441514257854816379480877290082937852618549628668926601865384953561216262092141086395090170194051342262099514988083356346719403251434103561522007318750429134969997727756864331575589912238202863606676677134513237449963020602266342547922187268908407856500605284977129498614318193378405655852908947690782306539213845404836390358428747087835204838086251581886366449239674820919123928847001127703435633226493322412825090667883217753947679967294668713128662745221580823466463373932544631642409278293057631690971677972301545655952426881341178395749599647862916534303659648390733918485777369566821671933670678678782756393199686516377488220745135756520485604446278496501564057543981314067346535537727088504727938880370772523737032754019443257784078381585234647744229647867583085450873763920463775141183541576215057789053027916254337529715561739327664752480314367614000218855216391430221967458368931480509332638880619539352585721789237320462319877452499405894268127163851467947653585268369436789130303415333005946284770358735736493329085550602861146375690122731516847844687189903332551597010573779592219082582632195727851935940683360533750182116948462136043830310977332052360721763181373915932759857267061444898412048278963690816380805631572140666142375255014465718114666326746452674937469897519452158180038067627129721402909580806274391798486381481363422963134468350602857002915540346449489467462951372877539624997188184631749791837313519966297550068187917281659247070485468790362022528994562546609301571327389568788164799046416196647953066845057658253356963302777338471293970520719513040001902518875357111081121228995102273234397084311406757149949461163769483141360172510302132314905207691573746486125698918819505835797878812828974472274050488643191440770734861272587430302674740872283640594649685765959337755336233671665507063707219042957590910467684959751174264945138542486129302550958985827951530925522081026158427099376199694140210501386041498086795083836416376046056505147070154305711148591128792093711309714332782120090468468336521405860005426270341644566909395767953680213502530748709832122757250097203569272383549272072180018557316167321159662574712756000042240039978074050729087342642201456892603809133613341205449817458488406746899229948271076459168909116370523649374209582317087235778746796933145084889433475791776962945290802911877031520931441612707355415644166284293031261032512283927561543759398555938784428875600305774095792117030682450624717386391657760298360860733736428997799850599352313676323885306212530386383846663750161477329383010013018723644135667168016111630941274807059228283879346905905904380668168756138205601604752188053180901426593000221889544575399732673296896723962966409548139840522753891706540730266357453054319322543086389616513483074386017267061272526030523401691643918088784781256746724326742184740013427737429455224593462069513714280029866949521819869001703753109380196642297322325220151911408215626512724016762558698528802237234577164005265015967682277531841608244302161324590987973177637108453584990287488948207626391811374378068303594048336360396117878209191126876881415550275971744172404447584224179218683979360934315123016462994665903214539519665276272670179270856389452093739542946436009535770722000975808800080305694820322458517436210972205075267008675617760046048700743408523577547661862995724091235764151940041573171323867938645798124612228763480356490502916324480288815065745571910936171022931867496735202516190722054209909716646316337049469919974004547052082199451054565381005539279316803375473576637577810916164029067525431848657249860849051808502680973096708688526867759092757459463279030233333263449870149168042717155551451921774834962439225326776640088643471599215239375783369888012121992655812349378881372541457733813447084216537679945238672645085392818704573535147118909916149282402896470246834362967144829095465676580862035153055305643858862085131603203075971930862504019668157303828088738864719050997729869399269309128180668492473083853468426705624531451421108289107404721921728180036095815750120076575406955559378635184991593551135394781054702969645812465404123428792607971248196005904276888096365410444470314463592093962493607967051069007843914690356725406682570909426827861929971103557986397023311925878288245625108743410904488362017329423756377620831513949022158541140649487773081060496078647570658738041357460260552735465032749031602127016399767667213320278572308075288452941745783641640248097709961352840302479762151904058023870390403329477405955619505671150132629074977013298419141562100535903400079082440111516170391602699409854779317769844121755145238372115910473635970021069025537123860357165856696218273824068821070410818169248401386824554127541488106740137458222336372934248261344138396809033849122206992977035121457509827742794195634909295331539995523684185923679383186292642640338242492559922599369290511136901274703327156963277084961894522312899392776365076009929083289339856631873409087478856870751932186944423374788546711800856231222730276048826474226337994131602420705660811866430865713034640729815191249014030237599442881889811828650891122506748263841727417861560806634519178650370070994215198193655364078018063341054543758112349404044422634540920462261940415787222072176378898495858093714216130649207105368270351971630149065877275459481051894308046697181215922562214272990586050317493378482291145921098463611656314736125947554491868328212503390961927574053506296944611182991165364107666341138718102556038373974294703522193407235446051656948583575763647858748262727654056608437986260287994559637851256583618921144624244826259417196657783743144697204131318952245031859352675707721680468376080822691889969829250354553291267781328998856365025539808678870387929884367370760199604799012701026797813312600267509508525854426310607589913132312836947058165435793377897850459489596702302633977111242738675161959615499622795296321138735265450569206336778801255881801645850592408957963575738792282577180480419244434867299735805364856350694237629847515756359836052965589765650832801595443625815354973268490898789381390605042501480159435587368301486971464900087705543205006038165453396504399338721320368290670137562038819957985029177616517166422340848599760120726772324705711748694998840544431625369508248298104612065772340459220213196308480351010609684252080033494268842741462447707261313597954292566545978014689455307764341927294394934509037578504598210717719683702085055026465688494191536547497918066754338671286870586985444867827309784154324467318508763454043999049873798024365176388884915013765445230703085119026868062220494682901437792461800403086922370233354099315583121065733169428799411233676005739472180284823559919568704343110441344339960685473164501137007666960922018510943601616054782042029096766643756210049685371935875121484297180232433528936939128831370717893801740746536971680230261200876312406706441761652568222262154833919002978027834510850646640255619432289090697645366676814307483560472524751871827794076466903305936171785494937597125084402944274740976427088102582525239787990413568825278280603574484941186113061683293859365019620808259930527803469621744240412212380077430790798119223104596012134933787326010054266327050550185807502357343811269981754369203777069494881663067051684253060634237405669094721931454449849952134510555808561280759120110053748392218527127032712738576589488164660294358490030904073570359093358558853680058112503919699854904161208203550872448671316576278784583096465690959725004365970716682138785248818411092323534660164612683366727823122798867437442895342153880003873128037303056653151358620669574081027650517979311586942725852939535283513594163772137825790793295856715395726622767443263122497786433724066197174014069260509551830995999162829691067094383969933264204036096121363501166436701263130711217365737202803903574123065090398112147020543305430590620334862100665163543210439033996202242917592371412519644445015736500088707444006682067914943674289762013711868172763982813502601026780836979757155665147217960619836995389098000593145357411716871449733869894917044575872306152848497869314381906753444984489280483879159689926057292751085990296896913413541621711545788437718606407797507364451202012875115838690869036887905954222974701431716839952258036950005336634624948187878334551500436100474578592469394324231274749655569428312079218593799780474150476461782168285761103348985160817586813369097028287382822442721133322704343275882097361839401986128975287762208881045440884903074633846165086871041287448327355195078537564940138654349386046853101592980404948788389181663896121049479060860764661764871952509055735261090612658457097470242279212497080657900075363278464545494445985645533057698345336130996778091302744166682197169030049317292103229317590356137369696998574885345292705822214084645625599520254708856081501284957152722040716243552855698683207710834940263359730087651997595230710113587401064653172723868210220227424076128398839703599856835141463200842962364626112446482196989729902635252264613309169443528169714005364118268123664561937615252262374645737922427068871742318888102426172453793654106570597413746383695580655380561232361542024196844421629949289813988974012361087045147189606837623951589368050960869156198047844819179891388380609256478354529118503871178072057576501608887857323425647561445961372422592619772555032284465316094577526251959188049480253276517687932612510559353901355538008147352064660449028479261363546073027020214071908107774935157438947749325162940435430351584323272182818368272378160305281532591169473764956593676434217715092813034521440950294357791442675270208900202855033210817109332648703568879337219211776911211526891569969774733806382647129261315858464593248765100336822791079142524819774435985525942981932282571572800568901719607933136473200497397963395968402833545074938923691884438422304977918769008894821967915116404002846218857739878366842825263797578075467418779777831517781231235184235693577121685458302724221890150829430964689429107317563602194381121716325717391312890293181142539107226762158363189537654004478522299106792856055505535728863071962634161396365069697357956723524313899885648684718529693961190371373446321538688247595761197292113533622904497058486301522987867810337669908925611812960757903961042516714620972533033682487877190437130249326162933374623433518113437620776885398161414629049343291701260471689577369887101994955000964780194371876991516403998727000461249845059873576577966475991256418327292362023405999806487377399414080091966636372925810495371518652365587696890828234900751879933961584102632968030543372243091078419178036277816613281577942227176524110712593843236939607048272400685377434713202491840445841097367824907919624889768388679030932302341348142243247801918412347453873510514076788136678002209213521092562157066729188132314677675408520305826480291418564753563512668117530952477876811005202763954493601884448370593379618473972120340702919525858227193939953644698349215885414840522259724206512315543129671823575432026804388639115230821577958736914463561549227035664084039039528033992356002529778582815174889600231066557812756604267048800921552647783843285520458557980039755063876208120159757907060197411932487234141630015295283515038842666749711300006802961760212942786574512935236482047466962011213607977767555331265429623657777864012954119674792731768876197350486942267800562757032367742932894593359333113116882597259152518050682839873820850804820160061807980609088363441928007387346455154874473999245890031625409531440179476761850102642376642210737569585292128648918759875210522905952199212913397383072777637394439807931467708248056205971635634482136165522588319177104537223591633599481393024835245671252369075227944796640561809956014979189939602687190110391802300129343800449941051102765889810308435600517032658175631262399867476293145688602511824037784639007720895554404170702267270897044631075790917696684540824243631978733088782500855995139863221009094472393521635247146594648176615618367408565689562943583697639841612488071105758225017084834782020298185140004203812657294949862761361147865283034440089050855342404781904624312542102375222414801998186615828114930359247922672231086824953711336798382012825194476734503795391318055498629100691950122328129674298979303820755735745636664921001892239556368321653908355894952509841975369114574379905751664470691217951801004465169116898751710894908766675664413061424174048780700167136938870093981938063969891602307379765997157595817365255873079947840959346878379690414678402842931730199932864334770185630326780936617840420312479749946364018268549316631821857564699991278180065448922295198144975654539939515875706772161529512755031768315464196777941072401081798999217391822226692606126468594950057060435306350376791657237075008002907684673127250255479287232766257085099901575296784095517617229746629181485334291137935277039849501731367394908126663258458010328494050224034821918335046820767454096635010478317379550878822728709372825741943843868284380881477642922086028473988192397657498641580449661331041197872103289776425574399769089142277337967726712216565965274476240398649657220706078135876536418019306568935064092553134880121451059913156551525832287261171211650367612839375063768502485114708473836039357662093725289853244301178075367132036535013158150371114835236739822192159930354128423267880019244999165608387210929839736595347181694573651957331717113040599497983159246964627745372532505022221323005404956647743941118127344518409388333877238952212110869243914062877961189780063701472503349251151811034072737789260839551398476527697757467535299962236899149276464692368626601672540779765589800609715631139645527913547520583550179233192225870331313740245986754307168997012015488204578908062908554184125571448084727682731349006327869743593844083765885815506435418756140382257119960849475172725199131450263730902902845423639618013601595309984682617924719971462721734923040318074220383164206230309227855982929212094152006470627355427154633136972368533074236301915495440493014162527600500078680964276618636366473059858750501253451039559373545832478832347525892495749800265525567913847508543016165408462947250950195280680044811554259410489664775006687886361057310197370944386287562855353151976924522370461944655904516943699887625372104655116671586759288666485026846307030682526697503525561834962005964812384612931934329360920874776089276189466544076397853931821620897809076743011150592654000382673954444493752098122542417924488916894224336045928213131123865774994382814067094658904455996342190281660784368797224357222543973966920934308895469214274932684535750390447908966222003616762540027177834318227561940334946320630082552859711880786189497654850655675369046485519288714732191165914152230134191672649093631432384652611559046435420695995028652566613555916414359457284431580440598147654551146308639150227347885567965277080188073295322761862115430733945398467014449816992109377181407423391726352603558796037319828840573313494012720447650869710303269860508492645799360192687043820520010985054414747489549807355298302137786495354408080602279858277624772446983082321111952396141600659716505692152915278474112619858396042134209008343618055905850442631458288255707626558939932345844934110629224377894464311207246644776591279207448752975800360372161577314717761800060338239349600516272132160778265916937874394469112721204538715707044235161953752390447291024022550237322670079492484100538763504170855420592227719021571511786920680120257949780236991487632539932130455552116525386838340372557595645373163891962534694655932605921816806231173485333651753610414772059489506130323105961074390403528986924909330854682789616002880639696743436121187529625055179594676388061235716721291358202336440753305498917529278482107514749968822368095247103381285171644427545936638623918496227591837052204415903481356035308667679976276395024507381833487296472058697419047891719165300705901592782734245900413962466479677580648999464329330681333067443985817190191667665121841420365900605291507380656920265160872737933345386357008062798863809824391494816892131733695782903546059529551301676786443869934616315962270429070537261901347401103365437734665344318959313444702203014964380342690896883873626921303620929384087591286945634763767399386972071333823704386082915097463397299747357242550694500244532654766236498605249182150317551229973151720409627007708642650249025161400734174673892583379278757302514210306511306559294752495347201550103898675327041367115328254607545826443636311167393339047615592984075003474303665915978562798525189851281630374278239765202482314107973496155196501871913436951171029117703829278669095593222401381675660800779416780956258872423777280575059801630823206002289619444300075440561228176572932850191916828004481672847684298647395162253638742709595723991934213488842348515612353216149102593702590634574705471796958113376870787439130063203816438744096109484094432363666363357101136361304299744093724045665549440197172825283611978721770599015315145310356268277476179213183631030870032756075129368902827201747361924992299309749575483826947521034394671803476351115234915869127033915126938988099059453383976120241264858603023317841692591651814706392140647437811549419241223526634792856643490978487670752151445197301312828194111676001712982158501722085365969124590525312635405145671395630585520901281339255013682908521488677218636219864236110942388644931026134526710038763823461551875132469804553770458666635771992944182491354146480224399735311090273013237715106851136904934037919486743737914374767453020998972777446735188224438810576996445666154804790339045722198969237088259591060973780629423277626908616186571113291397156249966536231114948923891593951259354144779484446773474642650752636006090099230537798664306011732820509864344376079435297760866726009707114620748273246620264237708080439087223461014046890404427431943672991411834666962753862363256150077663462360988156254388255946488528196069408582368487405720940177497156152047671307107933037399507006608088060245497654816422068773079613191809078822772527705919639186065287665267990635633071571331257081523335489558646391109540782584361663528103576183669128649138584227669998185988518049382025144857269676090384325597875150189312882088968642993200324665555710020279810704551784315327275734774243115136417633423002518114899318552867173032082477224882070616786426622177976455204827789663650406508312522686384005521607928449066659936226677666673605293423167679385178063266869275270593306957726453541621818807410793756798606785968487702692281045385445111422552990509912749711131248401000557234042644386415960447294342191006103803870832427940491295244915044668210687669966611411119257897008073089720269044813396446062972664293777190555487687070677961582033935598780564410931486749637864996768963597453382716160522172822432445450630568580426687474711794308454697847720508927195178343035335753253474495078288728558607332052384450463899719234065314994518643051053748974205050061465036055012026920476541922803300555833022301345832624795300821395479127154515334265672746188043845200016134777498247795407136783432744145826374685123054356306180972876264332746404612598580126974222173317387350945002165140868006817037271106683453968538949441278223821808803450193858784527859296930362418275816416128533192574914750668267459360586228715574197175647094140632487207180741634907254804920989132283856794836721083700581793184059581112771909720742948082457256344327595785406046091109116737743682203541192061561275129078271625178034943283507056097428003791859372513808560620667085764027743472585516757975388917220601967642871452157615463301234256828329159189606851172636591933811368633088071458226618195757624770113436282912354676214094591627037431512762959324285118165978761504866740245880775538999147033757085443103443902096093193121508512079057559007967599557307528373389410173193446636209663091187720742371234699661627489572416161755138878749450638098721700825075426817250016768833135107376642503899593933971958306164106630656300520277096696300145080920668650115154591587506062211669034652060080090976852898278589201781077172291788886535912190309458026011851811754869943705653974789366711636344892006669692848028086281922611412217332057894218691650941619975360024404958877095428781366750283646281390805618151661667930660523238887282432227442186466492354309826009943309116391997739625694648177579121157149374742791410989894811143913090801241892149802380553058199684668903869030646013679901053865966498771269648607426776931006543303547791100343757970818237793976700206811833310856163543641305914453986328843990775086740977277848665538324214241139670932964775315618863184761393674362555554145729174418571852393565637630094035546088661980153932804749012642341080371748639224307789213008761818827567504016004373856575639156607406434960413400295515993396968852425657212256062568511219098928472838163946755185172012365751044591782550418410305585872353430621984475356714273890095114793460319258811489137961711261560627885831681387546316952285498997701595668039856085928128974413009753608482893985365421402447174931237600414053733418332131106552758555499329475519885557804291295367934753236268641882709676135695262101059752566086099949971023997391979660725551641838591243357905502259127342073411226175083790667222774183470259320342314132662434407560592314709783559579604929973789027214860668482117508729303311021979169820263987533097110661445314151977081758066688190266124822945582400740353600047817717395318932597517477537890057198605817401693932353517672950454223409070408121227921081035365058043138030953983101848699353522664491609335262249635522834828904721945612834704257602318195752719081082445076794094503942990231953384511409246399378399332922291132023667324082674041126112892358942222927010974287936617674746881416257883992525652041996298964560095769027351198329438069768752234948484678889263654213236736902110246754626916591177649725067221407985021467886545109892242802522927755888138282810442602389775888204486322875632478848423928371841189618893931918955034022010262985487244568277331415824551576106674434037182273556761704621431843441475742345003972615599641145783550622873348636116146423503409499622920701784340702425613456848611102125599113583285906395106668019802626521280894102236179854273088115380432711634855523722679198282257994305552397707407171055391533134688384666178910774579268195703188775826537964432100938509676560503012050916157659542689784476870858942840948337838955066464495874047285908295094381178182113512252834217236896815242269594850154788653227742818504491616531785017492316597411014047230848879167462957866880161582842920339146503273355369001869590884233129680490693703903499394559738910068681855531972498826157566887439520531938584830831451880132668923410714552035956656437553368507300975067239032929510095472932353630193520932651956919189883461713410307349439961981998741162780917762407875202038161258750823283565504737055859250837863152805103973250536333562545502720669312396530625432425419315727526173598543221714873785094480827622628268664476825955437912884961636099045604641337401674644983230246343417138924540259317453730632568692298778708875386054734817872654244738310803009698858783341221760079979863479862880637418303299631198236543741050309958051984692515501783366163483962167693904809337593952175232345890785873599484633833406395638152442355122156256114215499688422547409539519243418526068292820432708348625554426230441778105616047734823945774850185534104706587336843170870265643256672778729318522213076728719900916425578854857197874795845873270444972995840341387136364321945025981504358576729711008539841582222223528625272951861777538092123078732738901885340406242473721438776407759059700193080080794913414550785405324902718499642423930894629355196072644480817340214643526663073757646825922574033919109376818324979313134634740540847949300513623383600007327757695028913721821264040633080373111874804817415849703411056177107941488413430164148161999776308695623472019848969832007255066959220985477025711726574279044037547435181713550233701924129854274128076075101376158646137848907079174703768511343505765524002376060564651925158111761312053944563696604388469439065043590775746980184197148965343950038296149474542977370421575357653077300996616375192322636993331466285209427108771382374909260568124419893604049724333716266981453549849430572210100908064103412460417478178709069567239358537643088143824395613798699994535146228595744113174496247761962212590997787858208855274243835413396126050080746428459285198347857849973522718996521097343398448523087687385563371286424525287102406474181568738005483176705465380367625892465390580935450183408652434148154898663469818189591019555986486204681272970450567653593923778234462675887778159817787476645906033661901974087684365782464353337812686874184259664714727144249804268793234090428024157480663140748582323569695205945372685800993381836407343849474484107738211306327502229412269187704441551916830600648624684897743560815822658775017827644184436824103180292704410054397967518650312859677737761900308793338087978372754522709885668682540985960860665309939997839057744175815646275287434040729579671672764373773631743282741119052083840623096474727844359027155209079684310070860455974997976394187553905932121348121734433359031629640672135516264191630333658516638663618105965458064431844911898953467747716049959690318331984789900074228737476476637200219190766651777050007195001056440290844473892816182673019492804191013233524389278563863013264430273976683246156229193085424369463316417885780151303103535839670587912883777602315016137477828603211435685794587075812805258177089928796494449857942982974241453588361740396534182678382607310610276566744955198933499594247272166729917351704614579391207208980234999841454926393635664065348066583965315267841414877215433768261255864589969217719110055534785876114212451198243432934004158709439521675583763167740841106012873472112373044900333266421010436117059342384801581139600761595018288572112258260876074941745649444179752917850305017395857334371922967581599033559579302804136078073988008080926818672892925199684032102120417095342583418607508861756285787092140792129246022539057573779463147125870274048532156098161657819061193375171262711022787400178023572519767568903804958430766217430675922216617123807694738998241210444411922919885544862467370816904322154343792670008731424529710832625921088829448692646318585960181074855932771333670795186069526643613362216945707746977611718333744910617206931296633902452531406490992187599230790052054837329588002878629265711148641160690497601735934177749798323101682185981569079572102164605626617422891386257553487769665972556605246341164650421007779878457940685482178349357648338509807181151560508288779517832219865030281527224212048078654269737166464546377982072512327801652046852691697866159721984709117969867999613168656266175427078733885963026803271804080744280950499665705270180293081412870540493467612218935171476432577538557426700221374327846622626717323038078064071034173302941820678272085105859034566087067129066295037804290728769683997938177723226791073934122190941923859676582067793813273821333123789530214955076619930274011096105643488057020770830735161430167229612603646175645671862498604862441559216758659333070302756838843815969211162380939854946257336715120100774119127395961835858869356309228204250965414733680670464162241274702825044411561379869843516969131243097228595299672635520762451543800381691935119594489350723149951696047603270171975767793938802237398775403701218961047349495334947128079651285486980717934458063687484110256106428197969009535768835559803555309560587636088236694206520881599374833398937992653723724943247600562915500191557346257045571015302447525443319854035128264823167199674766534554584584507967132629374391642672331525056757611211285275061104456117527477861248332533906198822109396236948958822174048578945206629153664680922541795185234171788908234994973720509677506170947369216716441993163017386717671613651804014907074438636709689090685946691555566465077554026957009913326735653644676853951144767964565996754749072544278425792320287424835870297587604855065670226301943380035327591611788649412479551101663399676260960124726831909818719376526075914016293127310924669039667278877611907058800889741415131050716396122902191678316317432324054256444734384732324907132406391021088890260357394112754825059581170963537604138019281046453057687391599173188049556866334336085428250976599551034507890162537516863475178572984089381238437475416630801851423901845950525854110203617877051674709470531921260985576894489907480124675059625539651956265908976313456269672169397571468294686076015422337119527041150924464765280306775134661504402769409773735749529518596776782310159989892297130246749585993352300110054053040038184003730238201750077533107715218741678686633671024890666279175914216828192682901541756858131397740300041216827168433783316115898258730538353076796379612170860854884681690127380046856362767027929913940248804627674843067298621963982085138068279371873328344167944049332768228525060618533907198432604006250757012869411293541509342272799297191443493324416616472221679365313095709588616851272225938647268244135158615360850009161725482237571885068453624123891308990517069023153107908683552120846044871916215793622428324655566669721926806314711258943416459733523190927171911130647270814494294005823233053328753480227030849664536139368556346434685757566563214336840680214517947853915075782901581810648682846811683574001509793562385003258144548308609209599608243963244812392243378904821577473125384739285141026232784721805937523802737556264351174363139573738188873112448254178320137812144829769045288670839314701742054414497729054086166813374580623423831009141058939758602910255910202769366647518729082600817799308113636237013872980183070444696132227765872395141962401575128981473511693854494905257834990005906679763076884590024941543991586424497404064525710205233625562170118673287283469551198941136588060035348586509225643719092929717372001561476587342100359752336836313254245845707579494339595039397800858112257135579485052990278503032446167514060460826221498681976179474554130146222502299834620626574876636288121107403474441194232826839001756880378587298508322515311842806815011590086580978899712661800452313719782957313050094219120210641892342191852762934524112372943285078633011865875920256033340835587117525150997322797504301786306247118914476020247255840391510086652308274848486251425486503680884758859868635662913584951654542520512625329739394867244491704998640465757701521220242841725181367371918429220636701669652993363481861677576540659391362382317680618505920946112433457994125390684699104244783101682828111565156832977782189273526882652627223634392007727213898682101659359897242498016721092962620439922572368559518027343655923499118970219878119026531989158005448806825597119271293557247657924889908656388768609642337683732752528831414070577108047291105476783687875479640764216200823385370380492542936612825213888071910068135372186013792904669519318100904853337890665263816178614508924040113973830131779484809278089515248846497087799229442414747664980024852682874401714063277222281494288324427718245389556726550617530705555135445133450965829520235293370568875080901151832747852359644006704833228776817810101157654424694659142202998918388005322854249227856586454754185740263744763530377300986646108316323692731890946876979968922717498500684097313509621620816938874674520271570959060475536887951818198827344463141532824541183004807603252612727816810919005847673882162899729689417172407030826716545332116110948524306425586264284902138785368782597046242187185379255680580847400577715996259525654804486521245467557421299044176635734802319476138195851282673754921872137574710590062522723016508795469222679556184047704617549203247317924263340890514908673744824134978577426437629574599813387889830295224859468164294613694230667463752356632371608076279161342948046489548340125924214799561437021213666735232270024073925578880961938197888850259004919167076060521601036650250223620628701449731417787804447513204543456539701465005575609662920958845463159788529493501658736977396460759061143195583573381073271544701750545290378262340830465409540900558455384593566589795556410975621900732297734584196208193099639840788240131633010160904916184058746217586799272927052671703436364092802753291539621309282461271730756256521890581091330872716255902753134499925459584809741817859756182715329701171816466152324836363853369950808767983604162940689257904957215269009162036526505682253502495043552100020926839618777576942565111636292899456823960518187094165474954340166192057993855540436934723808471413805496697993205013755961038723374083436105379312105255370760516077963677737398035034177092120206049663917145960545835771573321092216815963798698772604033670938142271425330138655226949817764057463619927614135918946723450178185302968404857388543659281650906374595650836673264867376577636477098800423261106444082881413185136590649074068764587358003825881106033453155466019415399202527577916728366795717068274464243798716294479782048895499617941866328892988297664732366059233688838966195897981255827374434271980010799772426710242446656011424083954459795020634970402686623069635956761693615266199401583795077998583278950617701996800011861600402531636982773428178480130096918232343181108314950780256951234351405909874588943048135172413980792072671239011467228810211653102160012628079211448112620805669530540761648756839680408687599185131699475560341463823981107280902316807846438739088515709858630977117656565418652165854879231783511637468143987127080994635980937768727950686528592371295387478892172461388112244020407391122249208809677822235915252514725259796174705279021253145128634822613984559119542330455584322091777634120956810558201751764826673186165894925958782713679330718141226173576553641671424212987443061513666802581344046704699505842098769846250299028899821928946838296927996456330894456272539077825574587639437280946386244720489140222389419261973561683279664294786587402706764241921449794640447148208738815844640976659208407786468498333857684707846415073325205550887582200386126424844501581959722522100333684538674820983833582858112912167731373603639336064362817225909253805030569270746818066915421759751586560613844340912177481094625550458899737156132590393890543728535434225921469395018283041812862491441847156698617970342292577207596833459666379114572175937256429253168420471017631846838214775793365006149178466340397643750477090733709107005325068307677323983687716491792595112983401850157394490322166163034025083126876486279206715565300907762974300093591480572469281195311743600642411887076506985771258817237128279575074377659759215166551051607799590636160822135635105970408560710168512196520799205355210545702320298392855741062379821054688484061295774762157318815337329139813797545607314939577164436991427329408200819869423273445255176139574908565744153481019776155393967356565230001544802225229183578561753166618238952951212876518206232436657471395013497403851335293207077458189170621671702266242320381836692872728115548492608644930664738681197924460103677147386333838934262419583445895553228886590369213619792995522054655024247527783260299354734681742334507194830368203731449041524347254454414240528775392853578114522813996448652678771155059430008173784725520850522518026312579166264799548372380527495524913050148548139055148211326381457970112446330065039233697172680295937178271652210201980119986227523337593668151801005249390251449176846126074649431577128936253971919437321443655980878452919659387941678596020543853903634793746334864577461676179425122801631852566185442181282069365340212883332430811323655561081789838035362201040411393067889350397043345861684079877093476696429705505746771776601746488224956948495879227355239778820017807828153857065609176920109138811078533134648840135725764588701525087178282586299440935930493147608158603091244925088085254862779217225936975915725895165886409773086632724959198501281683188410763400528465266894080643112158021894241729043742367804008651919861795188045485597084593854297341414446932402731509792012167064778423004344930469107176454842974159315266789179571680501537997118076176278368034035858328873622543103423834556806281814720234452528794218898270712038900336406595875019020986104728268350238234898872292209808025030590538680416955140242267625307148860299344292695278909493776396898177076096476295642994560777157827038467023512574553351455202465629069197466618374838606132728725498953479683828697714684450096897158746483479603128479026262995569140473117310167046487490157453940519401577970715228684322511340932946352667861455297021226738541369904166338750297332737742236686458156859547279179251836198988967796146297951840540284643367291928684756944382217327251350353619689685071475398535382972802263520882040964422843091364908790231076784387134736625442235080056749584387582064994690425064626009925554571539830959393062762900912650395248837118343289092199182784555719364846235349283727626796265050522373666064024066231580453126617786826674004436742565242375534875574159001755845186015918027877140471649692985502349634659708834116670110297769101610531141781343953631032008427784860817791442721362181573534337687518790164432306483040957281203326779115046227392280571483152187206023988641261219364256895130961045564501959749636651888340238454053683329614071646168147911760159616755531199547064721949093177237300000691145705890486328777489918285034154867034906145858886203346758362797215708435701643186074949236316592067697824012633480483714288510193401676204190122904644551572878439510395728905291363206332405580621749145704425629174026761011835757129972717488173007199524309464989523672605595274240003298247865922262350464556131867303104915886989778861299595563398500489404311349089550439469242237181600753193202611369077859821430140388491237860859596415626879291127262133869500865467809317518298460061662974044699542532178971255932019302956106361577048832179288667316826192646322087796287062926072482004294646260043514087104563511274176467280976474281011796010727925862160187762933662823707896055613197637297349272397834671091946911452994586097514182103045587009831765234978897336312073135703144425524769744569337522854528086678133745156807022641447638784234885110799888564469224040350959493158793873786373168027219007088433992426722339703752939825957156647489562436670674262201670420507332194208704795856416922141308615753744111232740376304306638698353569320032950385335867621286468104935021446294652531081608651064973978364656247129184585056887846319241041787749114473245525621619586376940688029429541577138956486068789379456591191443031398317565292207505957197024870078044339104610523298792510839427134168904316382777650095125672321913559535714403743092656805728418500055884151678722123472783141302874281125832238810571934187438900186155561485987253624309373510658848677229326262145558648034424360752697485078267992562584661866004903228199652255333024205209871400936314292605467389571927752065140339046470840114967909676785430740574857088513344482214987426851057336377380654516750055224456937365376296891856663428002439834052699408114685964612516761634816097911660418705831811305682236822564911541379256310686301586654719987586981966515741248628182593888121956393224942823958182766362390082497539241484225285131673186452309765639576714489208416415143205256958750550371672777498457883556246182725192913276581025350742003886346193171626245564839107538047581543607674123481405294644171928448123670766387961172540479086434386606489417062198826448944128573302021764305446227518729950704768961652921670622954755750464678146035291191718911740853014839818010091685725153313024922577479631701692934239239854370362644694706008172261455578864914257640327432796032547584001098942747572520369479918949788292207613863279667723394554734377143606017527733507631207160822995266863389035285041755853642655277349498139454930767607900807976324763942918340312981139425741537137092265060381340667746554471405159901175193610954949372924140296074484535774565203683896161236204079443295200112654269280346496565597213836130069690405314690543942395421549958986633033235779141303468028165848931605742821234140033788666891925806465113864030882075737094003844187687378524506269444673945462948923421510659929166091521026653236263119997414513291289299498115607312825867444805388354076771125413877355011625177566864260372984429821017441887655803878236887772098452156262516433959456175104500179904908342947020818084373077366188490109074806305932854703483160228049683921178608277660682767702521230695592451476420135095695976638209880146049255629013701122479364329760688660287125848507201392227285105113455926916244429309196559589979284881734260510698366606245509715207511291439790926971697943719311082824496858336837253386532115587318123566298036123035262793943126110170636713979009112420541395538026518606795968288838646731134361994510178433010167777842961690685643809940513484495499153562471102273222796140196936415789897804106225408901861694468543413120182258694009481358841180341561759123325000264629249884652137734472864187376001826520958040919158710125085915253519608934678862198832425451624904217584072668839712495981604649014894239667928562007995187343309526684611301533041368810169615882892318573416805003603084703658338996130173196635222201865594020514064036014779902927734734210629656036599129137977993196652686759222125561018622750596462935695305463638178479766402363185968979133363573482273704904121230889268223119633045565132325637060249869196233301333682709941880510776161104111412814433539417240660757454386878733426757698864076273425687734654799308819644516890745663339380299528883388594129274001518258771280243610866969998410606481133102779237162660202556859115992508310554365984468725836097892950966975236757399451505070168364082329569429399443420354355770341675914807266296896230165499369237021513716209864353993486461151354317858599176059255502117416143222725249186776218201045640935899122436368429686636936161038122086903723167198305631694642767958654578361426100498421146182348743972574516231856303106287741704193290028144688269507948859960405479221307678581889823354981830721611501200368629268034905372780528893060952920306713129968213885600486761757293723977982088332750145896276455028390007916582196240201657772597453346452535665972587612453487239816455276047734480313372723115555662823434184451227647128589788799536825806786246526065155794006486616310676019773677370844906863982794547896539881657085034504102684326669463873447659882888221782664379430675225601625692581377477665960307027285914720933325186344805398965683602086408681967227705616124678012602656757622019306613794618882553736830399387955809869584902716893058101768816732726195931005806230911661780580621787531952272682440794390276166603594177037678921489434369894937699397405726066636868950129197432435512693228287644418242537261893520144800280659412615328017405266223127280943736635130360984312799305657026967149450485101540704607953563158449006522599096606735946566275767436972754814720447446351227095245744508863034191993332304203101722528998270409104356811003089407320698436218105130072005136600500780961472478276330579297029243070488573941446474736127986078587313526506387653956232939986108369595260289846419702107703070103201065263361329978625784190997364667344512705862451712424199754008041193757984920522069376630369046477933914838091883543607898295531015050008688033858215446970728236016254070794130526863586156463192317994673916154216176285710680766520766224009688137180638614005467104626561821480390106629267369153299979232797146720165727778145327727354136677048631679774478444161503428007926224731264162773368133629618489671237524283108901671646250143582739003498603891854697006174009747687411394332656720043704721846516844697423555260651047285436482636788501675759730898062399531421345526085390456067950550023199173066314333709464654397697302035542108344574985143348762460119006959514442844285933404648113061971642084696193580985438402280405826955831630668371130928435676214993968771809728486657259659810110509859742010747570894485223800056105676681633631514369760916186684958390170704186723060295849798362721426187316525237860047775145272498718944545868511190794267662151861971622464962839011761751500209580862315320310001661470695744286198400680463068182536794853367120195899339002587589446959665145815776671722973986984136310611960742783631725405734512710923992566151603302818706292511975641279136851482749272213156848371195784696835248815137035870165642134040516200624679144270514103764379164258676472813840514104421738222298580301573614359193504858105987703799557267115043415768303434845033735264592664026152870628824961768441291559677723541806579725907643571615422731809758160948930048203610144351223036746049513674820759264029602920918506046553065249644966357760234028444493786779303889786846563579977867244453288692419420892922758093045188205237978537495607244716107640413607487311742753299072433004573466353947243830339288238548611796561604137592722374793793475268227353619146520153342266549816639122626754657023000415312690266013650058467761580504039652404802411185949861663454953641677233550031650387832874245057455634556960511618433571279356386460655294856962217908118908499421475979678286179470022634768935676598557070171920349036616936839943813292538810632422616147865587015195011009748044749427033259148333812109698332794894968155076911761789268373311833534990477512207805948100638020157608307265482945997091185435850870337095791603690868644751289768568687677670948881520992894545446734961595975875469079136663952112082841827180586651524479975325720973468160148345689395667113689977191252451549237843665129231266019939701821489866576003653967167738006250164471939788853375711490534410809813827062741367042282959819948670070392691920180194293018456400481075613125134599929642852410751700027560324260120981332829557225895095820738343186948420035683716242009297644043251705583664171210198919810047307160910113910366415016820237698749689543567492977627349529939817701465482996966041823995494654411692297104622535843324962472914687031610899394650027386283584691719729099171119113619756018783127345659033411081421708289492751239530026346563566682781172150564339878033600184842738634793861535550854267066177049426297665083753784196649188455800821589879254408996601704571794956446277672097707503881686672584704483598412890292434352691147391790216337963590428748053888650238824650256856545906852171599165642710190595980899087641930601018596526571327631431161286734284731898305972019937698408439586969952273933529329768514926987074191777309447952705056313399441646203224285050485190580138708419069056637668319482825748107049260162515857895683650727417461552574332242979254153524900525752232870519082573299712566745382797603659393404552676048427468295273718753404930502063457278771686076761155708227607160452226370318434510000377351422513444535613810998652712760525778273645625316760962876159812602893888973103632487508279498745643437399692354219715702384692971835768300253111102185320620575949511575037212148006136146132076083615686511030435935836815109261778243352866342460106497948644161251911331822888946803724446492954923661280692304742784018768128930014308576708565471015060633362321864772365771736285220761619842766241661814376079778669360845878417812493206852519547604860728195799208418944905255040948462205747579871742523081501972406922459179838622894393973906322617777812158648375693106314342258005860720484545495583291920918421615816879276097690336578776255415213559630935589164212105569020725086158348982791820430598325385154778140667429125975645796271911265839954977898756071328256208652706518976710510630083989427721732959509997386836865499327848118709200655054915544658398920654097618227737110820272134872713904703867058747808315262984156589077517249235414232501579332740080725551416056288998438183889843324141913377213216762723811658666330849484506937578437571885685089443941082356659437422786506243642141809820500631415158644668504027574310112631073807617467406212586620631293768451471802831174459527425272033392716095265561104795643341995241424817500754858796709984940558430640543678244578430250201624513058979246822212710319953585796478370915214004511006788046010707054999919800574258664379191997421519679411847210098481709552824269374820718820180976155456695587010385497472046357038362911658420803684109922530592317076255615483637358225626941604759895793180955290158092992251599643970357537959150501748596858274830655571832274794268437128397774454087631179005655469811083543441932838301276201581570972296957318044954982518661941305979247096693129894346275916970890323336344343317882308785834095945122389504213104437188365458914733039408227296147211121403424755699666348300758233577913542372312802663585332440531631403510241351231886344923876538338248051169246225957485798432759806739602064717888535541895783938632194467322667567059546641594162362416967450076073364096542522011936530359083214692153152115600630963955652669291332988690463052670692012769001148992020753379217493771371678542252581271916354036833202925729494013846345334941846201524309171020015184597442393838854180706175518203706246698877928132823997533824931097264770984386937999599619105032447881269809271326796180381708336350550373981954861177119051543954807658010825218196280621893873885497953947509987869593058460611468309063836844156521181316717835916534284737891825587590541618293163417431242553724259283740526436995549368722709910428353195513208113540170533411437069064483419419865848344194595741963002864019508201108783484152845903182921869313782210758293060510659288422627272206367796320781835998387694923923181051504313769593309934124991718560718574057888430104659479337630474885913588311184873915217820611348536359775419594986288738471204730253721457041657080185294661411826780522678164358001243122384781556718304732425048806401145906293471052295899153816249202401248482967868846060305876130860926302908454135477296879943060156904164000400340485681531162895929423560268123992019263457317452253934008226951383769157103239007347573434823141442772186404244806020097767029277507506840709996360785402196039488180551610268516972999395270754983954070572060095892698915233930889057271490159646208285411436892263612872863513293980093647913533373582030394904987193832771151747714445377513762439849448804435459028389942128979449586242494942900931709430247680261372934198461981771528971700057577764090591341302473378253238808554374794784758259054645090022859941820569664616141965567977968552017497628011561570842480177132341265658750905149350558095017826705212527714230465219270011853072117972958790799617890583355758613213934668863274050854717835144560616153038481875761995359926226259407072120195052763147317685522138744161547920885894709702188338586085159002440297793747736410165543001140581189425418337083189283199067598985725850455079506530522347210618523600656597121673596676904866064754614923644557486369959248825526150407594227179831351269665076618277710457802058243274598030543216540195283070619893819959506730831203265339744157552841540026136978077662749155829324696652174845428540304689979423466570032423145852105095242295340349038265447363850574511877752267358162777204863881170603889204854119601750112895891774461883171128086414007373769724906562459371219106858536079764407797539806314428315932894121240232831308926491296748788110666021999055163896733415105630684361121652454030904737320256846269025972352105841469793868399030768124057338175488680880654858333716088603650500476479431560892853723448190405180494042650621267334615803324130036226838635024756722032155234126637551825937064829137025182336496831246785024414552851571589076412973792464333689874592335850952490533146252766756829325163628907643107265817280548421605901673450721452182252577086103372552757913108751211082208408662203696891549848256659273770216090193236931584186339386715908807173017120844999377164958828751921597058215164610721715863992762659386645516531659305052471960526513735766787163938274188866406717489801456094536126463693692510710991015911219749268193559082522497288518409761668842584130037720251586236817446538073766584626483379321689887588561378642534903538134052331228078106196498978723327865397076021876065144952137406678938151237598227078831034188310569711127997689835567122511809013436362019795273990124865135555779028079409372623688792048508530695826837195546472559545348095828738689221660539950707833813309424654725819289536340939666809016879890948459501459714597917569520925489675117385917869191514472891058256545973667711544359709893340374897587696349711563394863108724144069343887442817936468744535644981004538546350606006006717653319117251901650833842275688787198504247283521291514649446607826690752049485168399134166688465628284517191097220200642692882556522502418813652002153187503101401547027472234552500448112323882107382773660820271308691706450907641671398022962658757501788198384207300320045365070617775441652072701943121987623239403628093639746441750253725555721384952890844007942462981124498743024336271377831854841891184161441320237828924978199120722764291399767829082710928925276108463111127430650502075371969752058428106582845774256404409854961134836664237477901316668296345390555242385358728995306737431174589235103455944518212678944883621659325295786829368053726241187085962810563150734408998601987812842467776479783988356504262753189026716814626338686700262786013717914631290734928110744003605957693084886923572048363743386401875578032457878857110412091999748483738006886910279550382258172629446703524576544482934849167745664908041073976913164556935464179893283937462000960620654005116132650228922261449183207909269755968131737334567405311215631291519306397232921552212592256827139759826824370809539744682738181159202222155332140085447213039175817505266859424669945936458393182538791172743940201338996836052482983969344947427838914398309474023789566239488551039068358573998092643397085187460707686907504488649902380136295969330737269482828279017725901896649159727449465021040480206013902147552189246330434732083619953220034548287944242507081658611032815111009086672925763327696952048107801071847819429411557062300529624583776747021946176150124966168379453989845361868962907685647543430141188925185711496279843933303375212527432037343879537364248946987819869020392309846763474129209928055032981963631965326620446554272748696050884819873518558705771105754610804234437759683156869365915193638440074725904073503077207961865276355894427679916684353678781543575500076183352459604264174135850730850924643578790910525863153367032803347276984084536514708450671067349054514230737589882850028454229813756457204473590972910093498288644526945062549976810361347214667578478702196255438407172784879063442399505891955686192043722581494723031503579594721033204497735609779617281420846359756442273540252643731013670597394364193595455555491043918904370442340972475912905275637593908711069633245773185017491680309996645720422718687832796393303216400847341997041153161046590275757440248523337565238794939566162863298398425539730817584289751254613974813415684015855098629258230383777184931957461782853723222403210188784196445603567159176255683041629076967518557861396085003959058636381428698590802526160763628250487180722044347135458376069070836295015108854677682700118098642047721594595855459066417807227747817517349239657543493240297388348582350840942857205234823191179223821590277692314017810633683037548887078349054097179004443515937177584307672691951941843263720713970372716532603840456719021346909878356182159838553847480560639952712623268497846540562050456686307730054296629632811311949148287609185634751337506538619427548013980985498561084781298596648363330130707808519418314738033516661839555909827376559611032529525343116836345437754433610007674850929630077246300719576718905744227563421218904713943003810352579253716968607883962276962490585983679849727661585812889533213349118450566944955580100551167873199470519052070697818332803230871112401507140262138436790242214473225333531590989938248068081235832390127245272850319288269819760207001633738224758190388913757050360794189233945291037083092657729970270391227642382906371898846863855370751643910621870017855496127796922524855018020930571124644168626886789435832670269027911702478027171833608913762556632849564502980856420515007189253771616246620922974614069680058297130248393457758875690143725698889246692481746885379991636478005533426668698211191598240934293073636545452777021987655791950611696191176762913216604448036802352779728367235088273017145660638551357089719310521266161743090998759605157535391988338167405730553093276949499950360108950292706579100226049321556592548984335388382152645098441221213418287606242207817674450372962987523926131395101048029465484860786141494092726937402228519195133428837390446373484689962550796139757675033315270883507506389758306900840895531559009441381246704387295103093074321693734055078966570211947387201903157806082175598254468409538854769925621982507430983683796529291385503837370520830958994128426949708468423023021524229848793470025925440012413824996128497098190618697724015839004711738458655474246272487014548457027786432908251677506248702001903511547948697712858881643518502293548533021687363210276105812396131226810997870975318185535798245142925364830489996825128329065515276030913548067136430084520177818356235420472904762095125077091375518106880190260788999388369206195490089223901503765021815318952139515516861787406371896281452407108651943800444820394847260066491058126278619546944128536394063417428370575612235262790629926453517456294172067099276669863310315070763532112279085290680032729612072748307852376022586628174295780102331910307122332858869934634813606120386137542679668085569804694540852403172560245501977727760347772224535819915261585228338252306492684541145620851141251810302380001535134999807174068713599206078360137309659235810689968283989559031471785476454452576897693729289341899311843286770880185283190258334298504600374455343230351681657372610552473902063053235485146172723510230170099368440707853325154634540264344456974530798980573026440242206559167278875806787934861411718241811626930556304572455041887299171180416536787215421039071552022011546320877132210699383696415921254757968729734642461024230473972363420495159140398892227857291794063751039454571163038684159480548068235955682356884000139003171926881832527902705392461695491819024091670719915322105637163970848285233482215397110001881447696843630913118763938648901056502992259810367699713363491030234565695710802286324235399794969985395198876223088312917121809200856736953722639974432347353215312089501729654360515593311267954031744832627522507987396238576651037123890616011503578054002599938229750152387206625201251714277386287960873889031780959198928722265074921635170651762264720902187055082913505872823878640734307448741365314408186221231885299689835546560659048165344906109166842290425600352848732591606309762390748065527010211293338813828418175207992399138074578495479125494268586993971827280324122136947792229231109709610693226654881958907544536698066993394823618928560248111254774411262704860862354979514779456113339632141117163446291860191764874854292718884833707463014635404979117580125809923574954754368169445062010830795210378261042585308264754325931116484521411990743368040050777311243341331170914294424580287506310270640269702002959547507774855193624058323520551027601843838219766585428446007564292696247025392974062507709598987854074719527664337035865746836964227056474337995748846995009803796158571362122202443616342636339769133695082936067545229524806295087335380517290484263926830414994158487461984912623222993742390539676306201152098927693844830275610665932291631420105453404240114109154105931684296950966965423003787349583578932267755467198085791342604805734698448949077648005274874137730093480331692178346869903603435793001560116915708228378290370183098108021065639995749048869505256139115465585728577085882275422407299495719679722129064988226722475248807526475487888670652615864725580309404962273597404664075289760277303309575601811750271649006330071289968531037816771369649055885038800764941996389780257464484719605853059226425555279174482522088702647348847918812949944019840616637345658002444492313893537360711751607884890521599742498229869801330623092780877915637083569769848780537110213548596666593629764863062567270305201852150196991281367409079185419656160252452433849782771716279571449264157655064604587371191950940895005259676428352514923041874568108704343603168779918345600013590338108792613957918628516732901671630962318422412286441401920287931234332279828618518118507574989422240047789689770045283632202907793217312278157073643885537783940853449855870146840297050274010780048976495824562227202174541391795726897577126853028509741332504488574052385307775153859323886804693272034010723015430043171252846786932992952175829718490196831359281928730835089317355351144771108606731349301174478980459239878452880014846619331621894460792837783593747130282683693792117635807561625214750176548300729209796620579481024142648469822207792158935009478051706047661316207386014791038306598702867290475936585079360301855185129079564687542866581874542742630728721674776960908540948457726795939218737017252173099469049507024613322672222473682814785942570070810478099130323342132190526635867584004248143671251305040915995497749264070745044162552480747508578329546365893092780933887423461966885102389045053799696392524089555574124755802524511494507793132015437302013277248877072347386546977604371108312709954893463586170398084491527822535152451834540538596868571973748925412010662900031030341435890114094279423781178771228136971039997311138592424116691854090441874016842650318175691128919424500345615200472168780171677179909568187500300830630525216113269802741615734196864506617086494866139172957492863466723147799518112871260630170681501782152131765288097975912504597611084971833076179780072907893461679766455158256160857488082638520141466230643639657617032483566079528603583409987560400627357442497826926111403754240255493755734268859062480206329271494507897261900876005182737074950032736314866383963048229206228072317347350852529180576613111234632335293288430364538220135120288104628396462827073459896059349550565066810823794252422295504730445769690969768220427367625037948050889485305801195385913210447847781893639997506840972941176638365413117679382482277206984803987664451465310548270672751025618955404533286315129015951868646715775628419451185291175511310749797135339088049178203946102716695995578059690216184760087245801232966757206607967169274491819660878784606367980193594210716061836403155352460957328291131498591213735022667510309367952340865807429666786778214843324317008669953678812155320494892713574007478221688033087783007110023062985568804460435095721440498220675518936244344020988901622528734876334661898316952872159217285742794980981197616770429593690061715396350119053268556266845415638331550429775984290477103118410074497080517733361479441696793449477595155402570580405355382043742243280991947319260674020323940003268407874411772870456972886246684289979565094956786700045254675953886061118936569416709480545975524782363241246179901067105037519420186386552196217193969720070576773153065161977597777365602468902208283176027845306899850909991484176602129675649309365783624689084225147887360841405524822617444672466729940607803233004533065472312502725756996768079431631124580842330291590349902993644897523682631905777229234066017003712044807361789568674892691854699595947561240584131518180265782649113362472176763939020832775310914484942879075652995420757642504317929217251727347494886354024433833855929382776116087971267512361455182640093670600678719146986701219848000093032889368766120829732036260638041795696181344299701732180793368107444254642094122677438840103113313280020484827810551714629351340698672087542153093140339238143870011325157343005469953326745640916252430401747609610901416420220262676853026460693617338562052681271820333122182638025694869460113331790103226209094006312488474030168763765013633523208400653070410320612196347316930049644666514395128509156518267045686203468529789841690770682227684038658931813839074590082494349162789224710794018876420136051621485772356968403483757079701166239193395254521732830855408260641577144820466301936192018079540070303605382255685896062750044638346804546015330636335995559731443650449572599119072735960130718199142151985141686170388454264493679542657179549282895964746205522333019632167813947098107359683930715111798880383495654926876558506834506116202246215571482241117525824759289032018806104855814204767632087346072506581443719757464758120741404892456286818802587969181866757069129138131827391815992054893968721772636647100869914341618655558179590981165026071257710993564113559793215762250324691118356461131498314491898302361167696049118607298777869505418334901916328598126467806550006394869040324556375246911458857076080386155556998651561103688198975038436822139579406731731472435326767008263475610993245063327364316357001831747443469707588485895043383156884215355553504547295228685632892473353795271205738875730220076476754559577074104650987921173064730235317667257886662618126595978774029889248568910385835937823426664294746791828504522390397712545293596177517814766138905796401028759821476811156744559965878633402749465127090298265446815390902411463690733263657668904164920424322318490765337466636317097935636645922248108446196030842840631707649277632307862687707260396689374154749391505624103051508151790136802956272068138984187936080055629627944480089891112873307140866709172099324364816025040005856438655868947466448120094314361699246542829944583261825586471432611970900400158883183612339835664108961000956448692939671536619044415135039325689819697766955524299312648488186120370262221814979906551869196647180196176502160918696351045798284022227870586464238045197305913447404219280346732991250210633802938502462972469849193161773645847047393495698577292487702477326229800218095962214883670680041940533046591357373700356481921987529716242422779105233690203518203803717578202603383080934334654725672646059213603974348599343962106884445930058045541670689652891668822482652619714603118425378135268622847995871782484578186032686336403080330514405786814086784099401683884044071518222779816344199707455666980658116637683673091544212095332956896468914841852912081979933188484099361597262651757367713192199975383791873771857839405620770985678434248495887633899031615001578136808063506807833236255915913628234415169465486427935290242396612353351407187520647523873938963371323081333932962617133366937007912452670921083049490597497153184857871649873893013094131245696986394693031483813502927255216944829560931202025505989401148091984917590419758971907305089906715770832083562568217765011883854229936340017092214378166638683927301567512453468952484645996156699643724756077874715215349149890501595399077523961225279294906488390438123444693193044570536310532295722190053613632039647498090555771359185546411653750709082063239028051196641678127735856855932092191263913050239449023372034875741279341997821261905523815061128546700936726980063554440426367929936590574567088628479988592009435799412870493859346732949822218835341255772037892425893105145369950896065652562013163641395683098992003352443682398181281455426261644283497253347626130649857032807227215042331949149588141303563225780178889331716766926007610075546051642427627438833785993108816971165597396686009419657841977808041310356579702661156995054737691432389794122229239086663783921094365411847690774026776594545550170184629747222661085204658164993059888807223501012292128375865293338381640638236219228972316944210735599775555095116726831750510548788647082391825879919877526954477848380049874110507853321052147173232102342680972331220391611958012426464548078633205768317559013306905998880336914570379928762275800207933331312674902574673577905113274955601669744346456338808573180658119039305018018109021370736392081550600565836526612067817781708707932986334803703007538595940223568735334693667773679381502152095558301548800522137165988083638440572732372318804786433696595990505162561164133118935936449507971347491044591411218339104459733107694666140659445003404512452132018744310578380794162429496941011985958563745215164568696002372867625210329567179777967300525801629989530238822919127124016925472997590332075127826423276278171527005050112934573328656081499747487106439076192305295667966638290739497161996841825659541972355955324751105954829682361215609095581505848733956636260626771089871955096854579712446441465487057774946446025902655194845489084203903905023955958647659028314720238490575788555987922927206457473519387426626077198992568359923124721160683315602224364945446272823495714857985418124128342204194668111129526196150059359016080872935843178334118786912021651519914620147972994706694281869707731378499141480866022636618275307413658847665138044477657388375832397680392646797409521671893528864105866446370318234861310949248986997124864345350891029414921856657737906924479557039110453273855244878752548260673345395486590628562067884909080514837874320968952991467308075897719711118413950299720476258196659398306408849765137792225484085392381881589172371253290508842903983675183159096767437389765497893343848519645772592069655639177993215492138291961266962462933322891044414620566875156134275631646963082912303366620029226160423659457164387091809005560089190101149701624278043170691634255350309888889452241202392991598375985611079573583015345026161245094106128529809443376404498465937295415902791891205317576914734770845478830679505494712508168763231900497589122072122577025096276530103726776484670186949121450899436046692869938905857330968499892352264133204174480449405391514146896288126556111783732648447889127649604314052294542551059266033942650392096623802764482005645957149842462066143878541050471163471210680686608146671010913689161410847673727718490003636727813174746544969685315927625309142790165194382747927633460863566018762318582960693166626582208439482339552945803466407418110427428288936534717747882052234154721813213967915258459881901631303156965510360582493423478024489494117939691689674275836432442362020908964086205943418018505114679225753063393253341084295198920332345473561522965427114993418027874559370912557143262089513843550650085919298732477717004888336076003035594929256201760764004706496940415497415744893824920339714049912599263203988460870865219546280048631415240494843673094235021325862614037552913416837512495917870269645709325704329424017575028951202941828636667253373085235486866289907145102186703377704122764492966905519761743742206449338583792450739958565686561966421316813737482635304971897733592382888199173525375325405684837799266489900859117408397190427763425511271251232315407887108974127667735978647081098354012302837092789633474921864333582662926527622120710716974702507525201523327020692042167801073919606682779001580807631504818877443192680146290492347170422928581132576144668432102549873876085348127513046723857594191266230223973290615996284956820394000191836386421664294095765633656507181161545144835470581883697995756151295551019094511406064608010770317945247209085683623878292143937135953813453892281824746137187346657027848864949836709558342048451989396946697240579842536012039196638154713268636231842631982509977210127033709748621061141556765909853386531048009564779385761300980763265667235609044547901774016506143389100039926649789566729875708267015487209519209868943206174732222272067250546586526470694586051078587790034134414483837603656169631474097109779081494313340664610416926987367996089184883045590782008700801694509819451218723063194444312122338276801461351035036637490765277535613546842959840227480819504006813784230984901169866394349694079898214208621886300880383301333584926729793668510440653663333307347577506437443188998759686057782381431087492190171027974761933024109207133253045224122348247260279506920000364855901743700920882266143739867563173826260245719579149715850136794052369905272897737796841402887715865601084283281101463805876101154682682570657295403336171916217875559166079717564160137669817845626139317088151717879139394967450943149440787928780243787065552677551389508726408841852250801813593600470665461625363919627405992704266138355835311272497835706040608210441170461144514791167369694300187521543929956652184198800159414979210265748813065037570606152235628859844200824209540766280580614977275005060097353908685206087155369718144773922618633938262840895703145435812749447240861650331575737933081913706495726408652823978549569081310211816903324101028820277187759048527253592859554269482749284477848653368170616641416547571487586020575514051333499275244117207663158574161123405115749078975661893435014752316451388259283376248975096874759251475844715336165353977504951598764040923103918769965626565665117950590319156380270170625158778519312376153423946534215036751090263033453859463009659894390359391559423548295933783425817581864318085196602086227847676347023150451164617973609519473834966250207167950083363760629330385986158018736635759681455959839254535977192809472875836693334876016415424350008082800053147566492301989679607415969703740937104552217714799711316868170736429136426421802581121000250451126641649448245041596802696912863980749960994659597273482021682809700243558632982157673307830727689843880006065378845039544192743560313808825251869454152059290624513407607142903116309022640184016769706282818636903227146878085299111614307020657286219280527746737917540967051796417535518367162292679822830074857851908747964860921375426446258793907023944545835914081827982623665754967753800507410921927760017397588009316404307130538692156547570951819659522008728721119313287586981183247083016319909404656839744968322348248137595005450544663256224278359497644170317875974520770695580290693939196083808110095964796920809977859274453644557346786199396247819745012685295991010093164470022991210851703118960428751012734622352045339394256528920448857807352903846961951496211162737772910308432604099762415965683769268297824019293045697410653752878935611035783685246558271883013600677558946414111411341376691417749052731348391582711290625312758476703763364112862531027118501473686918143478895104892100051331547022058061156882096841103142625034991802222457611019829194670671745735979937934525693370667094193821293428567946942988814587667460720259492868505039548495152256491425771473608676425920264783613577093131841622386487482785562162406399955238234414201528852711872351058078743715194069022234169535251133903402866813464003598731611601543366435407257232276863172628181919036776555785941041953668698776713291742149605101688442258576930136280266300312943549815109458005543541682956236022211655043127909969123452076788391729405606709740961682180658013312579897551513464467793468506124449738719948039775882465956497064205977797534611454879636911161716123122993735379798938806277783480268170925206465116985961367000331140871778082323441945919790668633073624157354970592751419083351631382031789273743486944415026836067775719552063496710423370619434644032694183561169479870260940420750272027918747557033809121435689331646250588071538293820218773486471695892092308542972263656276258977869576727366695103467161757738204010925416127993854632000689693068253494051030809485463341818113496565828916205110944951050636909814862046479072332861923914853006841750728938430299792401092221175601497827820584964742752087599620786831842614057951414069696470735488032561332458532042076949267453363876784355477642531528910262607037575137188437259455737343191396080199544133838006290413836206971755018219317088958886737031287085048304632279794690431554668344143786780609359927773188282797509132242736221706536812806062539845997721052664942900235563987170060625865266101277213060262001223800197535832889506074554436066501579233477563048672080575837627156215581163471827976414537951603178388263229554097019353215564223130526074701519532142140690257978665859534339021325144959058286619970423175993873136941894711296165620443625142554058154862244203036376430526658541771737359561295595945465926403479027983108391683125695927914452220218553869612908709464017748498814869217194944351551211442066776977270675258682601301408062539005534323907554749829400114276612065713352695590865018618954810181466777849760205099858866536458077964270972973503672156785462705691416544965352684832911491201420082995125684710957501390153671066951673314713792126907960265627668058829024056658147298400484974410614960652622278883909665180463391226531888990523669862690054893174983869698481983182430208257183087701690722406129233944796124134871974426434219983677772341523592225218204655494905083330580831531410946868716406293009430292168152348877348975316184557728569782846224654817002418941210119643341740928885191684456525649170613165080001678274859513302153101671781118695176285474471611485131281654339308187120762387118057859765587693806584299474630413033502434681323332071079525319392044039166933608355262348884828180310595004554696439721511747588220428994502594756652341978440226248069496350157776399683339395270614674822560103371628489785508198728875120841425565040951759392696603612122113914260789387227249152805537513173463213159779039078222365531655182845068944332542172496061729711705835029041990947708314656555008505758659424744882040210832215447727521592815845987740331934085540883930033461150103128726427777395463744509474982124138072207289165734433877801653241937390010668004971295950194951526328542137354707499721221570835818497136360472993893232285688617955647421288703486466743317237555345422796906848434525540724102141740742152965446032654227598766675720866288216487712393784467275494571172525979567847151789101609599437831149826147255748531309235095170468735661285419336873618118762484543511837380930947435342899874494236894867220219567868422975830136075619974664272068123047544619433494692727457318370824429249907853783370140883380104166872238815831694341378202329201012004159213251681602867894432845835365693619378654049573614580880029241670912670479858964544063725558546381835329699395562628502339234530450465970252026038451837773312786123928170233050310954956059626142468923328034261866797301928267428413746485360410531277087325827427034311422340284169042726705749068655863186067556361984338306280903076220009703839868042598947562488913322884515810055001188826278874331991439170583175468562974643441631009616820905770910176394670258195498052217180757495997378812723162379942673177638632600641715177865278625560172606974537703787368497251877627359198056769471198156928418592124071296186877647516300392410792022038437748948986773357410735848986349280204352181646768572670688533131175052183677874954066737350703647279383151041802433964571743356789995254664728996090873228599954889562784518047324990896803259659299401724423965746496537327826294196728085864751047633492170382829069955943153661313710985318421408234045797745133770572854297185916495434027596378258546617296222112186513472503670150567821135328018520124931540575307319231298264738448582556973013569430718060643542074839533488764405264502096372501041507386182347386061210236642772338956146126697029994790649464111662926921361582947297998861250648953470140387335825960030594429576083133249419488476863211678311070341186954102760656623640588572798877627285266303287132196654061975618822524258385644542219004468968863698285045311574955634001486271517575820427345634924992212773814198393619130544303691140260898762929576715183176914639144181287610168313779361549428934035094619304421387473154074358534594791187977288836157581028180636936943035930232005018228729105387857780108322257009071084588282084334343960408325856300544575522167493806708293625614853917557770369707933786687622341130587517804411517329842769243841492701020872950706886681036090836173863446619980922946295247616911799924264700196867755446756008145235352259679421009055661497386195406694551642330342243417643437779602135565151362264789587137454363438885608527130504125445534506786275861788980684560182710551202745440921564838505168792643227148391862254471923341694044466726119126566142267889564007079765139220398801387321354429443213171442504267591671232798950809271286155880810353660721471909355221839672009723514598103323945974982327859889456700671352563193940863142468818133927637481007448067017717405058338536116767762166106543044531368648662658999893787492290927435301734173087480404472730120629373429261822386594763120312341717481371447782992305603175160927136650130850633231308440349668937171764883024129480571490934070048492363381243269391558357979740087812258454526573551835149062909162633017128700459022878752659590881567653297645581747347707668983276476396282022568255022151881504935051900210422892814272556965013702266302725940932997794522172366460756084444707578658800775721907487849055511945417842420587718823722538766310755922849294637557790725249323480897343298522407090635419586730387695575990032583026724635950372159295605471972688026360971795362255713885863178416888244014601860330208320506875796050489502935251788557705106378331725440561973432348212444715052965558562449773112735402740533236897923601799031340950418481752272867788540767130943690846630353270736230300162319839590229752179479594683606999791509472826322820214850937881667104108902834838635045746461308582879350311116752025607424699052156306239393684246177957269142031658226452581264782557172433607781499100593476158679211494558845852237932844572956667871515755332988289204509445876182466052984472918143197971452358073840285686399088681199551905363257681069887359301157499398408353954477863388221555916073506338353326849744250514942432394365948402686210598124420052358425573319976010830855827992154725167331151018434301941033563790997137024429858868787306684029875486901198834847454127283045117873150661126872016877115562244524779816087001019950611950453757135401578422529498895026616709895061749277094761138096164725743889974779806846211310088557753354822581079458048359076782525371510073087501847263367859010919109237265659361046236767843875808601431771511100368590749757217671605772763500648057004948647717988761293152373085164967020935289647384948995503563041247746346135616999407086614786489590306776221800655204486263191843852423289005615349007667253943247046287222220141158048146584234030161394934623017061091603677948851613381413670961444240594217418291645004823506967328578369921584144791380329406726473810014815841722016303701550969120693836419604043287581931673967262524066007268120138912749151659996669334912671873886307437682500088346562105194772635489218122322482096908552782676779892425882392057401603344695133866051444434043647332318734872708235842474190561168910872484882028002223240348373638924531212585622785265732229384257137239030020720225288244101926662400731892597234761597814519227043791219563344159615545927795412820534350597793066178843511610453786324520936535649561140957664340192050518309399847705286283846716740692097842729663587241223624588710178313108192136518707417439394900537812897333110079378315388850585700583552711144444320776916854263490289517276668940241807366194516470396740428714169195922210225564817020364200960745322652976891515898503701930156287404469891107878395015464404971702907338438417789889840121571294313026821211743764999671888043664135978310062914650548679825786885613894369326454562379784634181203749830618837552879750918829748152392694624266373343706811857842443638544431399726739333167398506426730735721122007487037131105714703265377885243796799854153406833225269516397550571664874044570444411545865967228083450644618691314832165933022672804854685475949192164756025003998466357859533707431287239728121491688004915495481645796638187533368237339057120023046954670370051872297130313699802826860769210825658964136445301299975990758856384042154049412518255806947625466005442840014242291280296029249464980056940278744641497064356035079297611211780440356708254054551878929850222798135188385841614879777113275341137717750410706009179276876091803098948924945650730106632337288325206739206403487606533640844530288083549382131819891592539712157014625045023000714964886590548095652305288566427469157924065530724436729273151768147964014401862661781565869246674220046031438831096642213130600724132979171733521955586712132659622660808292663626179412584892315150877548952799125244673503675722803120853068437394347428154926443163760429735860001296701503425125012116637302471381439158489848364637560584833312117589390860720504628318973466929000317115256404799084482321300751320790127288912718223168420457319939230296415761439613758509299526851022149067739896297419848157353364813290097211159816288429404866290870021525594408898175749807030025517295726461651134401518224718331540145128013691111279068454722158943424131041800670867319721044984188839158051196287853457936930635006743756259899120712504674222432507737456639100614803585709893679056509072121486859768864902914228750090293745500039908306279573984765601758257683561306150612872432609225187024091838952019085215486812757536653594351222267748249491948513024336650881908417409341949114546486132013122720142000212654765237610105761623414892858656347004905307097696296608153374032565740560776671319881064320910826015490443169473474303503209353074215571606289737490333032971416659863148253314043857249693783465817932377246630448287413378705609748671046700716432345420921800034972719207060974329258323438793166080569066617505719723296443325889328598802691548555340805171606141934301364683364062000978689731969603529868937961614599972751595816397549407243208455593279846925307641856241240115113797306298797435861722612238875952607316089990171510250463843394568989009999556327809710808696238092308169319254903964890829460214238826956755150248714054721593239496948917652149634643521747705501177173227726371802394411939576880251647917939920635673100408968753299772259572408284490830853176324763458520432853111677949681092619863176550812625707865422228033436045853328856920926767721932972847461360531756943855602261666349025002083601957640449805564803844412313107103383051858822672464084114461709537248086560463231583612267741037424537339193525736257662560348685928880738078949080303163291468804856747899126883119884110005026910712584338232579058647474778327385340494679512058360651612985994382204098897381786741807140255017052171522582910588181064586276235876547887382852651512370953723845435135523157609397955673588750131011470407677873960660729299192718827800175600511740711547054617122939180203889783334258733579513668281793552879448014869557106043349127907753532245063173716285210107179069561554095742899258541728824603106452669666295687101947763888204048314415503548529796496576766671723984314149918829962845103547405200783724434401793956926018532119678371472056686368034127421730008403565750199827504831683127287094450010376092277862674856760988983502568463879472046882303002010412317203887098437868598236857528830180870812109951561488711548647737589008016062305849267157792114584548406744817020382084030847560944926669670814141733667600162272200721398761721031470791515283888375382516089423996268091342046062226947701924272396677780754630481186836065806712288716393857942917862478023211082392395289540392779589710102187997387487209845184201003983524960493860304285128852082987075556936477224005165602851760947079434771777360509530437554018415416857692949944352588877076958412367252570576128654885756768254331309503646362642110078460555643356327797663694748580884278494488319430801571047112427844316376187731734658245457516142596998089332959612243180345916392258914765292779878520164803292897847312457249118262931714320098051456030917928217357649851350219643845854493956486162891625137607268641278854699130734438586049322357305747028229308114440292281177955711361264484760280773853919516945112527880827506818645069561447033502618653080175389999368703885859913776423167097821514261429866293975075354336905268323467015004039273924453899029590739974316723549141194559715647687013623343869646403847174860329629709071937370084197538767127465674371730180873661624598138907821989789921259501577399873788180145779263621300826181846367869583591640266545691375602487952496482753165762742104372343101740121351128872600722210743082725901754834816309412996132299843733896701860944754684554947645143118978284314144858045997974220673806306443432476480973835845402888745212364929687008800955012595573093768302018212817494468339130420265116645817389077401535653207835830468488311517159194853220573656258697968911331897279398574227770881811258091491970346651469529949653991373893243660958906227446081008405146731295723036189631303545196119181551844645876328498288327429298057666613032528555246530001292104172704516211115906915665054406722153963419052544705544439646719331781910670896941426331928204666977473723719781420133377611353605741088737495763112428831537841821872346864464798732502249697620526590801042265706279692976294757646881787766802935305678342199093512205569638118161361507018379237621953184872090887344614457022820327226327683060612209189976670986417160395156231707623670369546291795670832961597088234829062858564647956395343011997750512485498243028309096621950138529580707636609088152919945476933180594224100863752665817281095133814244103412040358500963594515133603766490387199050150663938756777190157566925010710321930440031348643657702039101916206569718657823032168846640728893610004110304554163514618055606378248325867488266919204090100051559414261697918356890762155816571104527556952889465848709143362825687918156550438701292291302174287281691939358656118319376057962743470667893039281017755939133867633824949306059020341573696287619624362741329015820111435324477483229215246097459823042592404567818135209909072814863338829077875873757034966059737914027222339661700309508663439648177676589827331143443894248783767713311512329847466467360287108432253177434876182133517105963930880217478931269859491326650931244234174731958310741364344791656542394756939733963574863151370997995192297959118387270643454505641442746734090245822735634421898270718105193351013613191979896795787588538670282487404779606444146286562105172700530149189426324074281815725592557579270984042178202747877002003563617359781852070894810713765436750573718758439994977629547926622737236947380324758712453566940167251992205100692597903591627408613240101431104265249959684617733217720675903153664922016320134585826987259947605564364045342034043603506970887207680217502832156487377884031009119403625826405074124600234321847884475803844407417150442711059089356773951598567811240883370211707983234978844911243221245893037598418833267136446902752934308152056524522126036667496946642426723236263787761774674141120332178526958091188202140818130758290476398883222801416509431289703546258612012953633543309111835663153277423655326784578940716088719657104519880853691683547554242043348587158745299589973650013610233005343934776908108458510405529193364793999255475422848241345070369589172632742554617123645754210866365568953443058135417484915072935079317486560454658584851578205445769866509249215978117835436924289615147377872075059407628693179581625597323622714660789676808505224798880113312060607903330312285400746137871193169528407283429037893429902307005859810059746533442399551294459233849396161781189316417753437874800617153747016322212303184000741119553263413865570993607729931027803401121570148559493434234773452152432092178556132855360733632706163046588373630835759700893521538004125535505866709501371462227346660779299834496331295330275791327875774389273414059552474984192435106046815267976246591411813631773213235254088022532062071769150854884468466410992710989585420083766236664919138460842660275717309917822398995112626902163870047863165115184401417131847854970121478044047750173416701818826266244859605197924032648932152407336002052529736888903183657689071990415413975131768216227544132182707597673674872370257837870098157034566305297990919354263037165585649770434554060853635386147059476043670431419791493318708855458065668876051747986149075353999309352491878256294029747613087400938071422546443236313980015950697076960209172242978916654795247110635241016080938086410027961518030988378193582427320899837788120444915375575287219053454028215772286039637160667263375516215748699985650321523391951761314756303189140541621035794114877085466041106069835843115227983761894631604401183478187306612197342210695918148243177495657290693304060946755848439997807960761334036337093384430488038671151796033324224420732337591715620578161655761507355845662895264470373337777065022247847292924264289829755693464585012364034108274306129328405106443035604993991240793001130018923333727140547187348143811410333767830059891089118423063801830111715844104358612726311044604946540221018687415419381719465948512594512511017671303796890022811430274471633542361382267855444154479481973116163845753768946699368848340460985789302012486084268801498563715943348859666203784634777881033383576854747386349030078480405053784354299515077658295230391835201469029996951296345670259501067172317627027537952840478390007280235235623173843342364736873574673058573824549338814785007330386488857489179273656954256620632082694124344227582699233355106273401724985054759433852216386998361416730341320518804229708798508716195098168299100916117963406510075415926554223851327835325887640599775504588096968395175791879253681486369011827103088250423827619466700862101177187940599465588019089865733420115884211876656245411397601718370869980725701224143740472848647711965907994164102652518862866671539516714967606288228847046573055400011449630823420942515508818365659599165321194277884102783820586768950495940268535442806308834110468883072109264377045681120601920047197475858911575984326652044126355413710564058459533884293368542852417655491628714454754463789535594762384408605245176683617003471301946598932708999521293949248406433654737490384654735941795912442022055532813684748552237791624519289784795049237332824584386247422036928734067696755401391447917069576938306661787176114120368524664763329779437262614045271349721370397539994679378424408648450816792564641917153091149424296445393948401215790714958651230050955359511862228590364064866182907176673362150066755849531670776600520504971803706461083424538290188545108556803424287376909946504087495961369917509478272422723353043046904411399214079719335313436749403707790818200067362572869230786562269422038655400384943784809802462067046403543250439394977599846905165822575478661222153929911930611999245170696991659522890622177105544378208624049041749358765831626343120090846430631897539983672307936066999108479820816798099338526873814478866925730540604234627345964287660786628355865673909559294699992051535558729933052389409890711657513554958895555471402122499585418841115115376301490589400013772687953224589108382266082650921963775266420261691749128721196364009119677369372214387145001322265649346537538652281119820583909673105861638682284349028411343808518727984089750959013438124158455806616111710582506561654691276892155612410191058538042499752531547925126620103421033986398444825057726879665594521850145128949012379815626463933870143519361505844637154544216171115207075840637976500923645243075625647833564958106870182368722432962577941484180298968314391863147159431683094402758919960514648972023877975546544232130716486682622584546173850773119258651346226995979734837972171250170177196207161170000340958239417531684854990762306589070506566962123546033594130526958432908793357920741756554451750596726417688320035709643607649417140756218026082955417074630826738075372563666623321380526907744418939942062307550535595450330867747791108016856127161223212565020845813031119553055458649760001421594096542252249609423829575158900917237620920876283735823989953856518790011411665627358832407238293197252458983604387251820719578221953838513285509591522299248256232301688872166731229705485440618940310628152939231299879429914980425226481058649388614602744135298423827044776059559755017827693468771092637334704798137733625875936924592279530767024214215714739380207286646288696564741247828203834860211310653054370186648671026326846176166573904983462721830487358939661899841251426516106674949886028332809187147192499997460072484535625183357018155302030592258513321327850569071638441684693646319827739749571522927510437289466743192766837947782907981805307814933485552051306269648558511429668554505459875797766044466859440312652823955580443303075971603711870972023282900307758375681571152265502513516919358723767223417279900943832643942122315583752774575627630331692460472924784774494265958457891815334509788735517688130154709819731219458702591617855613101210397678679679633782140409506821489865413406050060437153218029496840796665270400797216910150044330404752541853719571065712438795055848980997357011288628280516182499179977182845169687592405654562420122834527957532649837943232600431604570787540275192477399783799512854392506439591472970334779519541223030148625086521019986320898559762169791079997831866228283210260627202127709388212356072660627470232351347435024589974275283039072837182206052637975291367540040379011595051000172566407360151335043267015372598104219572994289088679412610526868572090606764623595033563040580819472317452059079138042696611542335820269444683062557294170720808357371695294254618620358151808450335266307009152349350970341870389485829459477572443257572894455943495664774998358520863062873031498726287172126866629928569440758197983717771184500713265857337206181288714894485541544400564636804106619313391336670229740154295185797063721828272415938992619322412707466755617658382417459680075456869869687389314305936804596960131487503881176775195580918940264978471971995276563472359141372814297333660253526812844030410696969784189755278379564348699030515940358967522067175678572750606120857802934309477283521618605576227522090278301455634149868873858396303206081412882075542084377980196889085313994046751565802515981180365535090077130403487685515423116544548677403831013752330832316263049561707144633421622823006694949164032748345356026687262571941578382990818793575794158675220778838792303724639690478447220734706665570611858779306265296453307545143176764552371606890308130041496016066424932024044388687291984138357620525955591065894254380681571026096753890069828018534384071720074611370622752959889511469876074058797649191656168452967065649913292839979911332275426774048132314687006834428653434049131764130808061017655219186823494690556861509921499426554701093943428583323002137254215171862345236163965197078374932098760512002063561554366388496060125540734922749775233257329454190751174849758055241275942164869193595746010244717943226424344549103490995465424213494423572148541235355655356974185880015650001403022233907004146059882413027951905762187014763800129870447640596980648637313161562762400591049517632263927400919403778317883694160506577356314962609357168282392999949793908704718194696012892764910592617042696728070178778201235874393058129998625465513106301157698077249120238153010932748923615908868158441829219344450778557211369257756898891186432683579597921270145951184284510567478741777362878562106827139038167677830805532817015233393230116476227774671697742517876124184769137416320314315110370507457706583498242556300112079159218101258021205748105304178412348677064992681354252746266620249824011911293908279312430988396767177881918558141009896055155383264176216926525569056069508354075841716340423585035496656618434049026062888182032903227078814861684459982533124880161478713810498576099338155357274402173823710165683643551817243285748082734029753237984508190487146962415186926693501692805148987268135720209570021573440946988285313248369145443800035878629624653945669153001796798224483485406401104613622033320908414636798992902325708194438869639906981170046951545411945345421941582405184027570741531247800862887589154103019919314999293228075527782851933795920634645565561879093971219304128975928829007948264464982445995085420706392833071885581882585590398530365218561614650774092982332102530517302226110778501423936968219439639390909420218371864334760342742404776488226168558088513148208873523481394030599975920375585553197523752514228092162817525604086631135115855288479918510496588367698432693430799729831974238257290285937925900819678549818953320093686827266682661028476492572956519402106712592840354382567147268854214347070480357318750273781916576689754746600027266428297497587010024251236460717078869855952366288780072049376441797044237883400214451181167639473436085715133273481744195779337119307802798672542411115850820187098139720524661146227073868757454335497732978026050544014598216810441658202000475166644796642181111497474520776856475003100493004408145202640610644321920792633486172810580061253709054162670570391220749320382065225032636435867075037625009343183785819730708580825758719995614966242809430489773080022222881338298289013132699669694544558693293084317554558725324817798151381594162553770952180783014631862143954530352549712206077218981032279153513706364258010909140515166963261481560036261472810679412863352838901690839068351298961365944443383100232086540519568511131062549801250266778091346626492376602851673998248544677595076981395574311726142045339416845167749267926746714515816929417273551902476817466843862222225758286221765085065503064500587842798346437676099118947933542722297653484987593979555810374427784120226048894734433360303333373144535163308401444672827138995893032209020332547104664943608442228677502658465554334469458966824483282007045764822798576883445341750088945005833647635187354196466491447517231440875578615460332410758086720108183147839029972877280829851338330039224826053261138333599936099461226939013989734237111307748849926964181102267900636375036533645372973691693434253238266711008302154716992428260216227322092305109143611550094434138303222702385232072795426475255492600814508057244784457288787257662276779193062476227964459521034660570776197363075474642988091246703069077943775092515612536634839707080577089492739509208174923151841037694436406249150422185189990813114619045742320506683389290996151141494009893505105280008009176179355732469900567884324249775944763202537815890860745938170326912092829185415757739657082273373747022706338269502548418163622820951058374610674205396886101457246173328441763944550069804260371228672819227831507146272495487308652707012194213418938581923275727515573286204696743602681262921195873766485067499736592248205935287693802180047869989160561267866836884524069558109258433000765374001310039712831509072554278652694048334308399059642825900457726879599636929837317752503138685631574387178096541357202180269158699830920647329784687765310536341910403964946798053833034955118331276577407697335425724200132926625160839216641387148979672653983726048001768648248018418454979164808666823875618678481187822043750555929797721269622932292233104366676657297086072824680062884977979586084125231421883171287014783354013319936131519707790696803671075696196715111419097362185245952815184984707962817236238592621140596719752839078935724654866125455878565308030581493286426674340572971602102801038353400830264604659959057443501126454164619127672322824355070121577088231365187646951659884875628948909934502904724718923555863512680702252952741405721344230370662980623256292509825982521692812459064877245963280565575004852073713708203127851834783482431130444654594782472339493575843274028749310613344314583333392521074572123651913660125400118488833883688345458046782847463512037315545862615745525747330610866761988893435363051189512409909943343434958646782756317173002436377675440731555580925530114985869150787226533224889232550590325064381465781184916883491921945426091334293442290485977239465325222632192981780118839433839095742394510189561860383244898883956905474343375433675696392442442171568655665936995647489293483253641656400328678694853891751931463128364700899003016659297771162946193094091163281739743700573303974315906599110197208990824801840823468653360743488770571832116185905821445543427991483648617079952141547157372707879755413511525312819013948551283714316809362970584961733427750542731056965329319927027798274531849504636139135303945065862194895343092423980435568957699273707466205972194758127493205409189896812849663626867876055341405228255553339218149395924014013538375863842196241703712856377301908334341396819219183047559222974227516127217071308351185120825901192752462341506034025820325638796746943832677363301675217472496462933308774137186471487371053624827527460540953754955780677182581649429352450251765802151597181535660548170289749407349339785069754333477157176360752607941582495817007701686660708570840423821015736278249570212487891002976734652044760795975187239189790073013635598501651228899746317594451005822794799426543602775693727986632810156378096877205202516582196997144142982578803416466472909841199726557156756108630425456839292612923656378168539016651128436569316085861692221079589073462947286155489201152421649105756537161674964722708850242816251787673210606661672759975027701923528576783283665376730838536769813707133363581159039750873461184761802910113253061990365953675079567311122451526550279614077768983675225817920502282200123781236816765739902978614972145323610585537900932804438069218370398188443143580244389445323525936555500651023654514140758876393992667320911825608623398369795502910733829640966369681533128512905071235372288441455990749141048859710122950447995146100531586455534741876963796683577808331997918103343668754528271159360159614297995596846709431448846024940821602200674706065286134044115826760619409673382656752447601472932274949409995603557485237636436478595059182052362747206704249683809984176760130926210701767661973521255557926711414138457577688863401519525401304728647090843371344643306796542407290246027617635289109003121308664308127791411507443626901305749997593495719309436425365154792967390733132772519744262520916357444485448844208610453875866335100549610882485228476985985477714676541839765554153036102607331404339953936578792034036177507380853115774509891447446260587815896767814034906511137414550835198815921071868107883163731376306365671716625710704963518202684921881499040137787857041925407035658053273138341045891230169977186188883983135994925997101532203485515818702355310137685978801298515265562159003429935949533402872922717924465764023542893852601911555344337549311169216637595756192436625106403935193921047123353502861720284772540091033136867211502855344806057408405527686215783056520805629556790581304348409802407461581685017359447508478012367490509728022587798318896250848457705173555529877302495816911684734220658678735793309864094341943886923910214009633158111305093712528537441886922342072899418480365767384596333396954063025610003658025112449836047240538916700209064673022694089236766226497111401232416602408368781360555450623152410549106272712171957216696468657318693055554630982347886768663829453873687187662589928886733141782628212056722165740055247000208035885661801226296521594255052028940579076853202345785277613994898851631096664741139786115712840103026608713883720664408426287550310237492508478072620570920873958729050005914043752264478659864164690277072813628730503605756817073806911429851701123575608590424662766378923016011754271394778895949209194913844135228524774616891594361505347512118578478790414980696765623984815024530126610010164175486247860250109859692339359733269214935205334321460324782606051874599692768424029545790806851252469516467364530481734151267715417513795874505716723847678319248463921064349241854172598029320501437018563036399098886127417921091821595397844063703635417774373214810086322198521076917868708504546182095570171550911479232293164670024810388104362986878424751867186416775897135279735826773823483867628878137936803862614813205566130543489155368897320322913177075216105592824795762010546690039730294071744599722130999555191678772679625176398163831780561758278440789215670167891932879956347519310004645523228512907796877372305905594058468898006583164928013010343893071631555419341083779352232180585282178803959294996959490363520692193895170496712595838357852809642789503820964317707693016926214500594266590570836116454624468538517660940504963950958772695092602405435545960424754135563974780058746755658579823499052716983040389393851984807009212585459999582488314975341651282157007034271418736871980407986733593325952607106662620102175427446540180358029843090254378047533336149320368022188274900237648426971673767220549032613313493307867145950109726896487500746915095939697950242536681864491634160149763814634231943442336957786133865799454245812635086992240397957372107124206598350580049269367123083518109274746274189265739083348925741820078052557925932930786879723899850201724728474063853424362040651133521099132200553784338832302285810613692653780118062134795463910339984885706476332709897871639942099434771165937923175226732846350728465007821504866740545631966315181887987321656124232861391561825248709857358895430247969837233576198744456351659972630735476834309462895568568535499617733127276071728497924443555612843525911051942500415272575457703118797209412043980264043695803098566022246094936850557861920496942944054113877536096867007359912642459919532804303386490490908657701072405688362518136352536515696872638921415754938840813544491386756980069119972800140011067377482478159770614886972905246529121020548863232804542095966935475661689289150141283981324006475710468285719881410035013389856280829890840623053318352002583710200307341399527347980699253127323813029458776668020066957023380318035862419736175017792016231699381726981771592084091030790917070194454950682539787128612704156688896617032656839001774783474379847491572981021722186141089848175285434213289670977901721043944684808830163551877238819858397224470147084350140325081311191053807959801490990910984488548294206344255736112491841915081169972054546013493247906439706295482100403559098697923299670975497972910192444667260191522809889109136076482010865852245909091200435564988926553995088701551800713525723871105218202763521683812154270215264404815482151874591058180670639344725066236057989601595003331896229966679926760142267187858447280755277989117120421553817212098640794973045215450761319208301128945651088237150696317976547474103003373804492583572082320569198342393368841244146934764921226756287523811093430795136116643239364900426466541191774581545934962488660501840883632461729670861055575241457997886584028745815893575282646695737584775930810771761814804552055219868815221836007742496120498171836675683927270808528245972070625623516021248892214385776958042450357963049150241771852600635319551704804638093299264118921056329861364571395548366491899541604592384928853258659785405493640147280076709747040347072889163637317483162906042419319261001926255944811990169899206955267968871702776352993098665227335602635039788776918640329883441126005645739933932848942736399728326478073124142171441021336252667631544359452353946556633599679016155497189098334627388693445886421660822424467975748603474929706657998568712055632424232051683218126215095115089104692082916526621155835952612379233223217622532550978394712929490183540931572703740830135014633210874003134865925676818453558303665945860805661889431902159805666115093472010269516797129864433975897600333574031966673420572568399472998523772608740190792502671452492581999493297135348925551188429908446549984062833192311088060962158403692135989222412537775645060824581369333047799455375533458824339544916799469781452016812172379933693278718819345551808230317003158132788948908993568645730648225398494947123488599896387132279123643725899186369412950166906312971235823913070367364800235134846075135202835178158486049260429762851509235699446942111983205396193502895333682490289416929755262951826308677957415628064619162799703879461245953557041824374563005330724530902552544140849584198623008523550048404388368516997710304768473214060171827903970037827161982468930549978280962813796499072454071720807690527497379013597343122992540194913167087269825550548317826142629016374917191269324190203669528750125117728624967384950469613213044484599041317040401590410850272960293202042583143371391125453108356941810337793760629728053156808764711257868414728986965011473671148100140390240039494416391900005484167115936078611985569333795073769755913689048595719517175437706233539375670175006628143628772455105829339029464788427183176203618241504400466311357264334123960806234956562865032309015104582299266183320047274376610557175503740227629425502893901698120846638530787253166770794638818122294225557418101040171280110915165527843589763497795772617894637895905160321982948613177245108341392726719910473701262123377919860370709165524141748983340177022491966911228056057576723233064827054974847237502637948887705035151285738230615354600339536695139837905029994118150547871219914419499510146527681719434349491031976825595711016725914552286461102168778694702690321748881864593628476793058938217821913379484612441655174055680761320155580752406983449709768479706042255646483525423721394314614220525171597526063999717653970348184447279311425090297415415910894483448087536865557908740750003301293907435127353305020882429201331002100178985639304043932343340734658267316888738273772722375325357721411328053979332876655018020282016172569003238515377444317944624478942233944158072268278776611266626745194873400011001952741139605833514709589280881510911174675013686928898803079852522301105581362973433657413602996020756153322489667997094949062878162812979815806194814497261232433048212035048048456965813310278110224709502327340604259994987074929530111003035881601348924413549606617351029394467871305067945172904982694711890298355816431388647592750083881601319304522798522430384602260847807520477819528802407636732246247369856904527889598721074702011699287212563825733426123684654117803612038540441027829823362054214505220607353015211326189092468662476981019920914019292708309039066984974475855585480540632869423348509236706028990442490936098042188366516887230577546163368096829746573931966709230961378366423662091117971393485873650936070292574768671589377468958190274098241438517427023348952346447341711361241382029303483086831615465208875705242273414588530672957959348296532660143725757218757618988911444528637493219380261719194695626678330818247199783480904055825399896886051785410470792563385937592509511350477192964540886220832992584700094904651472690600732812618405601722129304894429694475175499138738476583211254058926069290439160172187941816499560251579488301829750310416895070339216040616682533966920586273798705155107446357399301135194054598638832135631648016796415010200667681908355789971206539876633098182570316430283601843094613646221989518764560697195528403987168425561324815689254748275693402398789321007686745296303643970017178235585973372262637149565142051839516266174024611777762218218679906575048529617622496467066206959541922211130362719842687737371049115111027049012029671761641607418754786353032326568888008951391008642994368852953410404035268502392840270792662273599819278584081857680589831497981598125477954212989284096705492842504970380805576468246710825972551313502711355012636501983232827225923222093268549670607301944921615540712036230116352011655811531529349818417502709109557353465090494343466690506543897135895858100632987860106032057344171215046089544975970144108327499616390442183299733610757160096387377844611554211121624416096823121756487134351747551972211486965545767332651210435685601808763457839159662478030914838144000341633943192059187755285100192601094416128183368624171398051070075699405572576588390868136533775847517233463144560804739104103495007956414437152258064809988236694538167762316502363437016122794057011505384548316839597525833255168236050791208211860428742844707880439151930055496987000950387836072134826968459663817773381891128592053703270779766807627638876437887623188056953802493972868975559125735640245521809686854163012028154520857263676862893585738784517360841596043445050560020402688444636118813812660953248098152380088732583252670621165794508740767356962033926353450311707761689713089550361623733203131138907685765919148392439482286744091997573895044501900617158235651569648270349398197115593951036975565931121849031191629738760616113315678513924147062253658531999743007054024512337447027276808487498114420463552620482846071670122378092111482668534623428977789026808921338481959380843262953999719109150885265831523602636102808874663455996994764945425018695229808455153610997142421548404919849291226817983767780040374807891259864668146842901708818963010766943659926549885012448565138062777808175115706946522902759865980224649624740656238064491500288004481255865474292317107832537662654055846805255168230089655693911737867353951787625485689646389011032361310043252495219120693177184139503725609042241212197138416442127568590023816298115379750496239925152709690417203473087763399757053791752637216464706254331029875266881892178201008281949353353395745089328380541858734172029482437937843139881440228703547899625156822307310428939340324110118578970608447429972154818063770119654212719506398502191855345279059144877888008238413660150623689965657052048268720904120647416869035118122711432982106127980318093892075398220649215448108982660295971534032002755594454766357649205391273117231175365700462896448192638983587227119858597571950347421732366593378882365467249673635012200120176455526022614695039406361715827378717025365060501215372236652946542859962884372527779281195373928182206186270735058092483617050907228648358533023219531725031740379367683040707060973428580096435035239931430236065300355388958570262417482005048976892870746717576817679283484970139901519048851287182423520547941936355372128732992906893871924258780273668778929043124521913837824968250709243425633627063709585367571563462483836605847358660298415911214263369871540559165997289559493832046958280461020275139797978507728825997562793191970911536449992047184750785813547363064376739609393020352047561095066944616746750353559223332267601580732434077555874194538935592644075703112537581541716610806448301881018091177284120646900006980883354046837143284409185038167606240434896458599454089309601809164851955015661372808213960422244099811047607504765577396933440296113637659458925121904958332208690755909469041750183984804003224284433602342312897007256181374001389412986737175786691668586661260577500350148222677032447256010941530642612198882808674819684915464186690550805779942409903584492664564652226669486027675328466881115683137885873068141049606938507139103391530396767388423569245492065071848087942989346159556661600450505827221663037355868536522945749829205901815534711075781176467208835577914475888812736538751733491031554132292554198361877328036006990045299026167123963676964660310588964699504400128978075079203383123833066882514127903810198076566153920228994489738682989747640537617437676761408214502708058824991389347300123455633815184582043872209975318314335298896853437278995632845989473059531197736650010286918371355580294322755099461730520800796226174923890635564023464381216263024951267377652681143533303290993982888488894841995563976419647431887571652485330786130407581963066483312219438027804463026844983053335242283293851000000122019519979899644023477761483448027668275457314152085729854110608684796339819417246983519046035468014024851423782647956906644181560847075692847367041242821249254279997735824105243903232623630154512363519021639741179002704454183500099715165221716973051631250827488933294369063014099215493317752603947399823858869231139231829488131925985217761755462954206038929156886074400938785512724983106170665278898562289124216281150915923539826172750533039779967960249898556328818468145074574547744843060155299072762185931834091904731575772032418534294676538432790616733196266930627856631005195749774944968534583045395990060803812438661190534388233794198091810837502559189208618227749472677125935740477861053479441348931674867653860968697043065928502442376351314910802904741849841557099432375281060900953990165816453830314655554892318164634849138357603653784073849824601017623939645943919248358314492883354647019443941086077860066796405511759672893787824977602028281027049513941675722278173781404262303875351762664061610575454188434946423408049027546661560277581053420876280262994956002044492736387659590773825285133250269149334841279865960750485272261276278383226362887620105345511833027891097445003421479996448794277929733666814149494541606356703998390720960075079819315071431329364090206189675156680090377746794418132497604204400567263498092840737388536739756909842500768368756058508607213627093856967206939218913425217438140916683068561794150242176647720056650691278043830279082125129550994727371278024469074587305518911951468034864989405108297109022526584924915369986638151268490193106298823845623045638827942925982966271386912459723183376078410422650923293322130681195111055466352690525087475178988708433840912495325508865837939337994502385679645290228619724304187531463463080394896202557351162603789027990535162913699953321941396146322844189757016746485460480935676800544478609574757837295807581410351526045827091878003825497081542233318842486034419783535357195611518048088037952832341420683724291215750356461656931006733963514863121035696238625893956839221012090400290455830084426363411265840127486341733732946837163207441957589922246238235922446310130057841070881838708135352316303638893221053619733630694549928483173742326150750458234169842735591783389413976296501330107076755444297482969263056894853290247388003633305902142016785185097513550431857825581795769261983051586861775721411833241586385104333796954841359933362918752831940789732988090750621232562221837431154033421792620204098391872156568985587709005430991040929023384409225337257450619347428817306114161209817585048233373489072604775028888014154170506078808317830586131172974032430209029710609202355838676717907831370058485905694956356620928590220399926803484698481874041044856026513765789090746618953978926319130861889581021037272084142647074707709833121905603731481070551897059906780303590031196686374360590763048473221680702429195239333455040048361173594390926522191860898702560918128774524562364992246229385388985888421153417563304875815843676106560277831256365251610483260638283270298761702402006256291561886488270145593604167362705641631961291550287457934073606258931105525469021203416816767687607067405973165952379048710132388194142552602207121518198543331221751595157381498378221336225261469298985150290684190055136801152839724285675730008806949515455277058905093612298980942002561802980884711747608127954832857018490495624856861236058277714349033774689890305852872161294083301625826866185694381789036788484865238366367031714932425383001662145012643691737071668501639938202362807606875990889279126745497715098301041678118884606204707154740529523132925852945035341132896775473712022986735475637463952787518068930514019180878963634879929793133961146646755636219292600554009001949823806003170183571282392733246294325220040646775415063719697760553667652574304763214855347217035765102347067525705951992038736406797952122978711411027656017359219300213276503388434717478883882378214772329195431039224993422679433673012837598942059745488994550103531233562759805336018155257607337570390293932501107914209370628470779109451691919675301590715650728651503440319433585898242520171417343500654840953305879649369955321358665763590176731896942443201257265488345383866908285966179305735087462398634112401272320442269517219873644250514920007179404586381477526645549444526194004912702494542315444041049027676432633601838423823712129333288538728545813852834945530861404057953813544093487878811184478890017791643716418247200108707833104812344643811444773308598741468238604252248996998634247162802746446799258232290426192746667924140543235058668085118781950893379501971122811090418722854457243767497663844580792150965575307181922618363995471068957256490167711519071203670438363688785817616015593637104574093273972842119417121432704022106846234774235933275681521892357015767653580236275983397508040398591153040129318048926978098845983003676531830196366590112227873621092570566285457837454444145385641589258067253443447876139789686523336044558146921526513376432733131731515509954600304050879952459778785369864432539322069220726433469410790104625292834085100295264826341209747080730583906806772611774329084462090463013551600358357396359919168021634573933628771097064490572182354522820114849928291389541749311650416573567303674502795982866464470658505058136845102314152280048598081922219673485553194510144846023824584815139809907457773820375307710941924663883463666062415560795296906453534853181520843478197929717401322104357109191294945596009819900247595518615719888805642646281136852160186286469510773429806289918550573574993323929643911277346056299896476573280982687044639730142376502070373292663453855573296936529617442855206371213888536292786498798879917038229385730023156773878498070744059761288918951224568551033335250106467114489623018430296221871883628041009825409106116241165323696107276791611628182069081252376683241162528587707869517549570683244600100728861865137934916617193149611156012839731889626898142971927230348232334271498664125952604732679993504498720909293239389047714155342990737113733029298993357080711577286011187640934329511722324435080677218968875292663884225285825761083201160689044151313325432450468130394500874228783853909310480580248144605696282551380438333762589652022874273562799020659298485292469139809921016555502792270927100898181212423190119075033218792822949661705054511812634011358515276672807822385354927445772288417935107582532336038524289480152265028208490298917208791996744175404392440735093169668884738483143015317139965800040042674263676823496248418376944275089215031110224773434551652536576642694132255955953186146453382192318806354340087194601705106767679599982417802425951019775256098655505662256961798943625956040287472045442099858490934541371003121149703213259806933184323182174086506063908422304961696310712421164939102077304883792980692236524668008037735579374507773641002211588231539123620277379177344340531814556139354672195387183214277428922525839098301210238472132054650513774698929995016515149140966486544892489749014058813561039711823216546221142243778718318701214204984290368787044246653936940269017065052252701363021660503159219258310684997137074773040609148485023417261625859891653494585948537360081020003670149434406160982911302811028970560088509517963185966678525255735613723008507817745736035402115540439297057151854895402509094795245265806177490596364323108870458859241260343692126868599297903013256691666395868564831695836868241492039666541335947515168885365413301880301779057574429841174315073101993772971161117247640537139743693994749839440532128154398235696542049400249567684589006287560139623596934739353502130689696723830980169431373691775697473898460556208166500682518618542378054585555344995262169000144527270899904275108130048181767131065273449616484521290481155157914420504400550846435198097977554510493763307911729143383453633834763751946095884616077275412255010367187119730529539384426953109809498205371545669707291070247959545058983059586936869388880820621574166474372370574638288481081733072054539336974618952983738594952848824041697773154604690321463935315319376208456215035655714574054290804368587215718038168881832890569074011669796535395073060627241176995448956009061685044778153186065756729543709932785464194366305903890784383099532859333224508364106250709997840686901610410585086599466760526814692929806547728696974701569158679761939656215398271777297684196576179993044837621335006654819806871675569269829927457585650800948211318314122121316769147527370443799721367835419941062315235175230850037940409720580806399158640371008602877380880825703024996684255288644814635725460277488976864170375128485765896079332758935284625638889375167949874597249471431293099477474617718199503294320943158556638347791571025467237130843915325809994848588525482596317729670206583060760003540766660298167071630230873919865804751194235824949247901116158082180160889042454029287557454236333522504379863786186104672031853629443635058183773282659260094722226775020384937106655033358348820714283824527398826722031591342859342766422078949153540127151107402678232206638808562565925116901841492163570302363822679090455114176967702659148789251603828529506312726140683392615031880838360096933294056843475803460454376234984739710928160759342193729862426382241050814033924431302676656516482169664857877041791618953746539609006830312506017797372255636755403747997109508456097578713621961689025420575892898696256639149171757621175612715302514973936861530948757125970535102466219770444667050243921428801313182844174994026367414351988809355279653572251403028273884607999604958548548154609904671185471074909121859430273324253511158954737137904368554074184971659636759769358490650331089221126052856584455376232411021636155276936244790948581247757590134979916886458628374829691218465506588181166364225376423732481556027680582620294433789405520844334385306622758294051780037567606540595632365482249397483561523208635838835273203344683326529986531696040336508988173832429515377656906747588273973581061180064701525365955623114454485952935223919962418137384289616233425585367575614363180642851562913687049518300389870718881700546949711689891659905968912188083493450916007944528161309770798571209278899682024899686132214684580317357974907006037177626484473457959129447329302012400549958936309183965393270753596933657649066358161414689807697210356550792948581049562985244818387542648081175971641308231001167974847338807080502110399051629005638564568126986041742318560573148121354750188042329867075201293083162703787818547123907925057486776689012515751338783525613143893149720685089813504905908762394020236343619272863482702957833131840064972803963921491046817952099438515861217246141073620195781437451416269391812692405143348319673285821742679697089861401292115708309940343782607691194521272068002169194382800012260870021064759013688566130326160457219340490443044860862074929477411279175035889193393412547582475493621982043061756549935620000890122320605593804898396490244663279690404738316357866721623712542183614815402439662604176673982024887244007939364095853968029691770507118417321487919281176862737808971871536121169446168638430046690635566594339905659872544208566102536780751028536602172320117044970983627944695965390783237859078367744133988803687585392866577549624337797171634506421354005952549993539277122984459172783684520459108705186142712666094417006888913023690851503893180509482570089849059447877038450547510884955949092776473195534145430279388776165815779753125975821243854840507717607026363765903009881877065924682713690857307042399515528551897924014547184170411786058958898862329724092254260055620344825210395230614851340808826272636682034685296825990990443436582058307962069771893187386978674923364787265320223659911350819910471322940335029394345399202895725264270138487930137894343954297165757722396287632592657194231304247368307531741828605258054956204339434210713093290542236709977918318403391726484373154189999582411841189838718194586949528907215824960563116540521490488951555450706483346808684647013518720381137307595475853253728596133394102273312749974281668808201203591433699731312408430872496377866634797441568950624204215050622691065931395314455680566422837314549809021300501056761262434015785137217564955392280222907143812903778581548585819353074610670375755680476240691582863147381229568153359055306239257476451016187274059326122580674868079909062812852293397251119248833849598222897366237233859744001470142661916781935876395961136917960305044050592115189981874600579176461777025779221627105377249564679124416160903686901276593503051707970372605978516033882563945542528409620890864526009643300641180567968946583036346996058885855612162385757691330551186494802870528132480392905670614134787996722683551661380650255353155801267135182446722086884770773083390120905930972585826881874742756038348223538624340287871399406329567946626310018319876624135026081223826032754053697847773578692827571564227651302364903513724949929823221464147625741553124771357230147753076629759368408792860956605895436405894259483727951918915775481424128435612238174556583543680472048445495680540574464834923882973241749026596977732877648951698702776575998268665836086733645512421424984044534430158503971239430114742389032873962897982944405099061710152337536153692333292314887070095652550985494153145061516148830586929088603944890942297579463349251700815483011544073346270472183949107488584009260399366365468873957067533911486761390028285067508265688994104608640205750579714350031723123125026955605732939106117396267606718485222370657824420548305698967360613500123480368949309771820261577244192268166098444473931518835030848133403870842392508721376848273592803437221392085557962388746054991504084474139247611148023459123942311306059345736166610907641897944871302524195569608126741361312205779348288892299507997844249170575309121661609364922659501638577894148174272297242608267197432172637948176378556286514257540908249885150917925974768826658598290073921440394130060504005444014135731092296275606268679161104321959942386776543860346187053330655291265462284701752571616171332584937020757948119548801381685273119973372720465485398401706791925494921629742574631242952989213684044205523872602092228621075793265966084699607519129988460213291304126107636824397181266667096255605397094796151774873729074804720635157015122824883442976964316813489702514605393040603248163283821585890453688981179555851278339003142908749333273959941819982425771645165505094603913244695765202051449615142467834271538054129239573477265832568557798234394222129263740890556564290690894830306867966215217756791102899068865235282851209593744920801406414054217882768168913220471093198975559260705414482443325055921995046815491624377932546154166357260596355852139741163934254866994639664894922988620939324311895264236252497751899175340292522221220565033724901861445714087694215816551886802571046438945101841102068521222498490065184087638131000887531414072798763979083964025980593141477558180964870115685237856697146292986637974005485645198341656511343022502354936028138962686898471046494323232702278255977648511654370016419961503976117375659770734710189721290216666571950551065175339784178029013808154154400747565088311024482743726297668245112642445789171441058766656927330130012481108584773791632043368409466530275059439664639174221284519720968848562990439970546978339968772127700025607302856706311564044800127226351546899474503782875118095317275697987597551851113088598424982837137732737601801922182648350456533217857191887454942857272376197084312088083275684107329547204031388727404969935710642893245201988366926774027602079684742467635106102246348849267414317195075157432823348364282982408650994934763882685899644534477297520608370096842071896325067985764377615160073477684770267465335202495092456621999191645953510310179493080184962699642336572703434494311088897724717984549260934073082642384004716442524914770391997738178163707511147344990192567294406380488742023780386253595650373186157827777590911363276509427993696309294153477401849338206118320143914371651624331014143582926671870229749795912698489259038528006607605608229032544454823363780092493420632883134508680520567373216677125534470474325200415032001107575977546341465680447843421935140315682282809255384107753096178114852852208385066984660207627184545906767352533399892754358918660946860623566394909005887773446008072287863581713353635889463784883013407591923544709157886023840717533145660627517946024501598270122576909560244869632057868372227869469718439745037749788815913816077097599597705206832523000396218841375668814447250748877523459808614544258123792475334945521601586606123432404304669989477327148373589109093207345135457203916893604991866197065837092594073041097001172291686981687712820605779783811618129388657989617834375506792261104408058864711144356113640360688314286281328585297764231468899075032668167439101406228466328178048746851006562081374405397316644811184464261729732971480337593869286343297302795158833446214539495012985736152087742075494266456976882047633941791910009980354709538696706870085052407325138956412237554646070243799276497015422046553679548093226123821957231933259055691060062904728287577052496584042008779659527147571700917337120852400147674086716912256350937455347466284375499342622837488993380252085227224268004393783985806699461244735297208336442520813294089797933775442970609967959082051216417789036367938150595821745059204968769609136051209274232426683017822548757940832778757911643588200174757004245334544413796434503700487325763589950907639939657813169354906902366640475937067218734472487837630290257194572218767308393373896858240895529922582511353085762277560280858407410706041913888822444130952907872779482936208957714566873122522935155160343710719851344814588691190259643756698179310657937573061436592841948083137776934663066180751775672542802282255932661446471137085786225276045987603612485997027908588906287110400501093487156262009382761790418519042843659454944339951487180982235690127256353353152136664279314777282740756777966388425258784555926293457110772691244137811690904766838208816357835715364869602191896823092673887108508582827684794711030205746003666833829007478757124116308481857153612155328971684860933532285159086070675742535709092749563109141695441750641216444891129028963892462249135172118370398382634199671685275792335938347379807784766231594397031502962622766384211296502034655879565015566875369007640817487740820126180215605600309294102461016763470740589201319851790953678085194238224848116960148356511281241272823096185319461634698755660739326891715606683893320896781971517573215624145276434783037996069606437741835828457845637426561766820667732653507910473379639423487403118985541706568303876097262810593835854354706903533078788935391321353131934803461642552111413952818076334445530457279322605904138428730246893249546074101222876747898142628578615487546205074320874908558650628742616643827305264580992753853696687303306729834726887368385117452836851493433271774092090287393635869413022741000297840969816411354384503052684037417620254695163419511745322314604209937244801472617439694783515482153136102785405687620859000529745961865782622739692814921063980775513822575230404420027734006668095695244952162429365707226321461368683457311351170567516856917751788920175015726737523738661926756336803965404430692181343374287746662184511290879539797729784295872448163540317777997020264663425299061616588357914417864404900082859561377874550325886980181363659935981580816083168865457414922448647061983436822714443016962432078828254433814022100182846904604594015068443414097130388399703036572630824969753585373903847013438763602846525144279184208083323438509338026955277829324270343805360758065552781679412028508129438612101117363866079309041675136232577037025720518990486727138655717823796689967947248560090661182486391903071536248517106215049115867488257043561496294166972886593963201315923688265302913609664732253020028693152537319471124220924337960725114612279126448585155179408335563329879269011059647970154040886970588896117830671411591560257259525703230795340286013539350709225339870435522350698911594697916417525746779090737543866166218883168683447072713412362908227487047819570501649977656324113863175366224454734895184138824312194256583945460788001351682538518782944037060116882185518941835815175967045463647997914439009574840796626671615621508965553927013805223368369088352620179184740550174636119805621060063604960684261904451780515872413121608504476067865834976934150087722357295256894398660009869994926950952463179026199544825609032948695417670512633982783456665217789181632082806710269505592134693709068035175902754933067489583207711402476538329022580982435764410247805763920524065676578315109171486843308107700082541685913595621881941830695882348835098646278161860188849436032408961445942632615792210164286307254669315187628713563677335412270967654521164904792614451265551683270159476267616862680125803943935618089293361771259527597702700887765148594414526092528596603392795994584433350596605789646737994566436255304068443094128472975817640314061947155370851294485754273376105757898900645261762140127384077235489322542273784243926913034997237355249925509306827158877199362156024159481766945279216416933387175199463033546168269478337939325921923260068142586414643187400994199975369683000289761782792427550858347451228891497049727171901585393783932945330929715368749423749390033132964169251658685516805997611562395648439512991830461216679290803541615438594480374437854563114861053947573701854015690354943537506636066559072205125966107912508483207948574159689525934416299090726810622592108184001600771028154300973656335337637448453892578187253934327034470061140403673748273553393708893285884087399106009555873278381380451085654103040008180719896073129565428072514615916438118965586209589313194828954256159226612700200667591286893117576297386284858357946344073624907459904228848252158142012826316591623083359109171328329447170874802023258833650067495867291219264933557642483798421331624860941724359530245150879346902578982864612460263332861627216926698288677775062454485131627208282326018844344186776876258934826299839005291299976046093639771372328679210187593145830619851101849164329964664379294782851386434327599861900916152309801777185637053639997879893756839847790489246569241960636891612779895210424413118248829785043527824347395344420493546318154514691959689983980027234869835746153824477885405468887249225172112536776293118430944388725004914936230878782663827466514606039695282841983646415432799558964113123201711661241829019460700071826417260361116516993789407493389440138700150734344900209000211133771325079980532048910362182235287455481928569646250018564897861900601491838193539996146003741094066847758800429385179393809137522228655739347650144322021189313185484616328471862867319092607339575984570370078009900760718989062812136442365052441103878927941855829835713408099018578443409978503361743738275521728222924025270047371764021972187047224360293048833578630294788991382249531215030154385489692321849001502667184479422740608874729375733907895770777425348595868339291337535558968734879530766184866031707255391258911143252111896856075727390798050922908912622637888404772439930335100542526277039925900457629338942556318582496533380653279867039947803162538997897869017124376457104565156501178096280563427964482807591393516817203778419474813698156946771835203505300153596341819650893780193001003985284827402719702191374498967951139520820237241570632722925689002811872901321285875907499198256481653055794702098074145852791878204352394142699967529309043452879369292472284782960281046361275439778369276630830292178960901975856481120396179593085539959836065874909426943223434773688126219353874354575468655146374147810836088500357517361354615430603678850247176409726031352484350368647159911721023957381778325370674078989601776340733255543220064594147435753855561357258176540526679678216699677882759494657245387845477946856269880518894524380841473002775103782832187569820669020329605538249307666457147289552967284916723218849258951465375525449185236497219362821322184123419409463305230799556026724299590997135306786123334816239962811629989080191896305647454304822347076257083604557732432633989331200470193420556780297109800500862211797225744828798395861379489709206598534427713863511229675075996992161954385619258688909743911266652346107869762634296275799289906994217761352187401464166984305728375905667668826918612333588655422497155311006358562599526662827990818947943817109953570845645133191941124462893878742514135269664470265168976428711516798055878187489544518790160577171050851878351043310003677844461651351140015816961303303512858902625105830009431313995712816846881185000260474346831980548067552097666840799457683200779650991250424231157078660237463542227605278715962889270315463979534023812422277072960033196407620295001833058739627580100031327706631712569707252519806221626869011307700328819562990809253453223371757341041210574010538632646804352716461317802484708544629175017996724814236161959125907102671866827014870134777624787898640463678739376005595376734352688678728978586142278283239616635921380497339092301209759655347841618584356087365821336779175868725350212064401539360654555649203694707706191688407490232875855304765104382244249971416922710580040978271866018312812452554418240797318386752731019470030864146436186588672580862616174496388522103240362307925864936889615323879153148516394789682491779684629435684680567327584903728172113865067163065088247730557004551324452903968522456539771212934122679948700925488242777949441993113286587123561280064233633777258246873661638364657947252062024337631135462925521709795469968906609508306202529734601345075338908318180567435868487330696577607711901233180980983164971454965477030937039659074646426990188200668234639926480653894459619433072042207952990894050361965853082029277432340987954430907835533563078758390389970015228987918559755584706141700532659859074195138859877248696866577304684347021394863677182405011935372809044074634044897400342246483141824679209908341363171866332705077693093469891890818709719182686511696872338203562040177860878309007093978551367429553612847688112846182110339122283663056205160279323567470638067276011187395568036569789854562045168230335235576548400943235178828402306793291085414089169332354341452923452585636927832434519082101221746732606846240904439566535936852849356325259627900562100229250394125734295412166358897931655371259389660541107786196992798734994232726407750912889116018406584968725503124256366571756485079441555410783582111945276187444910168435220366076931048575418057716127106129321201795725441554290396923418876662907652149544281285324005520790899493714429004774808620076365245911988372458785983785761643138714382204766624053291423340224508926951275206068284865580633993604596175781451059093544306797954926137498757775997719218515592470977057263330791823516000318743719253996238096545381974707206335531450333606524057034379774325098432217528435381313273846615271409687483369674508435747956064312563302640727177125723203203502078416677286390385549668843408473558870089508026532984732276973297287548187502428842925119067044097122556072766508171778090563911598757008645952969614463404204381049302036258300542518003332799677675215398418166822878484758163413536003326048357322011167840877908408966963699834000588656545093298229633053998419700106554043171045044281936433936899674906261913988749111329195896671780139879806485116587706691995418919479169072868440630883366325691353029438681789582873005659760695597436077163162237534837131651858490411575791875824859695444396859596020951173451324064326125113581372602422029720284831849425270189637630686957670011373839393372648491579914812714309492779465410394840653190185584749124674557070893225345609919130632535698493083099787982356741142277825135804951980140077085983151008832835681739097910543725260264011671789938622372314891541899141196942075657513997729040853055222378203485793865100717810711630293412134626998630199581504421384987138642792909634950184950677482165831415287492011222433916379484409419076526221719052052833992639757572091110942532728871898580465685913263517195719478272939340848819899276695531418410986771104794525360683371260587249825612879746184430909676580346148968157213202793785329316571754401651481998766958744260524910873436530875747108558745102973953744497209464177165022700733304171314989125525715612821202077264183884073019318073440263678763139196731615759129720481011712392523784574757792681169635318874273611708741268576927828087968252352026197633335365677155708133899056959892855091857015552595664851748470755883026295822861443424134013236396340413164603707323974028263842227139069285991447719479928140711562681381051746364748349784966279164626217753835563743101286722335313738851701060343583326352062189288809087873131196382063697033485551692076659730119698747567348448535765206770057971171744840240085378438475906830639519376469408244736243191804318802780794848164024876971409297823070532675848453974195961422269182269282194799577020274281615325741705953065058598933431619621332375947261840929837095814816989633397161131810443816875966517185832963985432340571753298733156303627481432969391368129237225668443751686180323389928370033312328115530558833996233001061479544573055824041134569094883578106220669834568403823429999238198328681504907128847721930464542749498147092215072574152533891999243594529140895174278027353524502939622858898049079623178386672346604761026999348703916310647689717330036804751924141350024254294175000271614873208612014581427109523474651872016979920477621062286591761286854245853238099107055333992562857793869358579282749860895870046789244271530972481131348868424153437756993171678374136570191898844198910088960342701242715997455485566079435921417709991008113852847666284676399038793870068599365085252069418429198537357111648517033486741052167463002495856811667949078862764110120710820463191849782194234548098175527210731503512942963360226707270773901677315904044875271556844532219813710401736342793578354464256374454914308372592792968242225983456821052966953523582712667772584094611146456074563566459277535565591069579211911425176745116772510782389384451160149846003661281487047410275691546810796162922841487112571724834964635034104305593487052663353201117576211516865962394359011642936805223062003432488888772980625442814498336097376703316810777531749746428832843012585588715176116560250944724672776555055490115627014452535692874272727537943767401548214655195739990126619281448048274250023972390345176227866823098756290301161309974032261760829659574076250756346886701770259756753299722325690915473567653328430848187283758393184247881663335609026242964599138659309775534145528837445059568995876739628192674862481149638548830025115934296121578865439169362383871393737863860233831850484988657015180432094775394173895351861179007865741527900300951644319633329837032065434374927544021431030314423444870999668545803590723766250668209987684657727135942330978927890742707606596035527851359788469138331051723529629031560826494413062373234360660764115695372230844573068139172154474071854405955778428109614735620001653231663486991512076666626969814765522118850556878582188045009176432562367941627534137658875195327354193700769623553671652359206394371540216862526726294659931717932136631841028231122076797227936676266606594352467862209927895278483745220406705578442841556932415253627114977831447117918132862212976817092358704115334280596319726359467126748402128860372359687824692656301691481897928815898814962065709588229100634173969098644157144411834553233176703000851507615345595587599677659063306019142883428665598706897449782128860501792011913016745098574288070613918297795031996078883024905421725486689751835105371279957213254661278123408000292300541933812344404676912489381713071377611892854530552111186000514992792631373170007132780335320972172620983409961741317566895390328741114404377295278553521382076317077957629100165827424910334556929468030905476919774115207157500459691028476762907621314281104422333555748413040609729333862274040292123939363756276904309404993694928090287785670723986545889579065225404209614124259925770791356402070751128978007526264835219238014595900173641699163012281942772378292238539576966387335822125440497374858927165470850016047664366425352129594641824712381035135378463392051641279271501177832474199853871533422648428199637042603401688595096007404026520466195872901831087375492753540085544717258984853172977399817854273224920349675683675064680477409828405533323183836236004150446032281245054893858598480841981138236035249456253708568535109340632628868222871002298932509387837181886595664667785456586781323354903188400763572308710677288573948091224548247150320539740024206503105762206987082282296327638243687433531163224061237693110757044477925898841822603267665229162446112549094190205031378787340361785292620107206317379965495060161587764533484183470645427003981415940951381038530285271098533495545797830734096841582997750296263388693385714971699736131143865678413727137081597298670291025148652119529072567136124486273443129191753738364881552761701098428717248712686153961999332573202304052644082525868053648903877909914257273440301056733876068271343875013554861161774749531665135934015558099725888933673808280683805481759155132466877089540947683250056774859197384076949176860322567348655003006494047513103497396926703791936876612721211822126811946969202969376215921612119702967626777275303917377504730626619977114336733274327834544275696275069657382788187209896328266221584407021430662462308825181746902378322213932664053739997797480723000941700512342956164584532650547993291162857313078713616152740785604848352367269195624373662340543307711324257910777522808376571902446497701686981896875731150254335164720763426680876512304596871537299919443242423291431929909658749650087351705380844047967625959974000752748976172124897005880446167759872686594425496850989577419076421520966049237764084279156977300437566065052628006815600986651272712658246499638512249856672185375907365599379007561164910371924796589421767087416316121015708133049509349654271095140561211699349719666506790893388241119079334659748403774551353255993655014534967549492930003775400057941823753947868406741074339308816902128364926267333904820611385292519907159375472754534324610557366961020908494563096906824919965350390671942169073026049696612261527822504157529161279482473138992990514958582869206681774283155835357798460502662915825571997683662018724570623274105021483129906243261154074138478169257442949201593712265081503219851612459595212257985178408994744399666950628687005515650449687777215116668268072219358817813014611825222200846645610142149225010019016564049112468582802284653116043976556986323292032848942536786702032746487110059156593752737400221221857846813831413605927434707750116423446617957753208330355917720254607621439637731165227731089944981198189025158428819409322045115531564356820018445259479162275935357862524483378510083532765006615920818530433485455157860586579675996746929070989297596772328941786450432713649590534033555221551150271758931354297652447168808980656035410519762069168526670154971937252517639757156520472337570127531184092795628536896243911652747653364582241720599449292331392138705148275023613896975229423491776101717264454231055415160301903022535072192201699971355727538870499925381071350751526835893631844058929235443248958312865048052062388590186757868936148369142831855156694754741322984373311670804870668804054287545796103071656888423787976526773364605730949665648315625359818693056786252967766394841561687877057136021645970283523189187371589294816201893543273021357421866111975584634874348014096751114559796657642659589034344973334072665551501940973844568041829040212014846578049026301244832708743676587435141363834329670822519548743458624587979155309543793056650713154626316977466425125231572342632838980234359331066838414676365628121602556366563474407769780482051661930255156083389062359029094654083324665484037861522449925962958222715227629637791620128575945033796666864626831068034041153216083767453042541769480408725891443696356301201211384653731799357592779800251033065455243288892763672443123358207908773293148991810627476862655240842967342452929681301160362354536706292496591515587016471421791715212012154257164637614213644375648947305439156638627913006134350769966172918523848562376277139847458571330709583855896151576636822647324762594999035836489625292596463521272621503962715142408959797520853709563405170905254789769290355218406523936974744078811415953472597600096231244493418802702766679591043229552856320208194570716585301382174087824194847300782806922447987378335268640393272427645125148835013514849572501435051552764825633270315277067260140922256831836740920007464582032631710705190143865084394579213433748130344336382784366590009636998108617323273445618165372854379064256350460447746248422384791526427881172997434331029735904019590047781318140783655270317121987181531898517310491384176341816850083557316337318554878745541845353687074889980479193718921210222413898062524844948788360757909715344824870693028609840933467282529260567341807398872824808740149989008880036285636806524846326663577744055334851326547920206243121581462419329618780602525120406752202889803080730250988505670524470281547641733679102948652971158580335769832408640872961227493405062647266772415920656044287146814777806658589871476194905729851360040332336967764815074659544205559109047054902433478746729344236071379548415098666851847405747061910150984023731794214539669794961565486214016267894937787738426260276811869137799681189587050656769819882057480116630872378336888318017029650164314205453588377951284207245500845659940282457641754151716793583897079223708257007294617834967479721232849204383771534137348314808742973794167633967514528551378424825843233348031242637539870835243696802325531427873932979918201994361126932465505984108710638423291779515273402387073394437704406719629449241602786134191540000414262027590860727629308707226205238720000261421116633869131840673154231908236212682030318646467654081535990069445656863546084883574182415257690270504654574220194615605205624119543884223440118464163059442748264517493120959923017837677622295104538223187202814438513060395261775913250126398432059773169834379856934542879294017799245077591830643395881108934329828197271800989174847287814590963275722941685772717855368539092741268371844328293873564364138375371326916976729163028334894755314411821321385821595787568635456233012724799091822546292683958844052638310726112110097677109472046667957952687884707974836696583201244212255780906731375844811922326044684997518632564117559938988218225941906376332316833833344464503991746445259910742805209663495993887900328910864823674940701022087587856727579882834134206815214701083982780001947572030504820451245867622550478334365653780265217527734729174500253621994137233224300349041510134348559593977992173185906894539124798284692672052970444273209079793903666009028201874982475449406551945483088125765164618242586221006549152236683236615927926336680653085256156661198609922546248578656318744762818418008469325322311040057863011970872368355344922074574083993065853458863502012866999624876216176463505115595159355469416163877083656162317792098789954304568428006575535860503232366745451896856531390888376138604461264420324966458637635488393213191634089334238502470594031046133333336528459829688592670164424915939238473592658933083953689418279687129419616874855036983919143997342718373800854350158301300842222062739269313469495438505321376642555352956788060941308832009822237125864006193992882769017847983290213689232555633629907657208497248901294032730533763444304404486647568684094797760426328385838728023007113764030881761868562065540548031461703795166236279292774642111096275506525052456500785053806056319020367182663841424677988181141789256592945000750655921622026612309120316271815191811883129932116510793135366611427214602528033491125933576792817343224634048132955190554171258733667868078349076160499501464560175140684370907414642318660058400669855739052609683646042179431353647640025403364169683614743334790215569609496617914275647100832071547469501769012862825974598821540209225597661872564114096021981041678836388340665084234986341939363450208307019086088746858073558955758227406099967453121284168010011737449210071453570001829610850901559240355421503997892263787491613841041655890761740127144933230869348031441683635327769241219193760107549971244468719829477448865586688258189984908708456429082790633261038529380038685641607640129738806111895296053495429900372744580479030285932474389657180414127365228740430459641432406145384413777172103874299285484373071577072183593811917092676027249124909221521136045625363083631780365366266099078705584697939391926546883440808478986955485985961001989087490617708871545593102285229988770871578498211330981956969555672757945611186977930766169091941084758566340357545317212130230714549687417574809471693211168213527741137903730409303655252445116403210785366466164297587682033506197453167281767754387299408007715757940397380386569653830475760198239114268221392810723058831736000409059220590362806958570767481949643834868636770484498490831225477419854274357164588702436388905157881369487945388227512991647325450030978902814842705938634125245068483782143901074985080582751946661120926589423834928907789308630848203687591125064962453472872205739512723101473042049784977540326434801754512081202996391138772331710358309894191242272326913440139303942823564390178792339622852750529064769112506011798177646463481494804578226150656340604488280532217583215736014430380400592184647409104555624764958199048736246824758742053377384359377799956786355627811493662170386279502429056523447795110319296196797327470593382167500445347129255552446085411873048695857083347761239095313301860298592424775270792412714918317875246231920620168561387538792424485397296710353862931620290773998889708058204714881480044477758010025330171172595291734364724407536077468854478751926301168120582443955940122665716896943911205431216536274161802099475894277623353276706431694711668572995649883132770781198388394214884923419060580460199703854727230049327964681058443876134249326391430393357285801838806148994798011363992341300306693841222986562115137633000631537494157305033443516240119267518389306455671244200898165408678249724441811452016733384246014759065036325349924576554622783099578877668935473329096701711313665306601755910546698914723792177790420840690894157547409936908756874028283515354415637700262937592476022691952717318786785457242977045254299246670830052024149301631251430317370002726805025991976536062450765384321425772857621822331324463580487784896752549438582893076362423914524855977228886148940470307265799338118848209671513631819281946181554515208621316307339164593107113910004821030017603680181919557091822802243971788445122657155372572970968610077333266366604734816548379307243592569513445275062718147151953110433556968204183340619689847684879176591144078170476760291102240062771556097952018333937257356059471327216786013212525758782849724595937343990650275067386258360349548736075916203658280246192105312094753235574040900485293989707477777027864801085512363846975741631733932236200355737106219791668645839467311262038957123717827745827662169537582763375238724635963955307886500818841806701858120338623983591975172010713130126943243214785140148070096447929787172515349325780682488833533138002741467896967842340838532997392633244376075202392967905937414825351067505859203659458380897646380823916258225066767101955678726226093342467123174258827484460296462523822625835073034192051957887422997909912684817682656892004958633636826511853896460436301108583064418587334662139191439898331417351047565930402694431366286391935732311124083827507869824031805220066014225586814064095417759940189355213069118754663357532148665119955543822694453014929227476072714832809517409333415246648705182882604445567501302680863515380145389402349807539261051365896045685498018114509848430888141217709384825835750113443040032559931385373486354113722529993025216862141926899527311012661188101071894591581160458757454743731866351206143727772802752913312392286394200954180421511445022756763245700997153189178778573151852785220029648457355712950350189030361207040457849243104144501910428541672318229195371164836102561819233734549040158693679872607490019621982154533596841494953196284973197051783259522571919777981555625295838577196036934480410027004489363013378054408651936044420302683654259999253365641128393603582866844403251772303265207991569174227218676150190940704396112186617105561190302394779816035676974058793548307398946694511124206275132296513775983963955704997096447042459594243369634910555595318433024095341998672327770008538371306427690269530080803093406901175406348631257146630635936077341636798784343158216216135698336081940231618563389445633432286129187045926763258376599553621932596190388381849999355269076906072545187441858473369620844597801138470596220674193829885810277992083214385350567295979698675797703439504454322190633178536514539908934450900758639317585739437708533207157032999440773197447863115887927425893799792941191894563233457771485628280356322426414629934329764513686381467738058849915471944504368441210586824646946802479639713009223953135240624524396212182191925467958854824692116298453835583248944302055223764270281485548086699316054397017028914672491101253085723658705533595070488317810105736291505540484496115936647410153492514714519968153979892845896297415447687050693302267628363575611341194163687354739612423690375539670727868528119194780926169059487100177521314166404615478853365064696272533536674075448085507532303234388614841598279439598935885263220253221664647457766023580850269887296990688218972468379599017724284098306244181623024808759749291209267868580953053182480192060939656316074241468219208164969944453718122644730553253189737920437201022682291623570166280893085360856740737303250448720463278550124985962119999211898107838408033655722173609917137042250134296624338755382668758624466169133557041920018144766300259258430796098022416574602348778255698529917972197670401863200956025827981497338330995453695398356564093800103293843028001203400454102846121450857226372582046716629357307387767247825678643582058311237054909534529878094845945422591485362779575538215238681219629602191643700352957221080265556645053400001476908565103787944878786942575164456371526710297304976408861993295620937161656035062806737740993094872398933766760265473447872035543617839942838181340456694949322659185417752742828190674789063183339046190949104741451910038847350672112860547873052232550115459481907343068599150862994589870759717032405353285385434328550059142312738569909507244661046015250391412151384668012302774891004965254431934407297803179920623055474804421124450680601152836199863979787922704083908663006829983895297581319037436623565785166880246289154588057801718321586748840042049939131896701029534537644409712898049344935021768187397761964909896082144958613326013593966023593677647358055469665383973890106859578285740741843393453953198209796573905825650429538812568381624798547664339863024552961289026128657523248469393932655035531447809117350781788774820611034705336098111758485978385093330314723820850032561635178211154428265623360928748548460234743098450626068209712451252993201873358916502985454871567178339198605605542590844673682747848224345747263601533973894207102157777343217281928766359887683849150610191599961429537390959673639235578453495528409331412687540565760234909973538730183519059415073179257999019921075631549341301738785738178196306447686241430561119152090619964458435131225917554046152831862972440401451496485751040566099316391690585385662876485296538233141259428946195104613162861069793738672135249113447694810361820148431846552937978907555930974537884353052908626441739303257133439367568861215718216619387542555120421084411760249138594379745655145935402780823287756287024171923208518826763984548110466321110102055246191103353351983329801565733043525264511322279640430442022348544017381287201188507756818146999969569042069195567736165579000019588749940233748876454999350910720642740750460086249156719055650618494811615484789203626274019889060064830124362698498974744481511523772177576510207145393156565282779682663629508716301087542418296872427974993209232221528819216198771156281296924413826210816232252179495551630103726697509339450815859813209809596452782529228832808626655762128991770068922012250633010485751415967381076592165436114741811621198043653636966267348682558510267960269566835919278743113181668198774456769006334401614425431803536439659231673935058202048434206968564053179610257966585070741073274472073773890322261610945559307477440961489623698004538803858950401671413382093021880167582089480648329059928309175535819497506566623397635202306139865672080543339561311276490554790456602400410888845730953537238144414664368565548579952532030072911807035000869704969201061294398055211805659233502821648942393461890861753788614970473739167609037200444616825495891654001030592006559175470796917912782860175706800545050482750518822129026982422484053619058271703865360346280204682204127593533270435993019435084972870996930516155043991780110504150076242065826482638903342554331585382807028511083978828904406816561634993905319648651518121310655381917124669304661952604923926623735823556971363487111936188442458922687146043001480748928678470488452388671425384250700993247395543935191245011119697458678522258267269905059310584351179633810872220403834089181507762101990813345988432342961841859450529627307898750009357409548602516904436140517419239203218914774871434066095768126384889096442221522449075763758091924332932207383008673403367216318383971252762004074706559801543625673853807117532493673799232667422746864082359902197139462930253427929893721220804000357980315279343499394380996933629312961974581640882501762795008524909576077182581009284216480217706224044737526866593922876326443776457760047041305769154178377098740195556958735084796631260430297036474027355715894410140460491341326634458597104653625433534269791838777060499355485222690842856655328786528704653900913343124157710223376884037977430991857867599890159776864300824997547688493333957525715324185427680096010662287418901565404013245794629824445386027008373837815430034822727114412734046917049467306536670339310267340200898427325805708835261415286033898906368823540822777250705422961486444931086044479529157354160543446742090696495471507947660585989974813835285295031986437861932534646174890694200590175690679094514623693971214529426594012170670396168814434246888359244666053184675840393066315166123668558700421885043431166627414401862058622859198372178883865928851461323352549533797699707922211945041430229382618028267144995534343918066432735856441754110610643561565484407887504656174995076823813059888608367898398415900196583829973275788371919952811365208630455110161575006010472364560598312958850068507793604566054617488959433896374619856110838096070353553163003950459779272368625342828377970365017235635345077036259083080743644481543487765116753490611045368013890197909559553741491742809842125784862661262089755299015137275961461211249879837664638632444941498734344084705984782874715536473101099978523002354834350970957413461441153675650630445130630263935976225395052674760348535409672032002379451422031718999204710985319642806109913249156200142915664824409040003217490686755506712946985361180723999543907505996079153865144820748274340602696571804889103841496643844818959389459941913221571598986620434212016624835119333417670751151376702933017758590542950472790476808924117663086713131973873145275151061742663696353408393176091201658770538643550030011262283203860035337450357481043732430205195502640503115401842819862768791893070688222220168832582419009496588011664894285074980018869972973943091074849770811865653335310442948392812822350755795276069612073244307126904260277257540461723703016537006314344934975990865476914429665470221932815920127625445615116204869069611805872327255156588346610085741119753684292965488711126717793994275932463895616887219527371651004273563730449400283193358152808590436374228727821156759056231879647861556849510132252111558434156095438467798940680042404848941581890454723460263608046592132602767814775057785797199189989020016155604666312229779628112974497784402682151970820709865081944199777228512609893473762637791534537643640948071998362432568747905924779131511224088523438627756822069565444407444496158020313256392888618654814545110757492802670291620397351180122065027751200745888809279476510907130051661450013791533004788595816406116491591721475330941473898199313463953657973395118649608436501962758227639062071308264661242251802861559661871273014857460652040247329374393419994535565583402545576539131849164264027291203460482816119399209757368724368956617086963558400544183620198410635947331530087357393835526500755391158295884902671171068966565901080088658305928272509050619061939929471298107002197479810107418794933045290382018429509784302191680893084204136559779066231120587135810890849276587124864945331498021294764623316595237507289766709086536174206234589714836924358754123079958518013134250674837114059283136993065851509896444398139469666740752810459223628272026580302516521461337274578064338519500003267865158092603232702052581046726546956383113311338451013229228764674819289144007813793768204676273486522685692415733457829254601384690907866329938159597473557084028797967968268758053795127814034748989655528060765780121489365146138006543974843127570015751634115070323605927194977811489483574774268620557383408117568157206258459775853928246356815347744659548246777415606896771561124513283217739308773116177458814978510427994620235008853136220401818886652092161128433878287624115728614390782363447678486205545291149578579468015229664280816044192456069149048335812147751865813187496331919337939970612189127026450836486873396032506470772484091762220273946148696475795893102714295108854279972580410707819969288770658654097008497120833691821676767789178569347750688359281324588462380056760447832609681620330292666406246187024799067470755243660107546035297480564350262993587195452548465271876736847951693245389265001582932695099946247930064942653816282527854818552691123359718547927759113040100395480189041776435578888480627850798259747824586177906983058770309739386917507970944081031864842131722861357649441243865246574810201730384464651082698286024838747875618052907946329692720060817147269329556867995430422785737444894657363411830002760517825673801440400322187092463782405523434479235092219404705814249513195029950620829674568437670522480816821766633968491384612989800478764643044891662275171628744313899021739917053869746104184916387231015047103565749240569588712728202115837937969394380904415170803730989866771848847017333608237899976550073055249780982649383279659493782753509937763730068878080598577688341544410539085789398282094623759634362549654732669211620493299941952003947520026944969968375283343547312436605765464400546836005884203188798460842458272745862876036314296838654070536160030601780060155733375600439161981344906392249618565996362466461573530235804918334483561558494342654051964469735948157332479470189524274960398854047324269585350251176296712124768725416094465679125773511368052310693790819687076161524273625486623254679846483269008452483020683403566390642697623431496649371532431982650804050456834585858917546575672263420061490801346643432489677225918868362394877603077678300039284674021671619964745551935413681413065315333082031776389476713097325738320677413450764865924141881987341535740823890463852808514042362321223202646077277107684299330400016371042951184165599679395665313440265621735896775971915535144438252554322603146115472980465587051015559212035852708283262457685705508502288887375224271409944525290130447251362277928433400458620407604134664481766318679769677889463401824989862051362046466428361774342366914284885296359424488370434029033558712044192959853315622199903697994761477749509669205774390528920771469863430722078341092592682587743183727009566396759349233812612077935125075317479743060737038588416369935648759832782012477013093093845095017384561033502475649819361633449980811259890999752421295096680430866284020722669557796072367069870452289358444030420749926793144563974546588436056889026461935730611437126407176338707357463958141516168515717255608553029614269260408637608129785288186605918968351372413155768330609564412888743569591117171952854659191085999106278965745480376505215141605433493831937968375283409389764078444616733230148053207171993552433788700906517180791991040825823822629552402943683909565047052360582561413496528968296738760267511587764913301859215947878010660708643196831800769112990104101281226280005800542462883259538235790929613105325152539751579038701968154307922257167821329549807942847060708373756123810867583140212544486165942882210102670239495294466873635770038792702434604327971706502394038660511940956366760193834893233545211503297271806767497938427725043879468884891750254374056995296364508248404343714418881937649087846132298806001496626755157770007572835643104006389515754884146408022567730648787704315480247262482403964736766977014962294701819247627360744762553277630875054081421626194567197554785949784376469180888687748554925198447916735691417278783061108019132312951767355458140327157096372227812216096324395156656758949552018947303902754734937766172846916586914986932671208734062063913883240913181929051454483466433468085927554002472428873522732666647965231194532624712854064360551067046800929585760721469855053979055332462795111561966068443132181865054658911144962897615904340330375519262446498565770231206426134293216086634461325424818869900738988253371142958514356825203656527414896797015883162595308820102288855516943622393949034034391442183210083919229250761924889684712804781668454583951787062489228012735628749560700648988240233297178271494703582541674513492566949953962261939224490836805082029554159260311051002080223837169791636638990429003130293871338916054970641588038232920289744683295139004080168155183519049769438450681075331539753475007179629008160628689949732583046071127460659103157549387474869559255121547780512841263659134041046190111589409560872487857572004104826448273853151724355470249948224696593680358051059099290700575959306212736480452109598515480765613201320081027896126899494824367787890167151456921013224477575843719521622670658479609136789886795201308781462366988220439064672979064900701552240203443002284423360523229852619509823078132534893341193835524552825076913341036592725120970826590348244345343072759512198941345310602698777739764153041937987895112647576259566052993097029536729738675397929016633178613602899493976617912441023430307262489790062018071738759462320948478597192757334325867661698094457615223938943384036764705857125389496605533122754194521354329234712766839941860516311217920451553970590312709052030876650625554476506525438507908143138965522867292853230548076339190290339878131434424412590475212408417531551992465871334441838502896125644156107830959327731596818633379782115315923401137593203212152670639110874056139028614096272894442562584728026517786076803746781682845042303994646285413846997303276933852997212822716351606750367411280630412814690993220109783940806448407958067354160402035210070776650109057737783921611586598371178487276370109302503870846836218229678929772139197143266132940296438071211092260439221356235371139195309723810194584684557595236015146659241891666231793126488932619768736209167839862034748315087293996100263842548520723773797617467987984285994150585117770044210216155447174275993411562675244325042731911954992903910257157469025023209893067027540253918012010280352376738055780078673495728319088557025413148418213659114437758465499706026468806551398889471939196785071907863837805325947607285055396336631101379137630451729000191721491909528533937410511555479316451942965755961106143006420860846694898573204606531933627905677320803615666799548571818569027873858514724333729114732224569210784843125329097376839137171040886229869670761513996109737462898463409502595851060981568064983455514186280877032889822909499910481635087066439704050319529450264134995129288328356917534916362440538227955682964022821892589644516645697775968235503862269809120662857625295063613369019208560045572099794350830380677137624829346983207919607945252695208722964588168223503870140435310106334328987819336535596637485424825674434053544454677803895481637932484840598546879815187901369532630967816670611533038426800673614101575345826879264130681855819373368168991396816151780048179328408197130610394194434323485708612186221112199504817815604987747377271344479114549914353733039037738787084977372279176737720445836887350926448936298245912758317131091139425463246433707260763184272811868402402088432536737389552742922755242150662907202125541130950450898060345603359594121707096390255743128538336708439594088546790725702136078864095717783897946680775336413228335590770147319094618422793608312685980772188705172990481867736047902452567176397640471791745503899760853909496953883159537973238189039731740119313168456708771197695651754884634926002282986052424854651221090078776303768017895173029208340251402029420639160806278703125995930283881136491571484094709165316014587069570113232923863393592200342684042838103099448929506784829754386753042579864861541628571479440496143783715480515387617824266531140427045828881593539450903860285882009532505656498464121364956570485953149816607357623665122765566591104937005079613936971023830117912867427708446974571227417384199463168020008228334111053998823648660523735510446747082636456894901173615582442416286517295146477094364669747344588951713210482543251077249870331040588584546195589761932374599914420891168421942315556263914196110135334486925362780953252681739175243418670207858945380511313135927995879700208588422896357215851752410447800499041239176765441222370850427712064593013094219591814261836836124551034965353868095537765205860828953335494110150904170510706351422962973369396724996338038993703130440776547771289413996820011894500177851094309605262585482989161538816269198761899480766899072904688622839712746556747175425742973809191046288837793665072462413388376621142727837615715189151162102129509211244485521506867313662603779908200839052250743302324823814804435604050288004069137839806235769764275066479434170059298381054250059957396485464928495091081458581066247010489242764277014864396096246915823991474951964413470563859707597720777843034656402837584822939031851059056944008228908562151793135152632775330205436573184729556725077931351196624823681021451915860252553462687321712896329334914157355387008849501898110234084601762915333549900370570082711736837405307497463482964800038258759523251537589539644954627922636718041183677354129274114497656168501741200586378100803089478345686443996431622096972360430187582528700149875649300579780382515325805065544855982599761980482692962991020160095328245544231948395209179281497126145113006477238984812773373630539718404427987944552095012795544864524384035041061663523585486819722753602776019518609242622600350951804962412905106984096526157123240349572234139315200085604731102721097545446043354706046164513499251298196095562165312173637613560259987090962682778085468681207260396314201749741708006740230653519181734851834754610304446149189559269115283486547709077946564443153752519567345597581953396838637156864788047245107769712241528084636583810327577266839851995359879181464576141671226614965450476163001152217840854328695145033762704133974172056839820391629249591235174631242934614356946729690391097027726131617554910578198982041172396074645323329058552833485859201798218473804656831413481572653370941277299859851549219834443912777009775449766120353237416889442735311188545344892864583988482197021120756489891232122628241579923123994130532539411411629574640775902021757667353622684211937311907452401511521512461873412574615696142490023314432403758787277913026762505389914241050752912156252202973169638393575701167143843647169263831301081225600389853894477182906815352470516994874236029698838580472002520355589302507803783562294806597022227815973660438451839520566327037706752687282959081942092051040859418313057069140987196359654119413937424375115038389508782967908713047165411252468214473046548645351484102779278596756293275914646181524604786465781411142833807766744149462221770870254208390106010623028302218588276982037410440654702801680144847437666837725946974281218089585893213282885294118892106965727322977512106747116630469420451823843287984049247878142192076980751453116268884238125299843527516054422945039572266707640069595526316796946237640283804016228977472077122931382408225515487204253779942527883440941727014328558806960588939369934740769398724150154311914698521376002585952802545773083271430600436328184553589603214181862730467490561548683374566740082579458602137173953956220413820173853293546803782430536545532015952263112265560905173974102880138869821296573648436129925389017234283520140420650895713050994399467233142288538380503219196446133484379013372130283609795464152146740362466975144551695072615863351277480382186066022747074117272899002231382922834688783549868798730801809634610578935222976549433264598242789902159606731704739389743668300984621499745975518937014809069864776137190550717873854239010507612046865563584439230331363956049776422338680619703186450841362321131916342489500863521595985406003988416697991515043027506879729229929765710230829877986443535933969858197225859643412879147492260842565002638681976623234191978429623359924757967883881437367103885084609703523454359132543225814021378877223288088412157632862149717644809096311963093937904287998292043801014865243727903636743842538963890097895096690977849684925147985885694507807572014530463326688894780418820333480336681921478174711068539378362411851183401976577349194710154548474789699526695408037075321934818369938671137274953234362112601940403278815159052952106202291448001816204620216617867413198937253732455119187440761132494011668952779248746154944688711938856851839481406290569501681965714371945232765584794652172480981390702983005352983523758088330051872826993441592413357477119007104538881081483864426201894584566778409492694979052000189523189832467732444999347286088412064077288952596837585192919211844620260171597551426787326902145968183418425372289287453922040422043690196514083216138287735808103659341463201294755489036574989154805693900478080807713350475173366355308582723700035695135514854474730836352885987594689475916974668120224339801313743929780084349226082112194309695924560087536815828248514878013792795256474349917110223255995532952688191545520017800273844758302226807510914275871328969799415157791785579511108364681010397633054644127079347803487652651879522525974344910356949670853074941632511342482366786717600629963817921354200708238764474059623692955639921165319535852906128019558337624749223129969587318286213278234422761637081149159782846908100577872406667989030125307904319544134308049723233135272305055241643175721629531115383921671361792829280126230289795508689413577048667968819235742730366487907195265592988853781652926323119565936109744580583045980607790446893794108589362295958702698031074932002158593302083796780511419875215229069576521871801037928551937474416191067595310193772956799798208991193079977966104941397159486910254813349106715118152132749356002912806312380551957156213731973328738039879902160065311674151911937800144533620847982489203164454648696042476553408242045588259966210750631267901760610640648834432964352608115042974095459535206885638511190346236097201705597704308792917726317332046877450100616314832813074003769484565698406304873085932067940737605167221460868484141649892253457982716204225628381257340129377030614840938397053889191022923898656228495265436840993012200075440559285862535220906643940431697635478441592543982889092450019632868719609365176991390833121369941321764429408846558044784283910697885750301079326194005866720319029238075555123864550596024118696165245580716943736944919171101169197310770803151543847732716068931253282913188733087130806975821769190367015618734015818798973881137557116229150192940764448794122493810752620414991368865068472255410244813838758347680711327637019323172687755696832992695555672870752693607025369192551773644679513463595533581481107667929119772087431262573306806904954557269030729581008533035326612540974570002764787871924201394966394618020928367440713473012706682556034582445811524842278272450653859619980994855870233942917236261901327099321487820848953158237582718585373311736099031528514304326238288282864301323944040170154359860489010521059607740840612178928615503523315021130557008414068367108463738288247915665907746092872662297803125591431973901156448321847586030600898641082192107624418478656066117059927652190558729062598166414607180577533727954969036290896536411426359716557860117808132950936272082046357773829563834519659477253902462038023689870214712445590129224070888048893430026860717255020998992635707217665347143419236529219087622515393660382888046622278387687760761252925390601763828844994966097827003853002335690778001284193743875288576783601087798819388042218138539520520743156228879613954704548220713105875685989310062409857905872680067959540827447126380420558973344452846887927782093689382472335729219385269088643867772443251417618109462283223728308106928005657997552833283335759373935224639492948180334895019829261671358004734437768049960396439892653954557917177944135295380588355109423231256128623906546905092832467767365224588555926512557862928417330932697528009489026848460820448746787348657391888884223515386793050688610292128839921735709763393083697988009555510614277343389051215273201178497009155625374380007611626540821675497763975819007994323954461530454188081284112886422288172363889848235274990218804289209954355128488997984069666848847841450635286460588442441603504419888612739859734860165996346572187448172983438359940064808945018240192016025754549133458456596133979756884201839057482594703978725175371816886038883859399068162546307895959142457429989614928001212308005241749754470577105854064570424008156480008226650377855354892480114252489984693777058886723526735179521871100265269645550635422474911081155625223670980398441822167430735314815898023132986417653864205222586723553006537435584056985480063452121469307996399754243969740356978765349767193485411600456754132416802197613722734080948087291819105638915700931531458712650583863404957532911527850953033804085950935159448631130630102594336190454923569561011315535033853608294338988256901010352929460795828089907703347843604680977212732676895864365207328409396382297971253446791377662763980314665703924368059506054242131333028544000757157848776470305963706239150605992525301556939872543316166375490874222801154730024848076044415723096889225119503594574702536908435574561732837559286341090950161842844471241952747624910879866311333836704225395541492808834227120942670462185770903253556501223658921267907753111839242071206603658010692417440753276871771458940779193155738170342998338391286764549598521007794589492165956463656491456146851841480760371039979851384192959239737429977400884400494905923056515029520849459329675346143492473945013860247719682766712150181703439486456921565277042651990239600501520162912205488825176948734598746959771579932584479150980546554090025851859653251231726505416279522010644030441286152768039323182571647429521770011682011016076257322894202131824261154754189160996347205728465300721723476015859472522501637635985370463888576827506977251019866373796083325274004122112343155653955595428037779283939267066870935232036421498116055605226685817407608001245619099802838296703603453074565178487220378688015236125778668183479597736039060583666681641174872987831696684471625628897337144288983178091764530974071102474703937687681114348476217201775112138130990826460265249346136234370374408575694862104081483193759006198344100229372606048437811419833322583732665520805369501867488032158647071254911444808498672408770205225311919574990138378187245595913430705255313874659484785312925650228920960188735052866094365500747614944573718294509548865850975278026197132688200035705315144559732338343494381258534261019602948048554706367231589186237083959488242775812238608331539377306477816913444577518103223578298065540218559201034326918301943844259006332964536633323429929120762196908318709404680486941138824532304988861531783368661471509924419521463886068387056574616926474615396406664248230432083810224350305546936854782314503451344619549809962042647989878831790563825150335815682189609335493939965649730511486199995157093253934699472149883014723092662162176441983642508228834070929528649108882377760818333997702959506785911328539278124564726191923540651951137800213858687047731128345676497681227478198558917060542087246973243558821093253189355007698497423540930547022391726957230823704798780486538085699247721974746641468992895159054227537515980367117000570846843945411513844314534891255071607366682545432405470782670426035222333531273780123976795437119014979859269507903103808004398532003412197552952864474076757720697986757401645537371753046590471442561869331253036153074783671974022291208293520087599043218706674710309980292602971144882802008678325224219694153880965205800755568007614359509613292594947258155528225938421708540827544761084275345541950701502188414108476312121629672801052103676281457382587716134406296050523458620105397670971801394153496742146665860314416515278877349477332367651302546233057018219886236766076461265593378393955347758259940535379755140018736444068472882591645725717940977978852910227901102699767468136981682811123687569238861751410133348704452149873376297215643931313808692441424021894734925321055168537114086360009310873250158639091520692851617061555013472775101287049071964864828966427951354922521443923077191974614070314163153762199501093372946834796080412105946339699954864737023766124535912215187336611295222906176830624073263192845903943498437753022379475603808293934306783483231894635432336114137701496694352761377396581371129524864056992667018905647031260067921292025648031740861874797712986557036233955993008081359419061194916354484649130437519637761711044868339147086727027831679319877256305349815851611699574726809557957535119302347888759812756994653393759739165465863498463406922876672041677488800187770355659531861318512363299018560613827289836864671864958799859515946331346128970271039628603594860892755186187174664374674198093408463690439625727143549503673184691592077083523706769493352843557583317408792374822445343677483833048037888201426556202972735822929134509068253155760467273433500571142192077561529944280961330816845890466820271560363887737543688715408049913630584879940855711436992180069520715220535516042218404426408830468476016241273133524964403530149792965493338246724965377760997804549947870717074325244480052179894494254645895326662180368498878386572921233875781360061491381701758261378160041631117408064062009630657715097043155001895413769735202490500455226824125342477150003219300951029276244932405390374279097930943510200458422083072876030884894568694392176132849983181068669988414634281453358327499691429056562894100861271083778511739352074756909121504214712518336310812453234811715100973325553515203174857418232892452443718122313847403920284479848872445491005232354962080107729583649962731199087750991430988279101182082877884618080085412730983231728016306889309154682170373035110470936209459203874937503528452245275713635653468534186215178659655480930347704441874310714401790326498701862983361236782234611568815075077817755114574972681798280140207167885965015689750447371776369444440388476341114250376849664003694926705809927619709481501794828908037968027893335556567735816465615909025767727084276536960550267784444541124084137813632831537368388816100170042514200547202749731534652899085322450889320714084287464654017224080575383308355624797779546676037171692919228837607418195190636637185269896822150419161353584816001455924446127435039134598739576797383833366513716628913754253388252196528812069361577799584817518454676791055559109070477061239476318182494794220726831962143046005406518642381128599106591121709162376819728684580154660162531487540542150538819620978593110956007813820882436707235818254242748253572446901772805837883066387697993882532874576120080147296193861057723559087513379593135391233235088187786594597513478093967864046786160822063355206621346646461747494469843642963715713057978880929083368790736282703178056237470501273734523184120130634625946605793748885073817063633251455736069435845355392472296221786078173466594200696008931403955493804717130491051220590727559324987196871931081996560697625573777118526980086375874817837905500479228627733919808784685997260480344595053293164314429344396665442054436867844523530980878667469800382727455339383774045722567832080803468505206730602767655121250143977708214986307703106889085051724985630139252586725600633193580078707700583535854468837937918385823529154101713707677573162554930607648864490871198442059676135920035320661323892831915994693253238915757817029436581874919133225813473038685430723291790932717453147737213490182737643712047435084726394044103781816215777491281596486725195145894594544492301737375798592707169605228411380143396847101358266224478109506228644170013764441758235120545247195395511697322484189601284587760416728552062430195675683161542489046198068527439452272658785953321295815736335366060436891261204459569841175977599832480073063229363300311211370038214190169409525279831395379247722034976560557909484242116013818900184767457615332762660278514317221245680277516435504993689097909378364989088432858016546471334240810611218470177131092967840733487353813729466348309260364771973263886729825820545298493285144799140908227365369545490053678881047980896199191258846225992324346952223315835326887431616626417594306788639290298496765735017844831700139222521165928040475365383338900165038287671839503150851530740120845438523108665763098589970505733048406576512440006763111715620572219924540213572032050902305453181812334179967530543893060360144982583172023641789643181791619781133579407769192714472833156747013523210749730271188631347554433546248799713660436400701745395967206023864541019135521576034645655610367971062403819568571508942252532902518189877168860166550948386159044784566815800714720109433695477928534498276342411130286011423874400600214131603915075609534724139000083058608701882041426725012288509058670472318664301672791999307677829793004006602481050029505020387533948505927635859013988299242805280594917889948826961559163321495829736584092458422289627907819312667662178213845337251636278980359833208353736506481935702321649182152623246116861153691741714091466602331213874328265393727145503941655859921198474095655248200187930369028475168363492955351503901108773812042719125257994547143422325906519575628121022177191034452829557464828162841836513068581633648274876017985030681939054376543825897506897114520326350676968062362844059012604240525146139219434115329290850952437628034233075818299664585729690039831378044811080624296830580742414111850182898251031334825749502011090492310676490035873142001065849994025913307564432502578750478203706578647349197966976717341253083585066145016368137302220260209153506359765941939671478908159829320707936496496159775705296759323780051344644740194467263029301457378520478400345803702765132331433306447055002677910134562005454242845724186481147866792386086547270463417403069440570037962465786172935161688339105509872044177615828618126576889843465577258733047203954719169981736673688011462066100596750850948879804286129993039506023294109065003106697506050399188629430370742851409527520471669378175442757706746378902839082889657915012547944441785638692263123943052082454909509078089825500962958957610421296434136667513067208178979449701528336493734362944685732652846354182398360610259963432035273774643832374533857303505674027105964165225963173395366157645960272082984268971691677042417770208034359383573162127474849850428164207799247664935255942131377351248491696680659207172466854789140852443089281536259311875963743944410235974837190986706766679218086174097588083875939320376614561004744165868091418054333207624386086908674171209123588503014491911649591288451842400496945124137811091585522377101801738963229855807455128404622809059933734730300978347945280140835728923813409411987700098775281600680123717736277181809883096861583894264389982448940210718685333547606830770502823340030556669307514034705461674367156555245421950805966504965373487403444977789323478004711047873214016093190851069377577733715002993783539223924561245923182774159354400525933058421820798991652011871031293330032068283591004235372017420648056479338714100501445178568603144902689757172840105523752410566709790997808450264261251690201273707384442623998922932990727684415911195428126996790443263778182167608848652291188783487321683946661481196015756846989653951722230612915011997746577546531203436315003962904533874733203057859997011472107627720009820707278331642769826959440139471957020617939043245365658565608502705077259240310321191370599360601214065233091369621822521240294289156579725204686151202668403879462946173103158640596069850386794508163942597372440976864381853099227171058218574610923046402255506184286159303386900706606188300933928102736738481623774784363828115945152371055436033318615423289636973113843942139640833450631147066863497834334268021995390288047677371954586081876126449333784198795621997412882536749895749344978095876755210167956256561051341174937858103959225228583173810450898328881739009025573370029614406591661782405068701719195534394943310225001726219325543250787100513647785798429095895997594809726880421290329506393087722196678760440291400606644655721727163753241390548850677125491634169652666268089489963620706483161946859596190582262070377583501289625773898472625104593419685099719562926533974627381526924886328884807813090062769711335407877706670742091856262124946266594393921190784985796219660592307071815096713087372623535913434375565754992894405513527958979115666385402160152744752314015743311408261480493630110827470964258705141395796991056483213479206598806334043401074363755638681908087404708304220942074264362977911581118273671866139470784733336337427237633414326897760432104927586520206283108873873293276255988927594027286754339898601268945146030267217261921786663837388062463848397209762514401177889809727921252254560851620486285412219348732413613717325266457932628275623898182697549229862662969693812624918881040041600603465712225149090770041298329362448150050262181827438309485531482627547920141041292721603661011391059825368468538787727957357996586173533130586816965251835495182150059427564129152316711014428130656917034297099581783544244122971633489069260959063447595100465263316906205701497182867172983181143469840054269715221403831820334381031150815198293698325748871692657592484505757577299797192697516924578739085005693723561424624919805393426278480023382162772237061561719346772804685730986376129998985380117711068648384119177162100031328405283900664210188131768430096533829767956813648991818119151155680978528137944697624680285660423997007787150511865225755431996899655414850035561820346749557410906778104662384132764011021388632146944592585889730608942533487576071039938289073918570429442240372106289223271921006667930177166284582488184502718988934621804592695685607270320042635329393538718176033181734585434759712330312999233635799878914316984853695085167052501384533750154907611216844758459268471757762925678014137447445981817008646448703342500437517637729835321250150196177847770745502740741079202143769839663295163043537179325490189109385439563395662793540181793586570902493356442760225469223730471664091498827078033248556566702331502962079881349513421617196465967427047538315179262748893687946444483478043140895370276281911319399220600648372927399495651909730030525330981000040696684791064099195077491043525629650173902075257425047321179897907010303431139358452384779933132055538983786463989292804335867602050735144873566065057064035240945285528527882405842902569039589717384852327977864199208386676299842445060988799359029642304765848647451667557289700907827299868683248657102098353613604968703609523868855483477329703263572206984403524290459004574813108742019670887188337842255416779001479215663129995264169988685549448195261334169603237858803562867291423567723302076689718049043711339520117288344199960135876606929310061431127634660781620584954101344662782926251752978896034356031127299536861819160089809110800019825292843351646868320574638315208543646198628975727258405479663820868410485422798293026760948230822083346584500836433893358667480002710768543705280532919437174506898985497163655314004015556671820490587425774309905025333716080889331194737264183983322050560740405077864551882300009256995056823097018752820795094524850854899903277919335383779086569641596356173640508580304370484962188461495597641297990593030944042616684279103589010066258883305156038540367537981925410249493820881986537252488786352101112199785822456116876032469751120109209710137965371610286981355272104875743459634270675141858697410181027571774232406770954993672617651619405412393055459493621543037653306201290205596156688713535886260237097084720849475112620520824394845157937590318528502696011229143571418238310232444156497012643467034041505362240811765519443239093084363356800188160034227652993592986617258382493111209098227002407949796355353810971632876377057023402441573266296488685077093711825230276098560331003598678774408520993689525061568683973042796305029314459120191750362630630637018152401181587966027301970616737720452185113448737550721695859977374999031167246693676784633088232104746382174472294388451551206251883236986771369960869730508482266265373882516788200513794173013336830362624032215529956454632893724551150579738763802013097297494956819627802184291094233378018976121241457793575310682223309452801954027521758848639170450719232794748071282752789524866579781997830931100863055207864791316734825377368070030869243173714647400170953707584415387374843811694675530492300943975890899331591250066004394039768176065441294314687734369998302921812390368245157150690728227259373158996832468532589800967636086703586718251291834338172092423234831375303130164313277944685900777774726496098277508521902734249953187302599819843707148590499368657924097977969135391884252798250729106099141172029138798649191186441443802965666654498701409579578290087821936443526061600408246408640047643728875653078215579720102065497312387730676338866111136164486317786701579665265411770217841328976796817827043012708954076367615636174984776194364483230244266405739389503020137671560123589146715151052567680831333026928118429147028691114530131729009106536445020050304978768936297766897912676058904502058522189859820346021269436632509168668144116092622633638390514275818344403083553835376007805303168954527306855231490651263531700271209057939535627814237681525803918472530974652263322881193921043785201001587867354731395444178332458311630525081613316305095413426584881758003715419184837549978427177393074723591483885609341883651424009925796374299587639325321326695304506865675966521082877824481792507204310489115621121469701175479886955309190080521096215918949232843431305944884631445365872224901590205792672892480297344612065581734777047456433888156404902910978430299664567632479515298246472567667371861298399073752009225722617238665549791796397700588286479849744052433914743600560288913702555618492177838265753111008127162821621882586419203376659652967583343895869120691667916408779063066052366754941143605512091253919214438566577977913735652889009084109219234595548250618051879911619927793134688933241586808787732270999797711847966254455311413051273754610496668782528310360560640667376179783309216540896311811759125721275985759494219911606391536027510296263099217258299823769693683420477086544971073823007783529719238119350820561869453264803685643579888436563500486010038306874792347499614375810001902193541240440311046111909873690555092497535690001498389479697938858877647826453191901165210971134215813157007780454668003252237931062824576292153017658347590457414243399984961238788893204667309429597207179306180755479340714261642268220318387348900951805611958126920520690597464353725671106422065048957515978158755368257574987438309602281905281981768105571545361850220720302391014820078398066759422449909205664360551154601141488035532120765811705079470779398991408889942465158302015795036041297013700738480089403910233324122939704747238894466957836876286236797675518175242339796148165806431499644709239741305460348577272662929055413582591701409201010068268260985033818194980063446239002351128078020259714104857439723953043750684669880887374470746299720097411022127968739452416509230625641536212528208445084008232194874310052401070731676713542868885781700960917852499691042827413112998893894159307638207486066867646219036358271415080915368238545399607652635136369409883476257380195315675390766277532784948282568815468796394991867817136097523565072287882656600046197231795016804427600701198363960480904975554680118517089307932237062950270726870921034825649816423894660107997577535416715305876257580234638839506628519298611166219050044695244094286367325072821047563905802513251825100550585882191155290741952004757334446182150141573815490550346462372975666259730823905880596833738167878024781928505753876777818285125267334016590993568758420147758103879175801138981397342210333074805225346779045586972339042926997866053150536314137290389380906266643866663106169239872898535090344455612908806946685223302323938091012920277331245510578074053194963359649264739195929807227182657206131780897972067134962385052382747403267446441765924268126241146337204146939194388501134772105722891924539406748889095545532508078393736997612507359079861717573557823850631945574678251376434218275576084124439659690817376254077857004321505074625168227489938594420157302346563829010300559262149734964231913866828495820294824967556745380027332020924692742386055443561307539956819088772861030501116867906372752293111017670273947033159342129871294708036697878171922747828134954635276583633808584599794628784744427791119414537490959366070015610643283141144547367637992371251164033139537711354237227799438271289012993485507632358062645325853237521945572054185519400973635158395956858369546686367000491391016074061549900677677325609481690778675812399666400634782338785226681163399164540748740573519356718078394092227001853552628091502691615505038863547319720356842948790689281233452892554914886880910864431859714632648509518273889566294942927217761965872796254832223511546972734959812186516371781804879038515379422748335667373403624966176408604731722686607663314308611831568547474837710959883997849003900418366136364337861107875710644165018177830054592782869715296666466020181294034209798810561205093216526965756895496313762350272189422916975611456619162499160493743028023257652896124200303220510518239320099574137771934650317802317308463405303273891548512186481315708871615749116568438506774953271574741591798584967409367417219038612688218851604325319028225329309999181337588730701445921844454346085081042934417397797701577232193276503695297950887765954829587704241756747473345162753890859835943975684103217213901790162572238048277464472492487991349845071378893093028541540666681744318871735283738397015869545983496536802237264046677585432800399562979411743539018359620342138939784820987591438243342558032731073050378874617339542323923826863226641323548551769280877166977894645864035119427013063415117959234605037465456832949120030268461965595815163414280839519107158004955862051921088391932105532646805332859568493037078798791749372703645080385752044186562469855991310696025242568605879880170976799752403385786240532345724423588841389188853740616811805924534774000642067419213509708173411832915054045643361556746364712348267994088528154447341221417033880805673931638487262131511533705405882234322883947785960282168197252864989751297314784052456187985027464556346384559310155571588614608830975903403959759778191491267230055597491096795749976731607106261623243106366720524420914582026735210695186950410610877660920773876818134426051774754008433067770493876933306506501330801898127283954343845610049509062795485767967106683731144159918202280560404923396007781741833295659062676219271814567956347932291285513767633515657348661011361597358699824748617770071254480913836245043200500288873924778930023853066118993202571878580318668273640045903040860172831274336499391748816269987747596917697554469224906338801925762389671133246739265251384981512413115185983342381918204043222057110251488362553240776530835777485054044037710455181872078371816150710257503135795720042278501537965031894994946337416578675439194427213811165787541382539772144689607894567452424920340836875087481474630238629176918248718963203157325005571733827708885781390623530018473378656581239512652127544818613566141733970436906938498240977799125329127848718466977459274989845129433444755929227984464148938696344190322236623302442814244441146574292638118586001651453825390208606072329311156341533089053136162873061716211106684901902229021536005944587869695003997002910154207760467049768531351260460753270748683291403356455222317574022226140356629403181206376121683341051830099742937192303500933679279463525943222357765240010379017054152901539885091536509270912536725745916685371843599582334204999727780621975178550855959297593410577353497645317078799261398684719963830678901278420064502562527327341902353144264237365052586485193722468657904024848498464101382273753874395479952976760400410176065807478431702247918510105703656517851487565856330561775843499767835571621468462168952112667389747728308705459528787404587865697789822888001740706225665926858128238315298982797226257453686812948140242161757373625821801199492368177262906309327040912915619062451490330794607346515075816359280396097118570965301016649933150994914927274447017829227237190345825207988172103887539709732065274324968607826675033835558463835773647553844079988263776905836097432967579947814595175737037163022407939706392552004802469629216611344202246675109023055785876549650654848498579320922242505914674467523933080190834091975785896241753269958847686156840914876398036812871178456863110993459964681140224091703894665162149637620430225540283112760864061603734556575424564546005053763660825812200517254095157508101027445660143357433487515833082723842508475550371356009732961196504155259770033590791064824862307258431795217910266029877617302539449534497382828699794667845823194918408625289449407369832687742326276867664675023343902107134289929204419854410021119848946102987138281917611684531370017752629139494347439452920541416932677581522564528233338081106813048856189420849252277237217540499606836954464930007441170015825964360698201332983627594441367573458941827074342265182808141206119537041812537329381997557933511806825540505049840693077024229070537138369377004211979468896250736917209107511789392222726372563041351705819605516620860977231361528002491005279909355142072617696957664026133764249737122562892389987044275098720759417051305252586278035506906960697657099196063573177436447346094112789063815106820925110366300976300048743564902135082140728270489940169711006580068255939253899952458181905285668826640364837664487759076411402765214869799331780134554375093810290556133133570154041368312472348774028492449789670458039662925833288893254492833221230987947589840013002038437301920805384465591550313386299832614838872905478056734392225109194941493239478569816012181339823472453710700344936484931197157563482939751718644485301560268665318859415629359983434606785169302924013810693864957791659384241424591081599939709323355351524425235660261004241181065143421659401721541265700223531034123378735649429685499968696371162838957022131550779750803122794005609053785375393146756942014363831249471424303351861556529741083532610791576455873544149543502845950394140886797596090170251696504717834939092721771722868950346640929303689979715733292437937660597691912557757293575588561585736728197629430575010707011326848848657701881141987891088844927470322125956178049048206936821332649436012449720402735899385970459707090804808523783288325782603769740958778399366811882464156560668650264604746271377496688388463993715246063714257866618143991878024676847392513801879211736051751401363891833176078231065040546107043989692121391115009205153569600385448455653073655990351676251025257673681503131269007761756504693264647991591504871797230615168291557454296561120970037505952092536056760914471455246011108831110281244473660549562845873071559660608133293500174504702631737225049262863618394759090927182223037442910711241806414714929738878568619089827015147323691344399426075111630744863856030206091443015864998118863661212421632463472028672056319822694910386629652861197101278880549489257488463179813977536735555864061181994065444379696960296963104502107841701483676214017482281717469500727712728650858214825291374372999439105758227900304756268702959625146793055336205641203152275900451708685024572405684125064348118969689574072440846128576432909303017104338820705102485263923451896669472939846078231644594235773134373160496292513564169832567522743395414733176840075682207961620894550979839536451668010556751138218495605458124363645214636851994169798224975122036422910370325095437860342339281432014206710476902359434983494046910826027142104295977365157784154313790477864466004263776255936045963325277100106669683960370984300596706425719437459215565762589778485779282219808858666435224128001865784417732441609228323064898595658644642844699688269347413051265880148809305431099591047917648820452732282306453750314244153023691983921826413010551722661579077076310465674851935176305374677012770012448923248921041058617124728938039301934266549962297516308878836240276053263111785330854589184964667755286528260617139339108148234462639462465718562208262758401716276744700616046315989633337059592375687296012007909410498037920519573930019778301923351158241391290053385536928348683737474869627864283207432114575959141074986907716884094603456644165623743392909100326726261907296527686918203001070516283957265173636728335971660339307698172345384140972503660834475354735226910647547167141544998186312562378025275471487196172627804918704043378674546462602571697387949951889215779232833913824609988034201433357195409832870221683385278528632995296393269963693703120945621923413590118259091256238378747731691506095564373318448006204820483889240973782298022262998644295518910159831694396111114070709689093328260861865326752012436340978675879141198193143487765245283810225950196686263105464192298924577610832787243362989238316797247041855662519192490747085285235950569034935601036864598156353553027271159381852721863751418848849423574499637396041086065943298062002632571992625664771457426632699617415654162398423010236149277283557325675823181728504867724186283623544916263873383763008091306261074851835517153855912420698795850979872129035817717152148430156833423236939016014654507584517156267880745313071404936027213652583709605601442141168886059071667687621643908796111721549860215711863232538284161808389584424899287186421529212775282940528767594914228758743587059275904882197156253953029183885838414941781696142190694853868449930169434423258566270588417662377109820987406777499829880526776581473667984225423069260269066137799906778831798197382743683798154846807893551117394946542079087084086748400969888019486737045056848540192374864532389592382927835319133348040491020704737122405056395252501115024372227563307642146565493212641610576429228938319408713548066983988662066746204657443882628081327728679040131054579480654732803006947870574726436562691270758709473679194585198554000739515585880123592461175645617340640636666275627413104724328853041800952880006919459057421879544210284539980128770372009813194517320535897978991535389918197718129276910030175693160824047709689417661315823088504031426033151434865444674499111548908425366627528672356079352559874781438714837683971208547894752786556553268229274494453559889238369262863370780308342634977113813888408242576728391193227799717440438979766917343293316303019956651082985014419845019612933779823040080170385498651068212392327206372486709553843443243191134459954566829509565598595156248949354070436949524555125954797080245664886984228365663714859595155641194590521303435967317080748680607608775501238078022829464631156888650685988199236862870600482015408077012064293925158722355760300262313476220302838014244983703964309016572733864240499518840131638278057778323089512677040962609751280829689988415668809609386679919193787692677444695322781949535752484346724959560015104614246055739470937099475786460927804270305294393641452429668582303073103496128211942200036514861041232981121660894915959351937716337139415576606444889253945149778522701315057230315670894783734546249023187986089753612814498979971687175019569729712056304806998739878818610124325695101252124993546792431026832994253931724958064800735110755376994895867726545470303789089640538539520933754587804015817297206010967868861351370503420623350512003589225893356660134365426186615037902232256273911752727981607832649931757665295600693708123054603860079882807374524801590389854770835278634670806202141893774819790251755210649666136167114842118068807752226119496362108635517944024808969790414440553601907189649946636444264307421084351473756696481740963635442990742367712136763589028350871485820442778870530278633664489569976479119822918307253540174410762173616769389925746454741918485231081721789162061844229835721246579298200183611577181968349539054165415651352749783550367620726345009652289960887205509665819759443109668644121084700547473705202294192837211233590962733085457479541983658473335080674814093212101955452936162933028798254628851361286458448451273933565182901643421973135911392843756075560263091529825758734239082526790829813504236909068314723545921570856728948197417329798197950299151411434427043190379201017685662069269335291708537574707014800431444162315084121932442443226919045480808579421701557231019724864944540709851310518086291972514735053988686271360640179248178121623036174066367823754702717205113183004303266263622620179950214086905267891138144011707324445385919236469692018853979354460882227353612325576317157251432459414348890234908199676512869554164901706113453914691635271081249350557559605563078344860071722739390863568538267633443127119059680032322158933563542679493207694076613153412636774170147928836272688029088644642833839662583530942854548765894449747722122533039878670430604537004933264195027817308639157680969918064254412232817880811188850990896684959274208284566298346883420520647099525109594530012354100675015316858794470428196413915870069968653788794929561042614527006016537113207798158690764799275524673595459541985860058407665367327298565935263688351816480055591468713550989883813206463116570130759467538229699710406910937608076307572959295146989810128642359375177485991953241596523387197470898288263897805372586986458771806230729223842584479757489540098392032824138768860171139078612979297813463436813924282560186614773804701330383252656319767098768017001542675674517222535644062743658155493630975829044519794988468018499525382038642489008568268708637480489996396853953762904266500632280144456206530803678154322727351229217138488752824707824123372427747917048136883208962464743125528741843053249658591698914074799123051895996125640601389688313885478601574521510240335052692307664658110755041555049336891540953789030863434257217695580352229706082531359975452800148702099322645340590175145056902132685374787296732232650548301898739771941536303189926372715315330573638012922247657318243714368047885003128755352278609829064375533429955346561047812176870980259590885720067682049070005295900102664852593483459060702672774671081660061084065653512169488795165673786581960686877592054314429437845634270014584385373445790786595787222529263422091175007844186043512097013428681256731125291138450375341650168245157087834493556322958701180133081187736837786163868835349819479244835081983231722792119661543700695769146704886552147423894872184400814883008241596545101079186398950430059959082142127316755309020449924460012221341612454477606145848635012231559035978782287408884381780674211416824714588143233511675866775303767681470592548902939255451202854129543104701388780765115569841295607385183025556382005789691284281226200520259426027427765545799021326096853822179211636625679737015882104227755419710437202749968518823216665419218903749233349938378318380342652100629320722834794880143851995285206489722907775782671715007795185388741993305946379212981678154123388732107106741189947838362117929329358403762528629873305789161583769561213241126642114639127416799861722900407873369252004101344920191143547988371974436423262269707068986581725872946792853616347417726914393430498904768554107022549724689749028163225251636694883070064493792407086094850882374587724669203499383628756800591201665403534643577958013020993968620937218838354162240848531612075580248323365336816117510667753775627691679738164760049906819299653364889047041319958166658726593860338661882595601996821878732683908396825572911446209686300569517935819774836795742228782975516498719100621066212873944792434414115867766021903940562703390596098156310648499414818217134621174850997138207371138536206708663458772530467614374683532418448196912176095340398935856938988015593386898796423850196874235050120759199404754648218107358226657485406617577386221347856585544964805077970521424122533279436612346754390222121112539779731129483033922176736428959016069141512277226066129482547832988644008429841206990468014298497659081750925335020414873856457413559117558948111408659241189632426487874253449679304299526993987872569368263096311610611171583474963235160570938531812817810532781483976440086222015578802262599902574992489726647580431157056590533797710129098682345183147007240266097755309965060707549146168921925020848637727069733723538223472941358270919510015596447822915449290672227077349077561284279409725251751162046757277873107366709338340424867010431526482650841832196769406775729582458231290840753341547876285643175199025853272124763766729422670335315005596072124505789664002329402371503755057839340279132647752599971295993336086036502260363537724756811648104621293177348039941937709904679395048051900028370024295820089617621621988078491434056954267875948183738744288673920800413074765740392016530049872210820515438248730347777449656696146073456182216044371767365789573580168451502227688946988963869226737149734687269021626248578782024721590951807060059562392012598573303854454062008461932064224156511300310977134860682934194000317269732911338430355810977919717124960745791362065445656918938567681881179313394803614338746943942356029531295048909191033855617729367118298453246726315773549074247651819465981382563015470155365456493885022719583743240720482767839354161677017691796727993443845254108122301675061065173880830634037658426891214577950716871455342233963906864137567712491499510091867936543796005011950345588438284229439810853368639953502811035172114390743947914886074369874518769511438188087033479270318848125886196905079790800839685751686044023044263378085159658188205285875705995171251435092163720524625428589967943178598826096853560307380017792572023352578461181051673434345929735820830073805252937905931826339034750401368202736536028172704519609247745868398386214039359804612396249643050721245522805483032850171752151188407422698209255273398207523716620605083881539326290650108520475237397402590292596051493642642483151934347629803733507976413418178389434157781624807758837853609858858234041590015095634766818929720717059527769329365774024674957543575852595809093801673843650450637298470564817504001820137146910845460847350398118595538727923937205916910310768896772730863404159776901802099016583374385753751138686706592736107674601420684264444304544066522737531206388902084252304380401228850469519158704328558893581042108951592697612169061310332260215120657095734971502547062370519350810263058749717206321167390962302064222870912028314699996417746986573155392206006695824381882413551171164312530395002612934676385567666346069006618216454163605157728587465027888876789896730675610058576348031614694934598120168338546153015945439952828434943970493126135498199480017826859161076014871481019206620219609723664531646691932572781162899224203163566364663873883421113923960359062823115860672401802016657354035885317629497236199561712335358201237923411940179004965083814534571151050703216880390765946706184700952949411672224874689829163065373658313262903766989215580909964192476365755315233164992419578342957524776042550870153234212879963457665333690935706868629939049129575769118500241053827240149281022445485293392284919250387332540985086568128025465162622749509303016272113490332863266482431359350201702082474482334845799596635854761421449602335906342923905577434657772573529433640240970968463789076048168168477528189006719324933712507459205522879077344266455086407843403656747261404514560954498669980553128443431893503102719064747744338112853121887454357795096813972491048995489384239005218191072508033971476343984432139873336990098009754800163486650038958847606582126208476077225994911279664532256292961926233809468857611799346791561896797448346783884253212294330485527401295592926656083175008151436400508768946988442478007936746506319022686799878747223463539821005016649262939134270453183442442251849134142201723318626576885992301126756893652086794330289270409425690396267423788458692641093644656429145678275721141293815082810769774899913194625368651726866930959748387448141943096494151412541242898770230338728680446802399349699259769663109543803520914410173296905624055349743014388164546874739815550169523345909433184137755772216932987078346259194055114475544622057600946889706808815301678826566835689546187892743654548385658073236675159681140929490000183577582910710838514860026407893404180620990864950513647051679849863657541677239205243096925716095983906982908948811796925720233295167805271959235437392912911566299503705226185785974546473549662606103598624755946876920291783083295218763224581436656513576207941103607194615009964832473625410193053480375475423324441877702633131044947095311478825549417626967035044941620403112843166133603554785374929395657208867398453932608979335488611219225708788762508818364169503342344636308323383554701576898612403660614108732055100541737527635338209060297400856408309412999322074837889998438959772815993621941790978947140337595530682892484856575355814749485446347497185532805646531317008676395537707173075123472940328900709631094516345617022789101151971192074852784105028733027147815884665013338263587743381345794965786670489766769407185653517023217928512040526681450374058218899414497954834322157135189703177734466536677841917238743509598530121444237353066478610376742696668963980732139157620842322209611563175287254946970777964613758207624992274984321815857609009785012147273659056828621429409745223346309581190215432113788294945799812276089194295178486168628029482222738762786292824560864363506493747058756276055792279636469205552506282289335398864485032543654236597795463006397969788807821239276103756406656904546632778709044581183894272552064619962953982607577766686075264682848244401069224327147201868220489798396619124505349639436830510223660366699419705907785344740602577636124748005930260617967148141998287068627978255086171583795378552771569947654781026626804084119416293222170146008687704337077317477313165988680730220918241188193527480775007066819887119570241008625327836153870386275190226314171654807145822513571805380143484984611301117901100800953985535378512956562176445805702620252198291798617497562615730054223411963211352438224183156140918862088442329927493215626065511019656241270713762572395543744635231525874661578706567872381157528996646910910501318965974121596712376044571616852837468797839450802204078758843239289585143388668803152048042520604497321422200759663798298904044448297816318451290730127537805851168830082885987933543064949309238997283917008039283556188769094207308726633840295641152281119333429264332625900369267488542317946666164458234439977859426482025191059857494939336823372285006739115966539386807131012623083894797798713675182717679986301917342092072579968580785037172033284443202651840445178927332546820236466617063989904453198765642875737988392257717771218411843883515724751375682004152832275747092945227655750802548743010146703271215165284244819656069091053837864033108212774304656455993740892474152368355649447024980200415141452191387698031826781950848473604564369686534269103245600258543656075325478100186526179465459846437196895638708710028686308221107265461644311800691570969281285786063813124203039433446334436166416302706584032344471575089803553381619597312295921700356920581257835705798359525061684593687869228212999748540234723981334391111457926352568990796265287542017919644716684676219555264622466086236503235399630069265167308293260349327160477321205788312505336955821251472699609976435610177971017657630938749691359449519398717466752942884143978049453516721307188272646851745720712770681244135325471315097616815170146652254087693732390444115249989639070743937525714552903878215319072399827844262750985027056038950462861198707526075361426407617227311907387602528643617232339342004414906441483084083143499774365699850474111786539824952619334065301474042153593049873235082083305260335090987273872697951966783929441215967865170881152070668117905318091370118467432592505708627077329307221712996177685883984726529826561542760433995489707385690056332307561485910137983105050376839290864656901816234632917293483991597789447416227107129819367625424438613089856118507165961069067644889939502514127126047512690193377069433498283593595908670213532326230030987188979141050512191941398200843513825066988089494433091077335785532211980283059774864630559459866229676266562217818505121452535441131252697876278178644950560036835712154030000810486904933926344736003421728000297867493336377139728697487624293282383191386628419348233373109573853276687284908958663752666053667194499491682755712240448856543216830183391370576139567410987790923013701316579223813172171704137776032105446527306291905313392314593756840824848333681635686319680261415226960275659409972480223945649469347364876214937817049892700025534679876108684483570138127672439472185012555333577881225151597003615868651788266575249393214815689981758855759499338498715578174627471344627312951183128859362071066393762129033018666320279003059999833568381284400280677512392179783016412936943084445249227265830276672591274887493510218568425151822646060575338305657827005026136490381563860323305330804670245381851039227744940701422064808232046812243583017415266580744614582049482241278745844712129992374150021808421441265985719900041803458816882313608945107503026343339940007105437470544046107338628348113436718275859884450520822517139921893887489590235683086340907578925038663466673874674603870997692430367857242456622782181565230196244479946099550115542537305902967700420031587904599486108167483916260483303266134300680084786536157475278393908460944125578957528510995232399665230089188687951816998923683667205830804154172106672356126412875843358377339591215907397419321670748109174626933296506774466564637744127440462358935298904954374945188720681531756213079166018630892433649745622343038012426289298709992521032292951888464557475163949429238111425560122315656291469213486550359541517933422266758901965201764789606782790239296054022859777988939519424076263683832258621934197094859301419585224291660482804554331072183493563602603207845619208051759893926132924318345123446951682502166547692274921681785957502393173793478801568620074640212696399189202333827991040248908182663670499864054186732879725792045595804766894470153350903298840246424806168356533214553598310432935857783136468855554550865824715284632525595564259570495983681062730188133938645933567624989058852319962797169129828803944376411294412592657314433937398258047619927309702877558456711852196935130051176893714697000732908765437263137560518366715890010301250913033564962639256980019152459253903973791422568289693770866838888085064645934246432062059311644935030722951872854536519723700006557488224210270877094925652892840868366288377349871451764204393468315260018437300747863052156335264676126944476777600817149956207877868625428137148349425760826409052046643366517226485698710979862535633978786018039534105324577713949040112254218702196513100363887414632165292671339470531092710118284340203442742191960285103268870649716514335534952878297065766681932288713526400326779107074282745632357661678977940617379375551430503123681637308234102347174783214147112324475952266004307425801670502340318469099685847530176738909507874666617128658111716172206832538559067706385061712328738680298540145402448784719968752932728610444142251260889919738597031624283689611750120005186442796234358103727803486413998827876157978093083529416546204611281251288668755372124312343939377808857548795919096706815434959391207481538242038393437551575278885058007768826443429830583458299568187450409986204289160225767494216454882792196075700561808339055872876613069837922783184904253163352195527300355812044518682062679438677309576751343014745289416525924237281629483159414426634816990863165075877082302158264171667287924572440391035824189549760874914002386038382123976523384655719049196230994168451138668529634833509195318818477358883745684902356318375310475838250427483586207168661851418226154232313484090606100933457600736533739008421521788604409132540860079878790292937811633751384178333955346904625384813389942292153265378499703006465046398447762515427745944401742349123221610960658514980517138941665089816965353950431905693014577203580260894588456010004437107104383049984626725634569062944340711577775763207067415002448585077664839141199698314582475962574546926893045945002670686931221121610813354724310146678619227253479939027224219720283597547483733050982491660642073799901521650201992786726114826783882628749205380256953250384557544234010706939684620045550123648707299334029609821185566160147097645999632004064436322075495410698101191025205703788788224495787242496010718401765919699791757954213714651414234618953292502048357730098137640634125207577271211980637931068518687174284287435374387848778079074002416475850848181380269295255867810958255117283959418795861599212254668067677547379609923382522006215475545301410367965010854390912971551383143049579118731592796617190313678158754363208300401444037582470878925862713426513308115235134131599789794843800788483936875955212849985769234810859804845481791720437883712782426590897001617242914149866220211495158896376643983060290618835833823591719863030229419293212854955054171839161762224450723948908054719214309521888302060142120607600737056004700406103665072099206147909118749800444673871022122350028022232607870135463805526912779863260887503864358505274582857443033050071312027379445405733457511974654408240259584363476322931488926177875471341129615180336569900377647492401850744643197281273315981264049473612040878646202384196178634918767126740323916756226814509195606271143214183607930892710857864950796938034422797229930442748422149882671413497732845137455953092952048416066661046898639758223599532556784727142100514559151137451026012791911534477337492184536749524373949024717826292312995442407854715468232512946150001643834272619903748939463965896746006952152931676222636449947663538033604974951989897736473924480243210263285265605009695984627675869889999080045958828832820222124164960712710468369157798683418511528114253837383772916863702833278046131771158798129687569372828729144795930902335377685785183818754941993222990413948021720243151027181234452316177138674232941229590501363777280377077071306807515073783402028899250617258379040259187920865436626140298566021247152661947528811050688412334538249680880805745805692462738278668345828623281923913459198466858524106801387914601236991497213794853300786627334098237686067689579632491577305573885137815511785888674973268407635765333562263692787097870462459794341858171924312071205000337954253237794439935265306889990711290820340679935487730533132912331139753100656948870877675967923637499421124139449491439159358034537374132214842606504810794012832019152925253062779094925476176514800074634979891004091790089999084607471136328383323239466438775018388928912293745157086244361372761524284461953429532356078478900907388670149754232735238151369293271352788069606678627232498814764677775046321908868858798140567416529184449136657747011619198176915565579194937653420129260373246522362867853165668230564600556369568431706044409442678964641077499250639622385401007715835048318776218859970466873026340135016141729175570726727077271677673532012167297452965272849356705186620371891688617057663354901317806288681889270555254677233051013593985424153634344843474384228637796647391144971421771238947736258891086367498465400039654941380891033922168124522571280629499430765493773460070329606706063082096282288554748065585406811813412256756195655729837606202479737742447889239048237673051025378425457779010297189207561539689878198198643732614954455266034917342428302775282990900658130186809024212344271228686238746503294526722762367612319819760436737573736655775847438189919568202257766632444401252295003386895827414539806868787841656070391738600002599444358480516317820901200597356172478888730560909855924652601122158409269691548070064133014777965458356990374842663273580964936702082926425264449917207369865571657609170908883050691052798515414281364307254681487354053569281615647201907582759972272123756409879141087174749136235629752588642178639567882596598210959099691399237700217564404247068437499699333223399730343876727433008279391644160741063292254557045273133974538882722365829089530250672037338371905489365776619901656782393894806827342829480367872357557242894293401052879550841511294451650009621172805655405141337841918252569400940041404744475787861244640623509506967923256524246099345780974582864534888531476147181624484401112330125009133144030233899243604387551532806451610624444176085001731191639931298068116958187023720558949263534764784433962282374716064920611206930633782226122700446185360361762799094452477093206563541739311453352266524924243085416785887253644948346329914516868071345004820065814941748404933197023325202248108568993643368312197508453778657641611815578969527554698246797723325353429339662088341917568142245497156291258459025137629144901376447916366247278892303425871020840884823607112039256056201917741748463071936616328810181940020784739096954647324760879879869302726354405032497886453852191846666520427067259718231318921800538938628564487043092026800707979246728592802216404742007064228767643894207052778820197806335797888118766547402720031993733372751170179668124505015358035901145906752183321176536726032960642047827420982220678503801988983967606346019962538955649655062811794574745979557372228104238625985286446593036328224241070683399928218375562035155601750226854719194897610980347738512945477736088804331592679641565971195786255455512176551273112979263351110484786532623918562866496736623774213991542542012166193077865482062842651519745045426824551324432474925914297555907347688098796047590740314825248165123684720739212490062212911219828562180175338099862085472246281735137168876171653127519726933553003948738638909303336191051244130023272078317422740072436874514840197536443849191705393271147763555989408335859931958827908629337885589568957921210198125689871631898553716995109104544819876226737705438676250689319588620873413679911934498414679184796131653499978548851280682566742746006152097669565030945357819027861176845469423009845987412596688802700394562245123140399999405932903028437847615497536075767307815047859236989492656016483405733708176159236707435132943246950564787599312665415321790684125580027025245367654015840690589393934663337555118788489227321105938239327813828194009156719941993621238365479466072269424029546427975472249514677627754070434864766298927109712927931846746744256313144198929361973575206806948042597163482253295908441727227104718937501698404223625191994728910296166542975709986638976399607243723476490223239339455689918693602539099772719959491898826417827182645218020382297415332643084726249158058404546977835266068017128003502980769403285916986062385263401513499988949751296363470144526462774809993154820840115260784009337476031636453469720109673725383074015405325764665866609584886591073030036014572963747352576931027857061193159019147839568343312061314426305433061469821256549329234519913328619192956771352709139386533225212133924653088988654629510036155998286170549894285164765080182494878307471053281659114146488701213400914448416380094145325738703400234847653279821958564711248538266002058132393085470593503593435242462345168141610358676890347941887088417621549000207506644569907572847439973615518793136863816696556449780233750442058458734954944615316937411700157676751942719523868525795176581526947323381520900149764412395566796649967176318084059403895060926317460415047859319524963794877864536168865110999935260880827215925049041853202821486788055962869967025475319851698913939278906725305734958755033994123784949506897200820612368938067670906233700839728411409413535888040453610170074732192784230049017372991884774817516900487919512858567350877579605257877283375342391002183613631074375971367759648596049091382001903201678276634797919815845190096627758898356546707989284222719238286169121749129738385946227943061606147646777134055737767662537705078182584505148611578467990532396229525851750738933677842835770422509960918521397241108178665668211195324324477264519165859534163776203779392268734350871901094802896305362614720994292826648957759917386796376982709713785436741948901975511788014614619575350817494346025387816030813578408300344948813262187167916138993375055280684912257064174430950253992973374062142189847932834743125584352642442675834075503637983454512482899500615243230647603328519408491779228271026532287438925642452894930238098493045528752751252405451384939639006815271017342148641903006013294390427970266261016146681238082771046023195891043946860118892642991240040306955848375606070944288747459345471410632336071398824350612748541397393666658861361994823261197021753961202855231874184686736551777774111643073376160709439421435370596955257480438298873860706653462509063100943944656952284570677852026160654075863373517955893611742275982251567840456207168309237593188269680066064652805901738149746452706663201733793870848007535929024421425374777086705692882627354431404774104345290444942472763445741804451678046876854975083643248558251274636615379175162573880139663708026245833416733189307072061200340566999338062235053622485624521079111556012353192830250668384634295462539492786694620308663073075802383531803427112786155587108549155513327262800013478178325038352384029069875158578190909914639784953198156713044011841087116653909295211630186477363750358374758195790732738540921622939993503012925440417736133244687374842935438144837240784876322395586115264917882999018146998371193912025866612651587011243371284110553756315511503435449814104100700698564474211096396370446495327890619362343536476726578192797837950657135993949158285551683869842668388650842233128049035615064048900275544660195373896762892323207038307212353680007313243647937161367704938111795038126455331958257487653955354061992789220214884266083331270295518437617798570688037364667106471424386691238624281990531812889261064948262716422456280655524324962374040623792126753167771165513952144431292864351340185828614377919944813364209619645613013314737612776747489970530527990631774525609899561977882597028197749773432415784794344731649002037655786969941872658754517171527177237707975286424558786839275558746309128430542521097384177282101290353443548467789258859222714041848773141146894832324249521106242795795737906198964550213883671153628546368764131870067239948824860984748385677320030646637675887871681707245850173986884692495655728754652449662497890839599589632289098467192226543832681003488618530337864839180663196770042792195895849372604156829943414964693371274005930909206827350082878630457623347363774133553616226119618707486053479823838242232664494010808268050472601813937573951947349851089361116826986092001984631194135865560775421617941875685387396568999100056851612402017288069929239660671533122863957453761194048910611807599084087975095960821187083849089874478206884554028433259492466623890508397032260500335285251972913968454936268375007686151184657158079837711299910815476399329653951481505934835067919246767011708722703663368814826703140903574414575983712223129564951826101090988445110909647564057910064308875434319707121062232092966512218614299897259483020875520490055942755021812931043609459298974182452639064144137829590585354128309879786692647958338409596847799829466468567641454430289553512528915175649082457078138660896561784050907244916521060826983971322113230088310410859807318038628869676211737977800949643858650382555611815424348264584618933323275115779480581400065480982653405172740065649365892745551219987209180698805536782150174317845729796993567416047728037867298662713337957710637299589327497106701339746742715903525388438363701474960026380680647849285819505964990010569332221794198377022592197940999658281176107247342690901365775696754387209866673960743020774769522033543559817126303369425224297369007101881487048904527623237259678417738633194183835507816760362767019214816734392747493373311846939734280996956614235985854084244047528499507827368012821193657053292131765677055391538542491785477206112886926439928112053930168595552017912839960710536006373312715365257319738401767195125182852493616285653861145128570671051842606877060053923056417835520164476255950372009119099377265496975103690821136076126728168900960116281866593473127747944139895115776039549887049536952728487088359501280951672407057060039160903259478281066347278539570902938511809640670328246506766013226595490468826465904273606798037491847291392172407139062036752493972214853332102181162600263435774329163017877384491842689999444003669928160563753252960415545123130598227186844707756391223498953820922994646012592536678243786824421390732204216042997720377056759793263390249555496823897011118458027568763681201393070483676471128715946641825664363097842094151739582324062080795300889087962906403797551058123139955200133043612709973091000842241293344991442256172084170802200843361347168881309290544968027831589020266408252591214262818237495592248451293777596350894848644151087080624772121756344079707713513496747680702885298195377680827296781722311099225095327320844388304402559955613704192943718687293493778735618703776445831331962649706180170927657437321080459533796704991157168001101008093789319443389079066045654533020347856677856745469215352556870689724815346564449117423957558629083650041602660785196823666963733631587464371012081784827845011699720619707109344987655431726056282180163604141513070109661827634968338717831152222792884292964120750998086128382196164241694540580795695253249808116602329649597532734252747837991849830183317915951222889849336867762106725679170285373969677808560266915594971597456349312804389260514907868545611557741421281428960735981813502610233507192931982159640101039487499832801256399164751947324389269536230944793121980137345378281683576001641354932643771718164429448958794428578604634982238868563298491398320339936431666203441893280699428004102004759123076480347469729267748011054882811700337743811301927047678309138135870841834551892038985809462724665490664431704185040018975000732991736225485550595223915666475018032450408163244328614184523195739732999925698157923761320333740970264583594247120614270959506041125562528221421175505875539645004419756132983568017394117888108418062773539304159172339855570933130865991026612130989045355750212494282507345444526162168140768983220237239940219429897321425256189436407689475151156695513155607614582272961203415070901084667053316414662396811418383593341188621836516353445488987943582389869308993457003049223162560509967641434776082540158825423360466625805317363623648385275671054723998820776679543388930979629521084677223613101724530276252999867542998472712144081838979056370175479607676734108432951995920524330269014773406079280919918054627917198292421433076762412395703346723536203925943019776988316946073299718424851154448485585344373803670788168046797553945743072398785794802986681281057606306238545510038347960479122268204734632710086486568004280916393259910553751532059572123745233291195369141885987646033755447726284738685490777133876637130329985332086486054191004591257293142503943784139129545612056842626144994552078180943167183044752054127890415878665899663492215860146583960218954421160129872183777500970292805450555404020938759059700922111220323015106353818292979388263101364557414487630198378545920011980213504033713851428363175917716928986789212017999212331452462530624165478102521551359656862955858479780458159956034945525103676037254624947207759752194933466381060828801574883268918943171734253277548296359755607363929023714350143460891929099458228372395393000651673585943094696080482780697849101346112908899032177638929796395227039579722713284273272152385308963427313814384821957892233819327991430550365461117425359975743742858987275045896592864733889969256964192350633871821299089858621115963557341456710131717645836218245104493963169305837087671198039570597616797813568624852989430305005129406886913147602050542799302237276627201344383688575325037305162696001821169747000928450961797486056427236984107290342361205946823919511504777806776835512230762291542050524694258681846829924962451962039704256851908476265631625306086436587244040059522339858593305658313653838274074742188580062583717635097080493342392824616506110947363473759046244029697059627743951411893546074216460475644319310010716510928883469058571366919659154634766420773968564467471235765280448594360232113108089910256416529115725862103698398245171303529403192888294815761392172290817892957122806593529083713897855046268521366417974846586981330311962133511962854506294468088269418197991389000859023911373091935840644056184964338766242988681327374252571862533599003931837726317329467029886553099414685504240435849203407849754226878922775869080673739816012454166623133558818155894840056570168168477667773451015110014147455019720308175876255652513092439869827838453662651508129196275806460225837568857628513760326725026696163042141834984408062789364663087253714516135604409525645302160877827263079574935655801920272369305668615349515506778437792704265428903846738526637811186332703884545402367736391176590122843788387399471702480129692746926264775585078023934086177378142224969443443171540202443694178845359601259489040110910559529247835501069456274028302778851061740549723827134105071712137951105504618236991015858896350878117967144714492738808405888289708664827613151488094264404481171999878995852358550943010431967285934233330461471272680238477683105924698330724628837507286466888963504499526896584177652437986136999353603091410141133879533598461346426360410141698280721635419096618084734618885607461367160342858107654047297452388788772023022781237246419864347082023880353574333545010079168941323584408334381388402035233040475076714487837101018080214980743714361613604543647315006570058122978462834076995418408718613161583749872873868553530507214489843113665511213366619664098834657611066692596127515300980975041631544357019668787051285833020910960413036126540006933844086774022409491379500479624181300806569019126879867287864999300968632236105742004892157153897647292277995852943886847559665576162593943890470897196621880830101880843707684624547086957893586654661884129251611779233063330304326475870088619866433104351638979746962139095407235149605717662725934682410647301483091114763374295338240565727328344495128763694548011270967445679942275055973869765184609862357483110092457109598569279756684032857844964870301081615008571291856095832906143133219637237884444509558585854989990848419667186260587463950223721616705496534261811969845003248432116551143814677150771194069572879979645887483001008325184465189120384690295445298599001435694327399156611392175714854823706585925479185265383615921301268580223347073789465109090421669042352396534319295187127032381532027835124781189376348867903673205062101960676939750790200048872306725627822268827486585110040439850643176760735355187899440424770945581947998054237680482760780405925704839392916382204171297579148730415590923973443240016663897390669168943193328872789620400491174987405666476727653943984036084782898971719855183465621432805263206976282103398818684154359575291765652052033894294023313985559319088391640567952005914754274061052989245307955363361304454001224926239065959924664053131913306471687722828800621646970622656986277743233570099878848726370992673208396596391789576099484231652968428799818900908719036227811299578054721022638374008670432864280055251837956328581347727805655254111937787149386177170354445090320602188560280518955595317977854517915938434905526193443992062011953312134644496471972715532325526397495071718730609812632301627526784275303013564842130869271678791123660464015283243541565916168423208039213281664464479812602179477842824798381704497430665299670328350748235311599845404192804699834747083517785286527635697017798900804257126810258489537137527979657673797716619162472792549755761520391085626618660109086178979674215382989751046321096249695980079246840734962846184119836924841726805185170120453332728843225938554989803290256676355054723708159362746898864413729536913093869135700744911985286944215003851245225374814224815076951484063144962313061217908944123305931391835064482351944151991985892016929721492314972660439024762156597677646452794587185732800757115230326681039653538790288343197584575044951383578705280140021446658954717987831029309306388141352388359149188685981712619132001962095666339010777778251254521609249176060558819772211845662042333229780104415381036965590775692364318679220698443379843196303097670934331526054025431600372785925804552266145768260901783114878048418414633408144093787554162448233785353402894155535764881404833906054828788010046271287556702738808694139480791730038785055538899578792819231526737815905699707719429611826825863268223161131583549367432264839590626842234056266583493230135234393396285834406703237555991741807975513770720000115198628643689219711907319684628177825971023774265481858323178668878293481458046622099886165116513534381430416192446173174747237054905309723234117337691209828109614899883174684861637687480691389505156503495914851416199272143946946915338277532619033910277319426988730634741865456049199610660770255415065275015036114992975168522755728644806844331603733937477913471046346715483278425431047256265277797698161233287880367825259761556379818431726235662703534727202704237762440823580229608856086829790620034895003884573394991585285850447766265378264085789549995602898841846856060350389623748844540429807630081717960766975700763492220709838879947274218222174767936099642054460474460626873921655141197597703793442065883543911964007286881891846160290535410966068566776448558099470051180484189927635881647538059228076046334827450556438988515822718542878353100605199134245487223059715189362502851555339823340021383466763165093195678387372928209391201634825312434947297961082757909034337219859513711603229169889139195866930274048802027671360112067116634041771007850513509754168021232283986296484665014254668594281845131926052000250722278681749307172621332431422328628491963759624861279548937110560415650226243959066732132675801842279560613139395328590476978322007294259428450420530030543960150004270778931280259601584601804966978841917702722919882715805274305096457286535418621313827346607455457811880779315973968197959197567228091859705219119177787135172442557035788324152643299508135670438426746446006923764246504336811847558987635318706390073097045323676198289292697473958152476654099630781877414764503234606317780452430101114930181388844797821297886272939830894868260982018833083950316314493592741369416950800702961931818509062899215853858006793137711621972851024497248368576826924961265455504592820874725712940886858042263039329572702700891053146791502390682145048444271087466021469436645427161550555464950636757385447382968693308916149475844363106588966620542304331183251342966484252757693622710195805548188062984955266439050715289259003198873446447557161100187139663799191741626254094760866585280081417851909527885919149378395664364650520980229894566308353127571727562178566586957860021260231093423047457466701477719464986782190545881559404987649144863144921095612677544027340278809464074763751932583253532957758062155850136009030326577625959689144160719177532745758661311777853024037078327008292660128434012964542761480090141097625189604595262698479669516609287169463374743238801775790824051189650326249046352498456350088290243835619615795772208388688038785146427756545540403692760164938325733839942230913684236208476888789897075755589736194721433176178665322796253259740086202433370209603724326556059431839799176047012805187084019637464881491074990952111262551453835609646735838630454806797468658378739607340539780446953384652639853523282021180471511573664769886466540810044405757924329856241148031807666570055756990662408479094234124474802315026399409621808770660334332637358485158897189140093111687346768524448760887047844943623276076536047882155249844118139116086199630257608897682028469505473472631707468438917708025330912533869206127929235187492624789495956036815285870680564935271570765493502454877988868384820446180277050290915296156820557264770769573717274023091420611249878693036484846363323686421043973185576095415005876276672995308144751008602600037243142222357572695687526028681660625485494940619787328515991611207524471670302576784873408489101406266023035657247791439426368856526359947985988495693967575019758624228647795454520332516303014088380114817160610306166124456601589038538318062443903358164946254161250196422804502892832042016769102861341534502934709706437832525144370392644292969933644637331560741925326337087009093436378260995691573994528505782249170665109033515891969883339677708969367478030619279018023675000634366971664933952900353739468144504858530506522547943152245076466541149692067360808067766397842220178338018084979321882961692987878736136095168535677142813295905177505879023964863690993671948313444814477489732953666338791091028724496771877879423050032795256847575613190012024471130667118412069315286841497809375118179385318590630369278038881088100384921348722853461033813257608459408316726515976814455264716301587522195704889301390496000005833053499317288441397392231822382488349254787875637426947014278426224535764622357947617936109857199141454771395060379519935996774011578725236553567872838362781380631074306468960290612632878910468370555509356806739292306656304474497601587673447826890769857900454424808619765455865066596678191892341000824405766625737370460591987395133502268239055045477607379648874089950954190897128263946991872359399129855246619844405730251862352120387504097785942832786232154628702921799330313563560036401072361944305939023031033155340869520585935871087364359753300983710891267461579100275176248570998082988450164137451613273459343656324460136874809846380617534773791676733069217409600748817496546455277218325728758235210843100322214007726262499565819780798584660068080064246531939495359296273666499290149132979214222072634505559066842335790167552817577829216346127604848293047755682590758912133859716287056470535871668319962042139351723377928456991893666972119496653797894368086718402643736814284059414365148283310796650449658028785615829676108339671780037803494451428194215120001951578687796461736729956404389879392326111230526491076794916070142609877928065381708579182523530358356723922302114120922707731784518169957307408200489383453146438245005828536614682974667284193624750277051828163655748089169004215614649638793887141923582477429037978374892899373089677362494657257355137656504689126697855269592676745173452372169214553402497487471647597045108797810531537898128056707399812783472816964936371832843935514679215499889639641870273959061470067390613450747260459061703863918253398135133412817168620973835692051077217628163035374157977771017113192798533931409460074168444648803827113344216513481183281568895203224634013617364431603500272310306866484623664981097368764983612369692326144975992764403361978166142142632184074392670558468485749925049127020307021813686261235387430226730978171092555929230967417185045171228049171432556384690449775071119735726583810811776140030869470657099537950678800826706273908522058861938758117614645874601919596658825466823808119517915165158058492190644185931418058169109110502840551915653859226156784589107231397123921011882872954481965183163455957992512514533566775551988151368115969565005732850624596735583422370893298346651815219979655135723027342594775588026133973385533433268150552012627448182039947679708997625477674709554505980523144894774161295972486619139906451424304712672477530637778183669608230796113995711058207570882961500443246774988181879996937801171938345924074289191818074029644158931486520585772656991647021565273273948638391589801979972708244446032165938649258464785738379213598901794277227080448532323813016725701735987935232563979216289388754847139728980846982394614041165239521687844489838353170008582767049649984566824828202294249976934071312924105378770296558630260234106568303597186752781477336173687578083276449532413729345586216015355429820409164348273003265040808453108808904709925054937063551537724201759149977284788507480139525600565202119144421246749834696068519249580019972195003929700620536650475204729070833112768359825165546597832012508752818126320568818380558196087647848752309680483162729163948814798509470852088811048255338651685496382892760257937945792634655903906904201637269330540926287110388133497913284573008428840877501830766357137622556003784232681527942486377630230143192566487551983223866854598274980011982822735650032463050628960094197412002434615646142202448227164492742194830516669488168575214493940670469255290638849441011995279266584549810497621372147552246502125139694666678404406310459843469563708233625651488347225767002659036766686624971490837189869552084947021389895659224725070531095055571037181954221711604785029081458699428467229198785353357642331310171067157911723858137013978955435578873641451966723018405663126346503458183140902495774833852016756832309949299050594091588241937026166298946255336023471893082461739008217360280346061361961498230547716868773656658804385655787833592541561737808804953345939241518033018316111920154676478128746335913009931044047632795273308890023770807938111430935767925395979152791236231845691722388507951430064993178135714867630190752972547668727390430283120222223658919562360133608584109700480629625962356480850079726197800838229100676166167379175837899855148866154066534614839712919283953905587152796733774667781490492541070739104296340959953791181055037929267621224938534123878305338435803407784434421899337318358696592849798504841616140930060162330388137825746809243166506721919592624083981925559785925124788794967649780497713385279152466733976944072977300056723515806979896820221632497995287485576355605359636561850445449965019832710588799149816075599578309918405817920322419130557343114771661312365293314604329275680633945122243237135921312741272665952305973180463897439603667775450147816391937332485488024442909843874262715236882970083919508676098242286729318989903465167927188456198395772154998284816463897351087461295176333774218060758085459889704174463550598296612736444549861057327734424943976583087238561615680732146813719889477746683360048736158284033800675325091330712594697684534835916558916553200188716953958223814554473642551215916171151939406603401285995611968833513556780031281579778127279731793528999618265752691012286602242776859139358897771840560818690511427481266681566886796492744030447373898631284197306326144468755898581759759437551293353089885271136972928998846324973423609234801750059542418930211161840265734567854174895515465037014164777243316122188075042292071787203662488090830985759015851541420102719858128853533787688710724861061637694326187198314999233800381402586862085551917712677966857339897088404456750992883484277242848226082477999475723888873455325858621042834795941631967699978242070952071130515476753602551685946484771537428647332377703988386032333490868566157736689411076047466636687519155758041742380743472422346493942886815068514472291827306229684902047877395158638177219034758039067246307231816909105416916326735821757968030051021462590771773932964188555372569506053250082352778080607960251657971176038967255396536114412380439820609332572777839468403192279560193082310110598234574128861263995186164968914999387812227718407648416311022146288717698549702275570680735584310469393390815021703252688997965947201557166947283124965554034768336021783063217388993812647344917854738762979395811807367099710994718401776358661117054863489683121947104706764728531832294300254127944100075092338156872646185018018661034351823497518920768625023762715968789091914903867368247120431218436986027390968238082661560094255009131221039535862450040203703439283054906663882723282207063461184467476462132214728378498192268379673305914887913902165071737565134667763996738854683988796709552078493108252834443017117825405117989139079447256511819520315994082865907404137753392252872228106919777223678809806795779894723881867084115553791368897143727708835717649694523848734049395035643185363569971558270096718470493239821141379050032359971574675713131638548114344932567457693005972223145273257306048418879375269426833154392847403112220181913631277984385582483283829920662530696744283960135288738797070589823114929557544419506881149360860911800061520308614244206845273579377665640084555841487617815984129079409113671662627239550985168715566288409379732357401967415400193770367894348595093474739496779172626717363695014540967122523041913325154343430231863479813743826987795116594279074467644477777591646782626658297752405039987229606682770396052204402864971521340614793845909092713200117372061121244385192535570937218363976557501316148921911295781215549703470894646681017221313480839211870451825673675826688988727359887136649925121899387911640439983391456059111846115672543548247641943916568512392015612487754731161904111642331676845692150204693969874989848311388338009529958241988259484204338537339272634775290496023358084936336364302970019469120402534008039304078220582636914620158393445077699720258174411067774807275265001952198658393346226074544223964295817857601529217055054149577623957835840283404086945920270330793901566803612606036859795802913998006997202008608346339723048793760197116483215643305598070724473308924437561793512153245800403662142955361742052042883826491314578787582396159288540768422226688559190084076867312875646034708375528664525566334524759881836346444190903553344805826201580626301974324423246042637720259838053725742325950764666073607075436901350910419949301710496735826923525991970379857739402757372117198912615814600856828583418445360386172238762296591016274213189832237968179447931416807261917053054311104634057842239594476111073236663599636106057411819842390135571754640130234542683396456240669476237299781969504662661642045234401849216625094437719899328197898672197108532621031695511092703538583195276782192767737128459733329741986943539753842735926365610913775862694301714250831855006350319108435140564862459081926175278038255346481879029222536034205344320461389155051836247580377633351907933230398923762548905101756051148929086306502957526824901127638790419450059358595737486805765014142739518676873012250891229331072090479021277063565642986196384198848225942898024840573152395290368564112672254537556822987523782918662254754746919554415304580082789002940079840424895911428381246121767381062126523897963911512385968091421956417783223244499433440164927937998931925074387227916232588063828149124833084975942445349747487600830868944691913728580488989512181112463179001533233811097077493718001059706827745774263837833088904087578578127539724564042920906956210837475099998290896263809152523220687218760501812418335689569571102693416799238114290205617038262879213789763271237462054104482361286651914578571646154441751445180205028842655833753419562879125880684484420080630249369074846599304879140669842479508406291233705316652862666085976315952562737901800242708259319261930658366857669123698713420966817958118023577838579916549889633773136165091791949751275533722572118229443069885510892988067705905693438522083288996642009484958819484449346102911910324822630999918242451879507414692010977564859282744579338231478634039105311132450446963722666757485700109665619098274064754705646272460044214963971279964800564829815038347743118669820499524592742169970800182178235486685743393785886213820172424774476198093231746679952675381951647542015738140420728214525237758587419092738968643701534277685393407878437045679808375219009246094551089289979218580228260575114261991708946152505424262830297935570891110016069048542355906989734970047312494551560901120701865066819383934910159070528855065510810176636754618631044350967782283388330900515207260704207130536897547725499045035954831788374148288230957316838473816501622030128718810274685660706942927607502189030269165256071235847744797697418301948500199484246462599073192707014217743968009203617079500494495052923441722039632163489728513601716270367317862044939099399230037995456498569052168065565675451907552770554444222678565964738467811311320142414642859094823013926719646781371907268421606603960656409686728637025674868860967123051189094379735919702940052517109547547846800719097664497145284039617745982338105019746635647731090121503064462326092075843419497113165883688506661216828040575084246573030221333895054961619940460394242847976611400947743844157948351967486063163936475823600748660137315596558594264592855709732948670211411782560469833082333529291191451078326388725740378469891972699985552868994516697597622870959504639479571769382861733089155217428107888605412683991764789575701351670528314182370110605040836182146129977785960204617985814341876869904334516153334037242581814315349585111986859702034603228219924459590463065475850970056072726529206883786724575847345453689163384234123055902846256371548171197439848650361529756512971608920531443505949391920332816374274180412854998599279510221316559965999383872246247054347244432900618256358586388807392094123999419747101182323699167640465564115087465391319404021783791076614372411334803957457956262794254020310242703408722427690850705328997482091463126304787266461726233007721598016539723534453560984507261559088534992760608224916719248698127418432008532067220340208259608694641375501261514117866244452173861970337272554094460351406754381086381988283330156608708695545235565307638511385203892087558275224370228017733328319765206477639743428978582750864698695518079137939970607272688228914791757270040599423669819959044946236064303302328000833992724742737023986974627207863404295938381168153425357790588944095675738034805194727390940632391325058685174196792490695730268087538739960336669439604760016325822503010354433439691206528593128511212786198231970081695236016861662911674463350388505662678946232520463211670181509524502703874514044607047832726369286096280482231432284891278559403097846809664827958493379214727157579379858237591083371673486991139818564164715510561980931513686218846064375498789912778468114905782751119767837858843677085188770249405435617525700093216529691947399949493542982599738299684508242784909662898903611337744739146045848995036407446391031205315132420900556109747474701742964773610914584192114730254403070824831709471727588459360359671945515073718673055370089203093686006652615194371807612439911282151988526727730089503992090916617623973573961710802447451020216189301550762731902981369692319177262091196977745293937983605562586185698351226556742383790856590836042542804112052182672048980734967202927859516054053380586614871479972994707340732787847944934016287225904427149926399056681647150091239594156088724341170308349082371824920261196599163300512567925648707872221973486491130322186990031375041197093885117520024584170594234115814768404554068383506517127326782564187930872069848804124358669434381671168852527435571727452992981802481400476411645049647091389062752291289760915911183297866226998870639225845412023196699994077234065218550323612389974371289647658176325763725107765574690981864411534815743237415981405285575099818870578726079059233830331048386481000604055152350505254496908314646201246768629492788312449009250024637039678686490387969301182189222708916466975091822951043072604318386058976461123359108628196389516814440683712804495918547364585664860287909536837205304959307800441887531029757037178971954757420574247916366514778489794616934335851915737378688814026209946451139350191790524344876230310923499996279005744896990017889704116519467734734002635043519102883047429522461527312118198424803976379351256926834950488044320128553450975215892551043506544952255914679974401722106607203090207774001208544843147036133368654189050074589897674485249279260295487437391302317485394222735492036099507612540355488376349089064871621650242692429176097599686959001722841972198853551355117554831881479372589556852642176022741358931685953990005765264385095841166938567653544279073742806097683762242028630567504966734795684222130435878667401329179329618871945354955082417777793989054015821516935686974131389432703361867292825341975821177700020098550249057259072884554749995079230869016582164810308910128479312356115386764259395311701176655277079867413328459071721993608636255816318797956509138310160457235250526544588289165984038120000206912781317544551051294001184649410974739278512250589146199222600902679347527712542892886283113897500810294353543597686792092068634375933445683192405780889414362661007534198935001160901126078873992209291947526063481767606755967163956709200836798582929756147717822792377535731545816595476712025864771321150908347008424820665097700407565363683257653407024509214888459986344981060399124668615752710652634860161983957749121624112678809613889044847419875883716318393817107282904698688862679857115940499696381749785000003660427756201302168317206246561705223004929986792259466552780478018255346139875613343403703129163380947203898992202741399978728938321564854425798798212528893098788799888812510459514276856618412304511352080043259400484247028825879894269938093861486791640156792531605676895445937449428117333117444256695054378970875418916082801759458449659928816625114806745956174749462518685651355919382612379299952936249358941990520959966175932902277302539456932737403044424991688275099176289032669859383106280283997364432979743906706642734842584323813888628870823667109310489895452824304740362829568845672935600866458203941596156906044623661077728379586817649335336849043133738626319382110004570765225239560268397323761500913219586140777972884842010217810238158073062713392974602114526739919643278957008060994193624475037557251706699451663837905386224041324685467485820356167196696474168927995334679837476145049324202748955666027188820346703291076985941639092110050275977506224974032197226383433165788635164102542087498922760762721606238314490552789529309068358125923323080666647991713240650255736071801250846384745305440023367958499393830680411541972042217687889296222158325972856261439085000995789411278733216475708140417758682316832076838159845720795774660711011516393923777741578792600600978888906595273421289738391337229109522168600122651276247120799006423026287149902573145999724418075853933371218428798106146945637845283722167166384503029104871298078411282568797381698548681649409258190600614623161629182575951331035409251868268492156249950837812870867967168506165454400819063759369281305194995834227893028803084968782322326899180463282163620332532566952565544518639177636719125289454359700698936261847260062649910967265948716471697474950026406998208561260631507122243241999525007634934619216069209102242119874270024671457271446666041824937624336468685300115757143503815349097864027444643008732031199412597006882357813119541330375591047471650518552744790670072333120083643964225877376507628036897642178232533380938949202372984162831874119382312441977060179510011050289716176930481094587276120812009318216388631715012093018991790591441960659302253009894074151747484828063127791066352988525463812851518448937591529785257967748928468278213232757450893926851555055561350247497236271842247228059140826057118914427794125624375622940802907165057893842613152933774998715016684770218684649262615041395469844711103438561880798780974948171116868064468340007500430008119354115434002224251290726301532975758396549086633973031872904429113245734231134295824709176264357092002808392695856969841520171450125808378995399787481809130042819537999070752792995494764493618724852549611839659446405511676107508256099834370471174730045824413918617269195015161214659472278856533360253361870428843566258837872649968619646250754167283869678611783422547087840420988622015112439253429538480284272793117198682674549279908401027105459511782481143099117072532974366738972902150146676647014898383824501170109913486056296935871091647070453819465929060357577939776978959618634693982190117746015484437271070593497634406594933850978177957567413510976959263028254261900774847886538618437718081629709560612902413725949433969807912762836097098439578073529282254953378802901005878435396419490680943947828740117253649664129452288376318892167014832998522188817474347647108512433422411585976930705748613928301006214873602184757825919659178285210123464232423189726044525981124307831564463059640055268920267529425157510342050527857215484252916145900793805584309567844821684761642841002140942888201566358470097900883970266821201374800057777869953524991090697624801335113307122187016834778813289541586380625730763457737300889693771563528013853060415805251826068387624399526427880286350919872175422538872438552767672449548189591902982155228709802690744941611454736998902445965286054195380107428098498732240364125919859451781493026809373476532718309572134479528198704190677256071378322292734260024878826381556446289606846334667167233609727204320317341247908941724316250263006421852395062111597188982591090080204839974091020390401876135429535690572125186084125599082449549709372947021833759810184145308946892536500241769548867175614841348975372380313984477617709437893780854171266650542890916517410886413299437371188171755652919296937415457373105816037096597555986142191675798372669357304434836742851484337362175144994701130246984889185137331446669049584474338902106433356806497243482845634926739476423043986189015562980680876325080397404752835128605676640767118569295424775669600052085744255311526641630608464415996367762675663248180496512987925949282598096134796425727084049713166041436282220936915767973164386790870568837183187501709114747050670211191581994648998059924272295456968839689286808741519964894702194123120645219459766975892595149724982530230874472447853324879246706568123772999899209625859080760736970644263203238886759848990194118714967366702187578542759629192236307231932869668210461594777382691410756003743590369469675371295150209605016690134641510615200458550464289534440441049298452559382215196368554338229479632402702102343127523350465807166191406770291396530402493963083104663485077023075398805246939198490840797877006041345129437388556614793763659995603901101847414659629966302749830641136818533101898315658173457712612312126612230747863656043249893969350963796166020155550104785400948485670595153722899846577299424370061097029968485960309186001623247277298594132363193926437028784869409355980050780455535293071824152156357173954935995700004450881433720346320182290969297191454256466826731621490540948411211066417716678315633783264703632022886780463879287693390251886146669503222136353992824782087677638448277589566070607210969465129085458505560641764247729543364793015727253286372869692876728474895475373888679973184951988938871548294228389692801860135682999343197302145301607668543509816997952317229064678218963427456870243579979942911813310656989672375108782102449052573165185742368647328484882943494209284678712088657638368034688679631854919389889021234644082043085014413984171456756422644779647208597107616888661739635979165333359037767561266160987999700534318130658193197821397951679870267536439149725513844436263199059929131452271413055402016811087789282981209180305955357371824417402646095592970940310068102986910340182659727666748675327475910483271639922869024500927104310988181038635353233782538903427155481318661109106456384836478604035520229427557544237928103341720009427313066633621699395057005222096571368560279556055924390629151070103262654780763393881099150635245650952586529469472235845537720741275134958796876828045093612390621142563139458772749281151906684222537821758234433400850567967443843875098018409599491848564732108780711543480163973197423538077660596731389937805802762573031114974052865806061424761784064117256847565123269941221069589020958778147250398054013834956498377883002915245300120230697074001594412558023468241857395458181031180277771325340832013006617838503470803939427213717896909549266101790919449881704409966296873204251428214860268773670844690160444496394209609761593324955396551766331420912251331074052316138088788241653884870594478723398304436501140916741858692163857536228809026079169747009730070282357450250505899600834640950618657239709866037276156861860730007492608560540230059282529463243570722123761381276040762129483964841211282776263396258512220060521373481747175114962885736228126927862410291240129354202451538304296362662529936219450281709171032860551091751832502211696449246230293500738167466416339786353398824241875165344149104710485561020654893774498613024822581934785815283295814106785580385461472011700233783171964158492017074405639811218020654967674554671545900798387550594586084179307953661742786318879633395834216033150414027414339520247260535039590010946633046765550776532140776792712533088359696981977077538613279161458720089609303169108234289065864472027186082997851125823945042334153852016669236096206600594242326160475151081367272925592556288329194092330886249283834807944481379561244073803075059661851831454552945060652272695913550795944208060178498276861707901113948122462185004341661281615665828787510658698810613847172447054747838506012330554268636928274266700395036315398048447342984638558105918827429232821479270343811785381603510380784318748269464826404658635030760902002890560898424516141306201917546542337542575424084095945729588059391944520842891721878980695299431268801277893953537962600161010907208502408944265406820152718844113434351626200229999419415061348477293885045559672320322121382535702054032022268321498257930826298613649203686860002494127514878755342072684015247747232058328225759154427231949542517340047860690040002313128512555496528579144734339641609411896225959916236120458247601530494097101251519303140269768151930506931274620027343675781803918411725233157944368343187969194340915268713165286250055359946299938931767453458931152879395135947644940535720740038709999089232422414157250265434643549018437535566376771810605832249331021403943391026297706173127083533761758626655996626743097973885156762421820995384871815504730945514820083694660548698619027622725114526643837244497423957005980185984257364569017659739803608716656447130071844262730259176784766662289098203567041626939354487497008149007500841605934548948078669643845302999589874001882559385487847457733228386716122544433890099731269362000700948333029797100462496911474465401565906953446534394338169859081012725775534789329797969211286344830220444026694251018398615569646638195699994109828493116688154607445894791304613458431981537700709858582110566132106087529978078402828407209021308262277232135384559571303320143328404619074367903533243048110349711146614436248446932809213193711396072131734970904028469919830617892314438075317817690902430974038520391213009332974472330213378789382808271741172843101293212227370835326535287534318351219224947040370010727763685396908162531169197933142640091660228066674604310899667685931850402722493208996025749701782177706422544444908364780058425573852090125931617557328028299545742740023187069510390062033082093853858412377986560095101388794824859593582336625728236051887639435697078043982816792785101564767796567743136733518993978588569100359995982813110822324629225308092303792374315572724332715158964847951564113468675661120467344156132115669347958555493602891737393324922848363247203795248213292923417075206681791854046744246554117339981858129091293234751936700994794227223845772477543092705555169917022550648430078818225906885462225303238744546966433576985740535517874241431702590667431603488199250632061376883853179399270573240668436336895690219491577484560418898018448821725311430688173509886435862730887980796974596858874234124512941110820918399005254095124957016574838054111038476313023658522352158903626555726331304644003258084178116710136378382417908038931933026319515222857497576213965607350663993827691657359792402054368098888733655759911330595080025135900227347350337114899632960144382781726834000359406590245882570466514167752245262294253574155688421641861231071534735061795344793969291461363279862163784423692029277075488860105123422101518399067010887691822913961268757981036502838904555818020965957517218659776483388461154499943694351962483793415555085382244024376025401157691097142253437446716357991238920534785633975130020551760166473580918389897096087088523450377526740799226074818876599456900404149532082368346957063334590542341155406118967850258696754595115333412216440534596201797109898907641032195988122740078630205409395961338140863822096797169414621714645128589462589972688049287532684916052011871345432335202354084161884517526252045481594463919267582423772040231546926167580141002473357831936157753099827854864789012550424188867765798297207198149885074767338154969047991984947662541796623148564579395666259658931648820647600889880267717762813954001588029225278598945712199261375250016813992346784899134480395024217493211970841596892116810843067731286689385112770265941794590590792877537644096484663090741140507128286733050548104247907838588620142736739491956435021899997412922750018453843358014659506494865170557537839510379748897584499851587631987019719497327914812034033120239812789047558659515125520923612543426209088957323924405053798934698035633145656629991842904972774868009560778583623525163235031809595649531457003139445263092225593741019713367321522650905684944850652632442499263114868382786408593742018138615517294674564840781198385512269870591285673663088644014389668904887335380242708155357288384226384542362527541951414806028318518829029287775173418258497024715453001011120255208955032570289141714337221876403983917108836262277695218188340157180581613643614202256864042936451471260086568883234670314866114544723400457075855957623873802232952094731862979655058867694210170352016148481581239685780601758388091005276142586870604202640820843334630337633096185099823803900100175585309199931159844419670916889027704971829853027316095989138397225604482952870907805394140866952054005421325924536830793897370676888729036703451253191617326573652281431471707536460338957569629503449306001405175022325703413037840897611109666873561014510113362521476860939542137263965600209597464226630798828477127765183688921278811161307479138005059238004513162257286183802198354008601861431874890227754559634916444379584113777479171278353284745950965125688967503359310349701244127458272005636527698265078508164967019513264383153377098261886444877650865078939413921499778375154608078676894697463513786121233414664163941619968113757646831690770849870739770974038882892117420211518461634233671685381655708488948668904714192696864343713655498558851347464901347277167020075029937272020387656225896983135598650831686603771341553375918936958324136258825610584214090832552844131968602867876360851320436570053105126409366560941223251166740925264544219716560486921203486623094338632471538290269335037202645949765150404650310120647833237477678259555170095051866690365532895659963895136937232783860985226548193235865283187238605535021937913485977081435706638446767941747508309549577869992062607768365268449111503510749215281847943511644171587335568314426039123767956551964054678917736323417279747721015151377886874817441075874732955385096993125724486507577229003161250071448143906442228583955265044605709413471727087722460924524094138143491947289970468071227332017702754662704196093258196339914371136837873269852420362067462049993737867167398010857009920924776570819612916300055960783282201085259161832901660954521372521809200479022821458834382301085118712367984104777304681788297885368822959516790547347600764395798794615956495607732477704902847929485505205342465517852461797240891973580344949252993457976617423136147768571104950373611858212377438923684275010134328494742173294007743817576233051408147806129889890965035289075221081270876026283573289199861940428358148475888363109870756798863043191128710079060585372829228766453367639485488221964498622080891772940604539277934290037487388617217040316423613538488283328701648111873043570201821821412114285785448239696638820629139507399991989465427735197590276446550937202778773093580176611849212517358820546344882491060143071883377867033593853585632192875797096102202821721204622865349575205826134429588153145286084332287688367729484857681142112582547984122101450414905269477102793805010134396126065990257816754108271095501644500733033787183151390848924966469545180099489739303790669280344570157611447879091583233646674437034614479341573858338823062559160619827893017042328958644443216644625070946408173887048364038258002436955033283608310955310751179142268565843052636227185237647254558234178588608677791805315634078319262138377374027183328559868651732861175211462866438847365953636997494265460706893466912012100735250515925469889486358882835526890889797767198902566993788988116057244408560905544499088321778098475069430152185027976368858655478145724522665547008290496249519540653892897613717532907507535933567385667732888478874898653956656453028651735745636350397076336639601967744804081019642402541376510847840085961595648828050463308748634891075803721905787827841117702760251769233610750867962631227556388482384170372074415855441440476059256112513317823210054919272238129350830562925219205601093297275972914006327375663337914105898896548979475942175275204019988347279722482254709207841032058592708041853555233617790760722922741815467870071922436398223381397830940349196447015014392668994473756591553994726991059327526839322780439447420749263034447865280583794463459962551631740767475716856746699350142703131530513686865371306852241813971340382949734869873901826421725604947116209233178746810531713787710108766435308594579320565409635516035435977952819107594935357520486529376832410854712189302440062527629017675947156365760322959867151625862582762157331053987326673850373081561548945410656293186792713852464412460117541082303505865013120362885909060467008647048752831778883741513575656436972863177718822403376325487878252194121713975657397746257392559749711903166330319514556986756343141517937482315845338065317353634122817556113806596233518392342617097114498969250945007377160894602314536603383762996176421621370729513836505050358280993751706821348238468099919810137234362473737352138695085336784072501424607278579672388427064670786195570600048612169020339401596133892238760722704677111691389554156160051895103070590260787752727803702268684942579517902102186147073535628619383150050800517975847221493257451625443956500736600945470463698043451415398143689622199316453422643493577169191496201621592672176768931517973160643670523227682946154163460188500894930532657596009394777590790531529781130029571844371858444488897522879932304803366325849652875928842530036687225653531337644184995750965916476977278785581961933176088496088644307083745624782286086994597573123199059996314710105352942589394884099827647828524029692634038192263635994470357797645417859216854862264261658778035087975247570637707245053153079602443701795283878971768607204757271997498402171127499748325484537497900994506592194911620187145603502096902978206773775778721600101708435794183491346025259309241307698544305448396272591351646136829789655556262321935873163780142351492036112333750743244002830774803170608058971776716299927235379812467872245474522606046326388436430819727907847702556929955887230210851280661865060252657147989970061374168922944498648180729049294645597798329261775456564266739197292224612106561972063190483489128823896063365502002774965610253935137396104380048456027674601816198889610743554739477725596272894432764143130011078908362712482507635131831841446027999288638997096819231376309633729726250394419189679210536266786728599166459591419811737508086494695621693455988088721078645513621081872548466599684259482694653083070710728078962802347930971343871718853193998282100628851226948095538936088871964480029194080298608274105385162182562036439486748615684241053558841717134157898052985878898935566499087289323127350484868863884675635761442479496021575936421568373030069752869747824055131420382276272932195503814354814242903716504801737119606123123492618051479718117211043043013563112706309627254435465890246266918435820066097850918451624683101711178224260298167939152142937119432146895444985444732967638036809674549220672931509149660484540056260894198732057882498706322267704644173891480337956427759140977581909346557299298173731271747906995156911152538454724241542550364537741240904673098315474129482638900710651608842771981386661408286099993379706491578415793842687548083333994317234854217456814807975827423800801806587242610034860974538715418198120475648841712521439534002053527646299858779246519271517861892250609780245835588365896733315772161774598264311764461062109471915323937786151761357761694477964044958843765666002451854767317086439572793253991767938447793431011181759114249290258614761647104788712327665422103050382820215254756872516752036229459464138757715080427065378547370500302106852364004603126042123139482810594733027414025522298201849889228133703462442973694578669260975562528816398602528969071366447821097935163552999990842175782691311319668744751709532767085574129915887934586876566283648176825131472144288941171927528892723423395177163048505092032886595010334864206398881663193967024683380834828899115412614034863860519952915494014858453500250800851345659342212042404591305594975609640198503505998812585567381821261697681161912120321870381695277556722394797581374975200977158026719802487516053368296042677114317005195345296017739828087313778121457146299530765224404951362423368139489374697181708317335158546044374501439524067049705688178238578761977179380444198876955315621902689466919592757625824750652098033802112893846246483456452444272479183513167182540469366054210507507201227970610381018571155569268019227513566013474540009501554798381250103788405964875708266350570153601209114996593975330625890551580006600198603697535994931532525217001399819555928486563329216851287946689646511514303414822346084775087622869764609031191165251682176282428186497703128734364564538561811820994111025596009264735122201253087221501258136954027597530619964152566461521435757745029975290232443196544677886654172580528658110871265816901625181665013838858111440286396551573817627501893145729194857406747042049318950230892089363447853825249456049132873503781387320379984565776531945068652549120435060603000327426863369847238053448779125449777518432296429943400766449493972874737265054476397190616932937647193082087251814929089173531991453808973352995433369782055879508465538387884414403425830187247384631289873726308105395793088606430741287228752432808868677069843763170763598668330390444132824187596706727499561624517927296308302482925988781632849525443873890640161929038966942327848925716643746508670375749679424162228803956718240186288257879122059245744557922247219099728454868965611339297289432961623837087268213110295902586180675259180160142820582197005669778212884902343139996802985071055456028100831363460935316183952654637581065021567599262747311095820058147291598977330059643381072449822639075913235437742421599200364536577512944936517496379673899819089026019434653252661692531923744296404296373726449424427004306628566031767972116057007325030369933201853882837063118376817723693524069531084321877419576756514284212563770027261706202946915121057318887478393053988630850608842718381332776986748824633709637401851537445065143019524260425462842850063171807353193335363896279732133252466766272833211287193169596138035158863241506408206251251027491263767754351926488352157971727562827955541801634403414955968567457312041549519616527937988640938955869108437265099824291733203424448516565451843380606435333747551229961896944892360729117909765314655075101593524908494532354279470815173507214066256706529656341737916807746036836095979180688494660312962505252435082542156879439173803206749802025631082967074475706585684150066291129013678301552645924920123780302636091418614783715366217913766380845568186728505926142370716609942141866768559390836950252368282713720315866428207563800785911745020208313038819927057265594831251878169099141484174932780334212852480282997188512826450926117664627634394820864049612246576700820451291034944900287649447211369333594791498673952220045574541376888225152188851268068018313001002115839300102298148381426337264737434921551978178728903222100314522957551340418401073926285438544597332122085715598585028909320630718204774340573651067256466707821674860326595486241023501315424099663284733009647464769091311052606049705620525822066040587247027946484016759365512907530860569568952399711658532257696392460227587708878152601453539062929283774953905368888244298603361243409987896425888279859173288722383390400147822155752934951760651276865408725890888149413248891951977659878738016424722794574252174461770312419763262687415306965455622573539373250124522482935583466477879007937949191361144359106696724719457970904301865960408266119911566228419056623829505647407632646066842542806831387025095279756645959020789601532050349310220001887850068649011036883268656072929096964196598816486719661138990354549969118806878103758059849215096320070842658411234006102988227135751099180471695372795218379415020969837021529462621463684169715066469304318929720080405572690745925694055707281772563947711027544066527080781669110498528880180168097485666551056545824386481326155387637636108095737310280862991798352805732387004546322369478049951610818362824824809990195549107047285027735153466956919222245031634871139849520325657794348743736293468240293122233884532124330127284818702346490106866256424825734717112788666249857938634296008379441156008227767459022912130573853181456008206568543960187432039475084381458799633478499755279314269959704925106332092532469801531558333630777976388015210613327354858867535817430552493962081990543709953622480308714622703121081467839186920604655626836007112234899177095355869751489452127283485036163628170859758979857982191229570156726615500688180288177274202511596342787457451157866334041384749544264727837229341058438678663286401912178771077750780318140435495673670689504954502191785375160214917785878589107589400365798495154173438305103284365648469112204135124503131815080550350738452792176002897208910630368760597874386739488085792134095150311281320450400584262112821890911791013878766963261959359676695579900537028782893750209429802971145988189173429019150879373312914977828678974777408353764177170849246610430474837889869565778297097375483925554265645217937782822786458105249493443547687014238462548542285024613775627772433809128487156418489021066803497910834095848581940759128498444808343560053510044252606251299497661052993577806420522476700332247246208082719569086547228987244995276256507381144462823339270571386308200639196593449210394501551987771466533723156521385705732966712985842044007514990628662641226917877972220835906936907923304122180079546095322042847025543510138025653355868870686631138087811936585184228794168207973575615686511654882506877792090151459782575120581500636867624499633162139952895494490982598838357324635581070834532150806445178089709715072404900610778003654092840343746360622230728429857069856335890337670332392436904843666355369815210940006335782691252948884905348172714023344683409766350445588605380812075148689705456956479679619223348787955448928278686578147610860354408995304878176221787555903861151266105711541660102344872156377782330318715173099763168191283069675167749394842286613328569414956533856815680630065288455653645709213184147150757986402036885303404774071823844871899299260918504757298337013449928138189485040552289126299517987376206728967995935853499211614840201638153201893316502701296034909700821739831338252744574581115877722615819608304064900929260730527626634525169098890123929704714495567897379846331480971707603864197728220693383241491421184226981669560685881564234000503949157348065569448604173526139143305433905713663941229257031944186074404627257184505861110654997876246988094865124774098576422931258271898780045357428219905825624621369004705354675097714120935942423881962282625498296406912104316081680139281779807983506429295636664260751559409659481683196306883682781857701354836205557837774061845417139258469695123718920101093609467316836334329040111546127914897509225955982982027940193406817491008259873020605768456699948846002324902583001729088065203149712311847041615444915007844364533887795910838141163853930324725784485680097106967435194429049409726790050401564077216996333854166898783744034096270734808703565486840316505057106626894470764498553070485961044204159999857452544153580052891664502577310107854462156258481558472364524425299444317651612298029404356430483181285217235319402381666064073237432257224096175530016815607582749929019525901346100357541359727088637804367462891923820855017853777175691646260723430794841523451620546348667540578272482186066359121968707317041691853339727713253801919835996580121042597597253814841336825227484344309048324472582763883242648031803760294644238385636633730209427395514854691251739617143955275384105689522790962460606007214270936721427868662195678534171558828678382868173654179646254675191799545805149409322770684269661564451437235670324556808818916614312794138692379798745536877182141728883828957315219943882558217110201027684261045103081377582752814725150100703940460134362851323720021894107932851765860645933648850961310484476053912639484579373224122470816149086614488560835726067648506758041967173796983375897009357793779571190501745637797442059712718504309319105969627146427485931166035282845561695837655064750761440236328042129014460580996924352298724234066486456097159474051951739956877323870500990965059809541490886184298053381283459975124098136449370713219580499505353406788835508014935596298410734329609879135800657973174059097870318622899261648919940655122525944145930655734443186771531569346965575989132667987510105234558919159499361054632734947794035098085561337333448514986490028353417551235696085086858011565218034412980821074876483288647100695069696509071241829381362008204174127771783060365306688698791942228355714850975881295654641262796033295951982476240296268038161339352460694587710810304148299171145229198303331874740315921742745337346887514271981933553235680400461892197771694954078870292216014217640597754246482026043727499089743726853543036567227513738904589250398443276631029940052970714466758319384279789938127363436904603496210080139477843069916000951190607284132673926889459698956772259590115242773186098013031516372542164081792677950056440855515712859226296741658957067182246786350041131477763718149387469257313330775626833288423763292732745819353884767729278143771467698293665000780140009423307162566530361359062170463335962171258503619495350558513023792135671058412566238240680241410190373321947113118896244971602422477426936481577308059262725498062754214360413457664079940934390389970814170325199978779102998716269780002058708399380713139372330208196637743730179064425950576370549462602049477944248910385382409389725277844631764004488184011719621678409491658278106263633699582878950501044217754005049355564665069660058080136343342696900744475181674639100675390162492854832710737007709424384799547762853372460310839243248150375184685448785478604112341981446859305116346988805889237989930894223851308276575125895856500163277552848272077844197015001499155365183962055326718616260142198250943141242102431368857224680765283702865685271825474926436198451720640034430993794909724414842245439942130995531506284991873593624184730701009645654961347126536069993937906688488830842947217205627046212803400888626424953847029182309193284624052137354426882093072351060484220963065251463690449184378210558959048325282518762090612673438074607647844086283788881417698642262501407610815338377623736479752293431439383587820329857820448253747650079880086038409892715493527194243276937976493998847081521340927887679879560049929952931657568960884762424947127161900456549097040066949461444610903271134136251755579762195454792707778462746411234379589467906280695971206833750416194026549914878990531598793132320207424859067794169695651035094629219946734208773128905685058710917295567137071174232073695859807118789449821985491076918098711232484586016045389038864305066444898410888227960236525961659237549971897138380720984368462972449212461516859929696208101981775625751940685907825650129288362548160958230548163453557203494679228685629638892886103279882791447140421496740654915430010530851886799334584124940304157608232885197032100926104258345491180222588155614012613060677471666542270955263525133351261150368737954736283868740991599092217706135911565416427431878744851490613077155728613086401815272687447870634235014200540051293373044031055475357172225666248146022292381593160389229649310548157090411655181710401512261307776792969721142757615334116107735228130808863594705221617910474280233918081896536137587583616170256129459557790763127258117944703164905085063153677990839537353672674138653088038546730706267310429497831133297629058780448682518570837059348459776371953774740050338872517692244886963634177431018186967119754892285232582643793530418060926073588714890225433942831127786741096318028904699580863200636876310107627354154667253792533475497084236968366119973652215052761523248871159146939182225519237561654516200110672505433572931758098648099459928409036101991603211411903655555596072386082236100752261363956276878414006130045280797994696293977170017780171312271952839999864598457493920362339571639909022632023454069749000102568899859360011187166203823209679528576945172260788739090318598832783979132989814722819531386197405162431654883516299809827797298093477962620675835003665541069578111905302688505967154781938519175292870264036804714844817759851297097970555435582890780237046853221899968379238898084008934556116379175218264733394999631641698661099809762506293530029218651098068438323040030168339477510554148172549799752399098174971739367663651572633349397777079635645175879943507542076100552453716465920798247047751610920248540329564116584331683543308308720820762332154166186307638946593739111155208803440794287547450897022596639915609048923614716642035941287780098378633999785828052182021900050125399064748714092601687184244287746983622795078349164573700484098233204728856603263531059445899547422593479355354705808669045613871290666449938464318557267634339683650800417997564571195204377620088094547959124619886869161273556567108900246575635707542503134951483302129681434687329709503121709854553684989032506189639473571135785786527082951918938140480009533994427321297473153441979907846114453958294872912299372218696335146247410477051351838843149555993838183001804973082942251172097982451168359650002876773284692381514935785752842258441969265291379397170358297235300270409371094223824686119970889580808433847682798655482628902057631994800946990519825715600272978371757675576889117810476844140035802361295827600411074094421316010572416234380818167320613390317682240375216992335888726358428022731715151028646795978290519201117374209790016926719836552105076662647338426734152587463772874073791436940052780548260110199681587264402232081260622743249412231005628779436845444147052629267028515513506417830526691570103716100063227642578597990843999065613336313333199737497466297232333852241614579068460139688147840223312789676483399076807363339861762863769798292624810485710976140178620278553662316534789972310965834016570086294212376810648344338703066229930637425268639890668452748466696353892361804783546637523826859627958319806610208546591950942072725053894974541745041020765284224499257819154964343525292591658353627068054464269423291712868916997285661437966032696677483537891702847914555766889733380651311204974089899228270537760409094119364024643701494761285661176168977078511459109813031195195354479079645522186099957811644695858174073997897034998260832576324935616475393398124366924498413934357716944738414648593944411436687017862425841217942081370690215290390169582055332986293820789719165654069925463374317692715169142955182273837581894864190623743396326699983353321308585008241992711692213450639754068021210324607432396793235256009849782291651984998722612083062646928153122325873143898838787598459096243275475338699846954770462533375570660350664136555178934769819895960709389101303846475745185389039076703104824540671095895238749801285003756879148309998074909722911790514102538496145129342344236023253907931931402853566650274132151951085963084042599411124495925473247688706989482671125368068650588887407796466010633623306273491553149628685624376286991031543617265889863827389858908135922450736623693015780374999260217572164747276100571686158797715875240949360406805242230290729499644404540540738406450275937177095109750919798014058344923441067899610635478257192669472613966736345346799201862676462996254699224642430825297695735332867626337131548198190187704160433112440302533819236215973274613261208270644350932998358400541047968206586343152608475974878379687358325743146003532544720928439935538601024676316393464524720630015387678656871169934187808999356624828724349832785162259193081680439196049911310954409818379832219274130476331608175416011837720572874953095748967898714036481038594724110462688143918940599160162621877751328932748456028129597209057841348701810791148319517413528055161665945016210659253320356349294639757944195043514997278712157598049353928343213442580231420537938012382019593462097632753326075729537857277546635746139965192276590356470232732038770584992695038514062580587581032407170457463865932944321817620755196087825101222590830494679020181789183372484197190038402516210299483063853339051335047746586453063567283960108464730813811806854984970701924336762285313437157461117852059298522237733498303443578893265005376333447749885122609830150085634387749745588935361518260996174389676392236428834471897335037993595887642874218217040176894849346697793258897730785643760567820125812139664065021881787210962390097749386523137421552824540471197403404537216111088102810530897412008253507138223833245704418265199597120316861815858608974229112477451221436751051543049895220758276182134514839063545445634902247540741661510694092496076678481320292689621513577467840794521260482608180473046915774351514814436572911192557621769550796238199253815653112929786105386269943569824679976584374310263134754749871027062692802946349174771180669340665691354689961109420523213643079228325413099721316160480833493177141302321105676021854827076051172822711651881518763348450115972289245965671900198718803675589969887135500486162347241589609244329097467837536087341874558830943760691277196255419530252085293880830354201500836239882408893629281857559426082121926400076088623132507712309909060532515744994937529372940785262809127338252181362620353144528260911259054597791292070663099380543969797937845685138080729955745280952093359449370365244604172777682256036767686133818255131376798925689472112770351161947885923985122469352466248618257388398292328621688000768840332517184713684304412974031416120834734090639583134569340359224067752213684067904841276441764657677589491093329931834588933235911307862347583932717142768720256845857079261201966672349609282535918415909207679058071482802856172102590223049172732311461817643609651769275840423361763464806370868261997413100503721545155209684287164026965868411795339007804104483941025553055139206643433569111789500895539799138956792943424835511313618931775530151211760765607296477483272231967758955419622827313776524315619658971808967212663627766221692500906867797450200847650982381672328103434210066882607871819750003770054026077790718130295284225072897545672760297344614554109284054779839197075974016146481764578495037334991882756571955548662113660843540394655919472918195822833100199078779676634942609778852092986731407182843491307001098746438657545063510241635079310600393183790408457840025249543254111222091904467811293349635399923735874148343774529802592276113492829615916744094938519934174601339244876044481679145457753162320149358471826788733617450107925538850293214274383636174298814543661541440533572446086057902883485164725929808885945295983866268754892041062855519897992270795762255948333964369026970301149923913438102587569775181765202603182759874651548034447606242613938742044794133010194449073541805541329944545040767127250963514580625833434821145687309934868553501500360478667663696041231952268354698286264240211493194318762162670153380450698732278579620349634238806247260662292588239830030237872073883318259911197120499108348610208324228112435262855316222671514631874760796770460479545390060797751918133366809643210888344219262461778512935389539006795834515602431405071395652997862579477476675166990400142288227400589771567126226905495055520442331641001934175195779992194660376852289777224209562002499968111843233897179945755923692114753340060348198489121741636547638869867088117865930331216366153051031163717727762230876290607000932861994756629177634233515444869463764341535024854385730757738674284185049031359568810533970941814599474926333529107678727980743503849146954971264341385937044368611048640592110649566746664322855686912034613958392079089320929059077861424046535720387046004287242038095922192358875094691355959441982878049445517732850707969896627131760252219127008701598827422691525541511821392330709103528803305417493802744080983271142538176817738379221996056888893523804803172209610073002699409698196117640717276466468842003205769725468239102500229368021330131404704949561559026961122901541847851990177699285622494274336984698595344411459284243659110500051969899625865549589934935639940312510442979038256009225486623705874913034871156301162690391939978213960950671787512878243751037178797402576588772779593460114106963513418593656262657664967754623825332489863933043494655950417903402275591897113759795401115807181250712982435774864955713162430522250038438088541294203810984039062487308400581657339153309917360525159516549112953933215810452269852584732035242448479624773643764197317251128648868823538580895715099725235494656901706798029387760188356380815473267771958092940872704889905567441761508800912467215128306559764335715654522768931788176326581102353491507192411058743590666017393558746494816361347952885585076201450248674806481580178472758575372480806290744750683354040563351475127941189405146537979153070702728435810679423985566004050397055949804485480161180305668179542024639693229697140683270796925268836916893249993816883420147784915435188009808704325025140295035505135168855938410364508673513834356430919984798492409269602923833845419570304969836319906563455977085788257324508932069877102737383007309763502588655352347339536586101314999842570551408979029579781423350999248090616134990988502867918618265315641052869014729811114117119692387906571209201147240110937662975088514487093832099973691338973758795167523023466624180439485220685970359694539127313992697325765594624031522572708059694544145681208927914834525593945642079471914319749006253192031758231686683535449169867745290807224945918916803498315415808094253985799716298870208091869259311085213430385660002169136445142321752184732801871931574358215870774764395730941205284357164119288846289469067873235447752989979117590419273594050209612107473543352008475790533825717192333764904365806784865729845405237250704000060391568536778370824111569341811229515942519162957111593286964010631963415166470395451590172212536250769439697976162204064818275182803785097088757543200961264806400997743797861592763683902508048824248514274715394432528307185170716734054720414777562282090883758156267822034462910375123103828356514938561177640912223977888071623524858522673628865679805326701476466392489492583600826552515872742444847825560086650049585375888355294268202639988036009776328194656429034206521076364126592672889803946723829056969911050015693407040254189037291622105684114065276159803765830519996054958205746552962951723997302050873296817314110894449509053722067443785962859269119252624570413059943030312471979116006236933926330170343475939088080106744354811793007772067312839781091705635302105432827426256717472619641874641673676367792982101463945848920275131164029088911809827322536726897086669047901125769193773069189849203923261997630059550299852148411840550160960931499962731899184411672409337531732445474103667695014145151282974130806537605305740397217334834387526465142734386893283575938457551980813651167916815034794743430672155784252018197712338023646433642048797962484275224141628071463249787209064079528108729019453270052319047303290163384569753604033643266204988953262226396793960066323816101851839023706848575901954105794615191707333223721491077459535439295921037413463479539958518368254146494553069834675941700820835101149682540390914111246091588075999252875321771541890416475750989979598536674433231047214403145143244295259482827956657833350901126845547830495979829528497215005359184920620617003783358478253976003880687028524313896727380173108800351454055446136545615537534866481352445491856868830521934683013772432357407155991305488281880553082802530689070798970209772862519096165042791033006471893355240295147835759325292243962949029158796478381538944805898884264060803356609615658337274817507503030174675549782911155017590609960765799959734921675509783946234286996778267775377903558153877070386457708102280876026927871741926685514746672379552305873466388682334032383168755956554911034539319856781355250837205267806672121159615338644405772442750600034126234832675398034410939260537242918637730563974378789653463265699065118351189395050490847792173145911369468789610881397579518117140527022045222192525928704659244629146651185868013553642866224628343662060641173859317203340693440279092702368291739038857138830807594326374462665521887620188894389244277242533736985587830430090552407513143833185652946395586566961936509777408340533761221016609176328346975863002516991694735257493220422435871520410952747847621193798944885108586658731231218015796481968096071129120753684070749401384593255634446538617428257062219065331810744393941452837512857417949490325728154140765884723351946249367708019621727643025121535971128200517773654790712119639140633510539542616312970914686083598773973499575915040734639692913606549276262625721129559110725133902702058103151097316346242003211068255577806587729993985645450165062920276810132233075280852052206900233792981967732558642213029976947959077168770448379135816351083976292032434699379817410967390597166871999986206478399113840940075677628465053638018116031764146398716304658339697180410153118580550447953677141768676029523450740805650358191495863508543320298959066974815955182001481748876374875336185669916394990321337650544365497176089797061842399068373163845468654271127169268314435381015031640884744373987955205482167089519122574694121603027662080343878576399822519348631328772319942248824902548307532870287348636866897342284497407303334420463073329013096904858234454223281794019676680907870491565708690405210830700895082783732840912020022199361953330659833011571020432540410709720593853740113383333182098116626450743648469763435863243615929873819713021425097399561485874794537026255484395967805583056075891888538120262276074660103396287660500967837817429198999702690681305695243970288995106859275607897415044367014218752824280678230142392744409801190724788976699726676963251998109520126909735959985395063939081503778597384082570301482422681369864761813703615545764618122219729357451206799946159963722776526256377255201076860591755925119901553007867295836785935900393554796981799109937889002347007615440386043522838839967361112277450299865439438052923395541028372801870417493712201358341486067210887261269384882723839692724047001485864563705019560740218188492909835108548740223632149301412425672358498878166482799800900755024875509146620977544454710853053865509921270436891365220856954433320662148643326667083804280595115757143957684547691760944721134603978343603258618948302402884038540907209884034921754583335984921680225710872992487249857089376063606457758093610469062184763544633868429767680947054942404714729295569399658596233580526958864663469609103556212978668192600947528220776401146573843408765876164085222360904724557675836557590857365794033787063889540180563230896610656239200146738309272955171495138717921930328548196278051217022391228902540043917575882285226111812019479741057853289367410912443622741592000871947973074897510434160108848135365357833031446290534870993701632408762686565264118337955877144673493260006810551349407205708710502956402332602960728079537577712851290613006521055663558456823402065594340796181364336516991015484444269936136747606786025851974176814187498132033026722065016395728970030270771647885974725802059652253385246844537732631457682394369214886589088273199343003034138996600250201136633711327789031404720907326009528264792009575823241353906789815446991670071186893434963280386487408010003872150787915248355851826243720560586728310722849153289575178978233893213658969197483620499397799059697529287145869432282085712596501727007661137026276222114006361480973578949798991848426129461633635431481544620889176811408503020280926420076344793423926409106044910384296329409306006664340810440450843499682511687600424572354185660286789721626639642450993667816872776350535136482387916994365590958610378257563215060064576610650605732781688442024301325419660730710078691793573423429904227514045750034616221247383618562068878478690714667093211899913981700073380189854107445306760959775243716386460871968830184674455445190258863990457929814392565954125736701729821247602120986026678561183802711319286450164030994958010119458299926336409382700847394384793724403509388824585932168845494251344564687921531292593400299244708311785111253734984269147789076504978656244343237650998480450451683963647476658259525649011088495054402890302089521244314851053370838302092400780332707605600231785880609004764739896018892096529111745975287848783616515459280997719921507903207325091502939445242716850052808815436281606778964718655868970550051687151615458330951550999722593779740587100287007979675597696379362595697776122099841350593321513513500772371306970599855084170288161663236549756257546232401797370647266425509730128011877849302112652047780629058571950717646806543497572050848428541199128762589758824107019817001103158793446320034200914834503492093208908786667516974483597408005837606701722331412369428296420918588839115464463192615743967865515847422291926156044648053046743877079112938923426518382886829263409979148917147453881272959678721532005592024131191149135064265961600216309390880984233698948653163092539316501327663370582055189839719422553178734690685607201548215309511049047350667270140352615501449177278662743034994551242146236610332295270913278471794517530328217525616720502992219371948990140921405449524621340786140861396392569699014003827365531180158784611984928311961193851454986723893991442423820087489100757093426807588149379368348767371331684367547672825982292722762350022583144595200886963218747239282175849333331280442803942345086340741009425570020591852613820408125642345411609532971873488159505337441946449334216875998118047708234931037452459910575384067689168200091746665147963493581378570717538016139922292070427850193667204948475637460199807125666762709990112246508731787463562034911134187089341199711077560307779287228556106923012431458109977868073510270022556604130422142425507275804588808593509102940176856159094248227350071310529433104778543517803219252711020119188322504498824883554556589833134618538472407757815099033981323825200160737179664137092619568532604170575852638775090790010489013079296289247659429418309351442319245625910256257247366115959579861988594393409446211474389910828231710041895477436624606081528522019770401941031254183901038960305325340092971354279078062613812969822952904693033667448013452166628891765664224252643648060771492754098679790228376048421980511153888331384824815446745821150743091789042215205954413401901111274751986963217668016223292865484525540902586317642754387151018858825035105916461033031055190296224865980676976578494149470944890011742468686774870047520764187868998141055594132366947827539994148997537338499832057210114775418299840561991905925993295514771023565419652539207310947799667084588743899200102308794143044167766807628389699264336885511709156925038702904392007669256636020587298466713527731575917362173512269714946630449732964982442488813138356018883391496004605993786166013138882755461655172174923291003860979290075137879941471541141513647417050737883151073329134733048842858246151916892190506854444598701760303658028936770238148555470727222652917981387755845467932749269096240082158915843930500076895174913877986267466841959024721300878526117681851213643520798485519482424418500142590960590941592579042839142501155045026052422255877417614190571866958383906322593138265463576756574908469078970770311205646707746911339183984919587041296787543357019956380227587355325205693680400129869117490038996887270321358489591029647645679818092156845982582989939142820088532953456976901417232809525219960523518394418308226411460292796144747786207030481710122081712954864772509327901035884707304604445807084604023979646888477177022568480062993202886344729029501454005601443362079276172154927001472684768790993566035377091799603593573519393871042435317044552485642473262824769964004098204885267653330922790580872658734957843840473525356485050423483054681648972206494371947549352383376726094941367813285903989216929107857524459822738112805933441385043732738298946381981617806245324014531526421859445061416752097114060366412517174432214474892867945023538332647742946856072895207334444175437408216401187227631560149586009191988356366864850970557163761103781356385575153838365046343109686798037761082157404845322687293375875964302607600493589510356925483134745484767151102178941448930050405450608083508666100022424349279799875315107620824081022333531181094380884877857064562503164528985858446955846538757969242518143561056996346155830703566584087534157547906486822808866006828651645335137224172816003785395169723653969742131703695947260044318775322444306420996189799283465496891603668011911076866038558781508247809149911612093571532953266415579917206452890888242971707260371350977194755841036823349011876423004379358799140843826984657390795251944176194718068334415243457967119853678189068325888592046495285925968541209050882415694447344513718080091182349875748462374741962071725568429287477716495766528857137497147724913194626957693567794351858406016882737225877567083758854178442338732506598207078715190138310827003670722991289019104517749150080914247041760543841309475349266444932965513581083388117186058359667198426558581344163203865459420688497803065415946618646517266065620235755858023207160294109760702894402551917010825766450200754601967224930434805154252544035379843598968140603825095979502492067050909968254359756981357076042255779416704934414588752791801662329016243523264062247731505540951240641022610778821606312257465457160265303669413808979112811100354008651665092240701240201792799739830677842319905235090438978897715692716127704927589040534779233065420643754298914827355183950016960346040080132746646342022812113387954093574593582856653019213965968161378517080250790701834697423135867958501104334978438845195187941925533180045164290530076438671828935971006184860001668310230530616343642877871760899612284576500853032206684586756851857043796495924857922110526658585570162353904238957778426922547447166179975853591479804889382028146705938430521999472860720500680397617396877531964565425207722409212378455514024043396322279645613574628342490960703068731315723968825491779131085287367789982045659708992133527658464015083983604947033391178102894739060757136762315558201154794375909030216241605995512899734006212450283907652312766535350869915730777637661054755276453463324365548706995466420562369398837090643191799639479464354525803113247720336540695659751487417846687852666427206915543220282384647465526804877978717633232034902617964005557997300226356087540302863569069543013190707465088757497169567400202537146662666918786665995923916006803995344865501241585887585517837439310436696900578243263765069936016437929318675849648193451833475672923510448804889901393846440373052733029381578153387275538389095448420125200144809640212377008145068492172814410732261625895300065555671573285794994761166631008335483797381662444210450914341485802038339033817124659892452265296009018770611508469590765344795643696582037464257965269525193471505171441865426931213151962154738010388217316948646656955200643672268481058194105598336635286096164830426949477853886887923006281246540742617715200009435216687633703528065184697586762418681895611188134557871328663866770993627058297320505085801703951318744895447859841227321259827542513637805339741613015434913258020692806129774159789762713956769780084072168522033614114823382237189755100981032997526248873604136585279202712018832146150285225330924595945940999665809679620014038505230499306759459496683196010348222323695934269316668865461054802437300586986400194236628794933258612204955607810438535065906859693274522259532185296614355717093494107216910054144919251733309073324135178299685454165571119432266082447211995166064291343359369605060134370282135421603811289524458282002354034021387331852968305739332545606247400241104817109343023707859526498431313473164454445272620858858158073068141169309124288399704696322268723002857430703823246074649787882553882787259969609033565338961883665241823756212870984894252762947648829319830605015167471033368924993055049397093569760593529845693220677031907262894598570425423618261272484111580641488253744544694790325189403840790506187443922331039216207524741584222686157570097122992550034254117083236447046373523196036954882209754945505975677392459782631250748842010503794241020211938820569456267853059370818863406633568928602229807331516613942181138957182738086623132331115275091157703846042437694274977732725928856634741917011183469159436190527242144656726411375586929873906848089252455146072666541523831222981412507307859121783592882904794007369877186333759271634193726699870639818823210639669980300964445923575349130462151050059200136520653826454819673303338570911842186033465727249399298087026676935398338749179695647246137108054882023836223049725008953367054707506522530467440804888613367181201775262493986479487557003714973036750382646700392971341332508708616363177728882563698319233290424313786369327462205616815233283368352014253446178482964617569068300836578106206660467685393875492369386391949136444512070311899322778590582666425037522844994621023367575724778331716046539386698566707697596689790084134460724932534041044090440883273534833167801132529758385700070230776494125667326046446137774677303199904828166337633797230620712775239620759260285161454410163783670476264008520804580493234930858750993543217568163392685906064797200158226939709743189609062793403017499704857804253652333498493405519768330595664369065584752372422800560061355130508933929722500456404012682866573775111464822785230281964835766644581506474792279107406559479403535558169552211357249205133617354322677451819856520609055351478490620784601276441631819474610767615811690695953965663608030003462563163751514713771584797752672969576889566509530374799323285044249311926798726728078799070426391073495555156243413282880611433332978865358969175220501400271054526165102839108176803808691634131378470526323928644604808993717002320978444769035747242021407296519163714825813717505547483786952361121739318166462761751711004779388288736945935028546735411753317808131866802996036108824922004481241874570231951331364291744981325865743096815590422354108800823227606405504345841260527468913089095315473270209119531335665871517811767937143197313397218622949668208435011724942707437140288714021014058038585856840352015509580142765907197779917390537342245491324517506901947979828748004126796702673813408331004536469792511003556748988665410026735791588730599036333798749410208198575283967929661162363462245281332301193840312084466699605244067131067181787696097427827796767481390631598942542095673913700380738171170013868168159937972459120679376626789669001502244187529295021475173005039711504052140754767539126817021235068382497004735043925585361934955438994222768698838626145433891130687970280682145491482987214620810146435238941519176383118768167467077584834432438493040651363159357179271787825752506745010061982016849602794201034113117476191170572939872097423597297953988469667955185836057158158531099540618477193663190510698467727991798168427353015605589303067441111660197100786284301985014180905908831892632869883829601606320191573055901212809667912057739243584716517698058513595321131357029793704064583196736086708031124868695103463469675817868319677369591508623181948276577020805106543897633639921402623026138889167153499131844085016952722766571821022664239562108786418557587705069360416832798551188312931551763244029601906883109234221093333761172149856161767799460184288216166818686360634737291533153348243669500006416332021498991750932875367764815248731377161536419864762499647569377969092577468876677212604207584845696090745467607173906144986892749079032936251368422842852196781924698249969397817313095333153667196616777424046167390718261793512904326199607790709410792397616445658286209834140384047636076998537342762950093810359097804675748699705756279990595349232903028495021634322275611219481781918089040296487366214700492437493925580193354384843183261783430977837911498520300943629856137713071117772603253528874518058172781751884139098450735590271538180309977048227975999977680651543867422662238905740194568576102870484523220688073544008727420740664164494230290504050897817572961849795316224891103164446773348376054712330941093589957949957507581765668430942806817595641224618422438273517593200261278525293194244089437304566129245350151104883689982148275237105115554637271821489135094840423349156508761089616076386111244617666775889958834583647916772741269070033943389127058593809590277336326442789739803426676885630602523548282974437756937361976196905580352708759071229412695907782268519409904086243366220120173847049708880326238303062055699381266643358467881883013074135820998044381493088574782608723567448799142182095859679165961703985290474368138781287193453754087459379244848688541302627869500066150326947180978737430598124997126223793387687382816432955774289455581167294335805839405123264799447902317278647180513198352251218111152476297767352266154363779372066510724194401589814004547787150638403145261853643058184350511186304044916693441237400508826568149797343315965816813207809579255149238221854805594398470662345264011267776159458891678242240852883739935860799076555104324149945961637754483425531078149664550600168710821024229728643149308240485639077066522938162942358125747603062538630868118584740432987538965417184729154348529039070605983569229213739532350782828401454426425162315006694150900862788069275997528778485474853413535225518062151338279559506023005283104914579507091478213960251312425766240294816714865355023457332054350549670629367228230332787661316101032895717430124371404003730511781423013024989687004344919978310779393190068100692310789691233526871909501651925209079705471352472779533320875017669082681825266446106789686365005076209277929369893239364013175278445991699460225974151918710006127442796642969842965172594527519019074999879872181547764432476780643244585774756261291199914747225221935415449840339487030349660728655036859369123702328058224162657343410114382159948901155194451621183612045212693053084532439331935509671945156956427759740886215996743804016425908306534624683640466623198113950835975839179336158673138137514017398611767308445049565007485374127205637297815038790486819916725647804635292995104441077812239631464379728834923393482509139824500680488669902885065920360793534632090990655683205600337210217919089878514954946250726335026449686708905397265040766071426569424318104246682712986643208470517842886457962869580146149470901384465939811852051964624936233079574338229957210516602411492037773337982814004298548357746672144296652101695894707126710784469771557999439908973437736190990417666736241485431250855097870131289365436763511813321516628604771267470712715731976973068226809369831380166591407472747945432501205673010069863231928351018719396416502969994515039829016913441180937264179325089044566907050847212348852372958744009523765319192875294909759346164405758214821414334814220899156989032223814395688934994091294875048236703682378672042109356882804162501277081413574318014194299307359946498834095118228440664816190236881653858720856709946458164593985948067824028054526601981237191392429702227730786086643364134158913714776278337040576259274856448909222106665175765201786765578685327622470364285470699386686309345935235625624049456251951571995388670446922663399420207800707505646754447174377337025888438864012087553409791512073256740492864670035927742577817730515727220021706490759092036666451459206441249308015428733336942604541670673956238006865179419105608920838960945034514757070479134107756581744696267617532600682798571814035623644599367080754090486407834733178186584879057688605928750908646069872206126454151050026948813255287479728455868309491995609559272151574339149113008174665684607387164668212764830107824861076422067073853725944103526807267290185598435561406325912266839841220344091832873255989383828551012685341447265502819960659760390348250486809671151673302582512901423205388004717857850999509973791285448790465288015010036835419110529248310681581033065096278690944340787883207363188548152889833228765502546593583827685449127707932987424694446573155265788261356766198867379760502894973935921980039104725050675956755075313331208986577391993751453062531975169604702396400088182712941476880988418483459154401550145565992864812630997069690640906878774712325722029739059637519940429684786272517221808031892674048548254880844689167461639239304824840695202908736016620326354313587237004517410957791209199991018794991780499777676166662989187783331305811987304982360273600324430945744255002723797168563719205289053076762739662473366708788215373595799354153602885647890585473289360221338887683994050528746600482222917086227844069829404900786173944784534938446310423546068613686399731499537718085581093094174282589150624595493123319004773386369379686424164637523437862739270554423426748616636513387358381419777584063376958903096362972849644989608550601512373930366194980208064809872151016985306142671517706973797326290963404305427857320318543595606595156260045841353598404156914318719165216679494392217310293572967793599097046130913151547705037551797667131698913887562747717321649653151620484498142535802432369101326600575427027241826236239460538089015419929843318308587624767529897733893120680592411088794071872057930881016090800768702695871062066795829935143839668807991538370069247900697148975930252060664420726609933941019618047041839562194807568241442617538158173455193008672553025731896041025324543680682605037206146091808570467234259888913902750979689420765425597840756782684682363732855379014426937089251601352622154862071508987560344086557699345917117468754912436879154672525849238950186652398007889396166997273819632782501219763765150199029022069646809344360893581773514570570942911127352594876897625401369237904326241589519985971311733681276682273007852060006811757593555116970606647401071967929427625632268886197528414316163263737916085810441462661676724720114052420253607776615043047405258838224352159455139196772330454909813007763746379382704445339820298598596551836864097921117005639340457741635191561558567672360853673296113542087384010796588529024303129874748126701506359631075539554713304820206848576880646372727397171505931554253301544438953598597100443992103309102337413483708379053576815819082487681486237210759726269515226771033938471660195518495646190099224247663627629550179907569800317999053196938534673516529900047000915580430615732618187157016645715682713187077958938501979564835621736277983981056013641791839474487348489409311966565578817926465120944491717958869666879077462470475089075988651428328752834564213443274311321165926005080702611596311582791087783193745093800469022754947007303543885929738542734652374594551588159809077512832994954983677506986710890953430189872439727323735984934584906478310957018146989563624500951434604422412027706272661312254544074303045108989039927747212248946307742452009978308434991259625945324023569751199190481974540907279602883216036688082545218459500438453185844936824386307636439241998662859592777462638112592958218703614434983544099270220413276306944088837823327099402665622810385664976392377804254526474286585649637659232723695386510426282435530372751998160940044289617011468751996359109479708508461614840873725047324567547445092246605687081501568614860438614271229911313990132656367052826088025838617533999541003189768787397745412963676710482802046940425634333801750801196519286414623434537872800549278682640395242315158552610378293810259487675519619712215796575427325532046661312777871779687993888525617542341167328339954417498164182344321909591357285872958310801062311584091067221966612035179275877175713097276757983860069289799495124787880271306210568124129978948770926012190248502873858494263721206028673965197199914681144986580934005989102766729746484738181593351908817407658709590969911524968488621548437484049123458212218352435608863221991926151268543298085889611082345350786364377699651929125447193738117831596858448981683732920581045250335352715060816904270271777731831609211222131731778624136582711124718567320777817231863440747835157371626464400354096894019466824554945746739506296079434597951267424954349000557471581643298223313267099163665201131645681216808766165392073303157338835007035005926181416716335103188513247595646893870079782142882217556691697994044530349494381537152271143369795355247198740531668231591535598411139415377877519502502066683634975910981938325600436385842022787526488923468705362302629565763829847732865155488110278580002591070963040450503538106292322627991020856331860242125747779414640846496908101815381172971874483677307917958150665157788764592440026863585520409202094627105090044530180183088049891447460143431541045961274392187226297876631320134880677883887701633320757577692298506159205084847868655680984392568174145529585874011101491277924878772841705721836207188525981390992058923603508211734465947483338942280523850648286277736500321061579947210086025464943474363629416793613198153864419082724862799414376609789513662313963191956542146018684279313181063190447538285995137107820804130774460099449088293395657560165323092661269688519073859087277241344760132612521614389709164585790265494691133996287787802815899810084142847318635387007389238593308846073753093812339288235731994098660118598909615902444199023395252003678948205816658718290615624606069653143093697164463103338482936466526613604521235317544488418999570039315273988395796931123735465543176889615186736421762249828695810139931653388655289633304394793804116301364553884995111733607986020768188981859778147482210775467900197718710702441487627193464407388415391330127607460950965287173231211656278579743988932455780197817674761430307952189435268349515926192228497469047556456091278758363222065168710958269751755132562500933205954373157107550977594539125039944395313850630013105419068533557195637364529125577084333723829373386415770066834444859895575996345463653783344016465321244915666342559679468717342267180084736300280259336392280020833991423530142721703101569973147668246292715020915296027143205923585848357050317958884184172698092724850310453321370953876808774910787223227746913010917614002095056573064137278129888297579843708253635484567506363885375694897435474148692411944590875589637238643944183179230425935121915275466507139563491761066055804143217077295396106878778689338342553113489952280846696942410077842876105566898777905157010759384477212601971142750570245903592076642664453030726612255919805035077328850577411449891583370769537478105548383746250919748833422975500531932137448419571461907402741782719189358511928455410149125548079507532399489726462483698103240482972425681213521990908983066802624372822029447521924754685260239748049552567503106899939006513700222098584481716975871294925083037068996965734076542326960191819483108910009485298308486760211177678139102174351869269136900846681873581752617900180758124473260997799724904410277858747375201001001616561057513780283403017402001177462662839192588736987956776182430968854369363579454220166796662877690279236198834425621569419438799216939132709625332594204958887218610302575143656103257420667907688402509024714305932371416372670097156679484377166197282741917985079526876693623577872772463978296785646721319621230812711572888106490335505167137270273732931363561420694032776381334890393197056877209125757010591786867588567063013513414206311652926755579342683597267557138864094031283677489031939185273807230784214940982491735407854685965100934339998753965181727007941783028259579679147602967059415600452207298559180362722887420891107253713820830551081951618392150787343997166056132126606841054183771236251860686438343361411925446036435866366349548523453132525095260927094800571047614306245772533428261609878465076864606384694762276105152287024236767038662418492736996509277143864980809350892115128044560583289957155046566199181610185065963707267192395776613944101256734938590582331239558025085839389283708847962218198120431859723653204058507305002394213638125217895321832990864743090771658999185859269870110377868775511728589566624227428009622472111521772493170692412012180830327882191745994701962609910728189085189542717626417797090320842705464777497330687147093259291646052527489125084721557543519288780266823694328678380007258981782734575556293785255588021737702781698171288317766772557698799332263755416732331696947971811177718099945300395888585482895146100987909317457723133870214565541603867386451058001445719851182371471471008206131365834191137884930156319116312083287801827522469523147259380075561507194117483854553888939315153973128384278733841006225360688404498907313073326271543840656702269512697963353011929490316435921990198342369101474747015698480690554639556618202214152205492480370493510071121741382654474946464639709739589220124151597483761435575641319457880382506255173446147186549073459179904527370885327288220733562739305995066969116922640097183996189306314459775924675734681236934416569625798601810416212045369808194797424409961192986539931462863208369524348447516162504638338700918787441704312788840486715276603874336150385325079010238462337481589488974844544091076759758999802813473349705803037740343400207991921505933184625950010928482996484543004836798400982392067101860935041145562531346703379228180250954740362067730457312829970170735518608226324078609292223166421456953644355874022291197734792828614761550026148142940251492717498202164782890845426999016215356156243866622290757772643796048385136028266185561998176109202025872041645607415909503286546086532436731592511569060133453316744860145451433457958665197835494317244243366012664204647568185122597766124981467055436273023959782299116682130562333282812009943439887169114676491062015542201152446282653315107128176349440268352345912832615138381857840448445324494759170641140379562813270394475235662942594093419542992897813225916107479442849858609238955573375644314700017027368932128058908833022232440544899557410962960580988292998255168388752099029262808771777873665456593720861591034250481674710398528624117227121806726379359520495341450548367625680114401093782887200512293865280611850882934437877115864099774185186884486164047135073377369616564355494714901209700367797052472335502818905976887670147398920212165363419101037244581927231542356845672942401115349680124100378081208280529974485425010047404112026248055039582762416744751476006155967098105828765524938328916953499366641560764222657976583156395378883439846850099848661063195218776305233298508892896188566666535483693184222223677061353562120476609651991370772038468545061241099637441561632526717711305478827277946814299894990675830099666826756270673193312921780966425260012003498937628082337293910482809620026858213330366669479732776836767607167877113690259150148517079001943558321873418828462103287882462689291460563481014282634143893750038550623743076780173927688759202867461989753354061132761838302382485580919144964044861724018573435953252154421309201066931173169112202647395187715143937787314257642260063905796633246519581032421828908330563519036725664493499000149514070142256715046801958599334559655945606048057780907021348633486359671324231103814573685707702289009445470119167819434397583016252136326643978401430345821339364438901758138041042913517808018689818725786585006879920299821929905457376539453255011623681480608107163971546328029436727652020180654135800299247652528669738984366783108563350182876598690816798892628134084549330261688519055747981276576741305251991737025302773975634765856591544998565843578684363574345764964996797374175984682941825164323032658782166491105889943368546835815347409886144962027947210382857808517258631234450421472970609517226792130381953369729083182792952335468828584358342299253870425634786625798839815599657630657536395640596070344206612921089671872230614724539051718506223006283056061801201493062749994783379152091650039396833981323390730906282742844146184250708402179334078982801192716815151816706074891830082660340635636592546946600257211553226049944799052066908310351068567092584204887612785403176305970495342955926751677865723151712544628319826625157170106097863412629733623310537456542750590888473224177609723422069138121605556646630197310978458289545721765651420897745075882745820044578182112161870907670887633147734445868060892370282191831455734988137996799934359770023767265008298739468704249584584444306511846575294754973554794961990834314515383789157735096936954518232077754865968833702347926690303265079974181306528035819106631591402435931520451253995332400723370388032755913579057586022496390050146938122032368838594339477160751939365799792723591929645147813955727017252662188221432829825312866203726936889953383395505431088549583274170013362495429749894466508287602756878847141194746302826830300927616735666121890162118724254566373173230281320139260006777374623840872993182769688682571664179623157886299495740003180547463847454456869416744996493220258632905757171435018336719457751310212079941698404947891515578225932115691640564218229384047794999852477174137773654820548632844801821852182090222483813186206329550193406855477082574310185225979370902010997198115885922601085286884426231005134912409443258158096612550916310248807148994648739176276088832166821531421215502414781612133638308406842352181716798933639430573211453126136875369159632115437852993658921135126262894285627963474669133876626273819364298149968795284351457721750103286658300784721471348876874281416161643675221403263940249036805922155478644133762442233531725353149081067226213393223788667838559961254933463239418180901765529268298153598460172109147050823133775532594771167229768358604359445114142585656658610984366693017498555176697364895857959027648454606063392946180321250724980972261850746113594434737490633952331743202930515124594424198663593991659318771108548592278637117958098023976541812110568783289405718282643858583294837665874708589391594888703998419950095128573929714892725731511250146097918741810238539820713943178594148519318354736896760215107560240849302201625854511698290240668268897934630533226511819800704682787103686495384093738258174221003238545323199333233895346031655266699242320134494659206627882546506558593816986237311969431168480382328054562196309532992339840417486385621719864121108167015483821230899479162374577919488609943841251171167534211243206910511613029533759070752182932398660536124697882596940055164812676820634036965575472885168560423100697001015319808062925922902661695806386388551588321047828362419728084984908381116301735303509310336752480818905919406141563099101931121778342748023672945395699924602785096378911293506765461062497817130433908417727994008219660502389934335893932191640039513453744527932878119033881551776176054292880836507091133451427673632132149340819983892079106617350786210210563440749617814429450540063640789946188257373444381972388795624284805779338776539272334955080264280394796193174070341898082868200149022112366246970199293019266148090546119307253587539620394569887340075530901224444747765108650629267355588008608631770549148022966162163298366440484316966334594785683457680255850317082452419838117881633591924941343338636221945928076742417795342266220163247506590171583035803561175655717164088771153452356606090438848624046809807814670260668668648277890517707390379067667080390465686046432308618844386235356266656015671532025352022063974176476992656178169310650614538989964901192252842633147998065685737102368820409480163693476277250455791352592885911830541055082097022524334154755726166509097228988575729717302584100741323548142206618396611376691796984419388772096758705756228000165923510215666267727693110474503255669474454932737825697024964673409245283353504436789807443977814085274228160124073919261443806671815814137086293400712537403231765879411962745628730099230236506042099434259878784255783279720619594384482905769681903796679656186600870977531973852214753701219654699849065648394724385925209967732469710549502302936623338771316973310296187473520935365469288369088612654209053070879569225243760213034795396786250569049838837124210632902652534757352580047755086835273145194285337261100790481249406508739629881156529874068019982521343207514139191140739125118952877306426202997719029321064981459403657840554123577432310663768626200738173754101475421594587114229713574469408606566862372562959787204670712235170251257291050061798740791022009294116427824159359813355128072003781300553671954473048931786847167033029223924625705807717346019577590093980480334201559839326660227240803611579928298494193256592526013545672219729119824334232508100064898121033935260772404758229458423897881234080919158374998945941714112465697739166572953032797686741573456335170630836173695065064418993938413805806444071781940193275181710587518055159687342869713345923904008066964357238009360872333995241871099000460468775483185467931993528863514363534147043614241969747169279005420229658559434692537805753037947677412767163251921954749345941800119172196895216063805633286600785492180140532112701346321475979751746050524908559908037366097273229493993747210075994492004562936597082289747267169322325215801965252837892423295957490475465965598269021292705001119743311213141195651299244337015020144047219011573710521469787011087537674377566279244506125223416834207554279260239252567780532364660754988213624145703344110460330335284352849837395788083398735467108323570498068716354240452889354157868904672338773423525462597842590379535774507458223219898455102815001927041971067210868013199941031738401736622108630919543680654741494338125674811350189695296744119110270237503894571818500065062632447406252952824515209134180055592617641539839859756733658916627138625687944615947712531721924317551788492876534706223552101805266138956813827207119611535247127980889791870273286925364295922952085691556175330717677927331787455146625545059500611394643825834205321858633023277387575849020939285852296279288046717743483914013740810397979877010806255178758943880693751203628060250554215273626772994594943548195693148002464252876001812955645770654035048776695035436499202181364162233148168219752085998622430092809788117974831426750757273864470651001951962037955419112416943551722657608613624639983644037027297732347352560832894799212608773170767868360121783371213642447152980180957814851393216753910017972705479563660507134129499221147982310011627158805892746306318405502813843271959812875059666666310490172840270106106321848230167584633667914062944327963711937201143744586885427333164211710066105535985074183150334750179893271405622524424939063580021834107983190386425482562012773107850835969935055842292719885222449352442617419227882830223151477628231863650069302902294026450614060772980149093771857630920585361313796334947410537331421242005527948208864412342430329075682684904387732223528675047151631447901248169704403980283326349606968081867012708524913655960881269451032475423802720113213663224123268568824783538301498957406893536744219164817770018956302421013940698766104077429748338042498659874175721599285058565893937337818567472265717506280792234656968661006304428336020352498583853972339678982811788252051185764495212458796811631751332086530652843622790496756077319145325943972668514808279435245769988071483871553295989312014125689110972352917169987921607496570349626718202099923269195123153451734956724516429476635183599353912889810765194058379366339167286243651067511863078100494457925651263809853250875402936441125902475833875989846412297016253703151977808194875194616587501690953300452814796678082464088875560779823619060838924010962266308397051138067351409517283665041515938456109034044195491854336552400617087198286809654571866351341052623029935965943246068149879440907066857505310831901505216140770014042455635401577212245706099191739042131299206048801539424644386119155135914335133923998633082440701294026944499707746811307145735891006859905982972025276476536381321489082064187861222727519810535554422664847134855777336235661582029849338268871811886756989200193371389367758567839124870813483428994661157407761805166659866683271582831135453732451330547352806674478184454879153360749039670825844381263757469474710885865013682672860884907032297569507422739926830278192996556206290120461585791828280376911105157836120822952727823329401855321553278651334620046575465461592073212643415362833559088055643519802451825707022706468850234626673209580892621667578462492648626240836016165050955538136626939632141625260244923116361132870320222426671385154984388107306673397190690364979911361777115258608179218641454748174382395688138359594694848680020345752472152095257196780126174034584028462340530355629472309956914651641649770638994548811804040286011580029514471948004922475536416638271156522880802615391488355078956131785782671101096925708959181105305903515480738985458647110153476107033640101196472757323334036446232811165912201811858884283942753215993871025267449498391216963977435222590574537641142707743374665917117926984069900334663937188652483490319897856470157752770227842616463149597936592692510068678206301480148694670190610877407157094165711704605912664907145534825904089514118800561179667364036763626182866065646254548020499113295576595952728757391777075235952301311605747990093814844840358560566077686070787735247376498014852306430788102875135676062617096108021336745474009945305235982512002347230508378008111973057090695939644116273297024302178630014239745004963966209739473387377885572611606620048721596368869275674803189125061105650723969694421618820936689219240335245647926191864204474202985889827559044419692409543340765771579520877545050502691319484495676635803716373303007410347203176447300716191726781172643709667128140202728014277279746303193464733122890559200151902911722832208645160296784629809732670101269361923159585509343884508142700661217684052450874187288685566433839696169218904091095905038328382066987193690583851426558509089245530513661373253197954847180709694263056108700817599598410885304803353028628095341867993912804086188042392161668678662513703606451116381185272329969463144353838698153553695691966570783671653020251044158283017532228976802823373405072672612266883962273671045091731021474425864160039759933315920603212017111911355904920762501153717926190242613647088103225437063766194456915896822878034044317354624575597525041469588551432046456507270721644826538422941686390585148065717631210804099093813951110599769019730974700443642256607911595813321292518982625937831684289893759637452056224369976444678125753076812448667913003921516177551929453308732184845648063763671741982474411954128812306792741624408941538667822784481052932080498984583672057621638902584638705495472683321429868248222407141318224617399877105475607158753221640787997470961083403603059331302787067279124796812154240523522357229427654450497043662097421501058858165332260866883907022244424367683535930788889197097398580263193644722765911331725991626802804194472499592089046884340965291785458943012818849446345792301692489150454390655165276941132594031229826371315622197693681730812805201727281551078723988830455512950104534070880136897628119291030390983221477995284238883038429446868461573254697734567717482016298231704991538940365112287349175732517423562397228339927547617713205863721642009021142147866518058807475021508453453944240222753703320100731321252206317152575104953553119605254559812600417533426709658526181271218371140940801638661887943127759213090730855567601534321378445093660123611544318466905381576930705386805663722887634211910073296151446919427065627807249608309273803519083524041964393596797757759826517894661128914490265857366322557676494387086453057006820164883228057044936149273905586750031310577295612784355050390386278505494624156712003215995561392371697418058614526671028603898280968669293330103583479168812010589481060281758911435468347262762319872355488396269962826214737451265528266747786760110859296865237353563660475266549346796573401059720447015956438792402893866245989156756437794342967583907353789927261238259351043797977872275177442578527414799318760025503877904758877242883308809358898265927446486544304107168591920250972149382171899523119992788463919237586598958017117102005488258053920266756085031241442280027062979861813931000949148758098773077298267168023804089917592713877859544463131219531108311861700274266463501635392926999626005655324822033640567372849901346908539447119181065084687264173665743914470581197408784587870708494376863940729965710009491532818176306126136396505073290342590124193874799124135486606246858429012599209576657989236252856897087225169585196852509504781845561035030234177721877917767204701079585323915859588035810628221146314970276723108113762130775689942358299321862605056751064469896915445680474626568235980520582042530662747016253839433802555146008045111296785285470645087783068230009523911908836187822682137859946408354416367190013341394942072180940852441946911558481368471954067822807865963953574528011141746212902777130348409441659276376834006668912894432005398890959846709702361172534447496455691859617671268814057123881973330386350204857506073857890934677800736797370220988801269487607303547126109993045191057032244023149853092978275699343629005632326433910764867279690977297504971120023544947070308096240353197399363303988761058732238122626387761368850609824523333932925571864171542888677174380815892276147089320553764126095734337637494446425133568911326123754223433146165392198405475695445390705391855214922272334168116589000933032500657429440559862568617892635977419923105585877137583791434634311247458002235805392859472235875604696650770124993622161515338239976282124025203111261296082987892489932551756772816322831093287934441456927000137782018302012930788129822679394498531588689094594489177093214079563813423333026423787718349225414352792376345916903586474259298692705505318563501115092528002123927631832980702002786284065603907527596639576241810260981040528354381250086860110998244421876576042214400035729089157688960391757482914128776773241448948536406493015336547795372994009278454911755552489018123219994707402930003071857006724415249172453306755324585026635258827485680300544621978502321485433931799986535418413214750981379074575597153917841533008668454924947919488900657201260772262462688156420851538005127593601760021081696607583291224612067871723235053422403387538591498381856810857742942620311498365109240885595819649913693743222296065629464653835806776300933753875697830271263920710364210467448542328350322953994041407495416146616523784099202724006716459225901985211004711569228475569525448459864351640506459330071921522301653345461998282550673862320079887210425175066642320226899353672975671752654513786227144478243391671399373638669778569653757759969613436338406867921563731610141970866977500568062771882618691074127265418957327202860695464161416246169550497327532868647738139044927782141939455267906048565983153451663534172258919949044579496960340686357042249258411758713840120109351387752442986820229295900774515115431078912603891810942248466981226711676992810345749917979099837127957957989862825724615721544193345281814413873550839962877335774521013243520754787968155038042421382475784050045364182614925605085865555015308882699153956020234786691093934033940495798315608624923862089273089288312924817871983358659011256252005371309025547162447515531168990066898115579724161007651571691624645571292235003020745728235399402243954826526087148225138729452985699034415049158833521359547983709192246946454150296746382857794936467703986192980684304010633419378252111617003165782174649177468722780989818533859227691936527461714630239247888650123014283822964711477718555940179856771018433673837946929352921801894185800868211191673453553060872407915122695715396811442877552849633692909322646753764012183776633391878162371050890254658453137727236518702086724777795117780694031610497421082092357844883117316631035510844030294329028712683343599823773652331644989793890651533911769435151441878017568933666332946621589624049141104969869528750347340808124597775621333128328647846246899984522572273647747284397781189400402079193790020620537018581428152207309161782163286866425388492622848088057115593791465400131685077217846887173194783129961398911361930754207445545310612813211290690593558377646074625821822686898444949738053139383012020434179543216109812132412791439641767933685156017523620191794990306924480423522132282434471502495880193433114390618133309597086506490400759533515452781109340240300914361362361653012769131322854971004252541657780825069958868944901950947467485848967833493392839572743568712981376687849753503563758792362275224999020912279731797765984766381104418791723059586968268898000482519628286239660624700794121562036704990848542869000849348363004001748271821084847231642055571362781547903612393432170525178503294782057206017573700015899698971730646551613325492713608248081521348234235695337878878859740884881669316193299908995543226990505932663460918818003915656587096286132655511634480999643915662334930563194336823858609960911235809694267622023243647041850051787188552692838846618085311230380635471180976502069862903805355438960481890359389722941734729195771529866126426473304833670726901260607443771470642570417139899320903685980721160515385986699250502680195050046361992202737767920507756604991335432663993347608189898229171611388932596596277750224422320144848201454513269988158133929569319891796612639828055053466495857346268138987483265412822159029958097573816740515120560141909247895786430556491387968506412575516760799686836301573427558114247817113603459170161308559619089080096350346847240538819191577886160354297441519117317954799415018615095940802390109550705798803036372765810560615260236871091053832400372429765132601290913827414781273298689887805221488901764965687502469968741830677865051884624822906856652117785789497644420571363431881694761793042211977773822811383718344603475315106242076381096150720388624022445918343450906240637271873085423766882006861714245971950219391645741290175474698213998131474630433600350706728206055836933539171978273644798710552014275113152053642072110568859912220275426255316740246598315754448962274899469377841650378797823979177273265832002596214577861237590254079700371590115104144708775330050574846254522685433475288451745894584886713232513080295268379190478461718041822451859275213824504738267935850629909684022190574100861271744845238825580552129931197584360504226017159103147387221132986654535769955103182023395555353497749499153776581196864755887426598986030702361892443423261775619526557908981704858844558314399446433241245299067347928625665506702734339361929379986630501146102426735664395417315983460212121769565341685474625117453649518116427785579679786660126811237948268269648074787230385640499510169630646821254165572607800077867178340726426737881772314319051502738822210377992541937529601575073940804368920727214669595924544742170797249768056623521037074727646624870989066719634443856401815211067244473007429309544624966815590895948538174549748683698035283043726820183974568373917337667310304488379164491961348592682257643058687930580873861777159536028098510701995679867367909847480973314884804985284868256449905867958561386475750376638187792049525659080510005776699515528408254939831262155866559988004265739197398028547717066218516174322286696603799574631589166475948916365598927616920685480126640075717076003869388046089908555554206241677510017142215705339238388190442157607748519954186970606117197540546721894450164229194440459960000211237258451903391056244115187231827033005050738313585826788011381084205231733758898628990799103571303051701685137516544495457082201859082946355837476041639829556790141018332876063803153062757858660273805717915136220442148984315548906540117529646901723369094063751701549987749907938034777002703643844637058363165852067741570208921636801896925565177321207499113629557362543020523726227232691847312689114386728176097979954377065318335723795025258774048290053814524644424273043289231483777971991124611838420317112562492489052824373879737217885792588210289834787135499895732428755443696930215663097772414000330775740597942025809861922229232233608145116624919777620520458807908579845517884530013797042557654751172944806385100783861200623878084222363608968240978392246121186762941329019825390039025446807159064263098658449612579236054581570761441463298192939819326200362883191651934428892204184955174355359806898311541031590278169325449015632425578424534560975953281404241349796860728688521400668047417575919796340539212022959822509322658024172096258650482069516495263770160874609052435577075673933272731182532427580460856086989704028144998438425774931976847013475535383074490693289108801907915007887144980612401934350544374053495308636972594079695878497401837575754968054611690255333843192228315815124609574875037448570652687295865897900260592058172456789252534800085743103779318759199253878312794961450334532825474482061086859083185909564169708267997276744492537333403310767748322951099578158756753269337532924510552151882516172446105194710845094424367205392333168822740248746102995348000510327604906073162596336953891523084758764997651585246784279472666190986313783995230256681181864783301779744267770712612904569710764606700259043321405229828829419347330035295875236784400692226183921198955446473753072546434620598733416610752727411814334345359843748435550379666244920126705597815268336450418747956020904548040874749147078637925920639400450166152026104728062160194650966653601677361538530780731649768898470342032979083352013662499840469446143189385632173365883312728350747786077885264411955972871953376566113273105396347038756668453530962220458956214543589327327710898100053050479554392714056655229390938062097195158115844113715396013475552974209803250217764915612196153577666268341136535511527540783178637712099159339521577265685220649266277296674663849599072693364793444540380722567359510469266708534726109763234892335197728871238086220196373728707381530955597885320390509031546420003168499899961874428818714536028864476761873061743120197721925268037158598609874823377599857966975054901543279523375834923379902129789741816861410365773125876661552048382454926707654160278663877012623734806666242552065108006002583170117507302781264045771901777111351355066255629573174724580159925735825075020253548248533133751133048182343838221625138387796198104298047393244071758062682997693685460833729827515496001809925666841498663724760666553638465581397605732157625712033971212829880231649168952394533893360701110396094702810721913787324017046825534465544088767730758111463053109921039963431166923948182760699923323530115144926165747389375643428889969979216083963081718789770613595975885814337322519147502207176063861924594876634104870222675794237340348248326889565895502231158204385806777811285261440510678556003329817531401679245676928594724930105405248799254535709343937825548668924504799005011093400871062897489225285322310123736133667111964657644009138384580159263369437762953575370389244498534588862529084933742873784947389478565838855224102844154006939526297715720795475784737530579080604680858802529724588805060632820615676196694105220573964898106612221957020534318926102225695022322489399976648921800059063049145823341402784775660682364501723879458868317853579204130990906531429057401032448561217447298354711474593222131535809659580997508553224871656112612889447201866743267273105654717014160031015579895106587320469371881244686672053481229877381943377224232009184045809073768853070921176658693986719576562590448811412457335818455120288429663272309193389411425847961096214370362770211699531683675417031880259522339860946053102218042851507800911016050097108631079534062825036695432349241100828606545860922941947957500962303638516161977986602805596645693121454031985222270450961787749078192263245914356551519238585077355098903995327175194217909075274951085121216167463362972662854102317831799566922651824718328406247055356825642082495401332939739498154240426949319239927100592772724017509481486523364901750418388600306070023956372095396583964211424760486622099631793436408778860935175715120730918932641956142356380991962469126895529974199991745574442933488343834152611179845596569218777892991683143408792266126296209802568836985689287698863783743289796090734230560624240710615798075761500716193620807956932784712357460295428517689828487131462648281090315057371290609555031889394361847369111385519455275303970375316275941352843841865186376837787935297727922288798451809451831761703821604927801047743478692435616711570515727712818129341186115099045529163948024081173033977054407629958604397938877300516659448871234597739738363763359798183151103558304558055985539131691566090269768744227884503991543015124122491404912834983986021354435153204167236007316815165402715341562396974503203300435919222322374196636823202012517872337012024170835232101994655498651528382316203326915028559463710137441978813939953141106381891375662778921684632336757362151480123847899795208578116418488643503008111033983918295767603169512935855163036628333041028242281863388810876953049678233583704273794523937610263955109013663769997818769824768520402561305199674933166465160765378826532844613924637543824498526288504410210419466508983912299771480588200255057190113606267172845895049725229573097936111343725686961332008287506548833045660924539769681616812450076836648142205254531931771679167112680471853670884246973821324363539041409767332395534244509126044195616903883355806759086699288978538895667972717456882861574921799536357054060287491171501862956063565133880151167693628353303296859862448615252402074817632216162212450506990303338066199468839943229660694930175137726238208004746587326973624393635114940365471052369195917488741802127832554207025618589373089207204488639651742902813016859394556763900480230595363783657323966782852461686371589781500393098244941407967936878397412025350762397266283104736182639729797263605659810163786264751743828842389587109862974530220824438023114474352543894592152172230354307404108753036758179475597950585069160578830839963318088196862474024518323870113893022155530054570034098887171531641413952360854281638071374905711490495380156875571514949710759831934942299367193879127653627454084627963563116170955872739603490776197373597797888459748161620112453370340780285332771504601829772404577004574324178373238143382434252388549456423170066970867968594638333593257146247587076659155327341012668844178434242371780692840386419619739048972202957306788078009709931552906902342968958292655379608433751360413233114711369294652866736273501127532982088765261601748445572130241211873522920174254472373515816373446948368640064709265818705814763822716633530193704159061433903317698853870579614622412873100580828545029905984031257356830624933444536867130474222424873191356634314610077850485426174556791254443953644826903785905581194343509188588237886936949594200610763559750685324941013526000419808032012739307342800551799626052631019685881455896070024421847261918165390082626464875802281541069831161757285282792454358379992103823830240823537407399955166661751114373286025815857014990489918441936125774023367595939158149346233701390887556471859531373314716687729181462031633202607955035517828493546093270366636372846764462553063992867850607664505480534872594660286970653047697147704599799926187561133942924964570337817676013971500411389737064169255158891124887302200175497987372337299544814780702311661833577488839249905869820578806057712021970332092860143580573415974081260903746550129145079926385530963830146455275880110795206361342548847784534642716163682614530112191887714824737715257678893312635712395796134036735528827703812374003291481976494064011263705767244387951092721329932376795056969317200279857852904797711438677549645813517645855819057720484026029828629014641764016333361994609171049665748324109733374332746388022536447019802628612165764898888785109137512872755978207968789773392238347559489199988914093039634638349086719857784331792756369088965401302580792969814061103403764836777552609870577431270059771911184985783871640858313948647828170189922416317298060040742403777524842850374995565374694013739903192510723226505099676377970661081189925745196022252640965957303635988647221782247124725786815989321088992886693259031723002372552823616212040750139079757802317331224562423796115668951473487268281199809499746428009903705950733055282389132252100472284175992118450215014331814375136354805571697488451706857386294340121035046233495111572017128189204992558732395216004682495371953036082959201244047039563897363274992516316486896184056671210276194725796823274762392982797633950219832600729401333688415446788304430583204733880540715385132345658712281478608301030574810293164987884205955630249863923552694859407954116827761463060980120086729228453160817329170150947275112137894975486182874765442185774431536908430951835683623372219007072381047668372964095046043565227938915916779415762472027838971837470695303127185994247897756901836702846529078384937107517103143147042204017490031299831971537915893861435045755572237509384205014425119750534703003526717163760515010649878283880633789626511888563697588263873046751503884552309747176424058932423298678858163686173607646988612221334965001611219750923352477534690404335931028357338317986501502550801696318808632629674163463230096388219054178767641952820944660679541538843909455525449259620250462245913412913908596259191384133511984593394982905342819723186547539323121129680476411616940715415446393822658183019856124173053523352077552381361824586478348272343778352772072289956157360696258579816080659149342025363570068684779138099634923314028338512816191098257714808362697064916497668511142168294756962451032036012376772521355128265809416696187656226052415738628767245404497218005387280719973215338565848192611510785048728615170733197063110364657792466611730165454284255463067990546316597397685039263970600019567451948480604624526387564260325266844648030728353129978704028114859132896980687835632412119624212689090658674802087503537931768745246832665409853902173115382297388329285227054715820623556374458401322778845883445522675124373142340497213311193630437441029403446948552440287506861996860353780781475542599496579645011491501883183172693918277331599483278798822801316544434020766677022443277069042522790254366330213706724290220588548563251184067778759818605021259707944743579201102274502151909898997565947484231811442941024741883876881214073876607559150513474044621903152708284586552512456335736918997764224536732002036464216049672882611752231910238243622131097186391866274323866867632383961717710535186195331514008662590463118595548676854344982364807337478535454645248238150798304272083631115532549009540486327751719511743659753389089671905723676658113163104775138607246028928242092104604329111398025813995086370846954691013573025466135073372769684203507937328892122041987627106839908729752862347048817414133007820550673641214650032687398652024908479263005996679958265562435405726711438170252888481091177973264333468122686972045369974448610137010882001779956234882920499389522148494124587549776301884652383202870810093641706233446133369134777314371939935854453297564564879693056824612574895982088233030830381171842308570107914490728497562572225402370329641027028824745741194395140782078457420087782796597759171965799793262504991576046348518747457733288091215824240264222194721226213385013123979440934227279238930869751025808344476754702815787301941128105339506908457400928603938835612606117611140368892111475340832161395256963619971075536823323293866380865605964232932398717044117303484304665458417060125237281866627397038279905854713279388734126811045003849372130421626359428958731694692197360020686978796347990986131600055846955747914291430468269507528527568243595952565706128787586853112950572464205068893516815409096888996208458093308275454093837530759920036418760507848908716991552429961298300648490841009286346541899938440136777175880814685927864634071614451219086746239670814296489004972238900141398596957063935948175136241902915149126939103748391871464719178326385757403274204074916014969140440784544208802513994142391682909059329486920229365931429917683998559302590265314195752141954123607963193650849167339896692695991261107548761146703860687223117080458822013077962723779027640003718736442913076436831183434922355183098728297828885822288993750406225397951692195710235953231149319877502403683293092264220653965028977085421992720888953536117131536955226552639456630462557989707748530517365058650224308259491594835920745013543032893394260052861218994420002226920122423271894809358635366516927477069636044104430686898420436968874309994693053889324108064698763656837225646492784773108353092690360286954802295834669947417869328349912588884351879325283954992031804576649835670695882330070700409987820868790493649789933970076678858420549848770620660945158721467972058904336445633502894371285389934403026149865593543095773778172136666608517129092514072474817402482389599348855095318363276100867471545776931478774524465237654489484471668625125091825467546069032045265784579143338361920733757814015373268183741905797585135205115039325228436221530439332174284070089106347951653057988253310489635432645694692082518781322597237367997648669066481503182638883246943749807266419750265746584028177983441950775648221706691434608015674258528160026904070447086353737410795085212483135903358228465053635099589847257220533629526948661126059704643552348204367105529095641513524687369071172374740704696267582455581957777986807287996594031497135340392535488197881280479304788036055257215264601708697888517103288262119848345806029909407295499624315451354661088589082591543286936416400431464802083012500092795603363568826486199586553740828857596378485111076658529904053670948311664404456862070777948943580312873688057861919491188175738209188503587706107487966633204032510471663412974242780169099786578577629004967308637942661660165477248487682432584166070818451721170615706569938823023134322765889843091443108620230455134908933636355120105897070616642662248060849303292269951451207719307326405634885452960885013214083540790466498853193445147541888233602936137543823274344676518478101514043843547580967607051737579643994246079367111608030772099263884679554997435991583398164025879415409771853285166319954704943977654108123215407767985398992118791483003238526770378925910270438306822489440255510122372938036722944648001284613770119558539434912305876687128798481096939003668289731173325017454822658387376969018201722121604649320964027418456873345295170442643970770833931854989294910491152792528733028897880466337927985553808177513307035612872117291327042655125051707308753473616176917550198012565346945197304045290082066130639653827303875063924695893589865899586271037367494295496074128604380276343241050926540893099828864738068739107129994126828432769114356028509958558471082456218101413270483219330169734279668872385874872337218992673696919875994817496979245460354590246549472977831991716246457825035376351755311714310498198700318652345114510279561402474113803919835207532987632353474305738856670855756619661935233928183537095989095738836470959808795710377923956380955743876777177479073967164177974666293880970258364162531011111307444351531570616377496515799996388073955183771028825209167640933546223421610637262429180425228141023263377706245809444338680622810256959197562661573152407312891824494503524180127502129953396579380213119665570104149601429370267358181132866918196673443160736139198281732564385720710535154998667315102262058321197384616479206376645942473812343577066655190901525443572398964113019498613269112536228776145500809695212370833670202685764999735670330982107680132432435706110237077422912560312344803306927654222695897366755787914716234143490021813431455847905311149914904370070962400214961457439551645722524622016661032873816388709624821658045864436079380394188820538305232480532149391874867906982546133765198621228728457279344802722692167463667974132174266576619702541394521520340372133666839722139030750874883184094129065633230430531944755578326581926758002448661693956901217034715948706072204850367921775183510544546220792204454595036140681604637216062726484581087000983963593086909348612463009839161923626391892558328405302761998605938755350774714830329061863364753082471232158855531085649991095189106880931066898740804505745923799435848725488278655945194521908412718796279057868954927846673525500588308673380390654993228217758134021737645528021915198345321015502002402445473372211680137672613935257514958737515788602654969788842385694806270863122323291679897060251247891351120469710165223885268486560184708808732350221002575740493972716882653356495551296778839408054437175780710188303522062775991450593563514029923277612766752953776899097605490894961061023185112155100537872214276064914502332804831402111395543921621503396602169196838880291757215273240756782027582428273875741435083040142401158098562217526835366305415792754901145354588139840216469774150815724232198046896691556115816909311592501805576723573131305148059765080318730116739167797684783267144442366975321928369912499756785341404562993589309806334555264176222066002122351140740968612878111344657247943500688618083920921072666374197731623288810416919367700438349784482569012462946492044355410928391963213092932964583932151048213372399580069062593474284833823599655571474932335835301723575321439676493781314206771416863765120277668458382456336085389194282138636124426993369986889052753564080071487576594371434526773671168327499672176261486990587293796816599119350501976145966645216908339225061516751638898980656347075645923850109067580286017727505718219269228645196561188998441630997788960643916656789416258446716275145850459476517643387708328331442767090505316554186507682476160904558520774657794652600814863324902586947763802244995274930536397455441347842870899209728336864267396610167743768727969525677748565641404818846079092508068857822667110803385925516593557072275296126723360924192589604936088355838322681805713540989652595687254058368862484925628976472927868426715780433215701033380856582150499085148609801821563220384242667965422253536622530980313813692768060236195703703566812511999188367086204340021613399559865698360611883278209068552383221411734435178616821818475010988681614462962017306091530125813277987405898122297074533122340539843696983315770587827029395053369337730424801241622730891902472232898619659397911798035093573673615422243579203345148714369026752346722223022168610025717203220537188726974684601031382794058550612431280526821493695987953641186945709577274337367650149012347155061779778933455055605133777768216675847027507629496840028274155437064791891457277161648535812288425325960954015930544801994163691880312990105712390829369226106238515339906196211164651387143038248221942865677017887946328528699214214424448288208159047476571155098550226488716491173944289904884299603176634884997436384772691492174533578393495479916146351942868637016007943467128121419774752925291245565555702314496139841919404876158749654000567468915000157708318119137240475358916201173903726156674896764079116179036184500049408464837490312003127652698735133889718659570593754384187520776528918301956567454854355995710232507063115199004869690196138502170599249730154633044169870383240324254245333877563300818329058292175829438305145354741875402246470422333486718631538875119345119400029471588987998041120666745728534085660561748828019789803792155531445555762921265801107108950673495372110993804592071088939549663183634230457217324814127228006453653890450157164231274558904283192130594895267955616900529653469994736931855892926883681032412243420558277060175230767793669206102128377651375288628592103203905534530942324383853438807332093172260702820915247091618444184524908455239181051300068182210873494936079210721339581560285714022909626947487989813283356432259545724431016320716396588048432544591571156021202468138067755061881384127935054714222321849352195360374165331630673459966609397424700828553995551422085520288434038447799434804459418967789809935139934316505075726606267988399528709456307537149012912069002883957356361775589073019321820746893325128188340269964946606402520216261847633465749536645199794311258416287207136661382880945980658873068265777192251181379850589376049287064105550981394524867327821235478789805382269852237553957589120206988976546023876617811192027825839678966165536967936228610176674205237218905287072428020933401636670078036989634505587222552640950494225287756674421955670076476734108944784362817244558991938210966065405433424875818268061192546845676058787661030795261807560840307948914767180952950166484831263710481959002236499492500938973157560374696218355386988457172655124875415351116405232636182335679237107442925411544490034488695613355123323114356840640871093176829256956405944129774197965085437577988375797936141513079676601252954863857702993389225677374087264161408485362756254211070289066257155291654721476143870951215171945934815750912203630644396910767390973888710798168960295793557658617791565130711887248740459396368758683575115213748751207463616997144854764953904649793937403307381147866741788983935101027437411194204614954640911184433489273476847155024640712809645863280394030382842932427543650470781722648040945612866004667005528761787377545977100635052676905126003689680358391166166556536054805066765814495510389771121416334307329816984191029806058536231481967419891684426839194529954186304481622266850396204032757978424153908301811466918709165264111644364295886054655577429512936135526379584448560260934079634509407025992833564641726028059759624988626404950195514743923659062899127171121308154860962053483285342878012858898507437866071380402723802587858828319354339249220155894140573086029766446231525099499067327132311321048834142120658167214251387717135146179602675931801401903179399869575178087787605304708323979132408714114347779337710238980540325452150726308360388163181873379420718135552854966111486818907794040820890865495392018964474178194135338436797808025308696433908673270801015206695739964300877341505598205016296631661217363062452210114701318376494615837564174550814442611879014417818655602351571127468514394929006709196281966761226786710190543838650506928611702569556455356180574047790078390182639955520972927091103368904577146123747691050009007117165393977884662063513368403551905821528871264547021842914865591960003899472503099889108193579050814526684365751458377056019150418386601229251247007934023972288255295152666167753364285596375744880737947964491901749035525712353865298363508868908581771638669820932034403665736017756162955211785569759099803582760577721500092970504668900198240790285088470022356914691235021160460133436268850449772064423873193071188213577509902985068036745563027040505332055806258436476741019999053498115549751870085203685400687225660368156896721056045840755188702512066582877111856152016726075777923691012004637800623449055448319079778088202780831023543035611588301720631719364220846794326994994599042016168151518088502378378022784480417537931563513033728378114628775352895206931760571897909035364347305661187747098716924541783753996229589993713561932628243731601088997045094998077685092781322473239319822382908375042367741148962412392719145510776257676627631604814202547102621536299120105682316395783211465698615502863513558822324103225681457861056094063693975959419428465970654460287818316890544553273410033199338833467227442966607591193796796091665915146784233115776958610189860296673679113776516630117595448478398787757821039832041364816680435471333806496756186551939867491710658267302759670388842548580338521157863949805193986997080113044913163187559985497134615888631087028088775266379891442917019514962642441212145155233255337451657334732672335424188924021566729273242828569137754213936716354362722372972063427161538107214281901713592851484827005967507432830662859335877429105077278024827534464896284545236064868758803245357867050562460074513881218281667023333006908637658199612727308001916113913924980783065299865371383949568082290168430928961147710101400471850393888780436713927143523408962751949242860731103503345353543472617779375863005157684595017553036147702772694818575756066066969631229115171102876393501352931090909158568096487122893995936271184696421887907869339315428557970919811503490467450943079119631591855733670541791307294537131478767782959407011087093662180138752550431458531028632825809668434626498758538334209702841089176733924732767792326861289220205283785968456857534956224963053577630675070758268236583096609585098468138791023545354190654041353666088243754561554842314302748115461088048892407919855529001758929526237693091466393698275007760499164410175224596671746132021830206624208472272400198195073006068635410841702308505384794228236899108098181698808178830685635432533496875541652117076804231608239154636006654472224853349493767769724668802995611597234034421267174054904097278989646061684663114442496262208721118662668724790925702362363212847917638883311999302846614528795117720707388077968326696264475538714911924755825215023577196956885404008492716470789913488596325593906206792547273419619763767145820604865255075580537615534433156627694648791298913339974352325674189364312066522293799686860726035581628984541144726449058373446463164660410674220556876947686020587530471051643263578089613911844894866992558628760142878162371277272992222972968466669489225709102101372679477439682752717114182258596545343978577862808274607997321480679357114090387001995160341381439759374600151791684743057225737567084035331855254270033698505206748239577501368880319145688078576079843972140977367084682798410032706436074329143114389852308900237999999922471226756978354112989976980622362990614816357027429236487964330613912330348156104103375927965693044186043855630086664489770488497363694782451832187978210877970491432808723276422534270999845672726002016327236802886116970282142813742242687802793299365831857621461453133559439741147782403893778092550457277137458844281059152324183921282899538382333156255495927373638099801859948020438492191454449264517267060552318243310634256741976790232837664150463035812649687267771016693733150680177568913793744592230402226585306025874151330988585415668922854506438547686568186408463515643717563539034607729594209965105038177463418955283974016294581403760784068255750085257538885091719570893606976700655266022100023511835006025701304156322763081758772547298591168245191551219133286696939392380492198252948779114887652475499932156268495618212773628937263072842763029862339367078714267353520320083194557497326898345292657688751612740255261356289145113488401099115516798749203219085528645762057297922269321996741622101443708679414957441904643328606823837262536710004834152775565958429852588320362759330697716171671757791032781065838013370888565746815616023401744349013695179904244168910077132265311953088137037177741136736978626514719648491197631628538757352741378550696770801085254483222624453184792584613112186292953967372478345407015851977797085724684730949607654848260963274018235199723232353213714799963433775640962189327412862917113855821971701613228026090345432412745339540557896148704720614000964923318152742259884235188106445499321369819231830281573491152932880989818636841527039512528654526849065227366555016970883111404442373042087041783456122906842538597726378634696953565748752866472125541938262557888274262825641487419146535976846622693780984231698173959871666595310295063817881486608346544149002618685434901692403043412380879263102646017546951460887656122832721838741705280753014999973605724255636573297605917624016620612253286400107892534249588312655670329148341296216137306804432803522110911723731525948541099415668257803453566896103052500781651809599412683269081610927860002689751568101945421307757063130077823304301726632108667300938969159082278206028906293474744071586479218039231598845737220868546126138942368135363919551877357860548426884088856318049999674827033024462691170943721310683789400321740206073176862333563896562088363973179957860478294755695523593451458034013386579932566631037169565695344713842855152588016020499881988974550023599246224088690811777446882792231359903110643116585326943329887129922555894192706805528183021161645528781818991178772643250873129688657844372449995624204649255371262942755112790570753991894422035982020952329159791339749701575903501336084267333452490756727327351849608841637015103098091518755636752302854654167239873303247648290623802448254700589399633822633315067636103040573011303561278009686576192429366538026329719047517525591412242671576331167436871349211745129614073774174057433585782799086599879511947725259746410950061871381881759271677966984200067776168267910566411417699707835698922418151244627280005519427543520871157729160547414462672525927436251887138771760497667877225222038859805231028696786586145932903018412735890205390276687309229570392519332348736213767429255908931459187474431235135361001492037390452266483455923700294151361032285442187606088413915271419026156940324685447652531870488796746652561990941482797053822379781762982640615953075571860195228173623190718137081338320066560978034079553006878750638546074951394870325954024499316370890479353785984661184233211490342386511742348141982906414866765796408928495260060701603732561978630298042658069523550683345625462244992169546187399124396018152242310902344725504813037392517553935376497719183592407960250783436035934753708027885355680826827930590330556085814779619016734805916913599239093942813471448645862610126960679977575992860141727051508122151479207749736825778993147160580133921201843342125984887571030496841384181982912002674325804598123289691439540256255249556771605792276698029638362598710092530338848249880123253855622185095797445991403700862127875656484437993466377733002665160512637245982225742530669397387047647827033821656612330020786641952813358359969572295672111237650171588063154864624532521445577630892640050914167025285546204053155174637056141377121244667386752180037057556101403611129401310715642136979795590331766734090268381518822199222560349111255863119982223335904834873794376462371408134577948580939490595048943977067524594300328861613331757870891412869943812854327799488987601922621973236435257616782809663998319606928980934121399486142125920064942546777442759809075351445852849215383469580740200437779130689569182721927850834632714590364229699821142446147046350460728329280301337871359436315473730751698624817428558480501038118913111063011953847750471509285814547488424923072634584898422437574525839286883344765599711250884432308857532672076095715837540363242001277376718791502984560774922665766698981707445070500083229428507005598225458097590110666168648501034976270718823635905369991482017017110625859369534069674879309786343725462590898107657723441800027887826915980343271942222985765761671702467393605608786971175595116503872051794677701586265247165951829583615263400178622535719430325258573119075977959414802336729314542503190266935612844582618535137427222375162656114594949878348025262285992034606365387677456543178658523416585354778786305799984842868001409938233080570202794416132396271909241620398119514961717236741258445527119498309769524736471364032956853018299006016129970547001510837161354572761775847890205607449132458022220660639051763438793432496720223010480344774070223184200450268178907094609094175366059013456435456077592000041916367052670775119101849834162370048310042247115158560643446430591355750898897083754835865846484340937666534888640477576461346043278418799277769487660568562077330754908255931629400694909322003921008909529122968507436163080276708271590152582243560763041434861267006220551453622623980928253832116563843477723543039313931554717356661657405679470143870098318097490904197713864568161706194193600656324991012196114361369833593422583922044302408499588172746601520895510809515196788935025479831008035363905574008759659469982872842127568950894211357943896754140006910236385201943428684096774759264867792144585609629734127765628109994880267847927121815543348621331243009116241497831303930250411092588637350849222989610820084974855023687663337823296686647857277350371509911961854391565088812955066214417027023410316606605293289030667351754120706370584595125246835347499384355382599898119973884218898149813124685812227625293654014307979968724197178370308712145890648492690936650762900235740521212991022417329977680749651205987785196345013704729670374878225702097620270713755719361348802781712869763461544817275801527313384395312098127052892806267035831981232343436284761646417435696462632200823841551283503568821271579414502977191321975228569969958508736741566676395133856385698792306618496570580738359499627951529333398496979225510122141275672959996197945169939714904920169913083068813190352968811030849217070483362673896474701716699237355974007154214140402446849949140157553461433280670087417986099786642621488742158244486777622832758479983986899317634822237132433871327678495002983474227700836464314248384522417926107869119448030514393731493954157238636479662767371690660405102184836932181665870630639504376949438584382972511455438226690998929400656406889446666983061332945340969335301931173952263472568900066441327059374076091335217361512315584196546158114174552093690788345136060598933194377753932926301972943630041929102226201596533525077714064189821530165484971686233922911128250241497098609675491581728684080174157978855274300021534763923270099194996643262495149166440283350706606144315572186365854439652583810577381467035809019982261959149255438100591151255346479266544162511014339840173928531605392823938359267040887877428996726958927500426182290254139033335660344227164562618912391464497764461264855716530128292324644741073311381317654226318322689807691762352397045183468378746508946954098535977591660766271853755305421319922687531119447078155420056170893749438816527726991157121440799129080309375508153498179412421797713920402381621665654578164549045618910527520515358598035110760745059877653674610528259492741544707849140622935400262737678554768743953210388729150176479249309520841977400123102445275454216834129572910729083345701617034408548923881622323730123251507285638121892861016856292454095937702216745756999146945381180754561144822831272047875681919386942264846347037721193388315579160238710982577804573168096377802307067319529464303904532441171096750372080253661430411208650577856968344046377268685011905715619236872203865421990686443845993483012857487330156488917461875999091026863343548834642116583085081379252151385575245718664311091481258806379083718361892735251497997621583968176890968619657208091697453164814100956984439228797197146476633315089511779657108719247599766809202761292681643743046428931368033346136660201860672665219171514415571936428108920411359468751799850522486343872547826432025248187892955527087556632012631909501861798166800745078756576271454246712644264027977738626363448522080206121890863248997229350762607519190496149105090375113072027236324166900892067636123731795243273028967692791558891301106369791095276687159929953631836841946209576303286967564530286239386535677556808664835471766925556904107999852905190866028367143040007333017750033606473102127525412255573211233346043969681164592328622052922080633777145765836293205876452442436360242212146900994809951784949030000921520354950010729142978645654135057412849905828529352762568595038844178384731895999335372232436541219385860967488434148511497394271893457350439697685307542701918052939511922843340394385524182643320678503507065030746730201176269224945957108683915349031975668549962481233039628246341746275236700603516082949011938092714346723106506470232992273718546284431660238528647951279395432007555375933298722346134071725230434009582154666580276799637835872516712150596502103854273832221496238086294318544669273457160762572531796923848434946754937765829111958737865032965882529490068469240162389917853782843831146890403035170213702412963031268917225113173583439155536493277554262021331233711483652884393715708726158761692780608894977501105468625505508483400196340825876643253332003091296659470956347468679760126052201574469198183716097469169488101424910200208066131278866540449602561062060205115354770581282544134256786222821498087830190303931159166117883059534241553273878765241952944452687206391990103605922773625456194572439214760498614357606397030682638303208437887116976070744772212913760220309308729528111393129833981025158519839118687171249353291281708572722441532398715280096045877388255562576326731460126837858205576365928196747499976344677707999876575232564883692095660381025524010633211505513357616402185873801608209583573750323961565020527781538354566899256244755981831433628211963564831177811559582708636372892949919571124692180879432367793103631265516925447637352678797206570560844456784371414585655836757163177189617739649100162331502280332111989734848627175586216430085019514903213540734171038096473083723766441420737965631423543865521714915946554536924765659567057902843175135405680943024921099474859849318923121615492854386132407405258878712753569511854159491228626441176939238132097892279757325688137399599692962415025656041659865268683929545881790047827166718831634993054387246973406010466182331316432820281951677526158680853063110413230118729148965407758404928508231072421758655969548263854365577195591000784489331090019379694169536136299006895770703594048511518698122975437833720253488326911022303700713875015299208547166320129327822623126271753903927167248999266157216444514652328133871957408915350725791596662591319150219009303784983390722110840674980050595984557776559233454547310135670710958355340704204063531514450568395958280019751712291856130091801824828907872294689629934258279426897710374738192266529363413200390668412547219237507347654858871021613675641390110576752479653449636413417778119553200584192091674598962810955575576505175738521300704706195448294321994311868272995965500884862581804111544713870231741259026970094513162266273960704418971392601995011731022340264310182654906802766839126917201369387852361181254823178633864671264250018681997622391809680191151174244259361434987006328527615536753076981685002516269326370842382802634467150938888814086967950290948078511885036283289928221504869409242691719323211173617910802425748360860456827506174889551458261906770188654452893616485689534775804634615279794369594891005078239406796813047197120357473436918670446796855882933869084311998474685027497525143428121090353381172948575215643033482131509029595667107726445807687793476064340298742947610109248796264812066312987668773842296151561575695802228435582166338073602239282782764709845881248713017503639647096332827653763896669389508438727925758434061284864965745545606608563583756135355041656554656036525815651841191940976407396283552248202611278565103783018706794078699657726281136672748669975614219969738200938284434539967978683741712060127771454258592830386586509050736272600398027346997808689357819658529780541003047338309684408665964539817953980755889669430147882119828627175278432324488403188268382964177135823617393404355278981419512411902693950722195927023148865453165378110394775232586578398262528179523929516187343568722930577302049266398358982787523115057201551006381219704806422938212189322079600295436038124892711906185511159992504628181420833767618761106610808338418044305274871612397951702367372477041562383810533077737943942308808900392873569535859628862198644153414997389005571142762071968077912681256043758154696151314012219246655026212639745350111238321784616721126785403030793694391970945387509344161412054000402290277191876432594420793909153259698751481439661676198658154150531006803384392062143790549949912964047234272865672235070396753224250030694191932329506628622952967206878705457787189473484889223450558039137931808675174986762574709680477882759315885616493610353473695849903361339963158936294231316367382173484251734481784534084192118995989101385616586151505148194004235703543397928894479064936541581357991121879552794239639910838927256346057601328368862487736394660296956781369907129961899598743303099353096155163731482722006842293379552468441900813355460610947641266236615758114773377134261035432133222022972232704310926000416377598190885628365565676883266591645765428268481484356382897224845493951363610941995925495972161545845984472792926621573120136553769616262882480023068262569444565590560596797719550290502962255819342542606792509115099916692446154042034243583213382725420513570775950163157555289306173179538111665876611371958693273241326592376770762406906411184248393311947360059097618561861911821957660007362597878099686947963739967613055427100224421201005440119995285196197192534180757328330788084369966728584312120447166732557191682484222601526623823073176475802580377647378944648625971126126331722572032607952370719760828316631232959873362995865125596367838056356094576300735917084069402814938338052030119848200835468291034031997463475868552342578385896862782656046378282841174180385266259178054794812935063871646991877431896487952908466796933032601069644251722814783856466649456543733338210348660683341338525342317542763684945900012016236396817429785720769346023693250614834071137388190782965870190141271403573358128353579990771317830780820005281485923881798343362937781051937739655178832809383607363495438477235829579225217578977921319795548226995153757865125059408823167464430966937216258669999466057316392960969621324915776807541501753259222631423203648935211356207404116823889635389593657997070920885653468768684040143868146830739149204687965277892879179277870527542928939374124714443588924718916335988249704087501905739148742542936530718220707354897777166040654306948477150535289603667871787209301296018146038193477585674804813642428748839938545336941831717251994212488097620833704777446516126705871440542491726272934674628763280669657736011824959789013301700514952380555009419803803308483836784830909005114754285113738538062273463503800062723340377378315049661846800965014361408886155781293029456569368365686822358962128570889291109533596939095746437462432437485019145453147319862894785552845932000055910767397553123357213048352055910749161961151119421500265066527443695044529402779653882286174528742032645206672122421819572068517530982614649834784510245090235413519335532783855036210164544163296751773502541295515451167806894247572428298631243433436153273239856966067487536158203250879148311440414286780323395323115891750303870609976323004910874316448931934880403026351662083371349361966218711168777342877502110256031257223983307642828291088431295981415454142066036378594386820245372029852836450730166977901443999835005738327824292093810085329651114249917235837626039701729362001226349660741001611707881564891705131558206356761427497966749130636924426717262993291182238106723919932922913156159267355180080642958370585192681917306903308925601911896987980351780352712378062181118041955451918028388644721236231496483675831546311965749288798021452393564766280143093221827882286148065877972101180651281193698552083780760155721728722746563724060424951675707904672669288161118870180661892469290228405226685788500365697363086603099602806303483875037098473323737437218068755620645624744139648598657007114423177561150445476225744155516495066497467581644294423898804497649612592775138274152494925233002124224807368090602650540723903556461289213201789550298405408439816897837837507312584382533341264408872949141611953158836317224192212372410423725408785258157169187098046533850820234120094691560982676419414855086989984962738893319046898467582295177540666956207905480587084966754284021814755037673234202907697186123834364823958894715762176126430846040439611205110746555713712537791888144267060610237567942806643872047844734424032523097375825491038951111381379913460862910127776814000423405432587560043141458173826113758483715385212439927357911548071719238060668866109203459124753504872692989123908693167390135542315984127364091697336685462450927861039227468637700739854854982794358551134951394465644355132249675045909106214385887782168409932919164163483506497381543606340538421119622582100214904161955801034144488813711915204348971892259814226417707283107610549151737558781969181625843639639785991488737391600613968798641803936175435865921754141079018928355980094220934169982403907819292063779714280474075028592162363283337925480325296258251298293526745788799756522715285927368856012514531596294636407098954871004251753915525850212003294690269195642155800212170837945388289591120957528014072103362844081687315585136487692074015329260183892517962761803825816471186363626652219878900688415125279068199819348048589836796962252364144198973433941272079477484952868942032182846146162963361838295122441948439423841289179672446425106687680951242572051487787703456957914744004494749103711873788315343079275758149256706546931094908005482449440861700752413879325740192520916319846142661264437639859500450241845450411140683433780884377099471887280519971124996991783671884056624288993727027805815619860453210429690325398841805401877971596045217586343968679721308015617011200588071968884752865001632177883798124036976066618899068498830948836290120999540478448339863054338151017696983578516486482814522412925216067780803724120785196029788539674176104499455472106290040159755941990138094968195764385853619817944438839020934805751433318553609762297488046106411839686492818469982034888662797159427373377635775655710721788604944308719223723116056124755622259223197051330437136812098603637268305033432922019754358145962823699229284121822800854426275611156411587899252034140547767234084969733720539975719105709491176337916137532850475602002148671481998796487597294898974186887025214938704049182236166285283686079051316460269695244956102613895541196497958348753399901563987290774256291944073594777561036544527172670486084266421100897659315728505784007637381683209452772072140869440080096885174658440761297153360230664025195401323650651819659252501054136788940958621580808857562343351084935078506038535716560088947962733831461011965000353503793184738335151126234457292631801021098085999187157620090134467241099081724945550811767188022418546036133400503279173112496034113501933271199667904470049277856782818141404557508562838012400808598504221719693957408572069477618929083400229422120553199670608716204627868669514066969555005678000467353077059889703691422944617306275163913683222934959775398055758304596500491688402176503606962001033983066255285156286288889729489145984534736598212761366857670388871669520662889106725550429081454889682969327161175304549876553102556578123617895506258503311165327476087896000601634558748736231575170779541763822655590840254232175857879795966870426732106397688068225077839677972348607449079343913716341510432914359727878235917125020170473319145443534026839461120480185668059583772891945984674001387974112899212107129933714773060690846362399815550464289449123460027608079862721347050180619488340540467934120318201135588861442405608986389200777968668823725374776505728410848638913930764847845927680947095603010058331578914547237599490380110484075583688896554491856774957133542190253433618079144865574780866524740060708450953202251315607569779581505475751931291836267293935895571507170583062613612187443548482620808065901091054178608451989471960198285656252815662485620809241963372752576910233662983901435576775512623067275916053928294135783714292567171982408008524520168608528789140125887028819018483240917328005048944752953794441399010334901046475925085197900039144971210382468088075396796697913187151780335602092674624029015709610905849352074593711765830947805288284923597001607276204712102860941795178468206414658355448155353413668750989770034744060647223237105223465081964875339931640343240011866694232868769921791661499335086436520682981840956510815494195832579750746376193821415474840386155477429316396851440500197298047151217505149072025423890074471798798843498165631222110609502153105804481951578850790929238281923197961706598900339462946250479984959127505601342609427063260483809210485458187410248513036496028143974479556661040115453360163458794103012260573225895258568224124751589998131379929472150453515855582692533476804500892670812229673573845679100763256184549548558435885738694868566578096115726753576838695045882405497975203585441826940614222756627330752963847193311500142954422605124934978050274955721992816658688425156826577139090997708456236085181517532477804069017766928029832608857554812291928609984077039970327422297114748060650846335349442305525967845871776957841996122499383868847342849058279105684691283577788695134726446845410559187953831557066462042031855498884588790145812802661398827112294520851948039662383256474406042206568338000042907094416552335592867546358027097392553164182269733922288916973776584867631043453082511213812659495642187275554004295617069285500596603880740058333876084239484095028288486011430484302007389902966451169469896629563980215696605791072291516330223702867711457622531093256903753780380374098632882348212790813880125216477025900870147237693081862293402356367315844431952553473869741897419668374574623478165899437396609700432466315225662179571323659791000345711200518076196333359731488252574095350910935250904548241373807647286004611496700707352999889402261716968143998102312119630649123554559998953403047753311609323244951630794710200599750288691809689605099389643852296496077866077016115216699547231988913046965029357610127043040746853990502503411418037568300973747547677514378669532252905630507955274596956416040109220964086285561537360190618087835206505722597913352090677992052535003189020300421880595777203764147373702763798641639176505969619648401943822311112343803623652873171958887768882399031002405243546411181779344359402262944466389335497038521144075346066358426493169151673678687798590548654687881373908885788098944571587495219204518651224411214712957645788163935438771640224309192531358640815170761265629824516572384054113908849613597910657366662049938845718656783520981436780196595563598391876178043556470049441291737611693322463931700571233686089663416525890584358476119610687568372247945921677144999665205122161710651415487820936866368936168573181071630637869248438089623099803593091174110230847210070305942408867430599183665415392508673001583491837454504767202328196226066940895669546904065061676494408302992352568900188345321787880074236573424610963707366833739179311403503572903899775097191046299300582444815604468126519312924889258914388207129370581432481129170414901065359101839694311497016781210678758341333097243814313796461140230852783215383612518022823792286382952716422494200633531996892768191745707022375302072433896733195579187843739970549620897707084558967684911358194065340225005362129535195828572804963845147212257905685256137126341619356857832790911531403364960007830076380581110121067321205527230848409477342999672452277412139784010298113821434155814234264120122235878216303086405680003396054267104745350839838800616686254134100981067884392133447383384069511999221952476125822255790656106733275148275303139083602002029089752201709911280608565644928101148238240116790901047590516032075424094765570251698944644098236347632487571417020856311686424654865729253471646368009443428164601216834568766777427424952839138364517001206832261499697708608436516057515285257813395959511016070665968860589368342037915966228997507481066574843832672999071849713561922694259684758037066798836599913738514155532213852576989159389067489076736819989940044655548749526041769657233090583082602007119713770537827227464248978870949546598316566905019647503288981033203128127042804290260825318136774706517791280712452510354969579749207784792889589969742448930778066770320786574812893145997554100676866805727648557206141393616464065307543509767721984993421942873854171999196122039477436863929578012068377598482529776537271851256926443642906740899756786135775029556442023407553835095660492685283380046229263317384777299789400805001776526552745986310229554597141303178130178316570948597247767538930380173733672328785298253263366273027616363473149552849520104176370535543545289776498979268392452917655586708847556319379563082097812101318727853074359692789440595800829029644844729679489512701536819104606226016294361632603996442598818341222852942438283978396635283145648626277750544919460447640879389308100442994329407926084784937911826774650762985519467099367878244218465754638603459015570567989224251087107180760444806871573162820330453387993714291462792879751209259077415401655459573226151930349417867226517778074384080306420292708600583200677577164834274310182800503772214552996354594802094477624686964452050791377104703670155560191823828127590767721735075498986554864812207160358133154187779525299833486814122141888617481055878346866588225719277078761041904772609283741789076570794612681023339453645534199851160284110713309207569100785639731304770476124657350421583687050398583454921549006235651031731552764931728113578648370997109062288496909576437140592313394252790510201152019831997808259254995631322063990314596780056575608732763641888517484693643907172848854944122550971017897080752464808913400076078619175931324781187626098360319819802438069594987675747067079146442882539471559822425947159480201118225159559619170653602824337931938438055853471988711979380321209814877121065850136833659052901944331525319767333034247899381366433102632213762686565395627349988843444424274454544151497016271111680853489173399256542008656443879301061455062684235184690179625432214445341097475047635796890990683781334228788862688239169290103905901099288950502363498087740526770650625747458667334288897473381260728024263805318408451866267830407501483257908080362287771229281706668499377249076935679698884906297075825799560233340279412873492324049084323233634597307023773305183135025222726383558355865904553272748478447487443580793512455001630534239114375940805169310018335132273789483625265564769953168418821562322487233477652981723369746845425263245788812426227562880786144380315824352515418287658921276568477609275199658095925034223859573001014346243451697706792303475616474736775179854836827010468843741252975711855189173368931394419749349076623010540648107060207795332435475395326488056740209613682386722698418245959498724639896040194377828788389135838295280820467378344434303952833550242327435551973180029011755384172367812982162469301337974035174043276701561955318132444308038525263471611596084821596110266916199376958206171441013713855356144625075584476677584798099325544014776263562149090801500913805505732137100884503396776260143092614268661982836826268434557109945185525029890823557963740086534254936214833102009746361158501757456293715689847991084886156180114179501105979184751739294906574225375879675373603164137388421638287349791700713260369813447330618221061021862484177509159331004709725212424804032551661398422367603153180185203155736370755458884510816386502999392170736600676506433095734254950301603846024092551747398653452658872850535992045014134402093840684929431469213848403993995855914366298495536948285917419232205716205435692354408121487675123046031263508928766925039605689201183224593934387203597095597973947474943158591541085941768443533792590852636646184437959621431626286936929592715034183724353527737192802835615710232270916764180342939013705139666081551425263479816238799014193940388371213195721186551590262882294574648241010028316417658716298346789564869590462356778692704638406630713338770873094382953979397264779930518642180404099688346389530541873247078969109002488078183137754032155825799168280637661321666478845706469292118959261723923957124052930950077873460322039606332839515220888575590300756475617984901497166229244573234144164819971587398955871671186104860893297197851058841112382589025655756706332386098563544492541983116263750148439447992971344365083837113130558371374525318842726496857631237762452503808769253257555287916365367912101200927708631237526697167624453722651215943234340856192018582001337246946245097449100324435658263657324359408506772749476585167987522173406473490257615819780295010934986278931569091847734519465213675617121466682499560327568494234994767494741811642395519249595723666806476774337987676808016295016467474393731131951466708255370231148493576527222047885210755507446204150975095192244212680449692124701576166663868923873624190057502371305248038729625054352929615210822821582235961781641630465241025328821704757501291993707032645529379421042033557969566138575257893313822594836436608601327691562643292993932120165849670142732140513515097989306093465725478652053742947670824641469820441450137941207216450425268875258230836552212386053779187909946336618062637362275070109003006406851959285850346418812469290580253446326984791252534473019770391729458007976437768742001717445771824555052682597128334345000999358792530175900477853645994059609723265658330125194915691355248473010518094353967672059082038546663599950272424175195543591038127929853208602672006115579827854111268189700382971307311682585977479365367372754974927258319348909298071190221274662939516252086975887562962927081594063092689450492225593826548123889629134740866197019141430794978358704115439067383734852225928816510878704885514687190505445119036716828898702248542575037520295094945634002113002853063521551966219345555716365081081287715951880821602921673253269917509080741136524767252584180361561361582688404927008195842397034609833926826746416457544586541462606723627700470805731962114421004441640703890670502032136222232995182991368604781750206838650789123116027693834159100668498476769467213709782292274574018520474982964659695190673704885741878162912564182056580759223416824157699173201242024797585126541059861541437033806968310241316635513212892562152166369649977195150448622022156039223118139630031429955832570499852810301274613057284209595562971129817146666845820138206235679016571108217907413601824575688956314905831716622438839810994728653697447220451590751332125515064813314407074164755700425806940843149799839035978141356244225825273892644470456508278737008734717095268153781482208169733981235303134927714085978898438758182438762265803293207761607690435202360420419308306424729021212838261388370701783481561696464866837490851189658890824919288910648585837805838303459329229599135486555070825317043381700323455790376030018656644405930299066342465076537462858826308381408537353688809899220343382524372880554752717358229767152428168387002995786124219179097747345663309476265932154955574710295107905089515639164074858391800263096288112094199113746349049374452963883805954537537927917796046562574415613705527236195256052351199800655844018650160147386410814508612234881907210261395974498148361966982670399873211899489881320735719101880554315401906833847028320125831893606440530283529523409584285705750492927984721945702446129608023732416819116158564930999554629814123789414015686315367872441717085639368271556935232485973443688403701820633341136363109262567029496008951423240127794477878688878009401967697681985712851352609302635259844875152261101994073517713773816940832444572797655308714259443103658485724776836661422000421802833314607306773011725724074993773800007100470200890748336646524109416172664964843696310214877503353609732065572888939713484252182860488749423817380703993568922338662414503067078151034376791143417407589219324097530350034810864967692227867033636416250549211946274068881588043683039190639836651935714662415465961824109401754049908578815116556967725727788366189291264245500670961864922216303952073359612588929782776329655102074786387466110319432446887678727672207736003997612633648660356237381659400342386148526833193190946437786919789159132827583821782772187983725820029213029590185954005187989962112661387070645788503562971118821556128926514777163477602473709688324612475168232642160262297422893976618323658896642448899588869410460206342551906006607228976794091456886452384336103767400081052116790654845832668780377620283955089044447612288678611604281314831246379933754153839189222250543089724193130816682805820682815279510496309931185159062552256677709898548216324118194188417881430892155568479774627456859312282093805651119301118638356322343335521579478963717829173701398745639488110754093526572858888071580763751262879955275898391477507378269412924927181165525706385839186890004077432481684511541215351102779875085830008976008757260318667947094396779533340519199297626367267663226889365392376951322900511356806682127703807045440068839784282591509551959305370147328054254832024530083580986107915578905297464274724275616405583623324482475620072537438245183051121063521938391529869449875361806631226537137263854735964718651884253212552192917357437288066222266777951321622363321463690506793147598973848406327539139820873272778567651000871494144974820387446717775017080982931115098142829698161512064437952719342495351856177956696498954816728293383139646334697906784692631327889337650105566464263057857320666861849247543181872551760846428858097762608027058408306782445604452421543525624571476849756192149412756542237532500079092845994603480108055296898516144114122773553615976611035210884344114630785535979380608582702277404262947081000757047555795123827673108179728108683853414504711855783725854837316770982007990632115189065778992640855387792459130010233133663443643157082057652975216969974781692310794947564914478720612062467578075627546745997321373045713317205051250616351036990314991978941135633433936840926821154575028593043021070173399788177891485508251304478349870271460212081204382862542756578416792983794108668489590557953976209643348638469765127831694091408732425543051637456463221530939029449094425729949501077965358506450854284506844614093833986164611783305504710242933137218779644826777719530659053619644208235846875156089697449157571839229168481920835768117247882042342407354857031802722236383859174977317634146831902660947038181638079531588879106104570250405948909848954102881659040715585770943026068654154402119548917150291657229916966334194347541476926932381032412662329398622237533561060070336551712039670280830789884707155398893668688783723126444041571452453902602015886019641565561734823413470454014227401499774665205079500896881456792182769673424059649517449937163515736039194557769865244750606548283573379249953751706212421644950268005255256880196595343949822533872905838211460268113184579023703442234193330191167216663234164934124313286454912322266540851766658600639899239871918073138332649889489193953080576421654363267258303015897900018022086961855466817888530434828923453441135991633313654928245497090876115339603892770679427590926326787246955768182153819248562269013927937539955209978067249218530063414302922292196114895109383156423127730022300865487480679589759608009381520083088208576575096233017010436884071115766742717125798670148284310593874131677834688421990275330451748778423757910254201401644383420183292068564826062444057156088076294326365483342592981712316049658067452980482227806570604216294143312674937990429071089541147990533038405571806459395872425799160735789480400604366321358495012820696362269060025937244505418533388509858451192085236304640390046798857262183235548327864642255377337743650601683705703884592454122373454805227303167626485069859344355504601032758460017817445031605708009944909665807091141428670325218678468976366780277387941494358323294690287087510158105134050585523751493844671468477850981908407765293582509918605736958550038444915254742030978029148091239930784308402708302142043840343350513791794521803605740938822546548549069604851227299810224776840219557709753150733846256316528187003475011688699155018085634261984450348418435966565772675925879205475422914351808770098545391447604837156960696331956009335309634112988191010007485472687655060125169492298230751084790641013907400410545985822613428098396384213378581702562803426711862553664584294933111843083648137957480917011684856576893586549840477956686420898306607948342979747580793610111879661262554027340106269734038236173058783230202705970908140511236534102605360344451547179019393326291793882219064298949990799802259358931449583693309041447170502659643032635698853223504398016921217685463504928178461468873325301803814896323379670775935221147064648211466975793369452661293705473776103005925852575284841741379450297589129630296192575541778807718115966142203572874619113827287777188446983589248417032749382786816334925324904158597857372966584382119281706184406816640259415774941505014722323058288393452166827636353975706323694025439242379760415590143301770831660508462272052357029289228639872138473574321713364140263803560169597481139358590467142420674792675333725925752845474567854215159523070800478704596295403116970472436025153017923846139665446342656996459965419950630840776483378163810359478692454383334182385598691179596528345232507861783620422818784640134700693266031457320141824962558435297602092730292250914572320810937213492480144323929586728776260907999869525564289648263545743802765957970648309953589905266822749294459246095846407564881747229743717582406072253651491606034456899022797533562994230835101584219507526634490179920688061672976155115501025965327547572645771221715298391617249427416565508330261234573162513026923505255820482769351338797206323607014801800749858342153640509773246901580480770995897501312697347906490279095961313421455680547280891482251732832609806486899386406247717834020999105477127777294456647854382683815537998247561408417277483318965898529659743304171004948648172380547228604640436768582187760216006841866684294163933565770061751309726644809936191932059046333508915131688796182834271603833097069110692753862528550352128485943773282333483081956179263865117989794838465020042298189643620671025330822213974433623885512578982347825263780104107067910483056548133820467860832128170268622596221220244992591065650313632186394923398650332990007310035883027923616224634113406071307100060589469119587192105013511905944118367897067106469111651496689012851838696249065205020043874472452280219655031396527538963154485864380334423822765428366138692002745379011727245844401121065073822440024067632360610229175750197181807993500557483190525432184022399482729761149951122094854627693905366069062572771183084821970704602362389328574164263797122002118301278982632968925080186346086184152416121241873301133637636765172919019167882528845519837254648672434947424346651586781226490698044020661919223912501093492295344529464915544595283569665385933339913989469258659608762439140642139699284857890749406219966309746310760999099052453169209229523151748963590906566443872209416834025998927032584397696521094544462838901339227591357762452789068519998999595518046754399071135360923250901248161112963050649205501722530252895699843215900826592226692200881887660307792373594065436673945533888690373650518918794814988217988770541411913155456247261732775509176275866523434631623460588858959303829354937290532034535419505287992391707566696292187954729111020899070028648429396138756434236575853568923344000671271847857254262715916665620849176746174984221795070235514107720813076760517973120039426964914098747535393580530674797025349309167177318131164316094884730431118573483109316257464036448288474771373996671914214090573500587855973364443789942702237725123440974907362928712066464963716997491689734004516727740508679812765233328635341007173198768662220118687203108546173764210970857309421248059586386234603875348331021920557428815386920914323908647331896316681475282960340155947459043737193505485277964435602367298349604768927922103441063746715564177672775141092638177592987749056157740647530903073035550818105533206328232653680347184498115008235641777010528694323874059010790701428669552982172881596461588264049063478314277203635295878628422110578815770858043751395973336164341195406648406906127527931280915934622915200929097129561406932486524490337070797186509820891795939140359123804757922844558987507980405691233726349731449344018931557988775527434571971316353122589942482283070121807400320943969609083330708246943748441283923142735345333355702942059778935642413792898412141121478895609141767167264339646076368129759453855752603095636277984319948802760076132319655182127410118993150604768548388730089214895447942226289110646605244133005309470351730407295752872463767934699302889970763956703809519787155342034768878667056619026567378474109583467962487438890517273012243170670574809977924022808747224719344782606569600640241165657673385781203190845550506862507139459319308708388810176227784862134045778084928268836118468945808150333706594488212118942955868832773584806825837491134285276002060021354376948709537548942418060278066997872406957508812146129298543385916802837601976555353946179584747643795094525307905076267031289991176500768689289272808845762775735989530505288201971531889693703633862222611616883702424779315102684099569626275719615194309306848977326708904795370179581847978954418505406763830544318134110701312017873974485787891731100322542339349014767912988532916407059280564012909031265383859894602023432275994299430543841752759115554113391351175143724189171758565556458910967093222486344225520972611092983092640086352180410247422236272715008722998595647897454402650633396979825670109430981575716577802813948449568199301891797631591620611626665969839069223440050195975504425006813698223122869538797074771720692837463062500368757664190475033852564186773348407731361682391456564270128276230945125287448335453993334539716709915039837828796938541880820182490043783420146422550243751423764443367800210516380792552725944741303155069987485763143887591538955463206242522787071766947461046931325512088499573870587238860342043105705623102645418175919014060282871260441569836276742232773122055251737987410874878770075981678046195504878337403156037177290056889890408691256005601059200739457951398725311477713347155031640249921920414560409435846779707376229422895564787274109291224695589072540988698826730094928812536851484281246304318074373049353093473208456394896095399101206625670458509094141745188169258390370523245071117015325489319038207430764190906907366775751529297461007622480096458430633917501441444843578332773762040541892272906751905310995346891735194105933675703465265922798160680869845908885887282514456262148678866658419387588397032009834253378032212193590886476632960218989339498911720339819366714418734442646694025609440445609331442111422111239788208377588589498397674970409621676451697115406742645006739823367388827399797617179666977816611942338802038896337039077420937891617588710283090359099786560697995196303240125915839672557707732691533790858577494012748710429076408806258333461575915330978134242799019335635199546028880206574431072355373015399621260711264671621187542785332952193021783130271739924889455716576740822434355652927228104005086383605024534508357355044502129171649896107426285367909283698708746542349554082636079232285283749966412747402086351207410060696100528138842518262082399401219622778320480450817910897023146550182062164768774872336066098094518129490052897259495902162188268033542837913356945859127171722504640544524852621971584914361215075281141687913035078027725674572952814591252240769024886039078673226349166789449165465950283925864440909448680150077485392117556743089699134088636681959682376051773533264261310138149773810968817726579536167263692136481667968637336088345372610842712650350345493447530737844932504002589127207112130932591568103055957794046096488917687674574454812052377349119852021156218357097206627226818022691414370446558186759692602912641518229127797561625883160141341491773105586312312416337372244574828816714639346220412986769424484964900487460680575300441648749130547919589728869675358762249205322708181688922720670814154939126436995302430108614564052023105310031464879473661084388894273820197240459857020084824865215557615088985512180357266433440078367233108122505466834161276440209399740479134788842472548147265553345392741874780389955296065423844344483396201824823823819207154220588362420251495701284853596238522865661714817120865602641996472096402962274154603507024670153134552671046961958279403785996643223098502989923038597120370461604350244417631749109482798122344544365978997201697829425740725136797489193296422430500690575935777448777342806576460699011765723258671368614811199536328813438011791657201003625533097808904052394940888367083203427290525719978642717700995978636603425412035933253534818801550797709783745389636369788402604726898904363114295215636674663363277019331127432515363339740360282426266147791744414633631806304498267916469979650843175718093269034508510288182279982690874685537200690808616492961029637277055473950864620446297168876350016747095168234340258576687298005638084981780143613967258760504059317376326806206952638829255049499599523031749163674474292456638403518757522474482317290742555053072216004681555489811145087979235977992264838886634223280224076203063310640616757580316160012473220693476798786820363199232258661123706250095644561343226964033508227649274758585647910561115326903273041566065029651210561510315539464153309324146494807416421563918652918432386785046458502689920133080161587470598904566317559104493849380973813326522366081795653586833745282664815837289570857669687801831009080993759267208884595885736352830567676446269215910202362545464839676928545894763421504207555695325771987838311181052770497187794297543459733613870539637743641546328420572277005150655225131242353857286968288236169882198886590746724621281397076601145416168498961321762157179205010421518933677533745658050443286479217363171792615796567275110655731554793578332330571744337010905612432254762604292435873408034921007408842657069359346656065818477340269671905746711156355321595596375752554135337009110598204271093296176640733947447304134404487844223592264966062416514973931741436037077814930731069883210671980637598767817822235751353649055009455217695794299180109013249047736564082380256095664252420099032805247273203170628470927990246328571208748672834476737062403978361831083957921438747741660295675229070021226679513304845472314495995548705239743665661479638956992021060346533377111722949584106246226466472056537980893240686852971403753741834878586923382026561413721965171480903426276646279798515566639675072356365566227483567506360760378127510631737810875792963176667567807226374883367964478447702911904530856362157151313360086145955460333026522501427982731575735749724969789796995426991200105888400947134676167983515959552746607989711978129063973656069564358917276365004663585014193741867830900733251411833402231208252549443098342418549415474427334274754591505840036760856530968196188529404434540499723436153594091080662690964686087489458754093070848141911392050819575262901272520278929450514339181430622526755402159229517507705110405283044374363871918209751099237433692667953222683116502317656603026557493306426953919392544585791433495904325776858413299093980107846650182354391650966659995531150769031424438191704548056479903974171864876482154350292174018012808971058019872043849398262378806020723106285502822650983143375995952229303177394807621118508646175202018652211652102309785491077926910187051453527589595608450732857826272032613604508464645862163145512300455495331413598886889329031164093959931798613096220749459918308538181457271341639084395885977865029471904540118667858429105744677616112714668823735405993715231656545685022340620291866303903410583670310453247743068432268850977482428267115959617862301574972181650017921331924583823660112741336743400144930481011462279919271995273413989663261105820644138194738478587440138446048604632484591034038941915963731795308526406889057150620495642841686624453391428256338469020083005373231282724731823694109322836674289082899596823552455836891257029768339683436290344150595962775086716499586082844713542055860669907077539883376618629305760558701999449571742110264103293353016738452685886296524715012507762352247828346368728411234018912737083253329932459098375250555772244824097234804700169137721218182668824764797984678603861038726486170645514702120205484927274507530609545957927863873173376198205720766735063917631402077624033271978716984793830939981889669473214999843758165555562218839755285617846824865134568318793804137130793295279229454731521692534878987361806778532258046716551229135559303341068292009908510995509632980224201831903120594866284129038334919962395555481138462257272791652687325908891451609030900415060586094832604288353675114465419129535386799037510810284254704846163093102717927750893249993295387318419174946725406949331570385322984841703995282681754330820472719400625006511845393273127521809063328046139213679914697693784516093150398329181488947841394840430327333020532302678659039473644566510828954550286824565314275765386637520049652585316789925913792575937872382919674654908135390181077025602774970437519258680480109272250323302931818736680599648321521914532923640115263186265889089811176530669146142696765002438778915508920407794496680171433150921936307716837851960547191867734851440691969798650821396189829644880991914027099361062182304676176114535033413441831439030379714008816572693685061052918315617253832786710739410507950539473439197472346085370269022406496748935016065909642334521709083229076766775957671128448300313208029403391516350720997336856123073313267091704373654346895552461411388047199511106587714658260576324058292124192649461363594035757942761228259221658636646958829026615501298294629101571492619695617943672143080740999154155620486677506914367242569033170965539774993630453657481205459324422737707515751228259952492760514592995698781115234526522500124005808626875680160202940792656990975425230669246908228740399668811256229666309475614838678676701776740825802280945028210847149131502623848597724907923753475244976403113011034378297975597157915713786331970904122179856148159443009218853344008144024162675147608484306798705565315554478403938427035851524174794296245736788830267035285158821267143470652351327189724012013399721226722883476128584947768122794652182999864849441667576302256244691299400080463535333467591041682070413126203805597511382295198824106424594126243205483883058472896632527392370726606888129691757194202400086785902981284070114549062943731726902794644832328263067732867327617527491986806250517201607969941415008314921307710730510720922083232957908247264322439534889943729066466115176315739002000811578167245272053897216483973328008631953108390312980246602340008466261668705635659850154524577703339435932953432170931165947626819162438201083050340035503715171261119321886034338210698024041012126517430582319784646176273700328350018710347710448740728626130454406112794998954853585082650905708573581057060326384661044171757714895592043021991844145841387665610478831259812770261969902728352683220034583194728512441962135346226185020999012606082584544126169861269781229993448290085900921722182161069007062568183424381624503009256976743664820001458260129163904116176289250556851814258057490023806147565983747817624628539397927201741447915989701965635522116116519455707862961567236168667905931984189645084791138532030970255361765765710606269783165269365911431683572321699949073460679766255731663923340094520844913605019576854279679395727109769212987760656935541751207886637959803457260241537711186366892367205877152976932704766190824561561102574203145917070915139222499082518260522312128593733433808907369542374946961992737978029874017164481808255450079772067188897716731335443455968101834783045558557190089007965572638076610530511457584725653337550204835836399600122538843715898671851043529248303715908932710223009198391701963925108515713687297653443346749327196383868020400448556799224301469185515715344473757684268748377632595480886887012326661012690931595149482640969927056468720221010528614046009067575330500012013585064079531555516669742626751555461096550607670365643954642000562626405220072709818308829664070205325283741405165005749228002056094816483160991163886968753496306747463832792440642076330413376657020867241529115755540458956724821200638475311288698942999321437316552565821260527311351704406345628227396487949465895937681433079514076519072550946674641338438619329094986145702076121860208205808487058918676037860341461476603729528483102769093873710826644591970951733272588561705992768967080642286450162991031664408795690023549972878359708982906399116291246127223246269441928057606158229340381323848633952915813624996760026465737042468713000989795571609347427954723264612192431247998966897542284612648153323237736417646055064580767344548667165740066614710569527860355089293266422178292377905559737936786346627577887123172398564932904298947129517447735411977673661596869216401518398280442162234617215823568937400340473769599245463804878397032757039762874166531281162021196449596740191628224786812452794924126035868172040033236212345128920388825032440941081262057428344004438838461390763204344968188723727152416741392551964471929605893742308785968856529422767087799991229514396896763693291384298121329378330156074545159750612141889007086860109199701173741111723604002685521264868383075753433969487835395141905657326149711492879330613400885542719237083949977132590094482104134280833934580788419145275833577443890258974057948946801098897894203239695258981372273320239104430196212438241753427319791839692079025724630438366778251617297409400779587195482391075845687506902689383377283594311665422606079359898704873881183000946442819379460698987760903608931847078064828852480449023026289029732621675369592892046317234579021619096251287875854066690540864738561423205756387905370385043890575509690891742763925794390505906502707585503322758666747324316624297002346410020113975034240177404291452076074084089047511222278524163272398654434565533951690859222504196141877979679407728921270723751036635459644004942489906589168508183850460115817275103402421027522519255874743150618404207430139082970092005558306933255705440045605211626852190550751153949214621157076598779942396014031141699581820937056333283751145805777545904765796151498562245610117481884721731246335897489702460512615660817209503522971663833711009603058539035075873983411911276154990363332694035237781716780528246838308512088621500212804257584138604454092078476614318445628096502701922108755392251078068950515144605729361392985629585568773808265893535414372778235123006780252131367102706491042448639595160496165327083336242416777901302788773562883630751420274933429481401912729087175365877154373195036499287851309582329920311332792740565802346206756258332290680885517198716364918113905715415994844407256970185288119629792858585853934133875829337786765986949405968483236332967854765315942145490336719418236022883598594752007517531121546172533572628624175219842431523996430655677946706966911234018467083278894707265156605820212577989149409612932106303766145993329241835590229625694663985219227230928175321881965924885275381856127287901554039215139592154648411479984490510370953341759201800824577169542958343961279411971414446095754663505695059450613049262651558667618735486142701591560112182053865948864146669752081671888846114269611054450888987823833301036850813331972334265350324813773730555188482626374798622933757205242265247869711117585664967474223446064017239132025378397939814199624059255964456863430416236283076036478226228638963095393124840436306357985575545812887617060864254561509478062182700754352515579332719699210398061638492300895057127969720628756232481305975951950002955299521000477362542461602711372402416780607666749893086617765850976914831498905214304227674015789038411203715257852170426686321694746634294916105444742991510540647727265489851101600491327446699525969257232583849489338926517235572620241955628294431499543091419218869033397852536359190280036205898682986920032048893283251067149153053910561702060828658356339932810229156703260042255729482897620636663487769159719095277724492493019739614871519030955550001592980890173547638111685993563031758402297131753656436588607623525436399704092703447566920257245994940883098787323708828039535735380034046707993746798682030052931314344472991461973695246673501266502899576884391417332469813753048509466351513658169666906872625640008157169297193737180401733807697941068539914648287841444419059688235983249177829490686598335650785887285853432352285327608400667802425238947957804091465459083391993535575423683104932180698695270871070004212914564784772465253386999182065431434904493694987081285896595445514652725912913269212272357953811112263331641763003228571471183605840976202757224113775636786090281531523586311103563097620367139637834079432497769648876570537589974679722478797842193295415544892074087434844711158423512687737458289842910511691598528333521423969292590235280646787861084148006232208001468686164255406836172163411153445396894255405734117975390034221638773983950163717518095180484676428079772423504472080991724873069046217313176488967696561068784435818659911949162772658361225670225088880562132891915057161932952331384304668588155659937196231272688844131447370869877302067056229734746678343053029250448839553904065448125389739671583867790844099497121106349507334032783401239976244333080691087712051053669139487421968458208351293301451684759956337040138704796085586859988847465691051016809051420419975393815553957924749048100917605122752123098538828697160528455260538307313520080004464597564477622469221729948572401550337538041007565495088491008727783477878333745496866314773307756779856666892192623823235022276051473175639074142935943052244839166908150874875568900109516113305461021128048648388950856343982225709905394078879292688188183391093310042654887835150007428169448567747098644665723050282552287247507629557531996700939907583006591341115496045321740011999173150532560714633047052176659448780861520219796090949937609106072181761167916259236284127638899912305251347455752692629605683036506063696109559370217998260393283421291474588560951174335232578595080006684857625429198384572003426871479350085753141826411042794861052224867367650504376937057372037141171918164931847669581397216572544049917799685398734026293543810203345189154112859538522461710836440402041674337446470077313936556443904720346571055183363536329519369327513273227285246632343012773932762859684128138038495991735182989715735367773633864773672424139274433847988319820106729851310659017625196180986638998120164790622027493490358334855422045428439446588753079413173818970063004127296319611445462374217516620807650467945264540488133452063678619819569709743148813429383862564144988000225660706132924188645753196153821762564156790572932441203160565393111667347120672045468976759295130208000047735845531270594226128078384726048128946678179347847993557693242001862236187630948556191239771667012020573640040686069747373586000383256105589668581073186429759377686657698380292574179412952271778263681060280993626900833085960324932472114163570685596282239559455809264268148817676395700196313784540072630165801645381525241361979742911536553184743459178631878694613032637740938424649651044089381097981567350923754877431514714527756875910926574044469057742758099913116195700705413716041915652229556544732543729817807269173010017027844625754156794249666502989406371993350725065450961944812094976208605710202760490263295704576801391485746487386964939666552479101741353063685758399092657894580255050626445641161646221865086383299824121912571450960767959626002792530725597650771948221529648428338990643660861557899439803521564992502103333617576103702007475597796284931350154044077799935429960255105690117386963166827965423040315414506071614057506166060844307571232726856839825889280790960344046961981116367265616957277687097392837073343613253982782315472075564891894267344930904220646520749801111481485274183479249054669244587597685616808649257294980172674585361731920196159638749195945553495615850652312488047351650600198513786651323190820336057436899984610165294788822527249896620676065777399992310582632388508858306696826297191403198545671109772095121676083910742878816888954813958970057685048146859805564682255082563140922993340832193841957301028124748698865447288268965365658261720672978451184864356529597504941717893660944722822612528570112682240804116909980558896425730869924854214882693098150564444934783495646746213466455297889465086885226411304723765881922598875772014646540968357347758133275286603851515086203334810474734330277682819900939796310306246705007264270652832010419187432443794129562561661850985645811007794831610714141064520924547797036036855985060284743822372002212322360608606144947326353110960051820906084027431724320056832918558105909560991325325551594898017371244282983073301212656594669634644766210279876320956348807638044431981657322904710667844603065878238859176794969471714400768502409170456820739754973589752642556393336030949001139458484270350394037515022547213109449560979065320711870888533939594660238053961311371574309487296594099178506298835469186503736319485530849226530473668767168310292549317847704520285011346407622595870237368231645614267887016791357635698617480107170695294758665866647679927132454459142432916763838236474970818135685324953534331239353631829309924961155693485528314489835003983828020079540756464570516864922434647023909574979094911418422640907424318703577191901278315805167839714467444479192329533433575017926794469547336795900386944872706956495203946558799620787914236941979509231222054698615249837099082727648074841225967132400918296763115516269933829991865914272860046927361010965757598438597868347429321163376191976183872909985554564101708681468574955395703968844622344019667795343104524296171591618231629316795668619580613211214687531586946854844075606193132701948579873394412982508472913688245804355415734880328052407360342763221659199974667351509422839833482090179122780275668268767909323509764018488874638146281217944483666218470400011206561258653604487810016973302022291220808051772582616068134819315494638443392829676541130284912672866545131418706279625736174311819971816089470815522796573356099500486247181320952438631130978256019942260844060004205636679170930332259568519585112377012783909077971056370761030294405725673888191272865570148934792381107584408321004891029288022458921068198784650005704166702660323269240765834992711419835975792824093612851662539357620592167976887521399170189859022029591359271205096916912944983670038022902030091046353997772607734352786270056997471403390382774664602863516760269643234477425036616067428533361368070774806320584977408517350399881041559177623689535634019339657118759213059229121709390322631809029665897767024050116114545257626033073792378794362811507210411551813665555355830817965049541920668988208855825716940970819848824648803627029388987706140026496499026067375125585117421884344919641236871538473373857871134362778665813652246682673379401330492053482055589407297711450785553284904923799584490030713172148203426111911434279222184696726882845402114442561742331726574593151537534160510011104156307137418325999774039730697792876383665140661417989540884254559702181272313156901897082415854004031442967284862227912661452783391903369247882638971958039835430471869450377706790896859651935203952180346513170817649473779361911162553673373236541576301944541579968857091773685346436485429456941201137897671888317559693930940567620988619313638831820056052525163384558000937597468347025298154431204832398664572582520711142349633891178887336417604156665000226455206405014729685472488342519466834953889380049997587520906536838217502702438225885800651079819830282017054959875973028122829782142143246109763918032557984504770259844877725479898636803761452995494386332113299650275635293874968590920766464081518301240550169454059470143697021127095565914567932716299813326427583641151417299131407846497581590134196285770598680229223841724058085031273209983379345692704271173436637392081760977066463685172467102851986634961705717512369612783208455970924041323258198620248590155608337489300799643338430059913863827971865577246481397605415266660918806020351224217034876537047225738958466894219429581935917902181532060650768503246185943365412818338159831849234812027452645214233807141954813682968801318488129198817737233336102651882607493635643398606031681708246395638250064836250996348172283802490687932438883164196996514052524589126729246807897381392336022522955914463185478613129150710706951435678300461992904157726644431031749037053601019043622112859737019334762284381164441177943619488569984219143809829092757000845450857403244324185760019771789311667687696258243851417400407684324255927055155999148220334539628232591777073515386639433169691349596401476678511943895151207661354782062382957808297224063268329084146668717198612538188632262557100527064799886961160991781685152141752248340025689887376935740339709618707010310976163733788675140012402247843865511824657174468462440777714412184857465531065891148258351131397358705032598901121908050155388714118224137932070073787327792387697568676421643438074295219985397606066888447456345626846170935252429759710151329306372761606515845628016808806040020935477800942683263520968813905690702696610204913817470464089143964892075006165947908628477860633814482124280654866004430189176064307497383168113734807923651924134560383880774756607139580139857952933891101201233208297413842410132931483384296964545226501545646129893050987170689738476629632094645774978618560611715601106752369604979717451908082096899879821419037529153417037025866775655185316042757557784222732853442301098499300828586017396777492439123928556800392807240635297626269822785669284111091048232594851171891754441469300545369050089961954555734099352793694953720225895616728292569709183994679477571267692516992555722391572993378595423581225789054926529233061724447952108887722512549493940343710513946874241539433264687394576194825281985603485765555919772052343183244947325649305731804998149565740273551500693814311511911728273147185009488371526945296986256048540975389953710188624988273257632032663267015871054359056380974232366581528483583859020086739082715874715441869477039506997382798087738999061776598728566960700816209947890645173608044744595795563865526719882006276224494500592493456072639902411686824679823065815749728146112099448407545020671993368529287066051194129755655757415858634568624750474009587922666556103289518646115107076296511340683133724862561472405791963412639376250578639870370112033481569782550185557309920703949806328051302289020321554615781376030760132189577548060175811836511521128496297341908759935050472712500135983701578080547496146229192568797399904227467745074319307733869686061729486188176331661168510233286698423851444913328660190756055576343842458075669263027938319006712212427403293080395214858323254583039570730641579762994910153451773593400399102946329121269800822186595912241181560727318115336483850397359635153535729982437827249817903492291342650661795094621699733310840106169160093491993571373955899724718332153342919656643720348238665226169103325933342440114483484696749335113195470042870698808004719577044755021243411350033393053539106527055120333549758084761592775442577772812749360272360867483463655794065088166599022585016455940678274695704160154353427466616333606939767447174713216016901962598893070868890962829325808736545190779901731739520375720800240130826978477412812181538851588797074857520439273182117847399435118750348103627264816038107017788851593301768977532080532440768540577608485790481252894103708780432483140497884520577083735796453823204412806885968217765188468923311965112919986152677110010161463521863894733762722200931095911098293639382034851915019389731857147343408206137784657017825784216864531501595684063357837649710627419837207334359591383035184552102121523611995708274162800259236852380171778547306775757255349089544632352396497162278218070190004581025258907686269512307008536158389705744265511853704762491524961427655774869319038560033976897300623149403616542743041139505830198484694244167402562063190207380433330734043768493436634863342685885781772933966005489493568590478592226539243352439858678122375101462990041197620029810807331018256497872436897828414792089055082777038081852268395280658805110175800605340611540116120487717208967273433005050117857358087050874922092279058969171016562982500071204466626017170879803511369433390549239001793810960703344500760863336997791765922811662206385760086336621531736307752559407015700391106756627728173912188131627823605250181509459347151578814393743766967987846313531986467541409418005537229624156433167146257097395889803270172096861438825456552650857174283189216742197842682041593214793668342443228847085491955477340402433431765145934277678859102430459275851617440009555671447317118970428579841143436565857049244038021970026898520710501119625377517921665935218198379938311606877760911753576413989341495486422160373720056771859895839282681537975612808055662123404142752047467375337984194156863474708247511762701408539468877068791107257217781060503609353178367530765729885068473972639318912532132502647080879648749856715761267390886869452412753111751244709173715968722416558912108997004861806464916534597358713910120495882781432788511579140652598481448218255823767533068722908347610937307724642691147267219508288154884142151760647481199629713426505536938105236245720171168403039085958233139475057768937367057515429197286109795496307125884497143577353159515691363203106414219214115879830648632094125740760062519625593837485881832246305462771162231920775667321666623572665043577226745933978063124630810415111056938555690987933225214874498176587020413605187659528819419865610442085482468646359648137108270392128304210772873054544631962527547946311905099186221591495536493491025122033719985283557259417522219276126048116970380470878762722681468983253254140536018231193216061107604754763643975493839708342125453842213144352356175540298813247371723299007366915687472369745224744048596116340527377246668769651136430219711584506261826970121350765495472659851786942375723206124541523206965559718932958099265797225078330247096736735847220512873625635251018721124610683549971345152895627573854669338472414915197543614887881743526345991493166805612983816259584241952112009890142704612007664283895596739729109775642893211203300244937480387705202049254705263411172723436221927017398548687384588582648100352372083337354428378453240690868681239903406019891056567625245195514584912338119690558036800238059891444140151654070874634180157576970813172300613727003252689311540968055004127263092416807781645699960004815252235813226555691202160853311276609970338741041007562707012037888475769338535623056753715246649146745605281994969239718632719290888206510555473034758659395507537466538118753274710312556518864262103083776841496339739036524692785649252365695002222069062359648409925898812929235170738737417260312240056495282399295681155962515975835187415241576153292795228845523138651834165750801296077435062249190057210244948150958023031470687806864578571763484430052766295996331238476647635197318195759240642464979227563578654248161072218518728226017133783700947878608981261091671085349696796796810478754065318888129930396130736211195983106686315588871580703409779089187794049344552712708297842272585695769258405116235036784374554351814938581201646602585341985534870744968005967095474886195002591156466894407738489963065641943634415465451694255694486305684371012177030891147965272227739151828074959972845244546929042847426937069460913644845363400774728484567697547722333222454956481649956748163793582984708377872167111715796669684463368427932086259967433489508094937450673911711218161824052266204968547434396367331967391240161184445863701772483609137938389453860117256694250187972212538236061453134578515390161476817743456458338898482382063920241635380264909552893963109882341641831008233681539804503808359119723231309091833397707824179047872346940544147523779165276524349853834143976354637375027909356558861788693266663500249353048185923280604372105582596731339047036468629311127953994704968753858210430615441830797097715208863215338774117642382360260998615358853832007080335830710249210181860392896168009257866709176123044746399912762899246753512515466374369937903114239985066072667716087907761392291687453887422898710677666566003061756541789837415270968004860061571873574932131714766059584120857977124079019699527148737298791978350277917231110523302061861735874693530007414189077007814296303183601268481306410833274428967675404563556796503047797566558048386969508566875946005083447620194838542785397323404796639638630687564748828196161827033642565867873927701989935935462539184540391396219184190449249175024145369948987764677717992134382335502108284474179115794590196998437050485673798863758364708845268612988931547483800241530442865319746487146059508934015091568618280383898132748796530399960473326322257508663819903774067999278825395806746934097270481962101840546555160488663461024145889159838010990310632455286845880624995215528853934141202585877098157028584794396228154140355868428105928872081082845111687276531591613731178987074070915237518157852583914307291475153553778380956362280796112685184004019427819888014273972855493360764074940331483546966006142531590525260585587080064996129211615696092854985074449160947017912935998421112286862230171017086459776043184610877351421875558867166432736615459338498042111031500396731045693831686695279324102758102604590412423940310770561291801689883587967015198108847777580380531002351131955610717382915311423630017643149796625859051162331020989863460727170297157312644175377788058234047897849887215137977708045529055185742417739788904026783217445302362865257719623386149815118141920152311083569544171434709333749350658901718130909862564023983874749725712891579177159830812782003738780462549843509132211349989619328256987029354998929059221117095323075516190803099631195985552749943920236883739616849761563236488017135084855798264367500394027974208149052821137224094194427210401672433917757284595795549943538798090512086808632851102517871195575711337629796281015285995605936254438350209693644236639278929210698402973040601009859612826140153033205378728277601660130019156748521928405875248456777830321655241070360262424668140166857136089834824780543562996820790882112637419104369570624220987181756479460047531049646181830147164803513972261299376958357596203321578243467047363259177547656993915401811233433629925610970406803107443240565328700271984146715118431181717384151810316660116915756434186743965197715916277221843538497085938634760200848157772473048043791575594236361748409492762628814221910737657552716461116390850673024577356873849724435623321310593074300131389028841596013259239714379763645286645236865969216842365355991313350056905806211797352474150742109837157482554859059528247864198504444160134106429519222484301432123960190359460573402170744672171968960546443669748675706766411618568902895497893875598588541496309344923475040371233049930819149570642061965049771923799423624257101404137493531499500587012586606130819024992798601308827196006149197760393100735311717941718148063106017642583645468039122361201989454353397994191016347452846809170523210134086426550564638731021958251452614826157105519343514336901825657870123516989661902813939113573651982612909149841613672821845056650660768639517258350944084654283460670604471590677759458993849075268194619745645405143163854402199474087660884730868903100898012149159480363401942422914518092177037092749325559466217629352799533968816410790707581606674021767518710398431708236189872493514033486775500615499289068976284584108874429328996183703071196104720229391426897713997307072751438002694716788532486893451287566956673817718951254513503577543571945892069411437690647320730890541052943196001531199655008046601954354437981726226221627039702288026459925199720583011623068981233057757614202658323853123376173009052448981995714998718711579300123650295007605587580815515404487237501350958230088271036747434669534576462262299952664876697472964901609488764447588365345266415640877743535491995546514173242866268506557100638678306227022582746405840603979329067854040953827619686793154896834270866734404486036353347852895423793885913005465490985997366173469071801092361288443793905548257804166044865107929636975665659283049050429737518310171684048008071652912833544921779031169705383128751082168784667136850872918862940760083273188906723871763654468902693989832805176744144108950259737603209129371850956734171624408668524031925343957239119751955885443768557208387714412486692441034673139234455012808793470457010145444507604291679230928742072675475921471424666892216389700397099220795300242344558887921788542702631110698649173085725083894299796639953020039072891823658755322506932907868400542844934793588746574905325425238600354312903273503275896403529311290169446554624503802533050016299658289571866059580924345133897016325909398043578558554060017069934401259543275032036077655745316994887032980634200613397266970479922227126384109229869147979972892065762232365880247767044398402084202467492022429255369258526678153756458885266524129989198763140033953525775547140618464426432878835768448110855849804674449992935542893628557126278486773676837932004631562594369632225473176359118033070545831566623608882611300003627533338664137410593279885567434458952433002050185907366058849503863671384371250721112302903996629254200985563936370066450628090580883404575281352169019398864355736113440040986661134642036094716967990172683618467918788678477443743546744815522809905753270736791336161981444645674884112715380456477364995507746443743892655019299227203620020892922947931232006931277705482532722382279086745531245647930420649773928559247421776001523207941801580347826654985592550817560196430466805843780496668530230368631854588516274231085041705479870680097055389829264716688483413863086581288092599392428998062830946444695214297408520861520208282368080458102317585425499652883181245137420671615298095769023535431617325583357705336135194123949711659757302662549456504726677175239567990304401440816615085636480787051695088697086064067871696908336139076915247699063324752721321363424563824112042936808581085834488742017864003051131428185994150959109964904692113083611622843334396177587122675592577609205964060503561674500156428950538137281601828530142854672002685260448153073721039713065242341057329689035884323368627814766985231768721493356248957129553260210704915046727368963669575694897409365644893832221453933283008526325937286668853428077019734698436114459219118849858869661656845597122494690391173953556170895267770444490391204670351426032802134093263617069443481554221946713878529611549331109681278109044089791488515238055329774213031835981044497602860665452192994456885281689298770245457468475766005609207776667777603918616336128307866184792752951021373856051941921637451039066366942661770870341625201532977087738359406294479898374231996600731732734043925818616540706004260070724124024835022373102527811853011445761085391895977682982013046768938280355398661666484862422787392429264824405780282811648368753796715343909608803913808806837674509070692414372617364057606767938754331916478131271092204630158119122184158727848844028684847370679470701526119147482085949021038356071815149321248656548675153506499114854817739858584251885629451086726422169988681066582276612850099518711031137838767615212557920336047988002336035137194091559943768401995969443800966911470640337754172258804154003511499539350291413753768377768901741368991986017656864057904918115074077959340332797778407133776699001002890323394831163783217761000970383340688766548890094633723560116609079782017272182942426993244563358846459094634504370383092908822550863839278499866583190197890533866696582399075904817412751661660878631476905384582750675947513757324772381188045785888415986397863781883452841859223563911595968348175270699202423994386639042352486045521362557148948819225855706500849701217608466983268019253693485131168398866446159560456174376320117200624103869310528899367567488418983812345053839535144954287831299994821315960753137774922824603541969380381573917897263978261774114706162189044837386280728190549255530200823106648811938935230783538815910333295024760566804422534369323602872824279708868562006612806630104935118903340551406967578585906630612550668765689482924132611287219027482495359008841139898104019540744489251017528885393435072304229305209447341301455273009901564735490920724863777578640187690495550939313928299472852536795752773888216212155704612941255344493471915423794236447310775869390577442173395923856801705584047209296148693764596180122719361292468272610909390099160040154656758859372376070187130569064641473918318328414979243226405943977623863407859834665936561314176162660249289546720650949810932626318637407090838893151325934673715326096857698134175606283294517247691631699833325234897415536782897695363269637023226421104539205000782017139791971356883233301516500353508284258668606898923651518575394700880565615846701911362713532885449435302197278795706516454396597540869075554924549188162352199050404274930494687714674087902895372820575550756350559437196345074325971802085720829859690401922345552594066544701454478356721542350289142352582329154918197948441614877690659570822718689871835679952732926578539806371131939277102590320747783981441614407288756403657848729683687589208942884573060292936277997851919917251617635292907053008655306973172634155779040872263494561190682729787606634197859285997034613867584916939941020494841830850401161500098497990132059431211175175680070018173623733305243352886937472922326092086224584241362367111309392377447604766293455117119344894772784188542592855070963272641289101069835392897497354617044249148976250398756890849592938414202048467256234363695817450813371750488779104678650313103744020936051790915682941756848385842640122179736821790886557554567147380532270263337619453716293643598086486349962255930003140160684426200551783606264137866307370062223427509785507735732850618960239047760463596268670933972655051543027328276036301570821439075366623883049431672209661111662086050436043978191384424582482197642354664487884936724766569226257641029845500363335070130764324569491650771931400091817051223750104890534992192992963875107099522028688857208493641690528665346649375606114161246742492243712326950709777606337822189088718849863365865165071422662797100238632687660468624933982945267734531629308287768126574970505740682389714884513037750944838419294698049249652915496677145468779319343450781173069042320603593532509118687777218965246574235481298796454814578299326249230497761868999583670442847226003484536415133620893083150204487231271866197010883201451520714326388006678283761567643123539570270882360347138126691236453735989103671641294982324675773098810951356700559415291282255335552256369627803575212675731716202942260551135629433659211175320437482408768792438200381268683003435376215608934624617691202056480788473928290057870997442975276837984025956926394187372093904970379424413165024305591085459658007452990720166608518581588887710183832798423667885691984020279663708068322881349035099991386713610826777037120591813923349532419403134596596845093950299819702798088553016545520884188886867682170555761076117677637988023435212261789526147642092037921955708239995868032250774574790273710001507255823158747450576231532489701611422450361774003714504716814965454710958697433641140381142641047463197453080761387075271007107373812810981467250901866075472814853865184420690271093546657035422447559582131476337174168072513702082978733795621833275263450416482744780953923845515101685987398485069963114450489113880739586412784164864165304833671593456601582018569590322761511256984036945895257031596071227783312603640282928062543378367321499920459983933459111000635882956011453096179345662827619807299457354248882065057100466939694110247175216868637011065118018128701751821765667210774736871529598819931455718125846705333990383489192177723030075586466403803302153642598186042427714092205189560494206412059059292870880766696722171394229825402915876439472288683619471608759860282995981862269118602502425592432011886659986924146481424248043315478858073536616505988564296997091680005435345924213788566428096996975133804423492465499060980483519951157749292961668408793571848032294737486268018819218073339112345767860926224417006245121155461329361117006895721276002140161149293109521324617038066396239694842223743520483701504588482215663945986588904936146447149346824542432737786507336461534252791300999709720840182464724815494435703153222053561265670419686877644535270532985337665164459319162392599166739316568213536051349155612931068990105795520843816540953508187365985505255426587506347035185366475184003716566274174684805297618469875077185670103157641331674245019457239600219883941848425924364905453130426074127210025631251444178638079949844931074091175306930251032736649893876565586438503126839625621769733539479544510643706819121684272056692570905225608218452525430675617749589243401044038847514526618756542578022963738334139586722959599647815584720892041683780589350045631574558638020676178538895713872620518467813383949405917587814412992220051396683123740887627440732404684696481340623081648181761403290794089427359593200842994735690469904642508243717863172915242151387804658433412701626863232035463559875975519411026234482608436545331241573880225993397605617516547699804816760474605889794895248876151463257709318084327135780537748490986770645220025250545643906327670594726989252225848393571152799150764961990759986883588942498830369284131653600069839526542734216918712175124042928198889036738594867905570625666655329414038491911193934161053362079566343252530896272119160937667814717486466190412429320018903189144302519651980491528449131952111377732154237342667115802128087715685212534935322370891645219965306627633896672926309059060502404245668368301351290861127562771999754235978169509605570503206298740557954952210799026137273098664930128163867664957946062700670891352858633990871398229330209463421103532184965806338622407176439265285438004367806697986396411499597211006928939470414315957025617255889539041569856388213285089527670986106262559882617264758532163241332043810454860862510695959633705688011970093885442641291881854426429623818946176918215817571361937731206484423024062514843796366109641159253492720068927506251471268247440964198559169298406759266721389845370040406730929561703125113724061118193257094868260590817053053079516499621385385524028666792169850715257175405155542519340838478293420994966378985475329060496718601515171591715012405741266664117195177300663874828132669835997170327091337701400998915877465775848917281825186945980442220787691471460193718488487611267138048875596208060413129473364914054050099710595372294458494511344619064303600141359794881035330285964291383161369301594695365262498054261375444667065123047770552180558792269903329837895712146628236002314758230779882514879419215283827668588093987834847926787492996818229126474514874183996120806273930069945649726759228936066986772980031322145781481740278634927701173492060586173683312299187389400830298890208402171818010554139588994352335744049137016188804368946122355939662168986907971388895691244926413135274207787864256342620115485520002905977618608305839117458667883237318655204986098422640478253716357946948807617723770254268067780074336810129852583791715718529595273504498103387276952800847889060684161587771252725548851628073218040140121744894041790042357195114427341810127411560368597533855047181820915045180966974977802400083503696869745281581664453490053746627070888488026166503180792520351978786391488816551897077815594088328200620047228998121954547894708971071730316861453065579867994291699535985861726847950547023794301258002634836050295178676090233741062690084071132976520405403134662220136285310935449675212866302919189935521901770851115745830145082009712271823158953415557961723533654297553453314416436887539670167515812781456238360858512818723848896036418093802744163524336258307547660848601073115993340080470381127779203178299940246479571861876787203135588842116434707059410335016791916411722393013156647803087383035574690012838351195853111121596903016624389570437157271716791980789710143537075923681585625004708763672745892415570166730411988023669833440366063766782890220579960714242235393389827416567166375803544367306403351854837584803572438867791928111552882579236162557843962977041388305195395198075661841036725166241315660777411918528838347012047979815321377907581389219505583564918074682392617334179555249365647772169474504106788673255941546366137242839188091624751586300313497598359548065353613746287202772405635676912413448595806024590740494728156306635966451570712153394748974271161199888891789654475503396208329748425717265177074315394388664263079880169676664623401140923259637936360302072812775617861571599594165854461135636080479440496111775565110511122828049023084413146585437289644148146646226589799549653312042403671969212557861105022572760713953673352536346115012077411524746574902510749810325526725844005886431677976477904685650359499913938884208320430252700251042407331003350253454976863182656826292580419244040503570485899294108071456146025325347396104185521408565529469340588747649758573922235543285540422932237942095478325193757655051678179955397904959546656251598970162532791256729176211924018501051547655935529496442844054752693377733384848047547781971875961686153304159238922797101756348587826655954013953726451061315768945503982397180938024151878664196065342393113556273844727036992589105395688072159173371167839283492538960912433931286361246962141234735644824622995928996121883397682760780348309874456138597653574128077146084754123617875126607058763191409590078922318690270876116191249096260962529160736504623733875390151109929117380062565335143430317222627522036200486507274727176931601442449101991414814340150189269582376986095768307531346127210692342205992391341883707226711814501890133535592907848229186933565844442371223901553637313587958781962350536253296518702446341634526137704543569901297688929424798926015259428665831876855542533466464565706284883690440291237497645629036675018972865809185431006702316457507960483498941459892604980919669788043255409349050541311760721028091149921180726559508207138137441949526151301453061439989145788570843794034772982039270311193766771667147888684680929931868505419004108472918692847993680538086596697246095874135055569796644443494955134502728229955631435808310126679414378607103145909311143945116893775666236383651001605544304029503375898813650871701950350585288214079426311383509829833591321994845048691626029926267791239867312883544697343509800418002274661941683844628283567035143994359539339963046582092831338047395449573689095362442127313258022686984250279569670067721183965848521110444346677151169751535822944302063979184084683321318856251207999916675764507020459414958212228647442887197999712685777445631009460743320611954295406651988157717536231750208444938641550423113705263488191690982084157389721375172632240975455499346561595855371594405024518017169972071077693387237343931229530098847872608415695915044215740426178100181451458795999307730191232529287810932240473619916154450844176330001928326439583581058246726830130139868657257266399996000991694891741189162022226112400765761931141073255463377362291255077327740985263839978564173783774149327391204195365083914543680310595484489309510515671539953780932938649003299357077659286274651390665743813926568691308508448087505748553826569771227018760533849404312919363269557598039921099403292024955687677738265662818803932283507785821129167949040951879720219760201206561267303345793443470026112729978025286245216391742103473540227603374562389966440975430819370278948883313005759554784015616651809949438631489422865828543584167740061219634470045285760598254755833445694351114735167025726188732952176735051190094005651610406781311051363002202253670606114587788945048440859881476904710152405731252886027566060318704474422553084389373801828982675831056752254368464203573955689160407113543998077111491992412188713558724841259288344143382969678777390877038973190994688117796863013045321892622810919386561181183961909811040528425673093297287862457831214603552757840260124434584587473419161362683618293896261538182175043388158106688654556891747874659617969226217611748284526052470745111926542387410018053160005833029229964290607680832886608554773233705503238197570325609550779077741664936157695915657108148007808838545871485957693356401712569957576563884914835686439471866743693094832231091037096934487212352630619400908014308716949702371676573496881869760494049336331517781396404502858154172895423573673810838733072805026342866163517813965923576359567966367821718073604193353745823021182212793220973385336901057146205066718473567264726223546801900182715834812020853459484751630484291039016954791344465990200462282844655689730646297136422536280498536557885456135470390071449503006197294820313573829665859168993244093807350852645922385073793262542667828789070979402376559194207508845069371161860106577791822294757660079881334320158736010370823508862878062303710901759219724597257227539446462087871337177707056693012352213133051297047050143192516286868876789936880713747986797113075512215682899490071139625631918437762408106805719302949352616205111121630660073707873161225481596290864808863552092114639804686702163006362044147341294549793658084037085350486591089654838360833253110547150191531098248600936741355703225368510171128523403111590948707894446579387389467431391335945180232659334972084209423938964539505205961866681486389318482794628863219155687626517086354475542347899941506660345156838430333920165935454013677052265119857570713596881115309190636455413241709972011625034258149309836251520283550069843000960826012831048927420955724591424097801943628350390255286565880000216145745632404769145584861815225082520445053819867556498888018158424768662575169451619630520506674869166213945752654222372682261232002645338042704403483169464661516915264545461692755075325666135502490881733867050540520268355742337748022438748573758954968951189881825153675436410535871794870711798939329192713350552772346290102395754119705433567853403860676314338309957355755475390505110667530251000141059989260973091589686228176928398252334589482477055881924909975086468610060377533325459091325308688798236931582006765243862121463753453628762175095097630966624137929022123957200234307511836205470785898856325834400099265245214182847806878577224081143653967709694181182030825971804380369222047383980302402412184819410874504986132207162399331200907510229515378198578870062539885578428255416114787693705057111395364842096589424496251904513912205416117404203349282545516957042780370999486368724775235132926003110385837252047040660953764197391372582061800120037455443633757117012742272912052268223173013971990021107860855229141307319290850371015129089638447179719584602318960330452590603070574302530793724060660624537703053869388153411858963512316171917519347152814372981961973376771879935007444558883974819232753575635207952153887726736994669395468313923888040488675824450930925895461827836307533334388845863965795762965327617736140910054330923235146466826861142305131905028753472425939720683376088809020043681078143939956004579170722442549618844357708405791752676283437358991926071836544831329126348452683641684033876411134674772546283025927246813536427461907689645526038797824571050717738680412805808485001002050486711959175446657875379254658967589310499756188082013723345048266368868963407004606370116240531559268088474862138241782747573901016018993673754285753716900542481943510825199137749781544875878253438899267514240544459502097641529503708739925209313312236657519923268602610278692850319759038451211114825919043830565062063766099338998365429191488633782240738331965139529469938292601075663438204009035376299196125138456971261736301216543883791512364824943069239357550571673248532881075252433783682002797749088321985481925715883184686081009198407878621147072381779553087328256027617301301725933495257402040286569392143905007993435320344360034672154917573166186631292859656852278882383933944392120164176594777667160223306807778021540315677591341812964612042065421742844166421472436898251505174077647957610978802287252468900269914065404603789567223914020084003592886326156052017223783635179996674180528953930618568520455044122000448338143689372139124728363080737368074517968658898358015304629491055565682983524048763298556437335008743453490463588412670430338603189439431340986058211984961921212010858934370493880652122425378419946043802672905745539708135697243937788559176522134205533963166419406517278716121062825880440329243073541576817269439206138228948532626997912287614333162276776174269322176823740578963381132850493971199650405538303115778453412407847839450752945003735926502180391310060060094847392631332613015000206230581349870059463528816003843331633137960154836047114050579332034308187565105524712974185957013471466486264852670955850102154684450531523566148876163787210095339863825356822208462519533779542540381200529126142714970423287473711104263799985551832442357613179284824274924993665345114448173273203371521418070266522024924076120145658868536660057075691781608733412769720184297401145067019420374105827779332710998084873616597569167993855797703821294750668174977384095298126689884795646219600884969062618382570461894503225201942347962944428906948108755069372038752496961414320200097653128502164096258336546017267696623919777171958189626691881648229732471778721035091047518154727685848734612952834425730977819017442183154569516909835958419109098268825551428213490470671592176843090159207524334448978527509406993218599156500615176644397096627695608194269004510821940953864401764122707646126662312726762981469012980921367230052133711568589019004676954463231707914644802597583620872496633704858407902272858795022223395376181875999851427350738338345766751772186125129656347949823495920656802874949210607233392663197354774548054954038918752720093717833330112718672978637389927129257210652937265645816882143630504345242194795395045404177178553935134609613553124467077074398889784709398852503432725653861621105469553055647801485503879938988980615879397892595844866194565828396816305022771284597529431941329776751249239921850205158987180268957437142854414490682029413104545019380043639477013537610858366055598021468311434418929129618846892917375527802705704905975679465208088944373846977460535365938099395329733399214412692386726985912434064909125558154332728369313850496319742792422147044666478954486782261079438657942972567896690467128604637894836034214859401881305196740226899986473062587890921101341760778179570759908788626772407915716937289530067847412061607031590685643180838340480681394198580276006298462415167331678262272459353073313095067807282442238385315814300822794794090915302022777987870359590817267349071567182048323398516990538009364921724710663686068522121885795694260501390728663682191223693182163923621991976766627899600981645040257986174559712078097566838762283219696507167455668240294839663762222397086711999330837848891856850402762014640603413773998517805418434213458986416802582563042284096192609996634619313414259930214095579327001154006710044570982784354124001164386496049711309395456714557087490382451916814203770661998858349199040437380075746322570754198004889503760352568741173121119509890640222269205355928442328138700739181856667644788095208787338129718328473464166481907165635490011895471195818739424078765897427384251800246263430499423251622281645400797005366230412722733989634405367602623338028389663433943661190858247491083686562876870618802929096952981626721647584034937526450372294426290806481777769259174260182721927021049143646293002421572861799965799338907697631966268105686712550891430196711520373611140136377160317758061695147744382066136877110722455672328683299967625703471046971771540437873306821634895787593479458483743240059011341493046538497541302297825954371287954038840002278598974651758243986749474199497625393586305812164929804489329417466691347020877687591612307238411051098957640580309706488253451187541788682592450605659396459661250103655830701706455606439742868717958543437958425448751942071719579625044900515372954053805771463876980885135944479077764817125008467870475433858570586863814327515447440534517597148303786443320863155138399738402633239049647421126239363592001135084580748708306753908293392237013279703873970126190687901180003125633702927278884655979590719788113803743935618736336008507630060298336250864249526120345551129405446161623139052441866765530535766874644628305690287163544759798147251650831387599891052577128093129981280641646454801585342894349087937738789984255683850042051511483033484377562161823495754973866205873294420022809722754052423906943522843574307665627184545638595678358819636863963924947487845122735188127732614787933884922519345479157787467728205168027167641819129998897747560115888284403657846979198064520071710295152986305738594728444781520981488466209458872845524557474591173237010331144309934402543809000833024687503684787964613560221985272908907791462458002325724699696587832493142269084869572071425664359556297890556844279113228539265378621007950976449703836252269710531616866792030715081259261515758141670190089987774942187478541545664645536943765604640043176336390526354835348350730214972010754965981191444027097323185913264406367351767500308974160004761845072052966214968404594340856555265487468765439741522302174084051020235604628487802106035723859992727020612377392452604415651610445019585703706140080157183595258872135962984112412959736080868370302035624820164333330367731061985102398997448193904124687407452887875011963585788314393762695827057858363605238125882910365900085222563701209770601768112471819910750414881113662592414247024872183819049571195866340428175807459932785512332113036615414181512523243432959694822072750953051646151744937049391457736646538810221993968428339494849638078730402972278387919047759113285736696721000472714852038538531898233177019420306679593467818155972116848676110822809786320919542278648103561981668575941103013797031790321522133316219516095316004805594231011886633907211392463363399869705769041769875243556071674916597512431247371424757201034521039362031486705394089281456640194255497437369633016098485239988530499061697907896913784520160290138081850425361499328427889024188687682407755169816570527141169388989765237372648775713094103659092202129863109758960826015154929307788306001003171582038732939354216500066093338523833509460068367754277302112934766337861490539894920913393525404720707929132532337529535952879300009928937410159834455821552588073561819358165922359856149312792299997502476098072875755573491882675009800723461144952125687332904422366326858425159349327845141587998802694877385172969387599908204246069608433673473010870068445517913211507856098866868527053775976996060781835570379882246103371998628777598323799836181644302873458917733458892501018477621836689903904753758185851711589079275554333030409436040837236023815773191043104030404000164502684414012292419512397750797560862557406208023133276675036639071017054328210665496345276356887312046971358935243201539961772047938384585692279844784032472757949527913543615408475921453639571298861051115765882344141704663098229292530740126371763506288558811932205306828013411740146018058427445502171290846808875348583038914785467318506354271588746657077122642596399996381469705188623999742371019057031149845140497131568282906808130748609843377369587357828910780399569793735368195668921383409307324924255938186137237767082638055471589470368332053584709941761094635032859883197630225312099352343161557837236160860036517509882167469515483092427818639432631646185430013140905982488663615825320587994401312704573867603945048448946437610031697068613865282683910283312399078515066507975819369978135634427584370889539898636853210450482095526240446351440139740464910591477393305320228062878527429386838574345045144462897819736728385526412568032574855813800766123968589188962429205037250003305267791811852995520822882361352105885721733335160990596095596777070006939572168909143001804693054453992162748417924679112154183454449984146577444675817525609484405928697093233497725586995266973887212838670767964896402938584853987733847112977588812596802719550073481139401357969740296542947198422026296888932218751249627703709075292330186734561459492353300103513547464266384626131088183852741339838429836091060350195346301819354575912324711056209169898296413079711777719105828121145002219065349730516374684130979259789408202982404910959959460166710738424708969763082226076716815566461261832125017413954249641259454748092719959690390390921778433035375478975745841436984004612851249506082419317682658699213138735060441279846179329050526150004400823996760018319389453398840327609886051717169446192622400604519871309896957038227366653881171707911748671050533592916704461561712656562605199675911756272671683090211641000249885715044508308698633444637525289011318840753285517361449114171103055694052980109845546879858591204840887823015828230417158052412493194460069199258667796423944762589452094945127358156472860620138959833634827317982351784775821035879158788278817224497298395929743050924672200358037913274396311605621361657553543143326490946119932368329782884355038182118187693053677270691504137728735158156618111335729091184989136433612789211031253621087536710835405133210159216723375715819861462024805491176266981298005960290759066923351490101781772791148962210307873605159859083277275357669442160835809629559137101352921488438915734687138945157840960415275807405929653343365530566418259785805891526157408412193037616269567385470688026230313163293912790343266810922006935961611222301758737556072577767810832496408408458017658826525180207576476341646638333789760390521537661904188684615692720914460881475971994560297775517108114828040825356518212273460914806201656531520763009249033741039660038270980002231355634563363134423250404236618488512230549978541402903324071900351300985773196688259896959959793410038286007053879286598394667039219971935621806315119268191266788543373463077407955421173585326455471194142722070944372085528415402595714231598189008410581911197830233492146960749105188547938622491120583484661079658323840585252116573894275137516823501010812760163969427716585838117273775727894781919265801575296355769189845843339191660555789486274293043626167662431077959639508692002802752543298148145231586527546426052315111455204924851336569088627953704208860212386649159466733969769964874815355473303795365139938241559577936794044652260990106858147697021234179689291533409326119355326082196975682249959866790027487479679820098099321199054587751626193988400489012742064041087286373939048115917724826135813445502965927607267487319222053592402767961714051368222165698403740556507414838982745435864384373546246977085957086693643430692744398285909827939409976559738596053736964297013265529740223940802378300270559335975417975638435788085257352450595374723291663419471925852267721440252355436396047370664567347164824951819492211352570241061703635474712019114578094998923512424009811357598823470682600611407489805920977604405096205201904673382176101390748643146747974631564447256588474427707626112584311674037542487225416132047039223985136132619950926522073134044745632887058620476727077723099989927750754672298420111617932704061775776878856556980190976721865344081539473242550268740091164181966724724886965513307785022101951495412064243102241337878475934849913259660380194781284575696871025415231691998024882545978417059165329835841600349005086652622242825291664941074097169163058730152469140728423245285996449909970607076938874352568418209420710011721565599916585125629949737798768850751201139027090585152937321052407245889547997992294471689369066331695755553216897669678063196995255936379748024621072094927436895253370511466872361637521500166586315908656933490034636125756756211231527170457802455586971242131641018152109472803551685783693254686999875854287300677285426394398406297601483592883949163670894143408561159494382577218001488541015021850406971328534808464520857667657973227375785346740743482534950151967214387346922573936593894817620502715643142262957854294329750515875750747202879341127024992712909769871197047336295743748374060161105780553732837967364657903432920921843789489057927602178958220489131151917226275465976499784738510705593438374733182853808508440013633362286214989310881837848510321341156792054625876946375483017070356013533491742452408813774376295178250263874826334342930625746351213818613779121877239958934447166138929603981881548151283242829752269614045199520008784885861861740177084982229493400352943403145464367642971995778755062038721231117469515686917335240244335234264700769191248512508499850124453462213067717360598858641825001514114356862148760054839305983164587030743984527651146593868109440418142334770862213111811413293176231359107503860660564159080298436680512880006793797304985141117308648934812668017052013809782726502136969133960035886298761734395076963354936502427381331994982569179113792239426680350055885533150357857650480989709691078705317870593851750441859519533866081435389287714813027401535816405941575678401659391336299587858548557516134923769204669238853433684433740197287105789257635971398777462986532980672621224819377503989855270780903005152954748778670137848951394090786897514383840975255623520333197856820592678629232011360722459216258723499963422386795389965023342071858844146775036430279835729783263805651481965403970051597002494309168567606703613270893107182481216371156248626574659999311373793413780728941948854870178024486138956324043585136697842816967553061514855074418757683848917151807117716197079450783890479824674465268303440483140334994256299986229694762333857787942521882938424782479473706409894708033420399242002182132356469152304154925222324823731604368103008554262407627157323460181218230839880188364695512591932756275543106050241204143840824575493332469492206219149155144337578737759849297700964305654057449882522209034739632401905474934356610288596456119545841959606804483007397357973357583008968343813900741270945428948555766701297457780092568264808722755698591368778642586271804899862730961632026231434549943999746938645467998993944556091203174956299522932295151200402415824252904053022518641490324088150120454399224722930677743986809947650294586460660999728923454849560309299936310314179995792961777934986038996174354352067414518626796368565416428204571144657465042577660918251716906098837133702016709020283834449673624570228375724840333479154142358386450791111512545940792015452444560032499563575915194793886430024508327551898129120589673215738115064705867591392937719664021941715236440288382642993230547810954772265425326488741677709289721928672364891642038412430619436274399939631415767769339008879885947850464805946178861763544839007525668318455438692966292967435722734256284772305156228924951999163989515062053620449636227962274060084537581998962777683758700201918021991200888375067909513759525971056470340617834410163870436732066358117865766044580389521024452777517723842906733130108927521067784940239384765298310737214046147772970557444482916018987325161102463372508299854002056844631898173475557020526554288343609121530465254592687169974222631490376327420987061585548962803000895853175794961487701374283951557666214234318301088885324881269446639105073464293866914123584850223435134582244301027530776452752370482011218659889659362627964483409064294140567294722892235814161605194847005550422630180109966573568210081582692133235129423822776886287693844599686825601614142807116170004175338129691612677424011811175379575113037511908967294890075414977129809877506901745983103881175806589220245447123571919216013712076820605527517594714773232131549855123686300829727469392275317795448597369992883045479742174312966050425173264570902335182994418576891858305958553312300306052806187104187119378211221799418272908689743172521370493377160691083444757616503067804394587502477512680490370187639402501281221241562609944578411085662552997514729969634044906539662160928134904259088113690571093823881235333986121823258249108246456347799205633399654553518969114345219391083999051672608945723318232154305461468332932722541313444782410550206199256986709066556504623997330743987430749534281796076202398416644863865882522991586475772576637962424332334432846777916036432609442934312352887624855940071289524233056572033013984822898342027881491203203266314704445064676079381729811326527094032279516322150038024009210047042022824686692551109467861170664142348330066160375093223056340840736324237414363650364700354447093977801886170055132558280034329105007411452768224512075368560092307901001389891149177298467692878626984601506217899236242504516323680071325510328201184547222927383323905805292479641039166023862378091597599147271502634081882603303584294466421103055888938201039469282029231565376289112042449762649132028786488384130344833354574823735714093570713283270523052468275897315681742685729709014892136339722066563636485450517203979110598316665764382634102073482973967875057358595407784566913451454557853172053742204643469584245865072423171774581074681953010846675790245121466670347165409411284746617199462800853434434594765293056806291658019415839891589901134646639332822453309760219752400893499350891517027019476779166613657342017550942606983685348804343066608331712147561397244305875640619907416246202646036085367444605165611256567818386393684353767424479431589642374312288025486551286787909544162546446452904950078950761762051432413365827998642438094502247156239686666585192931423670625403381561468771895806658856603393123319815931639668063104339621679420280054916567919843704031993964290213064189904867021633545290104311013788942358586156597643863084494889703281190727125519680014156744381551457778524655501262362915236524236689878311685133550408990661695104980466295376879893768174077068986163693142437164931124122140946318630215686957816732588504100783266357759800180657294817187701625277345734700088787299117489677578666500268760232322571391285017828182147023989827325392812682576971181948275132474247847634263144538756082711391864286564280189651904017836031923608420988819214262325302324910415483473729555278363158373202282024210407238176845908068321443776601625053153597303800098854680344431183364638328361053385067601190802909750121948326139990541292350429186590585521959925675655018763235129236321334772836376316914550005687623646639312126894149220561292824516366577012163943831992546178396338134632502449057302360903538181702179993544208470200588032250845501708348105010591503864662266604882364605781972583788107091968974178473750131764608549211048411799614890110806853859917261726702987704730984916898701654647771106510096936354066207241320040098069339245749824209668598491940605223544418473970766172989273755371895089695084278132245923952009481016867680691888596392248998943022658449616096149690050517583550129213657971086105234113089784116561359780846218006556863814725409697849302987344988522084368827379127236222358453039094603111796750614391150301629957760714326160685107319117088482261885702026772812709522669469681425459730701178374545154694056650142830541520746387629384697866185509647185600183966043313354374258246014539839355047967507088524878515274562334854423999447550920481346858955749854604062016815749129334968911641479993563735473578423039812761607384829154489226170511501417447360182980332584817551505310755217976480214041654666594346767660280526988995161191221804725223826945361532219543842423619219720473254139534629518012199147272979768019186961295376480810099392739633779731271876093593887783072246224136856746057051229559648734441054415064256842355902800227047354112250851810617620774121428045631146627256393303950128080500666019321433695714737800317649081597013776326523321063748075329695210011166995271496906998362146869040159771843314231570078854205764754657365971935661194973611966217239503668720740496881064680995080729458961676917853965141699167897803074065403883763582395457343693274556963579176488578340703912548141167757376312739744618295156108614498310118063795940625168485702087134104320727980324588083629843084457335224110133300417804149870967452680631960606380085107696952117422469792765854524212874074879079376623181622651716546690039032758907846303430186096390957246458317372744388023065404608040564203010526843463685968526113149217957053379389996216180869922550332050821453714487840833874628010507641254660939398645850246273455714353601408904432981059672093469400041549369193315189217911686270587940766143395547139526424580821605663518578991605911172869841875891986644932271208199241796794922890549216366007496728324190240898625906931850218989999201125308481212368823258250841150433631553405980546604541894765895494680132760607869855809585455819320796899664515850010918111454414208054286758327212963997372652184445473175597157734217972475081287737638889221374721761620795583237945486297159291010876140922257288335360702545234496284513583100318352656051566300652491637240062890378262552249819781902865834394363729683350321715804363670408743091275254182436891018891292895603367745378814791164102959008931471961150595059525285100546703828842838806238543277130417201360632094797807581561033081199235357764920032260559566859818359805937087570363198588195299048266590489825664162998637307369546611551120805007386827869280774522255179392285978916202582728552190793869210410699002655152390173512366750841524920739962137231453012646069668353824172768055625025656616702832339405679871480884471249672048549725116079087721433235142715174863952588568909711032605378496540745413176791523363755012373130984088249793130799855388567969822270155787914544703160956207323283287512186855934272526648444458908612361095467710489729542357173703643545117249584963524802013508390610724967129430259275532822619997819125580995604552574000572358340520524501365756226542280773975792296142963121817983024267740856387258035188272070569536018896114458111361627067979693511264449308087446297193150750552354128115415049794144739214635869619477694829817277249981356262930985484091707685525727968986344891294722980604190428888060852133886654758430647622883710502009311675906048790366916793727302457534813777429551102513468315276586050380729688940950890769798064822637313769570373636447041809206950887457974305458948369637513430652868248394973778908293524672909244755447806929225983386894641899280987577245082299604801348605043002175503991829199888354303461237510768773811387006542782778922425558628143312754380854288325002645540828524952137082357912218311424831080245118627960217157839117936724134172037736458970888616124216581726397032257268104063731827988955996604292780484929585629965436151610371132189977205179003137425034995570325082745233639852654994296056952160343090168027446195279503554150928316321859085837547583845727669338523591130047487242137204863749532033524939422788358724603645883794054665239243180832221603420469646571421464825248023766238613811871936240782927361990050428406131990592836107433006148578776387470127324516351711525886891913089974548384157779060603530924218495757941330778716972878084541153159231368276332508090903443444451693130322697787997638116605382759236234724266916169236049154206403265244953305171833088139109008726885461710099065263882931436923480585960311353648487363519957070637304890395920660440167461231657150875161377101774981837276881004660843883205748503745277900402848984639102247827184492983768443112347330591553936609523600387526880452746477980313109766001049915444156477450044311500386144366347286815780932038116773561681511675192923980978683888459354700591531632139806843260803938728897655892228010206718632996079737255587475025851081120367357547497320733821381623642248155451895687702022497935438911635888636312091965074100964153459173969905585601712434321276972880798189757764508326615031345570582532774233468593556163298239831957959424032772515749929398943908733761956022807089275466820056068221549586402366482767449085599606095146564487217345403028660284184436216932763937452186581028768121106905617085817823051103013742124909649771820065410208247832396411209009598736979758303402160221257443346071726856194533298637014956954944338604185426367688249304744286013389746320971398154930392020382127249890490573868014856967706897697648962254227446102735103628121434152560998131654610427099792132409899345240767214459942790828636222207871120689076139010723028922375638701277211343427986149535876991250279322131728628627252311139242124795217589033948220824775284045908570135357915711722206900150068565134770945379303443985372748058125041806692685906926055103577841260050165508367248800854843278733172626853573029871307145008392048965841554956659556718129878583931949663984025053546526661618209526074476371773112800411252636836085185439652987668008602984321862628757637563967737301706317910817539438815506264495715270673738357908776661549878433810237843013084070713658983926992144219958066968435021755496952245874178471944854548028759522846630342310026255449008512086719105351763063771604290656051052467308296308596765050940769320406241803245537217651045315422448429446314780345415282091353263859600139539339063271420901451388111498369682914370440199124151662421189370351215456119257212495355261229973154976452699409300962135316464653203029073933426042648064330413842643540365615491153924022206498185579836216611699042185418193676724660396778521420453921550270254241816369110359769667667129401012228171120346409079381918570692506230172225526911646746760692277974176375156226826346283369435433332235870867209864719152628915029273724366860879269480389194570549153977931186682334804222978018658426906047762928888846934272718699181297927558642805265195135963754431164293215308112438666592679751739829409309223731989861926047821387429407730493435684928467607155512423942676802639321937732827495247283771055023659472472799217903061546553422739310976649873883448085426511759345267170616682008311023426299411559900391283073705991449444021566166185275308397649200261049292792887117969367000896127813273154384932173106139486348299907019575255127224213408391057043537623538619415583725508256695513591028052586811666252205628707581607803946024581295088242982567925745771598273755385867825008983295824261852618137629539294866796006348033725095051704362081473235160583842293731930427566912153498475718572185533177315668449923180160364525071605269656449107737286810011024893107563676142414362169904745940811088802634129431572757993743079438256741408409645596184534823090152658408395176517749300404171659095141813047087858309693285093641901090505792005708156454810808642314318261370641722570025519783449756721322890807882240429481265126709875350992047440383099126370094655120424216003549684266485240417074566799668076870562563733995172125701193714660665589700946560332715151349785511309511240587184586710918061898577777389287708407296039118068144278483122169815489619215196232664529913403859940181300857993301672603165407421565781042931844356912831689412636615016567744945990624080154904098807237565750815157513070545870099224225207883043461608903354073076045016805306402037217900326863720650053016487597623749610395620604557366077399682668916868081654432111517037762107695261514825652341137954897771654470054426954492473032829013042237063289114669620629160588185785055730711617680629295029495871552266979573926024994537469574442070230405718380474429320090515741892686405225088045957391055661438811050798693241413657374442440761876260022281539143642109159125547361029883660144239376645299474497800333499098818029912990220001188487483332718513016205070464337001222185242704058187342342802258640666035712064012854623511801461375669315104942237942755249984334659072049107380230705856055232272645709282328357427672743380618714162542824639554068165791781253989516335815706856819242940475578924183331081463434728535169700122229872617709583641421857160517583322991502226701939191598903013591365781802677521996737786218256638692337650034665855415237472408728580134237312368353926221133401775894315725571621866082605483064893551013167167087256667393020363577721429383260275575873246526794454949650253280695291693931773584518529047204759025895896986706131116659650320633146815338064751815826897696785331607107578457707600419407279076623234625342113156912395725039939923976262488020276661017238258070026889620119838452996118203491405076173989039147571999402262581085594760392441938308458903131549746318893427545624020729767746540991139273657723731922939298487716441534801143861007403225170308617170871903913305152915567886279097488797385725314991330694856374790429256763765821226616462345448867322967954040325604059343203959327452221981377700231345765107824375306867581038825519840106709850940444339549560541958647800930023426310214548582381421942310128773558113778733650723759323169559792603556091574876345222789433553161724627721637002629313264354162028736453816464545060412396451592823393029309114132786558069179578723060322371562876382831406795459679533917768491278758362258674972708948674642968693711768988971948425538522664412503605466183742238166202441352564433245661041651159353332942629355024645806598418016038886082900168330626307929455995463851050437487146916432760423503421909130428438296945691725493027431331298587241651407952441263686946250729196427134554205118679730131434699475550675759109725762776369838961065277429227888200778185817435102685016654371842656762043022754418247248377697115111553940412326433442752829933081316255852975421633011646052255086713213325073298572756929008690803024478716481597003997120796909643603281738179136155269008007681360396283278835955483633548105289825403998497438142735705440627385015286724917423520777439413745846264317988624758284515920517338155310619940450433848517817927853572213204564109008603710943220523336715885187335533734430014707128468948337050729428092985866934252500288570649374590568028487440122973904081666278682815860611738890262013308060772810119470968111834720126510637873356076238822392702960881832218246311029234013543216052691801399743594551407825258973960010480557284838793958048148062875127785068464835917936521179747275705020615032957544390324383887068605331213355852976395776797327477340235333309480197015060738654998340133432402537810043896308623082941937438800456634203294795479633679137813763343565211234273620513559793556517777282779661754822686345437660222926787949439196097330831093000173476041605513084305567230284903181553221399388759826411142242721565887816739520869324348636249239490832055162975205883667827559516924595131498322145556035656288134249912886456630317884056861357574240452920906526146939018191227162814576268748598283112351908413447885679595551229603441160352082695112759319233502438405618460977660905319880924350316645598341912897652799593491072598066782078651959132827957179594763176546634772047158314152080457518735844691106100354094832231258952434337958733321935128650658528064035357143225117803136387018967406973564904195472669299842854374357741517830672468596742526053170122507737643019602581729352254244697018907651665571134593367963775024120194485046501898361254118520021548637795377070138229733098462763445008523544885778577243914352304156383307854029579320974217180854413664567044158482762556020874023875859564025937311728247114110136662616082840698777789628654964337744880292368205468387021449039390892470346031102958859674781361634848948866754341296604447979932105797813861996968154060058883826127440485829262269456171745851823066519456366241335110635342216965248550159946201683580955583554050150785450082236982263574484008384430874329057669176625544880177461723761212286070245629289667893080971729213618845032225233659239955959389203698487530764176495750224279753637780890199229353711643394650222270775200861782256558073102539042743271739029791620908593936771226326014361896490293629803016480073209696172938243191941115839653789381074558130662662220381675502247188499617349590837006459854210427426968267291233181736594376232428901970881461241861279842626515907533624941240324858988648143082059883805221356441883194541619264412570415666037822268368439769652964239052570668639451794852460341353228708154898318004750461754210102837088703036799719612798541780974037152432028220478493386566971046634660952109071309617402053179238172944791309506862341023746237598497738622881982231297402285178770226987717791838547029766666649023699471673966562004300876160380524405261330383137149078256512721768344737184628540371145985917165606361126809913147989010478179570727399177208577666309764918495191014013381965562107280341041600410949109714180086296450981005839210859225503430399810029920469038733250491907232986825803788832671662877080327803185447102942189176372810047009818678193895757526151759959847684696200139608217024449103252128345991532151907147796075532611475902985672047539171780477637886211659440919080637837894034743141580939871266915455319624962435048638538363556524545632197846746677802473759111302719648463590971596662128339902653265044387795660228007986472694090260175150902433584128632634376627808693801374918937417775042821974637911918797634340269475372207646592899563486555030951566987475017538868024469056025434869139345618442137005637682584262703483644308367128070538759441033692328912242923547446933353310523163358065845819374012415285795199205659052108451594895205216661588641696441760273050830543771290315088527658202053085906706344581791077895166691946366962258894834165273750168805495688647598856147212469042682429551301506765406429501845890685466515061462234967673477513199322089142622585977213484984749158103394681501215905680779297254585809808450146698132392937614493146800330740511805675355838922735106049282705349306066854359534279873529806200504705886760904310173284722371709328795934311942778793579302883791569784883048041301615492456229544200490121431725369199124469288416880344305376692443497372388775638963382113267654456560498878366823195609700895966022508676568428449096116347387683659291721446463046241972276494338557703800553678934909607400923849909818444435709151397028544611724030037658071749614181503775763304407527952169638980634526825903527616079198609130937162090283624833562990896152914823603637874751531112617029283455142723232088400660256228147033696541189267973264154157161237771716911025628739013127367941652770079979291083836100646199075898453576782272595975992095658705680244715795477767056480206336632924495868376445190469366943334842424010472035052401225846511748230551041712122436764293187703384871130646104953595727669709088082374455871405096364994388569477512588953078483260738088700450914744655972108733034330223694547362528241491985402533530855313564299846176091842293915494200363555186675323900635322374701737978191614368508325103045516330387027786301429434124816535014478326570052656124005063397712138501157469942007018078670424426171550059786597768037516337436409009939629589404002637220527271643884236414134515770321175192548433424551123811320157401980108081738223091477440552747764911931881627002532917208291866842424173697382454724996340379558118454606551993703128082334391468701202602490876650670764886466625088037532639658349715578534301586411495646407819459757825900962249863363479764480798663088663264170705527458941784468067219102399541446006547351938635931760755928811247012189501413332884227214296976806084945733143269677890832685010261442873268108505846405039949193467289458949310582068798408938669269541546037347382705269487854377175444112136357055717070416600056858702581837913200261528302869084899519687258214691700758243791679104831684394663068192511916844694117772424036873559557433852649561687959196135157303532090301747416393744698560485547814489016758462990392816555836906107046339824573368118002599650325403638916632968529698232991048628372041531489464071811271448997074302612042597816830128047262848902182749939777022069490801656171600054903110461397742375739603712586017036956452615869223487468640121758182588869107583041144912598677726178511392227528815048195515342087451751402965271060278176019661327968209399052531219504249613996538510981598891275726126206462420397149836231706244327214057224922513539283886021762097796757260391501716530577108854161488532390595939707726136001480473513707092233931629542091121703379667645107187363791469591385289253648277383311953813977150433095503555769204693813924433012511047292550794163192581026158437693876053886728543392713189184795392505076571475320150539391896465117921289664006197496038821665942970362782625682424295489972160168743154946143850380440297266784916556901593093570758777241130849239864461551606626023975062062596359738159745892691388130195751547754989990525255359211112961116858224778151668036020579443991541419405831477712323941135307341876174502063233837354811729884039918465861463464312194224243071590629542517995774127309140548929168502898487909157915714893682276451668585008208028054974666675511022210835476861659475972178578657002868418109862243354348940128164082486569103016237820985996224223818916862308695036186868939793228265632408955713998318558362720666079334965439263221118424907812333200604561118599430138693692882966076303544316294982931680598214510774904653664013576689208749821973568194020051630913956680150890087442318612960977502340978892116834448909956223224492095084378292743037052006322694671586617079529630717046096475678438601521752226899953741809313952640372773639779427933063683802854067966552307323279826137899733506807312653857022182725150440924404066619736674177907867641809699060225920853413965326839823655031761995619831923719302787425817318039020897850582059824375441099256424130834964269364837575428162011754275124567382335425400240748586350317568329284598691524171605348682290027595135154706322953196850790160389924797433789632884513146531323024005597626860950963796480186814085715560257365374881883680421506568122010429220510480460877897735458335837652841119108662309497211484078109687265208229321417335402906915731795173949437887485592255142742180749061532367607024681612644491480263332838678853954006887413926686587781976927183577942536009392478758623859412744647558246489690983560553693152484903316306969962241745651218954597905432648935813046415891490537209673930677562251732119154369398914583088446114631966860406462494482645847691420863906899501999968350237925176420759672004621648681895668614776601907724063186889786063579133018021237576031519452833001585305481307017994800502189834100390114105971155762709314190872370789853699540231462946960017664283689898546517615134197275326409990154471459413160730341952279789958508334843825080792393015406648655210934260651952948394862220536012389174241841616421731734062435872843807768319682818992206206126949175655294697899866705274768107068840659722162137627860574528540006750390677724913667676122713985460374168247564632682313693518948092178753468132539010023353047098221450317059565510445837517588660010618863941943455998136407793837080428553254486170143034336945625029022858291677787320381295488376447884952071886409370227139424139991078770272547023551545651582353530300706756159749567232705013689339063025388284767299801115292194197125903885373537790446701815695413420339368270133758106402123042930686949098866717089094542507716700896884812015155052603044382313937201849205050298367910315399431147900991444222363525378805836650527651936124467832606616230266629250744065588956092458853803474016120379329870428644826473076588091152053093655274062140856291743397399146161385366749830429038735560706847840479868461575049131225165741565414462061944078155114893390163711968037714855798374041338373069576421436993270591340627072409793619890000346183877420251288117200375242823532508246785772732948018791648354300272698135868517346378249794913817446739963295323033477855094866013580230039839316834025979330013167403277914179956793617813554085892935020433857228374713894954229888035908734196236509404625430740047285410627502554328557698527343387388849468502465107838401695006578182318775526492344754345375395408279236613759056808889266416620508883542060481635490491111537277637665528856840609793030358327391149734735034257150653652329696808099217228557750859820611856278897164674285710320762586216798891756571818374658197188505741742294915431611515409827085486295002786674676196021486185364679942492093547681813740249659276012099384531894699197422998152630229724811787823146344740257977712242515235750034450709899657191326150592841851694329673578000143317783988932405649888021768039878920326953803897584587648415497963963794318425056415320551887594731950207174761085441153176734318941733856190859451299398914833877766665161818359395492772095685577261546533125813293957863839464962473695522872972933145250305696422998690991059497823332844687155794441938743038849800852179408492674783275235421828550434331387502612509642778492646296679311049979042174312644332084791162231208815041541781250742787030915118159223224564573266393870842719713177609144442277309682255019526740212067489295377640009436302033572396173016883369582159921772228416401089105408670726824755626161023924970934820006219385780231892161351981042213967154389464718968678023522924553843039936142715848207831181912903038642706374890521888149271853116893696848536907255376693268810701532993837349900482520653393147683037051828518568458886970383488995400453763364793948917662301600111164133117104180256338351446293256700883681848669409009261825362248791823125112653161322405445543382636945568468811683164334234690103654849004220279208968140157434110651998218866127199511968253600668532415829520333832932039452442870182453803280655535525679867635934790363961731466428036715040327816767252322374135173562397976479876499725305179690438533439004778219264869776932826956308147923856082271212136944040689817924119989584240670276620894834888161772976727555971821919202073849812306388732796984538108214091210044217184124359436985030286275860850989595291314642652869209948886377288893321453319036137658536274546435174160084192915170504258777002072507686155007767932945330501243315196629420351405990151565274566713417201709807409542570222493616844665329040047479179604486679236393946430367297950381255436539145153399414871554789160378595185983415364995560441475335467414085654692558376546306652717107784891431499886480036608634061995124327113481497611148458071421177862796812709399148631613173319080077291724989989422970581605382324947726998041842785139908353796000123124990138936716812834975961021325202160705039278568168188560893411259760129658202926268173548645228122548771705235667300648899396323729052839630003619153021829408743371354853163784151700967752048316009224482304225366166980238289894422165816707581384530980533289744594646744999932282727412373427362836933983556703312133017911603032986714138868369731789072073093712720458236511592741753621785089349244017366217044236192470319490446747545276542150752166290031071342470997992039353988652989278638766551262806782789679309929845464791377574677382199700576906952260506160244652715630500067064254900639295014021864843969278487517052694260505098428229540512036798107770391897539431641242881840240731872059177228591153716032164548243055327424296666739743110660860180274118865165586588248203252232868470899427961940842808870732602626464091504548717702228366861455533061697767639956028837606900981093495275824613025469426955674015602352766709913113330144713088995862406248650205187644721951092851135218211619093775846655777326878561636057065612852462262853044316162510779837126901386553969649415543971276243765527493430205852655801999580083796453989513417646815941441331139040986171789275508594006467059622348792090698545952368672675089414286238384801236107538823267389043131105636449593230230075596985674641058257545808838034685269613108381341687903777357017905093586776601893474292144239839752600159830859974777958926682537538046193034572798028453224052894597968991849101230577635453098034510137619789777015619641387187492099994270279662593935277863620825809933420898502013001284504201202248479267142430144938017188459636838278905178118835528847936031658360091824610704566805131418590043652116073208003128649779164443723079102429189294037745421206975712826233861672432744083448612878113194052846206204664682454908018275214009645146680937233377897590551926956986263803971954234944228482836268044568384981822065122600169749163962779506422659878107100217958473886905588108467730042396326721271261577839783276028386476935496514911930036231011278832899125914358821421650581134490630215429452937591739516329792815364936160420845979217149479526819387428631436818924307955553808575895240846436086489378502776536754317558187131027686830579648609481435801178560547973833275606462023816901878785553201467317905143580930125135173886387976441819232122688234067033535103767140383724755784218412912182416073410386098753007496063084824289971751285885547294846847994647455326534995656203785426519505526919690814905368614574789929367232623599532727457850144915431587396126541004658334901201714136090901396366676820962922459704895124430527125501154530545068668301026645770804536621691907501480902127490568560405702708974719017761646111108289010001805236657628249301872080302789583695489979238321005580165878221195266037048215178001123154190033752839510725571105441645106333264638596620456394206482032664108158599701964735250254295766588497523028502991215031329033855964230863966770142054513094701490058969040124729428435549321755199116523731487067704628129672800234025511038879174005154769768214352279892126850300966938897308095968051369137167657826363640414460274979280321217847776488951613538773422170116269315748910070113189290930944201236976069811599326050937238631530785364865452223136071712651482224439097351945629321124080456060571473832578321375144544077116183491201303372908692783490712531061604935928024811586626470038586622392662478510665147677628818239071939398176916189158332903455111036114105714927784948005573738635735999381949679888487484142412759266207116809160438253254396949600542654923953890848195464680385365065339178200866803762059584434071558245845672815204481503371783359738918328881373192193686712623168120675034269042632039780929120390863249334120099764665755209128321725677296812746341719555633084895608135291959274260257840982473630558870782191129499399673736847332051527335326431912237580581244913873974544928441822317713688659188035459035984555354416649220040096182669644200488551041869470274596996980036677497453665890195170709686705558680516985873844373771044347262773131796430685599520590859315600776122279333130528872719612605915444702603762289712997413058873593677077350193001321714781431266956592993878112121528038901385329269225138706138590996596026823832220608210541594507729702410435153210863017336248348693624844035676518830081728942304103135909698108179673666239887095348191225507880733759886098788312815848718388806805142332515084498780127998321115551253989158278184927925355731642760645221390467255358385192358876027439051274047756886953976885488104925972549281821430997286044730368243644844403921517778036000868712454796832702762703728596027875376148297490653110749179730049524707248356437066915367761608559179186677230527306536087774958615124453436011369608279691108267524670602250724345381758798854708697350669655828892698063962330899930795712151879551183057909948196083934911111578340311407913372219754609836006052520594868004134210822072821832934151779277423047005422535900918184867626333187726127238172248266910632433546848484330560054495028986563477022094810359533224895034118831312458288489866784413456777139033536248606843358266830984990736033901300361170412492513488305387738490035648303966380190111010788580486427144259345994944914332842768805617507509277294154058777500269250094033521110647972938176756100872621178450033286319181327732732119924802557380039599873620737960769660811127256229771514537663405531525527456373787079822345600142774215243264475418030772975607759022763193141548358190302617685646505332267183435927594160638663501911931005830078204175448693978785056094195917057409856351595571793122758589397789108545226923335543630725207981153219509817797472291169703146070880278897717714504292022062348106960392409264676943715775398556693317989763369342741949799210930935337843124165241145894033885375636664724587710197921905389008321113034871054208884385698757550384106820373430746502778855794892268836365236375934721929847105017090165596998725137875118143185336689065467259656552118202487050730325315142170420061684638771816796075004046182745700270768689759935205159606328996472911196270852111473164577816599469329694940102396166727582054494034690035906089563219015092347549251253957255606834003469016921187669829613036400625040801746430949238619912088870182001195668120114559872568246773334521309038732707324467353921028631799493902799958833459310591674642292872996075259961851685269362749955983394054086292579440979140208741800797888795923652792308869048949140066152235006076524114958805787098179544181006078195278096524659580157706634519620028946312251296847636386200049866287780027464335698400837408549930768834909455154772059801095937457424923709646587522325952068169560011533167460241481352562476122022632768471190663900861866138279331991336059818131722196094717781321463933084983272579741328697842562770338490804428218221554983102630676917464270857722005109017622770459925356131976787614010325160077587035458386044146476301021818404313580721322059591310741848772978987283702586441071588278061484699996914024076949860205139584009585045406100414555631126453081466958355132296754579260925828362731024628815003178852061855832602710524410850297326842096792749780219235449414420574778883346858897096340710538681480953924996519258568371478957544952410254846649301534478046336283014173621246628465590234514808990016941088610511691806151328848764796837802085552654267711307816102653060167712241298427140859782367497184003777506949589523373513420017684283354778511200592144094644622689683518375841191899406132271463892461075104132055831905072916121631219426516684463405435732714187137988372433349903895691127262916715429418819360041813771356957773039963019361217401304409783711283055182027427272248713801776683579298647281639591146207052063374528326656756737992104791678722301686091419499748432700655177259448118663328296991090149176236920775676985296760665272805889105928710370140342341731855454825213882331376013431573404270237738535802402678015140351121655789474188629157864681710898043188521257126267411417079658510547970405948582253321011109111891867548770412157328381858902935422618114965198184393569857894000388640291916873713724201013422970191923221858731439588268541690142341559327060562441151507910508180389799227077705705194269822691768698446071345546938192807090086892587180570651436104267014984489851124090899796766447051043616526452304914210885959686700902391889692871352490458837367319281689773752516172719819686104553141320058633576859009743390703066383864429903187468454059860639368093925664680773542650530635740230515051560469094447283775625195836950216095648820418571799277535955136545154526891239256568091784555991344057407541319174974831350477411240357595108781286756812141456731034961392354469553164043441364206087229807650676328356887981174809565627212331385246266194767034992941820182556207679717526837635128736949940385531554341721308822181880643752532754025480434960027685593095646314698506829246724853296649952076363495286385419249294427127852855161029730149927100270819777500560145619020079905249863633806861381174648051447070477823426260813724606891622603705024596174275039009079452953903752793243321340410272984161449800404850457617426010016460928526325624783758896504521243749274905423279150885787597574779193425923328497159250274706122510934496772193536964842937905883729434906946202619096314222426991198446535262353694122759823865441750455689157052950537006778885395162799442827946927839417211126071536721131456193345969891622203181412446971457094040488051999094210593046025841084261834520878208749699096200179911388246269880737154040959668690871721484552622752869425208463481647114700199117978808573866049230867861487895010067438601271995752582953062681524178478100708428089740923006420948856670451441635138198485720249157839851845491380690440455020972661840218568808241731846172087875377819758995788658404885882743200914617315004261728292926144399780117334992146446896085335213281972685948665404261614431977573464627185497840836981885736942503886127777258240874924027401641415231336323481246429061367977929649131922502584689394090321063259222007943257988130053932946284087881649015110463529768614105759860251274687539677270681604176367889948314938179656690696683866494926573461936480711875029062305789280684859070335619879487683670965009644495164994401111860103861568753426800491934091070092906968459801401090427912001909685838880692615531322109395545121606429133730988187757302857525091478536882329267975241142669813792767795143023169880267721851019204947201796513278547810222069040287308649313418835597257176179649958331976639684359310010415858715560596430264623543703361754979898163608224188167040470314770564436675652995691522238482013051399932132999154781871984034414360037866780002279538317034100104798967142588280527250719233692658527950481318474990713628736705660026892093311651879739817600368547893967510015131572369006926376166450539410261486452380134495222850336526548852381097110775076385146612416326735362275121503564263294498579551386165567588659404130126297356637214832257294533435757885484611643225708752725959500478381753590335407518015626652638540468646213631468407510667309699215007073997279515647800454373662811826398280118070605005355893559952100208848762026490963727226912742889688150982100503478790397543425619357040998611773894145334251465867593874607398432690691019258891336796269216800417976525186111848275690429548409137464591490640690101830766482672847941362151362992321045917645608599514968161187110320819505207766599126301173036234929334831339050887758387605011578586171866848824382952975478600814792542372634140131684373703731784845722790542352120112890382529730719485304100369362297619130142640449665191214217965339137016793416610630426993560302725598979960483452799320298001644960247758080199290983974880487700405327762243346448544584075609993801119330987966751294430526327719895689206602239454791717484593281311468747156769551147579988612353979139443110149903074384250674822493745677867765279773930499084256591826479547249282630138872093978704654891920872180896239784930969367979741067636339484457615231666666535943895908479782348161937909259647447450338806945924564517398405134137950009186553537275550481590229563982875516094503005004068761209786791885557259685019999001476577982210580149104666232179803003938465794909388352510505705447438165824221947714568562534684487682650906154705933164861073366626779936390612882909318813761904415194481180053641790890631068684057346041234780806283365737566956449303289896664144478067663238732957168450800725015363184050717627401485177676341214203928574329083048188584111468921369734003413308465894660538482160897083096327537598637233828392529944591580915039358227319974491645847964167061970965045217181488131574146660655224497814828793991125695665669093691252357150936099950129138799348874677214990604868333227082266089407594426053366707009508277749517618197908463084702877083261241476274001445916417513492539281794427303453783691946097482630561955252223137721878789937344167094551379414847519648979061174044852994092921800342134414997329577322743009666885855159525297374982766736796063389085675386213370306303754625463844020511173825322705999991429536862431950610988684439882900773665131966469087500189250483951391453600817002353643206177378311342342077028458047910534236698652668315147141214070584142466777982985197960233844429189918085408125726990583217621647400487926388112962332895081941276433751894956698720160982275500855387959533150742137824532614111686654236118205839190614090578024962217602259311067611262378763955071701831066223246463477525996834400230781309750731008226809763306041851938129326802869294009160457081244859704659887722482909160708143220057849799634477247375909641904487567983339700690777526892531195838419519055909925036961132027449171311234758137943861571501051516381004478474632189539099680608224515418155779535949537353739334838986959388332007706558246297534169274663909952256242965392907213180696002557669399038291657732465580476576410098413030962148628851150162605615592005342228887226522654655023595543671079705547905768682747640162140691059072732299156250135700214985924987739793497992322118409439598998358870264127392932712991114814453894239689543362090685701908052420835827878809669158598912906959133443681112572579837464312041033932266060196744458593128177178306302637918977169622570852075864565043213179477389550053257840244244619460782583830589683245805279086661053294535809226579144393034622376521213166536092019254877836371833880809887785592499927511157311020621527944458849207083201031325032881040828004170340781388334570613400334057170611372181493587124360116292190718003493930864495097689735249925032436669963294484950314182100752292371579380882739655234800447321316881032033875298475242039399513299430343187453679247457108893825560440644311772891667320862611149129758804131682537321746401557431492225971025987291872903259198402299990881188123913395600988630816297799197892207640358738126822949229003853488860162495398625721315138873557671561312310440388535896387754081937813719784812834175939602494535425048199028712060928464919618464306201056915363857016421254814570421061959184933968400471222515007747251506940168842837789350124604436088480510700364364653812416205787267532215604394247214671113728059012685287245346169369198908926674854242283613288362331517927492979465425267510126272093667579293544362963972383937497641964497825444830425171199417030106914410575736223127995166986347308957460142758691427622824257959748458346988928590692727349261793042022001598740433131830194821307594820707770454148151525461835195788519639954362942333063435759902030978256605053559656601225001651003360628209778997069507247815701927670149104283252910551151437256743862682990539963939234420587314523284768267700924824701219864867664780368383736618883721764298217791678779885931962265224886177404568563914546150723137036188068166865263089932891150328438842246178715403659822722768047287323098874292410273584408784090365097384820464454786937559209113107050957970504790392272928876021960643938123912230921565915421066749291131806901164566375382478450621410701882049179952778060780168690537348142257065767793168332965168087228596804990673319521674098647449505042262979893255332901246280233083072541711747351784620887500327965310922124550980824006892464856504450025574880001810109994520607113753477881710654364407834723234093743517275266855608727311012367696923798320367075919706904405133831064878538140487746662256943816990709516710802031979550008989698845862966556726910017532254567700425129453990913794542605141778614068252460539689539540226016123886513707959182719725850654259810394848147326537240559509974652970419454795829910331350486495204195575633586701605879948575863937069562078901025305399191390884320802594732094255478731958106087753058499384513810936845248805598931797264841306023226501917911391872371935446158252973480686340409989056092111970162668589268407815417102456247189106474526617181532205782179234365822915978710649827478454058575792420243432002233759884012238899695225822515654640715407430350264220756838165396781303723418289017053055048858732066600789664807284758503888638603862107007870948108650502231568888291201872738554937144516436579553120737344332848673879368362682746729182769910419624874292997493353362498986599476116408354742999229863906870270012910003122041676758011985284254343056131721435906115298525662946687110721856469353446467226293025304920850775363264414580903151144425934837235425897257803602843060412916629711381397299900735810644291680225949739911520561047321517785386513500895649089102077059157305009284327171465834948525751806901664094553635636182364237506066125694959351608931480940417192412814770561775137830340260259099800420100871132498616880501099863357493439728489743265154341047324521816216929882458317834337668713099189680681010091368655914125453890126370800101246614901299709600479825089057979761055669433259065651813461920500492524003037476252240892794256024053044967468036190710459610282432126784352697886821910606159031824602691852634314704148430913872117790461568559668770664260942445443140875201872241181618707027379740319578872682739115426141961558055941162339133535095842482735161190209172951414527276945796847064122479445927181464088468022511808674485551232519887379165530343490754883372917775229894754026954886683173428860441201210379408773876459054458750027494206210030408293545387194727984317442885431926760458334524462453609919777055353470138490386719993140768919682892380088710563136748915395727903491175278869331345982557676860223823973141455774473519705351143195411493054813221872652964087106334602423966953779433754135187046281518413294616780260579618315364229342908398616979550978097306590976971114493025177444171584468148254548814202749469841760402007692071098277854377595417291878800816064529150560598607614298452935211230454802385848947479119980946369394899644080486348436025061937869626659287832770102923373389708956889977596980173281349037900696920489471280019046728865096924070213029562324288044709582311621357059333396531308645002282824643407899180278990913897596721877352790734555424730120151931226672252170622122626174943058060046635153829605745665458522294202964568088384230315718253985412958802110129243353487417683071364104900331953062089353169885872259866168599966469218408486590393088654364343518571501252100172848410731845218713853391613753336376013900176447165614906607055308124535448895372388353050669763877249009383527599160676781026974810550353318859318041832694796010451360941150901317203791128861151877124039375344383886655446840666677319178841566435213460425031198928547049602469278573230658266112250119132195035342056472010604858695472357464510084294529774500391906434789995894500815164231515789666231325236091144418859241259142599118060097111489705103187987764563256728350939547621949220732308931320954904191936513718891174370429252546362878843670945321561914447959296016763635573530828183524245675354561880622956100618842276749693998476281042310415249411331897698426802152438161344548930596103820876731920912256164042320828783386549727786876648250211497194501793197398207193692351537423818218507364099714547991709336445640600602005122553633523254526562307890713498737365064612993557342330406630909463651072890540733671925974476657252237971213422601718111492807698830038089288027740904724572225377194549038875623168911307923520892396446291926741533017309437859322687100754596746205100498157995356297086456865701402697248021731098359284859978603103882871985486944118876782747062452952941333738971510228163960403602204778440088498405118782509420925030605621458558494996115063286331477784047509156693593489723881571765475236162590798458567257219571613340347723818753441505761399435220532681204349267431238107103810842368821665557297190601932238604240795792003809053789381453141349612003151347875778520324548778008106210997409441137289862532689286337283873879222129713589905443314737615278027758033442106929695411708972522900408463412954306262949609984581120703446569307387102100009501272649368766144841329425243746027877744791885164627657103010133778150124207824981057958138681427749909736474943976304089670917629988843681012142632400930931802324751124001981674962266153243795941647975919246076980103809173137406348672870644555438316520782935507286013773330418548181078814612356154159558809798989529263557825063615314087281391224506293348180616120141921292499444619836719130919185730842163854618959190931403519537553346758633497299321423681813476558090322993299997382631513763612863518823710972601879233614192377306864211744082022167564113698621466447516647497448622433877537970450037462599584599222335407448936690789759770205840707464227483523637199792898282158717222915023321255589723012407862768363389534068251100654418296932927462904073960887851100630390409554699180331911734420371427284907886131769318486680907402802177460311309075136355916991763094924548252259026447471512980994654455202941257209745626373557210209409256586965705191545983967490032595209179932433356125539846210068894903891694027069545395807385533906986537041630785491824616938799998117544294753341526246558523274265965667776031397763486833852633000759206170459314814374730801454344876409758132454476210418006471894433271748967430877551985215677477654823512095037509804299676073528760124439996522847488054205659960320200959813640309745375690938367163525872016203872655340111340362348742325678228008514683073944049760111945409691924659803073543698776719124732647407189540487288294988592893893565799960461361093930569734506838330219744853979176863664058093785121925885048884168843773775389541414957054796404510616038452417225847279560195815338178102591615404005302734818428463792482837030092233860561237541542234640839888023115356919732944003353288702609093636232480240724607111874559319995296458337836060327129518606105553558986342309823069139856429110499001172426924525329026659316251763003578082203118200892647131010834124885823525437784531877686824896721692050780979009710570358582920495079484409381836412033296097143993505369540713176375695650977060724904868475497250909258065616651510174426560898055884032335717505541877104354346072000381418264735905942528913867538317012132632113112405280363187191263621715016566445398038907461981715274805832194191605434076627536447096281004147338944324452897332831671000123351286399154020009777801241763476821554358827633097351545086716472437077604424296744179133584207722593465336931591085155652004489168709650169492489758016658245584549076660551892506367000420470933799455484989215837177523133327243341033894605935724573514323645223522948629373452406318767588386175731815516175512273729484402788280809083177587076303267056290184801958455923921718722833891463554130016902731394658580780003771163413895878300854316344740659137942687502032769737084540709496678415248736308380852800243501554224613087384474880642934728054320338418799866304350331836918889038618977931503934177389697510473820900904257258249701394002455599708206614001770828450216615474284392497579140811579473397487781624320948043648293184335489959717259488113004010843125345253126721912616345224923897415883440628251210936998569335515633335095990262316104053570500096556913902702322084622321985241614911411905485829156712922731907172252126793961745133640512130814290969739726739993549168127905536128258501233638769779028890995174655965530533871929147312448904406338683616998780733208886522054858520446055895026632516955595641181334711459406561097734833470342565948250861234378033109826579226304254759195093310102238274141083094873245981441727996371035244358373111442285402228552837243371152053219464470013102197232715296975658168412691676989640016158432904135120769495670915938054608462875706913038311873350225210246165947796241793062225324514021198629955004426293014844923192688433092033109725144531961468415297330531897088216076936862649985168061692537026211853149947692505786448001011532906389115883718648774320155532462574735907666254158279337490210122298362955347563704125016306108735119259430777018046850290079071358649321842180378103760479501386646351349907174835530185643959883246574853778506542797126621171997489591659128866270164027137441829394014366064648312183996616853308497559524818131527843314048179819010403977589104435579252820428353297481888773295830898762623866852832434485941683866778825129132861808607099812935288727576658732101852726045704063405369585075201474923969793415659314532050075510249331099500018765838589494805457759834799375153945547003001682448823473012522538682516964244612118653208641433512492005050549527756520427222874605361013714064083557992989869134487296199867127608162501747515553763547199775045698615020593109513747347667207163536215688103136377702591518535725238975213712195652336836649561769883397124193902611562820035599524264999137208922184697802890857399342550176879202418494424267388111818368799458208883881813169607677365668710786699278214430784384599695818704709052166124429333385724662377566962829977576387839442659214403755991920321074168617265919761917528129719903011109203252798779732489526256236124120897882764160400396014717208904430512800903373066541799208808240237494647001565175909315141565090740453861511283889260067395890384801328684314182564823272773861646077273168135093615300684397768540524653753797211196420333263998228307690710302934755218832626713287145432683295993305187027253761438993447934956012269791959974719951263086408352758372870928253756376385105091475278370581974466260105565420431345238558323058057753199133367468455006565478350370509371263263501785022026275617282679471425248418243063441390356268912041381757629179428855125680902506985180246556984523987515858222344664114990800952877424910624234551786443709357575378419350884934581423647413274815566620278367947331532715623535293953082814534455886432337840852080992108422862763425135689794837180762541648361565327546151248048133254432630698887703424517171544734667445073367460685990216531218263244108349304514472303850461690467161914881205356119437317080255309819239182913590169846580068010870637430112779675969160223531424770323089634273994271953937095603087646828273767254846615169538534457663007068336248082073986639515773855451465710644553279612131691150311199470935703205700348129426370065226618814416157366096473899988879385995204863652862581802682542364827162537922823162295698314757795803031455077939436889564557656664958196924739874411191851773775726419813677658508675581954599936118836448306447519273905332151063046868850568355300292147210307899318923352856553910404371547453724339846370349598824059090788076445324047681995113672599445936143483912636343445960077849295050610164957484807236512140647235755697405044868105689704273741416349385826950473645283212810965653585516376613375279304155088471761277885187101299179564814822650787537136412628591775809934459380834352729312395728524570712016134659276320869736561871140813536525179806536993475566342021862541901336896193789837142386379042523131385281283760757654053179748184956314539942093083714303997162291201809906206665086037797256546984504926877653109579061317108510619765391646383311167824581079946543732903164813795585525688799785559569323772967004391808082982139880515558742169790551517784981323792772819438392013144635350664924720353479402929561210180937189694987730645858596532683175953571817967363483854753736662219611706785771952856685931213727053752499541342553492777393413849924282794725978082398544687105534473925655809613291206901515267781294954597269848074290472393838857244856977216419040053322211263509903151450339721547100724190580872955773717843802968376342783085137091206813690433724525677758708789348446335437744959302816880912487931605428717402980769686369333776718891722079185978455859839822860282945523626294450978685885946081303637325142297436387358865302381402509436858635929539152224768855245668904039698973914483908448219979567375338271304868374566129304943072556215662560748131804841551775270005168905492209412046324716261496808401830017237730617054807123938466281938810775332444529691093413430166376324141450338878736257457676221671801180343203413421296278237040848289582299356004637363777049521372779554039646623221351311596132180277547901736961799381532108461586181190773375858841070948396828514962433598780711888992282337961218366307498234388237873800363551582346145923711127841713189792684442250888225422995080489874550992076514656917965424684008549099599047736579111146201171305285743085511837373185556227368856397264790149828985760554823052599617602567209176273781340813827047816618356941736732222796455364754690929212814551363441237538388143549596756362086233846085080118995330553893099357700838915854696084334629991318497373324331612517905744911548609553298100085575134490494095817490015501376498487698378134143978524196401703788001868848510071023251195836995346880840457435902860664011524124381575027417843292240269495255438453707848558917493043057797395404485272615285530280378995675226627442539118366437155707683559812341782963349815876977274957673726046611804028600763249050682752855904751667802952911049224550176216110884326445509549528331858252498176113927787820655840101158832628399261158571212689283326765765812104201180444368540991959486844666724064279336242054592120660620651823169094579323790349084273564520305747408676877936529220560127252003534034624795364324590235397124687336925786380280102113132867682668931820473687010430731796541627550374394512564106590571857647210863050528736308087903786025990542251636212454557706423025357693302148874661073260904200753263405798055475982584439334828976155960992522162728188606415162531962024530616202645919703072581853810979410487841027473896061427694364796179197362824922163123271000565692418083011274993534517187499591819955164588374318446727867911184326151709678833486224713974150395983276888798862051236503187993003644539225103332990634181430903297914493007885261343501112459290951169144068113025523433636762731386273125166879724600454721638064574391738528874400430612889829909693070948186326262808851971020200319827814745944882031947961851769544874316381979497680791856042260835086569851831526345027964102902686548293480999733585210875613003856964785470499369152803097156557305976417323707713454102027264366861435223299890067732621034488049461943582199085262363917698377916187487728076266319033455003046948512706526111766691025023320542852996887135040314378208207413815826074767851157344593741332682052719439520759096001945953727409939953469684149134847464252646065738900131388070648041607326391791282745366123339321233355859868777417882332375547693734430386421533155156921184073199176233987656015260741076526184277554589576054433600261591203441592374089637426278341781304340514100763162124953477153147462203301269134146819003671487815722663315475941078199283438394618050870747661785757943172609889629001332722567237618100095629499709973163549915632749051970397113587434329648520635021700998583183398393009952737502574039033404152844886808064939204596189336907061256709199971026225367256220575561673395577318173908201683142197318306153363847557264507358599185752996287039913254386193624577050438299678316283326279791842483078729054049801140232125175876428603677003656705310863433911163504124381163932786427607084692580077758632990005576967119700859084513697594685590051215872281126683956821038065041526831297876353244097382715853004912583409208308019262324732254501486853710942825263667080613778537089035714203524150306184555509756151861498800073853659983426286608298013941931220469778993004747358666403633212799917928803345093379151393239441948468487416538883172347396377445468644216050952080677785540847369990042433772316154754599793184459005608006166966093675015779307790303077079573798756518335189572972291220535728512623433485431227882103921072596903997959829192491620126324084105114048848580842158099450278615289279138014703470030835466983293683736927722886916359170515090328066708843800475049205991573398420262392006180419812442323797468154160203976991278474519003776879789874138690079381473928731077439071277157078891105625564049912689742843996830789622913500110230835880111156965226535486713772485727258626766560242706641445146300115751878280054660390665506377811078550696769731755985539262465780699794085309762025134730514187675743802867703667797783257741896439541228296323283555686723706617312122856668261794865241830532362103827099777215013835041985144883475671849241505889469880557279268341616359474748583974705811736735166536517297688747943802613911856798027414601427049570865934625685195979022315310399309462923657989409799688704142334366135871698418638948538331256414511826854844755916785044411007605065495662225772273840975143676840329442822792596802942146168612339720811237182184190777933062025009337486661034301347221579886881688614249884069237203460646402330703954349670796483057206115676033184901546258264788858253110460511824512849774925547507468511779860524164678266069973957529741157472265037624980321981196952681439608507936393750409175854584701930886314096109334762175134779781391949579271315275696786957753946939282577330600059968905344864486804707196624508124154653241876213974416292878913806081014361913039508321255134199876925519367673456311183032269478958529113665661302289426779149986724109138412156901463280275333521456190659719638935322556800544568778016254298861889052518204517618577510994668408743831850576282261552471366846001537441217659994388151863364533700793608528334562628961930973824931906968789927854765943723796723168787860309021693507021025192061965680000507711963443643252697076549739543281822358304193312566053878768440945596408591978928359006284235554695946559984062080283588051884851980089920304191822223264955892864020751006284401753368342575080114175449064221543676686281585516977471183694403016754863305851628167853818221827328091069635773019686822533956166311515126528949457290886109593089535231102682786165667250085194333644956536395851672868103964662154394719834599137172233955745116525896480613622375985930467009232324188561187395070136827977382937921473654097288164589841495178462182148996517936112194289925807504015142901478161881099013431499015972894345067647602494409094159037573302441338203123706434459895996881141271503524659241028967108794914519973147605342720915976272012196397711119624148250675359088615256999473823140043256439149806564657310555278334166580351396275802171079698612231724969797940245432038851082094402304955381592986137333776942313382810639684210629858933281366900120387602269940820292051155634147501461443332149121318074238518358755694711949553517009526264493183704589881570813139368187037922643818529356330398179181038861492812649030655302646673152865008989429577739859631536908039003810195127420717099641955249927456988615335378280493991839785221742148421689540662313548487772457099830424810787151630819242779546172278324246340191712702403567559076467477519479471082578683902010311404680723296546509543597731144323740504814495364015354761640378447932458585655561495012983401986036202507308831329848661307052949684561107656997337810286435747936412456250105235194936059111768158501185612672145903165627401499980523734636348890054688674224167865717024867881593585839020067007452648914578833866024204550163741147189332428222466600555986431707950224063055592241052529074817404536117882110555536670832897627884063975538489900901222174095703017460833954204242362839041632372794257725153653454266549534081980585828406262433684566582734089691906557438758912358119623423798990148442138687403059660092131608332825072803925937516997079888588147758953458050070035229617150368679686664368961294033636053323501136457744255053753619057717872982814501963211537464639850436438672701914055152756330970995580377734507922896096216234015731796357633609776842799683169664284661901037890519928958129035659459692514518837203972162823421692167506243194171265815508558596713656076594490331572955982004224873284600097027906585454359414650226985643417949596306161325936007590221249601379511310006635946922937585094424089055460452123008645262647341675591359728003328363606655001254816338814661294753427714473959026122344511970664013758300680992795219405571786795273799163821814019891132303669969820718313816364655947083886353629286790424881145581922866684291549628673045633225520249685830662634994666222388901179350920012082757125182479579440828526058014564523125366236987830354465835638999566416963247793864526528318096336258957815029721600352000099999594750083267213799936367907086372948810248404164194021279871603544048878866626374058507246085605932390671556335298275894650664087299969598955902389358357372377017724803170379280156306033093175442234646443690101257455385608862458240493641309246725780050567792008192096661760635494018799570741760304663751969021974838301228675011148976127191969483613801807023877940694133432492409227603380284786341733642947542363890980619312099381303847536622075339777595618023644710921168731488988691430857879913331726503614873972657933313994313994681558626953074396906550163576925637919544846263988922227679200118227726933661107020236954364943190281232936375669581865215766992133865867863834453607383363886797180710868329618932267972378261630218291880324781866794368486621793352550947469292156734803598555296117921898089449287678321926719132485213082300661879785262757053003640407499039236607863641717021027699431165449401612261679488709323629202031977010422554519367189206759523109079607974342565685180438318808982012324282205432880510691294268401607341156595787282852289235616476679753490033505335648407292084819850497902318253325589354852251919455038321095714733851841355178880967126084598586213145566525612996250777771735625904808537684335373966005683400082976184095162823746155651288836156706588398776938804328474498020952326878982228960252408750524853739689587014425568338536895976898728084949955903703262361689281216573471564424256682567674999989056123257587623624535303091140511531191793463039141740809292505347839370281054395255919069537699077019063105295997129966028999680444723485808444004973155876873234330529910675013614141081460551441010462261590195244092165230872537500731607838396422815616481467815080909286333986604239488781521123501131413701928482728694996686757859623843512786177047517231831781690394287399989236060453302323049259036789379320517357735424057298516064931677604265779184731827870422222586367866388312563033235787068398286866257919215057365293094433255939298198197815833490308011443312887242608205659805297428270223233414068592496809665421847238982110080943409383837021530583093293701320461706527164908252605389953228519395863368608377512445182844455870131956804232772269581730926086812355757013200827621656522899673937069894035408863634344775325614536563397958794864648281496334704881643119800439131806735482981666970334977830194027931818216164210282246334505574663912900668382081292225637992463714877953350454338714955984241204604282570613057994716053121698859633193954706141985586464936058150285400991934062778938103962221987278858840443877826159001668758837282192357464463458588557415611225251742191766239424670100051371638532397006814155739921333034536528455911077218893974833543377653195933003813126645084709056405861104716046708120296327919178049552756296035047620149503515046545379219915582399223322179109274193843169576407208909486879835213218827282439111065456151772487657358714058376237577894743444207581536676285282165388833248689888533459447300124312588726929523098339266955769031651527746767599339590841660991538616616306098276064866555619068496973127697643427728306876500484045017522621077270952711325872535287553546981955805564996891654893491518860948790144604522947103681562926522604845214370104767650484158981527560412247621978225682558381190471364971441556693023159120106767352976036663412510111760968533086829012885683360939745326703160998237100434508725403958348405114243397488403758822887114321427327599904074672726438614306597744817981304729181451031046940785709250189210266733817277317724589286386818790030212013160704459088340615424283627887394743264305435005580325286324594761222096599900873861761100176192789125949994748934540765191478844006680836176470319905084607843310197245282291651542507472258219735426428294431101201377163090948194874502537083181719101247430091419723983849124089024942257955065217582651854293797917003542069424431253973271148772924729897634110314900472879749644408022143090194267615840867530301957586224826297831269038527629783195797666781847192046694779463716229591429691727818202726485225489906283893658069966381680245839191113733790558854408537975872057943583093031293119094612306072030453578595659143221444397179216483866445304528437349215674137740144082719604369058413905303818914704380362789026141359573448058629268661615979789572411975472244005606889056660989304705805884289867917345092147500849973205766006478145454704010446408758733917249968024671866884328154680289396713711818783595499065953455925588922141967171233861993178931459907385437196901680051748045996310811833013443088707656254951275982280902406763812074408284086184899289769584998620265789170160821426400517134202268792659506433432041311493236886383538963767757795765679071903677604972723807445096526418088374943107813320104763800720769006875769330684397683028613711520585618527185048877149625423579267312502460059624872124070758853114403784411241218317889387536813807370497784207881626501262044462727717966372740296525443479310054482795754262955518589200047428291715693329433631604688394659058262658539214467424291467173635491642435084138672208349372503916159113532099582970070546193570583110079976073159017253658877253313362865137762465833798300237433075367202476038365666116379798205914288489879572567155613692005583274047828310192245030780097551080225236253920632909763077343377243198488972170679215079466590229398367010757158455218328910882923920392617784608305128252184128046687343294614426086359860723542727742844392396576005653687532225938088356357981505320137673697169533668019642535135782769651842660157544705556614408322352941448078974111207528601743076428544467839753212076919876310986903431717623165426708020136414825503632868169126951965408191472313968287487355626138989174100147706722170579933598916598348666971498233776610214631601688697356118718400520945582510481703521481239409747148900384455960517970782911889628845181174354915087334658152654089030629891161042885487587703826197051250544287545412049655641792100504539957494579313786483032642123780168770341918555689617864016981851529884811964865549229886288469937125024397921198056301979053955936850528048909806110378548027796831470300892389697260196726682417772662638960771947439838393043001608988281094080875886567672069512593989856076229910552618660536301687651645123545232287895827958432734925551175301430550603997155412927297465515369290590153628278099358100318836261656374073412848753254863022715909535033776094530919883857058179734360078551031741076859044218430286723081910374211640597286989060936976397454770037865745623963875763076516990066768120695867887483489609317256102082765523858795230324558574638072695737314695192714742962094659071554514892063762486821369951305516784520348396386392465564047552536129299745327195136318766472957774946767125472188823405269697144260270391548341826383378389424854988013894438236601221027472949707177896343028671131650886070587977962757320767559021908007773489638315246223064331235867625761894950969949759343467049393816561001233711292990534403034369808827493948782674072345006480281769971145769176192464924070199257331325655232686703370349553637939536176409734824979917821891067786702980957588516356858312598048454454510509203920532012100377931702169318769843008539313906266992345984060340719087548054926752390157722415095371073725516660336911810563150839151873340333174266843510339970731774503122754513840542708966116953575923788249064465155940810366289002435166022011130906342831784041161178916621506532666198168845068932554998222003544516318645657169344088687450457001756597288528321303128988341850747522680795627977573759029103623764252421202656745464509887357032747031093969594599478903027672445103781142441912404259449955942745778107875983937773908413099604499368684506833799199923703875870985664503020911431985042514049946698254716605131236838943597467355714634431231203434685602047681857812164596353867181554000289992029600187911799295336150733065163433344502831177253081134260869105771078197766066234989930996020387060871612054843906269982766076112051294712856846927732172011295666156472243177778518078469067301295796457358007941626242070154717910554930237370148233948493459871446683428057996859163315366345528170725754987905020571963465481551499975095727294315597398877430489152561455370764260192746836925220857024598487629262925454591717352284121119472883842608479508299006440221876407220754247194720749691147456044492510923572028197345669985003860673051188453650235817262860836626239716576681896874165636758000183046548214295644715293169498038160446806574874545172969312688171110678270880941556787605023290285546426179850289099599761562228347723213172678602848630716810361707801383921537887912150504203023876086897193353740064092863930749096362608019906943982551044594151273649531259183840964522318435173358464135988141818009155070978456775299291137642505961862163200409053944795010672779527617726702810851225061842632111679433796740586920574147547937269285673945714552255444958015821990620830829874506179474832245147595221404392079666031713982612231777148674254827528156063659004039498160545830404402367372165496424331290329683573895399031373077094316882251610280757513169558325399979449243073358020359447183136889470658092070189740093325140890030148430216450134149115821995814647831996539854585847793203161606558190788627440800816676663973697282132892920884462205409961628195536628038247720994073771725043963600994709755006251856387937965266046539715083669147584704182574246031588545395952577176651393140047672644762494545793694624257160748164972944507636831342033512014739051085856957263776043719130717544980440794436296840482161517206530312849494877521806679258489930667520542005022852062030133433167912039366167413840190306127265252408707490237570255284082080514188314339134761241044442920319298621648176466099193202132345392231399167462448505055986842319234674893268347526195628502499404906075118127427857063467537842038573793199743514600141701799129605326740513717515528114458238959251390534040001353735824018664636264552474028131539941514354750609177556094975262907351439717937903727362740995644594070340588493101722670769880014400122070380811796466805962103818848254353790761309031849045790600282863836985347284156219096082230240171333513558184962837093460248336528144584575642082827331243589373024575481301957505535300269208940954146961949912203844161147455623365985768718956197145562234752081357775652404468361017509513178240976216112282405577160812320533974237787107333935264166669730102144633422746145856814758679090709223459528404219388593964178242559977719702048438361165227130155681973712908713517301968116333712695071691304809885645079148193658096918603300288544609638788730403481988143404238900652729761680473342219626191095395253320420002133697329835191455267302704084935039503510261228330161919526947287075881799534122301208163930505821708884372436949499557868730790646391067371294563359001876089138797779641753898221063441731695785467422837010378472414062708512850955130400976699875698695310595468804733961792806011719522747423502025414754901730636320537343347852526771150748757352209160220119147372635354920924194367577784126974540754756156460869377972723202388992181204057421874294337734314380659840899372530447769016883790496790068586429580590018497404872699152713859538184911255546106516770453745383119245698326019798113884743596087744968674608687375836252902323495613519103114897248712265041163079957935082517901525126663675442231093009642417184079514811786897435638297358542854835182519667316795732233203399505506408884412418744483395677435379410140206639553339806282600045178284435420796413237540734073313191431340128120921677945382768756488943602638698154990150328988923524221635517527386569364053699176268838896080494646962561394396250288506186442493732749342452237382454226595358728115071789948114556697556879691292350849128723938806098344880515836541403668194357530956012979762810197605531115900455320427892708680828166122037982806120633094570771838038268642651410237073232465188656728268299991267966641386705474272659670229008211521058509843732992325472495142632143842335299740376529747763565905421349515136344785655304280080236731032885447847189011719920948757993686666681012241612158763641676088263542073037229910997735037724344393222831634008207522194132559788767771243463629940498495974123378972070056805807330471654555965408071777849177247130990994015940891941868074312812888447255604269037481669975354104354231306769550059350013658158096374278913042026417718089208597677688159766920572541676045429000622593153140624254427480723619914011427981599645092410439575415816675827069506413804978244177781824471210580855792969339283716295048829929209818499807559277840806287938576416425965616725017379205371370996441578303628365493469657871962187753713918477998600957276148728002743992686587564445795447968649689500268062942518277488928597923556858493600004652669686284187887161340615502857219004736982899354764175482264898462226697693723588752841095519214698425991958435832544888905045941639584671168788281425152020820143498261033350077929442703028852818811793999385439489518678703189799828898093667205815994129769650593824189780983173666955547511097981254956383301640665173061406138304131657662703440847326070352555621666146835803360761783856131383334990783639629317543313140831031062640527500276584819978638629660661317369644348442190691923255178748652855456969179178398746816197594547426274077354201720636817736767365018229037446838697587602327420125333274034995544333112938327292367251919543311606753769047156794431638286236707556126513094217065964594206658640752117219316700261129399878519652212900316837290322929324759299835066390227489374915603116691675324030579096476444363494055936435446107977993220529406547186426580485091283553014288167305665322853526987070401725155598566101564553629670590260360908723985468084615686425231036050198022514198478199510281472969464694035340093310573517213618122517271844756795702829668605164555744265719914463997192249824508385477443050391366497735116635701603193545546592234331094232417579945328009225119186178867246771181274135531210114032973788268397819845012425994330724849479497888347556109058192478305768054253350338680198683484416288871832709849136803940929682401527887360294043791487847850158022005522234013984769402761476790619646361692747733982227165322227772559209714900403643001344440930347821894914044400113332598098384035276760304455803527877919505776361708315287783340627275239514968262502467645399454406728212689276152914861912057979181694696531901684235474461305053768893696696658972424771474462167757297665108605620553433052866028969186981896580145372483306741530834984775831370886463831513192414530528015421599974880847196691408591941065501200633228653452032395558123489620084579524169676534946759403402245388034782978717076759460993490860164386303648655568550892242907378629445734762899111133554227650857200367622882417937273380257994383912698844316924672375299168254953271248893437760221689415653787558779638839749704460528558474073852468856587931766036832640313267185953171675188428663660219938318178012895807765497812395338043688072327186034545036728223881128872738393533336977299197174870317982365553791284115572784255667337752940725099751394476489286413644376120619843447092668940228324699203528923471166787150818152945418408242919425580195798866865160337169261046510699580577424617513293723983810951704390591850193604638342983034425029309945176174363382616984467238748144544271305890578723775143552301535513531699754751673228480230841560603635914719794371192406866450652984381015989744903853538346457955142523898364183155480547217072979639555595070368063039180778210176241236099273094712432805471610202944830962881546017059378459920056308304530949804910691350281390531313103707988447656098166562760336788480055268458886019137907011172168603623706699218891835812723396153216098992526358198246190408552594954962277305801576012165048694633697280993145931906526926546115827049709160318253040963747000763076482873983841371501210008917778615517349939751246809335613831344434037089830666861215669807495939983920144929106640681505232724638302795684243239773022335560121133939409016125573773750918687043755106604375028859529131704457273970814540142083873244555691555694636951804756650354691406944646515897768055389425303783933603024168599502809740123725636288731999894020906572049629931940686081639693777628680724058037214847480596481259404759538213059491727019631250675059144823969925486455765166990264204422521925797908401530529486260538739380201517451926778010356061335522018400789811227024965351470732771284876743303055896276300054534388926443454005995022055633804417629168246368011910345254188504167840536192167758492110340743561895060621621418483697718045216529807105275772593008095876294999049983760521328476857646267296324643688836075671361327853101415203979057668758776164141927981604155831497854565073654262150949628030080441354560917855984694881437226655408266555777297991844503674935316364775843238108448526793686066139748371624804082190186708491961100819292977906986041293134100942235324536755218587503798564103541690900078040533342638886716185235507023937838607829077667949195920567531705498934420605612481652339896211213440656033955523916980600703103266437328759564348943760668051081394159868588976993661015298684895787514413843948976569766421896563125369603011351528271465099361524054742124893223251050871615823205712180461325032651300240868373534614297393367008187198017017245982347480482197726161894670532011515277082684199133189124680693289867894841051330423752699459159318964850704946140773197752032964376205826504769607402697544797201991916016059273816694156606531576122907109439392775922762615400379645158410644847159747751379855816834512979460738990629488786751435688814961628219907183553297006381989200398435774377679314582036377430486677699472940697308955072459000419362257775278473741050985154769979099310048613860654990822899600581548309110339154634122357485344691701680792274942791853814087562902649685140733556767903294237233614090252243419463370207719476682734649382520966097987995533409716672887776790878646625910448874440066211823694084616648891232920646572824827333532559427526222615965910809636082783469943950294669867076878758454396950873308223685756097481894523613939656108035358911446093635586582138447963479994973911544496692387729978293303601152173491828924063053636537759655996770629887290334936982586711535074873412221955629017178761882959122028454296995837610938177959282228188886282722058621176528246726723927414259176825794129240553009583588262505296288540255467314055120689929738101467916687838707853873320534288682291056979423147233361083197623340019449196316878066063518503536261515089965020620361734334536922436394529056496650545177756039501010987020236916603507988558339613366093966582170091222521576992169505804830015730689862930343121290303767268619467838259684782774030661429204301372770216208654002950454994896610993181935651026162526305252260395859526407936932033897924582135696597385355411771075012258287673143794072761209913213514685914466797070938442254835253616966814485227505811235001183666652754945578129858138001155053375700481504839242412144463646732954050157991978458569551098680046688533809043374066711594474379090163230985904504497149877838350473938553775429808209505751018924243282613058335587219216893510701251520440678556347868497598438771852304627203133565588336955606219856674504941775163351375082011823509057659238469636708019484869228756500587957159619698386800917721640877889617904960806145337874110335213869586747456126654120363885930446066281904353848706262478928860828052345822322547122575072924529572106572632801575212016129690695116236755442492176898130368982319897568217870198263078825790420168418191839733541263018344695018849754657466089057215941127596591305197810883355676096710393646563740661182989807914620700635391883270384193494436276491959852313437420880214785083340838444297223655406112335479517868754293384620391833107306364602820389878133119122413288588308812436146741578549847029379053874615513894305958670700753591424866399558679382786901608872303662211563539957791501076548560779922306200627601269998493681839902677089373257809019874929830791337753214182473831699210607616416646035520021280417869194498052520517466577725204878329683617872168934175019037435334638527772188383670721263443660188591387298273346394206390618732433936048845653853747303937984746076179708155759166023308489690630321297583738733726354212266436480627501656013596097845035937907993137670205329775507921495074666751037029122460433799160049741595140632931232579494018322572863000907297416566728641481839820358916318672243907075170928021381376939500915224208457610691450740904113004048348312337103092695643337448815669264382919892877169404479397555037841448080331722565143370756236989841042214666336475495197710120091101630640251098414399791549115378572006755447216126158293767878653310915577881913899926435624021054689573994194751759253422658640680978329423221008732592936893770052665191685194374436336394417894218737554643141359726300444767635518812054331590458322951121383018696571302666651929764867466368746231366209690809697034843231883717362736452926476751452784502343211484795865429625521465965075591246106344922210976310159515318275271958129351101944990776578812106201260480132800112054677220664151455898026989451357302285828805024813582022818402916011164396594810180748123320632331280412050322391884289039206900509396587323270100559719254893326789774313241056244938830791745321735513212459459301646977291755625403991113868412398791307328866001899310505797844760992494198025436736352679764887522698098620846143787668520325908681561610712976987484272954256708335376607493960581249298258836267782101112452342318834044777740067371666613855992131791890844282708808832929501001081824819009810703772392306689832433546950377530224303397064068972022074007625419998099304683569324238189110337142722094754757318999330658241171816866266275300199059700355500275611229222249229801092239351889816162237320133412140268381372245122036981642152278391245591944351165490674259285081022038934633554073767690383558349176451591277512693079449105801796351774948275461900685066187680441046386297780602460392458530284529518583440450528782377129189291363199274751029295843357017945157080460780001428883340666267047631877463416868973693574989875774430538577383282800196164823182429261617430166017209178770446719854974553677230116253246591290457695374546821920519794634349294323457016719892376626902434432930774900159904688655224322541272493268979430564086679302077759333995490200325898864462090802449984231690352186754573688692358691516100513604398960590804041470735354162872993703794747016794357784176763796918237326279297325253337782208958130990221365705721961347594064439697893035100446853393684115576388596311000214644883709696145669303216105526106670759145450927453529385328735682241207067420999644718541741005485248433878175097977227708897599546766997001222718722935289495915122426494757293043372938816823661915801525390950514502312093660430051358741262288164715108976197714742497902121534143251704753893714521749189065635786113557705719165383532102106961718842768054815411337431313573977399266363064143716335125165092651111937927638152025234033669554466738063687676921986859646204292256474986928168274728089791823043378787780404249561780106768247550039388481073424821894724462206629917456892950696043178766962199902572006133472843079467469342700832006790974540723939387550450207216163098916236508495891153455092150831496018142068399234248579767339686644238423272001559339271525018187959958684233152472624307761591202784210599667951026291823437430013042976973318494122061460473577793044557861548780789656116843544119572911479545728338721097699470216932149682637027263717423789629329949098802029141356766419015154555795437528078087692766725742903235781199998013540082136069976502325778570126988958778435141051484975012935182910105471237061342748765526453363581108432674395346226136528029641876992605178327977426511027697689427545110609951413857687594772314829984158599128556989527810858271394340461203840201051309390160888898363067975672848197949384607440677684868357516025890341307758994697625805530364435991479694744095622921530302735256657754378382727160676171394242110702596393910385334669789767176282499628406669153364496634468320094436566789937712858841972754561346246610475563976191486411424787583668445451078784743593997014469383378820895650772364075437554652083198461186584294103245262402083005424498040733776899660763722440209591831808769009886816728556598583898977027187199168757767001238738569620470326776934035974681696097575968447974863508447543821034395291042801507213782770694121721537512506176212575310464014454046433592424610998744292777219135006936329912873247852418573239517924397334886816466867371815139983615353145905005535290740274024672488148912914712797848077512875951548297642380147312577576571643402196414218414720885682064668176800006396994653489539132318909718835829013265816334075270114745116100489654546954049728940600872893980625578139378888873594382645950718580209756289826783346857336059534226725638772422095100383103885343331624430267276590167464842526170697722856389515514580205132998280448739315738809356824953735934455821187200773409321116530401487906309964793691333339945089946658003346534139873442155440490595153361120617078387561469582270141627606893908483503622604363848486549812558258549877488579466333267313460761599046140505764285829858814535837331547694754260129825248094835992678403180667951662513119333057948014066544108116444232045928627803523898615873943950473228327554212647136866116128597134350387169916609734361477834981321584097799787028489049122446616756208715367766444586042635322575570413334707021105018759304814945156765034029724880872177050603094898525923339942811662153935006265977032083697680519328545301043438694713248334286124372187056674940710566044416271528890996273450986187687801082166416483743365159295742073994852001778968466944004698061446659564270648591298487204944591940038854369838341165910184200168673063752795440991016830949587165229996469231437014973938340493163347042935215079014061301524833299223106081999011742806067955089264681309129028274273561585115737253540892956335919108029353322241177145132703176562530896043596936026028026988656353390702200765043958688202182766888610430880286159737632158123491884427230003051855866347998906128934472117593145581474691062192134252191034316222310523430799099791972869375178995738520771175741361771142699583382724913429437406474685771348355602769260411124339704852387838893457764414931793544546962300326353957904932135720108382033708984859131504393886031225063128545703954387292414458812803622772985978891215051831602579083254048454964773630353073756942286225041509929787097062686698303626214958447098351112975740785928181109070856353255831625166697805659462245963540888989623905294225635749430523552985227305543105063563121565544494751316601613131128517648760740267528876777765308563123089704993538299489551110164520907657677410325672738624807633832199814471510886348976515903655818378310620351928611048034340531883313450292249734601439519409054864820992793933984875421204103996157306189826203763904374728357887182429849513712959367868949160976386565369445659607703938107977664938275880548661625563877715096239155988588294621037683393561589489860323269575488206108047929132270031177305742328017574435915442694516701206415036214544783891318664518602658401461573949127347781816716887801270008174773935364551150943063137947220085799064161477906550709386750153264528931320625623510213492062740875573343969754049014711606285786202291240646558894584165967285139407180005506942343884557441534756671662627203558265564800467809993829590659663633352605352057231427388925588197405269976182372548961026482448114345641828588920102569998537802104598383620701577299476760805671620241762219149111114260707409273927546026013126695624525140093427067343396039558590453556025728723573344520898141748928851175109694598943739890005002392850744662873979362794552711924202099956342872292459996333230823808429738735610819732542657607259065691696455913595417639098630680454219358714259441769925926702395978413818023667561956365664390304881757510211740259090650845792335961528368024723229081363191330182865187715087510185844149733210342170386794525807315350779590353533301342688388129603963936899901726570777517343669135976412315022234805764218872989620496455610521702278425230906387865458142582935652695276595602063441316793685663700778434247061108037427548879255940194453805500678019903866706301706344860565676452106113345913833248176870981786173658526645360476460335136706119826517790228740036195925841992399691086210017492993449249581428034944092155108131705234167700743154840164488792754384910783146465141250632417371970282757923349335269344490619455568690240704088760363139625331471486073306447436733780081471901688621001556583183489195245100859551242703924658192053073417274926688790935548693382678410352831803894226339474059077700632403896463080610738840833014283532651763791722057457228939451744121974559455741684164291844101847786446373510793021956940557541366638236221388568958191202006206243200104874334342065547197591595012368736579693480488625310369894908497315182480058083416804067621440148547721190632709057228612614332578368128137395450782602141597626625258431223634534758074359515896801291728785411540515968445476643035243795309103894459571367892985994982045873166770764318002802941035865491559232739498998240173567871959066959857513199708685522205268474730323059280234532013690111713434452432693511289165390178504625401028475321739523729525892764807576733847237054984284283402153288415446683700438495922632580494545977889712771264174339700678470773483684713723064718588169268378359863251516429663178189173037658492666788489682981662774294348994145875691416087298122351966017852560755762947471660862351689975913726248458534739620426864317337116354803340499212945807052495174057707566612548653117066913032644544850143265157258568154827765506655313581574393606109885727609535152930663700427048829475272071997083335384609336958411557116126649268554796686610500422263803446473451593961038164430111631418673152211817030014678438949861496887536550679080799244753806784235574544736068283502089834570439578950568027259441893912248323827967598044290884523420512906753847450093263029997953295095142492653094079157025472798216358498168311456232386121870895651666541656211591376091982557445558354698802730977421302220135734916231156108538622759145638760594018066922196769178248629019561328417962339150111615335996905912684780104871394809532229357761981559155548314428184122388917135489054490249521060808449965934262795741603166376935783987490389844133339050074918590571663727937637544002695683382544070920419270637621814343083422262914599668596657054274913501500493337822738230478058131302299087347389248047014809871413095945783035582239000300295875006104471325307505350060028604579504795646069205619498090016979300000290547366546522565909230418370603274603502569338001068234732544302377142141708943685924371593457094590086115252365740234861411489084578567008653620155408569398893647338291511730442099995886109234777451242304048277466182886008209361500919665242933844789004879935272185166541694675434345641797198634978180559314800450865987055764308888662904980885117107187311978993971985024864861136555754515617592437262520203804628281173600616653908178625972845984522324447649102758749040110433411467552769888444797072528843585569866882405210273903408941259928117919998442368525947647155816713431545672771454286326391833473272766912280839763003134612227503258102492753073479477977324364643108330391343206894568837123744945857985407379163333885411570257870145530968761270534595396024736161332051152362050038668039952594756500869976347917956932005508396417123978328643968768349027996766012323645396052191388602921565423027471209760448953802384521666665297102817404581106627127033985018749679811069383311379423299811859889000049689406509306207847211533748174285809612789884592700668189865769014469043301904525599738551793133002009533690978956548658413287980251265134300818459292053497759861447777624393455004766484419467937427482773644339144609494980870279961124525120773732672597095502772865862185434077601630284974108388071282183078100862476041712185006530031382595063336608212041563752647846118494274944051268098686089251649430649106340969540010393250135943159157838719993244767196828234837152579012315780077540324978571207526912724359725173497246810841618246924310479200241418456917004395945473024517169597798886941677360483550079373336846418018706413892671735331194690428002386514512479699181294311394258196498170484058713066997751998647924568218384654765175549692161145953057197478388036764202323480916226603371567554062396241141290581930988593375334454577082801340675513136803812635603664049526020127241660952755501184400162531548675142002992090490280916321728567874053911831345282462916850665954568168029366283361830067535919050867296978859847061499131843990309907094742861720291329293154897400720448296002178632714634056956924795949645424134920530481660435005035657003397421904646221267773722862168692417248796278058797551169972732553942920672433181067453309410291667047055623314808351144489772018672128944331469981548491217594099610362826882351941099196462767987697939672640209308200343206780174120600761446483917250800884541138665042416561538297204140797917204037015919447950518554805702759455337481374803973172268089025418859968500965207583565083588989850410403594057726632260195153480076482939511104111491392787280589103856949475331599959088697076602795727942075629433752503059282274014345040008875360769932447242848937627301840619080672599356055873926012824786631906141382788544976401947537910922198949340500601812713680708379626836082643422304217977510229296398277413000079224903258614285087172016555156630884607899240745666642544860402953562668987424507530550368042483546975537225334966800877885872924770408826001146317736894411958759716248302544763318929661816544460772854088308883835701641538256846651108599834194921431669971988774120493711480196000236323517940161005071862596849014095650604686726626247897171197836555833703758634893277524827887812261149514676457341837791115885887412930426077536088641050247925845856488203679714460978824667454979053220395388078127352122628908967020878561032995585957239617836531477945648938086194637566563545116004256745118755006237366857308979313672692489277442770944899163305275856592700822435667272975571721583735142329016912724504587082182812438131200371473242829433314005623634281127811652799425914099110521397852339480594542516719438503060899724766877901427306474413010348883730077576893524393555699299945267917697941288019077750848660943501039848970564769450655410969624170577868968289054096831817920185072137912660576318694268286263380199568868480446764163828723955521696799763717306421923351357068456056838730826078074715305162756044995578631558374153519297811213831990069995893889474193996961361479009638604994189144920570601816940847008532626249489787462283947473004732660753929026359164952938228299092807075996860868933503830136293847512715202652580521622984599384687782029864058503908747855482682344627782341637867578036909663113880112170057663337131140290136793628959701792414675443183301504446342875738382820928479187309700105848988389345153224940796359349670510591191821604808401982100662383861448207330004658895222475676718787720987487286822244797549668698832973670043681376539480596478444101943944580980047016383298238614967937552960312359759301189658593706951829168178095591464577694793959671667413293051009958109425933828516915716746943240593992192564091636928063786223425938192102753628603607376099178807437576201502587431460222315283303981905674698857421664392712353931072016621759639501162007095227894332265578612889892204594122439336566453683585993528808622062507888921332836922409162660497182543708880954229136045409358842151640662682817684017363180796319248634582765917706786860598159686735509234772618697530939794327127601503793755744513916646429987275892757120309787886379031128937485607988569119541584959800647495049837273840832248498670328118096509676631543554966276370225016037741615611193013697196942459239633999477901999237393337989425179718713672175166788099259341587090194445784514391807079902309415349008577076751200996372353029912319180148696390815226151584113461122294302374483017603454263910329877854190851689605471553742230803514088482960139545829006717413245818550007541054299789386406813066536157061928153912448057907221704526394535479276422651746693197024701156875961280777322169975090249342394844575977211015022494560014264719018514125606415071852566107737033070467252272644784028388383788785159871234847636085688320973595332755576174500907882761394180372523199957324189180540555746176081024734441127041495336532699430566711169925665349593051192513759665981760397518215530588175770858181043138126946102412914760176995193205178571108488887493500279824339559080951888160084827339985959313302457153916974884122688570185919936104333703865816491408992989627081127407503417454098861755168468315257151046188255820918389561068614444152678791650193725331680329495564451469982198346737648217385915565350606886216153918795763477701950423767647149047337366754320173690277058790953945667742380830562756206296636966439591412996462675034681520123468947326198435597045413244717675178001693974469881628880432467916370146784197896103119453909606616469853570804324520066313445243830121479970445599170666514325964997551449944361346556743960963342760272363072609184100988408993994410873221317518784485335334075771949809393094846188549013160983293897758374416327729490373537874099339414892055120781227750824937530962622024626640713369998871902651285805751121026177005607171140842680145025983399696916411732395083467140909331225316352131788115860667927179744623619290827657930228046475429065482858617635092563272911849192527788380162525844658927313462687478103196988741976400629853232308186951088491767384975436341151196627921193078712567188809988120322822252011233104446893024596641831127325846323957395033962574366608325679108625337598831130538794872768128699301950885315796434029526442451008384538433243576103191255740684758784802875214024565511893077502258146349593251632623706291905577294249544037678742829617451444499490763029690825277296876832149706790909729015438390866411613289765161264515948708498220055474963383043746888216832941839874243052036173164521288630010510328403794937032794279404060982428174162857058850566845027004737216016244372779667191186086968951231756437915233661112000440502021918320786112257624215780866676935248362707576974682005380605165312086727190090500273010256251428539068677839205358467177875319368659752635833208717647154197429516958091411982996859034240510021923754896848326678447287966276768142010138067365038528782323266974497942855909444071007098626595865783813625381007697674451158159557132803819155613982233722612476593359349783234193943797022541907598057144419617942896981443740639929491145120138562574707968760817204281705637503083338139021652059706512291432597133495681297115340182033492122468031835088607931422057856575817891936227289691256023203483827318711333623182188734348759368133069335671080400660676113480227411301002413650277419999792850413773912431827884455259352222524768083033097109454135493481019906285821422478068878172765645075457458726861132016539213677457918435563546575570991061484311082204482465455880607541791691339792703589985065339758413418107832950848292982374928589285835316991225850030628240005368909541055797133498249105657366578927502190359159361930177962206783355914398142385787847356933894472281190687692634157149401366923091519314705059296726132048793505425915536673614126171231908054147899576411032680938108128067836051445280589725377435745830846176906402203546389745301679417629773684954412174292118180310022233434327246548179034695892597525818397570865438148049693246487947664445169891966532075524764498903929267852826649211910623323467181626474033566870104744447748157829948211601395011299956321210375290800115048755316592754600174730565986481751171642929190645982512477542058988117998667155689337550864744130004780465973895303307761869142987888369747365199014850194767093564742023883245884631410351876325748733989907222452615690055951785549762183111644168800719402495980739516528800237802875198842919996646948414145325007950721152880077215827005253766406028602148757691200866545798473348931995630336765014846229089107087281951260407937616780756275462826623847628265812587015977925217096252107979163727495003214181592605119981031389455297834617225044791034347116159077536372941002043033667516681772686971653463954985702034695075693796089209411565063824927261383036998201240013194507471295325894073211089515578362875269658571287886877090257540799410177585290655908003157491246794640819320352671335883113001311331480944509859815740165896721438552998786965506021332466864188238701382580229488008221106691771934421947759462863773609616043469973927648902964681048087048721245980257277846456147684345627406399861929532508107575822420401824947646229408802136385278787356096952060878701120729402973823807565051031287691521311831638537118692947700693258358534325549564383127709547707048506856424839031015797347346661183474013365069183288864850753702930517360616595642887244400093390679424322247749368398717531623401803802875165805673220714937383344139222239510652143583632264959864347333183970587908740693948551002460317186641481616863115155233325932577839046980692806069348478770666520653592742595549389165236514467023865957957557828033449381040399893293157304744897367876270037612197680041786482891917164026619289600689715588656098907834220142777096571770831859509104037061094321056410821224512502369975290305737050071259509862531748775073562714763972044610159674900001121948420360806992261778857346765386323655653147510869903820473843068030984205937466566041947314318159195501819190550200096908262974182989295793138464584808868608795878577162756400558683593032004716736496330670516072528945533273865744304284911439189560397338685192674233057950364908993961816920178661501213097986072762970001913875810976437709733578521816197203030517622782267938388050514369237643495225352011293216989441474618582439156535926376484336000621502193960471938270243068500202721228497892117450521547270558916302128330225578898583042359653154914936473286730025610099220088724635650095767809932088413603603999867347230404458017176057902408110050433874355584895017788372021567826586286901123088987473275720537817982191438171505102523866844931301445837752788184513565499509134133246873869776362820736735948169611563998449007375689088387028659618572640289718124711502820215966746912559748113869912434443271005345375640825624637722327865031901072833230611738160187800110090668736791490836631322959827718993705105600007528193562341310179516953098461668410327059385188885251196083434496592366689517932898861331454506607264888869842953726068095842744946942997195722798722069537671807809853053553726311231239276871975184313254548911209491827231982402806630385990560314033232023630626243463020550394843166030048414924037702881668909942667801625127868033142790198537497517357519568876022264839844577737208843765411956104859692069700312852697949024054563310243336867233603178273035506939446169661748938600862515867401221260987231714486272611699141538774014331105488050411025249448924377744162263166205877719723284298848585304183496825585145734842274614161595998981886239475363648464510110967276101737284292008009188074011849516425398636518312474336030915558586740999011455470685381286637738855128317240528605294787911708439689654706881486204751944456603915442337401136861731456450160279208292359297870918689937700443061098654326429886665728395215564138546408675322068609110023100710666061816286801413468702319704413873119770219503017550391449145853520374042380812930555913766081204368680724373740214386216931752746343284830036540035274520386369827477819242535714702662504979378177247158782609308956026110906513539022967362438735537919721694924747375591219066118884855754105707936087076836674266025640405531703054172465383164091651091143478747466480358426020468187217580874860901860767728751286862042411295554612813410149092423459388067932719791030880405928666846129915361837010528076905141937235674363809568496540352410224272947880176105594627276315186706453240831202665403698022078369273066123704158946601238378778081441846847114909903657928553793117118999764513720211295707773359364642607729034297738011968276735318823975173750446252169793823777226359831449241572476805847823475430990531473169059137145123048047780266975096811583615674135640999923174005050019743759272725208471294015602408957952944334663260348904100165504397389776585456675597319758500760409896477125540806194259377529520544650292317646786399219368406884716913225321972093763530938295293587670527203031165499396380156094258580752196111398507195324213107152057932557781647824704728932032240830146384391808878742988302632080524016223593500406468788957804501728762567296913968320994329243970596367063123741097334363516498080654929429608620033019071427911623904141898546413576912893023224545945352262267657202316101738479861515594103766212442378731851869131540549764070084131907333680849605618684606749859356957891630724913828103610835834658392279670270423934506411876381436856335949955417154527356147062781469968630096230231458473757362122268038695768298408755931055616166829000781164569430540001437649918276867970301964490610125652543670321993047224062157432114761652797474341351415560149799978583903407869327235678723830661299327111705037158617774531996217568038806302487872492749063669385213374902195867167745615402409880769872760467015466437545119954202593728392596728565717359075345726735883521876320989068030239267912729446323947241166593714587620295659439119797708430657945368812676604287986909442648337990171317678856167219569007913588928108462904133994362831676978943179332703216945939781787813870418184186358023489228896472485581400114562153497750573098271962508502358508860870249808524914824226229984326502245230975707181589790473387591059543582387811981494576495085177077174777202561727505310218862337890338912295083581610202451624857982375490786316517330905019915279118018300251530052061114248588564975429031370598967942345112340154588468797251039109541344463758424752905374327079138404718170067948050593666077046241717906941884448144503625502346402158929248079213909057640005232111576222641987522580845271434801973083255559491956409705183479889634802385319586569425393809776076937896329714748030975196739471113134864496093787682689797946782889874953944286215843839602924007961740021945527915472043977856195304899199368095336792976651314245704121234874356430088286503332398657873032727576152560342461724270834919300809100620443890883469097936434438959898711223868517064574571292168909451497914564126395323996405250557767059142710863559530173208829467639973670966882304710157263569209130631103795853764462651433477079182005257568554034968291015120136464473746281506025251656482925582760313453688386887283055570491680235883921178859357812127594182073634390895987642054149370714541311816276131601260786874771519897223150152630564491704114251273053226369815444366335996296025510045449165843115611821043258425033464837010101379981141437032032434346266464202868575755711141565370475669291930986646248560830905187067821579744775629377445262524976949952294256700911581423006782922984344918597033109813410578229428856975104061457575902043106060097511506018772979011533170131211489581826430326597684141884763681410132869005470110075364443937689989763766417436557883649463823255971996162756912497099434300734529515744789527434195727655367280770082549860684683962926188891536825352473389707841051594402074169435856866841568249350144426394004719043818116519531835276906382290535962099212552532347331364773193674487193834343674584409138616164280544478332646794648436312715415826877066468406161285423554350710378726987763780804391133484682910921667084582297651918402572485101180265639953288799255411093772923054682363363305666256953223589658793249072508970465664557592434967110727545855449882438264485577724145231889587025020194335797364071056436422239618305746819879935268916560888793021808544888132105132688575070520325181483132923239958921847489322023909309711904921927973566822822558484717441570036364445926604691519834020601758950393964807389782869901854076689619673486377769150543528617286263137559531731265619259856229949182786402769618326023712362166924948177613279373479377475264391480311587452803942801684033472687995288687415140271353786204194862029201686964131730173578805715677566497151516729648094994916637888794727026303269047933601242820099178654817053701413311073765272281597372858755367744336257311865089187798119741161267862442571796227279215414426464862843751013792519879615379542998771674481342726296014367453669655734045561206291409925600041032196375884887764822437401710099804900046117764523712915393225665029862921758014810848779833925423354065605891030639501733379620513413994488971445383869785121557233823217284714222659841873074376271986175567998976087579858680279186382269614993213405126378925850181109533044678432322272956505315856644844137898000251232145410644223055090690495799241226206923700596285877498807858134035574513373395310466633644834066445237865723343346376729298427694427591993254037182341819476592074082967464176443708377232169013786755053489558130178521879037173782675246360417111229127313869925628321519573696802121204734551816507634854091819375699002576652820825407434611243662077865237608696903957184524204623613333909247387712517384144478480723411671528063013258651434041924664812171365323733486123586664211777826164036692146758765856252121437643054328435667850049790008570036646608500146897267248596903129690985342597295122063570824909386337028791302086746691213608009537585053396330732926421251473682570486240039259189797663530575802756756512818908403950093534948652809215647271816158998231792093940907881196593654598370927581304872205709176582224406655710455490538500539024892299210967953737008983750700180952403071413816325707571105874069761978110680855018286621862825915026404358073555197488241672629139551647658633244996832533121880018991504072899797562579853899519978159592103224838261634336634553555922208217422033870138723531904054954124699409378945454626694326636559126436606941908321210762882147988765863976559792999716180854727432498886651180449740247217876194598755652777238840333742499543351135829077522859663542275737374783695356643404263945303180537754762390575964064942836991345618789989851098616549422680620227121410051291652407577716260135672827504996781191088507227704520530022280497836375356365534397435204316045535384026263509771778117633082275092090464959449621713261165718621870745937925766237874958952777252403011852998743235538515927627795097254688350546333149608013618716777862165405854635414308129012059119299547680239251948235347646057180760851048920937102530973379338778244766149554181108030097270921239562885673566069774838273046327747200597702472986983150847567355861413213748374665872083830409542006361125939832779303328369285783987659776365204735388883912231759362970648141641724027975173001631646008527554526799686396425110453727463019435441820992723540331589781458090805937228989022222773614595130438415460014823971706554080796982247906964214778857554451057090814849724085650410315722503124381933376912568114066108651219764047276937784661293886448150214088015320695717968175771139999939704129623012141799505813124258010522669594909527915023802345762738592461301928161695781019470457488391713782558339030962521591844738263186230295474265583887207596679578362391508695359119346904265385871372248146975621615494366713814222152019811354967613278958653924310689073293707551665714140754009866640047533039952099167221248813386779623245902168293274513407145914148471125793246831716981744690275246441318760984932989715293958972896481460600374837294632918920236061717273735014018251181631266365880458901896274029716837788502839639707718329485914169913074237715313591689166520643050868950899962113173289041069501638099770471879494005232275880687240417247105831800725727184650304173989047859987248588179087687795235611000534224040285364710036010351510614457479520082866943136684394292300387485405884961518488671269376453656525380668864480853111000963108917488439377127433616176264669675854857866524931133678620518772622868245812615106624507753782544062412072923011099296131670357142089576977204389459684773516704176035830697923439669914160322645454281289263361991795985850891072828289808215499588661106653610033597920805853262080051290771331875722332599309231724931950727878219700845134948298145232809615037086691453187179262794098719309617928373565348783419941436694600538253592807246303454767189038550176289883113018795438566277007163296045699932753358169718885720306336002239912862078745507934711342117001150035505710708829643432114969097648890305541984883313180020988917863375326395830992997884277578760582411848645948116791019378975897020855786138528494326092121252730832113590279256955232178104034792968135548852337414370572710588325639445142734170896851237647238502956720561596639971979928753829822637160042957492162902642079844332866212220466367614042911787580461210876181488640030234566290376388964369308008228022333473001754961814720730657769447811873729396627329051381140498316622028832426110019356001482910994590688305575411723921979587484543478175995225137274132811680116982907330907948392979529069851287047832240068956770690744969444583993134463119973386233639517862360280130983016982197739760960075498679996947621955455732042635544358079528410829953583120272590376859106370842404516992822618607864749847941765121609306799404705481382255090960138848132321108687158831787900817566893885926181301495865179411971793396975074275659292204577377539711587775203734338355215404092103472755163189917979447291332716158516630277722824507554133405692264034795736259435289799692023974485900090437364506211732955154507340404722434056642741048712941786258092857057620265770306396484095110608987943375131573043737580846321280469736982345314352159273303846111134745406029279287262820277840942036965269702312439122031573754554023839890663999253650893126639017571992564090421141327982497728456131522599030137801892063374107213084275972208465521514550211870973991940603276635513459035022972400499750379072065470682458283800225865802304138581223135190869078473322655793574408644115520174288729599709202287604010875969218091600888600439670206571796277086966423532836828378318752527994058036888136990629809278845963814209968452275007304715769195952134682416681214843728811034004240187509266792724874674377064916402454267167642358269482018879123905364072856320776006506495787227463932756274503264240482118617885569518304790513163205088880577394652618697790937053364775147946074459629870172767224026649463129293566344163534265989567622646512802356038094069969376914856055556222105407652128720622931525333535916496236339697159010629094321374773156669337277128852934721105897046305960865814414765087632131213211389699782560513693174035980466845412741192852606641778557740505102396770375272618705879351914860074150552265994033461367524699977813071110334950324192790058628635355975641764160244448217473308385696877804794251626074328632207894757506017078268143661201399226582983268122529534916281568688707553366700820434263642749522155783083779647766811544907671073827311017624275860020255198845492677313948957253295940505440931136500141783012190976139502208642624424466332154337796808766080649150117985182089642832003168793057198267595853791891069713667111291947158716734111229678590669114566066383939043879761403279179482022626644047845777413669095758364804435872265749788843529564240415560864517895546774077630569791260378191889264409186751661683869327369219978850678862718750455240778578750552328693423906761361154377311427860857239542062776886003539489267309172111591198604249391886304170506260764430758590273677910875749137836085722444823042594196640456076846446617569396325042190264028354282780550958457452071925987345617455261021046640190746904870164140876081501508924612695342359398492278723511830739500185085215592371080292203115577915117138630752588158348937818115065319668687709246684595179869912671996376124268366043361659051826043674225065757309876812809632761548727115741251133319485369452313929510657952035444095369403581358855026534174048151798661415955077071290546506874240640951901848752610993813475363806298744082097000089851499806986441284137831108704140714533432979895062762879913864424850099450657752810743759406055903845898311396457691815137504138364765887419750391328052850938580546922801596010708211100488702559594536768585732741270969534764507455919906050979298335245908034030091678781641596474375838605102465475396513326831825308247840543596600947285295338085354264247292016342012310361252134449186943074287683450909117720337701561125900516364400207575217758747467212520814967001881213823821566322279302210738703486752439300242806991762504991362721365489076040691321631329230711681432522996430449000784747554055526646677688622667886225417316975011430061757434964042073390023705803503803690086807157264487802507008208275265018156168157915144512218758622775116445881499236130452132452299322832450881476365895652770241762838814905845713438252654251776508465940119737725156767142275813237581759973981224039568169544365050600108423803306287805898952058520136528043836135808824115112540293352695443158513010628298201017871064744569561105459424012550404774286604463393196737416736714774551363420100490956576365202788438256844800971316349930851625278304046908954839467308260886481766370991273047101387907981749315225714762608534468023366843230459217838170623194458170144635666660356669753771011422446377351481036670682205928213248752349954927908549167653815225556896051551910340763776425969187732682735791515743429790183110803329316082244200246655664968998638218152196514148108389184550512567072310208110148653252148545606283179748527180863169272144123856534538890991215147473212094997129199730203458511110991916214534068488654861949924270530187012920150980916505190919476796213263278353385089393586863576792386448829968987531042173203051229383609357447845769757659838120858194918598456560285178163920322719164795180884037131711149712066988298877729420128667470503601622736257384309475188690062102147840892248758799763532653257705777596171843544747487818478956660011536994708980049394455499973565905732998020304259715611429301990005883657527061228753312768517783499271914527963165021227814514667840509746618135087513603173319317391142613085415771853789661923954897291745153389884756292769794925776252252022793540567353742839231921607911933581341344098046835880637528525471590888299831366797127987767627240280845084401018521013024384989735207930643985045277327633996209755976013015563150676226110859176292586177335367433353234221651240749276014971255359629782003323635386664353379352549848007589493379399089048838705571058171407258314383836550714279258962147945321555250116428801346545291832049770435460619841587151217758485009026582608824881839550608145621893654247061355418247438639676319213325528615730196068563067317243517500350365766508324596568909497310823376873949600224183124727328247840436747650660958242396245780569534752552177308880463582433160860877853389626488890815320689653971086733680106638192306095414862943667055646507139305597451871967475056267710961456598390544790082850928499214254949436150028045115587581326003334622826556632605634323814517277251037159331809202390539259675002764400622587079649157412346742449230335591680755025130277101098611300410419520001175846693125446775505670958193224189200904667851192880436386295000367702665326643676016856402187563225522781376362521588600014257086474234142861443420240197607876197711793741787439068867596641414295281736340699109740698571281383850129162742729852942435540628985168527644833363709340095961695277364320108004782544481503736579109583077879997758579702425764076982113765788748117038057499044871075280531396199568117223824621217786118048529033531397478029430325697575227021088759076563055581307814087596832804367080592271029001654066728510842473297870663750306167713608301747722853933218217580492345924586749468517245295867373193107956965480981133017212562800124251088255941034922309639149996265829487565546585606041075114314731094187605828453585408075465761256174438544940198666208042194346503196150170317205883200618205508751082899215446311402334754304510888954252038801816993474490518662502274276698784160665349547168857016547297469491468118348914260929860890255150924715706332188352463713789840062311366321690390589960995886495314835364596014585495393843189679014421869100685558066431354186174408832522053791675304549654236438277056575386297373281241453543170717005237042756021675613519222435776870044962135785700367245866835582121388404129406862827080399989280463235123965113059487259501454082170750271257898663429686616879023354704287417254348770408575541336700721140818148283650961912155398003029135311506470554019698137524571634794356586438310220353712336902979006617977912057688804237136827334467935992124429551184821621748061231848336798644970283709636002198515089871445459044381794855685832222034674648274356044240222689712718248171423304690190359721889664617494287701659317582930031187300606564081628638599866221105951899395546552354619583033979322528968091850388362303981590357153649331027920296951684235956881398959762041398331459095152755931639977075008695484423853220999664191258278797310284635715507160419296120984557180850749229654819992844051349006055918027563790909652626761304293433195091757003027170121472271882445715892752816428458256176112673201878604371667648865054910648263073133876920865738916842663215941008102033847692461809328475390461155773806789609380877483464518418259954469432490878856663900161348717157298008111010635060623438257336784263625672175605747129773141186475249936727193619885502413463639999745515917368063939467904727861538754752350708609909070696919345171183273287483081284840282917020818489481284108538377845970693370600920514414271984110117929299248142578929185235544182237813502850375653053021683710665295841584896904265355041148182459059196841074551347518638429321127840061290882603938545166925187023203136184441573966558559167434772916514937278131813791801899051687140632457001010782531755636473832668288953761855508475106938381143041457792208925348036525129065670930472241522494167818415380637815723057098255997831771736547693148452193238053953150649188463688525781952106192133373977776839368842643584368414592364105485022986482643137750448286205894302846223275991728499034662067806536050350293834056638561460405523353570295274945544489715649890880819630104524936472974296908815992915204327585081302047029034182440672214873115130964746669134915936336830952652033019644995815335126948561642610154367982443833152136316895694815953980977095063839399785384720881479577094846630511391060168388552082189233244069299596365498270101654171449115365488148313474531683694491052026625345531730924727863090213208722135077061866730337684583281386268628278350506664571657285862057941510707048703538301366231364399753707413704075034476368172480473828830168489451175442872303832507881240555420798125316405221809235678055485384354032219701706756394568409591618954689777956748908403126801438078999773646766449020489046366366440942141352449832269337143965187508503568336384404541615624399171430358147227396812936519889154019718225886998506310821792438786964625832296480294665067274735844187748835580197549417400532178090566173717056745965369821696098522455491175679620451078036324509288212706827370321451197718532463816411799180680328418494140556676012035262290615656311597438287212249496529459831947751108355567783777113283621150867895684762345934806929512803450907570355884807114747011744138930489261317558460777051372601316363373441165716719894404771124441035429586303425398253193268746848821611295256970989797967283959168415217715015836365259726204628388307740468738518386097970309272045874351029524705469194169106119323209089713549053971546406230039834672887132793582310116049794023568533381243839663562704292703524155575711863390232897775574406016794501646913687445732815821540556196334076950522284747602005578964099510888341374181236359554108527461716872159151409263459080680768687197932378621403652126196500905177077187305105811162953022917982394215281253457856858267463289675170325288230385346404953166412179415567561895563683898644631719479503689405402984795679497839258687537948259149411618071481481550174624539590068504443530986107321611347288387489568674131863420509933287923190689806163138575331462236888417683457870406988417627488218254336332470673120624101139525177717108247123683259377596127619180946698491817629042780121154626810702516883866372844885513839075923188548130272765583919211134959192829199746944630083618727227781573278323840895558136141889609145022581001050889310548745952221216789752099719496322482610668958734436046666478802928869521950947094446244264786523561389529836062521167502900502216573374841543504113795356742393657669060763038453612692434302511692297700953095554322557419228209350052518415480893848192288998653031629137368461540061007702808373735125438733147076174628432149164626857217652055227501520955763942885035755960295782257132637738723868733677159398092142194531795839187785704485541627356531243985971832027494594706076819734911666287702543738046497263150380073243509052425512122730107298475590836093720872297277814507604910535537695857667728573682232330389692889973300801662245637078023946461313310122050625765899188327587163551578938039748029826489645607024015891913170098505741596200334942933304137518903852397930067267202379567911795754519881974797663817767657685405416780907510368585987333084263797114791681698364691478850429608868044516902908845121719760717540262988206348206777824931039183809628841976055625854636651613570945971365085568022417302296548087812081106757356239368102931521263501310746466031393921627186322501613980149348005785660417305068407566916282111978687813071601671003463584280186139372699017487138409277031578451030383485341005584415531240052611223397760800199959436870868298865985150605819924636450286392180193994423567793538909941347867114776564492782074924969994058779942148542123346621417142039976392190598401293026793269297778747346019308324403157943520534881383410933172008842755189469125523031367007339415643103566890136715802082973678463594725952448385943418169674990083058215746202385833022337570638043202313751000485552720509497134548944175132502571654879672464473653934574656311108503288126166351359457896753310328709453824765835411346634774292829354382227536983262841906218390853012932020038081456705496171407292221659966091250685231547680661378022043276012354102653749135064340217004705282186405200261692659500547206598551936763205646132330092707496889908648342731205953522147576188675843481349484288638955051722793350140113619376260250355420353051919909185809830548207198190308097305635102384518106243157170333141049850853919959272060975906200383245733220990281428068750421345464009028167823251609413450254834102422006941318016558518891922706715282844187315711416867162749710921743842798803846016880011144966098982029105727913711577774087893225572241666507790045359497092670864537061881076882345043550019863579046879957727893289981314084117744182210954117758313036522041335743482644568810606914205907105805506404902184760699948440777985093899094039883297921690523700820294040993111844148045412536687721468856419636194608084510883266224284927686703156158603669910796202265750771673231573831572901513286108166936583955242694806642389247646155687816122194104443684947033201995718770476478943768818643789329724448951042571176841106237589808157548051713723665691967861849706199886517462262457168154109107764894834055634091973763583709092465044866083611538113998578540375748759316383741266341955774742310687336621430769901716037213289434541075598351005746109014477093556272289451961710812820775762372462904918157663518116404899399141808122950666679057114143823892144754917330819523459469245370653689182508541358159193089968305718472644938142504505687092868481890223632060067014969041668784652151292776828210413598519493451054373364433063230456579975751036206646127439818152149803653303728502010833819322124220989553628491950549316318332239667758481128221219623090018839063806348768500706065942124983621100778653814038661992577708122577959149201477060484694001883758751484089485157641224183977638555688441668642948995452573990263544996723693055110357968094977737403140444299407439482514680063348267454111037919444670251347615260831533870798827910038813148980125321376635433447855287098566936712734373376717867470997855876605294157453786778934343420117199026215230150189560598550569152699820182829390658703546955570748647206300419364759049623738043755124686151902373594936950632554031800234937893588136665474513073940922923207284977991660001637382052860269216527542513219543729231264340204241668034328679588055099136097440622292516316789495270114268999992003497304303267218186056055489148240418816226596071333256451187924688985569005073337169840496185404375906837564350772878564445536227189974838088491972858730142769757671491390632559801765653739690696343007195445532982265526626891528092820644853840942782272515034737526743987014738357810352355940843034439394476495051938405619550400957180658566486975989877350134618495174752291842900158508471716459293223614556078143262955611279428903823777489318284082102595525912280268370038612712752062008545956927628974328318054841189131445665184533891106491097275920713067927415535402610929319962436381975953833939683941377252789541815783068913268689417111136997577527006932491586454401719602268472378939361427781284706676655920952871889786043169188812675460688099298653061124504849600106148576189500284609857914410898617536995942354220088185669374078432422118116341349046113724977923029205179664521498851884153195334536956549766286800248673611741017133296874765172445616110828684745228261518714735124560827759485992088231658629600859695955509335160983117724254144652430306295727846849516174359293906373613561308831779044134146207606451486086391049894056606434386018092731868282355167485009461214551497042163615464789502349903870419445895430154737372757629440946908042855722778266126961583507059146793129449880198491008540077404352288366715379318057682135654790832656711842573148014100595689874710125926841108376772009685626766165797967562651947840998551637222747908369254896946806883373746818334643690776407152955568041237453651052191766672705777750786399614028216072987518446207108802456526415282757018680110764816237587820223472228479876308124943300713062922299735202304703070150597327932445114262233756386453817338857458598163275528146145493522206661904802222880660047635000940380914921229981104688824509537059274875787529976871733761922002625579430090478430631057325919124046263912361774341932399567102329193232083875990647355058276531289331460302319579786041225835242280880588602299570864963802108784809650105837600166965070712913161468507413311670772807691212945459669532344535144601056341971388848310024055731074114184978316740504616432623991739352974509593811812753334227936548877804101512865823847405556851110549085896306321109719195612637325049753483230976759917814944376796550237361060361309545974216486439559817462244552264366769950654089951061431581668446201385953242795939816053833252542881704785492048731119200355632703993734364024312851915501477251406519457876490162762726150373853175188652356567140798825818242826264114083049367611949764523629600778693648663292998949146330922173336089473278605379179006930243173645368742382069362906202008576792660862420981704670567420913618551835697221541756158673313699015905375261816604384405876481578722203101464038690329141334456892442645829291915524884870681686590581693233103385285209797484046207085247509965265961604549443880814024458093060249470545441993183292415281211213505909954021162513123510631694178014932756610746091328950767240709146510410519874169391579428884371803297416892327744061337372730398177865274708536491775031045491607620942019542791237833976386587568388602388065255870246313551808493586621499900913886744366682055178384072388221794662369627892102341522750122590158084368570962842806921972331019377756542880989900861486685957750846835650609944234655530734974503049523537272878098139474241186914588385599881181163791395466713958469640305793457833216158376790238292865242837762573661747488869068530425708950554410281570815579582776568084170219130494101760141035033679643739978743898087190151240440024628874317136105016051317961155913336222830575771308039501422535469869620574475679595374210686464404494157678317230040637962005724323677986527485982330359392600781937093401836635784181378653050698946599290763165773570012081099279543687043512898101078592696328695517652437382141728541877413142827639951753727649622732121493532734341738192228954083006974467311092625768729965059548492112393163704759722125089898087777900507562085643623305257223427640354734993004931947240349311747381583395950685431988071223041803434790750336944924079538428102725591314203785709115884440249742883853019769933197085558633513040762959617867944894876610313950062503300137491258906237139188421853047720458209265295255465818704019018455670509305692292503283492572927548284008052724260514019769951470193112604516053120265052310257835469780221213849395061508703115394862401214511157736883289069537028388187553129649405081159086592903665770395287287323906852082292674925734264670698694523790115273518471877134233105690515243523693947215037261935535817910202444125053988718562525056448055609359007910995118460729107613028955583744002270183743821981339518351785992977446163810108121624513542575778685825968353987985351740155215588758066149233324503881710354302380573978963491002452690182505878678273212285156249990838293240618182475526127152988607907859238031605502129902171371945407367846239593679316509479332591904943444561323012231179391371519778311796295395612729499039854999303841289114115305062343556900052525015354868700166508283579292771831009659216143520954215063228089703675674530057996196349107145280507093160794127067360628274737838632506769934593290087205758318523208409751250198501476779958680168844832954787719998170890310522025863376948585828569360117521249471187778900925474273397198299724496282271490616762957180304754202132218102159258559942614723733074875227654441099645405878379483930286052435929084647444262542055553583830875488012286951560364583860415818678921511256422511786950313440572385130878118355811703060925205257787798330072804944656121114473026207400539313457048689352005785393521462854572256808682793385397483613541614724180078712260080386098226495300024543477593979550831202426418443165938241399811065335562389512150158167049326537849339329469858708451150678319635490240068840019969960834188324449984526346617162521394422294635303896831475849977052439131071902403519772236663493106119285715927523761696806755490774224523831511974087898760368252917510241854149295083020008819291075722108188505946134701747238443185705957346667709239222496775203937896181779898594451409583218263785644906543010658733440760172413686028589486161620762508194822056142034605559953111101599369964721077405722907312572085455952704007966017688313392829917098127100347827073960211582320989999172780872649030185147911289046002497897548034288195862728871899696379744805633307701677053130584026974338960010783100442182536743058430492447881944857668930842316529786678383345898934748103430371591130443273869427071206079821874847206908289442604412137333945312352459968924541972787972221679958871236481474520089076090772094924244786300422565170213742526907574544378761284698785695102263545138125707444585014865453673159303254456568748577301125681122715663350998876884555978559462065488775442756630863369602931365891921188245424074836247392072806244008578276071679656712300642927905330787367839302954502402132411586820776185902750021879289415220541012918840538079077396523176433106893574166508450709347041220291527306908468622668360131727549063561932257279105187680160458745894342681636666396806682333336694879334696095084999248280816204824639976565163376458358138861964044831207162006494821820176147998003785175259616655015231568566604358131177868119649647747191131930006937936348366897881830316277666104430409506829014004404567625212379526353490333581045181915909133401137040247338809966834915509416718322308735307741365386304867935773071845715763892334647253810438893407461475297878459268706505026967414443966134494050967845217478674389515401265541712703082496007079743694272231124110721812317265387052678879837018066404828519816717965468239322232394638466313994498298794452691742278157451571513008520397475405441646598715511758545029366546580740427612117229262238892606253173569465744291052982593761752510787431770443164395409427062694135234621782666635225290410213612135810990046414458095921685273824404583847819534250478289298024943032942250552136103213482718465211815885231668871936387119486819738599978256928248627933115630163204084017744834662794521944327110087250924192137681171035669829910921430920188696617481856520712379305285969598438565402211309515691838337680906845584604038277137140626285416715600972570530621261131632133842245109572323240714302118772201498790049430518273139436187332285334154479164423291979729285898141524547219843161963083993628062624015392306633515933111633020133674165752784654727887360192173359091596636128116564393555795357472917696907352376403764148825165386345414743862601731712600247072918929347065929288251486182712495234616739777207245247784952927584794715454967262725167230383089671152364652688872292428409465673513549260726373647071463784900980471634276349042854967381450025782737846138910375552902171708833169337711030553253649929867666706967872301054488174257366979907107969484433350155579643885685138554832741897514923642368222068328810416374209568192641613388523837844001447239489317984651665333796379657397038099290174001546973979635467246078190904779219570865601262240996266546066441203413975973300825087003331422875075096101191358351742108322465872644711732976994996141986662842292718460551362670661752277155240850276967624205364782863443453603208879949511668953404622723883251999088275118544156217527894621585629936968761238289138118344882411657619368747475671530345543272116362194980171009277347846722281778460067187770735067553853965335351496896043501778460966299548095073174990505935890380032433150338382943645930494562749122597865035731268524979497666640858554619522310497175193846335143867554216651228024497979971394711881500134638286765441984782496228544634916204955813756647437864512851156317828546385554266573219767342187095255239010483202486341436881387889716601806384032123908463312710603785172418889001311186515078637258045746373978481501236077611119487521461128508715818594254991968069526447659100437472404571719697561776664685177247784582160376515618724443027627227236528317650988902203903854937167076047520139030681473975860000453236984113908128782855905979128633710671027146997327927919267155833912002982502904358436428836859672295813143656995146155519732974807443235577535361971403327558150108037244221153605671869715536549869410045859195755547246499081070432665381206681177428456813453247057511980635455307978274312587670901863828459791048440973883923027039195018005679805005409779029413941196393584085003234469004953947357412875898383281324970603561092939408718547235717927585397471321689835866476476117184795337133422923940835525997802629951844177784283954973010991919271282583021814467644677164901361175971836589132939906684998936174090437949504103400121752752901402891211571691992355918953968859991178591255749358223539034086113618083621583869072599997537943372838602945356166243763892517784442637801480977146438690373414157627832225921981413017840098629650890166758296486893881891331671710626398965089713774842529612050210347650054397892916014762545640424066332624783596972513838034541173208722422011997732824877426946972412960856854219660156034530636236548981723894415528285125166996632461289046312652178698997435380535920320287602751655905451815146253480940227536529887535171495962843625842576608827723820904571795224714124441870834410028317738527570870200691890215226666210743408331177493750657989626912455998766430553933710776036658162509964905099227305287207912241025428167217505755653685817481523209239049946478118657294711860233707673187467214142233707074544442126648830568797179578134544685230354052009821130094990914832522026163234521206180944938740782410277866778147648781572706386198666608090691188873635876492397496538693347889201899468150865413565595939724482024388908434918163492909159162253562546815790411365953420667110966827579553234984725520904325184280914410384959147463645513918922810615918852520012109591041361292933014121798604492414925106131869457132463346094132318463573567449627769284604280980183115675506797689563845198774837632935832449969151710805196468946582237100670523839307998880069553886560248265650631060522729604938114760300985352871679248981720628220024375368375705062488372920629293611772513877334177386588630768661670620643104073793520392784740815795936276750160528233403463957072364150348205180532998705372689738734939841917523098724189909876721602153611035975951570811341594593282316699414872316071354413744872349553101990155677122923382557598020629312357798362088973868863275965293617659941946353487219511414899238550910803587754248865462827809137946681263791036982837381337996560833597259176578429235318540063334609853162796636063329619583935722715798908013010819719173575642360229515731006672140514949839076161991841177157358954169200448696137434326896993235535483121780320076250965049500216907740757427877429473829543508449517947390813905402402248417676693219408826501179250952871720870722587885076223119390923007630854506654436325141015953953916614146728679811624774552328547514661679099448749235212906867825615942745573296843784885882414266401872230559799932420022589572698653569590392080027037864415077048129889468952338027826715264388936260632585058547181459596224661498047346035133804723826513371123199532097492663843896799347188083546440945195369892151923278730672354810411748422602037040780109019324803366208433347586525290508927522648047813400563272279812240313412062810188897981028918793423470133077320940353306626059275436361209889430340827398175882123327976494082821130844492494617592920532168452989863050422279393691135569398479769474342100543113579497163100672624141891615154637229731383197063405534714791752002671070375805450173017535080063373884508804497397927813063842003107351929983842235277980810856733621468674206643854212182348055700130606366925745451708657024673829006637770716681957758865062378095352524212302790203558916111829145613305503196849601811812643857234148545702155545527209264793207484098096878847848768632496688200193929940775393155188291656498357951322076237277057267831658644979184104682994374528037377549343911138458426821589811777672943570052240908986934208876652496103474611216499949418791847938191686342126746325705468208428570403472857538633653709538130761538046577714321132937382739383291606460994791180413710482985816282828659718171488001965163017921897756300585244795953824228902447448591954028834549398856157888112012803948981830685262359069561090328548121423247322246691452839422812699039269985639287734725044274605362296061938356518568048392313496285204783066112755406656244103532946558543311320999521732876836070818254150740590756245895891448440375877930209827511322401221482755221694322268606311834933259221186292779410914204007485170779657692683268991125006500282122432453687470362507778718370543759670775399625884304717937190336671789182796870799883917960443559760170370519861578271056676134440814089739587993911790074718471388582035719818893780716416257606390650242754790287368872389233412374125811284899875983235872388200557536488307188048585230474853851660807805267937787140798197901183424898751385270143330378931600056268675282857414285631590418685919942361813057419386848016154082193531465202903091332784959489996385716755535294628395502027388926529186185863145510477264085927758631806280056944351528234961941891222765979438415780922356514894757829587961942844023793336692073001939606453000151555098226298634994920746007282593219809204343313551391904749825798451283956281988051586248509623876081728262339800865106103356724831777252475318015339707320664261412893523412342314693667890460873081913735210943084170750050396839558009829480401400636630728073742621609326346748716186101193372865757810163090819997945089685623926663325027897800055276764545083278996437620606174729753764557290639596406864564471674488169800093311061005348816442203632607322083086804614297151811933858926216041862929506296694466091535705716521233599835096927851061150506296389940503289379000276221916345023866155916729533191013812195630141612286511565569428258661232159258302009306415134251002596945247247452961462919459368516057229654972129084584212437753508547383709455631315705661856664218596216014840953089936948275844830054471776303023017304106356134058065881918561455652158083395089456791113774863434543980089170836646273343342010566862874792738834308969821850612830961619918903648313853724304411116432092768304642125020636093193886649410140326792434616678172173728519127192353727711670701483687647362941813092013959267507799535547166878195962976700534407074090580890888831634908179459583891924122482282750439643943173134509646614969021287101122052698022892492559522908558150338695190810254192255333041986448340443829803739586375262028051847240592495860029602188599727930820897260879571113366604526520043102210962719038444690901355402613388864979874697697142526892878588077492109321120119762198783326888003751874589576795879676677574293933318579273839431366219366157040058523872258550087005104505687515818542252053722965171961435659409877762808365746709577036463281673474208323209219377683322710775730918337532766876168006613541952500158190608414576239213241608273736947295468381922731319381432258620038470856477758822477272121811595190219728153289163218027878411486284332167304852040629214629415039270828538240143344626876533092941843034702159620750570483736593731654555401556616265500858365389072281488469031047419467443715507497679335110593853329346126360031413244255212062583474449189440705564494102742263737004090684524867722863679160772195691307581325732942713628801636911749205503377204483272664693238893431585288368484865186213268604681839840055375409719975799648325410285885505578197882712542738043893511871991284274697892965015913891270378840804703169368797495092776225285927056652586773995289689072360615381238691966281464343355848118760622951920252926707829617088725901193173952034673336697125633062856986127343257573174435170474968624438502366123865522937968317724838588533925635574284120102831477323645470384347162508416223101192915949472314235546258269406846048576809013842861525856275281210387077915646477022255003307282058001043320131509683424694012033842751300504522164104017518674351638637876217245917885882360208667478924591292428035745772237178783595391901670590843250973359081165975096730388318858365716921960786414321206674932790820768110648386075761205011703217050794388052785627575256402435588420375387797221306950751328772034980861289019450012843889016816704175462124323477959215435983275928787260186170729788280070319835136773465436529108748176119104143031618280826631237115315755219087735176194315697437160334994143784302861021493899427588481230186557404669580003565970650278064036665883985388485808110096944582689878123731655582523934571341940432757081718859451360752663970848448050275558410722261245718230804286411585376190471519273569097450621158702502335690078739647480789611900374647714855104032397424192075654146356157276610352137861894630761571218913091430654803527742918721543754213645027571713312466294363764497067174948827955636896461025687091208574482782618283522808711773106238780712412615056902380955876954814277022817851396350638700312980499704437083029942072673172831524471210907805064098037422467278984132357536371433725100720998279535285267942515395078019905219055518037152786658781843019926740584147131893446841741626101446512363387533113785907686122432539724119466234540314188413230303727698656731833203520389883353820503298047648321314866671481190729160914968153339486985238576943739172367562926558616372556885616308802146079809021609535121051070346959784824137698503742418806459055828550498606641687985459772391027825890380351305457312095711616765550961759844610140903003871886402590823071892121284633753632813590533329935196653323140284142780361812611635095502765757831865989822723394859628058555675043401333248326612325478464248144537094580093257101855419912389279178482927864280938531382859227213431105280583378279576577646754912366223068229190557177851544602471149424353215230432545075190263777427549597811885820614548718586389362892634221509182156174481500671232394497005614207656169158538182853310878098320073053807802729075957480544805604327145133973280267509448743777991900096859145254783776748088414679252099094695336726513770587496509797718660071578061648377187168428988538977994229063143514001859209649748595129879027433295005363496175982853438934530903672052994009553634376788855006588899263671443324063764935957898742629246560913648691781867088553013477511727773247544165306864036102373678269273130503952226816691959122300601407570687590612272718399073334275383094464770158565189225343513680983724506228763787911927816499475095325184045107120325408781557787025829265443342218225626127438463759833731889367050647433138120188751844114092216315717448916368941954287311749826326848363858358399971266622123806011225018559098500797860920032782538949035980257846992948624419898246165662158095368939018185324282131975209271504811842375709442559779707677913182890590215813219248589711931928412503689244095924480887071319273675875154265042466383007109967712203413975589878816038019317719076915954493778402209653226272898256200115654644188585146890692609129377065460357294992494418145579899061997574412849383840584332568456111072205884660616793146618315673151165509658358196116147904152136260501561730026524037642255712864025189844058534810535115494797622202258305710905586260979582191983615888034285969532805406375251845934060675946959428964370573899474859145772030993381089989788123997199153234170079793283088613100203712116578219140106726822450623958055651261583301658078675070767922375378552672578352689815527528469559272838521983471655888430709357238295479058796887200032730732337439820262268066232649309240619157939676926626190313291627839792495449883715149576462287807542737291336146537473915813829679160721571175220256364906300186365775149506788280359145232095543496708201344983554249382794827718395975619785416048164248985745033897447759315236990276732405364840584362078268338615712805763860572065293493904659315361842332904861356648105674778685496619400634236124782608376196829500793099367725969875253429071854663898653327215507694677957035280376000318769871277018246088925930530478384906333011251550179301874882001957774856069349547270889325771406237384060432300614422186448938753276290830064707332676659494614909269127510668322633010813252239380294231569196049085257903054140416124179959209862989168011111748486100214847490839853976231178655985978494866039263499554652685274105099847199077623336135012408599384061450444012923807037021095216475971791548191533719752029347949636242910995721923842789472614918756914385155992270758496721505765529958276314554841953385012440063761548609021100968065959661061417501206102019987424242179576949184699064401218290071572763086811696633277460884180807167014256497167557908797791620537654053093727197955396059658085498790332654551059966026460195875562703829082642436881632609960012858079204207908385995626876562614685014852986914520009016823163039641402270211005611802628007767949557698395067038963070155492319858436158508884580098836944912014491220011099253725942224651297879728377449762005645796526304443273446068606075749263852761921053858351835060684332896143271234896875516032720510353958607810797626071160694058626739930492874302478301348138944907762970044261317813452779322644806858845906515589979478920838653440847096716810871456468292704952926912077078436017781829117131904788936724022525767659213415092780638211871155719281626264620206484929943385641873509268611463524266893251739458026919536829920876886326944693270435519025387000063221285869499269319275887236252191130374016623415271528852808430652594755731560759345333823624516222551601423060580695303486261351049794016276825040454634156255355309294013449664079572371856603688733619757997905137411922795548090236513025477399159292647446728543530673340223592579496818282003860722993114363562682583052660321879293054600369884706682104931890261838219582669823336096440007606488501289723078912773834689009178085227268715123585785297111957136749815135213219666420719820071246347572062356040394959051956455613683489209676784632267835248168205225836122199961527557990977751700557544971516914715251447177442360268941573788767768931907851157855230152816711762956468990395665685406395481908672476834651574674261933737328120646394263521210176610672000307933955652223896051658411952255400644210761878804470119134501296231006674836011433706787840693721832148790192382243671576965742090722443627305083182995058580407213918301999558763053452423191199070348633359680161751081761684521571873906820956339361793410685199806647407016828387736705812949100166503477935234212206738556345382846809010755386255796987332526812222516781221347552067255976198903347645324449280883235803512508369606746556071524979858263503519130187880677378129194873698367902467380748141906095222497056668067754535076680036636946463466719232679845778054564305513383518302297308877500660725334511535483136320231893860879103036975544005298784137493233535632667948978110062177369248798978007906100514361629029671930309001698244490983048281412365181615785613433947492037714013522977247884752188149501376243223908759266843158247671046622385902714467095422122264599371051218629153011428002805014005710117957244564193002220678224510053152229123043630062828524501017288689728320052778806833383413741505351658886154422557687441931736681656153273338171641259326598774530397008062179587828748659170888884613147836176388389526217196152857714463618319718259763194686951946055098026230507595170794452396945482443826714191348410083867683473834511103555330838438508371657349947738885506830603638195542001011233774898821600952966664387550584699074523838902748793656797369191714711393047220145665476350672200340304653422739725253855706727387726645962765051129917888008942678072207641847775200403693208424090644317602754245921493392734773837169885494852239809327204669017746360122795466632331441661757087510773458184633592993484127509797476296437614492245944161113405855726702381156057472328415242435770268791229816556043057123279707723752696077358573582742084102742356600555499762369645764267292053647846449409156150738329185593867667138331714313870131449081458795593457157752868495501593605689197417919431115470803883667896721986868296203202002376101191672109509284255138622004673880703510620171294357557756704867189488175914082422979211246291915677703564973520493419401094737783553125417811885903473115858053525911025601918114040239054812025704803413304492256565111442677472625092159513157790083054653939439900575391550740686572939442998103154285836338610996526421518524844178265519473246395163166016062815695585203246666473703462654954560505802877620310679076702544275520958377469127365161730061282875540796398494383689659426227847688308244608657142679328068140414028695121707679566230653098848100617249461597704078667340956000908934027471763597221294302672240675127712027807719842907111705482984916184594264317549629971197846647471603479824984829187296100233734637004221112255803711353113351461988946078551882475912664128551805066628169434687470899415218258713693755809036401759528482127141696648369256717613224531454189431364029013687943098279432769709146772467486218943103425490503488863675994143695045903101362640368160415793472297463916576263807986333577942546839127219894756464526789881610931868090746869759879047626313846106493788635467137159878125195664524626011002242428561188585035882818692125489910983072706075613073731203033521214528826781872739681491079816960303174568932171581774248735831950431182684881151623600931642544292676737301917647461267661753006926667609267410539624850727348161013799563921678500926380346047807045140148320545915177662980975360029063436417506250961154800507108373955383836308697403172631541601733825634349834301042061378167601452772847210820966448726773877056263578850858425375530486716945716157441394869202845230058127089738478772733532207135691502328975953686085450976067292260126841803281697663069053592091678188672046863995590811070633067583952436373569541631087543670713673144447024092380932226367933550601458225360177504648271034731262297402326954830293987949700459087016605474660744665630604152001476263185929976606537160201883886942212217506222909456048748417221252305871545252376696797592598982380751925371726340261432817700136720680107248798716528965959421730451579639969067574596295652444918939079531475041913998499447366042369140420640770321455499830797652583737898528058534644954893475470999272897344058895936878461010955518924629530452396353754684327217084468682380986933109773079641659284030186761930434848907708096535906176918299276256923283623123568999116763156641952215504711274001041282523330714664077510938862036031996583543244793909877110031817958504756308349294880348526132341582820167569095059210263206728400842656154654877390831270549417706367811963539953032126299568004191067332858567293448494170328986194435514863265010958084580746602983814827540731696118211364694662155571895938535014823063998615683353079872851943431184866112513850456439061383560605207091560874654989746539848964107798307567865097608526570106991545977316711852656348026177659256132206232738409313325624588428565723093684906461685994682932462106615706378322926801067307144614475428340399075621326090728698452438761559563798929348826405039966706059220301668167590633500926499973038509849885408560992182835506483793807900879635026155575897706285360905235655921314682314185118171447978490389277491697265152529697026881714735836482031172590900343484328475219559141998106171643984463917262375164174000056583057189568147597278925652425088694790052780271789310540700508260775750923548954417583996063182690177761287461997030303356429099178099344507768956934412818693755172822436987663104186037490374908239176758735771221589448260340254511550090240955474838634565187271919397840279301191056150822467185403250961685158080424560284654223035922225401457545813813916322611026258976713058909934122687321434804027138263407010878765670245321391340404688649945898718892176937750101132357268097460361530759411918034609473700827957775524800070193988463962002455360889083452522239046551604376757509813040001694415533333229301384133795081245197596236203905989379200634720704090001690579940618254611812829775561203709152639169720536562604546180695358974332710101421335357783774974436338659638455963012501732887203585764018114029225303692559864863914595622548888199728876292661324724646567508986309684487868321066014727386864996816886450691544492903559998231105734570866954662323671995868999793504326648993608386493331352427411968913370179379583714181600788305996913305631436625794644226881684348591452550549435156755430100159470035002777877138323672139157957197596995144898239294865680067373222445780469327813924903691310627679483606533533344371362795289757015600976700623088655349003526783127951387750320907169972888051850999659892472997355828206866223249577328350093207686766416600549717879498518577531717574837322288809821040515205230953723727946793650060464924659904727717254728592379819946773740075615174819205921382887902454475984525464811396278568294096900499637993972918610924208218454638651447260682576585804673159383547968052382387783258767201449733325744913405842375237764549141403945968773000870081714859861239540191025934145889239247243018623887435047157686758146840863087613673388314688858825121995036275673996472078009786569598442493397364006084686358669309960832544998438417897171495843043595466486601879448946509480402073023580784763985369021881706432639006097481790450058399121004647219025215528096231326860702729255760685585936449559996599643519439557735598602268707665754549526952946936908617691565454911200054339272481006083402408067320223717986820570257340612154281922221143542248502952942146940040001335041931323826271624407069410443664616056640592785503021622072942739134671054350475497601410490590685032357003177999238790126866651858759523383365111782715850777776665511283216387407949980836384766255985289258762050064734863328523483785508132775549360761903274841666419360090725522186134740081910971943662407497369477494899797226047779223887052924753836017399228363380041242757754655317024882148436332706121590087390705797615537583143361864628248925328152240646989827172498335175841692245536982530101622317469678478645331609780036629610263989256626456582519381103553225507812754593976118605315756856518948475508059488273542796030828879436579420153252546796261887899772494634254626008901982403824296277432502652970181870800488095100255767574812645167981896035573494710593003307162875772852840580569223746628150141534422808118104660142044643784994135891425723589466390692228980033246686226211470551311067317226105088629005114765803456640981792472150905190856913290193935278909375627654041689317409945233810369722066240355336918054969673433148789635211434914743139628464294107560401334901715210383802073462152129513501440500453026858635037936261255947351202772763927032277511531371369792072953259565243104861202778586971462152095139175233650393603541801130926804919775379313014459584887638693204830008761916673704381944492885785817439457161620791416245850597628743951679422545806993007093932377937658291780498069733929217422196522885515475583440277548351554410022123804881679612383400405077463920150634509981517167191477403561959931800038291474934907826090794830557946534145489188080120060053323457243216239313139913608820599588313861341195079251279715277203449595580477422576699501855247127090388341295845248380971167943197270131997034501465318631844772336355392569602046781914668108678521673796532765345876037000811141955823029249739870473550706683234992748871064852656620023830738579081944608871769394280778162050650997350046618672306161492848885172432909013527448355119849400662359862812491986109978045311537117521221259521692851904426886711520157348098529643554066770664697627388073571989344776622102115010719082405924823229026002681136955755424438252047030638726407201571186074023184563704960481639523156621848455813096565965233567059193801826565986493750320295401032836483433464356764864809117549636806945147271227860414315058102427654409067229503642296084601679464611541085865682736264286266951509852093926679131343256046948518446745206174548945597081077834115765348226467120783281010974007063719483942931618658653099551176646948987753671364686550404056504348829512213632090822266669461003845257604472402553544070837597827156842801794309841363856005338663555022968046929851911389785143278617638259017020532366361889117751957485345240605397629826899585000578883088456559007837664283685843562363414047871965694639607266108922528275790516092026680170170452335906485150177855339666491315439551818954652537167012848398947384902866895698659757994600828265402161707408612255499153777183818004467964974173753575481334620478231707646380792082820976362824335213383561465060101245640825588548150855579500159456580092385569942117475604532257334764177019054954210568644474789403433897640376167108238876507285354570730632919764899983164004101892715922714726268555013659028537159277151982341789000658256331753315312475702613408128011817952087998052515982539119515854140429439290932171661077829958887166750522774922047697008241212320457171843876399681679747999864995009236483492564662351493360156877100759632865609818895952138627306769542156300352306454732372815474268112682825279559547592916140046964938253513640694320005726424642685309510202825831108195999411008067650081430229303578606913126676039241391378770543217172194619623771772913706828314187572582077058635491283193011977260407362342139614645131649753097303563805166089397253803194587197650447067872787512787876408050979433305644780648610840707819827397912646258662616900205725159677724488233430998473218008803539670327898253521780683640236986188221109048048068920281905699206358106531602997773531768662360629653722526868891696312696379927418611736785712867704058359687799585401860594996943202854532237808165900851912529580946398964260089174540931692097357856145370135935296884257064724423998341846214589543733569359974683066973851881365419975530749820301849297278646157026803847327413611936566332349462024345619957762662819862447377245356455186795781643211751191363156240714102902749443907929550058369136806995574310026362071417053748378823961851720235864031840332519691092719776501909777248148932522495861280129716951065923507322308283817164279073134062470481007201994415424833772366113118326527465850907090345818069485411339547448193820265527887297022135962321328049863654504479345446738025856372504763164962735446191697093912018339293401409865445412215956174678866078670969959176118072780305841243736970307587960021582771119841125557815950390986539582036854434355067015316939457510546997124796239851365124859808559565915773826082321226473667273675371873650552386598260151286130834288723801187333453424295584620266201034970099592565173714666050024186326778335538756803133970463929321262524749401648808062925391006597040878627676348885267079549078146182112354253813994621086484901392570398840042021150283164614603848980963144737504332348335144942019415709505915530228776209965140018501328168342359658917024128639568019115538275245310964983694210367054587499483819783195249799222408332072446203969385600367332663918257697114557738369601625557228935886048297995457837087490427838034066629582988988702550716596131740284917264585628142579019332282351184938884879598899175908092617243635871127951024374362983290379312317651899504521877382082809500447550254154278659974294987204210912977720431747533431316955082365998104989056730318684094359973788007778148876537364770120712144098045554618199117876547352252989920673002987432068516750912378510558255737717630062205379658798450104505714902512710220015013234449018781003285319384680730017926696354593373856924161124036519526773826790694713752250826069483097076592977105419527595573426788519351032147644135055692151125448814574407644337803389171794548295875041049908493411510158532846681031750336113591279378928475948239780602647381703542357018145226171951614916141864328256523478125764500022716966870779013724653217179993781933256709423106303216598926446006012691795273626898941136980830191182580112873304276339722136848497197972401423297571635308452779861433544908542689792193134971600180229823408610846895085280314516075537899667696042912443032001097387695834238322351179004070254817972505027621459272019425008345350419690136532900903894508790629178845827832017802277568480824447397551361503215647749798410448079533847169607351905607750813621692821549663684027288825639694482769163532436843533008604300757572910352151441347544951677585352458459775159533370184096670741078122169116427187927496054516273358977650964983939335724229356494471235839023883907029196216956441200119875080174574100186787322729745104917692178481292220978774267837701471903394264309416135661538281673259724796937280273764785066810390177958334831141875888274389814340687531120992772350232152446002506697168015116396797097125824643051500166630244035775197367135322085074070830339091464908810675272076679473740495577725149849964277782992647219098960194022555465973885050063312633491433085638046168181797287036683731766023774826115182211254700877675127364638200032645986777594461248533234350551012382752148264573878482551550754753724316333806922565543634193447219620650477237840088969809824314223381185591894057773556393128376507308924009850820121468049276878666052364149029982483468463550598699104111008743164650146228741349540004793358535314244857382642880022877888625560586999492220682396310666239128946127040116643321221157835679280557274151029764479925844520939391778949349503898189378285943995853325124171279847915842489837958856742993577911782220217151912700208682895046712788817458732845144225469373989355952696126386274006278902293274114382795986804175378115655792593684215816306604980675777087670812412573105797226703101974188656482137125361795048898204220701871542429863393460213494911870631264125491800155515366402795028177939829715546710738179701741632055774984516938789937662672657679426722388777567805682743835989440605263990268936492741103890700402226833214943330918545246803427323669051513489352533284042853593391160322224205293257915103739437552312116405065138320222059331753639031818196060571824136166758373330970475444992208208180956962022687676046278289393916009991419922227115397753781961548621404964330440688941825079289898434643211375065509246018576409833251151464204091051286868379566815567640286187664164033998648386237808835700944140940903042805664546352907964690857917529194809540726222281431379715405006201828845561129457640328233345985982024212728888471370085176747101518059981722505200100755438219544099044624092623508111766811125871646252262321772511699647498269739023926039093498411264050232134932197289645512570665604483465070201351386647598611676654812961811360679614767754235220500102272089035506634800338524334426731057903606166641274052899594668127625620965519511459073762670811213762998789280473173546303752154109291028679296251310161352617942023268474842543045087161379335214740892133616300709878829858092733981761386126699881468786766931662699832471879308815746690922554462410018223206441321204928106901467164077364515579841450790042394889602545018765281374741354333188253436264107004375429143420418756751303033037089750647969755646478984149879710237416527772338058569116074805379049175202230254393422319482999292162568660750721154751390002540287249526695634240440215017652667244203702499306707300893807919515952952580357281482127400827456010191067028772728597561234363461081762288551402243954217602594256091496015401697739191026031628011736397254930620772757300842624506911715598606680050010006272882090175303518603195941275054953462632859788054992492585832606946121424267191903210233753562317159664851734792961999858651291594568384210114001633955131240280300758739121121129816890754266374736886849703369843923102614835692147596255154308403353365742274976787248063725522773305696208721928463894112692221456466470102061474729622219546249120117890838762469862464092579909085075448547425569596860210218472417655225596113280266428939607824156709371132814973246154339944878020484193419836873126570183020872417145887515014212135998355074341439135812851482083098628767637695477448712458031906013283449064216714410566435907796024542487466147206255693986880577303350465523372726925055632230968799364315464253219611269897780949200084098093103418267661982284673820454954066038262129390071138124670934862066702568680312277714974742523111483116378336519160220140562851871337820023948762100003257610769680434504536972544470274454543091729631009985654545445321017001620102537147317617092614478213961969602201229804742029663892131600820892171431178906491103322610566262371326770542783352330869919274276524602453161319553692172776638812336546789633111205574078964189299749986213790007231274587622211722458029008476446597930629879901476784387058787020833136162101533450597902442426461803760576460831563195380336376714716750156940972486324838956830714207404205178277047419353695660165324503793632410759720517028144975493470990851889885068027581691618879057575424049460559604816974863921553784972584558619562075752028995177138508667391191196118792465932186514965258696743808769893747111496591348758430917400014775729818109817983889950889411908108265857349241777625560930542148835723958242149127168817933962297596890359901962342050900949836803365161806062062014484524447695503765888173681184184786526801591433305153179296015032215518251569050847642405569657465396043345392162792280682647726793839466655007856024721700587769561453417473920305161955229182006976309138042031780912758838952253425487732556219950961900883450110545632152719315700339102397935447952019843280366056611916776225556074178156915921021231764352429650626984285768803720234663423087336437533185254618260378346794951795350187750668458965664467232867513318935391874583188868008812001961680138627507699628804642824696183868557251790760192486822260297563386803491084196124291584236168742521527086647142492051149418077278547807897453198552607049396272152650379042224034283620542914021408176116266632100622056618333360874915634508700201018926679369723957815338472669152422600672179219692759959045584415041082205380551829921013951525243712650257208857616584843540929635852190590033718821103797200903472417624117799629939846035306620194282610777590513857666563744499200272253587464991907085739537945236523435592019274419740027385965679758779677930994712948244845732669628680182248101326652242179395990668336009574878311827812574609837011049238124813473837606933708308817955541731407602042939669901449058313768584321169360538708901389196032248166598519592232249191718855123438720896802905303823633219919966344669357952250513799517036487196588854431823653964869205590062607333606611259244858922159978099471686119010680260718338444754932803802125204496066783614254081801701236528364676234774702649349605586803007578065653696994644218855599139408186094589921340942241487779569565485578904163436394201279470103872936732586567104872548409662961458024113238438409560331970315426507540895094988865214284105660811992815915117038506139327871424940879704759199199859831600868006069276485005295546204735182006592992611081784700089449172663906829956898545550956430869667183012478365176427744744712527214422901137499228350298766526905381950877497946511309098352406027613781576500380533181930765908174057196055222577274668974971699316515940899727622691378979888592439860624492336595533346018220901816581783018882480512451981363651083941404123032135581909540554136546531411552185050129319747165745309891222263190037268710730367124296827316196572558801991030370712265618854333410094481638911826065753527494511255324467722735984614060866348858908182083146943448112662673960953496723302353911020689306468540664219667988094694746590575773722982863024561532093566836550386150745386841086964362301399058482606895258043358425294941913759177669691487397730716432230435241453555946737237558956462407082122602695921227161795930816740192148998133989573702696759176137213071603684062861266386747387678747411874996137130235333940030773458215888862554292899395902194384977945516358241427276484202316863830086549762022918930891268703003254272420239039727488303645897029197448311896212656406077606362514237503473702620336794702850930248644908220253271402339018287689541195234388364288712958301000710946796612054096410925399689182522876097407145051781167773570995153512288598871684798664777169389672117019439137321387820800023518763093701825704281766115835878067147700391510127897667089413147608352576809666651571909096145505150430362112454343058909161426432357390385867515063007186568175838938070865108000995079359252293849255926170714169261040831159395886401022942614739341556592508560914933844165298318366094316051591018460652019713069392665975871102224851257090640173957294277619891870236888488016654434377909632289730068552834391513506311949910722135854625307079931864159659727833052136762147571707107047680994017310017281139264911539256919602849215953056464519428702960104851019467032016910457006628617495212342255158287721734831652838362560746728959070955387041891839980797507728958202084499088426056351724427090120135696746956041889809148262761057937794029542348737337301042088170697486533331137741008027978806353741591644156835599152966471023887291981654745864448108910801309232803758604675211739692858729234637615718360938748292966855797667491926926115334515602583503983961410878747044875397472166224308813426140658087139914748349615648204686060530135228292436937724390109366894165469857584206571385399734336396443478357592123860045211131645588082327006828224615885100287457338265730234593911855654101964684457377617687932186248891166416236932731443471685238178562284383212063265602666793585590466121926584204382134769787042239299074676611314729065219958973811304252971881534800668740223805852042401683575034120441557621499452556621650706912456147214000640614046596430200995146065648593459902450178659009325335856212401168844814577295897714436599800743266376740133647130407409309997400379358441981537610037433839359033151628141038253022698108867651251089311637173379945527395475798973379813217526210206496886971437690454994369084286464110878318999349142903735359366043543717513810506247305314916710487942985221987072090454707050890681930295900643528599616099919732419975414851424807146115802811601986374204284171658094198551564263673090989231033411774323634140618578265850445299505934007827771120892662017038347809937168232955336754700413190261960619106279268812133114555093499941349059836809998327903806045913749954916120583260008775093214186090677480014548127590871251473797807087296033526487108382012451888648334202966165433677468881372721042718276954432690673988002938715834407879013029678454602419201294819808071075143342946442878847084933008119168461040150939397821905703840921799851562990409726941278398290440708357468354184245093670006443525792676791545967188066719656715752677646004756778734629011537014777378109815909879360786199741331886249602669706631356996798764640651240954534096025254053401909669374509608257351699892632952239555793277486771397584039461014560884216583954967382048438299441741111699867911944565747827860405061476230222551041981349800961837100129055612275297235348367189340426429297218495701196164814093597303006148052276169481066273122057083680704604707246885332105995370736189959507770788916999701631987898451998067443157596234381080518395298911439936065266573840618931480692296673078643142920566613792992477987827956093044497227268516251219096666432052238334227353107211148243992563682456263969600670889562543725029075597235533666811970321713740675036809182815030448677678594428913276111623917035926265694527291285760495113679002439523989466247063151670772742989549352330686727567976480679025562124201566911046070632797914708381952819180434852977242396783185069207921243941129197975027155822021879970984663304055158881925641279709796685753522272623615920180778614709732163865334195920081516953100798905027613573919065440114084402584816516279733805946191485698920956731158336904602631747053913920105969295549493354652652679959042173913832833837923498289796448750827471340609956014632370641629536945540262559632602860576796351211943959304951350963374845038957240892386915870059270842554024516870203692726597062261537226271064673511041717167416290744211446014775794678665017763926514057211933080573866511786298169552550925436742373005197898022264592890368730621100705551553016707018347023149272561148867232980760218307378653205404383851794855363056750409292116704756596246906901989967443517215638486588781742143507735708250894824712963783284340089364962695059192986077863726641397905154049326572400712200726449117750823396429800906314187898963966000033964616287602543463833413844839557900789346113286920124272794642352307987789289990423473925019170255163388741518850023238565003802337652326405195747161500809759372755387431975649649205935874819868672178837397947906593789576816447877131391379327649130309216923880624836118286878120718838492145331967881255025250401478654984876811912601894574290317639130614177997221610274304633138543264870449823318042257019338920138272714870265368428687521757540078628778023249091202669050630179221154937550447909066225987087620335742569318853213779043479433858471180461154098931593468829127441611266291751285750432678139705766846864022223438704716035595725850608483466584841657592007483329486659715189507622715645718176434541550517597273311004477521222578380033201129144048859376765328187732357669891065482230475235699802650103957935131143440652121738282716027635826622702450098357385314623064949163887888064561742838572764227199163663123625830486484169917312750236287080371462893085231089454705415969552710445593768445546764815460165111395694269941343227133224656802992623090900576747302524201104437110713113190827469052163308054450542232828723402849850951520105994596146269677842855481632799753231555465538131636120702717721669172693655860685678682985146659304230523594572903301625953616597901631297033062331190072767804042157712150213225528240543468568801567510098532593718367453861575000373188347844839157391417181507873224351614869567668031238161608250081896107340069145234520437552746221626289773614460951480908528728329551356456083632347079902764429779798983702840604892553165377841908527808240490519927506564569141067994530847643363658515522386383018127778270954116975724924904790009091455165332801485329502806917279312865114816869958768283661351857190767460334974022242030750491683664179209707722388437338853121500260748841424384357161990195860823062316402966891431071815783561752613135027979323437131366631703168407178006048174351413504783761878692882203896292659879600886910061817394105901533302845049148469146878816332030573977747847391355790130733001880443456131045463323043268634473192114400887615631435049546197975922330397129488193852385861828544286711617840841593413813633640135625064819430037839252445137479708370190223251907065550488285945191566450202830267349436518395062887332288900703921096907818726303462600459337633204985606337998294126335668536058180952141555880074229040863198833792987641328600268142958768722579769399151292271435080034691076754962653780697807171832498483928754519673555507166865264404059376143211097708164608359031374566416368436308766574950589499647019117388838517924084092253996585494882898026639465285414900374446700883629856545724973477715551175200988187356217200502251498379693829356352797783316569389996957710177106184388965669951612371230762219239570913657338114130617789407704447626498770487244265510208454643376149185479539170660213023286886260130308281283187146289720344249856575647250482882269591920829313180773660297703554701319877389219036871497405453403737116952801042053380268949173534436081674222404180386201376430185535547830380384262951205622219745027093769521847898460311271101305991676374544021206027413391350093977426876520449450872683720937793502218418958543847795106545005044416027780801095045280001139009129781273017859692150332161211876820940622532713854007642204372990467405839971249017221156995632098974024135312506913230737498967793250909827297862982336434404261650779825841589457546036802951557048948165693395660656534111043087233296087187740178770045800378394676191768204708281164196160362079054681143921026287808302588256285921464163009207984306110071580531716156884680646076783720194085452257930576083592883490581587817143579958524955151175866214275206352515346931670367671182820365720346958745478295326125261190517456345510987781171241585049764134849486702095979203439462421400530381564797034047591852526223396557827301328611643481996990114748708692954753227275520123478523338060717601643594736408399053994324194545744708432942191404684831914214035481279032503561196301733209929167264657152819305821479301281952213800575677982894960509627528160206872988058525727121100962796047826228497717513114615976455309829196635069848555925803093023193054889257820701012765790766600006354250264004017709306101825866768326734371249909555015438647268676899809793950750366518049882643451001632413613196689951342378169563723913937243174914576842150479036973779868620076905939427344911005184958732185270158848872502726956602539291121946922508561172831666363720380529703680448601182939978518370080025317998113452976682428013147757692903477654683198568945199339159782995137021775929355468610421337679555833004853146126579892028254111006753374361684821815059687550605425613530966964690577448863981574724053062624003568408805897293166568102497515236992992980651926742607988194865304570153620395269014283241370015960898051469858797869799351443907260003368654409670438548840094905454412418475098094322060941902333904586966793023083266166628957253057550027383247012292477558582730767019389735143094660692312347976886446960056715159713468673913109220969032421308472770165828090080058410218287568394194140180573031176837258457270436106619627101805074854380182343070127271050499142482112568974435087904944520463943991363550963171166002030338284313886925031919625413335068614020723525399868014922058059027581957491709486725435002513315931876005113629010198346049267487822495103819282867512496283959869905843824525685052558287064466509648393944425989838236961593206564652867947308105465228904875989760340671903379122969768319626483852628595199231576420560852282011710526482547296645449169746411275947352624277791856523928189795532949671584465288442976519873411397332394911329465622489071860627139330818948986614822430199258291624483191022408926545817433661682788829646272380058767620563682708644594016102187456126241439663863432544945069735111771206734055232045398950939676881388847957890404721631561800349929236660117086597028669596638220041737486809519110614687510088562953601015421889830924384203858211903477075165998204207543053427068712177735581392004625216166103549656267539039427518556087597668174685004810885064469447034733242152257123967234625044823038098861934915816213654864927474463422513430144415666241249046811655158409866593351553690083340036213856445288351630577834939374259802925193518347953381338463651040627242490691953647260363444660269873582033077219878694307085605875368164355257495199915739970983707927110683172404490789105836459410221102484199274262424412242165898938882099318410429517719453988767068753924003621253937273654916644926139563684628771768421549440275328514978474746614255257700731271560050334901578599902209485789813779080794548946322707089412322671033058199137579723358419641052784095426217188515180088648450688914739878805472317692543834813560241646498370810213077882735317951779106524022229698860104777320279090139545724769736958194427875088761422249163727197369862228219341382491438700451944533224593368650417981828091634226146012387759104371749796151236696834341975381073531078201137525329526817522968652298568969048759843658105308468999748171032895423013604447694919022423831978932158014971730294763300889020816423107490503722944226932231862969555407173548838894681624091010714185142960003086966321547269849768610748471651736152652049732489174269044837309721527547295071989164583896505936122091253061253324574598640354207452811997528437849103810763790574706135897759969964484468947564982371596870830760890367267990643158757942138718380410064458620504206605648918127570578777344070697750247201411938059844451205112582134800767054713326483393656441039642948438206013149059312192166537420561643138199786378901281864290529622503568000267219983801527476981862121624519856858412143493448299684331848350765019957044979379306001860914125763305538735367826093408124387588173422781718363203446832586322432079266595967395947217559536911337351734493908959431271370869183455157365831435894249748291500592330801821234381053462644884293889803385678178250187711035996469751481775548837207945485795204464547495368963375051857821290439839946689053817299961742419656951083694200276895852604422375947113743967502520120948534599131094384189743440955461287764200506785328169987116901033227725244121501052803119987758987987335876709553275059220748991832509911534962093794658770684279672566343073768508183744605414325386997122758886296851793260114818765403898956164004565467719618704646452949913008623066789149161268062458008126719058194826200287234155626477347247074276674679538734548935624965123927956234710854099110807319377582804394486100644732076738864905212385855393127341146312472217459950553568707736373004000375175476568206940470050330195494767370582067710026106907537803436699531479764823684740917760674945318886516428860071013136194824787161135109613951257882446502579533759577839151132858646224658739745480972804746661448958397965357216021641772958117008177927170668722593968565634199977341623636906263900932372015260302498389516366207524010456841420353400228007734585294477744425188755004880700114145858601381646216590844228942232232897799346316883301111695773543410078919870415689718379498779464107048688244940263008642674686944108037430559611593558644859496853491349218211155592771314777415381653886775689150966705480608848878392349317398754912190668113532678422848942965430005281241980844081769803724656282802026000187362276115870818244437021831433038522296155440972998404763434978926254322356028135051736577993003887943427651790261544665990148152075047980517370263635553744293805974962560970792736718569903453663460930701943566557521905041418438999812293252928672976979033645712987705907711392696681440595207239893950678476678801687197632062257180384410054734895591849405000414421941732451764876312824704661199635600319904805255925798000269632459118058051722464909275217460311134785888635859153546436195872989930283592018614516891972431755060069658131014641499096923108806592294853436769284911416842966842718010674341468413073068937717682020660591017728943028722567939584741637369362958469116331129651952430415648021308126744323741466554719783140726174983458545706199431612017265580110686526837076019833361074351362630720499066576695953503056835693899703709774736260584498620061705410720049237481318608670263536362408611782501629211799168370089266278308798710923535775177073129506887245148275959892159725522016992388762250858678030777167623160661719235571036614145526658103339221653917661963597723742152017261237833567079491702091331734441971889693578252380097503334378667426360362299297836955246211714157726441940361873110911948135607436399280253660773074713945935074469562359696923965189000798867607981792123210221029286032987474933489915946084861521868941359983030111447041086181391565302674581723884931450023857336400659271034453010227368287670854871218133475534601587948515458946530369004704010893439001731200538039115578140065413732519436408698377506746238285840286530170813478941632178000021536113522425430717707271098864805375267726007692637832839670617062440942566690120679014292454267040982207335803849877293743482827575012367511782402147238588185035654528684737241772838671043618940391747606226097607309258401791367514748580669300863818667615527600704150418656054700915190991553111895030318655729570172639171238022174956597114308330059489934715644557526869683829741093320567908269985976776425593788034297846376912645858771544863997974403503185844543806810075764382660209345520939287706968989234320514931338939839227084086588517866842618419833729396734505505839272999963751128674397162482431767440225590312256399342548472109095695476881353366732470277324077578473789662566490356647985584724775887978805968331696980684159722010049029156981163623030679540468718049295495766632328377079437838795873852954391062799466210538891466588768653014936483191963612736988823332492185309970341680016909020069362070638436374156667927001295504882011420425048424186846842262103685509680417255422815878294399432839826226891572794756026022118643421121429794697671355630198946216361849339892533378495445157808285982369230855546211924200944661360279421333610942262259190564912650773306793804631433903014214687752754150725585452209731502859834883287010851132443571315339912373803411164177808024233576236153144119165498303086050585898134970954391701664463002347376947814678059131729849437768293781994275576657769236393370231951446827753450190431934160644844483801029623897684354052791882537371611470343815188155060532906896722037687307620986751643659967063684680513396165432929045167607847342373282385891558181093543364176979954947452109058423269396804882521814126480768308696606654041273605764238919832407465420230761508353305199579993043827649676190632124281248232812247941762729086834390229826438713273429583644239405175623766805748705068714082290085966035321038116626618679826394771077355992477499288801502132397621126829040065487588429697792460505524923146152093466442359641746416383361044258565800355689657965614288814681101948742466162742848343535975919955939403701311599554806029983678272761194652118771955777664397458019554155981036750112346044473118761792938761673006891127451663411366458344071702232011018713106753812797561007191481302646218754580022152978791650924708501834280791344441632106624396466729070859960506479980403964880679666386638572848098622768072086116211458809438687040407847974797258018664834166151079598282365400496318335871533984568581967161019513384895009631092285620917561865268747967935749541213330986823313430177365277955922248161668235045405685423079963338265796243964547614774706285506847483933897192936620337550889912744658103657916068437155792061768915212815543535154257822827651436289392212570225362053744298823064568300968058320786532287906040524166304054311458269935178886073242711756253915174599697569600979629108877723282932809325771961160319235520849687298464389746366697065939507276683362839410807465458744461125643790957024249704620185696057863647905096930226000011839590133614329840403056506606296054411923804071605838897118480333550337394570966050516666163948084666615176725048787852293994641493660295758381457811517570671306876737259638189342835591843130361361633767301462701455980626571540632316451041906071925508001406048593184285751598347902814117641248640112470206692178365046444659851575421488099605785296876489818396455389821371543933341692243837506717660001411019201637670731067910982297740498555503609919058779806830059144231430712887331132795598991477770329491706084746915476954416131701317987368012720821514967938551090442079572415222942131696557271649555180521823217824048766680050940472685623885034018653814352801891924030477122790263893142923631508270870857358418487428496638860322115876704391828012111707893001688152167384798013211884369900219004033700121662663219598726984878274292031018834579057060212436812553424605706855215174731158837528955711848523050353111242408859357095862969390156561712863853890908045253601765354091313768204048838759759531982065926318427946701836842288743146156348176971316291768970954360926896072281242198917487746635598408190399521538172851041671776213001305365353174439767656811026812412278122537272864740849863693987240025002646585933083870748474023364146785327924977127561379977348315445066484996638249767917945326300303565259703316483231670082453268625152055562657480322474762024550541517001012562148496523128570655998133633479348612889095019964652675909907626531402656232772381597183815989550742040048521435393809821279732209987267352849263977127967782033240467102757017727707552286500310858412680735795228657843776838410678751456621311379028190040720352195786797045030441741894026052221321993133179600413032790872434983065205172400658469281535753645835587094533208721877469933953572997762756648641336567901004347987075194065470759262017263996117196928026495695278438834683702619603695340904508183711813317612664443456916176892244889871082561985573219947483835803100934419737072067561853067934670079477537252872252303379791952678075131489080243261788335008090003153269635440215302617043188595227327605072376149997207838872867877164112057156428453328976083443876388040819916956328063429848745432036861586239640935807469306084902290923635603754895269454639600925284780615340421287147190075945676754772389728966922987666979281446041048975077584212004565897888523536083638851578176370999868998938811976758239332583669014423945894676954685104647744155889843944869413429081104822565809914472713232515623836792271297075860579593988487624459145514424304392692579149169697193692397760304002034970970044520503436030231489688844131383654796761309978106263933938824229386694908428445424138352718041345485182027672576270077469709513093988292556881742406306443328931997655079893277012486720239931326485844751550686549800307447595373085697455632537364529553995564618545019630476482039608167467795335656133209207888632974388437755065158328226179414506195703090768001680365568612163221198721920346227077335617435213818748791488408309159679887196999100423613505378874272765632737650945135764425355522854148766741261115446129768967817608655347708493447961994132339850249242624714514085394395913783010733725958784783661355531167195112892854371682000935389052912179500562973490032698433681656502834943814303216116224191894914270384712036287587073524748261623942252531569196777670216933878392188062020821241741770002543893273294314497424357404735795643346176364580682221098238217458205290663098519072370236985807772672763263039563488446298971664627377390834877718785114844992162735889245270196719229381723159103400792867411393108529578469115108299508545897599283826334516920445294549845143750360680902615778148105154087487321026488570057490119475190997931043583247489541453827443392248000017273720333429087236352256595998099172985103639622720722365855818046180963543216902258668948361899448416934875510526940810257467478182349511986348886701549832589132519285455333186313114318142796021123397630000207961999890389395853952391810825612816939446224241981557141421254633831045159686257179827926898824114220472888705743459623365791353817909818086498551230288307889745232581889197680497833295267728491440273729101999712902486932297765846947522302913991243662474692933220759807109058672835946085802368490098404203511357569077352999882950630246969686162575264206452514668783129979028940210764518990994392953996416633823984107229149634031040858874808913038751839720952137058735427411901946158707614061026581762680773596570049077056674152323236975460200879330668720206653693081490475305415525530988189288038625642168449084739276791690391453761234527172268659178659815710992755725643108169624191682469906246633025336411982307005759647885496344408715716235076730935746263103635440781503877867125360796839158536757100878579455228792216100616406573862891577877323512566887699174780180207000366838498331983230067108429845666076513623577093631896660477487299000362203018418074220848353256786470170933693062027933840704727536521773925133767653472297166241115582294052986708332597390679749028866717487486719581202022664553152326880870389435472281428500767014410846299896367306539380433969754770668186391854235979858839518489077500101436022711809891178535404484323443271559715466056004791707498121791844223465216221609595967932268660751767643724357501157851288475583453789628524629131384558316702362733735737573612374472562817157171706896804511520585017078434372825738795579000809135669197188609238216130736962600084886289794112139078426352311535225642151574546146832411380093871396602675995108175222183963379340588449342380530560256077798531680816917606852361417452953854029699666013790392188988979133606671724623908592878142274994537271810898252590046001449647673720916405225060134292945578110508859737897703468789315428640463186571378386744988589748666204332684836686791166863207442258966650597993204105508434857760723214317594314821399920233273113547661513381928618519741200288452020361632959189529664100576919111668443521529792917249746290798910505206656015002624910703818135254074242829379694752870258632952396423092866371772394191633201303356919000960973192429532845415166664017600359868679868655418469822783408105647993985596531851155938623601309231768851107397152628368649195765298228655870743482185529950989999656232585011615492675163971057482088622680989194654236929055111301980997621389634431233467092035179964041491590017900430772250304411531843709079112644241430481882504382321888502871503264946300501233778457230297707704475287249387325237572710291842985604765616302927331402680269729205332738108746878047335086493363952672419251581864897315293010018153476806475448997010708399366476438644727467091956760807193351152115824506379915643519084396880126589710731956337281141763137692473544214805708991155066857576836793335518172357551410053311450113027394104899137876777814775544580627091990907964663298080813945149789876124645671525115590852982262991451567645832171963559972369227553664921988692400118403072515643784273890285805204651192637307000727256039315592314303119541528297311547701700278416720045128074311134363838779522335757877725255523400875520184855083915014068808734508386392156596285784628982100257001492191833047312431232509280427371976917329767008324784517592547668158496057896740846681072661113216649733796883111293871549808204935799706015606812813533469411032486554357145525685008448315689591603765879806681109228030421110086210940545308588078598405420808103073700691574162507223229925064211460686782484726432876453863384662210927070671810438315435288705015073388405410753007829953620562808997097757922690344621993974321923851627110157853140863046710931125590821597182788387765546585969855161770223886983008845636849609676104710439477980083599489740384411403082229405027896615870562938400947038571266828806547781993291325393900627020254574103457157867214348551891767472563633544273251099775213821142910890708418420514800569115536391951051182641555846624830660848370165826535413410517960853958253277929054903916707697326162647096953091872168325003968820596690563828008475953744392521726079471055501112570351160311604285703514028392045730162170942140296893489080441245470832331775686591592738668043762319709169297606297100117780731980252495344059515499801769884160217920089716426457399789723914381991565648206060963782788186470820426025797845573865081554116621474851591070251266324429856536730968233865661960087559192681143624655240321234751679698118548707043506669566045241934792951932346285766500525038157873818337463202944385315843028194301195491813720586013862255240956651735930073448089449335925036753638155769402205837678518785346405276358722395149418913477989056561079739650881108664975579795264448915792150849553311860919291366116051517685363141400558125378435447707947103255786448722856604308189609220783914782834472611001020828625740073552243218369280217454846563746072102715719109324739728841395746923255066465795321836162530399442055520341189111260734063812312556984011830640500892009663542783463140490676042788428394709862118877958133456415318621628521746828029149243938927175827744290977603102127910168334255176742798234580467960895372778440784069479568352028196678232490746602931348517089027686047676226058840558275991040386435568792938846705471758313200436947556379615070209954588482246273504373434076639433251822731466505159752050904508648619361569472210766361323728057956776094680165922449188098075814690843519031627905670212918841866819964195224200654792667344175427400443112970477796208454729458429703122346030417732618079846295733049834913269253091494125324956550198607181487110767252217252820177608095066465808099737186307645686194654547102075946213536624163422122897309321016941615548314424822224980643438713164949106673672274276079436955660664292477117506738023650112593687823898120802379485293375061059713494712626242274749947841505099649138704513459685992710349849777877146643320688289118096039790355486593953887683470437484793026563317164266084377548804190022146751825378677273493739338027106573803222301019443027055646789365192055035774758690690374852939277099510384061342391277606347811525616477456856775730214618747884103654395784803428450673475515173335525689034908690245219213664737440101581682628227088627099388091137865038073894455253782908960768665877035871152847780094837316766042659477429824901155868111439138442019220839175880465231272498922822378400789477251499986065582969528967485094352434339583974679758101938654790838126319731083514340904971873057114595795471997868855374628835040611054631160218258059393863646680444832525397609190882362983110645342901809862950244337605300285311508033125282344640579498065053443127140132766889824817047455082945360851805346276368130322232562008743147514597909469600828154675929159712928305040964267787734585527913056729122118852361621297565955006541798307459598035523035123692659367121757990163735102008887716738054484588173002598450819719390626843179544884823546802749198317495489629615473069598878320439009787711312861495874823906414397843637271526935619066977658803749559502197125415676712609347335674610446824781828441905735717769481502050885183968479112169972403771752688749842744363708622570087653641207956690166571009611090953590984782471852394787591295552031987684426440696086932041007940980850079153440605968804915757536981739552201391148912193657501317906146266425846581102599440117133584698350825663548074564258180113123518940811318439213756023308475000268580483093166736351257164926428704678099613346086559870988912278563771794334065316299945979935339813337560641579092856030329550269976522090088154641743304270548015832229474263334900796087078758516769938509196479277120935392230871474484296602447789908267769880940303315013813692899832637060024223073058721551621089055841866862853180064708587805541009931765984268514636683398621342338126509121263317722158323264339500350189579927714357300849312301904420080861213887417467325219502778450486468593987226525315161861850723123452381809577852028558711350748239577016052228020745878154094437320213910689825951475567199639360304685765150250022438482236607122715344690452345891795845581525555302920680856148607164767344968188168143843890553231094754355641003999645499212770400854264031739689762829161278659544267826368981504067705963418653441858697970303256362072435449656756119755745584445160717228413825608755017375320641483563835507871650167123207955237941931296110629773089661178226190326661218119790447544545893800911588727046488288775098057311226047923025805909529987725161588279971099744557565847586530906034148180137664040467357178946176254345725496552202118266721126006365143009189638972210702442626579852929162143309142297692588194191918017516421661910413516373847838617467879061294256237505544234365303633690006451584593441449789831806349742298476878479752213124794253390584110853173785079795588779300217506885816395095062504412358669383614978987098927016758498719773388518469275559889089252546731227776023586671883706147830627647385774322516786280849278259715477937045608626510320498994887299758967419016549309321795304342175670732875865139507847867165554179878795197069413280994951277475123836402704391713356367172665528085283309637901567224113037275339993366076889506826348485666928039728654533917803376796304210870387805812771706759615861033347585251716151419093220043964675380216180573360165707199382090848156965521612700763364247206358174692400603802635549621842006482911541252647940532217131085142972980201148374325794728143727329064697368301855137632360038544833972848191598690201568280740583329247477500204239026322665414305940159150613464035881344890485104936622276806960866244128260060616535119582924539835706241342993032332624668599868628518652702842286036293443187019527219954121428488633010540230117117859028604010581169834306318144993661474146922626375218380060833576153408770550168941726626058757419183485741586185727456304099951008660884848192769229287135117446915599299368056558794888876756175180776999449429583159580125613139123818799770511563770189698785998240690550225268515837267127963027537888002912952088212084827762335327755154732912165148776631635417476528548606702453181896490627965480559870614219416670944360100523365011389321109473228764178972932829655238036520619543638064436658480856567967061181917570079756461283713396934579368189621336504795538147551828951777528905445395029845825575800728358322451372474560388573274791355150608193524150302217377544730060793821327037421927858709294884852957423813792211022848905738784019374775683434976045761426767921635865722857464686633171057659822116895536768649868643951406655132231836744347914297538369189320934617041577181958825216174753823721485966005586243877439106520339210483671362729882044732444622274301990983748464792830040594001460147700078291243499605115476286384830331786045344758340455939746606053386319085722465405620562951825354419273412459347055731375705739938227779172255370413348044262096472788642024478848618601282666552062323538562062812338891169073160963835975598289310691149207920713521861715095513017049251616236363141758040492515495156680173378007938363436478097946261028438027105777408085909559466246612282289959868996844327840768115383794435866329975654900220514272725127997741851745924686173064914437751395223778109923398087857810801148611076402412599647491551497018293949689556211052781306452503473518639356803202213830397057853959247559586903438687060743380980177740046043414414461279223168519867494251448552280542562154018713640080892470576273592544546875775297523399170213084581741539698025420788108603299132033585504820592863230282954885551783380641609625508780730947334564411980332466480580682691560490672118608080996462036036560362715698958443334408133220756268029027883813850199435847594834865275058604540775344250860073017789967787989330489920612334351392345322234866440554571481325239334575050766396085951029121809061500369608404696670808935373298878424344259502723238507841944744265208092150484879417277767157699664170441107779693258792735772537876775585456825262462450832575682245120276712771105042875700119602273100534399373680957293107281916855509124473576294079953283133577803162761487053840424046870554266734924540502212886147425393567666350754364678542244041210799652211171692626183751641192986450836848449886833696342990054807494365911110302875316818009510063275874938887599684271397634688891439823647706907040587489687988963550247603335692878423098563912634820950410507736197515841368155147481678654409686019221880046304436531454948153447032911813286993231621182287511864757229476720227357069314880144276257513057117819173435077611685227876137770498856127535259781101968172386240969317809509710369498868798406774541206526593578940950643324375456334808300802944261825711115869079890305141338285085444090212435928669946871905049282189176124732296527600773580751316702617061874969586610416893050801373299754111903992179169069586954860610424780059835997099618159476436877044427677554107996773109730931687733149011409684926823470915677745459508123952726534072969323424859295385959887351695272367888784164111672440745042906638853283813624030467988740807419105059747223871660287210226894342766561478350235430954812795934394150090038745694811493515877044493625693971174908528332558411474686821784039914467026943064800986265385227866892415567328580722097266295610522082340893842629217107864198686741192846285292443021504955533917831533476910424469462928298165533933125142663986477693337016889732900866360963458767213335379419713744141337537487380760981624127097172675981835811352002111843042659255079429435284894584092030173810292038913164398524083424294419875157072832224286701639719953560326452025263169284396357955462821087696769816640291555973622752007752484141720634437191098731552247677886183806906415266846212960712213841832927285521237129973978005722781092088763249941659566328879929399945980843045380647258986615981929697415800752509624803241463451059115062463510004150445808783880744311200050998560093315307367013659824402860264064009874605278113572326860551700916369939039556034212448841875612286934514158932096940686550818614587141202289202080734667902896785317977994567250082637477382522746277709573470336635326579547887113946057419334153273857112553470648879701623349282665321626153429214387699794444622054892547284605046070220425010991828094320877490310876978997843876093183422634541510760064397812587977275919727970814724300251572846781263397279687605732945502065573875184904171641022349863280630600158046001117090698412070383216446342884490586370201469847565425316431273363675055295488893657487539009100656784899051613333635765648268479053288130304168307495115475466721836033108265580971816049622832140249552835638951513263901726278821528644073748593339902771914743467844758437637359891557750793718047109768529005967082644284664730231367025283406921521878205174332702700907745657918608062897688893213070310671195141251151870339247139432416225537143350794991569018123811806395412459903425106892629112758191544579693371346781780357724316274647109230571531650102128195918812819186971905649848361155331987055336504712838565838451396992840034012723363991796239857036378381784102160217754221077206125823324469964840382571411048236278378117529923883724677164811002007227754085422335919699306892759725942532472137374280749846906767909418545994952662601349322958473355230638690757067706027085450575686253828049065887293108770373043966745375048197640271927652496005216105274606708705548890274325383858334348112261106818837262261829969557094875829662217050256614201119581993800889645562044848536169292962862758643255514253267555557548181428912394382401987390296084370716616074932790099588855906242390358373664876538352393862515282626711035616634980986035179414552930309646900361806816840263658339808480196989754542527967257458099573610351043440186054702797007591787221802734939521917095021049863722719857765686312424083503243962192780313698461587965132671317153699361805719695833140748318692630027053738758875641388796173966329549176864235314763053113632532159206177164550486679182483169337965553870303460683585275901203338903637398050513114316921248460993970599260990322808197493052626998758437462905407178143024348733905648419711852508522531768541038010449345317608786232326137933482565122657839899218646209622459595973415701690320796485139681432338467545025495379377626288457494461156351432445083537359288975026115103223933216114799940473151163274800231847236925451345825994590344506819861242786002880551809685746989161913407728598140425929623418846847175002407476018538650399059470881668367810228630848940076286210487230785090421768095445049535969864242557804128462378475538443339132922959413624548501623805544050208937982840441677056877246222838201651395964124938503069107752339848604133889161956233649801766875392236234455748086580983224717604998869236925369962389859068909507037620927216573949042957915549261373209514314132560565556821382022974332736791244209501559073469612734296406348917225526917070122554698966330726481198736255283243245487293897871389747313491699907025994552988926761102245096991736200874462857672567298279802917275879702550761482058995256300564484153890437087087434990263226232494164910756201264518530837827680704617156133331271827983461590525226611474306931184887106385977003697707897741580829902596740439568563552417995948455221995581606271408740427917854266239702655857962424240483971233723730920911307465091871480892013197915501782153903774175747806678994546249913290613280478586415923568771439521714660094740250525144608113684365476226253860496635742166575531301732118966441848784650030194648493214673644597681327384549127775156128553848338655954125943491218421570549492759522474636402720991576682618799498693237117913543082715739558827724105597714917414453220855420325865243534507116860196482335752598651770789943325779761265767403517494017239062325164056104717885041608222874340872206469121805461978427140496694464137231079483391638645222982423396607689033417103170585157608925072131379779213606907206894810155040260181071467340083548414476837667736766770247306252508225341379130391369271006730283242209365534670103352650467349199707096638652199800445625220940104390586589196815368008927228398163392986602419264553491671011223784779924691056242809116639743888530455216666802158476621739518256956012009927963345199623598717755314145169742889971786617007785467468640802618551005871722773376946402173159155110495921030704939135722650568947311717097122294599897941656776560514695672179380480112662749269694614648261439320310409190175105069068039973656110124869964033916866216470416302526011200645719814307099507840593400606189274992186870637212874557535865182570729003446919676767745728357809697892447424781176785299484229996398494978086634313580710103749204758791354222240942045136761726248775515684774220533485307625177603972425968081716008784840345929528872594334063891425202008006031193726243141967290872587042124024777049083078548063194407128652915481963870820845272668102539172204743646357027459985524838796134790197214334264381331801048724523421075421679477802328064139361576368268799503388863926859047119905300940085286542479069731319906433492916451384860861282653146109464553815043686765367034480627535482123063627940121927984591665987306820058506865374417237221613851403359374960948762530383300237005688110897974038773889200413038991559214204142004889925406640964337426526019718955691787882091713509016921727565877184845601924823829609944586442230536392222015277245488519243202474129866610083410891750825770342479654774593420552212461147794396120349573983154047573646718153131923539037264954241327469207369037225625292477450191598471794568137706117184458040882581194481348810780360269717296197027939251998384936768095638499525091810431007244737808059154884966855526563414712267648401725923618530231931558352883538254712137203981744647673866520795248912423589338613112154741217453187807094633003684730105377981609659284679055787770206507961976929380728932989415649308651634476476519402344431794043237045060207937368157342134643698722737859643918641272611233469663231432985608089522998714274207890498290202327149732363622824943237621761578205494232020111730311295219712186731321742221725572234465564764195565831840999074092864423544700450591997512437305208436238136459908474554473211174871458813627203687480050208697261988985106192050970271010958252070994358895931087039450783970784780585989868159193479092061762841703590676063523379357481955452287217674080981391652973926059229225729362591754088153011999383484459163312379082210862199040361833514198916799994230337364827709685506946927430304492797817962156794745871832592501033953869207460470423137618328495922754099257189977648467668354253917733642131611914266842872849485381600050209026641839004262386703347755406863199049371743669031840080808585141480371757869579033344329023982806961660425862523349209216676346068299027927122577016652193943145058759603090562559413733062785820633361206529110392046878022691953010685153191276144102848054870278330715041635235693009534308516821713489314800309569164201170093702299587018622717903638188837267525454538867076565664738937997866411424910356428164975977263389474762346724520938384586722375830012307604810914733090866695901464569723796283352905551411626680030549443897445047013746893538771371346094635599901169906257015763597439703966545226458895312950444606473866986603929313344501963430589376106546091291103286627932593339637018956652437229181470528084162388658911584399976089947155981755193256778072600210260493671734473400973030431267218899871137458590983075778856335049043296598912826114682011403668647483534911782331673719241410037677769380203620022364949444616541287177016346157606569307576652358457892070427377443945199919298250231302620414272575883603713239517531975545765395848159926493356103712242303397843473149600007914802876457150155347930445748614118823750115644577697740707472022024103120321821469413390990623413201738008785033511120397803677156803033857962053888837841946797425133710091678212007509151858710994353310946159084539289054417646488054065695684198419411853958575634177398181366970618737602174559635938474735182935477459228456722014006932019576325053208032596897636929923703381985882598336719973175816001373543776149496278289403205347153129131340320214175818819074982175346534276537546852954043407301203405559223618869917430585883658505086108649547109445302426265463964373477116672852217448958898633427794235970129037453271102020120702432444618945732651166166928221152454708937031397221223558178371885337858810570116618612238116004628438968556629144832649177968431564772659330241875989209912098884048986716480532737112320127089803777914673550773815124234665628575103609462227526387713290456434605398895800316146787396339175121713327280430144400554152032171858852210095437959080495373590069163483065168223169322715740365745573948042689806805887951349260997846494267103143929721648756650143832345324068934563619429609767807915242640981455424084034051532401513083797979802655671041412654931659084055084539410788462537861608061002181883545436911735116151619125871483231686700626583693839347024102808205058215170298675744545295761287623702536631938305385140429665432171350760213338387829992297295440334218688356567472511103764015823401655710112526662949901953596751602433387801538286563810400343560641457853261507303681715599830332347599806114935819722692595972807693943121489414743801248789694460428549995286918813223510545573374792248637841111067750121666005900781034955026257525474791085267721234673925702779345455930229595304305829698467647698752867116967990990866769036162451044786600961824369366397823244369623140661030032701548850346492070329376983527964612053697564559833898944306945279757791789847519040163322616516418185767038431318881749052587223999659458993351039771615026510133884311124923422593534367026764066110696916170621574196297880996210424079183377920887012954502843546300191249156955887407292177921917153285925794559856235045061616470865945012679479694923459878313303913296179531808528193557216489189494240230405036395566319801917671354463407276469519404647529035500670329583861494546081478653455646054626373533077699809032414549143303433838724203597386601527670984356446894005331499502186335836615268263515005184917836225066176826187115875816083098370836137562144588582824309883183175654549755274729919997609671271267927857616185762897800292925234652806368100237535280380103161452101351722632670520573712175488893549365255336593803703417879046093546153484787903576647150674852408504900333350700740726677603156138158456114251600149221400069340059777278426869940556997698849536071407525468262154229026141614392664849819152318220996854646481034952575382056067933013978427549973395952971283267469407567108576300160579950544019563989883591322299441697241352082237528830616398530315937647018606826577373761172361276402146913340147435229662058084259034841089491162491677778852397643276187649264687921672376440550649507548856772282625918103742019415620356439165535218220930715536332343916540943290287522975343729030950895390846883270387967376844053761428050016560692091073641239990544576723312921141940545756096808802224983061631901240747661929051248946444281343557847222057793155614588842184662304450061182054578495999791605435472306262017373128618233714881380675750362970290467307520319645011306424320251226579288298961718220098115587847513046757511993274207814307490310818818253500820368391382567952818920382184592335791381615276210799938997662515346524429345110979775308235154651436398496909363098245083834937718667389062836366846220637838653627046977384322828031877402289317885876868563067572381595611749250894334170996546525342710186767728625146143912280451094747310075534999002089065211939210604240381578350634059241504410512826876751002338098903772883672965134642303966205184444094138976101155696990869848905910554578084194485987034840224798634111847214261849367729829396787790371371437847450302489121027950310382248702799320317139916100384620303210494184746094681338039740721451016796132681255611030249467002153169579676738977874531802689402730505464663604179547726018135583807936282756590319484755018038303148958229350648696366928355264392198718518218105540522144827556283217332468886978572100828439030399257361204447716243444949451570472234537561418211596386910337460518137751991732611392424691766028755907696179751969502009979769136346546010664214153655210022584791540099262328652508757248176224491648695034008783985678094882788247847617850729200631211967101722963814195204392263227014011878284909500552430704294946749948115913700599713100641141171256781594376525197918554272736826954513326135550612313350243580523312021569595819949857862188384023529346460896717417960296387983704569372077752701140200553873841310635651137709300802249087081662425746728023049114595279965005732613037250049898155679916552877317559318187115447036822134961130055551134957748470055657261145775400587833692275783827434515448460866574637911813715284602979406243664267100589192082090287108820772212504133991539335543911240626526258758639298230875310216872937236756160069534293707790626461970607062563276422715749997099866693384554278736939249972742013038661085544731184767561638290267164687991159297532793470387851403442834095393790241872325214418413983498731214217235270782296581385857344724898853816641838565348819965925622344319903656388877955708796798696850085474672215500796715231490791841950928994890626674722429979102054812828906013740370459007252798932897276971272195425151614765541403689386157711949126995636445541053702359008110816279228681336964930674629234642459895981652416771570065434502096311708987978916224380955949728139469965479282795818303212199743656945855202677966294064296958383211823328922373596538851952508145955350866969116788937073056228241162788611047755044230515613680112933329699060110291873017663778156715580538919128821746965923536395543286579046720989322415030835049654258166054823849459350045310909237014576154845015230204857008074960721213481264955542228931069094832261621217964014552150340230905358658324129045061732770815846856970884459611653731325084502309600102312064511589656920893452586884676560894028157108819340042125265336974928995127718477857859247414234761290749994411970808554439565956942508961441868721681029020117330327485198637940136215638476433873786343436665867158006047616668822050946267140756824730565781774636215293743638725565972470295810337750780562717431764863740639866631066318416925004454179352724973731664428107542950664165612435569904370452126622856973351069522263242504413460498934386064673465219560808992634937803181699042557006718553779522428764536349457231246391261415494380151175352023436485104829868974855197429783542444842460646286848572180383287419930415314769503482809113672814022677787454642829595791282450818420270172573887134157010705348196730306126027782406052868947830117105576529238009398439364240698733994178060222269165695020149179788401374098330991868201056560662671046605144257970242316779124874561932494659365569249692784729905688199193377630468528932364496264672179040021402272994793160771319434385099213315237132781326968065864961893841798907356721257067506231855575872694040946550959363413570530609498229443952067608664154213346603074844292077245727305268212877325626915527121884819713952737848794312432618181767588446889109878951523126776281289833170763817232882731650760313401715126724817339652367187452651859117422904042106683394057666855550780813001977131588287709636613838925465424275636569997090691829660512253686599599379486784416758925758011326044354815831794576061488229574036377735865796788660569926812382535805862706951673491180209170781748932496251037320504767929126838667395909386518438161603820953977347791391401287788743778718504659168896522566741082780633584803769684229146297109356369267190240119094381646307947126372381351016537336337315329620757131337404323790612716024610396445342423588570703966492178012632699269273427670966963690024950380821439401556414294177190742092915432214399621996024724849778352732845527670174282907093929294039124595940133764061466881981904220763874415361714972851838295785165069930306102393706238190715659983337894509785708868395064402664759036433981670376442984497340274187944117078983352499318054297207938435927451105263717317312000869974902085555865547287830480960881421312957582589822704330031855170963089094457315448109718292060481776723679030035238234747377477114400532933085403633473872829147319627628897737288420896062218727197785985219884415868503385334534846032276878773111780464487956170520551780446725532133305197563662628624146491497623572735333407272430205554882792950305066222129364905854416087705190001959718613721865483466447411690728646909066117359844713377053630650387519805956863629378170040722805811072978240531378868665130290132428238214345255466738171674195569228716370288115288173030132466919394361756026199994646021271831954869839832358443805770026845157594815770293320762413776884032884642163892139799051154840169232121906610693423549440730261054116003407230365131377937013794999042735235417411496642689268353195072309173800721376905521338158203045430693315201155055756547210167032428122776026499351538891224038985424569871149572688789342088238168086531674401614033858027377551718352952078455565085103726304648045750994359774936501121147436802017552219146342592890733687210148744514539118768539913414070676602150783948721601715278825242095047597095556515434044276098638349058330081760794250163087353954123516756102319075117491790433737972845400105472116766769256427474372482157195784417555980799410987571680143725959178727622220729083988034807689219543408745778325141840933053785826968613379079603530198604813691098814883673733018081033779311332166602950242401812968276025062541314489990852855033863854004908084634059887153457146014506483239432540943167838087595315874900005395759096118589891155109772002380504685799878781281127459570651503237114942347740482876466612900940283363510773995304423179892921614691023407226768729558698659457672329831304493041586454898312932513729759948061263650949951573350273285042365656003073054918282038419676350313288233960690976387007813361854272252057378440483500412643911203301341815307069748639134865585132687419666593668907597540294262999341816176465497037411194069820866008242224213265541786192585696749139176023883841548756560235909733861958159436348533946673521962164812766999347883150722544022216301783730158431664424885949662720831392105308595776091443161987382633401998212179814089181694797223396601312782007999425441675774335152244699397743009029312428933150868979864943218979117622116406927637971696645993734156042573429848463964420541201951889726842557157193825382008681939712472437147155569242796527544904420478596076178519692209791675805970096413579880097442098202470852667482084088261451521594111822132839376116641782429378213245663273067959657509912218459951982333470880015168990750164836474842735607073716579631244608767718008480093606970785569791790502803064435849189180481091867045190594873670611917674530393952847345386107592161156511226167239659402068806109022419320743249419089605171936239785117224592329644832389460719485126564429513675967451367288752024469585235273419192329719995339994083739011417737577820727257265038986721222300755225052104803473524561987383754149221171867028418115957052624565716529043507535319692563849956776169524203398561212735716128747799302790314884773218834507096939017641692488640276865261650845821416282228545866543505823488635734494801905812016752612010753288067911090039505249732737706537564851587123466528637504430621798444539271478349153514575697064131593053714832967121258889943014925001348982790346867521450238892371253433391075705432063758085388601743988648614765665321728841236998907027537171257549169701478835086862020895163208502041683237591993394893403026893216402085954219977070078331504454493375016791387184799196707996961500269456998692555110732668092439355412472513906158269971030470427585095104774069403375572353596559342146930194649133130965347318314157089015907275069252922445384343047763595425047474472630194401697512576500881587540295804055594431998097381263643606984883668780622843417230241418162775223366572816626498731805583726085983473894215871887732163982170730137561694056905869134151699002421753145548180332666108292688785579631992585568924266325159767759035230410018715721064388609924656027413232149025115931785038797325708398693353285132469329387881347752097175989409420430278519882598745915616700984951102456289640064551378861835081661402837453271382765602466339407756555003683249603094988303193990057934483819796782371914840191382976687625277623600374042426286262697787447820016811173322630692766426630204754580462600966625939556751543467323791285525810580088473690826670896954930761185294561855466661536781772256038212672429607293180168466579350290038599699805085229753541267446511185577476920843806851623136881865015728353259659157289341465395246902676736000120060028172850559796189789916543044976363131622516656479485247344431430799712202240315714620625309781833659286889562951733755205547933447184047139735825430175859682703038106078415671800587317311793610511646588793313091284049109051774814643840703079723760694325742281388256364017609774575657404875840039007868744912675605009113110177826747997786818422704931967667068067364008196484878163297155433577471568562109257110626686490728466379845060129801591527969763715251782644719547858307240188520734666421832518991201668121584292457794122896813239956240523825649030244351136705940980865424962862618164910595398338046080548380106540754399681160428829366294955097150706600840331499025579503030626964177373422720045623210164921026935596841763137274527041486140246279407996346266386793414761236903907921405714645182913114948361496199515902734835468618475823331969742078026293666801923507177770931779501020182645300051671732616436482918840903022596839662132850852932370801997722729636399401274917189009210844137427517255999013490315048819695254413781803739302870428704667891309680335225326667049923442207693321988010799840425057393113711926127622120036001492687932709111334952012329212397508801090484994214601119700505404616499379220538072520671729142926863427739857376519438792177056275995472386785980320859638975299349281756408118502565548756738101669600703128823958610388651926306643446229056613790473077161174760374438472612575074143065364149572340338602868916515813595516505534178369065497919989184329909488788502089369610928265234827813304845070532007273507129564061107551436146534109888346412662194328910255627453276756906329608941252605974225198983969996835266540522925197149290155662315603319954270646799715096228207728924794113804123358618916816326095926848449454047993117803016463162303543433998164873127570219212630433961430633823627891066420825215363528425151916621805908342294971189005618562164574481397062945346783544539230862219965293513407703538811016112829340379530502833306601292750578855307829345935985756505950970442824143245313890772229769148890211948964725878137697811913170199143774991760462916233286760618107416865249745290010475767458525396437958910091384204324568686688438156119077591474379458138624496976060165548572205376674929623669929653476236974445144257481725257350765099580949522958537026132077136323594964325630700237566420812375251685587439825543833653358848278486550275496780063686872994559414622101384179508582418697308776834314675106031502877120966072864085413216766867712588560385755104063310608360101489134356018188617491373592992742718254255028336200599802890333965381795869491086506826557553436925044624102902461500680124872484734295341264154836882245385944788794738990779648330025302950302965324511583091673213388491558181504776511797326419785021407707178178267141116600483507283159530144212158699551876444344055201060846643729714269244491985846962093149653029154828301877513135408523285848989381999988577318270459447098987405561258524897840636607116779170712701799477731225274506724720149622935095586541166779195502861854772828529844385924496735215570805427427405934182853129076145084758545757906331975843389925942934250604846765749019230448431671078872097220346920792504915487811775120879047315693250095611419895374759578895805719936055518215552770245905096764875822990344449308559977745657060444985325078100471895807837652573511161046224197952919108272279270081741953158601663232905606219691712245978775548639941050927223403037674530662106148101549474066934756941979722241498210357098040634313609451728384971696015916469829223387967256454399529747060038422195636859113627909713877476773018761169244001466263919521390072867123978113246356775003378043495034251751061121020288644824063983370843141523502163566867505488459628132019713552416982233648086661915117625709196983354882723247203370598919474744799251957457929832921005636419050809689144524976576149873088829810096972855729144997245332744641470068622137295613732738415097357034705156894222403483305359746523580370534273561317261906061751195615538257275029682144668542501346517161236603185182770643688320098427793722021415985961485620396135873783892102142491553795904514870477509760801693190424169972579534667801371445413142091122538380432706433219927106324616443133698613107293879020237254888795357147047797394421148146348501982902527636605046010434864323218331921307915906891447921714971367859097149261991976352526309345851613387032597536085454997545104999885695959664181859464067879104438584503083323963890707537554893711468247948238293640971929608082643523943912987978226224874711023165146265471589214474355106492106976910130121596188096326537304502766429321084330748426020113112138191413995544157137538312172795623221637095081257360001870438557231296310427418278911086469399566356824278932113000931719954515040159542093376404991430335355297591263183622535079825028267537691943373058978091507882209438186288387809228339451717526192250721497513831935784603992726704171641473452397223018304682794371271077360170029218074716902313061959446517216184728370056912441633295060595163418292464945977982461033287512119196963253626928443199398919847432688116565124726568702581224369531034676339613396734369139485112062893004500040572224829466821034057229180516980060795396780622083755934314093409033620398880097059847475030807003543699407382282201893791495543048721485225276190808897784323655088677488601537296940014403853364864927970158493052622679148272633075302542537193554667202349694110142129119586411019219162122976723718856682606017377457445123366840098779123398138433194653996155160572616651603092613419839242647034372432515945881176192185333271986809081430183173130444372162502652980266642871983079675355401835896342831479520363892439689838729605805511487650529817344445999188321842032973493834088546589686282900664078640722828268280843086561515615558570428535815248416987888824258240016059697227152243488509817851734033872374249519916910264274794252616276314231880537938000952458502918157653837620514502576385839098797707349781230554223812735610768915446688079233780387910895786884605993319966229175130174663161641703324295244098584928360680981471359107321852543794053637298755802098357111498379387566198231240282058625141853565467319279974861051954415396052346832122068741225877644948308858673065581287694409981144853464547176379649484007998623207489653420395079637379896300353655105664904885985203400692269431308217884514568592059527788729991378485568035735553078813096942942778520008612830964618660581263432547803488992929235989779028331511859152972201376646742589056996817294203762674791137854984379019863585104542249448944270504018692454447593003564443691123845108534469302181778039871396960775309619711777215262430612995521656917483223128632211884526493769664274445801346842844341292836236859863057324425555865494511454892186513467164483295104355096117108609098311293074578193775567650511019159828215330182672969280737276393127320643059028506246120364279385089438148846104427074513445237640785535083437117699358772448273886227398011682571833073776066826898479342121694236172630162522312813076331592346735553820088647002407278845857532495036340177968111015726765098501373667634181914341721448555962583640442640962781558231298284675792713101443464714485621559922238458249766088634964647912778588491333162347253244476667004848627695824042189379022024259857989110005191470833872394119743748012953978284923216059510134930508053661392279929929992180419007753851266424632642649183741003945348568910533756486153287218002218271046081769443513932058808524585921478738081506441348136625345544927842161594202380400026840539745267903443756379160393227543028314483932184145892308478115134673129017108513286514003986449886932770708970585584200277666761895055130351233769744089042976038830675534942476409302341997649779635383506582932241397626132631447940218839616212645186330323475191215934045214294164011052189725121832942649370534538418032941676200420292734093328752583087298039142766051060965996364829805337728878169895135191232059023832288816459233935400041547915724187382123961654424369591629011780747304153274139331670185563986478883213842253021265434325164811313712156577504696792445748849101514319073210058155945615778526337644664712816162905394569454946860745087342674895953829953947880740263602595098188463401000679981947032416094005929480104541048842942083589496776639085653393572397493899228342363162273507308968136992204398112766730687543488146401582680322816865220393910523566321221415905316149484002163835121234791088616887723609893560544262749789273510835986141910223158895378284709233138374293741294031919395764475554319878050982955087543735479725362066434341712636173508409317930828059362744544658096094488941193632137729258525851503932049707350073902783100212041806060097528420156770414335883461142182442787380459165670065998143599543215301002285140441689511176125902964197580411051492650131678351057455073496905163939082237572321824039876201724167360271498301906144247541316226206539120670575027283097281668577821407902017450490459190436160367246665656111252493038781708642781536531474268909299263473311746618708679128367301551011425135868559175958120824063115518600760418145787271133209030464510178890367500944415932404986002456320528896936662452773948856401053211755244017172692818806993058229683011074520183277673330380767036085404483055595296540472206622217739935186708612067094884514996610913683542449630784203101850912581313007907120321530998993725128943438890300668458263026490776642871804989624119454170243069320624700543659903308852978606198689856170245512039803531635105661192706857933645114555184642591042823921316519157193654673501610801117420281235299402120550479773568979012536806727855768641158501016630798694099218899726138073104654026738794149545679027201044010924658085709056845607013844683077445132718768375448041009748790644289332694094384752727540012088057083198749819762223233991838089927253115121614333448780018154929118938174627537105543342494454116094992123465217916516675384524440650720948356576995607519758303605455402986103429027808308790418010056237428290271718811871671461288699438452331763969666434790626598808631145876798527559134233368208724862097847711212589085949555669926484769206976917851427013209908133352462097393141818248285481617092737498774226990385391758649950341425851016871750234063996692967922974805716099161955974271913581370502005077751463917237431845333266659017913827679343649753477425833228207474995838761970204795042602651314769881344516075313462073993750771638322516696815119639638251105036838031165786938560911485357752395633073934740504140106598541576328939757389634809014389814104742881904285895324798384754607673976008572864155074499217918479407840251073929820934525412749233094967174615724665051949502686879632185626029264145226010569062450538685127429018326722613850020121825798933108469205917003829999868550218270738630649253729868304420234875428397512932609646814134922666749949372736988600349435000119933470205074152559156747858023306989728858657788414570267932604923966032084355377184033029387120345469221629776541475602758894569181204928927988900588469825665259122564116189802351749943718719675774761144896186370584202831669479312700059410496008625584571519718567669133522238292319576023629170341377184349250696172309867642011794345242521251461755230840467353301010624343941216584131977930142550247252308912761881841414202832848348735322236290630155307573229491927560670083533262234071252907538864839296593076036399204705495277405089871269911700593613649208096054846896094205357533011555905732472456030763949604584308632252204724212389064565872679181415941504543163567198342346483827701637323797742578382501154408693022606897701962618801809840460772746157442572246309819212955497151149342296272272470902356398876355099246492800762533467411153230111242600185370048428374964779891406619348791980363479935180082889605234672669445394366905269623106753766519554026867541337171578408135381996885215007112406309559328918574603842438674340866743358400621707343202945238726748111834305633508916837411701226282515398317927589611498232370719795927240346237490036683603530372522956668877252875056482295367617324289254142640916525508250040697732051401956833496628732198496091996458455514299862954871366068987419624877313211301468779029902632608563336260343639625480444737564457320430495602692769626167933084043136017992814228008243947480687814468551056511725628081508355652238888927013574739310908662998179600244114484368539325495351910839334131219439283174300450637363151628390741552039379757590319413091398849406953499899594943986047003813468771528218320008275258517732633041102479730473667383294071875180184371956542053238198237701376302323061736982944052172042229195484633701434438587089590898788885576477894101943200753279074948514294092304231645364950748792144942048643901266695928512850563581540904534334969139060646909831730609545151401415969996091874581818267216312708636766370666095363523028645911594507327878891229502491158619777334409841516521751234561673656414600726752444598328460296324558904538627326735190696484110092173725460874645678507152230911189046683948127155829403286301218860558343718039923003382271219884231156831872772771352386622087183783970059279846062966740896529229386245487069054635396338451985697559145682513389130984343115995425184231132437516594342123160292565406101074275903353446029720956256855270641509182389042692723920971917003630191581549147017584752087504162196215949612425694778510736754194689782976955247714988128242241027788758436908001724038529635094638761515815230082848847579473623597694988502440101738342584817168999522209968525956156043062574956529607433253625869990492225701156024990393072660971558854171102999575672453439066698725883182165654166087251287221308695134105255097943928124374518321029276304747473712308530982744734902016360016557247971381947216588269408711905728121225125003556192985421779613618580333906158269604290931914823786147241540862354503324686132407742240521612105952784743827691798844169860046017113816282913671739542907197003875038295774608607541018634643267836704550193764200143438283160929837379824191507781011011838007444602801522779660533252324641032732109228620996267254010759230285629599449927041203681090028620429827780121912566681798890548988641235379266792164784783690361422978236597713345692114965817854488713140473646908360206891621203554387425808965736710535173345451525104619258599924030322756781348347760685711449525614028431346594682951969154876258920439053585829205325577451835375864574706316974209141920364731269219773166588671943517625548528471562972145322027350170532242070924819323162436049310139496722492384185292869128012869720022748337637293090532300153452907534593402179005579838622209301140556882510464473041975931138662261278474544546756928712625354313096053586484699791162571770764126669130244806578311575190073949512464995273141782610996818818454257843998046097045527035356896805667574883134524700107491183791472762574163116744235752338017774926269449268121056856881812733355485717742569653696736148194901467568545972394502839362874923318849634515784988093165751615868478058734618338338758248810171997091130017499747621282658317594542672306705270326214265030114107586756447287891571595367477126146226197588204871445653705881501097722494488271751935183623803682546214674644117941107603220520990505806127870727633789539012286249290018619738939350115738875126879881380047461000032909807227547592333257738057031929192744991190460205370933470841447160861009437736734564167611944462642304205750021281178986986701824090527326976878869533868871242222295999227013329641326594031320102768075665040377116337993408407020719775034860899508713076066081942645202080409806174089327298082251834455022527013718146843514716150910766908080419342343230777415049609628155440541855489756213795315734484037149365437406532225290934761180184744206431958240977658428623538191291251406147846096335000539163313083566393274520508370420343554797986026604792753081349522280974507222629166634230091993571012716075297079915675662209875351038086673002417653987429870983893349905573823639547559100300845495051491714993342077403251341424540394342303355356829108865371666676459923820423436885895026102740358239186719776612978198021950140032360386837293893728575016455418340890725139116087868630836354347858611517491928494802962660441212314842773308895329183447683326037856432461417134988690592592161366043821673508369620862181157135051427018277498170898414227271036801045322623923287536243338869102699728604783174295740471697548399444151362047706628100785573097017526964215563091738687092059810769729122946948961118022997655372853075450872864472357225266235192233770800375824861889026229728042396487631114029663692760408162001598613650563024995377391525286856114276677296624526205891848072837114957878653277131671372501434847100275145662624096381509188152337583777124113055071293860073457044349045438130882988752857693680937152680743906202563754799896780495029699224540193219781967116756526678603113628089803525214678706132700295266190188768174624811954553883192824286021012230941343942577392992335163644399130665628815392248680847450656650939674163734750480331063541298085423155058379707633762678643104296428694197665787801454505413868447701515428441128707557088828102073828298563256965112149012998065545261122416862890271115029078749947101639234066911762044789920790768225248339144189058551608614473369002872266529982570598375174967285378344572339495917516196170838212524568733647114509011124812935098060149970209886598741723142114542157088435061976192778967685396318086172325703324770125340291841701276770600991777021101855057219115093989220711096247250011560306103214271062690443854730483597426574612972497026332980895096113467899666565971330643348277507962012400750645323529062386628264499673326018843850182351689856305211917509641373477130556357357058839292869730485651960514780911099737328612231303036344839839500719643502453985208213240004617357706191979699359675779838271917233031042194235216965424930649908612471547194285010954946173623224940057231928443108555899774658026639182376416180048927360081748962396320104185207272753051327430516158090974751479887535805737227505419314675073259268141324403303318548110550621281174026040880550787807471287431328429369686305318589749796674489255086617922518284047406278288866227373215387361798874374955443674895494029709558786784180071875859328981114287855075894749691735488507244718382357656559311080291324825972975481918081580641592049165774515066706163046020409997921390497267301307174595628058434908640781441651764591400986499959873178099357429270728974743928813595739109370816021575008157013738017890196314703768979539835576553241676527157294539235841809593495702025827814420544741442769567712211625337341242845603212751707321587380060098312141737484678108082316151116675338787923985364852085529034019048642137415580665589093360964872320920454773386926001878481871573031512960369287916804811352560251252747244080790626005885017238659892738292731781292857593472606704702035249424958075176227857375319912868557308518081264015116041520572346508834181425591862952346750982628558106715074111890008578590582045031304433966506945347064023078654479519424755218380662550622983153982377282520608676271225988624643933619393136012706149116219679444424269152272588055476966757270681433114842864269711704082468885427493569913349028957766389812032355292289188726493527560747091928008247489363003738034641931340810977534090672733540946388685433288874690078784348855819987094291363678230834059718464544623153194282846912006641092828192544608964167860884658063139864266631934395379035206471458365106351285719228755314953838620854972136824299967664823986618740607000978462056268317173753025389788515970068778746468080546495695543831657254777863159889965135094299470330713480720479157090449514447678445826840124274666686448451813138985722414733197334100403936523228961358240002948745352202646841062083762453253721090977694985776880838448570864625811451085388734226561499963270044129531148056934181364073804982757737941266826562826719371444025080611578780420829918819777851674274068632820838305088216863679188446500182697003387440019488542577421471029256211710188643174527114319337716910796694856868415757895139131453767430187632015119788475293417277288855276152188120522960255987863539826333798684245552169633039757938139742267254635232444364901479057740951957415426450417916972909233637556379023770221827338028647354492883808923709208685851720909048706452137127467860226846532938325322441711957163165528741668600156063997073072189552368972882050386225573371448717006807652818061667085255826635251487912196721055860027470953450071749296283039843368803246008311844340146898902068218408888802128010255557180801229642188758737536220558151454493993492286752919222904996958978243769920705296689299568611906763467283145525028805129623556826778485871710834904936574446219124386019334241694694389438821424922632596278149621692091088331389328868623268275603762325018713225680109639281662902268247666617526561314209027176184448701134336092595786205338714557653485927565663089151710379491269613290367298709737176454062676719932665891407604350488493097829515110394753854608482194816866211787298457201125765181885658675451349833755237129688138342109884806953623262676905452739108550399322696668049767244164253186687101312894442725074064661779255712569544393504494609376009821653907755690993649162718785488012471819847511760173505364432788499516197335322545385360014604007988038766472903198257233015707646634818917363552765087488641051996615704619309767207833254222879873659672150057836478465131676684827038645600377454597763758731342787883098200676310286066343732527617787389103561173251006311144273994444875546458873075804210533764649378053105881603583252374685001072853865803863213717431543563390185710060701656236760632936091730694134168437895932109395643327401164445475433488765707183449827344092040830167795881754930295124670319924199762573268422346485173446846155045354982731447383047231456976755463024279361491941000598301111050137395960787467529451085922087128889541045714188329627494904077966088028995085184521341000234095275679699585248395126110817891832489073552900443767247542635546866817850695105436838788271994838647146713617314770297136658425059447106641363381926805283966035144603060500286218070837307485461615156253637058880899659383548285578209420743440015693208817533582876567233488943377991428078205736341525297967960731765499225524667738766537817247242326310109588104417177523330030769790636706438154436796099001947080094904479788080276283780815408060122018209915990561069089092275980631099451639247895030755063740675220907893184390046157976699207042896427761130701893842072037366924136288933143330687816253708051098273722042250225474305338775533976572494867361730183940514463638510625887428773315664583075299370521490940073091089311910560449839969700057646274638400563957483797068033903856306022748049864922537628047642646998500722406015519469602264801102937757072645314608945250397160750553396205000125811291272951081493376185980334974418633258555680621946750751055418330523335495001610462404491191312655763104725195844749298242210315395319243792451861538278988334097718737384689125623603112227521995326837471420738093165038648270547628803820536703212264644794745093172061999403214093998871435842977724523623085371896854586905413101664176565784580250947656119070974908118154398668514352145406187217199898269428539163084383910475390856183443098867242500926990998184712371587101228200316988339052213176607700964222930317639077412782174589123151009124738838547253416433358504120998307037115045027797664364746554942145809758524627914027092156416123209083907467351202615802117087322626117145574875469746285187251658163864531789354488641709344939720316448367219114978862282807834243433702398925430882050200398986052001185402141895233158350431367766623238866697326718042904367345801077303720015408928551703512989220678025502489349241188827895495460974058150356694316034268978149299884782130709483915556282819383153840450479832315626466946573658828897023197066428875532784068242905352330688073446553034185694571734005692187577480498547342043558816907976580629428811128455442646464494460220475339754621912532854653546287659950612652116856309193653288419877378267526832194216160370630031246543666065616003546773145025177013351667297960325769783254153475638415242742548467614109442075639394847342004397214883869580096312232795359765651626138839425926916179305880653820463616144903764465245930743641584430980845851433591714703221536244807034086408366199192275739223095476069070430614427373636681246429625066207765252872626378012128734159450244804138304132008338881078011666975224071587969184659541673891749839508281551850193758878999731211068476590882311105835641030134223370544826214260920481994969087780406720350518585699215087404804282511474295115418301800648232644712336068994619351479529392068856407694778564219675747687853527117528004470947245681084436450578227483948845139649824968795473042576664724757753297214901345176363886320254292742124872523076727645269527622160254532637024593647520246839037758656076692592433790532420619879704113537765101506875457680446865179131372427180795573198374746883438728319190187304330607001520923183567428112208390152839522005117658179995291006805236788681660811939523754767426055422890235024947698342529683501495858671199658194394065349618706688209530082202577369253010189159175832286068649462459529563004134466140165079428517814171824205892327240444062422923487367754789171192217978028058817300826670642827594363270209342615264264619759405714713744609149496316994203699098879992540865695960631641855750449778470619430523528024515583678420693966886330013168538242504813712831809165559153449362487666846530726342639243113780783515833570719350715166402630122938755874136739408785940589820780965064617659812846073022490211178066023287785133222218209204105588742303927900726010546739953801301294038526377489717416101669321732302461242703648621755393852747271725666473414461164795043935129320946515606845559414655307654675281100982087735032239704662659921004534658683776087611196188482416447892974803470299177237382364447902180559399396091939246545185002597542948886878091611811195763844275099808682930743372729286035414116651284419319158970748304734116600801720276560480436180546143715641047761387806548244138385801748890593413785993841262053307831414087100595363536163741067666864893171836082168931035053310076806448206297080431645965103348723893812269099523922283907932924570547918324062458134168642937320159468873257282028291130343435144778917517102120114460343699683222862804221953467708310325120106008493788654344962766318090714381752078991870955183636359591944056092464414134869685284139449988818989224345294169603361472370046011236785027558730915989825762581263857393173152276805345366075953202758953227342797685045217358249070008429588891166781506453145774343469034209928809358967980125533046096629560976077374807191196746208044091008447184912678812962700288139314482746230174996345819635989585751056533962119270370973955106006421324104358398467120932976956321787793557046217038847600195021328947946124843619650163943556763111121686252370872362590897786037919261370819706458561870180037802365645531689706862653802352651534037127074816958235869776025528762447963088986617444061970691752308317152277749533818790114448466486539338963432697749234385373582438125570997749834216577373201287228576387808111015756635081358014267418086185439121869709461097711716882475650698910779995112655236838832186853144029443746135651625378163207241383960907773600484713666532104469226559385727391839270400887345380691202018521188016401892655293977591099491033293186098706757641013172493961366278587652704939107453965474569277792553186577380587708705794958501503773650659807238380630241948865894435820882851458196010973781370335639331836990374821551554478820586744439484991114447604797426081881669700599592740157717965863020614160025822957494114344355510094601542639938005747175487805395189142752963411558987635278963754552666657814305650627774866687323644945547885310544608807554417341714221001372982537285221858383331822044852952863386180400753820499627211347766631564514215663686085818585702014933704786078818975332668979172303970569025517711815915538941914693614515761205235235717290304398791411759531603438651265789101588710561671937327585185971840755319016122716702254816523187220080474599868548388230589786928089917526684716452623415200397292341265847463685616115217559055309997911683369541055111352188222780611609272957917309332888353815810901177634180769495846449130233641617904480645350120393941118781030893076411002749108674750564830773347303360524287841320534934396332853580242282248246491435229797196361949968245947865107290612203733985172155751194227327646854661947088684079986905850845909272397243067901761066861116339323603273656781976124045775101374658672842544326059423393843911181229190311618351908153822033457250518685205393180534306716909330193340598226107608504733531922856921687338863108149066429900070978502513347641145385862304638396606786134216463458042457348963657864705835327418198655847487448857716723245814376055219069995800999739325186088316385189829372641254246543875305749227236032323948534232937408122772966150382761069648631173780630019272864359712893738719124743625847594459116573042703873631022094437104107723543778360036691655795745313088371455838964412190436010561510711953488937217196210563528671845123727101573917080454808543690649308177318032590159255641826039583056941606795099927571837263805940874179254951018440608161562688133245451307066099037406580456457940420488942833388498693153983469857816442449909824686989572430314050307743151775164709315399172804942103253948314105625812550474325483376087605417692567097026746844861100669019040708880607938146247606355942477297620411484017504620602725366783194412596472399330432352991381218914649292324288219175379280502910344118423317076160459237584848479243310692831808894589901953461055277455906140517611802820361168269506517631839496086221174205844125182488267909281463274017291837168051862786942569312204099788268128810936850039377859654813516057623202577974411290875025298862865003746344919258018439368050664621530337344660482356027058059005457397580110319002523276246449822754575312781326648089377441669893872538834711680246660457804341077752690629719848418255375597886190182475953515881983614712848784137937274546063335547061723301946190998606343302621183626237715704537133640712573332750374201442893975068764775983098737032768645430854379492408143893841069897199131657783026087891125838297691691017417189094341928636767401869584564787455473660152129824985558476654786316177874159177284575250439929743998408418309476470139120918207713969801087091096192907892198343721755276949986842417241323095704408360980934684115595506456697697420533413515050238000501563710262464356406141661009755201243684557082153912828664669222250548553574096934790988947380934077310763144257653717623228587336023981509823567097222274474126603599381886521010765763612583435881869119041711032636031917584318427194196987124095772039172149174344403552037497388939478436563608786425201494804879741975054357299636540154687016863715863462148226786417416883788068382054016325908177017944799896035270260126066440716772338256627494367738820407633572424272890008133462364565706396508456028430149029521325237577589950028318869522782349332251891183134435518395325295879839723563195423485500549662205258394135810535954663388743126954389984397053518420406484570598476782875048966228546197029308609741230398978997425534764132697592886041254154171855915479229179742444719992531685130312099626100294384253282746953199412176571528264150532641835212981459717235266031653584254419255198749350674973087729057346390919193265104848943069889721904967138079472793269456874571018414183789988383975208982882618237728031176938156556645155379715389673842001365596497636392322375398058271967082596664296263354141094267899816044535039672924331002056232327963557414962330817507799253918356275493910650955545588532525545589798415508638332344168610557569516881115064433021188959920788961527442216294168659886874327868859477412455975855884928559324122491840335225132761868017626721524335921225997379723752691392357506811630844646094452925500840425823377865420880308335594228076573931801553562400701426647564679210754028602519738642909359186126206566366972008422522432579267434018720440397843321974329466990213534860944884066735821013312769324734968929238050109442697210023876171348649288422019887573315880633539571150946249435801874893706730827661848742421551250418263117361721702298736181153525563673639392246239048578114631925035745693478775827887216187972156868675937389310039232466044170407086706813472302694332611382750992914660734696427369824037059563549671172565829938493556048832502952159108426144703157915391475869782201895109734228474858476801583456661811087927545593911281672791212750157621310878041287983629499815644236900359130465419193900019999362183614408157913699013448289156864107050645086451238916870896208116192125783673350701155623872392812547395167611036461438180302082211159417559610599973713656892103036319223226467336292206995304477395524167495792167956433803786759866163311509450039833641729459622560325892162949453339798266642688088817710159446717957274327949799994142363793300315939930955889274117680943513861021474136585353795886827127993565003514180147978927636430910824616864366901890448499933669217749749508558157389275443502095083095195461970424156903006041981258347007688767784998202275510649164123110111663025874516410373487877955543021143648352016223251859623814425158146556230768113376301504135788235021076151628409327869272767641736780142956438245286617091125162781311964628935617335799023763757802793601876068745276150832166115239434881551071956376770681130640767462978038554630523393025888382764146054099820728829910487082631340810779734450523284304606343191931231314916600623779450155633456796001350276396547588558857260348519484348817258404341121130185894539739350567452780724474171238036913036121889373078463073384640602296563073969268158573882775172879965119857518194780986520513854029603738096132738401663859606711917486224952876081746675517066704188562879643649566935501916494818761901085627245285563805059171092767296072320707849669011196940181852602428888264826740926489539327410706862870201110880396589361107301512687786457370197970621386982121682012285226805813939073270962895110268748401970108800844877114342324404495664913817942457299164771645842444703532950032518544982949766646108696444456151285778012951944295325732981517920083326290679352547985347444351776465015859240608262767083471446574562269469328435592560915823073153106894890245905467700865737839684977715108140053216378077345360851999721405668620653957730704140912665573491092491137802962194520680261657963730132349601470474503446204153262207718890162133414243457685369262706728423312688097978388582035601653673795881025073253589368854349243132749319150260539101752309367900860345982502134396173991297766413906094681077835399410109090931580739113242345658718576956541067365291608022544419035704727246555998776242826834263416506939402433717906561055139686838072433334735863322312787397664047719916630425775424905662777376500342657770157664810651421173646970559416894050403081737296966548645101803159431728088133675125504518060878461125816627434608214508090223114238533081849870988933192170864130123884910950476566554590869826790988930903751878705507377857968599503350438899834947850500762689786528428458013536165673467471901458557641443517224468058734086578568898527038758339230671660531249343637948710065788638817189685369562041890657020044255601438799461017835422178055329898681609783756213543163860490373785882852014969635288469254963270671407737605940234887005159251323028785049297351617156784801759201360048637790606537367412682897133385994234028722406406763601863399642162930114719660796884149015845575559499991863128755614527319849106018429605829286951915988120226844357520821274519207593217895842510649528142680554632029296905323837180668671180438546368950734707091949089409197416269893774211586405196293135547768833778156125196304960893443423590499755871795328023412485290379669975831091630125991468342949092695261597815487125020782155544294907415702766111230567185829172956361018669232406102286126844093391936452710691491137079380870668571935247698475029314380438281890614458579078974814548316825374942115929144335970455765115728215020372278746677506364332363464284262610844747052550565813032086379218408479630029853505080851364123390957737734269981972257187658624329557378272528179167562920259486643703156195492393938471900448369617354497276850149007860144913414308592321774658785081583432321082138752842653975363134522711971840272786526234110673665168446568234828914991350151932978638303935863306128986876105614226339328420780028489315174739241481172805949998950835393090686642829264237200481006800105500154165734975745910090408282304862501398319925040408582242466142092455891889232162068762048779873777285181780699036156722690599817629464151187801944877447007849244944115898861499491679098816775103720034032015925035594519642701875629039193999037068714200741991383306808358708841421391704450128641391621920620371747575670271281264158484037961826934560569023663644024753521260490335283969282888283253230992873141633309315564911850650612865991644029366977028082717544118720899756440169629467571481466647672374609534494521146297173326531536295479371861314033879943925002333843227488260319095958574779672174985088842152868425084262607605419693970630883753759211993531441494830205471372432314340368411365073193408863572448882200863969411643286849883607942331340646333076787281082128892778431161779487451017214752970477821708912810176430272771277748033508880404492702073031530240007079968338541804906439857992314579340921937967768567992431784463927761051197526125872273773269519884737404118689478768609499880392017665746918349725846949451471798164044067686162997331480259006150214762150567083285419584405052563456592576471945405692534213652688530601483109106773266376657335080341002058885212554177582565663691778936668426540637647071167899722717550675126944147000442342482531924735265873401479288951344537700985614580493199766674061187395393128445366698209839426159348373437354685348515456731725731090950921556982389502777993323013861480156382123847032817233258925717203388302189514820546599758216372262178395487640803217669868450480647107020153275280300714757587987661984970197754717469371078633559129451743808506356208511103816667690472647945011172711680864738448595386354835339795399168601791189019751536993116026346344539931588413993589964002899819856189394062218370382890358694360521286843471737024996067355150331450664186126484878349777348023069097023432091365126631489442881261012779426140769524123969751912304031927685660773852443650349454214192868586830214660814868780465301434993063930077245816952262650930538558565118336505347846710189011351845181828499066505393002526147730915184230889995070552296364984772265830360947875309320205866079830933194363746418108540123923349523923407123270634451992652931125195495206835728300645325824625891950276165566138198665352852639334422809502590901062905153818407810164594168309517558787315562534789319921939631002525006092638914509777469228950090455013023658901364178414636733767458689381122103349110059281677116480836617747693946711687812746123671903081266112638870921541725534500597711675200475655987379194850596208401276584189627518008612850740233832327209035953921611957783061750966356726547558275540265467763420396802222747601756001236679388336607855005687946857790794784012217783289784623164280724856426485502551588408096823241908571097612511664414963157809190134648044265543574152494616203976729041744744415780113228977948667228612588231876953764067562081500245715939995324660307917496838004108969622179520973117958751324886260515948078811143593132196956700296812159975288875681340668303617748485031718587254562477785812367528697863889911646475779558834850423412716206184027010190909422559304450291416661871728025327960313747738563495977449333168411052249261855708220151616176655824934060729400490268529646553759323948122358996860044585755363273078630124386767777775770444635182199336325871257752765335882107207120614595891838701301420209303421082930161700090322748191792745830014082499291579418013067246772447969276789517381020168466696930826728170696205490733087927296515068419993404371938812220233472958723844810874977751762551654367112807069993141144307443048546199421276542162066532199137846340024514435415838517480726235275942063438217882465117799438576057736588253577529853248470586986185660909800317411331576133915678209904608439759554747905440902616259285217463518746942395682365808037641436472054583514428038674959860327414360440484550201213781501717548727026175278163056968770954847094899957344251002640374096426387177083185842990101733714582545635237286156336371659020260254030594934231616806546188866225360595237649061372255046334210104500882525013843373462705773356505122856324701242654047495633656224751521318400636684840137476584736173138442011959833814242795774444566477250810174141882802538091006641237749328426867340373277480599344277771539438939230671245528832105415198198933354735787054116882859804678920644181935279194632913323779259294865469513243265859845738149467411306778395919542457098540524103134192942628514965369260157766060006398783870251847601464443560734159298658009055389245213134813715966864327653125919905477900198345854146639677836279769003708646620577776284019877527015630932324861724776029856010233042880480842719440512099212937962157365651006715892347871138604587035522940739850269313811100738463745278657352078511631358629198498985063720985389915608497847315451631219905077570068692584090760632884233297877625049969692113715083752920217618437177998545896457083087102527816747901359912683512770423078903537969283860768297364865449115397026933071787455952248954475438713482531551020385508797804661548968650506620738563349172617223890097950338880676134888391077813145599281847732819246428156104570356231760424119535699276561470799995601639529179903655166866524833214826532749959956590817844390588959204231976604543071905410815680671712782593575165462874454495699911442247752662171740140406910472175337959164008534248911497356422183466600960912140670113699114452581042250824489366198353350901780622159041757707113149741166692761974299128238028820868701342977442850282359482598688840122293003471872666560090749724163696122410406026801171610004469778934516794015181240653502123638649265686602732105426883645532081725869530069249762652075186763555585548770047082613019366090130036086295063960507233232888044555861974635408077257381501076865051662439130291420186129388314875298058562081589590297723135118468229786306190678852589215309056333867264995065479757972586749211055372727957511458751670230834661128101381512750701434930740682548548348109917359830571023858504662204954650238989955860709114539359718385597701492326269833585230986208665457787393106284406031717909760935502255532611759450041139233725333742803018343142634706469332300632452690531034292475539410862402336753725902553706955832914979387075674529116026683839712243436796870942907923575281558400708704323280977565745900736234265590419427479630649938555002094959724143868410528115261155162337182120248116697059438098612540620519311494395338111049474108158227694077806166202491806254213231993252406158982019318536724810788033714388756833485872278544655063432948832831109784960083921493761983626450041297294619582109676208504276964396379247704532430775443040826304833172643899165341018100355314679912976544580692373533171403777417328218927317948767120251072682831975094402701890506268210743208432721321165498815063238704911213851819456720345499860155762198999450649038300100051454969310860501387629452181038760218685014052625330458089080151624796849237921588761412912984446508987558615305197036560409656604518126129236848899250693282781375323754770181169538637508181354430390451596183589140313516453066407061085337499350612256110283335964838166767739992747312280480056397307733426556812764275257686944383025437740481241180116451897065834684157590521109509631830739669193812211226983499234256204494516550548223023540652205583109988620430503195216643219221510124810989228414775260682951730581936918880890979906054520691167502257351075927180421164835694923043014282168107667956818763991477314558623168520976619570421001393146760857508942986557928795751253163375127287344177211892457477566495336929685452549087131912568991448467759638276378039406871224483927046764338341158552950095719793081096492382900201007979172135447646300826657987174700746920333446760471742115288521631961706899931878300887253568933693867348079651676358181458022479497694677574415043021818062651483187731271177720229151348886577788424367771431974370879543310665068979254613568988074255676925211627314566808556266065646697004662383004837015242624441714935621127447901997621449123946226674674972743910674353666847762929288179962115747650219903188950425142732633694573463866867278136972976126814625855326571223070375460700034530735583184458093609863934745750746485342443391435721888421665778974805985138516509257711484327105118902424803878387564400633924945418300945745842847419735080631803237538363483658897454367467683156719672240180017705112877517276179755589330883570302114644579179833548880686569468884759664528751531245430931074601730180735794793641761277176860424258642846448457099355700876854795569650373019313024544635042174985902527932055536460576938914983583748012077932919617468340485756197561143218415747591368205427145066223392899193340060480608976008308707419105344660997268769696284778561031346010188927153379737263934692342452077660530950637491750014945268307326562135804648929233767922282074183238792226052672650955065945559151186702614054318554990886202130795686046600544528557562055340272440332865436692379338096597562409916646553235721881244993667171653911140936632755876436682994237403063116119825427945185630892391287608663176575174350388203650084507322887242836038728239139539272283519515595021439654951619759006426877184136405614275342148187799157567016319439965360051637001217658028914024869239398182214151823188507336828601893110494409537916178171371154615227723563465047940481770272017495497074936021442411186983476594349157702516943369487975272371725133542531997946684953552985942557841464152308767548643122312903869505509840463937531377760396346770517102086660641280535170483852709937289194440954356796788597556594381888347251254226068368974705956467874941375660892916193149606897597344770065679292803196812460013098810347987157524741571170967674759605096325889494000053648872325988026700391694883681024947740667320283092538496771446587217980288318305650601680800150205709582832561212894909480220527181656287211744633884292456618778702147875183890192555803864757515537583889056191995303289984625383751032521853601758986300187846848814722976166662735231612849898797139843839469805022724884705175858561520733688388004423570859595769850660500715022989441132170890155671840991860335076994319904953078524740753099124622812831020665019235850207018012833509712709148140368588338023374691233243024897893231800966504757664699845457581665534113346687669664831280884494766645548561556287150585909084054252458875434578650981508692579313817047750488782750176822099241575899502752484389141185528025065319295055174236825183749242753703995262809591755539876046962905317435614273363262558886377443021628139997967965298735131739982839632080440912653415566363349340720070693815546561015487395794149731299924390413522609957868374724925634183606278568924586411447753385632649376904842363715837072346052619629396435770665451735182292801832048926239349680144957185951655222264547491039494146608845596371422448032661777732184570610110424677253941492022338497298374690004921989082585070755629503995342030860824159573562168136084038787755951153478887247157818027653978687040893994284488028563542657830987523805236487094240796081431489887118109955542538192040545655674987329762826385227962604814347707329627102427363734763420568592366488672481842143027193458595017244859544834334701857122337745508723129804562999146414374034300062611957441919020583873534508800697899780511161475421574797424517976382934204518926929195960287623918996827977959602825725132208568527642782051670158331524919075499436709887819606405682568381087338706141040587735515212396801168059762112182523365289856359510977292156986513120777612616082052697356892986858851733417378953801464442114175699106951826363540715898910814893096486981821193122461189915732058204956854631296986982530451700413031681099876612767554299519760533716045980763622049884182218514255954112522574673693674477262486397595398642428825620159582552523564286556443704433761518078619194404220750756371011508789914040924057215395242115630931083521191729609897597950796529972374561178843341183145004788671452188416128169783185726842051978724646842853829857963004502008018593690119939076719780936912962855944321515605604627507652729860940589615206062619806535610061485248012550803434155793579617829379591787266943665442697768616330543935262511411980493525704860691249807329101963310356609608774187901151202217207270444823460629834163580625618702614991920020791163561532894694310747196075873391014289073507368281859896842714543120170035981119467048205626365437046377252362301761288895882672890661971834410074686729171897730676784694120722497911112990247543379323441668471246449448726414343926286737299196844135831783144857694586254617087900190454162699045885297029334965450783618090003969285196787490225948276900608139437677344921517682736908659953732762973083636966491125299707049356945867329657862325570215164396120859736091680209819890791098662555728471198457426018461254447005412584423006686725406924078316623863442905116215539675078374430410647174754857623096304898743754218202634936284165191867944435846152419699665102322417806983100442171406140345144390593791409263354128642845109832745895961158543878197257893553835054494954857841376532395608806638593155929061531665337834989683479387003053266850305531374167686329462635331620058970792757746251473727836780169234957957590260345004135412692724762549253151681109137646039299496232542932893107524909413572995687194085027859557569476037692887273823822578897467192346596262147994651726832916502563729014178698874333350174560283614988061521774763387226844693626534278092031167570612799883291427939244110754228378495666718360449542420765654501843285216672611389707675088340864669720818146079243916607066661051198071116253426262239603156272739701868327953759726261463610034945295431768632306004881013882417315578343546301598164435908259607308567172601187665218257088205976316329228530597871801134861438007538136632908339451670375473764487793959614630637745767922422459934439161077563694786882915873118105506298134001916801777407639775758326884534986788702609747648478402851248491056972394197329114124213044780877799354231468808899059268084578683134965683326087779758210757782108197284677366964341748553026641642914522944693608466717593809775397092916715892640286787870381176533883317075243249355787183153882915194392149325223709316516767691451994587203656989951248663450862254748507088488108759787480903477281268718723389821211168871861446691753630849284230227205641201936182137375873592148942746704447155570802549044822869323606265608418505923754007636895505434199287946402122772753479362367767936864899794661666731747115153217772178291116438384246779384777648037297746378541506927527964712235547340784479570241467692716106573590722723448570727878833909346541296496215663210039615289764944731724084011761432242342051034886964050374447817523020201199906200409981267083510384912730235568522202013283494085521147499048590432990125476735136503255982448669347879777948721960505214649494575261370866685822095964068894835938684462222783790086522270321346742325131227454018069306061774903022302475563665705863480803137742225104750664090913901651862150257484120083223111009901484220570087816498756840941966110928437557683790984540476806912418447599281385831947784364995373747501338525524440359916691149080434767184692790928031467340880505400381811806174585114808218915387429702029587129859127051534377242583339211324956421326335602221450015514173579821510201607278196742549105569218004530883590313307068185132395692833622209857648269085321391225468969558341079823386000577606169974675273634957920052147045343968999107076125724827106729411667228970014010897274502412022108292724230305469393966999190889829279436330577897858283685588467442938046460935388801966565870560588889342622985489817449586998623407656771866224386607655498139158647769402508587508752781270702731186793599704836721733794113862707726302934390880007103618306370447265482815073611689775555436999172382868996259028160134406465585130151405730581371211333328451321181158029600735905143056073280943311584348905143430738560125386581555506786164031682938820743251891889547192420151356377636964593997633629399573850192480357734500511076324102470227105046582869003969148394142298459559272768861200473484117371986794738942611712373609890347025812925209744424598821023931573395320101892309698969055658453562325433037308028117459645503633955143362547401218103690908952516226904135621900567498688736993193613054643371264363197437394953085135440310017612644053996448411483325264009054626405875349410744246209270863861134956797762457823748328925485602187073805312426362502671850452354077827186711366414415725864286700590289550774489462506850472878944935384498701101412618664363418572401258586437302235857517445454014347941917851374574203804535619194583125596426635227896746645128184804864797291098891543039061543517181550477338454551550019809946215190665432535222495387235690049320910425205818422600666630689513480009402491720982521521633748585013492628169957181084423988816679076192866971246888399363144074479557273017279246292835792895438141969718196376607196977079405851331648846266356995261863066743592991314141595228307418159711970603608778787882975646598198191552562312016982902216712534193930436195355251144837938606634098908358717917561401795324902834189276187113855581050174691803427827875966889694477805790612757687133386316546499124212298280005191841366114130195486208333149588505811263913829440322549197151104025863105943367696163736649731058325520533182566666706470843026135786652329591232849468160394411225391303631188189524022442039058688905308662932733311501338356723483940028540598323166605832766478475127073021873361594379734663122912548459151568082531965824730017455556703736512900740182523126983114485666003511502226044629439477248816860923582252817393119042650986107280781433756604891461446318414368026204266821999619449996104934883984748820370660040264500970333917399422256716982171373508120942625290546077446154394442705507439766368883293012228460601629882595532375018621912889456898207348910311995594293382376094090429857012705952733536777768350375362536232310338859065458402362908962472406100532325058283598017546086711074436105136917042579673536333534796058543593670440550031263747912440242049255347037694444798252827129568819942089973579086893309313220031106587482794593459618079520843981042215385429942018742742024322292501814951151314624057005735804293507647719285278330960635133373254122901161846757260639805786069517038249208913664604215223202280049377819932886082374696971080696443696692799389390552226653240316045640023740208162035261759695139410962278429002833117194870982496616282198130085599555582462538798063982279015171740822898708593648893549869009223703355120747193373029978629321273593996956999825567987226246275187181039840645025698790046391578527165406508821900257724763283949831019074138880534627031470264280915977148978318179278266502492092834451734206264749728606445288574046575512976455215057318420188847743361706422078727182253230036817216970606224785515393859255840173929022940710595273654882876105306810699743448324144437340752873649360339928103358639006251300488756291647903671133941113807814143158884707369696160661301562122186581353979968398092284450541800093741288581427986552395936184413601780432151391617524473313982591676040618990943959751273280300319552104494833282270737482681612296583455697258422098931427129046580741571020984844335860561506078634070936057381670884454411315404406286180713948030464188228782057309239428466630407682334595129220082986840368518866255159098427419254785805369313408291478988060753644102521067790113499455572877429761278345863528678727108663038166897240474206525934975721989776256289580860408470930702791983129949875618506036497879923426834493740285131311599090976023269625001105923730595402883277773154829882057313639849233487498953949420602858067871047615763339596382612126312817167291302405498352265447261608218845817969495244317444093184319073795710677498695792491256094231130458194434467407344040720959726003147260786886621573767013381789113159842004098678452199006922813445593696378862623266906937397575513037530318078871377830208164173689779060460375387986362486090542628461133360694850130521877859925663799822809865365580882610816860539778762898878473977058319765213386218404941489252039187039463525863793746509629319439269386114994209020642633316087971380603668068643413877891461475366537209126562310493288297411613416061404399166439585390188522442611880128521054097732117266840138647768818600995380654491799363660354642603006286811921540758415596149419604961128915980194628644388896543778662545611150575754777670954628710057743536284440342114033863055601965525694588374828068522321147800592097376324872071330779728001146716067098634289254013708300276058767413638831420452854973047125254850129192818584405689729549653348309848209042627064406747030972303047358515210867387043268266582211589629353693007900493604875684724414137087783868474888586049512254531513728616496412225641307992634787419091601592485912644835443341485772982440915214948291426095222275335997905217057800549181118574283169155791900680063779722917017040540641575831112407934347187330645455041284790457841737753984337865355608862473371424089636743933082543909144977207966841655938088810551847306655994077097444492775258629995595075779398297862504848453509808360297629461994144852476236654390530597378296372102758318432656402546033600925229385033595247876702627166432103941808150658115124226425906815018826944462606406910406839639082294708199652776833492871538059802363086000676948512986202007094637174178922570720061871645274086570339921683383597117616404903397920072424694412194709652585224073742993635441738471413962563478913784844611082680899469788355708792040409240019486553730330205192521089473178530549729723424005126144304348583725262427107716761107059976601031759243050372635350416622868699518009248733824453077707752218503404873959706864153420542921548895465554350191821219443229360894814623723528325184426063636813493896840157112510650883285807290290818355406755329306161378892714144188073991709685042247681218436951354922494086811116812354772409122586983142538002653359116723282300325527868732147411736677594766073389373903846243423427707539885409474829924851922142200591460187502578988168995434744993067363250133427323359157835490770884556780753045167488292715254184698179424760631102392098339101193792212467503965832559364037967603129242367673671879357929222835569812006529371633438975840292864319822876270509141474409931258359656678757503123183966359090264839024825675167856298181803694570981515403818181307229689908712855591537563315219595816787773186510143900306577662086579618656807297023008420232365343223336003376638649597125329030296310712259233641228239261068918549061475281330407487981776830000261703921959124668178711411912067608942875882847585078381009506978488098734470093700165137390240992808685850764704576121257614310938479556357818495253854144230449393207994182297468629622819447708285073811598528807270366948639741911759792109834273136337565267621637659606848559187991933461336065247012629972490695745806562141745863775075382669993858261177485367982714335139298268461429470723422599718119974438013448104831317019977564812847699772427923252645193118267347089783249944010900642859357231103706317765762841631705532266122100678089238756439184931166639943472454176943065990721538960477424543566676416011996978405377199261713622835384350172102952533182446509146356886986629859200667974827770496152986641666338673076644580203089531732442102241077160201983071789340092011170778744640677335237703986808183577955013298951998637892866938505002028833060688455412722916837205226956801262412616901515656803139866885844073625795162585610108683832573151843438637500474898850695849552440872366650940852064260833843950464073664119102562397384460250751773395243071175329882834918029538898770334849178046087286716644488121449435522845499708912645670325596354990131539145366579286208409097683845572439707960940182691337267476307303277546185306091839840466855191852125729355252381121971194341465729243677610527274101611842921546457426240161157508283344507029158558381275206949160351837933647451896446536683896129514855800039844812099527999884444879172982652913406864482545893141645993640900827213709808145316592213359526853184816598201681938223241009799119225804430196643348499310921529696460974352436487865604751520348695493656767538124001329122683286756879017743156577501329363362068510892001153704560590341853991773741275559900616893566724278614266305273149566937082987198761941143223977969465871553859451217081563086963308152025038274870617489636824316102931520096901525514211576752793668001412366121908328657313803227647870530852372590467594396232781566402055850451241423637791383404880656604766014967837589533165709191094015782208704695848428513321481731418668355699588451397693832296667403852580104203112035147669754778137174020815969173595572953060681981777982241527328017747728498419050999621128233634426263041420647186332065263058566406003142841513124413127599266531959189677158267051166365223110921925918090971565537539762049148704047259502849727270951466513631637248889601353549367626948450800816679568280921483397926272267897511528894981064985817766583868896232378178556664993609138595829587348170648757717694706919555422540422578547323209079609032816500256630564096831823466623648630194169883240822949418663615171252422996244382092728319473883653488313510634807705045898510799714794235539247036817049832755906513783359315354784659267831053674228538626851628774722822920126773918196073988930978136515371719687180271514294947420163098466358821076796150642339292031780865109068273878759657418098582551381227043785585863393051063790245961747209599319400687409233644093876864914839624466829040310949400468440101955571446318020085753473602294578556960475822048678668773603315091312410257219702716527507634822590230534562986538038117450460514542116746690508026063683682158960693848959412729585983221160167236961322134306758232743261485987349033289959005609209904178361034481059868671936513671809305442968528339856993363205957627239628252781243966317741616596295724560446950640673068296134367261065171476382042133740345122480220013830042667752391136356088591829906002703606064713325810616295809003161436520945458428527061658425899396081742132095896038510615058009915147402436575758192378572852579483856000357405699513976695344160464128016191267337422505378883648790288838667091155167778456519438611996537778632029049621246790245282304361759386258196423255843303947215635611834586214789139320797510825627551855564748558988161299184719902005950318093950150255609111707174271482512644007928578742323170683330261978224890849999865107744661184576491345064114535847083722089355893055521710177091771845504393534532014301611562685909774939562332011606681772868692450346999193643707968832474015416490109388660529790844135219138279153418359075143776648386447086965969585619391108574358441341028782704322177636361402792724244989725792631976193065037763867361976272805507560157739527189021060540579872755219195810795512438401893607289954044505951081815634541396455065593605057574257354047272548938111877329179563562544404131282963483631120908513037574943468388945170674121769921385097126760467463529155550037673057775492812485470145025556140767504095320005842995900728194924878487993388973878417969303934893591557285923393139287100219902386691387815528759570817508318694289623075933056612070884423456649097995363340621347219758740338613883532708002043313535613688934020231053457763165464735912296414467520195247188443426002404300797609015736685628835260295226964159214607770916238800166865001758633304180628558727800065760745434827907965973664687752349872779870605587675075530762468302059255797944163339784094987972837393218624323485098298578050108650887651459273174945394349011959878645386942240701329959251961774992070430021545917245392478193606772926358624857272337571083263236951961713663685147381952126460893769723899757580680516193160766074287355175368617872284002764949928049986641188172731705956162616276656353292840596107670815038878790992123195171314911837553984991796860152080570110171718881322638973381541339700888153521029158843207968808885880992502740493842930874701335830616918875400034420463763999259831996596032406291256613942261726970275759409043187396417720347881519006738753002262485445587757998917589350047241313185909571770251705623480791688792817284491845188208836661670299741573417794127092107227376729855725526127225724708783836130292672002283847946724323848587416700274719561154404392034054718755222326438282336404344929665587841464112885893765450923119254010042821617693627129937293611011311242961474475041112388805998986726031706756535409678567864989382260260702474565051711637525004922645349385277681841232446565123191011774820718342439354954909667622740718643779174380880638308918817881893286042021317323068407966343799108294473248987218016704442244186219060242427994351154024131600875553956933197628593456331836840271625217743029243936907287957583844307065324202579107113063952157357872727630448747006455229982428421932923535547521600599050803038936611924693194336233273456855067031470967078614258347591082437989018991882514206145645114911682368796720080888801389665678181134378750141925478999371841276579959988316777255968638477277843578239592154345535819040913956916085077922867704162335240532844417999988018214191260715430807339692310382423916093926149626053580642842730675249173003226686493476531984300871269682784902122811192956689311594966143663972905010378116798984504621768074118871667730115849863107479496331726701483891016728490360784018902821107372046049054650443690546988692151934461071939874149035068650687225362940240979935790424071085890965340650993173680456815412093889169265616736424947353192566237398902611580380134393333071743455034791657281962379384868997034355794075479539500165389120238547090540719182087960632112769604082958086958133325622374339572909503044130472123106000852529269352801757654283211202945713458026106168833554225569499158834123909561400210730432987718925685627401724313593142711534271850570658825507152523641888226924970358811377199573070372808959678231083710329177487504822845851859576292468631595745817056194453488719146289982714438933599719825372674552687125312746871145685183624581270717379683491072273208018003155645226771163138839787095761442465398354991179935760555478931688758464584225787028049013988149437884662571269787682316147930627217973634513775374285603272211427948012551595542099938026169267406937069778565712595263486066683812477408944327262546973416968456774870927826379358176088705204117599071435364781348547825019515929494888292729196321367973119917632493275024543946178393549210119810324193964126968294919218147345698763649593953023842090758806153506748879923010514734425296758594044316919161789613191318720235382908623231762389868071597258443083074282266410569214583425024931217802117535182635544128630509694968917062769472375179324501170416209848452720586366361335095562502288827787548755554904313529826128330164499675221807933274686107404509902599005498415889664546626396319878115383042139789686766555748580090822427112941673934821681655604024241768490973590790462860839775257975495262570501594755183529577845227182433580835675488308342753495918129120032697810916753563219316460581271036779477344542474838881107283549678576718050412631558847411433258698020786522164083993737223722405789972147528179515331476217265338579886947295583276541898816795513518263742813621557115777655701942374962502679776864469664314572814263233099191227085383977383862852470921311022456365672307196939813866420714245197577895756342994208109883145766379544268196920133822261324498012261901803263965523140039441206078122452255266159989038865996223884626308228140756550798089347951100485106536232855268151647652374696608340479120670836335573006159299468247421799242693899726295404130757672070607265878619725086733082736609651452212577504907485141452037233117114547979267802085543846958155770968083632383289687491073851491706890696628969380997061798063372766804527215915938898264175803486483229570481688944895765711107845673717901360845248871274440251122489491963876019301829809809920444246959737259570475348093063001308639122619274061591323153984543296105571525694591302638321280111802226730642073151156650785912484092343834680992730978292711788774320848412768631879712831505545982423618094153665892013355896893982262910169057519634829439395833129329853986245843552612255564802734290756610708737199088223397817006422697245576782723757767285647237450605727019891009227316609076450633407990728730841693386351508981474561724874099832688492735563623086903656691537138613438075337162351809678148216100236384461063236155579462846736191314385098387247260739079330102976591343199145231979714933785837450317641066140554429726832574951863107009490222431798964709538095621273393492020204990369267715602586893407889786086820422846750541379745173032439324036095751429481024627637230297130339503719106649208715808498985805305486514410824346503499719704679935753343402576023172085442678249932949334183399562760882918091226687844599860557668005960593110311537961505326085581501091797064946007828073568266805835015961575965541887531635414923742881637318496759608576637153013144158003538516284317290062286788969142921236687134949991258747443536310247614388864395157948067848970182113844667771966972947715019593116572472055971617688752079695902301351092106377692370112779320767029281069100391660183466024558545658467360326325803788182260176654856877951056408488739352608960272434576407567726983547260787579343838424364240167156474927421115270181484681193009192440594829256756912174475340605864501812603091528612055849041863212740021676076889437440740230818710030823413862274789182145509172066780822497311716757414525661993760553391601599980017659399400405515747324826270037810170956488867260834226921025829643481799384922147388012666591809817127161370650418510329724476859600608242307338447898210529517258135656929063318107728998337323865246329758677910848723082894976990968637207623466154494868221249787631489102269577318813453655789838715178601521260493452431343933922776830830163109830672739819867342196662798282101251668494843847164686705636000780376148333495002536355078978069775973304601806739605043712245280495101523102262292872186855167574714575582599290461173345954861954394885212781679034816566910530707575805882239094232791854292068338567638834492318941718786578953407843597504301085957608209631908705984999247784619977627847673391749210226364672392252772708320510909933682189591874491967045846025024724875768080447792909602209311986695726966476902585549277466242875823736425955514011687563198767222989338672005297143026559337040031719676374036624730939059442517001717181546684502195178762660733152378748539503135300730204828313410834411075892004624405549437373788519580763916673569025865451832603558197289860565150783989402660275975933950119056176527625105383930268751127785606100798977498428810244711636831212884390190913474906391401527375021082857742837160257777938729794183842807005506379082194364769576522430120297606238879317883484564012120896738934532411204654116757275476767732925842628460067618196566429536297285610442641981144540977095829966457223473943094737614148560780708433828764803186947998070184628917002245888985848518853974667367647080424164640327681288530797008298552370995680411505219346653717670762267645122648008482068879006260864686477113289868919723974151403922001158403290577298602135801014260379641686448782577099600680419784691877537925668385374887361330560735138673746805985958700070023469878197512348881575556057953688296022880313454336415656364476706267148481791427303726061178363497358537257328782593760088669344026669298829739541987941351904713544077810384460556705755647306278138414010095651555523296699384094954518287376413824156958273051490079262788133853405210518143851943134969185521833747567306950294536695552023194519022724481476445729479193190759030948861405842326214347888765738817565534290666073952165380446414656674462350887139596692263274209230554535348857710022038215966770714533504990779153835963367649891772135073922368112125571388498618587230243278479521818661486025201222281848491837781355699472949519754176514133905929181866321524670726291572573933100447801926032730685407645995571621949930058037498682008270844916050424217428281638405729587335766387243216013689921496872930363371092815582578632992805376840287501233399032895188871617195669492731042517910078417098696689027445570162390067293207891658166740476931557587353874757110252186091792362156525832087511995485604490256990976287298395734603798540690765410346739690001821757789124522172156222356184631700449727741802991877117000752814150250905941461566411143209445874828410195181264426269836772240170876726035376545405331146730133964221789786076158600124186502557292643566756487360618441464719230193767720508739544597840946292343330495301539983919416489273979689193738116327022649663031250140647297730973995659653411991558683719957173293132239992652776448893986302116393970524231581675265428609886513108869456092742589916920085684823305786307816786220562922506512270253896765326844536471012068912145150210572488866648821803548583227349773269877894977775408252991143145413969080130624598593500986098887531346148830301773454669104969547279598390927148476571563339852757740551672980113589477877319748296273518224999797174389315402445030404485618909472408088191645616216817721337611053699673718689131148564848540270104452768817370211172399221908855463295645021248924011344291749733985954533828566139598824850029951362943262286815592555023608819501507679813110274160754375871933815326870768027714023194013828514999720051136388723402479974756885516454774745893354201095183846128201060388694051567555164293944791243963177286294700058088389435859588634153918887288842645341811735621177022867309126534047517165599787034826982566760253732942332309927518273638025272973463653024577574986934231467765954872069453123519551449197767114720053465932835030743484697885314503523054188756269662347926363773262771515271332123310242843312861297254018326108850422910185536537652812649503649643309090077310254341657044138799511758273616204093915552589212065141684701386462889423175812568035276200647492185673328318619550373024995731706173802854870224144702962699246419657767282751802962647746252986584521565881068456138274157421142591054981605399624259377465343169919721981262126613923829479739049415998192135250664655497438194602046057489594257614493173812931874677472634030323791099763737359807916649802127405681879856934264840658611062303153788259108488101047499820307678374626770853453883054855438090728404127959623747916938259353570992636082758040681592206902870320831387898528726035196078648738157886018902055729164031912407999520175118439984950140276947516588239391473443557962705038124822652357355555532879703115994906396726539416107284140229945527639734949403374250070968942067747272376758275417508781714505312823609755300743974083847265189674973969183174152187844022019798823113209482469932193983138849113351052039360618372355014593496418692176832780527701624165465592748045244149399222538476512081427858464202289087057976802983887923446081883612901565161657301159299911369746599859642710715398425859228704785692169386980779904747811625966629368172522046361618046726010023446660205967345316026860961187490263500558429039842937797673339952167465398688669597213802273771758304762526791107301838274481842871323468016008221799103216702827464614037512262515046863433219254893103743347810531237215743704579470999635815007233791688598227597571781846606560701074048225112460527273330775844977320941607803526427617583142851354538309449159603576217938949266935794241426225167802978786859673264149008591790306837045829663485273313218226570300166886073554404536060396386265247495584562466998495543127040093822769947475087849145050090931436762801945449630895544906130769088007230228154460283995774783719199548285044276296224066850784266535484487537054522451992759778715786311498283203097171293265445286705276415797042708324668603039752002567127552344673697588912225958715918860912450670289679828148979552878949336741487138534772816392141777467764653420779374266033027587709145283758840578287409635682758133970044176504964456524908288558422362357660152694502279257643985979126726922704752272628923725893652997275511200002878692435199945835319784115856996480081186975378002192110625686916513788616592633630691865327960718253326160411280935963557191831493444800797140911446666956136418386627333610280406244497708798433385394598553880682016502189163978272444051754251666092426285534632687034480295007302709762752722530736780476763612006784903837276150385413146690311134790866207192675560201547954600359743012619666750669385631629740766170167940359087347540870532271231318371527302095445510365181420863111797601378756784683232219970194983969526715876030572144752195989337863473627413985946631674811832867524387535691317297857383754098072286973543087414190265858139952865844061893270108437994228198063032781659569422265950749100495633877551328567855184444923117121158497593526173301160734741728901821143531249684169669347099301774831914257950108566010020712905264407185015500852368718293512037941153030200572489813238191152384495556846783297208307686699012583929579265790875825931786047115632586427439591752226188851556786906069299516285768237085173521481948463854827521256668215918950283790872244143348090734632913626132469399394292778193660530559356636618152704397115680880915689598110243659838328855955173802774125236973165424762001677040033036645927538072582522033483080898627824467251728605471062392192286827389633538620064834863592761597355052157086856362818886708003392418828213211706213884588203810681338399940023598190087360634165173897787108936131203576519813665711517287877297949304919630747429104510577401869015297660059784022251460194959124186405556303565635821460849430139254373416349288683887075730877689542207705617758508409693532044552526160139367247082203314193095713870330318090304366238555463501981047534222450930106590024407804148817376312372002333730935914079436765443541669462304114634324533746511806255961986861108453811287818665709480932901930864934498184277288849418803553268297633928449944901386066036376688822677114881226174886879881879918958624878687460280043880132380014651095410181134945671597420730322846054572699734366684808775874727116498064853883688008794154186867656095937332133333002307347547715438104305129201705314370987772673346357332264444269033261704133955378142294421836581711784961180272613241004140731885071292879383470317042214463317762180451763100721949233960031574409221094110185221316063825674547372667122605929189428208721097525877071210509578308829739427680513225702878563083190530414875020716355948739216930150736544017257471851212747728452859987953887489990610336557766063400771050828263324752728110677542578636470167098097820730992590647254239628271304915005682068567904880418344874350498933036717493995911134736452111238128818814847819137540539074371865774420798021487573911495868366971258962523377030401901751804996338113645632297457936645239958607214181240076208524033863897437989305229071579846379133065785462808015852467268919261041445924454690629061269136559101934834891964080925846387654765917479351660301793638414720548826278232828736153613792776820368529985740010702583279122003380620120900802569961086827434637738573385990640521723329257900484803931222607505287023621306835406855080260907224754518573308777932900703202809805308216063520203876083908638835647829585940450967641137219618414614570895664719894095685918034485764224585883959493142971657034004397867058363890369089516587032995631366110367904632141780734936349345355867196244387922487510178536508628780564843607236310671687413467731775960767514974179956522975615481389511171100833600938373109032363763898275468312892404024270617650489597783140316432961507499769386433676135794994096767986658263696833476894407987683068091365184073770496557816512477504930334064910213161023736085442015759246100613083022542139379953563988437415683842847792755917217395269435216042826990945782182531103665268745712552305741167455646833282296943084189441526845816736393367562484085473541184918943853590714321599590604228749704490798405397811483032164834290896922869824092262986113085341635386295042960341595297207320058357810889659774443652884395452232388841117822768039139140378876309676781417920984537409169027847331446536357335582829069009085399157592190124119298655936210931932851784255115126556690688092111609994066094439420312546792481770840430746259106724647277192947756323278882456911177145038468355087460826616057178572420357777980515051134547589052981000583195998256362163525128109768244174994992092364014004213921105882454863450070707887497960737612789784442226557587924149667640222246033462625147423207811426232263804789858176423592664700773721348675108976127458174573739964495307345266473341506343432900567236211793764612021440026384475128452232206975283070894101020732796184046793923714301768865210547014054625154465888550577216708653823696520826828534324973091168179735481741560530877639699729036942117476353516287743113735372361984691558702104835122758326076202894949029444925430822771789925504551779598909857294585907702523697473832878411645849677503079616925597794825099454868447405959037354979375658652524507211414753073992216935384086327182143404021860803616719611780750257494147671759298899034062236062919963087052278901399292408815726436352720842001514333053384776235415134811620702495857656284685447501151883266189021915893463714512792942378552170085652501455439302795972813069251315490615370991342979343655473798218914396191203237317748380964273784527192858761805353621802587435978022694533763176696319834317259487939736765070607954922776570886531226882797088243384505879881954063805995488658337185860669940007590788729950942749927879445889353686828068666232348334187802720148856536968856171827423920165435816377925739385703513517795308435083296730979873567577791295128395717764608435865261952835062768471672243813802387173132367965257511811771109453159723081514248502221576764113734725524053359644087798421368017873859034202504357098964661059749959108880324453970519133870897474665563819863130822853898995176836926231265228341409787290478319544126726279588770204632318150618605544735212179639480631302586404019647756403794218809353540110414541622805442307602100813620923212718322305259646874898886413080434617227158495446391253043945528212308303953145122633346635826419115698918184810790158661675501954100383941829075690873992009082653076089341336626071134197255592754247737152393134333257381616576878908743891360399033755426780481117830543713370551716365562665669836445189299315923754192788266072790995094935391109096981576334875156466488916754678035999005088825907740450450308683369508368129928187420379694010143036112417759495044654578161307706171898188460223929511776816376211859339267706342890309828295235225936633441317561904377665441055146791697710519263078117084901949391337371786533686834616088987649403594469663162649113970496433161054831649734825279268632947497498753803606160888234363932713112845852178550422167685272613493726135390289121681317779116961739280889273417618707629065317632356858762620933084225816556149330137728919262232076071669450775482731591231360582407265501797994278642130798186984346187972398025095509441842704648710519574730807058432198369838553998334371209312174778113127611743002140809127864082596771753518115276301267247214772213246260862957013670295289729105736812657519767815855249063789341729412268320078265206567385543668346684547570295434560651229754269924485613767836807588236246451021954888488820911946645777339627339863384822338883770046406400558299760669190421006300079166230372061544879862774909536673896918332291454987878303854990246382805259405576860555290656987090826458598215270751153086939850117792123717925628487305476936532367598148895835963011903553026671687947017430434140008023204726075715222774377283898484479683158039590851928931745230680167229975387762616078054440897784785362551438015715076615278829716836887546206438027729053210526738315928527791468940832527615365471276051239334926224800383969903464619567095751347829028558025928165729748541059823206880421470900097589496495794575144374306226339849340581705603289873964730712656920144346240154019580856994382716363335720321909682062815879240096295049719712996485367454638199593951805481794629026729768381141980967308527638029258861894933843172790234876555832081401769559156025215839691412733299315024372807294974762975567493345780368397576559909281596512035013232551263381622772754123272139542004326172746275170509852549472829162710298731277616409217728091615953346099524487951563809750609024140402678775375194271264970336827502481652150546059443873033733537968589112598560227652354133999799860194089863057505975985452782806355276992405282812072240035847177571251168248311725872704205279857116357959740339213585991509305567507807420222484499286660911767571664030485501400923795587357444911582866456058370086467687420023460989870809603623511080556402272735161151623423653295528650308994688369780211890237859343770899865911062827757685925454555242407709878161083094850315554299602521572149814125175145521555932001567554575693241798525322780758028835024224931967275936009740893669552740156921306560541804454110310825212752422241158854843280797297465731826416164800403711384417993628905538819549717780002287503317603927847561474463519678389318389000016690589086141243288146137999706192811223172326223864765306995762676549323551126858807927990581494086809499257496764332971096682293559760540941447572505922898106491093349455674793028357366672309606748814469229537861790776228774458371434643711277363994905851393206261541399544791766746731268133901323007920041848538204990020849810632858349658726051404322780334885176356502159415614705309286619951311831271884103537789661799729841218095142706377370758492542262251090710233332317649921186394816255634262616408760063011679284596865109712878108585622108634382744803997751487701878984455705073565122569786754386555940083198843122614271108648546315042873467707487556794077989095503598213121481754685456941968729450747851782077136248524483935442395155491927537772317783207189025384520388454800198111150606957814699661472347093018990733846092916410536433799341774337843853938916034990851698976429664730134166969098076307329563073777440377641689154351617804354923986571312210653951006726292438959546660695635435945897753004861785128435034433490864840812156936470370639826882897203701229403084698739947241809330784007563601302671255121665586405137183650554484332174352895825995913953742721588645004725276999565927844877136417212242928127294078462293413603459177731116749286902911573759190214929533502412517502796732128647295583386152103417893733105843489326619765818211009574932442433968259702139713110271471083883723426256505686469660112137015254876110497559505525358995810232005812826419308258166748366822819233846709522355617748096852051304072324952652599838252849397099288264455849290690088947094512502225409616875918963095345054094250389808251631786261848493921520742431732149244205115939473194680225639579037095880070909605331313083446902269687579472724621506709825075977083878620741026467384818454857280281406833073835913940143246422243621175103732411664353327665492720017520509647102198024695740024236650704315963303371038453688000206368384076522307960878391963778305099076664361866938601870284893881045410157363192756195048658916584634703440503145677861767150317033992617830960818390901084061124600329749123877173027124499228714232080630234702161720305760966380903310201554696538033820378867726417623701212487460793405656818201021701525748083291444520533443429873184571360367231513906139440501123950187691863568616721386397199266577918098163465419133084406573718838734312176916539141849381566014860057326408603144932965808761739055263409813003810141093404426302963924824705636048031146686997836277675967836913053503523626054708727249258995465991620103905839314020918303820051975154743092879029618803340784825742267153201670094743898874294206218247889329368008837609055753318086926494781085421424298148021380352277357135298063650000103293624123643567569931493015353348778788076073445057959377722188152410091710339629376852131267297503932836134299889423517558780803071639149818593630820075242020666377083623553304036999318831974443682460716553048844087034237614282711585261340301266656852585944282017170921772120318923485904588111683337433312218872908459882288830570986301422773219380976175851290821733753423356492459229512315866765172140395597386709338753324060414147800386538415515963130167573783869101187872711474954808623924929906507819528866848500569621767934883719712767674942853884720073772635524793100612215512299728453487706973741028713563942614343036010483289856710015415657937716637886557701976849090225929642096351831881701799635741829072042378962853225192348741223300814833790488192673858626967405705250701421004361481566179237144159739576049619814734795821538721950218959245151237267506392233092972137611351874253390085881925117565844500353019025077727352750637318131778936844642562604792038971354927813762286680205806152255399175695665023447639549869605305137441782721595719061185343238705100966729121470319742147882471690300526671789516968326943511962298619689159400773997109654245218190408747612565560569139553030508264269440801217015967941215998072709827663872753361809501680519448845605534167326054522033303478253151544707981800385404747507766785561418126731322549526897616825238734222730867795203043439991552296135148429118721424390505390599331919938002347632322510100969348555512541942901012373784415025086028986689743829262386948694322135766099664352828103746395227321825893387056222621066160441582024520607928176432396288309258510299200901740543717629792859081248802599248147571134282149645790346358641582283191793184574058223816277953381953081650489932085735234058771709250966140323620582888683172271233999815829624886642848730281539975639828371375225953494709641581010494214805115957962739164185685890984085671793769313300200870886845528504119549380995704390045849811466266317962004905981913119084588840250459700147297861748491036105408865385580952726202603483274578917253663357427207687139796089939815087355328916489748103393428763335526742838195110662811959951970439648729495861953244105727267321590966683782784975346848230188146741411961305335840257885317198848519140575818632628321563002086468777071981284843731571357673486387561026354755305119137894450105272419442825941467417354848916452418100384430349156047677891111209732934606106977774924291176054292096635780466994684705132983771135640077550647079129242862238536607000364357004873487061687055407323826586113448928123161064595941857679142766591866546669617134862393489432090401347727971923132423367935462283444857018171507935103717474206845585698310936431546982147646183428721222527370386770630680916079613980990353298784268937296752129554198236220018734194781634585670774264686435874209252228065071055970710036691022121481482045186036887364432067867467197612905139523067979086741445894702017459394896027389632751835539266274438625849177198492021875076211020583977471978475822076058621828487587670169186336702284574486534775417086085080337567940533589766508676839063922816228673876281476659863101483927929580341301996621880097757264042394732822132824031300725893283249686614974237830968761107193069027436641859254475201666083639250861191965548222110480633784182985079816693523817405628844468610672502227654116395929427511893894232235769959605991714492314158455890936321007261918512724199133686618131122969369946106601244690857257466340395172128784228457916463333030166484865905509649556498137030610886985630413393498021007663986434214635334426261174046345045009344364694563703771292108213017161268266078668212648988580648469541371859937919620192623580468215805577208135627042650511696017710747454749328330042877470298491545229046410792071611761591901700725030801316392526623205377844417058035871094643810857480554224991045140669100702964993409461760500226018571443057113679590483735136121739022524034174954110891331118554977078808044938274748245679215969096928433664529774514675770814544919080107756163259817724642324477487009216083944848415441521009224254881033157146064536200599361392423416083450424683346659185944585232517362351900875273250132294134549286506955168716485903608341699317810749384248012393013174479882618876179684616693446909119210382887427028234254102290988381757682780132390452550039173516616952934717864317890720550698733001892195733401957293762319145058246154712176083222241134572837355677319508455866919459723524337524906180376685226671096847715370437144016321503675361746671215231599621214983487521396745226028803040119807171013749026508939654262020458620418851864069204350995746930872342586591930523622218548917764795470792806044970315803793567721942573359048011171087936508383818825549007493754120629055427715018979282393647581456507555335131531872578213509679591816839743621462888102785001500112337837199724115862058583928953192070794156196766250011626325817438253850269829658040255282712929849958667895580811601771403866006303962415496436209956693902510951753685782924331112794143474440365243201992471807955297864161806510862840630387947057304708704173882073634929304167240507316592475683331946746944945083592143309082833667444991286546350269476803673595087207623492594142583263088747488762173150373488740378020086709076257407450078929799873161269947557157072628991248890553798039514383583562963529755808338209507437672778819787269040023491764457211964167124292420042236548288396473709405270786078846527886407184073241289177125314388333399369928269079627117981075223071411029857529473261158622460207421461105057140132518683382479597379130409661618001244607035307942844387619165980032634953444151168263581494181300682547655480901484623970513658649676149376809169484485201926708254762719904633140087953172797919252861724267140702758083688277578736734241875418234632043581778332567243730066534198842145626321971142705592061680541818445274482021174419543359242964771950499628847536476364067071433823844650069279469954781636055397717610744796131773782866146107901190981154350609724765943598499943360481247494774036711218532740872782064717139444972729625540712189420555502812550519031171726422879353867712809004626030141169402201097069928557144245188068526175572998539305094114519698216188493849011784076794244373262837643176903317901858062598738072163206083996333308782149288621897732577585578145893908494884787882652760404129005297107778284542184507174750647997295119151097828751996605401510467411612071364055464391637022738177740444441578865448790584874841719531519521850849816288623698523254820907671846340904909130159761804094405290937864127623825874812676707426049791391183116879771182262734965814189347057233512363901565939350962240002077632986280281317137556260334510512261553586109375580596151377438548365105170174315534432699905136455170497508676911642278768462667522017660337200039143029882192104428806825938128502760437931623215776298439543691315246826357240221068446059225974724783200489408249288268414873553138190587249096714850427390637278263239643298577967284534272201686158141939466333553889900492922617188299407985720114877796836872268197578350177760958144139565340116792257729823531894407886462193706168959330454605077368576936161347240313717704401552826432807199672771483111856426363260223231722048158335014487287635178693107821924949345941211339209497281315331975832815634308746555449877664557567854988830798555312207502606341748118669731666431475710100816285141852604461484579649726388617799332286284952076300502463875947078447602050227951089094598133203927252475565020382877884845161713962217256749230179395250294067904147986394618192215478623622436484158483941239078039962196688951704348806903379762528791270547564321272656633194579451200793030336258381184930177538638594354553656451883465348839967671082724910414718604700162542234695606040767474681119967511602168038945950786093720946465462163388238235126397212240431328217110862575212444949687805790212127915103931554151424780239934472573660126332483795352334547742695836314210442204771736093937554065384376159126805184762551894448674345488915798433125576477000226596340120606657623546840320201702597478169462117754538939302495524581049770016662700912804354128015837142075904192050344247772142823769347394603510652319033197866602202478806465378124836581233362692999735166631876164996040118215293895667195580788189017389290165707408386988300436944958081197729702699258683774448213624321274486837123873924869523285472435355910178300835416742321261644129634475334980954758391542258950305665375467856122852020556411192035524588569960868858686518258303767051758691126920629225885549628489021621918803635709649524492592520027206695053953139047847310079771926739950158251817827924145165782720015826898464803121766358696702714028161279323866482192519959052795923189984257935994369769997401895371693996867706567529079838196904820769132399657892231190092437871953652983587803012722870721983745899152663529797547633819572322293276642961311407140691187118228866046175448097970213403001810081127278794028375088621850620909557849847868901462098348223674909374159547113855943799057156908863253119896195440942057974408664305169757890440799480775275904581610868437613335120426772783213634528502891637885902840869998182686910796909836359394555365152659002794132296596789676233926396806538923430275202252132046792716005554014339047126688499289473718756015781603720404988802177588389873272592956644646806428877675796256200549916872478132921213063006747993600047457184021367789158548578755030649429029763355143718040089628155311460109061739933779965773842170898714726918981923560530678045184106541825017862553541822363595883798197473147121974744945742652037570522607641356372131553512621503883855349948600965242575288188530061125168222676311020167793724173903944030517639548624731172928363472481333290511687534222863615103893172678579626050249002079673566223297253788275454152799830475574765736392772444733590269124182866371425028811957872116742337509637433522797350067292548617611232056409542108819275038594316210410177720612289618614549263617178426549681830438489726344071381702879963089668307244663557575110579905209139757295223643094998161715849492862571379998062192306663335588489207127761634807551621759103797107925647272751402494810990674862882816737397110209439809893850827844460696805857282785957893839667787623954702551613910871981023075981809757111033919606693275096322436601531244698377748603018650847890984598933578346635355339868998079746531599109987751778033715499829145366070460904137986360423196931640162594361496086162825078683570957720377786010952289338497311385376304540228700607661023533791074045930068848991971981280227489591703008980728468460168322380321772484631973551302141662459416885840730400471267356216131965528411229287391894901935076808444156747342737475046247251604643962544609009322033921133331641707405585743343717917662085393189720843682294592389192764885388907161439648868171798017235930552667286623655189663064722197148570650462741782751917234503230617763085579758744991927508151062480764174478757866384995726531309728283313817308345243477563174638371413095724154632035249603464092348520139760299912777980628522833113968017831216211913487784004671623304586265162590705402763108327699610407762873142486427187667135996063459452414105491306191917452867349412702860867950181457403025173012795758624577102327848307329260392168165542989688986269839620109869634049106781499856556351103963618205287186884133501746219132521467938201158247876148358451928076289886764291691879916089217025911572212575605493298585411496013739427175840730875694065862061133522314365935192477486443568295920455055137028266492624620245779149434724533824660782747704273258801207335470973906711804435399076493093308330006585267938076067907296549055282886170579440939292913841615712026543971868135130052023184231710934333702166557130067397871539113648770802086531857024012140727121735520493804834772844602621129760976713483954961344903860827602377778236655123692422870422115196199086058590900679303851222603034869669522603606266441187200665906895472894205255760420321804456471313880854672984728339722314986612854164520855087571227079341935601613212736861736573517181583683946474714339368717390847804597314427656752509147522512059779802797298427359662286757245681252761576771732043919295465487555375559241476475631642895421029912809511880663165266934850598861342257497475560159541768703406900805996531381366734927904668189948524339783544299201116506472115522618830538361430187877919307282196908802685346684154220277504043801934698487477518383157483501977949550742987135582997404278043063976705350997844804867668823180292069714772893515926007001348746184142038654386728153651668987686562838004069280589920554537990035822906422317442302074344551934167414685187643423846681652848905008195498864454740589765886477694815949773766257638148772311657234150816871406281797908625591966621521041688919810542222541969658397477255172792485385897777607591317490972706169554073084373852284590355762747349753720282703695290947557854083292001739423352764685622461449522160034991340881854587804017498793913679840210516927683010149666104226125365761257832808798197487756033890166422614235217732468686393813009249054312101735139569632471810933506282129989618854867260528293215268971045513953200340575179420247444330146726085016593333335890725284673473144642131923339503560500247233519982000201814892240034707344787231694729472114255532656176487014061883045610789379566227476386445178196068877749249204001210929962900902040012531989177702555615201456610300566088657796469341322098441365308694162347235176209574089305951822847118587599923721896695198385003058521089561042868933487692444061731133546716174016698158397005380977798735570149108804691657721234578016627609747183469218598112131228346360081577491503456145738988705345994096123195175650762497235330603112073010527032551020479281505075020565395696069511498148247121613782304258530246278615760571261070182730293180432379862310143742839273929772439261777964865239805112697430326381419002230159596242760014682663317764001764205221807658759881458956732588297958352319875179263539889112362623371263019876103102276183281502250171857173893830739400340244580758503662426135749643403556598689249815372543341066267054785999834689943530465929472446302183641531492528680716591447723245888864629941958593660211230687425033069477000123154222504695730216848579096053513824269448000945224056735347213814741429538107024609285828196116088992622930571988039360772199635912195654840974017018184002159700292248586416677875373753217640079389528326630486472140415070749684209370822669382534721163216954869906962521339606592579730282819366763856224484271204387619493806504223820441212207845318589488386375511334405648331599202935077946699286358563390071409507601425064504671173446640453890071903315278325774985438711664599773121887747253843741093101044517630723616513147410932912606358761041701982863427805513459236295178362107409793428122709491081460249255176445087893399045182917332691561673313277349590640863298469425425519350192293353433431952269966941519401001502987578173935468884966981111465075876343625924678583611802526088599840827132591123106380788480143078705129476424221875270998991179177332724571716692310925051872796304267266726039990729155577530548919940144083550601823023424779883830970733245603565507290509334389685545267702987746504800599360702430068824906048665941834306644096838462039842553012458554288957671141765764415218253958761155015641560718441902704182458581510341524823986142170517760739931472107097410798846839695852780933492389103886296786179522313228688383379199564713131899268647899014295276349955869808905257906579896665749361921483876797059915315907685794247673324446488864813559015788621747730952773869143207224614799174019881813834166313756200249045863834188413033704918205912846418801896224940112479576677599768466695756797453686598076763426314683790876903331790582452256613288696797037325130820861967734724119880141905764185718945055655142065448195162545980134628052073036861102668583251448499867525170838788125737643185099037273990000581195451191747932830521990039198741842672243623625920145981752288046621690702249301591729675646486955471988981279796405915388078866274568121597962803355914980853975134710168367005737593662023177463282554296677465383667739830457224110073295254679619311449440225967806228358239574373670251956746690947467774116151357366886907984407563218952168009246390582866688440306610118152884316873285197970450036662166415423111134325901937628034586246547580325003693116777748632501493817386687188916770128012779159830146884901849189555493937827330906621952744589480599478531569438897801111834373771839501896450440948505802097261793478974940758106818950701051659777089083540397463953199279866406075528659648642645860350852800786419469036183302333823270083481368940018491447460347463185557173111994068802955733215434423094314818626314265450287091780762407604744041574412566701893307536509085202930369153683196931600492100203879825379811359529072502193543423709546813459966004102924353926730765235527310678066656904007472096370638629040530989684084869767215913829476074624237985767381585267181187594818769693865183588466488830313541565504289513876838538893762104095637517122938946199301688870982778351526967342913348236996931419806376773824173336007824500535152041692574338905350166636155484596702074960668704810239274890171381465737262891979445810573626244515551816594817852045845872438902181705255024935202133717624043979104313723173653155610020923521411068674002697782962600844590775249000565913877726514753360260252218894815693372594431910168631439681000424579902070542583406744129975645956234058690911669757883591665477096829142132976815317153702939214674626604131770930004322519494650917014481279957998469524735409856604657209095084193234861525554248472478523962965477963845902132179048608758646741385100139650037120742324040249967229453157267388875987826649464434782893804028683616863293542842654919572145718801353126759770517953010153861417025375924050298855832632576671319736614014768240406126874136014360073189027865850848768298119297330922289010952342895336001707644150239906480176294214354401761913261425648677098193100557509463681993592857084164707700308123153104183001633213236414787865852197045976186887855259977726273741126478606228225763059847263811176545784986789293021206794960954335566816295523527217507335475397320796617320839140241523085195833038258685957561303077068627983876210705957114847016679741360484500112866653169315117349907994393199085499961498411504890550553741585425031460145691780725824290855692376506237560083027549044627495835868354771712415671675316538573191073280106266701440404466849801926818121456815354934740874431484828793291084504153488307705789448463740102728673817283521170897083669658058768544864402992981882079129271579328069904994213732638283599763335399760472650563920247915971206793389558275530879514269173727140498562636836890613611183037643344986874420208734753002280836051189289761987891100195860395700154278055636581808617612464069617248511115376392759438537362343715320950586650736808277768742449739456226423012034119441725002787275390180723619426022877578940553563842044084022962379780091684286138016774179759403463337652070782665382372279137553223726562181596017593065626344975988529361959265854152586652048929642748416918000131751395730007284711837855216201627158177024161629545878960371954755074462361708021985411044731081657123379947642709200361446052428778499926933219543111229865978762154485514013355203555207025168756371606910088816667248893861709928244526048265562740901919373303345859614772241530490963461012500536281704727840370044271089449862460702657461401585840107064483347218667995863476809655646054922683298962483096285489141069119746869813580432248243988026858252468689891698041986657276342719741516325527833909833237142134514849614611610080597081645557114073003267546016666631830297599813390001877295419360071075956042593300183119478853364367592994576543668830741890539683162433109389272790540899999854643987296925300213258176738444930566490019076579174285875376745464147971862582349814719827103901272214547993247803707145361749122281398098955524086056112266325027259773983962796428076066315908850815970444516094384905373782691392244058236488028630012524513181752593241710601220929228314044053515859920171279294420819703757140056221554212903396655124208948485171807532541749115718618013952137998611050340457253525893916623162745073665696359382450434637269952209725193931425659127982048054206494501958963312549764160840079474201115772969836420929202294977510844986682157216395881232169434196417972520951075359038018265124500519645066198029580466385273771166264099584917674381895799510543652025593968236965380403433900358296981133119679782661210042898660172532613904987105054109605422125144349169893830055078389596548582315210814708475391746789059290745236657985969521624943379748865089829963540432163766192634548498804353877972124150485863018638188357850374715011350837769893656615794493985788358882734336614356838697195029258314841998900746854406376599642182594400908173855288960924434097794079779324006301293269218770068578497362382674200089100986535042220359424852887723636440189255660831471655767724320629295408726395453936604867868562822851091413548813900141887884134369048503533076806795899933433609497673956494200924528264456881597378095887162979762262209275610323115999664146354576862966117889308643419968086992853542884045055751685902462065807394782378602142795385642160224080929138707184163548903479626807380554047735202562737965311667335003492491232712264152597344145008923338584615874614949287075980534751813010574968877666337362070305251969548049649180649428020913305143230809028084230574513862341101255282688259309116888009144080538975973659433750765962620278280414164464765353056007392770915346672011965040706413629159248283870031013922269130724513629515575082485095897531612983406281702012089142646190336922240525434344826907890797312618902764853263127063025966627239608621372411588125373800180270560418227667383989616068680226566258514660316168019770717015544533964637562126423783180047665457883231521394437732447801727037285107012693517333366732341995373482717603949345902687935235450199731253876076772583956232994501256912779084748689873828833135740826361357619533046423049046942108235759279441590626668857917361148084510513302437793421965194665222483203550256104041248263257164590685408344496751896435652776386379233654974858900384353837808842709638885258041111680244475058179691576894624523966559515972720630099121675289054472349883766627072349465341783610775213531842190889355738118006708185693620148115848716388774299154933970029152586900294982952668076633770633788043819987786185550839110211982761990878374067979213147570848502181325012926001595309809114133350717374571968603470889786943847935287530766662341431348717760664814669862100836906814677692361483501023264548369005080841158688358634448951831060969421327314556681454358080015278404111101521633533714916352811108067916916470603023578144950834716151663691773435414545688052773262822775288153349358918639528622794892445726484628154778696974154080697617511859788029813107096852654810566687389421615522466856560439072041161046549555332568183747567631754763215149481787320891231475591792783453069832307726268007749685933072903660423277782950154166239589259648079748751311090915435288399067653178724069441206242849719935772770096282386468018171979041936519154950172367908556351936949024805024499668136061562009456756247479798536168251932890862586939641195303872969604759843957015091228317715169405953374091936153470990186069187984000210658822155944261215630136332261808684884925406032893015463235205862822584549577919137662938819750279698518253544002562372266094853225872851117998208761681325355393389270175523304106451580012996764825966542948635978125414056836688962285541021573433093010689448140474121005226829997103674677051101909574745386833584289716881312325348430256712272263778231518109135310007146075361130855584463791302809864684456593177839572962761200185105358970674633923425902553957908055733472487955320704487989707901599566015775924875981154260498818980494904595294841977534591026027064995026751819747312455525845514601078702367307118092554067970079464111101640584164148483633460939458355521399236897606086932278393287629866660035564101967979139352320104179437465914496938548811593570012444323963188967478478433192828109995635712487605614615551465802766725974817577011918664195998986863273889132146013640188465869201851983011548271399753944973389341763860803483581532775423949464735602201527307956100038909338458165517822605468425299556381977423760848361507493665762541059892020740531494476739009617878667423791923188544439310477451859310142209907258388836865768296890700525184306637048356175267918642522219298341109022980496379303123118417529617531190575135872741415339135233986846646507562829114292395845662280427792107934141313035899849440120759393848859273213385212732827717042494509974999140235109367241931379992702392160052282329275526197387918218055034810671668478779819431482141231633437626075865145355213940761924966579743692081267884870944729686225487041569923694171514643642358504498635382016132858359284923108196824511018862198099501934469458567910160381690799383163064372200590101453325470845234994804809870745778458716746097518340701693219310000357767708122292443257678232344941987417002587941628995727858147146292890166937757109748541438047227909347875698686512460512931394136068546935841197367531866811668016279324821910906955661929884600928239537652076231991041896455137318565149338225909662583511763571354030396887209198567462849949868463230163534359086253208860997852360380817155323005102272609578560239161456672913770132792617400329642434159330721929491830804832563815962377656526472746067602126630277580144542855212188012578693387994390546323920830481976425743766533464777149824115695557437183542575193886660214765390053836143472479966325328132471705911191513759484018936077087808102183841839408679364117534596429583418648790047868607096976519082590367588261988824052919527618589215931542879640319970615968344881357259284064941183490798686651980788792537741703436024544347448321234795621476138277514758369927225276885804018819455892537801483359442558541630494442676985046647681062045262374454406719436378012704943837790145074717443827390568147919919285787578917609886655923972221515321085478793629849541720465713156602967668805577836588959413109078919908612008423305456730261900656823710268116483842298479131248273338680321747131258335078415154328173228108523129259257509047254497308760586292629258786979650505894811194684961640813397483489962520765849157708798363648784392624354623523111545134950620563897560323377579231110648883380781715665753094929557614687041324961088733929993516773998469007319735097581021183547016104669218371168836642868992579562971204789536291664928405108474693122379280416856339368884189319454030540034451302631067825706403454929475647424255939970090488502250364631129753542611366463993553346541281976974275062746358808053294266852520373780298817891200370939599137522042523193463442062322549245910644839142596933022784546752583279249317598111711911205001419299151004756325342492280458978481252734332700089525815975983404920849682195392014920613302898739266783495214362309809289279170985261330375829035984970274662300106041778073594303318674991789861944587882428776980664801939490206406560294996890793951232376919991732409674649708897582472582756292219431638436437590923195193373178635564040403759647560039981784047378879657634679833808773277958222591767362145153405138628026400486580988929748211214363894013517275356396158149005268248901281716167994025440427957918198204077740492456343497704356391075318654474923104471194089202892771763943751676491823772302638136953127796387143282226349755752393799578329570730801514328667505302824693455874133006464758584050064038993791610756343370938987399006690337784646965304325696615209576436149072503301807311507388451839320639420421112671220077633806138983503622587099684997531945124966203809065312864496753182121934718437267860718166937823733065886132764458076548503196053268968251661638455900922790435355814049144706203787641123265501863232599161969468890428088121914817927818928336302972115418287087294861884664309698175593005096458004022964611187537948329876141335229134372139524211077544968036625241081409924456896703794621480473007476199172463400690641263800087418661658829055943457439134108364833142603017518510515168215816102388665293018824147364865690095222972850957033599141632561322995559638617216032798613207003008548630351318049635094945390249525778747196389871451030541852973237020925986071309446262061539412297470323589063067293066141050204359450833312208651332704495645112844840408725894896030132522817905646796569948113023319042470746140740078962591948708054822423867859879242569540959949765554103322164677014733324902705715603446985824727780309414971494456325279103235863689287172235641974427464511260314192712751134626771834256937356651022577216629816608057640304659642784925264892637964385606193119658183336174097935279750048565319823183608991320720528625208211083545437328856028584153380050459461168804203594349935706563485460973160803182608622210973655304541732781361516361745040491657078059107946519838851043751115599301407895892054503105286392583564750742295040750087596549770302209958060244981175022900636991533979648393745004216858725248245897686166661181027811273722080632863996799410573272896399063510271574328525434074789161863731737073809359609710183917574536186472184089310483122044830858563509087082777790460361663846926471210833394800253833688486472267376764151810913595050110063033454401321072159678185643005695232204887852289603153567622168387412889518235584207130017644005340685582999621025521492090984171316874838157010261985198990643075750546228273059659201961623480069476227422378726527600671979360937362141431608201285054168217782542144050142920121398920374694709362441289163934490332235493916313061085422591948366416754093440079055127542662389890569432085266822730380405289056477922304495460966053735254918538309548866727172583432030952726120508295970139561456770589683747073386217683316578864542915909300103973650530518754458712047169992087198171464022950523777129045364625656809349140464168247656726734228874101237546290886819573506942394732266189608758775947514784001724225165691683708041198103242935848492852259119218134473572769270522972538625611907449840100271048974203413350716961643750947323085258567755315735100509364928078659214014954561881412068148807020437111301053584827221201238464037238423225212438103017064022007137820354976976472417840891783138364757647473431778686806221655665524532443819564129974133606064700702243438353160823052025568489157520045024035582619763639367494751546937826346168691360229534913925906317572049427376211799023640787934215807555604611361795574500967315064089033937850363227445186281606154187599826248721606042056548798880730990934384900383761703831527052098720043369449425022869755056951875447464183811965844734015930369965971872208229447477635889715714826287808475408251834326600901326608246597379063040301006011090547076470631658646825483597435245394925135488504924127779877486258744854352955437349249477565166089428755963095590783021337928016115839588566617351048430699761796451173608402379044477217984526404605013626636862549787998958384284531120212096339409113316490581263991072199230707283245026732310739018825055774134353761375321470008692881281029496059779310958104192859618336417495394069756907427466326644416211545287957079408001828318486743843432544167721406745813464372131201892329765645324153015266606190343867504369238268496316494226992619266918893566242677158138375135980177265879891010838301198502850968421086486098249844704625808807488988749964298212874943673381316275584025537770104574273597598099649629969104224224315698843034736308118220826769182718254642060136140911900180498368227740843317358870704869314956190317708017626162021155786532764913938146645343049818325314167620929973627083101814555374696982932358931682026132784360131993691174246181260281817347549128087798559742419012187199941108604911770294614476578054820914926566753660652316433216711922036977051299660890004449742895826123499421068592402983222540319028136327780753953979826584765402184208744480820074721119239300990208420458230141163011349086945154122849669097294095227839416348431864108581753148208812490753348022884439852413966836961813992799193596037331748952224692231794191977897433375641297620194475358520646308478494894580548276729183765918772825747419051639920741995894014018944957157569103509579080891252915569819096170919168939761173391725999967261964675802344560970133291409248247665347298509826361639726767994078700691979343538236631651858978021106760698148898350350351208108694851145585544739430361958238187632902468852062416941127703629845123607115056044368031172381680367589552378798091627728226548544029171666406149066138577671421144060102682390692945256751041922126261743001123488017696657752560894030017217695500933536409029401823429159033705566601150952411905905000114178290804560358337792398066455718002330182792288025275355084324286260025278513920307670346178594062423592993066769277282713974333887740111455290733656592140364112401013934513965641827897516266661130791151165621495871599314888344521700935392058557988208120773978862656917717406313861745429874014411503835333877139078292694618032078805242985949102581211800878653369195208628200876536223686529591960202952229800135593546981241747451627826471410438932612504806693022082267910813123479528902066793831155946409484161063937095311665942590993739507503598913886879107963478802067249424139074206473492766635702258470001414906170571370309532908838501752780043675524444755576672676006295904085347276590937252064349785130139820887754550520381422679346173416552098547578736472873043667754505091041336370237131278578596756231903006366784101103267302518968326972494619537532770649635991800516526324278687258478095371458692277187135521080710310138256263194588291477234959074469965449950144691844034309631216109951978403482881747609551204440209934778356161556695341826358546030109495297291537157535924045434565333031252659296414266631066589805064598936086157647971963929528722913715581651553630281552997284559139632103213882738800405262743049497592641426489210078969060830373351897597943919876011854997327163172757381949746988710389509083653769988074637572879889492747677117513794911189648443243615491565237151298955125970536257831232898600807426778602485117397194359768784715455294062028188999113121179801791680178611435142894197681862778687901778347526484709632153511556302346187176409272487525349776359225771850099283885203121699156476081366226262148081222032163246942460909896197066919323089530114973590661288017298587176393410076419914532848128966157929148634510381176373055161270961950657148813552558622212895217671098944360178557455130220016827764361821184201057515099671222303691138644968067734975214489856985362079751636856069912637534838915983747005915609773849924235005857479648196571999761649320650082283186840634319448836623191526882231923358262014889021437615304030450109262138631416917771288668051023309968456693462527041240800539429265933132792487351512950819950410500684130442193860661490576652680779480118103413154651223544041653319601795366526943343912756840105933082010034318350371512538838810515785134414018392344389045148717918891735312911407729077662650713816636324855662281754027597206931378765696209742148248955724057897605716061364710133368540457060512370927187735951726425973468259623100793920822805005529401477336945359164293900416130934625271392458281860337238944236355153805558008422756639185880886169692728961083689911186959970745598171634985497189393819459083237530637109396652000808185857985425809749478527825894368531266281000675574374291020977346742199715929070731205728234634791279177631138089782383859888183311164155294777855707577304867653316408536909958659007332002285109662858134529314358394714647288992289141040300146604568084455559110426909146966792633390435088844766323737429739564090778744696158793681503161532391595397578315828305130019391281412423569665157600291729780695641862873827350682729893347663755541073660206997458342638829652689420746320649734120297336113813786770414802814074270945172850529736232895705941974266419847549844120308162451419277055374204823960276009632118245682701265564645851148342085037383618791839834647630166140501752056441895868780738358145723588366457839692722965579931335597902670923674088309912056108589092110010353380865926925922971239325195282417036693594437077601309768420409701738162598021485963682799273260433825891681938294294341027049897706456225572518097538268507558032417997222672904370012587887150951225945799410007152320777631200591583677037971586329330628983831607557167320207953409902759513862777601246518650686965212252430660308415798847185669089225057916193175171812442386966930316360789139945754946816183371816227051263393540129103377788798816521046915309986847222517737390458979630780749133094954160946143252939475208581888861990268188919477447278300980539207946016928985986937362513506962307983062799302006500221072924034522048413324379433734735766665444547195459924925573311989745576636062409757844396814204257343906991855012978445094550597633213256524210571974731315126739152394746822466959401050023027639567744188299960182609281358193922279257119207568654800133554933104968459783994384781336184900192312457722270309215760326306697234241921383337172717718495175299743117896355629857715815100892289077376389662232660677512765322178419442772715456636222244387485281951226487094715282180344331418041462559904557087570025591950799267563285641358374205408253808612604868019932245491178268305194164551605235099601399540342374944845036312058971935930373686749920375704424055930749028561251988103581856119973685775957789822647603756251812642195169524653370376922540966420553731062081196842642121378164289745669956280091539845831181761971105836122146230358144614269294040043554766215438314462262376999273677410067004119146486862229878405930064702706491466016234892251563444425909133390389007126169575611679563516664608465239496348737550182459816061453817690366803038694965052967557720129648751488709903599430325338891634855856083395034853285010465999439505769048425683319149024483385129511984483814235818744431447752280066355247722263209968974022515079290543708508543186253454266362534004527946924554671574949773840140401729669741235526682263419140145924033440291269132314062510854105853275431655004073480551082704146219791854628598214639007951399520121560648027693599572634401594172267658192759580986707583043067178732340478208261080817095495599033747285858675045336196176817801991174224590391268223998504722882102398045029374205696767107694035340076080686225744913182060246305894409844701622454301161746845839253257344095190946625123803887659597239235379861124381947059589725203531630321453846209649073189605446048792816427492194272801686538419283389783904532797007019166637016877279961683075010183685763225741619868301206324736612181670421955410491880306051752545748436122238884631362029251607906959136326898301433771221095911038012129060057402417873355026988920018961316294817938179436889866602081548326311985492572154584949743773813996908122525340925305393302867090825298133346477088243139311295964514017121805019651570639525492663017467313435662294030789632589826811731709552023655607230150648376240938324482175410419331503490527116168860004709397266589089927416003854242871919969110366041000511150430087607812542224873877268895008706084286043391427204756030207176493001257698290905091287777848380823810561318456263105256539081835320020906518899321199364112957147830053886016163842365150789537584483756488105998460989982347103192828971530146772278551247527268770703174542742602293514006175431142541106061690967142979988846915772023043813334787705933425471839921226766759981263746906233890017833016621928191811901580955910733811879067022620774356639585205910624018292836527123357271713619337537953251986817618635057082589640172187530188744368667203291811179013396572666687142855982767437707964061653742623318988821830150517513171813275030419198531185055852876464248718936063344590506564315088679053808566819174641781867064345239810998413108251413565550990736184222459472751831854681586294118404765996953050698236538759877304212800665480393277418174304527546184403402972332952385747418145880134257095520816021634439418667788009726103129772684783989891294288187699347095332349631056154561752191443749172136440741816965746633467559601403173144437703081168113121425042872537003870776012552836164233519300804223205548965025458751051107803621386693052469515314794587027803939845318056716323832006305760157155277929057037846815457457221395704754425082574366473711088108726817416169840571367631722899648780835789076062213471070735485653060878701374764103136727170245093998249201542862547862231929041116436896145149487196618305343024679455030552398372154354079453507644913069866150578378702347755497977562693212489415140049294629542967265711302675554547889644924055080054982373345678476097821773462965101138512092711112376746233721433841192262238503683936733305504226124189645190347215081169367022947592059724634001177325129750139361350393647822467421946372789259778436236889082213719788407962751078222512613985590756350580069404087770215224469959296780305909301418775912298852673671433249998764771416835695194011626247468007305866478567679876636519503234047189350018467803357101622326558367994931681186013136180586043877529272533072575767024799573988861770748657571453182352273504440488484116603336670163897279230467814318882744352793198390839261355632886288731372420939440397614385850881285239726904347819906701298470873578190105131827325728532974045828246806364994511315362477535896125115337187132769676011399042452735776732822801155663783144480806226930897370501384307680684718762829429509742277096182223287952032027293565421569754131651170957024863021946425142969632663221549770448894857534991527220399850530572740754025289631148508195993372639217430460534233502363186524723433527269004727335497821234137396746766422362213499995778908565115561881444015374671807244370705535864483364873081647379099871670821085344638509934666155590075480627664623366756224799251471376798529211645691603866773339044823660989898760990935610509940548101356293265716283981149273180491605883368107011119653698912934870354801162437649295695663569121782783972617849259715638408974437363889001743078071760133427470795506026178003072057132428724897841060532407863559886632051364133856552416430038251617636872475980137775477219727577317703741687407007349642615664282670696168303989093258330678569646278076908623690405196123172871291390216956324747632439514115970509273060176110736697572724453490185228582032451148665107227383790459922190387804299214614735502811069976436384699745857038147451872798646790656552336933580563240688990418689396641280573201062662010481724288526206477119233787725598358209831111896853086351046996175281586237418327762587472239904951585110378060202090648485865854384934185198509002038906348726805602329176927254554135534375281923151025652319940777649911995755843821243569297832583055912835895355867635797646360894393827949466925819468666463678184908455305922822472226226405305900557151910337840617355646822347602124299919564056175110830450856045353826196360627620455437675380930020361280277288659674776190260041317980562332210676529578379388820535815572831235242443855928171730601460793162855120449006557723190691363825640513675470663064982722311552093700253910411863493456927906178084599192387673214481647783960320732974627597030705912165551185897655737283296829263899854163813727604283381407823319359634995237657792075151079684401757222935769366113993077095186308571589762027567816836527656204272011807155250278682606360868062114681309467471179535651397608482253880813304310626648962855532648495493783242500456362370979434018982969731518521313573116145690178690977745434958677020205120217921875894041807575712115168659772595833710320974307110651059517044519032497898434551185865073826734165665069127289125564760597876551168643988803257282223646027666260263307705706228029796105967806508289881800906355599514635358541004686831514989777953503515221511361888246338143209142049717494246830474544298288786679850356874866184416087548410570249374011532388330441934666453047643290181622277458595604135939823738378188169536444770670796869995556469426944227939627004786240316931176515703745878256836961316229582115286672262490207831332757007194736001003024951581326041327157516403204291394299356303186130530718045342830868499660455779226455385371444187820221942609931887595465170241580084164674967457799512495772995543076780644544693558473394128406917944300095143557675686075953557201489081622414853496661108040101613149216092911939990102086632119840922641335586421106317063284388335101565719836805884501830175765963683887654005200715436165189105799028807826136788861697654855649855507784102192978349174909896845677131259730972444863134077874844018279943882762629796174692609575229654043739648523727659029892441748174072141506972048237432415415478096060652843679063192580049358986283332541137817601208962162395556176654099207854606567045904731642978797169339027496069805626870713119513819329227184101665213044373210495937043664277073622573224508897549452043848103006735473959453333787604674207047902697815085655658538895978506309992058357999805637895407644408367773214219667674913118828051898171511509189942055891376894476436952542072182596980460682226227997492511577306593312483941302371660847372797981994670202173655872476406412218842679073585289246570761042768156777807082469081642502558744395338349121464825448016663197006219165637127134645510741579787075068394681826356859526766871086837243294651958355105741340688826285901202175332562711736653510336003267249375468256931366935810061580779232674369386912945198912952220943293643105106708395421430181976892565682115727710259803495344455334839757002388748304611421243093983957239385803618363180007100809524000036528614779454499392304348165711284825595659222691048105853595009154859293776333530147236283342062006177038208218181817063827845950039454748113509898309759447128794729915104210288179580575956659424407989069554407170132746527269319410635393527657791030338310305205709071183184588108025028735506385802082285353380873841084436665451072928378840553532817141586836184161782796835683894926775026187537541170881463144795552908268794559442025364769226543162837798706691015844360930341849291590222722142407728950876358006652824671420155641714395806629972403520216609658413234751699366304574173488056039628765257971518059420285382269665258159495524830674390027617999764205048827461701446088007459976345819604567500372823483400612091903402096168349979121457726387181276378915618403313836295751833524489619883421366921545509718644977349616736661930456679155279052764181555156068382400314993539109538800132485521470170458430605808735474766328767777410823023863035557977958948407548867293693549582533298594498146107029463083300046936134177851636440341526674248023165671541292229062777371774916558423665258654425210087331435299831562268235317232407819219956727061990169151043911037864607070594748679184762512871581431618737831468810400983231362541453042709056000964464456196293110547165988373148854291071434305275053184478145424292266625666273228495483913365389535274607999178918333942346362563809158490297772792940183866943148632331691275059741062405333054901829214610452526771253393797515777818653956679406086848338171611088375232738521981543437011702210814060268603503228073568112681545625216425428775887764502904062747044335724202845922410970766021319542108154604440704365730506245670364913401860132078146453667134009692638674433287279606462687169928178111626758192974731103764426865710665922953696190428694680193013953572118173240472725750691058830162868757257717319367949503804233163139119172201710360910403124413191153102172664391943074089201483596398213363666261121288691665218287621960822766089627193152383538563902340456732963385923103207553484032808079846922759899277930010645185301565744479523234262644663660597786989932847267972570377395185298450285733593463191122624592776863338750556899319430693657027428166114099569724096167684165626459772109576672722132355309016439394622482418286356561394295545125326327910595313012452791976982179453063204204974639427582031285833746228237852052266090764162804692032808143578550771298404177119003608481970015533729040032805183083738011822882532409873180406720287067515932186644629690480722424471642920457945065845390084637732990339109764781301117860126188995122753538353335716361825835373072238293545148979483795319366967975255385996472052959734722366544703494022057482393585433662352922493192249540651001577662702386088377347229627454338046245123267440175770952399217450331062079038644337172550324123049043386659772156657592445159024496614698754350030506553248233295467922202580263552699824322674783440179139236725702918005824911695761579829000119646009455361660888137059261797187461242985071175441440415808006728392257199712866634964577879206375894854769648456654258964360665593446933476573590148479774488016903440448690264289336431461125541362395288909214658600872841997599234277077337148069199284250681249716335669357023760599773968444283525979000553773773727345627688424718983748985749512564894749614192608474636774200462143639107416427024626980577960209147498558297453039119999437998958685536864634781254707658156540881443710257901589788075615358925167626052649785001427050745807066268285043470463914956797669133385780323303531670922666095841182945273716373121538162991515600475799490942492032231317997086109468032762734653714073824841121261703292462886968867396020114535814848636036312409661185524272198628118927886101624859928306412055115978552963371251631367979618592167798334146393896057388845437954358085221984871154373015898660775994764512467196050282750553829227331019546611707492060479842536351095774011704427263462818626557165028844418932918170342732915792400588143247016665033409238991442371109615319646143562990012655722223024491935014632378375518752386612263109663627520640172810056123190860223653637295548791702451197723431244556967824408024316928654756965794316545084858290102094344077247708440223504052025605933475372915258728625974460875835621233464623950680074959265328523068848407543340174379267484791077256162892043456786085769088992452613961660885214430506159041536085397095173870954198559447535324055289243125551351154028606574038339994482282696066932785606226989998937363332379620654140856521446203281637377035668834292411796384562493048393437558861798408728647248201393711884009243491818377238042223246222439221050102684308532065918035602405541404335732875777560168427488510026855276332257930585625588581350413635981377615655817509536805586623604750302085260455387275732286921992868435280470632228410724609556720242287754410799486431483498354444999472598405844786266427599285411743381999230722638044895490712568842996784530200383301993765014747928985001809618548566819411325766044302943849702940291821022463271271111034798139843165041149184085915390536676106804173034890148164686720677544512456093803177666806150682356749091994016112811585914121544742610960140217128317466584315128538626349597866829228634382660669006349934556205150127525310819138255339195253234246845401610541178695176308026041667244966702268597332816951806505247970630300788683810279516771991893120362570704353826021976867588448525965168532372991554995088151844056517235082433379771999182273244460964551831555587287110255014223322706213916272194649157841471943575784441449722655315641394284382261051833241407070637181708798986503695479158869129571783085596568014512902387145622203448628512507610127130090918813566176468936697205806319011974753664778790352707383671445491171088388971773108397487101519534831253919024739329315634219225061082938820428185654036332714877342925042054290274819328575570673243180944838330972001633593066721717335292757770004684087481181319252073752283292828728107059984997208273649034152436469466618302667849170723626884449646413844657127730488618733194367950764279205667053168776718473329439546165512068458549923936146557249261516363292645536604212669240123511276263197641399247590371983399080043759767122160708315173848062111433108674254155961621334510246707331227409235358934115513895751044462566148436702718936630712136293501088017077501058556172073499331874689566753379186029737876415033798819021125826174419446739868546303524292396138760412462898176344770785065191241505927701268502721147904254654656816585114513131638452580169833714995978007522801609597972952210232603200171300674883681954494895628217026826652414037107127465174689577923816323645112578004235184598083477053106480949514156904350379650035434845190640680517495975165347941583469816444946237587119014934861094381030936770947297476338510028919925602455636233126472062782729515219332164815616291819387957106631577969818510904173677303246750004437417369757538485133874261620446326112076138923321930874215563597043618010834334377563999188197618421380884647905011480376779278978032471323939197128595736368018587639436503550165618906095298216697192206306240650494201004392189884024116604646634925618074706063673961147235389894542008662953871743126967459692969472856816137848798255732420261421922918485855006049549214016638204380141169746501365668962732253502767138587437603280967090352702887549073536624689470463069208673688280880258465420824518025779505786211948182862383016935942139643772884133096663029334535124592071453819850824641038203395972604762515361082632918045593109397183889708662831880097998453785833043696589204822263823124029915696252251076437425896869677270014499957345359224693619971064244013874661415516084063836781543591193736051372089494363573298730464886216302354894217728340286015922836987220637432868068662500223179368095824748629484963084567349112391887294608578782504084228464317420584780096092443873539069674718989293323472776893095902725611646197318492071477214562876241436857386190864544472158374421194502783327323681634183314376712204888679201477965330833863872739658769675412892189079868965771706169117212356543474874770317689412307743120135318725020729571080075678766661104187226713415330607618316800419155645353431016941502949478628121729413484179068646374789217434888286396532987224112268492925550732812146574496011507463783004985975402396948086789315577294013408436767001424809896591004458506701203075637174471718140139699353883488495036209494200345307073472034765490585843660547134121443573069717076395175912866862278411183805671526748573884145951716639396675217192661120659910637457819100506791764014629341567298960614536480744565011762122746106070239704840031263785469193675459132694458678761031768956609506149847049693266003032415997623548493533823305495516811667296075342472840734457790320838576826093752060945425742472252508506406348241869243792600545558380584783196432276269568986373690441768057549064234515968288179628819593260919431831177431625515946161178578840825156922283218535854127510662126078435129655988203315786940894527064615176867023134850768466022891207201810085152573914608488095348313288310104422169824460054402649658652090806956831034133335994484441418646804914673133128182082228568019862593779328106034288702391342406955048370298769605680108588243230977068663263940007362603331778635329852447884618654267846718216332696232984347130617993065544321195938609965426715989413701370053937298341925426877721624800350553400468114721561321653112663626143414090781094898362197440177391485804449607364130294825833949889133948778433564734623773307164117887525245096775707023450467304053904467872478545432512998227909776227133090700262488213964924174641781231575153087180558538576764897574415585747761409466526206208271495060302298868829695125711887623793351160291835821949799248713491537585787245374019986863734872467341272223426186100434503314226287081049993181438657544512849982224567616377661368551686232288742276336920555243623256299880620496481473073442262996989205403148830058718639443177472536567037380861719285655711079576326315921922326268953569968631972390877896728901965188094987909493082444256929569990440087858390754133725873215145711246111585973390697586667258901912245334209512519329750725439121193408740523849158161233258012327805280919848222187131933044868884250301994725137316660635356966133604612971197594691317165992500555769851845124286687014383897931321054514713779011031215969508477811946614723692083360653601199348223168713878835374062672967163339082901865183753219211394738831186318215164673094168587995079207060103344235462733011273904044327294473873095981551722456517984523978018330106500449192490583259230213543217369437249463275108668901332988295622143043916243201322271208380588545287890274126103063309227621690316809095105693083525953180729435578684864404677079389579202117746970116369766575651895785394273452376377726036079787606068323682707645830387864074371444743864458320083035701609835482293639404391252780912601563703476325055835145335250057501336166348975034808755264362625996374918098497975597426169102770656559045017701924058966564939103848911428591054088277281256810762906471623344969867568230828803540296382263371847800773355650983103921140120683335180183925095520498151571889926644636462194875599765071574460789872954971478876782364344921312854859214397540160830893819118167146586456098947402807634666806904872782105254063283643830975719499786204656575897121531850190626587479988281521717538413233671889912586760267424873050054719138890233417662855617485526585534640900210670089087341750238278374987743045126080900957494875731351482672675345551700087953020080591630660470138823185943681295791673532695846897912829269806380491136252160549061667736535670430613686754128778694231207299678738574714913593280853902006904990483846531736055253189209008487887249434612450393234407865121519115108523633217554649445187304813883355825600144608680784107644517032099803700735957036204072581976192207849925715528352548063963346890806158340861012587025561296725225182982420729985202971169912662138264250959444743847478839731912607465273953858444913415097477005831094084106593017877005141774344427015309173929776242315172863817089700661629651155159713863396238834852639108075932246586250078620786810894405585451259015957006334423700266264154598558583478801189354378103281452040460754856558493105583210118805733925731350132812086937342415851531955597866023755710925087852997939595310542993856402176999300495931372283813990541873000605785608102803403449410852238444616372996550056653752509802840375871605628692111873974976783837544959502781731304017512677866597335844246701093501604517021319162140954201303691027075595879502499564212680702243586586228704492039944450683807704941084378901361181467504828239340481684307855097404504390295232410624118503203303138822935048092258230491773189175506093608235442381033155089415417919095287863931352438278344929697003721958043903245053821759811701965062111624693331693488754870188707756616323056756729012179547999727306106737127142868260801507093365977000577657318024645154088702695847253882096271838409444898267996923357671088765436295626301306706163487355345421632149652805322831640689001016290706064458388362692054809446219365677797890187398067766771910183141609460236379416393123541068990105676550188352025262614233768178293931136347142265143246167519261669296308831427555526463964727800247618255134161064593971166420393083970013545400616095582573550091224968272774455863131965862523012429313168777903117265798627191961937433478762739899634728391565446251034554964071160177302181432790184591368882167848366171022853447092132609360798157305268400523690166043014026117915733489522990860604200284006320647400370685205492410146219920675429303000952591760977137944870761190505970227822197781507897550135095257638081428112955783241141603298555901686046367464947419786945203413230526490100145078138659774073007856386560418775700653171105265485015120031178928959835447682877211830584088663511834928860582161726571484607138607354627732694777546434119867406487991745426294239917086335815188275923997461575953790928916171564481344565186570771823439311258222090563284647766653864247797153712748839812181312950869460299710590207168739668781221429529295580826457392935355136916697684476872082865838429110339430687507070744542694970118329542615186401872043733332713039053828385202242676172505053523885853792589147094321988152368543612778609275571030436491319003937905884477671729493727289716950933692187761832348141824223162691075998720921779310326117850907054042839206046050698226776999359560898393384778451446234864142987093195938437711105597551666114945209557942767863296631909368617146879471232367989196143224426814804520317655805278705750042440771979804010186418871959975365900667073198710853334420521219601073660693030025703469704356737768510408377325461658322313733727244036159187829897042084633526681985862202687657032344710275007656151377039034153392241996255691687734277227158371522435672039184365696914207852130186369312923552038225425181150381052297401886486225142440750918596292828219371974306084334997101356074335644087731196344304338324056822256197940145788195300204786990868973875368596626115482757361945119829719429667807183994430790485661284239735169408900307636011484756354542498945338571898923552111962325958905904494263967438528421306307508558784452227757429140797434562917146810354789109548451120385209448439744906104999431812600702281271457464429634749281732895003057761391594360322643629528263170343830952329244075561731262476468403671866524976108883215222998311116364475658834271371223508703394314874687847538766474156171561169832596271368320688249710861320016501173777726296384354660473052361902595918806695197052451037463198776551914623087750837504388281481327785187836591353332355564150571490018069247538334311465619871978646109947681665589875265917941909288650477331616471850630166778603766625286954507361502321745914633100625756933608193575523028892787056152115214107353684957371216762533134276025039685447757112486834596028021563383128555812895467309979723092462519906148475497515623685837046567755683152456953349751300742817169632348961499741518171428994055083901065311041881704578392166209476090821367354387347753823149934011116013692175349851277444829161363770199153659978428683572027691992457818504935015010596837877113917346182827969244774005146765177368738190565988391721282893202852339309384357673270336242427208594975836445928604648434469722928530349699932693999801465589466708134337385687722136163031899835972958335880700463991414856701232173666825638668518858305864927572959146440604666732536749021180554125930270133041749055145923130326745301249755207562242167179794179435096670858180571245401524870811916362041281709365587593920658346884252498693311683094810240189539889092969775673847874580009635138770758929348407788453238590930643122177358519734432138953005638646490613004265881405750827787337456906498704167764411226322359062976468520727041981119846468481159757661189354176441843178056275296574898289520368343764779380126042824605837931725871687387581577975882888824640262177573114745186996423282092501848235727594038863574795336758980327799325849970276946522115906615448681116166250718427692266868860561569447917536142910777530714051344270677975147063994515524384127439073299474578638959022261166006087110438010440959531921662062040592272749887188732040378440725780274389191329622687205126922187460756798225256643269869281465981129494683918015827990625615637881844080792912060073456632521616305185892205429675551579206276484268099357620135417796264253464175445331816994699307279604799857791888360065854479177638535817616669644045219357562794094132981080469674309088580832594769635485707274586742581973541128751685505265798161534908184069151864628614024209240900864881218235631809547820881399408580515122938314457545921622568639941906886553574338645825322912387605297490821019469029558929429678649226870496569565070728805323346688555875732047234238977513690279006972304686576853005099266047031069218704574803561031828571454677827831786737795050161240948988137090361016753798629639880318069290085908408496803298508499420804181311734117574286454894512907429942122988139653600591224985276554191385280968630791934218027851020177214002923027929211828314011670820019524639786310491078863057825213719249234047645782777889286372694379342816379761119720040523601129678513002019320278886664648306277088605169987810248472949878759953814688074677539191603214184505175738153401888144948878965012184846841825944582893058888400249037944582844267645007731966052815271813992252719951615635480669292864558446202142480913495886179915673929242714911284655201756379771730038270806391458568861596964051490545716516337602948688843111226346895810847704369378728212799933186258110264948221050353838927032156579753130805904748382809650324767847044819015649925535247429859636837909555689605783115408046920168101824852868171823322689771890337684167774086079312742573877629863729198880856515854405154937423978900225487463374082168103689222604806231275257195402211966799825841758719140927455556130189106068387499922538356531312815547724644831146997681749239698318555963998687555021328520770587099704625840624748244966882894381674469950382399258907715047813296946081264772431267586294715703836602928740981601628772231056447001626107730051258358221123692935542907840262506481516620193680974466527874492187413942729426013105393226061888571175483876215798189198438942590297526086437576713940934723804164373708471880253575536180090670707225635678141349901952525733739277339889262598111721635517774467550281036498534158237032220713405480455112963157826644904361933137031924145618023851306516622774342997115196736615000775717949511008076189176863428278246244727611959150214668785406584452215401674993883530277769279477737518082734774768353686477223784010618657236656032676724544758091424043174163135857805954017012266542294535327152621122266324110390683927324729939851266402324750823758549072079142591537710942752924879957248691704158578109093711333529022796790030073031268175075332970550453423643918236445276115950176917485522164493447297094134240183135966289347583521366129286124455640913471872156885936716630581650114949516721815250604236916998947212536096192316391152209710344729400868685859470985242251975083034438304443406401049338082071904406146687001668498159617360532831608058806779951145442150386602837058132231432333561587554263300991624608280294970701800944870819327933166472182491729109466995549068445586578121775986405361974105294845393756094870144789431749396166242477829837849015736405922399978677040082146953403009978797072426751652332798315458308433039940782713092566554014508403773508863198774484509148543016104575109688490638759194656763933487249100363290537337870254172455343991333723307260731876434438383156525680672342833345471633324063346522154587317321971018503687436642065270679166309515241734919748682343867106751692065963238969082789907973270261249858825507563512048377088742368175832538781442134109635646828418500594391664302974499458097117441499645294695668920296370792440463430412520447518136055299307655233867347838827021932210628869182362499449713968881686347469170627209312604231839610064898797572144891469465203552114906186356438011947216950233230867276863267208006881345845770785585451399770062500094180367917535709735792969456498960440109161630984500845000400963339584272187105584887072349846712204434662943273017947366510481843145416120558293823632603101742557889991215262594895290023640763159312200707519267849167796022371310909478624032143425170610669549340763384541643295233046370002255339328345558032125522235125882639923939065439407749132678234643563915076524080352719620981855067124113188296856573291250493567432365050739747199601302867212947028196063159270488402157187234278198893821005580016608454574333060081945827391034267802470092094174524860685116748713046183705154862515512982240076153879601485566506119714663002437771158305538573609436152012047196745421271846646531259278787738177387795314867464298477136259147794120442365547023936233514164817649053337867139132606426536563373758010866980930586104755790176111618809391215352298254264244085889368513834637897036270037402187742417519785948315563536330083724223140788360351991796755025427366412656270767944963822765238988030213699786385728162984804264981322566246451371164560016887588590740473919816655315547195021276437284191533907605442529740115027929461077796158883262399222029985847247624521690456389991610908425400913649075485147929139130273397290795453145329010553297907278768962363391717681255152695776829615097132019238095238124748728748504114749389911107618016453405406384045574349030765511958471157539714527588143565296101926669645786162991024580725599181309888838700268280106285444413436329557176983447903960839377644459911656281307186167920170016478405295082263957489413475186198136282236296044682431964224638303856012786429280797393905791709853898995414066795164522547445038496369693534424030217094659204995792729693926942661987701082982061042048712148723216196317016501007567829559474115321696817974079732561785352690951268938522023815061071822596938221119656723738288335488666763765601597693342178822370633308684792769526965913116661565224321054112406395004995930040538759423165745569548982370198152650854688756616674324699747556452707314423942032136909196775671121516499030596428148462083838167859578661586449468327703184982851778363112138395367772430532517238195982018799694315049422185637263040202130662663551841727784554841299985890199827530152509824919609474781431635907864253130571688814232618949099891086199938237684370106366882441983842024796429543916024381841644113169640487731262122448084182511196264695499714262364217187358407413908492464001940654054633126561461958856869055087851996076345865775401911711439878573016353208545789224729023930554805893053555195914018590701233537340401144625769812157652582166158327398139777119919458348410203175561049658414909368043575733901170717418116888351691599042454443543810022237919126052570701373666492311516592604962353117196924615549963142299400860828688456685169323566842610428354653881364097761106741417362769370853189431137023000494521460302093057187949064435239822750014393515182412612629341577194209257268579179256298623946490840724783654625175598200295499967694934176242568004713160361572362909791033490341077007604557163055526246605139646589132364629033799025184364496204515134831550412036949509659472860156041409893399979417816853419963534181075965853623308945266439148821528064059739154992924436000240003475516995853880018473070633189608216848286431550500885921735328912912743029439601572164785078624742596467208150739086479414939023657204450529971555260287641931492128788379172635647676421235121322124545436926045353364111926211799771680084374205410913066653369823323025812032318625666413189303790001655831006717034637967276693827259311658301964637344056000788788587890660298023446330722561765340004032338462230296476279732350776288051787561264246360267681950891425731130619322758310099440536204441422088101688323006584808717758586083196714263008825028754001054753164643005582843916585636348978251646807676611297496874793055763812386498396068847880834358017652001190447985227837695820685505179819562940179376901791566921189785609663472374034161277406150050340073746726388845578981589417670011715936564870165783203326263220797936222028337887487263610749274536254633635200061655063943895803984298731558906301599026556230269747398112077817516337150234950368913312392012908522250433772374400501173172295261042928505680527669219855074542247715739000599061623943191088237853025573648713954790720481964721197157029376657395988855505322933070980844720654779378417670090426915019825284309488217283909713071743138781704079093222533611392059788816206060630527929620756809382764658505712305280612138843466060825050100149087728154510131385282180122100358049161732799874917827520661031558184309295186006937801712323907112510680797061937850794939226872394997192389577193125944754959482289439204981379919957922926517049719516206068641124909816890076827135484159826465096034013910554239941224962158888420604146464552013042410799412726457171729086802029779063891396878308746890718768405502663249114956881001930026306850826190627138772496691803386326762006362563342504405474295946693901495816462360907557726132440360520728400036599430121598995538044131003441996384708078972706260983066547923589241659042828824300786320591609018682726695087259303713505704351392309848998366679692603179219620090532664065621687501393611557476680247809327151620186867244221877434394879283954776892209828350273418625454719609925476376721167807495873832415910210070489709122932338048938167425542653266088307023891264511136855521408218756741957984881926558712215637734497591732330408582470316023040859582114093656626831485024012056238060620642867609677632006357012412086385611189432325081213906325986392828798318734115985640149499212426146913275481552010159836586292626511610511345864308458758760647200967962968651662507617344951753793131168492383531585782467164245726184082534682793912703753905929024965508312345222997675650669054207333824620010393796360216263829917963986312743633809609168922048404395878640729097611048687890018823091866544917476810285235981223858876255771157073048722310569392817768315316500767317561562472641547615049918619015181649265945961318642861974201663106993307001405906930562699604687920589066996070255524329767283095366152213137542727312081986766681013652171838659677467932691920376840728678444709536280707871522415960724616908042898775997485893827571276440226885578087503722019369390914820359473856342584698043489745746483797505679973913047135756349420620585278529860811701390648433966267476783798302416900067832745514300292438882136441046447603131374855975408336014661075108480650607460558628241911900918257883463226065295161807603999963009396291794846827744476336972393138264006697098642192043972787982471810132763292340697771540752028860702524839237085611007675487047352512467439453608957155875760677537876494958118357363626725312956296025162325389573953348832477056311930329889067036365524780223914783909909468036072583126665176081331411355177383465253391331001563794210284328170008962328248318800808475837180055049032998291466503788062302400462501933108022666922452782055406953371916713911637128875812097419401910711422045049458609199021195882747768573665748115822669589805555069678594633920558991291319259004515929801717025000006200845588921261313873011243737643757477471153176341637663818342863890333402994905845732200626899690016324724168343374228831517749386261176591496262537568364507753291722391375840338697674117445698338157163852944951345898990691452631046017535292716595334078255666372738331211910612682160835644447587291940979338291443730506852622241961199525357819170446484540321381442665369073741015087066773355239278633285615381004386229627153627318913816518683687345325400153894723836042092163358502582223602836324114823669880171333740878376307320407688060624713272678076767944595315424250240152893552153572803369832898679381689572513755425077398731190825755056669986902967098614060764905215475614247891918978033726775728831194480856801067159406559769189115107862038878971919377263455280482498267404309759298113735402075633810348419644164487946750843065918241750787132580999131266892237842690636033461440047713660292448836766121280537684749733264589744404847924567307214674209706744585326422932956762481836543581257951493735518015741640161758777212449860427868902678802279588741000557361034485460120385415570783766000717476523785469727208654851351437545257885764449988740155396920252297251028640812064172476630675100823061252954782405901694088392129569291865246343651871475078195061670575993171914619840399615478536358299342367726571431241152862475641705005416246209426232054316317781521864730675962735765904698436013131375927787820659662846902511978706869360839024265135521601757865274781236183578478191458272281142581144080381708398403811790954947110422505802038215603950942382466329697061499277453127173727523372187657015226880301791305932779859952942709745360913150750866575429793790475319710239554056578161535063643605290971266187772270214137293673212868807169565832803677991218219048321947352767432876590989005154701899002596721108158642051763609512464034237465111604286315005350686378185333860848120915954047491560484612450341604923783902407863683157879335992958947154113786270080296540096787733883295147214641822875235130994906326471229200051152880339703404309368974361090103923899966994147360396376415646704712553920518185722710643191872119433128033867646590149142798750209567987925962922209455360854214997311632375139643487796349876606786542804623671075937509149743031933986906867362222913101681576295353890098480360146598197415899318968706308462798265370012877583689387720865009491430214516785809262800193742509566886326705299467818873508819118898436745888080668355934790358420824316208783335264482936493711034300363737561843402955875262263550474096915582441699897011779695587796755127878526002303137018577680986955554789298012056445299005590103924141737222687356629494159987926156489799930772299921666628018034260662723258163872054095980867432894669834922150097697853249427360894537791504550314173526014439571499968834409092026635976095939246387300682229416933296016505202818623576698732754572805148885569522432668186801885274164439921858134483958393836676592318759489864998077009836369979594886347646048622477830196323581521113264329609852135960369523898358840495140205745712219869263569728696979054691869137711571940324969614596412036162273965324389067177565946657121708922162216081823904805393227703772509011937632931506567078040703077479781444717898468148484907074086487068538743718947913993359393184897953859060759981803689684523292308789913858095808814177806798052156982298899981165753837997611748083085808745159094541032178560939199838040661225134479563648040658677008805678176863026059257281914586606407505229599387362484400386641369193778532325307165227735842717732635822522377866179417540669754159445969385054310676957589643135205841664605988350952026676267366641317244437681584823271053620689699956543626371515916705853983083297432080838202025335313833040831358039678635119077488268043047361061053028722607637752192521637745391979833863993687739425120502275755837853047469449124110614689367568238710779457088339073154058205178570167205102980956226559397974272651057727091103427014273810724657480204587710435887920636129734626637267001491341616089913185922300005041413859861183735713116684462103199360295137687249972852695931591329283023380734783617361620873074791595582764850082083461072960046711704596946920185357777471923432986624960889810503907846747042205308813694936523949215152094565003176010253209669562111441620446430691346194903498183625805440587911140039743374426301257467688686829417973530522354339502969994646328030349511662249425654973906165028203523248375729478426019893673981735621432100081737942109925725647178696957846539361173780345897226084921644193112226461766352510653917443365011694319164133116857448768728913681066827008167028295793554059519780859898535151148921548473963363631072691450757104693678395993646676814724162346881189658088565386767366540634077828155136776597819364352232492447961175797930700334765844144200736572366678136350355652917003132664407986014343734572010132184664096903311288361221598631469316310876150425099064728887954860921331207526455202133533396213115419949251404652630527521018707687989933588583473687594428734669422923555366295053574008045344610893678297659250117715837983253192613320747961259003627496223205121814630554551434631696850254665987181137745661177481715196652241904005769633767263313790511562461520287045713552432486725062859257430999680596059463952013204660443383997989511870897401197140240140151965399696428322775752891786878783601425085733730323144653494671141178105180153333940212842432286056056223770943114806431879638879285339074516021003926142572573178783389433555028563255098651308978280852270498424689486290422138322417534542232949782841964003403787262021304423494276827756319358706078498867228193010091192758559938911143920709049999920929957907589923141278049940200459669560329597343730866593366447054053334347258099702212849876738138757927514412505180260302895352934490296805302725484403196377150889928592268428713305577535890313137466200886715473467166491163661078538455010013459997968328343168935571840061265314788755317623884581556435187746077147988796213325051864247017555358839210659008516386332425121088258872621789302430673587826038157165333619908477281662100759382549195035578863846565066838322584811774866316844656484240873926731232792538528733694462058570752735680271405248410559086113970617327515461985653356295276974438622391512251610570504839034037590675710028287127551477263651153844380591707575280022369385483347311028576982037172480575084450268999210207545484052537861042498127333585501830612449165524518555010429717435196435085533868283053373568285361486757913207303613486939054743411338543273267617957921171902191163433638133514580434190686793919706411872150546065466419473297661495045524848551650984175858026056978726735421100179597146080913045477735242850027398568418235700331242103174220810933496382268008221086483931570380719122747751942128491706484962646862941274775983226240760442227518649621574850294655606318138774346339854618316345385154269690788181397548546748963981427339068186807856245605857279247745985982036879803846530369670048568123699805079641542196869604490265767383440192654970449792582232923198936442308618028054588250687177287617135134238413788801705646797141242303061751462469194856072744782305375090454469528664882082166102535700518895586911891240662981314645632922622275763628619002264577208325737952211077494761008398200724226525882107048397928744348073959761371938200434953061456496192781687990539816290874913100166613305353005601733921840072358252542830902636373197339978877959731978500312038531923280288065781793391735159304066253840836339221770647788666382563348578852979823983276142150180394093650865685278829335861958961585225920220760364772935948205921238888935896158415243691768010558993591782762153082811644859269612239346386200554323511910615007387498571067730325835868798104594451789842799903661090869561520337669520752700261174138104005935982406136508385853018969238009376091195682357944259406228884710383539140026124661996582937982179851306254072767788937706493273954763988554013977350694421173951767480346594422166164594016645884328318962971518391425269166774491592781072008463189525912999447219060913204256013259248358805439648136933855919495755960509699578497443254698335580057391011113765895430777413403858156258029094263458441115775366362341510714379247329969366494373397772094182095171035536769180268463799671578660798634974446172304594668633478683713335658661998049748092985482864509989827980074170251861829898636136497560735371190501076936024944864795027572517547617324252794856177797752148905455555903968858218276741885624670561839099852439615896399279847525703407412753212648445075422274369925094087567821434690299710423465761415988405614406828751823849677039959000624730459050372766505427176754813974030223618220813840636049005619375735830904128315621711839147612853819719070865198189540168835410518555300374089308047687349994119877901252842885382287997688449872128983915357216407148614138794814748244127998572026947227046748175224154495053869041921865627089593570695876530101914205108834816446231053797403896857496942948528706602115749200724573038815382928650612695983649398653451810826469456560198462986986035250885334066249201916937242001425938826887262687055868832734073288445681547000275727085291196949241343264672469967565800102136416909740807827823424097281750762603520775143200711380279711299333894618515592095860022197262623177286793479989815092754071832219495047967285878685911732716827196303063266825889320637315517892981096267460078405955530913643132940586155950151621037623527249939143409554746750272063623703551641988423505528274377300276360071134727221683319156982603719779180905378601957768810726796596504980594215048527374670887807511165418906009119983495381317998463616351863537747529547155905619819680333644867957774318760296334502943196636135508087711143107836023814816715758791856362391620652477953338476715901215377843105788007881920599342357372501729288122639643460650180521382148838887475845756987545531426142374682266542809267013494252908987095893991121362924208116695952325629431014947177880184652760558350178518116986179997105110761818151979063358505728676096163423719402757533568008664728104044209357596192353739098353122551431537205993333602365466525720596165133925342208005729666573080337301047832214911730148790213971795268118613202070137183578369085703017599285154407154716989854914837540099165431012024674943299998659864928345450114658418249950471577533787924882415010766706131831235429449740401579013086303184474852620383798697088228446176282579829633877576475420765732000507871952593073889523606411855865058744093903987724001948957388130647254158623903116013322238051172486308167549489711924946820996973420047449111026750406015258482863577564531691948747937703825844247880438717789334402354074783878211432700214584660270375102864786889097819585127027796146228727315531794272144587281964996378624435333349785994489967932854832681599215953610553265986399544221315943702511612448408543212579001881102165545769841065576553486859856951772646327009637030198283039773606180363853584578903808787942299224600307995467455279466909660993458243800608757652678336367113706224197261975219581100544294342828418875298325317417204401248464438438712169256379562980201626189482124235782249028799820904969465619411234716389229492246897774172285871485948481355968255679485319989182054749033274164458656831372021122001582477285405617980522534968027944048150913752327387790062839329773370555106839667092678048799965014901042092765845870017548241847181914864427531876004241237752151626306752039604821058161876964939842924792043760128819036951319280486377955853979736894354945677309300729526850787746287399018043804009924834268791257762189801095405644601669806260193364899611646618729012146114446391798242700475624102132521742088115256477108119034174087062663480891062468036418253118806345750333951161428749715144000913854892398969017574542561957328385172608175609956843607228469309310635377539928633668085939551066767718039386292849545880211560739362130605319007827029233565984598439822192568554339764350149659564176060150420464275677011715094489895619541663342698580862072260100183083518284959619123187597174134146841262811731430924346883468964598686529886709371588753824566327376090250491585925306962998513505948336045654723484896910198933949396514589630596644810197197949838452516994650396401000951727197294540748992722351021939048474622980917921416727945596349208063467317558636230123116805623023344999775012179791696521640641274546083562096554379095052516864220658873529955001380138234386449740922429465886927034777764396416213891375972251449185126430830666168921404634360611536407351725301317060574679584495674517523493362240075391596720518971568373202111204316337281038917736744831978672025707166932465085541914529470449124834036357097979420790795555212693238936319426356173229309049795389168277764699710576136014755604728822754908461645477915387169456558483803119541728671255861705293860519303970851646143978332787819678010980395792633794652785717424679268928210514794555506012205558445749319348821447377159297463788377044986997876962540460781907360453213079692724696515053790965229322079091207885911174349735648093603856615872078115126689987434402288077910813382337796302867757352546674291729364223834355459029013650588542796826414715991050007180382157546264075843628584295998211738605082447792699474581878921281346255671846603644196738306715004087635092710003260821537650598588558204346829853036987632006274567136013101872600363939464772454107266425331056848456107051487718689705350867511293099562682372491331286478828856450339093337975088524123375785848293408203584545322220707103825822857061832406232371045338209408806815464997748553655337794815746444072925805880666858841251724292920783115018825250226678816586326226557567557263405409893614427110430086104985644062068766224913281740043482628614433807145563232593418064812773594665711038291084091727998802172882377183990993545493891464184474828007277875100324758888667868665461941768118763762183192340029542666101481943633325377745700609303959594687605591309997948230895403068728930007329256820444367723517526582314751160556966200609416991262526034864242248029644297446880457351730366736287637453727088735381786915335326207914865011631438916760723327425264824612290814368239719080598036631312720458913666085945053544777071723196023384153374723308535758288617671389781024520987454473299371648265032015827576971922618589028866391680452083529785911264165572586341747174454447242753708352152862459672355176806043314542532738447537977526526468078810187210764869969660273165605101672498751021852612232874244216572825842879953806190005791645528396233212571083999929211040989363670224045022918902120110871912530245548096656377845942896328789750060342692939250569074924079790472766068241040647514363841599235115331991824485444660865964227088826915754729790948412556233859731010285400481806224203140001095266175508754731174524122709300757006930454231101402872029687979788152002706588891550591074530757057922725429489306074115308738048744715822316145666500056516674341764866141059817610166885279092803368125652810103793419260822781778685122090923638422603771670917167133367032576619132287420730768882564879097702873377200191720917402304667590424813504959508899994682396307641654589416284199042210482987542474498629852896758633214925595957098929853973907227042600572171541211897456827498291331186453287216403309858502020357670747153369864261731875502708208907381769785451410216076354294566748422186808826469737086368930027778492516699515485242983833362334544864523297446807922142519999327076597235937311474123195708992560999347410305544314517205414808820010792380756748531493026546388837872595172103016258465629239603092568859723379609150132327771561636722349995983581372646200140461797335719442623727391140102245936596333255337567265633174181158006293201295430803990654618843802749791983096099571739332114562009921792996464265080887544674245282078113934931585159753529811058295483576337221778650424317061416521132739678920108358013635777468512622440353264531129632381383046832551095023327099314396095202110311548279928216130839716409459664102997553931715440039223369387474045269208362264454701930249701130479640281670783514360615873865634985283526451070245715928454829032347333071040519709540469687004184821911742097329002791485508110212890512795744978145378307141981767460866550117411188359263266380401974818902286800421625166607459507134117243241902564441078102236265727573370205530988636131015240585774121299640221733220621495440155196822301466097304807627388186343953676222380583918003911738025754469457038982361111343424453315557447166577477569837243658849236643258440158769521110595303581331960010712714474101411010953890265596486213602673400430501691367608870813285357615119733454316189338414854825303627774285221411761934555562600327879344833515161118986103159330171025324542614729600723872781019860922105513299823113605937449581827769998601809212380866920771865274104928026220213707884454373149380673033170715729145203829850541554276638018216966994592129295575956522887529942288551989407907340546109914664266770173635299538550901658878318020640784333540439916572543489360178182429780313547888920459621817687427121790311307495811069083255664698312643322992683694131592872584734200043722772998158192190029752000017621113362648028953930265367953487904153312654239649704664420196654103026136718637028639913700108589477824466534053744751720053304936778079162961270955702270149528685057751577849711602302704936566090483861308823173848408671307989295029268582199289626926098533565560339767640690264051023627018264552504970753550760325007893276586355203417284280295887757772677642036167527311769046156457818914706639242473664928830622374532534602200150067919811670287752080447970741708052968737027090939923971355507967964445617324635468192507297125422194030805651467107056848247775425352056035423815482492517690441416895467022827631182233936836685450116733234807412388574265821952067644363586732195372630604654637145749471437301990647620246393494551974644720726613194765355825797203928249807682941179082550293392090012491634438747883165378913229607901224086217452349298194798160873203080769291867331569546147312796118570778009236763779148770634663997813665089660777575082736229166133286628036168710198480512401744939780570716034995747355130636510851174093759303044026498500653143601704852113980745354546357293775469119295586135451951076310912907014729833830278433901648872055420584072636817179428078371166842098465648151198017714973376763682591029095410940100274790472662808505386161090664087362303858772666695939785192227325209307134373036734103114057979038492330597521599303675565514292526777719039773533327204936637905169901112032900805806841628575155178930260292031018556226680160822003371888272966002132356140409542496926587179622357091794206311050347191269521360288391316918989077840851388309298656725566779803200663917495177889819315133386892283705152526031052938764904310948182045454794050978858387030621712407962105594483756985619143213752109030085616335468995732464690556639374679870636222278246941974389468183869647400754223826798050709204418920965010272239506643069062544201562168990985081914195816665086370391881874927622850959660677233197547089839137313665479962928627400758127901023482806161230394459863308143502052855376076474033694035905013782218370690898985313796616549974564039807693966387730971578434874173506865172574304145287763713723300221313440099047518884569916211239242621945657144642688365903344489922644767355491396500434541549326974670568234764400067905999989322104513690982361909224652634814278342446839317961306780197526672857087516937034474465535448299594787497933115615768873729852231106644044135848340217001872244521997436722881178892549230228591234673353263422827475886285249187227493091390991536004828441490924008269819945835957790429691515031505269104310490714954207272727872002992568593275584900063239978155982880479864512324903644895309168537985900735809289488564407044488532592939385504750911694850319368185086480784534799148714762085681510039399441334441435530641969848617731589213514843314716721292444994365140585321459914961140579273300227417508292777553268068604010218592694349757242418780339742994751456612189044887202515244258915220126236278398054035366732722692898347181742845131385684796835728416958712578650396091526219579500447208920934603361939473002775486092582646268747687257972641265266032221014240486545627803279256341003604240796885247514459461058176078400787863510198908576380212824356924593292104216096750164953678974650349229891940090750791180206528220149749856749628725493405488325850821536271258589885238518422964404917335717703661796050662108233292651021150016750136371453014960713975486064028443809448562667098512793111094770412126219757336716008134134448145088871789270891187764643529184239857644904383831150649780705848805478004679210952000286932766749267205524777825805444006129380070692066787407871895631784772511370599983828563126870016608192029330014305312396403340818982941352386313719737291390959279202670532725304610734821256881611547311769702865919000758483405184856054846470749161226744965603567824761822619624249946124560002623932977756898025265852550609774479181689531680303647267743069722843267937316190341082067027356606520575459528839554734826921785358150669297663441226737308923060727185525984453423458485732169367821968223127433490340997235678880924951599983194809910818546874785256599463314036015451905436873832973253002206964641871418138157072068408264707613533078501018072428419725422047186040605518018262331184198664800820601228726152874819180939905813656675311035337709253075863198281779930565331057067503392638497536823769418056014486995864435737566931040345782631094153647142484344717273369172740759897507226754220054345763352656209568304149919720775458793650600929080712650334458971602128436633964941389873147771794815928869891301976007686583639685176874494969965462705557668780838305352218775007163248230372908037022443763319775338196311816570448343663068069019186130873324740459878296551266317530177203295150085370574092213784426275870144586215192099423202206401200672391419216396646697408619419827106925304703522121083147159353110060243896066015706916185006163121220571078997683948714226406250039859670678414864920572132541437562846398101534991121483261141158890558997220918220081077823426535572425682508095840039731388459735874581129760697794495661725645501699112503505981164071684988091261757429409963792169048292054548034708401890992892188201554340200437796184604035601770444986682699601127889810764997996782349623340307065177296764592593824515196589636144725645307364053236558603069414824316038869219205549856830513958160676753944995226634215105124367485668642342009445755075316876050116745264887731594088049337561971692157472209367133225098430508961776402841184265178045873733150861161175192532239451766734338359569374771316747279715301916852684615197643260459898720875789305218309775067202493384985544588597105968797869976075844888648212497988403690715246703949419550732441613399938014744117581356324372657928289852240948974096120637394642214318552273544094490387831116996255433666548465246179849226145172325014262468194911822521750357309445533879950510601252381994156391698254813286806015900931487674434906849362047950928448345468927746364587069449035051565045321643033806352669312171793266826065403223859181971671257932758559355810366545130986442687920135707388196733557544135623147773548232347394646220042072418463045593006386198401400710038659080421889788145536513918564948923825457411638691199982177584207818135678393569069021089097551874555791889121512088214158219025393817427395736385876314961991562275684407848042781142700635536541984120785536649202742122527681409143314316885311274731857920196909653500729230075794797631033085188631818221613160888580666631723948053650024165909408809422178225751288486240097872234669122659753347243511942509354685526089734513047006356267219085455369402762791269157837256574441639300910389572360223911977510025250301002843500980823974776270842347565695440946262406196036434860193203217525172941731525118157355749728028947241631407377095472147023773910288124123915064022885515245297187966101805719954743275372786743568401604855857024122020183086432870171041754956042503510560904825648097549543757190667805802191603812085873933447572214882174949698140930582899911782124224619659348188181891220321147626685508398771205371775221097984604881655753741210098169949330377264702860309801717493951596362066238294948993565318764109027731742146620026864792090961933431648824251681751728564366387378126084421753953305265649968972626544714836246775592558473375833519297029031676605176956226301875117426103625956707957510566617435448530734590705758765818709515178961206874359085109487919527589181111205390410193100213378943868605125172585084372667282590363593157027516614166002617240663795891405559221502064090179321979843842373487081403979340018208788890638656231619599333092277089565146274798964922450645546129907015669529354412206971383213625860105931364912174191573176647803003274090194345352165287917063726552138769048500082248749976168113228502145245692518727354489591519792810025990655757014138504078499758052514797299317733920807816574042997871941210829187275410637113655680629534754533058059001030597596654994995323743103875468467659011048873386635259028842441190061656463381613450771426348173373766247735867194965511040860544512547996125619027778431078139255238431637555133834050122484331626884991706160492009887445779116886177013365896051701966583102045340735709266181322071684371015221861485754765953607085949090348170996466678286387939239809173395115444995089026339244960888093053448651483164149262905670317677492526426444710799220423107303185013253157324321677607304848968372545298182564886465362498086928697641589319248239204840137024918512679738029238375354410472990367336121258168508050039195389007305642859988310079683867846965985971267583690468319025668653546875869009770518531547978692897966899078033883115096281580146448369160920857665247066457663495934416681129310038190751248200527151207734629986482133456434046688707019585479935859215690075777948166551467111556923434825533682531950202991978664771465576704071416983198762255543479138921580702117793695820858108795177572104666360568512089854999165929724602629334404065933746431013967823390627502598543647100551708570683370314687029103067608081556562539325390891361272813849663181195845685942009849040498186665376878858076081727784459112873589251945589791440136259580596999928521186943619784353236250759030478062751438357799334611430551147279322619624628070442506169841408318111516830844392541687476383193075047095603565609189631477068677030705822817727112050557656832399618234846842133465890177819993356184629244795316404685785788116913317969063664075812982866640885717080666813335955747819578398083987156592873615034334149760306341718410504246691262405721199383663389376259499947194868401404787826424299082259764277648507904408802686231861092381051628273855483176497025339292374230650998899775784062345227379264345179306423350319607692941439494785791238861270065561810775735591279940895001181259856558602559042798938009493709404902104094993865878291716265665493017153009307740348759798002265062190654834560742628021955867088104505382151860116341415991821008741445858520063767585828646764956452598664282615573825392904096575494925689924877501927114973648915049201007427719382441834642475644976823236242495780698143883031792793066116112215324720180978429316959096071769289182088253526329028214897486200569448678974622423914705533477195787469501689870832094189546621041881658211083087298266844845714491888610868261920443298716066932113190811433762004400878415277126410980640934685673925363825756383223020693193888353960325283048638549429816172879600599283263333638774370556801804512033194938843967664205830145948223084164749997475848017888627070399659176000053526510466802144068921885335640710796528681503066317650996499580460082783764860602854081537117280814766995597238888471028607626750239537338431222528335261736744047982295734250763211665747676243428922727895854798816852627674670067607915370719698773872395800386332687749364192067765197073296163853506330160918501215763503105423863401104981340635689646538104296087600489384011038185308587942970212246187928014905481071129040942124961782600968111351447559557719402188458447875305913950605015875393058523683946820055517038730371855549188801833947755229350945696138800855015676209236956396662525096399073896088852526563922307877623491555281733166733929615784987612548120048251518090080475941985159579449144172869300486381188364181567296953184575597430695351685854626744804838663935652229844424792750191474486138357453631973033490202560828266093916057153943119027884536302475728532653226690111428432761222982506886249081333028039585383927298549461999676649678307005518823793289411531918209424601589518824879655859334343227156014514339059175859460053765551197773828128600359451163105009385096665583040436433822781379506233188759010865063255729501754852804980605954342252315556240075781741534445719132031066993977008799430641261901314499652281450352014522191144339870626209178878193466893172411957354725041450976856629812252378098208273811932903581816851697870003869075250369951025736692040545114980961949597298981005371185114355579420303663791563695097934653996098276118781314388270193667694069018897970149867739356607523616600191446167550238553241656450826926322150422074838579523558173057506692780788027294708435425348287148302675642053689637052929206661633023025442722477267437872403850541012808097003540066785419147506304163607332180043169800647687270298678962341935611903420841585823075155909567370953635480508149443031944653360185630000914414674286176902923445175466407753339847691475027983421545132590926034382333286289621467205498544874868408496094161032137103705917093572658963187197143003029543486891212975144113060984950181597678028163799407428533629553111524905694489875389666749214607583701430429014824991659169476261297652828654900968271641948685198297386616359161721509916462219553292751621419695356836933077284171149946314886321332231044774811972342747371270445481379038536611735809259056927791491268506973839414303243152243575123551676061944706552794643313514634876900020126644343856837719986029826157490674958190262764143828529340123164502858987624061743209183872068197058171372300195012603009400400907925783666072650115109828238516839097749428638717555006232317268909229378972353659961050678371451392396678261635308308381338991984591777470608873423019645137578099285193141499865194157443268265575081660787428683756427090649249542028549515102549494832473066832228569653357478859730850793107280161577225009272205692946152851036777495500594363787245821173244839731470753445203486755124270798250278249939683799268460879659931247206250322377971242175263741550147718239996400174081621706465919298564834837447271760921034750534829336452652147670100178166863291535866774974222798346014007174255137911801276945681162392310244411624757148643996146210652999352373132550333133492879157099191284531937312606692824588338391081085394846250226833099624656096450928808002316023954421496325455999105513694532628767324070266643714335203579530168019602819340696949644799362913452319294262142156013298124792395102534715781729683517066236976248226931249631127080772145067615774721055245392175071447518068875231753045360411170497248293206886352506882586987384538592461810741493372337755152288039396215865301951020249615739297845567796925651327884503152777150052489871895493279568446120914802650077431750604150225263112493137528438745012531642242568887830560019322050165871357606822440069979331197201553026879114702684063174910754143803732755509329959035548034606949218042647104723534580994557999408791942007182194389934853979448324762991357382624786213171773786732546425999560492190006882757611675633486671879312794366794156533119104351682243887979640093253182798620331026789360421793350089279356753766270826693305378215123208011029441830088050521196228631573990220134890715114343733547940629898053411831394929909945172250506534895486012209568353528727144921351870958718927989303529289565102901811201386514292862339411393271435342371342954033080213751184053586977518209593348534904115095799107801739571181194408645926158059705046980872738084081312669816873375162119002607987334922240294747344436882508088517842714593276941575198836936745544369567329715349906974183498995468549468905859733687261375275535055587431002813737734071999862637315041892281618763366042375759905431733686491553339900200618313869534573642984488630421088276958302544069518666473591769485660645135637021429933756102349257489786007532164315149493831501669549523800539526638040828053535595223263067666167486593230550698869833806743038925050086659541925909513314919313476105081394070633252388921600309111409920259572246267358948059124276792459841675501557196234420940720761912203400019590544928197624133996159204567137267068859207157851222159002571780793230430540401791964064448573038821991373708391271864945000409814521761744081231664966930235568035586137479935873216718381413273282147537196758837118704093275180661347471664819841557776586498834621264738339280596264939885406300353166860096285422717097680799632409108338627148493943734327491492763152615632653518591662972974028066121364949772051925016676888237589962282401746775504512950175005646265117331640502492892685152529930414852108555349440433959403751023284645251404311104719227907092694433459647826642534948411523567061957350748286769837288592627340092448048685707643719789438947601725795903732629098946908164662146078351006911904651534707303449372712965374232302846856997213476589036529786579443022157588958810899861057690923312907340075741499996949560254618054956957612271390816381212562484988596353300465607948252539308715666615575034178831782574818858963608102160126883653153936395804033034820457107467293004128877224846755184148041643984970092133629190216024326383223422182302374657322979854531153873069222070596768895366957752411883773615838710148563143928319887189190899619321531452019940124177112588615416331513217199527525053287634454575019399192852159094356835578814222460714066163511812231283683862227274180774012318107222439788436736640742752722544122957529652572692659250830458346741638213885891703737746276472936029438581322458877058765252181491974374517118497141441185079797733886351514145247903977815020809204893714535822274398017269948703013850778707700408030173132497114733335314751907631165434030795510614796059209793412892680746221738267422019935796301479175329991873996111118134530557318965456857583387048548403076439271294938031985925163117087727285606512223206790235059417554272419625320285991076171537173499860643031303394233520022905365378080205704321199935607333571892569289368701781485812520243901591675660436037512383372765351128464320034689794957436161152056371429758755567166096241939844389066838523978831047073755564056069202104500582894862416887196470900610208381263324349814044742802961986605455159523972914570142366436644084805858797787680120117720395889033245494284194009551598923302198389756044147715759830233280166991777866875854037286841397565961436595676770762468003247547121278148307028108837165400032995768324538950969334249010468299802988987621646508795341194434486113760258335050996161851543850011024381680821340146931297442212049428496909460028154449865601746058956356973801254679024247532545319190960733596209199965064855264269155546683375466051432138970314527162142944928814091453865365185402066931023900721362628672233327435537315207771254823306444891359903913704114064885866070124759942455030450451612131213772609774202723450189388656631382023670533891749655517710495515852441005219918937057948486022998327659270167139339586647885571556783343877079917425952848459750425729394072968681763218677657461580283928597797063476500927970753470238716900775593026176545651041319847304853679434443227169198162879957476433036830736087836539886113511248888839814980679127472794048821016398309118759000670311662043202851281213730155231274246090150962016893830602749876784741655628852715964082338890884159135602282498217107679109186739462301741706169387157887829047092567556033200843935172439178693799989246280583765860869207759808325232842476548178955039473719041526430431050210312748195441995773412053108160864862514517736774758672052458953014056081591553774966031610943930789398487031336950465973414978932471314716170937636746172919832983703383544588994537728422627928218747617867389665619871590676463126038453154321763305514901449404761199925568826605038397182988510909181196227172129105519229303693370315842951301853594892133484227392651455414851314504087201139767205243791671271777657595204348800876027688591357806715910420549671114503756549363200673040590082428428771227245760932479835900238190115390442777821140352167085690425047842626282045516900646962354563492177451141349147430013838806605355479625185218628881965136759450684150533808080443633443851732290672547010257048103497029955655616128729658901567460584185036299772411391548195346235640339402720381903956457764900206569742742683613254953966984481265331784528110723434754117499065582091972055856738402514793097484596927139233387292977073334015224963246267459663748243251364161848161319211210459665720910792563495254952671648752539159366904606552822455987239922315543005516390333484956890984280829894948061094128653200649852699407219418840597846942087110017914464155306142532670436044167655430202494975141107658092715096248554392122397000065435400885097919567646971077281856233843744098082274946154454749961551596117403649497140878076846604438840592228659786958238072418615776151559138731325658900518227887697204512337591806652219476219497899630374392823248014397875101396174470518354247163844218284875986615574010772123555309775921042048165586816455847725013891654121393445313879942465126635021241024444373272733408964807128892608767998736286742825529405141490806183427291006313468175799362289615417684595961266299623763305650328539628470984797040674525896707561327874280117370941456905354455659235542832486181545573571412368710095002547499934099665244898119556698345100447580715855230657655219769304240297152259515559042472386556134601627479146665514840279479187114610761858815120858896636695290050972839324213794513455855978469975685410648744103883709909208324302552249866431924040585788904629999494260238474209682660152494763389784480626865635928236691774569746494641249967428744115574677955447068743269092085340636178549086893780828202804306152030095107790574728450627592398604224719653650725269597011329667108096937040374170182922302091907833674986734969783846207036540361403614393733487494893895908656999246394287958804525122449068236111977480824488344647597259577327864861278811079571065262159877463809037743654142676702838252462725482960747481843169785755631400221443624277990511349782162138834125683724943667159852431377666235188732678494270899747039335327377116241682917637951200915700292105027605275164665354348066896577448679121914439185298030616959167545924969349799349076821441678410787402278553963169948064199099437962441644251041033798612521533294075926475293438680247374557462170566682956812575809912515132169512188039483655343679234789096219731192165925704844082245021244788305655087932056194285435553802452631738997284600935387206104395183443571905235885074230483378590825003848500691431074484085482764759585450905862455933531196352379740955790488290309328875818756731959131038570232252583144235040981366276532139068403665991851239318880946317757203217284722434856686142623682847032506786353455403324068888713707270340964397503570560243057463045002983171135761897697508062662476971565047555051110200229237678054536709075302690280700079198623287016134462688635525749238100197088711120930532844243586941915102649180775667822914867351518076891549997582163983414704605905479894143349312947967240466269379253680751140492554798244307291365404411590819595164853556036351718708787875558290524047365537315961544842756166602134318565114097181259289560104543525468370275705349406370311719811361901900640637097346368293525271712326356612698738457670519702327389959518814693089481838243109888215473381793006341475047645310253606881244637393236004017866412008020604697510993834418155108696421287117610236574961824658342224184964150580757453225582636848058741002656312228192994853620120010932969056637102542401410029509711641908149941597649116651128930172631361398426318278074810743462262159329019755494499639916169181373499941329924276440984694407148921571844666889332800614792007149031705352409470089341317827634674134826799199343452879262404326199378136492165965944086768192618547148575457586771904135191463316450997914413186849855648660637744785478759433476588824226813817475171495854040732859423747875628077824646225775157547144072078236002338240405400067899079873407788299963528584188707578814238568129187534387530776120148819648331360664198594507663539635392651658980789893354543652862980445451613816983368441595616238997074638740579252874561815790149832778717813809241313029474316524588513800010477315308403891118333740263564999693968971501469099302021171711957705954794920026562094055152329842054542656779856426038417624047610413332800559628336517335893795135442202028387386912719690945733796375299244194249933499608769300130371613550144907696194789412973800118707244114182850016843366861493944724455871292067035723786902972317859665764648403573960191352139524040053919855370801107384455765801624653011701211305079986435620208667114155380456831752281929156392829059003233806475092554445787132509998610421877273159218329026536853923374513828713021502207350826759393556570517023921603064464273724123937797601793251525172606987135018954641052776026633898829636391331716836760091893612756685479895929376753601038796436957970509251593111830454866771845066531309579797496652613281331837369604956113966236221378689177967020709702261531809115479974205747448736695134174681830987817210859774695477442614387948042204638684557027075468264921683052970751863248924800426092869057859060443110592668287715226575244494662076525571443079042830893314626296723418669197944872021094697781538040986868105841004183613466300615906102071505039141203698783465233515876187993161695795435422240871476946259286963035197034335139298831928164641217840587504154215041926281967457458425092051464679216633572293354784385471162662268767837834078194988991603462289131222910824901248200611459463494646309762656702476733319511730145799592538417647483296093335186436221309616956173030312973523450298687116741273900289363835154068027029753957627135219880310675056996172854303951502657798193701776513892101895866504413871586987218789386707787102335346606330491157351368585937587083596916185411280012517739262644248387561945778084839183040098759219625592270792713355330888888852416766119636285090628508684544383826477671127338345589070803080861611042658691462704320173794685299527774790605179642230554175325207247318807551045537747914001859286465191630539338029513908846219240197425761739126908153714631839389583915982437021815495983463307516809410563290666862910303108993262373037919649556984099645652705622403339059249148651147579580937544946058942592488262779535918687752956773814056295472872327958060371100342078072955895846293302896937345806434259834218391032391628081042466402609029864376376770384034389124853019391532966442218655681662959673941273359058433462137723484815472501021005705288483124810950716493270117167133377956268857381159072410467119492061423925767236637959469420749264694043898507358146416233191765960657930074918145501453630295466777117159782489089026432476478772710267933985274276777562239904977722794365179677156024062123227667888410521524003690502892526947701373938221593872633258269641400288181243744789944497694827722754626817426416472302166310819643718798031940059808721251612819360197813781236576812218163376970004750576976110427459228313076908596712861454117814396974837224479422611845413970439866033080254708594964935350642264337619102546503374467565200712356003956260712294550018234114392752307813881981775803257972051092997702203725919238121547962939225411157023177387864735465703821084781803551262107102438994123243826224363981759037640658731718084080359018459085349796022513384301309327251110332655131875041190460327108039834498070209437889532900963690022350399842381285567767350611614592181339708913041010840550844121029790681792728560819475900145305238660711678669433553928769116561815384311358354285740044096358405667397350012308222217542199968194576883918537344699789791059536766249176014053885933246311207685506941263387555235778746078948996898067427766279486982891402944784027310931669951972429262457749854456880872719242436379647296120052506960749956251708056206178735929811094078293633255789397205003830099613257627603932467772563577679114542396350403144102174359931656155486096352371687593656778399764865647127318826952569733298945862827277598024950014599840039733543222541821563731192101773818639186008344577114291847605401801344028925697321217215819463321910024248278291322532509977756284374452927437432917014661735260170129080829392840456628332627436486491544609097148422116047759499169899375769285390135457466163961400023943193423693590436485425360047056770699833153046960512557775264817314959582985651803012136361820357353963312676131007967599650211691745559635399754073938228145556016153554780652892038798296433671594711769687538636670110673462859322882405803074104085123385401577220201450603806099738879131993116193798394425387230913522972955152346117337896314647339510390973546290842710781911219750243508687760583694469848874809249998398019153519697274735885280098464140461679339825614229519936865395484194920553470975021284823488470912667752241595248151417026618657465000699060052319712611366336997220338224512345186175189251542670413590664951481100039883634897860819651425057514554603326071750492020049144271664171547755901418438539710317939386400766659981334226747120625122832020115457992071907804346298923964257692028378493725084963474374748593015566743399700165187334971113059102180819446186846313684251268098379878041644364248104631245404953662614308127896524002991119150123791514030016492276622216882121258236131314196578770893645741657165654740310893632455197161303987323473481971284021324473818685532635218290716725779568117401531545203404886741556769165135419265717640681028876840639042728999717678338347788948586127011838091885894444446281673939056051629768056991938553753151030121576921387514712668629830727019377668731842959002436677528406274110360991142817620247690033537123990005995601002356462385090798298664168262911358591170654437628343711215690384006687170678881481863629558470429583861050562751234024867792377724609291222706155434345654564999384445351217104231678803799299612895954931925712674775765881601158856174739119436434284983868998885754199754085232230238589208508804075631728402228159759976166222550692499244211083102952302991192027582074024015580737736214094200161727040330474678325237173129641293120736818660763730548955921719841534750985004380312899569622554131528601296708783710903053889743201898146556834783271008688902006401760017591880929814215691086075984303773858656083554144413651739886119170353250845055737119535343971155539457799274878103656708632202016321328961862559055729501241445011389557174077105631035714466574767342017929951781766881650598674562386709635826027182450934391646759584356526945004593683193087602192240079362928868213080111556334258856708614036154942487384684813596264991975666892804937931480967995866390933385726939284561968193153032336197184790202774948923303876720945617610325174060423293441784072101645811052792266643186690771026153288441832883585063436974513625969417207946872311392261155208507957708615234303407229689393542387006463727865890596376610423729107303471534095362866457122877104860473558932608281126120404983521202349008480991521515307026079039238828282753471238839773361264757612496504164079644348857850624751109708374413604416942844307696457868215454710376806814856488906583162003880810747413750315548009845943306779501923747017584484403945852166621670730407799454681212649724029511568306754501117131572419684876882982058057759084816370879896623303405795207757072092905720361970258875826929626869334182365803424397449460518632298713613770955397175991824068388245657687112922869599684562883297451708766461632210247776160896640854879725359438706959785049746082087185183209349410653742380486697323123786719861662008358079342846497506710204919546692641251906437204781150128537888607905793618286038891294591910416187588229802826871060567648050467509188882887086065285378046441779245278429743234903368216143803752969126738239095754998210974851305951313341956388028833400643379010947950968654983323643551161049782776964517210269736750713334825408140304000265172088216679867921591330347060962256666040427270368214798463626325803845033408981288664021874326291861061459624183843186110152690640256034334008998221489570886974250806582023887358537176988230596404187712982633847015951148184804024184805898549094825038767788723505881537865456481795779067770794992377849877132144178070048977934317835503710614848420338103625115477989686235418308803383271305441888157323222100022644714133801334129473877354967858816047966812157663337075604438456098381893634598104840232750420396441486886192971021723138390143169012137115148014043274679999825719184926204494408281682437155099415677446734020488103230733960467125234056755047036657443492012025865081159002271473619181122082014914327889677042048911114340296988369838053269882752533949203109664265266392416803588548409896286009681165085249401442744570123467484496812131671180541139171076996915294085917183079216166452880014581004058460164108195751759006542333630057336884940828328774077411530483764694564143813151552694228162071993813378441063347918895527137048273563715303446953429934070663638052411407804417919501135549763607450287284585713189448403853710012418463042761628043502405513723215887131073461514591378191876659101185638180045856666747690753444465878050060880561250007414176571739625996452283725707364207195231205004019403107370385844543704026960762461104187039285744419605792934983464877557603670391960872903402371888951245494412645452268274483965250972871951724994143547342194952478612561638390080797812575109758463626087204706904161515116220728629066143496137999540784371382176263081653560143637865904882242804599551483860687956301290867949184429141423230946072394935920812390986640594794998834650213932562526585771682775489718879587722691752523304949342080004621247726360077710130204563825484633451910060268883481765358077721678053834990366850871862641791323784849681503232859286644906945193760165715049712006323682923768896432687538781399751260303495383524202514186703033918477138529564032268789353657330850315484341070147988403372443885594896908313907486793835523533400940904090511879854187917458811366901258299453960580690344398897048188717865273153203996429602546292112251708217798834910825912268715901221117698690457683654362629427256138562022219240354055515733859387192022935817270850099351039744307123774413239460679930835080106442469741822386683114936460975611956951062789654486752307576573127179530985916407237368288685031734944240630868527965974947112847286965780447080066869555705540031176562846025865098287131415491639677546459646461359418118198695864773135431381614107722978158860249480614422220408782377521834978085877145376204924604635157131056962167338621021552586035493382228396565016718420369300998702116151240484675848535487201066554213665590047522713449347956340154553782113601551459316735290384079228025899980459945753213373379007021855385443288379914106480450464078373669936578124444094841865508220441504684814295807754566183221899583297529761562121210817115098859850390336638316046759097336274664610279515769514063904893107724235645928430245561669732608854540617633790976855649727119760467325970018222605636725724031349179042954589128071148927535933147106044443279619425903428356320928342916576001607945464641399765865734186676792592961327472976775243706371525494388878427905073561518155298467125711466461922179109973582524159256585350727371770176838017710031885549925950419044917731505430628901805337924987838627748476062392255154289147534376442613593534072883357985971968846613362349316611104187699357544694853821391461500832527182813032308198469581752670202807858400127165020419110112181847762736774961243449572923350530130208764504666124485629502872679886407116815563937495205237409187913901878422774166411915812621918425432884260369643878015312824396238193316560500666558526882033004006111133377966497687627650756343670312800987587647305141074144485252054356649502691127789449990732692775707017842316173048534470045218592902745557452353674512590747068264723395601681778253748454487456301293000792818730919214317320830984288470679394098888936543858011222430167848483255281217584459578029685338955406461746608995726200773973643181744754331035616757663357627220853267489469252453522806430030538486536141041116402227866725405045712983689591227905946647605590458805497778218160901879925789167276455226376177932089914872461767577098987326620646070956365111670767451811268248588737345141916909498550646579845366656263074537693285674721464230905408041304834312234920395690664060657071237168287499305483193679129322437415239806363722081624598483668288107952356202035629458478019201264468940739687697564987442115092510569608090151345253693962623010914528680123105021751869544685187192514721506651077488409617474089435804540805555809739683056792876257228362362983237315485340414595725608021903952204242240702925178188209333594911300257766049866459001960453606399730811570329481610537564957363202615404894671759399978977042378840930930521632534217405618571689912328855273397821696617229343359593389072288244771399571486574524522509216358952477369861122670900063850709656740125456191127019964664355197274690701220780262592192332122149489116779306695295738064217574817645654494545324326809624941228352330263278221658465549800486621941012692980170637513354158099531870402387633491350360207064725997655219032592545827552265858483290260177572010951148321503577519431195071981647245966159234514183198133749030480586110773064879621217837080240227245526842201595398348499172333431642673582187709016887158854216636190377321494263539645455273764827762534661941886945229604940212812794354366746037494199500470741849791017316985031364034760882491464874572536444525833243634163303887378297103572298110169995311815222115485157375019380857697830615453815301560798442857396973545462872985826641937591698893037592838372417694173405622541366962804065139743968300078625575044185742500923790528159970077461576842994631587162546678844650606490577985403580116479986304519347565459184438125686552164743539543872049460265624361757080431817677666160888224646347444418614940009592112988800323939333982814560391721490342360637349369533865802234301630220386057171545429611412137929068390254186973633032065645599603924419961752513589739490398468997293421924675151814180674355048339453480502002554905931919473593249634456053146536263803066748266198990678289648781273473202187189505439753795209736198503713470647346048033605744648453525840659752822743943805366396222478496638671467671189476874213229023768930544910591489413667060084789944058407031786618244481627828553571302802673613551506544036753080846721999843849280259153021147757149361107367855500253077025994812583662776598864832954879886979068109218659520078141440112588674630138271421106492165088494068991198249746243690291774307570809215687543187922735241858364147892342439286539324664704216649584556742553305321657020475735172569800679711953668777209969312492752188386478555096382188685720521004540179426749857330875847668927349462405195267828779192713779723891007855696365367298470731449409956610548972134012143942107938225341526474333538441921516623226409641031336485527428342980149013367482141943984351274264322676683859448479681883595422218391561582547629137265468923710462511968563131458663542414583375871806850200514791197951048647264942003326002489034304869400770614155559176542611062348472151702306720252435324260458647684971503119036464759427776498365366110213057794650958473336726766796841408474071826396419207410249025432469057250997822759744925837852984511235354015654644656197357090176745548845934605219670644702418583360631961367407170789415366387545408723684137843444338804012908111337556259382503303298070033362851902993950077696073953002232883817083496794769643698081805313891972446502466211809319304356660480451913550602511769568042715990562077130264525847448031261249199862425410230405932242361644023871632101056723630092068720305201051498046834008429548748534223197242291883651294090216948276248394820655796101512207993160409414126560928209904511035312820461506713180749330914320125185106198743670969707769091560252509518746018598861935026088722484789055777876928391307006307984911269806806122019892768697118663021552976721807331987163387968117581572977992245878485613374303064843033864170865258335821819203110089258268438954597219215427954513478496176975419577159286017354331145543905024068943265657794021956827555676761981796313354654817470706206086476334077760457816006099125011698815054437864384712346144364861377551978486523193556204575193127672293851499691875521480629880719834398352483329703300770553164269064164883450723019083649028157156370571942712556289639924182066808604278404344510662632117202835186739221846145961789867456059580132168103155860995701344430678679373672962412377017370023258517866486485761676915623895166810764315601353053530754857218977496461925621214780459600821699469640342727613863849415483547471718916648562104799778436355787348370683160618105315665864201040859322651770653523747511943193687921011297440342433631370804729038534384539371668971786503318869022930074831303783920229191092626423620979670625685752833347257421662003207094396181188498955635012594658208136024998213051495968587340776852010698928853515882400756119729566152302149420903124450212574461213842413853415805646085937490299353486471102122638206376830493420931439269741714402108266719027279267036427831730635609349591555845571499077316274372591848110188682580258034011458869775777593387024875987404851993100455971954739631005607010154436684898759191352662424085484980755629867656330828327129115629334086384836437917471193117445932163894681872413973413203445110528102414676287873727940878316793076611506835112828962247423410498555385847502140112850165167126124804515939758427737632877506109261639943564037494586419399622499603063673015981567982714672458226058868503839973052135411089481817114450562006182107044560450238686625528579181737872910784247240628456473505004988052717147290143144402700664988605144279082815630569928074250519191592668393164660993254645228127454505725511304778426223411582257738029283594329909005843303891635814643367478778991384208977718321907529395884820951061459931513355972593047990499010197694822907816188798626701308702072079393551453756874656547408912234419821510638775019166512319585737762900064653698528446498176715130057410920599990169358959339649781494951990420761579164968536093344888922025978406467268151385560867293775086120611184422551141765682307274739897412752986810854867774207988725619902624855389687378360901548879594734502908208174710396034695389973247630855605758271802547428851627904731970950405620144921509383234087866638525770572637476347025547315135525695256702726682299865619700694252804684740035474935461922823912757438259572254950297364507934155844506676667476276975735879343904482962747767710928197427552007520750907474770696390023586842661092598083212283135381377667109878118875681201736579381940182938251739107344961663209954634693337362137481165738960757532849806954545942294312919494079330201185468883258476546827782648128488273102963356173615435232037630981639995019170938864607313629691275738015675163325479070639590866521171360112794357801633900638065200404417830594565466522536016949058744622059534305425031502107391053255073646216377144689019925572091277830911057685724347756194640936480625270599489789195666066828762280336962182604520919817872572722807769409291068366716960211898855519008971703574736057310753739266013192467535760081674409427323451069481920024795194156134207672850358656933650031849221300758892334944762546273052999666047272282060019477914577384556041477620303642847660783609017640504951958836292452169780722218961114372855160313890775300344695653819306978661483563999911008119656141317731301741826238374488793274646407886363008060521857265342663895898802054320943710635732667893958370638786565744237279425210997817158843948944829441884638888764202147016694816970279799685943167419611056960524963525160097850415801813796362268517993668752946348585393735170300531907244591354773151727280602255959667084892523629585545356092673235255960610628544465311997247938306280526393520446706933570359947314828431132783446439028974671942349106969120991391514379512645760331458853313827240548423933846452821030157383423184714850299265442314230852988451725075343692836361671719871769690256169186316057398209294930588809876936486197272804310866229146902194963792238036118750262549738835764520927072519071649805117371924961317712626798198645571741512794902810439600239569347463553126220153670300005965269074501134473656015963145640568946831664424273820253995193411762559146536843700004067754043814303763507841805501301506020194211162745768409667549991403564402588960474048892110929255702421498082647138420226211817282496479885169232214442404423898014171850414234056085541612571166530771442038827628761776820933078080766365260242424106492073337064403095725912494267821189660245670205144786329780798473887204805358108439926475848443355543430018145623466285299591617343698569817657913188603107729056390054237208459706147260969501817381823409814762976073766032419674850370641285144468878107769034742276740899330657735639692965311809962950264843852555277144454052284226932956462036957855685655286910968956526954181845393947066662379406680090690376351373373094122639306513189537150673611052403032446554357326463446889650013178491995617337648851823993626664518285486758992450757893911812138094251499565842418229318700395982759370203076568819201812868205391630191344669288284520492624557392762068563681923611773297977068666569376911327662297273796888600538419073151993479155496953286695224230253820006995257349807383323920100822955082571162601887296601510125643175944339200100713970405584973956899791997505825434357437962178562959434203251831284430527755954092461739146116211372350608070643628192035076745235585343841014110813361951882316476688887842904421075786523570447169252180085708436971973510283789334769407077921355528909801248930157005739726115495909135941454362066089691491370877955326392459735092505902271747801119851850801156119229891621998907356448310672140574098329319213733530572615554759385812535270496591946980368158027392728476521184624377106812023021198520355227174369897265083440462711819492421911170754899606309309285950912293959673230050620114647669783930347796890864503661895790460669303650875104148998722312182066846276504341509070843849398298443421273887732241443272325034386224658156724611814180026260415053701047995127318075918957119360498875657422101948712489236276112542745370061412996542479551596364167547979386691341582220244202987038958388999625296334503255486074820517972721701398469474528917088561507332066715256775484318826186791141096000836081431213444233443625317421522955896621362493840816891458756106385854210096916670292065189201473176000616138940712272295399258970971579710187018181334953209417932038848502478753670296993469858088983443353087687751198840196690726176266541221007171784015083945790212768666812294949261757807122221285391771452463809819365339718844072869050373053678530193423192952363606299637328645687113483180487914226985247961579532767995599215299148182779076193474931813462339891981013006524386548570187541083117013647555580098866781748602613738578297645448022962378047335731401484556726750671726847247380687955324417744236245927913342909524692420603670728144907420321065839705782299231539343684048555421938340828373099514310108459348470568030933396250764919193205413528697963802116291796099608027239805232709275516003906701432046524278887426086778347593168250121013095213765317967967126640792830062513242859915029980740896662069331125761109238065713074862123163911628839027887179156537730538882840503893165464375843515378209111886715564139493881800538554914159569256945315442526847511566545146823245230436991470888913858200667097839733378201486229202108099667152094587119341259751528845944447369869411288376553727599282852606759790646593145018329026346434182024083936157450209160799869153627108286194003719823766062070691217849163912781166313168207528684944429640101490706473711929109440688789298314282671640988305008074944569079623863875625951120604964270110280394318559375665145533590428028205738697983238982196664273896164067497149330048277964981692243870635263124676117538611198019145766710913405542046132634272794802733830826683646708944556041468886547180776724024926206023501988144327399054877397320576085055007385606123717055425834153477994777355973342698452511132068309273924584471520437550863717548278617332833968619972788900347752800938325917216432914538882126343101153377364032936487445549525573582876192668895141878994983295724519096424352970308079888186305702506002693162053620564894662204122789864695280492001747114729679027165685211972040132342721906636193117708173383174169153644844855092113571147383428443662197652402847490755467283529664411769511722214100076826478269942557181345386162481808059441146483065181769308221812451111868627744365967162159422270579494421221313162137270441749472638560444345654236019801429667208927866480585558998664626659251066862882397330493940780335548455224175548591603777358613080528645639697896931736421885784713421059106303679772454729362161071333646893526013074339994868983865002164537504989475413113245511435509852317636070223124164967299092294985696602889789088351311477470043887056906774079732679180296617309495878328061908117258334056410507197640442465410067318601348463521975170454496043518605378565126357895509742485549344429568010393190930551202614781999218642207716297778776938709798795038333714308872907191639702582923003851102386068281152753119459591390308934826043153021412299039923308948843087867164762084090664320437385620024981519145978814149896479547354875086781613305663657472511892404201928686808032379052445108720494967480285687532317170508701359658832196573686424531359263319992718878616353189312595932400271177954552839093910239295100901688849398055804770186026002320340788899470848424852644224782855175887211221092717442133279302763443586843742296655802839727468254340049078836750833459834079109092673826112749813011160216480529076319035466796753332059274586683627697679678491244869313991286994077675482804691217651814329730528299944454306147085355968936505577867192199720025106239887372799716072659568157558618810285941124868144515486092321043833004616244911279619134637740052719749547873427667603235584160298930423283569158953365890108747870999464088297254382321619880254357790309091913252776692121765420582365753978859362417100820261793955377533774014784039097623447669930268799647642925157586051578908201113843583015099882428211232828442369768304054398676369993810049103489847576190308414061400471924300817196791213900845435221742650134226673754484402895247565587081702109868448187039508100978129693644843052962442775516571694626297829889195256687894327481226852090453191274495040682427726656124492096419766956930425518892549944608531787501154270352166849060337679999540369069132793638230268365505630354375974975923151387633936148623251877749836806656897286146570852267166820417029041987286283728792929157619446270697204616880436194028831222459889751643892914275134750223182144525678859216978588800758144175803011867161263981604962607066759916470573678881135553921659760127341387190756215842680028558787783702207904233862749300896745047083126471959075630751667031050742687408520419470058268250490424128264668034245878344576332171219607071826756526417877885644837454939920119358902755664930761883983513107670778164239957205156561293211172919158500874946108986192499911722151021983517784649700678251813530085706073851278614279672143204144812853521664242191393228636454308052678076658695223111359929794822742761344693747263022459030356805195644145274549979960480297407041791841735723707582015097997289600809941455071279365002345627848012248998595458179564633786378506937387988846350582031055508599659711057537417864779916014432944480231807559163122916657064976336495138128045592420578261763630107882310879317545885104046997759235889118274836026752919554183197547127725736575527678265072281883896882730851018446674875292595835276235608577053021128212452378134208936309436977880947704607722449593960958579651185470576173836348363873203504118820666910022787333865570737920226282524794140080707980619485735925793045816775911924541342035608670345859298936830739923578547178538691732248011244269752661042334963333615030906033271061590535339717348397175819282382534530890093892877432646910470000916062419225120310573019557238424068527604115669003728032313615440890983208991640442383754009110033591944714214534517246696800684255878689383901240184188172721161908173269996780868814112233711905549913406558180598121524524170730216398664354723929371624298476252787955061241118753547784642895542901461921395143905459793456196987439472956675790101194657345041215595154054879444810333417078281638053232120983232063958045332772672611414029618492507346030957890354847542957041020481522659482371503429416724217515247677725000856985386319207653469295494169218012839759581252649916514655000775510491703888400399409989366971435554764813930541102453831205304339956070683860253385363760678531117012202785316820205345460318325980344241331993954572210542093945257712432853844680829560899393832371591532379077815064608709686226095571646481001362207147303001225765758182951264528438480464826176120870176613816527671078015688671267124552907108191492950508024774621184385524806497740097514201271884485146796404221236032525770923551644416542572356126738757628130389388596128635100565381769042198199215444153760052891412800298815587578447597810406464954805039168608158943885681258231705798849868020541734231139791849545226867807772842520383322221959279617946695442830081733762952226499949101258336971638339121969467579310889896780029304775127076063697248940755804235964228593298821211098005832336099742662151911094144764749191293716347931687928912483551474803813688625237574682520137836778936519116499100155028271642372380499395657541672533299209522439397335769718492173962001437515796618456467959454953819806360063537586041335946274830233510500099988096392651232698847903388845077813560299291772243133069126961523404692153676946754358894388950222536376809397587781142004108681839871543728772608063116096437171540988769420886556847470728030527865099730948604867417058411717444446476266932634825219749339523919576013529025405772654871171619673808478841961624383940144734474603261295086216173267294328904896758021239366870907035681371869733370851137777685652694289477947474831070410256406172414303242376570109302274514465518003893424499003344849035002515018704945889653083994119602489024700607572690912813258988673301385284123570658293277270030383520883422580884719348407942498932170938505656166936261435186331477228260215040229682319729590215114068164975018366675318199166054072981909309812715419020463188406588297126623990173192387385811463286623238092889452776427075507519603102519502134562700653333469698337756501763545024749888304465185814381592627567326043568192849732384999927789258842935531693422069710376661648368670325223301539040459393686977413521236067473033049638236599024546675286739897995909092166871342378015294083966516629253304217976806924001969699629682772983229615581131747897623434044022783817653406627017294085401626374221090719275085147349861971806501802144453646108011659084106501855515655859889106706104434248271283939666940195876448236117176719535429210334038078816754566399787468364088987228073975095114087873091313457224212701871544237594151364292852473258754352501874720162341705108877835182000488376319223385500328361482853589040595347735110477129725714094899102974623738320156680252512700899928212404509728927211621567151347552681416493246668599227431684829844025089227773546292718870154548709989466900588654825480625570091809257072332223151733612285743008566502525367522286287687967938941561291605893249188637995755202104345010946934772461038181779426244449912417145367703768304946588854253751535708873340133889487033831586393454597402869054295326828624547182008519904399449886081823308654423608230629435258222130391938972636963581113856027466561189192606345072934318728888819534839270284538681605053945572333127628140880177142014224412102700615787977633366673354015907462667330647568190355457640773575923294023210096251846563363534512620276323224974762873543500231066147148502128252747985000350460841812935589096190936822459110240419282013664251759020598765141011512982698966799071604689484512729217934334064240685568039322787578029394511237014753743372053466494774946045468289071193784934381168892565215567510091880090591283215269032872766157127452511520707393349509439893862751328775732122409403898676690492395109319452081237445334793226501022056386197672578064428930168713372681585321183372425257150317533499419292919454416479277028814582154360385808179259616829999626918934644993851991191405979238672049070465096882480724257895338143820352906300851364381719144381684194637030461405469112654637672383272447883063607355613292886543640632090885313142923836983303055490225873209200591952567378700149269109389689397993730512536933952412823611257660323907811694443820830823204104174282633771261893553550511387830737237451331631836239741488183237183364611514462277749408022489047316291115768931414330322312851788234912198225370165330533945828959664421844874020792137166520199915941260750312817265865183272200895999416948774425505956606045820919370241168146274406892269077923225540077541093771281775015663766911033745908267221163381648863465020961302794212072880953757653703949153600659805361716779194920738305980655514310251284455632540908056142844471526393887539867651578323233688969060749629523774585525427789759347296541574581361496951830614650953470276341635131775943955878594527552914945862353490202783668545998203794016821507802150890464957917619456806868335494778830791879738876342198238566817610769933013108154260631854602948682033227380015226653807651087614658711762706383680578400483738686365963602510421593957291742045894176193049874653438836800231571834961969463092292219882867915738335222683192010632827841107762906538856058045075160268363222786089834195822239079065969083132892613020925674821813969727745031512474276511678675170785228644252990222686448330769968954376645872565031503339264597037965204459941412138033765602181856811149676362998828481922536698116063579115630380986134534713999231316298320346922243301923967508656210818717135187582551777148908940367887973717297944872355129739201117734522635939937402515550809598659533602090795723846888064565922494576833402876660828505963297981891583665984889606949319430322331909615432675701672750904658872884440673242041588609544912452486960596202918091443199120302219430595141575871172939280433840587438418997209449979775719990446977797534546720039653139559577522509210149963323597053542367878538218313240366657506331605912588523676304416231791880046744235208726194392412030676943819129292165601084939373933490995064610042907658646789574214637204158644196048032620755162220116502646957438109018765396318869594926456579921339201124506851812201760319644998804092117525782363327432925050951792783530117630852089455412771606130849612130341666308701688609673489387916755221497202746338696026158036273751177355613637169755507714333019739162548392895307950999374095224533555805468792773459346717054057165208093940094230255103626711750912174631617411376280331678506102644598335740278940062871913681260779691269171600625018966572897795438965254752176520949736617236077430842554137069382466934863286086326281802007180387876677214987800158182228064958052386173483826630267963496865115589892337157997469833131297335730927481773106268791888491517118086732205933920437225472091914124462345595362155873572278449701021665085361559893080474698709803379219317144228681405095206466913748431352608956368546080315636063767839329015825390187578887150150541423982733044790102390276035351860106877045340291032661441873989687526152822045902274034048800956685020682266063416339625493638304964493215796204796508790978853566183903366486301914126969844300496823720401751205119078121743562104804386629356312354796878271823099250209553208669281864557048593741391221367431401690030069197578978703836948402788551454189081571139584544387531440171687665247273451941443053570063736208872502082670851651645765926762275305007539203724168261959538015120226826456035591411714507867794067353115652298380222629817640891277045726752943251603375558835158079953437616378559741929648201387435766285020191847827953195903991102441564951365744563911299550249810198763112549698062683440933937256076394430633504956556410253792073346980302576573531637461927243705861804435931968499864915111187441329523870735514894363781706510045483932136346818438917455984835581041567246374777988684135585607185549472576342372741331472542916243059550335497235606948095710003331522363793925274898385591669680272400573150489702413640570215531290563217394271320490560752477341461321034794183788417483380884096236883390064396547150016417896550063352917454293985382729596308009803468568586623817748855902796741338103639196841937314211864446647952892723929482161602876931514745881600092411066892199499770966520028864577326892799714627110962139834702906898610844365868312896282604591410757998880177173117044532801890032885660132172206588114031533119898357439653075750707110305156597243038989817710885425477024461203718300747201809557050261924589971891495419558429601082051058221985564449506872298586755651417978512583096325254045137677373158680800505934790703684444913139210230604228919897719525539385207482788558296673408456014230827650657335680903056592769938801526439319479837002321334085343332909940255481417190678640325466152898916298595316924198529304476375030439946586929995248436321703515349190790096438687270014162709972181774386390623080013369317218143800759130235956275559456309164099803779697452976089604856548769434149214991341960656122090903825904780482749271343636797953828088430196456766732225213168399930518230176532412143567298668845738926169310869634881907606004804025345889399310589713125838713559002180662645496521393645508191270804009139346248045210529662433189039595335038313468981889004875371975821631346925809139953768460891187255701082671554096134293244548945222900958341887247215353796281266763463610288612081327320971242391070305773491950027927550712440337847618491730447798051853809063356133064683993250492163564486356700056726224376960407589094671843326851293630275460967173281741174143900143434523328536848803898316599647496857499882476037669401801614355484879764174351220617890219391251770981779192642502525350644220899399976272593255358523121522933984464955990248480026237319806416115798006852398051595342341814060264692971664911919241848209700360920267166988570033658170014839440147716554015450945075509992978867948668595680555960348020722539827063915849364423956450177665876821679089169046953929597308988398508093707239889808206976523871352989766006229099436557875510302901767878689754546879039054053273014350659484284975960300309690888056381437362364021786792395319160194643832598476373000480729231983839044169324398586897450217298670402324760370835900303438273752546797759588485460617111515195818299067056422487543812361861079240445738363154323971749686455201034553500890649840055110319626477877952441592482371123048315879595360273589519081470878977977029385993824652880961867113224689966441698323532325281506319842922840297434502030967264888127270825819896261586620800067578304430279753550971613783328642027590013855698902415146453846071003516439737464206262617460151757138604132100690707170470065475341676602912760153852666202650626968732200867866158559213250361464886114833126511006165417351603691543723557209647571931642936313584766692965134630399733193778091241277035300640980288580216485208066094813548834197039244577610578346916649609606502946699567326715852997966484629800433510159796764064374669762474727168806448045892087212360846680441911697381102869460030129571814069815127383605239468863174058889054990001286917486211369280877707428556249440988396456935418586179077012309832907222956748050951231593329280042444580275490797240362902140715410118211112380522422032951054866010635658920467556954717111533273791488798050535499354898396025487250781092893308021955392414743777021344928825371775967778786713639427986525577913729691319481820486813430949090311183104836959314051156053134749156880556058361817670300887875026630256402481965579795222352053452032758085546260670983115690800953364389241409827307423798471392765514534376251376306510317890002038523078990187302985788135370413389777086811479499334413467611034389456202852028855516452177955001576040996103115400872554583369603728671671865012653293463019725004999729510117986996449945953115995703885547018067657004395118533726792347191875751699408617868101778181895281641149999393486303304010085235891987842070415537596863644030625157311640556741276327718176665644976629768995596847014870489785038592294974977649508382387064558071448424424706829143687290743532683812812049381522702170708495293915690029715237302876287354249198578321299729849056744392344238993228665915791932288698838374730270322441861350488048926717332193366107413815931851310656385792452824772104395794407346588683356893407234907327078910450868890479352222881314092256475386136116554738442853810800861584248105012434975169011920786813599195066148716103493980300808788749661722590378421742900989162848683741886228170930425660938491247305496871393210689321514023883273093020242082665017079298091930331064877419420525429292040612287867045933162430496031154816832919072927995047946847876096355014214976385831123907591219283150234368298681370268244212311329744615294163185308834445570333990503140616794087465912161657239228536400017973900986157176352625808914440775896225676178777434877239609762215437597436814956236755636834256650472305231457881878378813468815383561942079819014894326957874525032046414253413960801284764228322538066538531209447915760169864138883916997983546671065913991752137863751239328536043249848449527088258164673276308156456794181971022352882976189605847949878462236711855529153248113806184313500542618865307429481047520931741303551474843609817158863659506917891296392332183104845254596196789049241947084953374459455373234336001952782316570992957812800842279373104138665999422848137634819002680416780623322539346685323651384440814119493347717544681611258030174867214698450494046061327875819447065361900770143390745757652190480746301010308807485206544497194701937217436868236080715387056853580132017297573349304077453305626798707658893571854514564827882458402157665249579927802822370514321671550929976357915689722497990353400874406572618399968643838300032898978759289022131878895124723599876753980147528545538663665253916831698952473545796932953682180190383645114701929896648333449592230816616659563099876769805984866427100762784551254002304815119345404482822804423066583175047710829792526431949309105747867848959420458970831301595038253208343652539641429205030894292136822099878549152190531016411522034007123019145927369110310860497741698939530408461313789769238375889694494504394892465031789615155001823120458495716366962613120678519826047023040350194384789319559737039614525964823121153384434619671826555710299684569753833455495259869001386343650614261468616681212679604371599465192067816210088747059559430336499213888098724738936563029605441171738014209993349804694461609371540690316348288481014684392998841497433171470294475229358006318106204454727088161533627073987298138009062527833691472589787049053280047295166305203420704377302802393691173307065434636898481061594022621080117676424611421671425917244975477366371295997288364465706596172934043374148459846046631324699472243031346665670314509182279660775632589570394680064367595806556622437095002671695713374044715300541733463441465591149900129287824509930759213840213148486133782445366684716178511365057734317534769797189912705683121530009564621758839029417724924152742003050329423783829633447020079805528750164389698043013812116664854264142634215172537172031544230714826040694530952182860399025104380756885884932807037798754264384813786649992140600623976380228434282761817679235823633595522716504435979911732868099906171808692484446467257745453457775535521409480378753690992396914390471873647778972379538737754659988814763808731930664017430421650545340473087756347424436557975281967899528496852744287983952184833934667819280992318950973433573317812506176556179911101445899506769872978370562020282781188049017490469087480502168622882001518762922895777711148816656836419578512468572833151305939479984599518127110258206342539773653879704991190391916998448258948219053450758433186281336762900581266008547620126617363423823905467870049640709263853424987016021721662477981064680673039206416929090200336175810217182266764960292626381543877123423281448085918949154118702149763285356638759614879491183804783744048144556069818820037992390416049270479781229140919136725635334008709610776793353928007512764429341435197821802885709809699995423971592010079576286721171342582005168423311670908486976777025671863110667643165283387732199854570892412731922234998236500530689682553251874074766993189061292172841971105790848914903109923208009687229034269906815259459944142841873917293032138623176385783571085421283047769178324448522499101913497535274469006843671806831556425215985416163837223124171733508115025460828904358091654445300270831021905167880445347511123186536860641142966348136530398521880927415602115421031191543741401258424514153486177312073669147939960030355466798138781465062664562838441461894853178107658065433972693273483411260714010023795785426743957937729097224003550263860786953604109571763932706772990514796130210477558468171641311618802883442378676735718235110216714930563085668939650492884634800964992128038029313342080331372948320557792483149624506159629572029986133269673049115207150936752716968862479337587250459789331848525893294978377687877302223211609272230637888955297518235236966649723721456127479368450071557221836866489167072709393119818361890891968233206592949690453088773652154642861412582822966676060870142784621870765941260912502668510497714783409469310881717120723579630247741218425741951135027040310315238180395992512945509500647280254719583110688142998822834516782519488555724776955008317187792048365692929153247845174861155398222964619218221202845394599037612296503492466897839061592949177625115240436258758700464447026773465254797647266050214867820607976113100396501248080353439170448159794438466658673025805529846719828033476833844896619843708846481627588850581720784697113896072394125150515551779514448032418806333565718016245392967513354293163299853217215610022361129053004008317968356031771160728848212585959855731819091426181871859881005599852119915538336651967293235021609132388788033078170593534889245668681999436219165049856927812840251216874864436195066830980947334171099173749919989303534088199810582410177777390618983154730887086357251321925876720674434221093120083640316258064466319547897855298366329119889715759921505951150905148563371391464994208639028309268472749105109584668179024178809199883281668347889428828159199197144235346078094958329365789389224928166799160638435831181815385063738472812168297048115091419298305015541643279045034347792656276944586963214714407877225812794447766848216003209816769097563427422696013403020459826132433364388971260447014256233009124216562285508285625621201532580436985031316801459412927226774678185087885029249341233282335567432850333915359715239486233684529908845461782761784483981881810227267697699429022909901244661624554207565161931741028462625971105673908091751577249487885635557242791712066370909659715437376749933899914662123919667158327689744492404665558522346255846054943002577621926220871013675591804696203775904267266444430440436962638896836919986227011256073821134850449773036725408678977275665494599109358600329061611378002156691997609350588511320463383751419591818397494389284702682230781935314081646957846222083075929081768847698517392587596591096888477264696108560701150514132457310395603130236306869292929066909168618488747301302128363403806716891567177660525058117110159779590404971135031145543010449462353385545776339382560251049548458100637691089660945806580969212556835343698644596987769648905146183957675227864083143537068470193140141146607090107612262878884515256181128673467278081143428648764440337884779898752467165675976416866929670409575370702485768272940318916479346099929649610742125539140441759916143622377637617200785767358395411630109661806437623575794779323198909505362758514644011053447054183791898026617301107740605551254513419065761466297140575059633905955646181261485695938903839757400602931997489572005256976427474663094592114850065155247041002414066286203028635281404339351628949270407120893399876388882258006715300387863887644552846663124920571784181017632412890340688394609888290368050646997231398766584699896672711419223678408328892103170545897727808659610486661983399002602198403264058141852296900365624413955810896448771366017350672544478666769269100306071023111955538213740711297611571479957757667875323738444129822448319679224757985984812931089316443575840505809671140677470508436912403815782439754853856005592484634072789605799217090951302069480158731186435105616711875603843900227682887932344165322806318103762131593403563051423319639531651648951754645540133153682839282787635114189062909255495782510126216481643719435119365304556244518182880143996353401386489284636811147679103362799003754296867445784186995505720992863097734942626022825594310314388084300981311106962983816453270717462348801611533317056409556369674465119930366779474630851316521251473558432853504090702063699644163399449892550555860132467803100074711483786902237836172681895836370000491398595506786674640318334384296425975021469710077141433824595276148403206544046289521964051602019650920313922702042370021326135468011584691953637224432551124135300917583814014393800406376439270794561179753812595277427960740372425043366689537778448249409341384135748996606385440323952413764852507991097960201500517381929408297651703188402139780813755450296925833539518355198885112471761352619167743001351660842260912535100996817377350143394284734653253860650405100938246097284895602532883957635321364142298763154318268936177252424084586008502798115598346876560575646070899394808632210853341564203525055089082747482427466645126987542398460715144699675409220182165171116115106030659248796641259775024169355030219008414063115634492863162426139353133403047302590638935802663518945716369424405818475745871973455084685206475762095645584057585402258950215711047981009286593212813265391176907639432922590578326672515801068034458658293169547723448565274491330407961926664627205845249113516199695461918118767669704179112256691895208952439626025976511996349025558453229163238748757494336494834540939619936632188965873997986275431557634746290949465765744553301366127133326989266610984251474440935028742597374447906383396245510105765198594598576970757948177214479983357374174467835358817414046243547833432480459541731841869958837876948607433034160032080218420534858229102110040838464819256017199718539630015999360902337167712482557447356683584038178425397907526189140865059029593545950269980927286252707143426582212907093003495926637906097958541902871944916225663097033363504722659016715632262607376925677273837645019847952211722172038961708291905438059250883749176922216057143034745263344727168285600908311428702708843744469686522458496093465950083638404383763422884888427987326681402064099316189683979792722861289883360239895535250416326793550215101585506519878857279775653643996644187291062684141756789468795146584476180824206924808605230869108155213878545545996318915911478160698554323974878005529215553326205632454255905631064070634220060221105486648537900128134920766889913062417048765253327938042675505974030520003775873973916706067789117178959304348923045442535428068605201907052609057190613359085361126959405424740556414610942910103619524051965974449820097746767044730338254205869763620668362430871608832779012747918652987802984566893431072071050384695944465178796479951573287658003730825533855202684769992860942540888657349308287475881543462545358632814067561547877171032710411509423285063192751825474830624899195581375423042343759023531444138344986732580029157723198677462097183149363713550469745180066280502326177443607888835223354960461423029552577619869732966266397046408095705812506159369778290042343602550723576641070460140101982120499809787524869540793483792966995829675513893457776933749188656370532176545985318769468036032159847016793028852490257484006930482006153857439927501316473271131419548742907446120373567257991232218647274728831986096965456898090697377244684713160555847310678041532391992745036052789610096671519598077891341809913376365265834384744020020133890063989964756414999918312770394554233692680002824394949089029662710017279068277320049733720084719019774293888121558789498792017834095624839839976880390951754363718116377369669270905352753780321319690308548201161925416027214351985629158318827673027323462640312214572243845594140315531878397393455177637482001560758971162424350536350683229562875136999962436130013781824253512388457906453345206832536081559078503719562170092428527027846123837860847579876563453275990087790930237837475160251581792879794983534169704140462122406146481274303396322834984611902475850876918410291428472877866208012193351613534759721130328885171062949397701715604659512004778578661264496785354421909748290702935043600919634725856439255361192474338249955313229453539388159188219935682477360420177618480866540598395286508439164370942389034613372513053729504571143304219697376913125841073618984634653195110547273357460952707051176049807166155432776238089582093071056478913075652875621059637043940220921705255525965994468903578539819327666517136027287104194752504218231656490060602219161398316155837976394223722642099021960079662871005016214791797999763497909702200361033856873346783821516931270614243164151961125243920602841243735340477021690373332904878471775355597519246316795545743176108626217260867578718624805955499608108879680068408420879650692103159476260623351551477792916855669154952837345981408594971868001742334936681183709595299415771273765127846628498223543474283635034069315120409321223311937351145324823246123423690914166658430901630754010480384585434069719243496602984176726309354192365682614525116297846170329953399102509649598746523911918286800779859610771224605519487408105758346610236666675154558515679659402061693476173427752814512628230429107431626744526211751140541708201608239677527641337207372529338653529974139007050938788075966276970213694536721724175938202016427089837456604112002904657845056398908475573915297872836564196235130501846691994569813323502464248985059103971557115384660744783421160666094446968140542341658577705164422685626803709003246940370199050455128885463217887865778209693218397080171192008576017114750070326739407467210286331370560718247810439910917480891583033237198344130904984858690999557207024113748395451805869787812519404624801342976027019106511269474096908190973586307158913173527086670041575477175048523150452439024873151833847154345591385294915726494952543516271228219944737293156689990384924583979563352521215409823887615548981612164294705396023847306581759939181472671699619754577518868034751694589166680170694700417830462137658758994992111061790448541238776809402845604375425118725265586454958433042917266497950233570853855847770107484657880928214624760707631893057774413487298635533597208175482574317800401908077129757983710909612608362058761486936742354740311486410486962017294634187616335573404813480858562520669085044653133631891615843458396620589418393425554942441422650633135214219472074258080496308721889377054232933148089583901533418999625602630043172087123132303114034307283126980982695343872010517299643501403061660952602558525940331565376996999190334882927560852828624012514706195635384084706399790362526878257960670230504342552937234203700267314171415471312402847974060749830269739441668499583364812630895843444137452190097864742417153246454574637838465853208634516332358045576935748877339955180987329096932172185994762356979509123123437206178489429873053662064844184381739582668881903915064997301203162252417722503511470652150158642205466170172633405531082477626789598370335058042068922280237500995761941238135251545350745495725318484751986599168839583467503590570925533441044698318535724396219328043594389664086369516388819063836063162889663579797492558803460759241255983177097449527274800238471145239938533817831248435573126149703637386961452953435920606377116164431755467555771051234642109903596527095111128005524258406443554158238093481744863062714351706407728740458094687325626356018932739434683486240396349658693138993670552714241742553190007670951726409650303473744986230470077996305447569633060572107193148215643995152900582076426183214368964957974359657686252084246854618956350485098067664931812644845148322864030137562692269743574697168614425996681299049332787647505247557607896835374111681369023000810578110913370412972931523512465409008658345378531716863576983349283279638251280495056261544979089271550788004790295009109655804390836871929365967364055593452994234947636629130079600736996976685388558729609295360197302539844778096222501690006553512980308269586325697899689725921475643153221623771625463775094543125175207752727073670860072158785859653817820409303316185183463582888297148260758418945727228269067435287798747439610877468435727654275229860459143038348411818308414529763870058463002337540284701829516120599727310373638437247375595067481108962403678431682419603790979352733255427442348157135917349042703876824454501784054550459929882728796768677010812639465895413547079894077471493769592336844798764500109288488625191665161642295187484658195816042087256798654084342427623281713233276424971104715514964482667096877250814599804926699716334298558355096863209254843932654410941650389059623013804612377237174101022180956263736554002542415462687487941598789235831298358960395463026790221323656035422332925882329285377353694892886338406828946690781845278784476214255986032025286811045561148065292004783973090708087636540446400873656384573947691772703722372032834435014796080296492498691383005839179099875515387190151176942639905172377198238365064537742669749942239380545007141817948304339041598543054536585840349465579390222190371401839722895896684771385702011697209163605641006203706072834252671546477153380457291333848047963302616480617387135285965856995867277655115180995913224758730598293838451053141008796172940905373155374431346140856754492018857570707781244399949852230582742011913485382885012072831930700832597758753087411042264998077842654272342453630715088915282631721615409121369140703988475369636523026043061813462834362771620568444015610574575074811215691836678926677128025603021414478856170052511453767972319761089654081539487873037813631133265003417169432082107886108664471497915604021401732791242958869046596363263911853412507092419131297571821250842390081677247242245664703623646566884961152436348015909036856332292072293172271236697651014206704251740412223290752913100876932145486642513681260934158741144881984652770067269803297974825429047802081577762986832294647916857170506548689789872733553838668912858806176417194898899828903794999737907967335763893514692618253060838740782069085064485144882394756086589347287895858789336225404731693500666469867452904203980451431335280914942624986903612231138418220595776745298509184106292896304102023923487909901649171089336501935982228068499298495791054222271083856065872949804390828555176452140542351215690206639004871970185446473358327727382030666772040502023728131052027877745911486535470763265068733819057073559737736560604747353364551453592361407108715297549904693359767123568977248042934380657463881977214431633916619808668080086555906582345398774346478859666418645313612687249927786906991369526870252630506636264908913088091325310994757194103717665131593418238719187258350475013503789843745089028026646943528632437866688314893599497871545784716007519533748869946511421904148176114974244640992407905002150544436790777946158160397291721617531492988026149484064429945325525002040138774277535818896695769697649979388954326372065952499411804279042201402865727112099512110247565418130719698505582494663230628486895072879571025455693405280165199731904620136081033499152811490822160704819941852941053190667329081237431067109367037694788789493390608209826056996072038738767062720430375440535336876515878875944655977640633872788752101248521194248426972666953397912338456994169832028918686343345433131956483690378799604526822184712320177267720048371167835822827587158548372956376218664518036903326289987699662331560324229050546834812356854379289193858100338423394247263608505642768575828814567477139827712112721746196516325282202786326410147136497285430131037573097168532942172070398185307184302735697367760655912178904403399960160485663401675645523102313252496700885132106830641969292737500076202176282353476617910454379185441875510131677144711146906135878663005042079618829720195046933796852174280680177240426432259386793924244514535545282617883225725902511819058664147494946452882889623759140900663683021529359373135282602070739491822774608408517123601139606590566475128842307227517143901032408742128113188682590496102016069732548540496677658972828851082134687820775983241150198605749023402253899578483937708070414259884390011050509938972335907002211054418453201581369176748422543909504678650533199053686000894059688811330377440652635654686333367168516108128740117914368140239023783692007384169132603127429449194045062164702300611293248395850557482266352832852978088313551200014151345075746445086476601665957056014738471868204213351855071472388900914232054918376502581785670273718832860119690310745877550083524228329423404992630087911014587524160703634126404496067961749252348878619547609108296320053848112269215642590903435874332073299725808044215900916518040264032340677710456225759735743233345473733757011868653297870244756889370948299280345467844396949960881637740672820903236795012452234667063859000426775684889431849745587841820824792290049319912006080074929546068600484898944568027665313023255234252860025266342961555943191950655053888598720956408256472441713438102415666021242469355013953964021124015773683006960164892566191915711948042455969891694855969211788610888437263325692168902825819488657519674425885813785717210165271990655661408789422594907865806417133033731871496256372706982671895385208816943035393131949035330994029541674691422886924411437346593242390819379166389797638988056027698814744452959340468965839520159417932867157151970994006914445826831245052035908278817208692322313217161893853786849458333211734693177536697266881359969659659786536440712763769612781897153615095246056311294193320215366894388970583842749779043521793910346504516977608951744804036642164710409251161644537976274272565935495469740863236694447299796269019419013848923356585928801119931317505942481919895321822739435409445525289906772816754970247929631759791010872212972543233221800903754337753885812029010818561843441095002594707961055534082564344939340463145465175499108376061746355126426413607710916639464183608930581963073451270343023747884986457588101416328863079995834470526939684461916431843760084745150835412516789777797418273595454261667651759460836155244679480616415098582372967412792279093449211082731519519848513657974691365494118555611463131638140654672110754825784457025715228128082773323244520992144920830659218615401850213813390636913502391532082719402866495172614779557965407215099897745162714935715607302134359162468947601800008383460672693528918625008645599686486040316651074028801620854635329987120033166138309381252688562654789084252965111392661590090089131781233873128353606142441273580011713334645127691187089537631362333519614473116714073460229277833186605092609118691639205992310602027425086328061277233776603379283146625820441850834117527829776847768897752997726046871782968261373076531035097190742835568302430560396694908749364624827331606562677165952254580269186142860471379367090469136212829282699653613401934355417020549240506896497562420325872769858743457391289269320398743949856081439241799616905567964827501706554623760839231326477031770032848265916857998782051316563013854120979547681428937625811124466402945013414607405721378212168443966483128398003130758465918832058686736691570462854587902206007911223825417796193077667419400256376366280316927550082113836117739076379970087038555547403061407211802020154774587220494623967318941310810980327931117376237031157456883946573130153324224716663131767516366067996973555883878589377586471147934495076128996991979898840084983274382614120137124258324321317628529424853299508819774310556976993643184704957419464449212803682365462066212259168653619589558682444435192813217271931582421088300176674967781130698085474605668845029127345383910065116567719908398585721155138119978869771305903706799442505101155614988761730204824062790872088306583440081586194229198570589603796933128784902462874595893119535865826219312239323138562734639162730290129668780473025909876509552997572081146004104967517708101023662097196703543015199511019580418197361935924329878196094911033898034176727705755176863509289826292252977585179681800722010630981912322195637446724039247440207169701173406717882695149641273954618127570700146158215783479316879082989633314987995354003248578257437477721682947034025148012111749220855992149978895880101846624657965590707588122152150489306125329710691351009669202148600415026492674700972684425920639857094851018617485301484253208496494280463134302971981271396336062058215829599185985130333450101452735637615166327785780875624061840313655487459563371672848682553111132663895395150745174596824994500358878941184753461298417892544961738907628574665324573871709579433604499016249336138893917669482565044590870718468616866271934995167535594328470653773264059250923569841358215513779422541825890718209677005948551513969637896870818021715855041064784766261792976960560414770253249313381893066386660467177657222037242413804809357389743251648909346739519164848018291375807954524756399475820604145564016831074128243896286492130686798220563200397582884013640739912839089435770216935814803890279123852728563226054024474598791042757052809650894640930510444635481835374874876022505092052314395151426439814511503290061302402960818755037110397652697054819518274025719745006102985047921476036687944577069298538566896637238634642079439094150844689875366279158255408770601084508051119189371028137704612687615834540587247533625484576028584816614893384056055638302887709413326314072092250115331894670102508670684392531091002654007951752294197623823601240030843856464719967516041710835220763476511653280674919252617470683887570442519169272449928857816129207235802531927229738149059431562775468972360969710501441615582892594387068199190973812606119875300754438697730480086627151801788096999239226499576317341809515439693026865213624745322858662238887890679837405493718875148516488918436116102425307500325552342623679895541996354091721298509317113780719489080553366139830496401471204995537654813707514794881447254719315738361378884705616962045863181529998404087094081322117693544508539322597697015380161358234466769879921194871085474170533047455186067347955407338094848513642613841407091878746692069867212893575770892626375494344967940530014480244816933434215905770529098168636002993680802586873835130413606044091649151730560261843660814440018364098524974171954741215103427066914698555371820192677263926478820351975591238243080174526091068555527965203736719866953241036621000122084193390323729833479830762286353477515245670507075107718054929962041062053012853757095887606481385241525442066414384908292338468102059834186500821986580400931643764009024670607966967297856637562058412190096358673152819513186193089695935353147630116955740494589756054032260743095464584675232649704982462872607711477750784200572922775300323386899579866616031434470139230711242882006801561884651694311874519258372799920615077927296132986092179836529848688058366925096980999714607728606400501198842219586182454740182975198524039683248600207504324733437980559461912393656029171695354214647886165437955108711835791117964213868344124098358925692584985540767735142308373065064314970219335962904795821717959620380923415402971702656011942092576126651293595246029397134169006185848670946201844437296413163155176645595179237917445054867860210764564551584861994999007133429018853381512342169561496265114125311342431356487029022154159032339943439857446587380386017224465117553118090440000427379050459610691749644982579714087782387916964406578423023476948143973715242855333788084142315109351546763358701456956957761682949116335500325946752363656809500317723443320982804447199908421573676555279295064737728474315109772005599755632606894808917438367694494203395823872533637869029919772473648614216185353842324731277346327249694619167768434292124328050929701618005754301644973065176826930118534504183036101427489185825665401762299910023045477288599991585508254464284738380433703595998362846384296451184559669616467441148744979200879585736482752687009780096915075868237346678403271392124444617604214961791826967178483259124484578134481589062828241715634938759264824320373956091929756627928079384029994227549671850544214467652759231552412302090919638333894311496426980085539857205170410989459820189715970006269831484309055484099682760032177235743793884984984347425834021404765996823613444983512016459760180400473462367734918884290476203827702750830461440120062251702102610982799372718967368871477676068512683551420609294786829244172076035774319779051804898088107862818966928174277998936249996562569674123465162212589829913799485521598282905518806677975963887387502807401232960383988708425306584699866550572214678353266134290359486311633705680378053883958251536978442902896399364131930137333703457619651816680665936418836365235596998426513866538253254993015373005374161614170986976168952024150986785848476903268589598334680971757493421257466719378406912149153130169869928563529001772036006416461330915944344072879291094696125190193498085488953583611640001474370322765627673591165589629048063081119232911846830225267803221814303711297460173581085203201072335418514045749800882917495067147381422996702561616019802845984674605770046232233493614451095845377365532012678315479342635260805649772305284058498091086155034974789076591596728438836915568624213092405299861560090361613333981564834724851160898539496395063844770641158432508311293732760986987520303623203404161793015808519552399736754711547365456650631413972964429691109111513814664268829260149878437691030831069125153873997215441970776945307741783307427247230777880593212121905897476413608837708655935669670682103234890144222246716601436745805340380275073460105697592948519744682240509677560790737368184111178936940738093298131359587565076659972436656077621342560952284870627617392173798713420872699372796181133014976547323567744823212663149527811254396031099306121172278002032934086687764739381012186524259993598620919919162991215057905238674291831339962245151743490219866170391529333922596689012674041798851512111935146505421888981282742700954302937119617108038527310732478372180821383210180123576326878085147797551707451195413868243049274098864589365070115825176081658783259552957347966419567226202105524060541149757418089558155716109942673684125154963904893465745406530022302807571327951641499171175514591865322776196700064424367664271501793747070220268707762711271592866937830915369369192583129018738963475792075506143079590869365147426228585832155709905546298708607893028261901172827513493982022961515363521095961996186652511776256952386462423180253646348352376386304590206205912290713906185982489319898259826644491138131804657531010208012239240460368370322990535656675921736326884117412151297582376226122295853143777271912643598392622422513993095743330264324696476067345878226246233297281497711889506365060592813843267468344110987387915830526164135734206360547009430988019864901874792882803487402013249889865878926360487068245575260935381972432541629633169626325121749922217838901522618060758955285274547612257178300486536521712084369440145740778739149272839022221556253958375533103924597405433553978071794806723772523557908611670753325714013141487240859615662211795697525775785084995658236200225664107538307693814564912760090119668236310137652235465605159768137506559892698392970574498029964802488989726670805857817267333407850092989334797818589783388106807435680734463452510373872260531361361682469612377503810148821708876750513311099474774955328460411826350351757277794303218676981795946097825154391308664501113532242007011820117983084234992891969091962309121226023185395821935332999525834619950888179483341355283264695950903849412515119147425705681858489145121108713184631417378108665669289331092219750556909050556207237393115101221710130548691915754324912079336818355575455333395908389597462557478283568233048495615236433782296428805500531442946498833768075669456685259033983354219209124109905462161377405197378543413621691821719662439425941959954926606631104237341403520081139806026681235102673793772768387282714500345005861908349487165840939808391193202653639345070396936910769574459223352009193880935879977291096136829771754479455820631584076311165604790922335834912030711400760570599919382132073422610935664075540429791278052854171344724377626960562471990155650507110114761199562732560872151236336838221971379784433949836256684506701964700732317619555260528375835023620043210929541282865897362571813384673739235735825624728400952000842208178183576482591878951076896804432372572387413170916784350876197930884861422405000065460367488751621565289073761569314162511192710866821702849515510082738895397042094303319659091650332523657866510215709088080922305775870902468074064400133337936470348159148260761370567146815486272379568663077674878658737872731335770187051882834456120446843178291342118133710873685900522455938499253300183564907718637303542031296407810899423460348285748233648902478717906229347220374898451884183492892090977318779438857305452373182653155207182579759479995014281788979625351584709281250061366423504430075789874378469154466517622911814464017095022028432682646601587181501719465235656872368924658748446413925748934775434630550445051517629257798650083778428884317938080393827798359507492897178925661331243669317874968960700125614353135799562450151717646676707239274552065823808539197442293416250311263204143074492891275870913848039833100945575253041579666111178081756306338749132534753571340859913965280387428028883383149087015384828408010166641632317663620662823031549370464256414067362601547540765830687877286371854851393802447022811865692271643069953579007501301903295208591386686707506123376748341905471692605587407072311221023585586032544458835964749412291350531454530750339285103200750819056829099570290561575098549771589603696415946113305383350343304944463320063461784954523676323761220886119304573366096211466936867006776424579874483440351805791530642620639952507183358430176529281629749431977690038897427662318211467958121455623907001490967760080143678343591573169070736321850683463547359124206829360129885014266232753739063191209778764636553008034295507669139727710158799502521492821792613343289396979358543895172516715618828504783157464424610613706328429348213047315459395838877182298938903106756908701222669612714683931678269390960397694063447122004423009901077735637702420903733580506354856142312035399939306866452289449626182151085316968700505522194033959580397736272023272070367865996257659812267742157835396667329462886109130104165191308191723141634936377884048409570141248699650574294493898927631281920833988884525545793999422814990627039558272894895851479219173601394641711903623376015306373166729417622216417882424682214789361140455233402439973197892469692667391135174361307538191374076812972357562197706211014348286116820482862991629107885887271777204621588955005261355704502977143012259784661456818715274267531568483761855880353088757238949776715804168439874618483755057334764645949814674987766587516296167480550927874300600935405995365390675442984763523188431928268902633158117136688911727418340114772714443004914102008727865760790034797007897372142769430149355027173047866174132922647785304879281246432852844311966152797484052216247078459618903748610851088172531482099149026402667064271011934635376138159010120089118632009202210600940741639701871557705251785053267855197920562321267980674237028307836741306796520351860774668799204182903205561442245872198611751297034780476208674238540770378196572302187232049181624258469047500385326306741609368087164541401150010318415848156768751457936355068835823953865058298110196535316004307403443020485119097087559329662297336535069956859946569072055856930263175533975329807450811482627288939500409794445826266727436673886031708792735673887501887943902320321102803491842239354111041685077463582275714051329158543798456498610408684256354013063396320182189642419753963959228385558933169580689552599914309594517638020865345929511185958956909577849288226138230495372997325464975466247420759238953821187520411449666814394598608850072008974829674193252741564833714434321291423052249122473723231360107641210583223047703256503838053097861913113374402696835572622325837494576821393922559697084711737582490138812908663721198450402371999935711432557295093464314042995466121724328146745218062343406845819990524877386133202839511030947100380477929894042954964757675546588762127223861142949704419502690572220803577141711567050688982868787223952954861833477786940683420843386423912183262378876445257651057511841309965887058610795486146798491376615429043447649070549668741102312735562857158943020838117370558474370308811766973190478984096655754495199197509276741588993266829919875276852843587569022847204545636043095243580099015932405382833038689466617399181685841277648005884780969269164605670396271648103415487617155429617725310020765236123051727940776068362218528461407745002425677947259620421293356492680799817178491277039855333701622751000653370014073417805782088725627539334878734270550084970051773433077351871880636746185962101290596612302378741993884063945068389591347030938813756996854087946684391814473530092179156507571765820842287367058041186535188242638985233500191064969707123291784664528570194681790445684257596537752813935834331511941477741003377925315667583601461374917614887714110166698231055959023969546213492835089174089258883424951245452927868822407854755693812969758205828788838361903266343413535611008312129783564185248551208679757914876524596836102871304028229449725314264225022471318482991653991768607697433577794670090342377868981881797756744446114851477971907679640430537740320748966829085849880437208948462419938867488325718687282704623005745359441302266682977891333978699702906074994443075343420075392295327677939388899976412735781848443068983465896532155111572805746689861275629680098536475836409125064608320599873357779995323910616707062661768900027085550605333207989327881813510388020498613305346009128929384908416227787537375009378719846994796052232470607871706356315301415415690380216500773787507196736333915862490456566951413728795568485683695082591972091795415724993295239181890353526846220048049976479161331174845913735035427304062523494751011857245387448462345148115446948265244315631957744537536640695733954525005089699121190059064146973694838834452132449148947781089764298258111182344300865835834271009750776292596648745487478509544118296565592736801653664995258659663051705199174952927844562506768664120838354618737046325363446982920481455267855004424755908615611762305743557508232542837357618909360638277038669670023906407498593347855329497999270399384446440711110860782612976109652371024034858957776735201394817081636614737282594425813873511966426943781722213004187033370280052025954684136237353387299626719936756557198268251059960928217054011428187615095391656344979890187253899563164095706131764016197967989253166510971457393642824956933196434839535411766408460201973013984292743202154972233704539139595265663641779796986708957638376717406334524177890347618869312233684621830777147194277704161692187478427385416943220938827593152944125570543418303217763750454565672234978190021075255643580317467928875838675006471638754593290991476841847188169407272701292294662512588485918713178710395906246460581653250167915515902565325139428005856288963812925228582067572783858165119366887775900864752450620649523638581747341268115153725874744779212284348803413549325380443571073188467762046016333044745634814227148208068625282244360505117481040929953161470496953016469225147000627261969993792254392692266435516909218347470838175309849502272309668989446849451845699467100506088382863286122651493558268944004617890311116535630962017006946367717198239756005859563671569420668934183400336596371593172962099896124097753548038564389550408906924670444362255889129109551708725546021909854565334337377287348914455923898583431365651513967484152851266258470381902577756654134039303293584465984162384326129037524393412705932469768565320522336559714261214808883425108913871608793201068851775084712206723976507794041716532082330663887689962026966499807374164000018814704641993132216174260962207651340471465314743189565183286005069293133358036460045538837362821933480294886870426865612077789567805013867495138728561465480342160376122262447596745434441148822581810564338816906986049451597348180537949350940713231974344902017982849478073554320403833020250698422950923127843317717739369701153984559154813218457572595823813354778164959806731619830789268320418452296931539181310470001587021590157179832136007603760320213295442378560423705507754679385906812955765475468184268934202142837074622591487316969032837457974418091015939447360946982721988046323826327751799396513334300715722141348408278176741635480196300645068233392543931593621660841300286748955887715656078026257801394853133506381176332888645675408059351019962742221977116494332882510984124120152695667707881108415904192990533937260852671747448007584900840441639451124429743924831775436666835688722425235493753899693902258755686183444055961242944080603902892338438300546050244674104117658837418766273565105998251658496682287366127492192912678436464205519070706684072228419441297117801959290326509821546051451153911087881587542034858773573015796118619627864701932731852516511658154163873682880873782494973390605823956513696671140368878446109426781917784845215934441278233401524885716676294712161078974671334617719408734660307362834243484703453252014092112671480926871886087532088858926068605992877605744076628712357590373763644365872644562997250388808568658561779549658223238883322149240642556283625636761283184190601510148333539401449216179156820046229766168203474267948360444964672009454113444297031058402346728851069221326894121324726979618358219252094539227032426476867846691136507188608300459206070463181218957717485875404506163310311787105056971886232688745242233885998409351241005537855195601388066198395434077021113943898631890667928378197587172834116538233095897380922487686081174611845054173121276757987677279138896494739227035607793764506588316184126013526772523576588477743652355593574067761617355942321190117560439508861659440599059258988428578666395423366189017704372960309615686790161881398871399230468072674249434728400009216943053718793395339518563997532146046314833277606641349162941640907846766284217612950202794886276254584147370832813653486690654688139112568364984320844092254603248446563028612412262275410025938631248478834106669721071952529581163676033502877852987411743486005619990381818344727419201402417832363655853056962676390964126373164114543011971975583470296552998779615758350801184796388939353491247671952526406195012528826874596575594496466469989673260487081651158975488338368740050873352621814757264179965715618383217711052144512474107278772512453651428145444861931751649552246400898717883914187418288009342863549680716952195769666398813848721369362293106737416685393693792832351398830510079623650407044225523764747096740369345825934349999958724094993688421008902399092523162866386940981856293887707402924421109616723871697748962977653203432609792649533087221708353256136389182181944995575860949525875454205885051245198873390297379247367064725880916713950963375328369568102147989851136795153335594664028597665306566939485880322688723511870614370281861745960437146643511871213385225353658513360258684077626542389569538950150387039921654576466081420817048376073102719482583359511602870239453391478841770318597395483769734256911102590912699493661318799999111504338472745667672818635790623917099944276682777059928870142512857782022470368961348621275913385072709349148853878273317544408587344916705980296334049975981719932184160033493880420286445270851775278389887863730721140472074075179907355609521208005195561603259135114107530391613019485833507974744554126002725921189160038869241060594183312879903001971588033811004549075397014597428487651256172087045668966043952968211806020845712067838393490262601832016599750066032964577923410209537863017749990185033433717715586005020098479782152485067317599157326760994335652624394453590311432658763018929985230810527034848362911402803050477745739237873905431636168499403901899018369447453073908748644547863756636222032183010866120306146265010531299417431884981674393252760302057113007021081036031132543499488236501003148187431121124030339991083258518933135064259669928946395857041079283884878150477817535116414335978991153100449353401014795923033641618939489726441241935151576290169425046635431412286364990951614316934763005091546355129699844073379553819722503791043405358994210976527159362009724352444204009718291405089478989779875060766428206571416782859995558183065048108514679143022230990947854822718206618336794161831331922566990828504200644073428641231961876910527240467284333076887923888370865539273598631600257333580973039115976934575811604189722550651953653615113033351686783287756274052808657604781277996138580224268125956192879397129430727038830453185636269332569578132541682816713986704581876650689922325383471856136400591637259049440429792299072041770255441154982992159632785452546282027708757204180719465242067074256715622508081723076928256795159337405227010877028956779738248344682508414141398026470078827321207529577682124354270541281710518368807202133323872349226049213621551663512628868977773551103170630489407210638545241140817479306908864640183398436703705583670855424917700207772678321515349043766644779643748049894905703137864490296588297800533853737324508775177745109074917315707747580745841709673999777893877937024824143506801862357038314978219314830482284284193679825452247770751511763825398113117724801034983302042184547177202589452785220353945446854573274096475106573919344066690487774028114449812111611745293421454796999887724981192575948709858305227596138589350059628595576992344941844884880008455422497749327125274775125296328744872417123614270936638209611422186902256434671921958877723408654855792244433945834141540735833225212521734499144812870498782895344639143956544283206220105574371503236896163792047396881275830487103596595583676957685499238445520378349050575797222005113425934184785067895219000918679196746770003600078890275807319053524270482822104128795930217015059610184035253021054462831602487366387479962597790122577338824970953253781701498864479988852890469211201760711125131272825945216006318841631920702813284697807390438074723551474942648747713848106639777150570707624917066678599553083366285974332908754795204896507408508162063229984898715286044148650110047268492934319296826501401224843881749376079923191718126663574398459063007003220818346782743098153056897639945919174910961435264171567567765953766076836977263957557573285285902524707854220425443004196614041757854006448541227901115822854636785383868966568983684191908730609926709161781466835635833453602635818026304479052571287632406847639358832748772123218066839790536379283399663972885741507184790561666346560582636444146219954942754171004357164798694785105446609953627815043887591418628182048162319312901523886717743101784267067539266431661312860658287693951050323763644917328656881666732089540789709538448198706592975641151365294541616095711104096855425558852458357742200610038703970327900045570942747247365224357874950022319848293073532840747321277264631168974147346441928790657299081660536079872231285377579806083210052894696607357047657979454108206246958643528970406206744433831034264976569631148781266125998562559077678373815280401289806944108257371469349257284807791214445579276084256151523387319570295781650235503528039038619837733587127754236077107927837483728292115478334382364445862142830863168451125261307852925773238301277051898044684585411619233451506153037748936889354147877258321454411228115420397426104195639277407792477746777909219299621799910439847056006836244340665287676822713237626577701182391057473130733518092855237733873709441073014662963910038678597029676036685012251731284275959034764072936874282662907560601028407710589428146153622045948830303359715770678259043182541621256775588885116087355864213023570271173654291567080135491750089004243315868005483937796713947344954282736238136960167255462960954918382070827424130210453717308694108027341602347632662832518474939321357437596570572441546339129396112710982605082127402971964741679503471338616055216577793782167283885023282622287874714112049570972290629588259432911423878863394368680329321036362453718210337349752582651846666060703349269640262011928584247716583236494095650603342729539328393965954892561603740073124093561065364823239569723804867124316099903214900819666074392822949220658263138089480261687400746973546607274774166150085830660070433942759033218329392388092207922215169618478474278527056019010960603078956862193111909722547002092756341506027324555196364095291865621772912398809901951960444777329002481497384857971250809334243534836307010744433243831626078729323922898218346192505713055472700772962566573935591643409379269875871900357453862579987321172876341092917069677650837832339252087517789834033015338893474427326341728594307165776864427356757547202788458437941886092254028341353267154482280865351469914809055458751297286388753347292099134796442000749326690725856435301232897971161709873215845818909679471884676360162954034900690625920021955818032665475667271467646702257809626961097317295644396285598111717537627060310500689947667553259960567615978732337896888166114326563182031060826117225862661154734546654571909657555310132867238619839524319960781595514307856777706378551713900604478564449430320582519755712246787995348612761357933964290577456095366494596481579576471680719717464096236058227146782315406375303953019785616517487124897899054226047718884567370779980987742546545838572075424605388303351113160787253995203817158928912930979527842119917358476218531185465683995274223558224777747463340476434702655076116571967238601543135103959426576939769984689029148059396394983756263024386579561706769456789528379891350727451342724223117852727109292520297732855699088226198802790893865139816857239954516490340649312223362882268395071405827907711905465407735753104513609322454638343886229450131232875826399520820089142789047113099490386835167468400488704077143418471404336831593786094221018333829586920687213978493712729456312657465714811491287998906805072983950052025268638449267349841393303978495301734599162268841208182786422811184898414615444124415916527776293326226406463705513089129490018908694680919124403286775116221628910701022942597756160970217582372492236129567225466973668878815541781620621280741032225513046749207602540824709611464017081864656005177653984838449597020380922544495200652290894123449039103076560740095192782572958709833623301934771369237303957957641669066688873014659127259623977958440533134932549288107332243742414736288614028482997355078548229580503775848900940040128154401289346007508771680984448769289828742558825019051693756203118691360066938799871139347817029181103770989440848412464949074024830122110564576376331875155970815079350620337217586850774463356568179294376617717440198485123752193411204031636991335607841054400882836998174599663131864676795665439894319250234767574074987118321256278717446581659227043642349641679491230757417848769547475197796214769411583080820349018269698906777434070895257595098998777813428534374628007355153393496699533816778021945930727730450669755542672152818673408571269389389123399073271229591655241868694419100491379279130320423517733524212711291970508192715349794852486310470335305746127143662311405139145995546088502702855867166291826113330620448281149894579910801502198326785500715758076884253716444740056472563127993459511218933989705454408056011483183700969890330801528631745915607961203648228453559272057601850336483938275189172262595335265306356906373213669511007650853649915849611121095284450714381430674516627187247367959684567440997146230764312175402987279887131827802183728332262261993183792259242084563899908510991930034254319329898903818611387046401205689204066352817490867795175704638527020263733853011136668451591203768460831309707153311215984702119958529807862712812634050306502055717287467407644742476024428197934058931937907461567142709323736108309894164169681700094887675066998407876863830382146566235650232711645123102122040265180616377612650138319759409800287921003837417983473898311566047849886834542639747319025006598582625677351876289951537100077574868225664026585469564607800659182591232517555998212894441444835049791620965689263046218395269183331480952548386505568564688558654154700894014835413997869631531733886515009661536486708952989235003529919385404302967597318535291825122842491932479826484673184505052871871580001359585858901147928869566391560583922067214371501967458756334259301905918833547642899981349475099779819971358428928275263123275681113761493227725562103388738672579258928801922762020130312731116565106078590046551625173807422101506588114119467574328240631863266917511339968053500273007314623569179673014412405066966184829232865590618095391670820332276662607697985254936255437823934975232768236499794069744744027983104520681202202969601809035427107481165247850261902026719838332777997460578978457028897941495935802177119741214496114042871510770042831265870256386435491816719882917572008191425315392264104149763509586493138448582511396304250964597676710977108217197528998712239884315435530875526717967935111918152212317254387904682691457582950790482915469279002072364264438664541040472509109796627550778870493368768447146872727454188844513841473123216944196026559250862601570140203909410346066993751650756168573379728563404933851319228113042835439753301874195827689254772046399438772202500430550497787017351818204275319474735310007405429279364660451781131065971443077402111890630258018279298228538907885454284130927640774765583281328894318616418684280136983940792863572007647709770290069246347761557269240900276023606513071891297547271467217020504821034279682608073475638767009883931767652187403030142193094660597234931031950340472101881759055231408039261175834939485808202694080846561191685057964442227434627712627790041090353540770476207343225610593211274756428154677082096124864618142540112195030335157443046755385415226762494867851131213313609722367903104256538589804204131139062148698838450794617034396504744603326632479982433685979591244851608731710423702649281488697050511725853081655994257108772110231894699277181068637587238531489981276805227788914655196710063240466440808753820308267418311407527364332612759418661262974576892678997258905383294592006789468082438283461288241617721078266931616270087087648882859062194799139535602156375105723551458130972767388012761433028601358771246122682259985511456409048694439817639212774202180676590383709475388365853485457507248127811127914973258968711280201286322946129898675534545776710397825798600028545455184974686107354816606829354282960289946609780021408239811943007876857226827656037917261400781926593837400640014230843793085547377413501955499293808383764912970341469894281657038151654362938037759122951506365302574962288664254848399346615083000825598934268398683835770366697704601540726797661975124186382519857029129505235413020005375467476493290894736464355323720630774888714560191115793279626651926742120230350457315527006996253166937014026594185071230296375373156191082251918772531997099578686698481811359702488571427723491854798147585441695422298224905084111514725138266795348674783512270268570427209580017200523792420908918079011922742836147552018326225593431555576700126815338570188519569789357655177216311255330675066025444535724722377948637990214481411445727027058592044899807077185450843059115078744244406089016267293033923004411259938646364889250492290374195651402620272272846636435116329272714903154239809239522931043194879593261350410997599629070608340117462839212153300588300674198921496310926060521090579720236563854306377992818423237766720485049184371205981042545678014643186010184168794819998860347889975672984869889837775047648958237876611005692728132741033936516902576377059509313107659628170401696865082675414031047411338925288756885612305783165497506935081504741277578185827721428457555550020590171370383221928251312692155981101718991991615365328270998363386297272179034426574925228569361005863452592583693654602619221429026781750166277423341576828036706098421527945341594532362023127001983729078167045792254102988400459005715764238297569701359565606746070729156674551894091883920108221147429064755544340140808903983290251766928661263516646171267566925338797698540671603849488681869131336650963950286219086090813932581197259939831995843762045947833180035654096120706028801891882218186352404988112850164200576587540202957347295382361055726756964997453065843186913925464969613179788137819351933328224897948072487584544065023918390013324148711176497906868148076194720285316362216266325550842117256828637383951692223862512540067462709784747219082893459597695655784131572367397627640258705953918840771702413067149783683696999871347152464555044679285018983679251905851356406246156011008744996163308849424244250570397229710266177527321287946053705272430306214314696181621506021451243571999102998313041470937499006559504580100869534207730900088092937562098778255026765577352121955876188548144300312458964556876357819928025117905474078890444195253377075573525605817002273247234113104882087910371635634485461219722629179672941216328250226167416412394182310563115038440388562018404686673744782816608937088900835046554681391555509969470873327695707687749130426272582528272991989494308362478050157029209464263339128991834260140212888561164569459204331196659579298742499684782981901997751106457270708143031287289588272975730736055161618568061827243174719366093388551953761761236044255933281839844726638408234850782277479893204908087756928671956407833946884122990397627659210022888089052436638042549349701223056099260674360913920224740945814460843726616571338867956368860229215101655618600638125758036035216801473317182264800558979063717324846350535508384889704186054272142200016263419695951859024937637812750417173140750689272811002788487345696188044342420592553038960987069381239046961662271747161718692189097553988433230355186718659811649060125795930805561114577288454835293236396410084207025996077320955661497831516399615425655613903783830422433392750679205293193211812014451478006971251127166517074154970514386109873122108752022086185673312938555034783498245276881709111955773579034603936839221186617154714351649525217618008608569580268898817984619219259099371893111849060959911804310207712248187346903302804574348250327114682505974172703136174058540581725178061650947706452471271005992800672983480400959226706993094806318238390486995663400561857416487778393212137819749004011756955669993545408502779223038781063945756431238383702590100903878294847623162500397933592150250918710933087163547785857221055007507576867263363380791423887780760900874210419039675108822473819454319787083282036661686566438910430679413824020203089252002942270753073663861424059559272365302570944553768939123628670647717380869047448994527622977493257398242189887695173899551923803579347548386535584642479262202359647318279892879428895348050337789548613201620874633869383958937150449756035217966443521600715314720155339614625039801144668822772395439305085458231426888329617775320492880886897891002395201495873408555191486766288275181195731120287885572576220181932275220370585480115603129557826406021171940819329374477734633208729710415843097870403570012572224370355877280692188540291991386249327996712215967553361960109501254502809142560714405136418929373257240671037389955010850769453060684330459155140326935786546177165960352172214532425246947049937920640793145474948189610284627174942456499450115733686887765585265478571562850417400701776826321746045698395373673024990835780380838406065169961552831034464833896029669442144748652816634439430516285746885370291083721536266284344079610027737274919081006001077243476393009309016702247421365796201409711871252900498162568468782241387855041275878291571843229193203605961827651781639423729383902240533088704097455393030746196236239660661276124544805868656767304513467359799431334004911189505187396415261993556425614216893400580533478355181800005275620706361274479312537729023680965320813869238951217084147760582988454445544818710969829054791500793351324844496732486900742788040208712700213617153706546781111635166566901633162560039230547649671189874937642093202616083832719437188979247612916657641570431046438564347604341285824248613555946154864687721213773190933298432535975486997089306882289582439984870662340366953014638504736992164382389382927877439931070020430198508451404257015157497229065211430640288239137796232381161784126450691846743847364408029166567498928426976040382764953849168236036064820449121390139829326175880182509865623444049104501969556025195514928984638685437896636506199821672076908921744562022358731597421770318898337836144057827561751374038641944892747644685409383164534320783211589459378611652776160785922071419575224382703970273671400471222948996909502720847604311126353168363817057464496899217840705310720764934405646242437410109807129215089468252144898690905652561840600874480874609455344301562187013379076411715576218208774275463446529901322035185605367580178932786308548291256062555341096483678973411407287665183285027332154040414953790167560037915728945495589762783782053835858673850615307675807291359679117338171932090609562678092865413396191067025682118623747080348113723784189344468349634437002285468197614201897347082265590376235454745827211796457852709886363440340714239321632179419345930001650658441200741319520332792576560865904518407273740588372277125049368247808899196532135811371930272636652563593400460549038428183308677709652777133919875554695695231001782704445051288657620462869289118288792614979921540627799219534619556603442870295541167871109254180812236861235451012749797785822988919552783108070627160565475527477321194481409101095379621515055614798243379560582830796403838083532850778195419494511011191606641071374599547788661692264995654077778775122600444946692754318466979564111299712532287317322487122458396604305661047527806446924447964745362108183175134027516492046103318837667074493496714049564505168488432396011504984931002652836541702741436121152981400112175895488716227597887040304820568435315451094334961247617167914243919227893443257251562194450442052886809542338091199602901528955299239981669680982029694261641539983098624286652556341194401414288143160609972068320592566708430046094083124804903509012882520946669329099934280323308460923928943645471735577018025456685163772216399454326387163179716971491347296609754683842028924917390508604910033424607341130303308312062904013060394136514754340137270347922714930881065566329009692207203514118272295523935691947533739861847154976180777784894649055276433772662868397167752804726864424033236035436251033213359798477831982739375777180837044204586616744542242734919914940276003797138597386994802241321334527484487026220718398596283748808454589929746304733085161766639932405365419612263506376968885200330538065947570489416065066736422652804647087750554432307392846035012466266372393781474745203611704757755140359683706041412162420750650097926208951952896517908245342549814448539681783132887424875315143068683133280613798628966173984639154009803938725134280752049336954675233924406096917883008204194407156316326897349968342416600818823900605581428389072716664245171008134513743696433188296440169131340984390116604610631469041067908420996227523185616812062928841160329543472323819979036084496971316185537856740933980965398180584543811876695859304922552522194705127935148452722201565181787719502045852554512781973880166730342451407521930688441945512662414562738124704993413132524621035712609440468791243116880917085242761871097497548854201699424900364192161013525319385697290914913833537842111877795667838338917816037006205574753895003462763985334959284857175053579713041412956447416550964845994909911974210580232031019025833770331211511454588679611873343884619805206867430055302458761829810028930208612425905394646692749122500933264168600237052691411256101975936897272860851846459348835580876912515522373103190599109643834246342914164938975643602730261328906024813393592265153028473442678600510338292026101879986621380445730465625806716754888674704918602360415948609524595126435762386209451516193483086559454721260143932534005617315133508628316672720183130772728353761705367659038281340074117145751763298878557972852174716323672861931197211454124758623147868729574167499413480891236942110740380279410545625071757325312412380252211172053473226164427482129178999874433103264250699022294530409547978150953974829039706492906376041185298138710441236710150394622635016718390442901917671685507899849695742848520634831855194535629578659248510787883600486211519458978248611321114898957490999977106851333555213952496765571923765267804220315929848586211946570676788986662301714637980290577479248543626971652028304407229333870156921553432515725867987557591266283668585957059906116347091025538567834575119208255963508474852409613610667023569320982471948507811241302358607045290093146631832437783243266506714950305825557318293235022645041278441031052060510944461703123276668391037389758571799363459472905661804128676159555126894746990887407243779964084253427531865690224663924476010012988369391324450446677318968246003916168726512857727012632975424274353500476718005906986353402252289699047898209664436399444148551458026985520290879040456533369107983239890116346561244806458083364556541048999145392606138389545200356195915332579065894649478218242192766252221287348237306469476818574134170110546919704418130783297684791659453929389182826078906109552235386528607234477960111202000027545474611608551454705932588944119360375458110611397083515632333371177519795552490270573073647453516966114759048741836596851953322130604132804363871502410602067101656743549623725595606985028825283949873257106773449292938891929533940738619351137076959236997684718006501156019902114200463765874475348295321505314203296387731052602745499699679051984928717995060457697332473072011095122554057990121369765115589948737759015223054919050201897556745273622886990878008288808886136752622624250700405196866753151753693997096380562920224250550612506569194663137004774215202052743223508027956098035368820634048036901922182683691812802245135333195929439163486969529192042054776068632793276253182811874130068900270259923829617860945026850923330910353314729513312452057500321564520476608848954018097696889093443104767599507062488106831706058293121860719809341657942654875689445087385890753811987634885987680357888909661118449535102581085496439254107975617561777210040262379452322088982752353670260931584491382803701850727321494027406786787436174548375341483379522862956671398587416619712229565678682287865375333092458009644863663980204302973491021821868813565150957420380458045525872395492421201169930428776211493923564876622632853895548565883442277942621120029110137436629836074234234087457172768901455195145703505780278037428782605771720832499619372875836125834137429092764026355934613076915504697093386978594371695919034563094823228118694060796685984260648662162017433937714347152161465232540254386479035294134500828209484077363523997599025241989266266536009023786269831399627563881060135866509226567688626301044886596934593077068956236978978341169744112368029241385340301116748771019538514002861752188035546156349157049299937936655576412177933376670385937377483266380548563629415016885976965145162002932619821810911616435713254377900941426154329416531465899288073847574587574941922142265312484203940971753474503862362840960852469443562406090872503722404195837296799972056110515161078346725680277736061720311139221553559521392640316674696934983036931413897156164728149001341176424195708343184863876116082991956022344096397041600389766744419967433122460802057462882243642413244965807192472831819927179829157105796384730242336996250965999002121989066308422375089327464334534683879865957334353203092119929152394287527815091022122971149561893521085264423392289460238485354654626242906136519075294315563052804997213622483256557251132758824976827851963345500208824772797173833144487742711618886262684861264129808570658465338069901803842042791845757975827371326139637172518918086672682229966186982393147299393576137887135212199560958405928905842434717737746716367666365160446022179642613510127198547153628882380720059579024012196477966195388484670069082386965770978338402773131220093404759396750608518436617596629107193070041090024271343301648933789754707754466894268003074300638720900405175797022260361728978777223631881087622042905081840876824890251066286574827974002095461661121583557398375153602831019786214216578909465747748023187857074972937378372012876837824374153944565492144512407064405295501407343384919358619174788682078071609807637464809238021301880496868544946843253601941655550768919304391587247267242178984991172488521752457175516825525063750096449790424185167600669363659061033176068816401594265956708238753976919623290443736253852704715109899376607417536360406963418708969168941671971350255867425785923758504311826614300029341850897660304733081414136224559017289102696481131154905950178238714588358494622563865778155983969692057229876055416155553375645818598806035876429872712032629233797911905102675251441428962482074409143863189882416493932371739149203808740516311273555373497622793853245943820948569357756341505725669220063659170227448924507132927867549154461291113103874835589172497430665021774682999614940233535834202320150290579847208601516973558141554937448010340331935989619420233371039759654625520457607124552242685951624541742285507980570215510262060329852754519339594631369734754479175184746988914128547952138978662375196407413428300719638522801536629299354164367993445854835826505352075344618356951173299072736424031956834684894620446168394445210032419418899851295006491611388576669652785016432031499497215142323108780125249520716462912214299598488357112355069499485114913153758079427982402646988238737487004183842765791316267933491281409588089027769438354865760293533581870683911333250363751616063930307762960613144839901882413593505485513981107810856320291965112919006687875874092462257697874285530809530680283568979894154806458580554692303555383226886305386334323112174353056944211891520287674315490676120194859651683861568417821293050266801274826551645805501695610751210976709573052770775022062319654610734014717368430680675298191271999346492551271343852554214168110445718813031839138833168488558882860005355355552395989391467538787980231944458405264197488871047049348658202303984427848888684423639222771849329619520425417887973861556306943506787705647947050664259421515628116359060994062543638482870984369150463906129496713333058110942818484948539773294446636741286959817142903301204741041928104493224012487923212588617841016781621336308906646618946655433843164078903047953775192111544371572994953109137831256808527694406338254292284949106644419423352313496375067061166891832818294417559218763334917289966619467862735789506175303116282500632078638120671087236337023786644925417568511541748104188157208628132252597345732796991863196144612774354780429768346290929940350119974656800024211602355956336337978788332834104934455979412079373430770725447640644423622239670491678940833958851088880271829634088644809533262720915675381852389978113974804578770117611343835088628697885750496584820282027784793054520413913547683157532676154180493108905082223575459733285445418506614566337639764158692749363930034697504850380692240296820527866293470151827586068517801617901610456730652501066173798892709000517252963580402616344810810473098585470540987172230638437114836476995091985809227211535152620603216058511159851906976630931743565427118910350124122595041376667716219227873589461537188145740756169362066606661052136505668844645350014983706869781254243483121115386803866880149862686332983838079219220655453251116530724309715727726313721688703347338721426833050494379820117876077867839203071579892023077376954270427899697470604248650989162526775744449905198626494818482354544082827054374646214307715607504732412936355332863179374027632887379623785247799096259801211836331048947983898926830218916626919497650624468754573601999517186200917203784779520665317868067984271034684733992944980251880663686467164038496147935089321867365115997220053406261947343853460814252948892007058956844532067780082363686261220236160323681563567292629445579586614331255659550691341018668004014213073137005858090121516945907751826689477084609361311877885546073441454647925779423894767698298800666417270545133411501769496922849913781875371065328215505069078039394548877378735251723183092239843960976808318800412443338755098759501513524709908132949771954584758235917267658155411181199199446427934129362291336857425830975054648623427553292429061009862474059646078902249044252760128836502404236631744056341704927935504160517972947160708691261957188875815106939652937761390308325510613565466780317205903159462972483656167419018387858592050722488069989746388652047797523393923904466168301444978168256735116848772638541614752065850967697664410014247725993935588207443062034909120385727927212440158989838796606801237377906927232366507318221639268534609027051487158128770786525452755638159920539354789731232181851232825180215163662729805712142888135665565405209399853590237296203667111704779627186315353766148729262336320420521347388780978733935965952070796904877869238551970018456510403055741703780054182293769905456326346063521343344594717727467514310255993470976670379915990670692147339854495325957541526554736996722702705856878867898249665360708385863515865523761225269425651686963998516906211402936775420915454753052490081926651257718780441328479531137038536687289439338941555209058800659744465828852609998383495209695873203654599543885553133434571232584705775015950010405687605730058890011355050817522533093278474864783669352956422304029547169703475630919414683043207228129627840488099313525339783735098552804928658153377012418092331700239673559725639831260389636618467658363868107436369736040572773977899715665727544031771080673444322235715512809322573449874429093470861600480134164059437571403309966183306454820380855200917059681766377212880194973373705455980106475268602799312526630866532176139671846133664957313606567780048401747327756072534227809345626642141894581107180328035565664333753555752928066193171130882214416788150382030364133518119193312028665176827812407158502332072263796542241622708997260732409665470886609977916597602575616383970962983278759092614160422519803452899376694586652870968139666714110975452285974018179377027846439103097394034462024493382425374152174402054402592999915310203943925170960027269729751191450567263274745730260867922149366954312101295538661312094059931522581256938821769548921532511397024595652448012399491158838912328573554566333341791157289325631587461060689313955102995500127228050108118524274877569940131348646188271828117305019227804151095575392151291874464090104074090144660991427701073461388180868035103656559140580860755007583030188649098856764516400774370695396890451158430591488954577310994077890650769674580387114166137045731059676495629420603308785995602000649997474537015761101595984641713598076239862548692505026788385479048233615191492938350916007981954006342495423093730899501783822237308535012032212661927733106842567565317812372846163042990694597753343607650642052479070834325286645922163372294754120843340448734264114831629248224160998377154738657391716308816325383711313586629806873758502594604502397209193120635853267196526837172343169917073233921974781942495224131604380914460725516971367612897106438707187292449699203694891430678675455765304238826102073048012009831751132983932217430284938822099957549176850503752005746865546340350763888324444981950840991468304586443151894448758327762449703018283321596619495171907191694529040639471679634060751794122816437727063985705556402433511763682632031218517179326896571315853033947716208611388662649346671433568815098732791566243272855921238244956651163095204112984166765332233535114802664655981835161959280816366955878079557796711541067464755758330002988435672816797200443637823258841126000388382663024113692375362528098385063509016002860934181260509610302314452539785926310742011546654985441728129542190793356359530231906661411684783888872327547612689609026316701780382932391720936163047102572242813078784736659088107613322924479026560596976124538370960162106474730662550205358659276838899840535535297446726698644374563117019441600402967825364127553060820264971668709211257123639715945542393566845712967361271836450480016810816997987696901329593507019968997493863358449512972828466483787686904016534050940492996462069661103778950721742830958426130271713688262955675723904802484492252761109869615180923945685926892812702658422260624389678779481367984352302083981171794681282430768770584120084582565762389165131344436805680962899857974253204718568476935757335179232416058493667354563772744153216846782741877892859906829307726839639525881995576825646078768302845152148574917979243330822406402277832200378872707654841459709597208732725035079725580192574868949238486655890199416776200527082181736890139306003107819947273481697434118095424701440253591570403636363806379363175045757933223922541491395950525831205281027574657406175038523542807143536147016776112904845028808513662557622109412051448103530586771577379695640267577319922572792699840413705411994114029453882714890020733766987829637676382598988830159219315202586819280688538373378411691554729057712203108196304216811881547533635650869557515910505262026973188969610632770768915403665609384593203450797919842078086283711288915228146865303552198198161867051331099925501485627563673718269238993798828698094014674448447441136884339378484330029607041145319758815105875698705103737876998252698647063428517075473679706668054476795752558039857219493841917260312531728351140623449482263694519627555309474185751860823791580172373508316721000857222191422430166531638149949523275655554098232512916331429269003589105152334005438812067195348128679741274321595880585286409899298982916890204951788514758558918088315484143465668923418041263114972177146515827381686617838314961057137917871028828970013692566916268185860778888993860000048075277736468055170800408054239076937712107064221850661886277917505286683410322644166421150640769275807183906830462787764256747659199973347981793035722327913023712042847896783138372490859994917583962728955482528781453319504896712108911615987609458295139900925729593552819148518667240109226714837631287481803021173421860956979890023604298393669641524952372933262920507437454507836427997109486557281267186853328225235023179833483536979911237946130821159672667235862994459965291259479239069881451984638668741546696120056714173623792716610231525843478078398432664211864349234530039212453834526207661315433437572702149523832360242794299664268402043231858216020117617274263325941122250480715498133854979926585257504213221307374346718923141314411593227114301954559111109484541917246453608494784034563707546214073883736262678165030002259401170200085397308897222084536694800846428795558354395057212431313492269416014577638266803445266865201119187372213002870190746774945731793105686406566757961670412228203114069848912309526710771467130735543157631767423543377853080472931086389832268627634274579762433899781404023469786431207161239644850774591625403552248972778515600231311066669955627653977680859053852147265555835680629402161684014025221913835041271043282553408257303989300820942188428054263151208928785711229726028608626717442534486878895451885924998311856520736808967422734022586041757180691662444384674812655180360361892635696763481078539905658519341708170552815001862455377044718502462060231208155085160000414506169105628394694394373796157634502271630115397581588077078778916660735942270912459444255552357610501610871093661561058323306879918866827616638633230737477360634981906127973590347088171053398495334886029064244569669055264298540390164670891682900724386014521017402794043016687584479610670601699635700074814110382303532754783440559265962513624937018208869155897068672374482940765892533750835107509262484658184323245615520536731504539895492116485916908388001256490699650927374974519370614017094988690911741038943654392064886521125770960209080666728872432470604533837857424933309290528380436256346398707960189930810671577116805860862416542331303507930220102154701856463249514970978278756258827275088359093626856495356722302657491085893513394176083045766393118191108039713117078170983851203772806588188076659028549515333780557213262204400942091663128278184768292078172893604686056271778269543960896547915485076108667998196244896372046234636096251562348603193424631270357049142436046380155133473328967505269298739335029323557812285167246570724657716091144237098118264140946250636564408567499476664920451416294365878123846285347738613325077140545113903474505521263358363712344414940620042294620010026666767059065151922141412823769508426630781772985503214328747931615433844557476476147556444664833594267857796434481568797053347369110227871213114967218491332110693871174362423872348733402703376175732592520474682355158054120782017917728067888701736994042667464502339381492216841556621742938745461267564507791566450217923217792622531998896135007642563411103555381953870686329724198861169792425494565547773026112535078480008628209325973610952886408142502392452994260436812638460466114816704352299730752742872179323535209798686996688140134270135898580981820274273048508722494676747814667631789103414776523519824342159664896908494011293742962896143200697063880670924912933878182086127205584296669772730107417431537806273178592152307557797787366671952771959039648935346103652383728448315825996377525795224781481458126957056703532801338810332987226116968394655640387766037181006702771001722889781765261258314970614504447761830403250955298240032930038800003648240886149753765621487641045212577826510164142536347978338746787116450067267979236934741769517109614469990471976830945948450897687766577814011982629520072546321844785422764058377301933212626619598745258497510228224751093241300884865252506747555301934564189794957771830228961264161707116679230713328202640276030091644641322015147366965741624568142259556122065378100132148007241452548575655243542583574507585011618612395659510262932780973829672200418892457561154016163776073020965377701033711036156835822458280615660017724999403529432640218853332498866440547441147402733800782770442984919250533473813962153534541680074341751439342291665754198866440168284504067225280609215819660534187913344365353965140232563513017293113402566314905505471373831121501581804517367721073176470274600013880585585146713253555823611288237454969253734364892654725622928436109442822637871831223673464277107658035068890448905799821366849375280627323080696000869125195745405446579012569166956961526347206541522806405100201144571172152679496004116315854300741895516893134329666505999674447885608767673388211697753473665476205549513425172312917507036906227461022699309351066401649752700667633894058888645493565701272732939440829026492384669233688038824791609227565608800473671025526777554492882766139989059101286772444914080948361547776912232111015787390015016266770082647356327205956942373986153907697582563705840233811268315249298728142274744877412977695761057315444226150057599586780936851274556246660924371193744620351593867234498714295283582318416534365359907897589007855630083402934362281298560580349604302535945932711650588451194771847811820439939593733422407678609840815140698403130611746996670933521506402597146399491385170363022132881553596838793309412405560150837367359025208888095242351919018246649816004921588407105792953535771191861697048562339110617427603926994327621767807022570902422214132236867701048736506458439010892830753313120034520190697509377193443569362106054740065336532086811773366181680316471341784623339245873080722330710189625936731260742483456061656146784670886406276666878775822826526775506276829285908341824454669243569804900127717441818544637876107614954567093378028400566462613630726267674670866203963516078965007030373041241414522205167836499715609902096387379814006897544189176363799932306027230201283940465999942934786515861542183392744897029328676167596400116301812878860699078726699698083286501704614017281624799692477320991076265675212584499732494817751934620453676091117677196517716039069600303483229141736372504058963121382891182851284767478881274947979245924115553136303679440983037145148322775101491507523143421632501338843780227773573230673194324532536580155315758965632801281739629508468808756310709412043047085936146193563000921942715285334326574914207771037759005371218897880795064493316318187059300480390860118777286805488310989458024725343916165744563191814544532843050262678371602370235192513718784582162331997978841562019085367529243663071582730494768892246861189146107186481687904458109481821101129152389807841619531719582770000767849847086037378256978753107384914129282048948823280103655076829945331468809240486798711963068767859706423724381931621214103236345346273867328211026376663761159083988249509511401389039900826031621622311408877737619262939030355502130206305789882839420369596179912034580859009436555787028966270674707332335554896771722137081215146382299348696864817614487093638656806721685602096803026400409121564861427293168124666781607703348302143241569460873493353114331577823789420675827886860963863843750982771349216299002566563378977531906247393934345893080066053084004793981871740462481151468915591888954989669096650092825672827636631046148564039476125907419543220237157475952956152383375298853367464248813389676928857396544791720953345890607509660073199003328448653717104767311983210126513878584710894129715996669655873549509725506900941031536297877609452226937080772527859182947225469879914726393164475517861470356529189485770494539484343926212200734595796772630258016192191640974176123118639281325866670425848740027657365501440698048081152463544493593136866253836960171019177982149027673961885318468634967191894609255773248816432601638092594397184511699018938073480977221666957479733701434234177506297576173473645121737162372230172200501303015323039067253829364409406023719899544757022011669426476568498258568198312376222390935865760687761294050515886709934748524491076395742772496949167130261537551580568822804683543156630283639008529221311537626668173054898756640450838396998789163682568161391640943898918541803506664687840756099164094416019381632140667932931123328701482024344002202137736444308533818330421786410979785052085503680991068429052949018854248572207828667868332901665724488337852231185556414862604028052097585988931595970391696512604775703773052253304637563964317258692333045441412064251099614361268119048953717855994875628366526104503374557861423338823661856812485359831257759838702147527690095280708565331920154971447478822662281092777443503136096184930636836824742261642829376414553642265544714283088843785377825757686737684979693902462898884290454012216172403180247577246505816081341984508608979954100419985908042453001693613246271648270837093274719553298639843025249062938743133319418943211990394636900006886817302113706178442474101218106217048526164053747940902910291629627458475817822460719375763655011589744035535215622389322537374386205065326582025957075752977636856907462785591890691621039250489786772312667907328644033831722051915352913851965497246351104944957896820337997320621115876436158216539429537045318762574428091213260834995400495332290639999054592556810052483893617581309943655565715934950112267644470312128931444953083176583833296998212485313334153967769231986139393308598808196202008751321881257141694040208692860831946162808263440251376167171674879709049532291414551046177726942744328556697413913388729135737342855640320364327823750130908568421074296459139386659429434683415464506201445486279114442339206905629320518939297180286240914924044369191514795144472500478005271184807273763863884923299252223195316962001297586636753994821228498461034375414110318801860522499347913999244188431250926784893322722640826787990360840764358173443639078571846592805716246366402587713334245857661031046079785190072026186941487374854012716518147527987821954779835194366402167682482911439126690045511142579839989558165080520035026457339336035084922391525690286185257583826524525680739190210587486222841724204807484862297204931141538598325957655930958393497989857698622777894784751668945692872296250057120282982171566728891874813117213976569096892675450324875227314773124103154934134570786145977023380623954557620831917555842453828595234102695289927999088180383007575529278353654667834215148469464588387559449712014136990746414534383381026415068623530970981865933340204501247464702211686551794837946577643714378432718076404575104654768349035679189273307135867362413901839911086884628543205532596219671510631277246706743381361242624156985234964027370378380909227142894227947707365687250295972688703350547306693138612535682143678071174696693409382383304521627539684256335955081281085970976968191571874678419715750346696604020656530367971477485517451637210058452199191258642208429441000672969967328363170924206517391940021237641287143589789253740255161017353893709352111387762462849201912542644840445056993325135562887148926140691309574855653231872470747244479450640012465127243447933914630694570244134677643086358794796603863871440144385609900751895142760404400732947092670280935452868653708765482595789729679701038042137652632491905232830089758940812997808221558367541750523639963470567938696233711370580795181603174395365131162183007037426471593689615872675405629786122814482866954104802202915425254130659784559600453195390637866530767772105731367225540532232366408184539142266850878459095442157666466300812553237752366411479098015376807102998821851384463233755674883074597640048883397818716682652375594654314444326508405344865212572624421060402171795022420939692047135800705182802588760628178723998708990974729206288552857848187829704213674955710010465561236483540838915426669500750199808408313452315150943220021318844973565140004243833128029551504215417648452816825967668185786958873072037760798126348447776496456552487927491451960413706863258117294090292261758709887987061733077293748187598444911101722454769168161545581892531736248801423165540548203501372960594585580782487314864883679996922435108729234959561553077710174909251294641928249270645929433530452331095986517929388445755609120338236654430671386247591175426710956452451030348291252763630299201224589105790656546574139913069278612881571926258505391780325273605428255406697398678651303903734999243561806247370492828295469618192041079493193436136209686320245178851635551405324296554266508223464908077807712714271728022322369636574926204612641029809324639813941060358794304917530426195656136108995826347950535352709286137613027464852954162151962680292915795101761040409485961184728583048080216143611819375426658441126793810981196099934375173168279482377894449411970872880533058771890801970235368190786982059845083557849025287242320191416842154234987103633436006711784097711327887733746875432976148783601928844494211471056861022156843721715829415391916264493585421989759979803316991198982391459064986321660126691600175097574344099638451090384936958618341974355514794679522524469108958839261520813050390674797847909576620608221141084828161290662677773215259762543492341852367735322695393422240121096908033845740729699875444108204884554261714108353154902641357178711173736421021285534842000818921445775725576319470833263280471997763796677718455034926194512706081402061074638601169315483881150829236183823971483297192272003624146441008714349449171752831574015663202817781265460482377526826911553282062273184844029822407361867023331045073595094996237255069204725064398824453550230668247817479066510692446733491045279526640873860916788645316904972892270951189258395573915286627488372950816734226648606833140959942832012474937255249106736138162528394266589992193734296886060108895289218588376180294636483763516824897775681674560542066543619609758418323003026098084282205899598747477796783143095475403096367529087823284559392526914317504446560426986267170583253958211289430450183644118775957680600468092306295281658366989226104698893728018057962208116524124031625437865183093853336794326746489357974183349175129656330156795729259976625535313612639536357340692939702919001135314352982497015890816307781731018494772663139214071134716905937200056378547459223013435644190695432673249513113522017767517055641454599888586898490224625735857782202753152265511624478184799778511709957659201276266315740830268696180866392247184620176756854622893999339793137257660814607290218073678815601119431163215203401981881861455328318996134224580351636038914080477906352889148306862878532634398345223800863367203388707515883755698299036963446256923380410484437577122803149279940331995182033845610632355873728908298399699111242605734594948623617100628689986076721391168483812949039809636489173039480904868332095040608423014603122386655977947697907562492285390649100190117176223328608270193023790096209555237421892901106950632350688474790862066771736860982726679081204418695509705835678585197566722118715775044449367398699639439380708488038754312640943764543824461354758670031272827172088556313603913494184913402884138065744312283882232903485970558574648371282331474529953691776536726794080692214548365336932623551467213684797014369389835347223278976185580389579150504823738917182366197640891947713368282540438019181705522491439837730100060582708052884372606307102398181943179148190929704314551974961636570136695716662969668652785709661075788228673062504196065559252144695444597625941921067913128181141883029682333835325623012712394717251110529112941674123310916385553699550028733192704096538795981603661822652325169193046975536330767556329863397641391405813215473125692415773651581303522321639510343652250716871852569293965915997838474619532385310767064414739837770344243236588285692902060558276372219442034077607108001232752044189655382872666592186112034376946786536921129278311834058442934732083720294453889555504129993402546085624252723528044563793054558106914415122229211564255468723882053163313399708824956634190964182296796893717887979938918169558728938252311207285725035568021763669728939839238159475979137326131542434764190344890891942261893879888024116253422114682289479422455764854377145206158774257206384187791543904433904933656235169097717780902144796878219217022399883925539162947154546076606391149094527223633019252246619007614739350280909567529770079669198061559302055828687889366136323587042456702310039199618664669166013278633356459232322788482792813851591139554563980792265900980244767643230374458605902876729441316566863094116065713671954359120643628910664894670061997467243297161575597277232740863574893820282482198256696856573313845299482057796414834182492456660509714013971054587489961333679445127744353656304429769301677776433566804856573509367265580223061611696317876741802458208089425274056014595577402708926565171372901396048438123703943657680931029538221751445277559743000603363716874683114678353714356700073479305946670449278847363832801802629643905903074912477872458899990654996090972748231536820477115609895752448848099617775280227736020877528622551813948256581686094984842565244578093366922949027636129045478890416911554694433624843512914636226788870694951633648043343583262361575051607650608139754694761332251199321761782428091226512601271918417385977442650491941838530453671530426267227209946876031113776735191364379036476297498253840171117992656084388292768060507378557644225775179454664721253399829888162612184259572920606604496802687123885767121941688821077797141404691451542706403595294014959345700303399225952423221626076311888574269176837438366422787297686556230507828282881393317208681434647583924831657703501576474694645179693688061569021143806258449950062565351570380155413553126166625373744304051914770556371255529315166216055688502356020810132796325804686353519681980277016963831581919741513200516103371854077622078055403388213674631045396361454685411268164479944952642877669293043842605661944174967827771595639798650807978662745893673475313935853458017048078961374612585426304168393617557697899978048457593698501415148480964319959362331048880863529958837381961728074809515709506279557785119232079848031184058637705186885013211076313639833493030226595995325218160430458446217211649282955015764038564251109380853250439809175710024325332372180085860954105068473096044651928956252935189161769047804817353310554260029932534969106543973598582276048448654701756897192471829829907176406188188645523654571314414131640164933484924407365054109061023383395074678661656358046665283249380212823695704321936209766204457542670287971914757631192970274551212768935905532349247738644855709911504537389925342672755936449748497449403472654420280321451853387188616026331445173615246899637812169581968539034487363030524954566475406806054303862462968599049417725071948010887095039367197162617622950035099513344251233965187074870226330555571783347905241893107210569173891364205396968248673968394989252414220771291097678482223628495472701367167652239671882327717280770892969223304364447156115017807996019970888606863595463983884634285917543488860750360933596175878780045752151931644590689908162069291099598071382305861767473705819852776381275991635299929202102239894323762314259207758280497856592996986607748475197934963585584787956908491841412801000031055502419446557549903687380313834462646961042310891887431548367413987057670644122235731239552541944021717440114520941335519014501190478544983627692469907830145060078528242127043925400074375274532329992067698366814743536865652571428938548488055809301841578018039542546265238368440933307732773271849952059553259345143280547215889295146093278640597931071732231316796905592083338946615305276326899979008599024425925912006582810231716985845423365260560001097006221074413829675856483827848531921710860762530720915257918155599377808444311347633235020027403338673113109588261327865539248836825173337797230727273172384011455721869120553258019548711432433037263158346027422076205647230375721087465668228694325291154593190779107581300187107640843659019242965774429740425310629569751696563945136619780977308777541060153741432726544384781830531092551527949136402072470592598636341967510107274221678774119251533403648058565804606862569010457411785380627197959889406785824240098816089113102449373104729417565210055930121269884707526495739142825860061738612399075171268437481850465816443360966614279201135835841741721594568551358261504205483213472504180086747093046578999005570145920158728435450151994660460681565943390978392217294196761345412609231822151895177179052205276608953135072302766426438446786739013074019910897644310663368247443579723982812890848498434368911508981663185038625239035748974387439709711580821639125523430665309786148363138098564554909493294197060551706173220372342369992676265296318126512035420462317464021005108043606337758644911781448195093775436729761197063799586089686563792464591882156294578614113253050899908666929306063167961702882730046504635487298014257202563857378450371528807413464756520752836235954641486999546465491623315276101338059079800096185246311909507191733237047868719512656897519907989571101598808913510001564503587220164544805671146724030131080715748117301405753724929437650383438412227961409685615136762746904943546135041724728407303634438925454852194503502583213008995521261314123443350011571227556036099823016880894254743961972690412849704258036976985303822836422010509603234498991348076205096922224748169188590319361886553853465389406871275183718742436216904970903752958640347820436980900676914550864611089989494566470160460873442955402716654381188744939321466818891015937603240621721462245542909684720824841836221037515086415067658621302182627009884068742143191011716437631858898583975199660051758453479402683826358274668931629685283030622043268770515687289275470508510822733736564532503402888778554738164589671887214658394371826357585703103993086530018127153240989449210344940938632584988997381845528313408305152825762056117190309969510938541218570039326381006321373014970077146581128312124617570383961246358442503635581529289807200143370863624620865821959979795863469663312667004953177526623528273568981638958657544661201266338731672707705934069652649521127826483942384464503738843028248282266831348552670798638867367164511404063591749342881312490153184941351662252520524475249960667787256149068609451257103242692290981986688443891925936368583468582011636546886324248538906784363694342765367968586705465300271796166007097252230410215576037320948026764468144290659317266948803839862656239526844725602081848765338699156152475936269933305213798401345729977298439140545391825392741766038874326660773711542352601893593715773905108751255936743604257832430368498612497347946370859589187539523347060977243753371558683338299033362527650989430182049389828089974293522404460637873006819538507572824089036572576022234049570818741960110721806629193107000729048040461238428713018873900050771326682296994322332111819077066473844712247704366686570152755358820176398728179433136439150754244822118761742835256578795310059554981215457444090894612636679884938332039554377283343350641240951387920701986467457785228210364716693085958921696382159879313304657794980045649416115746984751773728493689831854083564747504396875241246787959900634067632685219258007452211029163637748830085323501877647426970232338289577901309169050969724220667974223435026363966972602939699207557330487800976588930537133394060882718734110454880989687247136686059168239265846202570514251964258309574829754593398216835891360488037273379100020500686910116148956066145373745889910779317775809819375412476442286097801189573298668475203593819948878661127378959894268011074581734474002419763937195303710660321725351371301785534776699655758225157402689081378032390463711322242436098923987498502902363621606301135875885981433869181499651635149405169349672333256399852075457949967067150721703624279680831681345791319908221457057214487768497933615882175598725358230210905809333999659504998073357485287006464238361962030394634459276532579381748024364118673044378808225519233366429657901316992094280865121484278932468321409046515252751742542642759852957653217006642393377373227085058481414876950584443816640261314932976372245677983312609411122938847146776933460310364409514760510766368925132161145532299181045804257040028588693863637748840726548016794925851925355778895608714666062649357241402015984365563329983895368345203039453299056396074863803182807232390708618831949985484908339301967841038043123598796181886173328836270799786958966560416710529392273913609557747947056037538923199214011546339241609775208893300552595143073340516291544449490680470610330311556705534408190721863331101805787343360614633073342142028005336038891323981921642879753863676309198101323380815434087618231899985202582762402542533342944217694176296808828372296421159985041488190916915236823739142340835580248223757160809076073574629647362676164915532348835508738584742481049521627601034009656581748773835898215680173365270751930685215472062351302651450457784483670969559025396516495425789992458236650529367041095555114283584432345514489938792984821560870284291200303193621023331015352400478316119222293091210622285257894067953029928207048783840645476159329728986090717122615189427848091323501213733221382753161423578533869872431674513875269244794817678129324331114634012019814073072914326216450190928694559154596685725696905391194500586875776148978286081461141493997690027897336972353776810594954466974757772888252731967937672278690162298972665208414054930593702805696771450061426283670444045063159163866119695090733883206740408313076764098752204414814911838357256656058103633038822411586698156811008074358279968351226178828700067664494259692505654128393972306268837684375647291503157623411429445153821618650939966497972061928834708488061952527946966527386121906927935466446975185082337342825595215496666206963667257546514374630940684426122217118899528071967522034225494402886717049587061896675813762514340050361688391507324281602384873669640853585547966141649537752692282581705457362998767475409261852568143914983363368859447831011164984424881300998099296499978040725141843031369470585052618735024248723244032180635872699780623189738518886644119423489339005379276573596274251474911343679183861949342740376709206107337281164951116192364419121575152425770347496935297836544291182696648262852422312708620546238883571842649012312294501723005775141709543293809682898591640658866689330736705123023067112835174371842847820760869376820590755872440604711661419506684061230513215510136355640417625047398347541225278145668991428037387301427406190131282522614319090723332885979977574086667111062660754364252928268057840509889167472442807318040623432345137405679545708660513485170306201485683092048592812472972946930084563644218499267828625784257375304439198466279357678956078990556226394889305662732410871197939672597739989815552659071387198816301166139245284434363668140581167049355449772180759183805654378876983167805692563856637714887828049229915774618200248729155644148645759267315692267788351189704135236410686241814136717653414653209548943716765888547232256737693183293049132622975161816758162970727305665934383972997727263889336266907395338642480355087984215737351521445920079977132075643685307054778604140155728638815736162611031316715847783095885532914828454800574591916184683871391295811418006600950167354175136663755499655173838515821311185177052351916336273689420966094930996903542897131653515893338890345538619931616008463622628630482191839193498937250269547857313619175176894720152967502044437730673806844250791355567525714678617331390032961638058298425801056973878204106021699305882836629808570538946681395061922048718154596996795407563407306204378032262486700920496814693897684657200608221086042270631752195692704520788701957139734589906229283652067947375582891444596162837032794107655460907238465050591778390741310948139666703464111443012743736044168175298548314867454889802328126552286422597471683195698846247879882122979880813775457407378426310520657530201204880751468157375097722029229214176613835392409695567785668660065306669569134923268031980547888685040342356769551406263849935726761003790882708000978298118408518514566941386687785269665808670653349108206158329502197635922175418585499598276935519654320969824371180247754742447196268576791322352054308488484981575736430256246850520666267602223439886519890959479499226267444124013426881481746997129307215719498385442945319025703076308434074055478805382459835608314410413718564910814347903588592584202651450582277290953198331702994157518115997398788984894134218712851321565771798794491738024847538313011126963501939438299049083928383335923331874521966340353572928548568968598631345646662049153049983600435430129667989938800527422113641379376613430487664048690453143493301145977018395766679755235185073152041628851849931943388714411169822869895432482869507163336063479756560396122245687488785700521090685778392144711074527824628522303351526589159833604184161113682548723969084526129145332416187145569158431941250638601077473951895689462813881406843286666565376243345823811965638711064203212543142185649260758718568933292831918635629041660996272967063720205269442798137287303742628755372465156469879999906124870929395134416533496602495570745177976814438300183852344333150285435985199799512828778058790804039450834439505850046980657819905781129072584595552632429665084914644012103469048563365999602117758641165105902042233302837944395321134130476278627326987849590008969123038441905156675981917499109772625490305547796364531681343021384702397188963827755240334392757361444137872644447625725227347914446467184758661237961938331130856330909574952941342790778500269184448792240887399429118483604410555034698859386724002473562922301736731017474611553955518083685721385814732359703427961394175909480251287648261834464303822139065525949839373723539336919206020942715542893041129808557610799845777450608479101874867668657279329409794307628964710118750109641039153141370615193573129588266158616283462177559900284944659998950365315260108119070733514393152423229975368740546167866228052582915802693120439794144243475600138182662934277731413568893088201011162055065007614040473349176833336568406968349608438761757823195001740997738666371527367839780587071550402213071651933101762685444342608868691933595496056896855589047953867354024088419891821151041168143939471947329572807904873349045595457440179902687180115460624755784883174630468948750630161108209085108574378822446531665516096358723159984492889558624915003379184761695689007124106399455698505978142674290749205601335896198722424802023848261060887366472675478817271695150262643695578897309115288278882577646335138639995649122572498124185200436882481607864929423891734835914589140997717591544953716625127342068420921392797455298596518307235861181298767350513691066574004735551932101774584765898696843451692751547745842194723958511264818417671084933013417634133106200196834618606621034566931753196807823671842999135688423714160388864494301564047481641299178715092708764519445850735611698786896376091362691485371343437126396697986831986487866051094928643052622232498366808066415973556243394166327081177000632351316650576679906425569452169862563576557847021392385093993207675303465348027889413049948078351393796677095665748103491403833727034948676907182931930948946099926237438002612707341981933392505466465536531667257411374044473214395811421689894012726753097235477839160926839338709693325930041852905466770607852591968941880081772135167231358340523476827355274349656259530136567215562817286304048041617124205129094371337548627222067696562104028642747237926950792441972526853729585402972159289936631043763643829968103616961106104509998458881183731319950005228259551737873500271846524918947035104376640821553624125931016331724539619721704080836671392193791692660270406694827303729230034368452059832213757418880264391969709271906962610304118705914284015157767520696512576136028908066445672028456571113615502087929332866027214377527527120989600596884197325471994077791479018234940728536650593317616096853674784047746472188325799806929240836926025851771343467492995419809987894406229033396395770663373352161254343304689282402335915629147165882454518207015052632039841161743055494378455666051081562122705289905160667789894798841666732634252870988110012816689100022153265205962902898453572921621109187567563729743310913338963360961382834105431695387760976277335220641849548418893980553176797286849597837304091206362986184407509470399753595109215928950962393680473016620056697895010372954047221273837980993610839323043370908319364235761567538022082608845477341460246550856970192188799572510499822636766280332474422632840775583355886423910607008614994889120612979327128347224465781480960626463112130821719657479369792882507955946107915947664417351008180255251770981579180070747578045796115419615331832228135671544365833610766251074579932225270595607146436872778768734659501481143968806140637655874281374576715360509908533674842138387674262490439879965300730853563991283987784345872132919935769394979339964195563726445239408884220857205664668734589032654777606694971086162290473718000219341684872401816166164910525814259743371055136399430509414823352921665358799894568606843155591342214161256403097006292280643699256308832243354437230258342370855655288523646951477671451778200194377177146529049739597717129032363292868533365949942140000187503328323029858795111790442809005022457908048189107295496674274279496566476130141915145569006567179787444858144192605346067754470649221596036138260531090930110349888141202731730259516861483052188778116616071102167272539009892683916363654573069210658409077730552892405993800145407258572044876861944339341880994395634159853834671853026645306436070259521337650905151490674273154929397986807573747657463329722061404820965727082689907683301987875712394461600878766130153783731435157448806558314091680453117056494955262203644020149209509241183760649794825894561500844680314126897723773232304208936359026132545981557955647123012645305428674972561058780327937806383406226101346391662594293053535518444888512738854427283216400055842028574184083953644683020940758745303683719810934805814066640790070820174862366216639005115016278135192491214151613951414713998535155216966545668722138340650686316290333823645633242458022170607387299201743887422274763889285602350503809961177812774841567412039899147008282719859795883982336474892645357238024009065773082171227229392203117996734058507597295230685162836624665111631059553048905948888264242792249192693020370758339629682085119151170015453498080676307636621570840054975304098152712967240725266524357047596582504040350685847049636573093315969089223877945437838837874442169518137443248649429684048776745590475569183784765757541473697508112611425211206005150335967828284708709121744515962023364577392430739147822567776418346282597883211895096412129261674469306912118960455847212383496296634284572891333396894861619330267034034597285302609832308504526839930391347688883027042539859287057612242150297878517819255863463285692915677867973814716292991075175998014061289660684372847188068549218995550284561632148065378714377707328066564557260675762338947840718176588267965661798724378883120442502071106023360581743269652563801953194668360512342991230143211634535082471895300807233227621346565970675290685473690686130516692575613881387090052405591103382371756843314632598969764248400277595626070624718510160356133698928845729807678604347213799696350723888523303411175491344649559337761255572375549480663311559156200067338618493457358144822281595811246074661321483119139159050495296677813214165816770428039283266367871293383591568750243623171790213868684814956391752038345800592052501801965806567597594199360870901508242054282830386731844025283844828807155842371832832908403778800142562144164895490507753273481094599996882565890325857558476751077610918732183573470800030697075432245125745029215840574439898501789949748762280712936272513367110071069383450015846343909342172283857543767218633705312931804271184933518410495013370917309808163884712293406162892882259737837902296469455285337584427648276721525665788371745241491989285852834540232403548654413540918716073696529551792234905757637637777569580282186651996297168360803809509699582550965943149918671123488561674916452797768500206500414976944697419713957403726449217383171001357065337963017691392077355232304253401270999694403417422763681547318548482375829394077823921147823918992260451169209527124144614196692187279687796816375416430042852429005690955062885042793539892871699842246848404777949886956402033110618264859694305171770351211010226252883635187267591924632751417435380969268350221626522713043890022662570043986166797228280061726967748842478533109281616646090847401366860088243612786317383318829968429407633235963987050153063931529775813605786579913548628137510837665510759963037509567311767834643853376951541608231315827002733930842680773802318723143232349862255082882093346041357086228342638399381496654325606668047124555956368508969117958409215278803270683581466303019594486278178502130616932674388701402177050677902726932359994826804490365630043241312774978091151885228719010054184386831295419473678893525245778185913367055643601976017731534064382033912657192278283618788585005470438044583018511440625829450602129502923849490789536485208250053711854371970819071269576538367966644252588329183589991312486050549621359810211124726974293199125254453410747597278877396201408523276898651619987054720695318737175142705124894498435436269298940584563456738383324393170892208447637717760771716996069255955430591499381980398693725512673257268908718083413252951336757264728902672602096990303404011051991558848889037704733779566001916940280404523906301547352717577993029546343545986360424716040468395291340816715342067781829404844967672048363205725578981776003751258696062541910292930909995715287459311202984740223575631705285928077410371066325573509043282459944166728053655146577696846088173447833624433581360846695588693372750986110781308887297716348307803119890734027290220962882447277379698122708758855264827792013422012337801718607723408908380253161001006819299318266161616391229640763732889494776445846759170268638152377776244509496798589220191782764380746433333055905483224527147520545261794772272456016345295244442526577454937411143456027330713016093440183099022875962554721336378518626202587265266409033508153437263886724719750519323057611096381807600433544335975795963513669332138960999839447271490698500005925877209654858590106735407840794389621947961283279520409272053855388887969557720639116048030309935442459881518905089568389801637303063759115248076498698998054200414586269156634127847494898022144835273086872076649882126799497043443373709558183079468595476672376386123050046877135604420410605734390300419530761970469026339350665824883313827544735423826620583861820073707678585489245510847725515797014306658434708012902968275966013847719821820220116296573679961557600538865178172406365116273104221088710225640448319539973933115920473470688006636811079865848116867558673817228789804047211022455602273716420582181977912056252960995228593094027121868801331587898654478629034627081352872322287634816621235385397106970824519749447738019390687730758456047007989765948997881425902440668891243785432576922168432557576052237533244991197546974833859724997678088693450506006171861116243790895176076416849762578115702376095376354128347530803870530484479229433195733320149159263861737227000025863620317715140014747073186912526423002698390562158257829342412411091684813935961344514870329101887465375940363719466126361094732223650172463974304212302863499864795758879526094936481891424948620952460915493205400315189444490264107460735141133738476366074549069884600212429946228840819107275965529686536073475180602662718319084303324946585500878779992371732004202115649093729013308793260912499296681582527317069496839807525940868112250602009556000443483975210707681896239998780122843962871149397439171320992475690784851837904830827268449325850648847178672766633693491728624601937177805607039132491101251424654744950642197125928269474233167766232842392711833479854213255268872212987079610872372129382839765714582622099067153521433346728258436436661538397669570228712837514343016609130203623726253953293734653201765696398395110301815278038732954553175487912365524159450599085200574534717588736433518596723799240632281807992375693296109013154496517182588576714607406374903235932891003021374923466108878611654293906599237970417922241488833380985580623238733432370919018348326094102759611714266031562736430017950903440479145223780030649130820421219436802106283285076442679138144736807649626262899489401330372616492781451133789169171122979754520771954496550277857093733791195544362889367681665955707797089727863590320364111997520727899511369529205024901129381494064241523606959194808037099880649477812757976405881588638906046789154358369966981039717749173502190431418026412068956172124794127157911690961358576249008242782289776329344868313364008241715485249197350811794331605392797490082317956527348190030626061783231717202210091195810005758716003284233281479237437882535739808378359604723203753654266937743547044250950704991955708413091385362599215184345100571444437827979773807132815633723570912103718628981939878131378462705302824242069058840513237993043537011931228012849144482719822810248676232090290292143045928151093607526830250541358324583477845039472109075214176895104168459829390638270353517339151821398049377154263476099247233742185421773223969318705166205058375319197922489589398495077944452082917669034526145691544145389968035983999615098905083913940871731923563299711528734889474184988750957492168464916001410864650384578570534967413210668918110702280168876410187949530266718742958814393060344509870984331662984495954241722194892553223692722973136198009102272595629898415761620580437661294736268369643493453102154102645592455987074380203998412045234655053174095998829667382977276151727236177641683820387004948399958835515985313386246117438009469865653601224220111273505933687535113138386819394206670537345862179339291235759028797965161283540042200620806734740558442053068863370036445852986526436022057819307005644015930602116409841992218756252757028426714658344912583721435474676528154405551703501396198472030922400398023830076255649413336402815763621382732526222515270704042704367865659575573800106799420369025780946145639789983389006117367970209932935149261889973090398322597655680302519436319181810627810290766819147883987096020257385279440299373648171661455371861579430053373116755805663163970169074223603486966025006669586793514204419022351194346681018370255938154168772055994566690295687021409193431756000888342323562988724780554081984057161409875655929874553516822182730582149511518921497035827948418450457152059455928036985661262654107515588964942041054154977088117664683394515844822794403465777304416736828046187990383088676569371171206648668929817800160488437908239812052870056638105229250695270300805976214527025485208168370699260515556566750387145286484821894660908577009403136343635951618879082413448716098931556306830376710560416583490860410095786363480213327675029690554787034580960867104702498451914493469307483017532759195796423642755702804194258295160520876734811622952688682338617619960458328990086199079964583218335865918492969438967412738649201046601424434563605664796505766632605699629471000312009605621698571545658872341013530664601431964198392464484757057957210847578006502683958440784190632870052386382584012232926437435648763033464012383879754301407050010119696378596914255095754980591398528107907932390377149406761651067999589660195713547317964252157509429171937493783941936679096785875501151271954839904334685178367892702219925318569488110967231790503768534932276410536368206735158241228599583664538011337254910812257160698167251214235997906653418505538535208906797981776675443978043727497190764028175150743252164777797281207341840433285793452767817701109660261777004152977931052831161125165777972280407188321896576274235715814795647423925737111682369015457068018688603612042516319662200753633424172239709098953395030066904595107480194391778803855212130187918622544585353432454485909444088396587226890505098744909393360584417395674011357218234083921411683567645073188944197134829162622903531048778635577040324160439977046049975177462180533331788104076283931034470113048792414525901826206383044473233401019211696832637443333382453301222196074544661623659139871416703772806447212553222136265148068940288539410595760662485843562064411747128666786209526224446140717923027808159547879997724091813964525162916267846633660230868200652548261833554527519035873479768110109278846418924970714736999697877181150787926853179678372994919198024620809913783470741524787914360305985047780914345097646279711805998179709964719636073869695028007994957591259964811134707863149077579281117495385001273548991819752180598237372326317168332836142438977759350652816727353574949558397747873694989622370988226834268052715333093378842792917310544311268734684789896716527154354842444011911708278974564326845730221337745847634182441352754366522634148853712872204675873463359246344607274334710815936662418326094505586290717174383216626834749777589085298020927205864826163861981151059241794998571931522146266357210083543119285228794922069807158118650301459350725982299315854943719086235645264027446751737909842631098630629843341522362127458990944026384122294393795425069558416259478139835940104000011853923425856806125467670390685954133418280434832023094049513949770634557110928428028419653947680803450800545946618625705485240372276512471322683793397872015820879252440327869238036902602848852091206004866254740933775232978272780730268091967737967161936041760012740635062937131697025926327528678202219553260773196235806662235361865061186503150805654591910250384354582217081701441869899349035590798204483475530406213404670894726568257304583178876036356495133556576720767317111711935488871446704404791835884850082809353389652112369093397777867422276295629845703026064366430757439275441745701591815156770765277136574237687246588195067393130446279369480497564337356490599573755096549540103068364818136305778421273327610329948864428560198882470270975977333733039469998002653033132808182535376783382805986080040439414922321648785883998001318549771108826671177096386913952524289401893920672351255280952908556144403641414186910926872871321164202027845441324344533128585230867894117490375324580429826507296060583720197614751700137771055366180031380314494888195427964619241504904124655945093893167162869757656722755360038095684775632255395088371646145143710673711614082190803219325840113216260644529500060591229366187026550770274408827233509722937238980450380413772316851274498362957908126467712841919515393994386372155389122676891949816746013710700416997672963743160182995927769819128295584804081552562817256336428393948259052744590861999080310801594188822435887704590484914020237883370645368874789093347278074463354165024903922035532063060102495967071080686486058607135732073079719373534995640887006420480538742282802755639323219872528938270958070744195924562749436205355532165155389606824713218121480373709938507867543700732504224186774664005134339102186779966989737113087253468345306814290975834384567761673392364960850921484827436104647717222792598501811255276173478680675724421759148319963022336262699015556034979733214158070161931852663269155464430502943351525958462810986783750581210869672056167662891810584837216259328862353449186613201314744835464111272205995078185975929099943890843094188870924079519949855309455031535227947470548329805810422174620626800039651131139325799174143563218205108809324064642393662525855762097220082181217889219469862104794394340507007064706862244623399017329191836218663891113656532004094837661988143296085829125584521813023073903663236865674404025634939691462331133816558424607744373598997595672963707788038586089481833982155934440949478426975536343215582803152215692592025021248224775803376158172741470639895656586390583242359320143690900953767938378379792274987570022265923557580575627430222954741137582478316859116739947401181550803171696066313455284308422144026632138834490716792247678767689507062037571048427873339830963444251882288538017844462274044808121866826614319440297452837411745257778306072594185486040176958844333049561047115484872622800909434249885705100659916864844259571745410675687668781887142403707766247091772941139046804562024547159369539136198036234107478089168653050139308876343464384632319778920502414522871866719293572418572934040242659643509321337079602743760389527872251734574251299810922328159363660600263073137905531616495440083159807647849497482751458710676705409805885314743252892956603357363100561752020042016927703665352320649179700437001556822223261452702404305129415431909713543407707725213232096236200150944276835705437975531947878948356447726674130862104174749526954733893427491624932841998840452699699626867173502482971192590780278823686711917308889791155250134452648016725902764412869247239716859300636014969085624165324306411796250709783746252214281468733029398815465276590193449836551725054257084009483985088275448160206091106802507278963777091032982913043715958618028705203916642346976944778935463132481558911016350650265675125068825183415258362295131771137316418437304671537597836530808280074164363801387589815936725330236634710031804443890206768298161303957887549663808127580412273313225653796898009721221053433655458917937320970457016584703584436280087094614714523291152977112773566905334915629350818939200699489949695675718890747690169212577190153082836312763431311407218645360134503298353367921663309817177762459528598332404070052427104842304352245107684008819026003482103473931480040508067460367581224840588801609506965900654269637419583188976551031100095658352742651175447805757426778851750613764727541451122166725989306800576911720213116915525363403109940105821150907262332099298401010314429552102832065532607172068134750500723192206973966581291008188465498778814259947483381555404919302297433265883720261612760744130913247622421787709246361446616696693575861689982431224756319696318785950458631348234932038638688173323211817447621680129762029606492673094038737187551372284812101882285265887038973096914135901757547591971306512935937649856479247266528712411528773645236334916638735375500133679107950505375277805250242586370797737168124572877524073945056536328468398133993682564654066775911833173560605996969781026011306404201649466788772532980171094180895004175456759741910481246525317560288066322951267744787925517298772639669534001336018809272424858891326414009091809830441174956402893395349875678859870285412527352470041101281082428299301174875688907580004336681634903478741379845369362655570424437871048543753111687171656461503270582778859691972687513467932002853846270795782957177127274862693010877282096486567502180468606162468231904304954350028204156853541602163970710763522788381078622505938963571752214225889246815955803145609198892071270647798392857551295027160041807370703105618752783580389596881121938612356443048691503133637560586110802658290365155689747822251694494306110410035007305262514690255300237976477239496683241016304416270672085884791926128284865158238667958168936145400368432157144916992651257353010528268689085638543227409986803269549156148576674206548058543111456995544304426737737372631322880208105137427063407360774830053214889500019095467118135492367464883836963381121093806927432248062297552847060681457602779395698526442387400853027749736098475688477996120522615780980273408971903572590837398055510887584005361730339470551698032680496815135996443744432863954939686446283921589361584016229173599185650601452547048406513803476405166320633168357090885387052384742995111614096848898245253965504975355305573379498203896620823728316831206456557085139521545460021162790163340823445485152127445454197454355759045089390084702997976154294109380323403722465465854241077891753779153931943261840082413744390624066036021409929096426575049316071064599509108298875815196005815185430306255302562315340422664311559927805011958804776280776918442888673445678745401936478218371213060007563842911344655095237896833497700667445901890295423566882314575299599645609106303132117974326691188491422350269631134784633268472292335758677877806872790941575554960044385899377207431964747105386058427310849691596008833080554057690698170496006389146831392529144676109337392670963376257403924687758097613243326182139103830142612525411668547202114623128911639495615684657981122942628955395828253747993773095682995975044073097628033191348932592611554125217200388377595528271112206355004513312377504100790392008169170474160441531570874402766555583226400113683729740110111586647207615178812459791098244976480886721219765370037745059561391234031867685763697618829997984991503985802374441976207609550962730251998362013211590402657552041483045671542693179962691197554487645844338599806143555496146252168074337072197596891897104108829484382309377052315183371565358638538584166203572046388562032896211371311492156694187017795311786423143867421846911745356666482486467613742621003610163179739945831953927269729267085408917824971459007676584438475917595592491842617273252491114078494352717378377510981400837575014630478578661017422386824737447065566044430601878329900645539633913136512886944459409656887011039655027506896216211647281916529243214927821735116054380438999237173107898101265225520513233357567410154280105826681005852111890824030551205327314901427693440507189978568193854753831988797385168701639419998893567924176890976163492543126661797604104371043695950441171115767005074953464425985422565605164686466897663416730180946531635098988900718432775813436497877733150217121043207670296513204055866759255159942124134048449079642373465844877268825913028331862244904253018237349800769923895900910921576517572326585889374684694087505381101667189548386759646470069254844288066365114835623704442823778706353780251768866702497718902867767700241860572726313010078469831004175521960937708194732717445530527998707974309344795025497753988971876166522371612037174997940274831740557362014645516312399095721413730337726225746883465590770423112252047483871407082454956019149008175327574465769809633709739475586336571861395550975260318859919376649296097091922223133027943538319911097741918065628272271252852664913343934701263579563026988417087426957512668938588910601090229962382868974925975185262627107200889397332058002468525613109654049282787121046848080219526127638388687143500137277398488202549439024618654490942400034612347389293703810779942908099223643544879157274222422087044441941301229684416590301385126253069653222437141276181171140186597351903435586892503640345180141937732412721533758328797075501572574934794241686816117153340440905288768518388183979891148580524697583679370415941403698653944974624554351129988524296875828012695572181373470217817661153975369626164243369848439821033078024667506160092762632232512470000944874591119864316013574835727891109403629032646800510432557618361409623149411399005605087962345893296202393802707848760088707974280609975276605222359106374692606394753827786286961439773808782011333991965752949017277288057075296900617435613410505698915954088665553673740135219423703942897487188389424286079585284929597434383247819915676575933705959165909546157999619183028771403849478355967761811992347041995230392136253666442759820702201377105038836847377777047018493943553313302630812410344121185385147385396500243218923646317050059441350092307457792854676891697816004562175022535476792466927079422718637252569362656487210899525494853059677563750295809500891797623540180276748850632306402804387870996964738818362847500624088285699596528920381751721015004116999621091244864323796261561810491257217973700752413199408688077435358357192191908594362814031923942436479064477394668649094097913630665952326383697633551921289741936583762829125174816467482873854716410864666769006706527738778198618509304035013287440098715609054086913784493393271749372273533569984494484197424460821722973017294002251215914715301299600201708264026458931755198776529703711899679884785349480839324323500659986895812393726366061422929978766996400517420670496025868893241836564684000956957972017819085857758119360979298864775183707591563380962643404910123935399858033642321670555964396977889995880132830741546355579552545040227266006608135716085526191644701021327043146165730124805065125386539628832085101553344220034140622677496809645844762259554070868115554844766869801735279478765628036904759207557393149862202660267600493703278120023861604626655944228298576227395082973184510726427900950806654016511667299088321376826108127778082649699084548134566915708843846362832916054106500812139466017144440281414563105969832708474076070176866836851582885995397645555734722272880520021687325589039155885319087822902290921008729244704631520763155160119222135424105383923360700631888062855352821086468208988765139600084622197311634347350670331808255723261928008545302154099240508055724129243913197617796392529387353595932921027482668200688424143775317009572270736999809018612008269010854975815642698374144661306040276980977991065615489156783030538403354213745304850350517803047588855692204884852385469714236277609655748505382732018053901090016388015408930905428531638337833966292443624955170348867705298441860416626211415265082586082241868254354089100990420760929231949590135463449802303921368289283899793757210759247928506577262587296108498123205955023636416430774223335540512774231700014651456006045100923190715215544369865185957373484382235110862635537130194585432648261285018179362389178034954270365549352309634326108321011969646207251307392663443471342091516927801550929548978849611739857786813777349617633353994682834008152307640345663571451844776515970141325365129645328780228625116826562421156651819914438125686247438760874817707672592125169442844319937496395538345295446259803211754523454852913763733065610944538783084330272881399602716116572932445687765626679717963593682107071635661164141370829113837827992818472761200360487812126352890799579365732734159598600892081405088270730353965329210453599892350662347272202539796764201807441835890615954439069903385139513808159496248736906416637459670367481170949340537589599167487683366089110855806338110994564513593000414018515371615924821250432402476530240404050838090444627349818632970010177745437118637340398714762644544448308171890288874074777633197953195985674135199948814862293662535040404622601194767838964827052223871298297584266958953285934379428412047838015860183064881484317420896541190347746091123232752769256337398277403891769348819328318067975262440919951779794228650459782698458254597920441872527562119150098961838530292624241105459683758490681341867398424220759404984599858544719704631246309059334507536754866069255590668362136056301648151516565229815189528052791362395573742822822728237152794590101310068300513241182078753914005336185563709204766982914704449846441867868513372029268195553546308567919773332543407736173110590100839291918481444348660196264182042926652765114327718150380785830638588226826177375821300800235322727821008529122268973078177755857727692610955691172866591334683275392443253796706268880067413946613397850727520073982430249778656163345890441934568765340055095294552783498444147001963018091438506201392576187064944596123286773331793528315502219758430380723350758724514700477231753989194396408968408772028765339520209313607484741845173942405226110879016700916885885564805703443229100414469258501785036191638738335515398434852434128176704248146103808009301792282025789096814818781978566220844114014457320776083223700289053631248683498256907191043520366962922323596653975474430547339113510069035268611598041326310632920556679932167891895160936049319729758228749775094826727304382697217997434453859211762692292164554168096422470440040828685078081485844513748889855349027912213094724107644675591451732405875862960074194599971346089002555518836113914145200391086020634316973155289158402246362808258324869155437606238984020354288339476562604701629105284536404419635330571658648034158004975112587047042753715248106618258262053982202184431562137418304588841501301604368633727320697618630208413911992402826700920985143953350864175287955215773338766257827982429203955040472931829765327936657044039853971356105946396918140347147809280014075638709004618026117903828371285652234099619292162213661639285990257630594871943205181293238573722580400601587219347953161695319886694544940014656202646919731342378207468871568781233577259550729168098102053080229615520111137422606044711755881097646396063096239939152972933637915479978079348596856085136207386378290100513289613828865652651778646124712137020449054274593883230624660740698429523335152493528862802183018159578720275824647752085966100158864855774805355505110397175204932959939318238358107242327572201700227315565261824841952187690006107965969177505834559634255568746070908279711541544690097618520882199233589710792937755581320847858009520992824835235463359634683271314450522717058032438047355775360709077741559025734343403888529313349846954797066353313316612260136775952719153328462895332267397868275971573703974402645443391904216661716060225956385508340585060228390586155401411281308558714297130069437159556097731598607648372333120193562182828946352078242312571099166182466684428638469212465108474676522523462582466748895850800908173901976394893555392927706347387894448711019632952149928850167589876363248177402396429851179978040488495315318348459209688171664166329824670024405919715012799954882630991579262043463741994269919992704676851408787177553810604395325251443335536414859845545808163566500516629426526996685242507486728726818610571794246066557536020196342412582284660631244356536401967935992893381164342156740996028959064036817667252106857424703645114107849041426886060372534215253598987095068415781170299282581743604378095544077918389320421748737176825484389233099866296602217093545364686000304042055384163789214920988551555382148075092948827903957410751231085635589192554051934661128938094469600677600065682538730493416416527754393408198591026091381909479716848011103390594757950970073405683807610106134201410012279946044093937919066333017711085466363650593257079241075070628519447949235299630520445305683476613765672700481532056832009071213109132112349434917155303803724700467793029982019730154751208395088487266357108883055319617070951752325545408889313018764559566734325871725747536428774368386846370271060731147181701061595038506714732318384657354994837182184947920904417219942222204547425810533562385724723457169532561023666771285958823883308815840723381181602377154970272252447573584040660529241957523571642299345004593418774970169331507348118417659593381116131524746395958483261592625543143006535563898748713449333294914814268755412358724262329580746328429147144447208576351424186421616366487704909503803032251845369114190370635286790659755008231685022047163712477301475966504791844709374335663243583266182995822147375594512412651372948062233910805348137070509747297667137796748746991400842967954965403036609424313982702881995016411910855258999525197859731467413730907420393240492831034749870889367008866713233278337024672121609101688814646509824085727930412180452743387936105837452367753140085148942663083852719666378492022798960203591360847676603349928172995117520479746541160971766708232038128321323001258205189520770450530220960576692835700291141231836614536478599202775093187975989050289252111329986889995934269147966866209352768452181695884196704555260070185351211293845496005137060806975863284068644215165326788571983238163403254367765679536371398471740286535573811149614895546784371250669327970086816215183725208597613731530764046677410243564661275720659199263956014346275580713730023100214053619598928648762803449874283940034504881532804642163305586034872122499246271755943633797429284747809310317907047155491807124043963364857529525136224007888141788303691403475350325945126208947270656348684121134400797474680370233208834469476535291161428843318002512212582254279854971596976119981420216651619403198505454171785462800055264548540186473401805992755993189373800090168451728475130283841343113116277883706250111110731188951388757404577820861321177953285453895240045731961275218715094423167564300198901429250338565932184648639637966280737772586601018826749495010077119790478108706007409735581652483302013015940746481072714691323284824814262728564430280198837308971719185183843829117576183897361253324556556942209781300370552728300849496913602239098701182235935541004733717502172296700485264140482784874115111652134155602187562783529162326250098669535178168011310246532558529709437496316132543502337434310811126463452181108151975639907058483160139361929375461289113336865954551142715764032688049017050674840541898366530154039384332358485249283196490448370529074001778550301787259022747062208834913394527769011275042379561558350613500739172386398527089803781712171811682658114072529333023520599520789874914390408496412015326591920275180287176855662296774229753884001478868532327855718696726433727120101137988914163603865102714080799134908441432975111697941304877432498388658790015337969648856703484611660485666748208736698800234380079515147301452924555891244609218157085691673879146637820133772776252615888604668357316347710258193145069768916457336646637517820361445368993223235997425077570614150062113149539276731770312001353529874504625655688324024871532484701670201947037522062728717757120485089310869399109836258507687946518473819024552693395482635556498542929604910440788423610123852139620143783787876280723060846440148269319108820778538344464236429285569133708351096120290563925557168974611259678165375944898695690769534211303323180170797943095948477438922024416807048402978982067979271137384229591444808243764276077057202280763161783913469660830238563237464665958100337334478361976984389728645856648965455657557561583075938696731431561166768747040548750538913282267893715273368465397134916779074243339880701522330846083241390077628404028369949674934888079472451366771541689858143447032308427680410669279651112692840359714132491720002918944230497578464494607088095327088828947451045821071989440070766084795253433993287745949840502314053517972632967265211335709587309361919652928637263085970051291223588276106217272471768882488959024129579378666867752745883667020223556019559070733240158826865291343840457996753864004026162316896440957744299174434584273852338074581791991826643962124674334608942409294200884057747715844679058722674023409217758938985672871674309176563366405460800639128950729557759479142384165755767725636787473303433602344666717645354884209055950399980956591258698959841735021207121351601780152771637826056170843059241956155594632787573786590995714908515425789092743881508267688151319764368838900222957781045511233059305724016615518880638918890318237228657623405822459265680463980471542169958341383460199523029358082197437202481392580100121174992401940403850362970009395237616991198920087087074922493007539618916518476625697675644620919562363108021064325247487959091750565675033379565591997805922955113096767279356873480681464434816199565562043516393087503592311668291438648631389281301982481990398614085596187582362601863547385434817563711159588418904262826664262972591829286406882832094678832685407305224994228694668512093162386052163167694457644072618652447043919476795299742697367398156785601768634135365541476710613500916586457567241136836212541126451933970852708663081767138261223709217729310566249807471526049739720381059029169407068408772376981549328141372129869617619381350155941592363594681741694856543643290092866707414951947695296298237303754094040037044231832115125253020882455667095907381695696086202769208339168104837262183984069115422339095308240778826523574238040824059803651014199929081609089508339476987572704646883462782349486555303894753595733444433113739197186330472286805096798414291664756438969861987434074749433105108161615578568594171806820153602867772968185347092888400959781122342511289208515203029780994847429420802300437413641296621976786858146750967177262522740961888765180857687700884506224939747899382262150390156012546263609805732943603514689889725532725490908780934277924626853408679428704655648050517547505737167552330289388207874137232593295258420792388264871573177837537659688176769475916797904081026639914289970075389093479462004433938218263694006243548137053034998878574275081325859407985526358678896275801046318296463773469630566956783327260735588850887899826812143766308252557291621555119769587869984807239909136345424302640773241689737028202510615250646780111024049461211395408016415776618523496918232998002536960115963674778678928788265360989295641151553639674883009372532630425779064817894242391168274393765144962999834293980908622768114189277887369934503142161722756541436179399679319363794056122588516171540001899784689564933984396115971027864257623809871622947945621813975285174391366749949116645370754829516755387265233619037046847841049984762796095311585017172779496920458827332520275501787749429063412774900327494040923005778596955630522814915587119665952719214145162304037560730075043120954847777222430375106327968961374427531307097256147779388222645852855514684025526121821414581048121166899223003941350848296954322082771900606985672457494797411388368406164738191273848753269588218736158469817418114415915733873153643383188905652032292119612933902532240365558346344956645442336526251235751230160790813268577522594778169724474480033227515094776539415005021819404353067453192483792823143338027776082814796840356785653398958244170963155389152929745961431220592336464579540315523517494147723470162523824892970395700799375075514330020245913318465171905853329437606537170551172910173255799787896149952404969474142083830157874217504015305649823244413122602369392710123817434752035163124792209339643632903385467087584970971679340471308504335111312492419197276862204782967152753350129294280097100563436180364293686262670381664802295155565918226002713801182373619272777722725361244482932175772851199749359293091970976888108189594851255103167473784166086015281162190729529889337154743552778808387718788340104981836316181581157475945150762389512831303221087279949906393285666659911884415542543528870533086896336417903076735500540251867447491245707941857732882085123930660705685859705095864448734133784155395432231166452358723755667743361170768047979941299016294426462016121864535161013825506412681580810349559527774745742284516154117935286511932966912522995100248608606445323722729569553314849206776625083815254267228658876841290709837523356854512487429790305478371647148165709401879813233019188272409459039130950867371509750582743218685186567830627667758414892865596557579307520893801056643979225918343739022139215958427220230180257323438706486254314813404351693428339422901064747859940609510406544118574008749784439342339368200604813802511293684435395064482565290153472070132195880267443120275049060662034044562034496737266245227357087268012761801293256916400466764952620520907902680251126878461411464077928342535303276974792886406295475178570110778215837644551715253532814728058739708049799102050483135847515607760225078488962681516370007394461495071957745200823260608786468797481986739970923403065992927361136431012580852423780843667413594287972153823540088189600192444790425274274151221185962779318166429145576777775513797802316827271881886718217188191582842892442346463836157309313523563159763172838060886685220463548551479935329641723902275177391479494144979371588014720454996158697888711866859052510742273118609524541886009286370166724354382828148591234522562622811421044851088742051163650644504350248230501030119734091419211029490187862275250562892935326143214948404350296724387589687939368436410942561236200378075844207267684445463453881299443226280145951329156657563641728837109711479104839898613508133067932717289427554542634902934207424529739805558481334623502134147896546842788067728033968926006098831778316147765735150656831430926885580006276417117795120695822770723594578501153065832212428003939474484935106469886833675325323856213077855941111652627955963147617029819414799989293178811233838400695448904231274577231929837862961600947806472966060659332492823443503336992412369111332175307513450950997694980992284489141814496815101481279778290335357476123231175631839646023565749716774462642113536032459309949840805347644712324357251007550978866328144324886153752724187817370330173527259101361712409772625033945932207826305653377060212651452392149063969049894998484830888036234396824915215620632332511612019009891398328658306956823129166804599206232884153142076762823239904462055882432222332818161767848886997957194460556606772120312653718061686792811698680976528305705179534418981417603076500755407393636690473070959764724478546945895130490173181904715337309527557454335175789360399059253662951933003440932132560905295599677169342829820119454857710507943501441505698899892564502953368320647769631794179877148741887389633505980428647740362692666011246069925677966813253391071918525765616788928020824739803288507602182028807543437900606466858668365313062441110468651096723484678440739589106381222232282525348754362828773635847441472261823730697199765076975726173189479767151318186236493442405401723123579368379889964519492403781245444393924426781449992319828848620679709436327248877758037669219404326687498064881123507273031287287287365006702690141834682033445565970439830607964612737865793718938090455728783702857268228523475592296195998128920348067955417961078988219231600573207916498041495227445688028481519636894533636629796308438003489726246105259165958033695800919044727363057799135457092492374649943785671341105273827778600731592060302609109246434764559995557210322427749111756976771007215365565641735791256944074470442625866448744976521254175402374689418992232860252978161421812038972755852274802311126200716437673759033752176245268830124576939339959864196641657086542621397127267023180237769434863553371751419174015207537284639010996781271205442963793563643357272642881274636620464779115651400153329159067491536447774962929188428246373466495694080566401842876416604786081521144158981868436096980120574111840578662027787031550897194564268607397344111070943532895380056920841173107016942166988134274833430893358664169653563258338017649452177543886410297340709629543670503526105640441425463967151247558235121694647608259753521496899918945090139747268545680586821559964931423281658909801371970643933214950929183797076781185320989915914478024540188939155290344281431691025254419747505288038632453434154545770232378349660127434889667729983587663077606947822442031326649775591628887992672099785904144438425153062919899127964021475283792711749631031742609604396523682477253909334934729341410769371547127935287589368772030142851784268813991485767555024743645018610187432614188739853754403569576980645666790976083357772791681029263514792509491465212083382742359427576202878030936795705326560874767208368051081222248736678076926749985866261742336199960730036445905852033374044840229786856391371418390392422820442462535710340437402837343957831760355502736805772534889169348583170906365775302783152592247239372994194204939126049852217203006336448017151263823963314675833397412352904638240760570753171630798407322640736261705312329648482680225245901893351996239846287801836714436635686133277982246765346839376028106901970036765845990530961219562745071274677954233026906507858277199675329214065573999977023120381574727958808985015463237796746621628199593266199742466832952129243152803756192184571947807715923752859360036124802329091721183274865141198647228835184283755427878812300278742977473241446552058243957041929125133187825765096611041553386399960152447860464503048816041150675633460277451889507457021684477343899651038879945174707934352203026275510672634621600614968758464476485757875460831998925137832994837599556807442128936763042253224791406486286135137937518607936635483866354304589168611974459607163253467312959540122886853372945149241003885810686699798297809205705951059499869980735610917433097849625791218914940602331171529995962796294661867002427181543682306753545442139824601563833618935309223370962389376674798557443642240001147581163801715971663626783240100534405513799072318208719794288195855520313405859579614244795789210648052403638954299869064278460544136708797751476965786411512160634460389743824724898661825118404893283853741293238748203798363444507628838238729942102751088422965051974697579366494792309981465999895092739445940127569849614905389528333802902636314632744727843843500039087631217882539760948480941858796520780197748968001284887256709215038401600733773641112937687239210150827067370371750760028480778066280678727455751312389045005039442262573398835731448961563766734150679652023831833863091516534352110298327756310373394912831893128498261304307016948462208905261785976742825870576798831371787916065080522430801337651244707580242580305624412922438827811554840870852942629724155809284143273009569612769959283221695809102973393117339363711058839924136748532762887183412759764244323573718250562119948029709718282676157031544347444092771485079664352250624403912125769247839063843735684215779347487346340548015383395672572228043901548102464808061043674089143920094408024668557074840164854829265124858291060957473661403988923606943389081710933817590835614964216620314542445795162260706757277744454429699569042715640816190206636017169130754762736822376973598009607644938304104149158987476132592351887477516676757975779843658689446650149621298826248111674002757364072964719383761975994290976685083758854213050705728797896205921614745777340619848949137802881741852622719893058384901131983504501154345924014072520957952862659331227252125838127329811794469406723906511870389157691161982412658640861216617462225153463138768645831660161868351100562255438979061326361813466536041738595993191858232200774355371180789620345861305415228346647118143395590770774809182174702070448359907518923702582410229831883690541881476242665347453064627457439996715519091542547947020063936926138940371526946128445884317419060404390358747399288302221504787330777717085462508743697328259885939345609795060676906729151931459221755096917602319322275634083576202812367928260247117155639609273640313489511965611489485447988104319224485962195854796870569585638657636447396244868645215681076787321382049074295412254930146561661324040866627337388394110949495729811560961493619988329089840811927926263384819163322255350293276820952759605210960975497572734295387900197190245126181639898807072667525672034616994554522630513675062434577338336504679041125029711214606435097259799604487572334566914924140069858127758173109450442929347338612951548427741095001485051831472366633294419849897597083779679006246691572732793720694483824884507396158941519195567336865928987467738970275051425516048182973175300378966699935647088848320654904425196328608911281687174991955983615577227586394734610329273350793682212046924067576068864420700544391181871424760265056419124874667458968271199246290222043052951288533136138264111738579555128057708564572003362135540803203796290476094381573212288176494111997061760841279470088886422016641376827909932910940818367709058101840205251790087596931854831036459026819051456394382367861877668562799486131073916583709718557619396637560730288011494053438495093448097415287775192266294406343038398990163589262812420504837454987672642654477207864077764488859848953270437510411593717936694753404017376699682144683188736938507826503918563639350354747945284882573501917263507460406148468820626970581124477356453429055923654152435608829914818610288155485594412511404508933052172940447941930411619228860765679685747118247546548221982083176977094016183162230604773373620334244220348565039243976505400061605841563066067036485805586934517464234294076166401604699568850921547835123223892089354858569691814622021313982031585554594261486235186427865641766669681676523228490744748369567950502428570248186380972522959817815187970492734792393867277472291528742654801092214584663676026182566005401017746382316898817667509908537311612869258053458969506420693340826439284330754595867809447955736114844658337413209360591657677774242686564796009702970558766138969380603484724930319843959287768434949805094214220929523813165478275505097067827952014079547979998196345959977278800980417540979962421102039141901453665640503198181565343836124426918354259335443374433536334901288648041888364627956039757185698930066608713305352249183293327283114490436539864289680024727712819703385428175027672380411302842703341493269047634291419049260243700704293265172089223430676527829136133748970166750574291451638949640826049087586276292603080254462501518127618724101560024268157562731563635654763071916621765229153445205389853139429860989491605610751154758608703349954152615520332413295271206504943644137792457935770754487212963197188070719654504861011937332143175466853398637683186506184621430890652859660526625972059787758469654065908634357992405020460764206071110821495938366155574276457906978670854086126547389669401907016110922067148699358191075769333912673149800789994209708792457620403090909774200214734856844214929273439980711016191080051285495469913758312291693403512561801646822606107790054819386448637816855686477738541967203254286128322016518335730929967777096486525306316980153825227010406579202580078840463836975029909038662815714604463982002708854183576733580228510385002521632879852900508126142863380059214649148403336947214018051974508716882825159865356140630605405240721291305255892867218206644596970110937697761889861427576580582126976172978633712737147778048808433423731696428795128308414642505126330045295786161749788324307458195099928936363226369608290188127081600286377994784483158041123392482991873176757681391667555282551107917096764633821030786857451812745009782747088094771938714215797697627615333912199319350556033195354272887264081210665586322378760945895163955892997469864569450539696774544235813610463006543942024532981891386401544699109594680338830602643647868255586007505433245889410812729156633631803500907818511195725191385016139173614652195433927915129640143726036317118887819177971581929065964595826743720906396745512247115638736310061904594203564903806313453647036177103083248791521630440115344911263197143620262349888345525225364333853051129964883791072665219442698843148564946455227684146547378503597079706552768489678299656789167650051327345332904589583697082751467046464863815941006038928224714726676375571920951989204736358759439010393392561772344287548893690158617357074312864320273391377603689488824507683262090399562741414999853346398334608396047911064896853191096087251212431611416392072113696347649482474732938636963372681334137802779147847114166476171359938877802537563159406708597443107687112021869082196928670909070487289158722705130494336481579085267184789874397530832756147098890220012565782241331837579702132373275206849093121322906061673442064051637044944516004055620629659533270418661564511723042232926024274465352697327494506277273973317764035653564088266727176796054629705559779107088287689761362244832917780967429959009238761496362798165709610023396267108883337019325502848062637833174806597221982653996643020662322669092273707131648125480903708062032073211350669728853797923306335267268002583079623873807909949763081317618024580401884769079490014323647806408091495466550215120660638104972942600231476888650584108993609696357493313743197217340240128147709519631669989153954127076371665720133185451996854150643664815706245842676944361162701767728784975978517047537611120459663660571643624120119741559753771685385502813961323207487863045463059977659174375967942546216341529847766873272616630031966196818123668702089470711695110535101037354723088718694932915864691259143069021203482814582535398406758058314607787880338777176351344543394594607380032277455271697187573571501426987676705790223989883794660856093044529729303661190891031031087976385074326409822125030982719532746077111818194653385314391842616961050888051193334298686204022553037694177676430986249257922981882942043018373695877605338559328323799260405700849717840807966861752932393635396187194029927834109776848207764761020641718041825609956316163841560475363706029746220945688428977386687301831239816022913647304818500638758589329342397095491299093165595023934028511963106605546282773104572694185232921462921679585532366254218494299636710269679784355815094292340630087948538214385604012081362240098606189856317224848639997202541824815826636067875280528496479620417914963925365419122696637280729232683980907882008904356901037438550253102469400416089231729905830399036209022119744786897707046693472869562465156206695717114374545381159743583511988586622801617619060055864031822373829000760069556241327671933271690383096548950836454726091301534640494232897757062828185156733984776619062917548744527950422603243079317202495728535987246742180166173882422659324838429115642746206655753150954213589555128938920829096455843234845689773771440161946891113957186832630543775193601011292790012635613365697851463581761267438193809256527900136917952188434794971587212118762958983773478250720624379969269437602830617846494037443043893183415783745138083549305704642266457087115696682493000173150372405786929092284325915678858503633117785282977501226931643185006187258943705049117172231295200497809064637497606952029907969343762178716155675332664095908436353522170889543556349802016270468001889104887191818912790416619255606721766277363469868837768162410415301758699043016306394277508868894088717328337428774922618146820934387618082997384117573659258831584979329688873670940656834199605347955920191343288870765043969283339808204776890526338439034128105155157419059072307683405945043355480088379533748759347422618527132906579571639026139861078390368582203215121073332868828475174663207769390609621415463211448257777566693965921706873809337440774946372784743488879558016411649550369375238685598556731136753043357695764305725989833475663624273866588040861736237421216123687726439715774147151434808998710217076777467893852131192099883332569479387905720018948699461550094548589053578655569868614385706390738003309761541037919619135543759011621925475723194180451855647026537732358536591763050759317405267669187895714459718408565114068017131677776250369523362542283660991723902947100773766776961116819414311002324879138351499768209257121518818102232404958903629099645283499302590081767767167428190665074975596517534542161994255143730212809789467670777292648099678453155524925216728627510799175673038374119485435886333085840505974433023573770276077643358724443320196349775437970044169845366753428413552081024449001839062127596962987630074308217607117484783970988739470164613157613774544261166063398899367105021913193294352770970792707357457535662452248169630743897411954621356455767132332740601806963969125459516774969628946098841456088272063698688846444422788027149467739175042275627098387280233300991951086916307341556259368867254994602203195096529172381864405080309071330812511051658365383211798764952624053137102610176724066995412520723809709814551186715546577897714842094610682066435544018634953919296631336468928097261530663447988230500504572623674626270319200299965420446705133231645469280449376899464672585444406291102955853517057019273037050882197102062600202628371908393054392824337893276746340718104702687322627582447237275226230727588071489243200802301631461034565004829119707296313771534386091927425253824378374504524329442846258326559758968920361373261701600905793412876669313599033345806937961995782215212652628070607716211705026622961637781424274971994467412482076487068699949094819099131810470846889973511034293963915670464585901132459204076371489052973334133492194943407495169063333353019128316535890675436606101174517561019426460444585035061400912394379821740844201269260889326698391585788338130181097360874938324522702479652125273546308056397421657647545502811486304341142231748525406659405194710602618195949333339437723360965212345356379891509761692809667082732090609432496241305814903701510496017594048259217833946572372796329801377182843141836550487840866193297207942732345846335620584743109598170043314990657319501001529220139790848628408624672975820079261693733800034760522268101525866992294979089954918999759140918196452537686526919976735572697886816793926674808566214267220508283194010544331903894439421992392117410643783232130259126182595533190599598774949861781350685161585012986014737807176890661467375604510484123788599244725989621355822596665985462673447668614048525237106631867676916285098293729386745637772656027135967924344836234725998603007885927850011753473328990995963184701504181091265039501360826797317496308273045682071994820294703064872502661947034456881804209102574429824843225267649307772596795209612058663570868445294597246982981229570893233471981532892865768521036904085003531461222947542122345060002340624892362044344005959355376541418110881780968265346104589031203420154755532560048354139157589133576075885139231720903086608058803112995711129975274911217232772565427398044035715233021943033187614384057768202155736593410175420167556587242828414581325780521730237924929801225294774831359056100807917136449414504561914137340770187967774484270710100925892819782110742271033469198757908362999586770299760709524332441253980504682456010270725167689902167159532762374146096401070610989397031267079476624132406082674848116568910979694976860007710642727885757174850727056437137625082856312955855108003785620679610354157198095912058605947850949252122537121572510853047016797620348056374885801630550536153060307449785743934421305540340736646812568379828415054373104766311653896365728751443587070448154892489096010477296746016789949766150368921910048608742570007257084072921019523065235927130589037777083861773149687280108951732600748933402867820487229778045516312236760706311838799944701445226576744423254357872929373474802076347025258652483730072243491689710371965758915706476344985644072811649211432790286554212559984084331293619201319404054186402297177786906417619795636096917711708737695186710204730660388338394935459959028265221682647481124290668559007265799347128972229762303394365774937437678442144507706770805775752174792641084338123815010215212367244116545075384892440228576444589231042343929355113382587789654780862520957157489200495832186263224485878157009050782488486507912627264171082706780190754233703075573556069198355331385388112634955727835196697374329917397434104663100874873629378291497180591091484187421561576602177214134304224376760675192130504383746677851805981052345519357105949435729933581815418251531498860484676597955248033197292338440265357144852752852192301986488605426100553241160156491415207185724757964206346755990345740541515163057321814992121934149794341969325237433462951662878912983447623006099698520879346539702253714619423630838598253122624479735314924552064768745636869757965922002939874461901349982951751138045853881099281659390715203751316766270879616035290114935622135758600259304236020858661764943524461925707911485440464993010168595803203012975336863264194892280502481989802741475100183835550284987039687201059573435766001526237493184077522735273043106141382955577291714256396374976794157467438268465639532387837500285639126304002150574038643975561169650312485620448582838118254062753488113255184816806687781839608163635890098380917290630698089559495263707300048850915415273503253279960129332032999210993684089594933541180397426526138431708282169436207497564089170648182297120259953014903932861553734761236978751472070622335999405674298501058109931580035876303787799381919885280306104077488753224320271695738228034145759006118043560896193148605641143534882664444774457046183304146665514433995269522574036654702447757074997952362831925086126978186689355885523149237720869056634542638316474662311782376436728205816153256977649780934904307154954524227779463092616774268076883515034152611886000844083855646367058263299519494191628208660721889984607379414905339644499859043758814585308249753755826884296626767094403309324220190326402514276296577224735834110953428617105330111108452862917881378348468699908131354715265292285129801458015121068198826469644020593175789993224980221487811640699735215550180567181420331348572381951667034865519287453823749113037147475375426767308559546188048971633265233140258793261891988317747208547079975430137251016934926351460740812871423306208040302648065547160571866860245659131181437432134634056171439592330053822229503066882561250200637823758318912307045017324104153237081062114459829628606247904282329715224714286703023905785784387397956939472908265022414228017890866085105372331093991441698851380929498043058813627096636525813099678054627333751459103552625428737861395154935009652032616602509119090489203798712927777263304346715889170889262304252539064723123889472276829404101431270107899292226012557702372067718243079500759238201589346448397345644943832246058447332968624903173490899301842486566517983895237919708421734936462307524119121034331780139801446797474621233565961911860213429858027636714871796072797713419144348038735813626034592705005707813921844857154575113614527953539475999968205299774268835715151127144046834551164046868395791705995741468507597690597222602468395712957742615360002960997384352467117132260619218680855121676522889141944060350363690094934911797555062902426859415203697235031576800103667509143490853226504757296042653985376749863627676820677248437360777707744674901874634202763542865644760078744674787964118144758816051456764659564491600423052081028623759830487923988029506381197813873536036398300160010449565290501695558473207416013211625663746147430003634328965341656434166668991375496019608250630372346027831169368107922644057165102108803736512388469254761172926917229231116650161792383860600553900921118710490057345482320832838695974960487980761002830296533599821716390206082824098214247154426090416334955675174495101052022006274429178217466302139294925814984411327787614193876015612783477489498427338802297376874190741018884867003604471562738500159100911443279712083070903884284287879143813584924201449079537874071613634470994388733843006496301856452469963317422007718023730338484025826360549840793817448408350059792690030690550826222772375427382415282138594084698233900716352221438019121278925801364510440568120817397866611773199601772551759065928985021725631404075652965304302801433176259869069191844502745488011591946591679881754967093782775359892940273635328686974091129559810854374580538863844676285641415108782970394679684444350839046588840876161872683199665529778448980450509440890485256066832496240865872302037110821183991229784306986418780915110065380916671248366374322781954545086015273390354939984186841545466109732422934971593197477352867031920548043679390494065088659181762281370056901417218319432243309445259620714871223659343041622992834652146192713455719548342414757467414040813247565268787637758806755827069156374128931473819935275495434794639548025916715417996976923892225128355501580683698967764006324461444780638970971127845870497973993187956827531886298010380194360087108107883088791336000333709167831949159647972454088120603872628101503248476413198348162093330287338163410896468736834022068333272858207864926832065254280905601647530997012591168487467473792043108418489854534271569833385984906928220829322296792694290249506116287514641845817173657651329926468795747606125790948883335833970263031138217450454328992653236549750552754787419068427395785946138789443036724387030884896502232839599462648410680596194552673023056057878008047004146258665267347609527928831879399216268979072359444126151520098367772683075947091156118857640097974539001111202158260821634706714459095720871350899646486607337398660916191373284001064972182387982286798569007765913573726779982992992265782342265244930795743358066388323074662563043349942849663078815611905208730074969076978623374607636401102831391735618407005100568133997793068687279243792994744885382376550547538368630030712708989590600536412769637598530355010880671548262589989987074166242126771425774827794430846164127499107827988893452997635860778090589609219902607829542578305430959043666878425683539561528868815551157878935463521830618156242912199087836431583064108356216509683816899193588616006566081190242322014873278114475274779694979748086519342689073826372737408931039360969375323346726635559353112467145858306992344290369070690310519357340208092389119137571963342579425311659326170694108803731157540992226824357051070271709206205045177568006980820868317459497106681246127335850659370545034202683433461880170722600534437062022595745682699047266831383536477992184460542309054951042701784781715594649326399173684362701394745887563943519653557662441397951118779679770465653384822719963099365920947784439096244970730981328416976841238698885948737920263732920517757514779302477942053552610086781199692626990477109882911895095991127206824872612091010602681673267320663265153184389016898865748014191619714005132253317890411365648654438131737445611814889242574047886162644179131255033659099079680041127750416263431927660175584984287537064186767975773092680276503355593825322468552291615636636418625645218215675424803063447732397277021084291060735805617711590533120925168834409016198372796507894886747651154340403309276906583438619253825265681938927894546173237667896056721687164601638108704090145284880572594033919024072433113739019430096036431648206540948934680775372473872947049126427708664751915715168345179060437416657655401984839437358585552769323953957463552586171733072263584197980036388649289590218039343233732308883438313214809761361068793523571029216336630835793094812328042177604951851657493208187125454625368913947773112423930583205665920208611129617101201687076512040810601573110087947991906851725637034077307202303869902049843966122106480002282106106872111143569872040784133623525351639727588402688059492964266037772002139719638921013616868081816995555427863920100069623707699468414007033878956321604363554607549480840232046146063809292830630816881069467369665063104965851278101695809898392804410250974374294229708739753017844847276709821158502372678460354151920485185229037770017043352452678624943716905070970836425373403030766824102404726645950139350046517182232761307652160081065276515917818359202808368409402814447212429602855203056538861253154360465391022329336816133125296021697147044187521036060383618023259090968037407292523897373149004011515492267298753115043168204504287220238125634227391922185210435826798335287692539017612605172525049017376266310287704385423539659823140950454345672206705462383667535974292300543556190926982367542322081606721375296366044689098277667997761254743607213082690241523582903102415953770361438268972995225671437729031316152949620446358224501118916290012673969032708481278561417695398067277939800329357789364651086713107540387711241105672909846795700509918739069496161474035408819463326683576224744057325493400807055326006778181200422978029903528853433651865815382371808862454602287707697921899989010957767103406991234552094145436079457010246165161865616223695335064409326282723479420304851308756479615333995028211980777456911201371814571712968403018284698819506377832531892289134008127772643173918483555404197826646780745639498574072848193691922652582231741450422610838596201734375315273372932402778454980764543182898287707642852615178638978268545391056983869423329920160624294349203836734199734610730104997292334872943498968237756670672210379497084788162845632411800641115148043084399471578498308013729135125373766352867297980940208063729061836357308356786633831169058112510953301332921335821502091689928131599160485529254724677419060313837914496022873384356526782366096561656417244814406290783691933384725792074812555674313662683761526653908740116218563647161870358074588982779716205492988863311812662574489802327697276020183835894986713163918088669491710585775977165350269947917131944967346880482205587841911459777547862526551756263740915560026243565138555149840399069737012889100687518894935859500164548449715811731547897505864658521392068149133540716822111920411912606289054137074454286065114487852817057123576032943448219647167566181894608322254298211397035697782144138151146168887516427193433478682171036995397937670988985236518725059184351942081136546964985736705058858372227262197782752279667690245966260759014922582348631425576944141779371116249533398237296567010462782041480758096024908644902916026939289219473074041308471160223541541643801316018779986272398214569155346857745689247885094617873588994333346049880605668177628600105801454228205006654286523589632281970493843496789058533880172683289803987148703534715879425861697047393624834303401887856888874481961372419471745759771059948990187405933379943893377363531187817079499115367889483717324780818173256935290797044645567348870945574845543513169490481204425586312408413438361052805054646155873383131169909264250888498930369373219056221336443503272164228996496641801160559895955609371675358601328361371973094146642198549028571550849092476709121442817137950751536643630587253458491518678582423997662918234753845191245175323628768255559296455171796016106788727242919460415745197698452368643177140013866569986737723390003575394136679798153208970370686795693746291182542200265330127598310487610022191818447356009572430460381506791536842406048408682949894415051123130435672004465847268697568872525505337150052543605258532626830561146836540961982539141092709021638174662371483078919892144835969447643484298918010909897333811682130803082678242540945036848272893306584140523796576561212664352995790122062052836019301210814785681723707948145613154752149919284165947852463914618828165274053209643424821952232784374569552157332880908435262651550514605121829880588002730551805001651950407043857120439940357983330412798262365587596431932759779654926083326072418696729452767060423130422931533124210760023871620330973575304874403807849789456959237043715066128263075996826260256108582482900635619384645350503237876301952341109627325113550779231908499473207977147594394444662109514319464133615153008551281278157974606729830401916699104126484786604326765139092919477618754611463470678742616038344837545906178719953321987096087296386540044938144455006969060416592683789438241272931426360441496410580863613111028254698419450291109563588963473754913788183655534531478471622342266853045751807040962942529026781003783070594153308343839815391188052074201631533735321259462986306030764601305861060079371897275905820230434292447862411509120492498333429067392820860331019935492787069726652943063038070337067046138800806654501072243664582031837177015726955821981193496107284048656812349529120341850615817297603389553252995366291499254595430493940001211976685897771127065033603943748102026528906479518159154429574302492530835845682222090419217733742563274634150710436807759311388949947323135491847771568209515196023207331524304813520034078580012994819740384234731927337954214953673184137268323931314298977208924317585190633410253499523327575497336212239723757426858739602737537370554779475771087537869179666058423926217220351306759842094958521041820691014710764303374968108208789351936098142954574759019371820716100562514503977974485579408484242301930590957823870408097037421498515288585697543159715484658221121576034736785382879037567895211675673043911294971136117135047898664932828900851460565896935427013733477307932887872157667070577081493363702524277120754776134425853587818379155205402985620235925257163944314835776245428804553278017480837379056747435181145029154419702872886982434925660309482917845537406071249546873545894121920606709337102673078276803657120934956693890056055642885579539600196904479496063074367709841628896095216620957009200137789341409723800415505894847894388039256488466104401272539454222626010672506002805255813915602979906426233952650009241443464443570794609584941137182177188665020713195459991609927068649339170871606960320577109883038594875995848507800510793235500376558130103630189990713707726288925051949404870267616879940145033016166028636978751901634367836551116994034727403653180888864985223033718697709967598624962154446594113734634953428763954107366003053381356651914928392115240487440392320448972619681775229557718284369450677745247301147407606272931832815153120448123146368355063014062710316340408937812492335808137254664762837524771752508798860661648748162979805155348573007130660699073135614458656154926123706372025400935064953601056426177427681086865705786098241611228190842170705742696111999093139055574224768656326984114331349112407375422354185155724960324057365077310052577100231419963580645071956016916906519090250526996252219638217477435611700542715320743580980342906819948831058503985694291504779591057536466862789123158689589006572942754835437829367437364427492289991244804806754354430380139493050029235827277146903235814708161095437384278497769397370092369885039941405602150095776616336011019466691229572980565985062414584386744843485292009743198346430017159814566498245692963518053288450672545916041263366022785993973279988175589388622630213346189562371679539553795870926883844280829105070469664293902232995983076015054019725824045594973703150838721340904205022885023026164749323503411518329852272869878025949818499981840551955718157518360030322200329405241265662402379077021531329028233034740368173282508244090760727847100456089768277354064081366595766265685148088723991565462629187270015216346723338686735604830299667529662400461892649763332771817033902109792633303590253940368552836865564055144254502186754722127268184707956960233170825388316926965197313060383166129337317631161098162491418263647164403666191129870981696919822684029128364710723890161584128490272932557105351849776139848228783591418719737679541220358538351877349202755233292657548708751003843396532099804111596472618753800788181534659059588610643714470950451658900690798716586319362425050215528619857263075969208899762189616682557728951711394875711472321750876867629850211378282063062923264785157989517256931474886318118407050026208110591649166796352851409918700384660100366190453093807345309549392634498138984921718713755348925031051284035307098524556685095752103752532487259435597760549480744896306203628819564488560564775072113026827904172457024959647883695449475224602377582280994087680082816183999100568140000506208249366407391041864707144071545137004200754906619496117604272554815387506859968142010011235956603515839827553196481765238095983518929444722582565626194372973267857358022964753361359500260415695546140325097400035155157478291437828722835837874911998366302191782745544616164402225627416265962475218890239035155565814613833545558177935174977594521171564460552950383995854648304466506220617179553769215477452099583011691341576140219889137281192655353201909742830177005683493117593670203603101878793340623817390332196543935647491757209162541398174659711432028320136233596129108344443002565369387424609405557313502675070162755877310900673645149871771121397905821091537269263442136919231198477690257086018319751499655534756012248704060608259010271014928766830363450784860625525738307399568333488774890118285378148727203494592849406595076488492212301620631387264909046441214033699038262328599622688850973910451347147143478494910380555456116415924776483556059171657950221015217050683490977061927257110228793344147908634835038203134917488741638830705838449986408683798158678056966931698981262077574272363259633991945011033328276832953040731991044834106655950783153813363961546257568577006476393062190419009711139105313336425023554066416998076692572118709423324656162616002355561604276342377110296003626770964800871945512070371667679678469899092443672901563290531726997579570356182543230985224825475498512511697184680815787801042998484219464976357868644392225551165385201459226114279843842306021694015836782096314033435981881398055161051243270953099014817630016489614763220740209206403343805414558136121996328932648796974544596030667602932831348238726440143205363320621621087210074327384770053257023790432533715121086922142557465785464542724102690051072817853996456987019213360112104241341036709862472655088018650405076768770580319663391272781269538031454418950361218972971943198714663869908617396015490960927968375219219487823234459307625255497238813199589834383434667462899813305685956316780354764775056985154736641688690182493873824834978214591000133933494659918813999344053501797704557720272132440742546362005324983463557054724099983940696789855329629947216873254696237601044172786765301046369574085515751533815190054352989652791592160626008976302157139431869989673448030376418101109579704196066925310257080309044788219455679866295282033736109479207970152911457261965309408314291579829690978437966849776039193631957468849670757636272750628005989630246884594812172200528591355118779692950555700909652941160234823465414819440280325977781458363611778394937914025884487020157671416051452025816529258635816422720962332918530239444483362620630547484518925577789482570523306339569450997612108953477778925214040722723227133167034591101515557386344478393688925681222818824557950660306661355882635634089214660855810234942839056935771026512604310784120080489014214215726601642775280739355193790294597523422707945163906080447728445728502209707293313329114990815568014938783353085242066857595455847562988448517311407238972423713905470212599214848855524310942053295098903707268758531525653635703803325479339965727218982103651965172393617453211726588870090506566807786872703682211974288325965601039118625986446105170446895455549290514777658634472699306926075101335976366482999037492730909915798222307268613449589834017342876645446585378504878118190281995109909163998867341509796728280115523243429882749962043703521891319032301443568517871005691470926535997288811089866030955649874779453121356096373580222989209049808789005379566908377416525255344014870555573942087607703894281551365800135289253085410656972973906955623203223847275540729411031259558930405281036122655438712937302664049259018157409406278074346086293554054062734513485639469702757107008141401948699980111191825202653491545087260052064172139802870370823133513461930210880400036926477607832590770590842220794690551664303837469749474729822051062921640464096723649595038443047511910984408648474351193489170726444410112587222090749827645851936140368661463923811900047023429878238386834091019253530240360611407532646776034776699678372584641468783173480403139699647243895575639791939320225913167411242143298699849865977226403509300646208141825106142698498902524739615681708497973462438107356171739103958615601715772074539859357245229041207392110353334845817025535099652219013392906471702978223190430818836580756242319255388578501300470602267933278811715383454914995793667819976556268620198306957516493848055976055157239402327906767638949711657013884248034261677482703270545131499692716099998747698589324403041369453705808066703260407963122782761397391703063456021436973133891684003062283459309462713256988844619559258512776667040168501394436230233537116190931839147056062395619113339312151294718422919053856167521919238601127810824713135111557893593743144545670391113587465383611260032715727783892769099735870521193025669056210814928956582740090860443584865433432504101391827680649861786460227759523267460240250426482112366376988102185212200086629677582777650267719546944592578658976855174209794735910377657701513843922772847384002140635625579755371406544006395373286913708939923587878194504739367590693252413140604778057181380535528947701385575415709612503241566564071804340479005063724305087352309417132892503591704139102428222101247042200965973791409401731910403628182932109907388303214763167277335378491893463743661922502798413567104719228251283005951278770884174194141795050315100805875368396876449164646499959757744193862133871471252621639419246751109394750789068614861568012919067076214642328755179686587323949089829707792944953180685926266423503878345597492782143475363405578374275694732283559367845606323047611243105797199230006955390523690621860755392209547817692219206170001825064274088017665817700070447205905437835481525903037832849768573345632368305692374804093459040136614885959834255480291620427688933078238307487392759995175222354895924959319626868097512315981566626757158840726870786204523368868902909258846471814444326684002534755552584278004687203687469650955211863708732540815982165590007156300443257382057250402572384593470763003503013120586174525788131754183838596169269703141348628845404810653434044354294424886048419458949258236994532084883785573101623689335329000375945830421517168462036507393379658658613194117771527145747238088185638292865801195367978298479534346513457544267870898284082519782393635885614369595831500587019422215267950148414680620615125606758596164038106541145904919982525278608216653830334863734093078384440141279952947855252530220811747162598474732462703707313409258339135190814332262678131795480378528359942263331517844855988169681867894544507590538497800185709135158834961308421583196188833567456028812491653653501505341859203081970736282881745595202387865714786414439823102823082711466252115196568320045613669071426521778072020594482809886917103372379062387173929168514735558948618840583636952662468052614470122614305664522482731536299060513689744519701139234193080273242146876115777876006294165353939512774151671401260682364298232593119822347410670034309215210639461798806104657234965764839419009938589884047435690609201232309447361858927669899540923681011253305472259057655646564400117307700012921129051461722034722771479067024524866048174945251105873195669169854172721222324989501409485518140876868676878167447598699636387944253588585051916439967216443797359325516569563689957911495502457636439523018040250463720844555674173275226393479199475307992100266350038147678038998563904022371166378490261340348706297345221998545418891817694736216107613292273138943380710444917903659294616878385935038477561562110967101481631985249470095211813497313828676559172840985136941889454133884731673616226687396438834207666222683734834112780825815756636113044827719977090083355096484190130346540515253872270798836715477315546057676238524438061586072327739883666878131784025385794559367428877329919275827313412983269127728767857063462384107268777095889411272317470848039299602112397698296939444222393149032363998608233383361857806950678228402270334103678438053638150700872534478841543709917807671901623114746109779742205744870941019548566587008759461775289352240471289927298816554645688079612054424969937659927470304024184179982069110757528129237792595174085841447269496789535696169730906165964596863719900642014280805368176380034550370756263931741046458469768022585531961898937851527415686641526860406589308152884898764052407453053025693614496891848677072934062510904348096833433212183573419718519356356597378790829602034468801408069443056956395389044368730593738969275228640265274761454020424856312442439501469840988486472369974580931411159268055052389607860495661100104742398411596845374817143762678727937026393770121747871637955375651512558728934510900755114743550180937132493242262282941509860689058435071994427330092478363277860988652177827884019728803758239287689000261004849451660250764280188476023950121629871208188905280303265743378807429391169554159324239165215259795530721270808080834803988212606750165391937838735121307846778595024408953680313974949925446092000456331877638117526710639876404263526451247564112256767363793385374313547693421436880490905037420109382154620172062798371307858015277432042045192355100031735941971261796069807362747337784369297242393653766139997387166323468239845504652802636350566464854285103993218395945460171639076707746173790688127072459045744736074327586202733053723620542758064656309464368720905580102163024337481173076397602409625972246481335721188135072791749229205007328060641491709288219815335779678432190791485578221722458011188194596959429767646588345883876054974010791537407731526046381453533531323112732468660096260497597211322086002756733982570647643840638066849423060898637656900522252506437289788361889877887422880735056076168163400213364833467518421769426679737245801856506126547522714075841011994382636049901223753560770478726101733632338435203068871514409242169819845127042980753013824902226824829776670186601345884869503628169519021595127859332525536667330792048063634190436473102345208221492068841919398526344563204395287015413274239217206785594887513064058180766783119088903435420194000084659003677432577207434459742182509520752234199605482427858072693130689100212088068587063750194240755868558832722410339324257226804254239569536425113726517128147866920334343099545861838979727051705400980041431955430757674231581521709836682905116144242810950425553688045827003524874361900369164138051956489835596854751670887422803169795661502135353020109814807703802474695686335597149841249273876419655321432115074494694758417165867636983140132433970625636601111007710771195034625847484486742370939914727158765120977205859238125757422120139618683073005450380011815855554490354969623484087927625934414363246795885609513780451619464671279110216937468287677969898216358512458920709366324024284915200859312153286006854555756757860958471500687500963665580627351568232926817416101291464358250715197438059863216866962964143247710222329121366474736188689833012760486481005507123158279897110771695969370672325898390448593752197049866176243463786785016202954861541837308796140042710263324832678631836804259153448348117613510135604620238673659182441846626273586465338802204140789532562026211782928526311189017509395746881799867016192157457737095647609881638918525848442582864851285906255560730960872881957528658260492767878997965299526966119696021784511668584492608779271295478312198092228976929540319325581378740749303853873815658721680949110582898496448837494853500034502398889726469108001762085342651018911621396869891588009783389434817645518541929287466728542765966987100782476487936876511912136820421672528803336457957579581233983487970027054059532854405859646583055015334134051335111274799379199806068029538089103686883606272001958820502154292675146951747076348053935490150949528163809136272056228577091156226090197183991677039557913260709137387699810776795033073332335112995743422548780015766895118535890697697289151832778737202242661777080264519264470389875996716584668976598115649481801640644276016420405888827700491929359522308717196476829311031270163205443920135261055014151233032008114448488870198348888062495625276744837449306207309026520513550518015633605385311556516653391197957096511435894776917963874559039828646635274353349781167890949600758922062983907488855393274945034007531377188476353860958094976902576877466209980512444991673297619846831483543748437082502165523840119738047032671870823748628471732180141325223368479582100319147992189168829618660075570773619279116343218560445184862037641322124733776667836336259197295440645018401654822907633861186380191006365325098750098200597938009414554565427460589422961683904340115597965803587888008650460957997484678650827682265269969165242179249545402219089835766418325400360317143244542703762414116375897360025380187505923548638217043757797820288174657273147614182437624577241708346595553061468551250865998418234576702372164171407331946936899480035860979904944314352654051674122620485793856618592660221609434351586724707334420139254871293513209268307706176856027004865356371379106056875894376807125536225685256293294062850239334879017021068780892554899945156369647656619450181604460373074105284731932893885904432868652923193400584765453362805071093627783863715604467218881665947235256360742105694636819285149571783982330645991789157317382231332765772588186606829309610303388764730221177977388508202544659520867701846516614592705180340650360976432362578300655828981629044918124705835099347844937269632656821113952280272914155425025025541553485285483318353575424300950242002021051424508582079682013369798677082557617619015569108981687308849973543925835772786444285274608323408820514560743958353303559508011035853859317023773668987192129301474510537090088655143556694150806627220991269139261677745114740998408205338120070156888180738897128638197560745869638233771254413699825701553147668243661435344781608887835858517337230847477804504995626330783147423897631560295041213442889644826836569135739544433848594878320506106356917989525394365094769615077905317505961599800828564154215101285469245666020128061509867947453280017252506662249661094983425500696750016120109959932004136720395012179504668673042015359042135157594392736306215656345201170202776389924663576491099147254351739995323315934663755758305226748049002458618059548871470291974130852164724912088576206591667722360133273522639623976906018783876157393770027286145385184703039091117769659807061425585697587381037459511964600522268849325036553480443472636390789123043478748585850163459731947127015423484899298352474496658857584688929634190959060843163128344230364538489667044339425298045011466584992503781034428282262623093976503884104168101344761564782097830775739470051169113675223959055320136783420982781140070426386951088409577426631348509826766465390449006111116721215226065368037974711926631928413218811679498834106460234432914548449947781567201642024486352652824720675435412157890934975007089674383073729253735910129498208043266850217050186610526402025407019076558596560302208317967914458477889368049910067554861378238188936621487498452599459838345135290264210609688427584483778324451268443743956611545059361267670785318349460091676081243300444744549921877633243928918333260689653152856374811407913845512263707246465089641188020604716576037328560223919568569748579776425534532053031560138323112166926051010072289571954804646485346022757628145880756122559547157172846642619027334083762935543460974160519936046350735687925609745996345037782001991735725992515707459119435647142910609769185505769715414590864096224822515407288175647648264210754707984399528869274917240540984194984271001201638341686158981642648276930282143269725459455220655497215987971377539077627834094252113336078168927129300408670669027881698539059648069522020504349011440531953514371528739241511711819393951294282315351946122889700057168243806054074108398109155194305398457044983796434556732545910899575084290187113876530408204030927038255173249950328150212842728406439774789247192970148960179498171415619474473152667671333746379594451283445362292249006429751074550428389857655797422302236654192036366594817379366645925847116803314886012867859549778820074212914891043630200242238760649748010594122190949042973202727337155575881492974371008531668688109723912176321987230619948318236594106358872694351153641767980188718900205401513651051372812476856274072131082335020564392286233658728654523814967465189748517041393105884694233572958189117995002249816708947376531074515796135735255637793649057386646321617712687621029590963952078440617283824006758915769610796829684513343089971956450351109367940808476541110699854611856007889750238797954581599977171390910750888096844386166436090891214953602285243393419755585148814435230630839306145567981745774972014866560458169753635302465306526673855011021981918024067744672984308965439742356406420839506648159868633486872093915506338940500843951803916314180098476919902963850744649948097527009522514968249083233060657666223941493735436009339538133081344473613174176925312384205748585434118894636389737629112683217815011467327826154872001405603048315452870087101723265409443292404206672288723863335673178176465705456745105122590417141153963876247840682255900070003690275574942759901951614779194738398455361279207734046766397533619068371330809030541951708872611065819731118231387206916306353717485525582934872856614370887349681089457808573355603882149903142135150106504113097671179408247894532641660711463603904611780540016886884817695319983310619109811876189487158761110474340937601618862721202025731518795524058673692225585209039864939933864042561875919688974814704692134946532265360829345191354035453643548359011733436785790632024069981955105431509093347232782186892018939799061629580670752946124869595674806594200460067481790096100037303229398724639436634344994001471650790245312213374886701523551241232921495775398958856856153482858607152271397267250748351972602768383866413387062893444361787062565337696581432480867846581125444520151819683009688789837691506480775497102426831496045659762263623830402575314136569662743565007139656096381878067162561509504958979809767376302672315209635099538834134418562865417054765320536370618565747660242554550510472257623702781160305437291906437739695349554364207163805178685527811315862790797121508214697306881263904750544851211099990611285973775405450836286458823718484292138719743374676291831421390360622041357170522401922009396272999340758303572618413830702648478261537310637581043377904093098116519903881598995851257545391121065739964668718384630205773591857991698068308263622377066848257524355783420660871658996889193491943616822454210200465713187906261502763119108700299151620471695602413403800956637081657857018644558909603701471460309288913805158028450519577662451251534374455530085345777495399685494013887204624817929248444357194200046519698309531015296956044050179412581017516764090155217737970775602908949491756187891206907778821669118320341568124456181679726946015969369451415538060475457659694124322630550823093767081885324312795901265081358127794512974871699980089905970364712675629983481853668907041512622354905515221109826737460195140002271398444487439319981179212955508335094815183446890434866652993698359385174253832478986163228582544207188523883547006350000451747718402294209659567905227809109331916513039880512821432165420630791024819872689387723284881993377901531735921266105204709836573197315888209756903377738528697805665814751399137538869784172175571760679955015903619837441697666460550923753614356316414016381998928187778991482362124132338133177528911010632978402565059427245381454037467091903351162609372626354772802754523843608029171105561534941158451880346107774972430130942201248184856618498139778445778228389326338864857731188661644152819258547547391023658636253276188086356522731687403005707411063512824604065833784935711229426045554767291589327204868444170218367114405208305543486327181080946132221413670635213827043788642246315495050659594426504395053958936336208666495963315788658501973215751012353727685763493710160208193584529364762295948820358395479450977175080399249070904613396051348244288824576737963698651534032619827103915545006464128881808566731439798573813391396062081690829381421148418700331101366656185301418282053092205601004351283529404762519675968185778410552397041492374371754393072427517115897029532373488771352143242795011473861753960631969710700860518854228738545990071956769365140527311453916946117418955495637260173052711349093471388215400908343379027992678601124413215739650652132561518976486856923423275981757416870605471973693725590584559057066694937175332272680648281050846609958091810563361924071869080611075871951222216614167871052222261492992393497705320082198460103023825850422773206616869159655474836970995689328234326288567526140683394364351783895340760638575647935376158066052609524284536490704421507085615562847003939775588347578634937223220606196288576058181800547369668906867370379859744879230682390193002906763621922033312217700522517684922592398571886745916916074142273546860928947872666154069066311899543100885402712256576117657000351680087909656533324805096492012060779530955734058950946510013520668218922460166930575738696410718553813671556841892662117526968514496514726228268946800003025560549837832118552595027101964083471164431822662465588704840309291272488555417086342056548357732980270507028216606373787469354197285397557801525137651357662145898638282490863278542305929766218470452462500927053249073395107846084642866277234885452663052994460374216416843954412646338412477308048887489776351781703287525021200975670976526220580926969751499444321783711741008618190892800540683022062800168457285269309097989547223808891547446919476826736308797891291787247612165402805141098449253713869193424810883803539764545288366625946399335068246121884792270662524241808836024613061494176112322948525962356351756518602944075642562512215781346886103482083359647340311655486348425872466051638712670706928261254116787782771530515577332576294669530078204701334739625447664611072177844090042841883147247687226224103897575064653257165841928919636772428557690172905923544747764599197176024481044065165894349837199809198423993137694716908753352613563749933414061707454433074951029944516063299518237904218799814931254794834979069943030857966261888934124064983442116376802868794666820561581427163974809920413943796396530679187430541462146258532379865833829915143070216664623224087536073503308778922874301268415016867740194349441695115094535439699130905983459912054749964816216022367992098301222308236820409480352200046284414617320771183173151963041305962420888250658213086118772697109395717807449570249973933374463728218909284690928951121861585316219854543084816052236231008513013808897846853532542612659344250733501220007816177358263796875022579782806350131838077661486706400584548040802888075262326100106619591849611039904468885145328060053803994322319889344388142035495764082913241827025201245490395285245306111291101719621509358487571179876703465421856161461677832149196292239830311575803985809187562540382695904454030951417688217391806453543369316348154372557534211326966187194808034434573081946555302527296537491392622378924325422398517133989291813401738705307683910856386779060910042548501128834661014945449666862873972387200177664970932169116715411672156076427386763506004724969806530982987412382245676697959304883787672910957566592218877021909087839208934523635084461843792579077338855912319152695834351163163420812489335212391476051426462916246692894962119590050963570519910663633495567347684821791442420033834755782997709834409058814379941977879163733137327192580139816686136573016206173283521698151156741351143555437500610172141557861962456005085326260647330298802953076444210230999038309327098464575922969915633666160067302365667932359379909587547690844377700056708860424855024565446607648161953033011742632205114809996894109463662003482678594074995309700033225609305537251058806853306295965318260620021426408729873395279735701393660777119024435249055990567092650059973696184767675543892796248571948602770595881902406583990652134030741780775501720082763914681024528529973674720105266139939263810360966062457225090102731443149313302517715718819349204024823129504198887094378474727271327480979814182985513822273331792320567314184164486806532951563692693605931173055806868951116250214990947493786063167953752262726162438955518060110553371389368075896954809318506604881323037599463424350038280197658255289136394120016466857362606864998982426845248388775679683076030627468852110894321826716476271441200425843246417740911491635555387576426544771580284662513380825419238160201332900543279254733794141449230409514737751942147870729168567218693998858862655765561267206082395238481881934854606003590743964951814555394538383268665226794053080502459155178079979434002193637499518234541860622732999497167487678145997701958400904941386276199443665422095697882434080959172569726303317706735091070322484594015187372979600873511699232325093138699197567551137245684035202406345231935005915088931269126335636691180494308788986039853597345048362389968417013829644059184395626656395993690446298438759318164287094599349810613448302715289123871808467714534740111236023177530219461205239859774580200034183428661972918446991199885609514110767930717917953490177609079134076587232757258783779242731327878826332665264484569900626199468714827915520262579933162296413404913409408910828861318755893661863780431538188408068435303705659145009231006715123546513325671802979683108299889691019000557206793858210647672788725451185470871844940872157590337170650911988355386255826538381078188545149382416563767783536234951058022577451606538797860766950313381499506862214471047370358086472662943213858346318559689345286388314908909323448090994419937155469693200174340002133005411444291844335836914760771445236303602265830448263607238333569199303116477445358042056472937418807509085152022905759836886211368607144916852913575512025212048060490842577572345542423901213024244897274509386052888676874797509922659647487114361633387343497504024048267792572706017369771964784015274670423043581169888330891003574846474684882064816292020753447971262741857939411243209442513062880370952652184575324246196115527925423282814920001160224907520213697745716572933340633067005818142044603717183980495981659473361982999078571357979335537949489848549678461474599782483100516115772516006459304306512560675234004204518654515537512737186174773700032110183381584098575668456822623555437164251526434351363662420420667236234584579068739997542920429607652770192964931609520986759360676703048305408529786691994161660231197349412161442960864702722405211687307456719598093661812530586368060771988193287312247464016181289139643237016987109605362581266841208146388484705461705363798634903622555179604404486677200524451982179925835905244180112085004079515349904613013133304588778507780213569814518040312268780512206554430708287335585666873708287799317087638484705429191584304865574897218349852262489106644455814982523279694911779714885548890586137174385047078971389995935160029231759929365759445572105176445299347812115908723745310723136995233914702061899581192385284346101646676358112995641719876797742898909137607076729066719745269828053344856044372440696228205590834829430957689502291422320943207671541102739199993380841061573418035154496386977112863699002740587067928739867929633053314901287074885912032944505753099564544553446655157921328812120214462649593608062995535882021888655516015929148115960909073964862688936666779997835883624427227837782105436442882408699974137549796258142706443788614357425465135417939524826965998921410100207714560226905629694258695701838149601261680800057123164929965708465048108971826913818910039322231130517759965490420467371711385256586736324171282387159855767446728720624390998497319866342501067917554155042222122226101178657789819578993002348318651353209178730330051263697429901861973928669888604634860599305407428875890566769154090931026305568974608050631708852782758368234913743871732975025254409539611523114356181291144163570178942373799920825902583012938170035569698922476930396603234897939707124786984414140411979015174369389905732728468119274040291895211130733587290151178012234404684173376020618309372690461209181094753644870342185145045386217037414201504138862432410495402195515997422486948584064923454699310314964209969293327068045761600559466337756173109489153825864467960781417070079089553627280854498326088236240752370050306069176859296103226356769985133490206927844761176318826140871842123231604369945522468899305885215548184859576923579905905606079291427794883023211506530463702085311518367638725104554575057356955177507979043118596468370761432209847850645457536867939931666354160598913660632882943231245467098043788943710351817615730654215867854890481769578488741002156103785408392593609135586902987637442912124660865247081120557117227869098550587151246221671002111795462500329445064006687679461223959777772169271762018830580077662011403561207819647711384216356641997827333997554056567423670062782973589506643362379908270615696784124806586219231520759757901456795789339675892225834830006497812084498827995986049701226159961408401519017144321359251357262289887624226673527947060171064157130788067049839808056387743598258412898515354687311011851155234402234234160664910909554513091576311661335476793351238393561242608513280135613168280509008937790250404309224351079860366568427386957875171445084536865293083373090123666558763514118612436243802467216040142793086025460181245475753974074467855935615560567538967660958123688362906087757594827175003255203304040468711410103398597855045298772886368369382208426881574653060193578408452757116281029394474540331018430142886140376734675376756750590853894625386071000726709127877274130052843419279269333927830562114295948220736280981398872920389261445047251615001596604904485417955686658012295025264620579115693232459342463801254789915725232865659189014439888035239479994486805788126572402002045591929578786907189791424454808507240015045606407825292837311119024216062735536781980613818612589603023981015945153143907712290560924555576026855969229250172123861125215815163489663549454348502872508205482938876466325002771053447288618658916146695402838403075503551542632943224421835107561107066114103078524447359372366325517529808801162550109147800342212415867891460676763732717624629995676381792839597534408611989860392163151538616057500967145383391648797308564015289348295257598081159906181797532860190533622517439955071704833672887308801598565323123124342542307307382758341233982653534105429253991876017122379413806079473531555388213250512895909637440463496235697801735650871053504901715761960930471641090986961508078387368293498897622633149372116628128778573903330161875671048880334246257999915771299385387508316129644393480072266969827116707408904966389196438069973268854811421672125489273510035127049442291940579844363146125680530131297924198782071167245107583535263923041714960823965879471893662554340625622118732246509349814724450489338204852815960967547922153294204256465613631308639392847183091985102432206963257060937728532032432483651219140190022733679740010132854096556754656758471978284549847987294038196132938195581077494195335034978554321229470682169630592040314791171569516864142402634375580881464091014331205232118093550819325374150421240610275794824748462245557593891682914385344987244914032687150834528880946402672221961873473177423658952721662908918192750302082055623251288799538190780479563495898666271062907316620255556782207487930119974602585008973718058971850255710937887537441720497004684150850124450460206581613537614220706217220753727548559473846492646506345613562089982991993154565239136281488673677877547408363826352939791244138346099950034681277649584451707587117751939672003230257304698448439826237010312691719621465586432721513320274287975573488903354790508791329916130904430998929100503051492101247321590024624332093875937769608915435222786032716179726652602467563640618209577702946603017347926276131151142127863806674950595267314697232361216019287086931357509790790299693114361796538507524385137519656234657219915843166655768572110700566550496345060324592211043111085457929437575793677251965827409292199921987644712223167292685384414757523553737644317314674194762857212050613703551218281912606574350271678457528145591123223479288076424415705933071178060922713505977665528998702723726861931460165181631223405177470639049688660010089255340698892151614698402873906678128689516962260571855109180212088986127183245822944569472537789050844010599737727489146099173760789671066941468324084515844667382519303407146373746155748380104899810854910399810804541789202717230756665329455466651290557632930200973788577199919832431649769839265674614457985875922132476284904621900168239582335944876402568673101236743721312657212344206763867906194982903996235774362799460618041610239213533760051842577496355740308042265131616199454115272356295798339612409079072970804278365341473284831358596565600398391673530609696985513794335777829537858263873452593434698862884795053515084783366555502577223381575673186700342496763629911608651451316544863005235410285047366675065363412677104171551064980677110828067331650481701630958106956360746853125438471719012729867549792139875352641500755038826772834913109585420732992040897451782668832604768315644958749222126452370675034423878399174910791158064778965028303623641113850641771520316318887568500035726768075783579392479806605460083164649153803099519604447332573196524027313195694848579777144131369771242759465501269736556318282015323564477850649165663156204977930766088286504034599414363552700222951972123805665758373874734528939657267636726858267565562021199206215873286479135756596875045346025071542565034706742003992922546943835735955049847849632056532129533470134594082097410925440606005281097702545775600837385603746789346710841285629768481256159419504845031336957438717837475490639280354344497322059957446918716980326981618782422406813690111491433855874475700764506500292645098660841415241795243148458132036141403455978612383841090530298293966542393843227654246891649528318502760118217810631223269994987165083535034064416864486393546074283660661064354073268788329923601999590955056859478663831696618904534183489600935082379407952457659287978992374366795434054649213548805113221649967768313887717862923839785944935252798678994310449051415854028655238053141572151067675685901523515442951228421511015992218302056805530449890689953272449924848280976932825812448415831651905563611975444446876766822170357067707048636158423227706089871164377251295060688073079222859272791723218648940198052645476612588914637353694961006315241666460223570776175755076011738721504216571603498487013663886531058913894042650130356252177744218219153713069184878193945750225323828633029360514749339698798203013866106060112008594603147398997978645682285592972676217150145301150185862555398759226302850562322044371527113651657971236927708539225346363270675400016065231086159078934934413768782622384035719418097553969073693340527991528300435009005395224046010602214167798982861475895405137618736070273094000276024047672781431523525779285661053907708558810492645858872142829072484084042868353832469738372620634799769421056495895375572360059486492113695481957902668543434745013875650479980119121387923278852215830166342652369128947897085457959983978475222344444507704603613045760189109374746719982905757020839177968200432720656479950978146919399525942261800448360368671127678762773962688251728733166916832483003489513029390264306714465679517278331094170760875264904165634568367475960758536126356577038949777340922368342755629853463314072440710663564260300902158874160566101009921412839339319137674114778122652270783081729490493306526675789654396595489773813087766661078209382593356989962416884404801175618303119551508583594532423203160590137641008948887960617036882831221556583068313154774810884469592622625604682185135033216170988362699478813110796602228249315836500674712842672398693433277560706565169367233967543573933368577038609813034790693989190962827065945798572861666714289780646409502929967115610493450873950389971780299277089087628802091094384287005400693384307205566722052483992973591142952316660944127366784586528246871675517120859283022287323911971389719643392921781755185907430203730477367960472437816213499487532619412938690625165833731590415420383038352211076143989049452983315361359648073777629530147524794364041438990264959701613711398019137446280857812295568970402931573841238746732193175222643991441281431220747867153595003207369627893972803291329599828415244494752598269170806988444784072778274120235427810146560938222465592224563854110661245205231476870756893660732896046661274593167659643030289461070263268478651897505193735175554614178804392345726780278161646161564940918940041090314105817567718640148403307976100792172620980978599053211023572891602662798888756632544808369263124873684493585507437696807501634850647787819349300166464051306859910244776805633630918205652566685515654285849916156505004342671872131061920099366904750494428846640651885270618585148722286235627548607514972588577405595684338284509601294765982359713220542838220835045994165571847487324951427796558630001439611857655295610625839828808068072140442794053459265602937201332281986329077133091716991711869983969008592315095304019075817437078356605382382917548958280165890569301411492848461209162694029625517412382935738585573941774879543125625905548085907656591156216485498357782255016572015976222099241709746183245246633740710360466650806249037057746048737232113158344050515781074779101751699571609802961588058568313459749949392829591798967270765210885742644670219105855369309017809105982407267791506010154969228862634503799996442866956648254791746662328400036951653503690235832018601495188486915993570502731133130287702709455273117855932778768667715091188176019619708056511592227915852670205608926368981301568709723169371572056128506072394030468415617433452408020681694625577772283568487886113417955438635868575490718663145792376040718080106235537803350626241414103532736252946492686564170525922198622193840520497938378551289115646022077917367682807338918098376136164045964862897302315473683396556763845743360322782666554928600443325880950720102912696989788581306685008963547703231281044347640655635708774684718519875845395021617295221510251358164856165681230332510073432856096566680655434668460582878802644409231668331534614575772279472034840062002614968655695389749658567527699483407052464073922449951802758612489535648348804497063121618791030728745974511285929811131953518563015962744440793206480424132142896148687731179299581562972658329790773229358491513779048324978310612095942829741508161169234304297030266701155420810641948188540752296414313048856074838252117818303243771614155167210591153345663509159188590454773003321094703329455249678951961087606957049262802686833589081378078815915284440853239147262048707476154355283943364359357391968561095690397961231267137389749067984783278815527515613105483401593605368980045434337872331757164345633406983991041077426145874809413033113889961221499291096869610844855967975713284084796107398943000373436495578802483269027553009608128556064345667081869958501975930210082616617083275914767599990013964421220487081361355813417065431533217922944257718070097758732808715179962967804812489958803815849655120310017248782506733092498454100291340291214297618366032616371543101621576798721417085551342862326621856895007821785446941038146448885553229231563942226301836354305049141860691841051896467564107674283038937239161821427530013239760788933650793985507251218762830715145807886848392665725415728705023053570530969856936899708557480873369528478658690645366690626797320475864632565956896558626313460688619571355598824182407992260654548960629200023252440662421778314347990470721447321104619567228513110867954757896972044269243750460753879073125225313345735714168275139814562468829593836574492973103928729083234666410159872502444326280700896083728759343591174788608444365715625669220112440813049576042741944941451119526453320264410115389170886979532143559568466770356588571357136207197098833114031437796212924857493803869991746967024699806049409489461420564257932777484626307564395718364239813698036087630486447354802539176111318355711531986683307262283090927322185156039969095032708711282459122130880610177686210170849163529393128510021646262900879506312142583532172387169026151595569997026477067799301733572494645277850923890830032566785027138367383897422024198059646102309772032060175643721650858369145843480323581162754458969987695564621019897587160738614251957221317858307682600438261803878543195712685660033602737544520718037115087613214298579905563082787913581732017677024481421496157231528913138758488835198831436945636292184198739375577356778370470465411537723554135671146888123748802153386576510258645032328590722371661804282231218114735828265185361917402128338844409469501216585997692058745203954005338039695164283754420487011157272044994829905654484669902909476462086163177252152063347404335909551128947258358322293950529183408784488538613243231222130971091530182080754970961024829905536157247075040217794920646809181737970683127334958063981422768215641419524489604615211769371215334679181373169021288378057575077060911009303708938865799372915682276721863100654683704230723095107856536474661610177509650410564479235220435659245425495776638438732600730911069773914782677472025682540833951990605647996038093370012846528196622665847737607533995575610616473558685161512483498917809956261680592434316251699168157275211383519471950490868659706791939769698883951109223085422415808510231315420911006479736979957590063317163827574112604555242125222613426758662204823101028804603956356867178405954174326198628504821059872169562058589845889117921050261515960012604382988324682875551571616846769509604779598439139234035019726872495395543648287415805445560871411788896844266718731425081388282747608863804169551820472994232400934860541729371627556538227414854811366405624377787909535320669140988144151521075457661007490459008805528144064680135025899252992926849759991097186766834188001832041237594905058303374981729428192620278982513558392350108835717027583400800872557655066783102221005200507860673494704611899887731327599970695996032799375213998109345244091111971326363225917290939125861993273295743961109738442295244255123356381636116444158416214728510785628681434681020746068946988177909170954561454084396719034303676570874493803071511059408260614122979054857304257359768397751416797422483563920749261908657091082549904974904248626871276027489830642527090436232994929529811163057359433833015785116868229076675973695095264795839840467556282864016926013965078648331625387918535259734372181146214143819089156816274471986701608240496671462924966858062164636355352269381952466913390298883044861609333488672439225421897074797163769557592974788844224091633707714299289504982900354923426028055860912611669837103945564968778976386131621504879013989172397998243397224829277885689689502548156025577393696076676870733003677118117674308222662157807912613140731904766237775232186254155138556496723335745822983944805411614542797539929325123829193100059946099217972571865695164695005470425428801565837245222649501157528816831500614103428126710493927160762786371197988605133210761296558316466318792746493598636023078775199933526946386267684462721380090777373115332113464097473307508737958976279668707916724893446559917979756349583877894506210867751518887483959951846896543951206718662056914770453566788661373777389416120182056613727364494525669503401682908269269048316207174854578864196554568822547123164580751330338825031523034586711728907044043300473745843418027438433680964854348862873043157807965537290370043703303905904769503618562582943424608658725803724823601292326270446428129014558564956505807964663799582944633721294315589075521302399173206899895876627937976635661380249462285590126298789960676288396694464397213959601158443480129377241913397790893853822830018325315963297780407414351008628887619852702439515995791667259476130299528176059288988617611996335560356069863271209050274582773160831086255284250333661446558572498672413251045682666381982197864406734107800034039419350805455386032904047405382994000590330208855226773724050067659244730468817984408342463967124923579500308853937008090728569703464639720853260702745895327850907785243684310377037760334893226710662276954939461166925667659614436050920233010267856509874477615052602680547129722000370262682578259929791977098671448154210719759452381629649305369882752275535450556988046207769180696444047848915489048423914224826328473565364049333759184000791835370123050068016982639781422356913595031574572784766431839554584962564969111151235929815103925263625740704423735839716066933723620121469018578460937869359861456918671673734873920732431384568492027080928532503528295564984171036750033836692619864586579855586768413776562091238117804830932785821702076120049143327421447134529045814368020105512859850026674072763179086250297559897048563335926424834891149787688100068053471967040002562964876433867789222536692071817675529727446133219086231696139053573629634924605070697886432047744218739215641034465574132935622085330512552086259678756750581957990262535508631662744201067972711894714201362956411829879259962648700325716047648453486953081963683994507860971104457079644661701492158763991121826363201362459646066033609906712013915724184474543877395771877667918115268807711511168136482801464113799350190184932475509208085829869300129500424645972431591762919917173216365219147325138320185487938674169814421166387794648037662364249314331243461256950698929822242676238392697528310537801077286850594410850483438597341882947279478474334710893352423702290819979119717598002957713649820651753624465488902253469842625766377081201392956585513840924028169467968726093088017041193607572596892046437024570429312923844044027829181378801092234481557975439646035837210450061573512865064114887722682073292409040581514100619085253837966943899060062854798368570092344087459392130797291596029908814330981778536610759924537526361119617996859148269220612212811001231070183094370825943405584844954202522534833519618390690128767672970396468190351609682850682546163068501960882682792919527154765294943826874270187686105848377291217108225852057930790606297515955144879999662257875311349376851148698580578356547131440690776124823419632036993998213976572794105817320276200981436610449466624999828461751298974183749280071726633118163355162367911326059991639206522094188745823037475550158303679898922717750707657455171924325166502701514445711177017707705233453241643866516709583432728356158694482811674642872969337465196155911431510378917092803802475797784736305577733016462451048816219081139974735201455154481643707874715801265242035328309757378646873084051272316210779981020558449701548997113618430906123985655642716740400590539343804337332065374481427488622774628814410440273030147656128451503369863541126921644088950952220712768203761064886805934669032196500961240587794528491509823438810606137922561263887715506737429649011264672119715962732037680784502571243000351915188738624935838116700345464738269132863290078170586487277298875788125063461142769647186770216371183174753778936455933031271276603174417764359535988140708761140867167783174549630200693657656556655730868052638871802262288520012015779494039054544396886537141171297572763916060245082576688017214100596740215432620672664019978482239690290352495481248634833344784355198326354173878296503190686972813053759225456076264029209785764215674122298521880807038199812093045601504926684592952670877922076969651305250338827288039711389243136843136858157652617899981401269367254355190108163942989744615638982338705151073934126410437905623468990215294724333677830955664876223394874778578475405097830534802659122966663595165297824173892213314881049393060301767607034628652459397632568274039940130746664643947440863119943629207501045785841056258556947751878002534766121243655374601807124343936239073081450999150809753822506281270963389402526334628395091543197912314739837294490337114157194494292114861513188395112203573451745586651760113958873273882339496762352874764067154022985297816629336685448891699481287914979945562515705255021311063361203172074954206644054538382566902967565298055143294868855533992573719032034279176679163566293226159994092276375016796818957709348926595656820178915502537215013530790458112711121522916881124073905758573000172936673018306046199950124515129136907753322071804837079418103823749616403509938219078357533493834304781710990600472593618683349596291461093024380056361327962528809919545613072871344381059593977796022222996609100934985124759395103617864666474136196287424432726370376670932135979183467432974694332390370091477515660422319624975152972486212053788450567312575890541433190974330862487131564023970579161970558727580599321139902518086268889891401105478504793641664521203235206864590114875574007225975958432461821859776447077827621628791235332868773483084643057917249773620245894208318322722943859536759168292266506866184074456771705845625659851285031195690128830240123989523903389281693036346312846076692997664320986650706673009259866019780139772582662293869047688312282222768976347888360606740524443074174513726608545372345877313264588481357155438208305680761704978541441603365426953494506110047397248137790677004198843983471094711410120784841149000438874967117463713981756194583213760086829054186516739517524574108841455796467056826728783813164960775501263839499868213000706891840417912029981232876050254681947114005844279189072464662447907268338754771928717734697820429197717107853864140717199734978877093237211780070927868485397707489091204941773327927168892208177250023920909567366221929762161215642726555851356925017245442205382609642532232414598049352096919171810284363267976604384441109886520791217607803313215560122060051328616015505519319323524569355287960813460046673604556836414234121630467704638176309214167232002389606606789533142785950758631081840627560065842910932281053028970334811333916456389993995584969563880415489253521052948839652955331040578719180339357760025491497944907286096901740390014694472433251298599994725893682643845689731941357021938466490454568492003981704293739265919485676400452029137206850795351618305408045121526068102396009867218022597313691229886033619428910223722643719208997777234834096590440319734627211103932641819061629765962655670626089743440140730364775226714807678759961508509523180448391147569853308850245737792709050199747567645745778705518639617307952725626729111443804284241856032985946443594749914942626669640640195309425607071246265516808431586375833573620084876308035444806093841178699000545182105121312471680768227451117309747807440796957729028636036155725120244416336280434188229242303380367990299228802678547671413746554016931471622963960915447346735049777679846503010991136027865378633851774080558834430992407835295413525632563952319172795620694444798085822252532276185301955876520853892521739262607343075277184858764993965672150424318429899435985747025379580608536743382910440287169793948786041643641337549301147062646573039694181121515894954665272742442719947705709959663784474999982699649484282968808630472442994166931781652654773892146072666071510837659640706997737775069793442954349390647351925534185894820209120504203316930378162983362528974476753707155855083416192576723648442642835618383474021649086106186436260168079282817252772392824801481389985007731850587689921082495627926626961727585248476258443164084885984620953012832846016804817779470284285947558557483627300746924488802300061297537613091090282244967746845304881825603369311038180473674468335693200027105005711346919201182085067140723838456517587341688000479098960286406502240122417383131902585852921940601824628200409071893417108291239429413639094327776855292001389861986251959558355480737377184097690513925375805307519060121587923173570857191356986500082069326153338686610929872364656190421310499018173128103180482823678928624389249250849809532954713493808782511673014893935297368904796898017415595988047394350708799236942534216429770283517586695929565207310313807777902658482433006261032506298566530501551986466606148033619923126406300593980840950228703915639777791070936217450564335053860540759069074420832129825378821764142680898908174951810758264045933375029508132368711857956369397085502147817563045556549817384164298571394251334763729381889495498568340985240419677642075620499528526811342031146391497059120881866115587796229630106977428940730858580557923282007247276698909439224076439726923431465082101325445210791507773467742302494652540956417244525931607219502038526905600931493102786265312725023356163959207887774139928489859645319537590213548236947899974754536391594366930563528129481310674318196237590547004929958967681771772716667562062134164007343095223652993084833487080977670105131142715198328009731119116000798368973609376725538207103263241401051381619680765997253972442980759210463044507970576843224450304622305747336372953428367195161498553886115925727316331307745985021901918491271607075971493551015314000477719919616618406465269505631360475631550737153686344254422005768831228310042371350319061781345050545478064594462517096205224133401116167628522611717049565853178492233327538364731977797371323622593845369770590939785184541479114403540558961516199151942570323186597534349327926500363514098604273916744224664207359693616709944376520118671311267669659624816974303939915784544709349123175711610721900681296427853693987090232326134986790670854760165560011011076927635749866477184515937087851811941398419630657763144827368990834140988599542928137513603300773438707073998846591398551813474799102238067514840355018582398070056388162983950363497996980373631091795470937602346853208724641257721825091237035829221226425882998466723678628561164606624818907862151742984980249778500886748976235191082108889235329753841419911511305565647926441649359863160599153718326262506463134041155028412498207415099370487872961429640282932791000362086996734698775552590341496545175361940046904574267861490183261280550421448235921818703398129548863329623535538095017569616140820370251837218032824036585695282921064603640827189135315477368398349997498449653035934370622836663292488258346520644608801156326729599891844407760536457527359537342156926637108864326779956399559506103498751452175592174093782161362036253355151268222948754013725568622011861769518794717568859480688145722936272678061259056583736568649496081443941135579177176724855417005473429966926685865970913030036833838179586517512289786318363009007783942786588403163744881342904394756292335665101771023454811251792058021096380318203255116871843593285374040188439898322623913259597412154989847297245001992499220849474793543487358877189366995571503901901992566305842821094740348772315117628123899170724083348295753514369390978172373571547990350926879745528143837059307254807671333929285900777723870950543329825140091751005694658473328959073595687549186661187868197798456481493038178450531413273854320642201221203126801164065506748201873294224030132029130231920500066299021464520298469854988079762244498138407990879224618765167628917339874966048615920391465341916667950696061607446703304525235283591794517875452683244429997259030503601461721867570354307120598973298198384474424359382289657848854447107189012528416192239782894497701631479237641162037661402725214437973724019112499472386747612294958475590849668510924177055666533232317283960394933821109774172387933810473756401282238508737533380880839346625206470171448173657295220795144108110532293854484594600488855000828504513436287331909150786854961202613576790495635537512119963447238392939086948247541062771568536248590669696839269416892293628026522395705137425810549611206325653202337939547688966001474249079561094847399495952586325366637192653499228123468146938996729390100684871989599102675037810785509016823118816812941740591754126808131691728591954800462013693253570953972464424781960105725320970101390697923773612566163034398470401218155056497805585413087205191081289304385388196129252993340137447606848786724959986072099764083014405240560767719340807698481590436425837515517328475018545478323747468942396926316912043914878745968382163707614668016679138678833237036512778407022739978878709640125139565756877758365830974205113935296219601090946556747557427194305810410712763053634944071889522106949331519585333512998228698889093846855081307991299884020250801007662890613001690123135814362206663115070181385425532831981821496530596635531724509934008773903800959547836984880801653326590608678193300499138204158328921091355639298798939659524211773651223536096276412926041361164486635834206436400340375601635817840884980700057809223419540968736562963266556055502015090405725242426155084088624648127653948712399585067636915040565405972383271799064274812445870064776984005848765869738114737589143322781789640411472744596400507269650109254707908547503072364557460736744848277761182587419763166881254267084581175360310180684051632072616438406640655959588532206954051809541199867927465563615913426736754027817687341521021266712473093033186974740507450011100352415828098170252852907351259088439456860818060923807759116281803767654182107898893535343737145332937979087593610547209434436699225925376150889602370334813389990341379262094156287930747657636453180674422430584945132507722319080053850321694595698811509244613775608073081515048440159457341741093999748892844016667880433800577599465201826311781969576581800233322621789124896918193646040401012292163814297528119292988716379475357251228160693030843326634784849136365858948190935159582849249476013787565005530441506575051368192024924269379259682079967433110636911913446051759110044781632676035235946216009109163633867058151603033863214345726251502119820519462936653971249913760629156959673924988928413193547907819984705094178741495449163257731298666344399548556219981857754876061105799449202617861577427927334205026538724648380468007555659236257891593930305702080032799837461871052104797856347673585410936042974106078157534471548118310929103063793242482633562913361501483434192347597512176333075797100315237178666608944465931620016486700344777390985398964257250570649199187768464306176002380574845815893181923317712539804317228111401635141201066084879500145670209101547068898314453912021697551117730162259836659572109624361497386397506691428662304675351429252533873822813964737529514054989528099201136895700123051688266448820731481480476238972801211085783403988718456832269634739270550050863214975288047911209968639167490905733607149809768152708746615942255840752575022105608684182608879314083451205679838394641521451726450693133277572970757412249489198697051374361001001300985170148949834319027589064588739361087942732125350229735726887946120385292506170642341911911088934655464680833356254935314349945965344178665662212533074904922219240521784990310183533074633490159826872243479118418356523028706356893097907146515042972591795818661290010058427270722240346294655777261420845411069918126401571394301654226370341497013577935745920724034764192061060176165686673575278840168492972031052846390017871113400980403198821678939501432065848099201430142378025149198672307780473179475954879332378985476735421489318062977859415842452371773118653584813794499196736714971306767469158280880790140282147758200430043830275879401148220683641243720463180048961727913358583844284897305742019224482451065474062013135286624370553141409835489731233850551151012637466866670401787490971095865929189501440050337352369861091707279518576888015657466273427119542560388334309407928881652340115184946554362207049120743893007591690431442988163862781310778439870590702300959480243332311235467941464229004262946878414795083706705006007889433898268087340841982447115045116708371947347987050847832667657902324672879169756104858354963846424950325367986395257965909906386955489163691161307357108180293829994181030614299638770238923540190182150529074249989695666841545224709406554009072275527390935271530582842052255807274812116066379408814070615893731522347255079726303376382134359640712481333647717192570647793102942895014509311668436040066663402682619422133982373648084757206089987104926364593080265722579724868258578959877699948814632114640654359772412856715082210420508202782232238109694833177386320966027255622979787577489071719005374875933635687044241000468994106560598898015167239507153907739176965212534492900149641341504611787744044819900008465512198648429820473227174647788981283269584930187015251221495293789183200436426969152519060699686941046964940660684373027008711498662995705553570565360561520234285092280907629357951013918236848474518089050967282354577168874296908072223739547190505090443182090394982441810347060803983808130705529075228228735763176203116689531777086426563765778495539732814520457824394288740427510242050147676262877464065808829987947296643792718142359396817317891321450026475683764256245819336402811389996195207549102369179235818790116956988744873304266397411964532622453722674524667106916739658296959197120637415787084177815567077463618125818493478370102442697868574484550428020061734474452642686006033216626198324371184643961685363874712500752238756362989260839839788037917525593786411902227035301400185339853184289239777382569990368638267265061542093931356378298799666924455565242027463302049605604599555662927306941256844851870149520067610084716782298947074546574761042038691438519788132399798934657672634227299853749799554107132656612448323596009069975637518515077462516874531388485882879094449447756815840773504792304888578259372291133015632210529057924659470268946031896508450426377138490529804661859737472191419852204719097471401456612808306559763429719012827055018324263531331576988938540284145618610736888084889344411935056175599527250906075662085996075550704513165021612638523659643827719645446085538051301660629512051549921803779773371460962486057883075961479610730205486146760722167720464169394483095256050369572947728400063439789119911075451088438848766623924642651463934095281798169016984924784128398758281398708409531681788921459827975099724045623236468870399334689940600199467269100341002377790585833053646790721377139338703278498634197098482494452040810602173684477483368846860923409156282999497646150116376338253844921148205223322428430990679745238605239652384661805677636386393281626265728393272463987633487829259934077611970242391859336465964767143450565240000360608004952738698760934272136706028954696066743362813422147374350211960990651343066279581101287640854261630203425380804643999017765260414032216679446902614882540239617266419844635889519545144721533762514450160708577646688550389442353729960156343508076347894451381017476987103029759135417129370488127651253755628765179130703149348278111710684935107380533188224349973363949214068712084265593260254576851404244146007670996833995312133294005761918582064952108162073053546619021605908365176584478788998696785785518296130563399218069643369261612530852805563371770469016132579765372220509487688604297281091507023705448448600638444552466583319653081786850148370008240169379523126893555307439365288438903806383190895795603119109138270336052424971933763991956843762655000273174324795800343851059767748121125959744555179819781795435285835246367388642318928050488872658281830924690284330849247231266014594191213873354925391612712606208090964873466515123782961447799182565380508919026827799247835851999902824444619364095352524162862225553759464030934478823391661642271431767372652652604071600954500262169925469218986707178743968061933176574310218287758366815166073007082086956037146089858904600779073843841298006274683634054317767527182018437052090039348957398770639289588956199063355837767873342491034839594620804459929475734911587837850628350625309552886933118424138692687882775109918305309838879924770183981327460747671268165623561468558404474330277633673302599637426967429666578591146821715599768924200829272459626223149551722628003680891269352341058573558408390712279490367789171656086053242536549374653916880886929524367549536805218869749133947413006346087875191247089927191217436882751222234317967213028415140208906457417742932363252895402485890386235264956522502542578694345177245521372801386876396318988927281085711340769204097369671165273396064706813519648513607651071686655093037317401765358737951795714423388187959485128499555632591691680108475848829942252889131702498433737132771645142981195203932782814683127931167174286223673144143288395691673239087923639822963536280262936034450951704549062888106548553300840743745849395912030734866216517836861183919302216856724099923055187281293020290290962409543336855460539800558244254881148870285820643083619267443452437799008462461022600120808837347759123398379853498293808389022033723368399160414522815151548024439991233548441931967126633477884165662349803639924214107413977883973787961346480597470233264787147209385826257567085941006544157238819343911155248216929381704423872239435919859716511340571933686996126467246514187002892877597757266686518151619944455338577903077060370980110068513770988875522489113039502573989941022608818508180316679027086280469155657328101315253856636119838761339136778905430566208875335964741299476338424398668018429976646498761597548437498418411221442410734534758317361439699336948631545843690257128998689494049128113655108447211596186631193090568547042669276013115626357513523821294103269263456459556845469375817400880019167910820514066942675695119087516944454870967370387059567336565196639480619505997527737986412840457609588688498686277519556980232542635435314970386650974454139524669641381755498875182942463402877330228234379966911920595628710717133111953442729307611627441462122706209297929923244461224443940097871695370539903099012293448634229898700739286420332923266871821975010904113884121673035585474152488092139260448809207847611082457827723648341952426569334244477935788164111695497630467734769582386195385213038891636379646673595354886732666145662808235607421863396147599246403120068067971065164644759003320520240398581314845359565062569812630217472477504609885751840413675963441260545842319572347895107940979337308838719773283734364585478234674949292988659806210107528788432440299342644213963751331008492365346219368924293793549358111140303214043040191391132639311728737140453054470196137180297492503536239324947571611951145320071706820701135727255811895077107079317809678936517466210918251065652934658316988447564197596192972397791810020298820969590742569784158813768034292215297140090749579962856570561299383236392991868625648368438139688069183469433101419239618728324588819427848700719867035915623424391380009750467875303507104128935053487561937523797753965152633350527625964945146390792384364583456511352199329649996217752029786692756980206593951133006342011213642136497374993904331434021313282390459185779666596602314725186628407336452715492760615619214287282544611792832747998267880064889563500614004130273170521496807908250185428273138436275409595067411873653121348162743665520154632100470316896499822971487724512615302949448738152542647257117461572487243399812968855222342408653160087917080972472907660939307504384258046981513224717669198951792882532957581550607676361121918745820189845324065842271368979389151720667807865725883828280103522093277319970675323385340584806770072979963636828885334217050406372171443914861753323060927263681879676115644664165092804553276067488829398333145028862109140686500036693169818569125942803224084888199781729893270862177952744752597890457662693618687687459828968212241857486084608144354718620068957029223485536514465538861966138050461183922037276151164999480427827384269788886821724002376942141351571248037617456076844660669386995738684352828744394464174119713493596867781606119047934438928730320438268876467240680309843528169899723572637627021449816859442269788744046661822500874842429024417166721238336362606425609816703209697921187625949537999090146577132691705912841315928911406437474039620158595964418840680771729063064973662319072025991550484311149224567372195552925294218347114520627070428571856327473782755090838053504762707633350164305264613009618691001599937984734910481923346918024058440613345605797857397521230932789359817939199913957518492030909710564399439374973440302743955706239227148949146880298002301295718471276660070056790221585126948470732544136730047051681446154590904271283857820840840140796586133291914807719208738621646043159038431244760791467049271218129027619568446932987410256495889539758883742754233245213222454357960116806507705004986877311466957373651377216045023979575383368222551114197679526265653709933674302040893180546455950361502934768918752523492828415470886276944156586943228318476844900742377978654526291201632768442646397570679157419810094066331747902617959465687936143580054060150981826688757097267509465392805396183586779130839486746560705113442333411343448845027450469522197590700670522266455878702116874810397830395649443677835960900372567735211594026208702812227704659984914819435012149266151199254326333983816347028623020174273980483169701022896585087257689601075025035288319001244401042252054116069467585261917155603876442687698690971072113867355475595851535066485670789644813340249331731157686785228284761187487600634370111243551886951675703404684187188788877702908626548403829393705556602057119887875304249531267943480056298277768821772775142694756198403909704458624323150206002330048618728541602199948258807439125059212888946194852400609821039947072289794616531769567955954332063030177865456130876034799717065735124954545265339404556598979412617898813093266014448302568907704284345956341199751909627084936694355981094174403955344308280509656025158544603693711466471024128687694377970581031484838557688949947975980990786587993671233557066624212509093074381369302727365479065916074482586684396841382410909919452528353823744208433747065207841665194070090170611978195639345813009031288189178875465864419671069489727217066970239180665205773627915864660493432860740132223691377788828776532103631788311947721588623853573056066956791111566112736048951056414254281304510063365380469263777190128412547285261594171374755917969959671506015064805018925336025193734521422525180179224300904785612361765259487241757925774714695108709902909876096119773010532613797522140715747896576476578489376885344643906939516940421209022785375752836490531435594274886269878949646831209067112296044101965080674501382691489560903475203221498928556366601911373359806016546333605859631983275033629666953767694851636991195425305029381377511350551206816208034109603089844799594791394181097486765722478804655937435832496309531134961350588075252844094520799443515431360441972847644829831952104793267888309158560792789808269447469125856737122085779946975733214331067169206583539264417019774479860463293876055388791656905085696724852264971121456394321146093900670218688148913660656148498032423043482315370303144318095028719544981112362802442811225874006772814464029920403849273775563780368124176121659588405050094589284701033100624059598556338079072286074071688562683198408232595693570158174891578199891322811864002785440013640751309732793650786144061438528691353727413068016862204676810957819188762455774394871684448182297363085999496567505653297190127670298259259320155043667321505052739304707046476457071933049678260834952407438155299582934246054972415017548564458177574968341949624220913317248502064713451250992840325185003157167111901875152213048477354153636856631563450070818669367178893680065835496253249009962468611190209797965257003245573542689655311006887750902182842341651912198993400949681562880264249253802081782567052393977905525796931532310713433923450627795808682789760697073690439267513232266707708782373998372066998196409503306064611737488609538243247171494716602345196775296237030550898567310326582308694698483316122264604608063403624324438610436705976268113768659633159290418204110530068230162626933656165480460069036356460594390038767713357250112260543227853641951217563589321560724518956756054386968035889949603669945004371121553472866810327257661712082243623626648662944676290052954343014485593157737273391299489364478852786867716283249446487575928754882403933745340984825741230188724265972071320978929158181121776960407262808651587626126815262220114503382794091332209961774183813652430351364607710753285596281285080139889334800518366515704555624293997619355826607681991043225132277326280433069704601451881257122337083777807885170367301154142598680498042037862721164505223600011163058201116429753936835472624340096697857048629807092781374778925671621950016803940681767461098883411903629058851829292517790220077681836100953141805013231595968759596164522396923528739928333381491128395755751260386682783082108653979427155549796939153156910006189429105801280738059555159103448096565426414953034442456792478319721616749792302378099358647976779505819419815279599648714970298884927057214341507711135551506009353922996516229527404730763768821151121333654683905260933265006274254655697995321760604710619963564885618359760708351302418685828596908135733576450374516016177772508973497350519029198305699990883905776810289991730749393702094640388495111784589602763397979556813785122538904180493972089691305840028806744077556044975898571245459057302727705299207586477527837290780308420000948908531336188712042241630954562856201710879741640641353834191934815191903544895864487071690201373067337331871170916384692793562685488185261633282192924879074261484125184502356428334672374629716164809923186489590817069435451314788070826805677553234018016917500141568153767818485200414705172462087667039083603024822616905217319463956177655744798022597751998556145777027609986387586644014510408045900234954287309757012777536119620971136132760176164599278361913821279498228382840526575075333168174438849736531629922341643321886758215701787027062392283415694669173848234855737504275448033139056106570151009314390251267785782568331961417585672880788077175398227660228799585119642104949304348922883131728245495129922646268237984043059002092677251762738240194179487929709340570341889157950263045770895025457582112400826576659022166471538672124786233900143092979543084149591630265032991527680138075177130181922432022929706539075732166676394127352906673569787379316427215690884431075253320818209130134626923063560632075996015298498207834899880721349697841889203276555487587607931433460938788600344744045677102264451610840353152658346956166921053485885778925477567833767604496043866861729692499266848705337523634565183862101072279282226246828807567515828015722317601359847295395087404611431850910346762287442976767722482325879565672261942192569162322062240083609238245797581322797866817446924648686368928331965476620003776515912142538087769697193213273370945498069432432183726538055614532131423691181635942134485012511097079929675839464956265796989723707989653292522095473146619795544381294506395256653298176207358317904691910247864603509691497417287669486675171251327644401891495083865899887410772028473716357457337240971545947172009045446883852882335806369754516004486929342870085128067365717839787578434785795189021392782251356844318931684716797122186337222484099475843913757637269903174718541691379646568790925832095468108071979435017715911476231583864418699062424077708995055322261059273410010381892419802862323135782993318668004768623977354386894170069198359700705372555025517938057741178429368346179922107017381639415276338411344681698019291947676518584248225899892028418916620579085667653161142995249949701731699069651755998809126368539979660617500744759050312631684080325379342085761539774529549065089651152030735849642326136813815899623839648377297761188082546843177589120437178471740774343266958195875396073138083466748923730561152819069353901272484257944498067797473390604314861167940465104101959661070922889510396359702930278605071597959115589519655441144253932386537840013641182602259113458186060041448707495924792579999234695743776921668715115530810762517507636063639208255262184551833714608151503007129151313221649501148184133180508758380075520663699217280483687958514241583393940754273432828511126280400313745685827894611200980084138298495256256349218946784494436802299565576301986461277136621448516324752409035307612253161502385015782952058678850238482691995521626446734450979108460405227908417408595078374835562987391906087737056110063597233295398070200994713160394663648620317689315040198959561547986872664317627669789996085401379973563011178000406765232193236439076417702031684717496935755926766538671587967442704184853620148711857276362267810914088396497867737286656083136101442020478176982249414023352458797154792756616660430908448540222287666645667471863171331956431342960171497136157008180227643409212447346902585674170342367556110227241831317492360337292846046803927275141129458795764337630354797772930322704977732032315741033648206555290990711190066206753878841887222977457198877544747772987337870782233014706999286245679201743241686149326010743228399010049898465152424466078475793674388720726691232691977027505408586922930245147391764451591622358565450556061934157548766819679689205853777855517780513890003244210214860919006025573660889990739752292388644775274464446896296287797397723072093945324308211791939714853988382753307648284571975521110179954299960039830722373216359150029956395419711074706447831956831281091762135167606618740985596660499737403326531652486623402850554965837738618164000856544623304189021170170347322039909110579615450348536180852473527729367850177308310085694785824874624872795602032625118686842221694592311656925496280757867615467527982259652039306357806485068140039571327235950581374768250449275112269415790652689584341381490197210559977914573808725311591867647160016023857481179772345146320783846308579744182445405339219340745377832526057426943049953569494163325516094076400948042083158213520409285134757779650675124480630350510745333442017599647132122625219604773529997346933519426828045512828451254481579916235721409726289236692297953966013555766456080890879046391928125382643974513663070722346203907949124409323195523025305591890140504233902927052197749761526160937892181910593604440816312715705820014233003527698922973175579035733348415991173399582351019944847976470426740669495396594619427252808536371861419854134150529261194988602250693388944126721996565510046631744758604675237600393260136100975339568261644258522218762960775746122394954933055324148276876635872384659198482537411436288937628109936320719370739071531839639700006799898062551325185593104753625911542513890731485795111412575141064237180582837057846323094453818942841266855485852573848197480003089055163877975412064857407647048622900574737341062395517173437432750063957145383135091613910105788458588039279798770057531682050206760549085314935762900714071475192298794958257652766031103080709931482319812838440953296582094530665414474186661818850075011381760542803063633266379254729392775304955010517962138845427268790186180822374655869396746617305093256847903224150277691975193389244134147382343960320557059812974496282157134744836161924528533852633907330266613342314952074964093915382175843330599927425842989806941706430804641323403746017424472093059516979305292574630001168843646965847601217231454506539943206368413315137965704330241028503473890882177545884583265665737836367332508709648066991810378675473155602204833116248824516461827047851451414059900394034195215617670448121882456652371971458065271929799704327378363834140787836252111479969624013136699341330214979240184969507670917016046839509217258501735948046091935718916959336801067635601786855498976874520812142762567451277023245426402322023315386739022350736475251261526333222257201923720457161381672694960807564041258580695610932513252033597451160187520791057656543822451076068088963348128260575530557433627952488933520655495927686147238934058523755537719966340878332286133150178819459253203452472359621946557120730446455420494290932747739934026601898869669842846218430948189298639272540218880375465891478951565786414459825328125162519565494623969088256850445942959668450708757848227669699914470731470113849505315270244621198831749648452094379453247270923120602922718845173926555846221947321293620617225577071817360351229027026239031292127315695663921423874283770181552721239614625600488361557126424072948785695574992482373499719223811346592728175137641738005740776883066447607375080298982805455958438483827082758591779512872327489135452435882599432070585794051669603672231408752605866100318396295843826807071377093669546619153302931396513138766224984889569340625996302090643819996113245577664093156931085585552170865714725802543313241790365573461268444716451057012826893503917911829691669144575239138047971017505270602886782034073639548419487660917194660286226353938156122668010178654734610681448072654749466121508989946303817359786076066637628716735317158806579154725817219778233374158340794897077246004595923620377130270162323473079348066216472351622923436342940861127599310277022265921605449803402045033905778802357084570417137348347389381253647176891714075680718482433453639245747021430446760035881380925726754239058986149011658273165788071354952200649568275553127035288813717410098653503377444511995704948135217673733345947728486014677713780218300855361009572253521604279944358279120610737690273767707220616077033459242943459898285665604828184342355270605206243314920188499581913030999743758486791637524731525899421562946058054025513967731954951893225741231891829689551000814114115490955065432030004277452900159444529113973229781088221949726140282611718337330367738290156139479461043489812784116249450089852765449357546257790512803590960475318575873103288801067594161649776257626429233748724542309476110878881411621199991518646803064711976411503759670702473264217379628769273841397644224775183356925599750903929013234666993532701984388702524647366569403746430363067742964373294275478606040977491957906303814635585251756893949714338974458097758158082804998169484853969782021206238213768970137455616259896809191733281428148964912576496723136770174954525432782025806496653701873636961866458498387386008622374570561763144016889338330170970785297417228432951838398455585050887046066501841468797361711074469957420976320703648590005371095528037899524486824225564486325470115269278047063664367252974800423745197225062478498888827280940523381540452278848383862711443350389232965330182387504511019812565980766517802300834183897457968262951185594196854921715219255041358081478411859635179129667812040046086894756108335521216986100557689945722163462250532590942099074592487580832739087749592855299444445360539964752519478550199539354312687608823022424829914675694721376551831656954832513235417535793531092721821376126699163527671651642674517807036039489309371973054072333598058089070567271137805458673449632656704929565505633722348313945030945115572795540052696118177717645512469603642863287085190513014108474933394408347317408991574115371772771073692712638024353403012305417873942594695161290272436564126845459077940888871581892635597812830893686213694430694573766531755765707278047347894459131696030748820129770888343085437199912903489158583552950288369800351340298090049190813971297183622943599003493243125711012383179858227623429183032124324496096670987137905170729479833732253213469277501348515049837718202653785853206591249195501227467174340024101418289937138134079591040209299968107733912609325262368099851951286904067668135470686710950053551745077698660419878059569134559831663993300583164622259985003325411198977863488262136253442582042479765267463492081133952870387010118709691844561842015305313699800843716475807656414531540304522744256022619834516812026729309534614410573885756681794846272836379782634239164614975302505069962311475322627858683884512817350502978452673033930936553195031151208544388830483701585681341654236090395287901036827655998096645466352918883564532496319919018220901903130302919275134158364252718911519054308634243768502344425394325256067031523624806483056790702858811083226744507026478732862230458460341010121097866632536038010650956355927902789783409477728757024621336582093961357295734555029345059605915739631278200721034713085530966771192476250374669027757747623283366374473017714740327091186481914072912436338999467473861355213980764973100932482878560608343286627858898173078868343301005378910276021563995373500681719290209706857001473862558562562358281250136842520010305719347176578924003724868440446327495064858005768667284543848468744900846637486480802608678238018232385445653482807601862208177390884420801606431602527177040581698920892363601810256978273079152457462995200489224046145449167520337730646466478777612918691436833526115530192263234807072890540018123421226683748401060105656060369955759339673556319821554109876905516080549065965194925917834544922766552934894237823241387501331591998944176524559091315653739989961182823554422882885802149640690353581363739923529275058753308811322940232416829594265036242228747520936977206117797697081547053544558503690352305565050140716954607398886833980202189800572798133853322314684350423487313991489342243924940855105969589861405283235265305550896908535837925367109834891110702941075457930064563744922827932396227555537505699939620925071788878519794029666305448839756343898008279043459487268539575557006585146060104940257702176583303577457150230480622940730507267569053765714396696015807990775438645109517091723740931048643177832794641523176137153653042594952187608446752424073396513997349077921135419902814896082002329481144861506176785882269047193613742867360983608316223641977346046715107991287389392786091124764306955113344157988860717392660661040653364202546259613251658413289188375947209528941794538413904168960509104851546938520555277878944793740192537417244024482484066939398225072456046408118904747090069763276430758085996958324089841178428903394437121544698088426602763781731631486308128243780328665235556122313028929693247866206256393239072722308906595711456003444151965905129913871716719809356926581642904335482991307844576729576180022505087479630942522831386472721768715028140853985905844310002717033181235719738159564835884057730307682508075441139976575523237318418560345303891917751975244448083073690031794401451865934679985570619930259267796551586373017508182082075915226235692697718185100691135228540145680587852071069179501985925199808643174401468523496541331352833402035301801603631153721172838898325408345699035507597403907047220317028385687601044314562124611777935890263803187321711851931920379490213319289485898287898369160501544413943783007303491137339198124141674285223378742488604820382021364718446866052656238106114231350491582825757489843446198078568016695900657960938618521997252395553082114508284677617577070261541712722341983132559978209766784242608535742522738574765684813750834354621710218449241348810237448288595568073498629373129505448674874831064037470718813071431670700076919790574308501970064763308739262642772090293682007876598187776634010102838321283749977842325066929892096936139963502979923038387501158889261602513917089589474243361994109574386114416468768899154254899311168257543193172660822581585354718433570752074616190524103358728466666009210723077449928898703692441069529970326606436052498337187333074777843636024432013579736273033533907519626721030364597544847436942811186253027545797339507722454893515605867401051249706570705034057065691149326219082583025995356019255937239075676153223011501076914440056409679841733951625532150435744581168952172361000149399593625739371269970823244649894128755868560928518113272746209764143111800396284739660062219776352031015518415910265259390882082723237081358286428535637260474366217474226085890634910719042232277801168909400064866826483446787190352209090494183025099716043483425467384686862213693169925071555243406300935675524953067866744103455559321823559874998601110915305221077313269127450212444722925711659469589056753970562544411855503881223147964935176124703734481635898115687030334858639208296088549822951371891299076926854421609320927452005714725618036035778399217146555275590445845687991600228830843514332777987492314107266173128846440422242362206918377583406753899605420524200791750106758109447536634961988360206852941411302746635392565360560417643977899532756362866018770303726866015584327493657347242429284097444927451015083136288582938040055937737932109582612859753750324267628769878065933875748963097441263779547023830966038721590988873230256436017275524142274424863529081777621923570113824862633093711447158723641308866550462621745164417102433602364341355022356977354815598761275938542378465984338872159048263477344665624218072043215910394533997563448623528706918159732894383863919721580805103253096284928749978311299087686381318678230295418320782545607359164523603611810634663945802235638586949183576394462640854344474534149124712266087503504576915658070454737701345528465089764029915662589341324641959854282718482258128849576442808898791495665374174882823043875421626484075035772052834717407042180727875878189346684046200351729133384550870258686181267525204826711216297805853571223876532529077204307303863343365751073255727600434599459494801075923215791501070678666510857337909239105912038218751378555504949074873152100337882565132409308757176536263746622825485220925112366154094388213426570348135051482103970445705010813571042654461185395447365175052570683320329561237976452160324977118375615410944129175736425651136121722702477082245711371618340563031374932508825190038179980688673456961888424335445075374571803844274815954402935563505046733603597685956290488818836339192096075470840438121025567785247460583601023818418121073568179454520132183344577910467423822138223676272540306861912875255398606755395132685950452812281322726142766360434837707023334350532859762665872080107169585064732292308126476269395582463361950460638673126949080329316315882910480896311342668948117393230618090003177028434866712278753362646629270031659989746667525801142584834480661147018519376875707564395888813696601572413795001835505979860301616328839741934182871518691053557941998604125210176032475761278279089680642163666762766672722728099304931120965119769346423164199856709416055256343245983975957011783263626973404789318416045598212661414874148841072272963842404553573984684717518014887171431341207474789581054200562952819715234925670948404723029008316609799477666864560436405756987532313718175313813655812774703514307842782529522276954032848796832202941857342976627636093664495387975052964081936809105532436984010956454568558815599447027581728114998718271064257577901309653950553258000790951342686218970956482818335579350104322195087280589137302335798882467166972918801060607094292428759716165300816098499090431713552830756063837355650063434098828900177558982850223000517823344549639996050562720556259251417759006287532703457823463493124501221744013736404243952845688124534603438870458385246424540180962654232437031744629336722558714617257843129082109044442259218561593543791453866057674224278258007524458866718699198482506647800380080660459674634510576342052668611141797500112054026413625521877792289280612611577284939683005853739396023547402721978043883886550762819148960381665271015176223958564300137317440742734077832425596415738687323568008686848738730479057391804253825752304137464667693821803237175661350946769520439225994380051261040396641122548444555865871469561731295565841330265204728204299722682819744202092511497132320398796446985794778344732471060633260804187370132881978945591946665933533616128231970251824278820553250467471068980049694650233131764341742887028967530615084579933728235057739284608435609556100287443694632956471010669394436727217226267882248643299875326483019559808261586771967558384476374861182027635459610046281188476416959628006273324128028694080954142832176193477773687755972926907903897282000130130585081176025235310156451215527396340886046059879705112146951632645291898339238129687595027548291054313304160607533227466104843279372781673254050938577344991281487213074056025305308279911090585043873305229835689475162380285403153173163947104579059999508476756349957706394665735758873084775592976858734222238781958985423545038844227680084376077998097400438547015341826386542456583193362076807822547383364513924861856093273326423361299618120330280184032545088497162934671603187972253941952096517645339707909894629557168333037056482268892200613904622949873322702092945035536749621701013704192205594163092425026081525919525673728126597224795325728257460065968060469970717845098180077241783817282382488958900429741337213522733092537659508963596825108554306559287033660493121162987061235634786033227751080281779368115317729675029267233229159424349221645727261745273530485071548521615191788245818187905450210074652055700324405873845327156613433580384935891507802379211462865841589496718089293195167727634667790176868703192768473549249194735499525960454728531476793017372968289447248633872216956408286209483945094662005953379900379584432403208790077908780188379261734443217161577846005059117523973068739741122260106982265267255204816825334470177686575665290848611648195592270091665289367027000145234868892921867471914340684031759444647864184622653666008928128363433474442924576149853345285663739740221738479242932900289325959354048715784546202479815866819632197967780805336313735708125303824850619358034546271475353402173541258244280198337245614396907634288182713801618908693717580432940985151786744566532709153823428035371224412101073401410556597483940956045546346040586839205819128730360317898754259345516350193613399064939283545381471205433252246217450983268705120972357033360323859529922555086461520580379001159041133328640137668319286506491550406767721329938022408967819561198029337313779436891880802052594888552071091860071748063351727600307416175916120539062404163446270946275946228785533103300421940423312445277323650795172344649863850501647274391162765409687455782249337761296763790021235914974374830436473839965422151025295655402221052448581866002339016801224658837146889982948698250967175276717859686769145607042475847094899356085750870798266602916676457485853595954424624698234717122519426965487786643736763147391067856544198139965231647858268345209360345623972405061216227330434738855370797720346542646035253183137825309111132949620195342886399343829199525439464804769578492514603041715270567749506223128896044223294154858748272577449216539001552728327072563487705010295536432642167646435684329979577952305385778008459556393603080466698609937878014226408300505112181993091700386676756223550429224657222285778331909483318157793899765709350419389429044284709297913376242883550323498829192747538648846680672177088241279119688977134647675893778868457867231337607325464032686090163385153066447914451945611155365171409985087382495705632859032087637906501342733724963289380758454681357922954490422985649265700889835874540819187044360434156955542237429491810496721772451271834226253698530099768256795322385966893626351969525028797913825203567529758704920981122362548810310490503383657851798069048285262899080448400472845210153338925511599926996599028254270983472979300824845527657477889777870728073045691419998812792309093829744337250676517956073794692093838119262147214508718792734836274884440073631159422829470220321307238448201677774744403203527922436552846749496111382839437668811816389959932938538805504452310774495016555064964716861711299642630332456261385227494567555333224013184681072698399155386544976085857410522057366668947387096357017143596688911791083870353832290659702413753623377128490219422751496388246139744039432980983044464120755443253604708549508598054282245428119658895824469074128751696686987960663341628802664169618270389594385669219490573235123338609351437187979974173529313481844053105544197179586667256260760320803103427330097027990024768606566665278141246228280078753493701389286942167042900450538456666040255806544326255157579978278624037669348816735189515561137294128952697374995238753631630231916024068076778998360923112845065716094245568742487810113950502091474291204680363793903042996322928243352231153222395443814678764477871327280465808897286439705478971419328904965197999640031505311675553742979073219487847333598793279191270782595868737841764304397255122161085504557490035601085999278881394136964546578682994641100300735274008463529580021701864829163977577451729282344846672282090146278808604210920149983257646964859851645014167339002530986574504218830568205364855096358034222269144316291510623219657617670869486111286070329057259782881916607084495570856901353279078013890511551130277602975989676728781369536213619018999861718772113736007352358789648311106231732687183914905651310120542196668404426713890698507902820018542326384558185655485368898082736717215157440979127530150153405841725307574516812026824727400506117229934676736632457794917948841319369713938080788887577076154777140934278470331518143790234818078704569746967111091013420056172542503308512437833694325233752614171098675657484134315871602031212316685581585556029098450944910191243277656097657972138946913350931499034897649237042697751578258405017511897862568893466797244004012597024463660153702559225124146863363982269818027028572592350686099805234525632084392453355691090117980341906335928328559426597404155935184669088784053259516795794582691643357497263089696713633892762932614096167937554383055517573782245669677171451231187693903604459151634852684549185330207176464503548388726218093878528503116771607572464070682870016914216569793618572358082820880096767951279676563287836123658238183879240262659201547364576137221792268211452957013701322569319824792426640606933087059069372272939074849077888143359306749265602372763785981629398279443647363899862079910634600745675134892424355752377478474654997595833173210998631574713992375156850714109903820163393007896388789136340412851372704136232504979559727285674037938469843855180778100326823566555428605177620281037352162149693925798282946676300761984023913724289651665629635275455620563989128794159595225921080392192585094393494536870269833098735616092316597562157135128053203125160766839211402378444088791544960386615137804023642953365028654485257431472603370579293458004315466940224760223399972368536443670212615440401006012783851419510768877487045730265788423166655959303512082975707374977033546016478023029807903601004602834813203210855229888541947677091087719641231567315355462480075834627728528031031267785024666391209424815763672818601218869271302441383008297776763065684241070443638386806954541401972762741289967489423516086694228952504258962343508166339982624591067892274833581147630952381128227157316225141406622241699512499098943383088231039214527253974414037541678358131571015193589234778300954552468896127811378938875933047973373240491166047487654985743699696528229385669185353213111824156763688043147350279398312483436752102772241444534329102252405498974379626332539670578829274424333685685932660515201227283126868245956506547873932723974680454693040898354619173347223477660975282844807490115722892157475259329947618032193330834233354613297406249303124309848842819777206107938005208358076742643637821659698052333146330301012246429100479242949897595536395444064178258065583550867582919649608458618964492291360255402603728554115142240441290469185833650311813455124119780679621727850271130940735399628328329256717818258474009447123942337548538255491343798401258897460942018337280109652232280112137624326267213720207042229811155235422500573453947710303561299889453300883626785253767119039277322320104142075177576339716943042903938352361708181731681003253961471047464121852183248680802707284684701539971951575622483879598104338889934574567625544721341723054066051439426307048682960422620741180857942684494255870134222585751216417836466066056304549504054076487173459835034497288287437113669075085669969450795239387259590657245079306793110833995661459460710355914730238769867934133364638954945191057723391036379874368515032436481290665869797846449683490915983141790375012632906926113445124445798475553433053365597268274586335724749889634004587321772579728658576109966827937789482920409815732351119942958113179407162870725138950131422141421087225492264199881483532572841645879635905341259595365254275916167430107308382604856700610201874695877519086339149741714810585246734082071026089035935292728613515199592097733800739411866720217539311429941056793085255894141955865241631649037383074828674820219273566877514569599531231439678164026498027071186098164438260500396748392285527383819768437780537426447164406857511520535516634520390050191732050333642503538579217959157304543558790451542996357402337661432032402066231910400380982167788586264150631820464878978720077125739259838305930364974010846168899990129398924263164343091983969236286878034865819909811376850517220988022088373017730700476032835764944665883903666488554455628535016918656567582012658536053965306823783861556876496135707320755882686133707638417976206970201394004205972437717682183054512688836885336183275714107332936525458811469563294725990755235595813892833723428266715765141320903533230995732783326340538237401517928773078972473123757965240956403640308581707034038680518079510556421976592602818707453785155554282132553671473713960087328576888339701975511037109972609018705188539184907685147012542125383480841424332759551602292587557696044924411736947573291184568253277809849196938892030782525738829887594108991612214140547176971010624444610643961782715604423960797759613282047770623907732154330502944890773057285112507886178738236444284801933847780862853101260098312134235433964493953084946039401381679793734080928263719793543855937644880333307773380699355743856779331319945460583009007868014467099472283552754160721154709171082757692607292941735075207941306921966849051858810421395684800453583021968734650504380074035694587166682625746964241077549360758593707511469809536168452148501323838185596814725594961278303385458080081768525907219338625406993571864505446623831902257061549844227410190244509109925321558475135534092689371200023412940959715514697007995254363062849111128041756206769067968060721348165960490782288412564248978747186858663063194671778331437650271147195165925143618973959608116320630453819660251859108392842964274092511241271502394560774336102751032072826890658933765067574964229100523145413857471241561997976041841601196609493832745433336030196233338955805804020513879461063829933059975712678001039008702661207347688827126460813731864969081666407313742893081171206523668760803669062589310996271130922272407769389999679453589288111986452422216729129619839589800492285194547833192813157393195873080108594935307994776804868587584264071266917223861321262140337251011545826808433048949281544968176365255916644719819610379684185264521155084759724433568551810906547728512753805548587642903193596714224055064527774291505288517217397448245612461994366151779268881370241555747941402604724858231379369890600118151678634559471930062395428509667005703054154881645877479891211167042325834272674135505764904934821740124112835648310603567560524194934211716351677312261282198942769388390759916585998150237713283192976561072592943935234289894470926574559777803254281673165873171401683255908406891596753328278738916977868928112032928381797163727028414694957921547203987412451056682852625139649693292854052714328029280491586033703320038883037403125019014168168576458089448800986800185705553014187386294859733501942786083438740487458396521449111839265736068645508444586482909542707398669671556826787194390691613082289970015537648591099080201325068176931279177597964650429234677702585670877717351075379661849602184293663245362686865024097139457076922545974965593773600453156672158453664406151785458973440287618476707166085673114762274299717782562299968478139693480743934423918670606587628908104204385960184389929115741549766581473515817911981791016246773514150102279794696236760288044965034441264683003949738451108145163477191373664907332822364737640252041208727565656282159561865671411400915862772348480008644961452442055767767272034945964610428964903327894625883787475389843293822531472325846998020090675047271237093487153946730373524101202246051826300215028625063651047963741606782051330475652904344777820023891091248511336039837407976410029846487049361685454050815681341005675485522630027885328309286102143249461898617716994835516574883785715696781009257239749287365334497766826250917530607665771586798087780591679337912445753408496033274047223269493873294842941365380340571276045383104406235642140548571863192257452084546508864029369781151530030727758548684393511936381299150037990819109809883319113399706495955922514865080250057040280614507179333100925572160064289344450184962607292246315213385045201024825244724977255330524253634346590309701082008340678334826425662399022513976779899852768904976424362141079444957979186428428422808351791506801161498665949915274825347188557815040574167038544301415013324162514354373227048728496009329470364931503305849173572544188951001952973678650352143133000520698218145752781864065193104118828513561644676286992494436277911470102411446499081464338509638153166131319362013000168885089906725038555574831868563622580455290009516354986928715520741776018746678821093644862166219722596490169302059943760697105344726848129343127133498779234772197431487658356235103118651589825438099624781669298744349082093890006467943883274726419254254953817634063723290434155633906816526577870952896392795277421382878189767435625576987101165797677677737464917289988829049757360580167704929600350758247410681884813236099103370193099391675213958256459061835103529296504161243719403591243805360679937837543581642915640028286497999775168164785968769971923861336521847751299243242037739997200419263397791345267873415162825007108338490309950343188297635489651571974925389448119564865713207172580163052087908729777621637624899463763822796561513384857849490156094432332390760925751975493099954610987573996200102081349744954482597184862885532260456878730275301384787092195893106603657067343308359265155672700588638661827259928066864509797839169744524550786370551827997554364918616635675215035203932597929942901659651267378626579217885315401545070748181198519793504806582469806083853329923804665335749705354390514049196222157307963062572456385186310208805948508858944320359250638253209494911514949650148138629783141296624101392414829200331224137354183413394818160864547470686166935348373236438004807341449892839496196625526946670170055366321481182860151008773618996988264278784387516382503404393061484412797299972190240975940362627116797028283814123054178104519856023963282649470673492360122306500177035315430577162095341727874301743991892191534403701872231663271057735817544750407213764101212872888143338664608803012602220570318759014581729724064031453234351857467808823750384380018052422026750531687873863592400051261821051791326388018179006534093461154627646529155956566971784141235898647726469779072885180661452594293611554002008941621077104615639603637818339092573208701054199194787696269707088559476947905886001028136161265596094510590556915597801416717124829385069659787406232476066955741627343112556310145130621560359574174690649208013560391274967204686312947804104373581761375299473090947200322006414360257327846496686128461119391181299583539910020256175130664274721342096999692535539372355642303083162831166605114054182280605048232166937094284014236598354306133751084029579890758559342783076376296043305125327400579311451711748398136527366777451468613240404876127964492593720956570036741481087060910224689992042606836158880075527205416748587371256728212802855542796823533036641213639712984930868562559686860163086217477403230736686039942668404985599827016144561433285340710967687542689082877061778154099792066583587100452812598505022766871265004547673772334555634873952924855952890160013950954413551653655076927274849632086678944925766455137062774901979229760228594954824133891490706449748899900050507099230877491880611507695828357145286452153256199319346374726649376576385788858095417859685794090415148194963010340008513326329171127323861427056667705059949147798517398831624102347723791220570555641408939552898477406034954719382665349461006790829672792257922935068471403107155969917316093578459182976887189290959694294154118501459069794820917953963872361946646454095455523937937437267377810044265296782326231952735332939339028805099477557681558888758665562065015218095550584951113034057008445223379194771917053205050315511668425007221317009963146060653923118345914731850149273729307136375869583897897679626857597518684197134260424355908874212281727106417854435959316421149174479390513326178677013544570256039407030412026082476947720417340195566668980958355508802120828796105256802473096436342957950706943325344351985644463711134955863370283094345776753222601330245320411342531664658839691604071568229442407347874280765921998503943327958726618992793352319925898972932906015356013501632851440299157267502121339105181172316533078094411781172374820436833269685445493817570300293969897150961107321410062919896230620409866154408957496499250376827726499487030691619170286853969866513511465441912559964824861741242968192552789229100839730894862388472135964559909667814909725923831242756275756803908410892880948156594813588717126416657935357298149561167920208016441583216831394885336069404036521380282959078479256232200370896010035130653341296390563547685748747522440024620287398392737936138721990362386319583401195075880528417388416786651980949781045648602099024449935925106544357493562283209724875112611919693317033096043604828446175847988040256753241073233934727717006283073259784189708460018836686399289364389506391692118692187701240061464477427736645407197227717890703263133870095836158457832662265848330241829573402556580208375798762252124709389464601491114044255819581691146446967152418011119987511316628134819218125773587187521438004123971069976029269718717593889675559093400449772588762053598918934299984488925161413906087167879024282839742090737436233863816996348430371893629338505859093256933524940474750816200832264782962789908141765315708824056139564072997704928593372182028652302142586758431612072825248966080860731053827295945801225059117860418592310623683095907003160249108760817581070305529268162685262924460656100489867255867809070710895243150397638625320963549543081946686226020935921551188887442991941921629896039435424756082108271076628577564886520350970385700755464516815352324229045622277527668597257457476887225103190468374382999297110810946361383039053145072490780166858059787495037380680359998934552107317253573555061674161985024152476259765101397957994646091041381539234755809967246447570240626336028802991306829615734366713056821683318533803474533817285352967680900843623872899511452685560194133880428777952168487378646621077030707599083964772870175143438235033898655564013042171794593221453515097579927196481823366419849280786632548698552163754572545425765527953701807026006418414699438372605252139649510553932788039791629503794313476364056051106064574396944792067565630107920000022115978913927592174951654754474978274896109995964533816275722244925903732574626845145171802522297154470152360028245744809148688681541888453859288197034213534997472756134230518428737156877937562245396627391962655628631255847529651068240493109471842887145478767212072526496635886140069877043619936445760074497567860646181203916183270338141176842683729349074376066122899377184583855482312130973659348457105440500151239246464025953844582479111107542392120794237803034329724457573680069918963270902344695215218982732259672304224484450743045277879081672192829908386115096326654678542079729181913852247547379588239393035826537799159307913345595549424932789833510380671379365247233887744850251781462178132241433389800286875949468605640794980703053841119812286528668680885100207074263725884159397122519188429815336506453925443698507108523471236626967016342948161517840479910477126447545186094964659036320100665450576556591179924826872872416540506838615389719865300263659334818537521184214445858701963288357028718062180177143620816010499977080267313072834322946531456501275271545015829172860595408205134701082437647408877486015744287269053475020228445068358207120454097441751807928166745711079078985404581176414905293782318331432227700193890161721045460170886769858837119297892274970397973162964670670781503642278364025714732127484300128274014724354615698029144093816344085874820003927569166802599250039463794845207475365027148676100280602703148868863924067965103481654382960069282420078019079611383754613681365043495314868768697956569324163682889739686346001687354082148497723781084233761816140621106336754496972390581595498703421900013482742946840417175167527611767628579001469935701756111426268077877079950445896783585868628878099646647302939926949252617773873638268465565036720895674413520461188635006260004389708646505263080518501029987157627014771455732455231589938954762121473222736249371700276809495792248689647798796076676553989166429442456010937700467184664607405676986725551487588321416401755546156785169510850449055367737750541463409325514255978480808953783944505805275724797562830395646774263201094662484822145720384309563849537458115310523386894852725234261727261708564348512398786232809076068160554164751739547347635750374482030555204665981533624976738983055653194265701107228905955626816787336204633800638508505180383065263412942642558670148509755598546934247694223745892517821825178266795015112734498617033401211667222758579432100231949995804048257292236541973397503381275983747003441532004544232687692096231950356506617586622714052437774970700990930717228404559290342462268179630924030025721021040149136540777244386238330223646594684890484157173094846564212814582839743112737338733944158597749864808194697608515874529476778169359218866174654624434834732338027968987023141266646970212616033061260222771619711581435993783172451690387755690344937428703849602417947096184643257718959800477326731915984490386813667518400873383753429939760972761680651470405305927716725914635040885417670379679421553747314693535365507557927386832400483805604173264206092477365267723780431799103489710857479596540790563181153077743775460559207901641452116325352114647367967004006049470969978331148597725321155064357142577537230951611865447437480365355371820217190912553576844570079878177658229419159701552246062317798552944291353242486018518100193178301700253008470668043208367522648995978978540246090217518811878093843543822018235565758841254365509734894740451667674661861288940893801671419684530917350721474450043544428895522208138601004806740955994073091843684274803196511414478279091291959208163724965732127092040465610928022008791437566133098382746672591854064697503771979431614599838728599264052973518875023277730592273403232674915445973096387658354210458899656921298091141662807403244931999292783578689648124961625276967180633705957089170246311225307698187993857762042310584206179026942015125271810929253793936350899857750992857566175590402112082498234709360360746113139543888852304936686159206853499262856932331713134237414657262616654620413063180385453898266468749990196690985259338550951619333944280802543894908635391602043309167782983146820713424015611619412024957376411066592364919274032632705553258647917575426572019934212112481711586309216124355113041020094151526437473516502389578476297329309164754275309683144917051453265306614700711729328644712824106561565202833825844281054678798008288956060916505865910890774532203829241425036253857254716885082760438445274263986778027750794504379041017052011872265251047185957440990057243405266800961834531037482066403126518072450515080307588219889991709718825287830455260876715562917555048956593916287708602480598814515695958700258819788742801557477424740343166039576113974806933662783009898114022913492464219317789057756685413938855618289546152102384567635912317619893183292260334264862467979704116497784937014608761035763441474440182143297962294411862866234346757232953555606957969457845181817385283604836994307300677313282332862651411851225194939588678685435041986327878040673864438117617832497636386100373925996763235989471505958736749385989872936204659221907348466910038266915356004892683618231645562581379139253344524006364946987787989337807748054934952195287190025915517209616538925265272085429804230541731963234290241280629409367067424434623644169617003223749893957113690181943618010860779106593011510138958492182872541780229929255902700125756840180152350378284715840041257698605332280727758363557919400235214229250424982831589673303993004326477078099370138158689149217442476658266188458516120797858299716577114858948455303191290499248697291995829758490640419259269099233989264579491853849941191443472621380705424541276795348787805872105355625280085610909385036362620319400803951077948875199245494658761279993051191402660343984618677959602248985388950225373280045982916296966425070984546866027543682150040654952784287403956285905882076128418872307669522207848310246654008382422795568654674121364743998399405760374768704724274716121493412199525056512688890472720270926659304466292808357042173828172710319229819519909013419243097488215475206061852916747418766743621717468121813670655088443084224833822656960526781382138689909361858380435925550884424388765370771342157820446255644931279245258843029019535764996702821651284449002032979679628793925740746033956870275098281865365494732199784447979337885365805920668620355837553748680285498099724366696180984138109989313535536974850123990848998260536814408766711847635292404945343335196306543006887919717542739216875470613755407366469698751405733046421632703521365146313311127544201406570337397117239528214234839758261093870579253681678745302540784391629568269372062551935642966787609880124657631303043637717799735519865695465195459335205391172698632744993023459057095384932286371959143517155146114120948248246491314895678963637710086263416047904875165142464631314585294189943598139499325620670998570270543692250072571278226485482220927859348627555727298649452125278550188515840236465700938975968450771425901156020613236402935904610961076312556654441185560255009668184607504863585188797738006931850067021214143455851848002815978608125909381486512495092228661641774693320039949205130995166333736460333037029831204137332285435527810282167023995479878322411002932387143010103421060537138540101969888076702121558291729772555609187086984034116741081552115496460614937008903904601879460660150887387876122064942227953187084867025345143009980190667927832121105192484451279663918420787531481493151467833477818867015759544309661986662042941125619765729859577417623276584427669764026268411865926893059202090813272818658362379897643547572696525353282025804477736279290182874980629815114373249765426785752039961157473904037411565149820432052443779328479034874969807883288941418020082428099422839125362239601665304902443935964090863335135507225967811698056279702800977592963002297185128699726595514773231129624707169948855933901870110294783509744750623897633309109768344984898938139804507506270175396548370036674580872622020003731078253102885421670327533390719884357941940156813962207819112323366297005262606007875628304942972145325231167390059317415660640245805935965682833592025096500015572272379887659880419042844466152522209390905197418541252575679999572767015489699341857557596120573940591471638583083248389786258449757466968005377606683924620263709231919248092052319062279804620565800730841404855291446329959799483655118592142656499455598840955948424089379290361754369473025570740248899535397017458685065866397708194704764277192392074134899477494901352916218854915453630183403133507824057728060879219737663592878557163143829728993450290863534907360659327544977873125508096749485039804953332538844291580016840484092669541594202749823617436317926425997642884892557237546425281968048637338801757838181443477209977766528368517733895677853005978946707965192812956210171796953157388428210431481897030180720455392058408106357568215873833275023440782183680788269299807955576578778664571020703366256288711698149921499388946338878858198121494561567374399997117653309299578633791093644814587044003736895202667382139159465971161166916078745461135279503693028423020387794343991810972853423268695177049854904930514782677475384044030023785787967903564147029783320088519488537147298078728378027379502968360550738096786790926615614936946815662020120918979175219618708350220344346679271365276366545881863701507129661801705446813837084362609824601158178016416543135632598386510238415608245654613246924142509407845609922673181803286268181774873666354176991696734000396945478582129943919706573015504107298601470703532042555416134374436683190215200201538337612325309865522101925017238019439009271174214325138645383372771286983583524839182180836299401281193035153982429193690239723858165305427147994224920135145772812741862369188391976518280916719237991135403699507863868114823148380291980200831368248102465931218151121186852795385918064278503956199242040462764043925645613231688485317811454704499073492325380201594215164600852962681601340439838519341940995014867674464941274098414368322342264045553754873840116251330872382959353790623351244794346971307890809479271638775980302039595663981726080315831485261688931145507933998170648905556080970635152850623679296513922523821884617316129588118259023392836041134903892863225460209968521122988980487376126054992532060262874059889557051681326193779712113249157477225690251287565431492077418423518892290746555756406566446554881563095480984011070625828707536095767109872039675173990314582612467237058700919541572398165190628806050377401004836084834305033713098768507667175647102527952213982099813590337157676366985220962742346916034100964095556471115494952913786863396917163096940032012099997509378309923442144012514939837450432155992172180145547249062537625613597525363150517642325679761662739346170885398872900786080127279622275540629786207214196700033294093707432519621780247944660821544437346300358680135759829357955942394830408836877644073065479101215441788576737345500204636102893932108422462759403996595893869830541716465440963798993016397897508198489831044953859843135969326428668683334918481510483382932264433423618128209978093188342219342160190075156821053874107185966114790521700678514543074716776329077509046415269812873963419480373471857464030186060847556660382341715464176132263258532895590368097838226237352670941624837386057725563427264196531047827129595585137272004300125226437670625175176488149022642712453382698502263912592051671791593165123095874962859639156811832112118723542943501965889190645689813845797438355971168723238266643512163375532321314935254177672535582726351183376275325159165291790450006312289625089666073798257013796090384215002542185411697310973030266405172471539359719534041677326530824759965064904586040341996748553438992545533066339472455640801329860925042515393984067035744958943446933911229600029888135165857480818436384510321721304074194396282739834024416192781112714919055301157153897397955801784585609963358861179251669665052720789468384634173542915495866861424199912419349383863871525839056019392862870084355273752849643870136096458261256634830242689985514765428626455776982271746491254037480493922516380826132448365897110317282729290544981867114907811825832393658505086689154275339267894819939667642565645587030816028108984865067761106285724809317284087900171455528899921328239996750422534941890638859518806447311458754642545241596508068138086674343889004513376956103689322817037517450081781749324077662735315531270003716551750416005506606869096569180456070657010351841549497516881435151043191847506748923120596992430193629013398673364961105036724547956429211567089621254856684436251838808311431407474402844652167667139560466298603253055550037967579158394378541627072436178986096742513645563770967910873758347733562209142823327846089251780726323609645395736418010305251923889020485796220364589531183174785966021218563321314253309139731663219302001039417154925752951353041485529426116889426147977600649660462411283300781366686608869524793444514821380031744229600867327356322739628626610998879691112170125253558351871286319154090078096871751147777612086454500982630219265634487152024049727097636934111242688345686589682837238121289871297298261686735750752612655967317571449187382828096658264327051290493640297161437824803455496424531742433437828454905412422871019760765349727763465254406268155484017898965140745822288674714490712066031071587956421455885664970577283298810214024813223047267458947869760673439424086081760005300232682039249306321053149059333477556464684344400577460045510034358216218628646126816917379221875102119209077663988991566571595300131035944114181048344981963021710664028368076689387182678166397016049088686266778039671024401974396276926363945107427845850927347398474007016598625595832657659212870474651977721915462851819213334288701010013283867913076769087558858351641108561311330428147385378425792763940130101915035903319061914344077944815032185468508780120476844952798159766890601950260573696927884492148370834575268406511266948781026925864343666696939604848883691848946159577676811044296758281739503400991278653137721139305238513308903430163897169402422240433872598429845904973217080225194186970641885689626637341755257464216785274459115026799627806764400578176126170310084980004919955701706843052361697695800662226936891367062553581700398789788891712436367306215880083532397644346262051953362573046328767689882579478752148925726905023198999537658956445163280213514430211296631572270504643799863071090556770105562149387633396966642625510599309829460058021420487041937790473837863549488713453178549587690226351354058970028480784387231424132361625775352317964687584598547152077566475384401052400588716728682570668169211895750063974025623097385278019013024510599485898985820607906407400199034269071412317186715269341976457073344486684572518345581848912044680802961978328552537237717764412725719874047700817519722742779258959804526744230453994484722680566731383168218808736080276388529904461340086988263858672086578896453100088559498731011647993214430528599790370121171241884689384942405921021940891397551509759761635801187042664126699825202726581587711539045274660911611507862859351855683734494901530959905792298786047929044156211931439450873635508497984299617127455018629869222421253610165691459531196541118235586124148976399386627440948131485725988405937704440562038688333941517517978177750752999273174614081451694038356287617037538715282254825956709415196825440332053896173454048474331325950172672815268557427260519836919258617710514898536497245381584638782541658083498081657728892751015589325938137144382763616505028556390248014695170131030808760970704046536441790909296525958505123334240379113219512268301927786500809102714334297488661637366039029494384479407849734543185795437476815653704781099799611371634391716013269525385176876662941820676441149058142454989741788899803917889718981336815901470228772200526831850713413811561877142280570393922306796150116065994051831348145423211012341546612949996351474875840156906390919918077955137970440632130477983626166495903576087471102627523390919099904914207740420220075881757320561175356895584241991181002427881252893784051821004398921832539280797666475237726002814809411949258658367375487611065285051500696252896473329622947068063848369724911065566104901700379841826624066720736270633330428613171602369563582411479760583137117979311360153720986884499444737331682047097571040025537055423690982171696125549474489099862419128986633658345929131948845366382626287600970394133693498600266407335928539778587225939275834387542760365442151321757636613178372903823290048209045908745026112938387187455186775545110613406660738932912617511945890205039693756705008723639261144927112654832549638175358203990029946453342023602426352249166008073942505260612516460261175697674731630551898105882355751082730745658105847128348255145072471585149377474580352882952328826689588178890709860118351822106769059836718333576652495141096136975378693889114582008424622129833097506397206478696699226932293688404710338119216208673154736952793175832921623098361056539097646352077327630507117080032241308985356627961162004608353159000562130862091657716534151611311893644419949264160918168527392361587952046542593058729036842685869998391247002411951047350016605775204745895019201142524497504534985701000597131553136060950540925722524200722039321405980837113888429098323134682170969183802995425877332294445525107012973007892134335389328509794711160660967914200663436080333520212877280848594875891827188384287009600657110984131381031289734543096653816576542675081490029526491903774225889985479137175507494443553958061424540885200719660760530837258781403046571234272427772782042164777462140179119325894456287904174433151582130780926563453657404665289992312052242475314664302149738719979729472488464118368362697741495955467204616075795035782689293519087203549532425400301265206095908732926569635657412300445735692633259265795511286625095742840314900212595791618471195314033985032446953462457471143976382637619038754069296750994953398109238131368496308016027363696189367552344120374869612976592827019532124208055952205919141178093502555770100600188628069245098359406600930554881440738345803479543268487931661470936815203660969237308229650405497122680001479452363571243377321410787997884053095546702776460620358562503795768693241011405107296792922491241512481639791588997895929275332994374891739485559761213641327961228657471829484861358338658157252968563155490524715472063495865173440586214629058835890043061303581843268037689808594327354164164331337592794397659096355931580523076666198516847589842772005219174124099211618897569908081021245572432058968112966495193708834064990234298800576265351999622074255466566328540642402294206184684797338612700699918803456763294015227349200887930687550429861183961064504753949105467586067940502310554393942947129716458016242112102779335092779363987700083704278863383706131828565812636299628956388192934568563111021390536271288594434523344100701681791053607325448679208280243308994372947554110426584963398298450567475561077831251122714819657588420966190345535700480679102159836956942122841208618768724463442093258489464539908774870690075083575101279364525920940650770365844635979345450036047774524991233849897290345247792767805645235417996316397553963067108540513377265070247782124711460087026464813155059689176193003370843429319136083837758723699216526301759824301999809545330901072693593540662218428927155690941111793567583553801686402638271832487281264250635861455605152935660304364920652423509737099944655607024929209774322674301130470210823797190173348366215761034633706604621670844047671054474763329373323158604884053693861367135855046670268856110629446062913083040849323427370692981280985056932314305228830939738064532090753321713304509884401713965859297583423399953828006827448782456955323660113397374015561428945887809168279275591248362841549110203285216659476826897582441358961623748787594112256535021936189905023665167745204120139565110956624687954641545928477839957863897142910746930608807452724026833305059731641526245745968184359813120447156414836276069655556723712607906556422172098570211952742986482525057021369205983642607568391545043358146260760924444009656250257279997266121583079872938194984858349568161659317486604911924414648363076068102196663381555255532607566939923217544009718321966572611258507360985055203952962087863534124957105961998203257684851977668116041063943039926503090356239807672044467054953898904983298156323205024983870411082835472193076570108588407045824111129300155269454034007909682050725409817428788937490298725313557863945070423699406720838235158289059897480232161442705586627561732171737076795054342446991265446054698329016253139051600503714437062375204000389526486007796780539716852024079917768931836141472591070258131325185440983636136708074411918211281226865147367328694664245254793170345919202285862224417551249955351107957979650100570835737043897324763109105021719962128953546720500184875588972737448116133379164383355559588609065714421613910483977552412899876845354032680280071836075407054021914841369837542550953784462438167384288689591304407648749174888979393189546221802368000104946873823561269672500531774741647651356331274059048820809029365030732833094698917865460171321597456016405501165125928588786224305816627812546597527067666989167340446195042699391952648971016358150824557959404577972709007445098482418443816207289117718781237240398949631028206304694142654018954474896336546667600094788631457720148865127368459654568360160509693352841122792008126406342851870058490544989154945659618972585906769338289472474556955920131385727790253600499589426789182087478738901781970217648630590237880745911943679771972219131260683208522822574066126764342969464031766409203696549489326369576051853695627347118248075274495914558720760521966859398175242904889619833777836861775867450740764360679150764569096828041633141941699998989842692546588927139962481327652847686043807746956929465256136044260017776619297479976841099814538468127057958629432238224709918445230960455477294735315917180473812465618458446905481157805252563261534615669184600277919380199728209199281133776198119313208531661053892322488625460018841192110592857609244786621849996596751632176615451460080940123243176923536764827869157527895196742927063550320042662978579236416866865482764901111533424096942626336563218814505951055644245511888411606939548244400496301392777648774648432111919261233750549246868793437147239685313909527546417005599512643367928604586547166026317642387746061629662410317388970953275261372741518499687650316433134662163629936379280593096859920885409509723130415193567127108915513949503511527397679229750845999732902530668526129441409780739460416259099967815191823789946435420827171217162700362034261335255067091404298982886741928614423446515813317758306857771329560721196398319178447415370603168177171088638767304349530835629559233871295725866296927844419841423894331786023252701059946342064128516568795246320251722903033590712227931364118412553321678191982680999736732938302657729901392873988809999793145514714393163170467276992799038003294198765843487251861712596832236992473898236233788972864766999575902414945555819981953724840673483717382281800262513207672939302323382439777823435353223696243642660100367124790629004876869480992978471069516950834823856738808402197351660020954370233518011076143569610734680985942170868468776488970350406352618255972050315810629295804738212318592088780423954320299108264458968341059880253332733664784665044087186964950970062122167678006421817017862658392176489997269679757366807504886329039044451219772160413098402037340393855229770288057372904600485048817855502907997840099389710942155616896551904172040421244511285869726921474507616442008311198697648264769080068013096580798969830111455036864393157721172178368868923461094360151928574741957577199396423008718277946061683465096369366404687973011421346499570374925936221905977658136883731239760361854896068744410027716657504168799200424575471427226393130181016014736164217693491037420345592056484640569787760754223064984515115287922131459699158979194231732838509300121004955796959536092466619059986060317597164288341989738634982336936274479759878862672811949562584877942028476134394348072197862595536235978818453190746456279205542420222245540229408449474217003606735024446179817659734856549604844973935306808125486507791410182899929743507997969772271531007603777744360436363513682753443292235020323308479944468826905857845459238093725761225007479838738360442692848000737816488549583148435588420058725075680323336398952088220567397117372027593368874215256419359407907380577227983292884746441863580408899713483154823331796985211711279658190189814971042114776473395306948373282831808986911877449943096501778975432122298900909938532703776471761852134585332294459787310099382724943855355155186892590618484698476758413036113599075597554322278997357494396322868246577460109623322073403618281949703631605550687193607338934207645677468338869216720861331994060218204644221189111505628053634192605043469671043163161283290601175747231651547147425930524765093688430757074356504878935938343096161073169593106209363022987387750647944660029545652223797137166420993942952684825678183334672680374467098459515816471327632955086529451656576023379324780120537709523394666316833251479999063036565598111088942846485326994553668041528779197520149623071957187824837596367219908423626037256719647803093961517833917620126479203454840513696701550808756757474398739372469843908627924831982748187986223764671112122928417405867257071398382905609491119330506800778876305695969139409950535817453275916390860243781966074371949155565951746772625524926126866989819869145564354261534171560005786894782497514243673748314022908797389713171250587444245038523073707495473649449549619271528219487781402375001566126984321584047737447703386556201097750037477209898743268407286877650565916048079539562639860897461727833570929730194881413557045896186201627557301922971567612459952732138879504342367233408178358634648423688370624194367562365481554196712903722467460324614445456331868227945562795705455184221614634085203608367148104682719971056152965565871660989597201409550268435593729408569305743390255793823593671364331304680821235918231165037180808770437834486963556359027378485745551126526092991414771569542150380036240576805362671424189437289041246514371059365855596001987229031655891405308067652210447259834723063351456687445028978438760270032466349141454866721386428407835684986627051927582193497707353687698449004522371930192490849660009547916071802404390999057867339901976923498446574490094190812969502911887573664298949663981317619442798829259080722912267532175635755542084464451616696361066883154514482667931665451920450728072011005283515842290696878063512102743302545571784421191178181323596552002567560291679733007215420736271447613377381783903086537836793187499893622091155352972881306089658798364199679862225488935023893694938032863676297562373835873798848682987429514266916716686305302121961304703138622050164624898577727882818082949716893069888893654221200001364734643312149706134237570499923878613444504079268236993095053502618054293780338603162667309009796152323155259911509801094600986702032788917655647515683104722592733323847318750953539337429327100486397686073333417889023863896259382131649159779643566410351411312307967885530662851580924554113435938047136171839762130703501237430210550481144112808037404829048703528204716253070648877813485840282704446669809609863873203662050451162547588907655738683309198200246792807508245892425804089245643126610445864906808350873077715491633486074625354318150081923270132328721494586762857223729463598820902013135612685172162016252188610087544130584519044245453957364909828100493912249753066137760210234241654975239901313390331519094540917053126227978901147286461614770172839161282132067624352804626109000628577055807866757910290208903629035052845974984523921695914895277631735810777735049308238364442294973418252105471073248820832957692735052301505089711536947990174939528516623179101795420196934714966491429961408869164012570698810102074213716063406043851840320175125499301087248832728348657941660477184946934131414769448849012937947916986972328367820628906546138999158623264530930327151267893011587213928221861105214648575440539275292115643585260929976750143481124294936019475227642545535248871987578840344169246285545003409970905420668509999316771861113783930880800718239470283111090803505659742801874590586731511586408534132215159789948618486627646404588007841408865180167758467914381033593183663907291906584263168357617609192685642025749905357291170269627512100323632594706680504093649198746872102737747794465956003787171864560477992977453601468304312769577824031608148150337873866438960458886007143302896180929064153857905506116854469520250528699693853073320113262954832960013322295209420324588156233696439106645454096696748474567119027973523715285327336583233522109070642788857804077452554427185859922659666490756274853241070613105576950439643512203679664350930890265795068500808119223488565400568883455677240219931715812837228610728122996063925903182580615824106530107390840146649483242133015786689698859053244001856179366582511094613125867691291714025354815779563961931335843186237631118563763502796127535552770553316883758311545416637876544621019306117827480251139054976709250582379908700422205855972540477572339403911508940373681069404476779578121362096520725163798971961379356340335325606501787710750676703764255149366952423370798248651828664847168229721346127412308090344612794945019205711703043729502980431954184773577346387999449700158233852056726987981531025665066523348933553134819003437738127107121513893686802502182408140327497067151246634937732422787154785829424544361535893417920969071698443362654197153347339413795633257284759420664177274592723379093142495882641704004941248308781863893765983196625918151433888884084494421126181452113655415812993895200481912237661680193836709302323665812665467576541899675831320204892850785865493432571171061343190164843185051822454080063330257302986835663808179061240876313611217053654787698322095425974031599068744661738882707522555462249831583615508313846435663648223469259947945347133879444013105442077787983019065416623434577140281547750404011181379683209684930164555785362354691625630898842029374790444719979177107106363741774826300081314796433673064939733557385842548929779605650170227854621419063057614765749420504882942220775683429043420529546828908640437667961098631447927622088635361368394697895687323503596613064392425934911974308541433126527548084612275114964584703333638766144947202850074509929243676810070406568634758872396509663981733823093149474462084921853348058173327554622934589684852752174146388515663755815103900024606587588055376114026914682717310026146661988203739888243961971764725978802631491715618245472851890138918098112523810908984065703975582904837054526268316423325082536159948213270365930476972332738979076149216826007176009456234177878947225933411649672479165977709342421219596135447787044159620078812368532233737218145695971385442127009654885034577196297608854031623201912405293293094258556533494591386229626948884512047679767921031384068877141308904029773546553820560925228630122076254901575702259382669249927536356097193126372739586754134143838976081609277209161411721898877686821585266346673070488874378800528393087216622891104790411820123425052268574354236519688840921175763101954610392206208038963218861419917769710430163303164240799932871564317500289068148326095013755652331210870334533482363680863222791335689219734691061891936176825163369498218068449282251381268118688566217291734166010870637740135837283658000504691141956091299408853819024967700894313630751240730813945840886856965497703713742377708727062464393324959591681629041740666343071971002242700252397353187815598954964866988746684567045189070439509461813384193404569697213630006059497483460094540042455913023233329049490429253121170234765953010133663837441125639553095591302053327807763234030368407317925135192355603064053655049395793668512004102525278484429950052430358316363246855019738657754256328520089705302933291986729087619825185842230511909637269841392821283695742543906480668506237180302245902914723797259262272086192556574256821652724765770003871145787872212769574467031511287120790868524689844233520783213861041139305287777104927363579992693267194831617094993375477570405724753028922115015646805269828060454120484082851743220356374220132994725038488420116259494395582842947235800586415059244434760512697948292264644277847209436151721992721812147899440901031615285251784890005470845057757220830325815942533618855879604342586258400678403507720340020977504146063135388485794140993597042250070140599713978595616222598421069338447752365977855126469014237368939197829003412929252925981652478145193480418480877124436249242475263129289690643409188793704652024738962876977688534949430985838055622015300150602426350254735501443993330820782534692106716317602058691339869141312719814570148289204836433622298588416323736277765453225378103913212435133711808919102105238984146183600865353311999399305769068780145230997517173751676659317685415209677084318322173002151666267851308346116878854074691034514625458620134479029316877386484693674774303287298001512539715655310383957998173879737616735130668811541615929560544154783606909907854726300779498426944028577645417467582983159251784067212014689892973829249159686150320633019679759602365117960313995310525875414649682889838809484931154165944218902267284898241730797120389200085885965531432519808911956922733144534924925742581884261757667486579131847730375106174200222109457171813597360065566327431231860715983976002426153360219199548517564505099760693356684438492455946698744261223595965764478552810020113118494179865751111612897012689002000398697939996120950347044287222495521848194128559485497791620795576218139910276342345768051669111918967810542558028567371493472817554833060584702105666163247612439944167400603280941439810693661890581240737176604382148160145900575251345738040914504876275928583288738583812096497232887560236077101811852336475075709332825755699359617671390524515068072840132922211349763610331999672663644276362250884030313650170643949655399192334141069542225485716148900162336259474417762034445625025286161678528975129366698445660925280657446370239335399756613757011746596897214954679349184295749874250791642790451181267254750992276876378536592031837346561108644983116027794539725029381412802716018739228019795168372924048600607007555717312134256748606481527699246307073692187060132624642529407186419259365028896021257244779531830004251576236612934721905614691615311856386212543037601249144743417192527226561793973571819719406632744094206507852817317655340611778480265305153005025290395285440601312756343963546697089459022693381829912291496220077615350671412293061373169500171534996468972703206019279714601468062467813209513427058210342454478735815701647084815079527152081828406925283697130202318994371690412964528405269166261559784815470238966829745932928631878255655625112205246874886993041104204356218698781853045423703558044564694045968131686267078361406616781698013720673824214513991032819401751899935353893694049616770730184983244944256642205655855061161751296031218319101357248629544580777738638113757121506366808970607330913296089576514588699516373918158600899748533788850325691668383979921807402672381689870283037925972966178019608144305061698753031246415339976383805342409934778185437801684875914162639482694520741097590275745451103618455166994321338855749337022571989549609502215390301379905469320896393062205183062419732573378030583928102103304332865824136752739943997259027101643116003305771317965269191296196159800136159053834524854385490030028216619523322526372039756335927488627003548894856364102433732929679840101895723128183283862000697800643397903954589616394334453449688695133466606969068119002445270006065777596527746199963643961975562449260902935243690506734749680322217764304337103882887880770971006258902311886995437805009502165144138429824931107681378007047922454016448876020904846270636531871094748587404180332152886958765378806057071365916390509401605085502632488560476715661579662893868761435230535103611652724592098172337058973498756241647388642439637217603585951993614852847870770684815310544978281338225477148815030342809458662696250650604685624950175148674573506687471180580517902222723049174411585544737658010536174339214441720917863809245001613594000876457592302597966377150205716658725900417288738254015573026807728765422644510416873197171244966166396962795382889933627835835497879721935441743109767199613197523588196310988583855827479928341192980378911197207603968472645176063478429656297222148917586929064960582508491481663624360296676300449332558820654304565476472555038114360664002211657768848608206173818751917398062493966044557814630475988450637912151657740947272809026214808330728223247279924244733407539841418188710433904680624713291069724961468260871553642995305441595628714440374479793218332549683762531747741148362242382658091624881970808226117257497964726254732747883241347991420901702533890005411880821007218811741655529759196461827224998016069700419948404347257927236179930178948879776470773897083657347026608205369297258979786679014617049856328174502849966579412421611671544111419650686577206749120788289131022058409683551088975714214923349614134933417530074932556346536781440707055990048417156640862541550771887854657407064334707347370239937431519536960188933826841933615575470935448497596543536477118374445258976143471015897992303399907246346653915852093963890539365236551695489526009157314669359802386427755179808718274670005794809665715525555956504564818658872086359171542810253717401559968705171880408286171273403378053231415501002633607342294310543612313635294346475325904723909475773116477228186544632340208319528649924495659609876994249446055639624254221027698913143349819015352488692213695048947701628969473281528559687540201817805652034669315648073804552929239530312604829443993219658555162071677879310785673786965608327666251362029250955840235286587095608570578328249801945410188601099221494369952304326355456433381357971543902193101000131886592158060315169441484689146942841157896384985900796347955110753941072827230547150713344027294738161727333844541461816151244486509787295682087877284094627219759228876225509411960245269239121607076900403041573254718586885524167653097896441139140392234309359890153439308094529800263096974818909782255629558005865765465788880616025063826434247903114435829363594436325700491969692458060612075420630372255243329942494248226236554613435959287385725143608689473757185843138544731474812527911086948716692064997448750265449793552142771928363954292669404784090958873101207290271682337866056926682973505381306952304553900366200793265281897578853488515798835204954267137702800090905783134366094160542387538955168003183566700374209369562056456576794447071477090024822902831967873830807934519203450848586769128588764952268438078050947098226163162922377814865691542348734167721271355000323156599541765816154429189139607376031467282522013010662568902562688970126893184082416442962598568546595099736421163339932903544777009417026531686586499789389122119700486632444582949895732924451138143024533835696618884493486576600684033751546986521905240199570239353313175709720784253189181110861661699599671240149297584366072237055792131008944138524613608578770061481186762385697905174391640689592107698979330804640780959581534955429035689619945129957512948908635635692410010108083424019494573085432546062276961507340832265797996832070524215315662555021228873062476715601380744918489057962475077936278341194366161953714508383194941731076422754703397914177983352723677920215371418289193498972920570919850479840591298053700840306139405724416132977298448169550529108110723068221117212119341017532807488417947931142402155095540147094320606984258809051835200448853303018622807713781142032683870173958595247827289830890402638460556933649243780578614891217730298150499939260683020054658981672656229566696464929207740378074169370042219366379848423890818579643854491462502723189256358974221205013590633478450427582643335982609255616561803536975734508738916835532431878810209961871461702544418559025896871866933636309996026268769972012579818573391595604712495799033675664422501583590016944872996947618620081402755908449964542828919611542706299812554363812155515746300576771277839296015686531682974053206969106756068838935286530379727275536174575210751659419699030933514007710765593814006312479342167966397231988523604666137203883669584820216787394598583898655214247533351344705603833998840989199692423834360326638520677633561875768698777798742995461088775600798523159456421930503344455483625058135673393674368504523830186482579669793414535486392608118035590305755328937656373881557754874251789914074836888712391631210697177780356851113285693675421553124916050218461284093235066471679033567286675085306429915761225410327275392650207833226669669344732485164734521547064531528852080321214688152402992054474207714217605609996351656889067057492936777122399561312582187911787634027148493553946356251863026040928353786763920227961146015598586714386621750668738942334757055805999734372616749074085727631567519105907893902794776708130926435820343778844926111402208130283747429239228092427436631827590924269956762499398133239142891017087145933972338431981397352890419783770361168816654185749605079833327255609272582372178381809348783676281453935923176358834729932127804133873182554171100673306731572242021632502311376781675815366421707985804968801400640481396111157972853333261257477968200901670117112145512579023408711815096064542176759859419996498761213322981908230970740789847551142398964618929021889406299155918021065492632925492035909035440008108728265346787248168744189532451126018926081150578469616702307520747313658854153706041345158046860614889785611780325322491979202634062958316028141723110757581848435691941730134477563580614595793185438212065718182874940380366668969421893809209645880766521975143665135244729098192236673353311126889119988608200591870104411366286613687992168514665323518832679697372766413468079688606646681752214437711477311278404602139106037063776304052591110699158870463714260221836788994098230742987643216051401303928195434516112433568921958562312121170987123698527987176029241325562038244896741456303913845748633867449531514711658782847122801193866784654292554142954114763708486193629355146051518417624659545436441307997528212547961338546002797885342046517515219267550436770907012373979612545560340860538092394950215519507332602162576838816483185483019882615396278306123470152148233956577799557658385358772637804821435755460244187266071705224922069223585729670077678944954112352837255839004140346267021642841979093088909761623614885064188082622963126422358850854960189373619258440292733936695457625470712839041893915695341793930753424796960919546202830607435973697443598202527303669931701106691737827389206096921157295724724584653820165516178772332479293421918941387907981088891598748606135721955671932043128067498505151929790254324376335643101024442409272205940671150990216674359947173265521018768741360905494707097591790205990021897876799921915386346271592065584403183858773587896160313406423160301001036991233820258001672994797866814783698043151031255503125869321967700906436246044400392376617685013778613983679994500241092974706562556713657574824208511873870660905715206363750689988813624460561562980434435981351908658498116314693713066488126037521207786398444297500080302161898923496760512661417605863746605997952737811726008670421819265907762649999857992075187175911475679899215271405423747175714864844863261703957786438874001196369536799479526215859565404143849559893912723235144018051019627624029809275306396389503824428184562557968921048990414891535855406708352131568334784305958569597263015254249855599250142781859018751849661793770477262835322373101578264134467627447541755427024098139616665162517473482401759383127071886918314832984964803958843554548689010927002776488479392114026977653161358967183293751724841422100448075544922957631380983454046191603966809032520896293119799208855564910011530517829912482902727581438754783943545367355328315063682303434715862260319319541545531497782813789767003023375330082644512768756937834981485059794692831725620146037870450603661481924578109622746862494495521865378103662595267739072330345452362964868360786580829818100331919785668802517250913205053945313108375229751294869280932471423727148954662289632947983334340498911930449371684562596392076792540762489365902519403344522298420076514663616140246971192878910936382766175059595137988916313867336472297337948743400759840258443675680732038528012234446879071704072734979971795564547401243252815991500209432464399120496071061437397603738339794898986007436572329683704758541819445153934961917639523827002061414577784602755994797518430114900373442152295402504984499812379032370875951665083806194307165741232805484115325211072000692517292171291299755220513890404527500266437976528239582042663189973900542438098082502447199170836260795250809110653430994158586523639375602736444842597438771983085383002297442425082708136634739737383313833604697743744616577591335928982063064516593247774476538223615803580529918985043107946558116526992082654779622294091410015412727009984451115624332086145320852441212856818658143176124436921513728125988224765653797428572929859829494073131039990656276065734602200438798911445346221225030907676992288439160066486959553971057225075804589200458319391168088634366730146001509020568583658042604136599936550020368008409225447486241150984096788172983850121411288597328355475455491464311203015519064962097924637861262821402854740230525507900273004849738734999460047038028128485804573686043612223190830836959439466251763044409735754075367628722276725761382569448916196682151757829622378251953933127300695271063123647445154462621162944629219667856969230880524547161369897252804459581519324105955374094554624711516742142131531603501558319225244629444423966985539864200636642558771394836792892600638269681731407240913663811720152793252373523041975247518545185050719641415357494479938550607758039238773976792188257226238865922415292271317815325977181983285798029515467534816373764768027670309207572747175003617773384323820752280862031017533816333771775092919156449847117374055974286365811846926471273317340785816913352928000098988939412757831983036020806484748443190839286471415625151449074340960411934713483902080460313470089953817497119994964956452685095880803951512924791928364603669716617064247324257485639731952189850669689596785358295575944651937022750076237165477602511132871779015338746667341490892103184083871844071060336747519444645954020814572903259405710517786360839796891946392282476488572239697310162373584185552380683575613641175435896402940618508910115423289949219818527755636745413907205382721318609483879358298521298168165222868967288670203376625060798792866976514862397780147260089564122241553342355904184196009494213269106890811577750453579788285980430970821048761260539952102436702499301577809205043590369792408651356039254571109909831206920755345926027373170456191979609567652142435765430469867332578199591868129329481477130710141827933649283473984202693075535718550495263495486775349570222781315213323738251832250569673194218358392092497922891116344493307057617381948593370133283608955129353238624122513069172860298303779810084695265569624733307919197292355466509074426665119817398483475101402044251033955899024998342282185405997517890294419182444420522500511437985961620983018714318580055094749881459386899077411407900062933412728479730455342338551871455796273908149500343332818245673599115010840816268351781012903131404326566030181942685198298246190111261481852020457835332391043622041520895229470483443308073005620708166075609941805318647585947738333880809713434558503696705291996250771112301145956053004116574811187802316916969638897461664924512963482725001777420537348211556881159260172943631158013943825491133074788843319439032345604401015416445364106541746098865895122919978457743852013072192939671582879908379073853894422798450426886730936016842870531858575742204392435150080103717599042200087311280222086918746086600652909275945454811690717470148972932461326849977683496077683600098535913336071018360897289763012292622223244924858079889993446816670576304101805283161998119592998452541468745689753559695116377826936906890099552596706748776423408313739169495658375845265578894011222650621277616312353627222261928381249694200832953624504765110739289606935119862647408521524516988885980734627126568433919774930299501915335037436321145189726621257599220809254580245621172578618042404998621552864905426630994948531862637250852714639722768364424832503858101615541681570609864896038463960729183432034615235080840114712678547832080557367496132078446456316262160563960279426446599800538819786819312306123408336317706603423825490220457809493398186513679880567109341917831286835431788246852600389560127000489856603492278502619563263240895028559079776465433771825152378731171095101006550138347576639006196917212520360534721270832270819711350976180660002262293250922916883563198596693932363769645398673032301335159816943103199354496806948398914162812001938380460235388322700038270398997879036330481382797973807816453198840434189770967282353753491557311412718016588220768894030824454094043891628387032134487512781905946296898008834475607178462721458270085527953106852560069635981108620407351908666132537178218110962017197418821540237986209771892854990293283790025908383413421654746924807791653599867572788505771185966738573636413880217211146414480776708860715609908514912806288363559535956922136977286181241299216329929906322210820511118617410707435489451895956080086977796950656071252286493904448567206979297464196499828450049230208876043005873836953395505235063372034621065286502033552133312105696987149619101084375143195965460586301059061211940397437555318417921192712043705230399297418039176257054755590005855313008451659338621191953798612148735723017958921755660610409194263214451908795590569729976729001667847237970497920547222156028334051962718217550068564400879448734526822354824909742351431430224019046143451986155158979896085738808830910958488290646734049548274536221865527483697693145924583371031853764289103555960021646246727102025782192345980029659264593457768012480719386283266387822139547516665086852462485582574515435787302421713288713425179954071250343909367526716184954971713930248875476432487711088652749932079734863347297199877433368512012952675454361958937624103944092492162261969417847498517011805908407275692021995626114245588486764915850767571283687289362297803084913168527014779501367889007429847491188202034315091280428127093097790780344224435990540373495431708693814877727267575487006862724469865244038177513092954960066053575821761987424671175015449041230326263178609702749960671439159891910265264002266093134611034809666350393332945713016434080256301826523988804118385169617551752793563979322127719108720620390659160647254380694753329197381578882832814130289788849062869608403582487041899420459883079097377554692720564292610883297644286219932535879638717755063365571618603911381390154241890365351468530940083886683407098348229156418377204455280313579954859071751031509032410732206549525672757918746415119779394915089147616084757476057201847612312239803725536363142797791539463704313358780913878594622950773643430123217747446248874996225507782404631439234354779852352048843532345115945163246458761336084953460320100169619127729582823250647122458265198041915576445743393392865523049459146431864158329144477058427294661233186477563375438340962518702681513875478962531374553581714331866529943219839815154722670049575780748681939827843011893667357646978060315009329655748079996384274203980977973087080390391720945717698071771436732834184739410611693320321583105026108604895999052117620643573021471332185040438698867967817229098228890651208845119634246078289928348337929803422085551837327441722864591731525231545505332261765650554780970486910702492007443697361261401698102162830326257151130941713755223052794996498330050109901574425067009642086563243480640051707756678670247431737206293666363862349284971447329110904059096234794207984392184786984006609739502118937299457383561092064834621717908668459795142656304659935559977246330961085077096787510080262063978533427058218516558533389930865847626105395759014235229413947348850155735827038811557846887615871062468938027499611987790556549517660257521962682974367146295818361213176317404222175260019757623563238225295768322234537361211617617232256525723759750110851562041500503073022036501083021159666275658360254478974862672833466993956961923886348493595429547354749770751253318563342741567285755792978678572356979422556717002160057333412092271170353318170511857543667359934164859680839580317649092624300694052250500563437552096654669520329805585424595265721775192160950272826751986965905485983677931360473104943700788274363909975893189813251466640130875520717544910436178122590786660835933003474874614407653890672207410332531221400938270405136568515617323813912418697319999239083940565958800083904360944376239443562969609840257235420362314416951043381749990790240734097808562868927523175429048146139423345329222719242968494516342585523958753067534633680841832864790668237008953036103668347193839639573058823255923039644103411793043172389117391337045891800420771525958659308529056026933073618434343328054824240999017812991037830156415312579606194642969856587020184639283031057160498765608208096182617977041591560978201999942103761862734284218561218630874527255875902503768187465085774743758237193331615156354520429264394488954028679642524987179441369138023537921352918633707900573250348440361296932669502479218169547800005667222174309070199967283446291735909080307797992609216073447651585193632154042762863763380554831199751021611101937998969373741733206375839177831471283079313979298003012278539774014470999808685427906552777304271526271897667537956096560181998739195947488524876352914253839261811951930886198387124952983234488815298429706361146045152372597489332968116966813916679939898382507200809943987227468019062787920388131960312268030364478796734423057523056335529533006376726232969175900460545290252915351113492719854015777375991783154582544687253577297976692821291485522187318424254908985515765590718886567311763769120172712497983998927565132074469732285961609994620605507518730696432225258376701186195730515909923250393223312790406511091944369649151973421305241874138104882305646021904369900685168317004659259737966881720301477974639456045298133733432991891673207440447576261324773237719682707521131039551289777398374897907874809178338247379278817920475533279957838532085078490792717482240644692081068424291453927266550608145034789392431802253785209847078304340719376852185574337227213858293592277487962605570769205965915534845649146249584625786088479727724557302155384210707313391548424274902494798733470605035956193115588080014044878070019747267343981793623025395412178592165672928090011827503875848073093016507742406126348091315412334212132126289888135073931163186910531594547559870545344126447621324783490770105354532867321397093420129757285138805616210441368835440992031867084757742069823119742822477340195215534193782997054515464807767345635062134134353099700714227328942674161809469406119840311725637340268569137114125920193700208074446026877254897511837564793588866885893437751969005139254214811011360064493892888512764694573861514346610474942086884813256593348175911757435452299812144407010969004262638214034900366985941236304405639323418044518596521065609206162115414193059265283216833518990878563406372162178741142806576568090136469428651391472101320803344651306906555821500350864293607763638324590048404353401527754178426360851936251160523906397567160265756848598815299891068593556604068162896008161503062614147472237377690953497945322799925784022351818942527472958242607635262732086973277747420668994635422475815283983534427906389357457663072475240617588526511761833524189635310836730121670696425452819666813539338755357918199907246013796240339670557251579621992554143017207922718810695431005839550156477645834538960161078734857680570068392667531645792195815654462037516175452497729825039296156168492769974558148827837670512045426600445080708988260948289464066849824387162118044498698957555898896208680337337284432120913143696511245452804248079446404173727699435678752926286043915127611756710370896551686334864911868144463428302828511125402413287234543228564976286135302501144976240804484297084515175081207567820701490251922211072947148462332376192760298647884315595326507831445155236721983704442289402602009412457539525102309198431598016016382558475698200613367574668002269834806794774366306910122573044193850674640566745268423878924569343692422869674184261791906430062322487644745461540342913052599442794288029444818393682559731778742332377909487877717922240046124726227098814606315462934763698534590813612970876064597070126919252239665053540915661787974645899990903723606658778985310973484836115838611587011755631376409421994156535201825111186190508439876814530664295659448881389662968277677686719137883418042633035019442088856119608322783200245628559319619630240571825227457747791009017549299813090765227788698745457112598437695911157026038051310158508711188517802926021729832038086410338232305898251064203554819427740582565620094957692887985398578245886326463018902837678173986954680918944078677785329857276712099005508459920571430789309281968663653733300424846322262222022258856269735959320644864436401260053949561056619875466098509827195026719450562774027768199661385192720217979186872064013762939238824535070251380870936572751585545339366366884164150439453866468236767061352533614828333971578147894719319080221130305153620165597086816766219622553000252207972732245437847848445976917407822453347219827816234513149820240210645597946429899952136803058230993810065644568626487095103139095983959458045004370440619157520177865207245641066641051093052192728034176232455528232904743853022117310013418769097342006676305993067827654237021550874868510968451778507042625636122704606438927236438442382870378502801269728724409979862052475090838544095065720733141982337050391584389129191666846388271895318680954923278817036628435246811013694799320993641399331752828338004181085662907092791103848413344088016581120282766678948595211380376540015660001065807975913123050350135389957094020098841317158923662498107317246346344413648221398012808703831604119294362706475741148505939630944694476804900899558524169140033775438822494353472709851455501056706837506329610392014497997827358812279568691612244658578266401835112683986181415675952685499780448147256377387877843753103065416895297254767347661919585874559292581968582460684060281441287277366001753532491210495706822868735897331247283173883180851425908714002243647115507284804093154122693025385650795620815516325513229220333006941611330634168505493435290435308832300250218524152154144909020670205461714407056406401324784774409707926742674697781579159132551132702340858041798609321643633340213027549480851777867167031387529036244343218558735554440245457269221432997544591766992988959373905319211017619366384914350080885679219454201396166112710143646531398192178356654367045116822171878386380050101340748334564734487387051625614045400507644119280809618360489673586640778104189353064598980033188213848098456923184144942505399004509886862233987653127010662766128145045466353625573694363635438631496047059982935667244458811080876798216612631891689274276797724702078518157415189066895090053352675263605690020004568214251137623977466077866955686950167703695886344162550111871526079636653078933779675665369910156745921854434296580484815434161971198021372479791632273244419105853768109933272852428685429802179305278888670851344260882899792709827099445802780696115206260914644834181401216600509618048133377321522858452188860770954688586096243003363711921788087534685654221820078549658172968273556602529553437215296310310934226086118109600889121004137334713425063847360626922115414874378094178886535009057392241021645827527184241663054866711967918319633170530570007719314656933697023105762094788302846484210769122052133188135914138159756051553873907829253411506114402713379711744107932593220115949347845323244192373100959749439747054449746945540423307801800773883713889031524154774988447045273377868060428236548060805613886672652716735074005692227937524776347506996235730198736989522290529255009440819144201059521247558320342547542914090797294454899560259722223781153880234512520476769000340348154069310378604519817883892154155396848684550378185470378221581248062282532793353086350068655956305905776242641087617910881601154393337056803193286111543061716063385754934337687242230101034572380860816989025485191969582206685895142488354629533852526322015754994946394461950040144259518661663065957979391745028815797317719736711352954698154419280638643195401860586379511574843737697577563320656458623292024002846723246535382788239302864292442665897203139668887268360345204149522582068759257446497295292564012250309765445480217978481544368851574293036959566109594055134530736980405390074202829664449681082885534094890801837718331275677642943575695794157034616256089223938853917725447015231971486608934759569332475893577720423490537128818080883316291263982190335392079738257566039574632667088706507083796878251669231877205462561548173930575370073923115873829688436925713737246784713083800056200391927730918163932164788100140644484511380548822993779781545454221836645021732399548287090970914371393504695393579080666166827197052294580004038119955012783214422237757953715604940544841868262998579027720628674562377124819475670185430876425584787430807928592128922217747510209308311665729610590444870063107318281280715893245866201488848253211093096896233931518094407495898285635543294231478094240351387934948739311766172213753589904569149686787159137675315385207619467526100734991447596658925800031085013155776972666202471845652902310894190175904031446960775877947029324490972418870048447428435508380000248210150651005610251524367532814682714510704258204034958262157537785393158403962486564248768426607393566416847582983484069934203309370885224699397651369261315613695521305765868966594192150597141683780357445381174226447691018988273118027732386440261686188735486731380575168912533356901686126261935904236120151509911678503567484691985993597160965931784292270214452458520983981926430335919181821978444381870441016469755295708915363692470582854220113279443662668240498168038624984906693848750890382596814117692236036489108841892143728506249592223196937753142457443960105982262413918654465382096027997917200867000766972615803509186099694571153337067529944987672760338857192871405853751082546441974772975476064984428854657214230354986077158381263916076725202363152768491682880074617533714185394577134525543847697881908709815867618099417524065478633579478245104861198232154304576615274885863689078157736174478458037457300513904282888147450668649683259926309769807422502533177460132039926419073290381648472398223382517433926039356061584640935752757728488586445870213317573818500771742625505907796244383082263018480797571266001291874567577633184937480181018340744616638849056989220262750393436148817479258543077246713239705586128702256327739976161433789334118733672260137712877950400856040407054041555000056373979958869715523517470040424543588767856163305382399676790509937099729167293574928829817166348301399024074271563082194485979185736588066317441397989463195338736926424202633954574686296574703673926897085999414604401674589505765448393889334254945326924884159077183649936748932783858227592572328724580551112917175046330776191427629261150620538748663632697163882890530596537784586707163942965173588469980418289113842859837197610529350795426313568993959393593105788593596421184547230044921429298373244617939371575770951615879856214550783032985710035155671235455118436009412774384273042574830075477564804572213678067039603882283273967342243667954063604068140160331752783245602917003681359506102070227212189952060706199185847884789683143826411610382225802080478016479703293062907899109342062517225272782087395304195077162620515214393628374380029945579463160690256527532560365087223385124255279063356524961902178349334169294448677143131468038053097721639940761994714452338706532637263334786927664579574840475569865838179535268725117582609872819562293130608639400494398318463782497281499931841431671833979958303992831011242640297388928216820218598808507945087764034317014104095665746572955986137944720095959078815880548805284910151608277230658489505145682226357654910181761147052846013182632086860465776772723448332112554727326393889582045308793434445900851450620848509866255925312725523866263313765486015250802789179958247245879017680317390441128013205020005941245098524938949319522630010262413923576534843006208731512236029037431708860837538901854965241961362633121641471190369723079891370268981933996410055927999695560155346316143504624887407072183532316905671769865693156708893777491520871323389408518557252822417670971389413681865127405259324395857764419486104516244288358276479260819310500317132440451066758122560312259469653771698295973773977400535694180411361010916065480570745116841678180199892468226444459516951914807609450840392032094787195293686540668169205559245386549968277830672936175185578413223690944851226948420766279489159197314463590281703410194261509386961180905727210468531533946000363766608083314343703187626101463710433245626806979840424718315273029288720314325629794197483288516158801473406928472797569890461133859121971548187245075167674861013622895070736324293791427291965405145924825300868855079536718081338512374289682227330298865909123755262190110452386260686435630403479059131829860873849754184811295219837488988676071767795955767670965856293164106166437014621136444659433908928349794134311528756166377193459411435058446683619663719826149337298195801615784013383329587527051335042107525453558159984986882536848465246220608200038857413613548389118414870435110534762142425593888345784873101783436403986564297198296923478959959244429974817472435540989782160366878430583390822002865633818693322990160832963055254176156740672412358210767586718561153207258684374617150220679922969126614234941104845656812156611655180222055797870319841168681441191166057900449336704010936644385170414132873916255224588984193730274627344601608046678754334179870966971216667301501516192009265477830569616376759410148340929940674442215143729148996219117833119685589857724751250379037175396453106112699730597106520457353138713562101594681184185089049364200113547506409872941460687388059946954992540165712354319958497941159170764938475660111589781360456292000365931754072811110561122735508463883221505815486753639870257942952363072971293485201525167973232109934240983005143854554349741298641347484134617298327814414614857548557336083303384656981143164526998793547422761191099129469678646819242597777323111703187303812710130182114638651123006169638063880293452232093735148546731335137444841209536365082650783845095504764705774270582881551735626247847466290797635493287921210015121867199489703073655068584194851229710027327609320325342050206182491522451196418559159731687707143670554808630436809908378627286541745302343702761162599437391448076291907481677262150469538993089535009442788211641246263269633995941555187711718357019561461922729468575550241146290254085675196013596354988064432341548527098200740582798823376547088956604218255499572213363402747788415885119946920757565710420847456628698073623702739388683071505490096079258267501696779789495748252968612656552409169536205322249772881855946742873225439809484482938228586192124834011229865004132710020846810306543484136063219549570433657395527238003297037939252938581864613704881210732310990595864887513336012764053127420638880478486150568431649500296622775136172086245446923501665229591841930262069988284386591974291141493991840917962372113600816071620873049234664656178062382016217094814090534675209387584057526283518542302584949568786497703913569679551551791639808053106352693616763439620988887912197963045092222141310372392761828838659973796180724643962198700349575094103822451947144682894365450802234580953255436603312697784678046033761332129258075412711493643891621986983884932696358409753907455176313658794250440908278009203584328512832248005869384185077011069133843544273733667890446087850240109435023933520017378425887103393735480197182351508813405874681023721758062661677291919401603968950933256830005556643984447618809750207527199399268837379579252812657498148980003507603043962088195345441826790889635513828460503092591321042038993228204984907637963894530625374711405253425219285993613735587985669455291430739184148785650390762976002527490013702826957044917526420844503564929795204576938564062320519847569441787058725832094935219831793311010906622516155472331702066065233133915121473589283391434114836128829926380727300066673095941403433109994124076810736956352731924011191868568640232494778507609447846854671261171052036387324076052667147775367129686224354681038976018320274811193884976753410814501580843095582002888048251952179143534570274143949023424001444196872304432135005035469419515993496817198926190765849088676972662877160664091388284831116543854053326681017073730149484449727578121318016827637720342966714105364992751185745979278474425810495204222017293305619565189233636799462180406098163696996235754031808249218752294835840492652186645019527570328429758383914257007824699203335210303332585731551340008529207581513281101214213261786673070770616052151366049923425815433959900244525032167566665065965961850408512042520737803874530431343058023814928196808363538968980497896975633021058829449387524633231397549353891673466321969044160989503756211398732234748096893940018868527984839102387236358767962867621767790168011795605958215519925564371617678592505230104445738153550631032170630230715977578405173982470736763340819052583175726938914929326170455902181623294207193583244192088301739972638201475185964930176131845141915018411256196858785608508717085774782591751784522752807004160473763469299591528544692408322117332024026590040033591803634701881930069654744211338139751715292055679987549423605322560887743512942502166090032120785026163945552664343365285351009204651910662667200151116467197151380809342761549137292555788397120545791832908941275438986055760525814943972790908047328200555168778591849310619734247042912376662009782559952709452176679065105034979192637900548568373825065653056681108414143469398345125259509295743369878970506382594315825566526949103840116469144603466629920442087394463701826699512643168637776670533287620473557278243492354379770819097403181274285948957903144116390448870169421123622700998759742794641301720196819746345709217946445788941136694099871597832901784360497086996973905085436920239750424800531445848434319872147750493421347096271540026443668346810131955178255451716417239536303083746327345775183077790162740696964668521354388896986400323294103332262326092754879347001085009422872882103655919651851609622745036094331239210792379712505415661763647065386349894147477480564481131265416203156947082945034028004621559184149165207996850266569137427664337735575786374334731085849459216376959346472303424643444898701739278437299347316456019953305644264597827446803362423921787988980130543469626198011413654029996872181010574210736250952416110030987068388127754202446667284490003261308421625378307166722046550240413374902511668639992365033617508451402278932012295249842395007908847151384538322183375281659990066202459113830042982729212863671346128670803699481597796175970937048732230257736053107801826777445391872887175455596047281871819419546767691199998770699698035051132583558856465177378942591528498970140775684566605925810010747459128948636882480902759272411149427949476687863071504182705351057696284736034045730869817968489664931855099739481778031383995874606982824660402370849796064850528318236523071818703389118682370041513179943445467168208638047873978646540985069265822679524202329246268154577344737546944117445789492215982732969304480333052836519072251339743795329656725547715824204222637246552972520937951276901885441120868576549961088204121610304434889785094059950192219322259341230583281202262665354701868320595711218671970368724296315135756633942819635800682273824385132761184062798427441900123204506199977356884543039075817627315265589315698380845994592216164162066368679177122495854580555752345946496740734091064044687338031236100174231960702846616022687991343414201154261721632410271495881266266588589909467066746506149399135351664984817749379532960243792546615100101395219018422086232220281369885574939397431953941529539082222405949305892765123579591907802763169944305156298803915322742104995444488598076229181146600893293900343022799072421694600375605061365174276872870025691560823638464347027464469160755410660031410932855745352815349468463713559055038986351863282043702895025948085133101094359781573386715640798717491086886900550966475386108022174336349935559534023439698829964920570473264676430244144326032992388747366137914973705848421260492545331700884620402677222988822305676128287776846616188648664565619457460763268419257123623268887159167785106445802137178127936589617639015626248711553570147996248771926516652744601300970741285309077464508277858430699483676714373070456853430729788972720221613545683312572691444602656631951789605397098140818324524794688293309040839846643036739523841558246056104161072104097183684113663042788643825082187265438389992522334885755933751051920394332594994559463425970424680861214598217932709359169459025948463786084252434614819772151949711455140321951540837045773792444074135219071287781243584649740256870237231137083690316049698022565090675442396888179067445695296385149644595815521647144769438629904861245345871246331393511678063100660672947627877174321139317666361924527281698416209615341729499110872455205476796774327876721746734953778003708514971637675712952833507239889136170199562863583482168872425385903266022971188402120267502534954907747986614936173106817098086161071103656934088495247781800517825477327930663106117390236172504551153253110432360632536884668037035268989807793704907388276559187739131756023990270583923899406630302704719210882801409799330620675648271406125923760592960252429983594992425201921401200752871708947238440227601260332249349491757665998409635206019110401762242344549503814129269129273783874260601770961061861541900594982524544638205032749213550343954315159054556802464202429780951524137704334367801800503009019504733048723306001081961288727253204911168597350971824749494928948656701460988715444790112240024844080882820369381181795038865037899698261238802768103162327747577361213994487255010293904970948538250811153947927876063441003713482091545806784951499795682223432126762578171632929705243978404825213602838868721723446130528586628725510226001165110326458043098706735180849495596490367574105771695881188818308618711854636872507222134721319594344803307396546216562512934318420679748032711459672771731971308415106278520725593401887769254115757336598488321031976063871263509184723780068432382892139520239783615310625006062002169020157254713745205218627555412148003631864202597752292847945741789106613191621933938233429639475622280166954203260757696929494324366227613899860877925789235341304451094992909239316641392798889895208044286894165969214486146954912385195368825327623615864343087059422762181793865747048004284021538545998069539044287436089199707091954069503125103049107105109483520011758983718381414244968346373633507010444545659591604653088970873256075409254228868356640508703735659027085430823818348723641825486614752189522182359360311456146606592056594324895975754816861672138304656380851257435236238140415616943917617928130506458931675914801664255954164834547162823228731599022619086002786007136385817006712552498442297969128541739785782291727919606407776920878685276688202866114670863540997519329578569700037128136410870514764555066561639043050235157731222488945979085850696226873206624852505372560038595535875312156757364451098761191262949709445736008267580586877143083099310863642620506216084213916350226295605270177177667649230620774404344890762933180893695872987097509729647175047311275630249516834750520133261005596403396016099815334406570422159818990357686206565409470857432540952926921419837339402069789973772676227972091780135085709027320725643477724136066118899391208082841500227770220024969351876397287828830591824718997261095484760724288368491683987744690251366843069824416775430040676980870797427448980599125098931052784045858238184396363290869568690724628059983948235544541085352085074561281108231854845029580236427503359011326953946515711830440170426723775909968194463255104142078575000838693573809174284476262782665387057735713626848992607210573423584205522952629558879177303812782278254675773733264171067956170282338594851441233335475620896815424922738840495825640729159372054602873932544080803675701478929335173316118621655503783205588454671206332418692311668720757406806086144919426845483010508878943970320616962443151160413994165253598655462945211648258919287401575779274969001397309154280964988144563422941690451469785674743530823605043732368062012602141192945565048854147053646178665854150345165668627148958856942694689608762904215910313444456295410859069875457710424100065453859056231498050280636271201445974009078700738601760592083263793760608815668796677866168121841755596691203495392774315941001972845720060388435000452167344053562415516665795535163785255827412730120139477308802379350065453555816038036332942782190837279171957341684986863370506153249234668402352814933533065344410008899626114964733593138705136021137439108353190257529309520609307396631803410278737435816101194291531483477086111705683979838573392538583832585186425519515174374627575686562841578505165132842377446025889956773859802315726892073101497670243316026714888225202180638919189182233162795894598883235297370361998359563468060075107087260490022346725670579295444826688889951198944702171725886284294124466123058415352336491521713184161496304139917489384379097151012167414866171915202222496593099530056731250054624722324870755278901147797323855384066431099481922310834915703636810202911113597420485925781073280722632013668581766197924448874099259271220859517811303555350453887069844890228674247119771566697349191931823678422821599353825791453716505091756260021631959781416548234956931102815205440576275306572252920548544920588928547640803940170401248132130059242593645989776384741111434320534582235378195049180776439132332451397534084250401309394496762973610998192999612788486102929043251116705967086513720112902493359524453381681398098321305029666339885446608181671922212515496683176475064888041561556025592340590980269834508082910008342605759183416429929454196965545367356040580512084271088669144383240285471790814847721649376391701538897112756271972520028559798038577435334387691784982381800492158041599793551654838995550749079210724371940080393978659648338942936902529850683735749967444935073725222891620894283787322707740696629706936225990374039153445029697986048478459604497282900655858526996713119610454778882645097093601118818281986296459277026637260369319057798614829265393437652705434874123388581048614136023926763985596522420597430341497848970720608975428117780110553277812165813311003690682744094736076595802742529366433891239784171520824112271785472124123496768549955575667870590815729191821190241023578761975312860364872479097589606093181580214161398526992901538505798702541848561239547604453103370518085533526800898980063392393997410310755830876487707720736680226209811604618891213896292997820032274087209410171868173330058951986448440663647587665161485520690386411290341316924651688864723234068919476852885140378587389957270581004852339503897620387712278216120843571382148532419829456109132790400312839464073467513426485222437198479061424326437755230394829345651386116631305823001108981142953570541943012216270871468201258349312366417436822796744050715338509967866584697256916193595602880714382201767570102919418085538708118813128162666599845735306304202670154285210772077370916960506356168525456351194895217602074570361251250224377454515849234337085225403463100095055125066735668307559565319814833876461514445270224737824690579315944654638691906468248247199585835687632523964510703246388464390325406133109397687383781085214605608755584915203131995506306027417318979780720736798421628043888398714479877838729411706927505175358051196590945292239072380617435252438577141067617046296786581700139019463176044346004013335137587774386581659669694304410187369218056503281420212619570343590243863118596472315829426704956099414813499718319965165721964986469184072749267802694441595464158880547400186562810644620553777243195445419908946498792174505885164992969424835943629893322060904737826345594987390287247718492212569803896316729847843683458610370513134214770317561833841000704681695730508039584668524220272897354281523087272376079198434752398660856561904827660233548057557266932569391003544033783424660108597632689559053643735833473679082456265350048613234820482594668843465309433061625631089584358621874999550928134606655656087652047077978568487971911166191969510504842436218987593445745800315525665008765457369570112346126888625437907926783674060291391527248313511726442358405900163824242589245468400974805297583696969430948109336478467335333705006463697487261586692511586977961738365894411371900593471561126573607535391664413064953381011695038319107827577388408659305072084563747974755067448369388528381601801759647339650716343092368100752623366626463484723007409301210265434685884739719997647024403344163145442244407008151245403743982225481022507315301964984735616536715493571044638450357241943202721325100470077288254827493338300684158127753843151355567085888517992392705570491542374325135989841703467635280811030658685177031223662464400150397483547502930181714379205900558320393445363990614777757455449166094117707342593455038744782456845246975814277692907691616131825308444701210323719640297409932356648052967146305552925499320291528024990440268590524354051750835865601157031743720644757885247467058177346222901434591327376995253400186680372129154389857100783196965817643764633193332903396108252249328035464926521527344829442583390938669298393712861578940787523931599513089611481937278731088352534891238569309791370359470823434861136345174618292317857481015606727329320321870878035959046388569628960062780337418711337635961487073390658991041847936802229135443294427171598010927807394457722819624510368991542208911367610038028258152202877953406458852234874799559510825234885634721124078523907511529669297194665869623838358686898963970262258904341305819308914996932486428610295163408482322735561518269486850864164011418550723174578459906799890154852744205137864719321173309649037122969038855870666164943973700507010866383918613408763536030130486710364703549473582637881980892335386715189515467594883106525894539913302708782950970709908163534249413629576311433666320100195624833983203454445231489825178865087710709799284092419454789234040948083544380928775851985907646923911110478048921445810270645934806761415583082479565147263760481496316968015088667511569443037085733519464957602132710547107641679013309637302211592290522223851533170325813196531097309344559604144362750647757023908639758248147586609313244497508338425389909206635922128217574921339504354427651398709840186194676971200772529714709899817444724392633124594236113485302058965233108295585654701994750977443348964971345808117984119454352662734363130769565622047436362283608881464712344131415789442301664195613677688998568034042591799127203221379431164962488110795738816610880746874441962672557159699356732863248171024355831692567818115012838238498147697433040877311385085603601207829924995366979547919531040274081455426906113236825593170132015980043285130532518402244161832591614754319263775264841575204507333702856823317492372497946927972789581348230212038736281031117897249413439257970749796215303937780089354445331222989583739589073569442181128324718264321983663523701289671906965827226304005016792119168230618072624786786009246459021543714637675607515107778146241737034625179101466120232549066547234064022932880545847148180824357249736033695335436708001375952142755078728795832730566724079930703920550615229422080269658764299921460319937904826700735185218414876061212864094145654189093208707833475440865400683732913255300949399371189265192745497722224240630578268064187768664166236603688763188911823337371117543766370409733647390865766878248532533831320476482061285296809876800929190621342782341795841291125009927046008952606997972677032274424935846891824076017201951754342342638606679338662955304596501178641524576227903880251487235644711195396284026222264196626754075897665164581856166281287816504609349956518899899552374594731723104312117583133611689086824559358279073661683704053780836307219839747212638860266267262673640467530386956179285563491531894892177666539482322190219740382426576852852602836348568573552536127528499287054892632409233703172242442115826791129722499027233526993252851161393331714525246139722681048152523441379786937972593755970015809651412092292386457225415768079764524765681700934641021751723442683546901608255431959354041089536115197948987499570297620611172391726747050875382318820836721188773208120392317983353581650769871897356932788976508208321779879069243201933573513981440050735304637847689307015316368392360907130860576040312440858119606419049141481183204275219227812971808671130016102753623641824051209442609992284648936347528130227014515698001185416462909978889042414712877516539748843968120258941678486473764970950579965265382584309218704623008626165970892369743546694020708387488606052299061876945704855338294744245715209207510184701703570024096710990179667059186304613788484154576589423215169747727694989802733945244803501107178089525332668976670366070965637459298841672948522611938300419901392076061161401427878063852245746084600399006625011787110818889270567313146260473668717318887430424641796540129005171720311056045307732393610330555003990369023983770830528478876395180512092867921571531142970767666024584973978084772376679842192682953167153710471122137614514944519083712531607015587483326326783742336617885961041202972762913139843203875097133818541753322091870574207142320545640544721878274405161606753657048657945011107623406433589892265227500114785397887260902347705773208137761498093459750819899334088942591499348674945863854855777078506363127766885744378486742836486047612878646730631617538037593182988287163203027096003740894383388878936449280244853598924645119400384152014230890072002714400512017593282018428147175700341210925395810252068645425925400680484129952009263356185964710627051584406223783108503786975428859818704168693254226135931802735875782765448185990650059866550412404605697450940678883652587252462141229085755783918428783298213173827984001746713037882447726728806747881460306602377268577527186270632562733165063684572572532083776105282706795930317918600594134725599556149617246999454440842930289040716544182677213570968854273327173238272011231248364184850639900474809309285880679420773439242668418193587172146413445365318635575029540198995950317655253255030079452504177762996411614265331930551878165643674044461000978815391768720508809745101967225356633179363567951730739008432798345720049462576081177276898796202582657000118406512803899074084105874069683062480087014206115121337523315214916520108938368664953921606318717933515982018046411400035280695878718660462582033355808080416465927043833136149113368910586398692659961313104132412548518248536853394852317601736188127633125108734915660772467694186390344438025467320072274323924277581547320546743295595306509859961044689406688189931122496692799070150725419067338671988920337634767874648100507709137127363128776008147009415770933151857936084585054351383795365103742112130401632230217623946925626340539276560161156669036600177633116761218762987616866653940508772336751496470311737534190783244794912017309133331711600753216201027754746833513154096829642606978952902200752770029073178650889305359159835090179018855131088396773839181403615108614084390910065433814996202192020307321132133862249047290053021545692242591478063368544535786520384217621278727312589119023207506996770228517168622587967243222509849606057978532024574716185829059961790659227717517031305408487717139635210690180434498240126305807242257276189088254684461476243290379131666430537366333824032615316841568125059621547547608979975963225081081171089503596530421254566293741500724618751427818061809189061084472676471346526457955752294861039890080234870517750997582629000446437324560014689336831084602620878261823584332017308291591224962749176623313135110142160833728146108246518404375769660036340181159034903179286875101239559697073833034555600581780412622891094212763628385206653174617426599257246985066045576253843728087360771368059757136331425404007750396172602688424367700707255800292147489633900492579586566922551546402820692888852975045446517439262221605912795851153196366791333316576960613369588122059029040859650905540540946709373485087481922344939002203517804698890539152010067829236592457080753041571047074115009284553459286748883439721641145015878246223021279345137832949466085107235560598229528336309148162784894871207020670085492768679020743089520947471099642558138459929967156463821230138255089655061845205217567640729850268651825034174273505006014931999968708836928193820443814885861307797633595598702268953112564119935458681600043894169967838951433799855117255288056774356217838857879438913703003515184335956410288399150082079631622163366739693971876607821085682033132779471664945956345292749656604749590121149278355287268678979299480796018831133521832694697330537275396061955026476294035110531962244239940331611586483537678444738277640636798530910550655820236741639351726370483194877812931760826493854075001818177108911520666612642905922572079862143118295659248618446304923758383382791408008696256210548801081904185058731440979553310426957958542976538271961517116586015610814862696586939042422961490664800922801662816263159006328371856313852308547951515215993783062561778736099325653546372525525609289518596595140031752997770952100609471885817931453307025486864017359133044204900357678624655793650853366969240559903411478412830327589700160313443111512972279518653313235237180230630647123332602238671642779712767004561006461848036405303042208850705022808290216250880045079833101834634373382184301286448147981589195989990959728075286297572002225402466295469698438372307740345220527375325765213603683996796446295764253509002634840714931906148369618240498923456882280997742013409114190485173229852282549360805593490188711519610874748675852870429167784875622835179482694559144621758298519880439072903852047078248939142659475579492496652609811034320086554400661946912413940058326991284172213485422255161764404271574888651199026854880808872851823506634697795941071224493964811585306133241354653521495530545447897602170267254395142584775236793702972152705398829469696762809653657383748469395154729454015388260946263587122065915029298717519302663484806116301566074664770544165095671666273426970195317261806377300876699239955456398295294312051582957654155726019162167513792467923242510638678709708993959187201837147303588369783544504642235427271290207285203633843529798166849022785327779580805090918554401785814473882217390031341421307989677305518081779564522564890916525573763327571476999839495988797066998990078055784188292859140523929023894795482588705682480941029867465273410466952367313800413794096621577693607979691515849643535464742568301398413172457113677465579707113618938827406973686288162788108308944933797805372418668247390683251311656569319406730942090088574206736481196242598526597338715037831486704555163532078260377659145534114977832571904058872593829281845952360395774848698115452934738397974168153953784542492253218149944720521486691018288012365164985577438050019290752612840988830652011848839719692521642966108731490159797613232459085810037280350580417750132751551372975467560769512430097017175496892714564745511781218812841109933513308737232344373174335189339204679026741925824719364581461155375689397366003802636941120444022723859411842297944157306858558205152846903176000377006754879064530094870432407108593160805565304471768863872075359435871749953707429938905764470065834391642151815796329713406414939151794568045946749593021747759865132752390159254626036883728535935953653707162809959413760969964318118606562503565635070576620173257792223728912816903279913128082285592623265307421057561603988383455858752308724236656765482856610444155370942112342704747849707600026315714389447832454988859127007758499632647560528898341450381836234748320747182669841947984002107471512049412505707733663199234153308120942786501143728216149220148591348280960747454239544014382960435672516830765633155474239166583119422452832372366968035601793866922093838121481337292745732725858734565710643567771511761925064250677946769630894966067270693117029577923976783935552703086107105523827639551535528055914318498092367528212859188459702221214367754023574200051299046049230847400429497498139437361676913449583619860612707389678975152199640034415437016531877953540068126099726611728928316586141304062178650880759178089472117536221432788560402606651308158169631242562075079290238106737816257461734459354015790931599281544786017554282640958175927044589508329572151636116001805632192578178709777075024572867550741111021692637470598028291181024974434970429196707206292883546778722921721119193753872959371433271437807244245135950593880238248385116338852992792787267609409174909463618295403169104818839352499498817986780722886916043837076244492096323423216201449418451256407924733709741533288191928623935729366025715436014806615049152100776931443205116617736433067757317870818594639421742215406430535219677637148555534704229785735545733698335541771958945156467566047627528592542949872279126107981334830534502745106417358218034486443487114532185969312022796601587747808438250110787889063611444311706625476340340462032944495315229559648190183310160996416860379748977161383992153286547859591304634086465920790270637398956682023867407544601889937211822179515588040865203523525088582795923884314218244687646831464714957579198980829433819415702483758031233461569348240188464181465904896292823877024415232026545968090535161870154243507397630337357287156171155324971155083888560953685819236846074154095952591415027614907990065614155958304288183957874440443586065060775960705161711710708553421108798550840108568924095317780588870576694438004405902162398087719386202527904736147342325022974510518367082788023341135498258329730552557114910475305587489993072930115979233442196158826463021554558597756971161184162189404145524326507718838432843202093577568646041798635507279787013693295759805019254024093715280246402363078577645092801133004511132786903632484446785636811453939624353416663119382224329012322156398752454505824768793049763617022031665943848919475558322716179339583386154823381336778396771381799925414769975813989697869435153536560842992046493938834263296466714772527944142281257760633947612188027875348184440691313686034700398410288680359643816589914219149711868290984263104281096339399225006762059616589380692038108539615855074203020260973968110289487922872813432958790207655011909690834728764588859794307043895302964644732999206770381759027919363915699932098455223952170782335863233350181614194893957180348542201823612490459390787839483424943183676448832773531640043204522428425374974006053339794975053841585348695825331703371153804242009022663018100094215235963012949284819641639186321372736104452262528560325454168592712367755843856673714705686316837981678793639095327243255135591112654505980177835395564056555952052237021129298889609438322962701749459370018823176135725893903140277621813491559052982198916747786678430557944679051246006596782377428345624964200039026772783119557703875887333161365449420141511804774158113643433303676076946611934593119465239080763932339795471654066140254406930805791015684908885557845925242437941024989833062345767020865925870777669366650551621797876936972546793883881551606297184058538399253019406227288591652591889411442784711202357561944881164409940103058117105041876761814951271975574403870725116839654213190127510515211900119512124704505591072570897750931727991642947108117295932988633052090655161776608610903843803159080790501587272302704830232136362335088619918988482095183151714624837634836905212856693807758037420776636385575646667974977542015963775117501375163681748685999243066234546130354528132722976875608743134951726687979242696261994857156795397546877672916992568804223125979672429064066608125482704335894946518245466067817170485926125277808170155657449256123133591354184090323472980836178643471630286376752902589306458132306214922522523076239960340490463585626684178824630169844916656229327292669033188140769763696055611806319136574086263334660602562953795919397147576586461779962601188723888487266374253639443655209673672009121931514387095848368200544955782942112216758498858992766295700552763840205354883292917844183373729942395037827435470638968083562337426461808070242083481666337211489896175927004851536171363784677653337670961323148272613810533986102306656333636318085159208108517061591409661326171228594272193423927944950979371156466564859308250822050459949571150281145127972186809198427022879586750367587822901493456895629454183735333079644746957307136442198064875820605990008599618931083046181196272703992864131109100896287765312411231419773086415707019006354818908987406085519118614638042754446281729018527255061478508713433119878006714032665777783118181168706786488474862578340895177876784272860014137876646139229297066877244047665580404414673343801581519385579268260369803078560630852535904038288756628157998344129958064690629930495045464205710268773885220060626084941557669244333680792722937219586192104803374579468736778564714119661892523442804927683190746795442383720929490796705371207409081740812597445750187275282580278937883172795793711616531860039044681331322541264122009239864496411279895433141686731167587063709654274378676280819614713379611824498722951689476661141886050202683859712017841853541138900535741081386614113605721322625864037778685759245216052493483908697338591909984699503817947234538121288086583981143116535112155249045884752060934320505186646678875086749723504184708645514395595951285570221041130702878865582757582208602367603419544444061875402461869071519075754784700028798503807942957681444538469605686664256693454665242892148150518313191336025291927982932405889350796977996943771041889296605137580932719157474017000259331400506332996853412464590979486947091774043860365541025035932992088789022892575219838199764711546182170840842330890721819818577603855775443573222525614261981306065012081483076885527625668954536625574071203867131809174071460953579162489700509672609955158215611117216011114810005072663512364604464159013580937537871643456989497548938920637489740505073048493441997713759425599710568353653641181106642516497325882201006367145814682715958862611279429533942513223200741249408236113575185771255999904919311682566660339814023627700981600766596380585515706850556894249330575343469780975648307239345468372564391170090571907671175461880322331828449889620589654594967076458546460921562479938262377205077658313370658472538574514975767944064552017064338416154379696335152518998387482511952371495469289428707652081325483356702753250246917897739285042547522937579697123173959180012039153439792175936836813347771344427926572761980480958635588232432784920600085534431770486257743585709750283091544315405294230285919686762923157256347542605152905824017895198634043654325204811465256348511024763942850161528171694316196981371605618741046418547260664628202960419815853746028696648403601415198574704980500007651920002027416375409485483015486675418541408664377474065461901039758224119051688630073106760334250010741566266834098413680802367648212536425236345822151094666624005671430608375099259919745902878818346470005020229173133677593265724024828085739416581048226134551077821252420448154833120897261907114542856861736482215578430979017751447834853261487191927468705116702785824905698542544319209343164205262576148560576700733803550254397340090092405154623472676182707478553636366798470345381168694845454064510535204609083684789131601402176034082047670766273202166681140020651108351453789860660139800733982141511266201260876878258625242320185916436832943269346850564991839479676133276335831112514987723101422126650125533788826906289118578471106614922295432210536450508236525745090871446698692885030347987829980651702863576970539550498579497555550901184618995223460814348659292807741906048897371877581537859471626988854089375411786935577491538609544119726752907161135705684769780893518747518730475819075605002839530132462658927644879517993317697829918493500334576212389660876324340296295263651142863510012170560472422407254077013179977721188990734636492195808911581956218805518948295836799499176292087512295866482603066649817102230072322709065273949792566317169493542993278761467120446420459016615825400836065636599955984604545712390231648311892097497246422941884268176655163678437571762077344616285899958557759299028748725085836960995765097777096590029653075156774239323798491480960711753654238757278862474649306916129346237443391823777191887928043535032857575678521749587788794543256179523012289424972127533686885433453665307492950626204696248017232034327106254344303025410895496910307766420533557782235519009343035479477521957930514786725368975248051522211835269941617656351859100248973888716344382435292997000981918904450902073451150429353633781138855247456507563420377035855262704602502106238273578514875031563348419622463050512119886936794610205244729296426108124533979511134875576325681052138418917619521780369997618451060257574716927245122399926835748760859078553615714446641216858021337814648689702282079817124005119454666310266249378288493094077190559406825926485260808090596890192580113303170686575368632936190418980847559506293547844548380304005097183637429259082167072318006278734097403273735775357931368262020878062109180224412097929805389751504383915268022883271667227300409209992836207288705345920497634088589658722076340031184168624758439326492735524925413926991317389098593385962077733255050690126189111430432487173765214813634971964363381839127474943132301074299777275500510819068674028503663279104861741687591583700389369515525765485357317555303850126135903746692211293525505297788835754483654945995816300107326782971975827354471724494427791441959793691667726682205550915829964561815623408070616486791656289640245352676586701983323193710443691642557319782566403608086235084545395158803757552038663286477140050236904059924923473639613218094063082349731614096353509966059265916560664254391557462893596118695779113320420755285205740606269811149906086925739350436425447702003103632377027003147794038111476455496410501886741626099818590137873102973784308333226045954887026977721010467421379480592283037992976671447111318617222369648214364644191458179026703721557795473749608808819321993410341457565702710137244875417106964948098140852837061774256129477681403860913924698776961523791221380223933413652616914151578015598732972147128855624534636803884980322356372367135393486211375433216348506848914222836992111221353271834228476335282274949197519353893260327808254608524252479824289870859483357775478316561768878939712013752533099241082778761343125243499330493236589352710672328710013362708120672314701497199377939647713244600575847090283135425137617198434398482305959993726635886552933057387106268235196191309937342327150404906093400203393229984997692182243246116761961915382043051217011304853305706286509209469429175234859624267483681193194210485239863935064672258608606999731534084081717364142248554522127695470493297153942745735866441838772416697254834606535974743862456170010005185418847125275299307984991843849843761040439661206369954244593134610334410247825857041129312833283780967611247628341570413383305521161983456100732228415787582467622621102952031195499233992042845942202546317579268445001202319033327760441464875475692023386015134033193458119886047857346574460091742530778160752267443465393062021701105832438442318785036592130613440183841306357553238154571374651655822634720114709148730734771520634236700891320128596074282677245416493191836615462029871792096732980449732426847162344589289160190724034009250336756164250389947780378016305176469907083650100650359530964384974121126822003808452150856851782476752908157263231531116675554989387366165387920340800115919011195952345863824729003748219957888134054962673719404702221285581154427311998876153199097933321425444532813217954818257044785047341040038338999217213501449369965313754589377804705929511080124251435218158336895407124744322925815903295066070240297427520564239468528858898112129792875573935063126741154582876616379953536320407069947271451021874533108166669023512169207609448180783853085665194830082462349555810782801765838595095936390720654126450359281359264250869039892691753992490499074316174060199741446406977459434123020828933734369790838060476925967692500301848968230032877988935128770921630307475096372874446262732448434003234638706680526032001182018821042510878111720160886652425650853871724679322139627847222836489479674263224414478186836784337290166024346473023123353689016934364551664034832179156163752245768649648151237209688105144544517872774623269972085864397222714352030666381335909586624904363468770923839381684749358154821179425558339854095386183631708669412687002756606572611558647718856722023434336991471161454314806081615475057386421860242120692919044229590210112726866868276670150761554732296433650083524352138724048866319245615987306613112241956467701071081079404583811819683437242951914606928597232174943105227267826402710791683282372778852097658373958286633529354252717401617607621503910055366874374330125692109292754881729413402491672263824103053677191948770930507560668510451694582859927617051195304583867218351181067231714565276114538137358481827783824537768032279548371497182009651068623693910328622385784566159551907881031293750040363636251514791502599004087444098155388283833455999903270871757325499684755655932140563863443121228087029343215878928820577283248181382655848895089023214469831532978641369737034776710344985504358884819307599015859801355395972711301423706955488713665480910056906753306137041095316618464462522265215190969132193270751529643850443132408506012487629601502647499868584178277692989614915858066781121792803388042964865581585561735036394373993334279296818001509892437304924723681570488164225205266986287882144976763092908849080403708678214298184174295191941818358897566364178170328075979804185884374657375414608029628649485804339833378127702625450205350103563262165495950724211297571936661873738563347079738079772542068738483679317603016813257811145132761619547560953560599588840800096988605092854501299876454214969906144835444684705735090964918514267849191104440331524575195709659293906896472144089189354773056430153472747114125412101333712952921858964605252541609966128706403903948487928584218344760180075576030558181800975462146623646268486479019112675836834886358422535314881452369686422660364477092549175531692293093123570003507186764553090626782762801980136986186798962721599140109464816657125305375950647847739471158484210916445547989090368998020004707566422692053748516579456571543144674799974530335530332828046768828094313047541305533450708069108764400338945676263695690668234813374810738714000375434302542378255667713218977943387644146971157236282576789719623720206571788763885492765614324025130063201305197094151616831021482189900039026406818084797092917058947941215027931182515783550423192339440664560211467839038136043941861303107137999601805855554818560040936229607411643086279516235562768312051356962764823940201529327485614456473096912881397194641950411011695357693009651294935827501127787245015852637666304553575168223476093114005876133305016517463413587291908608091028031822516103066411808836553991325029364675973660307186609090850252212591542749033974096600853111267057410716195434240761821612337668694638846424445594216247554974137438742609146763805422355242833374456798963808267670180073386175750305725810528280351734618556096332722512593572786704004112587134064807775790212266914736638959822204272613389396815293463035381883486637415710861980540698229374778806426906690085775279997544616317708991767698854002180872236517055478574186279294313041535610268754515669054240959123014737471115308566575351950343568794893953369632009640737879167232616636462782234849743726891196755062485430198597111631783503760481782297646410456287957185130955007309204277781082908452573290763556991999277587747330629541575640588876126247339002282854868883717536054066359553135097712516738452243160790306775328070101502167712738140395665924372242604616564312408507587583827370095033067899087491804299843171478405512486870457699295251234660238736278348595355721479808366332948412644685009482104471053603017891400718081527825379674071112312754176873555182485307836678593852232176130627651029275312099560884274910846411411767332060730748033912572108995715406814330076964241709670602356714526990971529376353586556063193274912669010383283628039940914184070992973699209734592974225647517627996527194944370367702985945763743799143148136325847885640536789611689656996517256929903048850860255851716284416096718044484081953739857716194264416392651653686504638609424758471098066255460926968299120703192851067512739152037324279170819379648103260395357536189581030991663939902960722817868519018295271191826070701109052304800774248822780525143126231308754105225776803781482469052650204977288856415104883827613365479450400899299837009207305970495906970378445482829978439352212185156134133950378730289637047577893677138223694224970237160054513027151665253358699909991232203443602963144044666458350376034033507946600997437749703891418830321711484916981242807389989335083799349889577186196677676320355347102390109958240219574527559293613917308783735759675242246769176598735677725725028307798399820687975770957064497888269836234230966371846015463853791029311410724003631047042895412863919081411502875175834317780671235370555354387921552598543605918170092841406889368571354423064738244816862702068250152707145375443553480696554673589941834963567306997098914197658380676483779925865971471420830857814314342517109918540568972865131973267221400977068505766509807390148817050211497248138076201055566459789762469499870311180246270126304012816900402068144179192976899673894799612838683404080898294318895911854640875094071880660040017728387234557568372923478751830491524716679937293725577677748746597515363533801913155473742029586091564449331666975565495452416446088478585031662722951257729456947037203849172029846924507959757772116864993225676028242828506700721904227561762395966051091741613538907872065524122606220866659957384694755337606826491162253139971543454366759438324724512637404944570154871177262703816962495007878644365909856418509546271543006083728224985478864983855446714017372979768865967908542396626064385721621718641771572003794088079451024569793778570334563636989434408005038257339840098125037516234696454640802000306491636093268149231484185659068663914576774449275196872728765250152373509706460775259012522850876519822982647454216453517059839393415302259076460888314477800101649783657533471547596202436020637789282941481354093026143095585405155520686447001869884074270949664904535954582917948936435085467355662074300560378137124254481020697805047134105274022677276612551341788359157336971138938049344312622100688222644456344223239938725128390300246430362202772231816552311702708312934980748465467103233285344571003087419210393927594205934619069783682178531977230706802595705654464404377608907195807960539767356524449161246075755427992464720020792108568176498295273762093006379707865475395534937821128162534859695624697613790240911257982961878361118261477410609680609757240862361808167481371866802077715362200822744473637447275902835475529164020576079889358011958284851890424894668220002673302470517994367089849390774278043606245031205346222445526354236114965289077273257204387173978246543594201770156207915380626586906778919528443746176319281582268017784005249824640858662166259819169731307667168021145256762519570053405414341293841445395491145926060294592037655072039949257372494026582200667192474383644846530937482534497500512464293087077683352984520053238467299552497283140269681196511425905302839258071704551385393198948760631994320367082886717310881212971037617158512516339809268112232075248793533112868992548527081022540995814188124748916659773014731749369642117192736426315047642507945729031396534586512311730430339255926840908933985547136590827677497134907967617245480823939539175638692641550802273916447264279461572716701138032733004257332580748327353939620059385292424036869095993859990482874033412775835745555391408154718183751480190374814792639642938325307551195267826901785998594354784305494702203341394388086600717532016297238644496743621376745465449999802980701485009197437960797393800499438643784211078180070240646319730038679507916246614955434228786305297038279311074878261141129308324431938194062907731326284209710816544738504599568510510824818512337954928001309513147312536838682964731314986768075679603258014364470023695835542661136486953556532574721819367773880249851773131728359347697743402480520525588684670924165031587676336000152465248971472918632984636579631583880630926790873817313346597770764250423549488427710830596339553415026012434033317008693811267064089522411943237507597634652778422616774375473478343424325216643340730317718975898830587829897264074376488234530467595571009663306468710721227956309284616009225587509109600931293047201936521862889972197991214185421675012145885717617518156317747224398169685576726659326204128549200840016207984926489489189759762868488769144012098482513653432149871744118115650201111548887631796756260873967153277263358670806855329362213206843181999047082543708579066930688193764638312549219566344591169275654197193679934616140705500939549522316595944984822197329931730298750801312127611820643132771947517837499481298013442032233518609303425664074368288129761514900624869547783287226168506845392615140229514403045904664036170914216911180316823146237935021017798970296036403003482816026003931040589662279976451546600195173709557005121094729499242992207256073501894161827623042443473188206298954878724878909831546607889088487306906610122015821021610809528612543182776868395099458971847985565051196001749569303400398569198102021173706528838230178913867888494845040139414329534985095608756884230423152428551659620839171329077994799975228475094254256310166778540322138230832157752183943904033187535167975270504786800176372168319178428185363138598013200888530081359931848991634917804532377372675564477301702885924202592150241416507622252383898951014339014418783492922161953656701935058019594503828037389281923273749871607835147167521928062084185416649356588086173722000787438019438968785761313661569034645530489260313011879339035267729667668640942831361559356383703462016097679109807723215264977613019522590391283238385776761500766573644595829778767735829209942480585422895546058251965709806374748620650287675645348139092412076015453962424961879404042054438857235915843834647436912795285210877687163720847593996282985656068365817982062971989191592514952531202753756487957404256521169221864104581297937748755027252312063862863443466378870142217158862660403330246152555480188294466210886898233194122762771214730453257097928199629093431650941016385416486971861646252981408726734400708120799758461788597357458265860771157759264962194345749678831870545101042805093879994627334933748859916386912090039074462910074213278075324760833470176106460603189433867545259046752946539303941029580985293030813089651773538282756965992591604402468887392465686222077074008728335696854048229095112031554684370902343480170727057481390110837142741848643037314951000459159143184757236380382918042954419547310972430136985336934384269233603710659997792635393995326163572419261350340244452475072727787216269920096692781523244643709813497223220945570579722611158451174811686164282011795736325764815955113842626522460301992582100895992727665744631357295628282408643614745654658386975179843557077708086931237494368956556893389541295769134378624367619549789049818513566850476948478021951862358379611308997930263427376689497118624689560009450463614882012333489837557344905997797852581706008287052820716066532595619222487462384502236673003075397389780690527327167369443136905298735734794779558056402377405757680583831157460958292963610057551091168727348176037929701615817473963363256527892863027119598395421184654131959468430249280488232738213883915556061744952659326806177234724829293683193196591722887829722959969620205348139707268960003371090477277294449608910336359391143205514690984815173205835738277297906572048382139618453112358693741711727792173675146917388504121197387768730828289444096000002570006169413705017339531355674125857663559843054313867346228040910541033664072516938389224671550849242586548976714818519305199007932484684756968946133735177058854702562776507303766961156145868945476208180028495018702602249405020847983741702697944872425972983459457240649445461087128048683390236505895498487503484941168396402473162015053373800279056629627171976159278461828473216311373184653931856051808508862035879029563875031877518468967635007906424917534559274835257193037067184551359269291521075585708252886377520001360946047746362522813564527838664071493348564325971822700673298886371613224480611264964045015604654381748294263650705486723910376746021679908914270981898484951713632176476917926159402414966900921661474335556929111865133278208693937541530161611868888619445402079141799087326466188727862741646176330150602793138630366152500342852917376867966315149149619860007489244445146743113029287396085924068600870889384906671170768991967780970890950759070792822583974383989241333683936825027225915565045242382495221435859764117679996606827025072482873796825407179725878069070412721788969324676819696081851961192964734584620351493746316821356093118215824367878768710254984882109232553658651160017931980450508023935310191024597245262678431964762153090502633580109153970600103783963598589799402167360025824868206724251091184787466123784311907006087866042087450665222715578161983307204871627182476712846524080513882685327821175419168872916720933990828149354401443935287814874785002660339785178607380220321807855427411648136478404311636785601745524689662379261862894364317629692182968882620439821092626706627518062861220105211217910532510763833768968875480986994469216242891178486632232897112808349862073158210633880891268555044380841641719083110886094984536965825731175238023090476011709765374527256190166279069063699437835827218307101732505068975949661712128766201102071459863956437447276939877359736713503947147091057005244447359156434213999790768760263500206040672441663165555474027169968424100554984151409890476449604824796623531802791326156218371681404060240418147718302942516672702809625699004795241659144596067664112247610248550483170215608616512640017442035491272639233159898984104137015634133369887960804114875305050903558045744075118309168247587373067758453024266448064563805222060965135737302321154384585770412655520812569440371901261171081524928873913076105403666565289684634031192267782858214101227597133973623047100761386650707700343990674768372910506413963367223496958677566244127280003777749485544926641326128693767774326968373287597059906434964861792249484547994860763708944511038833177036169952223521264567482316101307097415959240436030829975302050873503447803637267085814115451960097919409397949247653758859325011999842139571673929974308691313854122429193912463059057171011947557195275320689554967793943524885980533899998629336589072708133734533455493081577919392721216821802990915282936010589332527456089731699697862775324352149905731182780937426789534695556539731616539739517263837493975427453497354569668845027764833014601283168731580330854182001312726858604198790764533900283212746474532710476139613212126234905567101021047630486112535946750968216219639752982869032625219908280904702840184106722074621403729057289642556512290811454564940150972392395617814386228475040595892090927477513142451968985510411706830245571120205293501593611078345446104304230874988722289732684543107451944529489900453032311296968378284773065105661766537170028058940380059616754510980327706725101452490972211281844741994712769415630541705998110341528153849147243871341689031460545530107712355726479957725896027813195969261099413216323879251576551361522704256848469812188962338179783750770796794691649017311176040001356499373185284077500695718411458609613577948002600537097316794016859378821622882058075952795812289047840859087758258694804327475952639277212120943800978515017403345764007716834385252740656864588476245749908706775380865038895494785524438375386125306880846962072693039084731794729066213297148420901218590106795199964048041488315059962657367881493674849288367169072523322549214971051690241078117384059692739262875161402181204677946354267840557106252109716915594212270636888507308866255955248090522922102717289449509744830672408454796880120698734768383894276517921478739269016546067561653492753398808135354532949775592973895968051410293594590431967316936188865706381438166246655922428984310054056628102048845103062300421316718649394108055792717023395372817818587107239976518937738174336846307294130624070480669225960252553079769657682993025158017583653156562466208230906217483674991905947161300854455727772838052752042036036563381539525305646402968312905312238209605147151622309350109653159087717441714573411450906372722191146370216489879547873841967798255745989759752160483404660952656122381733572504768097973005241708563752166468664774432547644163190714136166909562719720805156345010193255381686958042346765123326661836064966430066425820114760592767328219590561932355528568757738931131991897582242378606876147505847305831115839671312853213242943144324919579852109066836339101957515395724423204818953837453662276815582454187711106058235322581681904446220087373225905948648387476230472561292435718772107876287485850840100352681064176011386335870157786108635355552101396234140666628774215130899770816501014954750150734505813383017052894835743263033219110963077118949714876092589429785403437887304449819444040018680949428379626623517626558831715401873304487117068527418367833712663240327935785292766488656477151588468476212453262544766402218796768005425379319008907228560079976857033758842897601713025119661861669816443019063370868530337900775778397186591558728485176558562459618159725326562667627607850408534786079592406911130422759339058066517324921117131215532173286125830357877648084905964173146917116802985947872613375050639598358092171381576743429894966051510336360019634565310592194674718388628579017539787730650546766565199033109869135489880074958892389569921791467219594214887918415315437886501307777356064159267472785138847041403928359278198949330736861634827683651534480241396687263884518703392176938236727677952293436021135980566021357774808667934247769544677630924696537235786077334634921840223431991632747009847567759951766890293231262111365865373766049523557865724260000337459956855411751771667476835116198659108006328961402468378572804895549214758613726613430056368153518653966109913366118176949133290266441977017737545763644525832188052346871896785650670173351168232632428250371541599730114964212455152884576785187650021803835510218637739935869771600627774222559392616465369534507769168511176205214550227570174581676778846669584049386778972142398389813817609400277582659026290063172025775408175587018959173658950389854389069301537426743089754158392756852288275225306582824549922549245836085624607178705958938836173055039215669944540049179623344805468245472495023125609039232840612467520312243507107724999316542920870623651858219664681909894509972845783266348671135530471890990616739612835779647818976254721116805821709339077648721306915933957909542598102905015585235678062803343116819393328479349473722244789685230011449570176293737850418529198516884282594579866003813317973510737906185186648943800004701826868267126071695151164670217970649172758945239459922548144202216582741243861769821368327446607594254342576512947167376256802063202056405281197265920615024288725241267268765983214891316457193857222563647212792381144427615717167548137987499599314848202542128569968029065578976470324759386696591910459921273657942772380397712652680041767834226311009703231486269634160067541479584805739561458695295020701719816831817740199808124165250918710649381010140083293487674530057133157495191085965570613906570440242133682429469496167568472355481374874047571733648774955850049658510332406157874921813765649183257227945092651130270970201444112423206250879104580841093215346567567260865432460403657674415648837794945894110983116869863594366339102138069412862288144728816314187027139150628765725611322178411003309170622038555824377212158899165112836641171808197457688421271929672117233469189438990221082668124635383958277821673386721738477795532033547434110171800957723098854275558174617485214842974985614095830856190737359370221318841131578539046495587434016042732083258848101343644450378749544883359548817595042478926618682097791487223764042662453450835617793213295665180580121415322755464859143470585235405104137018056982537722512742602022011176410243101711052350264205926367740333525788197225574478767666765630109876367520147055925653651391530741263388204982436777198924350035910576016082016210366989547958911545174206847984064291322904864726713898662179350792296349380873941190208005534540912408902234971161728043807811180269316963272670987732482904371785966721924431048233780304653469041346157788008193499581553940108591479473533184929597418282979825454982875581475607358056259185273197487194220518229771729908180690487872955436102314510935005811134414502638603723235614837519281860862455898705844425563357199588828914802103261042578886248962277287631902801056775952472203410811300128274796498381308419757609039292629034603847183276102231647096426074554202049222174967373235751822847674082122765205603429869219781670873092063724952569870867765549668560669103881539714285275094936981571209136230249019968736857190795498370735572970211780259410847701081528645812080818608879650259455435930471904710028522472362201804918086306163492757579527788000739542446877496681448957397556061054409686302044793349003616581972299313240440293180302055057435030513347465605097181262251434595240081244682868684716154061740139653972128136786079198151552581141174406064102203478533587244773644279036881958507956736984290818067389231063079953579248312599777052717582128593508943248818389696005873166346870896231254639456266217223175211036262564963715111691661611811249145541157601519664029977130518489084460361958410651722928952796410333964865519922431067160497453521323996827626077073767236176273180664602667120798361498630870042786595881060494625473864655046820656655111353621433936040196530594978869662801714085701700955286569140195858931074114446942743959618330127222121415318714536549508034633932383134070649676203586742099750612715944572459546823033342896357480283220117508357153900820541520746001853543915220288455758862778804209909819808109372398604984166202636792365682079367497976761055175456374223214380980950836386434421791208732316699989995332241436737777799470594244409406313783154189152888598362357943811555151406461508639273135778545800029254697562366446323922679951466949605235212007272315194474124306414586397753728030817992473626079846791218671577712393708275815519157808055983118210247904770965968487269487065705153640692491387221022687562646889893303342876532953247712819382928276625487067955320065461753964891416995627272013349937928592927562539870893143040617284319921408630754056899597672416740483613121176889876053181176918468433104046274967197697477243403318759171060129358368494945180377401838055906234914856980529190065721344216898690275578432570308604278014485205117748651379023888609180678686025176941875241018404533020372016479858940966353353180132343974203467680419901471433477497624516772090841216186983820681406467469804232956303453073212632209057435461736585029926186019589593376946930071105628138248320232848169874854233487126782826192647043017062232551341926854804312440200116689368667312037776380095760890672493912431382893666448273943435925243791347399700083286151699980962266571723851187713136926762823051211544212565640027300845412756984918804869770548351208151449048293147593991121714504202657089118387097336854591521600505686565077206551669200695528880517220444918857676661338848608950449425362686989966443365868019253990960171792350782351528610623425882171917513627188817611394864176499932149005288548239913814463937161661228876572422716766953356169550396116554690015604393183868354168052526499118196955596915446193423409926898834190007328720933358362794639385956871041986236391911944222064841127741691791732313725400085390977015550078696831104523188566284703569975105693488098364745390050837556692279380171319780801018941522350853966036293819635531198121914921767637952954539203139749750683229497288126383501955667842826249783023611778817255689407745708767054719048949272753252988429017107446578332168364036222739506334218932613597942561524391463056920693139926905124467817266667452328558534566317344814465443127736086009275330512752564593184082965160524465986702177615403972173232354925572202191981297854070061754182610075833246393471025306093307692350988822137346125388335152815433325978763128574493093271496784670797096468609885152429227881892618086081572743961997473671161533653807506819470008565943580578202153362560837500353895418018453238044949349871101204600356649776913861573795916546127666796919661928052423787117733195949961109044097412143227870601730341111786241297928004508587764775786204059718819316066553078198358430313482313350457727798385540872178390427428680660366335625135877517924722441835610022959310627431714347109273765607061963008738178188056962342049754468887381396525885627056421409814278660806232825342386083206135262526396337712208807445843759350727497567606409982849515867620181860079923861449144243518546986772410619832495786710225973782338471077179061798519744007914859630400016597797544558306037715101267472104765899014217264671863798124734592686304772678209736629462070536159436743093466025623879906416764164925362699256569832664386886894094243146543337598445329058923995783338185795627357415759977801008324570090887605935056406176376999135901536208113909639739565291631972408801643766998298781870157322388024751752378037210982404585063624846619166518081176426304273814937387979409717874443562180131374527545344033333318439655862273977929744020717878726643851405395860631486049472494727596303062353155025864028615702768619643386461618222607005738921027782019198751105358191894129402685739722889928448182996035205711474729582688960689356886844681025993960903065018807200657246123210952006295237567554909696476942444933697468501798984530188400995970115287783237695700220893365518032108856862495990471107223501990752421139937172085997491190953857557690208598126504393753208101758656941321751800283889380825305284002499255740362129390594714415483355101133533797668142053672915815060763143709108324451210259973093987832624776605539559292809605995654344588644445991146189250709086441021067423048948248306263956942898069868840684502642951377723077764960319947743830936817272525182875824534509907926148482575358971503891535934867337726578979415072121890925787266049142829262340832929609666692227976710443951336619149896976115275265843657255284201862944221254173063296364567568627046731850588842539949424985916944027873534547348495294155847230858437234532461666621467218549354773660864699935516194910610534554385385459358710240449188624563797100549117595225057984820588178510269457659939089435703631141534550684040129314359603133637569187827153258496107150383402297955122953173250040619216280540440147835909982971200875626210664505112076374297621137040650029885121531401627988130749435790269931228010984787498879233005102619938241167133557419496436547171535103036571962182175310418332670774497348256117853869116988045724606018035702029483333321390346770348118870654277024914352873126841354996383728870412760523617853895910122864015188124673708674481011474313093222026808920611129597106995315487748002523748643321286583129220812195310255398155100885845984896440712125983417326396837437005352459204318064402608078083827958758704638737690668837544766151137209681650234409478691299282107715267778404658495606266077051368558406712673186805900254374248208544513532346109675237663828714902478481750178696653657104167929208433589467049221880439507199757666813688614149498112993431861130933707984794497789625278331352605825528192314476455843940656962101891158913135704001855968698643691257294881247146062095911249644570109778565433227252051588080065966943201122426905164169294908177698126614080123444306768350808240831908302127519408820940918145624066919463067997671934328694897747416772872672405754593098156723966570255589429839271997243467938279237527641410479736417947692991234171771978230185495807546383844490930948757450745745717151515128015088248988507187492776873334699882047512741433441850885983639040554389001593856548396446437770631552219234104841707782451959817999308050372657050710221073228117126318689119882476153449263444414887309511956941435945120908850451795528617962268893161561132366084928770024511926339211817570169037900636205638232559025922782586871461453137315916197553687005072958822964344159140996492590342293694995509362450191995353320478817374344070371450101036879424619465336916730045205756623901470084751172259871632157776519142805300310969658476903148089417999462825606470705632767986373825567854650682444210079116603896641213673141922507444034317365092918503709231515186518090873167364070015234373555369689231550964797947800776109997577877424906654997271035217106751680393660566730996339148674479145466619851027628722430662993113848331182519666929598824020545306344625395866674026412466468938971879901221176306522601046503986733056644789063079396945174837678153818130100393306131091921521342937011561855578034860330147572988318639497360019320282140252163091981436851962917815299211660637423248841803927660336644937263247181320894921029468496883657379257118800961171749192610939004387893363143253178158534586844423806039421464646791517049957448830911992001936530531386825719838657778757021269869756496592128140195244780408750679480557184606443915667295610343199884063171579562027230213671349399430595307533087305643689569877896502459769682916919183243905405130459308277095739385355793715930495744563525381533025200251339852965469737656143070327704558519161805787618225285053512569159404822473539436692297208075635058997178506132680681668126801391479551044991997073907056343825470616564534501397189170765965122598383762696654365413922602715999877632381154629482841070909133150369601490699129226820855981987307726820670970630215457627591802720002514448363743814601770490760983511416642176197522431532882357454973489274685329836125163481215607112562598502004291967014021231235027278917054630475133731049738553539072339802832849818129225347251878119472159483579816347521959907734621229336666322286700467149978576428932414405497360988112067586523804126604367119717293040247676972071073460733551724791873602785362563311339232350787943987512332259675337631411563241806276005459498061001474898008439465314478293506214243977332367332645975673898871686270579253468717051262124203444671581936458012671396359465451181196355727902080579472949356285696727256511256234708513746680749856569065867028236311222162727795234102017643293142298101581811418020853885123582045434721157975565120508829362982693361072635075925749608430964235509104491683759167329192900254121154237832093176881348721462244455266890688795363434212614828571631243098791075931340612085465686111784916381630283729244003956681483980208100814666588474281611713727664210719681619862148991195583291248028645579047480327758387368088471742861408844310604160754126438998806792191476608506579670341804709283234278086883098441855209284694532416139391484547257258052351774739128243386037150758404340718185340040566441179087761489812091378730492819898510500305262443623569727957958270960804631098703496670958887697523716144297472578743106419091416817965726231590043502004326336978066235121661144204341790283862525046992673383593794030073045127641060591431232114823178681848354288526353132281865669631603731394269738807996127562476257063024610250856761520811188997344484664862999375935427566176688152910944399854857388605038707761962809579702316547529475934724054574777131285374996343934902875747963052169681601273730305699013940099410103192150911319658397147829315761752609206441880695285152987926191361018102871110837777119320735960237336013200075912961434660601776215407604080495172352123694071777461937905071240280595264018589996571287018719294025153015410951171410867223031615429969295525169249487851329521537560446082425326876731085048732714399310192398232089454126629795934778972747345985213198192439246789047534506151706253471651397290165393141649190634775366839399069035056324125794725110076099982331816981320650232462132578233009944743973470287811048854084100001611071701169057650098067289111637170702097146494908981072951896713109187591408589784790053243566602322415185685398319415614356447406689634887672918698235822633277102108355007271078869876331482587699399006188317446313027109137086718625245064961584312447005714857066260554213038633243351304009242027105132414147171855362125903795175769113284199096333720843050013722497891061375662924348852434027836945039571407792398350476101119982546132664942210921575249144425114437629216625336731168611189300518765083680740942359137815206570839064122885258426349474796624151520489729730618310813128866687169165612316430550946846366207771278304418548228048916960770825369264371330800733868744481091335236276377661816624998636424334295808623224960151534578771333090929921968495854762302704833449462092386981673047114269311262385852009298516833968024004213947032440980206924172180177098247322152752655077284483982296089713531719243313212402887902140467734992993019643541786219643922124427068706578193539202761657575826465069926036684941280190184155013031705307503691256799882508999582599122145245356406125739260029872203922676141121029535863534077701143557682115254053092514856886392144900273962659060247532640489559883087595855672028933648681686243527121491465767644520778423663388443999887867214158761465191705965060695445660825863397092228466337228771815172377904098536556688804408686683029300306787239728965288140511305008731619964975428530777494060152279690012930387278822766802129268460908231930950806166626852038298642768354688132334752715858893591563355822342057099823891083879642849059928997592091930271788759565116765530307850463350175813750366337154725696677102924411812416388142865575698819255334142298396086943725406441688450603257367246284776077120354989326240117697584225247834991689430261342190960934485662575289870187839123712032717462314716306143737359718087055379688686643530998245156740092798815964672808863835007366938131328382610129246868698527823390385320688556977174178901636894036541020469223702189573678944852253297302455155636902766716597604659886706381619585105545806135927373677949981549608231586309123271824542046200630406007641448377629534960277998304283724550754338852945376290204461119520526127318898160768311023905917851399889211402482873849864985450003322175458910322458558156031592528972114599097887182913791817880077139711665146270422143772437040973966165177718309413930687764170870140289138946945244744802948293076527014372331309442036148204176561973560505382419494525601960060537836896075702986221257642563203993620808444674548690307331055810368083624426028116766922662921742010131004209932662801754732602306237411310951862039655111927577310935755139781515800135383658680028058549063367093478880512761497324409968787866809999405042639527731098579695446398047851054699659693790184993521459454139546119474645762647224622865508487043996239534286908087056725076960268682864672164960859383617304386333130407608196297025175913184246460166387694791663360063336685232893103262537292564515234102131705919904370940057419556453066243196882689547202468320559357884511313169742813566558956585677453635728989337935540712392078725445619095607023180778606837293665289007694137477419872937737071792755097793543893684608502600639988084592531886628925142541922390467694263192820383886310558468317036536355783746093879867742198609567396454983188780471294022642861272880626564970548973942662843955893137485110446132828273241635751588578831553005778564669512006474710519711208389799088222274998648275327085286580503661765068434052154531668274744779910805598760385056581733601109917076089386533934155306969455683097309831124482995842655623395017618331199465194153800527836519980073985743323076418392967833133162167972359934525914615259837173694036559853984935763101502284225225107085039635911779200926565857906201897370324458488258585316005946120067477206512513789336536415283834356319570819273782348184517355360068803888320476932723041286442699034139184411555146119922975794171569187659597178044163866789732099068959748944969284295018035980003361325992745875593549630589073545503956411289902050949600592273736737259481453137073845840493551688604054734069079923536553503422252561101136396681249195937034110996137873832784813037357997303582553656338029519091389268257966494657902971035396667523180045727721187993801278874511931003601132569801089188007064770538226438517771967975022094075324207032871725549254663612385972710130468835318213686629750185561636463569011277109613191602700247367470002206549524550564507566966115972035517387982837799923166477283700952725445845096625380219118028134207717065051826255637057325750726511851672962997166391934908917223073686275162439032525525685999758853231660855358114531323759221476807812837461452863626117204402344814770770295411811500786126304067626797655347245939071990700542306727703475702206562476902548314733196720098883944136994260556052036092000291437533312627279297450217583735140967077594919654794947659127382365370139142317848058933166274488836039319597289034621872784867809584139687624622586469297162307629580012064239705820294431470909481039524051258790593422252012228146772742566806426169662046335083458794852033996277876433197762019896672200852713529998214821965299861129162785311244420867500015868144367762268346864754330960490588230517964795321024427442039849170553594006018245905325794123452232295846351608555459983420157385947624551580007609749065469876760442695927388706562593183343406606498010002273999952810694891216282447674834690841296485215066369457615373881309282152646477114971169229312540024441186144299646683178870496739014460917775989534087016888799432178684457123594414365208488218237100314238877053671380970757870053959724022481799415907434094756205131585216970026320151626535486996186096492471687129969269429119617335175113929580349455250944414893545897175432332010035910821758460219285672356967250074497061192308007220913197931460618213084184536641618798225983058126389000159468393909607885624775757228834880425388931911316923823797968495472830814651315803988746487472452915912146029449723132859717301434987277807318799103874838810962446670423434367593136835150474813734312363237346418147517517106115629449554925422907153735098171288520172653713580862911243639566289667102885841210886652013525513674683500113777404024951322692014502159830825526525988284357308432933563895020953302233690045725328723548575031634574161947068969129130545689103921551110637275309125673147580552272081648987864626400590542369407367108886427486970954457652476425701504519714939120615149940770959030586278810178607403820082372274479360591751129465969360075836693756914326256227376071197195381380560190089020736806955513449606072465870967424589037967540540519233021305695756325335901499618611612109994789470620158461967547044020291440639285430605586650104395514941641679915825073634845540303085625792371054886416784330976104297249619708428786928992012905032033777168188120047080629232239423961296707828257556620376490784638656772173899967806353850042832773601047011018802875932855586964575629291106819335915819784416220398777983452460425165111521517588914064807138189899540721846379696028254933477625776586600133499857460357782105270903464969106441941087826716670810563801938588702959239605790579841854790499993793353903790906735115720089430303213954861775883924513482837120231077594071564235375752601153679911644503855821738181932653425738258708683493932533737298476026257145107792784153767658980340683166664340311596636408828674820380145489390969335649195907186158234844553309710186432949469490030771773906562740503177953911022398928772433451874025568613895752817466330928348216629342063884193390340786841629069542000842130002642055920443540044921176186672113381087690071008069177702291433210494789413511265909497091032113808845618506342863632198835601541572731825857974465993632682048835896384457031748186861472551415973786486746331986283955084327012110382141934580521617773920744401390657058097650609913405711416511519365024568144074123951152104323485327064489778839096143441386574318803117243014934539564795415864298172880083286848267964839305098967091412720935710216291123202775880127410442029546487350099785739624736362670382366619934720060833859451832691225864659717077217956610806686319759180829606249909761545643934228315234762766054228156905133821239785366704509636285436884446741764712421585691164973232353367061043764612844318559391418496216483181404439994509266941909625749230177799946041709665663734846845365123957579590742741463268177985265562703703650498407461359366990680077859567468725067656019179790892893664832221877429521004537458117866025632450716456915125470398678879640608026464018356501886243799948388090165196621527789991099910912866395615956595091086012893506084311797335140613796594713225531565371958873086171523526001930951629770564077193218892334561294013913274048053605060112311267948794247389352253323581937065499433390978224923479629685761940425237321771744720725335040840548299922345840021449528655703071014040213272857460741354577828064669854937343032131489255229817231777957515572448480552087024289257863693413860729662659243473923260080471306937017961019217403304157677562259874303550137637999910413442729682505756523153949109940205608035856755672473972773800948283896352876367337068453286593263090762413361891524585982150228301559698281695105200337885024026675182613619550481240217689389805445103600869707739034900935810058797499867754489729168426051737385611037792749956772446683313429229037861180751594215547868347643541653105452305371565401141411396821420611296814777762370607152985644385715356295724939219484991518897800143907383756279253159039830286202345524213346395751118582882949493270939718636332445945037947319521785684894841033128253279422103289530421724370014380402517800945365756542516322593846397306803836031859828923872565826866429507800701564174257746183383720188452291203129515174393217246071185233452953011531939419746136727561337343837629241314474979400402847723403844716515225642829409452750904561677069005824174309050840746483193797752193797653432027109964097591830300207954174534201196416927565107978025661533772705927395480773351303923454255380580656290782659148583212298438387635583923547899809368620541563429441270106335688000410841422223002593410886275222112288585493194952943021203092472611801623233911724403879715016883566424897185290712470194172599073650090425575085194341456782324874944734420246958173528790533126235594621563768522824523903763444536106449653699866860179971116698296710425043842625988575890841096759816939367359706005958286585918009208390406300617426136561291360338131690545773294325993218766141958741743229957363764603774567446047931039188321226948064609988742293002390797556882657292023195139059472865385266047857158987357534079318562283747215570163279635057789270018326180181868615139538122435964273995005775011344201478173889324919989553201834277676218661569460939177651596248195413028797038098780439827371292122115845055768143228378002746910295147056855299714495040160747727295330486372063676435217109229527080728082988569678096806880266527880293504386126736573327267199194966729522555215239967842606207342027189821392785951305764277522761914636260507206846268508676506460701159641055444483292917106094515436045223549400949361622149283549000753573565564933796608242369347873664728026579618290022104015145928204386026241039026703840841017503314449752008474627810337256955974747344381684728646766537757257568940629330517191034470274152017930240999368919752984529676848196296391533509997136059319284616334256936323151261587349377235827824834003975063315316647468549349710385068858882152405063138003190590034230409666131549041333157541426927654471645153815461198627227167529221276384780149089034057429269272531801864659784596331600282972858755402335788220633221135100026267310312923125971766217740854792702102523500093110439853739386298544370870519646265523991815447648909628816892409399208283825804003794334446866290428733385099457795519768739729314169702255689801036316757984295284040699655953786235820850766842219558090348352955536972050431818762351278068763390445804575492405117166811952341891149570547040189429616513079594679817413220556112759730981396244224750811101860982575945397911700559915094490920109216237224563702856778007165248963575771408452215476734182112708427302924022739773803674819493350024606966358158313552420639133843033800741831125461085165371594091189922034930535229696980640294458284920567030853542392796993341395311068249312749166216757758527905663154098857127993092596101820648285362611792353487898215238957884834019833597383753315196340790688133026503063278775842505216892445973796483294787651567231245171825527223140001563727864106965360481023961985115846545433544425662476989319771862458828551100775023175064124161903347918930621693723789125920216290368709445005159210238297031056584034261021387959051862509123635233625142113934799292340451584819647840864360252946828206549661658145012592946686339048821595942716993169287742024721562165418989064624851847303417839509447457373780907722977434530395384487254652922605646897417213295234931555424351598733235071540290122048176831508314390269973153043247843069378294201509503212851842006818245351522886570452660695135013836086574440217865995396214271377647950830791400859243225389751224087279087808421257190606590155858541342212925405256017212253992319508750119541815161064337957922849307519690625317345599113980497689760168002252712502771172845091261408856744743677766986292927177642164750864313477767804249762725214134977410338635536567783559152958643629141640636911886284724538994256794663213263533027186677040329747957016845831048221899618289789272775162373404429744468963978893954671274139674551688315428141544924642152734249321350440152406261920085192937804265962306401408368397686028614495281018057779417645488172661077079988754843334283900904903948091651750179547062354328378810974406430086042193295921657524447060064789406380421559703934820047058150115996100315891937859575763278162963543238156105348932081999411852891527240392533113759938753876905698936936663506348488559024878479876725061559801445864005082876020590419979169783282434852850695651857487253761025052813466507600292287786893560633859565565839656852932716411942115531589425651473250131672380186429003212216046006462118120060516163790679412208385445286177374476325956297174347938181519185096339060027395655197788809582353258535197062975458707980433531781691029873929147313981611850432606492965960148046085646608440458271017766400971141813729058374613598409282718286581383794920436343156879197170059671185996344436032718367724772353988912827643810020392734326773055390591713542848026372044294343915650068324679464547896345310812989184821586023970861385388111453151630980596936372537678791459049970286704009490326442003434135912391924780201650260835634872137428252954056875694527319109855722709115952301180285406656265738115376897177900941914402578287432066875239069587447899581894843421648940528060056286118171187438918974659756955534798359624514488608718493004390079378163039573268265662457476543068958070012048212453801751909006340817593749016089478033844545087427588222578171866168313017154543901810259165095114519459817514770738297613417587210810036980947859685249467027484114846999792947030860666451450201071795190862830790713863321142185385536526363262825327842008862232202294347722529097107893317942410651128775728586625205945117672949194331522489429746743977438981961013945288084898555534722874417747837826466974163964025447857055990429769416227585703999599129253745744263919071482272209511067366817137365878462518749816986692920227720501161645840661131959900038809353177879390923209666074231334200733712689786888389632433807525962292821185406158145201825574128732721237656616475899904950936263481797685148259340177371829818557228580087045163775276807602152036657552752874527749561067227717553115948890463293695400556676335078606130555618795450847287317116180566948350749697107108605082420303910734562276356356126809633992667857038618821004371262057411270348002977128468583612112559419578884876650772422989346531386058933913899252149339686629184127932395611143760276769053150747284852934282733860012884848404609965299062857953745723988816034352038454522098307143070138119029213461906789714029326922062085432983720127572315649716255047779172552798460625715900292052046905332620835079692061562648258368647352246644142939924294754816503044471860037935040068511518899224909120223541642719950086832379662603457696107982750985670072071450965034172481672283882550473989469074897723050848300347763232969831936795921212390919950158122246681249334745576186620396749743699351906246731934551477158119181995261520040956649728533911672925223726115125534753414097901228212311969001803604073085392640645192933243837906167328620569238057334384906062796138590681961370342281947710217748505352368471463082227661324269578231908452191108441194201571995383215404981384067073022444786646335562961544230959402224716871198704465599517771687533770311665702054188508871139371668628014451427746847602596664338258215898750675556000931074325803568714438108249340466724697231813721466457506357035557724891174489145232682751650057196003977263190088729704301075800038739315271892385326733311800168369729514268662889992767009581889383188525785268913752203567833333008282925836827058640844310007171401114916065177580213901627569683526805633723202919032288008207024036050812678126254461021791269522457488178984092721494016277833135180401837310490860881345912160416838510431818436123744145245612900831877666283403060749614652479798340017399803011292428636797091830916763676709118977942899242027518477283111632678472202953969292747178657448464675118376962928181831848675462183422575319086805269409286636569570733687300805542985152644105470630845514603814661283956328719862501048159861582370224119219911386606933543169164873439694952236306308249124490541694601961706949581506485772859726477148116546653810424954195017543977555090036751461989374259175341067236238063367418848123604005658387604163375023101988269140274163570031674816592563219831831318643963742207322713688540508524815102719178705116967797845378740694420820245091952807446525395099335486450806193803752729956254039004127467924417578341503749962996434751782167911968742258567964417176076173628724627741400268860885298700021053199435232161129273627241278842915977187586633206808548262611501793233787860625183047243665162172118400437308117334520818436152080195151897503049275877875781144911595533410175080788317471237768209958570388911978533120659732421665824815597872991286488484390006256090480754739055498188167538239864418060503255995714927729645209066981490946536798991381261344446312173029248236679403229761584352288083482173102332195223384470595915001676366258882182028238996824442510382390375358457872336163491820976864493579984371655067048825660213081219781746233155007203567025204243806047353630529413643150650392182120773357454121633719640945560800064276711814930724476327356055503692995877022486773518462616238659657210738472327580665874268975947445463932546039600885697627298912487801402488186265887162943770596792455182476001459293304467977367409796872609142058726657064396263008845930207414435286983196372625903960427576829100660395398876731889448375438944098445491264525650756020337957113204942254456900033739850183679479710295736725533767455186957811760875839920389479581039607598696886560183199040712637653194116915761851176409018859313419456632579970446801577511141038932525663836028666584069712608626375029247039559426929938773772941834147560284144339626684902526941811984816528642179045509650985822257423922466463933580432485416122172821505794142142174252519238747843855285681041258581394017201384899334396778789605348257162862482688760881417105573243949819540068838954947346128301124477615495699233116141894686061479682240449210071563626152109947350408158293868299408287962991729836860276735586248040550913055617856872460006535729275109795117728837259953194538691216840275255436858450692598357821779144692348300003226967157281855114642039801183108487605824289705984395723950703283889623083732998848362660170468965773003669581338530736336083911043877432997929632094004867852883389446975543682218504796503510893248704874690051336755017161865498236782694487193505478488643032312240013458389229214778497374051738344574921966213774797438118762994182423968712043154639930060747030241283364608835090175498269486651509538732611636242074318155753052876107289356924095494185637370615029439638090874906457385997868094949632566935750069707012765511468151702831805726769084998765205282398446855379653358922227245048937770438506473589103247838678192634992539641788877243638800788664791701989112837261574830848369281717383210352794621503009492935466322120012573229384272407767731260494960957834878478592638453141077342448676224790262131223516755864917652475633373541066735969556791789095180851303402133748116472981475440191944731010399449057878334771931502309856562246679173445286648040543795985060513067389021143202009377407830559701478064466821067173600563008879523169564676119523766940836832218485906689330649650163507948137816852516470977663507869560722351847655567642719591586005910949249653162676747888899816740257084940682156200202205419349397928254623233286281113528842808084183392069912396154067184298445665550800708831129381856224417350772042354943659694427321622419213573862369816172679387025303012436292638953750026482898455191989386899285136114637889582667779759426121191767611841199509185999960065100898020020706830190060655726450488461122806633825023768820461824961957717886828849069537613708312431760581452086667453146846833180252194572465910001402682003117832772699182677717555423157862551454677581527788016513268442059323879736334247459335492111626891875072835327339532536572294646897236658610817925592753390082476332916733066595403154224686097670552801587875335566435712187334213479498464554093931982415731665473340048651857884900258702305566057228181321100157281842258774921543108120927981372633984539466206930325404645916548584794438967644680994954053779857506382976632868550797805943630943738059355525429147824592185065581532154985771821474203446191897476962096589706945445256910384641582402002577301261845417377623600175075761714701848018686303555832765060907306219615741246022429406027820790111809267431920316119665400453938026205215866898337804163258387728964568334173762940102623041570586693499132134104457797266692598199238495104491891992102796419552566975680942214831079055135643193222050061201687891475283897400217743064264901651447844407195240316067398438235304054683829792932243655714870411190717030882946228125418770944912555919522105781261634933095007930233102977311477646455357429045113041498258887335657001407125498081775187250215090814457017639080806725478066501875239622117619798711260390716891273516565034077105135102350415241874877527946473682780498781059018431099462615111848467637662766924859763523352889857621730771456563155325842635103044624345386542118996592569000385507037280523608008168081813456795653888572307335882084751647578783508866341113911347572296100288736975325529060643241369825691511882277689955560344604044632738959818737799575030873363416595453970918305967821471589148222491394107980140938979394014559369703179280349041604998274732121253268668982878791935767372228828109294112713112717757190843349079393594017263264340144048155632434489690267118479920275805847938564237540643661737322737799288230032935284562480333057401613150787950164083876998255214870390145516868715418446510638029830450435377740236091879077932461264143605251729610554448981412867354070309087435652022399141666292565643199370504789748186441824019173893945243442731181153306675527974293869448524634579104973598760419114935517865473633660937451277412902182401360347676019067794855529828093042349713980379500863777170437130726235293760921201050191230767614834036188291207146580455576340923255982565329920462592707793043293142792359521522857056111240480259291358639490140944671587300025179622573197132500473822233031534612935552666568690465788382549454675599788405521122197065510516683519467998567243632015514379419052728985013440593407161621161124007919518872752415244483694601342670223618416748445733263836341297719788249481116293621351125836047388067228178109235013661700977111194425154252587843310448651489733402628127733039719288682298444545406071369271909814293310983490832030882253180106010129421015088528091435011591338346423008091469905961181609964441945358070771792163830341792256447312226627709804195611489538660673531446184325314011113490413065985912940039689070691321109623755749243717567331260993703703810655529635356247694548025903331768161559693969887823905357369209295804371679093535625822836687534772727914123868484451156872093955885960786931927636542865298932354848937116249586146549750247887273611150357469369899840696381569395434838231693815014099095177919309468120537125311125608483973224871471412023709692451641305183065437420459102218048723542657110014912475032524786441663775189019603968134719599581391062959931934465341370291098717916215110166266000180967425927938775722962273151383047708268919994132388855456710464183372990784983616995282965994148199682387127625118417090014674740382243609514135122623906264888368729826466601568019546032152879477634473995145927980721160685314732726350458936224423084175690114168521761644443103629660518123409951434004258525965635669001815763736895788713124563771827232864108154492959939618194919788138562740114779397648353934319828129885521144032986311009936300109491122184105371106596405330131021855323355997090240327554600098263327564317137246695532467038265355733440147690275741010223655797343812995728760467310648479628664843238968718221323554238040679497399684171845866784409025700249004222207922458033767152805200125637563295935878599520798410901807961724294136049362752586092184026164011212863600870019358553807539636987357437177079519908390699662513971656278998402168887449923698954167550400669238579064899388242972828391627319020695025608444467060201881983582577330859992390577311855503598949128454262955505271062288994460172200271651480755914156042224176042245486473099625129242899230009976628029881106458927986932981340942969919089283052055716672316621632018179332295615194688899203756773331333292326742992544242220774233112455066472795069348940497572715776819199783873641983703192971847343135489477068899962481924540853674042260419636513289639504676911300993798196502500947193205042835099238945786027857252139159385670759526153702965421553253987238452442442895292703521742812516831374708772212642873305018178087013426313179417290006975418028704006156115783942613314861706285883978815236478890181894232127409224420077350482898083564491564032575197317130794722031834898713780764962908982107379068730583830074267489404013931004489443269898900244692421975233557599445822212108251473333594866083211280804360928771141793715238480897299292578515591304110428432297409636273390610321332197707221955976177650156422840526688387601394839568954647829331463185572032648275586322449584043000362052434407113769354022210985147416790074115669253056334426472764396856625939281257794532991437750258577679159370407143899603680594936595550791623359563660502887451707785450050182895875054064359501464555213849538107647854678151372980033968302533559626432626571107493395710662479381108814568346510934501171830758314416946623241377634499387161066785960959816481684769415636368165540720513994142527402377780775031084432146837079044458025162607122728578050715416823160655539512772921717961117110275664837055988265284069638668883597728059666082047943538711994395010065969537069785412814890470888762988270520560935853934590633998898675681863331966502201659391374188654102737335255318557373326835917225632415535649039253557631590944045765945397784680523173229958575531421430800783894151148338784373273253364818554558678902079284815575041778437507339578874103676027006127162601965519616471111573121198400939206486362513788037401505641500304737164182520792710372670869641170185715914415087069706560357312649891992065621028410841659164312830362412957925041532197179515817066794467435287090466043622966017262986779088079850053346389510001153589425389542783074025450353460894582751973296741363034927373456207461827131713591390463215596051155370737035408939401225593825098634414514960923169905490145421899656789970753286248984264926677394930768583031864028602719294085045402760504511593793695096265763893880406666342351649846503132701578217422369222742185578959606805118835791692260790455098151207409654697383154263038865350951880882937609659437042876940756345218807423065877944831704607013482014698503492358217340517842541794003601678637317589312021673071318218145387448673233771695215615154371889374565980664693707823443788849632761237852528478024360400773252610056384203572006934362907515438992534095406513854629950304738021834858516531995965204827771988024378778068674621340892235850560615459098940194364619791559917644907785911332361245904586072535350571021614573382688997749666714468952375439378130797051648766088174930012539639473690431357503317447955550890312539469172584058510005334147599256194362953199487655309395741902117743044814690248990936211866846409129865350547608381189851980023664204974319954233518562061359084920706826646399381650594550395399249199506964061550547459236256126141024377271660826530568366107013466136598684712945843642831179261013043686454802714084257982888442876764561445344933431151293650186974027628838564935710619246022757441709001625739495642252677939646941288495821171611953777542698931105842509482566515820711777613729634032730567653688489194999530467582283098583360132305513479614121722648033349049687179843632261225152387570004231304682169459752394217071893511136624307874288890228875529884817764766258063390394695125501322808950385112875969707908535071605964119565877069486826366427563126019581348674403753553304757854187050572731921037506188893992717806581678211865516664360931762976117382677330376813395964541730366952507295395439094466712790806486028614875665305236251409865402853909171723158870227607965798621921862496588894100967858942267704053215958740593344643175273531406746864782320049519968634047466227162581028896164402831158586167597756960987059123303364072255472416228272682586490736315231205943102108493514376800619188232821157008576584782758452770047196941639410710341256826859807521624618982576909298470179027850587494455638364151680972217377152135522677467473616096578750156210559780466117796100281331268710314120859429010541390685580369668207701109169105042492032581245314240926243837054717447595461002465657969346436122225495779038830766562717755735772193142795538960357219388868170576452282048956951774790994008236855916418856235330881224268534671073877242590566803933591877813400875038132803865278740439407757663012283807544661112069752919663680158438512068886206183992631359295371816494621899826301438048256753080847649346112088723830109374548003174276955796808905856417594866299921750724321638347644965442841438091248273590246453161356973031022322935395416545846951762382281048236842623950503021339358422318960115568625275127823949360942173606331406767583989932441239282733566158407303906227011165480975770930992314364484409095475363907180429146728011844139497717327657460738264145240133817198254797393342266505744892975093272447494556569412935342512335039211255720219201553443130120659056730933154092484471514059911153000195802914751314941515154747136925056309356519923953279045674410767596884880955623290217546882929475917838367833198687953743999582227125899990762030870608807264403155187430415424672729068405232534608556219340043416850521400946588740014059905710690264458932920881949346881589769503181698121306904460382204289078875928230940026591798568417973834074889067304015268298367215401749293075036534640443230101435861468759912348967692794015948663613710900276376013557671586761617699726562022165439396203130413891061133001689897635503111401326810979440194248925770135666507205739870370049614942489239284544471722734269083020998629579842947632267957296947784841132407362039788614360542170862726984963914091460602885975022102841999316968420084983638766754079418807605783123334432827596844709773132457738575236816675162694465048666590573212045232814259981514406748755005200311553397659497457990042213718452220361415405549313269330185522438499857772453579621193708185916629236365973500125534593929242846589412883906156283384491096220853373884206691001775660514819669062616695982986118385137079062075807878088558717288183620758117060263679302559768059596901370537284123357783189091979985076346425769581734209163919969301783300320786807799927238723074771470292796935991852717584846406074957702836202715727326322395022066772540004718608704410616979034215861600086683131481149431102073565223863678009489949480100729585299471497118460900859573324749818856010035354581792289306711336562113114313825937600778807963252821175172343182133246577237114698027955357740454750804260302375950556796440758932095900445726912170632357978248509756409655496507502931451399037528895970843993344683985788884891647840906078721017998129023394236994212527378731917851255329335264551512437830375763765910456373611544613750710222339890789908347336265076803220423889691848016784071365687618569596799430320556034231652801460439351985664206496987570688358127749521519719667554766410134911639001238780165569166864326647916519807764610815374501115125565395550030108246710084925879692375135310738840451201981432845653295589057295928133302600736439356035440060552976532074779111895080428606754336740014722652448747175141520096691358646410083098129610638797495608174484436080154455138890086802426475056064616904331597270974933926539564082975922481431814906862866415204538524569642348208840363705152733307452809376505208572002263109790693869118988864181934152178607914801688517541833647180149925697735642895144764369134586295639933934900935444926040457845265562753593515802783932727573170466470590212016240955247320258034607150741275055419742969832767281688903401881505569080583803520641616953646238232539872749634005984668163978790242119403066490421911010646718539678854949110834594173747565720408735272248454737365354185285163986716157877316631484291195295862978888824883881853350384661077812794958508434589610603050231899252683193173698053591405949874031090453567754388960908043415165882347467009876607969094316374641347041286747274229610537250311783192037835826855583512048299502822563192408169365920324130240331947848149049380607089258727363854575897334572865020462566780032454772977783839377333583142956667368144340762398212327259691583092819603933663684781379982580959391469425736592085701617646350858614560075353565808178612716054746825722011230455807493563219889086941679567536582071231191799490192861446609717792966958377620801054273061121412913702923759667541772220066932400722129880167427841028087127689019599566143920446922144168511871990497968167305435701051713688463805671345206910489503062994845094673898074345168682695904688912117893597015514077785696346362439469825460324035858908275537110667646468076210696415014219263604084121129582591569557472277168029356397733423287310735182258826448388760754212309421420059591366591291360481319161718352590285427411133690758937973084251749374172787071656360312342884030298973903924156826142209189550334961305674725282344823378246764791697930568944416663739429904781115655530139839482794771203963066046290560476922131677134485192268257139614943471793457284820341702752649688483153518949176587191151561910389524550992507692583978444479915200296682465609947814474615535390851433056738714936899475493920579739708365567627651878107794044491984618460323584821950047268335718207639110186513308937623827721801979127651371197012681938753663854680532602395708495066638657691134261758064494182616004337454609039160065721168794517098123061659489540271615486959944254123429682476759947936515825499736024239823295016983934197756564740870606370661298427714087269418324574871811679298929171358970103557382888472109495731146772867847043511049480632377326536612541624705972236710614676418777008825796997600324963050529267522342261044142053657420395797645181422719932144801915801504965164520407689814967561795606519571049422830470492729247756220747341826348629213551384074119175466734836845373516453360177542151618942750311080357000482006185462061041410445775346186229878451221857358533747833335122664240501088119377685507061974517183630140542652659388088910292113904128429264351955359781450797255617280946954803531705124576249418302636962021612449592986750010017261266978535759440187038036011738802224708342540415450711819259956880524609619135697152006552406448395896784962889447178806712781472174306308673942897820599856408857671486255244759046829141408573727192722721119581209059410030046536034447505666407005857599921124814291459702944683693693336621623740914699426209450883014174206051765905767849635389938704796901007712276689232147071832432001091854752054066733079692048758376906632819545589299977094770974659934166367147026363891761209056366948637547334324131491537864561849048382075228874501783591614996606014576146654859989265722814954411458667381498661549686693240670853380943996349220549576267899568036088176698160296439721559187951125950507497684574716442554059398771195681048140689743971239829987170692144685075669729421514230300431471378536990875902497321347702016912814681545633008414251301342525666492054880778834602283036184518108919069011008938863077477319349703001071027801239672125382663327176675573738146493825325661933172430555103246957535399320393987778633133307233615730972579608368985271926461670899648451857585247926188251825730853670355845148609332521847623586482193320947031553016616483193272867584577573063585728002968916616575706816114714990894023612357854808028256983974368249010009797161158743524529728472760626393977247843241446771894914749333724292667946349159349775220523528230358413950618098565148274185045619022770132772129313793997491359453151548126745057462018979581837750919798224487931618214210921958932154957103406699350811021692514802844344406048436128022383355313020875103820500339012865743950569831941824213428637987140929499877872335237846739872702693985346620726003110225259618997582323705991051727858661711711463028609035977543480481879555856201315976486160222788621493098092703541500887533357543305197671242712754436876824427135731952982743834679454590862784796082894889716235168753787190110744631808627771604818935701647032086042392847861731065013980492754069830539955807389049305257488012730120545645291954232288464777019168301195056779275774380120584631831963018153397243771176412927001241223720687269779007438268282419769542376029860986005886844231841051938896368548248326405912204317865733817209131360537557469072606773326447672898492363872302292673092568875507387338436379841160679480156302990873520122104858009850282830689948128766414479215027722201632559582340027459113795821922547013107776686877821588657817612295352292643320081224755483119021989462519277949811727926021495630341412518516192608035164113523835558885012699915669024872470175631687454087077541208293398160719208158652178342235742757721797177067788869512332341684788237360451816413972701354526982763333917581890625758154406885177432073588189422431069335444006549664465355945862120538885049242105214901308307749912003229827049750639363582295806515417538961495454737840284715021097877873797949088622458500927952753311098298376025370508700564491722292262674122942695134674631988312972825694505226790707526743431579438873879221570099061970583875829405976687142136768736679866825404359825084856581995936335472304092951856773847193947579101812432785811862790237615388269912557472592901666328593760545224825379615012628825456580506810222612794630370498085602033738167813893438303080951358798819386467236299380881401035513912949326772827505911773470072313351183670662523671721540085629356664170296911530907597850777678327263216509269864391009839521849952704481567015654558628215906206556899188085957605306234891071613847250846794775500763780011513928848739321845872955246484199242005862712871459798261820051451388030058810854032905436126962334891046554118817133597992281834150068479433971053738558168749518159000733149186214331474348494776133458568962599891288901965174828190398631224032396265846206527417757938487925305304606498457119446903599647120003187721301584181115720436257097978442191344954120508585194200682060277889849210392007670507896511279847753182655614777710917471190740421905919833658200565698533847091345136026730019194268042901686176387079591852544484536080310718203435533516868594883793331703801169919388518448795215104857024779960669431095889938210298500005076695827215240967261627525029105530281279458055589553536572991150753743291056912702964996020503189843916594762050555057709582010698145955237678501550996403057049542262150642848996223256949491881696018986680633872843438684407410366013221636816945621088137753227478482868478372488458735010090129167037716909582895336474375975854989528894740182458758681259370082549060878212946281904460721839097524648834216955645761367315166873639484390890509307162056754773728171348225564006974187355626088278786498954400891001161064113723679700977346026677166556864282935531038889652853803360432559991699646518557834149318692210519296289319296551325833202623707842525044184795176059858493414371315284053016782498870655091477377694409415485252524416046783745774867624327389112643013452737774641759760645651389752677124079620516157538423527881729148701485331519535251664474350242016092631918077924005290247898296495698547383135369696271743234975653316483837979312161176593430579786726569259142196660393933235290346026197695535937618666343161785852717554694059035475696348818482668933434715692375034744665862281320765248593699191881160415672079496042827156520599988812801169001552134791530931056572863152017478615335597869824629187788962702178736768327549684801380179777111419093661318277958028981063360216323354949924751426698624605512072554340594829686884290164259830573241869787954829060719561212170446039440260315185285395114735931923713646626816731703169798406906677586392367773499579596491563074799917572484454115270367831461372384908094399656360819378859939238109463512368971028161345379680430823783659744261897110357801132517806497219517776641174749138448234971243612182917204944661630712294365741726247103202152358312993410008295900434125959416878336801072656561936962556384321697290366609355012800850977206177876031192191427378554137334924426339150516825654516984206664219758132973863929096324533723057230446503129879074676739357219544351146156629166681514400816760628778062785820443031477400337422160692574939109791153955598243522231379844595127807304902179617542858561298555041460156196901297810498759787809836684893460548593236892138768689526442979703323303494599865434959254966921654992007089905530514057255991718703994006714089882663470122700961032094774128963198459423204689204474355382670152982925238454158294942642113599765185018731599791718979574275515306854652690051523682612320006926378195521440681866692928866785434054263306642697050548988519086569160943616634916556176123368514834541421113662091529829426584136940418258893578794641603222293961690819707444281394113701518478886293727295477726852707050067923551944410983973490063292122091660309932039726636405353447399821487710096291062051690784352263240242505721561431072134350026460307574347172498749524670028952660295195578180039415586070231251060969864097068560241386266469736435887662492310025110937905641703072478602424636993090843187796824723153617255959328984602445299597237351714191936448129289126048684537552957788800023156268005149781322900211769108149706723082377285709398636277278122802163030452813938340185063742377616580335534229747287831221952130897668754721581658315169415262717538854972248422987262133978185729642700272216170049715825727187269907665285377301760478523901371974498843451767863680237242191657658445716069711965753550750956633060219199295597019206844974533304925610428568128267521113048838443498125043691773691341295036631985210947578374766578512511379475230351799974016149271834016990129030033852583570343978000135261391327543175156617635702606125669963032249084636012413918312985025513685840101469146568537552688334130009500297395426139833323025751237750186365836839195643155748125915250024211211121982388878101134424502345774787073098910997737309085220289870755232293437149204896075883729899037400747972018217571088543822062983833300002114921863350456052077620544196087087214901192513720768403560480972964224669091255871530860207716929052983967062921186381532545119806541570078168148253733615559498583613962936574119257854233739662918267049690274637909784667147714781887617116975762530508696461670991115829966359320578958828874966640549801475519311733742368042376908639240547860171829620176780466341283542269828054005383828912885325094755946895341420771001979298106605224216533373275290066963391538705678501191028385204194931213861307410382468712985346203523369295850224133637557211624778980056498346825083535788672201621087200983151287988704867713003145721094521239231275837860970146139071711035252905397512004248605887023865862620393312119541019221486303471209668491627436277610330294936302795832118819595000644687859501729492984747280845830940647060368950612375887428355862722688192538148512385146049799166062834675693893051608544525380274782172183434733140428449535921217611410813969502810040555295596162724946450518425425428686048316488587430736920686314151014794405650169746906584585986341439819116157271995771385589402647683716169984781513494229203545583560023272320227858533150297523749713546813494407340751914174542148856571377761242944528008042965316392363101922397678296678021374927449775304247245897391331342167002099935375091330640724231625188154271544235382171173961386500244201130690485429591112095652909275643177020994777607396788627186707946637526142614700299698451506243484452331714961302732132841970724515981616242025424168121916010414917085740443831875126951527173216704570275962856682735532319652579250595089083339207948270157601919572507116461774808844625487394222214014475561390877251198557660381400213900471558961963678452485666771963355253895830250419998309329881922823939479387219560941429417330380678697674823237312039451343008316794303512576749903811199293831721980557146237733554961826056948183643242931097141666541724730241216036485554800295717276620368800611563771767136485363440625887579126032673188977647902043534220022610486275029172718460579870419580807985129441744694608723348849880680150123232875870441367496453962995323794494849768387144445069513331591681202617354573183857044024444963889180892727432905436160400772520655624299299954222840235028725730500531877957575263955581933630547310000757782503165769034184383679531961114162959398813124868589670837189000254307600930812741034603333678558251528470258807941754578062423284214092787229135983972174839502342150094999409146763029372287332977319868290422181468634390370950457414089726689691575366840396478217444330895437036789349320586829448884305884142453635648783957401323164913909964936711340432402010823721553621752823285487251511211562563479891120297096037375593043812330065629495695069757466100974898443757661002376498593282830671158047173874008091345787944405168140164054725754894162296925216606308874501247851091270356419214857247139303195995522734053608616325173991758616226922556965604403545233141000298510576024314543396495699603631676090537790741630556755887342303395376705734916491578126954922211382881602947097635584391783337535107161089431223004100168755077096134492777858216085640745819614214567991376143074768963636307354958955763835529003071332794227147836409967450499021185602877603897031250258222081671814505960076623663739420767706673372337428461016683358816733421053033447841995197764718474686439527618306390469569041178051574339194192832025855489663526056541829742330629367917185557983092731515145150151818057820842102375209756853426155247530436440099947893666215258380038559988123714102459295932714836918580463561910989271481102642605554681999505103003844042246791681656167106825715905870434371969988477600437097311492041019924033492007016490143051621456876580595951963129674772546593487733410985956729744356175088685674254780010486678060744955151699770683862898804767840690711383575142698177072091889169406010886435769415353875559189188432001563616869497858187967511666529183837507883438053283017570230945243069088010566870840562302120333691975581389095907869480872971015659106957638675963245056624277054677774536194885492113388186513053170970246529361417401259501540687677555930347923824018384396272173144822571490154031008460397636493488840730671889124513815918575240286712513733909669124912318775638077667361224414192655754034479215709863727026532437839703913550927101287869370373737649591125151889639748787787371921809135102000718467103335951749062274929902898901764796443372820546291363780147677988586737601538974048155830811194503330151203283019076306569768085564462624583813336994302444564988995195388555699585437729437333747772696733415397905672451812211642046915597267334708929984064966682289024175086213293150151262068253157585571593081003769964718441476629000172727251614066217741037281458975237828353030039751687326221365371325760868461645313533619642388421080922456173409370327017484874499574949257515113201616260177687311860091586845294800404367060929790224272802307752963728908581262492422987754166859585533976628568575395606270772066896076546849349852787315788587943837071763066556364579528396053141993599466438300436658039509104206908030134934467181745194203042461614977199042388183537308401218260277310410082976977228218013325908996132451370131956833578775830307091203378181678781055233929476112487733923617790082027990212573429577692200520477305224182650086722509963574909901722165964006828418815867121409875585147800029497037902917842054772397730583291433571298051594793424593068986021261476886506472193700904962162270988912606169816463041383356229907145972018429524097943102148152969689321393769115932831530980559584356036589547737878270170097756317859364601443933511028866521418877144169098539283490937693386703230850751259809691268239136862954738944487944004327380609110455179707370538108922474407850161230446006829574260056717135497860410526911300996226121876960835887591854656794711213673272280496310298446743539956336876621801435488897289537671122873094279316724745630441712783110968197918384205053353503274903588921094662328302025061712128310261193150319157487641889660930714069962289724928653919850119288671105269064536545645499536939147273296270535695339590123097574923791752506629146956794411881744164542698660324754634516720684551501312336861348252484616267037228361872240887675430751748717991056786767173556864426231324775496212264231591733690909504396589478470550514283284289195602591590211258113454131260788447318505413228026774235013908492000650498244486586153310328581790733878751800886605642776264190169367030718891783919632271295972697800647123090198928276757965307391977015852988432059388495146258717765743398572730781761136439017374276240727985328042565798656062113502287527840371835588421154179762355557476687985088767295628314021446325155972019791559429323994906487528893671493622762261730270463497025990190580842554978557352933309376150786060794127250644823548168543055609433098986681172022535388188943416947033638703030631200934205199958377650276296961558448245978230588459975756217101164794036582934989580167657846014325645857990465248941341843219301475756748983617616768806573275460419560880109735147616453093591189824712477279963529851154410286143821281496203150877252912945449262545334453210201537933399074572511612545263511006129224799782907704841991492100428530121395041312200945804929006179490780260709360348513638565354696788660704731389553469680623681980943445735401258925241231745505407623504689340468649740511205630857218796334901137314621241343438355270813862308533836882988466445558498445838220977505702921773084158737124699797090156440793959567602692807536558699097813810794431584054517701289094908664164940292371980522928824171094878229741870229227549685002301332992045305830272497560837267784274826948821829709935491176879356338116738828553370704594890265147747881234370853807225465282978699660839790162671378418530965572458881437451901882518375978276602374548825814472869021769853042698519603607719953781715730118023735882909479903958468184078033195950613506008695980328515947182513726375153303031462108148488816301879700665852157268116889353273329954568920096663593874945943688742974469505596977462252124077104905201256873566852222045051460041093752202767161296693853751906333443698457314153315091271317151055607924922211522300160544312171258428163566879958339853074405285515315923739408524226092961273247439528327800737792853749293177144631447924350718036971416240652224194209149144008006767792168374256492833820170377669723780125608588162774709503448363173196372874108397990198362121183287041225850150089180872723409131876290283181505745423926248554941128470907088223184919928265904551511316391352616173734460862172230662319437145535802438394420271816118436452268737245488026310242536256018451050145681699749668042488595581532453165916575931056908217161104485922400853274010333723461581964305557311238819222929739621783352497188440535426040718923440756258298437532063361399857064586442518362993127408923094404526214544610667267534109190048165839652771063181493800761154711793168228593386849240784585581184177658027818974764240503992509749026773707129055474662138705961035385160076005571564906533218328901205824758159231784975526389825945245141457830869255811925548855339253756431220994748576845109215171484101437181107606341957430566020903166964286348923955825845546544783363152756740424033299847863037055260497146828090644388797313830812757456130024241644880935299619794843824671859293279080705164954005782941945762073105950582418034667447194923127001170640715298901941822598210480276724202338642419389345690832861425805604477610046979733944392875938505183529725324347748533996281508866650155820314440439729208681451047162405098333110767468946522069819203956400566632103427672498107508892952926394920628263375748205689844138684356623840946277960986810055495955462176926439212257450937797809504310361607381200899104943320208902103354493801334930373260459269916424383076335871301789033947211064635767728565099891748730423669395770397823654347183907200759798618838807381421985281239129093809695215857541559203151407028778117034609264466990050777994700176268538583355706011978108440881840514672598992118582561697212867084186996998800641932473923932615942676659042043089653452952391257232676222803372300479100369770540669231246929340094215209076378388135381289034844771282789242685314423095866301650995648620106055743293110000885849654006021496837702904644294912687248545962523132654330277323991422013319963415685331373382566722416861854186777758428099910465991999357367768357624247832076184276144345052327622698976592025501009427524824323154000402087777590175835699908679470730193725233825844401943201009533633623731766937695135204577698106704382551765681432975118333804401667104492431280532527647057089184589878532645839912600359480235551373571394198232036895507550612348411255437951578306682320797493965614855258612882023789497557551104318155823267082646296982629815280226431144302805669100273751072815450929378503771951453206391797760353851912854974969713141696697542014517757027991511670405196600335301110492828772555469849902984937563463594718737653588117763305260053701962807152544757248644005882973630699306707507262473253105717388082346073088786022292659698712812930460825076925496130809293605446726311919071728423130406002738274526137033493934787536510035889634576958975341022020022128920004480373479628917772240861669486593395898716126798254718879877561906882100181146998075391028241408674444869171016315296724097488186997535180902265351158803181658098976597822898395484258628281328587256173133456344978587773507131529647798418897138411209525372289858134311516708859956306357103482867078595657942079295818046844838271614098874289168821222218788047882433869702653374571296017675718251037977070211481729745033121324538594536206698018553676769060488954021679939214989189126829628204988699509718857514073597297306717083982822619781391958845737968766464289578696342834282705064567773797055448583826821189819534578158239463229373316160371361060842527398493640213830602352365187604648238720280052484153880727013790868423832596759463105294361357130970121715597261687431145110967902851912116022939718552899877443244830177889066831258072355537195541421944732449027768157980607120223342094899130365860036136921602598385139852452835039309703128811937589913206760726923725983746505703181240189549298554935983354917171733760004117664338557964778704036020152371696553030389717581423992971099818801274763872699601641216039575563314822363252622581400982046149678543981742828003880528108798116627901496075313523573259770079509564286317821975429270335690978646965170017857899758826033668510531259407594947050895922338545227294041848449595439507536371830127639185590987869741177431328167315582844080102562272842513970793293817415987951020085598585295892898535423448697609808113328363370282374109732341863576738998213673210732677541421261130867166210102661606123925554033156734579202261066957876191799752137318156797429700751542281973701232763738891399128580246945891500565078289771485446308043762570359533651355235327072152697931030704284197892177561766585804887094012670825310903305461907510652579942629693471784879767533003600465008387821816383862830563797633656817195033895163383014274932166157970668813889667499786131434069495937828475996852640783374390412233998031630611026980452055494601363744943768650830564045698244263882176481632716317577381864763628970749256988557474846105833559669522836825658567204918743634469241508910098359172583221705780184087040994593890093312852237180790271389811361902183459268681996518509615834576258511441865043161895023656415050676152621703270610210916894690703559197033380270426853591089306669030467097440239615531593140989152898667723304480555962873760529206906112756854889273306289298168393828437447322320240782955115539075407410577286507211671690867233265530866728117128571757338276700824090623597038798404515840050690842385958535629547268929914740154095015589359023261512688442079820039365979801918084208803628319884448950753272114420601100163367813330256906164403352425841061132336487239316734545866254093862256382605127789867627981269162079160774830291604474858293954953363151277861858540242824103529251998423772065399356628453565325876718000327844419205922841965907552402842271992045862977497355216735299451777936711392230167351667831164676524058773106101297877033544977821098332035029526458422947367737633267401149364104562273345965865630242026964837343520882057039108351329253868238011075812109324075489948512490740028587890602496666403683552899547343366129662492018388618539753820426850726761484544816895672977044668591770048644213760289197903615293188673851182322282387347201663458204898172334008313530279824083507928440224594869170588182594320232323763260225682611631619174058536472574739160600027335414773261359325778969724188699121398215865020338256733995225503677026942402763644365110996826950026774946041714637751176847841141956412092234106398623359934519824095170891240449188097561368769749969826761267776892759512016684504173421869095173738725956377855317794595370880771816727592314033845378013880835041318148005994526855289247267686102510277798874191311051863378108277724055311003867185985778291311095313555196607182068959595986468293712477488966095848271762082982094803100029784035035129020376164525699240773189192067360619695085122442591296021969456900217174830434256066197563596845026351938221723938494757637872513098123861261652896079642372452375212292864282428657145878662016377809943414939286405791626274076720751010224823173607057028797873686199378040696058029569235975484588426710558706628898081052086361326468179888261444716679178491746307786882751271199777113096606508897802119075859460897713628475465229106440833884727757337102714750406003067156349912229635810700919050458799288467072912410417557193446177935164481493977338769457148670970455833951663240137511374090664399242646267801864005886050043899629068719375259664598550124179321611301104312777587090450320390988470098275944443629455946533482660251038530810842357038787066348019785138223814864133430708664221044252652959236462364922460520426909552616289741458554706288044761830409911991229554392765386576728274832052044788358644556878506082226796402487290930997976744557705741949574613638463585465394258068057539575291330716762163314341311598480435854194576384051524746882916363845118474201165069181167111147831377012097932511254186824228161566931874448869909808326739060396254955627856988462388299738934549630645591466012196930830706976320388779296281612528038160355239087741299444046409168052971863999663022376665278675929424597970237871866339656988981339605210866451186775147848942039772258351209429034634190209000313086157815846252675236503505974628389746252557853148330695619353614400425119983620790500290039405173419600281615428384168435289756144005356404977656245655197428535033433139267212402712709714508784231934049239977459133060340995591451054765689376941109317045287929583846170549133639176911107205965175444641292282395961488693924943389641007367154070546449206658697013589272593841752069241881005981386394084529654320569681142155835225800041341782269510915218788117100946242962771670724692181693522473766630812261285283709886892433897702510748618170185561265114962083418660869902361380980134396587228755111427066273444107302351847022643399253119630906771057260719234751073006441776609325735399563201813260016159753871091481451727833154955688569795164468929024682553548243444881438024919292158039441530838044366557447788404286229782074787339081632209993599813238637971793289074059827585908579435228619075273582697331265578906062713162372612499976451141932472868050795869849852382667116333098158493976913550740493713040542249040094367866879439200549581472878252427976318563256841372833639028532485077020678137687977800556182715778755020624613648156015583622364962662077214491629298325307114903048025306869117447131112521166640789582397610732678218130998538494078535611848142587324816054657154034816230218454477130834017127113475609033064020353116221391999290425135828212979535129649935816320518310446504864563221603188535883192181763411081014190538568713550147251010596506014292406175231874374968650470656781224644712557444361377211676516020733300041719196201424006789531009273503827161413015903192682803421736333706786302250502366217660649588443577144782091948087481832955416133872171308079238629414085269245663569376432606449512616447564956853346613154958476490541389491138698495591905585962021489149418940415963965074958766880822805050081015793089023686529363065681805175775526284202533292698119183324532581437505009611007248630651682619237708185080912075632558785143319534683869095816372160984646746251180421579730630212064831767562515798466016756862657821219072147511994692695353164102579081409207542372467712362143361472481638419058687532320775040029835961348350260204222573449935663250835810867839253711760573659256550262838300593580256706923101372406540329684967334107788454261437061538792861468418288527274751082747751670211223125287275031897098074679020237523716637147725565211543579958954121581911085979895068510764621990231778660031505616302919467391821257419592637143234627766051713029152907204584733814648525721682918998001308230848995871913769598931556825644408049287372909248896179358161234614803506577956322961175274526310234765712448465090519760748076758339922704651783425412068619625027601133856664151548290583627751628887377822045948628019798905797985961248976329229230597754026587543537246851524047713832450409484460884088805536294929884002841163734599115410009413635163804239528166008768164728740663253728541821289216660898565695540725746244218555540065783498032341526212133305155439860827387989422066428630119018945484856435993260428415093703157934844707172774447186741558360122422653797591268360834976393863927498932666244213027896727390768149002111694230551641758067620361335739560196755889870939378996811205958274837389028780275318924058941144595451320374309469417232605478392829013191689251075022956799181986728440617138400279511392164543551772588045915587342813718269468710754315439672969058184784096118233338727222294828281991656537006869742621579573019295440613299475478223695186448867739473203685636907594612496523518840489750297869109945769083642204338103842054743088771511572793467437457720274114411331081283074239445130117356178706228275218432830246487495752947622770133403558833491826760665020964134632115776535490356818164644068871468718137609552055759414101893312214258030231824804247855283128800247330105840700789183489537521145820280482177815702047744022795199180832700589800377841882654260785391149641540069189785646493635194056711013369843588113620782165637222866618513221938245602670771855025237897023916739391598835581963814733764709272180865628299279865141258279817493860752569540403307637303647905228977274408855137329503817969748928236714018823008832970979250371469129085934901401599389968007712365922520094914860202882354188439531696426774824415313955065358147053424927833230919105425757582975130232286155244222500382240757171697869597635872245793497529755134953609214765194315422873921729248415399835819057410468317829658649635528261858404262193720682745586364443996619387839192390779717755467651951856256750414412659420230513243668126219914798416302634687342846344222045970222631047782389862670890936862873637780648483388602602006319565939234119724849330976937625795447197340702817584663701156560341619981656210157639845115300836941926423246732796640746856237923140119888831382856398559976054813919613061156626245528018330122582720482809955653168699067476060343562013806933440988455368851967222529994955138570581896302932184864766617060375492413154700055336857539472466956162384417713056716900163566773380190272963975541680904619732297906728934670659291634718559226872712360137320274649166271290798442421647349053299303395825286073950159735389180398752270365981819897336830064103382815116384734037265444670966476548055183775634145786322153859529296646023328374831084598686139669475360160036775042290577946379788106089240806815303911767338186959428748183918264972709158446724477827263795166254064004235728453984476357462027023656496480081433378116037171708818550626028540650523915374248715790033741374812014063355703238209190740211809048733011450656044477120387207791872308654965338216557717665089412973168431879893000159295393381673387890141534404782069217417236758865195237436250983905853018672755305717142110434954708746313474024195791165214282794714594338821399330863407921088064271567876525117894133829348124956539152765332989378333452249277005623389096873124125040183472449308743148019831825057104383829499524669287977951371706714963255963691184744811758183516962071892807432363884593111223588090340739769416738667231295163599188929584891478458447491539052490334354364858036218604492618541169869313161464259149197644761932606534025985691326044870857719652685940702540679945559498809314299426765259581252055460000736971080536781344792116293574743453184154774583607042688326590244664350275558346449113594250211306515090104016796190171116495445354885366342919598441358611040547752025274032186167064876222263505698625586544319081848616919885860669264204572853051848513083570819834652175961917928693463076707405829426227572976498794651038752222373749559721097880631974040744844322873569049178271573876740885539031824525094099476200103243946453759984436601669813416834297881471694273673737546518184816943971202164955274043891379227467741784800778253890869898198771767913677940290559600527503175535941476030099360343732478680717184013891030329808490592465891162515232033954773398842734635036350512672806155329102385929950429685513071514251613633451889913570039283154797673483820399515566405494093442582473439693088396708303373561995340874951945252691834870596031380582574530622052177143770919353664204299210897840580033164669608531223225163746446230632164518050739575203107578216057792050196887014143752287674018028775113297486609924870848043745556190513296902802411784410762710773635195231407973516005918520131526185837730420527118622236750592020151364884810062576754795293029713024985703170838828881570606457577977080718172623539797432232281956929222210412766246607225179742155132673260787380905102946681620451626572197731331796586798318254857241507959625661198747037041110818207728953508694726428299169621578372346150706548143243636397780408070137613607505988476879828001951390389047976952564080368282523178008747764911753492195884884971055073047618402195640624120559504032551811218716017254517342043962612673198567136319366745635724869625441303272810357279949719304168803926357679918660192253836451280473155136714642584117134461295751395821545856588863072471680364450331568414823541047765826688013767997679505109274290343149951640903930475371162310307481568685122824387853073688431140630474264852656159155458254559971142349013237975754388340285553220122603716832074355852410856573757281946469609154372653712548451274068958993674943724862470188639443558966522012519200976143188294762168235443052437591660834056906442891921532235539690701195491148706356758102411609673529799056426554523935951194393146582258744941732969558312006431541962150295264887593795853990544941569993157807292524376772156253009298625651942127077658109220149064608812430021443485894871473826567644000802153422926523199817515223305386974420541750345180937231414823527417015744116246290048338379475429337938538765525246422184001585811354093168372706359008828362822104879778651652583537564566901255213774613305476627312757565994826096364298103226887011186885576221529051071112884585876036454485392638525967401832564210953452839157416182037714748155998324511232501236576867225728881651803490886122116434157939731714533510159568298954963198000736791367409878284235723157275413104667076370532109886215477615619347274169733372049155647665482590108768949717889167113547662764707794895469299551269836085573537631469905699786065338046313909991431801552839385118370473163021332441492245034609081266826619161740212879196873774845463003835669639234574863281975785199762816279050480375706913833637588027206880995669585909492556463012414684737595094081810169895433382826999053072302575396983578760683667330579726698909419697185596922818808507966980576209848329089382537034659430244788288430208240920460324605020502406847267893633318464630812465577286617598709261466509781203617095676848773051641878286441411938546127572373753831660322930035584071808055860513427588048558400859361319458577373360614464443624375826941031501279098483018462882449200651103024830725931747202624815352742805397013038720350045550896657192552190023658563236803351703872223902410323246923037068076508008406708163073324092449330881443367126667000709313379977562085564449127589921742456770071714582471025101798782606691668346029837474857793037707494993500699921442516972920804223782321045300477165767553154578967987842742151546205915204997723984337825332804329169078730253146884073244276008538546992292679478976192893224111301954052154891151508179880623151226538892262971066487238390335747928198752651142939373783366181381761839979793884132636362244577465786999011224063619506976970277951321533044808022517665175599701180955462792922832077750590594755105396639951036406539468276551934825151842635029925214792895740393980155115319532342188582326619380140679449405265283304957458574887836330559669414619000643309233508422514463497517234151406644519938774474076374650973244956572710810363807334292255122118944669129213255713223577682766183217088101366290861007868559824020330780121836595209161683465768031758983175772044630842271168019425409801231469950781441400751890542824535826626680274519592376771177902434445590943718475367905505832433012814256083351650528810280473035007377484518476398777770949736733390434825079919220590641471232940018927915095023515170480343141162569223778872367405674740530460008465995145619457763706809448827498080992804881719010254356309961321836359849072568563341879193821313713654545487433957444084843689674999455327245775783456067825859860715487494406865296890461778114395434038501599501170843338088023816687832181330656730593198320166427877193197044359446590623604416266219412993505851733900112545818252837371295510996675040171417267906644113285546100244675675980613482640560827971833245151989200812114273641411497677391414640809720601943930981869382315065864516724538350729082676566021967516482474109394303767014517566793774235257001335454164055154633079923398624741371076531320296231252678756716828462214007552112966212052106244947257287147872372592265365111628383196036476633472049753017467259112816766688742645347456807360744811029763246715156846327083570581384188466953146744515406931336371482071306418818251600710225786440999777704704387509847847871225210576563877976723288200281632509644763367347248004703604507476810230293399334829141127708661059346775759488407541889354538568663869207337865962816254851869890542538810992214388759029845028526039440462029058788912519363752673599666771169896386148906869498738544980558256844527079536253636882376218585372063692320596012075835021486641027517512446590812428860637660723303829127640784806206543173458673538544922360625860972775584288339786530028769284573448526645657686764180222801887721169296900902141546577974083830279027817596564524039164504427495826240425487560429708929917099729782421917303624929882261529101620890844223232822347927644918617055147757087734706304031293515937547201166026889017639217244235076530282006374662643787098616092041435669142823204293431679839954178640001927512366576532296160752289898545437300651518409126314985341707075735450107720333073176395514959774284057904673938662071311753488622406939028691723099296602848864596446907900955000475403932056600033193989911424905407444549425036938827104024278626981879251458487271929592658474250022127809837159961264194825140714415711765137848981415176620121827637996994640015911980688730275374643029472603224321040799921807602545315761576240736362756215340103946999100087610437400861694387643684111100026102313854215029841460890123329514232792993572339568961103225157919842166820319775490495095959742883649541148151834601352611029484448433650499042988492171783070972204927007392436966570832440963979008938930694400708020886569380669825552146125708460625546176871862140273229746918874037538163202886153126325606141767750850735709889911296961575010371519933671863218447288397314877907838366844821735993843725297538354717755439438774335822552185651625884401972114901371245722741406484855237204106781078442287881517772996205139414744243299812137532670625220875499893390350319012484520499802323755128235940671555287835292646239069117842567604065512847463550495165133080147434860412723417418232902705034244042269216182892430073201877712747435958905580231812631437626067013530469112099631938510881339381873148961987330653556361528937094608354220908940314520902340130878131253087482866924188968637199238015263592496295220815634189530236592073099149282505354190825355158952884677033765821946398435870133372461478424278711901276519178058465801582218981121868900367344130896765454390015131237078511902826430349538997940351284452112500962786307613063833170350284369020150314046442076642346427237772057727213217807640685927056715345040642220282951183936152427153871426587178652817022074853471728741908762836569069542780925785343309315324281541917688140752451986274028860483351697105381818496175495624099714221072726348829829098090066936168195683482110173814133471536398071499848464816766869212237623899787905017918681405138359032445205608397049521692500540885290658413994953483125177943306429080732549745027646778379119974725891743882906716962739686341976803921041847353429896254326884431817125501187144254632332021119798846518150392243105876200782986037152531143142197659149109984832193288272221159794628555924899133168474323219152406069635762914682248163515348060698667750418171667920097714789677020964418792637582484640998322469165684838381366198263221996725307882024031331036763112527415869250745296758069166854290705125080451262072109609429297046881270385221086879121005948106569534996868332648897577138540069352572857684666348335510095336099935731549468068638917014006340378434887677074153602341283753001672415861782351347772481645204706893847765986947552427344799250635397175636883426844536605009091533783176756677388066861784938032961995866806155318764554019355441375063357843311750464230778863494395847206066657960361413980913874034431344707193086002519653667114798785531931969559095307354003237271777712618423527167011298904995346501177495758127723101214991781417743193151341531438484815279967703800491888067989642691706520413130498606797927215245818534044298783144620943585698566302780302926067130247263619075321821905448903464946234175223214440835475009473343098853482856814465094201625305156749606217447211968176412961892756481377742254967457765219895276350446502494028433925871022487739567494109317770666988267370682150272957311056154820594290394834632020923650243870936007752647622281932908266434822304852954825010869875424759533531933339763875135410957107811396179079688002036368037388438345313285854584066729365511999657920150369671195703393774798042859009569593612013116069003453578991493052708317924532676681984213900769939194800283603611228926854934619860817528875163913780654335647363721275568076099949297293998668074318388491176464891826900848422650766025219179864074585152862308789559756078852207694317327754286940305040631836854220741443277063691356478859794038364896918226943105071293472602950406030330202790761941172968554729029441955563874365429919460497471426904073704118492824936651428605315331175109546877839355272201125365615295044244709059692075788025045288756652431897002799313528176334069017613499209400884031872418873901167009071251928526256161647796233087421940817103955908897512801424205909845923226511856126496103745029998099584125499222564845564835289785688738669232445431429775217824116338069205504767414289739439598569858206650684548487968770948664713199419783832411978371993548864129846152878388233557045211893474101028415322997261026335287728876817093017937182425912275727505219943542409593960042612878377059604400812481240875299509641365792395626824701805887927651653107987968010451559323491421873345786700691710637428513339674724434314043439850432526971787477826741804206456407236785016983651430997704570358422014884679780345416765388019862203409343971332846411036378410003426316514635796084339878548998956290981684416290568508251919078248849348422298292955814390478818466464399490190497695105637791004439828828298853706164769692589273581514885134875540778440318686267519222840354565119107829666800471700678463248713920728745038154540357617594041920524090476806128369181056563439203210263294143715489141764948997342575558007038383733856069853912538071580092125462181769826228154414229606508944500196577413196014908295176096190757228173982058613787640885992986964479394993827444591954517966670447613569657393092708797249457396494440431994327037653539384975553235588279174494333157690074729316881148372092094158028130886690386327995648698586047888038615908421237710812359723221764401701418979050115921906571771593073951928295741783386745322142509751809847313518611322211836181904713041662447446644315416262362445170008622835173632971263602178094599301202848257192152121594337105084730856601211480164258658417318046829852705614741967536887427324113149472914493792618565047933630232675637653994016445809105516415159395564164759875115265533683864990569021727854810768622868618934127544747560871108287489505380475461366000178053750348371671927555277957266058120075404618077121041817716180034839739456590630902081087770679104288808897779004085878503357650453657392859383970857508032419381449427351380216030875163951802095595635166561110508402823959819876813486227292348459995633370253527192917026537963463960383786581299631567887713974401038885405722632230725609102016548301013084393200992446547066651441207946376034213606523724754051295171142765915696199376200990501687256111961174764215271582603443715584047682678553829324264455151489387579190156546435767956963194349537471986129498650422924203870078137125150782707844740423264383430696133046830707161110842623309053203369515189481113812337713483272082731571342227717247090558537468721321825908654381179111953833480661530379195430014231980485675375278716064125629338076579306061574867766760812625579273463830983242691476816147410725491676394548640969753816342342218312183275994606244610542967310885070502537215943150870883316025558471691933722903020252229089228720795821625142640960190382810959984077339560497797599252715235760203464216579086637464255029215071333495187068828185040988377442331043802558996433732411979809152963387552312760561402043670241914310165970666811428193289258745805325467555882767342871775532364660844951622932821436606207263865388750434004879286804767337868713526337518497836803657665758807726288449413194523697556152416911109552377973349405879450756843536158611057199956549082272160741172513180421025647556053661302916021506884107180143294631641152437085224088046143477228667437285743160717942803109459657952742372671657136329724250508465467820109553017458968899085286583385375460896990719554202621832659174782214745884414196219040430876091753858278502072154422283047878550221800547798797138151730265060305454506682481080176703326909392666391790759790068818753942294809569452670585094810768195436265502025575726855340474302755500512985251900851386510271676962477780200237636448028040301659975927705198537486291212602787715346046807480276398581571839777429099848956253674031473821849537916848184403173689618690797027392799606674735188450285737552231167620423509628303372955297041202322438721428910611319350390015497238257045264967942303267809485120289404066825443041681486105147586646452457992821244859430014610733195749373341229837300751678270977241967032397870857446331859656918195450638222775131495674341867980662628897630700645349376943339759190920290891507821241048320472569764343558387576855637064812978548767681727653993869569564405942839454613439295375029735322037082245664161460002423055719894645891309774291396718428401379773564651445787681650588424401482215993226732325906815096807562117647961310492848698323572427987011019428049718848610323195809097320068171549564380817763140159741500257141630761159682731213081838938898188830078097882133766847334247413146984887785114589060350201705704896436221050051670510436517444128210035110512473185753780239322681314836876946467892250880849941775030037814313086413237076087156025060025350808902002137908674414632473509682508337675604893263206767244972852531369288601990052500897694144404953368013914304531321927377181635460409926308568320332308847272231103431635944432458083842471914855316901397926930232103974871017850832969887159182148626576143374069374820649955281909122962751636141986851951805371507387276036836240505509358416307401016947228078613778306556656033435911094462649474941695702132208897804429887778270551585330239444757612193486885319781188968913413836290599348691915357832487578012691608083038303107356492545900204634163674203359175386790435006968519971970937994742856695937507293164711632611733318712100211979972093034304195819794661136199870489859662463367422197872027477281529935119606245855350377578329636840166267359602428681225499389254201352110602921957559365276977631454831615510452385510219396351239602551961302202238935258910716061492796508885554842695036434585181182457854354909031094438513500761224957262339104592724269470705086236372247930756754865710415808820027872360818190561316865064886176518982473721483503760050735363362688162509039995960785184960336055192540104486412826787982635500123957061214469293570065228151561316814957152287758248913054292455340656739896987533304003486746903401137088195424964117646971061681687991319585760673271711478506810547661378197194153400847956983678488384985490087482094829083953777626446439362441449569523955655124642510964806485751832794884563341881040065266703817026743097134613948568806086956091974107409468031000479450343250693309567055509761501089952472952655806151789280713427115800227989689627200005986907475136250150233351360551235783193927504875562962460222627085413368601501611795217087153333485246846892312366549724937419245194563193357485774259215402062293762498967767257252302964742537902704262525713306373928508578709155851389436975089793373196152415329978558397797336909883787497149667640246045195524737126904107773750247138839328372853880384913831952312669103978284512000643742124495947084348359110384814134149329952753704201896316360822632732642011052154735408835468396168050491370008676980502243004543507077682790937821623305657395623491884456668142848314602902081451978792933152517169724937120310453447979373534747534383986313426367665020651020602286708168474594934513729005392565373190949677655389288054535400531943029286421681962941889583294318275993233648269504008280774107235063144177195979535003840720816939582206711760454173230485405150293835073149243958387960898179192967840770292184998571419852368367857185654020456878409192585699170963008166308014088720546441464433769715988371362837026825809559645702827572252586373619888759975126688852435294238856594542982203212125635882035011315105952554335736885446916475719265292020752139260179161890699817632624609391629867763592870934784706318582509365477673724257629314663849615662426290578337139110529625867918750758885997013956338759826921888794750907892465266145834266739089352995429777365509998715217186951026267764730908149065356335094962023504954539318435641480781082686540050606556872653922357832778575053975697288011482480852053686586622012720400014039419795658536836983833080577038725968812931795700483237615111160174987625753104600071581400708279869954283397530833479093213581540741336278996122321399871412332916699695367286953476407772005845054554279581235217162958666248917730266219443242218720996414265712766620574769889755938230188707335321218698771725416702925716318762185709331474558775666090946865552499067018027049754980648744145958396439988438780677686221160787486863246756829871768068717813800301446999392625946714631704713145595994300007364697885129436964481084428406256623112037461193705566403942797048635317084230506172695249269001196972666652365433989591325842258540528414937601639041377676475575455119539143647454946497265141183601193704701636730251801255164585042320761209942050145685168458910788148662899964485485857385090532901151889894985150633864925055915499477970089641397037284335124748019345060719936778495180431050193218494367347026078317496942322385359965601065251178739777560902606749934131417040284601075496754194441699311554232181518373352985230055990879280431912901734272875739607258404193701162669287206320814186739025143257345970471764982472758498080930048704942873777639789978538541473631751908959690620399183085353776126982812156786680488993343563292441891777642593335934253792554011820593036528353123628744118505060823740751554753628288469406078692277573035632594513591236565962387600114267827867334880658786812006154590036789707845319482740197476569992158098392652403306413348219747865777365675824076602131489129777652037337064488343344630698098303791625100523257736949225956834325145758757751873272674200899559766197177677620642458187886439514571772789736588017415194547838861796478228437271988336169087482735772999466194402011658366134958554237140157545817268091051317958884110969058605360577867380636162837715324646333278190979269187652708076317742438771801870109219908827692783217161593645050351717012771176770224130660834966321205438302162524928726169697780869895005656405802542221835855833890505089883038324440183087601979529628158473384036052117593677957549959228872876543999367022598430428679039182971269174612632583628949081606015058426239689699668462624706064970999797829779379705042805619101472005842164490930218764528019754581763436363892400842166857883601749034461872693948759113670040838007582569048645960957173357574612977045328632193057178983588380427992126010085241372319772333385006032139916958928793537433444595558914896050872185150266689655238143151559226746113954091922705791870231749775895502804353326455325527157701544942966022019503348289266895312433048617263243242118446366486075641991318150984341105822795633826294710103093414852013656757280961647046528356234489188859427810134735019793497219126350181689154012547344927161610933524661220781635104461710648377657619363927952540260609830199165618661080007208435272673529938222851370874296574276035637945643871999884354035211837662813931782200676240904131042422985456252934397514233318717452622261239546472623936586363763717755281432557919456213765227145726992186117860829878899071213859639495177294973944008684800701496187738450857307450306117598130040944882813434220899214931488797369938214942085757149081269579703211096797169777856096863588729412680027047820644045321754064910767369257576564833578914576651581492431859546954674615316729320097060080297967903041269438167227322725013557323614658410478262661157232427361212881070103419959238822001388968298561724305025053536913405338827702078094017269742530458789365404834040948904933218818505914393829545431205761199773279866772444184127590110270432362888768465957927904545109253147979108272193625788559697624890341986434186473193082849885842578249758095669720093781851757603440799112425549948354947010170274961276271683667900178727714166010801415538531067940705293641110462050422150522186091069796015609471086979770518970723028783428157593314686852752085401177770402535674010089610986791947489654593582347866726643207196676280607846577208466756073078577972860210668713747557260749992498778950465740928282461940166690071833481853521739721774822205636480604961377889339373868296932890518908518788361716860087683492515867945605383139854940131078146218528433423191746512144264484761733406922561434902353343593896608702532697362196101797767978575335310933698704910731420935974362900237923280741443377212267563305472003007550388323352486932567372350864263925192910809181157438619388155843014270181672442913112307260372588193195978836044519272987164865300418296466742927148993618882889640778024611386162870434929081625260676127308283019712760121438860477535428550379556939838390308461961154122355526827817916833787666293556250481098613082436790857699327818328140663481296847341169509722382975892322030476631411866885999378272857372583763259592255074618510074374424213435333913794615297130331977030145557539990903856502730730893590429407076554025092093560774730151790790931985377872576826656538254427116674202953096388827273471721374698138005020581342357550283440538368839218088679613700333430874101626785374519879089419122687428613818610876286971591109874484217651257963939238952118311279434501062103902317615141831172177104790920954013035806282099913309293629634192460515128338633588892893126541016723578334908628239041901406539112108188712768783320124513463158617425539784188384344959821197710920990063805837049782012844256715353305871629547325943131836886823724005329933064088840706817375778123025005219683543930074898805472216621517906190476848968159744402139163751146916123650387186591798648294163684453161791996997881801654307356968960030554881270743902705974716597158123282696082452475120934832014713360331003366391993655002672911865363013697106484433445686443206440814580558235541358365870022028946566935491436385879546962051441621246178678505360624705491347245837338755983004924678232198538141205830650249751395123063414071521175352125782131966102071509609080656142174992761424573647768963556003038361197330952940893546112079932760420433313689049753886242551237184621553650823720269779853638868195577628455270437860946632391049901006738939878533739083182534689687360875848769283843778148781904354636817838047192477792566343376206902023351945714369046069440603948654883426106258409877946563489891014024526579560326625280648943494466466018403693232209057376379285875824104006137284678562363741627072744468700430438016357091103453964650305369352070809164993451992352988546754970199728537138352446319099079247670757170799270742689162353997216737462859074110452800858392625666059824929629088263645964608134930822368162818326879561124433992585294531207732736265951084869818102485510486549528978556189330966833283728046624361259833209191073699040437760638134867711831816311423809563988424666996816670577106428085034187819945701879923820600523361239021873916024198824464578733918550440615511820743213967508323252302435416734140034345907220369553100041795775821771822570899037849826644716332772183437106065934353448278793428593129020254904437633694101409061261798154304217753122111866860318014356936259914540868883273350989948100533054237618474091648184766028385862489618537309157985043943693446651671020029511722240296567301233022260076643697867154565471088380104269446264429934892636629877268908127908220224859065420273971716322794515114202654637996307338940469134134535917961365103336190835323880701292003652742019712194299378106422855751598432582396271789384377685338225447162626327264475508327882259773716193155935809819581395085808686681011308670891130177710520745447854872916445127603919305595306887142405841556269572735857700417277424860861661464936094949619826533205310340856013739629348865534690546326759967950763499260312260320956266051393742456781147988077228524298141225103706490967195433310941164221731655582985508529234058348529058042732191805001513296786530952034151012472675457703161357739679516803324785901807894252299860077537236154208682621948582644568250270401427519430482526203781040221105375589053113121622206175196386551040044323577303000439551437854116283992729889009888624312943973734801217618390920972490983365705206860318534709325387610422990748316357752665522733046250510018862453376775660321910329860420590110040162834235735017304915808097387760600348761817688110280849400751532462003171379137892730805376078735404371697252226621244681697175928022800054315925190276978519024762820411445654040382251390700303379007640683394067849076528866623549037783210468093593191912195096577828395690312396314737231169946922823310185851874570454802180249087951785998149860195736361456938668096038432793123578442603857337496826335395389496175107160451535225711903940542788886921986928411661780512743068342164715479633269433174849790333673151469239460428421982990418561149537065826393863008998321457273009266347262781646592871566719286396872469721901538225881343261298955852283888169910838118824278259596726162004965853516475671419320003966209619055903154075285527564415196712029337864333070035039346862026219771984549028338271088152194976554959941757326864140558965560425394777447444395335751501560643520735218084329786489658481048359330859429595701680336109060992508340906470273184320934173906551271811861454915452340457614971800884602639667160809316493954859019402116898661927961325897971935479474077955501062170711080133511783368038278181633524107004485904821181214861473844303742836839022829763596563392976788542147731798610754864308375660002489590772271747817007327105238249053107021393702821868745697634284873466759593292541831349449583335599494476720323045706303559936448232577909613099932165667690645346067454507992047891072112920995939484652038031623882021777534446823930093653510093478517866968868293161393973481197758326660846198758443752380998098343655531481016999339356371436961575631753615490774215441782326827359949226025954748005605707601886793776783062931138334007219747492493299242855662885628689991342515411697863689129076191021738550189900563214333891823911107403976915653973501867508179548146096328656572670086847116435063198550546765473236229506293005980337577259416051639097296745346617972657556687884524373981537197382903465911644946495262739885090220831800760893526806658929223835699343711149891460861851346241854412062353564064932023157504332655364994694366620593528818531727428280962493734389740213459873224061483811651761445794522048075958544209079206355229032379599524747373515870834584942342809637764410053633220447498132445807166999540529395941944791858794106238046759102327657987554952474347407465614757874816138944790561570542657482979878163901794501322772713930905591096773594292029092876358208022895591396796892825510350323482546064273690818318127442555078233984350258862086355755729991846164312535669837351377585128983321070320028017237399356577816735721224751522686403863253724955125057432430769320587412979638238666949499306727382004790719175153613467249387647647923003201948258820760765338982592556860392829100793914955579024139074261527497864324277227744712552580452815749682122764149909150088479558294409760723418721646694239304616864060139095227200708584732619780560550309744654500263178829932757684947261911142608804726079781060930525902415674280876604783623677540570840992434649537983872674222852549563830955898665262971807433087444889052887994991944087708894340348692802254167390893718951701284787329287893270017150403622489403829320158081488698267096816483649061179904312044563522105729149463309814837731256969499121843916816753091759422803710684364772214404972704673835423287477371100342560191407487303647809243336805096430974927239004739727266593553055548100836574840692935797287762757519306196259053611188277136066009299983829993562888360880852684587866645574663799381988711063694209113066665142825764023592668574300582023811490994977622935682829695478682809025258419016416778086083623324072010761548887751377716332743793627123646559589920712338078189595892935171550750684949296893553113814897426949126038643038381232022869791266729815348058052148553580476399205805649523179744643495821939975231943104348545933217698672360877851961533696076748667253950085659342810323524861084139562828044456200228735398240061410765232339633199451122139902290810826002610164509434630419997745282729519131109639535454172768203223426483117740712225556948648496824771178997212361619896869995805471236424508044774804070769400468344257309399313959225680508443334376429128607947601254357309995536098396423109277485336764755409368452532975965212961814030761059373101177364981753815907866366119760184141846681451099264646119073212461077462176379516275560343882406789418566690984418443221448514263795951172188400922329711970631638197003356588778659296756501241106762570880257565991207410562960080359214975142570715555696170698377805795658818474486171189189995329848378514644912557939942004236265151752873517910521737146719001696622061045152282859689902806668815984425890256226188794211524309724233415202920335145482646752497092004151952034614705834414485030609036411322539336428947645344444905230826230101236212270372412671673825933683353467349237325230819317081966915480714300228703109148580726378444751288594804986654786505698268446123346139954229219748592338630063847444279075364319471784337681170135866245307242811201679514414672177963624665210275104652634819506778107308673740199158115616092974431721187441339923408218684734233993796157070375491465829225275406874178143835769616659859266403509128486766679232234749502648159557881604840159351301169685878741188025027824410581158608137425024640726459679939690193445500617373190838920007075066139294154350751100624614259492717469677339964968757023251083257303599593936882696198354275878302233939247285519845353843095579110226358499152635113589815465608525398585775341292355398032943134901047805862124325029157981584867777591784788341249478585445294012886410499295158926699093076769052294054068916080840999887783160429571351625603032746929459128277761379722585560682547457375158486246480863031147926777433827850353152842407000983675392115513958383677016147917715810502044885627980135725158822950464610473137658039596039339093072566191617719869159101246515558052425059214879870973100219416780986690481610195805772504683188672357668110844654796590733279341769874588511283126647606975428927298722409097409122869954391818380682211575453811400556766963220291719830552260184110552688280434425810157266200060068331592906384173747177373366924584572719899014967251466338459698653525148723285266513883074050519300266926800181351757696387026951578144683322863824770707039809270215076741290043845651556182786628878014342221895657744033861526695927594950704317619995109231922146616438363296456215474641006521560008343216882166902029370143811400730614237648114210971167232143958483900348305580924557400464305921265127345148509107813802858395631768454302806681825893626825326845875044176870758250134664595497222571090978079586924530026031031886861927984687455409140618114521960994900379995474419987745683909474838826197281948911038834310689288291688395581710020065300323251636230416783591886532841588483128489802006154847223713377366160389842306772912063758057299352320815407977285383933082689150061811861759902494359313450631342018008267389955417106824621175688343636005092509486983730600803696655751169027565852326439158681061307884638404869161625437819251452457808180182777369654286274163222328029541461105933293232520285956384716991864424192155853256473546564486093865938554237375201391808279761959327899769053791779647743361562411802562895847272868947897046921230904246778469552165178276706461803295288027108323116923715687950658088126064430962147461662179985078737125870360672465429852829545445458394142831944954361004502194243507434261713997037130867442766221857134360226025016248013069963929902010813127240714914662601804905251719911627304115564067121699479076139933906685902215603091960242481690516552368360387101693851677870803867954286770322122558925476557693231125097961801699356167070054352859666836591348842289313897221272276902516077439430113760399445060654760703283899891814275641503161888123112251515867957868140857535247626147606680918136383819667866901007385818068824734912023720476107484461095323008693284322110088145005919107406031818124544499721773246865687402110344606602998750312362322852240835429208610966767496410194772755077712373038451528108655861247323523804311051707466307089220113645876624082807935241315549786528418302345557472803514177312212113560675408800935805328479801162898443615039996028643195145082529941048419077843694933298374866324281257014975389770617766183600214464388613865590928413478960841790253827457264975891178625648832883859731609244717122070390572217373827005225223321994417500610643440380101569448497403096527976655646537413793027830670659405138428944611975450731117236849581985504622999082910790276641758236628864474232113076295246345465149713741365267823751132420105353666568421032964330457553763852562447536135338994158770994146125168602942349127543051371068942881933966576325164373327288496396129202324081890047952479220631766373833672157665893985382128800567070281339867523313476735799336604549797996353315817831776852945877287612786771411353594851087710015817806565184698010981285431748168359118405585946016161372315937127241081429720334002695799586624798243012068242214897810610535217335211278618935269637336166071585174546019378736086651800609434737947407331012483788342255454339731152318947152154414582353202498161980506099036572712313209719987135032481663575840293470124604735999888314625942113675282755140713063294278848698231585626462177045582279016291609224454988811778158693120805288836534785639459875934785599155004427572500484478625674431159631937826738999473896878070355962962215449696424326881491078962877834566907104318694445655137304801636478504760393104134140606039375384289185439564888840403800286941293369280300190012746988673238137948651854045348363018458654517326289190254113676979829807338893172116833300546434833699947427484516336702982924242843856425470738517878347723630436240380022816697051355614943026743080783492501373705868478876929648723932910541699173904293059099104072173407126652228330354556668099135779648109306573025510906045032740599235200023967310479391748427490563350853231610908575372029857065059055317145917923593691808995591864428764862748500600348568112171143372206409577603289974406798421212241508355585677950290178352023467793337164714891130109583706944354100279952953399022891892535450466034008115446306959824582546421066633938470982606768317463469269058300056348131493046302498829896889314290765525110033947474967384869479971414435395683262486511797798050382194611118682495571864247933112617988598631926164778499279103648443516052161154835211569174417406554514463960600840168066272895368993204202480638236920458181643736522688367909522297612840612711038428850718659780986404161162658164619266347871304016279015634067145913114367320777242862115503105760417776671115735422196163166605723927531808299896130798149688774125923565199770450856281667785345605675738356608933856143746850902411323772714849275746606465518512187399155998813405301163289891191899645516263607400354465935949129361265425226088766478257745272811027519155549086057821981733405895567116121748097190295750034946910229338628662183195835938170823646292769919282833757132972845741551166913287404178550601783232502066125003243861144251150789727717768516374520061810538560571082729751257960147277413474667432655943951633149780337051309412889570326307540677237753960010342682671432689650185757141259254698167673886037881634121737288814062290883060483353444709956297115397190614728450643887078894372558307455498361513530231457641299496737083781716775463391518142413169436988336024153392739934809193250827124683826148935758499208157487913641486531542409905579916542855272063412279063855151212616052131525846035536508829935829449753657940930339830169762775720842442974285169504398452230974231250762954123461359607463392730901878686980514053822406336280984924053286395585899113291544404222739388881713016893109788506629086608317527639932515451534597704818986228785905989553512871435126565959638211988701012732050829404376649524794065933849232808674212719233852985037783458916672637621880890075520069385134901070747534375390601102331942686321482147531486574417549848715492161438164981262024565390077626619863581921591530743165163509089894537726419184021930902482382855908065579788222258665472245466117023464057316753395137934071127122691705107617011999967154904953851996087759677797355342493449070725122164246163066723074278167676600732096631440316019131307833566470770199440866558415661562376422477398341870958738930104130634166257471607234112719332343167140478979907730071224758088097624371058044115335755795299903668377449949400898143208026932431331913950513607837862289732526471349129956371914813706669723011805560127493436761551572014652709814311443675087933479386048763715431018961146135174157194584963583353930011351947503715165062342748597501308340162328556302960479724043551159221156595668976975806158350600725399361979921833027110669081924503150515014469038712115905786569353233768311535954707968878371189882838697821102340856565503073120191232486060316747482373973694960451619163548360695013001761827231532030126081618491225170333205489428563531286373530014845438126950219517809206543682092921590937030152435952337750565647638650525982749119771357012587439375784861750230159255191717902813065510549406693515838094314907154061677430754549146656841267500739423433594156294163684224074016607049517407865246123237467510213517443019126385080888483517232819380797385672743271815358921368060284274107663369958280678294506514256802579766826575888090502607705415666245675777051177091475915591947838078503994709396590387420205050970349546991907641372034021484965114934609769603657122966986684501192762727898745406731637833946435594493067449595325942531922037677081958215806575837305279496866854584721916403301207335635015621335572783939507439012276179682009833822666548672682717036127586763901927051597991421375402446051436600555729165580493890711551567055726522472019285042543283379914338340776454681834680259258400718324543605849906458649306445382846327858643860322065597099480123075772028823159829814361765998181140875989460989042572719231701003004196943508540701053033201194664052475827069467214918105988296741685950712446868115813447262743114535343603284034958016819771490640410999724628645763635164152691013004439883763708711902047395862442757922455209528321869919829806476961005752227614797780911461731055957023122327497068692594044694555458367300925388286506794531245877110847571625299897262361655412978220619982121327702455887641809390274225602662487586280617745442187374006525452437812121571465780266071357672672921147808902495957982779834526027380998048266437776563015453631211372495601303388980804290414786452298819207721452560492809738942785576138170226671787182252075720139592965162958275453526741506750976913870454563787922835688615604433089591054649940369951898394078464143528076563306041427984485089454628459680249967207354917393578055070988826124468084942112414922976146106450233080339188212257336332924874401788876197054057646926343848395427550814634741573303157762749678599293162523045188334760325959531770294928634188855664395331953756313185641207959865158875370333510708986612513296009979818981361543248113837394171780096002396010752054484958066262600660231814306169274297826797957831235533773105156008854019550511301946349644319136796935174192241076645179116422750818334787751535881961602689594491779772558248700635328424261840724401901267342006346161995004531227880142871507069546179496704450870862822074081234686697678886927440780221001448541692774306385349585319679896846575943970636928142734807021191358745887096440440052243772137671416539857634762119353280734280775389033933214499046529906212998663938234709646580213020968583819517819513720513885967869664241021391876036467073493859245474493515915334610696492988524867539714612597278015703978508195714636175441766052011848932564585921043858884425504317447245771992671134943569081273422720409834407406965492699531838337773422490679932046282695456430035724851029333430355566160937714058548342431380416397982523626530177362168561936236268337142786396170032027450087293273436388143399678387638601153148288983839272169727547533576815226924029535286921156751159602646492941464042370126305956938059453149975954585634457585881421645364454252821977673692890260868911879339844149192819658033806293794002261028822966500101194062122572657860506459049148230888653106424445418355482286414055098542668424037251478431469808250829691709614756067947641489716396436336185745142590834244067806978559467680864312210775397365227004454763735732551738877938870557294339026934430714124682306204611662208853912240991749459373369884051073065222871141199524089960586475976318259437651440966009651914038235872523951824412590908463485396057755825808030317698719787135554807344734478054472892872454346276379259018967740409411271645802564740060604015168897653907655510556553894491172578167890830878307268746107862646358174045885054299505986895379023577189321535323235744733195640317529125123021801235403889566331763365831284648881044261683283693617861844621629662970171177283072050202113981081882752493712437528292702672448800429376900546207277421836943218039823211534983327721773429589087087421334534816731767880670973642365200997561095602855615217951765409237315792155026112987943500438909644203072752177601339458643008550625583300525438020251062273482477273792953430746976248200568421536467239798363748509776337104944340981026269462081861371708008880654642717557840314022471731307475647207675879325384579341195988978656544764516615834866941590240053582155851325172854000397554467776611169533359271848292299752769464546663831965046142185519162125424472388744504285293851239207720255288351937018981361762494588016543611789362081480622872498089648985458837116720861451543246620200206266221658469521056674322762106527121953516505435345691968199852772393248625501136847487264504750582724656682416451603572815547593889379655662782233939920919973971439161976405998858331863555010026252193074974372729983398803628012354423540056882441758900344806949273277412723041287115213677804332973623057308973671197052427942251928456700232959299947214832214886259661617774808483647756189324596371382830846421908924013252134655493879859893651787156163128793651629885347174213541940232622634183156509760035278391472809494612899393739415941396976233531816229361102277740443461364226347578336944232631692447875650736058158667440356654978330268795132553411067875953510968418507124906941961066237816185056184704639801370933744057188039206753366838754267767129271653325909684429060775590210466699930138871371712168388730094144900696793157416673453963264058509243321225922688012324169941062657374481339568485053192538163794269780787164383760656782656162656725577921694688364597499092264152541124885688422653734221027132926053465368918198300619864697703898374463289916326033636454283248422744286227067688257407729550464344896803559034115306660996746107831239854031094359988733259083485069625599822026631479159837836836172068083249131511775648007103037166597719755827113855687017451837173863249615757976196255469034079895732838802342703671487713835533895002798784644031404289478996023044723952929709195468878029078974999128101655831455599776518446167967468319919617832716100106862524821074902555053872433974775214549582926203442198539669633538939002017672606372036995986958694671722935286552969266505008400607755413261561127640384896404793277808246834629938350019243369747512321994905779693348220965050785729156367906976561084615378948080279065244570487243398255301629612747931089005836704343294722601032858357907228032940790596801372098193088308454778684721254935238830639026039016087199403097036750270865619931570616040358305097112711586891392406676437705467357248946489518749475073940040342201754871227956734835098843129185353342054295711254278762579471725899476245542594070090593083746762851579879602411873005899033962816410333361016160512531950995310408592804376372785206812244336893841233591848234923117551557983427709937507997095038153332624454273863089201745748201804324115583308879149064543272494873470290054177971798309505946724874429960523963303318919631742236624605161054785871850790285527670977994950502015603000837706859058558486657986097453900450020131529400016440208925662746324850223866850653726026649702870188224587677336169542545547234712096097821646437911155768887018356256553864355637339641101309920127224255248764720577556772061553110496659367964765617864096084070753272856348122507247462919708598203317650087712439058804915607072330093634778729119437047936501690791569314932215864181997818788349137816579449231447577975340769461461295622593973215710025348462208952445635060721999715000824350624169936011487289298979252972510051446814703904244028376991714739575701158589064836984830190641175280380120486326926079370231667626077002864895703869869037949558181069028278732230862209713102071185959927796920500785020833525691426382758011278314026112735110763188670262925567123303725321758368604930243170797110977058799266414576931209793192020259713714534245088188106650246709512486683571238204297396361753979538737052294285334644456459961649701474250111545764880647703900670920863726780291932263786305623945397255588601936988870964529715543653539334217302469196424302811769449234741072830496521409197536372037092473841057282369961796216404536862441824458632641071954841345222898121888608441780574656122355411533114545691490044425022596403954821994883018641823074587874290754314066069110074242504521478762276635625170462002932926973998578610003048475614720247061015851175286923753149957014770032907155912871409630319388898808465595737551907837230351961991636849333835599521744211844060306130500196172678524341828190579613660244407409615268818458727877945545742157705786031990181750028598564786887817954498191716744645507836907490242794309763310877785361342439859687684573004145344131897278206158820004567065051345710745689574000568654569025732681454641920532370059366407944972166369222903605267924918480759868636598751834427733405259436678043398666035242859704575383381818400054765959178036272439888672034610330097992065998527177751087961187048287012888427133378810731791678655269201442215890761418093850127717798573355007976981169735194001433091341505023834490918907023874108497345751596434394927289180983072512411689864786909043032728605117678534523416921270359754838388981079180975480211072350436730151432506430782516055583302373748868334691696447274227443075646214727020959846171927811402491371469916227608482654998297838340456661078258479102306061985443423770124030720547159498277381301680488068184160659596577662932334120273116010153482159566167367565303078149128281080247667513353101768738330877077617408108273685335782457718333732119414255418532572763031899719830583438062758182049047738338924914810766613397676308521437790905601413367949235370135364100030951065739396273048025702488905923022061682260577038630960941519598296004855395138746137401463762805279792877496266583859739049462207096308246667831511047142775409345016519733437827531712826635622102213950576700219055497301036399392722695739442952550560294950152400564394485367012733777284391083145780244894611117837075321249995090497649205473617564323543098493667217822580482489427248580771724475631230981242357173957222528255835185040240425209241765502875423116337370657136707205465799138464786125464063853141120499000565506306669632727943778589465248007231866572068374442296256659420561000146131983952797448151273560343794655619490864867515143661301756460467879778286093213968667004249174476156417931032602893915684260349169299866378319730484206820171634385290668236994881668291160927056086322032185924674928462732207453959560070093637867572775931798470658140700242487260016200850021015558601688191708613363342117159471546284168500744152573298225322422354164830401448721649550799091916669557780985582848167985902417987109310595592162262186571507629714125410670820321271640356014894927102345336233601375354586735984291155628369537455416114947708253500379146432609709266089724846137336713585227286339913228681170148018496733733641358065105771409351282292987269773525329571803189928079979470454964903612938495297817160117501980752548100704952841618893439538828651330503654861660110202636534181123542152389279748635288899651911124031783666780068909453768505408930202853846453499932720793029504518181390881564503200678172447319882965659185484161249495201746938459768154407207646820364977759682017692600417081342115147743638865300955605173782302980242298003949898436130676897495184225141239090846140078660170413919426977328002052674568699862013183289499900282066626797047499655201925604139373793190215649479304764902254525326943412203516560753394505614671898950376196950547397317004659471926233528543437635271459329173601945625905281102651142649228014926961625048008959701790658565146968046262433056010077600659918063222259137164320547595789778032536992503116484161442362660186291296198064243245885489999392128500025942115458138373564338962772885578411226746164267652342109283083409735087967904749360948815468337308092148250664928323749750845237589599084188335800814260509529297600723339315807366918736754554224897688130649509735776876808119132060349692559387049773077039104257647134194145376824343849147167808568466535417086720428164699063402840709310068369186754524764926714326796010481270011032180103956401109091188200311678425772024858901086110226401344721164971275542843289574222525734068520326710130008842308139339023248035635792287287313348833268277922058079999465825449525549333537737022320933318747738798858383513880285757318013717714825049691336475633911285032575319400270358909989171233724832075974421610112056449672919673722902675271014330507682085591191686331195983699648683442550816127628600304534017260592817000868852645330109928870344683529905280088079577482746450599327602408943451288914805865175506633605549281898359195721214469122991111112041225326480957334990514546212133343690651161822669325550454930310361397626603478009308468088004099720902209550688870288694050119705276403006785885440623215305557723298681936831444426343752365501441731534287069039599690323073663642365522725235274460094756138466641753805249317985137691035126904942675136957115562800384379277742017334098278143083720995996280891726251335938584006902256879501341303083947893056474406263617604141573369905190675550207596354749890261347998819973786875917112156396352187237383011429504653658169738028086674465660147282433069941450981434022357719859513035458666163587518491836134995794451045148537398220512144910715816960018176532456506198394760485068128031101681349348675244001777376115497820040847173843951721044521434434977471882569374049718194025127669934466613814897587694333627705767242790563313602990804035329294791859727993353759341702697581876615981137294821153881993400186714959120887933710465895676862210528241105812868681209502707675244664446275512312633513885027043134740874775456822779386822662770499958109496910439733225922629759351223631704589503546217903574968831243535567299577055132161115045112963606903180030067644983328403982672647484396386074054348486596711339280985100821482391233394673438037071116254099283038240109521607642912788232629336404058081116968795014603201025788939646200859357433640641119168227839552541273013117901584250749291495890126552628102565589182356747941682400068056734836866640635768197255578598344289048351636370569194737652916042506671566113657648509798759357000530146284329801697300927888321446631112798967293682694126676122842444436908285253474840132804294903650264217309220312236935725933663394054863751008326053112970463387361254318195932712796132878146777484708983090971016318609282213435895951985245091488437482725562382989327854529883250761818114306561604049051124597801583204054098117166653370764850743246126202167614784264098518417279378956027025695733628845746458720494893018124196995327765830620551457032644638089389792848817999015084898605251295745736540612147476958205336212580696687406335060765779890743825671271409405482014481838553316944853325185805247175976674186115352042165427932699243582257174918039806698358629455857428125229245391892481838691322327191455574181135542629074248901517615393109152954229136926823484991241827362099072372368112064510335054113910265818708740044018365302060744766411347635693238424380751033131183400753996592999202156261740420788691282928812421265659578354754511638319263551646948236694820316090619034324155021289861806634294964974842904146816930762297729291243339288839854614261466557583776735527723698811299696706110801723108103977932689706724691482386996139762117067426589541600934265921961885180370385073253331682404636718676158016732491746901372830991015407117158283514977880489510342094708021445596247300043976753527022277766755151792810493059173036034339360277304689741358628474557008728210915299523459224656663965312070182832093439550313208821549436105714295676148993556603655325607412548890893785767065079726212726835792153303640263609715285937145568602009610189658519733563691509523534805146454204153792306828099013835133351030411968148619464933027098215944214948475418385171270456918228129107954897355084177680816651029127824844525801660531539623016773577975774678709039266399476065791451922369341176249852300187777245221810044240253168081766060715052554192885742343676248073214167350564566906672501215615748577432521038953851533720199485675434619070906305067162099301316258304979231035151552473147192231742293009355299967341474790724153655167969927854112292126079478628968326394114920511389129355311164310296402306679323753673526300441769147498931974569732360241952870529909760159392368631290288382073094045767872658615869627948847617838337228980093907584635382190295619302054947587633046183168718681274763273401340168510806442341347741869361751885107812673117828642185416208390183889833817382734694134361939178265616879548177645526046711831261886468539746208646419230220434650962995964405300947358974103652865274626606070914913447195783501689664456021204672978422906075616044425731031122193110991328263527719279704143906965848031828204082611302972141647758115827129608119691502255628750961143896420826921776253571508280814104799006400955763707615133999583491093271995586446981194216445280307283859469706508334870120909420545598312070747582429546926392905974182424989476076950914795201912538109261647178262486287362623749691293613446928897895419058633680325524265222764920660294198451765819599669160788678332037407825501165808243666521373792887603441443116759212952616883732023632897118732135836218745104230283542004858363884444576106795542024830375706812798132960629297485441550787744114363689632413958274412949191290528929077489040059849341750182688197902378081909403183117674943765919752043584402142053848754562768365235153479303652589718805216926499879222506614804174494306458076719650782917481428561968481284120706945349817896613762539976485564063699862991781978488401498697244581062128355728071045400390692605712982655356396927275968895475568799389066328527425375716261824341108768093106462700791773101995418978291468426706483123663545102704696342842677834515649735237967737966846774370231895623743987462811799342016950345122483001433908424563559724018775079901699582410101506247522683169823457633533486980024044608315158025782959002561096109233897484626385517871936265566850787866891034572379366917947974007588889545714550395240447323909989129149857927192041654961979191264968180829386039143733413202597982848643858115756850659697585516050773564613072317578012043422577486874993400387764856153887388170839203075197857590794553137863499152596067118560118811296127871800023424297251716785057244031335135644355725706760307000109497794357790939707140631575193916914565729054833454494183261508170668461110877082661265765159171916974454039153497375585984422905009216706328678336867768856087472146142720296893315524028058299685434227589447432070996936855936606985983367049981024218926007306083749953974555798119968750312564542782806866541296501113435913727129845031841993840762385394305186723507525202515900311611500909133976196497872266789607969111144453140232279642354730288791368435421645725052203387859350271072187970140748843346047705468412432130971940779929688137812757045533890407886333831213648612433010021909744818154183063485507975475481462291815632299961855559323128396151885683741995670954521332119651744732458496090326013383669888103612226434671948122300078516134995858719876877729447786857395643329322205036448334719041897636097499180567669422143749209922122841234599689969956497230519615975826220058566456616294650296507218434462042858268904094653985397832595792011178776557083183061043143410823884385419868769625187680476220221285097213978302621058700544661146857508022761659310037643386945501808665099408458625638790411093086600834763608994347674006895935982709122904986091037753085163759059767845807176867017611500399041120044884812401731306390517714850638033677080623333938290892221325588514470654457614933860790775315098683948364389635551732868491448474340925674330163630566008191599063909273066378260283629515609319933668213556685519772246027005814405542113813597827583103073662079378891814103439879462144192786098809058264075871046528827259511954409930094718359470696922280979159969180264783921338773300742735539186842871112703756536669792075555096390476092439665758694196721841785686196274225739312637927242930828362539463565251005933809819840778532893641407419995374925327705815130753313698818169398226396472698736594680542538032225892370112109440805970589129920912625768625857138689948099931617203000533157861391784179217954989268177242306622395133620214281198160466683461126420307921665410104584434811902748328836592123721402765728709923911881368468601512303508717911939519224410107221155675213153213168888257422596292507413642419508455296502569183914569005520493645244805425454353277517610465165589498151282084173281321842370927536413394025330182414018129178477274245870265141943962046559588320937164638221569402612859562885384152477333712820207573505684748650113458884144902381496384674831114360538827629673290470222973055752449332700363282249191126259753540776507175068153956674557163609405928319363400137804498457136186696794696346862858331565642623379542820951112080950449879798007070813165100764921333591557763801067921289306723065980741801721118921673911467274623915548044561562269313247961354773618313013128505514698208749898345919596862243271276679305185247754818504347714087691118526262709983840520564968606102200634546603604406807526821916628293132538157138665597373827201166520953732007671357060696056125211156691818996087301516050768833001664658562479373437852459020265974155061551249755123891691844954524017700428824702550210146141556673854086917638997811810617372822981755338989445008332165418696159185816221824709287103658608206563789491327480874168615387657625758663893087936901801922132396823318919861622754127293865483108535137911809973767091255292239896615103686329422664796521393297480852210524950768197645773109662231058734039706907399990204728758606971255310572970585348430780009495987458388148932669570733261357261626049396964908357039177871817610170979752083734239692144599952420588740535303264665425845537828077588475994692238945115061894798716339102748984154330772971875112835999411816908579337465981807526750004017677572276361443627037485605210504514220726346353084865958441696621017775501585412086102788067308780567333575978726229290126676032072431216497194324813269460011591377301305810899794066780528007942419975274673775642664303328908585049393066529551885360668440297856340518127128094430167976112340306304481833511436580384108994880435845930872088728265372045399802603273750566547508264412612214561934453216126414067549748768938891660774346271361112181937848710734774237613463419065830432625514941728867136415641343383341996578180399244138296786865924975348877131042440797674183604255049038341012845253442740015436838432864996986699494217182698503117886093507995365578669352694840495811487959841707806812993662128631978412370649026565100910211420332494046629698213555077663135849418654961135771940071820338567366437831980661607358184059814118676408734330120564580031410288188405279859254820106862711624389852807228101209638570272857201420892714280980732843704838169389174785439684903419861578812352446379794958506782317604210189660028403055107868583385239635460530986246247933794923516332606555575161893814785756832716606183541397313665284025312105058322105148095789937415157070853592297578294472643022731390283265979042683326040765807787647853363936901721976237408868566532259898462797123098532715865110731982178676512159800288416690583758529266880790414918630754551400993680768920784441250456473494518750283277055237214287225760177984718594085221068859430218047076828338992900382716043640116434701372296943898680896657789448231235213645264576398788409309550074936260633881312029583427714386858728704886498155775157780351482730666227191665842876305547470307585347703635508047427726978145439642825169794537208245248910064955160296122674179027310133268610364714424878056446564285363390325795028842085608165235281693744328914496103137066018236108459941728024695793892043225607450570337554734255564181144391582608591218359375693117071619654508218170093341490277281092947298028101343985815231037901423645239759782031420560415111999706643505183384969034689126980709614576849820675224568829875378885637807157537694209781950878158621268702455148858739296365899328367253131877335907587576361384082327776289543623774999267528907962949823281992482064108036620055339135674687659619847936114111072479894233348953441459931037749206664780683929364712894474822071730077550108217298877394962270437405250657265956764367184148972007417190548874975018425860223383033512868230047478612112578200585987091045724041721263581499112324867491285583336722146657720331540827115184244502901057808847790916571540556112075456741605028466241806343910409404351789530627224851273032508687797927255006182637216021110225732996091276561413843057105644751246493616975086106879284152704468231944423625460778182872206202394979451827432115503697051431214876323757554020758143558151404834975873810113209391263064264550960895129887657106219721715917057748901016116802000089433913784695604335516699098939393083085199620779676264784427907283943946552632373177762852314475376701759544264247037395380964278299342174751499793927334472204259556153202037537228843397001546333940390999167752232145202986850170676387089541231059409638659452019100847716343257012583571771339673775401198458105599517203906396951399871930784783878114196552243577214532833461319935836787719195547775349189598450405295676928467622097822404809282394034031156813557011141237548779390233853565137091023161604958843220529465765070491586753940062326124802879266647218205024371441737652224703323563047415205155808316775155566254465429440694492958854842889799566751874480481394055827226369691904605811592700564002645620195442964730822387704231945893569831318139727890334767189460279557791861870500973610927815807329102603151330240247296453248164895142200123488927862721563254574680222055116389077312438087671471393093248519405708142784059367596727776380396482354876156192098706451112404000118888968141129810390961901826691060095509881803415604895006550892892609952426044762714117640435534602783842057726932737284234730657761773108418530956464201883070809753021489900512930097005021479427656677884906023341532286448736307598251470624243690717012255210257650246655446374535807154507630782698318464761975443585432945564761834594075659437948315411052652320232511558893875031035352571488614480821368355935138160747106262504520842509626608275155906111363440467469483281396677833170331737781068864787018492274987358429430199567239181356811986478206001875902309326563124662354047108722863533250893299523020376407613393506036751744433932720306086558942916359176211969817480067166045696607463311999622508566716893275997095879244852957407201635554104756724318094468552014941836481814715982981411292846411653607628260672606416042970933274554996704012061807684463984435751844005154284964544104189485309770518382086410042755530614497266770957634191209573819959965082796660443780458348985544024907052776347498615974398561329635630188091560254155162015944692108178212448969324308754721170962765810975616195528784320956817186998466572505339458299508444093836014681056117496848193194506666067044044896666315433057269923690287353853386570216462158434849336627762445085217415378670972933384772604500564531951951103656095932761626077494260962888555844689168244737515520147496470513607113135304401149160943811819515748189642833829430040532545296790883310628040227178301038228842350784121848422611181391845119929756651615212061874960593337989913455713988268709253304430727966273042611158958425542774255801804718570952951244234765079000104587047928303725816319711549330656779778038333591364257790104379424040690225789037318395327136032484815492440187658984068132479723895121202815959366979221623645299149415576159287464542021006320130720939758151426078889869737572612861908324641223553312600576223168661855288123689063340675294458371326323996266189837697159124431544327983836803106165090660843142170568030972917595243833496327018294147058059551184180467444737369396380682544207874088340192072523427880876037065490870060845263548004981627431017654796413080768886691177006609279902907809267464148053932746821218470674195290874979087138633874657938081678721795855439005670500753584327895019834200337217902892569861827730529787449917607155202757939131779050155424625021479446537501850346633915385517157322467000116208734924739730452847075130329517280358582814514293089838866199630037046192075975141848404995163081967676519204395785213226759075491458654683887276462860817609081426062472269074633590588795627666734507911188637467943747433577619546029141693985750235343463522984180058956075284431012316937015763150048781396273756426173238445372480186113368391878871292047729105104936281818325173751839044646621862627325356529691992075573577816178151198984251995921356780274605833816647775327527649837528322516679296375985691894289861247185721550878124427779337381042342865056645179169323211780321299751586522566218779190519694789665517002696055623442902438695427455685441486942780412368571365632975791812732341514087301565014388092640398244502465106393004886666871720404551124780605193618895603816277042466256765251517285306522629824613096027308367937383751208913721666450727977928872630252176508231463474389306299603841380815552801658880184612027563587440801672676150674021395292260760758989593078346500539541402764653418054783825054351446400986289587022722843134476543156431941292448274798033729841221987805905899410668609363369646444206719309241180788260215821444758021088981306454065918870833930986462042608234126004570368752019146455851961021246629686373585933051667144302714624485839199111261413942911274144204021528918029476316041305714264250276878135333176829449365026326045093144836076794361000045731073443757739670548190833472945641918814665485757838493216065250615060134055974083195222321218183559845163378938363878642778173395667305769546831050258013867649685767783795693915834889472754846411937662636604161638148981246204187193458958826784660172939951570587935640665672504628421224130977413154732004155296740964486415605270021858255779716866781996371368062321277324654663331181643394168722956494166844785539795178236926047334612440787118317905425960191570157777359564099042443185669706298603238836494735853072574161324223724555003627918873682667673380819474733794062153865325699171140432515268895874659260379929192888040657779797155301792297996151750972877687961939373274328911155594560174566435195517175032074201886353913413518400507032885054201183027689733299673743539354445656669202474074965378434145119203934451889613242214211063675836085185040366532865724142294677556012602551582447056589990454252585153450591987602199403714430090427065924693995049527355183483519258126468036591826917423440495845490658082822296363513585896809156669089219326668505846924454130983529905053704260932263992397003106316483060976312421712885887651053071391077303084674100855777974611070022203087978241579425599464443895578610512905349998418062278413994915581291852710692931917988081291388944963004171754673444391340033752471225677986539918698270605930081805675363017829907912493252504405339059634084868800447610704354748652739318707305588043760326355569542329152825663445670932131489862991973237941573681721997866716150299634411910316173256540881724088096200630159291811034266449599268824899200622759881059600490653314797561486735439988093131857942156670324212550241804217517751623801716478205194765285720163062335316096592319873985993953858654618062396181210169058145198318823727712745368857546047780591075072352499007494518923589901558989571792984057634961833677547784101503266180944307904161515256740906015408555827103310459781753629434563662697117655450481948539043018806823706876522450980697293279847862203802591737142814864509597661326569562692556852205171669623457855785464962073401980792767778436799893649882133914341108922398436519128011594971206734854040560044885865290319025777228193553708303088397426289651985973804629582185953883476621297276915754881741885345565247026889137665467746291435545016518108815488185374105575604993573487863796030302414235825638090202864778391240435059501518746101202202781223725945672336171469112631872483796379171013394347160554787320549892789289537849210887175495179479888961126093865736159028207618332749232648538792529391276567884736687125551327369370114912245449242312143058351513007444184561902647944410261189674028034649131829064828794055770995787683118577338217975292205454402773137732806865244010411170566162856848558505016705069749409344713382590629061481401441732140589893707213561546095875345918211610567479654894516822742334282553709648211101516796687433609972619501225777909928274686929424627612082237585363493116804391518729212954415752209074625023366845911195119038839528578183091530208266169919796323870041082388195263679457274394927678544303501993993635665592034282997078002008081751090645772257986532191053533540354646859932953187245712561173970691863172700621505867405325257685201901684125417229823771209894116867967303868166388678531395466455248599874899364317155578167408756574248168543886049586188142775285406531115619461313546148097862832217702904907788692236206762171553351986832021862849601146816166826420670575129197071851926961425589483774423112850291195769621843193623556997469183974096337788824905599316728484772391198071136147456220865634443456704657434152746430940955386782421621954422719415601252828733584612266934438830055494136233931560128629714332861535855136786656021269163122839830075305716182131414041069823851932632071369617845989295091564548886119434626015273649227196021318726520146631403697549066897803303195701810438249732956961966752673874610470393497893930964626415004944975257017963696387726934200885923199256692183069437796009055141946115081071799131228373815712960568728780387346110456926779471829794777848354079307761243670498425303160504998001614913771343985091988425964331979002723030160934810906553017524688784072110464928566079317732306291204559135930385808048747474535570068114187690463635084200378745286789199306773674781783906768109075122656079244069101674075760415858135128131249444277858958277171154459140157435393227097609184578312026441636334173927585738325986659243163233119537995611590617771141241189150465138860973532684402391344733726277594726735387922963560957171660892261467527155051416697032845585195657097770032326618963722492292192935164763394069537983819376285228792735403190709514923009782897142423365196373441882386853885404219307306239906524951983080201829796117589916402586649776850801674648797730149656543613826462719672637436687336926004764942122488950582077854470234266106887557953309732696492693945599044896490184352625234359807154979465671411136940758919568073980651815815829064055401288444066181720146391207207177092161916753342660653027113605985969604222235056816369668702089839805077053112840258535547129842105328289888230970445995184963124896860782732427128452175778031684038509510583127782930264811067636450963730286762772288448631720014225532200624123849444025664911263249009656403778174013658282475953284710763513823596683053232118887234186314261696200815347882313976488961450967482868195562236823332597357401652166109633283035796918794112768045064667006827706894789554554804843369045992224060806557561299628797809388618766848864446564302077071097292121225731240276240593140124179479045908713976427883372783869654847316118145018529833734687295414835669316639560505662172556630604050130407554063313751629194391949361431318206527653852882785326868535579799337313475091609511213991616144987403760345163902733672368950504678965328136374649966522744197496509105848360006301407954660703741464464193348885359452479098818132836619886228403380929443909695516301376552863518556177019351113554028513302927377632521472370656902771445968998198003270026925699749719738389545256873260388891801927136313365207262902300972457143605851919481823591258151489329772133085490142573076743054205598246997450988382761177129102484571088825537830509758044930590405124521993670677419476365241407761313087677214705401464657618495610010951895714427908690941371525208740467565125101603408022824881758478931764259230570305869044419909616463134301698458675201139974736210101808052157762698830818135286513387770169537758064673377010377918758146211654800210601301085337449583890813779532158390721474888577439218796902102650428547791532511888386966670950457952147709069052734494218432644469210149641388050995913235582848130637739080332684302231433400617496706748736048132140381452271004387041905784001295491553047993698270692252020054939456662634585919020062932615759718549047406834308404031544966383752368054071151208346735005733687954349864962498086745555621375133023023669142435821747916534406390883902714751820822964314849796622229855252523978658285704348873244573665313268098922972688730474370108238868629306039268058608079827856112639160295356262720247168870241857528784888434141300055573890928492460762963206331152625921634632224870573346835763035975297634564714278048088384854276646307274292507803345836453841970564305253965202643553103281353734108559311490043288590648650805342876842498736160702148071008152920997880752554972649701977817413032229730002118012492956224283663654329695249121614162073483606112785657886967733344356443473364334050263160001386176201797831641252606852823137357782496793402883976585253708053596291118120217682439948459579454585725771740930493903294896517491393773016720410754487617112496894566252751475547742685049192806613734937984162789046148413010781476742334613559667202719928086391269855071745284239897241783504488480567333114355428700558531612440808588792985502957855752683917521925084351579949789180794695735418990474606598579786936974576879740866142063388559439719245645896802818781374857494344438576372326863002359772179996817113596840289966925258272553529022910951709840551335104959684246777349570468578369775631265643674150108746747069745043161415481274407823388791072676819509203906270707555232747374683505853198491452870086399054348647950758774832041067426711496254249852230988934742706119451121296376393824487729523467503169720993262206038396830795169204447183705188100792659460378768589147201872088732483083327641524624268548618184021265423163710913046146906510284601240707162060156573608465263387943866225893830881525546444708726673068512544960324043142708010736962843650863423611860048823068276101458120385020255983971463665339515119869387702739629524001203423539617236670476997477266951971222905822494716772439716478645660179702821469234586547791988334059309219144073266201186743029222542806880804545742551089749889939598759864754635889772530628735410308467593359225514864644045919620193347992932329378001598682112617892049949777111351784610715771707781608951498801069449783662231605062563541010509472180095138115851492591381590035291185873120261796103809250957694871805172730227470521666179024825934971015292420815755275653414394157777898245134553012564400943254246191356083101970222085292207994768752408090699747080944690731185278028655874520360095771315070452647219326540258616457529635376410973045721993853136176553664431242372711365536675242628369961406478522825929598053767293508828751154841769474573633684716428389654833886912921913222036484466108051101349170530288607809413229342520019071662563024099674233813546166118539486527245779514750549769996272698592994252199306480365346369171348681904104328756780752891118364950035069778269954342882361494434263555663569883924051911790289790752652230600024172630492113409461703207197643873942862166832738875980918277139643052077114005007399660758894568625790235770139700174882379925257246574719374012294535036364628924213590212160731938373831785788108614294636068853884914186303743055089711753461790453511511591540309231308070355323656605319799230143528032880632789183957595355057289722010961063650475154769261514880434618631680423825500838856097778554751842854853136009233467362838177956446664073867235752109918868811523832111024154178622387815944932786382737392817689551667238442970827026628928681397335106773180576138516064190070922633227366288123441626179374302074900738215842182726982578709437047990785196102153101799978426058323532235612044370422018275130819364131198577406241446949333754701075298954021717222733675282355176621661666629017079616741009321268053712546833777328011721640233686891363631051449918973969177663018902297760718450675087753099604056976497401628951328628045906505325753839565514460374256480761533846102740282708830722782703194741046816866254273330684591665185736753473024371210870528428569930585705872920717179705559332453771647762474586505738795515005561785998669262916655636313265721972914338592824374668253718947019271861803810114911090372343721386043523544510623496105288575221322514516263648353871640867238062375166979199970503216261603319498697758823635802186319602906947961124219019205499170353335096137055321958218187875930416164624173998148760300506389930982441475732128905969444610998801121321163714936252951567890629806292713996659351464951088569999829034636446843501357918755145602710387030610208551422886944529987076422327733896421863953931595583837380456792331713731203619592116882081404751967137227927026419513424946202660841905661311057563711889092839060261228356703178146961323371519957416168870252447485748040571195390248341907893998026083461392494618195503932247374129582957148094844376766109445565464176143075290355517424083340127589538563766333974849606205727189454703808875402149245512127940044057986310499821788309487497677279093541520769170484621881909364218040677719658398201649095114234938884439219413574321181320446835267542586539504917157189321982453075867257245369580979223432872371382875219684475575168769481875967831094576938529667259393510098394167954425527524065880421207286696806580862714970140160088794935079683326513583714559134332061336592404432953485955664653810467491119047878551017280555042767966939652325425115875829797437666323304274424775610498377905589310045419720158077168221620556790805871228762883371771129361264780914828317395558790145340036294098103142836537089437580829365612510911811709686299118340497046691049051202939313729790489686845629213063093255593540823113401619464422474730279705505383878863001486931350392319082812562740314917865086455832967173117801201438339383693247635907666336021451953399684794905333709746936960418967256291292412322200994016953630617655317177252249740727043374007933148641740954379615760444693634657575007473649591281415629233384669078495181168321385360253588642132837856801234875122544176216305605221646163686657726511020487300907348641385522023041038866338532434862769727890021194935353742913796590105951473313015607086058701768560190269038320402874428557341287984748333274755732320348272477327298468090722880612740221380952702295014352929706604077099879401326322687201719613203780225290830202982822263638268320622415918925571358342140304033834378390678336356991156415880733764298878312020946991204775762123079694998873999716155119677793763879261137397169276043563560757911975742442525196081115258703686731817253543535386597878627975712734659710762816141087529934776936936153850015116692597960050085775316207821774608767920883795527408539796270084652338712050124685378715571037247571442297599307185800431456084071589819382957068389030407363589086262089625774200729543698843908374004225034065254080819741424317295064566663601440955158391260554289109148865034074020669385660199135787330153497823602715009492136178444735748154035413549125046157436127513398910917238314387851412083136091693911568972370809684575676892530867546408261139700848992774341901566769671170287765434018405564949478021127605222013785243882784627033965770926871468218248355281860495235680661522521419985714392871714481108070346722429274284724280646068480539988648329570199879440197939540962590247553711205289203886481602451419479073312475208500733217552192444466615829369472851022001595962632990133680381547117832061775149685178748837414616877267022606804782419672426619242230607872485449967244486426429130872764844129392859330172889331113004760183314796232356835595097443641425591767890301638240972349799066764273367289955826603781992002574378556669420244196517545784006573028187415948277020050794156404004521115113666769150180884393968516005899395350947757838860216540552859286262920118763669238212701733992277866336306251110679605298771605736105297967024614254410432567867942554108904580988677573896081144155613039042969758877839230075530489081324152984524534744711287401454950649506005966616382396776503249503198802989042579770950775978335116640458909377969639235603427491510597768119051644718921407312456160165810172301041155703609188381737106463791143521819974019308105923472610680651518676398748786290550935979702325131338739703662961598148240048212024224034374178800193758600594566020792120752462281243036597524585353225728668948725694754320249343164143258255574242997675227634752751181473137338046309351099914752523380624580896752478061492409062584794474065803762600742308999625625572610549920466492265211316954243448188705866662126492739403374652676543674063130916020773558912078901850268558048838425547541761669190042910963018237124012947141799898746825424880686324928335860831457696440519167561530359413699238442728956966067872905968785148140340117702443069240887092918437335656729682164229474829477234499774005373168387599267314797118779202655174497754831731307832739663738541958163152907896168463872608723970696188889328988635923953097159974936612609972504086251248184652270331856946083606411202814336900736763409491429500654881456602861695935925311965313259484585749535778880184718732595093530564906805372493186148266058414677618087604863009467370875674065959718760256750139441328201854052673877678622597202159926412536775359442078926421477064506055001034246882042731841946420273658782601520809423158005459553918880918890099461256888999186524534972660651958154698385388647687290149880065617580041898545236476779442137760355741201928564975535318164121979321629011580476317744963722647900597726729906684273775775245645600461615704382460545431802344378241832478734056752275989960506320317433649356832642801087754749103843088963313695322074654355599973194275825324973318814249653637380191596676283365969634324295730946094645696466630835609918689708233274663878123166384277715391028093032130947699546261157993041737551985649233493000542822662745079826267548119860680567479749464863208304644465091481476035715746369495958009508933570426539483054694818360529835691826783258315780385316849349359655155782661864996924861661151682218076572480166591737852748329776436007059877141790122616865957666552521045808277103800412176551927466351775215982389028260163456704244548719228124952924411526443196496920624032238633256251659117599814450103846925805473917024966598668997711315927266453202578376944573134013835386448849289504664980775598270053991081643065539914362484885189747454015158596692414584330684393321478713079898528150675059418480719947974029121270028318434757231972353447138447377659515069443344742270819316715982838852121292127040404247899288205265827392176567425589097693247814380558736587811633229997690229659710039679568451332235774613939986482753698817701551836816187442061792494461594231937851788222195309778148221568442331663929231882028537321411257940304599795834947890534198380809139445998437873313794725228051866032373975727539364330610098592662330057322905195125098812085910580511936336153942150265013899494775924810094391933325707788919817849461287979469925718323044238495668560396597379001684476863280529877213532843820211801636759256681176369420908787568948538866180634032163271433314029551440931574460525742145922323917199913062814599041372522930540223706879053098930248500787709090511592186913530796551289405948346482634615895312832648806190300882181205255407399501693607893356194057885051922675290169473214741000661103878535616779232581576991773554198718106426451177604976030864271000733767075592878125311038452043452272635956431793593898095147432248371415241385867607801216104437935250338294667467439981097718864479642249145041489630038166694061661898060141631757562324676334662222490673586988346464635603173645634113083011357120447127806656328453420421278309577675433191748739778416468657254895354378888830421935243880872845976358669251576837722786727299926402297467660533836703146899665415394751847179949855583508516868942948313563916904155193934519285271216233891626305449800682478969381078832305296353739753629523276092620998783072383290655774964198994720761465963898322824977568393356096938382654793808199951689102948547084506340609659836519103007078307201596364830630191536017059334173778947867431100848139482252153115495802687706740553220323321139638544306380008516510115751145337190213053568891762659244284706454702641679693608100876948805936348337725992298331350362876073142762803950181524007498511113655341444127566326575431200357526806479736362737924000303516168329792220725781958084599796121585055250818468603243354509145053332791433208211402007992760639456460438925831125254968203226098559209577186948988693311026116709865930941860624529020329367625768168611367887143186583157554665475719688280104359427370743564112995091498081656895295435477921353668869331151582697026682463811873618004746983109944116132852293488990679220043659691670374518604651644268557184893910197264040218080524656829742084354621254676014412386470405675827780588957268202330739962349927128858487065912918388123332641684106028473758983184554279264902549376020078255398077853906097192035709435773951771522989838687793719590614376846639851473225467499700427471787614334981179252526062277439569431346119586254263606306550163529971530916570528707827086746304603325602802687823663665967849994435391893194968719502676388198602156408024982985808569383560827979955333045174554882385768059906462982772975628095238873841246973098805355420003550660847380855763844948113340459693136841897076423904305025868658105519578085219976254930363859207703873207954286323214327330936647097427426685439970975864278656238671344181973094818036716928296434436256480563046751950222108560074254197982007049663581511855047336028791717454330173841330472709422988571262469446474373144529918281499892479430640818133271859556607540119878859552503276353649976992704281930765456631042868431852868328690134542332178450467762748007431922920072781940421485966542652001855231170809340495621648439081791106455830297536202862514819287864084565568221158942484449064226276148602560222580299947482572983302137343263481981566654423727943066789290778330222273046164415951362617242766757483622700281243510605588524198745074424505439720236001135579157445505597253086734384233693400096983589926700459213556516135539740417151500968393135048625027900761314978242747321757891848805870520154641794389440005411083444952956502195069748961356573641893787679206071037846526272652744261135398507975813309164721678966076542973661574428865355195312122819024272149422938579772451110679402630539075616723443143818419095528365214293401135302782191538527986331022624361263834945796732246493855200882584612140769861751481229432069573299254472248821920075133527552882265549280548436768304775592354368851667435622891746226737719996896962669321491929885408327598276574346561967721473204164895385239732774240400804324993631065252211220990933369674251003661165722707906068922874086262737725303261173033825674074340704469790504538250875157260297656012497440899287295921055053534882957676575647359779742144058464338534091072896062700559103591182815130125257649543498194088821325592511189805236669495649052241948967720562060982437194175488121034752587300938558868285119275729919777528597426408100818664662360757343904260269751642218079110551449927422588474836098793720751586276776218308331053602684642211690134473968004773080434471153740681097940707854643924552629374908435093821439263811285159290053918597007254840565161020878681291051565850852155945726097138035538729514746401878198767668409408178956518604801884603188495597501412189564236927247261543781674869332611204258006051759177571320064234356884156078979622769036076749454358834400410588086999839039456714465528213693334089383477512426612879228883880314152618828002720552914702654529646815023038222907067068332654879272151923541623414551635943598357793210914911610674222765823976520576732347499716610982518361074874307848733402712213932637248958438907846167784745392925837135845079486276745382788234271748068203594027170112125821241660861701996231203614950186639099731282931709345742271227277476052026976495275311019819332851773215212750824661357292699616314657653105997742152614321035627224099227653750253142138254791694367659470334276261819051206088499249871731569710498171058330473476194519764368518200278917679694335751266365182222880235524316176284964568586723408220456483940090539218041615683155847522937632128017959497059384763424848048872275866734741883093643597051831225783494243038671441875653369003254757358830433095704090148751270202284355424332321694965048082107295197383026732154348899031821930290925286078427179401262828491848471285304714611410363959112751323533114011331908167571387628237852288625214574316450313537675004233786511066665289262084548803255978036876682998087690718287024664280863534906723591995000480051494889238577232766438719688110674008844344091096303450127963606685799209573081956826935699802850482606490314361579675731266510491364549939997000812542499066455160810812838871623014599055360538303605188111060176548785447038509835663569268191707325352496115831400641755336828276895957466407855156697109701717524086320559339698056819142415548078747382031652953147162764915154821695732373844174997883667313585576156667134259596324850738610380268451692677697181504355466870611518729383374840086583886447870989880368286471668263866670646910056635942437446410722271034290491879510378732662338543705474444262464013957918867308743600300539825933234221361775496754009531967781861702271844201156544331175489873415895859169652537844256492777818897497905102790699384887405745425251898297230071517975599052540098942902996090210408624239097767480946685032982438734210166945538426717495001561664457740200499910561407397582642808056900535090620607920416414243338729550321098677646786825442759786082040130725613195548850053496946730296385646053692804701702987585827530066629309389324790042921786807036738086795018328777270231130796537173523336242469992540897397222906474161239718178452322488790106654915008667824531143705826252138766078054812598685216003313775620950213914888680063425778031179220735202211782095741651890665337810860887252591568328215661729261337048563367485286828426155729436283737251651591125621551957957658838108692730366534509304675334033368956405981598864122826785151111743608825122101104424799399103112178377852610706367040186348273052510930743763830003992977578568409149796571035437802643176368764855130276430814799846102549497985293944782581625818289836613663574110685143570618848831160537496783498020006386757080200835501889497680404376581491943267276779370995587752365226620971019478031565943637412504440274181548922815362522161799538656275779086005492485763078899145611568934011702803451411968404447472901343283076276467133617471320825134651730589003211393625168272497722294636259826332692869691693254358934614802294747230518149816716652711913275218385391509253785202820036549953433441697409091750606833512346117035357556423956391224458108625918404323857009367337623431061759568305857586701308394193450250263061583078177146420070522345424508086108077366035905363307934870176875787630973849707204535913960578070331738960754415889824448551945638568312118698483732812741366194049553604418639236679475100706338926413355924429871177811129132083866556494478030182328867537697724966317699060808750894601377626608783034704398574129722727664165119034769296985419021213554292791083988284970241726759844517015574021641719609902241139926206068353923567129590417621830818146593457012885741487669773552721055056046919417229045324608860813483148542725506717396437425731156415779956776329766411074810435787366511144294318543565135990113664340572194543242444996945771917738876148980436992713572523272424668654918907670577032178229637048443068650745562899316833198226249547783412870803116976129853865112388070768495552046821513133234570245066973296051912450243737649381335782095253411505520119152113856900482045445636714932362630621058459085855099418384595166761909063783493440903619024675441312376024684915661141129501885916831092018406894079631036167602036493074522294259987546308216765231292369506922037647040665747122134471317884540799824548338682252935732981771870023564441167471150083532147991974542291855408691070313062025184286140347383848363420043091609185155857800930497375226269631899104925725633226796192066777531923250814508859294286549297357211303045501432004727051498434398232227952397538079758120992625625854559646094297143347585008996961507733845778767268509799796951015513514377734229568677983821038672939542370800486112964674854646388992406477145003722692106830601843968252123449969233695875317017069973398853107678744593270739331643506373929267499179856691784835867351174321069878929356023444044957976796134424391921880752599065477318476071667519349102972184841600605423792240057307871584606775531543424766195564933411372975758478093325305470952967007502698025872650342947332864387714021661066151486978462886257426036606484635349584121045933192375112049327080321795583901393528027966507190084203766121501404845058443766744999084608439582465981989716577304088237156591534020478189040537552652958609923628882039894474484276583186730645110591144645294795993579950970952172860327746260889055055033368507770065794136746093118595886090313139392469465640722412238637711555236275984814053719861007647297324587048622312043291840577563415944331966429215183756657402831829759545416719199406166002850907580257589154481598620972212446019870641472352161085059185664310204147540232280156642534473377929902880298151215625703849805513690489653850751376318127653617960650453432208552291816230803500174576869826070391607233459312804112219528351386620687550936140533396784126626997374890984424452493917381770820550868814094093396114034829713572367675209117680994458474150848772378866523930051432590820919333770538535201886364334718830599313875203698640449973727215770098978865358521013767559674181420673613186794416633958013702208284604142333102130621198414264536051254220624060276086137818879426853639105039559630304730054893881711091509120275020370488753853836834450037370855396014948713702410632968028078490438806077663319709638249727955983334289658482890807928102200899116595573388905977527349046030379143750065200354421925648390625380211803975046117901033088220724223699010710584729083542825928023721306364523703219899089603235530065708981912556547943498290451798086137597714026134647629737250513809807386406551090101325771861765076020110155047606354913143653065031571119715016741893435066937497645108239206750328506541663700980629417815206656938660314616641003193106687962394688294390533440370285450332403708379999936661135776414143680687698222047632632776864239036642451055730858028227313807398843730192820153180917697054135070382801467733249689940349446693269437475354423109132634941182083421291425030154219863816005573089544273235540451843125492540711396258204216705891942559444931638622199128976574846956441706221176182042265405236091866630167188147855164118432301291732009608692609373307023079887127510252874076323863405181008159976904227067407921318538877959454374870263217375362566635447350596262002075047833718832531824709142111726193875070687504324624932452074534028438963161351118039313448559810428002635759195896035190453094240771411499530646712286482721464609109946059409472070186866948081793385877062039665604106129291308891434648761585670194702407321100014680582270029093545228115509977609107617102261738126434748799266861650537727203999070766774551547537874641336257606490992193933524736015058429822378745907338905470523506874897252105659195369356889860478812635023960645418109481044667849221684113626248873634916781123815040010372010711868655679155645389416209418405248418983606068446207915251761135138648042996130475637972325169529612962309465197433037204076003839821710180565896009873924836090335913567476040191359758041576841406619684581388643502824035879194606121595308231168986790156466316119733291948504585024712896371101717412812702938862704070391535800587018646933335488815628646181494436963536130187708299626867301215993184553641987134246044518398054455669847826283814827649458855856797443151675469980230867715144718675116692920931433701827656413205611148335701677661127231162339664677011488593451419088614576619907265493989853847092557118381459187477850239551997522172477689086603949193946152906908929782967119469663953496598076049782712358037423058442299794702323324660446561047022558763473530598824422169517181553295511747230985688620154193999192956615683050188740056663438993782982576497423173443312560180424002134078299456897102810362115107283262189351437376779748626725208693533462719513252802253386531197872748182983144943308261392146770297904705296315671820691810932358783041103946651400437291891226635870428478747416911636829183614386637979219356733293358926919075727732858402559379721628819325113344375826784013979579292634449266068487329819622514464481159526330688082844336243379773980061806820931172176750909930970813397989385104742744728709042312471765830787931199656686279306844843174238372868349161266821888227453885288978000504751795346269765813752196401407088901463374470018056985252443474845591350158053192060776306162573769761702675019237921493337010928241416039197018654610640369660574759815108214237036782111523910844900984318895339645787330216241402623875448765871912908947697706019271110433183525206006537393507237873760410911888455740850985603801037632725827069272228208686540974093240926083622244158766171188059249489756491836052545397139722869788922305916481297283695909306346005282532823449733805162556365791245747027231594039741426249509301356916933624490544718066152685202581426604911781980660491480108949548781141283384259458842770576694308668015942793831687217335108408711307857928491031743553543085359361684049143773904500765937960021093722875308338448964522859847101004906954073967509838261812782912375228948002402366801965482127398559358199296818772113539945046450396590052629534511638007622862209618070408042618293926871087212666385133047021349489239124915925721634131389119712545734444067907557004961019616024715704995040874481717757199191175921610521056899698641487422463597830682577823851880192852373278271281865998593473528433091280103290863899706546383011835811621392171955135250213043403632617021166972041593719221075046722200839201383683074370869021565432854983949591780318177816721795388130618929254966248816367995920580369195581412491083850555341247820008076486285817348893484361076117199754482368408180553907646777984642710588791034880323355260154042108714582240032197937721728948160175941894387510562807757104239393708967882937067108140547202071594278924217893510008471096941456518757619364104022476513700699972394656395185540805754149051513925203421329689632444051258373602837138388486872406422423380609578579613445114133371588265339398985106886477405607401060039944027202286895085472300217240395810773341247498557558023823286274745121954030584265391419420139837907895592545721387123461679802862202604715401649470567018733504369551132708822900809891052723057691199511795238364619461051318957950014189212613507209063300222251928709096779763752681620156393538440377207860255069571917800956248455719564882240241551192877070040887501395671900430082809435575399934994011135767956895870206146185942274659590571951404325964405800664129244005543022513917497104094411505467783788407277470360476528232516199677047639844527329201530580809883599522319581893874746722095997698382694557263295958524686904206617959846997769450769362761950457361849450133561929221079579955349927570525929491293603861609663257795420330089667240862456226821299491808504443491030461247236903923441447369440627721066579542555196113677516777209886088137895727676353777071240497073442746813722249665180910521683165269379358167365918099496966191811078634013109829839535273794506279488642856486575697787677649256049197229841333260093918167452719518479809001067284940988412767187647709388333353867689714025000838301992402133194546995878623305143356124812877659322797843848764777545300585663345840500031426568391045861623263568321143053318820517269822372554271212352315952382697307143201519102344428566409606615805183495135904270609501544704972181045468655648689228144311387666739526663689496986292605617268494252355466131273233562436639737016380247249720578051514482711151319610463010033938447803131621230217252816188127109026448169110147034277225165595340103756794583222926018710539267191219336106129553130667850940951250998896765110813276173258291004078245062726152397410833237848479480331927497338418751728661847301731596492606242506666316251986303274142307473845516186008903188000085312456145980125464173811859922528233376337941784350624104507838523132182568597961703947398176723746298211574257367790063025848717937193094479213921687306118222552738883635793721127275421823622819404013082549157901555801355232487202893824845631551328425810061919039989956925786811354578990634271196942406467489598308767722025749834832820113935711677756513506358705776270044710848387307308651300266816316741628921980765063406396098295769108452721734283889339518410139621543351450734579544518510780365737016746668075949984460097809872350851624962732665183836730320658946526496836840144760964127231685862939990012847546451188090577322694244741645131475215946192266474839664134384039195085446821170291724348215045036379085270408447146435908050320007829179127990985822890260319225082814182931648166360965029285121993880372897664984570369812531575295875190275105409924961000294385756858864411230502670826466086380071049176639227814784549043788031266522492634228026694203731079234555611232239619332560346311520481516226064682746755582190485427217254462092542727982503742797711530974986469455656168961435504674195356886599751710031606455975423175015569867409044335486673437724306744541563440163751696523873278465195511314681142077308415601479315524455327635078806238419340056012581707522487344095020648224706660837485189537412598573131607138123398089568593012935964631590148007680428548686167514366830345480539972128232135309678784363706810055197340575003597894945867742247139458265528104523115446862261634490546797265262713180042590821713848443310832028383783019744453765101546361798469381487082746378685998686207520996014343288067879563906273865655228507305007073715414829018590518776835248517055516549989821865469496219003378830070051959983120371707496161090989663446800871930067486652803510232540013435456462976453373552235613117933102801334568117571999909182256138562782677748932428677932612538667512618490350069836610005617298178587866689252322959162580321631341025319959423915804221156918704560465462523924811360944577263965265245215770502257944251932615576326083588041096130204546783342401243080865967015410758174513878827087701100476487253508513875488876801762900006772056847254637918034790488227511267462868771481342552939888189360570438378752027839983262478732939543857821127991618291538815378020930191501064479243495030516383735931428991372779713096341325155932963618941326497607523235008967733416285727260425714472128638780169045414652363109386442939157377414607242538219322406482477549505001939466250694168718305537186836132919764388892182420019995296400437478421458727227447759476172004103149287741578453017640109600189616239571490468244085085691732463327402175472621072818403034749702549522752578655066987520404266620473601098389615716509482840679536402926175938156951540522121579472848051626279397169414712000601172778824495046435385744251611916501273225347317891561628732596881055837472333735925007573115380244081258648837584973152188672841152961558740169446071600991654540384468112276408376645744188745061723574263740675682048623486960137598911020199392265478787321970160622546388705800219976397192304216634330066140531090008514890266258119886679603669269373288653891529290405438700611120567335280122295862982803459820541820055089145216510179513624455415856850772612127957544171493006908465858222023362807215952633622888762706280952385062521514068428054865751041844597422829120008319167869846071555917060457750754262554933281382269439624474242557219233002718183762521806913206054921681007080485716721552510677246567716782612746658541644115243359794180787119897710491556384176660434683166621397314825378280299379826270917421380707441426297014520764825189248030176983293532201532598409059069228654153468533530124585146336841443245860675275318925517465562541151622010671065927316119044702108248496465109618138038539173518114615445533414845432744382308248588532672236004855519715480085671968524157954396329935122941484793030406548133894475256808550716391110170298837580178746277771714020585400316581883935343204307904292844179034583275895323335800261561034974274845459575960982658294891153092138927268104439460406970310583106903488496774704280826449052830763786178223604038620750177511034749326454976678989592653508791144191003981749830576299402666691484909362376263104307986240858866563390814878543886889506046214386442432040713217321086828300651972450321362990075250832460093469030643525623506835656271344610479734082888286930023061383226674545479423308683835961187321661043218934478040641583245450775922220544640224620963554814966835799527440290183452572268583139210247815524345095508460069619930323951419046535168737335977991357290821341935170816943039484908538440396956789607854201933508777070080142947665813526536309632104135099779113824990482690983271148311461288638750419121097573737433195340325335122581692107633781503317320597223617576433081142320195690461675365727578544222491787920011500216467342110400507474245279298402685134760048574108072812711700525247109036124100456711309744525570166702409587743156388849648534900951774748710368350688681659445299509335109709646234219540635618723046324607876532459243986243557610705668602978055583422494862421545386920933031727907419383342898617597043806487284378406133219307992056589994373955970569164440149860670296067797370356499120524159192747551929807143945810294359873767497412799585633819719866621085841324448577695525425259034249518678472519208328570569938318794163203222418536029525639953418211160632500925655304575836674199195786130661741306957278714586605917047218816167347272595881651296423198226569940009492612142739676301656689160745555716859586722998977923305220443094393375209683469877883815725924452115802861838610912454987300160145511442333689344383321554547341206333071326701716674801734650981335061107286505895940076050290795803074458105784929250601890328681457750412562953687055772519594512996833839306706767431603709597606440642236933801727783359398851172475779167835176250949557554588777431418832153371535535450843087921417635249203678839045692817078350737769693252087789377019721969299871513801896263682035351818898378541633308796640403126006706297956029125725618751363925195817575070197270241806849907873091429519923104402413916995299249071605604257166652773279500427377069167778887929108738081263498907438268535516683641817263966166300010483840718760751581346636674301434866310129863775130155605282030704277164802230366022550858291355143375183630645372073412596414766709110333388272986080035250508184840742561701593747801369797788823537833542805563633555542075067072850616224655899049036306883532334665747670862588111019469594401850683542130542910076983111839622215272411455646745059189584557140362058443800477045242889827998550437234198570933236441297519005171172558790023370740547974329281061350210506740091803791911962162772830824193645034457183508713309721434680892553179829790940191964757652848999336854675618720115168723421987611725539198971063318319356390038267343821903826368582992953423870406002053269079256394475881292179318505187976355264112335207124756272950127591551767422821142090899339339818873182744568144454466100223603933070745850025036787202831423036710803480220239540107598794171291733618132751735471628643461668768735373045637949639775013182257772333640002441307857626576707802668166449936866112520754722016879239646740416991177611187053078024182749274195689761326799022797194254661822119275575183846546105849169423253371580892025813731621972454171537002355143156554172732570369930461177021604669102654027453076715581762286269329967277824506050736409704041323599090870946704169977610984611011997605061664564784303007733783862058251314567991354496750369409185931869788504188732363052867825724509086240474134922773570157667727976688773098758273574292805799463875632692098994151750119991147534004706101084862307020676909982084459010975120866547104629207396141024511875840665418232484010029774602997771532353344515984391529922758936720373930459585373750504693552530803874557401067420392424427271415522595796765143468614354147942546686291218984913524247468167234795418029265529284839164663985623322974542933286184285482374209427627593657698270506335344593404617120392479235661214671449258508481179474867946911881805574086759015797878730628892074592954790370945803401275030491240821791571489709908206261431642639691906759640904308380717673488932827715464757552082556912310832187914876826637778456123952439493237204780617457189675007279180160422869300035232860253918273641145287855860783778863286213051317070598278910573740003455845354704798439190352135054906704533693963348203760875796466940145386447027112559103230160696586894698203119014255641859169158670403969560462112602734557940325058589898386687960840914578522691773845856089027110436340943958090653755676465098797514516516826051080928773793610579068751428372698277600053911073212598162846417298866589049967956896093471060781419133318078273269107170509028174385601165241981062805790801993309518079570093105596295693126096184246384072228545186934619910649548293914011864307506654852202869328737238193200995983573037227084652167432739056669523553890058352425719111088167417334849872056810504144225341684393560721860716173295240468834017936615989480306645673790493142936546733891778215010555678866479130768246072046268086394302187767825188656079367561040651270482979328869717249118670687246050092583475437978328675287306826824784646895856829358121429664717457115189456374879406948822094188439961993493831192376584336343205012131977670504717503762281223048542295151472750249567675625722079266729366403760641522572865231791549473462292748121692322854199465716054742923110556786788620363697270909032344217399435423297145729934490750101469409002827432105174414020692968482246099578043023169385563667258638562989959129410546860299952055480229041829960452405582380264876204580094323471298510452867583743831340474330906706445524823000676182983052721169881567517017059556509268801550824357310878698071028690668961043411763126236519273511249823618685230259607690874277934204574120736934823450302914390908301798793477222099169215027940609018164694830220120778390053871080081644456781859980432105921161700203771361336663307950564122998101590098254413399727241771479211757683408786264118124549679710381304698930150023767141609278741339586871952878775293058779664747382440351400278911664830298835511403621722640228037580494311709929011723026814976059434884152522531370194012917064371770054592268907319320224610837941840628479160094221929090236179977477696827905318599767916175227180671255381281465097478220454272821441273340189510235861338148299408161686424292464842164923514534050984134925086096894089021555452873175708694155798688724051619350064633050339230213643306986735544770792561524812168625031965082463746128012009571128268792977601014658696465192283579043770409612590555857162870032328137853944887898083775534241418346430427020923768025877550988013131672277571964296247501827072674503424313054006283838410984626158072466195302542323295282853967447400909350300706642419930351144564264343597563506094889364184013030091103498328310518822886124599135080110414002760223220633830855568943295773743748160807840656126800629889898511183718245331635481850762209012203479737375950013217383177281585445087146043579711438867431369060451254701261816283759231241919466264693004921633805285067391013513232629188432467820510329387444457031448779555597606401037367857289012636657742287897028817712960316234722716648898007978609983970487528802401568056246138605255694846122841632584635344078892043262584031847197179843546097020758677308296296129159088866011713244367907333354590379161525786614723114083186447558440895959054388804126727331095554709814006121532074692730407931403150615239235343950577716163451188450740444352542068340272441479451738226313403127612447988034602072149294397265980922233329002538610596811700958782933139490886719111257727074746419275749844555325685823331625691375628917392769319830563801033578773461190858552315415878982045509157755753002955038333564746260556555943658434786969691381904510589925132500085021621323564515959912856832010573201773318365730481253234224693650508497310982789010207614720023664669408419415772003260910390877889651920695334298624717921319328249718744463817401559173883048270195249577713387561800624548145126051445391400221263153822834450901693545135803284202279224813282298508963002063511453377208319910507634676958214959976409385292859571730738347082558795756776126993893277554509918577097264121218599392565468599236805553417194620120093583376403854901139716165258838478561238927588450918454014055886602061328196706270213867600385843077552048891921767668791201153445393114642237135551239516793272348892068009849793288542487881150040307351213179479097614065295011165808270205555441394125555947291613929139095631175153246058461081377078175167612791147064457020855399571852219070314646543831674877889525738817862144190285797518209872675133167898917186811051913326463515662304610951356674453032435921573091880056935386065887053936804409263711056039526656989373741452049512771637461118292346743105690057502920538729818151097127016181417783645225852755903582808327388777859732924302870840375385886211675219592730501616433631334484225975468754932741960534932517327692278215872855125678820377081047666483925460537780815377737272036268356233846955990433208087572706239576212427558926908652882697907663425237643255817581785462706036611216046529851392865824675540873456755765171418566997511456991618405466166063261681210339217435590387255819054522959424764246272600660115470842308891325387842790212339993619686779228103911394561936014445557331083343427889061258252573102101147007068448722372772633802185697506131671263929695019688478029369609568830729652862617515361026888098409483538678047763987185826273604213155730774419971299745140794597847965940730329153432511767600257731876505825469457186272688619235373860021385352515322946911958779857695097296345999937384393855415282958607242395163628312086441429621764502057628918528366032919864573742215338347445095697252330317808260167713966154335059390893909754815802983878708971101749590407229476029080621753364313973082697639317047051451515565566428545365337130888632383997306486880343381341642078338665672810566894472738662028940026605040748479455739452961680421689005299501080390160038762718067667591186475272023148515200191941428589823852782559709429325829103269497447919752135970110628067850191815653473937527940142521100990459380470480162607913852219652962100532981259178476160357734841611254742936535606368031325187912614263902366410266834500079522828089217981489017406689870762745361982665194548141761384884839671476876559908349081983258078164900955157451709531592098585931887894232115592163573679296676633176167059781559882405504116254333843829074784586455395703629129447444055188721180473252747417857578888976551314581593019854380763991260647756399451990552559197862798034992943103714117423909503450221472559756092590342189095689530222030116923852187527512898164097853088006871165288294250823515153848666058933094648293485747773690640730838852467231984113401478043965400997421020106807818684649417680107296668844334376127471731340800556842960612499393897507122631013953404376093713454265187046888642813115031836059153381669590922041719884291145009540775612220973829570887062733004907780267436913248063157345627502821786101475130789956550185930561115042506834094636358369873027409265903387491636188301977175148268746888227059072237403911494054787603755602756699611731558923759621302557885773093845579167524528816941553223616837210750913353387450301093095492774003705797494465526060754983962170647357007410122207102672796048393583566370540247900373487098985422006407863612347223516617199966860860934666676148327613945831173016670576839513733175280215534643372736697874155443224777084078770499993854774825060771997898015583608116253642191252311718887510745513981119981666054982573841289073711844833776237913567257221761646749517042134986513631505397962058203776086038828233324374837811334433612564041877335434616955085405422663511881098641867698003385253371666975973519345058690280901169619986344605651871692883444846267915102833613592042448932586615348803423619276351324378171708392950247601532478815338962816670593121367809510089580083430298833302145365187940573608835724442009908722680944846393003741610363874815383227419933687182335907156071411004181886809752228712757947055942958648996868780067226714855965645423462071354345291244930842130004942008587771080913390454240102178189860217177810443832526306936142526552997715217246694503737669853783826739245080446625357421850825650017817815950324580841682159634435425227008658353022072746376572454683125355753498657027168598879549111773351720864868419593497629324482718344989105667817658002020156778243693100655573212488262502611916397453226480100651435356980922532377604743868622677070738810577624514370547882318998936418045421508143033534048670882874698040930377091508927534802720853200944928626728449809389874479992835640275642683940564757555163934816651249778552142042854488244721342100867233837455632749982988228944833281273183279341258962510672573231701420170022831004348048293062807356084041746825875738383980451952948814044247412224742687334507805342092796639281625686739738918322722582158416927590052020384353984591186600891714435116871023584090317950466711275524515611694056963036701471252664875663832904620346797980142907959211486916506909830715783273390483927577661133871135937234217813648637393057508812402923340086198706887996843735249685527861761873746182885891880040329572572459785674809149519020322151479262302390527358106676932444322112844219681269173251268598419828146730673062430849014618413143437044896082747831639190344057545772142361238525549064961199036493177450015911212975083762835846408247703903484739089293733180886002485498246290271399107632221800693450601620140975412406002629796881412219472260433358301736599575401640708922129165297881208755276646247684140003617285264229977958749019608095923813290214344329431108316789598969860820053780538981062515713985450821805463086781702623763690522818846090689406626356783704804720159208327094319148090773256340331207549353638533177604230647024978902339778108094042490645580874503294670576928507035912711634378827926298123946267880565486148818205530418225469250141164118111714917596877370126796199585001005708575961683069961048147464383354230217863018843062879337459282500694153627527613988970864969662579876235142494448928625419385657508925669583276626152465653217138136993731770564365163736462296145141602683360697524806444780308723530303119134664467533153210536602628390951624014531992739512035659967011102108099614685500580057417306245772560195791338550435354067480238915497150905246265700841224179145603540829964487836222713559872835216443552624896990732007047398491133376555166990440023825699962054199070646493510635712355094494986549428959127244459795189663981550319722849312616124043691886508869557378729782286827682738645363483826420764490944224965471893866355515194093585405211128349564165238005828134973514877250208236163525824532950197709339377804623279018774900466963123049262392629166709959109248777377316909402654594728007604070687218431005038226400593365611903675265892749185738846417946423766215376288992213464450277279831183888109234028312414563537763381074515173647304322293234455585102642922745597109500788925513613973656189868715867851043604014977340410006611330586439170612493088507175084766829353031122138303029417346933806145488475951808857961391219814911922227928082896073101577161495017217594217199104980775010480563501402018913135614929880270372006096843517877738150702397061254664173837159066016145167872316821698303925191652833464053980864433107655327731424692390001777963607132943787825350785062606096489119382778895442508011286377849706554102023277338681729877919906545080999465641961007127874192158712009327582167460673280595577318143406819879147093128755336470891940749687165614842049063438290759132504132162003900200261711361403821840173108045081365608964066448311431799259605716817662160810097950551957005917519717346952350074494176830040225056998812440871639265588937537556574238292406999550756292333044032897213417677396400987998593058063787118595316087891235862241261173670992354808202819267399029298732941847363821272718080309821310576680542221715212423824169876111741822151757398937623657138320464026566913513530395706139886939905785982620075805977559436496827635681506469742887743117504545244424414433938533263772762652336171585454240347672779017023223468855219702040351378574707142391369221679274548439281753989089607656366802777667280822369736871197420301489879217136669603261638005289860508879252026495796597668400744199868628894946467035026761591730898272588294680111370340390794988535537894299071574018470300002986008675933916812020499289096050197205550039890723666210832074537654090396519674954508023459999286911959093430938106988194759939281060844082785649674778968946624154032509215539761621775112568720248993625455567292200354008114499813978805208777754500255923788587837110119410399477111140760463129935878153120964145695023144373503444497837556749424460869340153226315868689259319119414557260680564753430373224663760575646937873044662925666273982600323371419664135586577924811865515801183920454180979389861169203743230042958382525667055014947398493034961756802360727288092988510897754573011401522575796864075535575156907632822601089442442958244533342793270855883940669716815174376276295413386394027303613751360562602504604205181511457063618438459810280498727318947790659018033890675785355676102735566308211109715515263748710758082111298265674797896906655019218663789583233828338811942389042537045296619854947095352434299975001803317894467885742449848410643375784165525016810791634473518660090845492271459700157911750344251606810400899083144596165692292973338056171828261729089521377134442351863702499877921220317909773620584041047060029699703468970533657301640626598622265008968182599712898698923129237461373007869292788688615891224140827220395371054396118774507261329151419538434363493953880430220263904347823872697043006075390394597100459169381551798566347932022810561011863834124742108910354481951017360186431002489745314712364313335313160531142932075935564625966321695035288053154726929173359948420121625611719552473135431301593318021423193236304269905307340160277493420574154611026132702498994340626598105217361273008212247691238365674386342770001723999353950357222533962045954612283424209506604967409501963906600256262542051827161610492185189113754889993200122938324440520686668579751026603155693689909408114843646675928639515944299822076490772224153392411667292417146944971423113656616281737804433100907477225092352361160869077411476514742938569807902351675612049060651477848004628323900196239800882174981787612832038842523142469226702104300830040409486026058263613158408638233399618537663970025175381063438462098778961715937077769138099120648006597060095525421342879599751360543171100361042084743566134174617581969258675270412261517630051363946172734494110292717841841928770602590387400739975303503344230723431541041234790526326064495330240081735682825115241468271203853726571641495572775017242628477677207829632690234979115308536909291806177115496911423687520343455130198419014630834309401182258001481260366939467392619811947081100525073515008345018366024532010148174654034104462018529226740132305898260628879380307916661681514642300361353996190040807349104491683671945489608357542693483072789012187915355014268509861190277587659370297312140057300708880653639696221873414871214748371733027829326717648741072110452135815629665404205612552734338537780250994954666416173351459515722180830190773313873270994618100120483772371870966769190474050904059679974178157970380083511984933858592147541893898738992101856729711579248849659748827867842313700741558697157854326559941478410707777715629078819331341603977869554851521315892667785243612012577985055905874620956058200899783907696095436101086408986630759981628045388830178112316647641543720403997766185980103834133079554767455190312064461960677091312681551301661571094319405212539883052311645326410224605812053741089416565975143400552096023501918568392894970554232502965769809904670446934296492845277160562811311529590084056097267842549759508283591804152958932186812086276867784285555757041660123237028520890943172904036056953321819237055034232213261978632405158508778123097263994453095398256540949099884317430464541285586198149305712476395879012906385018377406004309464289164249349021192803734496479401893081939366468274697177623418716703488342029596056091351873000672785684968623406497945321929268712894241161011289533250813324720821488565921104930005260175941947406663682224353760338031496215358341799894925595447905878701537567233733520155792875548107887049818936915307592734919474358821969414540475377780432630052340447887066802203977638019979132288605268638841845999416693406909724125611647938031382112751648353548941777819970243295617733117229357929077014398557543965103652164130616255886666690287096153576307047688797462688905140671030485521514829486834653061071067203760142294271796303442936506259671200793020379116543201023984244016406085171420841370461501455805924975581526015557846991894914436114966265426317907063174165696754507499677247816829164320909909893684524119640544349790498738593720913250627689634655432520846109328495545326937195866358632256265883945590421255746711072841116079681239830125345856091036233569383848634722630610252123742120200896903750687559365882567272122860816255677897480846989449084106694490123913792257936487503239717540048813437675960744603685143157622653520247984655446444028041723230724005384869388825696923264086725445827468142602251953930524848968889156519990469495854881644769407658966307610476349251280354403980321404815469543561907927738151004825712471879221003398053939769088624411454169558365368307168698227172444669224782768972692666376094837829588868500984012142465313625473814565696633347010109962722034537092114653687350266369537150378369075691419571299825176436854281474340822259907598299998399568983918983982519852462115747565088952368345545339812197544687211608956446285581592710063091070510869910317212850452971855317605047663620688985394157540280811180746916224883763073669220641262760757963170765192173370031569105871806445703678163434283317278514884442453707908309787927847316733590456913014485334579538779731613505074265484801901382895552105241466168621268482226112326594039980517459037418597204735179176421406233865634689607760354464653929386123308055851449778622860181388309410690727712365902118487841110803044715841132971109059632595870457659253813849566145212154187205124510605953687009576476594701995741042618336961746491194251732912335965267993609003101109216546598857594486937482782048882330983935008603278902561305071352893837023590200522652468903562370088039143880213927804879933286498224693399859654380453863125650830993128392340724360660631237004927674328378923364406202535054116086867281832766660391921798505320970760515838273752567629561874905225766251840548617288065872224502225116216615134749412232004468542036652294173505320720521073817254520480985395729343125963376558110545725225532408033166865534748197823854959786603687311400699459729410558193063226410676049869991047311373236451333947216874158794478451262851284683262392046068241945730462484493464321574997756883050664005167442793652797409105919318561286348314502457730662214730621791593720932591039771822321963592683540167669124780119243892301610168344020041044565078450668943875395544501569121247913283982000264165376186264768274143660951272871732201425028822061144721732435489901801221701281090753493708767121585457848253643764242330328938923916260431673313914582572696803267728763210217756890658150486792800986787730611476684444749069715142914441272042977879220265796966925759914252783995276493050901501731926349740025651692385870981042449319191002347801908139828883049547025189905751636483786291168984463970552595631063531060182265461927918213757722930994573277087985214636600382679154482984675280136837976980315607462487943302973699627811773175316598215304342739407271335696032585023946987717902543837362634182224569830022432638345354164436406603051452786231417112950834525887842006003899528807268329069558627589300833604673452933270202491590297961000284716186613259639565287219244017215539498925865597321521832529223784440123171437838470156224609700997871041407290375982418018451932406119944077342284642737755825876547093732831002597843743757109806409939013645123569973467317789902293869657348534292143564973847450614567237644393191271415031500415497988823657046443332778664660423396284355706206613209991270737256495031538658711019491830668810277536249299744125110015420408600986328359811450860283770335959443227542356635065593136214158833841935533462509656843308678259127660856507540695408435293375469355291936129325049849593967480401886662799415228619486950939008246350799634053900391764558767585126678236141243489251908723535902338215859879546773059723081231060707635857205642928692178201255205761961938584809875963993310727106953080092747461239750267493467582937593371836323864714839636743765758959120197875150571402014719478688526886858280648881036002362133673431294204122769806626328944589432143026296758086632045653107817228248978335370308377850896029257392902277420320287018440131578470784540134234272824182132489883700558769060844813608979638039720265430938290220054416857370418973746311330442938853518167721422405740117596996419436060167810159483517078315841025500775488711178119049566311589230455861895399776868975832239953058003040887781014195056469771211512481057377125070836625274849337600644092290808800019430156134486173224755481112096906355927655180593015284012788458646023481842514932353048329121721063473878063529620377594600323003785568050201573262097607998410943097098268452802843826797447339025453750476356231604908596330404576664550085295860136371569283208750061754507281387132474657172407831220734335994044960784170080963582088743285833718085465859750734714818866520806869813577782388862129152278376738047996099515153298916499846205666481531778855273067664993083996034277601018180479676752384392660910124529169213153706152802103297685270626055755196793771747092182884515163835519604743629002536927282978685474955969657085825635629194160657264779130130177822076363714996792697738036889118319928138666571690159195271741419301345837842833000171414872659980226031142981915977322521097502409251104280679298338504213268394474352558118943565914186417898556395131278536231414551257165387309087591682714275671640065278243718720709663021683011195079495395938099287363687778282773338673246908377387947859411401603374001145484578611089595012626847461654783891010152269351236166728600694827315714722836852510152317520435330980565182590326930584511156060383632301400964051242575446441944930589821096836675574473383096994143606311504542399176063095343411632112179604357444452343729691135908011568806513656321267466543554680725947665911984106707414322188246473432589011555534070272756938837220359153726605805761164667344792075910617605894934763794595664041469623478473486116255167812168727403082756086534191988034492024389540088974574987983490978198117753565276812624890060554744754296385644653544780894048542838100210068681788263222171959246737543293165608329219048077397952098654992658953060647502207275162237578766059585676852696913920362336045042972153792016914996273924912045573348819024884051084912367950597154080619024305300312380903961704225286134674191713405201153939673801248740609322960282793720217365048615608644328982107877696687184444197122127703293464190774584860013582051918046893541593480781598170170882921202828198234445570771378315632835976442023104618260883400723779781604645489452051210648393663502798045676487094294423652553559999457238689854027807515288704735915181527805930871603090018696729770639812970149694382144543118701091701827465556431055700210086557892990115124314873833650066726952988853407495769332180708076223231981054614547002397926360579886676196115445498758072103080903559615734601124557536511887410946174283428071239346909034184154084796668903375096061900095677900588557879283005900207663399505706427567396399988202577925098680088570908332574043131593471300201570527032018483574683576029238053968577104651768043486040190731345251232351815457571241682645420236706082027995180104785320312444668306893830561952083880451896050259392105936257427435116650154218615559304981123670675543639205086403272530094141407730756941657448230329583554325207220045657480652148558387067135562350737871232099292659334577029953176591154733618895898623174652982179442424286168366693433934655878993150062600302300924309427827492431238573886343276385028909052939457598176157862250215168258497158948279394443952113206518423972851143829431465442001308240076856350173425370562607309147695870109295477097291136994140366454493080767567865040135775731659082626062867395992520593853294663649494561254831076008091635567435482570470450833082697938476209539432674414077719271583495533887591596780972415715411169755127584064672774590743695092031806801803011510714026035718706804783551180595561030846365909659634121252665894620395450818238223956051097567791220050586580911229735301825121680204316221798116944591439257021688134543115035364898497081472711427659301144543421378531054250461905849710828007860349929176753639287405731210697469405876753298893108791896299309141917268219254149888282617601856897991171499440529769361890181981845537251163129984959250232384408631517436345978203011516771637407385994604247417952964817297123975697800280033670374949871249385754027018573217806120000164216925300270048210563538604510823273260875393393937551098084168664394181394956944521969110138581417289644282357651034851466062358651421888795370354430763089651513992902124393860729491772244722554972818834161461284819855190386414963341992942108031807281879304395177327623845239722934375427979788077579621125756265860887240420106399038164708781972547248334408571279918301389684769711801391089590408712191982313962466688212031045487596453547258362278589097377686140793412852633890931130988987578214316641164267032175527814012238746597583502426589684586065888137750190860537554029749843760574341237207852538967688005558648783791726088859979436725109915116957734734600431669042043217564445531128160971085740827387895044508440293884440955012564071166783816491028579798004281817060078141089745086890711942146903553133651159403630507514692055305943721896412020028568684074447695915136796177334978133289901782523643703461810199638422652818097654778554564536700223148796734281039410450814185734387847300621541698857987924222846238214420326977822615570637199522403285311036119299158401662915892637823180302548211195817545733525996093673543009054064947984682931341122418238061711441930942231049139599143128335301585494158516507856232752983719033758291533334103838765560687760197288175657666636776353507325596697158786039555549946896399009101519695219736131782412345878649005683729463232868683058459197806580004491542550214436042309582942054204758505320821572573472514734920231196469351283352600419565256108984976874893459303064118118121982991847451020924999260877526259457826307833384806642298182205149339341641668206229051898269208893918511827313388314337707104426647881182007053541202452292826531110435445054872832019166554629445824767541339275779471495737253423847906209406875012763440739735063081021521840863501428924099244321924193109047313752470963986130696300574728422561191450848701468974301486933073888015186188843547263341276604739806460299822016111581543777111952907487872967110925720605279275615089389696404392748638614076458620803569835723497789382758305924347382591049113590627848565095307563406857652884438584298249186934622974697202432484075682288659229224770431514132295759674832891468158932084413145974976129467958447213239967696679662518102270111906544951975405270769289486447657523916075973883030823539667092004497510363633425721387290000222624892114420797632152201761671510606210030989721080208674318692753983830745565858989678471098013062433457494932340670530846462137288192698942776236856327425271730581833448408435239647712123400405546647013022155305756110790797000002312561277937230026850525048462164143496757862503270218442661613963964324753039177759652118675941680756707484349324537333762385799482216527580222095699499165501731081200548985278025163015079401518458130525426257368051508927221088038578726062332809157443338462307371194162317267427931088710163267432136834288093532477016126196065492134648284971878486110455528738789426672643269856765799627313443741425108619358074907615809444333937507526919973487347465476571420858033654592102437167452760546442596363301050345309554845856952256456038581828307174540622318640832325588583985575257531184316794156686132743363284774323596622924013484018368574419348213890230560519516873862661103065665085127856073980903545938163316088738265790294472774699612325883025482088782267016912712897194179381115161216391831565797818887776929300246459404635636948830989071422048013823161354860571835734781767421223941318347876148619898180173842340788764496837089207344469578007145860838008579297865735059802883719501380474334490693207610628976000194035125110941980277349096907714051370108030958674862628525693247589593580898806221119154667883642096485160584771944125480871023260338688013422928430593223023736782252986260590745337718516228635399273575077833276453591753178450716945860850191861628673958100110273656672808341594362934449787346158435214974420968785474871560455750958519094551419910756989712378672404050954191031957424225556418366542861504283653171886109273324774620013483580555225700572609492139201508473845638028504239714571489995771343427102951237578603493019216634618793138535697743313687773130430741961708420529952040903432152546783874003326719073494700996215155312541037062663169298130934637215360165320560026009378709528282628997973704937208463762181608589988033366110254474522408350999016540001545474132058695872876862910078200865707882759320655970041724070985680300936508180865683571787119027443073295058656006370095145918378589827512447652578861344729612615295447490914917801044646356713817037502704656394313269959794088906734317672526361539876377598720910330668030362052146405531727329810262936865516951133389669545696486135095691564385428582790595850844395422157965189939558548515669385367006232271472275602678839200616933079182395587556414047335530060207796938542350104962206418631991143919408055903774593995437561065473260368743799843956719712673866086918233801368077240573371711066584649535687239480358700074222611542752478770050710833973236241890272181166802664771338241330247977212634413811535572670668636468449443712005764682598768436299167306510863039771103183672604586520938622777577009823990727211152285046435854391252641483421382546662830572915513270132567839223750769535389776566516176704860553429216045179558605063023417486036792228793507427967933677734476956922919709206149177597193677996540383650635722439784949678327145202100629926378908665417078563586570047870536600723144439069032475314783651126864334712510069874248540984918354085577740543337722354757924599681995323626248018413014288250417638209833724495809616090030510459876112573328504038786408276430130117857406678534331483120680027549755743778129002957062334338285994375035758460470574028708885665584730086071371600256447380605506561853351348763106996576019063032970474701558036293292701868973992930543217631951818990230985121556582241465452891495398474070830152248255186963641630037004299958069764187614602561918261084572721980537474754095702315620979353459713703783668133405428487000077672259530808624174120049418474197947860358580893614525386481478818360775814290719946284410464374746323981104566923511687387645338206951167756510206910998164114253160679915056400867841431497217437977729149211948629295595471946066527006713015802944243318505032362102840877538520592646262039465478760022925404188156927076098571698612145715709377542813325665834797480413169823527591751756757302828905128396243777409661468804051077990717736727283862294664070824941649328663276794140888353986520480760151521297132482220673694464862803891667792762018821911700520235395630315763264335699626148019964132906186671488385054123943736054200635244929306907318067711419455586123945976145279474647598848179152185399602082895227007635605687199688633994092198094759616334509439104166913964688966425924862214395377041032858831314159719632928159723770238646629285882787454591302194145592957585137004011002908726940425509699422952759765460631652160471193088400722834344578206843989505268198273748305520623939399957759617174017220936565454726743483488266582851891934920882266945370244826277977437197263550247552433500874653593911930652384649852454046078860440073557275639221469062554817103483641437619855697324603707255367051525787437804661042667590706222997805812438021949411890731368575133113982925228125039565633991224924772883980895324866931592438377892638303086499796475615242470251498836496828352309995977742343053423449537357427946654081996961106381725760787855219953616565139918483035942435454031772205276559943148416005915476571140773930311767525332300893008062002634138443792426487944881632807159217624473730458656362024716405965551338844814871302405209987601590087907801715682338139607987659139831449146406014753744509801658280610448466796813743389639439458198210297160142123483390928900709435562508894954300236763912131416794687766430215536153144802478549471357727980610815925985718331653250292595395512318320014558188014230504718504696224948175489369258412465591237892612798614876764673219622989169485685752011278302972417229575985805777640089039156141539981437337473470724721841664266966533786434991254923737219867036521720372795008352861076520506603809295537430224487395865912550196664147121461363339793012453593807318254828441424111731647424332201144990245579072181593824304163564102646905325729019201677987805891694678262749888346728779305305102005517621244019135055613631056223488778726028930200233336309221310289840221909132941773374955166081391550485570860059411599259016906875954123025725211551080867898123451493313340564003090533790600339057047519470284372573074593693010319989668251945203018895187933150268056505111276201372337748101544132711161407294970349618402190648146628854309845755583722884882019806919533906843182413488012997934222800542377097025953299045964166226441675765670965122730138308181063880197278714536020721714661203477304779378772270123649148934438609614757318142349697207223989666119915501171339228874126910445884982107642144920250648925525689920651301727432368711870324840106154949955574923316817517547104834464440634283729437363243904170212814096393302432411699449554857556519893018605429133393082089777722401543543432704579258782578595873977656999417054709896117783942569773620036915881517290456655875562498689996878310328439568914336739190797671420548794106190519678629430111813090471959412842718212832010149783684627025835548749222287058336760740951653371278956774448706728606187562330180758915615087598686554317252579115777324127342209820398446301973783566081919408573952259111604359614535737925512858755818313623329016991167933311135078351819909629535079801821078771078314688306178682361264416351641286011077299895678551124360547043704785635174791699826040845198522109575898561940046039126520542336309299697887325523917415482643383239154481007255334443471251130542235345245756232509940297884270142612938560500522575596053048894959319020708278984066709432016577854511117858327976690789416978350016662706861326999636176289105425918920534936091693358506182125127290681476424425037558859624598314215821623339109752899122068789831641900966436998997808744284063944755951393713714625361056560061362308438992209204319818278971131735544934518071603234996005008538320076794536787469915174294292365569163310996132147159954922188683370241936141134042706258056865458222580471312902987857368800919472426329752488905610849950424022475007768002900328209607020639731753957587540094309304754364939030923468232160709708964095359599007343295772639567332302170402521615065013658673786771812243668101814832394839848754851401945053153678292649808021067067190077071156971756665080461875410458122896029902902811078066560456987301809084336786952686263442688916643232981658410862982580707623062032429885184862282317701307691211732570539089147990052816117632621964222084826255113129950984763879441919972889751207520371488981200023470525142208854761795649684825989809519900323020006445993399262186684489889152791678861284964371481027444227051978803630046879074181216372993027252904826681411495004560263263974043959740110465760291675842376771784421426717411272904671326959365416284964957181998107857665649904380393613152627469189127148316546826196983125370244349766807661616766191066541337710997137030186912458800866836500404526964914097079297347801702023237019919206320375740541928330062750060838869079089007270574929486624032583480271807166007577287819651483582859175086550095109154701348335446034625024453661802659108381014217196705552812785157892436967086844862309491379904907274217147385737895339420400027581699099233546373775733544033459664416742099407977497465859914831324862000761187432977779874122405975423609406039593590034356065615402582071250562565450801479846704704269546788335446245986719468613328707689744410199675492801759616847721862454000146286849737506876856669857681149474643968567091577855890294335594767317072724544405433682917859455142995420094848800591923271201965880185968375372238450325673110985613926747167616586141341045962332651117630807401702033667667138617427886436243944586301241635876845052590269443037245921452195372139017669377639677856806111050277359005158385387551260388674003056366931294332321437685473682631637866941589192722313207757368155846134190112156113514965503079008282218187797512549281285743177364491591665267402845555848852776041768696553769661502889084662256140663917349763620893027348819460088718246462547922541529055175200138100236988517255934701204546235663116273397089205819579529981893351903352245378191740103853778890513014965311969006635570074658448333290592965477980610347233334272873354194714750131334336493079146289801105989759044407278042248871050551454696568126650455942644316944796180593248664146987532121666680783338935202824407713695139918536933657653375581297549855505607931434463995080655979812797478648664434413792304182071306731255833086935879399607602692379228827350772025313477299079518024431384765120530676697048424857653863920164372797671570139858254248667427254918370939323117166036332181524340675889569569039096462181233515363821742730769864150581431452466522343025118916813545568374927639876299213390066699656831387501696433429349619742198996342042938052565878255461828280714400354286281485994021942490614818086608012475938781944678850097421904932215450966064117917876015665857953017905661872737153247451510458698136175352458351324617368291145930634575930770004321005698418383167446044275562108656078687470163938536798277664553110254363485839288500181603304643460571540498208603206324010280554108246157961035673768939598888141476961481282536209791279972040832609211284356953915660256072837144866893552610272372381089903383197241544570425664247960783015130344484712096536704847313186813622696851566510139256517712798389377409689295213430827683410878439302494879459026927378094231850002170917604193869271478098533229339395571852505713534755409946406019720186211068987393841922815669693695216100656551356089199038788762896528593582580869655221270352561260634513058359951030074116094660423871966861961695841118602139329168167499669989416245230388320331465724434752670571129018031124497889295366288353281808770287881049355236294502905364682552721424931878469569101294816809098278867599858523931418738301103053227845645156799219143114759338396099198954884974392532022483023368232648269384315819736857383688687688477970422534004802141632240378710815696082168949601715422500799217318892936890694652409028903440545987501112952683328402235537487497644238584862635373381601309748971830659640740123683507212385932223118838644065146600320216164269978187609467191790691260565761107247477266080213636381500357926749564572535124786641109667318263566630688368207545809124402372842684187527404082156134065014356459136783573511481817994929246448742875363320600498761248497462721304302374425632369329079914221526686160305006979738012957581423891730125172079291465898169772576596374642622343287253089521775794007299206142059499901874236808620720906916610803909103609399473934387417645199331244301320922697831392952691093043417661411381373346693960017903009583087734573748278574426538452159676581246478568355608712454090048881342343479532174813286672425117038412427015066357688373260619130315094107840805067137943182040316637081646203614871202747427752419981702978482970890000828387908125457331252116597113533672204839290668023073152086997310941961232786368980614619212806526112401890701998856537936325385546337865575681816589983031282565027963069956023762073358565019355588261083248670378094273058543989127306304402283093269920124913340987348043456510775710288884505494174983049088980284340272946703586548336394019896617341768530247892023679446982285976308644538675073186824998902722537369955072828943466792525247493134867526603190771868373991260073294528332293383009637037585253211771295622118847507543832971186058202720480801021951444588355199862392419237463197630241010057506733577661635650220389053435132815985612007873706028180871650828932834476278530754678601321446834038686866062221977323439558550043881397913004355916815559992372412811667069593249783119957964531786384458652144408644991496002371118425783855526834875246062192657278521000804677266745412830118817628898539127727585612716146614232959301355919485349444615373248048115879922590192714884232967782439522342961456155826908307431926862991899133374038213093043899146606434739021565408608542110198397163645307486509271316873800908477087859277729542063924764689581467705655012587881894959721365312266176421229132283185178715244176613802123659951558577040052794297658215597937182632133130887112364790727082749849278657882490958985705333138727178764196934847687454128089552998058570013134304879316832952543793110655486825759007789405541718983528275302623092539583901634152149978851589281462316116287031448627090995872594561940110207645795316726921024755348300177527281248314948261163573439964057069749978045342465860229916355927014519154675988385626148278657291963030927088225168374957072360944447130087272485078044584110408529620812762507063481564540398520274403478695620799037819704947625661836024134442765453254407495865146513624627563855991707518466762788376606798066638872798396194398551761178206590030775324968925053301713024691577555067660476863725613832878612992051762100897560844937562812297380074401748941058047120452802264563678405662930643566411406309130791275489912700822619528503544270838008382539400729053000548512264057008305682873177530075891128972686160723065082099174718220207133905735974761654292597523184008762288795355182995938372013458405966503365028823537259415208130015811916153162732144515948238026842243541832690261367976753425265171440743204960963840339049747036932943498985782072741007391563318463308264140814929178374770554058437749459628237874515487742272401876285938863418477012827628817893788673995952902837046478916471527165586060190103808121496913804630372630181271660394206932054010623596108285150836405094334807813570362563665272838508359935566483763117392346293277665544222715242949887096029476456005348608925197969815808110796993451745789672226873451304539526146399182492774366651791355232494892125899496639838459252425397313301622754142589977944069061766920696197408199401600810892595407640296167532233822343299630947210965417349007915723684819441761320125662080960461722867436736948268736673705281340661800035888487651925272143006668395718438935068771949588344836645146992693437127268436614729145972285859079360819932205839764965818368656942836458407938967633377719139839966869690876767618197935815638507539960552515990467560959324355862874471880752037883790512169517649070681834882108570574768880961751329305286223066993240400807488626713506809274779845252560024273175325064643443984230569403938590834874171355675493326788021771805440401597339803881689101711333291975655698278465189492106604110682387138123461307722948111877991687139704515206767935325153902314159966949097599445590958692772427913515778440202262187569683608647587331488536187767065677379094373351566054783555626646360402127500600304565405452721529015685937608501651022285586629662625589976792056117816055742548240267134284108103515598002908992799886194670538476255683740504399170353713919221930326344546396753418045190772239425896390692701449338711447226806900674608291483958239468096603774844771524766331296607446276388030396598080598703931116208601913663706816416778458673130813896827086923103849941926008706464279651174627871470891364103151303926135595375244061473710476242282322132549523360670502943972927595930659229804369337960628043523659902787708295797482121303792015392589523237631772264384188201306305726937320377068438821410063767203235792861104186076681766732528488368129596183181694926051551067588674406936993976902011575879027791781790885575948198202552691811524608979626516634861739857035757965339118719187953447321830670148693805325026952170383104244021725162489367198586185562153684505384320049982536116103502756253501996306210530964998197747128471314056627925000994062240721226816614522783496611565211605423514623420914125561109071607828790294598276868144566492709044365854318735307689183081206391749829627656696656268440580336439127872654603538234132853470416219398040694671679842073116274467959960414926088397212664366625531606351728907756522823858246874028480967773800167218323057102037768735127202871750177299028124442296069360544053478145538032447832081571362080636013704412476201949703353963364103368667841862929268174704807863912274999805952536269542990638119646271441386289393513165819531098134310858935040336006513207214917623971868861283193139632224738509060285932322105555571399659011550982062878336511103336238686594080998201103883632807054698664557221887934203854921406620335462810051146291323110975472505331145235050330879859128458737732934230195447051059763076430682735906055346277868261601810493613991386692346445274113235721904172765907294133194361392463545729879468927395042932255532989598416663684594209265470050060989475383610656211869531793606479668581807726716859711168145303608677558878242782203204212683006281755436938904189476896913758760867699933314848504431035336257383532112035619111662195841450764779179948374237870873582194823218044410364666294307680749618804489472624378872356237055006561455124357374791383354938861568555353217447489495827700087081159484840331070237487119809151743815829160515002253040683110454744624792092531390252196158177051850889160876931301699114119631733242804877023746452753145176333404679221603008335936458220746065682532424810993054606309428106412760212587856173757909918323651258855166694406043152064213403915711621185871253525984391510959096667997523369509012940849943053641535991717553542191447026365728557131392349771073109604462989838501857868141750341080633207368136816613811435144295485086699891191250815895076532299140919727676924796101686397521850826699582362807553093440988866759990996855705451189936012585484117882479018651341105928021458834333734449382924441747573039101163450636576494396923033705643353025352303899946252606010491211003261850361934214968768406625949301380455144927712154307752187126483962919996617854803216369729356913660901916681871907875749492313462455438805279545266818555203087828636481129927422448563148381097417865440924014523784119419405888689498374936088392393742030435213348715395129104623738271211800870619737485857904070439139936440061010425477412681752686541362850736193533255794650015025275355068138132177957726332823674593979811525632613745372744221592506908389282216662257036024479244753180104063289389269250823110473781416358951186905436046307657136337510401938226605048534063824072947158639205137978527501795443298869406979806740192141230122317848677668668738037382130012608907642495242992211600094370998713078662793863237469262522458087827781882794756523304961613918535084813886257478489950236983024700691124796618836477267805477557607355595891888243481648860660278707321348394763498900979446333578442862378452909738692439876363137365999125299546510671353202784817125716500430299506480860735914916155707549999581797630472564837581873973221245634580888507351427442740425402362929224608997504164022156080334162604331893563975095140037516734829323660029285836116921336162072000846251087851599997132105506176439271495189110839621871597552663019818882341273359427894695284071396779608792789023512143672370167767237204110857651366562253141483743803761074961808837650944108407973530026701483016380233838033583482668371347189312082043795452312283280600576933992589311353416313132908966512902190126508114252384637750658120910345353827345884913818987558712255166661266982235417042548489259360105540950075591419993973071508092818377763351403852355539678786296782290222815097720121221594460596998911623256093669354479557522707718524084484410669146735808191964513994006117870645190964652923531310421386059863052450020961392813155299979145395810895147422951348688237334148932271853048403761648974636597391460646994490430765452950288959402001898755141089609469478018365831912289443072457570187223520613952274685309971412077500275230627131109833967170612913388891202806402455711608615341634470712312103211694303427114456833632345458918301624493421189405432427896669645214865878101258400742103946502025804540236550052443118018742744490305398573098416988207734894133643865444557921083150261305397446008518582010125202281228758549488362903253033856158821149968013164957523830770157941387052581123599561167943076506903981190805250005883289864322052875742184268314537398294774968680966133045874862683032822223465616269270338790461305659608031699717089652434718719338995685476159222763671472762445782325563260664053045234705021158765058168665287240669661117516759645930547158506728302226121260219209520957097569662279071767491788985691577535404490812503173127761544208098957443212068147507348196269469932468121881519697223734456127992389763631243672792978836010680930498288160926697853274418752681124257428748164815721729995225086353854747505395049429088881085134221316895252423145684845514351353193893503704293439254446278970971039475183350359699301386285287904714986116043730291174244092859665729750854858688531023335755624315955869174197985452296044674595257071886444898550890737184645615785890071720694200544664930692777416731602416228869312234103560073611141458854642790104636416498399275526110347130143898154821887570930758291231694245297241916177392051155686216973998447714643208300350821089930272152489055072226496847219552276018513854394086973890411170011898415744771194467279141687478576520060893128184768762090386016630671210293787263964223920796010589756359143778637467415076334947459262131679809886306865624459233916267405279098329009523133196087240319066351100017462457657960350404468721095725215061247269601797033285001042902414520131432425249574790571831299192310981210272953343378607272727120871552157307624204611483979866433648545540758308830019733433571122408316234077295258397800577534002040997774954796629135370323747946830701756433638265975926293724619417429248238208199707351559241824053799914437610427547795571898678028722251909158173431039376187307285289534274437488604384947930810747188863192173488216395125205150166389775830121915090296084744424631605327313359993966206158715403247755200882071569600018306821528911010565637829385746469029811685045538472417413781876204108815778311280468989335175283231434831318862368867025962015503221363903983052166301032936694567127320065710570362337276890253525631744819527274163281374600494939756707536540773583230792458429575206913098798791221536405505339318779501423331543460534737564742695570384284555864060958855457375070081654171327137886649655862100003715485381688989389109137638341651263867666393311626301169703563064436251303410446415750596541172957529035466512164294461522587417057726890468664623738397087428496022426300320273498287324634758872593096006385329069725458510442231563467789362750213690774207705990041560587929512900330375634835952469155411513685607669711735672661074098879437890225091019382957745083602802926485450270481794140885771548629565316013488298567875347734815583325850223205103415297843878451417383437065114312854048525550207611805932207565929428831231824771683553885796972190771912684230067983126280868865629249542193392682972074393297566387269641190678506045586816013585676430460297824080095475620728929123693864323083353831754098706557967426789799767330201903213077316622601215101964983220758834931764893339294824345417265547650470579709064974875497321219227686593905861580928335190021247247213254996808406921671641554136247869235367066128078243265404676595787854081009678669807729758165410480395408241109583692728950929578583541788265762037083572421261810870320051318837704673814200630475653729127820112504528304787325458777702784560549445269588609009180786007420094803557655880746455929307982838495194803482897618051186480287239381557857657289570255331096011369771774207300742643190057088309426035647180898542787459861597504596043264956536754404357563530691656284309736039364751383051980908215035111188444665467956718691521551163483277167722395970266180981540685712382841138445343419167389176026619304478282232709218178840122600334696191164440920009270599702937104177048301688745580603346205299361056964454842080668207216485965253513715395312248960704733681911044024007362751917121628408877756481247678292022211843572387463440867696912922084621341233924203361342149834639962160074565949568648659732569033440713955550442638474408039315938610630762404225382164756286705200494722737559299777100158979068680035397511194716784874104865192497897562158683189105802275674957041927021406953445983623232104155134611625303395421578502366038210926953381338022576303242487000723563684053605434459974635384150099793947174721816489013864551573406182660983333366988647664260664997729342200395987390831403811150437010411414303145812718274524286451520101094872271047762740837563545560514514547641739758487996583423270341785679952359488863209223327553434934540166100149612514948563473613342012683471285860595699731518416030668947058298240852422909949527065483521845177291898512863038660340521922789243770436614550952717187201062501095637468524916488626234282683889958762457440740696185759155581199562137092183209465493327889114046480218445523357165084293532521700405694103810470296394797739333103744210209470608014011941848984535741132418673903051809388420054768916778941335036287083705641473419215471604028126211638723222998160588624813442069293783144756002317185634693597079045067783246093311703155638441251926659460116438913269427763679631609011519362634359692666202079778608163892882167092407761737514191311368259778775526590958457204613790999549545888692817053532016357872813589456121648923595367290237141926380912412673522308297288486621010439001726269693590269385339521679301214174861341220010981566547818095426407472739453076210384911345935773111561834094838728010525177447677505861137617070129265853328531508692809311446362965307869606585400211661091614318629556956402899834484489785344568128754054732855111211642266195124457047559037605767467538365088420598509021553374254399775679178760023224885348427887378365084496625893031244883899961978930010783499472624242486312534499819039255335876936531621680889552345144588447282702479495126282178897181175801779635073562320452837363947886931863765953647798314334320176514299966121390156295514652657284462623645727484631990561228275542278892773204448152490383292953326541156385143180001806275274462594600438722933292054033567849975340596448515201026452154986648964645050951699833287812311993109217246382659392379809365844103309673338999314181125398246017891960276106693917221526666761117166470885285099833287410072730866137600553499814604810621038203054538157269938015633911289165797208800789889675054244960218554774318123358869358101178243462484635248090696516897388486415529147076971085481976455747320377040293405366781180204875374553007059352214034549947064612695150096086957438429702228666292197267900555639228746955771630861309924658190731600826603990533095292329854321356705204343987196626106659851044827373921271328095773893019843372062646770878220288890119737950728738104597362664735246250794834532710867753403220621469976717635386406640137092836027478944428617919125918720832648496227662018545836241694166510625899345340106350446285982037989567922825104736985040675207354277820603206697606733106816859478745516363306179875168500077555581616593049838860994583701668495395660053841979967330852494474956667478162457481462251742050986673111780046270811248936289901172590831243950240889428321134326598252274704426838502281371599893876609202166986287037824676816008094522160229550670878149404883725710380346160444504840331833914176030099769944768936042471554361908083550165570759325752625263784338598156540160106731203647457072098375610999824061983530136488980840935595078840502589498553986771340906421395808004902226913315118342062814130687361668934897011694376334712978969964543873315947434389763682758416539697893415886942077749819180724402675566159064514997871110863314806473520116370643341643917411135003355118001713820580374181790565922511659455680645066620677948026517444270943045884251421120421246994283504054603149358701051497609995315174365698349954228546238382454338757817861485427886189629183674704727741526776520038789685305982125769713490636086700373366297267077838575350010973392601167592330429814222225748690604547133126878214804247561069237672268333743857064265706339207593555067972171220493243332491599205834464338426890253436261014235634770232923805417343630675368433623330346629211728147009291783962286003363260376886321882090112438924958357264541475913374691300728481037059964421654079284654360697128790898375518740772380976473713171901173439777150315722244155202475740091641910874137278961757684049900921578593537189926237643792589403837719904458173989040169975975632405169932265504475866596620375476530871763753265950247309409468010382182593392209708040032810303747879938779063011025627220593229884581219595784036422883630567160238096664760911376468847983413005253698967985456982262020496682399450449667962666344415629892108248166155018478131444587931255739300288744996254293082632382714595918216788642773322493873158740242249863880652479538519251146610176030945611611764951477064346792205403882986299709098036204419403167319987954892746357981513722494132099758433668428001155650319501242305121412003405155083840575981455879839637710273723178326614587999976469422147101161342140823739819077687776981234558020763519325191427748783387321860054594021271639919077193070477831243680549791635613342312842035857883239381601473119255041036769514973429358310734150603482339526474445921723884636192273780338409363255935214967300737539514303918159483896230504961848259030447157357967398341215309507685844026749246663465998444279291090052360322351688163221398448001240285420811218956197397873071669472671582361339073114408550696540292575995991302386972525154094049077798444294641208954926747554986014612335357510718923707884182353200220172301381432299282252715456036415429280980593732265075206545528141387588616294797144504413134653353661611302304032736780339682687485221453265280168826374644761684511643803467966123218471128995891627599205410407663345271824952672488732129105213482444481138891871323901635091066121817399528989357155898692349969693765900176881771645483328676410721299947741380293184664414438905123578528614186877621355706973038009819705185867481428043055572396775544548906562430360864722279209096727774365459914349896836316961979398703960716448124727492407617546983580745447071097587004697464840928640422471744912082792693378490476696943722630464399165537123692515233130000030874482772445246020784646829633253199012350857110309849582844527547237031667652929048642787739856244141724405197325486757228252539960886249532641917009216580324881136198949170715482386688777521279883923258693738128362771469991202207825134534896686983316911746454924039417821948807354393850327820229588017842416911398302837748588980267561356205950217726674624246315897231597103145546874269144636682039002603640573005845865179422991828026094921532223027306637723247836441475438058667740891913309616777151000803512861798255461497441565936866138876529775271943252382117299857627404314969374472213415689940338649677741135863904987681485271200893700547481263906797613359764709110174173206907969288406568950196415634037986909174996909301769989222940718349988587267697828118478875865081948118723185436552451191853980862030027272781565352086623063054626365523377235723522106030892996947403837328648504942209812688905443277088300083138804809551172694708615964819288393342143667507107731161078486623941631964992500074486659217808080847898229385603043287465438869187435132405189904232407359758457097854359286889656388791725230251896673547429058300199472989055218037184754973972512923461551523634699943142739998016947649899471565816664388545311622530990369523637095953949078856715943773104815347608687997716707505337526488195596685955380864208260262168714039338266642511948378100890242276665973561275852623998192061117816061806763031866126059672348109867048601004180865402303165076835662665890205093916016591728850717267274529497806821643074576313303374568348324787683856809851502284504359151911253465943213131478415261020203144970579171849315882258069068184784040595483615416970433287578794829048774647182307151452818287917786054211742801431212641668136744119314919573599684176945588230716759217602137110504407266552470601357473877225341905095046534921574394888689960125004048102370796541358345128010474772688615008142121897994288488028224398079548967318458520465976122282975912441451823569773033975751310783446212766764153555463544569514556325813039949967740779242354704501645126435927736361217537041203656951241050566233783058454113126107134569079454791501388895197556232234127171331509421148609816382261277470446628937634589155545613121360050322592580665808149440840020248442216959370109197487618287200321349860733061847622389365189980465723211684021015672289547526655674628122454392114546264923295815608013061803392377224343050800786203421171808420825972954559377207837523452398796085796129343549539312817024855422310216835249046406346013600761886403867795426834723265720378721902612126686325382759209973974933381400928502241838902276455502327096296925839558154854341053937026970321671208246342201232369230375972561577117240553595793732719965936428207018558926748328516775667937935233749890368583787451053583486668862606922458464851491645315785344984529771401967259397311645884883752355075999148914601795486159091789005498765279411355981924057809322816629555008522547136310733134699061403911920186431698705733485606060269161077287543107645628511793556828288682645855367715917245831511469583450054863592846103543365048727005039607480447378850884916909123711898735741658769708634948791274581221847991250364871385673679125250762801543809986977746256293359091160265046828965843743870763677770726198855145358906194867168554268991618794614736209730356045374884326890257651079379709951682254977440238176977781174714653322911842825227147675323428332511370293136355403915375330426961546871318233692733320528784555210778781065525101126948890760527779002553648900682108990469072439615592764360982877638480900678220039090879803109342038346293428323318323599381889480628442553744562423873151417961564009554935850636019714860539913894595202500564591072185870609976084197574914664510136212963997371107012472928235838910976223735119541451997349899867083823025212039646649586896093101063665461653843847011793644879408985171118347812037317710446535900443404920818598656973117954076884392450377969259848498212006163548380125507142091832141312836851081333926458002405277063933903634278109511639129316600852533837542028695414697741196800338590068202010632823879548985046903339631536389649304038904298969251612508833271256284028171515609803153291296016047482702784033562631591129026536646331189421365746839568984427394577060652457493099909825128911535957651550465656678896974489784569512494370800930907898980573574565384041687034981864938911890612838564497256564274444490642107340013623798356402819009612598576375394167255237209732572032264981975420065975344921006919776621657939069303454897579057298022642687041097300719064707445500686153358748237558970917294782846769158652427631623594238763596558241923905728992898075520323553013894848768701687844795555294046411256120050139785773742771116714034911019135043826447001115361212022347045464506971606144152310892891399134619077638967393024412132858032880986462810336728303445807233549826279372171260205614779856981229547103756977498122045196548751167645970050228675893926416815396688719212624206625683505719424159561983037585835487613669039913886642025726903761163374811035833514030784082349980088835232402327709741482275507988783426869073467805383392633052305268158933987563629298044276296505503245639038876573564569098880665618187036524627759878023277746886116346384389190072634346234323154212416490161878254894416586117206043655064209266474845146963219227395634613043154071456276977231363332932844604075004477352305018950394540362353863042766929982593091838502419683825050959929084490556523292838649696406882940575252425033575533989709369037175299192460141056020529688631024944631116646579840777427872247442156296130432125459778738213652387504732961672396510267486428570844048187855740090721091877009873124673060138456549815041683320608853802099731706617874790281833543437192686766396194400603385616978919833224277963084802487511754460761527919719797575785651035778197706642831332097073862605244797423054589614570898209514454824044175890881669861328022651568307950203627176845398479628041266726744173730066516840120716130637889773377001912570915893768752208302366577908728061194442397621614397741506722461859935682644693366565243267715590075036500879079689232228340988380388093437905452048036474770718739122610210163794546500491341495468487951230067115126244124792392473924961943517035136078342117388372897059339514334561970569387866876324387366398080024808829967016359042377457733911147356271273257124459934904019635334067970969553192306188473583000503078762647917067333772391885528268801079240862579028706509049123861743361935392778049593793147097230861438984039204816407174545874249496947366406716710269045551351766553274267733341885648162840317316209520085662604958202213492991112548941637304011554671892737822412081660197655686721656150279090823389842706660682845006823349237645002392802672900906126323391359122833662433041460325157706239044279603029598320088656356569976900166872425128663440310767569615360693014761242940139387395586841795235649040433032823222065057698785511183068764995523132113035732853369033462427681039060192626887110907022858203949941749751671683157432796886399370781165273377897149131400511838877636571858870129266895090184896316800386801289677380473512040484392973685393129553210956136873319962466718654866562956798875344422541665016923139879412947010767872513670463471032343244834463682489092570127363617711732815258625942254807004415539835825914501216120540670470066305191609352964562346212455004145179233240063804926435311576087502671345564329777760180422573621094267779583540897946136638636006432709251081785891566624223361429005804264357862680831571460455093015756177158324312363109174266842097941663185767820939134385059543810727885406224860909007011889908767805945595434399835369501648835843612876381728706763804043448406414762509367970959677356159581383501271869105677040431544537389974233231826382336914375344545181941700628904536865749783922548161582859449543952060941809408895032838792980951700069929157013393497671169621858271681748131553525772784247236081866478158353615125788209776125128572186128383474850839332141180797913398688184858244373150169495257102141822114128042149316712173899450902439023185750829290161458318187876303999456402451469087492548452311428689450752260208339011035064284182912523492155144950614855877592518946292459108647770754134080547558300795376557941110831209207244162144764734081345292993480524556069623432412394201461961508916538895691877111338386609571103859653353769798746150785928923628117786678553098392721149965871466423650587609229091768129042516221011552216932709991013636782494617684397968490414187363982798735414582437485378410336177353853238887484762392276629322424647403035737578251970024422769084623965836618785219011217244290485659045824808455926037994358026489417181848180528629954511997853448515042593961102325587999310917633862458431062962765905728021907116986133786520833827256643317057553061354499775503234065341292095687176188706125992282023257730799300682825406555459235300830079616179259877034665571837028670313884851841105291294412740500554495215436852313441285238186085817297830206226175404194353814694024007863308249026912079790753074790743263712487194770369031199173753207939468702367081483988517016456473277693397573095920276836870513841234023794434417199076466705685384845766705834940670686132364408780203699972992944330567395200783757062797474037926507229403220963521617752640880272806042160572867124972252717836104263081853514716331169950824303992522653509922949698662764509794019865686900577579178239548762759322888033916020057740796549956317106275022225212834057686310817799908309052631871549620637057841065576009643347044862188483608258344336682543683318486532939069797252147553525081471757249209837765032221005359671341375905969058712451847371571507092246425137147786127448399630312441036555353260992491848221045849293620357983390953019579365675157290086029381307664557930995243611836750829724764567466784367176882026803132704105064066875265826446521323801201146538804140744147260729009563065362411131173460735651122869658652290580617189213396229126206652407576995420832683405281719408606990485245026360505571773798929026958533618209053138176740606984719122080131219265798700501792280720725280389440285761824587175004914738359205035880869176849894572232729111251147699495987300942566211154898038658990821958997909350452431846860379566291475494616249045395721549089918393286625075025133478825418063411292099877710329531017325986713719539118809161896254890520220564642075352569272298967101603709903632498608796278921745500347491929275197880461960383317794694886296776060637016888930113377683356027268261142046092951290251182423294753739296645390321769989060984315399759252344589893029777714396547135542089467290162631168054329627207170032918555583406049059843192632757645630208000833707629027558521854409780492870372802774320963653699280920298603551332701570681580358065473527426660700430145794672591714222954723723504271844565291885944040954931122642190724273850000320694180537929558864012320324299520294798299082346369520039489817053623171197720232132787960532656670285004452768870812206011654437963187180937457564057831087807881974269250134013022015796194112703136936761082487291364917535154898834682782153759625647414371293903524017739756593059711987933358495677784633278258690584835184463508850593994116909205884005740519993413237790898775579080416013539471473780106957214850994845526471291175703687569260530420402368897078329150495917133268961805067517033201003099457631860891621691737490005256619608437575135685835823586150589961325619199929890783280407667496744068915358194846488507876692631621219983705161826013860856163034644787770225133122892901166746368298799367642334763019132542770058505014739886414224715429897725805154875427114568114941522930065891667507457918999297754288760449847665066140221066273093972979643825959034407466895901498829640926102753708575681820005785608378972423765059735984135734792522424497696072387582975328327382225824050710960256670885859687940460570944258611431553181686833346877433565422482930806367097772594178510284325472919611860142650159908642249667620092826606834064237348411795400036346864712390782855822608096699868648766454524924089287949112723319453005393015013262828299799794629201111364790553758557812331547519867981634546464851351711847546067160628720830357509773168303666261588875280750633007116259892476410353710536388613437090339665558415323246580460113907307289852378406282678883614388506236575641116393372053196679800963619504401387766043205903881127487436187377103814932680881081378433177227145052215154763874265242930980689217159934399478727965351847815187881892605265921109347949003427608125897462019212956344885371782039909736113777790485696159281500581499342819058739892104813362195155748874855250505127732745227526320072720127086340410764037526311953154701405082435115177011333612994448722898544431376825714908445172183422337200709724725902277848878054376518831159377301837385950037387955167184524447717248237367256327262975145049067441021558134856960385350096243868823026157020624682887800495530301877825906442249992309083803730596468062163625844818326747264926874263576431085230303183400192808900158331011121300196407484600971879652065270093977077245632105375243093578641567892970358393123251246582530854554070279523668428841075939529757539735380763498156183242772830649959984717807314420962226024560929644360286303800651534295479624766692824492496987905073050651007497796866995166716600509732716793918248494687367976440701810354610874827165340133780709923467299913858801781752573045176057985482406818207620643123558623432486913558048490146196490306495758391487828255953055937087317713861906958248819651292190129377086309029528002934669036788650128009483376808813572848213387355144817137306050680681132559063683427094976710758224884548956753177178986993663400984322929154061418353826036848664906452314871610349300628861192619572504404246014306255862547508791586286217790774069302428897242656884838968652315925997373235590183242292119630890611316942086743026552629164914338181604666401055705255268668621902730326781266688941259300754421491826948490192708386922181210921347933252159067384254405638100263400295391487222951466425510070909040293677988665604164500546164208722997258301238656907505333439074015958437515179215155777581585946661634794380415819568302064540679982917790112566785173666373760896160669946833711737848158759340890139326660378046913335916107191445960346677562404226580676087154600519675463238588543978202855413175286981528672972757860921336245456524348437388900169265518319499064479002633739125571863125508231339069645943349807111496312802281093378160681306873914102728707862646606149495049051567367935757130104696527830741130758371797166752053773148877147627433104409688705838904844121917811840196379924238768798303547206610371893041625974129569057661755287277762448257857133659056636014135614264515511394539482577804611612935337776061293209558644974665437757341848283458885078174982448853898346470165487895794525999739841683240180098810854071477279810062803480272795909455551176236507099596387830240220819040449032156135923165523149222792702039359728798821658471029772798211933053348341359580271133712106900202906565903766578808769229327347417913765127890581466334121951237687631964965237260950048355952141656216574408503962659127568341383720869555590159366938018254499084269092494312456411656605647427730260908107292728774776268088217152661643623546760011135119449202210009572519859542077676409615156527314982144847337907681040584683568381812171555906413133216750584218518654306726160916722231961076770182024092199137698563306393419206275422480013786315406867199451622252652622815562743429818046310487355802121635491720677501217314557728580327343894095738196353282992435229788667804481528020905367219719139625320326761770488905012200872278822654701602711062877138125755217471644938931622151779849553229152737689126147164512463102297201324506778441680141486684140127479252395919368856742183155289880378855335167233985426186107336922598052542878099151405109494500883974002677120940827298888250787786812252523983413895176695311915171913144227522440485132070071988457240762457385502415760646880195170657823539115902856761873398216939518310511789239815904801472239670404995595658674711358440685425409973418430290813957220927413660335533790919981620577162691147163741823521387290042766471294576544043719538800987916243666146432146205528439147742637686978871250589567541132032216865847507870631843026047780949792280657768259066028922027892743575536375331506638138069217117735259695612514120047694181641871786823940399172511014410468275385587351488921837467297165537076404552094093581130170601220273408594023261845120353681076195622836437522543321407089977758654573913146206846510125723531822656023703448044636944256023126581497643934133427997034176110513438592439375313394385064556575782962031992109951713544895435635697073785820507253367158100475316249713169739995592179723379040404404087529259326837803361004548109028393490858766964429290398119543560667871352592396345317892927324113550777010166607935163075507337041995446333533671690293235026004563656412530512776749558753921080461567616292511523033618019723089545071314966960734371748821036036974298468415817545121144837734251699120521910976607350804773113748633596043851621862257704148443824922457232050957185482679587552362286203225453271648920086547445859238606529081271215811626086977342157462347978543700001434475601252689059404744629673463163997881907859078895289265598030280040371912821237099565781624974644871779287525402739112523236469366332995015836198102400591915471737351332671086126752021460997328935845120601310350269225106801261031065259007957388209784142130118345858997123487486943061097790875742615935939160760030809479560256659417333354248471098644624555559359863001369857814287519694706608916864108283458083421884643220160452602410654466659681707344677266819463408144202666876111331799788924970411080561435952050429138533558543314560731349628249333254283030194491538445520367824795356108987810809754472461397208158105813850483251688666710457805067949591007627200484031233836095102680388100362334118702361511809791893252065114890112240498148055874258498810568736750608725782715956632586662895704434599598381110206579472590203336634688659207191741450030051980478036721401411425422163725101318551255172637067834264743027307221276576682450934710236112390478192081122501258254247660748039245584237845363075638415078887983085838660988425999099661543374950199250248227737827571735531573247909306523041678007497397614701831726792221613397001300900366802388648666146466121451121015288376635332843285919489481259734718818718899460179584348182641783997327917377378993076835238314054865887755809607804160598719123664224875875280720114896581315827320529305475403640134542391088877019460179089345433728278506368288627822405719049117233954141952028337920499529496820918626687688665589750265652607097816060890981599135111576949894298637687377472823929997648719793943507816569077237800416592919576922337511552659156061826804063329356144527611017427141694157921390595814192378428427912565046389459450216040012134878272193356307791024913709385694328526413621534334391079479302655498337307968199222597160841377813531731078200849656120950191121521838430344717567010613756073353779213267261225497551040406252758612461097245899867144641960625781673869002698534674528283214215069786128184588432388501504935072215573630515960715699907436234263388441316169352158631539336438673634657845607283742554630616397258502052071808162784801094853856749888888148789383382714709485794787641849428286523955662384399283776855678904698997182248190434208577399854822748795682524325370865825873800869797459357994851076030536000141771062586248484514451143855354405400936383630695627458386018529266638279992202271219607278776809257767378088052131711739871763930575111898132387789983942915101812550241179202886617674108856348042699741744637783191213397558665827328506816069599021954529302564040091571589166743935945323767585868808976237593551241016658404755540476746537668812979082678590035812203080033709326635472439501274221551836047547285582381585669663002103897145578588217830185926600871957109703147787004570925247964399241236156610922331309009549776512928633053160702466514638845005178979733251502489924689381581179400331346002582793954678423953448072108900885743318099668863581823161077905421187402928010867490290823656575677903625760132155381825534070917509862000811294139654754673682005292115063674774994617523670270501175091191605238717994369312222968950226033121971052587489930773602162236746581979350624439047890180618229870508172605153043656608706656373253161621229636140951408762125725309871434625556097927766396107962248369070487591595296235454545348895884690074446033845781613252462976094769668945726311293949956310002581144409270581470548221687325898389106212724505406092085815844289327431068860813404620890346688158561152700927039013973507893870876994326729937325544589708784635169636093417393027529121878071365766059969475175176232028919075315609551637156096509084685078269103790486478145519351396661565247162182894534844303878009810392186522825509089096729173881504887681928319229615021407201063627344460152922866539019894576847966297334506208497514660129283606626880049988599035665343436212934276534372068925127423597204023544396505525023106050230535701465564064056314219649847941101593058335640810800537009020542902104543118881166971349946901674927682238364056976467863669867228076740540548650208626288510492809483977851103418217726904032659219013272222050779010128832817469106757521099124173520553622706931684616212062345614549444372580997216629861732104976866168771786100911497363403478780592910776472620803890106325320467725034141357251444465770322227958511011472244794257587478162828057988815484701087626989784280666036659644707480075063266194975731274577855310640125919059538372239302536688459282185854658382169362778851504376928290662360812741289615451523553656183770095476463699292870452498137726490905264540320482884003108151819683214776820215140619214958510482154150740109296757034458364650133599001324501717113004550240979028618703259102735203557399788627792166817917924487987404156836729940163615760768615693580222139170610686076917662115323028833645979850453097177602918457305008789773313212981940628280745036116106916870348224443391845761361713505120919098798606073030685573047570883963073643545197339023333796938924039323658236636380073597661844705420945150699055988462727170070950224465927137359920156083605380350878190427943239644266679464043534907494008075164643739980017124218528865899031835238170175373940575379616195731253853717465615454076246686281991718919028599270668299221517808803348229458307933910764217719486158969818868339895213123348601478773023957886728303446794271386197471146494430056080289589740584021825139403929873865952295876035973718133883364146581344881537819467625265078873006031298488234937318676297648156320654327349001508175283409845739597443066194795166119916648280076333454455866342526536970036363467725804313438084090511122179439931862341424224593400516727922095072439941785788907164758879292897824185078504803147023873974008220080309834072103584622884407176585685799119140701592090841373976301312084352015423638122840361590677884447596770454616942861468193614557362522849119068503318753040462783458348696915198553839813847973146852336252284005067960857148794469694394044030585206884180374236653239124215433673067680831614510477084792614063628971472832566876415914351027266951381825124439335388478814506312434321418699931046461443110590736308239048138955508101572035009463430311993822227636015889221413501099265309973435525238428994919057567271062691395797091866041372962276641053683688453288739338905286297133856740808765353004067659387463107450002968838671952051712226608605233945959856789446445021937107681877348373290464907959557151578933835787112532595834536758131563008626239306804995311522869753205439424429146764232148855371045132925831292758446262973261865596911408587214713640432006989743007412747066656684797218747397145526489192020639666195886015525063024979289410888385705317688564377326615461030642792927173255926095942395462045465533173234187547718643615566450933735317321879405109779460466954185699375268983995569755746489834764397765355315482377298921307583332777059402583938918048556170828601364720383176530666241659870250386361579609994612016608963140337294138240013916235573036855488092884093839752024239279455726073707155476347459724431749932527213553746749340486508565107463979720442314741461339413919730643532992193810642478137669319205690711132699109985868701627256963939378133212425499159759526949734429374157054775254520967479642171273500004390399301458403555156851734291879994171037817845420625295672548428387887149039378732687668455076564585855719591968106428214098867990971242171244723795377845851420991722264259011140235964648437737366827572242902031081071122590282851377077474153719671450827613909760395545990110220819330232690819796016691603124315977607268399498489715804693515484794402472764997460845533591789096761731352811558225809698653882126939990236417190361275691182223895124044062346705701554466468356535013205824388609566090434478930738704560379925958007485345773550291027854689002424208204518191842832558471325553397494399519022478733463219482413466004399988629980591791480142695519399257793839857551053614139681103726306174509075572766013537987251198656036950598379874851873865392566720877563266167188968676928566921649030422410631668325175872003560875653902105425446455306637763877818245593595784107717644844481096968256639512988671890259109414863699204774039480960975673331906043376598955362942310576687319631122535699084615651122111949347191672810945583582609425729095928879517250652518443140893758992102996574328224970340476013287217863928748635968684160422065552684596425752833548669936247232576284850494754754348270328490059250975660711478798522700847852334066471712913945882883031432811138961825072645615850026654157651812838931374088415578382144434356976872461754993259094961110275778298432061597732542290346311132024484299812433549246173693365171819918362799966461438172698422347434798036888095936844943756097764526836610207584651781087681007982470151465584980955879976066418947092242991525153525948872350566070992825440862805446884460488690080058878045990048472079069962232861164424379789031307016574219144364719170417524273879076834187627394739345211037448837727429339154500373709455710648562751135457612632713661136037228504248072313180244832361806426899022636463668114110445649248522475955382470958553565472973385904632977494397472305470715348075757801635103149391930923654953650393148371414462096493889003157205311951017010019238675635350179817073496287167061721625864672578442965609338944149646814596942521069386506006842983121096619187679501903327297709945429535339684471354213615764695538689816587925064419619235405035226126056749302130088849864279910174911336241472611058898599321089111286539510094692070318521140020121585246894514559268155491407449122140690621477464562170532554867082199435856516061649019744587394074762378709598531257262703959388981162504995608030229048297516786303332857120933160650699724153497661383817241565343160060912989183545778629485070402416841115019419726733180376778018643747773681991366502768140389683186390035957973750880900128067435108636612981006683702509338097516558257660000892401150991863572139606035690231665752125370783096413639917932287034475727017065666426849288207170822735762978351645432193718175291822481584729867344463474693016079286785930323464634152039117819132979591495041963382402074710100891188648945763603521739130419556174075669786444144650044288074213666147424990572219653795921578461328369032759580605716996555372033952781654901918845780811332195716575072685058366415312155189562718361017685309754597085767663903393641989411687653657411355013957153297007595506824652648138951809285121929048032281393030631066766898467042665186618368544744316995642502037349120542512975021885143403278812692077557885327903633057759840396570662272844639957175511196263807738156286256634078569359618342525074044607138050308594465476055511383075683269695419807103115380097487879990802857273105846550148975255099344751109340588836074307964241160760460447393185487524776707363944408346998628465396292363726729928198980534846061382730191316761218876635027897529594802334066240271966591976666845800794940356163823898052400940919336108833885590707564946468642962408295793840631726725017086504097721671251359112936170530546109321923321847249717324420029629584735715783670652854090614784431394894495625658970924793549510727192140996416131752531976188584458340248471487587310637745149533500637026035617487678075547267441638824918428309223913628876962415738546102933720734343147002086191628827506458137965623625039539461873024002555291985507592483071237385705815392496533539729316102566135955229784166263006604821653895929677891808939965093750104808163643597378446096172775289840517989959797143968976756868297313020812793488713621039280056333285301625748995391420454688970890862870963828681101536473210508228930821442735367467948294596054123189087204264201154554453105418545768283277278103510651745327095647321228692407932961474486833746892497804697693066859818516161312743890529359925285251857848215297470504031472594422419778214144999476435927017849085287091335718976000524968362448859147332037798277275973446825968476925237330751399302021184333644328869856487653153732585749402640840113732384911796224879913554998206823552085590632958937269352105896470551628853390525632946200782210238749915998300360797067985795770676082862767523432949267986625096778039008870787808441752421552494985776408030078269716762367981668854459386795031132735020888919686235614429319995041932306283703235370018674553368389419458786090254459148516945408799261880162670095255178116461480911127250726226494184548354701747960404007860855135635492725804006915840228958441499964234151875114223640061778317326444332560976576237163392781163481698335410157164207796965781077716935851297851504450413245152933592856533032233961908197093656109026832686777340833892502450883329172263968923311930041720738705095082010875868521094258877234832609092554678844020830026985108126408571982562668010702594270282033045235787688955639313538279609885773460783679830675148707282853916610460632622041170482079166033280605614687653522891172874952527150431303625158845654038431624472152500127435968384470960895240354881416362184417423176144779144231756750694391701189229094061116484684627704209169467507422864189073640258825186861274623200977188165121105456749657567946436508665949143700353491774225979536203931338943124092282790652897605982983222176689541104850478387611357260673540506057592376194701552774915452139629276456921703100098935723610433892054651886973287754637995771833697566461896166909683743236719349033436082933351073337706384380239322978029260892909064778732765713894263178997415164943347611120156272767198906889424493010723270998745407413501070830436465806677776959455002230669704105022195709282536537239718759847391371229515688875673177636635023052381976202467755444191834914899701549157503449440189518222386975488411452118125162934307326189242834154387653943963125823504317062147853071793651231787230842210317937138153145737965314902565878958237665749774579432328372218713152056381242021425267137487526337585569640905985781737970662147039556347893449335350183121753174552648779583850135375737402518189162646334944764353436831676823850008504767795748842073517154922945304808114535706947805680543591183193617498000173317868969816068147249235584367387551378129539844734638567209808372562094534576556719153522690886814946839470018844279087253868614800388539321825531113761894602745811889717010346174745042548306943898280599311942046582150095532925981419024914041435660691504233998343542215994404311716783105463338854729663397557237652391328306197324750194373313908610606117042401213826227516251815087031416511484398756777611825412145660494004666742825268196345023213026269371351010305063148666586866907078880418599567406519111444355052670897048208306791251252099910416287719877538689058022106697627294882339801828133240711942517175663335168231418245879049701450999328719277487210253013897230217405673095831402004994331150387444092556267152630975531454870653771535626038192770898580443039904508680230195855673366542347863065987816133341009507349625311600351577065941945067455469559815770344740778409882713691319860976105596440252615766149117363173165539394306581457675608269759679048695967759509965183555665763586300961790716161089158318349654896411614545509691522808791761218351779894594835366154919149545418858789682547873441065271630533317673810789953943886656535838755939672902844852423155922663358573589534976414053201842823343553168144214160059460291475493532912930221462674774262232635128754197338421215530890705709937249908728802104903403268121153420712122259567786523701774315511601709489350645499525197213245478071817894588140622252100505640392480813186113841931624496832637976964643830708172416754724467433098869299977027305440093522812824357790376966947912653072346706420018209173624426329707005433738706262666873645153259149459622042909717966616627233986747659754469139835817625434619936947738291795045920164496274318102194946122508343485496058206072488822442892646477625345144436824052194900998417591874352702624215980124234494772000477941085263964651543824749599531438553761299197929891490377688013078892171994845255682390593128850121959832686643260722564257269510336200796420712374869400142948098816008412558587425750753656771748818326403469091542155180693429926591989343702462015232864963918340241976572946935590500363476886114227632352953592355858389978945914024936103266372536299427538898474097917564687133859055052747129860056478481113396744766489011757555237499565246276793589651242240565711150655034068739686685506584849483734376039060257253309107801356686143098477197918820078037228348340332498290566346060327915827978545239258283968781521402143313126204694056363886182770521278421312169190691923763104921180710983544615815286328910409361760905530491710176476976531698849143892213131163989110801194365597101434923578242709071287399327311228968254082121480605323172668370434100428832569649569388864587036925797368602487116879504927588810336796237459434205006346818263897449455781703046712089312212968800730145202029384728935729829939894154965697641663225154166443332705508303450571323082157624443042895053208286308163998490903479792850549378059900333048325879941191858607781103507588890578590126156978866811994958855975808539698273933258397467125442156017252127921452418274533707372311829127208355588081305135474750180958182651726562847464106721721377146026969533958960170701036040430834816751728588030857284033479312847070312291208471356327326085506841946043572233762229970821218604432253030981032771548636215421767042934689331693809452825462590578595814557565227438805063277197548260720080330969139954688617704862960866653450561953844138503150031610658799569530604697556693589909868465545753933618778594536838107122852456532852675404359413864069128056489833679135372851771737603879059731272258650636038078374248975411009808770725016386941170785215243923004148705249907252808112817667709140054542843498111421247028802699523732378144345995514517844658129911984905603980251873242342518502598651763726458562213244360219291139819845110313463959846537773035984523543804545317757121501605625906588808383683118325201094797781722222726900404547661704201977482492917792976653948358237234810857680234782990943888345548336830500418448211789115010062357278020649753214534196496904253409473474235055470940300410312641599355944676720649216896997641980088025122424583012934712196264374085730287418200789704953252637494291430711015605490421788147156430783132594944364783416080225024292541121874016456428597673332064158778713621723834452765604767968960503387191713995694441817700090256938713069941892538104649308130620063417082027813996737392759319313121900466507365814786472381204425197288291656143676938977740203370136188524154672588998893402450138001570539932315665081919118759405546937192994017907727540961598569285583672543884032934289881107197808717327552132971486452236873470181636908324910840738906187890993042765017633100165104915952605804500959310850437620608501188608049146133763083577673620312408371104717318666371582455886815180304337555677083695550453572298329399779579503834437627671674289115838174410432765569785532432169988112550209163355806482701836759697502497680604122801237039587815265654694100913172224884843546842145042140847600418341679429990601013783502150747970803041105471035851675630078164107115595102445576454597066160365396970826933941434335428624711082536426588551017898463528114868889607886486720716274693233024831768189188858992646986819092254815835875202967426621452652451189809163212632173379528402212474895848900737606607749556714832761733255705485446805136269761989825549976591880120378335147780566123965929553520209936975865510207296420134137345938240301438276954857420418168946436774393640239321185744907190694196866936988890627457785671179044344468441610559409134151410416277084431582188324154791982763305760466721976467954330323189336445006103536481332940735472575395053894039316371725677042648016962126492127894794598223898505753329887674876168302720521452915563854580808368353467858595575987076471632090314684227891427354900515238720927216578396492259257640723513531838096686519009361111913300356575258002487641890858995679217141266519491747594002113081896004201147131468733726618329394806944509154398682372544478473502620672910659594113944110211171179392206295260816285337620218778311110725532121478355959405194459707637625252586465339655511771283893837243483641125129647726463046204690887447802932319559397176032587730676258351935669673199438331230404608990559949005630557537812402785043683048705441304774095127898750805230012227695861516655283238412604196303834491295511899457706280976278736770177201732983789643341641358539120084426728805065003222200627187703156976879192235661286683505825842073156999599581779799490409203565252110651992552524019496225220857719930889671268314413998053311456617968187106100014410705074935189699382070271242061756365348996508177697381039163501873841898689631562078252230104551039353453792410497664760883910363268394121964744969998700238945303295310327676160408620591104545314271430126222098324751390240888870747427025826086750225781544243035346506096223444970471332377762778557638037983037081905776712778819775947889181656388025079587851937406207160383194239788353412552315508866318399575484708797496350367424936369937432313963375963672928599264412904925653654625498569348182033242814337989672843871776271603962815780419286231403159988826312918202163485580676905248926875975257397824580095306520525786946171898451205829043548996442630731993443624064030597014674854256975007936965904595718674047009512124005860638363990681318270386195895838785390376098343355410808044790254445998533497882978308343299893836933081315421524001373867410332689809488753983484821383175968973968499246306242646242539132888433879325192573825781233105143825677945357276736871326265438985479898142808788251387095312911607497699422006579526464980548994703796426819875965727569942114738810378291999718070012182458122965659368493426642345989661426069956673813970594165431161639018412684474135721353163004172623695725752339764630844588162112819296688070290345099070478968449537199536337561897975182972374545249061563593031319111372064078810657047107589649666635315694161223148178590876665156219630388387003276115299106197029745254994436475072543785081522115186091613614003372775714119534421620005169218576418152439232299270219019278069733932037827008717726934393729445290592215636892964992078814815763222522635984936326770670437269275003650475116348633725642756218340118096446701676249095852712024057751121663289463591241143354009879280249143476641124993007070629917622643928641350074414101188311458402449312399655477877796938603088932621541196022176621142232443715407564563507197883329398412050282074014886099850910543704428985451479952397656143330362269155159338090595524897794396522999848133159421313926465736842382968036478742900731032048142058384017672628185878113818802998292819131723406929147863053363830437461275812231029896117460391902104099200685430104574575599309731310836696928866024363361247193932462194321511127170484632894524063147143241650712406548254552409697305820392047270178872898266394296259499821164331192798909673392993118011449901268994410743829976412256017849363257142690619816876002011348685506672229303139378225098538150482118833264914217914538444964032234446782820873209362328021294321983754292551290107294499106375651585847627480415955711826941149798811102189884648928168960521178090618066503503853996977569349981218439879739210719963851211062971477994904695148024721325863948159581826953443390327427864325431614808012211403804518884604952948100719311821091453075677685936260712530665889350538048986217502898267281909140090847407222684265260307108754623264972139750922995285588647971295974975992666501216149381307376647773941832419825711129435542105150867432860616106347123897985576759842304976694173799051127807179177716210429868388854004167392120470809893405407967515581571332481626510078022633069667104981878052828286077776489934848157376273016714406676446818081136251167944343210468593728682925866819958930349140674910137973030872650098329782523554815608728404425865978694089135366414552831944566048070407788816857062847585027703023231720219929993227951070328385795358251073723862331388197878639658999817004863088313668997911536342567442461002641391573690439047962251026219134490338693585082369026544889841881323461683245790028105670954505535929479979451172163581905082417199187717830742841366978130344839452961589436922559092254186598344684757020419364740449843175500273215395750922106822369123264637676813423606609650472271573186111388840028846986505692130684354228348490483199919181058132931469723863144979012139205550405086825710460160803893894683703117026947457317478107759233076923195719226301035640747508308013501876941987701536404010184795070198707291245442461791583164783455685540893466271413189330132747566953752581987727351873655251200890601132670652703817263920935613804473970747967279772521895702695245687300807681010528388348757426261562908192367405866347999546641654601553191163584691063454986080881147318837649984224067642232502269053971430379622152413516633198355082227815853668655760044472456168370918288913486915711062992989955065587268075193998478928450672249751536822492477711188926047111506297740665905190113250468896451481661221963362479091320257400851271767839234041393957608778737493093283548063650234280011906504688160419561157134074316305138929884119863990176367456570862385331937691847158122597167074306427845252521556148950897237535685722796639845081530107129888278323889164994440942647361157928138769593030939574050839819824502527401456624778347201815530249337316258728361809657070128768662901525895411477108406601750622458873679920706836528688381568807099702654003221183363749387048959616367608771889238645708576025735491940457106320030785827617246426254231219321026530201018781422224837731157709644792469753379759828941380603177944003711405135949993852625157193219784794082475629982713676770398037824377075027369194199607552887808937295840896927602132397726696422868518887300793048618418854385975316514018422380427759105465629348433089764000655965237997753013017589894952718223537748872722466292628871457851051876007263384617587518009557074007447735802348629549479573361514245354170264331416393703209528774188974422526322861519819534178866450781009569923012224731005021649963504995515516707065946496776556382369390548389172535655648228282689817846231734293577086790754865644277039358719968652400845900975751573326867105798568910722937216656151124919020541261541377350058317705820025422124733015828223027071245953555191949630201120665029068810806557755252185043308585148759967686026936424510370898155299577377717786139821144841565342869856183406890274139772216920729157708735340572625218261288614070012546094657450859533079514937096825687689814143112502803437675565736335953907900836232098229916811575225318963725366498093724856403307019552686446157892542092939838972456932783749088983029562690031402655949060018831821786635697353331113511168526717141300740306121572230986471471871581667015286004281065816045652462606704706454223062821882889177739547755168337529421664791581550465607884338032181300168912919489143211177642669001135455974074659304208930298994768248038167392823294034183150397743815991203222755417729678733555814960846327224239294360960817659312126392440219298534002904767949128368203841671656560480236164725732358380094849094932998007413847727631966094657685342292579292047388554837705292836225988848311777236728943448557698299857546566092896048490035194752972878770686205419550938164213100501794138374875278612106098356575769891779117452676382539437795731797302296115247817528510802903551316440896435013726901760770849516223700184967284185937591096888765683845269961527413690766507022081473454843642165538795465634205786840063501749199159323657314669204382744219278902133155410905778242837335775277072797292072011918109131053500050633835880574515406411565404432441589914832300527888633960190379038609646267725949099164237122375469892876574352205947061203652855620648840728997053754539901906097789930593950708830536154225607965614202501470952517826697549887535310377807351610458765442844534256267480995345981846928933344881686268148173642865562056213166391797542135383557788497767516743064197641321940906497428191885594733353677968709743380554748687050555914520009114753286098976149055330435261588041724988167143825189673544385344254238569033059998263549676594329751924237300176718760265618509879645336466605251581796588502939345093162544188823463917814135989717427263335704727036318734467802881361747131546413646971537647137354653323166280178171499730536676958198112379929757854233353893351474840110426004783753677151638903320961057588607324974640545039394523887114864897900004280781285287403965209869085831160218548800489818990325225358482070490408716948114153698662863311610904354242148292863539564953135177472018348262505346234495452813799434322607588142999115797556091304405557257057208842902329297117479536759202047290705722160512435065372368098073308270492200250931923305769376580939932559448555153152062091808698471601447190940491144379167532256357975501666834998100573362421617337247075758763642275659485526601696325076786739336340264753408668275222553345181258658724461695140130621621745339708257874363282376676908177781915629646254479400374976762533032007746439481862516230385842039617691782819349767130522730999328359118010477435591069540568949527098588138007569364693756862248652707546186838551899089252109117457399216715694427705645292496455694649215345514927772215056323965651225886669064501160582791091530141261909319654250459473811975645219850467288817779021694649895100809261570646269764232122174139283375240394120578871196772322456997408112922399886606780981317132352801640762495108098149530321863036315098290380576703327659582054943261858000040901692327962448073427777244992819810036970844870111931484524462872712425792106410801199688635637774165260273385384173759979266744884862891552222156107802858610691379809839587228183021708743020638663826265053145159464043918509076487224321946022004104118615798024865320931470921768032185359825703689778738574561606235834140164765475525719763894232307345650433596372188155443465404916459787255836657597691514529225779260349023912784988533567476062344533694706384137743124347673773191311924403691674746502997988943554990161966388078489074897958389754914884820199515727783841029762521175162145103122431243679935518132603565044163229451900044578959449196205971035146171882934580421150095103045652029456871784817737609614443422757779140007285624427680535851975202462962674570559412742444118601558643268932559032000952981650476680892151781248200577521985291733300120630728343532156949708090554000575809790733658077936228406447512863883741840169391603897387595282294554812837444867950224915832473288464160582205930105855067123436453966083158869671475602467563294844040797760542610503760927937653336314517090580442567984189242967183024241362551962292275138459681767600440381215221408479330836520857758503904047237828953873105252044659353945491498784440091618580405712454618744430958513888042110760936667452094387319636280050679557851223010722322293277780845739624299704080654022872220730979068727266052272848412283160393800676419633440986204549242213747463578715378474133942136054164282527124429074957241702201571757381381939652951715087640786043506647979949382480041244279445423888383954229181901543529418099607795920257782719242014002005036596302415190446322039638949236791933086816599778275926640997769535658877679283320381466508347623433625646180372642552303110186047923965537558127783135647688639378703308362551118144195458885954283960279270340702391600398604624252665415238386575312450300816412093462639706006385774465410726668344979014869072316870839744514282650654846632735239667579407891730394179481317155525575571369186086220216246184236523288234765118895161418859687116709612775902428231152138057867265908636503989859643430182364089489829822037386376718860084142306275345857906253447010548215360522245211488136143412252314882547210653328040905266130453738350469937471063436864835836972951575243935300378462112259546868500542047867171301328840232650377328277460696134384173530500797076862862259758719154049210922894163295652782227605283712665061553027825870190925161783793505871276778529228243836991737376245592743673535175062987767216877118286560344965502041404121705452182434219754401365011802138329626351272713831151506907866724703704840485809687041875387461597432596506912446986216854664904269099201504724764145447911224278517658461935293630061442914818887813041579705111347744221697233044474780118158304571960543888866715536549902329098701711358971384681403696159858283442979584115605411807343003564550324368938568084021698638005608857687241860188063647454527736175647030892727393968923099449843038375394753232915007937196140312263426118139798794074883059921819114132200872087524789951457445457735081459534132275183337970611456400363327547918899351007574327545115111012783453138077359559010843447417486774085176106151867181726651129403482490104868181739054868767709028008134670539479608306492940141443576859423654427029768237012985031471437839004965763601827020190136537163544176176376900323679240406826070137794863663587145520611256324948724982666857513919321655457028443949764368726882187241620555203402900891460757933640921218352299257523257481799326574840913783964122239009268310128429847963282684834708522990139116357545126571731396870388085034490870502437415803572778816969918008368544772760784866822331704218517211811946561211156944652172544385940895984688383696911095105061928848941388875033678177945520531326096684149147992025914360549977222286434649692119059956540279140231468330278933437491472522471441554048269358573967253834195102106664963070058999950257853497584320488513309415957466971748810243366219460841148034386726874058473298760534241241561844701078595612165091161697875880600417492234692311699767991896058650963941931287373377256038857808265411037953686609662306801369302034114200543011471904610517035980584324688481570722461789358174042445492581716750705644716228339315464844464185895334971728388336007084580781977771211829217936925902971153547142557092022470524190626668939528097615035100893836573510972774866783652671022133530106997194181869439890070677676238661627020372901919630456991747334093674570153303151713687276893030930558542237646442526457027878499733896010279454752253024749234704269759658982111535315690246468904391835931601183002162406307919580963262485084636797760721522367771370541598122084197363567258173124061686444017263695725517429673201739110823922104134832758084555815195670479060920077509746570831620815393132604004122171733725960180759725589239455227842246222869351752767164538128055333467397085444856186818365888073101772327871435322080002423709763762959735342108277803822144399104518477270554015176412765244025968277436732692274208022563730123961892089956674166869707629470800973188646664066644100087336514517874391092518617963101975175191297595998025498947464200265195033832115342435011911384293752186870109994264773545205523622900885860808305446352579852943146112289237862162130589366793773255695464355058270471892416341317014579995942362225070651636295753325022149990455074796449316739965774826589465855449408599513636758682485158003721923898876047340977559183468522363630549878178109124271106913528084628020014476375399949755832497077261442767669118396270152131514200135813151566019343553117274530913474688109878087314255878865689355403677375115815010696413300187155254163161811848945677410942433706946969898927076645442198756342365635635165251206271538093304401468428950946561517984472659292670963650585884676573247176038216009946675940637697463304053780780482853618849626166403989278857626007622315158941582571554850761525008229859156434367108343011171363081504574734360123711214805006876514871413349683132310621521783339614929035708938626511776574491500317159301641978539239628775746079166882921237485171904094218750808892732618602574802488820634514500816360711891841327030244091099519514015241052595685699315249075914856902624573542357781315616054614863451939189576664990188599413562360265917614100584763973094864820078882177689043998718656410206418944306267998302101409094762584560297681239839275205817708735792414643756638630886824761792123085937690528091167647057696617327051176093877585693141444565227822468867407407980881643354023724853600215124288202809361544235950562833895330015911733480449561028726078433846005530941650807129333634017923292567420153753356119670970794424845844192232436650556746052676973618425948520676281655422625424370254669770847218534086492477959502334770398284309138001444653177042049200657423278141479355004556843428550713824977510698047618936942412598116285335418640787567122092265615863205752837516086944917892559499535618246917711751423690395183148439260605115718111369093622627451344210201074980329868374964915068826438523366169611591977269067563283430872978086595001053941734557506860505997120213828986048726961468180301728295892724011976988661729415569836078339452704161439728591036025118772160578380141587488355647143029638413176181035677813750130425791132892496932368652961886412561147806688961579966974150168798303016120023945266476916012863228024704807187309994034656034576550464978378717322139372485942989853830827195257692087426068268591599491099704223062051857406014947504796481774691638609534144674230287029498253691443732105107918833195725402873206941791046340686928937960215123525481186547179886155159708792301743736694779836794225591947607853481598832765383626118324337992468549637693071437981265515175513310818787183418797790289239214372240453795806662467832045724247438506671237415452326303959017428249603552217477727836397568698199710777558288806831318666227378544008488415470247181648320955034698705259673906015455792804221465624013962202050322273984662747356298949245203770988693042152669662338855143103342032263864926175330812835995916838830224708424001472994811795363286118806595262938438335260292941351940404093841560408258967054797035236578915957755171955691343614535447981888360235977314782673273427628072560844322864791913817714988719087614444613080665581861520463776701720076326924228706898322954817611489513206970810069567441629901813574360606527585635301043038227004151039298261192674830718053253876462747976062731015229398225982975218111312616912123889902894637964357521071219426274515339716804958700935147523119229919137558936470563703436142761801126845733693976325938492927408752368685726944451851985807761703385290589129872266123741407833463623367399041138873429273738809120589634793810803259563912100646767819117302272756265713969099898020871816732474988327038913352628095392784059716180216314627070516763075572575174393578827521573181988980375402871927024258911058417463433954705751011550051297973105039288526457255402899834001184789519624176668788702832279284459905219219902161169673540229300573760160947386316560678108768713903548955017967731243163149504031186517700987326441892381915972811799437881459906994460580170218375479787193019378213773658732659983571787173863061294731402630814242191082723141734147797623053185113243485358352770148880001919367128669360772145987465989333918641276695869575934682464937446320871405785147350130880604946595288352789555464642966743981599709706631043601946928333069893873219324541648639111335371857345724469361893472146384720592491691488563343250868934814481613263096078679439842348729755908134786452167615716262052494922565295685548838433519495403031490490539900581545755944183766972777985073905702380700681430777425987573455518491890094931534492947572878884420934283640726092267598101651524447977432083953350277224170122648798040239380066658702924817478273360398489458001590891076620402438245874531384833978819924823191907330735551560859791874184855914526500620766169225203323802075718364698426977719677460297723925155432564606676709013354786762373684891444944508647256147071150554532292494113922555362844238109124549620330207175395725920044544257452602667068833941930609856294562046337787588112023351486117199201935814385105965219120027858534408043516669556788973131278275422693104891031353452982041197342180121150146562483135478767143040901105742616480175305368443721065360120079344958331796077292060760566025581963617600538334174998148209743551893677984235905894495777548891399499089682904509698430545190497113980384518959595858127313272801572045907206505923164955049149863927272127260448329283752860879354829608285214630407824487908490615406269526718999258827541427593367628357253414378973756997627870105253959765624893178711083004708389187089308753817530137298068647243674044132121378270539781276473319734944959954461232278830445748882349446266197133777569103604709985851251369368094552276721677366835107571432048054625386102928428160989849828092993703228969390885211593626677399543894508234649994411834988701443645152851099826405655345229249537539891059432050535224467251614602918339376339599559804202526796610365446495969915208199099576067501091925583568916700732288641725262938711819547244001828267468383571801339786485332779030117617771131568409020477684391619292878139308643776463073842034072987737592495576216140082092047575589106405284485423337434335161639376410544803028647470543900882925700849574559759970175284589651598277311887786571857610328449965867845474835074444927309470111783823521544662295130734603507746223638882303109725106024447560889885425872000570438726874292650020488737117652020243940016477324363279342090399658901138439040837099893021966023989488135968193650247919463284577317280005169329651244296427509865724368554053541667614390001840872332039232698158268072026633829976407898919639858241894806573144157200520288971822982600955469714024489434803139447832295335658195053342675408629848502102088369216990904209408712198222523587427404748142029590334641074437749451044408409511298671817145959556839904089705404557209785681930993302077703778118632065481993092581346453816427626131665256674654298344823754287536379146632844273855867860382943119272711670557427751412685498743314956936484404405824998714340546594396587312284946105192625808133219955949947133765491445618784024210169239348687385393968690177415417029871728780512713278826800169373237976204492351706441846872581275582107337573161868933430127414476130214341211610298525033588521330747100732214546018513619928616658904153745715167702280282831842683666431605111746934040936370563738648427029610433869699185437560912456942442919734629754374822454183593883754414107093584145390582709610089141272586948755831964930370069644846249577732834888837253408553728370235560602096399959626132392819935511573042930987888218778943554492962557584951238951087669283837219134305107710116401638175241628648049600798450566987570784160588301732842836103642930852408147618039549658749004293307252106614421554734363598995632620059203583978365906351912970206780319196418370074416753910006590546208389979884783372213241641710347031396558722922907152262072812189385578081043340318096989685928575124047523115226937134587961675634084168949248230087338048897739916825756227488502481210812581270649572590291993367184603493290697237170283137677952669456803870580523475171849383910388142856014803757914531173635858548913768551405589115065224166533089595519188109293263052279359314963183618780613003594666679838071135952422737789445652868569078794475967018219955258113018807378229368382446899411741046396922451189487120875800583066294556617808548765792426929128180358855632192064343988607998700743546783848591485009491960470206522399973445056798506444312772100005395178826465168875164603289969555300700976959760916280468806117022055945553385873309144065276552142463839300176673453203643831922148691306507870055606912231650592958071547410234383788509791453642178491724555760590793465135688163579166612196202325660049502304179863036748507123162146890386860142108019217853917229972674399208855945097249646462149111652673378518572236957453297263114431007468511023226567320572051377696793003994612688984943926045047610073287891605850765756363487731292751985928919394975062705313659680950947963131103960533226756664115229902980202772486786515806308634557981990593036974632490492456772513931640512091118588276638547899288235751914205586773305050314555661482937949588286289727838451839574201770678293821250110007828983949156101431435376961573248012320433450919495652622636119402916133086962403573386441489310120817393664128095998632543402058412098073764996893298796093572477865574181683443074242228166244537692486542825389979631213263159014194889263886543885943859205456101111306124611264941110647508410757318368431793956489505736616720232124017249878069509954629303644390672829687303771164672618050073111814304342590676958952400406069669588097165165338320259489834814292778455970045713767606414480404079994446668220343810750072657112256471459259396584440832877958308704354096239064484788409896969188201226592796773414550854303257625019910171980861814720174621538361701607752963936228595445293393379538493573108498126148150004416610901825364337711387744457180531198280943687877915981519218955649123909821609791862994357645838452104234845563253831448912493213044398989298557123674554434293489335699282286213644239934613892845846319979579031293528513803553968450478511300479757515518044838509997859257149242188853143809066706310496295572797935079787102897322578214934735750468137657707420301435184159066969001688631941225344986795617174110008328744541594638283580606253673192694804375884164688950241874429531874432957482278116269934495564332960583782651879977093228000917364532679457249599607568967343218300202238283027214481548503752419292218470962063001409314469655996488350536400025398540156482155696238062049748771829727001587202811568501309468485619709014771020933401260011969013018180780295067108027686468340296426392588787860096918443990943012311887883465955986252960277699440621938310106840058134835188417993717842843460175568604110437450679064002416624162690929981315357638642746046965584423164020307833842274924895530110341839934694037535524638444291850030170310095472164234547443518175004346710521793404879987094545697252513017136643251516451589900612217583067063680611915803922277815285839909281874394386706218870970280884504524088057676445961627105893449399916026858099901369541289771483627287497665376071441844559634784068231973058017302984303870758691094594234557878039469000676493743253524917384830448037867524005785880115038888229202744173440029361627674061108439400464728127349163393431527062707925226954311366619914279407143428510249239226297330858939514024478748482963741694976716616942257495541498905297992150260130523210965992814252332474014398230807540930661715111372466973648663862924998726505586026065260202826074742009917776499467797778397297284929707980573110432457119001311751624443227906196051530942831641849621810588944142141489883286304194565983506352697696082898150671544334852344544350785881526209334765693030162622869985464921108172303815659140860203991891234904595148187701529379876862086947640649338598936750475190252996031512315504008661469097487320876263976151280832765893131304649508098137781531189559495950888603549049196191941952281989290534299616736404977085269726202026508142362676190456089345330201356393628544230186772835403290871661338496492365692226101070290718595192091548949774196801799325417606392740009606354041584895612602411088806400451800468722336699356752005135063108370750598528021086579844951105872463301822521590330423583152491342376060979077606918854002213108136618394252779048054399938198771977095712646727694210618766609017259186350251646763325049399471774728944497016217122312788767382476303014349707940743249283309302593197224646176482774862665624554417293415788858891775335734168123420631773879631706410987237487231087745048843250131966775065015158662784365311106779397590374831359298867210115123612197452013745526427031231777373909350758170125638320874599832918800369122100741245940919369112022633047812132245100433474006805953290637790635102543047257351349174226606572158942197752865368876008176600417954184994699342759424547525200276896334878419946916640742078409426050704727725298843304272013204007763845960389702080305956368955046632958497041327936370319671092012712852868325590029591245127877888385700179305667274055916690307714313592168100997615941089998026455261673773337841033516851336306969758791158343313612175018677630503656717997535004531916771114905225116466978458724785651124295229000731791680483983186548182236933333898113724372729920309562828991221066856503533261172429431694107970742919689864537588793414881906363820758407085049545166601009764270584616565335064707482931583303251557144253174534818456918849557024476380875596724239427519609474567985561360635557725652073138118341871267629035828926848464883094843158369337643786901566504291322605154206083326772075895473773907211748590998008749661421479411128943096224342798050790199058922652634612289401211280411566984040921764952521181999778570835231627271040649786999091487117181099547118409974840564564425183472837870018139475761430812131219206086706407254606451770470467019777389395254467650933826598385565060510319358825618848897613234804297344177423246369662812368873674765352301227836345389822977239861091597013881070218645740344314794085675992355462312128527599042320051719397929364139031823269865675239561302403064125335135066936616907215577275907724711845949731218122477864858962797098539789507626677471087947862694015511815788879226591165034396017737099260145459585441696493847377641568247692042635981383579292636158247820617056374443545943823364167373554493564420582043247664071133903630804977088522025285336077717490615223991283656170559602172029874158016912424746751065597367713341501419867791391675854315926470092596358253712870664983892106857568217502517508287939646787473948953160959138515587185020075963108589155839117364485769516183641292211911519419680319453957576208772277984692626608165766896464751567937966331939331108121067341770056819020740189648837253582987400467426738117446452477542050064781534342078980336003121040554093061211381543785507460733442523783270241570171946805030721634462070909805354720595156343539671969575950360800136135398941118139520930536356821372163385694903543450213596343330878285668752869090269934545394536983113097012780972706763114998118632090471284208002354002987589202426642732312058126980540647393598679522495637405572997093924511600227031864398230501942026755705523937133493503955364636615256414031043102771983030542640220512783885376499243762991863779513115911591943410456389143955278111892168109076462200161865928865907535944725496334819356605443463668567167949274099243719718000304712846139463739307067769260865944773717486473893211310028792890622301309209999366497666877609762832908112395141023507480574737795853350308313419083515929210487989109260011010787997284669643536126695679276286853113206310271114667869910566983175340038338979848652295160704914333895515176382110472737837196687485267786960134175596132932314335357940461200966203057194897175169435555310903572137812040614373143759734412787478652426671269966166190754577684316368178386596987280913718693167867028879528755049391558761219726443251553439891060350070151427095926936468618940763896125570918599184515304083203225591360247834643547787802265208535867432123192706557780818014920882829287227340915707377817658446294456383656597549367961080818578068942869187259805045369005144694848313641503094322857301449253935770781193511239100348677368043469364442585925462785810849101415435479233108649772324952922137228923534383701094811785884450911051628465247913953331576319042519678340895903624773833611755531756282949020929519218200248742589384022823217266087957462503341425406243419432791954348064576104907524278657177012859086204781502924692559658173708612583352558744904800902060926125634457374856827267545137876208750880694722612722025478956161007383073154896458088503524648809161270109062618737278002519152795427030228366896600131084121051657343808593773149444156916926129227367004502606552923881116349531755467028886646718513570694905814562779055787934786582607178433882849671760006470173408170898452193922079678677753613822995156978828155711322660453782813408416789122296333810928451179888444258626836214873633871631158734274257303422738227190564200208950413436705558473343285743727753580964017145059669422358465192043965594944351077079791199993722951961253242267870236551731597225574189246129801130936757182513107351183211111649254367990065513608977665245703861087807123785770891005050401559975685733262344535811452438666325535961561452196582405434230118824518564957083863690413364626628844075393935056296708446237450902582458836513470236879136255539501884408460533968909985996073062438462265377805499822414977724709082451969804923486514243251421823696271956158112783793450726392773046597321741184146047770023093611335860384956205040972377746020808694570916662876022583715341286606656208609211824240516284962824731523541190679846092750316945268415962149435852656686737072580089817010611780960604841769750000647434152924032615496433527680039317133534123832108596658649541567621533670867462563615738148954000086691368365938091176336468383518734665814929798471107916683780996120879510812306620507244166853704904099525354289869257517122303165788698362544618688269020409481736992047336756554405945388804122504962909593613001146989543510933965422879405854494593426666501474106574298274422485344840768012568369976523408971634539033133317632819996364065793923074868585861936805818529266457493925582782061364977401482557464853406888211295942121120172897231550636745017520589703142320125157524012711280979734135064074049031137391624138927927738366450478881989204712024490899991433821908501585863869102357931991959799694779714795039629796756308852902803321471060648934227546099038159012359382375958128066537393219837966602351473280783279227374630280696281554027559316514803926581103026047197406152210473550259725733188180053216754577914902607662557786471612725009876515408494985565363496286873526731596133297441816588667361324208148702712473599491143907459443741364053685672800557999306310286399017815815772727711444762615390197478232283910118094210240214582015518215522705274047475016081662453919205387448587406016231816910232892599951705534101331870524587269861333802328827264462625484782637248780256547211445302982429084473499610872887339283834089607306154675962862853934346550200465237393009667312541374276038992962205864824486933220177659122646092082327890658418140076198212817857804418005011346942371562576544386808521012278030354541574248717260545120454863819791161198541766324107440430882917381465016460867711868483734546924672551606994626841274668699340027805885720488905836382201236606189101996409965936749553039237308012294548478652864590081762951616260015753588682120455571714270904707812413332493738723008430513590193092630488386686540009606735307080923030427764908113361688222566105717404387153875365371895704248752466234803501683402161777923443319077953068737380327159290419210641398745504512167743595512133816148532839121177126726106906803531154874933458836028737490866262932614391540366507159774606169966938946174032773645074877330769480155208063577732034668569900864145932018047197925678887596040701930344855339948877936599558268006394099800606044456245380743787347321473708291858597393702468838747181724662715075370167413041673141630215973280983138449769458709628426246557111082757336397587934313326063907661164087034069298569459897079082054921965571451428081192518295705280331712930256646355535737121143908596155672845228773866635217856495181692674623871820478219195531362462536534267172961185839970016373665499358676929274667942315419186104877372894681766172517619804178054824177322845442853035079089393768495658116713379145316250872507300612862283873427430885061423058616572657491978383401794103971601913317544342050635876314617238499088709145646967095541643166942703452210789809669248700561362878797341269674007863551518408905700463316444453432576283435750045573381306912415855555982844915118306977628777646416241570158411722136367073036559510848927013769887741855547526784523051654006887988222755585983984000196443297810131168363521077646715690745893436927974401008874266078157374975825100178551520824931718210502229770873101940442920264512162994613908924314204284362336064433813013900923588366246304034585809420715205361627306066411220154062498103201623764398434124044368426548198134368643711366089585133380117231072584615962009518960517682418340789055924148541555849655335027916866727236171529962920897350016539019344206954295787677268545305758628220637533440434557479120484883898167044279286124354082567783720600249608966363728104821925559474832296503577127818857716431291587840044176107135039288070222155958373013214497924917207849847788620275061285697415542293650041747297427262142639210783610796924576679702860299767011759573350919469117865136348373133019584022037521828256920876732790814081787128585448181776211055970128081497912552213371021643217882934665453862654947113455782506330636181268577623440224177462449675167551342332289081731890738310340828945224006969789945243518233335296907451029008151489166653637555579308488649063373791730939779773593461552906642110163700279651085308327518362262190037815906860048833524497653409705346070241356915159507563644934035071037339806164822154361840865289370051159400111671255806996434929213194431673744850619649058418074386271266553998584994025563569083266411031467960359398668745633813895201318949132176237879989187420959950703793216888434103986811078034643924488102942614916786812233427996993689416992459012368157578380001270613597134759611432378360478065010940511262546602749407581915290953265861056737509906181760269346407916619729783228389839919987333890772652158123565303662281499525350935361845427005084234937799115157048862097644874025552791527420751593231421802570440082862509188734525554670137844687986473323088173146905795367799572650729424163840058263791969499250386451951765317474502749385309513428723041895318888416518973868883125323056127182323512544629605328324372776556276897414442061218948527204564907304447014122551973453042859238151371106021768126073292563063076041422537066619790546164889178077020157558126974509654265202058308675809254161682484706472591487521332278027154539598248924076857151544927645986390849775485328326880685095788252233487623237918316711866078905251148262934934240107205605176427552530267941424701633371007072086345334574477623161162263294780696466031612297155310414355605343740662649011610593133842495774343889188101173927392192838035922818456178778825732897976667724439696842060205914769479847014226287165858670513028454031794018029383901385330518697830140711427685148216353515367291900396798189052546408744836775560358552155884574483922628608334057283925366286533629303154449905493051895532741838415763184969242939000383725236312639051985529374989555513083136033435246608006819475646133015261822213923769167254188398409106224987788399957660645560817206335254791677909934510359866161840873400589995054788313781562427484196356539330595693736386962211132314268154398253663792417559906860118446984569450649860979683750443606601313366583141517119944020531159693047563407309259063141504434093551483014841472541822377766737379891428690542580557526419931287122628176288275301227049766356628642343658160989352873967572174329155582296746368639881401982674609405649519221386612662563666916831462951145152093275550920699600515989711843479001445630610542080063854046020152000056844849400414987719641242098425258244927491433866241356651919499204416625041740966422666040905401313394931879323993567774769352587798775204535343965863983743060227483375337517708544526821954097458981715806875106852529710010681480049576490117744661550476349503805127575643616057292502325869533762560927204402403611887936537206805877140979990974915018567255156446650667176062741806219181377172725171849227777544957312029700390123399773533603480390860039938558168215108313501441521764403013770640315436441244251021627869271215861838291723776045586328547074040129295695624271793159890439139165809524865120797614322036857854557903848901792370279161307788287100985732365345548820809162360112296080942308955880243665363781309130099569885078311737960239485893578479537038553458127100738487032131176724290533648464423764793605460242066892440354509094792013427803573657868349579632879525212272557813851236155894823144781963824332139636770405626897771522510365143103880565877212974467058932406702620162213946031374775644666345885173486475086019798590885326770124623095494964704380165580497784432713256425725087430286092510377946377720462456809595147627928921816968647429384816539331796788716251964960905191983196836910769197697457466141445978133910583451240956804862447939217377698072545545668682564802651855947040642313917779157085727615888891360574450815368737963635594036461479033622046720493746027434542303898425620103182867052173566222382693503702146349179545492776222137042149427146605769695351718211648333339070316500394401381577243543628505085859709574880194029723112041569658011316117193069506052171020255760257134606195585522387715530851314820229437674176064709740623630145076040072571735714982087339973832065049052470376136470858463183378895647595381150724975107551044372920004992667312939952656299425014984281740617116333668907971905219785508390115226662301363178490105192530666142337774362177852504110184224116018460244882650625733821615905689755865691526142786956952732045689407829699908756637398837385003030644779808310787430675387654516249067150540504629137136610347385289109671519347010760778819962348559067897677579800370764456285892451234887945553709478069103383044886816061121262227090415769799308085071155745229607701212236650318842233070836356715177164709483674467171577778058902558813427841456230571945184626430769954020280521726563091249551472694281806871080188613828292169708827077679221919026701391118564945945012095750185832306752149109641921881099482851206618219260394137348390059465984799754888369409085573362299645739657786056404577714979223203111690279693757589823543903131964565752454286757214281006031514695916589834537650233376299129948531196591236396586550664608134585996104068578654668917185489912042227480135208280272240041388382689869063136537623066306187740141154740739173415211661705663322430068189880555884164900669604352524662544919980882404507156059723136302625011764195868128411571777658826378896157202370510506231362570163840748048691998986389713854298754656506050354164254998530040531193023187492650800334948859597163281961084896734212091884305654718557956316168187888385317480603996648346706485428355954278911665620326751487210246660093111321475390362470051072876042031443945033742546869175894877240269170239489197859347938991798671374665646420828376658263656405127626679676734985235907907513419909402956921078599416376493966921314255694337468778363041291641600123348548394653074159020982514343772238580910499306989565089794565322794925264909928471479315396089599776440731171644582199895516118223470656448043704237630829033746430391265695724752898811064329816944437585458435849239625435151727833599438192315607432757613093623599309770156783814016849204291205620182910889891947739151976181925713992232750589089876356089203188957432610880631003060335653911462849196406740352908991934188167348890936553531630079486497536334470702458221089258710074703414140367687079620421322532742685884706117305632481651291395337530413235923639954035696120157083498942276243259878221739402522185520738320575707526935649659721716473556525707142800370940253870816735568786093025388438552268828493765232844838913076684081774358091670395070703875615282997096191692596322758275825446421238352285601991049328992666007569873983368978323431246109196177503024436011684576640096017609477696173740215093570893766869878491219389818415545804742020574570439566129464865662371382050717414130589343451759546328238024708351811947899118859293956168480290206512279119715388783479193915354932123984953724766621124432821278708541118367967177417171701277467990580151697520492854670065312904383897752945048952714753329192454550194894191422725202370353738169454573531730126891864877976423921058132516061592141500665135906241376540536163796047965595759871579697860733647632812933724775716646599998516127050991181349326093565575348845343644621982116008523146294207055261871113497134660624798040262840557498634977470052848449414458582326036751893411950397498341706825979556568379945036847633287045574851192973165805914172765441695668146713701780441795847935243419564894909680233503345556306976456806229655408682150275394008050967537873037214566138909532822428948946431506733488951235324987016709744659485898047802955186320374838235048956255107238879362364142375119392198663796964326081613217392675128894663939697965102214675769855966988172168085831686919670841352936207528805098618906050255243852057276436614970840364024094302628338097496970434729087284453593151868352832042294172236151646863136022180737675949702249787139904320051068474400640405062714231708104936908989500874823745038085737481628700308081536569320359352740921811917608452183633886024562454155579991338819031122092609930172106403702883826953361675363089325201467269310192047279914431981425452539300805465103011987125613477785963029982606109581591122086557209866914819929118085942747862713420066458979701247667562128122299657578350579545735229720518716191288338557697286483319033866191801865724251320988122619309346096667440486718614200380778764731030531030279731397698232310203658704501830657937880003080657391461989495962559095154952287751164410854549154281135691135956000388893646016547296323476646974778878487057525635592719534533604596961537997743636373145502892688461954189480224939608760069871969840287917394422965511468286236147955386137587456098155325772780390126673976651394027566621871148210393652616323992325712056747553754033858175695278647289345070818833917728035020362666208202241400802293188881368394230481147731341866085071348229804364332115833548014060856705642375403031882336999254178976984050437750283169559802012720080834362654547930440195432108825701611635206157900156986675455724876133821535293995037274987416395882718823986868672220320826452709246038617537868508105611888822256190834937636506536673923078682588761736289422161914154238129134602777490847612470887697663541965247404793327449520406406564512828806821511793452311567169000393133010920362265841350898981972141419129091066211820988154344293335956739045620873233097972960875690244117150016157088931378784320312167577799357593213957166894463673825673950812145112160248390981831434629890252373057822262833827857081821691880465257035661929062321994896350544881148004259901653122784810988731060052751070705628926731332530955036340426856952480356804624975625130910540977706134524097644084629821252312589013833428974860509175863079992552788212486377683770958675807276906447434579140405313017340047080301565985310521224646791786444575973561031125782907101582537151424702855253445466634446977576663872493193444023082479556225611768489756307156119089926071390370310402616776160286851730310187508700413129536376305739246466946538489193120990324780791897478565093806333307174916248078483135799549579046246521646672821769341382071171139688705739605715908230117795848122027367741620195009886344953422450336955648217345250453372366325641045942891058449313651178295524654444187074325403686972329209117754821846107933425100835352931221611481874016889980537916518259944653305128551494164176048447810049374406154621235543051804118746285059766562864280235906976084720503259744379758855469096869550365855525024137519453880633687720928577015915162884130826013770483988119041666618419335425411255070584413483376075990637568420637171406884541431527249862483519703375713524450112783779946534811707281507853035811102201241189680255802427529837921463227282944838172881912020081346028852279870270004242914648610766002442328841123628904511994283297270003196393227474253532176840216355530250523846015741582115189923833790058809515520161679507120266984986359985256775127154210670981169264612783012951728268593459357070844866426724085081879582403984603216001723836739197371658454054036196725522891161418575053421357645498436548638237808788812994634193865244668469298802527896814919921913822961249396120311537748373030934837078226429882974018096362622370717037910544747958870964695553586525176505927391032930656248187121242333927803005200590651638773064447524763929912965550542932852448002636205964602254221219508099877264148867015300900599732736419359039000287561793841351689652932563650501500367878948743208445408691519522998329400908812312596775126056829229634961707219120332070475748632703657128219801179494684710589868239613233223693023788863100436086825148602408955493822961453379398383872594682133684467678835273963254550498347998180259127386031150568168345755466715641546648484568496349670022463640449176215953691079188219902127920297994118853974990550124031865259614444611394482862730393313468066007193269806268336982374614109331581222855017114681632548434726079184572719185634908725534492567193986229232101748492967915886002569974797058765299261932241827997074097038501815239271995627162608328467957571391597670528097471794366329098939487987489774658354918759468538077653347635077573094768374103623880681274949599096554441261491383716692347484463298439314333838742806016365356500644405424167521914700057939925383061027162597334854797642030669814123874789862120842999665630892611232261386643130971439477574682124282296429838606603264849199396428183878405613920232109054877725030967646077095448095672891516203067441404099122786563115302669138984383098796722910458050576390297582171866696221001977623398851480709529306046220479158483643329245187811506370343416672519460876663480926325904788833474411752135465373553295432554677609378694040814547917375877555874341614600654318018186671019697573729753204942387534171488702207518915416807951172836283826826115686773698867850260124320258609377852856366503691691735984686060561005439847230261599898067705763986109293126603572086854648197203388966580598261191652110145125240717718471502357299464331842710027400805041195966679771514434911035382340859773382419561880764497315191686370040198147514459663362494283510200593189704316006883787777630921610187480795816769828948403365841377013867188739035567151297015868913595949173457775971635162709462856409739381336865912696653671515996488357011817122408806944248905452845254948650039240052620228037067684349168888961780874676700136411082850075710298125402816890943147398972288530567436067403423426784311395775140310131922113661151411796723439535197452703178753395323276871923173415022375156265877723958399070559896126678471530131083657653615165041246187716111927913452223647169887850381814889666673005927382938073283193530021057013485922043435373979949958220527721851596481569480587059478128124987035970576591433860306154594674312865648358458317352141493907644814027235544435100372840784473568859051008422815706523504304200598645587511198727004363520854899718660247534532470095470471812051076274334754192965907508148648512757384255768496163518954092208347574819692553814389354572388244958905948889545724797842147174208649078436770411106434920529142441590542614289930892924883805093021046803402317627246247829648694430179836631024695874289665318544192839262306495926001047435128618194270895399933770574289527577665786417023579687776375258071453214825807726682976320175526892508707500618627433626737571303989115095676153377323253685951928471834694304134500680648729182169104105923705054522053727247759932841912035371691122558448666767190017821204588909458490516271639879664131256532157471748797724156932465719259754021974954604730404164442292573246357247058272811798143098541916605327781003080920939686050751748498709378200309646895074643982953414750665534152584429238677146499864879724523022654303693330941768115303731124473618611553406814158777659270251018371359667149118144815674164502639892220810201619155058617033656921533213005676890740553178562799924232544435928171104943916164419689503569192229604813420831128321666202001125746982103247493315530052914901610877427349747722145410806171548044929086061344344951607046703261580933165629973544796319769321991409725612669233989795637084433289231801377181525102279845595162761854632326424196022799334072521531736963033683994722034918569094960410965783251810003531701666810958075605936722751723741991629679911535910229428932482238444722483088713355552434708165457502773264031821776010609540805173817014081096115404236724099859878456416450541545144095757701689981694767503861455436680092147955005834196281683016918512286147260015764406799559963608901552133745405792860486337764225690891339277226990074714122660350781427078105454167021383403539815718214471917987741659959362476109796559492567363022251716449255055337668556544172161064585239059318516727170677946534926430361908384596563506560665157594180367439473427258037761857848861641044425494029158190499177261075994176919412151142133789691887250641161634890965264457232729044352136439918137934951655428015558511710945233775239787179323141187357628030307911226591053610075761835407154888035273837989652149148739208046859323771622766821438118853498220190572797393128245326264183188273381943519128437835313215792187490118903333556793487490642790968667851713796812624043245035502998729802947724126010276008470827918662733520109160646877727237831408368896398403791813538171066088585027888551902695658307961512203540254291483812357792595885759909478786455349847239204432274488826033799340284330086208576092138145937840364022401524203901924257017192222083436093775725280648251298778125683057468384523389275170895205987227893923125022344949464700764127403008779212751504804564021401900513942319307255605451634159197996180717664164312093317573492301612303003337780146956022876298233840899986520638352052299665478775193588319186687804677066543496170916647117851224715233203412054103716745277938811701005139055487172039590302153200235991262332761704105188229057194027586781255267370922512416403863695549221564289612540915804837292287816716476210654231535934636575212670236402537447634626499706774866334411455167446181034726036790666856515140605619244632508631552927092084804143995874571514359493189552311851682446409586408913056120959767852690497178332820129841970219977276657347397535698978604067965094723892178133227301573626442641581039121783943889663288468801059165646612490961491875810065541983114340172795577225206132509825632977500966997254605311287131341208231775852408944998333562385233825275078840845193678635333386421639641862280274035002997463368493057816810551068648370014035023275993363127733449808656490254726176254289370295037682914979589284664668603761685938955186943227467553071762514452006443411811894210760980907629873277953600913128359176789906864717136902848420439919954221495296593131229867602983135578618365551689991022400698689571005419129007338901302688349802191856292039268680827768448963886323919818858785101955624662267940611700070175369101127495166882336460937758859394968798929634290326645801668264640942092658021355754932731640358076733572501620162148658069019398023801407160489728911978579288402715975294627330440299073221670331338303611568783744731327779224621800090668515588677231039578209196407035625603708656103790175563225411618959235429315283522989470409014622577343144430847545582992793687551748133737998966493996619769242837099766881873434660838466193146800481066757820725108642898335833392936424343790315854765772740086556911072421319487032538068913050944315712634459862449441011526873244447789001141917436690637054165679128805657444291604698703426640801580434553187045999784168721773305392319716320056389127452796781956589311742171189734934215357424362692597454777181774633423140706939879348748172868395189623816815135846886897145199689447381945879118622802650506987883921391055616947257958235407632558654766499606538677553842596303411155310711890941331209759896445783233588198223999664608500511100374091677766128755660054077215727018486889675218782579879617822069173683017329092420517398090012312464264568580130959133492745704817777843238210906314728792251077521920432620732838967722375635260325014784829784834160232967040116362708054614952533160875623914290381797558342880418537304920274297481232757741959491933076680789468652690592263739794346286494823294685302737604809719087162064789712228250775430252984027952921683331414016198665216902379703769604609587865750700504722079823435382597782031523691750289503369968271643678494462070193805656516060165941370895305476344930052979478661758548121337894758842868932897767871939468657649291613212867998461123324817718835981174902719218678784629540716889350646816281889631049332125226123451616980312946833667095269609169082978089231262054631242853768483338685692257738024068736413721528126452299639791549729339130475321856563068908090906451609620643945600657051562805709669864934730977146706319380542763834358167540942360522456642025816545019223341103526401432699785918393298850174435366586258484823273879021005378268330308133197408160235838096891207658227222448344931306426445483911243734968799593222545223986815652570674079982581984643992665914539863187546273945266319793536989773290797148830623701838296019046428407410583036042335435080991159463419428399778125848563845195218621334780925821909531255934941675479349371042656189883923680437472248922519902312999205257013836334558849736548912587458771383179122295197725909525669176419041322241334271146441280665051699535004252111279524196048018767896562065632538678733908260496294748605993383624867286261213620173215507703159744064673845505755694048299313699494168667407085076339575180314877236431736331382179217180584539061100126413102059365791534319724213867425928691746709032006381254255430678817041953777345935381068833018808477683888825982747784928131200416142617208090884365025902326941686392779327582525756529785035889844007835199771959635161972996583729431250462251186489205087584188831341763577572856731059088709714609736859489656925253686635744032125347684262717642099124571536051972468040669472113184011520624901532404020822767927371729332268477747899542952048783401194532270512409719770236528024744165287278300937609164159045121980907760703984946760054134363032026507589109192837444492535970445434272826886107005641918996669884294807728140899393569816434166900063838512438781849927949020120686459686111128749753563940975079759944778685897514435926124485066133990792194582688895750283270942564048375131567321504437132390495477238903021530784268506383819907357823012755662724155029344541365625124172925647032013924898433797817611890965639159937569881787908514510885404503091051663391800027220867383377135534654892189788073595215180281118398167635535297019202523170648304655954724872189364977855917061005985426052240579487619543041320994304393822217187688468570296489398605045716281947042179041879915382383263040406746994173225400999495297537757477387188363481177007274003944164411588930152060664383059245975341036564486919899908666360908804916336137878974076539018238219326812605755468115704029375829872916068235946272275949701525653528012001544067007301794619962464262991879004480489774099896136020018505479246511675871103685415688128062366353527474148773656563419460366093090071481886515955861010758125509052955390447248572024488735958268306595298038615325527641255069128920808455494080919169273107532942166974591116188888666822207160341262272521088838583308593079141254991006304580213724020921167374167062443833769487680811974630414482629039791119117641571444573063912710493535630921831198065683301041682183739076567006851619588935694378075684452210687130665757511888573225294202275439652630694092301773875630623453701636595335065307747011039011375611472048991791139361393932169100570280296876047177484152070881386733384795265083211738640249952259934850228502333817654875939986273141075442239161527610503528579102342079929709883605315749075958797644139475712824974546219480474064984750960586302474073009540443925738436527818207330544625549350063068871306238140878578412478816169139413015407275870337795882434043408876373888402999258142230463029342883919491310981978406170798659042697242694354079701690802394589688615603793659543318071972219570510992940063741924054396497883456534288515384472364755189933742479515001535700996876305583478470240474329575419588451923367446521908499203012059909992646736319704779141843847234057531297809986439473586358604020534598664879270446103415376499606676979019682622050742347999206107308901776233229882428860324773550670446894065771548526099897843993516675462184654692158541569794921394205642238689144608099829056006491484809898430850729304247030553505575726489010174879375148009879506209401493318315660849767849521567913554487376692385211644541723391504264462085043107095325714998886372875470513233041665674932195770292483956491809474898148763212703701042223038477980537979931535870535481464295676516519208379388748217401402930483257996392982982529653858075162787524834186358721887583883037873116189134096381998092089661277897494782439201633565072048464539828732630452107063011848409503889388180148726733224895037395035152910048799200860198142424895757170793704653933686479391400249835046884261112711761668490041424176983903190255470421551985150627058729403025252346186259892013222782167938651048455481607088874019320961020842822845446292706339627946665730955803975339052532927065812316814932861332038611838587713189596000088773947790616829079723734836521668353688273676217890798093854296211312288426771233954516274828286214756587367823247095743795544787691915089346171893593137075548020186175332998556565201022722948750820639770570468829257343478062585273655458540668036890893596641800403912306010420789161365563870137791604152409446861583673303055453799754982305683946570207354265168084736071989896278063738619191603194020597640771833781100812112041401401129654125192074507299696552341997765175399355409263331552144938757115305882180696586810600435493797653357583288509752840881511842860182153454058546528255020962770313893762411742707151222368566729049617621160917809132222351345318333452228340885792219400511618658261215131254161107126565010323474480647781628250157189556553655692958193514694135426301510078231992263881878724277072671129929467068473035701699306483463099096267653000814546038360831375375172245280170854239165366242133754193029308309701481947244646233791984853908219910787651272441732407931142883651926131690076507155851055474585813866427978607835281473041344709557511006924016537958127844667292720150382410892530669184849247984217201409812013348523724307821586387540403393629870826016028467216826895444247762614175143204879239205355258972624790486347171534984467593667794339731041853092825418291826775406853516264416935760662811458690580768558318513332968566524795822588992732865199632153694393733547557021537125095642984058965548157972009838268770818135359500951377006397326142832233708990501924568165727154389628125687316795332904345211964156776270271595976014308500707460162504242584276542432756031553669699503101965643715051053520694042154132465551981165908737876247178189222477765157830973966186328029298501051122788016943891977961939282657210587670274630857374634654809170661695618892080059769576039773746648474769668495322497983853070809262186819365661750194858522073517974221413044474759391638855855319073704335974579902071387300672380144050202199943644364047839574496414004436696648756893854749188397416613320145736448606158690246819110456264558404947087262879934026126507344398318028944941149236694462624885063207011709722457841178402257206694349864605145472479909586156908189220290932530029515216853713966321724955603936572204386279071023801219114720852039491276142601282411892317703250489283559278807804618318389557366406631731601528561224127685077145025247045334652832491251986588926892132005840799587482634892868006402460453474043260264655061771236281444837818531306703081395480101039754544572733991106880173182057869327776127438893001086919908618443299298898317476274693409233264026158900896210749685198585983130581676259757078888114242926828475493117844588510595371144651064133763451328122630592756957956247705469424166364933214957558208410323062216949847182316415732318882873234258912617647485523194576100128152267322429241964164939347493003419536835903453991624229467215384443721725891759863222521956790540164199104489747578383617235851613273414158497807720474766022362320375582722021391177645786549973681315431395731451604577405452159312160539654301166003074448545827982674292117165526133442256858114640888068582943726933870528454206138178028453274820395630354307454821647274784434478254316459738901512869475498358711914658148503646467136616067373506368333085573871987052213725216876981054479587397837864844447677556078206729658595655632302532814923501918023822274116224223048413148873633224324788296685606152285579159380827583183272309576332310017438525669106029236306063251401817055811072119059935848261101452062476110586619854832792466651457261226164699529687801182043403024191085318403406635572758815397763323597752347063187515563533991635499797656747122641155686939400646929321295387549524486312347668030176453511955544603239690477297188666230771939135969613939482598851233459205637321689858036299305615434051647541632198681627937112695715254675070317245552220600177116651251604059760439440222176027846021048863362713978480787360722902570788458331861799031521883305790690162224560147581545069087876836366884150060608958805303111575867619884967315607855434440886029236324009062304701758616105804968445860698554366998437704374673719629066539156465106118484023649663200529587417787254155303109522314577816560096756276964995595235030461845547494528573694771042609899244537604384635572849239533929816793599643020249598040576930742552892532459739216348280146258150742604761915055355092289866211163268346024025396892704296507340258009857381126742236412561058923538493371473598492629966571394969989570413589074056046754698047251366566736561574702635157897955303965876012382629457205012071269379736393629979308854351534759005635175933347401436296013284617510553244295830522900673322748901903062537266087435324706886804296336991024222744589002777244058022083633471153261176445297470895350097983288069773683932164643489470736295100365945384914201884217314491080486665113090181024564729493415705305007093860125529066263722605994816104055221947487991078825811103095016909253771266231319617573807909086650775181997617063401740293509544503397852856573721548262541327048558490283389158685170989013137428970632384962069672986530131402719170652819562596024325935965587697720803504806369948591065786351600793624523303488476907961385462739909052343957936858436778804062465540579013010803156148458120152346983857676234504567377191002110366781782000189048811617389747593489851146312185765751997502914059606521578102226718212305493309695035978997267719531083450557239998472739873012066715581682447848308192681356175277610086479053116144746571014563750167053431124497835201749433167536426487913258028243074322968670887159735335758889372732273887224642190629211449226182289863351780361631376839818327265637426863708637074005861153646274486991675556246712174053942118461178647881085647289748976181228354724754257626059240895277081368034037399124925578889820969575348871140312352473159548403337510160496945448809468918353362718836493864873636691023790142059775711450218893174211949897936210866141734288539527558718436526628181535843830574577656876470007027830083522486320892319692497161194371991116864491086259584780579074081168096279786111006422841459707201618084071823124931769829032132872351570139067481684941811339638333063186983991322086756465874372721714376020877503309409776016350425922652059182742316815814054715689062695983393670706161264134720273517913841958983356797885408386443620400015787625129778664007015191358752923210412295862389648228266784205814656893028573722580981994187884767732192037342340640733736939794935682350577261797700925512230749852085759676556773559032937963317944491606376989805994917844252498777841142967359465690311635418480946168530038370822517192639214015896491460050096075818664533021767471500109858278717811407098730890479486551868436696008861265566707835123611015874852482939391232416226074109255051722851132071708828245979481883707295783108823477558852615000314286062059827434630447483706662130682637033911556689542599296011097156805982652532581107414318824160664663698536761472390798125389880547853152983833463848871666356960460082351567308907148424778057840023561714373702495724791324173546158067013453735149431081139291212387292948126329171720616128174621943893286377166643699751731299330360967949880942298786404106777224133827456268074506845389615552017085185279190176462087495892654105795385936344843384746146010118964655920060399255729561887800128971431613271437893645445842275115004835148627831818284586366633618294462737924404395609027697627396595450785950415356537406105126445895556628522461262105885443195735074565090982915003229741464054447605056756503450661574007703671488028207010772517237200856110392866008360878138483440746877760096873650207628175393262785436339558407544289835621709337548416015125514804342188557165020151716764023309341471677407546954992639382465655685425376029970146868551884320777518655591140571700144590709248540622547008502315550688420584044974493442283795617568158887202936853416120565431367462664380160741459336937405717277606001531731092290878807283226386426360783001733985420822828273928041133563723139794400861775855334094614158969350706261274778224489494329515008398364379244920629694555872726901113355152262272615598166583151115108092670888494479270216018204826409276228877767666030931044605271081301176097770413782341738312049411180437655155450324858044420948432151703057985295339643628424946501476012380672335494235364226104986033536332297000565530850081584551760910623169242044633866291503309062562535741618686289084616097840120998555588605433647738423444203647680652299807206780425183863870614162038395057655916125947642707365050405590435385086174192444594551708860931369238046654015110079264499325733004111862796549469354442569554075006786319704895281821888373453062009111529787848982840602182557216700203982632027748176199589526903172914731033063202440840064390200233141189263375051885507601027101988326194151173458281432891516746303951404490289998750727905225153756596932029189792201911419163467982497739329098522729514536391835109046316073781753631039921759627626341965759905839784539629796047917670086239161367041176884269225839271432564967236664655744796766140950993663105074835355124122594815781980711071112826935991081144594918308113179427837517203387731203967858602641545822206893213295706079750444322242929583810485145978006482496820844457291710741160232797230350454105676927175657691863951139853310585448990397487143207204275688406921566797473200745865391985352511899083798686951827225510488746108973023667178601840568906170884948819134453890636717449424868341288140716486494038757289092703532332848314044970037280036684721183429010973451233746677052409278030148442322682983988152902211465489513002300500908853769356134239385262870689195160786887510802617459284194236267612207381345732865530378135303396486542003817995384514739916937834584710749239461727140578775973932501414567314866057990967232278988328825785171528235627777883364328761978858927093935866921808948714228054326962143026624642286536311307441011272320400913504194908938427693731546032652883031176102534435450424669613695399263782905569962887382727850940349628441415394163918482042089764055819012227463649424302599346495458367844830513424192154401668694524351098534913481669126561386074974002698725638692810279314831108922322845349369450224067081552650712733006838166574117281115899015749650802226810567957989012648019932488363012465643615933747832965716150607796916743191461172742758394352357664080450356633474701408790767259294010495533160645909989094860314331868981484519416946682571092841296562583200725520587502691475921093038364441223739036943897025797992137606380135810042180955680099303100951931214799827840959272637450535484071318579160686034977687329306071135360013904073664226412749396099897581935949493452789229219638181520357243671785737664460027551802456207890265223399620008193393674247698426172678746146509758031050056908788402002068498467088884543987689639439121682722129842542297214494744429591586747549008562108742007628537436670240082073114474721206657729798185289731877299186257858494804884263969350065202135487158472725973891531612466690361402656053333851489447974733389570629627707874353770549950502631743991016739197331753884146043177480890737870776737380988295809054479330472382068624271295966797335941506622143652241772960039715711485857817597876036450335627446706546054670088076255552423295897996303954200401690992331226114430439472249960254199970062007460592133485640460926829986487174313314407273428823705392352652733572544278566985611830197378270427328657327580490495428008209096386490109449999685580292303724759176936100826039638473129970236132302951074431652361700707073228511686882057126336660899364701616043507292451586716466964556604248843713992165881313734589208812736398146234712909926542652977486699435738156919699718427985754329625900972223078067708328389238417625712968998881346965834228549476337621975849878452192202623301593918676268789555804755251269329293056297340188474599196332841539064936300064955174446551173343696212301533434220977023629004531601903583515047516412184219236085193724424563762174759958761186325386538173569521160674918279177776915654384044453031644704973266985550495903378749721263396235126741749948437062248313051058328987248268418272645501955957563736221535602073114776746958142825637746243847666962399214571641081097036074271589395664781535211551095676044389385858496518590486388956442013167497756834273973028803930515429110482935316059800919941750954786439050179170925078126564224217667571255786982952974533750336952563068575227271659422862601744015910237165627445757024430235411021654862124088169209450641665038434861908140906716652315441473058008075255391652351139891217095217576499732602703408015939491388056724957462613315695681173029128924684498546609617753186378552689824204149453928065851019978776311134513897331172992997769647753604174039938034486490015153794329381956333214959089046381086650404044614772259120019642725279304635824088512457451378886024518199088223815861726259539283428289666817974775952745900557119926685239506668375591321815690821074196504315241606351145778535903042876931518947837976838157955611535018366339258443174380384918601711422682449403568755436119217948098823069082953668688129728980872711048596074503933264024594594393326511305068520727327053158811692201175497324895506158347701883425048933532756113433898030861124972674780028367405033155638249301918293489872921607822392505992003768014703169477836918109243011908839808223401381066242289721011622665459928039712687161967855210718504751928474424099098141402371282399903170300585366126195280761492979646980801632226452414555539262736564224849808886471265722873253002110299402971258407485504020122305774666974826352637682251345713440859346252545506873251037273712775686746811580946455278847989431829124658024696650501048034622396881862737725680491393977267594424046734859737382367199984615304963971194040590725604780887179181392904167242362508459989257196166750396315530423796270065579257836619190474706412899972316913399233348533140918991865718557816215721277473379304535658682214497335327806322923306808398777699897875559868268041914316192686755024260698143871561343232316207008668209098955407880049055890499489086073747871794503234318562189542855321681854721963630973168954679759399543242893228588492551906912709370474790188461212106724027161315664421720456192262657815688123502917295202461883505310752307349427648691233466107001557522914972231411127830952998526967301968211172132646959524484017859771438287722554061851591914092685397178984827603952116740618569628723143596566858396475280383349043677487872755813855921111264166292171572661199315091458352489583105063159887559777793607844289988692679503459284087503314475923785371835954776784985473567228109646613114719635056936190602302892914515255172384770461538713803088456822160620652489476192827564348293210341498934906703505668803996039769720899773930700055718160915651508010259124095547632362277208434316615047548600741819690846556462162706854565788673989757641912239749563731857399604339397848826840739090206471727845335291159484336281949644787272070881013337198087942119871718498095711567707784153248901467923780664325577160255301334570233054828861632704608341258683853554574050584662886261258518748054563013059285430313049060174608349025920800685090538974545325986295215513109514674469085663751950435020919328366298732856660110723138548800433841238523307500530108422292059967031556378033587408441278003347911582336745666699746664042287330939515337349994990119608257322606663062933003982617484798354565081189060752099049162223516990697228537683856109823982728451858441219223323522381617825185998411691925481695583870927512503619808779784840023041120229359611289241278995965606190680321178743756942482422760607600008684568680777151291616287078032031080726739958655899867831485129562268349826555633091099005678764571310538170296221129517155499878258856825246330878085556856447268951923178129746125473955274177252611723918880092206535839973206101912046931170609300771096373043637676330896615260118983062720416329183854643274138285676762429343886485655251300388975994052828226670718264612414020581510202289253587641623877811421534366469380074305648686927224089656786563869965442605086497416050549129005815887307828769898474249281759481464676615672426418709679965538601483986364999873336073705778837759603516327017079202091299609100210854960188376389788426414441131843324505513339262370391217297805164789662061513086084710928424150167145283156391587115680570069353355667414335965959855692640658985135701052850542031196123170449726266863607586597337145175356703099398006039411547534999340037844605073871975012922120414892427002061072973705432352705031199936345614113816286096755934648833043630505945078876812811046300015229712504936874974528719682929750255746791609555914186739363029225168919826501966184798475828880064464698798329710675472139300910028446323569907209421873455213950885120965241036021372224921776470947522267104994217231294742073424532013604055333515084531722595495511941364049195351072538327700213555818818301662537091839710258539101260786136046715031962775004238991628208823665119198841860659791283956107112339486684399668185370446479831787854717234136004600658424238956835395864998783713756004035924142205112531146447601078064326630581643873267126546544872802171855011324539545220549827213144675566759091290446662090476201209765020099733418075559666155886184784126996536837926742852068789746779721899408152125004973837286128725086574736376473187425291298310970733950937117074572279378883530936038720946223801847453300834113299342442247005995235066209432711013753036444993283361892481456868170572857579064141882646680951649424811864546384831729325660629433567793615781114111667316554558144218261194407024960289343192712910727967724339520618739575830454357433989626335719820045009648574929527872283184167023523946255783482068234548349718409442901100205094926640792108974715484945679809310029314930134304808166677164267814731298279976216077824662987285165268193422643677174676857030437174079128086201797923771658596389849877137087644913300908232553447310928837122832943045551611347942166419676827996014717772391236072506131387554751175340665446443689861810976394393775421369175102366454075145299130012687485744526446151971871433720699030877252849325487631734084908387961658549313010147803232199322488875818098314789509760104324454521953823003134913621142457579743222001343550066697267296192792609573326983336869562648479415197297762869497402585962421900319271670240718087290621833299681792977264690353740552551287100450010357433868665358853524436146041147297992360098726640819989212829950446142935782901937791125103268997513820543068209812382899267630150348438380806185951454392476031228262229071697489521375446332285327062240458959128566289204542646485847167576565651700653325417954737100906035385385630455517082281774401876915321512148768029582890891382731593243006171468932232345763871091381476564483444798730841639128569557788236798050878248553744127299260200521158055351266494270401003166476848770877274046135219788385991612407520459815677646435531271360807683307217631864324634946299387369715976437278849100713219959254958609448205377379334134506043791492309886506027385520234259573606647094412866546601211710659288784410420117265332723710535510826412725624651362825152459339331466286912101771710903190533573077424400453235024600724429783490945655094547555778921713312915407638256081103665554097075593141877791730103636766878853525370773576698000828465905400607500357752387371793486524038587750839921529522346652387589946096352185101217569881147832798429434811512601964010831787352822970353580679213431561456417799573653462079116825202692680995175022536816475352186379388820349272193978667337570066923111469604400736197662746236522609696238431955051788121086926153754730872573982816495986745067552243302290797203192475897154899436170699482969505912650918864487704468489412536468028695478644902575214272814719713113565927419843958719855772593723032739975758913415127507818504292508821677548717762630671919459253142136762433949201357083304873646965309533194830462987688897330805440767887710609942315679370869403697243791028381151843881936459491718108542400807981524046089635247565235486952280497480214052788948740185996167796174191069969022777430501979244785022267617608991420266465324370004584866484605766941881733469028924039324548154032598036829299833435323208243743549571113884221628984802296187871236631353941438618230565044955626482821652167826137767093914053924973941884560404745833361661089128910889827554877905071281855628090219961803339117475180338753240189811207190559986599515587860104199128406202535260508998375985355194506657931130742183768465717665905539278197322632654322860638327970148609723264378809832185521320434251136740061224301429946345197356254302413033039334973348522055021854447557329381767082482608119152999772957981898580654046250461892944297783369637259380673734626266307538423048851621565507979058052988857425965131219436064586254714031190189775030288949688435205948861523319546646384368685991069768288525413235060092112543424578155940484391951658980768152215980004192488681127709937368175285214633025839234034003643936760561513649239573960784738942187810639642474893723706094004998384816801056703027119566614513453153262750553237909132219193929672809808114555952944175543216945726826349839539630234556956117576886820251156063929474896181157309879076022727533487512353633383277010190750124739572554445500295060959608836594336118718349025699467445424805516651926518814759362029047408821150269898429090126323960389914545668028226011135257472790743396669641433664609157754606781911001162920637681291309121931571960368195508503287013414219286735494338203907061668879224372794878097978170856366353685083222853781352598403731816849022123026904016148378535340533632310751114944240682006539614536574117796387854622275413577597518903942254719551429776818702454693368531371215528945587272433783759196787710820550183096836350109987826928019501358015439019137124179156123600232754444083517968800827849867884487569147200836691165178988819828009204210782903748238060253444214962305218801661237956811212197631982069800406693474835407990180719306002385559507453657433985953960728643741829368220819128038740575545599682254933939561589106642752057384696410915178180470063080932039902844401388011054041454003067958368575238869011655524071479987107794792029451562422508592991015115324850307632276071686373742352961154765827104948072711230816995437465523561956814004391829965074801320241639051449536105173595956222325521055909608566912371004363202644639018571940798601841829799807433302303948579750208666818112079355865514332065572042653002757309885077394945702083730670594135345089706006776582097497606840233968790140323309476154672625254344525537630318512859886465508585008864403720554193746918910845125571226825460654204159170954636291803636257456001440170383290097018235196240107279451986684178000610320347818286053706257942565016643614754330532448856239952784338129439205748411453967075723510189432603125811082131423336582243949202253475602671722200210651101815619881792402020480588023743306313261888149619392697611282849791255727360403477536674048328655529528046739119215305924266465351263223165124613820207169401591249490174387478002279773809663614191435198560804767344054008952614219484924501286148037890960016431839168689361487881688729936616592571874083626430370584335573971572823782768746187489842664714313257573301565092918906167675685580648819426610924093742889064867095059851440590360906031766080302672221837452764315316243532029567898111447977420780830332377475513846537106744408655459402926270979035349428663683766798462555922286972964219595251487669569002374577430351247435912316936199596632116797549561869817190996949507926663069118716859369636899836647522252392960215729096370205512298565980580056784952507986337495153687958176783877683700727537320513546055004486018414269888664978243940684000670570095437976474180867229827062406095309529675584909494200129100704281378641373822636621073243861634155069016576521505328212727917064715674205455587979488085972450681089136287129747856732761502030621281344363003553521329030259107345569798626031822967898670853449726975343701543394870639906961960666621554790820716295878445953445068249846336757776354277296793615179793637438911406273836863134785664873378569682984891231700401995769653142598209141825110107069029861472536112200033606492677522278484379405831902718770081355102030404768556160751233233381232101445330770688779051784827821825848010961094093926451142120453054512866385789551147010659939195839538394368295944243711166930760559808293393147859364838868199342499073803795384928200759674048357482279182664762642466108885221174255116335499720470314791832601624726422808822705149245024897445828361538701517400344754864398603009864562437003693801905068069918067026862252500200022394714980283319633458151960221665999378965329706503889239872979246766501067436850500464438972944701937004008519446570905589779517442607537661448656865758081728977371934682807832293817627339841042782486610086512146686000564254766842274414781407557516820150617148968505811979069138340955022007442051795249580359910696386814128597920845505975335687166137183610156481571988105301871033916062046966920430102126431279574119277560403516418800722038827973144336079924683880724870729579156677527182181545976085706148638751855438248337814033512385136629631600956237860876233579589080815694548883007183268987234365174191893950963429213459348282216675129087246752535086066511693341520827079883535140182659150803970272283431588643991041096228123330911874930292221159845640619393369122354054980011155005834024512486563270325845350922792141092301876558764307434569151487340888154053475152293901570440227716760690829913972418583730213929995998454890701932442155315554595351382423027253050277081772700599048536993495950061181127291950425485312436261011703200470428715162389829329734219219757244120025534611694847115519435904530118354760474450324532381346049876353305547000797781652240285135101813933035661262224933232456212902128680390097725418158144498781999691175399511158683621791473933713136325674744105781576462271471693930205698348395780829822271790797199416535064069886161472791483782107023727118253909360560880446556389226466357906446052174637964403710386635416195038383431514331459461025912384609582882191327379406951579312289859997234671455457175152312181948108262919909258893263572742333291179404818177911396790316334514989864335383476570084942428445245313960127348368630096082148571719771279992374725102047051505808119524863349348722084609209024403360626419581843274467866741520410475400767046708038415098091753264543571262611071694611511773949508489677312298972757282465959216269863241863714234277789558337346189434144249502515989741917294228869527498202921454149036830106267003779513648945882374668628161996515244152369744479708142928464913691661688436495169421438464908392289424744820736711169832923188801778174218732439380756913827396476358181067542842823474158015041713682350696749077012002191770353475283600634127509934154786918674811478849232868696099695645906090891938920403862210372594321609091236091655308053721134503601065597901544499728867894945874573772683904864939628437533940958977795375814594765992618783241367623020875180071268691151810173997346599026476777298434597854743101398240324427218199912175024583447746407941786933833989113938482478456760941870565989969014554316643596183272573986772443173774550967985664517977762559527435461798130009429742146562808306744961732597689316947789272060908949075162151269582500302516560687965970016782000722787075901991360791470070999327934057859285549174995958042322913585430775005456048433028494824883450667394082464507633174132363523180683394329542057809703236809818770693657445691183831664016464118975454999471343564359501841760531170237401046800218816218789769554445161712218980424711591554854007377808005500621831533288419431919751771729562223210658684837407269130930852516053409098176851238644965710457231476742089825186965491955329977728439010118759365937006497168482303139489676459816967864664958654850655931985172351853130718616466462783528442329974720752177666061832251012910468419987700372787231840563696990209865730435107324082573976550689111811414537221247533614114859442906965246265068516918424598523199712198498603777111862678888008172871787272688123448597588772620383662660009088067112061651734302824964516298017942470811831117620770732778217629789421391058010911560407731737801968227957224930242030639189816919581764307102690363124998198219488732542368262527872032432224580254526838130400713288834562865009991186270561821020777856155059673602966654808003270385021999055052569283397627735549568386954788277835331391032786659313812626950315771849039782234685177828353721197449447411886835628621389308852400258341614219091406342177393437072599553537474955373108218093823665720765558460760470894264117541974725315280271576771641788176518195825684127743163224355602916113499750919217499417939909522008223661946598732030566910956739961709324069194884007887921903505432920902445695230453133080609611807150512187689808992982662215097579275242321853370630999065322102541192870916379566118593549699867928985688137059696474048264964026948187842982275774079735148365550844526191409236667872721187861547337195714261123117081783152303630755949302257309800717252442192363682452238538606938679304649399617820814709248966147837965293536883911895104647296248181762113588999301688357954677666591338545390921564139674206683267273766596068726960536330440674481899810792136286408408918993861413399769922894276036775964149384613247775646141638788895614758859800673332140543734117609351988397314863081740517643365073291667443192642218467550239966236517214679199751783854828114696985101913799907785955927294497143299610090893498105662720259430873415874847636625801241529618857024605847463623924346380521688844104142460430025557635445727455988688101373116607739962325920451708032055007936262358713096341345588025431022388652613373367611439127941735533259580376526145980630046560724145003901174347889586133481277971884223796336809659886957370772834707298517372628545186737160565866121229238674322455959963689961073578916958485124104600798440271018257642975478880720969118417801945498031752827845157146925975145698255585767297345414786463519484458755284870719196833407542134363896320282717069787191428101196397504087124369821530424279890630725564728487616496143646550223813149135290143609621087216506674971948898877037956614430649089342500713444441823683641125518518319413744640273019088451517954567984218228817170480675046142033137919990861882785377277019772428489332357290728211738745292465527382008813660613463233181923084663735186308528069363128848447900979465866732205055172696533087194369173076821942183931867382462770134441048412168489767273212636991204010446581046486215427368665815958888696490613642406852216059488852358280278130877080758670645375901696646728481720201605073188175782515192987012642212775735367607717947793311874690045163799441823545134447473666108074561281217363947195304980182234308626901992394710027764383670382038674848004813816407879354681625409153746415688681037369768505216700799610047845570645683709652364752874889173002734912192693309953932612263108032809429958931350043848934530475255042877112937775416094193783431119595803143792672709912855674184649143849469085511804729368436423884262609483735271843323056705135255419513794890472564125504586135048887761636855814706109601287768720749741814839627658995716620409265117976734995214976462034137127424775530360710051376763900847228387683869995508727316398606145480449702280411680780469562173613564918282237586628100643543816930760176649022131546781138385409019634092584901892364352735509374141396615486853749399955373267875206602390742592667595058988169142030573310641552202123689369004148385429366752523200841077316803915095508614491313200155858250834977041429917117146143983144622978066880108407059962305092378395126103300195756651420490628084188460064001970195478801277255221547014419745081494405955409602814161245379918005740946331276946462122616924439735298104499294514989963872499924453585699955954766955172631057093078562047324944025364306724654949260425902323244953741897088582229582788211598622586806671994817613839218892509608637689047823932157306260323837454004324437709646806703972411936963065065984527114523471938993090907790790437335202398134225674939160739501728776038255330619351392536014747141998169694593288932158777692550208565922668230975462430058159696587890661431672278880854309497031135561312426007424247397508535446229518622785604077645087747852037454474854214324930502798495396639157371105716326843252984701984182816192536021177401626507223763482685129662674504726317615415073257972780807197879479925568256584287589591173463095416471158450404164520241020055789335078375962193953023200488132738472040946985297717021009335272968937122760366662709650672030241453116538604619638104664580328465435908537956585112127929448926450632668755694837397990107137995675806365325724449076206516569367061727776036724722771118051259987847437080110718153720259616483281939609247211581353819916136546153892443414456663253029157751694921795207016371119776637564616244121422331917290586412527354821636466364221074785888816310395140631324840428606726057103782702009143103692754357023212342710528286673669308457462781229120063826993895044673663667199325440558785962355849880172680326962895669648955726978686414536301607945642015202288202699651637593357308450275554654487756280534698267764662328913069550963524820879184539022839143531307529298161985080262419070138516386116114758282835266474432893653444007226871124391804849821884404683254709967886148880723910105995827666917412806794305774133993804540581051968790455980750149085286845623828206845624636539122497575593046158378090646171393864225833724365794989272062097420983280652881494084833197672435948050070697653703323365568277979301375878387681764697240402993509324924733107605299005454838299618067598576341958471124794928701244227734350796320952088231716907723371907754291404304239597412371821681837787430526819556746846256708005677771244091992146886717588496356580876570066417019789873371245750691068711679311512107976160277386319872305282428748902225476433067428616919285387367468170254542511121736019409645618154569511447395852493184304848646314566842553437474749234357169914986555913416896713637200869263389796032544376314643996319221521665149062494248989328714303299441892801397371725879102101207156332221252877836862426457792406560590719554705512983400790998828536960211114591329669420316956883104533979864254731404394684910003803521694183136381298754950895618386448935628450504544583428717788722308128837226817798029466608612908023686206852493849167225548141608502556391226361136453295323545413832797578809560088517346202054743488294611952217133769344150023233687110909004063258935517749363497989388641833684994910247341836043965567732844199532225767271436549674708255666316638610590603745406113626319156983242574977523931630458448194849162379050256293360887237323199092482133900803593627168099385018709412485580709735716876592309496862856343579493889585646856251939843693616310754344800188212148052144368180199144541757026182016721582506061427273228594631657125195221301299482265551907227039710486531786739542108060244206539623370791921042156240347017553878306038885797617678658162096604695286906413989996116127211866220243904009031916376706328517203516330040594742172539779858691962183708736589860795504889006985766555020347852714874915197297312225153922472828609790381675190421474493809517504741355896118123816525304393079083077091796799099091154848928913755250494528028982326865306652187732471044797628444077575125507261102343726662554134704179921111272400562715523059716890395712240944391874827982027202255847201348163237951689105045952011191766611538969863189100991558255724177859638846253887645282985054484444544742412786722631048760079529811616227672672585661596918124258316033808573931610143500854656243257666948784769310643561306165808463694951087995268833599086949227148100449391899402443859419270781248939370912730471738737805456660917665658561879625486999736405561220882723805466388865044285740847930981918977062198012861822551204513668317170302246305218662868707915719383648406589028069515414818356734150873434606117270822332963621565881461094312956389365259216451070407386698487786532967533988848850054701418268783914940882512555098742980924859534868246921053336990631874307211561261333005986472598997272562082714385776494264831307956615924776832150017399829935406241210425110374395444823087305844313831459938496694462709542912180825895257473096222347795244055201658485010169288913090930018581822047316279768799311109311549727416549608304847903663675880463720202463170644493285504320690471327597720557726204002160409231447102577355527355044476404331304888326019706854828553752964416164000678331333140349819563903291147010286960735634901357111280562741891930258169645227104522840940255592794950384197587795294575944488713278158229275719649857331965650087021082443260477908686521084507702074240320296211935748588578473198667046947747997429988318312010463086246323548736386857321151347344619179424059206198020339069228591298128811271111936881703105932368004444088435507227342832072338288964200207005171874283505337922401983081463011297026906984378608504826268336605000319709338511195982315314486387211749522475373567259639391285895328040533605303275559408376477106223713912603917235280397836283873041569572474059578602705712775462790103904770999167379705178462572856407373490434752035932902281418572034079553851758868107139027766270477976431760444654783478313440759026707598087642318153533361435053725887970459591598942652607405390117307743702204473071838024627596342465069432530603655826449540627217642985663279336264597471118729365166594552869017633573203831354677151601280784811685914399509519600893359493038368801530790062558529220300899036918291629202253727250232165330269240491756934531571086808323770587894834258345550172042024059916346232242558276305667660721033616752801101300541705707790777236043896658620500682189007443357234597061205369126912527739786549498350341742880161470727472898967572588452625918874295941821594386037776239465597782409437990169419026046537658800980533671213072700037597614243269307934178267819935706145036397527309208174219833836258630344711253467260139914397555543694013419470221352632582522073617883834372313229552679898188268541554159186810223885494699616644028186595595316386576895478388069597782858606135290068217584957762797553433555026320767197619645581280565781328926726319840750804368711675582043438131202174946291079950612027736388768997453626708551484029254618338514012516789689711375432709681115014881986467280906645963146882097115389582778631665805975323048939519593975416817134443882512257907701385625147891483677407828858565577211416859967689586123146966618523015823049222017706601576077925433943760680089812391093968920569722674362071804096272984114198095350252138961058834425439498738167451868548023344336575633096520805206477646169042816820052819140429098012230442579244080880280668109487443340416719793142850025406126440513508329739210967567569132578253415639440315296128437154565994901653807665967767402746091649106002342276364590311593388522259262443235146367150152104889565162196670322167265909667988511511016078638345351478386738993745236074107842722675093866885951826310090242608090263759034994992524665054864695135072851478448518240988876171546704353045630787047766663294012712482711035514920442173526341559558742145338745434435582210212027756454435292575703928709182273470278814315923542408052841061016162533270568008348218218107880907799722941400903798259459003324418345316644518709101598347335618441079056725754036941869297630743934899329182160050941571335985078757307232065009582020302745352138074596785024396387964926874457418016347666266740620110502345496405104918791134660384983227881552937414065277102782666360094711806383757283429969104527864113787509406356035833149644358815329433616128686607523368650625143799748924682293226827623131635601107599111661156150143570717397376785591281497697020531173226468071501006720964961813552402268225481235883667814479054767607504692206927193436276405974866548300827371435829353478363202526129274112958037187720480603145596917363312873039098306694823005282635374060756407261051049632461441044730132179833975826107916920878600399601617489191821659456404607711929333158504023031722148256512922056293702571986504000930166858336568083371492764838197303777988986276403704652144673679649556079138807609324171870158884716928643273633244752518347273166735511384060825398789996973187136212330616686188814173417872996671851842605611219201616343373466624998632823830287275410943275288206697614727695720680953056829773106122940411850056454003463807051071927636166438806595425899239279349942211886059002452137570715207340126474384406741809637310939177548120806073306382720472586112615092459405628587452932028098588726702351027729217892310253666468355834091918073755159794232540751236321926049702098888549246557943417427069402636031408870752459516248738784103126757868059979781589684444267824530917903732997178657708194337615101623652304774168375534243137539605028425470940686010630646956781156763368453828165211492970621710480166742977697643758266433531278587252047509409588970712621520954114288784672366004706165201526319447707527687926460636456430380775521007462485090766877783551308041283173413088052451813648606724553723754793031028256939952311651438433649940054668336701502584769135557851009403806965681943511404472246455880887803134878360359257208844628939732932172719136714894060023072531902357858207542836064900848435227627149659988870929628543456420814901557811783349002904295877311851093737265327957773125010487628162033116469565412263807330668612355415219771722323813017026027044672693405334595839171048704929375819371010721623685669691263446276075441307021798065892713631807476002700074429065613052859251566764124845458823634946007834325024814555594858280765428200592709982448034743441152038810731975867387582825060069637454467589022701514431388538323910204495037877905552168465641641720572968291767131420645199202039421475675670671304047382654160497566251330666045248683578770824770999222495778807254579826239582727239452699270264441321766058268966821693863494929659226848657296261443784832896439634804527892519038568041678740656398628035615910499969116037730761485375799706724706908322783897207759065226260609129627662689198271895474745011874502079742515148217102039038573806226472599503250538619869002015941336857900954640390976994097310758556944265017551139967667156043754564913229824858043028704881200985208024737595073100704322756471878493651645513180161036337772329949616844257223439099833777517881622205469018462991528296111724497626716079392447884758818473930759803639165473161696323728747383754969909531743880172525456866726069089383512425880502757074878961164117584105787674034425485348294625790029212802363776293953549090076802793199645234477342248605243572520340566919587148477990710483908893868072238592179241920778706624595451883213234951642096657786068002244441230488104138868629489399407447821954206293471855754936081308670880663775432887768082383246086161570049312090380697716468592378257787127115518642604946590341558111989727861203811372787813353017420155617356446745443217988904039865359843485035884872928511536477732949779798479065710520918630341998385517711053685326490778497047606961874725775793253114313315900513884032649223790879674631329983855311696768844620573965216835842684305435419123126493620178090080010375584097411676493122821483678577892401395532040056144897306045006715069876095297361684144170470703639156777985082566042818341011699755487801367371496738507630682945771286079111226666233265497552071558591219739542158181311019108475157789290941103591152066996666803008486492250477987027089872872516671605024454747458510948009786903949730365407773178621134108251362772613609624065272860825043553305569067017439526569191080492826438131235882653394665528736746897863990444746047087219473242272381090420758493733479763411606393764899901230268778224152428602975391201926191820267141583764875175027064086767661919009759981734468289670964185045622557675324357453387130122984826386644555718014237430380740535073970116391052357872959182950888252777818112964727809482696694629918393491993384545486685203785608444239645958833335233871158101832164197080799351011399239827100142720745970769339501561829857325780021964657952365238648237773794459011793697793994994851986554254126790548427255276600864571350324518407230566877048515714426281392572032186848338267613949633902016580764622181950661652849725362244913359058389834866571720044339698819349155367056434255041854197656584881414759322658810579598795700247167241070121006396432398856680525145642683288720635893348749913213343040096192064225987065548998348398001351994827993174970014749896323905375761175924917243450322607314391674952489501269058152960529524008783831623980517396696900724888784302246807818307115048931409428575773048817801209529168958524269693821548945348327776842611694532920844431774249989997835501491805667501434515586242509425449473630913284995376410546334918233328133291247536189053821427129675916924418791615988603262884710806491483403589372820635333384677258420424302304190455090992757767172792896443845358528174034810300855493476437033684979524605154503769613296713595229639628983930331082352349597422078315358696391682091450645114304687077616352192819169809708348930649351443131981921038678880957764207942007339389687482046576914612715201556433249989771857614862700706395930193950763876724484829912589677386018248736617677451013271444972828593425079460988561237422268641409557266048837868030580440354744729263387854915791601860387502215795674553523658181141719953611932407931077839274853264170823582569964018718450497866567866873882511919621494029513559791319828116950936299886066307972774834095119087010714832886662838388697076922837515503599796759075174047754612148102813800957356713364680307536759835057636591788767477292557205022491678378544734502745138300830434868287554134722506833157294715499803985508044221799873791875685042019838184208855195189826433428468031730155809095356159873374017865553909564660639708981843608408843870014945229527061701725751829834530132743375021776714213844148068811591607990074974311736458298834204928134784925665992448830615146816506877596764574098294228905229022624802908636530650965669471526822192188814460854276968484346262392472701157287883891237943377972923675465092979766994653687278707486332303703282306281798634373469271153213225221618844381465286612889298834934883795844058347029781664856971728653671410797782853197428153277369864790683396435406805347281367863234310548389486405528315450568777730778949907032068739562091442708313905855951181243970650231081509972764641274169460583738250454897136186018703920879820049690155695637099213369028487794164634411324702992383222864882432739959354436083801787543176158011302717795770438692719482920198325438484190501475237113443230501857490550344076463781116321819161002414162606594842294215276940857583066201757093692572663394346317803641834504955500029203284680803819123301538497680417218879015806296953759134948575136969354067321681753717191561642546919267470574178262190156402124402232684111576541536723675166714024653685286688461298830737049265014461617566320750859009433534447828023793139785541522583289326156235830679162933008025625522200398158146948592753888078042177481851440942575463724143315472933547920547476204035390213181390473988652442708965270329128577119396733315646972406112070410059139227236842368518030679155425035982795774101279920520162254998831670184383309020648349714227789644132269286674667204205627388751180433889646639189739087311311995478835430630061713135518123772481726049738344558133588478366048532738822119300301225200742325244090092317939496671807059320581264972800939637121668004700664109755694637353172908002316685683241606434618860754241237208677812025340288448752586140176019062527538785279623804919467504204830198659006384895063008661963648963531242515614213663452270277838729502302738846097808263426050950230857097485312693255898960206396816347767166515312967196116123955814735345459615779642042971627325077931172272060913255766712186946884488911928500914162373825743066292783402386446764982223534388080626042795358199862875054649748577941788804075240008917092798276959924370845089063684538924753641259502148041210302381751441402785701764213000513618298256137998081658295360533886848957202255596854640692129964032494896888452099801496777036511272617717959547815524323427453754770446502221284187611269899084918428493537409153098427543798911631924401935141990374681146544413626744259873364209321510981663104659386028167521589413728874648140308022204018691958503645746935153140226717887431134112979917220346025940373534190248272977780562032474322564669762942793020725834486810568498731527419762056242489922299488841479509164779230500627645516439208073072571507431435380513916525641512404784372350548986654482545246740650130727633426688816984214417574461415467107673811798701017502388021352745278235289354071111357000720684695585274602012202484469871033660180619458304755709540069191187890840944688721064815713027180590243387584096116073452240276721102860445948364141842255322754216603414201759724906006077280320570490147541046550634768506799481602120171473145367323873629284408224743619226028880162513994520233870873313747291443120866637147177802524344516344162640140990998430004266702081043598576288131576196213525286547730508582886709840084357177805147142930848584004576284530740411298762167797100299002400856705288508168032766227910258853294943685296125322893221846760224196754701856048352356648239873328449757410110834924165071997317045426683823404661858629624234295149465258653376578548140679370325336981500182206894180891569803292031145001583181032011333698944924180730567749865218461481543397024300259872413167530105175250920773913254623836641792437898267218575609580858725980262492289252258732033309626672543114015681319156590780302371044456874775615779245117618254180251277636683950102199582140577213773388851985427453116554959428825291361150854409290047739445495695040989863811360167099543085177492848143089938161037560234583624825825361607813537128880647517464437623493930327459676096169982745215579371795270146789136004977156731663796681974530757129218795537396172320121919402471851821677349530185514494483284913209617515323159065917903290653004964993568340608181497273222133341468238303479486619781910134207772597422405341457476335844483615460396400704613097919396661792753143005652166366086087872241315957709314621096763949926711753695658677054476492014864434642743618961284166972347724673237916756965357656061216276006343615509638082913781281219436831986794937087251553752488343754824180806868155554566657950247451512151472109084252048927937152461090046834368049808954266295208155719413493881102702834609279075901908678909234494158009659304895213214165456158775706913016241247169459851036110258010401267604528861619131583102579781790035734895921220419054147977066655096745684806306722374518573112630275996021618235059185504183051829122493512215998859472209104016374953592809366815772391219453816751117344024458639913436911323077561596997499007971573485279165561759808301538059549983348090352770510686624579675081295035101246390511701493082854869530873730307871442808282562780611794203872518112489724553130425123636139659972320953493052046531779812455718237340402411975053723125079535163123001731328429087950610572334299682495771818433194882685635538991176430520557372223628065892272787285744645738561950826456041258280681611349797261075349217326492921404875227050158845127582928748524380280001119226038642364081182057549159279830083045121083457490243827147102853226422149794306295205879451791493782213326380518012883867505243842667582826071213121285796111428180279294056816307557027804719527453352077519061936472728708482380641447772595409673966987165485304230821876282908529041524368119726202635051551290668602690167882754937261438895033835451774227815169068202959324802778775744817543751727347560963066012666527873050082767821673898143489298455581673912219517215729958179390909473032351630674071299491695248170318010753205207159917216246524027820259963650718345921256991203584716220965131846352325904191086356204471353703622939781790323891563770307803253744965793418388841870215627158602576730960634862765544859077045068867356084548303023741276929797884950623106323668834478795980603647648638331841818511840415545402353144196035450838715575274730110242727961013678823145604825497575975135969055933741526138687944821152974232217790698783048726845649248175862380873179753947859768676866630277526914173534784228267895475204928594430064694425268651369906191512486874925230721306568909886277557535604784117796374035367160723691217622137492643424635044608288021017524303546525649401470490355351268739481048376399767879620205287409758270499577198850810024654976406948777998675344655960163930688175870773208445708656307252925854217063568310967129949915291965998036396265785225761419699168579326219580398162911293040589957874893930959831714039985946537122619559339969012894104168885827647423241165763719295293889207062706551754980117400851158368312955688040312362664441587145131294429732045698689029177253386208425046993295916815261299858415990345399273442233626570974423200359884845832668259172342976259109904159797630926780501324832854471164113853844653113353212024771500365405840668864377282806994803931199235118045663975376619883654089353579079781671719963901513390172597408500171353962537318974632242134053572797414372334372148611420098319141323906409702305366644858089937203717766070828621770142221981971552418710631271023137128124866737688349107452967732291533807911336609938523717158227835888594907694943657584887124635482010927670830141764660895188918652721946467041954133391965854768232650392907787417048439068659187663184081782363464991251140322219527073699911461157273348992305616119192691981321456168353414946423399047430486362833437122387818460741733807411693508419877489231282652130637599380431561309509828236245288657278528621460184711176216116722443989767560752509039208786016603181392592547916738958796101051838097524800657384314635811532865790967318216058017121857153878752971000389455306702159966257276328410314497579411385156250154892528143231061427039023086190924804671692603348885937722884994722885687069384090648696172645284688104712896572452343904450765802522008155443075819626308917616706431024432010783647595010151284245030565150712284714476025370481518420905592485151268409876937817507778450132316152237286504962381704105501604713300404764103083056864271092831601477894262477215608618251974800228455994853381447385361902730423712194386719516908441661215660958223542327385841859141057202497685322734671347493505697341415507938236683999947458521997561625720727996451363270651699976075588001943048299367297105770493299825058422493268262568037102200775827377040394422897002579885885261019699988072301119822334857167788339374287940373352302710908623822895399567111544929991740434251838879529515163695876250957894439129877710028656599266306687950318688131715256465538272532909586346477194468913610221374768508103909165087644565586611554840332395060080219188713219563179744847356830600295777649755329304269742260248284379007666249888402833343473820032571879528161979130779153174035329098000412138140214981116123544101599956938289155569930607579664590343860723214917115704150517906306352114665595126537827511281850106124396503043386042869346107320083387834085568105121744697912530584063559603557952702675492659469476285003599666599598291888032445173743550020886898767179236056898110128273238107734918648610595118261805110806543084827694089098564788681075292038202657299263060222768198400923677643361784264407977295837407763329310733312526918582403485625394732274037299575567108499940931200737972465352557428501573486672173625281422330363879072971416395709303371237159238393628032248554866840779071181672428433972523945292727631775901528092993647762789799546562407096055727726053630593785241078016733379842081721890172392546313613970023640073893228124709324161013386495130641862827313709380975163168629809809409431865266914074856166772615433573577040023933988171751878679811963001239211885819117714330544921266229360220482745168156951350833432400583832270594402035119875478172810087828008511220010826315755966798603175484382090093056141595196836147822694690080132520160830950271486293104280140959068733226425138986038198952663296735820173373672053397037534403686487320134864588982790032780009439733472590737084841207431027457664131365031129662688139234995313270611228951115127171210724498696401976352017883266102439860650964075695903568895851253627665106772753392422676555467207743427976406248909229664416731374170758777842177682579938107830393618871005882127503267303888963128289768037436263908183361990714522252708556228973157028065400583567472961192614004569199899238044752847220324565271172568085213069131401894780376049058243081291162418170049555469876053543779970546997143772920423915533561842936678473382234201339184275690899252241898509636554910114397652683442899412586628088003836924789796174740480848839232525113775960821813025081930060259999855039236177252392334316415522806539656437596910158797119643654975013459791388864408054618783900458740123218215817276599652881460078426966609609773036217164195766979078610157259529070103985659084114662133589412210113796202097557843346007835822966805335192279355223018349479270769123801819396120708654060858931351528312136309140811496099828202030375963908160199160429523070143199690635847228756806245348998985099274381107381240100397895419879465413914139425836006828279440895710630310707683669144774353340744892179716645802692887642743316231681547258485850687099869593239872867527999388054823409409874179683657779332487070322145317235585278921980774777762689646762835346193734898319353942446641988017457841969762867766988022623676241000550413097040037473452180885713856738466360360944438928880511168577563800950598000670431033419317477448321607720779737886437047335335559027194011998635717292321507251811245506414473814842849185592653851171784988032642850722852325925660198778380084692281559888297633113157931186215372627604567998333888255257796316293204021381925625104701655635661940266355275432113554923958757530274254617405521547225501129807484811970845920680252880479981921953912703662077950440949499371283837252084250357438506135867858251332820440434794264342548481063018353965472390835774886178870756885582783425439826576058060761967195448399017567529277343646022448399876226430076883245195524373861677063706257363990885941458870663413320505220291084915027013199054513154052245342755725955527255602015028374142525803164718363103104006730949464494970466745590718207288438483573848996042177012395826913537208216452894252361160120007448828402955764848065023892889513430009728220485869311953910108453033967356111305953949484319959547548792421389330678496428255104454585670050557559113660762185981400244543265407035276450656911655129469127968794557451326113025950790175340677525888131640378309574701428240186639789781207698140195832665702332437937192481918920435115771999936468682904621753770839019094830214074345374271501520702689629111683336640035414527132879634277611837802381266455165633325646152523521473167289086169583539874037725364125945514255293398136206391532072823998913420273445017134397844555578831927474969834896940539866394057464286946233622694423384674781323385648872333334414652705006212609873761424594650060021611555762182135715730639272292987819196026537741540545282214405982325976583197464532382828322937822600167703116509681661229425962429645224224097562300302335419741546711870226050071489920892415839544720432137486505377421337951665177596859523162498260391740230593106086718275893637858029801684483251953309882146891863782474069571425654022991312284479862552817974367057168073052523483461199242072394775347033046397985619260767984543162189465539509210499527679807564215921790818171031855264991561155786211834526932700002763747243165616437441776778086120323487490751068131950868225434776048435867649240940517643884485304500459114603002782904127141447587160489798780925746384061061227457068249812075200639815564109654703753595289110914995663735442764230871543397591192937963579406530919616747096898845006727484846926288281493021560958607637920200932884826368895763076414087665749312345928459117679079304227158269537873277928585655492892536558676851558574933018471639066304171479645067881681534309117390382871936623884202282116407400127750383156374759965050505048648967991782539711469243436113789554289988988305726122818267945619292811343773915469156732438590108469994220930559526149530907569087190403994743043513224282379825357458616361752903910643426282144246121534233901544395686068027834714539586376667938009904169440635265940365843713060660374519659067481388348872946474687858807436366284253470399176948152724814071409914958808817992861664323057942646795685065792961889966366930859866364800497813556478843010466019783317941144222128508730344185727099244138129550564880875023401639812002494514760438222981946479756460977629698613496232126159834321887670661209376567658392740078157245773513612671298112532194353333657736445477520208443244457336940733856459238293594601158562691334416656370491112757830792264170901894019863033673594844073781861604016601197192001520503194247268464956180531035210832446115086312225638828830875154391533454498075367822089612851734662626372961810527873836826005189420494261978097551319926294094284434288670251654168853973083935557040890025267587720453510013865163698137198354733709384638053060667982174721863348296243117593363286599299142367225488294194720063051559989984518262802707803543745454876065835526536533014203355194719080989710287862620980073281702904671201876826543814106432672451995327377643898890259027500594677769496221756763165860808514354061274407506720981311182336569898297918553369859444608331893997424432980466561260251730146477584426376601242019020010955243355978521118970072353501860308649101174227020633191104522267192700256013855422593640010580093008494890047047611976372146491149260091467305000279306544140720240253545066943851878751014870298310729194995282007035505886576333043362979107675134922346268781906907837787380283652089121630295190330695628816613839763142212299013204697519971994159810710445104641188607496294958584338040905939090541101367289679056539697083107816972688967477315526197131540879168756078124468681006011463384659452030541885811636882542092927055984150514640387405289466469262275076656398797979346740614492900923486000767023773023101456253149079937917894880512952436575326571686518920929306312666053680590058037370076177944111402443171741205163208586516424459238100979880551555235891563313000438613044904010659073755901507282444058014103650344919997513179195609373553391179894694672518628687896796334327957886299040707532775734681133562334989887542405632241214465626265907349779700231403773260573729045418068208394599873053279407382868466244305456757223640655370007947566289126004209412280847737642435277056160261869145285018082254795388299740138743645927077111757602566942422143327847872161769424562904003851693426772669271573761238677000398226989351577810208041426158368097517491641657231914624233347321645197326936139308972773914755767720300263896233525752399408274655455919137264362006784899388310771606079751159759315739074923349033172006010153518246058207467074956637124870913934318142104948957550805852568780079083811855002154289834451940342102765488614622834764573655397066289975024759452631986890867179172936315156346299859142624463766216578610175771637960151586722357943450616293421258395776544068618074907739447798440698697309760629726868405262506856027890949641570256511211316015646557334607397697628048712350303634201254602147675151425364962970840943806091372260070446123687769637601807211194079089662776663696306749028201296965870514492291003882656104296288110770309006497165023902192575082623722226087648234215789474297538985506059684608890296334390200801307036350599683381627867810590638116381346329487529368225312749131454400426637115642408834582951367959731635398810522356275945681317150319800243116831200671439250811018233731352683473964307785970520474378183391627412270851367719357706027859617973616442846225351764191511713562951873675708897860699170420015622750844677990114476420832096516528898393084943845718186809829192929895841726703090222346297390907357302693086236790837642003962995257875248090906152817964216843807662684626005672252495291934928236394231956027751870935380098940795773127265655116880352141708492170841052855869756485190142610509916500012425849617297735291723039919841050353537191049673587246881239719910842784614403038461025267622255736413271677473121199488569408156959872873403028341435740058211484660855306822741007852219568282878345412298863398000701220357419864792561672447454598533185941407523071401852577742465337416666761079413651074645125521254742238752528575109310156420663260474575374843740297035791136119315798013829591323441713708975377210287093786225383136012038436550630621185284489196093582672357630036873731552457717357351300164740908420005674013469973488779273059569425301201035050273945536082974600165116993812574726168737159436863365250617653146277726714246326882136330914754893996151190407552110829982963549075985359364123370002463529523489825729370538116666011768634179424349161815660511279120538347339566653499407332117489453770537448731212763335910524590802784696289714261126950847245156388467485593236643313041621284857307937404417964357784895055989769644632979894058458100597357092471773544613053412864296240478702926987911083421085488911401246805652894983186445825951844848936791956561218404138055182140772787085675868291534805832231514189158100520236533872440586098742024788466869701337056092441913457115028481068513551856370848808027520597917030770736823362277782506229226940690102396890205409389267035309322303494195444640380959355355566326545000231411066919193223679106083244916569354139934750530634808050287645331239231689922291185288128147925161308051661663913004709903745949369301267679614783235372704624963784036406566343507459961702805750459314436312100942493816933273288305659836474405085703250347124835379091892458948642753273986537614854368722869776362743772671844325321573272940940534596650218941601911536372502096011911443062637687601120912354712637592969531341174798243110542438188131982886504513483663482256962375890416083269045717522051898763659400343894581570797088511405927929768310571200485467415597364793287515424592019830182957387593769622048648264784039504202019127910144373269629431470748181179348248199412349708560615351068702383810276731874288676008922627968165498510470918386265603151085561994471769631525355500113343566915657277278830911316815799963791107251517902647136800287664596225019145275619752317604151416926445405850127095735284236619780090138728170764926933387161034186569904676389301546658664417958382789487431740921313754866751851728023219967017058745402331384428941871588456800881025163797036381662042201026476245786179424684801881949073428434463895979021602761869810906521356204152309468151176130542243868580256151457453103798116453518270523472995034046438397109747015500940527929526899085936376378457725641002457664428644223814439208331791190703534355185569209774203793273357626101958878181092144011323240970721418522721253823192498378492555478523573577054921156325654899307089353540000672953125247511428785116104062067302872607847687543869601482754618103813440207544004063562378769914975837699568800559654314793229781338761944608171778625538756617086078914769601891887448085842140286587406529399826245524732889286735473687729038384202384316342334668190478863970192431709982956703475037920483735556088390825944964971076299184313482218067123167246566555812406448507530318672221869614201029802147652385990009610452914070702264916096862650558229712642516628780937981516792085266680724881134975793283108599241056670916055179248234499809102073751302798458094460161096190195684620070754822277606148308759060318236464699996341920857723208319916815324876187813925515129034928066172408521153570666161676156563226872594890415093600770848415914611198444362551663462701351923765495892246065304507492039742506064476526783323596300305362751125048481817617947158516119945532795504552257729575069856080195353581767176609285448386158621793748274414961107107981327001103984211690857748159305655131037426128756631184362903862866458338108442416346429660580019685467318988012779684406972427897796358533621539869624879411701186231837143806402013502860298533529347193660466767250469570951653015653091921601432026311789844438354189762869884132739339989031126449026893814651658433094177257992129896943325129575565260083373233513733291791786958689877594846834648022978502856274269157967148209398402767591602670747785512880897567268560079681453167942371795690116997445402692354752847663382428473742112627600966257026240159171112462658113381906753505085292563601030914718606149903056295793698959305994010274856928692996832811970879154306368505157303945263642799967491050378196319693248717810813584367366381429918661041528463840958749011051205700456094261391564060157291736058071518214428320791978245307876873097083584529131488445065163199777325642974948084092534156454099008640441722848143043676644246721187924152205737677899321789504812238863575491580858107046970288925395755471391049199026187772720287040428126241171392980523460825851659172073532670904075897488896632809942916747339455399577335731718817872438660731890993094438226277757096135261388439001467541988139941125729999645404827540057042446196177485977733320119083995615874698607666316988481392940372986545187204509973595487325458983481217370906245877211843156277246684015856134091334997760028244571540940257380567947000330120601108400257790095041742806462489953191071442813779596568442198948277374224694222367956873806548812435235023264033347220770445680136054988749085618185239230151339569231836722929690422640371015041071402865314434713363743640692635021520149044350912216409412411478467243193780557283108365479477474445323802519037370768659707274099363478243931686490849817614184610853036447019829922455852099184564589389724823376789781441059950600623857910350108526614107600661139386510954219885222701701978683700922111156431608009407924434641200925824138808020361845536507855893981120014160679460696720485995215385025658811207824675533765990448701171744222995159477943118825067800488577935768876686068940268983531561101216672466754204785519888982496523690972045807534176566935761411988311621318703089296394095850903538992765275297972422350219035485730055476301300988251064024218198781030826110846521597700725790144766831651273448120814806922338143869446979970816865515698664420030129826944985622711042098577646017036400049818815819587329998865356999025387895411350236736698858541300577371054178105178388693288138491055073730115601667529840055329785438711808424176527209644145337547145139841732283471287696025519491176165012388027378493166427001314778075239899658639606367289241725002145592949824045072029480060964025623272481333567735826417786963191236904287994983512372711660520153684448679580999316028760597781120768244316031507000247133867515439665911699643881305406733860552503429453564861387038921749886421293505226682782211468594933609140232547566300202351121204261036359227568814479289745241260809800428664026210286157220686788012512060748810509915218636617804515148947314092347081452953383826319871205312882270185766686648193024649667044170458502584368798948310834232031624069535679915399938279836894405312779678127413401658048796703647163426482734809370401883888536582650055263487554283225070212543402611178406848078688821858398253424300568626127334537493970491220238737085213645892523931971819057087425005093409796504588056774542291279277567031192303028840967384566775782785211154265882639045598861967983455549497772043044340320092958548897237590319690841801191300930234591370402935970063174525143646357295373219266583857765675380697370894042466033029694581845817657341348852849236169132894871964133508454054633402964612615828965715003902247290423557644975294635524031844753685208219916919666436806936777494462554268140761780536374572351153848478918426352822597008965486196846848771018751154303304831865270062152693945293353497193099644028108137431408318066382346173454685150949501305567222902880608202907493299984108861997529544476845101442276589617249126660199421586262819128011502504974899769547239944057209726829564330921736775159491291010222953736087410508763786503142552620208032647565233347068039054272063848816552378433747249187918801344737530771773354139243072402320158374217983815127676292443060972893288046881207617855834155149384103291028514739551511586223229209091972465920550877925823313804542361495406481180201036121682709497812692700165729451341959899375690641840344247507449971179901385038261934233019314632342097044053127851959748760159074065685004568552573564478614758120917084168345677140146824676340645715089125283753185483881458447963173940908930847590998489379598440149045594679657191020852271116695801869900261613800577423377839747809523485161723714359450934502931626589117406168817293422202434496447509322784252604556109406936736893667098564315014917964729374492275829051892559523099545373311974082624196504985822077985671423041169928703875078458886553930116727018060249158213374622279249989062166600326490876678784781886081667320038340334204856907150531238251161963089419794392248269566278616037112718564874698626906623506127284590043504724844236259444730620343014633382475067877816186345590530342080284036646381324566921156692173586781083947733392416791637452375693879260345272387404172371394504856662565659563318324815982280377960487179788526961689232140559732607662090149462070589387188575540455749362867861577139497133460644049073082594998704257011694520159973073838833289048299315738635742160057015524563781637618914062385504538521686996526682599844007691362027438487854603666245009172399641984849857997587560293486270457145815606580431725947731051418021448120623150236273140374712422729153813916313245121479405960260434990397466386872901867198556157872733549807155327524412101931564887312819589913672545871593898769078810850684664297660652962163487562069999941987105778896746143588100183455913748161224375152318935643397735312010442031261805972895981081739764958379435784738294037748091851278834032038779954602961229029603514163866580676506456705040362991465899298906630667158385681389904048479234595443664173473323927194341966173042083702573915906137548486137601224430097053048398462905028184325780169406610851408031708069360087505364899112240331868211226251369781286755310155417134703290444371117300530142625524693591796866240740817986545415886290635535835816329163191978780466798019337578669269877386827651818372894047550187001486328801061120956572578654779193622930666243286741219654546725389846724554909553357281331475570643331717304679240927642250626781008108851231531049901387245521185271766696115952245347349642815890270341590207689556375077607921161949114438883152919495253356984407231592169494444607889596151424698291119479299359323950271066612372638094962426693277551101598989408717890396139862443079625080581281943862654521341909815666799103494300601361898966851621550221961903233123971965610670720296790996991274206295762922251097758735545223084232273140773104479063986235140320327769126915024408621932399675819166138801515437378851479199146200455849615022503844405657551138983621402587881371574502388984921694502045266595157358906886089447562995683284341930075330664958035262136383615984058918152466237905911601014000906773923014438871421562801244591520793365462193817307067940587730688429867402666355882973755304269155751734931652519069118859151225547572132873530035571853981692517071205583357865209359978684433665975712947099080502888813029368994658722714430311007614672033745261795249108845649202540154889711252665958552185345682980007669319119509857086652552570887691547038234155880780887634413610541840935209229440263418850933984910582598712068723311441323863331664408738780757088069102752782909418551716664509079777538597809855904422423722634113245073416255269531614742666561861250630005229635700587967552811573218257457566144182799001454878544033053630095271112460849214044430596936502921413104250309385565049932221044099816772914067119703029827692998979366598943710138728182487615909065114870804141512228753424853136865833577314062110452503749863370902613949369148315224683607967087348054066825067224989581652633785675094850958208077830135627948575487930833179467251290336419377314568409298722917033537932805286730130615757807327596505552588584689673763518429020110678889346946174240189699073311051114188426276496923594338216344534298196971650706308097294906909559048744664702729247990784293419193723673424221434992315817792992645111534072623187457735150306813771079853301692235489310587673487328120762557387318309600368323618028533864717999096052050936914781173211263935063735561192289249170074601466132310848723453562455547992271551981274582382810231521841619373819682300145472995357869869327019895145432868220285644060580274171465856910294312160165153319183305290730226728236056284192533836124167244580170431897611944136896035437320956015741952863416970137040543787967385953654605113237774257774422348875822828463227540327922050370062411601512461494855306371197369667142872729142706353625806624958248544309417241176222372882214335576829692236249703131312127038232093141134093018461660836950765842627926279382829251962022086557256204358497432325983680000721225687072155405144136013278581656566931731199593135201052954377800831800817217296566506456478433399552424455301958035552002775131400016525579793394601909912260124256982097553269131484378535033519811525482594260258095497856404127623228388441833671769519127467230934045261757001409922583322828806215424513860612639050700620351527821132447692487868782614168350796309645934466642876115354792850230251663696133447293612122862157637905366258656047197727595139073588895853669129912566338154246924282072497606675538965119734064238409189369695272879184896222806634011075399942107184218501153329850011872046822036367636996371688491327488632529612580370102842140877197055726624262658050445226744774038898325243185267051331888921822384593100867835049187954293690412612965802192158908940947488320706773886485180456635728553790151583937984563098309325077676563443391760449808614628560744317660502881898490064119042462671106588347794356330174299425436739133385060294398205964932241413741225447743682282037379879258274616170927855517479006843092248083849322821355934240689281200334703249131238443951819079064108816232311344191681085663314305083346265038557665788068400815100278352473798154478094201063952241408686230130415493950341151208594186111762740015429295389199274535709073500114257843131705899670757418474603931985942309484670881746493269146057730669228668471815886588697607631742928551181631736301694726130913179717311255420374437205681358664909060115735576445448011868067857766356493891217970452017373699963645417708358149402702240807143416457909693705388003237665960346364248734756646872041442545671204372934752288056681098477319298926130852379442864796376374239086576409937284259881765681221574634980586490576362430301889019435396610091386195708578170114157221508134978987651903465902138355072831563909332377935498188304214712113161852163126127602727010689842262558537779602979494168094032444065177284594868777753076519852256623402100789618421005203357125719111015047887702130384750300535760204345184410472228312734854118821709562315895973335651592501206780943117078613534373486205904933704665533600125864592241505154374821976251683440885244573915617808505694035750494875151880363582690121222715414390501082377825759973720401626354406799818727435957629776085267228207527683635790878318300811714785831969962307430498548073938105522301947696726121889428941905234617250557844670599404709399924443116032370835141979441766855952604706303792946965368652327170573260595892824928409679556771166022339681831383292046798381242537485928380052170255935463815049547029394083468689429300891743864208100406972356542364021575890150727355711482919213142617319030800629930926346303843029992424332556376401207156440934040605614492700749205033992037838034876355869372127925925192559408920459990212656176283885806238491450058903424533181303392326931684721156637665726314418900228535474863717849049212388163972885142594413307873948716041538303376515484915124623630707284009669731498271240115027404903821357621477715008982098801138673804967167584743642943998566829834372216511462239204683409112839281647673219609149221087919238449515061131111427585703039722989863182536331832039768762176608177472877238920316479320412965054352003164883046511264278137121425987487458631238358598713649472258533332710425241535350591971262641244829798948457290233342551925546665862243336135813817441769338140091052557916985345272069547201188200585652278647721848591641556082505441300324484404446680687433251151841345979700692740823770253056891870842834950921861525441669871510653458766756990519935905185302306751110504639261506643985867128927650523989605264538459750972652832173290903732275226872421797464229329942007373568278582899906640610737887508010191288292378991067597281787788554115785901245190529363366113109264447210097296875320675675855429153049864870284624918645910187937646103888324289841856329244447335434855913857164887114612427010875293508986481166585075244396789806829774776729083759206613093942531708146357182457330274397189049966711689830694888674729597803166108388628564186878323207842887928008485819549496658391170025302512672978867164509787074602823856409491231656375793480535467665793306916656183284537333238567612485185166779846546984973458169746620370781605358054044833978064537166889594548445972862216517211072894526844544813574167068986090589039908906838356405896348811779582340291116540457657099231966619819925147912563094590926546242919291415913027087477109221818432867802873112085747370230590578146517463240143940666376469043916479404553050919241314782117646717455713852402332996539365460067553990413627410243074198865388427938723266288170929016038497537025775948243159659029074911701358795004832339525153264850247571330603342375499702895460796759235557312600119543129632862856137315976831449652292220568698422017272833959069962708707127288313925451680506456607486584930227675835783687712571147300565519606803788595500744784409807390449953340392291812139304917544296738046590047509870663435252638065016996621764468458941481672913362779209802043167548524728711831500645489040326045698708016947702644173405571933878436403302442071079463818066968717193842372916731750382341011743589070353424355597340524005935800444553219098898155406055451942510387007282062237367709868592158628815286145570008028964066648645775584511804359156424000919578343105007761827988551117851159241174572257957702037815638341731395314857762118731143818463017824260703624345462185805595176228775598913361649139860066929950376743956428861049672121495195284639935585470280771881799080111387160713193676963745109166010953954894284382977127974796032976858159840302434818140257542562513427845535266268288152217354542547515483885505466481327323138914296404854431923682720823751134183673263085938163273087233671479475249084883779562041319824358239160337197019060208974280451700894385471668545924938651793565387547015136792311625049272021084246611652684009283222176149721940839070281748348839292377307597463066428025887785244217607227448397999683250833091899293020927047443711070296688932225102239035554107452053055287071101459747140958028931331235493332635850839686102257971133220449260602162979179607229666836433086319146557087283624654595571789179553947123180105722271415380349131002162613055488078248343645880524499544385906574834749059225015573227612657585274451918299086839286257596306218180964057202755762228703389412292703009840994963751666232424814194335227970529225262560516453429650875697654072372733060206110219025777919286612093444587858205630605203082142332823674440135322092503308351861086827349377440636249078987989559594762145314674236990365727453570989273562557682664260092622485935089069181800289661147261001158253616976024912831597139803032620923487217394990106985068101581924062026580451768848784942458177116715792558782185865469895670305483881162529637380270128992822537151380476688788224044793554727762968010039679845329555341184070987359654358812023449043502856095565936948916110839059798964900020986906656200536199006409964259392098900534855959646161228160934554675017507635927340948588122311265701124775985258565343749460683206106292327940702683906789844300253542811060425610823083909896749261738193400500258641199834897410353836798163885671320127271809289271172404483361419702964324317703871547619305328886383640921365036935665283019393494159631543428927813692303623631560316122397807210725216769497463968099690755633842237568940251329407376689220614666558970957812611749722864798515068919792322645820468402003049352577366772448583774066731846935208109041170131859545453315066726265330955703248946136801975513153706560740360344648656066188426449299270785207895577917145046979063153764987457446936557147654153275309076061702469413748060564064922065675831753385920492029269858986771045195118162986231355021371067198185315446908218179262183558387040259542610649630438771933269453196594833753515391976202900983877017819104621134266452932481239606709099171455108052253179802340086792216743784956241268115765440470899913925978019473129350540237358770271122848617164801407539448632051362325412314588695573026406212630910071840436754310012259363281266865220608565781657146146925867692206279073431601090964330060088358633797566978021972070600389743681242611632030064082419551350628866545447464793598632632102432584715560754130477295669253913651265793257427277544958161535318763390669210201898203123798866582393780193868289839482395663602279432225592849990252308971398225263290723122552594678597864230212353775234032680314615236791134547481259180101260053678619538132141113044093247935033948570509259846524423096534404663697270428158640594171097801305355978355739391745411602930853895977598892248016724444437396390929630657620606960303105278554847002515291577458817296978449806743330797535446522566551385523103972232838933450983746909922820900016284519927598744905384906009712950645895585682020941854127200070470370022096688044354783531672129730778234243940345150484470603553099159256276460244541284665543531409566261016119765077179408908431729837148907872055690951314426136247671134212821768210584693066072780853239444508700876016572546392859262159648051602628189211208225678018572534225849287500312282400731156337974875239394542631727250322400362915154033636936015959952391588151569153069003102294883633392592524489377567439316507962988690679526447029019433547103725116837329927808985501888220939213594634397878870676502315158927344932898460460024042473894635335373447377273438247876919048142848248598059312015871524408270874945841393203956092356194915432499454285649742867201100019190118711215916929097882002936916730600713962917835061081349064895264953136842356238762016444043701315248199758549560497749019535775391239738669963473543102678540133565727947131914734583472736956504435329051350115546728477901940620885660372101142519809893048158013412921191962360529949513027757144939654787417715476574662189435033326447974982657659889153206561397922565254887683274613749754217979654568415182504599209504220333177141791735636207594047482735902192844986002702655734027566746492425382974416531851207800867153581692163555800194251207477459274042596679261338650517838157844569677720132113367056655707303577952458078211003954418104641706774473580083011699592761087419677980182189588489038088734372137321526097264388096726911711532956412234616710754910464189249947719756051188211403928967190802735636125673136857856703789151486688290206089836443198732101384079504788878133624336204623216350019781497939222298399087709018862192726219462704010151131862796486616759410188355515450848876941073686204798408951056844961333802825770561564163078722795029555391887071382852229577425196153153633579022390364071938947378636295741879220599481348625833002922823637578481987075107957780213650183130675619941668200601166726616849891326899208989972655496184689683451868886300603039201477763345795816941057034773203838464271811945049846428962764163372928700853650979874907892217669709385476825938716362991399323856320018917299442647704748759551154188575720661991896842058818952608655095808179038770548730970324669289323410158333213912553936391223469320437356008888631868555405958457965193625258020880617772374763833564146881616094929191692612851850871066141481139838350232669705054420113129273323077984426741847546290016316974259349582611739168062241854080683437908197811579925771966935188169070414709037191255720164128312542390560261157676625316014724213610391138991119372633215858039148647676146681680263869499854088767474717027369579364774715166136880075113092788407862237622164926402925544679880160660897539340618757890253006695311880299383127824783043408511660365717664029001793106151601339091190270493169805751201380419747212317029542506192633202986760879005888186254645719330619715238724197326041566008442869749764987212378457315467540307557743187792718978469472837585699806127687972390463000180873003400686093512998781591594566094044395046557059555697069872879189736847162978218368599916412036771129956055151123368522386469773667213692115355479155354640009672725775315438995151583418127766168154586617280832467957030825903597227140924882558007684193553161719554760903200670863032698051458060945799162040299435436406961951508588316138144388285468430073299651761399050780748300486850967287664525826522434911472002393117094969931795139299747940311732675119673191910390803856292383519605326039534245050221251949469243743548252450594605436746572099133543147453312662451229844975052531713894392689377378951370214570505160322077266025931669126782868823032561798755022658696427364330265978733476494561948191642227068375639636362641188341277479797083992076703802672266113021116298158277082048968265405287927021070849096742683620640023947949486223927344459127161833514506074959920663669123422147921021550765441550531238700790039339664739939256304941320213396384782012983402613787660893456237788494837459422389654775402450605409963215441203325021187233309106569923657649285422799282010008893219112237408911457149738306155859597843851597531838661447272335915093636742105736812441276231795751875759242497115795628771626081270694480540895275394693961764955522963319896556519689869556138765372297546932806834188585037807910323424155838571895331788457462269342885188591291492535385205291358826611881032160853327190327947951945410285459089356102693199857128301072460560703251480178873425606939352165578578936835767115395822454508368867033618082235190716525495302606818621894527107364683874250629828077917454849279616838005485446334377274233515256912723909277336559126821389433395030339965361187899470148434325155280037608718084753978912472400843016555066755880473589186512094244928941609447732811501464131050744094787597863994265558095247262280945230331625143196611530478396797841682681476056917657148781260849554310575417167621263909010324068519357974886783456266075810303426900934377734419238249371054886540745316785347813402532639933165181798440140683161497901565804898536056918417939376330336927466088060138819142046599595328379190498249494782145328243103011121966413717293852541034007046260192888231277145576307884275781091570776263859380382245217685192098963340558052293474193994604526592420747051876463300386058808984412081841104108230818813620862873134927303775418458270055627955549961563252354471355215703041045243150323085576657524523151540297705657088624718098125976235891055371357931586202138448408374708910773696969800560346260044213542956760814105395236470495619028321254889137521362297293920759676702880222719677163707223532204183073606941579451567957652552076484150824755981849292559576580544498684431607740645822744713290877292835790900035101926546252100507246769758124093155643338352094659433356090674507155965168715740432151867056875933257801688622941152082424325433765296515617801290911012520607394283693663511539792777515379641778246326966007761188812316241109649074641788840727222163423177887538191119769094215820746943636922722044225918939135768606506319328009555371927026444363174823011253735569282716631630866383018266972544011541979015847373333114067421427494141856302009806264879314230994394718038938443073955114809427347606125933278596547200222625540654763011283361135912277117967466303489009449764382213795463842569060080911860662064207601709606287183902624482667994998967757297641899129455071997206081319834359844099052145610825830325346195433953169336305909208407101961811745465915249310223635273229262829068629392723815049896673228826713309195519704019455737329894900073565500965355210876160706708710107375097740600457220480877071302861661969600050580392607717346203718412280348798384607550576049175606236166618990927823827111863656443374335771675718918454104399161036549319044898944344892674451893050594420684456757034581951067416157575867331134847524135723035056312001559510269193347512709652104970746824023638437149579924279749330821434281427258201686724954633087151438289615798640249664830915093203241730259253392329580283019234963792154783329931569329213990779519181165219482763306196214379696996029213089657933857740942546692221366165655850204532253560403698383091812669519458119194322910970799492533941834042705364733001832562035983803300802261855274772200561713111493704501945308604455845037717266522164889480579911916908716006441229843998979349568946201634051378971724499197903160415414095508571876049010873092438152163917702983815700058363765129307783460505667574856804583544803999536088917586738514648337830112486253461446733820996778108470518411016169784456874858784839159847908780426009797767107877810979422298523670235302192433997190385406230565815584059123386831305932306374585141794815096117734760344240272924946581256297788718074944276659189730237447113087594854873176173655858940717364659587290089430553261777671651785423458307738404007075610679238040631839514874580588147299141235480173991744731322523566061760976241821749599948402215205286184541885288742458564455193697249721685421844681552368008126729846026075314460789993912101941683188925553380272823124767149884596186967894031453274854448413829887710807241131799767378414068073357925010118494347656321513625708761518434869319028563834486851735539135423381704795124829303056651900844587979506763373689515856427785763276577012316499150036143071000321746804883290903320049232240255590538198156589725628228005218659400610341174808952975870675527287899049849054802197213970938208615841514454485162815509467190663365040241787579852661907739758299834184144614501197539626315636987155637949488982109817211772465034062191312859677300913912930910571261745301341618922391779356960297506519549259722262051782118104822686631662349641243702716767824545987128411176068674518415582361719870198420526906548937666085201320253049014985671133177999600510735045995728332150488863939652219500777696601915483593840083291691528917598819153349508890775405999440661258578298324853215925246591842298674771011439205313136331586122539614028580529532184528173250773765249958505991112870151496452479827579883154668057675457936619080494685333443910431796383359461242864966722714200151062999104416528252630896279895646653766086048990657192738702568088601330410207380581316937243859382042892933648931880586931833049421611551013746311817644130722697901493677095258434384066316076907912943005659490588130211852768117796695695606761828150303113376419198249550316425011050280579610092304241216672478609393634722864313711497969805139788969337518490369388516304888918928709036942064843330239626182272864389932987386451301942485862215219842440795341034957595202224938746562613127531591866171974744524627581262683768430614704966438400042952750481125002940489352023611814299854616968757957996782040966464577480295875590403810913300426146842087968984303956761515363648780594856692073697180150628523895307992284096470768975816835355831345982547694401518336156331060821345550584733334076447702022815427893574555766148449241809690549005981339165280683839521433562407610598262754157684140976346299453408973026246915029658097067752432857954022702901247036843375458058989727392468693734422806011218279939366814946543704317008253462275161679174073102041087827849260230463520728452751296647102722629752026769315963669183840715665694185873954243163948467758199799690920920387701414306973320355653209098030048737954046894357562233530725303958495786986872774189504861741960115313192037513870020201893597842696025380517715206880486388663184216811710936355044867059743323189522872444600827226455435188249570510523449343629775849057192386941999877041875199732290381459117225608725945365716557900538615619587506518482857597277476401951665237461471405456963036382716851270879516761355783410508837161197083478553114031716016263466318622876776273662385730462671113104840362437783487790825996716625997620677916789247451326071361298071962403591203757473063814536598349396137678585660880901794902081418786293430925204187521497313648571109083696424779152375098243889751624969544631314513772633480934949171707478797137173713622165201607892132599821806219663415909364438617068474912500289303349840116354543359760346843589694004136889564693766652956791755709406466966320409630780573478468139862149939829010875909480596021124079556707587239705284665294898445764543247340620020276361468788880760101425987208947172967401362034502825185596663075687136048450935527232855096691478429354071235583442955376227373464472385630086604506704942332412186752334461313737611151484404923161640501423364373486304976634077413971374528866809320952329816548058386324301615230558346715833037922030133716770202164233234559663992982426771278316933888078504112494465098277928369946991923415005284690164762338687345750143583144819656021737518634272192504202985608173804870503209135500985264880064445865907406776769525661061666555750202971756636473675676099739621395248239096263254893725992786275190397653082896822957312812064882807103837778935635571646438313494561924240138420555661239357420721567933002663267866823049548962931438175770150120095825295119876557319185841239250718930078228210866286520435662092288491178865001547956342219656289984826300953913595974656598412646788498428635316213589758450069634370088065955557313110551810034679603511836037154265409036739410940356480929418989162898447123793455210740110465803407849484752947778000195127016037741048932363383127050633156977858264226913917129273210500027057284653043633140781127029455128483545783230075858542584023259224329284718380016969677253321216997665057703051638522596669642731548321801480060982922375666363446200295014163549843818416433524982442890220975020784886319441133718863665380522648659931617150940211961039399196768274989809394427206284484536547295635915831668306942858766488660672966039216969442154918591709125278836097701121043738900638310877000920639463763163675681868709870745353820635166066039956810957389780383152148634348171578150663261866751573848932262490652950415061479913161622915938418173313983318765167704471025902223182529398958082182398064548371756934587681476753526126270781235318087435253555382813769364986661472997829762153757829504808207187048716015385943332035862859130633954013069841864019487214456000633702768426599070685053785629523306333618808836048144444092918501282587759651846462765470577882236713416674906224438706843025221185043554697733401196015861294242967479233247145430614571184419209495824124321478042342852630292564525471194629901294400344958481411847299329886245227712115603757573386472214380417086322280883057831719624308019557091051983548735553263633277154785846458308314487416394844560929240985169775123548927355883408193269556226514846042581602207956931605828831759980529767695005387914722137302826278917235438231697131140497392543862892936372338829024110337914844784651421285016197811746171102256819010746279438031622699514516478568069457393759139859926469624789632120192666224562551221574894580441240518273302370170199404796035560664349033273450438674481749170253581009473485183033314223482448858004647536248369815588033338204709013073320138024213848288260249746950653402170056458719553718214660631043314069861948011073644729142948596807311752100065080768266185553621553228343088954319024150243709845084240181039362758327679691194670165397793891532277986711528740127058802907620948184653635784264626967198811557593346158152231983787679761585830282356534662615103543659729945705751665443742695026278018184663367279252189108062608851702802983135160736019834849176355712676070059836292467025575614493270009810213462823762673661491058176895209773650498195369229610221286351441259852953866166592830021331369245227177574485990189374902015164056048716732998308189647292172547949810364291258167067836822703497186087832605266258288614152932929050873653140987412692096363327589692872671644040562837515930533884194157499617916168756885660197193723440425835451396352108696446385612978263683967003039766502611761910791922477504209125135424075266717025401420589812579439484910026915711606873141309442435497772438773707866202637853666209787111274240826039887213970087986659040577192134111039809892729745630809865331732005814743530398959086493020350621402947126029983717341154506981673014521253247489181871993981940592337754278477388494098499792375625105961267936084117961584638811865112279883093800871839255436717047284022784891576816909731370221300589977670120850887934442213053588074964726935816757438923417416287833719972601031103545251287871614945282478017775121353637994208034438121799509375029174178031156936736185117172562543495963980789924003582140169569997019218179452048454133076320005769980905484811892495247682439913470328086583287384850187897813964643801529462337700485363593444686861062803072641618929468173934252732803439923292918305653714080532391908436281366577730402392695020180112558509765343773307485084342878343320876463505878046730390969974638373092899320399125256735487663762655073639697806082384916125342100144284396368286407536603705596649072699280758413262811798775742586729036151330896366848413627800037084717307479768998302662906176114901521122501779198882887178265294743707729048643465930405796337223859300168538075260669561367352604705672142368409561508058594236634752720356648545754275474661362126744059763409422971278984652310933413742653853036078743096379488867723046537671151111760461663872532856778236978387137361686708630481699590969328108430668582626909117583031141220230016561589151442103433123636650423347613266630891261870537466029849082684765020957615157877994535033286911296207031481424905662259895007557753850368498060480099643708198453382054641503375096509261501112780681967709815436862143909197220895382717451402891075774242080233836258833179935503084951300645411079259101974874334415934166458316481950052126268086625325249403487378586651892033682243593451229279219392826719660258309623004648158923859501818292465717403994091563220119432988969788819809149584760742302082855425923763326157833644403920729097482054875506721965003692308344693636719204929739155802827065382418661406240666261101246389269911826344264406705600660156333819825509755486621824666270599478726997656418363368178495637286907798628238552620674523687297490034731147209262946708411585750644760101220289510948406797292689013070760279721186310199649612509476264445648577599722608242013395000641015500967583936689501318770291774299071592548888247495518507919759749443827836897398506315203816392303792050497594692169860575768740063022453649911266736372277827620480407817663420716864135991193416687200404080039365866882050063766500958438246642154675318330782101484378295921737152917927930038286845559088059140978910585635402684320273542437070273310949968769454961286149325708152288006333175791344727923957842470311845645143703922410577009565412428532983532145488984901726495061638366194333020459084710217984700636586108137553109934953309348526170941448720184847258002309501625686718943410028688426834335476997283806594022453602523484531042699327085855402203728010163570343961528000162814841193338566647022954467272173041386213263040717667926072666163481692166447444828173263516412270074614693047812973021443334681148632254810136426252678404659396287712682207086836764656490107569748961153593764834142532207828248262427390763288701245569911613846117842356784340721489496274493534967148656224653327103815971932589247540592467158496671391334113801130564729855552956385399594333262104994564205276778701950847563345347336724954115978734528297766861936943917630649520728619754309526877315797914776540141224599130158051830739197768931628545771499092961414555529571448851663950777155057640917879501992594903089560889329686714866364627640576057800529651716819825359865052457798367477829266469875540746233057350086606941232895445490715707715024973221533193451601809486370434036406684500022447271775688898901979098852411039924492073512783728564724076097001645886753924881539549595396290699269121718865674419005897023520605757596043310423392587456637779006973957529666463655179803637133172026610085226149719878745590980154168174390752147234653613619997828243628661445796422440869123582439799470780177731370333393589802573274750078140048687365469164023183362750974161452910320204277533397470457222635902503001841514453107356352176752462360732162110988126004932836524441348954456061913037462048658874014876841192401231622444393809847065498793741570486770704386824180429336592053923034088114706382621306497422474461903935270729170181347920721526525800587157791446934970095085589434712442050016719964509612264176476637025205336770099683186195675564436768327513604657957391555955768491376834065621457214217650654955743888517732988125069098172896450396906232394962355419190300615133173893651365840736166254386827700343372880950570495617943917679384974540801273788023831174903878015509886338383376442771794881707297769752720238325903971060102354303501617702950122927912899061262456054782886816114414621417596947315326764865302202649744129827899885339581791445119579974381274461065555321536205656247773506266012880961585710368391897137988866775905469555708049035315264189088149314580630408783659396265386847930471979363440444455279664380765090641005266272328634816718873948336541885160425861613172660011311727689339492519976478115255278323317740369205872483215416151713054123969274976030492911248083621292945470809870296765556644593845821397518499021826470060855322737159746786436300680376702529824606540541595000090969347149879145700809612977415187889381861330077880531810792320822780566576344754072712358360169624742644659324580160308894475959362050014145112929284796455739345053888531871626772485039095175105220009948045104252159892260208708088921721807359499290981609122923478415295489096387783790520536892608574426959318508440253010331992095615747642706062728651344153963521126846083801582588029037187838634113075171627808428645470233710045148031618631152406709125211024716829061531890378075725946577197841871978733109896859653456712817312583964784575941052965939963999365951848270851238987736579533020600455561264618907879938391686216189181173281895809107382666571540833454128034499841697685245121383241211605204119892704706222497519059906865986519444194295306312226979766245817377364714179153756365930710410888227885647445801564167647163798851456124708126331808256077361440321355847210706501469069268928970429152765522886701666083665323940496960753591400677776985273677008523665510852980816102291476532451845501126880436157611937799300956545692698021725251763481688824870204509307502228617594127423730118215719796257419290225082592706305460739597502554707082341374426232764515423046539979946373841899430630301102610183870641488321725372716028150252880678954066997481783006160923524003692353641620561543258647121175069951764437092930323134745430161001805609135356312350078461440205422971150269526117533196786963293411441769311765870580006059710968898694715674634353064029464851939478664614807262761439681336076640256767914635906881366554559686227431340549779098796059796093510246727223488917768491868482165553528568806582882155174844996344307074231451387950003696181032041214679218569502270950952354057896060343361297236155046535139553438537334729394253738303708418536220224812450261585604841799459512577971194191045436876128894440516825940398452271601460674417681862575206631381300747116902884856984399168475110024394272946604050015647058356578013201968751256785857880522658541480770035970336306282306744417632452462876562463571780355958628951868917241925878549181098824239541144764446102210408574806187691439198050700904542654176482316009813697311034678588543066488253152782514572859724756149690371202578218363008509253470896751858947892754362023384692685541908111878942310277398491074892732290793213022806187005828050391241809259011418757849816603682883842377211374568114894357906043820341272175220189945018343990482984902284440407196558252500820456074576529602718087794616052690145752992660616127248193211351740154890462506513703115808398251085803921976271297285971552187715258623047905998949103143766499091193485399950114951782316207938788731229662652746111719610766036350844925971555911251145650167051009651521954768323831122796560561425989544656720330884250609324256307985417808069545258605486736343026900735058165857592092387565045110155359018505304008067516007807432214933136154420212186698613384612486434047876848753564568780102417011886528713879206573095275464248296034737829111779319386745890155677059484826324070888194605138206648484508881807289286913638893987485561846403573384162255950088412538998560951655587485760576284468974120103586155095631321519981127627979596138454210546309858328587549158245302185467330314256936135578100333283924774898945111676407009806855309935632097490208073721920781907109662302638639321529637343536418774997320999861170171790311673612361005373519401307760664479382852717950158053655340282278038179919104626842536738004344275086906251835094061116722179252619500816319966796545816253200890581412158331771066306954295760382831768584197860390770124786261175566776954311398638852621747424905909929418325801423503516918762704787097316663209921159908431316852084005044236557686902201005500340815303125714033040452363829357575385268439255046110605582567528748011929336774115284883386369265561998080769892092063429887254928449253630883523372371792280849391570292130962651014870414748491294005489677871431684053848205074800131740346295278849487599957122211128142670434251832413302943266620865033224120164863616947513145102769204787481739965753322139068834693284885399542019223255042733961272523032351921683531241041328419567257053843379870266566281733597067653532212142275395347850136809435982895284354972801139834441622193145087194884258862860028733492024543669336693036424537006061946948879367187150873673647830202776616017712351991034884372107379449065022597869223549894552897362417601704191449199861117629021951020641338118192352011728594853706191971369055539030990520199871776260939180682069340929814620076714136458037614273445530609426364676300405037909726452256475014332106641730851276173624708885641128171199411063220003550042735533650402264932074860902065114700875303924569506909010004391622262393340088715366875261003045995950069132052172430718700110894127364268793393798973816514350663422837301194138878119961127909673811417461267315616372535006802750712612283444749020601654650775280560684661187393626130959740970693849228769061525312396257773389550707840312410068439160956941859666488931653931208829155947904629850093026044013780292995854792783596952221249288941393638624955691686352136124288119529413175845457192209602955511888042900499237351175878857406897581287475637844249395839004057991482649223251792084044005533765246953308134900898122831396631359270240899785121623206652426447246771128273460723166929511836129647874086344752367915320097841110431511468004004762896670312365600823789151868228430928737329987276960218051360602641827900685945861838147663096804151199012209461604286082354204563761205269992808223712082406488167873683275872795902760768197277559178670124581150909144026467264782341737171510890116452896459741957640357583936746343397577271620074297357690670225084234433568525615707108525499611511841386301237253387127342453091172962352825616160958091726611170412737601711146728322964954718745850820065149131449455044223067882677880481475495497917558962401706277048727766998704982074150955081995934669907290649440143626580120976164185062330630374724453312415349969324720669826841456529026101609374499050088542076568734435451798677279345355406403091682348529595565443759964673785998520492019674897470811189688013779459773696723551743403447275709305957154136799955312812086943005041564407523772561120161716266165655932958097640741408203589175167482915802439088202624289663725139958177201953533441749048288392051780020231007028280581327740301425435802496157628952401556345521163383030136525175975231351772566270754129761052659399788664593561659164728282785899458049046538766982011854546353797460587556256443629992608958825988108402639613465677410454560202834876688806241820109928668158257225174685053146198194588800272453827413773915664427510932903363296264132270178550059187167264363096102268347136238000464273612650656946851807264572173334599259757585217140479401059971251260493916154152730202127460847814064426652055403347389900173394870082283639912710144135812537392151412819694575399258297495406690936502231181460310947070883769497109392462819039164717657649985661416894941988997841766641978855407592400241306930792584297995181599752137105602247541857950799135379196267760871586627863644197222275278359896502393441456922231907148161262434600662766637061704797486203071897141880258243321060892451600291149538712127261329601563916150232169303255395384765170344092384422852554738267893012411023891265967240934679062007856387872482073250964669414003649450948526018040266198557350561181236374105854062530950736672606896446043629788671751188907615310626479817992764339379657221820498137111188449776678786267418579047336459296660741674306420123975160792929781658964772954150665953985778632143234125828114168590668095670109391570026991047582271561252831577456550989493559336450235809254770658865291203658095046426578532977363968633788048595716113662092409824559652821621153690923284038277489594332363419361005590006121056773958600450186623577110353632621712324221770798882572816429602649938881215789171239905346437555169918247979696869057015814520193397696215242048093028205159721992610278411794610715534872873583986254040332256728868929886874271189042075930129935586546177798706487305146778000418292311537215171253196596757527005278312001509690551376634364866041213995607697839421644912341741253119098781996067583424656264702895890087578603178362420974135084040456289748106233334835885644960739702110632353948594890544749219982896406705603533484589162428167547346168013355292040648229590819972938326120265261331513492155713091786760814828321617727133763837944592453075999348654795924635777482613111640200925295226615092072692254129500944820958666858756250635790883766789458716645106731094377280858752581838474245498781312870486942009407808950058061624377134386246405281273545815366377951617936227868243842109403182578953901178509243847708099243521979918290933083915759112849363306234009910624696178074262728897685662636839457357043418550934469001195549100906560073346369038610483757522537505904917707919724672763758434595182918810336600178803038058189782968167933882204025601491928556992610527475593187748361694949686529758830681180856716084567244113258479070001948967532264895648562678781243059657057924160086030642709708598025371853279303804038603863474393130765817947705237041341513211132980067722302853862736725303575958556889776269121338198559070201578157604893197288938627068998802171742712647148964716920060349272187158340486733199785726235538176082917911637591122481255900416490952945166607913467194830923989266669853901222907407677831461293339108322915136597778068222894273304808670825044601077340198019716970375626409833087456125198770791030656006332687223616768898145121272480155761370014868976608420749457815474827552573653085631948320473277389498385043015944378485255409893641855985868401944584922821938815721938978258216453349761399577362062904584351055671313682697581665303421356458938944249903054378935213068333200870102851043442586669872909171145707635261286926428967176451771513371032249156382210491339757299131859998692839846527150354650833951049339745758554175721831739529222342550272687515554450306148197038171905167015155280510056836635386433246633412192251295325577657766498366628497345735962670290891439947809034569272084945395146009279089039088594825252586553763315736828236383307160644612451471253784945365806368820865444268745606809329965960512176973143643135268182210186889864126477180202957206361743498186953656956921685277123727554996555404886697067686118576494876046976485180074575981450442970876674492820846585551694194829202958246636135580488030906018678032332136613049661468371615506870970139202373301781542652651663344956752189859628466517900107946041129470225439947703859007978749483597101629852692746321489623556861279813986271205492441220672833311372633772125216781089070113236025496770708025530172314769911009334385957607309594579272951545149333779470386912065056886572369446380949416566555930746216875701222285278927663337899187825583427261091101120893672219264467915410664201632722941517668888043101671427211758110575395936115563498755957243288734605338777749090939417200591411589591950613972590400909904224430807019343103755369526798046404653235145763601864007312309831842610028709435929359243108855266546690697092506314196092492305904285552420335413256603410236136048750682644150671053384242289375357319708947774191297000384585409848184134482191989016177620201953637211399862627536133435668883787648427802526758999152666064070965475602954850328679833985391489249570255240903394486256917889113250676977465940049803808452501262713359500116407460494667930509749534834077616351197406350296344665430199908288734187831917949405696804349904304456906658418737579256384355918797158541411348644116910314511488419353913185930098483330352752721202936289837822393956562986542048876556228422306357398201898874895634471987598788840092425180066105772586904960245774632559371845050000450866201446224165457443394244322557568021787181891729983302030943250263740040518729953178706467361811885768739482973986893882246206261690021068002509527837464187251931890899936319527015995513510301922789003354634651722252939537717214060115761804818110545579334087148315747546116006449959307559837465901243037685501232319167160491597320555898671075446607848487527615788417382936159568877008011491275329779440765115586286232346111318410223870267438487617879467139251210735060948698769530850059829045195303659502521094919285641323016091124201249999070335778185561138360346270199779241386839164416844198871984346449949200572000632950295860867198956884002610736046067697934539406166097376667051936474511837865804068375960529464444319342824424304107447459727564536132089729763007714922043524852686579194032403093835963012553425180716477962065986860890944435616449000534143950730595510204907544424180495189777014843352523992105737343405749016690470199645903609100987182795633879559217897842278559203923912534459348149418468040791078607362231174151068128389883034043036563354511241693250043249509566445542626879537390899313216849170487116299039317675776115451222699299940454540297555835680175406612513939011252990425367830126240061338639871263812949162362415520632942831602581525333445117118695490603859068947368552236600010800205445889165949897618208369166158006800564292920426433001414634762675235648924424881999879484202668156485265152540041186983512418141124773098574501841474147748829609236861800460544808550299727315592393820011950012628105034807990134661146560867727353541292934946603302385886037236091322809004885852099092571537160699455486380888668573527962941938247733985267492164829265545598514192665949963928805862061064790133627141547807537804871593303213847212522203002592460851921162757251731426851541051411961783208903175230700456278361276503943139860176236073461728693196626781792677092196604209105212172079132134162294871004648859678663396865137028209611855171500094489004719938316595076040172925590625185242067283876008002255685368468940760683196906883462577345451594306905867742294700354380167144094803407707944802460545651743261519183530274256680138841150727598599737098387719130326590232600241793655109490379454655765863834028661798046471064782767946999425430022867273202399743112641462005643806015691664017893033670855193623327172515722075441691941902165698852111101401259325029637071419328468666058131854520473211950680517724350992661693788970591313376387117448551545678421641014289420277782093547611590287517622082246690950803569481223779075755293726232051115300356707169145251685629933752506065754583076264558894902686851359689150191556198462881030005056713371371147167184147921798958994987492394471686994686078519449150583871928954520375921239898683519850379129047679875124115273953293924121236938041264780051609757275495097637616430323061112532344427998322986973436988432094020406374066243475348207820062174178380649636185315782366956057667675364650912342942677716254542628719700747783894686612773899297968187288633091486687845714032359118579534630881149790442291744331365582086210656256400362847020198935502252245260670644331322211626176303933045244261260178218027267286289319021309773635085897239733910405914170349437781300600895263828436017053879695382082739457610609212014775317931551449696594048646665652169628785030297245988823117606768329365938589913419751855555517915089546629660612626825745417142996026168089362677770309702199528444125584167303711772888920250494517593777640444790200370165047695734186375814700491985400805253688500476682641456324766922407731381458421994737373464462111918820539512035973485269502388293618271296266552899296409164988007034965025468898221332879972547598557144229949165696601082433069543665588455132161489592857321651403440934970566669322337212799527052727439418881102357648036668797193790117761005851670483642301101261719312097025138817267451578649965296097172878697205080561489893474746996360152456053319957267318099952964333567937588218054833856586327222344228285415384418843459287360230617367980372347853822633617543236060128262866273052145298661977753585632755948634630604328963303530776139196801726266066902127353403408318218077637215178520400747075783562678115811054990521777410680118456631514751109077112111200824138971410734409824219119014140272888848466871796214092248802749848164928982244123814899853977877074280767540187612219930258453537897815466884692346000773844926939958220706860020624115109559971418036989540496225817555062685195027834470811745233531061643879593453408641031275215930458993949932012677390346074443823593037137633718374017845313253376398217326495575602828925526529018429521753945621713076004231541172660233857564671253770152232597461135506329832755587095429699377877990066421936718566804697869349992520216666693078007007059230519786644544586443675217043715324320072987999494857114947294781595064253634461664113860627579700311100649020397133246467567741546973401433843327653054625155382814400785596519365081113258935590425312203905996034361251028113741890110870606689926642591468718225324942058119531964498514373810058979002223112663972953541494741117014550561163284615892923308623689114342522210603375205145987445796054907169862846506563364161609780449291125594547134302114172801453450636944987294870170802874776527208076973567358202009826850351262201986542613165682366930156953633014989070038904464276734466029252989655007021654911216434885410556359689678837202818231050583061313108948624340845486145820739802085258284108684060610342795002948675187055175200919156621894798283898375759834852096067187877936950118393870699774722943472291304126787319927337571246912412879682153775531859277661805791635406790173445659569863329664815390740140802934969804828976947043455773790628711099636143283541492878038279539300023811916190480504360210029785441957448240517003934667048403488737303085939311645976423968456934401121566242350614945636939451151734317331005127673922059657458698115877815135740859967170751984513393507128921283000003945313658133399509713547131897443703847687387284983536988439413041318559551754817286924468829485766505124364549974700357970742727371190117562788563973281226920044051905677766884893228541015361056686322647701965916543558056624251291487672184410606609570785955759538881122971861163613983405800913648708065360226328759255008246105523520851707432108641270612997217711814230520455283099153744384514575239367262457722315526990945560614916532284890199983313035469998140754705290023929808005490183941415206688532506875164507302286722039532498697160785878307115760760915869532600836498904494194563316029715971916621864292163378785310595436701010266307263546000445866494606842481470835129577823319982967361114498334822986794465126277713687808504140824748803527237230412366525720159245037600687448188737232114378026798390526233048215722223374856377800743660165574340756645988212025766385989892866929196316096709743259834463016516908573024541378024045620990563534299689134429832685616845309947987691343861321267627237531399417325176792672064078202753876833983096085809586410653500810082010174560892254909562433894514547102769637294039512252865670242019988283548990198722634303357447259525870623432519640101099855979321627606791057681513252388179481149823416667948866597192233355285923431852196016275844854437259506211926234818097271623470998447628841167044276953431734812562209739049368365415715969478201368148205312462677632074080350697013898181114221925254912217954408184477393794538172042911116148821626332924459068726448964387529825302557619203956422419839753325640686475095278858789663759293821030149939557157094156014202441704476916070299416967263812629807965799156946082163103580821445908633286674204903749134747169893673053642953824654244128593380388352504897639182231011754158683977026070653552357018132688400517709722922994931618324869824834595081038588315381344689339652525296265667620082359147924266083225079764358507206745306436568073951430584442080414807225144676203717524252600595648663460750503665120077106585832460489190469201749864153430101054022800758848454891828057284611586182826996947346714688214405893875517529667269519698480167783795198293256352497245720370644668425735941114639699652017302493508901153934028021917925884905719779704427230630334318766075227061348479710494357911646454105551990580415238414847856477487247197281468173661031571539428824918701894445093333798392079523675844913154920951675826010097588006665548599126675803259993554736079383862405048461163863526313376421823144021070143571618035622914627996444498927227629527569870010518012005940488753072727715814052215470540826456073386660209398503631461142890676098112316167149163862985246298032118071055241250609529067209152185487090954177190657482848984365167215745014250940375459275321416948802699398398532113819565029267431177188492745333749245555834446110360955002449247918111542177565010774279707096262717613969346591475481662402800257668390979382606946872316592550408435484771068933645639654969259533391744696369408074924370803333347096102005266055638748922087804665468591027737222141648152367650389459099515806522671406642639956277074444853288749055367237056468212038319368694780287665986559478765998151318106403520190665021522490319217382014068645219295163981054424550668347117844328179402771978823255140055154949446158221190712086709748967958123009131504997011830814430965093239395962688347608726291709388985944820697826949504269801117252444730102914193098955621189621728897236492240260485191722265626633963052178011125678069394566853049429794897597542115065948047847015669588334167637286773747064207409404960651059768378863674199328986101130393937956683888418669707070854699359081659663000672256967047681607240305961417778358480168239995189427071620207139771772107663355670945623858567406165114646775427058859594100732698012407589272871383615326463198207118574813853337500680593351280531764572308990352937961101388316408777316651753827607964321995303322292258598926604175851786697632416366763394389953490250283661959532910381033083645442324603100536364381313093178241511513812574501514449855289084623501532912869514444471279596492605013701096209994853752721895932988610929793759877966796460823370287003501308809225227319232932070518167437319881279308762847045194172217287167172644802092333329134714918626560128851449512645195235123727218953410482044440458940941385914597312579713894945221789275624007364608684309846166763700182915358595104601409559809922323208544255487133471084133850705185031904558880888569264759516564346066320772017362160108474677320174469927568895980943593217890812371041120396571706666142458855365496919995794243604751985171122022811061997316927460350039804175991670366432837020784148333244683681021266169652208605332164099527831288106330265836956688153907652907329044106657503854393068538928715514940750861206220576952091298962441972085952663215784773015670960319904943244584500047966297212548712820452393184833002856670654222592056120928374479709301209719422827033199889739868544279793207701660210390852835948200360395260651016339319383142299571886505962251070617866937370418115640731398572603469548041969407478007165920019665055134438719800132604586249489214828365269575478220985102268572597568164202661430712319385557478704464509730916189745535960519316105907923360044097367672696187141822549321624660330230489134888143453622745017220053373996720807701535138255887872655871725485786137255813675534846594277926549510556070319802570235970688142310395442748450444751882532081632544806836053210122343224521093597542052488330995720825672021317856332859735745982993615222671617472546091292744549471408266022444740242328087354166492513183853725930529613580446576313072287334922206941489555165661004010594429596422531269402141746957537972911276886943533526873687081071018125297962426795344774758958244563584082168372058723478596220787871492045249242271523713351129073356821337837476550596985248326901657692259723890534343501265286941815777447023886532746920240205770898503931758943907092686831474517296838848242188130624791893424566351679499951251308500427745083310228016308390690323124839853640958722921685415578296937307017226194549293637208211643628058010228844139412310965597503074045288889463392590189655201189742043791296334979841353591192758758087388144827523317144754799913360701294232268589967203756413858394069161481961197185908275553455305388511606324896300060851042154190510946637793334781991024351162476398128802712338432961427252939327432995475014638592447045915452968288848596364937027232357973134383136150557146109365833860201444050451973671870599769451947761788956379827225078349536465843220705470005782899032839921074708022055082929065315875981274194354154789024153945718538255946675231616775223697127098760896795603466297616785307139256447446350338479512831877430994390013191165407424579538463114571463817741190799466958976612178650157487821414075792554810717800512396653283350994831845283819454836179051418712527563591233318630097130400173435091317433766562578753786264830596988521917466465429126220575604477521730073527284215597032248152608341627381401890044376656998164628901135408568511863227298363796073272067822188019409219440239064830115880633246791711001601162671972479567218375968811966677306815277796958830105176561117065513076923426326811337475237251662966482760928004277874562147864384377857841446354208336303090161137577023737696656971687748642147450358946888739811846198971467498367773958263960570454725125882461698238987711201588413518885188387701437410842235487865764328562155797516874348713914716072025999173481275641650003147916470939436285816915207386833559495295386081474326459291332592408248571515131371290194805709188116065701554223662038343452052316725536162266328436104436958202057509007504703407216231879207375413920059379040909959779878287225591176473276091100349970152698408728058470792323737143350306312029139494561464257912771015659952114945740050540933718388630858832043567687393742335930632955691915047002982271065341623248011671035122352532668729608696944329536597954772454250684989400929603495988917283072738976151757548293911285363417664433528164972548546906005330046171392006928701122225165216110186674399043083537847661241434766922540597202089730638426912585805861826467259766895499683379113595942416292627217965738311171671670180713968037041041788274094723549065619494559840765227034279570407762906840704392407648643996045116242070330066155203806292500993224915770879514786340013058339927593454268765942006265622227525505174324475211340520880068353280015712321435465582293411835668820250759085172855941231223358470448511175629039923236503570074615810777023659093748757449418301824094018709293230022040987911034503936519581630759039401949230227937636989446518763185562672249467533282062813063417940603328339904856467084557341358045017912054608925687643416154973318321716057632409102308047333205643579904944904403392022385388243023067654639819570830847020368012857181577115148322340545158136039427967820376161413745540627104541159085424842389018584985758517995960032678352864316929479238715496322076881912275028520742210133898497319054357533894097141927755988174708852610182047705943292549065257482907460378699397187607191466729454610199843879435499542216192489759974672087090058049215951948505050929990406201925601303458879945082461991839181621846337141037784528234867936200665219689574511300219687635374895934881578972488586627456193317917751726197867821466095258775039136658613354452720580025760682635984109617278031664218646661014832224139872141834699676483090128152724328192176625592758381959303598821429665875464354407398977189461103917272160799631162496194951321627191826089544707374722297736298040025012310657357625872034081285253509013628387724407505615214308473361128454141893846431514441040000736982672793680599609780354552279366580254857255151113469030380339380247979145204573206869045722463406392669912692765898856868409603905973573348159015643554442864888341581076820988046325342248804699286147591833413278426619926646103778472836781917194289503985902689134624637068377896698233622371622028373749241754482526776351929431648970526591065901772143773820138327173698689018727584161167392764757201336778143426006408778864800737652125557268233708632318885194410000356142255906179125638279787389486830484100266723230061576811273659263108387616382003084717639808398418505580225885447915807008877059140579080625751927271422297150377487637320920599811356360252700707871421398677867892726225087518403866551844968639620321311934255986100779804885449695255585367857931745030620980136984999121961913021328138118774651777030151476202232545885675124737885662681813379114483420739050345483680143081054196146845535283101099205251380268384244926911646915940283780699146290249428993596230339839056204239413380431985967265698663391027787206159093505715477725039579052302667280472682669011401726111146473261303573098467440056870707403241640501585513983209023042367820913536456083299792553467001152029978740442615515831983865420351989264901132308865957673425209755395692875698619484563538620033132860570022791571433685324607286373369376683385734758061432054478725030966446697779341441077124521492201733444433477726852561841659120940170539727060674942517207047549248053536071956024126545793313901148902718674572519271699225624777600462498045723384200874774967273536836071693110747562525012145469268428735060286850790895884812576847793135765157769048382633210801500888217443348888533985675466679952630872646455678602509300504341309791604427734561755380800507948586089338882496994410537058907011105288136291641750462726954689456230057823244749722435682797827573120925751329763840306970621530584028886844614189395600233290174307745652233778892320605121171732886722780671297222277198013787108106194648325576113589341558362064685878480101244831120110852217909112535662874973786717321090056113669385710418195399074997499737310205868321410477422440646900676769836217042786250605026234132025934173432062305957368723247902784964945058691343029167019808564618489045873166005846608583818395459354109066128915029572469127979906297415626497272558240291649025239070443337299090049486319368411615079716095028859017707483009136440934637956199910388056688133449591806636444210302798262539792686517524952364155327130522812167672211721483520502467565362282968200102999840139009523671674289444885260439842528009061972662790911686796096968790166614762869362959839787926312125832446160601961716954594655207237633509267881624215214278113811966239954312948601232127056028088292554928908969713153901162319484357040641959668820618572742159977328162906439211516812820131037042454105258743059677180336585815261839181519028164133447702649994860106956989366459867101046391809748576823953627597214309971809288757273865732383553839009639050694645129037829531098511205974666254507270422615407048866235801147215913453171641735999060998718655247217135223046887100435436041737644047533545551961299268250053222543996289358433428252024725682846315993883524084359504784708081749453125093263114438592064019771939654500054101917496997264106125045846592063734956686360128602728627036838468395500452143566991618927926198943480810371755103743708125226397609000711024016348912306224731445224509128237494599595793577647328701541540271807235349843173596403121256242335624945540821680861582617958946370914427145472938692021795297640157462554800433370175785836062588372002229033995181902162166973719275041264589350374478364345269653470297936053245668697586187307721039963268013696279450432047537555930973773563098814668274079612579955798162255289205870821356704994746613987923559177398516722138805660618871657345143701166186691036858992435666711039386615085671640260413895851977012534722415998633693891099136161439675776579023009912022889185180299587969525292939927482091651005216707684055066196927092465316409108910023227712252302549908128240729235935348513606958058951904449626347276728949311126533606347574196696222065029475126267688885732011528108920158457562659026236816562608675223447542266123376447403255485376030738128649414391152634952835446533739235770162393293216102700466267343808361340645909806929086591479265578275304940637487622985018996741582838748391652292367948718711313758859621826685947932704641293301127642044999282110757126744664325284275989548900230567168411602694277493450889764335026954053547181387308954577538001313962566721128028984488909346868019337702301202923867048023499316110696320165227569161035599113828565184746884816763840431005923819580150165940207467663907167858887596875322748769268440998486937058105500222140908867517916449383409816009384649164742072575981346184175711789970469755388324242715975889702539396134189490340740382048607888495235212629653765447045334525677657910492984429028648163281730833423068846909442354831783740398042281487413079706292034362859287316226140601894828243460968849922231004255821155043883545160763378766852188570288850386556279549425682729766714108784535536566496418020111105920431279529496083038507204680591070366583199004392438984553634314160011229381204696014879569958434418889837841769265322580047432315196274714514548833042947787695978805586293029046354262014976023172862783761552870570167527048564178481996672144653699974517789186285214186184463161032082525863930959604704970966075578295887202441170990630944103533734099431763259851232057820396983715914984159163113690026558653169045035873215659480201505280561630786861271354828105801449408929263925967339699640191044349584776095779294861198522376208561852795114492018656041214602402602097855027833839630694629662335991376832414079959287826572615072505300598286613786481767986655730044299510094718366009644399153655682390691360798771025511637086551633868391775663628048909415328970442019658134076539520376687773833209154739091943360716269329210120657330521615384365377301754922151648168158942093247473660649595225584603418200386362741792473860051957166036984487536053660698714117725907559059882440530846921707676373260420655440286901604040207157731288001755152838805248139409383976675563180558795849444368351932736232410323909216801323819309491366673850094989796402681374898795637331018097891049790403982628958560515316222227411256222763627496328023333410844143838178774779444079388556071166064190877634571670841618475012353738023510573759501146649107653815987989717975650461471953303616557201073531926428664884862710332986426139780050897933469773430489476988491679541389732587793999785019262212255304291064131528471068159972834059217868457201239999057877126134861833385905883062088100395879062737370740668590984549588586276599453411470229378792640032992578123834281857829360770676922236646505003561161048717842613279794191482975210266108646739975517174042514511382864202647871860759427138723341806593306089212268530481298325429679936722592144428695029108827690373805022965660962077074974572850487888460958941383565686867669621908157212764703338388935903081648079913703269850772233809446972727142933138953173586850649101932207846705131529273981564285792784344437545970122283983344994651379904619537408066603649663237356288743479322199926017591168144627960619213340972973521477631557563491331430261093361745835027362257661716496368436946210629634249163003301772922805282136114571097347003752530169923480826752258048557938133434454245049329503929404446918058843933503939370851469734112120321915344875602424308726386398463077590119581196246588362851791231120379020303175542005715594585886007350424672758136393509833998274657269457110977914271961384434666200666216659795055835615188176172045562711385308606939319489926028475362217626227872860645635634573179845157131316580550171619137725568486745416565609140535403334174805874232103460299197477895811235448609198064484421036185010610542257865413463548643480083597726303224833705310881226624898334015507196502503670743788387641956996499118041137547805355599847131585882288163314598590496535416789466978500204696117153955347914932752895185658430829957704149024508741346104394448678963342538238991164606952166714753062263592763492548031455004487158242927978108513297029037260823978005140333707950535396047860126475537316057116052532774457429612555431672671303125528590897217937493576510118784560673838023711535405561697973771805170113006710809424261023094275536188941899002553351641604755349491015197344059021888699881455094336292046828275554354154772625480308665546202795326187858317047788515609991515747739758590468204119157280030246914409602569974728689013450196970629675223731073601828657426795560278721762959692999385871093991492719444924810787635660756546021134250339483570726787824406138938783312633157700980570747702365925364107757552071998622672866496222877193230585541033005660345032545101826072257173415523141115325082950813748606624781767061451478997316501615259484420678709601298278679740765793404684354465824738400356805033406033611204636906884864179707777172732192430390808505336069304943015283537868867681105395362847422424367641696541029387296003513698561554324975044913186403840702461312285088044690433743600271348262065286894818107777704834945427926075035355561446717413078048657554121390030143879622682322248689518538681229709197430060951783802547093078349762659772392336617862123201601955470283281666912846738990803065866007989538666308007388532814151930484836643603235622417966574545892952421932812471497617931371333839410378653162614338891594446805946172110597539594908570718461398777537437488760812282395441647684720962300714525417834585061910681301942975512280819094912329176954980799595121926406003849841424300478096844025461988555125455255661808685797507351000469363881053185554035066982271417675377008021914942603375613486944532249708818671249562752385712898744133166469872318952190314874046292000688428887533137382729060599396026131319773024830029219015854111106299745354591559455048327264624365796836237955859281934544151442548858922483568925316173508504736350501904348087386879338419537184505572437236092806371721393206472768642438809694307478261910866853652027270218927840716363500965363327007820160758395013328665608686546638298752612627562132349664351236461387722151138886566669935037319231306993231751972698399084092677193610671288410168154675897782810687760496931492059853854197019098058832655444716286759529461353186319659436352010869792850054407023575089868841650186259585172744993395186219972973338254479065257114934717277407645587847334485445336355526157141775095834287394690031361144889243203725608757685964084857517029794273181218533394470741495067765549027827366157221230477093607706919313757807152340103047006731898865934436062211869168498429431735594578799454744119443551432686451932422097236120874058415414335747217108529512601542194437022537171744211066672005157930531830474112077304219742544535870510558016547075183233993759919549906034741203550082181080444952769144428608348895075053394040424044911508181120408706986485594375643591925604923334778867987888201440515769736768559212291799574540460464753316006453223079766308154369276172869149492449990456009536442973454102043169509841708849169224471949689184610860188034562821673932035612701619521856722921538597404827957493401979483738115502601774789907357760251298816324432804147398170896886995143043958508884712393346823374813376885552283171405393140287087501391001824117663045137218859910271273822108409772220169242344764425104789834755269186997403410409587263994697566877599877384884953445745360026976158262369559656655462715613706057245811872611987649297332466371910858569515227863919399236334265733098156336815539716553317480978731339775392209222534561827110696213423122263390720684254855801177640233208633153116947901415501596804282385094710812985567168503064247330754256434249772514826285622282659985866582070469224936735025324766156156293530762291756005922570515434492329046549940694675339902111724298921683592927204491063318402576272309521648258314072837933088294871831828308372427332151293063780684037509309480039986657048788082944296874140817216130113071275951054933670660404749240357246528551191254733978516080284275632530993825257112786061239596585966660922592500991967051151393682822884868739170595124888546031200917304742103491161918344720842238384284909053609400407198372608117864975826934121451066962469994144012382569171135653648675886481139968673197922765284384526600730844453375887548929368150819976547025683420214202392200927189606392659196925124185891990752349574598778085754720299984256921697923076751935879398269099757621059755491015036078060476949851075714213435316655318673020019784905292287720685718115740291795530880342840776035898806730829995836963896614982696877670821955466665039726467439164803838408321088368555959985672905606046690875496280153107924939208181168894052947917026865681615905385537135197778652039538120255389453315023737394827502445142999051632405244735504050872223225009028406853814117350885258226965058123763444771905624137962227574269065285167406842929295933555606039441677359503437425104786273893423186132721344733164912044767109321645514467065650145638396334300827072490730765664492426865400845776095503930466747601219283429778584159811741860231215668637625667569933783839721131234688795806281916556084918643272902979307952556444032236673110113021281984711521771993905479199872250414719178239516458421211804895170632402566134164120855607720102089357561695412867767194819120182673270892663612913838396069342194500896814233314419440419544991446750650395953926518717082761818213568779649050183308214443240321887782625671647757589699226378617350228614054658044852003808997881720281272790599205544050299947047267345728641675076994347882661487629649656268652237390408667705798796476149632866446955822720602945766965665412371614760512923404419638271131775316025862108485309661351946465047004085353600880733964949944787094275411274599899748255319945636467119943674135920960710913777791609575878771808681319135443124364095248755357571335226206928947949328080107171381539840905643301464815587178730281753515104486649582796379006050812198523779858999511075186384080981809277160551765185476090830261637777721182973350712518576793941479831371299560210838575899038046616196936673523104019615379245232456851468423246201623690558367725444202619471250909624856349644859269664344900041796124002410771403533720882231833179842660212101595571648657964146870598297531329295777109631724629191622427819758600767623937968141304953512934500779021604255103103190988591829060796250721461489689711696667104986360786657195310440345182559693503995247968910117586132466264666573400615862777919444356977550197255827984975551858224066756638143067258900732877538735278835213807904610101459853098923503221158795441097625273306929456533571195689201029759709367141074580602672333415149018243348986464729977574640298562816689706750496306623126976195337582958757872650736852923504982058531687090626732533845531959132833545184262736826751974529539431797554024507825264265477793358401141788555969812835421362072050752581743847931629146265404535441503159292364034988881537524948140662072175577438509564702516980850964982836515658738706958532219887805198723107667714352901390092001301213459661925958888151033906621410000727268272002888665885039347936772173003134715808675161333635820123833767451962005547814557676018468071882319773092878222274524670093431408660061220550974450347577439610309864734601786521644105506494822137034283644935994999423160516744816250019188433928020317137073649306172797594655758147103430499609236529566227551047523489928254637907897377267842691361153824053882980585567701649799885698389318373531257850196806427705758728783925912347669202092768004182057612730185425108057435596245302173538990236309521503268204833022212726863204049274201946888236455533004597582987266523757106483061545392039921911051409015688666039311874893701395249945325749787725336551281495853625140276349978513935740264603730248262990598974784515196857837411070642705540633417766921471243597288622791994644178440786801077912780063207993961494375001856726253416962268375212128863351431279178765544551055823421352104044514616193250624714589740585437506111819838978169957142418315506478565554515136541493477899189209360029983218279467652430841230599025456582977247177486105178346701513443419458827435301072944902524281962953813545289785968231861843455242575921998812226109441423788921858431253596985287808177480243250111266743601053494771400661429669235149776804790035832228224167907398481025886804977813292690017794237020361402608956345832413666628351294484883123165311668270769444990860891999718020952849223766325494362058991101484151274091403497072522393255505576756872840907478781770012413837855282459294273464761064053027181622643441038677667083482308399110510704037430241156524455405494754886321319066098926725129617170117738410666552788437286139160473114711702360419286446476852105517492120495423683552486673201165242775328755668596316814318206726574343552199003984987143324518023126675338705842025960006971415535704653723648518535958482119768386838358643254417798104287620130130488199657423977100214447819461250877126587969407328268830451277359037634674147005805854157659403305186661689731282445062363920909135589619355441931963007908064618774751415811422776688701213979289529767966713845853370574348271182885773319225967363714691355400083188135847553858441683452772412913016916575074774410328404593764962270855248643438140243994683010296525318509067857507132608956243167475901477829782181210767601149793875873963948384494526705370924645490243476711269094816179695209411504932857188703903041695338876193916456259471902933903055815561242647935645395185184332791066560341947369294574667456271256592640612946920284037399754050385482525316682314823236633784462433718915178723647104787705174014398458546890259561151273472280290450859119286186264919679973330443600352004788341243421158562289969043605022473039149509473232751138839444217068604482120109023108128527150111479485604382382180382909043692531964897429139904085312137514978925366391144735484216991953453954475059389617354470767266714696297642931203625457703356238138242559534134902812672610613190991750492390480204733425248384722582526783327092931777172941142866242906902490421672737846655494905757085532773877792166152465044167790388357737021038305517990090564721820766927020011550283672657416033114369216031359633814181509179872053114351641264973953054739280931610894087438757115203534607760061471420939061673423215896557187514606087156101913787028347607707944392434253586142727243197508153964782147259101812335179008815281732224120004080493096979805941986929065551626545766034784715683628084052837995690597736020871372282733845958401117860050960173207871929376246046572802164605844375198442143060663415084493244640070906503913424785706833798762150281002900059943243888433724714274192658230410839753483270943461381787471655237593657393194182709840809986410565979784449426584253130319657507663478147905780748036979417179086930231306456621328744688577545704301653005732408535262931001579172783226380072158279415643606684655120093702723655347881977050566305044342727869128174139058529493863258582737817559768950413630308443111347737306310868483148020473839605486936820768023985876845022929013664507555574674443851148780201525018606559329974229455304878936317183876430157023133626179960711452607083464330518226519061015309220510944209716022453785877116819891238321754919844959644740762681240571750488233180278190046170167879372772796325246624174102093191005044918220934145635097689434704179396103202529226957487384159024254638117624227675778864204974564374762019827958561912304765821855580940362831651214142950436790341021408915018797389741012879605665956599963464274246821462206950874303051900512321336703284885318391559301293924026788990222611157398611081540112243655490514006145134243026341424748464170187975328328678522461481898599860739459055437557325691006422541551274981603406600178841602072128954230583077561226373936778295256684995502721654879541311364086711564407770423909718770820449924987267173655940680716977659784275590447469837776995179466566486310970987082968301452681569665623189099976558152489268029226882745656841235709508313547970881355146572767072498443471258066211687483482575543521460838251234028376534917262648496113463299268853749325875992416288043492613438860407552280959013645258884235718130196362153105525344095115189731437772045911994403372913816413509037999178052445925002641607516898133911274843647643670825157958525308219430634459932015559006254966895866293298436395699627885746653432045925766908769505070647664982341179021518072542613481287449068502322696454833801358763811266731517159338769106986316175780579589249520518210234264894676265359985185724376099818214767070012249074715451162386180431870838404391224713507542323914876541539803983284774969919956599905869380322984006060456590850342702291938341578443617517467651774014395547689558790903523248323564223852000307957149677768857632195713136378959847038078532235718153272107038994778342513330450252713371684100226815164010878534362214633108077284237388856609959393763930984346734606064821877226997489842398068844035367667446640946104338906930152268863540689430125886409530652735481876132401374504031494693592934695207514216977011833370607363327036273254730384828825677474700910194208763019191505948499034562261218250058139663992692108151654743057232300278584885327111803550281970871309598962806034302821092343648068745813967531256941886514342581371537035926804516737827123625021828086379723197825400951113639908097074299737693702530350163735932467053150826447780978556792097731282753004803133195901794053909312071070504626132247055876810928286928339790971607443021592093810011068523282750191900738357112256255036640257552296346866479755513889766272771100200036792678812517536303411159437139939919581067853201764387916481466896610210750668185192713565164616937108762955762263534726459534481869180296533451825407162122272697774679039357708446139478034404101786795297467505401888318858806824293056840638068224048813380693377357013451647815156242202123035684594427837330900194683701257920125366491841857472244706104988354175573516606170830579198323380502451251675067616361507288404509119236586353648352901796142714340892503975435426279585014332692410585730147570497774199288811164741155939703470834825017451965560771704277441932188519376159681523600175615424732786364643325266713553919507222053870225792621174597429540772892827298951948444455225358969778036012327201481370606408743427984712767227601661255043216928670599781100485529248706525396292290620774895555088994601709436233131956741333017813614075390252599721945752592953845764633166587382477139873977723829428558819807726477462444055641992240159967093509150649355749708115308339522229443857878748868642519666008507390103796239293742296353461870639616160996214091928630518119426846127158761383964710753093123350146091539725015995508847781792020486065287110197568823556681829553332746740648010493308422420085527458453782583209330913386302311112323350278612427253338192119310926984348350066777111891331588288732758296775742799974916709963818311519167717072825484495486975087842803956147424094288723841239818175023825644072259420132331673798180354048549536479656429406191098369712729915465456183590791267885018321147787643194594622490857837813688249606110179334882443395848353450673624759448270056098260522087614751223653453292669779543987884111728596396571775839110556422598201410420880209143755598717830085813391363888130696296882603001623051767998852472312401494887001254653346447070943077995501899232809521181514235152750457293115466170091458686089963223407219458360516028851170887442948239294563574611896322568199303120763058251134355581623566844755342643561125045293413146908844392372335234704656274047816576531369703489896687056836879924473988866277510916755492104071647898543183552573252251116537152025985621995550304870228409257917515222509877519458308170740316123514735594738760067888720070632040557700642110109051076576889667403357027214035211575116303983755906268268966755443500258493105474215513632413407951651147753893794190967791723701318692519181716253464303219908448968792326102604359203913862520379535173668681776878616392119148675423887596654101289012959389139432100924799090725514333540069552896413443088365378495880092592846606504577112557511847106714850859888050762265087998286881967680756023961324540925019700217042624661604439208427179278750832362196381859359316893972887225938636892089254576690475081710293550691739518115140436883298986604326190691856960008431129014357922304729510543346502973782457452815994495924473159774372731118558399260202053154055469503310045927303220201160510205896575988581043574617518364284568855111473246644379887607401228381245259774569657322713218465165655911848451673816113779467665420619394777751471914701694370424462743571584314958761238742149478695534770382544242299767937081050471402601679861367465559619986906476830681498578337743311137617576237733592963719936202436174730002912386147775529970701698955172356831391891763385228123871359882025582471059673780813670656411839930143743040805809141379396876216980645339684634874384551726269976612972500400972839183758126844410479553443677472666464984749644443234021108087917093313794460599484244284049066543908023814241368302182394496878340669336490193228847425663548521820276745712552315933033300272030808129375458000451940796549354835365621783969484808359360957449974602451994824208658411420402189012152732934342868308029955178595372775452367065409622580458374227624457055553853844228310534777491746710075988401569795132603114976315988608614369406350029929261093816466156794180221203360847873389211916452379250346188900241163570556241328430050029345167816337695486981849464796459861056263348463655781656226612402917180567178619793437180098310260729362509858367508624146727115890269530870017128252152983637300926473869925738828344543877967808228875521097915400037817026916494017754962359287203533422797874661672679780462724764102803770933930017870225002315573089743619481043598143096977122836080295440401474653379678218550518572401560556370075397664264628138335911837177347296830766955781243560123440607129351637044528012068557401637402087631324381671674676716332987064769006731639845421536334879703991318117786376717963311645593468613195907936067352015609421591095017701734345967343581992571358153063806272661685327248408207715293619589775616223479582270579922053845594606048231504059232927434859795326445612826036143913587482939098291520389087486534813240374522154413269542485864651598034370343595306694603992508761224455042573659561511072974160021667850249679718485426806434313718198331003470595532189161297633471662396850862624164997126046559211014282561844527138084700986982085212280224544533889695521797393273151892008087571956064063166167407040622534588600251640752575351066699448873359842006990391369542455099595284651313031584268221742127390956626386769502527287194983433582299495577988509662140739847839988856199887803140906227525457563899021429891511545559300903628624589201083837177646579960412518891970767019790922124875213293530441732343228205988819146358064665966266858255090770722979562721738040762067196090078090403579216171119424750483566772682761780901454004122883254117029894642756236711147573419068967676045275852535497223197741870110423655142555515641311774417393022465292486732799972386292393295395443264128488920646596140255222957776633318281566112849782434377192739729029933559542488972688837574378165069211137902955838055584934223840550746200314347830685132120636445461383165513381832538221755174148338217231616035742492185068127003623079380988490495525154028810014138659865052409554651918466801104502375602703865517524502854361356127198562966988161692530189883823596317056674236563415715968630641304131582412680729747999497462264270035242881445640990232933910440196661310031990399843006031213078643924127531649375785800332845786983915180509282853083072164991687480865717338849121227117098735711809832334546370924914272170741755408141903633042887898735022627059188796491116273598128319407464208674171679554793230331105131574714883960347727750585113312258800967375577881188685082999728934535773317069375408257649015305816056577235034611102665919133765563444144609133223764303430659162943774828164448526953527087787633917980633388075428598331698281907293150990152398402140311867459627793046107564463323340677633235609098527832478063270493923747918330552736542686390718241094918482768833828217660895138566066497517270208525763204569362591479844831909841935011007714840056845072655390348488866926895630600751991337680113434887268606050759416520161479664554031337564731845012582786256047952253676957816745000342660540801510222675375844731353099071455245199736102773423145878894070084877720133780980703819555627190957402321262526427073500314524103358990368493764581414909602688757972188206504109460970974962739593360794646600408122157777068986006021190237389705408825383527587271274980265286559220728955285996310880208301874356121517819654490160586697283234787636872920430493588349999183445879891508195424556783414632398090914106390388885529956803589104049197771454089036336615226109407187086717090324987853347667229400308777934521174127951296536624808732784831514151574918066559066605905452127514278026643363943663975263231724671604084001327786089712472386321454386406495631837124888598307540135316484060203205884634073161680954103541046194161651572317474307061011681694874341785399146780714236499562744975458548295668810173867681619672698962015886399975295675831445879339877884264558080459315438255225800758485400704568899461041489766257991366728297542009774262771485276817361746949051571418379349471597623211707506960212068539672089056930980613612837088406528016412009354870259293654155848913115522232947097412911819411326819426162974815770692605820200599015048240785951200111822103645415370339553524232354459103528959746559787896904279625582088531660699564972538532472408480325934125963750199237778295249279163244286847434721215184778338274326431542627188970631135139515724025495004194857416210005570610273657939897763901661433427875070342429104137088364400919659801234680029971884892885661061582355911785330943641122892657003383660068834513417812892170303742243522429995662096413483321371166769705916976412950891560943294073970660165930105338335786006263496686187977329226404530078655210407478061892788035913226768545889180820242589410137739427377329234182733791008657608426578874842746917006597842346705653443894077706631594729642195528358165653711425710253881617998269175968151500648018419436131579891170795830812792159940235017728256131504854134607573018780369387564665907638549026075461603822081311268820612640007213508287424094558671986586336454913916758469183659657145773765162445271687258266989643657798534327904966548121405551025741314300871648971929901034511255871970220039247413068074755528051396688952247527300005209933368844254142392235247847584855601071912479571097767235063740651014274141480179397518251411420521950278385135466728108177379472502586049229088254311418916931437459524915271104272111450776332582819396027291302303356603149409112248691028272780466642699986614083913750121645710790064163234739515028112996308347550949324622152391764177830029995399900176359153238647950373565967966768218041367517096933167723601773035095207783082740286159934756288404403297014697000360377946332090187122955978456248732741029502583194949087829173547993764157592020454506501802772435944322195584634217728864587628881759065866363988408413312991798214533925922688504942687593702717074902995832799060566499214717336135154557515397712661510275745824069588378680008834004697538043177284856933327955110575436806024063676931424115466663499430482380976202198605261680518399262874638841800848082109545473186929851902652915893309941451861815742826747127988843396592600818321330568026325410743680033235579639705937909098181278103469021221841240225852955415871660734232781663148253464410068202635418903315457723936402913181436607706859310025586071365101692678720505392718499310650002578929602030394554441160496691410789587447094103827857510770358815707838039366647634641386904295314111123847214651204715878006431520398476808820642114454872642683005872898432153406915879053726339302371687754367887978968000234933532104183565442744670133016973660344647963664894600794386717206658568556649256205045145297232097449298959984716192239212687346373350262856910029305794070929247556528099593688914705508105010633377530313290847884964856930095712315481363926080604053070536282003995108162373475806883684561500390342991702101897559984279723091707629385527749198553744177352866123144789878298978797629101739282586209152636691778178838671160761364201492848667562076955655428042470363484652459112947863285795679637286545922821168289343810027874484022232124288641076236894768708120012799113088987555807871179388324553805534696226199901025689296913648021939591830826523883893506538176784357477873578373488592437392202158087471250428455084923088980617463199621037429047243038960603742007061851192007909686351806532545145447591419402385329680385543191187779904393652533991406094823829117282200244388104876958111867741926277990128049683658730633747969252805375227814165150330216991990795697387525874181306709803186084264532038014913505506343337701107686253623824695670282710181937096136535824426812983539487834286851207123414622194132736754521666231667607783093074085158790943139277776594077985239127939222901958164549135397518268534449787566168759628154806338263597823013996246111449476801512875444182179025431133985262160347684464642864247399452238031499721991357407885088201415811858668269711193665359472519458290904465686565446158696222077174980783720028492322782855962560558527203649259753250007802975237452020662525209867262751126256187551072298014012477922267168459593574736742094420535232879916507515889164542851574587015830739018124706069360768531658383238379265954944077783071230869029424779746213436926230816692160240379017823463912186091834052276037257816004616711609417619045360924878399280582420383706314381722252522258891522827934419038818026373567114944183194096666439823519784669759194584610261406795149005075568059500731789514203017018235082057577774193616442825446387515721895842083578128770251491384151236817296307582111586887705577630523433451324232930056362135345353683689316694971140297273364352682829415748151304765546529757779955767024735481286922260309609801747483723831570733765331255502088417572092656639725819171449391744238817040659947544865284608278145028335688705421476915710898832550696891902991963041093526032064050551953952058796186969818317205641537838894449472628560843689301940570444943997923357158183129567224806746802999866482827488564544256568583893918062533315696035358016986023522541937890023849040494538397764700560088598882537164887102664997742578232545506178503654621081392388373797797902422394595194504398914891476717200948483909314155335603418247874558834306264343253267488440569274190369486933215161920928071267995729344130478404386867242809413762408599136448831226316315904345804603367237588687064480012249044768533544354153920349128014596550255214866305763359820503710879228245387156953692346857067382856389911832949634943929703223652341253490564523864323834335961851343980538296109631529249975040808242497928072447551412588069031683914702218687790486592438899617138291789770699292481174185159576920574379746709683157261850005512015562629365940973499792506296150032092310580370581305376993814008381492630183647001873021281158583692982449903959440328026321450220246078917056061229512307095125989801921306225854148833081949105083079500536324736500917313345658089018230181294391392643215031745400018551893094186713642873794723938062618046828745564152707761411924827491309003791297892651063878564580333177553226670822931581694199563729376958299560635956367089880716137996365527264699692970579141595855233265129609529185999538230929716545034372549741069098218846723389270457744807440203604692698690136519230854363725512682513654420650516691904923917870505331370158539670878182853962801165218252551464223366441705157405353311956654358027131186754402869223842888374749859989549766619784614375123954446477281792198776891901040134381129314271471969354686453358132654637199354346245956753049684700071473666292736526493336006992739050829539568071974629330410649857614083625248465704100349405837153651784724257889481805880070185985328478012453079177414797636173575501862976301167667945370151321279767438266313955039022271715577754915036541061914446722522598720285593812881923835465356270891159345422882545017364663230262046857619006021822478353424367944028506975044712126651707387015941955032643725988426137761578888949608853428182043465269449556319035397052340597920997739615303204401087783286129943321896992626073903295272476706953141855248480586616155399479413955006912769764979319932375247449761662404103123514181321878219093133519369465300674861472337629469363751503736903780409653414876890946593463037308178625727991498470592936966424020787581175224271190900634672301263619655347889580493078347971122735141773226768916643597204066909543014359574666604858685357454886795429673535776347987582575356616001662124148435677457572604901726283387294781271407145418999544296067091834940893880620072370843129628287161957209102730635581784582450201616540032612772319526288075352952048680313599048643499411963031847392847542314459080924372290423273296819502885340595125205378890234395206537078086709819965749029353295075667365141977854980275233722228375129671292699287014921174740535095269078321710015058560903495722889300170265354998486859116529548429504250530170056623224329594604635502017078514650125291761824950908736358911510686404551828553779655351042332149824015575033799381457384879309286878738941545626529683415696244936750919112319019131053944609651110839598628180691747399386892990050903438311959739429605401503772420120717679359810030723802273778554614374075395689225808639768537396688025714384223246295720485127082503863311481282052732837379910736598074277701393968804603844658489577123335358752981732997967838235615396903120947004730167974543588494127699025477579476137835758029488940004242875943973418743068780835768906018981620047648818665644528516342560854817014364013838213020842587004421831451655943115144979681730148236761491395760046033576621136019674159541018487443241788539269045912530746683797942177298646226205410236894933111486650614823521694604668178670570902864923122359762155731548429743452201964067731450886839761045253415912047632439897707827842426595270258460452302650447917533365074000481896598416110028241329755568335383736891647888701126756688087041559169051166121881444902272886390549824028425291520055646177658223346430521794552192118068576173156210834432356564293094173126163778185222812112950169497572803965173899318751744751600403396618038421995777693354053736063107457319576006222140172990015038201067299746488114742841159090405742335750611718942625061880028314824120832086156796678571421186594224209020475566761662181003531564284323106819333628186662496375877906072059508874020292824437586023893059559130625526829833345819566460985293074434742298675162428243348141754969621395005516518113442942265091217241454612990361399668908727056420943296447488147665937967017923613508344765858375952015440679553144156066837278515424490132681227209256055843204922640214290733814715209082981338431360013325525216430235994151369851311767021392123387840315749158297386024193938972363898969822412779001545974453372613728318188699253766512527103701342003415663109940458331693423606054853481129523276210762397047841320753284504145578217027551427379499110085091057193590667639014255101952855924246295425621462208507363162997795584663484899833069924236392448865951079435323855177499876661112028275503582482916593084341050060173986932822083236339383181574938409875826834322934559098039816797616310079639778634800227828493805621907708142377839030956967154499302661333770965856984680064749293283799349922545792784268965601950610639561461486643668727401409711851890399559832216364905667080013252789389002972435532654337427825950877777715546386310354752841068975620079518116493866418667184617509134276128718769317401878669986886602086099449348487085345276115213208420831915352778534801451384439655440559521515869386910351626279437638653147403232933564501960037921356075515426175910144738169368727791111675302464538690585746306209806952917878551463759659013047014312020818954764946485499827127050039885024208355975414678583642042659712216101670649446935152599730799972964129248273091026695736699983452015212146555290796408285321375968049251032674861221577341635402332278044485271816919112771880503922141303980143263356250817122033968892576617607850830618269455866409653508685545574828238365893305184606017447456447474741572919045682675506889363709009029836676508703642596967950012424932203640573540787909754688238012576667945963566241332847000493503740438103996271165120125800413239758915271224465560561119742047635946013172268156136921652039488861841621026939443355266141929156218483668960500725087103839299249738377041518426681343756107796625004991765588164656117976384666058078783776035936117415251059690681048689868810937483590475761450497337727409770927562601751120426479556711017354298234440879689038664830329757239126359144540939846576903648797451986164064674916001410429870267257939469774917020439607325104697170223352987111216742534811364281137378623880893586890644530945686824425460199850603056872055175121407331126539862824814968825503219371125121704835602952762678518733352362735171360686825472812379545344074770418499852283912061446636157859759304835367033138055239940771870981806435585696409867001721611892991706932595269683312938191907141904139914442564459389140983406978848944227489312808825253398119642635487885052396485577796395044572250625812876965021143015876345052479578610420873303184302466530751749083711688979530102858830767596294083968512737500839415229758861891261083345994219921701745138486720774483555533680665235364243576957301133358906376049582706780343891993794214261712357902229374369371349437546550221614818502118116345694109088967233931627325350236658171796776973326831875337849702117644690785974996261045293525150238530783709761467133949554094465455767247715918610484392819154714541916251829672779900112285215683591489610202570691741573905726665741881293264334340005051965479916999033454645206576354646166934958128932889235666017601857991831237162003004971190349644356786013317633957732216765907792099235922577387994267585814564235138329167749114143099740965692041622405089160739630075768912492699720160978766157670122511115206836009267561436599830253940637644499555290380705917814277763208496432734087693152583379698437303585910358704062223552993421905558600395665983483319879662708144330312516087895676019456878932156714422550197608079488659329236966578450168249015730491260447677274165873468186481503966649001291433511668208874136050661161898204284082111963984466453706874944940404821005201980476059062167940694618681478272184723713892689415608666007821248742261856404154969746548213564040123949262765928317092088369213978172145235642756363747395622000592842732166270476980184908674169456205102259560637245947367448075572177317295020854942501050787520595208422631424471490813833941857776752388671660966690612247899136727361408191803173769783354287655889004376313953922309780054921743834017806251204653517236567879152556115752248502998153634649934584139708788220418021977851883131330935028686093081352957742369057154963294791041286641491283141930919979022476352144863032216586059433452822553987674832520660016052158487608150092041922942431817150053788777863845929381139656232542554284939521503743911774933634032269291450740938701466091224844818485212620634063362858442203848031645126685731041457814802493752830908217648904317878752674507016590069414366794357280507745441568920543666037522625950773899101950082560716712244322462013055823820673175192575973232109915436894663895094779062948562263566489470456911398014379936726331219709302813461838167309106225271709818133881895062054451608630730833902696863740760564541855133369617092524173449914183305929965170575901933002217760281157631724811608259589678567003031188471312343250243852127753817447844270407973228409532966724416936866008823432051693418872302681667876687514891931095819991399656720747476114175106494736927410487921135150634340777099711271157435459803247834564532440401968694794815846678309918795536813897326719741742085270867426051707659831633620088655554640597703068256156304368668483318057814029232700138020285577579240624504881372849695000438777295450235478680076200016126204303140735909626231565388851687949202242252715481399706113549277867954263477637770544339631329586455974254653945093316917498017521208018538050173293100046952372068982029368729528476111673673104536102517029017889561506039527313548340370336481530778836321866237821124794381939011855516536273815852330995043347655552437204576326818621721530664018389880311072226001793264329371071193738354100101243156915385367454411262531592260097957598168599613526492395743439849917027054670584770737402686085986848476873479042823869852868589290232891878222822447276451454130683827994846141510069200987214117817488692437119110713347761979555821274146458507624958504129533477842614424838260823268231549552917246155947179093018884679550068576898316861517679537599202567113185876621462822603985464707437622985377758273858356816284064915094804655559220904106627410807292308141323985823720881683804762390675159023329860168327164896768661271852952908548632204359040292347601701091617876245776819134096021532101562374076122475131733315915237201182567450448152109940740515362108388164174641428664840572734863534341105360714387390524327589160980462680548493091539336646655445778272201096703209151172295172943334702181092649841669381918111663733136854287545689739934516352937243759734257893316817424271614437798223590066946949405064482470129507860292425178281235092519812298910144586092035018039982798641398928468757218780436105815819491984777697098940968763395136119051894272855104097291778636998727898908189320388736434651615397800075543185131350246257952287858215000618536004754008720803499986622571070775806014377702403386645505537725714491489351697029253655826428340734201184543821128718457673775026318411523485050819026378761208699518845834429604311707549630017294493656090288052853747874187855503749365418886572723223088037679961230419433300911661288987196268279813931455809041948569117450424482311718150103541325580364556068098123088818141540625404468564922563632250350126691176957112025324243193424015298122416333667087640373475263419899030029019620632643615112073604966926872124772807485076953203371628958605823636649391645627625838424716389587412111760173065567848499084562532334926043942499464804111416285039930972796530960063002853779314686423781281781370337384730138053720498493768441165776454825611139333411999156823853344877186191028091697837990680755895513170363422223465849433823960655557452256836246563034434355119531005181248699049000033289212492425238546320151941827676667831996124042416144894492142058545479902389512813781646814821604022626757645239699572524052567636026536741597896465832429704268641991832677551336907440073904154940656459698751106861510477390975576433412618323144216370055886793212150513283523417054695069832611076442005644246417916109917641654436841443552719904929176240077186382665733239049349143742058128674972513103598872446869151012946767515996219174411122814656878016305309160764901955073098570914080507956650904352881869751041283480612804367014599099400976638934140528129264467971779266789336026822358916944806092172676812551121367909727776017618004422810351259971053642635557840634179552418467180947066373277518788784477372528806942733346047188491112241373524835862838042398949784049830554592937613769603038980175184144502927208226650328108952522881653991118553475070887241427592950473722281455947961366602492055491431137451679790199765908779132632139312689589845105600079099170146538822682518087182846354292010995879801375161659152757297269971930574832577124141507994338878945345601192591003634160895327202130147760346621137516331844365330240784110178613596385716435180491704987670513368557918216243822393190905425373236989811311918159914380925881215642510398557151460321076517355135644541618332539004785378836509361176943090110603163298842743757308110867344499726684216416774566242564698207752323590582822139002507964281777059915917592405030656607911726943254428719443720948577246401984164327262463455827432089401548709503561090557867677944373253320041336764748955805282361528417654106175387180512714707202021816660216022226532413098996923458643837021102787836140724787723217920790830998515207443533506118510081697142437242831287788038375677131105365691501988604598534753036007618238185075290504076939979215227096331125677593419794901217979296569475837255376797328804705505765139383896631735864874139363842552048394271559315020673992076655368265026238320549606057780375678008143935792565518385901768806811033746902177164511082202995323601263831729492265907184582379490775958463933719891863603861621769370256469148730254876747402479781604538006249963660321150097012141300561973551664865500986068227187289746758781880294628217943105217522199970668872286961564490350785085284884792937811664175046372494929596046809648691515070211435174850717845853198470073396902380649930826551176764071934822482111152104482659722105337893984379589001721048937805702944552352100910011544248123563289191863318905277272648422742929584527074023842048502006034713004864580748777370805631890682684216626548235523504343195284486727152479828308835442983141098243327650457606604149385427181710226561568536793088137219065540087682359192106925787653366720959109196905974535660728298139908093306460929587538106066707013880332927997911538277976925030243778030712871346132724944701079171680335911742056373956942674798764054484486126319660082062989293426401882892732923468409966254198798710714829603911653382073118335407157694394072211395567435514695365453591313898280968093954067046573960527701365926959061803764792621048848011839429643454671002562004423827310869449882120464359743736611113368006122819495581312842110389779735199700556861224613256018060848636658126275245638656984954917220092650211046498008729277253057041738701192346135222132753908011404234257086904271611903460182472359689630229759719267866872283789672574400173828087351554436307096713343461130619823490469895475374293267679860259397909257710520091375776667997086208948552932680736206582090269649463811469676117161686885919113478510887106298296516703410206948460568533898517738822342045715112381790612409533708993081100675817330920103592430790867775405984080017637420850531700160307899908583399611375980258159855077634016657159482661917480647454423670212471246043711112858734567588003411433633460134291935027103333415836473616656792921869096815401696806139655892377039409543507961873395707997146311246231908877173250329266065342300431176750762183998145325194358482009251965972019572613530708722577141534829696260193123394870513797130651499003283065611752304378222916805386741896055762776086280482084921071002049476994526700193494339424006851631972707620566923732628071722951267100631634328391980955358589658125336518818121307389923811669237306153687908491061223971567806537165806357575054524996956668268454884589008111009042802219100382961884158026035764558686105898519013769864299587640714627726685112457375512216230552316625324575483820742580144745550763262051576179704940136747247243134651469502413178741654666034267593682579415758108626827790551389977608246361471681976552429632979285248748953782022480641537910263842018553094759392729168377680951809400848516482726478413129015783005680690924359686851564286737472188539830763075902449392379050090518442374014541779473265025286743342715015137021845756607933591758031190916291144246755634289500015451203553432573337166257042288876860487748343641167251217520515083778002108363543887982944119206740546217083396184008920918339775221722594660440343846776810521266477114860262279037171493608967298441373553380230423121543753541519368658700840655358111650063453533357695451960436930531443481443017345201138166212146867641859282012802038758886322292388635524757493239323011358908208325971324811161950884983942464948814618890478050867191688893765386569391738426051948744297425270314937330310766292972021368046126132039535366210239180272262732778204590241930579646205233646669672375450944828790835987840486367968712664091746051495150692578139525518550679703070908656241015259524961354744793655881876658123825751097238145324554559094657394396703014430107552712801145015394429577646583361232115364431114110033297059376184184060535709857246011754233654222115075927482326768934189507125318366270958034848990006608254270201410756836434830237117916158551979251588636692883090154822071892230866136324399161033206528540394146619886965658266070298510680024967166076630014408394900051247106537416406241410281610487935353588541228151943537125365773866177411926412743817840214315359939565394122425170149606784960862995288124573414771419149457153345700035085317477480982328693143264439526536618954821028615901364936523762483957363591355161301194408302087946816866942035827716032725834833207691304858715840754313489818666043961618120588372286714136587130875685143521645546332123446748297361265771598901023685480686147618994242245239157657712904442538952652500969703348051329237209587581577648110500471025902286152271572587722444870768887267958015401416458120540830121978019207562516228179811633445756804150199006064918306765865204171923218346510023540021064794195546290888949421993096850238682170979782077255632887834511269996635414781525658443614381664789187528308953835978463725856135621414088471115820066946048101900804487477456877813050272767555509258580758999612452707427587953007287604541647510688756611939562263943263083055191795545128885034013872376496471950108555205781806027784146549077627828116893696355074173425171437015141016828451310421472232205726457150294575011256336535981778756452712774163057112868095969238710006573955804535404535489354180401343436448899756269233865420334977831299426806617012323528494728919191142156181159590023813019098261150272089539498826088223575621184639210219774884965849096917764631813367094369728314423700923377475487527345631151304509441665749208968830408191459355978338790745581979966554197120274019667464472319648042199842590215084875796702110688673941878234589731218599746920545348832029389481661689551456795618155027259727338880351055274261387502222126168434773225039858636387438197532220741780542660073387576020461316067748046132780433582751035089337443119215946925481368793341605644518344467248087096459618868098133818081587908549222799572502842305409218515300295310893602726750751269212646745928052185970274104061291014881988455058844635701542857894293082978848046802040701679324509593355569787674322662348275651352193183457578642492587306645704518092507247489781352616150766591474808273165257770993830273656410737313070539513373325813488901956706125173846607763201188226755247413490838033609679765599527471516883052553304529192604148323345027907918633071424416963491742504636056849244529280959802138390372135253313254105213542489067901754490224576092094322823319381968225415306334147089087683340663710795974411244255228419799001522985749819889849095596304318159469896299508325995446499386901468154984406903998738379347045907347733477502287935624676614616028922419241929624832873751790563730806549507931765234317296680410173208559271760448216934355092554036299854765701425592089189106548839567314702092228141397724838328440353682182114636775577653833477967902747056174589470935417047810191512395016261177681960668575197951981000585493540100450277367924050633246641218525846615065993540631332272481265865841995278425590241957283424169930588039738625200647425009286604890262440427026367240627968905014687265071806007104225013560738626315128923038570438522976539113386519319196162798255397734213451813550132863086645480131767573618607629156001964515712519417950399952236911030147839190134630424081188544968351156202027405184832597365097314621193610317586766950945759341106003552646409411016707470322084045739684717434679255754604869428635104986434884779562063807524293654279938294622889541502163444585654233654016630553553395768700373137703430798181224521952863535262372801708436499986324858312860072254200869520326715969244837467949525689849460342145575350541458582957533134351426560731467223397117462781383326185999225637412337204441332890462735941117023445469016784484356569511452169722723731299984778903093969391734154496444622456911639468330643363346702997364241240297116992110143954949838355633584741214573042107274720674285321360158521520824908172128507524247468393186133965726955234147529117765233792188322603882211048687806482253693012006626721038682989807354086671709811377201262776077866409901301315271206492136712188425167720447913506537285628813956553487807118904474580445722647519812468823294086730621101920302556994672571019494115586271551283506891717560336190315485997323476350240908897632123785692674174194479154300268689929187684831691646753796786635138326296185265531254933967124868013777159744013462999396880516575615857269462153327390827221765376832027140617904278239440750972802540800397969365374065092148427519834943398408850603147596031739100257316733813933914187812353536745709497287345284488445201542022229618949949701107044579379411982573338772665143617562460833137484080798158363115722235728406637050614840655623350998456526510542175086386047382757676194858395923356053186259693587765849560825316861796739685894315852133782491380529157124038661035119153084306846977529106478482166796243388770983239015105418155271222290063883271016474692165158089290190102340033147706014015176040840910090605241449373190156947760443577233055182380854188843272984498217405703787394927373475485748760375521016184305405545732685298272543984887858662210258570392907210679194939991896173426219415360355375786655968703844756533219048520832578423879843475239589121818169888178236449164348564959900725158743445004818930983893412367015989262693852827810343908501457051378542807679764878168169033235748604815760240603800689563889974115216916793239449457346375617206004583172594215455432751502392066725017374993137409134756307957209437209590912399671408375799332786237438419773435538796503755728904708630053630165108473109987412035933497668576946449733682509860397789147287398218268288090729944354580740101638028881424339493966407069139161886390847911038840997940190171124168206671023948531170047517306907662972399253586815639232482926094069982422061634893822677193104215286705134456663040250834311466123376324402291494988282866652890016738979364208187192915262953545051530686570326713432866732861281663944903164258642953077683811535666470145665257949313983655674383241829275991548372844827205993984894960076391907301722123664252537513391525787902265936611578398614363600360881922341163234622191530426616740208964207210097321871329376635427694829625642673639875569647574909217106662657812612071213306869700257426803192915350586769357225754953983238007127185778661350256730838593389111910524854766301358157275982924044611269904704193240427103774529097218219179058858066659622775085832958708901788722573055961242068362934295588503084712966628098946327881380635129689839859896820307703225600466297499439806708868167991096056314004341085037979875338465889450513590234893245934136858409773628545025536570163212176556566595791519404970505314371869545152040799490722679678269830069086827608187568997190920995701700753077861052726274195618999827688721091738218587262718634637046691210809616836436378960721068785710128959668158204540278295243444182793826429854290721811541387597313420812113723624221268050872163487445083319545341709493605264548559863249343038727088813275945412035838974731335853780735890445942764893502497860383910822857184902247180718428681497178835926335437422425905598704710620000255683928854780490513521955015796401881855622120528819852224183806816900086056758777212057175501997388740901058017972446984597017174719308791616527305957301731716637950060271238855187176028644580296409105459690806910329559152900024704034214630744986293044333529332025380695121561255147554007531201280873207172993802085838113519616932392051231375400005841887143659150540197035901171726988938797678321155779872785849912284429147737239833814995713571863542168505998780571997776005772489886378052523245724626880721041443190795768854085492649613972300768548732292972637203484660639607227096284586130374009682058167404400015385569616450133224248958019864551784142782966023824198176285761626218677914662596147973360263084212185610971237502360539306317572179942932497635172718935722420288850382948100947828303191474344239126610502733304598639182532076511823145945034111091181413449678568898730553842156499513173844269232123702276779142648949063709083004340147529239069320763477066968442306314734630522900618144191651767382229099962044879602114500297088211624413079023717004773934266227500217332107122855814963615699300491579439376870769538545363255215100504837161376083407281598020433314157949510813268914474900103425213961963228070676580023205857866865117327214654120658185831993040032090695606505018439709354938394747035904202888912296364751970202969189452343640118779586459465493147965137809265687404785739253958490964585041493029890091320975900828090828074725708279864744537667732129596939400007659887895136736061918833211312725596743873305078791965388295986006296137796271528968058687013833488630732915824178186020668858479953764957417989702431512215959888527723585340356577548097427344227484824959478362824797796724541690499886671870786982382939947068495760047533366828259413835168082157029260053748972317853203200135359459845970025941147552851970923452942895738975922128280256475174937813218419113266318004830468047191378057223895097329072510718234035208680831231452876363411946741359853540623366505827934919902357506652097490543713113755791325099817644736491017358572124933618848148093764864852780202045121313736285703051650133476001936510049067239173548753714306142006968797974034336848481857099429389863302399442962789939822226159826172476516689437941046802505595870554766521392878555597330040162013070230941715675089789713632876510281236154859736427133669179626650264415300429127209436133501103244965273122406488693139992038534095828022652606099607577130775498047371202608819182315751065724969539251162903183866722031901602317449743951444295456097573641248876170274090593650771564120968956522215720648556637891293537877549522243076645467574200362293126221292233138625605594854018285389704631317744596754873185407074600180784768434345825742531619453871867928740797186429974101684343652702737209081132338874684439969758726905042609465767201640267178944919996618404019256884811279954754387550493053936841719974120600821072006576300751122960849176496072817764753605039144457322285199315286573659018898276995609317206650508516020889925580109370922073430213094433451141541386557175956844489555673327907792525387111034931499733962060427572514084042395695366174833582491068982821028999698212124949852197961500467919645094113658057354173498989570153747176944546125710656144672457363561866073424721688349944148820602077588006907271557809612242257362293756163635646659589516392164093530257445545939743139578373807278037620693667641968716102652353205924504500488985055930304423585115255460643148975703788813575342999152093729634878748698108252747956913138267680903498573962199447003048958210805057068489581020446697605232620601894316916405669244190239474272912850737893792166542795310480264522591509427910548142029282041004028106972337755598917769649935010636395092332384623499652833753957782260305425891591580909056326944372538477417503539220359599105970651887044626552879095502119518165820634548555876497245689705111275246968839228296860432260353185945612861852591679055697323585085080542827995719807669764655048365655434662345943356691745544816214578445076207972223129403991605026660073256325923840666103658297792304746932139412299693993466226995272672890227868546517776200119431042533020223092953174916458085669008519665610024908665178711510928725697198250921855816479609709916051844653990504576078797012045798041352910709616376320825438274232665141749587328572781711131243681862535455712992580067913862450836428787076494347702397906953120431158791994961776614106242023909420664905002898835940370066650534877886893292275344696686429822833554049162464674260568490591693797936844956063746726589662866584222319207956907946583225396123459839783124602203421777568328866151669682603340609343516698815571530075473028702694027373269686262213689551242115716029287963180073038711184299415374324345405192574576764649160668631322631295779093122167225832831112336923380624658960825552067889946357024869477852951498955165724357248391497373367152058603456097482349683756985998997853431580544804854542453604072339176636642077454052345081081306600335799601335998939169175166601859249576002835051672288128829635821487501362855155183360033167399232490061262010581687831998255108344527683441317485709503818938245534304473088564946232705093894973979631122196570333202149305804147434135358478123773932612771062043475305347326615830986453268590649061904845826028136771695508310422226121598255295550401686865218622209731151116789823364018860883757167249740660285902124743392709034417783912311449834899882545236170685533806333042187065661950109193599923617101901747774779810549232639312813581626662424185924163599193043070992283871347055615009618836682269008851336891958005019066720498967290603659986732889744562029594557681821234397398942951696527886948099423729346474025648141456681095190548401642707358854988929506103378382899942191953288587711231049006756791573265633849690748319633230628700206180744481412277714933706631557977886295394724114647208171283369682146099682735067292002920601757150728510372147497719673046494063400841739197520172470277443718137125962206685095586011007638979612475807652798896113382405210906899272512540783680107739160891313183542688324936337696704626792995982419241118850162698766059744329365535085926562493863244078599064648033293793921066455724216008825849429937674596422504382974786005270134640912898576414041826758265382264828601288644326548048490323544423808444452793742972439439447949193612576857043390844212676282422504838053714117698189461512282184124737914643331190885018328708970810778933771845563227548433788274808415814564787781668308413905954000468470146272560168585420936500715537238649385317299842422198254671636725143946628884398475279361837639899565207653072856525462107336560423079823521750917035691508420197582121968461608861648724434647967855548937949222753553701947862430161879514919162059294955961167312013676927764277260741628772666460269131582693926175784287991850650798765927872697351433464672187263194635570814585127872506361895049938480974187532400022239148342791315403880586124703323739527308936640429354005935264445258623833655110374292788015500008152425148709302883310599600274682305452548767391680490227335445982060658037666836104152829640376204709132127634043453944709321816899283249735581419613176694215712821280077747708330896708170439100142263871885803567564017002385959318112455747850646323086959232780810922355473677360484654622684756839878422387014715558273892400518135477298342632811840579327881118279948331610065477549068994977787446458022162594173882169772673930193444472717062739511585469481732776390778391227684703432477246017473986541062974700036840870418459045628418494209642230326326828916705459250155003596408746567745554213079719442201916533824842981169549994490232902703249172296685201773567610318895199719990819195426608575591719866317998311299114379079459725201428746630004920016904563911932533236813200885013189654294727429026962866835575881345286853509059981649785441595422787896470495300748679582868223148146429786073681492837551460947342983367195460922910623783070729278001393788240374076992228111058957394041415243349991648426942309369543938474132227499460098761643804308646564716294845669538975242277303055820054445942308818286409938547606723069405242271832887480021472599378680636212797366718738642356818892319588415333409194216108535939844397706075414231497457424371638576314495061507987918304330260642114597652008141649141954468790646643707946383948651957746405298825181397965342381364612934801703858335380718227406993065258407534536879491210955834095304992893621302343023021525304185464912368581774226889498594644794212300790613613044819141443158481402778322083942825362900331574041475698330353534970592927172588999913721589026428336593855483429220531553446234177727916619520344706270169563855749014925048756590784255130557582002784518121741576133619735310406803215447865769154725391413786578108667396082174394329129174372973309801597229572415917538398790570118354209782721539605121180829060412817064519020756243709009538767815612048972713728466271085450923351619848114090102850310438398894592120895164496369945436750002875119257114532031799657893664130066416627236037682272970081813937087801077956551078310523949234344509212939352871924300456541566682655671671997935483986397488049455488637025211735857971810554001677276673557760129561452954510107590394501148352472554084896002548561862244202140976749309628948786014835928452398173624991557447485183872663570366456113985368896976378942994574850246447972667314707115004130446561048068837066832917647835503543675956929258670573836030947916211938158211611096738242850463616486170642340534986989741367306673605402693527521360125168735838869804526212541843647201421566436678781282973763946053280257677512104654383527856799708528569706170262687612620239466310638112355734065572521105018746533684758224797232008122397028699426764382586348658680196162380703479490049350745901102627927224142350817294846542340130891174623649716763492952837615626475210287279175993875875122135651332558441016618755618013589302779861030388740902270035037508381808801204050052619479583509370222579915264780889405842555343994126240040431166323547819311476305441961195909815755015428142595797881377585830552476639465982424174864883611552521377238532409463275796014794192537301985252434167225746219182763595904976293454116140686707426678447481392264193679254520748084551172583767974603830649972321519776665298085557656855084603187392121444152823366414995973257634549652723781364923685590217672004758513068439679851640600649735320371701778180331082499426335318706323231440421729522954111708235408492191316332009438183066203778663054447493043815981731662745281516264241994655384084651423278633479127941922053052577006052578997313924833045443855842211390953432024657770258809468488838833717638781172469574617587262621885870619420215821737766880822366023883549983611507505278864188691893562716735771188348180213395902750719341348900048212686488816355209179850080226384986552731024478592944371633207891542984149967785227461341537057871154689499980087264387501039513838453610446259123950048277009356810161245296111135636067246478398204878270806369083914892117224530689864231874292117664298538348984994442355410728604469297094824448374770984394735967560152708874616480018342153503045335728090101342901657073162953661565919179015628975016506980352255811401942018968356856199121055073049858096729280621958245825589664388214663371815696586027973512864730674871633632898307588833761891582596856691758453211116524236752077995824996429498033246572839284794646759261396308776619880144062744120689975091030475724313812068613041432788280827694267548520122084946344149755320773774950688371836230607673763800290297918353263767476622700765246363948502063319624373814336396162066634704034995883037316751332257527614685865528373302919974304549752077963111861759149229630599838656019658955981271707018579782982965961261808706611294943567263823147674452599633556963514627260642903002674908510820880437618589633648933819729365786132518805775006918943223910069551639095999551865422469740125602129479888866520993781449282229582737154073479165813707554774331335086261405828313743217985164289147696602807522828055340794143042577777915151224463712443647291833409918602527877837759473949985325946978133233915411041955434550994279721382164788759755473063484416822684962180570488935059722799214627135517954840298698511148864211349338638649818159924618026214527757486425952557840142727057844971883615688830243376947361685990042677056712534032342172988336981393394959985539768336701876293860439395438008409031056454188665881649328818707553491491170060845348541715161469926290597677044842070759581975035002010491184279397274968566758230178406071301048049708804651861454032083853862545799279808576112013524452537963882306776955520301989600516044233362363633946704473939471814584830339759534741192446237405955795775503529299450084828303737450059945498833285676751390972370391960783441290683191624361589186134936614658476227127255951728782437803424624301141968119326849613743224303370482473351895775782528147362961733405548707978675240477859214773959130495705210286570761628926079749811069430374463005134162153529867871123484086769739723222833826818840539504064477476155588089914751776221604678040368754583810486198117427353600396410865521624047999514377542244456627490326885536622222780505995627997371287554568447050991078526189233379461143912726430333516097233574679200771603956163634890053131052727431409579298510942527386885699130582359896881094596317554706649271659387736247938991214431946973240218901655743556405240054017700013205944834273998670215284720090327949685097824527679855705147223829184834430231456011231611091860317419064564980348994070469482712125723422382491541417805822402729388165018447366210205451024386921834731589339686849041971566540965499933763580068208413549844648512641697688189019942725990977010615330266573593361026567762466676108245167768986453586531150980766119960210421927064046432429259290389337598281994382720787624306897852501685423212116633394556336381189188524015787109943617635905267230402357774866835204094437136434500680189548541488812567438278408477063781478848072841181795992246225724792565554263203253874748620008331154636195561922629793982069122630182989431526304494605353748949750261000660451903327535564002941331253511787414116575298632017499492543760917383276974933130075741263664650407778055736327111391727843249686954159086100896652551993336727848738827673404750918117131166287307212458193649574109890132515578347760028144089522303808095058619154091982847089078670507928238300231786812762357911415879708771237346904154588859368073175081815972266413735241844898210799477005988751794566439618336115389563186915265103343530167550475071351561588333253427980587738177223004346618815445914035176638023694709139717955291964079388561094614723719982959745373796429665330681937756012015035818907349196341710347864919968100626542093937044018226312202121777819457292949396687335394176394542698748129879719504430272986451357784693605539306094130588198091482960537500472186873207284834292699667712790238148424467564950695283682491341795200151025432447448482259183441194754672459187440854235595883289353153509304507979111207379824619060557012187933404732731348268467194938401323927156091255377623537106401404276254092286504916777299872567828745011718044581019387913674938423625493594243381970510727515307797251899626318407601566674355666607453999450121454130191957055625155173162521645499090220940171875102818387933091332802394118106922315966374791526002925243480163620308600318718779143062812747900681734332868076453577399499579861604216402377818912039290986617088148817561460169687984363943314333522127360072794416399204237461234731289279566785703337032476878512725252567144103798997079231690567763326962962105679669324065702856584890435155846882258202153034407728772809560111969581433149638656634928037599270604605109763372135398107374668087288152954246952702917427067106930826387074649941513505346066394678733521563455035252864528074188938829540063562602285445194426712414133953249126697871074339907932361742750650891179362637212997445069438226816041218391084492227310378298226892656402784181474239812353788305998690773639118853188220996435751343787314129780956121788850906422607803678160129994777531647927599078082046977296151696060292429290154454679330803228380056407035796979426869828803515658560483060269401188617137666280217442151664722867300626892947726373897181691410663827299498032327404385727865446684413011158365337080852982958553309435260292383551774024135118691662170893864680175830390411429400043865886461358594635300284808207177270027926905748678001763090748919919137682460830790314295435292822168879186397277383436491749670649244910651474778388430589573356564906597862448019867568606779739470258517865034510265473093716357990573103797906783357639666633800855226875945060852737989742825374333233577268654963121992528177669812070978959975237440388527349057076225439757814425002239304926933914974484979653133879321621190258649325167831312980201638300469197163378195895210330534056780042853248622980953683487362433846624385797541611710210241780243523353143837824000242214402496182917071627666836444208287299485739490698669071649844594582910591429950630868600007377440257148338880102136289691077767769912773425943138623708030026360218333858084953358964222964463667171491908096057944537882028566202907577005340923579179556305347071322362633441856669430108011432439749144075292848317979056760026273356690245541400248780683155395406270222302271220602306063441191345768726486013185125401738907142790514218105597747604573172792223295444924310011213256171562853954184102289547286371793351069663522470874754530380705311759688180449096119000355911115428544441091194113775609578385432874084616913446884295064823603395699266788239081536665707065644362612717605134135471183293229126805313974787421581492509842046817680251838142757354931870251921626495109841432361190956368562945750992839027830337985763702582616764707691005243915380676745356058120535198257349836512957808303886551598949356247443678422496684348117145305954508906358504658060935172117206350029536133825014385924292615954635590091879332735250231317524910170125825267816110023794513328713022422737449343112411310580516528875775789390682340074101515892323130243081844566816500461726427636328422769084689133643962753148331644526864468235003505658316791621477013440550912587531102814322950772929104549868318351259637969064069844602184792131350924407004219180513954167994635135345329250888452382593337488873628971414513380408595698119645704306341287486179532994335126321537739200573730895922451182974022235309418475782506621486188389161733872094039311569633219100818257391494821752726138870834991410691236731334872435104048596152958325535847439888859447168875021140283865965945967952855529103242117378668053145616219710810652448350898183669791633439534762073292408485650264164165043014874448161290523157504851338525212841610639040730313075158604057252707848168939768544163322333816329335496757884216564328090093939426927993374586492317858348641005552761430821718922129247773093110123617225821446546003500367620479780848144473207970785020000836273533632343484000854635353919171041021833038006642801496775443283225967369227458703867389915928884329790482014778038958455091434488191811333364411653405181322712882817835129869685118089838954968615292662805046622647773321413985987378984462602915581983143543251129122406882434707601034086808726689417396090415054574036421915203259567141419544795711534747444248997882640899160486857682234680215778985808799778825536001951149708011343159556445607715754498921514313492816197062542388594882659477225988850669672380305739277733143213963388273841821551099962444642475757713155396808307864705201027937776825400376199261714668153026960316531127532927328974285988491418400770471761715630636168649697672840854195875094643809211773294369434924661875167530814858427763593238399097854844466847979715581889819702031935168333671284905495683350073792233422309513678849874590239855126068427392748719831684267556169937177302743645588197387275307049005930354298722813937523982991048784606173749452517240574352806290783866739219670527344667152492411300395255536103453155891902647965032333597666264863430827968513134210871975247100911505270635383009106138840443542406174014169609763202247540095571755360376516936489802223200814705586540919288122151206220880163447201620623524364388867047028082837515815489832807199661026288827184827137625130832081664212120360026190922191045394576730254541389199414305615307944602856897981365568421808322467661630563884272716232092242758008032428362093755827777032419510185000624519515574926895979588198066712666379185733606186777212250028703062304007876245413703380184248090329390682694755128403713332207722048329459068552059632945161398012135807230649560826316306954512808191836181114069105061302474045634212266059251491193297755285287179551781538467226528203343287605720427963600459852830601689711766953110256380705660514364660077319731740649285198250910434918074476124228770530944199279997673647875619394194598924970761827215720633380435038480429841831362091092286300049352190431619046818492424237709120951458792283632908696774078491467917022120266032728518446856904596217795517065558478843269723364632691104885745586906521861918356978908901637041049570255749581061426498803434562294537066109173979621147271807447074118348864034089817568351759503963404331723418165427892301281428376584170322211261282538235175452996193779018715740872783310498009886166694872566139042424420485935186388902920832898446119930713399710422164210373559895862967749364185004860401226121353896567389073347555709353880402226611334615485507486047192953019299133115490138979606857340382963660327091388286118103536300160194379026553267173275056255961515062577577690843677111281823885616297423483248575335924859396715713265426757799329199272056712899997325412644635781928465221474697573880642273517685038099182195446316172100700906095094729506389728815486947214559371586523826752595354367469419165899563729154236375574529155529391110676268996563195813382119694588860361820367346924233811065457981891860616018744655820094077428357276467093362126432056135158407832465186158347855372889388469949402748289015390895863131426094853386013401051718164799947185659083985661866669747722522135954876171899179883860346765465484757341065050684560554885362836474177217754492178479611956022343122392804440681068901409716248321342395243813907719008591191940879399195442149348565576536434438977531052523038418553702131721568489210564568970750633220485551132566725105980529495892939680755295892507980058282898321643055786158934773237336880424088444856909883383524807080432942800430470243789487872500279360815777371388103337953076185043657208041960213777888111513612661831029878811988060170326284368292646914401543733939685849433700305939983260665480162422328876623555480648996146364460711462835361161741496427350993368598443262575447605347682657355170959104944267199479888714479530185709592184188572796145901695543800804199861260804056137451136577008533736909382117046127346561705274456935261581313297959380385585235386715094334817211372630156619697417483164143972682592150817592130936893320251578433675844209705876563023720388699323117109627047222069894395914970486067464216417055770661762681752396289315202360635895183588293858037933443705105748675333319977587198130237289114786173904481182126484717361972393720294903026929842306808117688439110091197250311359891949593657209312013962661205195252333415349534118500201020892306414163475353357701252032341127338419514664825544126251920075908116353462529276587561884416490965230695971221291139405190547155046580365697991095371068137140794113844969003366015421518584625884367543011722723173924271305470929064444617587804445328186101789910666742043262136282496532767811007165775260550937201914219096200310438111497054846118329981422868624142841695485230751236867415798533187088895882312479071868223857756000463079094119184270741448999527708495172569995025889875713869264467538573035072352691746817370271015806057672672401448637574202493865786766476336383108903732761876380575935814627990625755566632935722510495276482765494802607097660791746244797518378216755087184722276421590877130421830898171497953074277635790935561304028938233016320551770403654332874685858068597452022254416912952085712741298884033872509653217452190556029619465813957148304536250608545760275421617906826612989703341512119723855511399042274834699007454652535192081927682605405713252539360801993880466830703842812955725303321092906918452497895601734902298203269102087293704358617829844906019935253984897411187113570800720870056553813610458402062220467231200732328802442663896344770526910707089447785378193666983701497718839578071915405989605259034150489715019256863344685308938071694868804189018547047480285946586354609946915477896726068654618531265345179021657770829180671618767584036355036182307407907383868788178099710959225602441315599533276822460924195336128083013474382703139113704205353954433160337010171702950164247327093187946909379061285985546529233364884214710169517159136661661034083448364763438052238646738539643252075751495677863742355749704255300552703618798944119629234636145035325104678985413162488387679738689375229737910431199171608769536614887484186315522936636613950526311490342776942938249099598860848140039252753606558929349266458880373123979801549053544632079903623669161346754583378481192060104279192060813919455843041753647093055717468987134811630569627207262785446602728960876037571152542682144753914485726218441205547389478131431952155196093985725002284907772393592418396998033230484398042661968772267908003029372298941362527692447273856681486588080132237229808935229221329204591489754671840943308416262806954609168248240492074894187886853041627043081438078721291954989040316995517859094097434624733801038121410245338258759081133714335873654212775680631250310927661846844820718031246398846705602812648138082999998806478171422073271912526934480822078656751089994981860724657995681312520324904975297254499212190177368726540183012968043903058028973650880161458411011982256529013632244263447486528831272499324389632448515907635913239711803854511914744521603363139770099364422670591000658407892959843475921422567655988618415202142049384053655040637314031418589360360174790635638332240574372484176072583650353817050970513230229227449582260543294483389988427263986511167756178893623988820477615648731980000756163788091668836681341872257906433357015356294318485919188043797299198922126429575475389645271605587056945745723405514128909746428061286483645618262671027236140219653386099893223697389210086242040619665741525763265151062158318486249203377048562710746196245708456457850930509498160948080927149523732481241130305241876975632663807360446581473715749538320362474855236727627657298428597612652929060880170601559332845663958739990307161730245083952859685023912159339892015379334119672904513842002172267832456588215405643972929047231182739369979733205810719194742117395065207241977516126679219607885060894738344664800069599844667649767776791017107125543147738014400044080367989585718218876002180258026042561497953954642302953370986320056366902201018675552604806801482256311614384561426947534513705749877732934316032737830019628291561930025251864087598376702841103914672435052627485649300484941901768861615257854039167240312291374259961910228632262933048059238732340928918292671242263399941870114824193651056048036595591172872768786523908087677107970248149524920564067247468732640199466052868196937435971166229149914830076882720772405273333990716509939316184707539492131027555325781315826203502190879830054759898379277001477234817519032357784786861347523038208940703260864520614929853751078057415102093161406550692559887213137717205357061960053891366762605692851160493069227290549792300072524771321840589805168507092261580775431285187878927333037858285040232010345862638927547310721261465113447435805991130350363070847603175446586929231740734418614301135533457948021192037319345951262324780210025791664265192332491806060055103807595326835659148704004589750764704547084454858447863206658589889322692705176879058642019275666147687685334939017838864753248851559544834911447139068878485451516077381551446569443671028337380250033398717217369778227128524988508193752824898577294642782563051184404419549209460622781527381668428092884884841613580255131277969726478962964920154925866029324027283569249812761759598044313681306031335720640560921237011201257266689111735943648551564091288060812742079384036011124230392544543987713390955728293153241703064363039826834618351386204518845350114950316417620885965808545113890142646466738142043316053339974683112813874098218559662858819078562362623841811304059579933271528245320037928596527378077267850406761884484079112591639259983362602756250881337934201285088933407944860767395371987790294133795535340140645190647044185932723382108871840247803638582275728037616902578700167875506779641635014596579018583937901176180541774037116376591470150464099571904046422577804115199504645724801540261730023342800873459950484253810695420177114809570510212133602908173585488894933392668207528901236906570647354917417673213449202024723868217250393144544797006016813948802545868373070841587664195143832702821937971652814136319175070007922565592256594188673340238663543863222616371366885111791715407759275393144990506324213947048964273520328385541001754163769552271930087232627528502227520914377031992649347575577082602451241990966219732543465755286456094545823884334265795257566740013582248441815088536939566700936374405469306791713020658527764044778200043755121990381670788754197144499513243165796892558215103863883423940179764555970827126406185725215979686451583900084430019461793121912619140010166369112244079124714008563820632289726155663086066504937753650043730488352275142379671605967968001585044268594274481612872339490746259030128848556316429696158002872714231392248256998283363234680463836260654492005949543986158736513186005854539233001500134508039323515647686480341403626358604543641317099901383721305040121229920414380150527414454532675827235238417170891400469964179833733782367084033183019430316345017213058195970202953574286831545915696134096137012752717212711819946096567262472055893447486979472890416709156986122739202659826780054146264531866429356062312858723425099387005383248336012239200559683433902790407842894335472763882947612904620882090690614854007165969298421068380891077804455032047417096355652972011118059806973379223699740025760419181334739439332740648196173620177831551256855301006383039640264996188951418042543902142025282888473451183090952445485349495929949636239224231853154009418576278655760338775362205324165385165147150472342220219780936937880905856914051879926086739671812036005911933582778865821279205295024939158874199052377131575100155847154680914356778120907650799938407663673370247468149347607755450026095218096028119027076444582276068999837196180006667008545869479810735175600354530793775962778764911527682748645460532325159241097140584610553489343497430154702336967550810812386335424460483200566600860402804741860299807086485090163440455843960003611712976836570168526714505562049284231716018152220087536028313476259780758610700748578075897108485576544089108537453501942244176592071457145731419052121106765396068216201000844494274320751906887896081181191800717856167479357121006940365166170456265194753704631678580047254623145148853827882168096785611196207773888688369907893497707642045548783167687622915448136421962927254378153545075837129121519611680624975573809466798974171134600509782397923490867254390773756945743604074093212226979793491275658264545682286921536168662686069305993910729041720868523722162583224381902537636774253614915438997467325751653747007868125067917927696591511079103899071873428551967124465160358022830660402574096816509163084405553566377655348272432134471931228097008034287990377675573150027016554116813513534269367691478502228529482407645468361281693322339780407367606259050189721207530755900640940255767276547239113670326972986075790284341410761911352331032032622550972655484863645827646312641361193567167779311554828462686120040792100912194250894199078909212900752868724306425918615654148921379371041934684622699454516035799478177216451448495512899531181761859526685034499719619713145093545212450289945457044007092756142815611692335072887776553981628218599201506356230257075178280799530107671066528577770877879984251810065873796080779546363188877844822279164293168843236876221616014283199447269387101322722784316439650421294279019124770294206972812723674094180829162482014122071393416306259358910778695972142780918461680223458500961217670571952250676162817668301784333552115728882835396499475361643375775854618170470447147313119794303197043947189840099851186256871991369735701479125361721079013774254963280933117034941650666249611034185029624945920794367242294358393382892099650531087061883144751507593120671060491194997002072935653770082005472525145015136708931672487773942475877818811413602086289315251705783689316172331247889282598325624910740355896944701567412005463577081421932585987015439775260336338808859779331100621778820091385867484353954016340404409041769917864376141985905112450524351531726462203005707739135528608761327037100472946434027615081782158408651944771919558869890877767035373692821304741112388333447183237157622982015381385552322222066701381695843355113083466639692509220231518814182128198870184742130557075211293239395471958516032363161219037345893856333713839698907880992102777482762994238686661547609360327078395520156064634578053209824230560319288802280083407172998095377046255508704714622995167525665319202535150921104913999982735401561310120793410966405425313733009681721902590497804346654701339623632297239607093410333550753328629523054436631486060323105966165635545693821790896340180415912961044993985637988750594661703272320024648622909466887028047020483391055573538163607125997174494380446150469691687765767217257253726741252074257348119003853886885599478565517678718728411125477025245068970638121608160799013542868145055512103562276985192804257598949725071013895893853617271171216664058756904111059047858085870569744486934550334601385896779101512333973501817309710442098893045476853246529518934874600107325910272247595394474530489697180588585411518270794545613508362194335950522495176272164547857231515052655706047731952389011547878695375972330209551496716143637577514109943925935392816900320093177915040162019105868519683411445192904215990443070587621818499139256091505998296727276887200650183795141970072586651108307822115520617214801506082697478938796155725175593922984326455665380027019087398690963621980523403466441099127079516806090315735584792668722819712187291236189409588535448072304978153429521511569876317532565865909332431363685215932777828299760538450372012659902790316803293799820742777469056414677693036043784351733638648655650403182635118029826871673774792711067070063871579757657291270739773270909830675441987174222185413929445945453551001966492486472396603435132551340893591278708994291210614154457936525942021216954200041034284794641073057446872382159410957121086349203259264936634189069574066158699795698883994064238863305481747288389949941867473616387646031951773312280482691848608486978408717125594474586685509766756886934223458087568865278648759371507016728087349095887211691657862922781896201878000782185500557449131274843186931359901047355179816890439290502714705749515236885083769568742447796481570992584065908579839198307106058683236416266138128818117264503831275264054816602921235491338411155884046764380336544249720875752229619924854678005756245016459980805476670328090197230260409953664920379534047904429057882092101556057407503380351313504980325337429020564725262744438968429504421384765403624887641409033979300963576017169859874564479995511495208395255983658096949453504070922306678394528817249024644812421228573263020170873506179423643170807117335913247851165426398772621248070959150967344102265032634547113319881849646223941249833118801655039682529564645684512009030421149929277508845552651793607289341481131926328095815376843351102754431027362033643935923484548151372395455460620222083374322858734434612314451422634417197045535425114374224125946230738973233908034020947595380446157891914233464460162738641675420883759018625085305675279698831118876045249649638745875158197226579418668196576634833844690141928382410371931263115009657881616763657982861889237124152964962769214178834219550934945759162928383070680567701355240067621654946880301594795696066853604956177432508358625119405803543158959230368214158694325606590649398752757195747843095026236460760420188152833597574832747161560506152242238875297178287670385569266561689311187152407889463510195256955754386202110582533628565021201276039896219262194914905588564274020902150625666923452113731830160910963527630320513384199617288444985082479466942839446854064272374642912245402513756600150574492554700193402757762169921520538893184001990800065047146483632189477009953132704691969871331316261884504386096448096687165518805828220646202602359464864015580291924452864598185063359708635196231321700539006607067186414397454929245456550482018298618864106169189473386965428508805223750071926638817905047333531795063576198053860676509729970616642111609452905090106339307254524043296277545589016584953289783860957195177887407438112554725955420735103412445036250999763956278880776182801324189989437556945930182263801899194522105730786079017762964632779047669295085856335848477833089334966898089084487745948211175015862819836344049405800958407583102944517872699771052886677742802263883991437625222318201038771195988700953508009344119161810636234006072270886653471875482584539539882890069362984179254928005810035314226493489885866744848446113140355207165686303891203475141252605705595323656613377238717487367002788968842008377428586313330058387352791828882469017903367594005244227471286054999401393391099878222783845859128079411043663139526362059758960219358422205496991005120616526996774771957775407548961949396738083301631246547791365975369141109409396202604324298604489054388585035299611855239501787744513421008465261452800773433580478594432359984866372832152440268242167175526826100964623102030182596081102021716318078789419050566351623883540398372310310230416008917149137427095037921128439908841059730215328869571510558325722873494686798283374740923247521126102812625363709756456911797834197159654746286745802013156990331784663984310844663231577673450235714760743412816423807001725405965075687650917652724374452139256162921554782638680585554053881945182912785464081282507470711981584948062431035072226815578815733365858890324320858597091079123612275518819817858366486172368531050454612130369024796348057747372824453520551562751634404850325089254302864468189729098109253488465624751341120027896649762720527278173005420725355812153672533271454203479671780883391746424967926251656949253564343748816984895740685190049780997929528010624714066602622604546736322519980075077275394881131351949432038179212940512562475312033594658146046733382879298645087699940089243054448664009055088346206748618802712897756884860352777268442578525841537590088870804770045615665446639264771483040059625331701605298400731392909028423402215878805859312236517909066777293197687413189942112200839038517319054850179636573853175955697938201666109830895391196158567234762255009047037298067554509443512009105515448998553581425290368637873889463672365267100726703358364924206918426718289123798086608004899905495096827105224059797703330031378147533910012022561409245130696994327477787105775412465006838163034079700697330016245632037875167744026951986827528554205330878427382033451642824203245872444116882019067091939061199444605046643006173450853673346763920412955383159710872041596913499977713393392898887103780908748212198320522354783164452340636637945148024649751970959551206716881073658880156798608469460609201893245223519057495545559265800132926528638923869699344195055644780614390694471384149948995104167203037146229553096870988948715236130747507033551640883870148847368183633180693429740333702648534848228909487322168393074434686486558942066480857273303805041751239235844005946603152269773933188190747444131501492800021790073696075776776537026098325773054627060717946131748415096245336127534286721575983010540958866901983437473423908331061434835927927654696799400562260319448664875238628712389930502659206636457058101983657373285116061938940909156390117485170806369913312882058230920087391150421893708124280917362224637764722795577262875032386849506779202482197895209876605827567922268308048912320301681803229802122180976814300691757587736198318619037327532497837442294568437979574866120696013358560370198093712557408861714092728605787483252129766639232528299688532140917311956993031515639122759456475040222683731129233774845328732411759824270882467068471565837633392604024709067269451606856465586003386574397631954997925338539231453186746452656071849716273460081327592333480233255399420468237962285645935422609848427761636054811055002121979840880692580970980018114527533634222394421751034938894124198227352356657088321856484432726958608918300072192590656035369209392120041580152165939285930368913153085903057538295141730421498526136648630780538612391337171510674028016904562509267681193964735485375167505588596203859637172865332152487447882153895923154353714634461755178708986867271464752303287233556078256203082444232248652415982583612947604658713126717254046390044261222596204583651857960443196179570427054367931649107909273097679074775884200117857764774615698157725550669450409493398138139368768508457292989785733077386234386648272494361851668496300879272967190298601590756130758072843473354920411931943968272436709022967944323940811635315251508686416433683396089851900242485421103579251600838409813179083733635266064236705143129347001538370896017484019015013045670916114776643741176662292859402317058942689240336963323847106255666079092069944404501969142129679112596157604822420933537104877636920533622193924957381257972222667947238632122893951369903406693276119261004001474115640498196276382495170038648497912699409554856518691872083735398495548882025641003009774260373601000736348097956896595390119296200643116032434727352969042001793812860305774394028346710954537750206732609231472225142466391188518535622850619844819048456914413595426997909321329062009836334100575300364816999704927280765874098777302888877201885831833110130548901562736140693825208574336820231371081601539088095230319689090302651769392878324948286785552338189534425730098819878494959699930953045639806724886886156210631379851532939238681953484807855921025547807432997169870695468246113713213692763413536157972383590158384272602413888373507106149411653894665331940659267924758378523992104026264928176268571697003109601628727630355456014391193223674325212087206965165634537041098503170597923853147703486289984702930412289952256201104804752037390839964257703122682757291358004791966305103173112669246279906623335945056492355329047945699439282719710554698632414669083790775645469427676750380075714107611881566173930712771351138446073615668436049300127033748489276558214089311069424217155986724338243059814415375645929662366350773734288723162731777945042134832154720371985695001674697294672968419647417523488693951041399036154915712734572776098685977827126668356345959603016928174525490324045103547584151999010183127347888770752417561628254966369201440900751930640308995049181084131948953859197804550097014721285301682492544967391114632710303868104163190324606693144649070259969896476330008495527168690883769404570201032875462759327326365786916212885899880147317142280111929667426854581141991294711341543544852490970559609072578087224802190846459460608783856091601552962805780444840037825832966246355334225660894709647904249738595800421661687332676119176283331158431354209365361199338801178513309865748198319041074720470377312421664313169762540357389528839180689359995896751270076124537045449992429766662435068758475807640893823830276383718142967757627916451427902719149399790796528312945838224750588331500180078070478495854249574715086314003726776483198190427844698822051640987582010700706959450766870090002193433947642403540413135823188476641137276201494785776097927832718349327957238532941003775215899228262663116801620380653303972463949497593710950788876036383885222843587467541692028087202924711079624146324016677489910638879170781185656952475992559280617026073725329856176794997185536542662557465563161323217538515468694512986051201739910583162724640371647420756123216743311064702177337682257464512212514331911335452923515980190057830494804706949626503773203133804082641502168439506829812132457740062970706092179482002201466079055152228899718414429723562252602584858794813064479798115393355858697300334431391483088696155951116901267514475275136828927395948783058708405023410101963436321128361316816675222710482743493841039199434983072532457833043281220313646197076227179233006736082155814772717162709223401822530547466841930294032580527032397918874168621440727068157996090240401482398478930220766488887550084504738687620405718145324836037674480042571155149598412831477593101202591216564229579651064346414794490214826825061154845135950702127714352097915766061360275432981586962978060138547579486441888766297005958999445877443189182947525967210865821447176222618446106712334000741045671478948641748093555169109280407482940113232262883901103107668069755003783415841565708693517125937972286469358583098495309233765074056065426731329065334768359929489230956513922371620504686113373806125187668873443826192579604825126149160831960760179515714236627499374458362805026999525778664044807746492947199120091196195738525950469209814711331073510249874088668730545818550242033994002307796677736150421262450438962900169257781927959968093625669493119986716103923610435678164858843802691809857369205069618069424069023639754940068168940703742398261673418868181789550356755435765935109225030053035764250360691015316354989028493088539074903479962091490856991307542123174215650573328513873606127059412341486155015089102531017192408390957212279304335328427426796520292024859597022843053029533990139885759588514448365312309329540669911121615285166471571875962345710256961181172695102534103274097789780223779453690609486682547297040636331494009549990985885126565025876545596795279183681815318107735237544905585237228957134587054671060604592658141242628672771836030033001387400581741408130855419138695944844812058896509874497721908230035773841414414099260057128612387992504741594012974600640061079449429970360191083418209102039616565006835645769425113038628355537235953551929856547166166702008011450523317305728973377803602034224140216817211062053656156157765900543711921555293894784065997610639009517254622308878357123313133316473346028510778293683349830144758768766019970923552876025571769896781013295973436656918827086752660823166124409423965756441863892270713779048704876092140635715883039903254056203170869294630215258296637359420649820868867177003724001961452717481403300243367963081987781151484338625726304697862339693427212926707838819171388762183501373448159144835519780897060754498693109221683043796073010628153242579086693768830544660901337087400708015909335484058640188371031192198180427928891269734673738614782690201704932127938154397196735351521563484826475149231392861827316452316145106936792844935206593938642531918897858547353695631740321830567003601284003381459474525039848108477987768293642026429414095482612795170532759836567373965872485104321470629989516550183789684988346671519052244848523321255315080485931068747808243199927664248458593791505147248320234768410295239914045121509794813274532899065952118461772190068706431824783086190082274629405151956779046354013967922763685616803629068274591589497725486247482255813515086067724638337542725662016722973973250284616446142186800467071340059014122868242774100082131227993811401103368880245908490260249574952064487620282639681630163811054682416199409049257194479335691915716827585449354504841275059544283198799564052852539979421366333595599501498346967659432749278594156336889011148976656836807141850717713800710158778017799670920813212064662096410857960751936908958348429036543732480203541768136381174791807100020564065832442457039402321273796448396241351157886414570663333563032425415671178852625261474673479896821636088604133922362659005840109530027086423379323434971866597484399836420577703386718599859007093472910858501191815244989336685849769173731153759860326600833906087591108658198136267946210046561524858395029889357045058938120114473379585442326106838236088436289778005503375312818633501061791645852126696225856013951303755927306155270870295875479455278624087362269574951411132132226323055133838249934552789615138878289269892257167931220256171459499742883922945749838097944979011867903177683617187078289222416137070013686166766605327986559389106006487979747768258584933310457440932421725560099784994296533000017971939975010379413944886204667468935436311449071797082754061234173532093589627156198623262010724281319104396575344240048453854804476933321654485354479825442821326176671477303134966972148315452302637226748251990608813407461082684806844242640987095418463484112121666598843482445050358657507776851035846587958613978595861601348240573343683631668532925654266113346710328642636848749210737965507971033796567407929298835531925528765907754192129671713628538202226517056728423776691819903392532911433767590343858114169089397129212357906144355901731455897971142039413210061350690041607768577953579195405015496547730842158784383393872740091762768082507762060273663771381218585392687340725025406709213364676819674389217444376824501623600477100805240472367563594390360941982508655976123762630423934926128830960808371844706913481158612378004349006002062186575913425935484853093528645999542655613840956611354355755832249264467516109055231836508847451373147525597069423828692227664055469254238643160493464962374281611145178095296140035453236843055115584724234338464402026774482546513424050418292479840677119653457165581520408529758234661530302519592780479680356016829368192364148128116095924407140741107495991607927607593901818453825057641642831868011357161247683347392640974117888823445229501325009088307530668974443528844621176724452689549932005287345288849871536248598663842355626935332091631760775209754109621624582868780842274124889770797796933426855864606821402335881376973097410965497935848280898103939616253258189216459023351943532392624083745533667889497176412898080390926280657885419634865786262821801978209790189446060028873838288709641396097963667619544708188506296227911451273309732852833014938301222675631519314821897169128331032297561186102075629784529127541404542846161781243950827969477866072298321898114003710861392649712050212069479266688685551853718984911734764930950968298380128651136028597162145365081397383295846142287032129789255750168057608499622394068440204036458340217168400996073741540820885486297977380899721293280371899006748959864205583376734278935088381309273404564947126934418509347301311756383276116060525001829673604680504445695770931618209109952874067724875861481294405597686019770710740913529627822511927493067717655938262269152792770943624814057978825381220016596482168250496267341187517501941151229274870654574763572805080385024288849464498764075405739565707969639521866269768080915231537535219036126788766963214225893453454585023027737941105196303092353295729231061943033643925037746748022802693241135680834350568937593609113057075984242035525852531839368764049713401752872950828234184923113745923567513514690410826960407054235835983354685674192873986077980055851074932618217395757626372789128665669661710047594845494622249893368277006767631776638385407319229092896425504411506975268236139631884050173362024226896203430515501321441639228057650005655559548043061108244544700917789442298467072241670815578835528957164925093417470395628476408064875361718825694103564512791264629592137670787471469402007518859555859653629944187996248823759624489415076258996597133722985296070559571774694240827121972067802326776498756813140282868826506157333990681578426778855766747134394650610083583923191841670257718896405242054296642464822256814918038779265439724388657532311411894279327918198235255340166619116567734633067508662116183875026175027008500317878626228998404408129693865484259252847316964381691474123490118955148805697093838649845684954940714583457989349736257795121360693571803244341523381739322071108562462465501351073710774228644429148239227780159720618692134959959007915873884708808512766378489514901685576589170917152319196472513858105611306933476116083240447195448289751132464921912338423711151337446302150071045872782639484810477594144252218529021049355141372375294816463572333502228879985091036780431766693932337693061879007429882923507310689579885524301950702727619253274567841116215627240411810016174189779227846494198894011299036504963807152181571229294728118537033281888215359608355650606998707433572393926750656563077982615083050440102310838624362591429062305929069849472183373481600536436182981193185569946879777246952358391647159051824431964445846828345925244149349114474949257695183799138888472404773373725507787986304247506682206400335040719827311263458981450463232581658712410120529325954118770121985973729754632564827193029859455116293771946500556722359668873648355074361973572809664100850479405077143246818273034320157434794750949008307167749291320279338222765891914990649459964478204417837561953518218433315287991598212784876287582730713613987448973207541491911639603183939265664629248284083224225626894293451703980430532571489802949940580832743171295652912355770823088515216075344142891187693965167210596172676110696188564959847586423389541031191953229831387145066761845296771739902825974973921490930775829863249190262446318111717910747764688573660655170511245401437968404189512576802054002877565029903468591449047771775155424169462589667620739979789573089989745579630845664642076143105197084595139303311175120850514036536158392301213403111253099908194147870546519196020776331565304265797362345178136403343887501056591015855632904196129035246872979630911402450225513840937392819516878774644744478898879090339598403835168062806449753803686530851752883863985036174604057977885792745934358285248616853834546891454157302364310549535478271490828462386300535058314272177764428173549229316395836364872874496730336739810300422840731302785081015819882632367959952870234306104340939705099070427778490393326967773947055245685081043188988453230551633801722243579393653359081438960144982920641742638241442927689797661947854718821544146245887438409113041930603195443480403166593926170184243897791587302867674465102497111896940893661045573985355697468745464540204960720113857152493459877007855663687804007739502624992209501639358500692088432826207800698039416660738656815313649465821477728299355326972493057918903543398584422907214192389206462712963993152526542283434231465707299797060273517692662749997088895418651159610359915028124200491640974415443346344822740132941107238086023789466788542431755912554692945185156071721417924932998140467758662383623209721194435611785566762757994089003599242524281394023675451645380007332758341666405599964748321411671258709555478659365088730445583591112296337256058961006819514127876432871587048115619864010082245601441169674747186530318369180886856553777384761592140032426533201553177373223249276674647776193248251449874184951018615510021963107865390905625735584634550527922709616157093648952188637647730021118242227433197393057990278309907018307207829423181027585065830767217968893152407700167194375449470126537064048779785591223507847847042440151367533680803941325584605196591927431098384345897225088898702710530286320784169971148629364048144773521378504904916827221663411789825604144942608389539197636500609841135896673766990023316410408434539896659621211607497966570844194540284537477320590817910641907233195650508927747666061071031010126064062186249048346394363567866142367236172190425213511602856326232908573837524137768606305168900182168615196961014020557344438496273668922755882462651827296668051001214454590911041764811772105134424632311841776481658052919487073140096163358791872632310633731308724485908466218857541625422143175209483515565576776982134555309156821555332131732364018942522425617988931457130776615658484719870614482853243688897133930677265154562739306437722515298460521136258175852807319821940566067166836831392077503758043942933841733022942467561416389440664954450261253812540174112052790252095353140748036631601363043454849013204166355235329783877229672766864669046068026211279228324459427995864738510360021383373865109092030915609408287176103752023900208393708267425216494237269233666123413047100904904726362283311139725840141473052595107234134781118584675487286616230853796918513482115316999910942626415930966059763461732247405703815715173923193263060037971429533616301549809439502190686262197969703312840505417220214993069848203980830252632456808943022057283798011166446308479250325555544937745440813142018194791695837005330676722171533798717939026659953103821935021009731201722848042612409800963328637338884076976264656643268335059803305811697079070040080920600241329745704679086589151320495145789347353930710147173139614205660862135467556001445077775551306625390409210510508422232290802275385958768419213279881390302226974132044269830179521934911769569119143677451417434844972809356787343671813389129573879271141450241353768243215882286427597276383855182684422018223449494536163436814143124086074435537606705969560027729973633204653752337853503260758917392191564719378859361844551939032100818276808486582286152416169582571146953411196501100014926831213776728443745405535330894716700479577815607068787177607337124945161474872851886979480468437262571904497751119292409790379629477188202288417431626073668649076721315184910139771903502485702900594455719002462425638486458219869365153140145437690600672847678648266695334768892485490387008514071970591650056567920948124405081746433529621581508342321870219293855040241253366034927016518938531657001387667673052054252805737601263129395496708140362459098825420282736874286401536833861592023171014731383581220585930189968050109185813037268224778503601757164001424829413076892078399761546232851969377815159397056710589317298220597724777630804216752814612027973281308146145075587660766090654299452735354318545069173814618665452173066229580846683389524481076199951648672269894199872328082921082254341482024640411044420621620222971450770881030707925115319650223696546014768026057090861682130512037825850492524580448647873170922684778475606371367518412092824621101285160241140587867831911637401653938343320871458804860415637619851299320442392822910947265102054393155790578471795126092844962804147979851216241214824405148389766526243166765578658834294824479475976045516854816612018785279741839418558990879708286497272275156169333902601245375017372680619752781156993732470810884244777217049684783991906365184726727963687924576208981431965595635338954570870929276791987837155073651432523509853081504337166139883976926144358862876252461168575173238258780944335128116326015067098176950706272228690257027258065642895309299895575877964201425791254350833209797065869566897938614431481715273052343816433056217047274698220706884777509793361975231421785499090420261941729898254271232522800794895477230290980651997427819937895332401850604409729291063813199866540379555786294604269246184763672214203842828232144347931459439312213834783089685965565035468282941837212632330113385325114675707141369737856891264300148307794758692984995152548803702317146012079505239908348342227031648256990169849087321176155663529616450155173122320511608754265046439571801399713782527910018483647596051987421645484788196781590511418476794873224376740615588107349498098661650881843142925271210424731113810964566183662234874466480797046035092901698039811392292521766971859862093952696552032568429184048333603349410653695903954804281101070263748016387589391931962808025981675712055845026719694388079689024650075114104825867569129846582736065588586843638555025067347632084801281498815345514735969963302125389502450845712890917935370209355001584181965088509091720557171254954580498402020849468164695047638941042116750800703409989270941519505915797433898690386276262889838456596986361863778330961061833807018943548218860732864532487318038409110630566289853067514519406388725662413368697883659160194973103017911510498518912803773802308470192631523140027155606331603531986403008390382113672128829382272441567559951521874007151991688868307551940909214190154533359274856159529677021539605235105358490516710464183442352915422139849082917900747774185631071971571115129260818313605786928058646454168687504742901924064220841840513835822693816096477191435474302571293811976503554860561273250824390834918712188854150310661504600354129455816771969785656017252580897678368150792233459610572663189516316138263524285987015568193339968436061995248744013616490068456816750602509658437599565945699754409113706352470803698038479767669649755851645693403684359198727754910830812988169864058674556453493935334283593642652675434544265844793556229975950255892734864773160651656983042125856912630151430888184364565041866585676797814713778031065304647476962061684445945785136020463250104852732717296700684007455211495691181490297816507335764482755114060094811079397349859982464268425774757933458840596747518619913409025121541189566364807114603665008362834759972461462017890027682540021414614439712273346663410886668628519641599907210388021524068622529128193572223011185465363820565917132942703049971236838155128945345720437154472362601174833867655273658418037416294692157009851007565173830418098353423256133943284922566825589316668527583439331685546263300988340095909274246611644342789203229318099325617735889430424221366899787577065965515080266034083682829387889842823951776153543829961271929579217339813528085598828227003128711842668506442555838180424971764825220092932010278934906535999603291859818558920162417919506349564660495183700987459180295609697732327785087775370627895292541693169616249907581632370978216266524350378352436277045389396353485615430296053812282033689853073349091065575166943195191078528341047571114527095732438064464333645287820091242840509447188233359381262687271927249552467000351920256560393669612264927810668882199006049412265312432656304996351976895400531466745577065961900312495667117612045668237405879647292319499064581804130069943066877273804163357937784612106092367121589445031169814475669500684569551443748463559472041500875683885020095469355138691540897897758922588411115266526023681241498176654331195706525379321977719899618989366104548204359717691888022357379724148217388671741432894072633308561668676218869672462468370571769404588698579430739956740370852898522421201541801807864943025285942569294294223452076554892999615933477561560989141233434260336297456804919828925630400007931625206948396750011550033996385866816682599014526123573226367024053646116453744943742703453064980742352202747687020759197082834233559338413851363753218557042028203432812454933535087055664686335736051980806561959143882670925062980846754213790135308443596111534604536831530203394637242821309902430922157306872271516240262993281739866578105058551626325813687743342992820613633816509296382688445509739156283637527029366728594593763188587428622653205952412844633682571419349098086612831415233096492839829357517635946498727361455433559759769011979110122960280185765466923038060517225765120746071717091412552801394256567332762732753916289237161097751818387494245479238487753137972357918788709372499853714774645869076690155115615101364348015080752485324555952115352260700809340035961747217417277167977924527882816751960143089263275812301210093501448539255960111635439179715531293142496992744097513858469454795855712993868112154782081322372783845022096925512330537869618868662176065084488388981888237459323639520098484928051158003748000401913699592846453497115160015658568263861470783940379407639480553444609779938964566356753798267382277098425198723799906284605414412617270682693436554216601237659743839998962054697045450471559049426788713402931478184415599304244226018418282354595531753533396957940035470690622213649429260652879734242513425686743294269596029378670234124594411475265837253131026078482385247683383074296456989457806199578658405667065975925046191029721788492339295839866443172296054419617825546577484064523876767668046930322581048086436545062230414962959182684266255770383301808979825382815839639860580811742398017568686324296978366039606535532964637581139912339648871859493769351090750623131228899550775256020071365225465707078470090734006206498597621506626930205932487297224322852338334410564160018060519142308179153787440757257608290956837148008388924773511595061703517213879306676585614778477371683707768971885561669564177001965751548520438562691136334016654653581214551818157015227625943319319968333186218931556360752882867771509744380807657986108889936585917086600774913467638734795766950399467264771456226548254528787762076835786321857379090368029398472933909445695686568215763986148634506068646137363181184888961998558201483713694542383199864331891699164959646139831614283570170732564682582194809838850760375376327162917344171251700583782188054522562387611471761921403399150037065899206631682162722917454537136503408678720173155532368620351573753034987151749419911254705844294402520959737642734346200021834729463726403643781550458944195018768651100461931338019587485521304595783931223668883236680810295625668166619192357473264743177118789323253084596906254727963570521128917867049938265350059456777616889861504460924765790353043203629140994147719331858588156775849393877742031976471953959538234609479063937786644237143268841283824279206173577282089185649072963346452598678626243968993298028696518495749933566295093771761033429949560160532265594253212533235655327994370267960733088646743790239666236882238686779985264977268448196228175579807878026586180159116576243484003236104026432618334103992316756261253315435924887860213639597605174105819704465811879547604597116715828717767252842697965418857100066033259105703253854724793419279948058122853214635263920940055892893015897091796403196884803456640347114103851576925140364321858145994667168483536306916941195727791434351032216760675216206204391522380032534858393022788233681862939009344087396153809390905052088575269798080111916379205352114109095100495485225575417821365709389107836845623468341219534506588600636808044095288598736725172451017477198849034667145887260975938329072890211073967928953333426848056818611841357098659198052351425990032562531543613286832200115631685052716336191085919286069725350181334963726360105960614504600542107179636234518087236789292938772620432435832239562261595458536787996720160947475847046775398861899304174499919007772157193939499304707303648106512375331653561229421004613246143645902558189049395508379037812896385858091565711935775984498791743039219962444921093649746612861148857128071161592922148898661901488161622599275853532022862967044436125468781536357082335326709649625328477183397233517385524102196730441041165560204099081591301219770946818189075433982473452254899603092364725266222092055745175101035164288509103647548103617667650374092671330103735558244465054744944552385997301048365993561366961786500511369956088478124855586180142835337957609125130693040305248645857752607001435541590114986904068914896227556032240223720094795090076403844302246857288722148616880838728621624494739286454592763487038468984004256877527872857122828834239852847083332824568302222525819637883624103890333125680496464140248156350225287876937059082784082871103840869338018646790382608814720864072273293094146818468146411766866613580378577891095120224986049759099420139635926162360647625126433146023981614973161545005471344332145944831768401473445367270376803572311015092158174194138570765113108903274009933171983805172202863638796889718571250618549179222575855802655650609816409082854208976260560546183598926538218105990694065569523681553013057168254399095878527770695594459417256100284728710018889028928877214896984044131844728317708064860513757031785437955144115434905294424999388365376141043956920854692275328905749683030925876179274898143003676601985753664413220067396102614524894184905407123554741254942172365670187217227986482369951782852767236490411707821824389307631519026672364698530310734061739597901196140873410962926084886473729291983257693777354085137134572489614507896794951843156874902139109899266871048502284351311134340404454794494252083505515144063400686436774545766306794272240685837838789678796569446420431229662464791936387143665666836137854204037650459054824328502915301010404273495365988902932346400258820187729330927622831343920644181108634994650294721720092422619115760558436230738526770311504053471278949898971634757666283662205891204971139767628457697116201957571514355202600600245855445470987765093675146793920076487987692566113119868933890877108876367570239183275846125721255281770485886252105840782584408068575832809129780326761230023629294492820771839974254386752151312348021689036526425040797211078160029751840070627847980290881939135006835973313936428424360766725140540585536335671890568173882602662670878785582848408497521616888805395369247581231574343544699638036870626577786355253348862945763363110934054470737218577604177335100918873408046650053708570644977958606496572182802468497056715510934049875670642809592772701006464328770124781173174697085604416609587624097256501144789815569906683283050540110289402910740736879643858494541333919891824407345984263729189507890402550486558125792110441477784308135659409969203758724515722479514008971295630697371054842190670585056797726735296038321797055259534367295834888758455217173791599241468661267220826267937989182609452090584917816420207439554948459117743259275156039181742922221754633544373066198970749370046545953149179149716906715072022688186945516320664585063539703251066373400609709531818712762127629677242719771087017753319758479728769231233207422864213912541752229364189728545489998372210233863234461393051826209546231011002022606164991093739232842536147742409579572073084362307703000902280484949777515688103772655328007068261754937596551910228429727446787359043758294615965220585160698577207278938525371928400088661773570887904956422507590955721527257715183472055265014185918811843696247142298481510453389887943514677825026424472841856074452281866105097599429589339502884471751238832581343204562119941274553437366760616087243980028146809763552552531964540059092846382508738259164624392499980366263384406203667659630453754095927564946689496608216831015030838162924969111059966411901940912423692410579130816353132090576126786602834733922826655275133282482886665734220482637121621387714963717217284679419635681575267917266967060499838636928802560050266718502269391399002729205941004421131554650488132806894224183644421672635061006036671726465007354521480072809818727066680481702292424247937166872911069180541074723878942725657330909971746188319905741802238764496607115636732166374041254917153323122223351362230051266857143752987550295984405816329393985820960430574805933176261071189521873778773249734584502520936287123333624566539826801778943181487823198580197824359745525712511044484882183913375984753368254380289466793493927993381911993960172121266351571508470921288624111765662113434219165365990654440150728808688036941981777561652589448028020805835965142179334354444996029238954512787057008176328419702844103200941390661872597255828063554163335855791286417243537430549777309572798893410630787993371492054716639769584024703025814078703707098624116393494138675688409309336191800402141643979804767062761880029168723281054972993599778752300751180301735504660186153305501029297023274495728432653241253600981160196859810885808545407819072705517994310942823588156175664638712748234101611983338042935967398314296714009268447100792340976427663651966867350876344477266021294130829316652970820692185890092076957055458382973237236312616447217691719393076329498095792343194509133926781712275814570842133855210752594229144693269659224034803081502568660814152133538051135713003728482945575224987071260622416595960528904366612045465567519523904415036986720174632620569198965425285915532750267552827665329265278460115447447328699482241225393930717112220386079471144243329028537013555434305253873542298867761705032918258896872145494703259213915434478808925260663381860735434129798400704624496040049200584633378087061940396145848748265067367430488816173706651146444021924239065982713237809401423883735243032588691545884521615064859585298065991800509231155881845168140169550015693596353592822475593785486471816388889364499061017475326834997233485197457156527821681747016147446149482979943076425417682736300905004418260511707685313055153499984974999872404973876585860962623089831333972830041051284447686874352919553032849205308953865222362482183425208038995330159140888187139417861254374028989945608950090140107254649593221164242582873082810297333780519765510327575247888167091601910336475212412176678639882989882095047472701783072788199725311314641939425719495259226822063446780919294118908355337579168716358189438898928977266067952758428139755689776284669415192574263998671294403899349618397767421475307600819335805713275588290185156400676415329047561352088771870559571995725369592111132596895178556661834956063849662125276370271933619198706538973157320084319356559765766859157132132462561134202464379038227777717735093807312524948707314226046959288414276792114097999343961352344884088717829652216804187390897209232882357319138199371921069201123541971788909969851676331737568534521552485264547374781362197637171197403906823797076538763619722094849796230881448907067283464168093063965621738321283376854203636367741943455674528156611982981660940470024747990310768173296342796096950062225539291858732833440600318464104646179846581625609031041168720051280847671238915059030016855651446051770114357983266307987704297890171393043459175288560615385623866375953320234517969426813606854291445615414853631963302114023393841299914398848812230269107785431607620951172572561394307977901691537659899732743621592772854828857586818861622217686375196205705452826796145990395341022138806557051301761463798968295204811048445997375067544361526427827806756332939405470583997058821547243203171614945593647016990770810620410077092460236908653336871263876314554604977632801634542987971832138786550983959334929857115435070646201695143915435295673805132867437767008259959857193346253636223096933390076548901936749067862149503482284085040276814544716534202391690859330451833129149547865401380440510358881002089793255584864385888914288037753849680746428337727548503515261276080277864942734642891565343248145229065810138314816608263688039051724022176843380418308251940607576112299263928000149219545240092247715286402019987053596321463753612023503417669320898807422439963629549337141362771551313388200744493310922702178685870577476443864617793400927474207314672330736578454640678360845314934429706050770169699371180700879073073620141278801386560071770067879929758355475582925737326038565792558917681892286566569622757569553749189218386611977925494325904389490101423776457903801162607808002981135143261454509715638631753934407203628424338799443908555606157417151287119986476102673433236571599186296030498726211726740017454095666554178155070669142142759478466663633037942327637422616581840973924903848636725320416224391602566677040122538806105301388345549529717935566624129408816076157547187689656182436756669867334488119759847874484141057149366801047105768565301336720699152568590494089580577281466835409167559901258546238988075150777834769167426633277422453442417886541844766610194382287322884113630234224059030870528197271983569339668980920731216680064675060623068328311417170070839330596312499004135133170499640992808721456501277180153351484164829478521964169896581075211631606051567252602610866382281158261119707653376191282068914235967357627350860126610077263684869047341141605341260702131552281730112138933213386057632004386670852576903822163045619328431075972887353962418870604685006373174393670581923549950154373637875526289431547509409406921462150214702384900317985946661436486304725491241876710691127543050118558699293296614376503180613335686242655158524907919704851999157272823256754977363802603619741317583466595789507257983735594708103022149948850052831222657767149828748374286223164631677201156648600000938702496901852500522971099289227034138790854457998059695636686286885080807535851465602633223515358136877927257040447326825031156521038790222786131005855111922879865947471814170799160276622691779451892303606442204163924379197574046328244693086106318992042260688065365520068223124195294141993582146750683337975118843907105660014613710569007410550776832203363881706908701301619231917524985249235840228794975101979468397049676437257003634928501914399015582391312023763719964185296623793790805624532442526187380061898924071031939839650420270788711946781956566851923435694313130898886549983688752721281518510144403992521411034867304089558775110189405631169926121768435982249029074878002729855422481938370842574238587045228554694298573995807485014989233781217592098656125568379547822731709886589843327749158644950465930357779276159913464921847385771385790781558327374173732537641984210711178927799698262436024623060377808094614702175784696826046148207716488620822935278421658589576738808962885343866472739108936951347208337721757927288726096155153178194262064471499022189821234169512067131909711644787119451836158817816304688479659158475393834447446990555859835724722415032194068063081941957737171025315254221299207241202986178272402631882569008472497870875820529191920142534378631770134848044423614972673913109882807831959150331975022378033555828848390526983110169199779979438902379756046299912678819852515069974149976346085171064204036809288389778051248660723662535041622577239007995993705754095125080753973559988456134084536931232931386442621167059813036873359468133951090768097809960530562039225854500984191801828568105408804459214759981642902270062312125373762334742221393812667500209676746552799003191962250279629551749538240527786688802354017826095694406170347109066450309662461021391155512417369775721780449323841770191280716361569325693473995840193414801488633540328535060235288922886882598646454242140078641583584491936323035753375566574695968901750703961820955110367511945490412036981862254064607628842856420534643101370229881932765286320252915646918022170905688025377567522178203092487265024233481086591006505256846384129226108749358365856243401254884102554140594973704034090709558606341295657762204765100293915585070879864163434480241886644790296219043874532876582531952129901098567763680062130023775591101002951945473611884307815748242042787825462770154292719071347113841559314326016459182134752143930991959784172051469196209416023954457261675519974847634451078443590907815162713183328577372619218371339828332133201409717847264899996733745047126302340084824630297442437119262678625107983491139181339758609575042734375805077143648699694722065129746504737518769037237314929002087481981447004631138309869522568403973933136341818076455596174052962758440964782112583486070154434304302746200948110866647201303549724591734150850827469207090969074901327022753117192141612454559140074164527436600804135689953322873709457589256258918870798583487893737598471267053202609387677061122123454497393180093231783686948094721877818089534602723940739758411201864083047277172738548606062336329079156836762198440277542507495010471040449439325308909869908273956824803465283098236945861424600668378034734534021483070444000970662854983226429289859484999782130071313075766787131081449419209334182513139987372060061809774668929545588823821574949630897643346583344928359395852555802206003853684529018701849831145460705874342096380425723268619448109028611257130737009509574996361833712824729362526436062807297405364204713666377657637312854465116265737397279060122867311995974817944612370043456336251883004777852294844322339704315176354800025016143923116618385969998833881320890690610906500528337152042454561567093264587551515509528037122849662038736015597890321542493811992282392222270642540318289658481424905036383774755006549150307525797130743071549051116863611213862690280008682258041643632305900381412609813032508125808476007360895152794977720708239338843542581242868324292673105545256300510377017489826341913104860784441626848324407602446054164987415053711765521109543498441476593431068956541521225145871216343220059064319940758778819330820756487279113683245239936360782293004372230502590576420302009142323423775816641100940316917634642121625532477646509449281283935126886826854515688694844539905387496943397098289168696556101054038436177072304588759209882245274722415808632488071816076677411161973671902038368211229004334248149065774358668316095143091469792041565288465560140970445923637082016442175076250748604740188346699105583664907836977674575212610340866146075893302083384569273306135656977557193930777522060230681686051014511835561050476128817389694510922252871295567381367154926761780369891652624937149175884761843826658351271974531119582588717006329328839439289347716412626276116848563314064286730181121433588976544718495389549466448845569175400252671109585749489688431445630149781108029570657238448006937997572629503055007005807784554161847203245163027217185171042941946305913549509227462163953304290839533698471194515406529558653586492953744118847418907824493131916781795801080216771030601577526176810546055120055197031536332439831351432632478993782932353527737956448621966945854225267440740009431251543627430918211286479177082936495448490473768714096842102188319395626361470085535829373017502952413215347415804567207274329473349279594352513366046352417983066261559549458509910879553334749351752782014663571919964321765441082670608486425209671313824329693288099034419095529215413240315892781354976357533269135494659625104150952970410942827405551716681874267371857457621569591469381466728931193283092733899938918977887136952971699774353598440351495504562151159882406679803293759787481882401197117508364599477688679569429104753697268736954799206483792781757808172821798791144872673606445163940424764835505604963319058772952705357822680848730438437177005400992786356574153843020867146816498966395451742943592671092455601856276007403471653315214077986764088036509579704144385814701766063204236640663328455606629923232072064192278417613369416837086035803308028126078541380550086087175501383497598558133664343177586908216174550254466410050043931867626788950880043799009245912946073630879911190496574785401378259002285568616599961609328437830558316766476204967411582606841510137057088023823906024918562716191670106444530499158952292356796769130966567992774206890944686224215939808673730830288634022185832939685926437054257928137334765701694463154533317334883749288917129385738560112043665722545141881375237395274008850962186658182038226516815660996251212863384411243389345929637199496871768199933120171403120878689688580296834031212891471373789347345412928914695853504085351587690168138239311479075927511372096380639650335232513270729103570404973358563131294511077823873249154667856086039481533624973854346780744635288957972794241629947480201773010063338636678237202377826349646396388353406610797425379662799483460064895410330290383966691808892969295352741298007431669199630032284984996667878473912163497107429239560362599951483086075354500079292520557269132767554265312733520590044161056865736600816380004141656182215311627168311604040401227104392155008936958313574940449984065271241215955460461521615826299768931343718147228014899599853979323016512362800387139612842535751512076018468236146299706364386280330752162778300777053140734301925481596821924488357857180705767824127218204803516312385985552866828264636724392119326740928936674366533521994888538985822042046401121303240078577946734657497993427872004994816981098557227792813279112745862449137882290057400308069069863973882704065944283878775868673778841347579825108573936530367013097485049718310368878190053619980189906672725199438024256227583051912973449274083363546753491909280764674258131471484772647838157059373234177989438289959358415128317099268946927672978083155359189072212421173405521403556488792837567244587407384557493182964873026913501016242534171212602393657346692812052403521389688574028325346628886955730166405248016988433036650549293873694645798716127288870381755570199354853328749115317889511660297094133572416709721876959336480804049633894569776385920536226354725159599011473845020091671266946298956136055008419153406786011849305104298755159947214623281751866350845832645215224115529168505492180479223385404167410116046601037915997031584324862790193369933206467000009245968769493865096921179507510984682434598773708434861872630274253761880715303462569765521918150646625650810164018616078354446783372974046944938816338380833150153934580764196070326632943422759918398128125278071131502624151105251627065418464574804206661705779051923683881465468017575343323330231434457329892504504997920765526546897173626507496483009609951336572473328676760745099023208217673019163422284599734984755782779482271147643065554802623023824261026762570968150565201155027462781621765805940264750088948941691321194924416680654019874982574267238777231416149871282211742618847858976709696094921655506481328921587058653633681833774858315664132472239805106064669002849510574363642245143155814868557849276547584091697722030691668806276512312698795646320628601351790610874472411831585739006367905037943782225412269835641952263653392791121000313146193547787798920788120828144019633141069781597951835600887308978507762732437567383624030860125770478395471021239920166042453331714701309327108081421017538719985861406384297194340231625456745858163693132975508149874659214476107706199537321181325680609843564458004811723354479420979867616453912499668583703908939223256716464583451837664469855911585488060054434033666866604507961148443513347305466026207192700711362771472808420135704134536876245701057574466064524624420217864938929443505079401284466886491181741121266651409238447296826222469419821922626855053139148821854713193062942432704631828761126884805476314150174782605948970039058133308627924202654980477320049172466350791108141967025719665307102569008715703990803373295922920341916786312165266137105418627723501117421558799030179675437245062571670460577080402278054815613745208362603691372577665375700278849238613003541937214454719905032782636746967176784080927662680769668082046255878080224492597234487476922583250872890022707503411408422124020550940620130637451608038186282107147701971864131158711790853068697753153325790677127499782640798298521933158165780671943702811006852092903346694939289921402053237674348214679834473423056015931498908346220768824572720169691250113041812649155664473518861106322242841742112759420360899702502349406482063837418577917904833835266074203714809123827893408779647241272872866487343506041999877630272960725431513439531469882502905649077618397197582233167918908800872891915680591463526585668114927812827812504633066151442257291385454529164024489313673881265177008077832818836036471214780304278675440880383682058276310080668417480799263754412879066363873326859265940033773898380731985636636609231109214289969697937258997317163300120338293692401315624658065081551109177564659873349313303849219018002691997718509360404030501091407945982602750634760447601413627431134814940878257525967904958777323502665348418959760198151491814092784636313885424090312581715519357943843877654318082966588054183567825387330174972637356429028555819239316809636791990910006291631497967442671475990166745787099661127597655294113199396991018973689990831404490584526735000739123286275990130927179251464985873962333170473727472119883877322988902512744571671836564536819510666265476565158888616502473550488495976415618434291754112471767508082898428207021079763212228752568384506779577838052304015686740486585850303747273132806636168954451394000985790079409838149006566988351489866648235575745337830565544765928400711205459866237209746995135623346480490623609578487902571360244415486312741739840778462860450806668206121010745650388904892695670869882940170202453576016582882211364187882168048262784491694402712904848564547438968900969554778043267208891095945982617015273850585818864743837941761157954344513786672842515805541335071317929093854430019741164279482262176593769239511861352711122631410614022140628960487030420851348068479254564234832109604887610789814946604982683168054340660564056442256335280726907522556389073381104058097207752013688035615715214785060088183084020492660095734537604179013902438811225178973270056934402011287729853154130357778844427224631897303414604886673289679516024916577657867355099787230828220242751023766488331434690060410625829684907013209886073422703802198789965810082773621783320752185048279425024193740062827249166869643192681741101258452675282067694944768413210394512139356319300598554316021124543103551093329252013496028973137809299279352026075689400054697236246818182656629053818677587863418395423861546777279692213032696784941334445915450107258729325958068476483666384624359541628016028908253275773996783137167639602727608578351176005557545723431787215748245620635337209692391947741712363500586716137806558861492523916835829865420812552996458645401399776652682502449450318985988658794033945917123344475807487001680241004462499646528554386457871949157157960535941656794539439167027532077998740809629953507410533466068471132628184147597724630495055196069983867583393245614872051098226800506135660796309843534642140913218069660255534034730148949973905223222977588427828564149905391402405287772561210258541759267265908669873707225850591356630819242460050988712668885033936790756644886260840848835206188571887665260294012657800739094556962929058614602901469606521298286031775933728946242846678869188114381422239463902243736008606546928944911355396923990829210069105178377562249467730434475757903205990209077902624319612699539572887139898587833257691004604170179303676791571905876638784754248452877504129943067245627111415940592336143858202399223368016907875787585083458597613954637573858585338537733138804688748174423585397943167803568922697886279026809662393420660818537512856684825713675597350605423547922552720459152747165360929327929761797048909126327198732385493277913621062153341697524687792587662205210937940393494875287228894588050798911289728153543342864449442173521364532562250243441955418449287247510222465586643120850897710770865560386822134240012312319122195767880035477131816422824423372833384140983823242483988367094572539362888016020732034989823319877889477619624234498518169153053923661356531023366159591838210969783654754471690287464210174407542136566999001725487955459668724139862107357244488710546776108389048302996178056330207191583123305885779705930178649601857605562127527861632626844974078970956311401104262155927138625471424824860533330319016734264779892354087795470890425589651370862222306838596222855001722181153522957463156925476054353716406886432952682143172843407614785615635054546610357187005446047175756657799129079625561890373858935651725146677484020430364329936199463740400072932364523887786140858859137348473410897045197793111158643574320572261481861627390208037459265205547027396655039477167212858577336688497353069511527026207275592246421665821686032623507417255899728981956968730607355115527248409954177639606878155717688216068866818812433429363714054216538963047136247340495925810738608643976380824486571395526155623099139815090262584533195220945971004728161342605967148714447366644723383062079999677909751901216787199912288665100509900205276868378501000108320556438955792381032321989125776348354833210631816364642360435076405747191017200990346665973552512839706994122583363158038261762793672074577711771366939528022773560479300557534882106648479425135727748989518665247350024263063239257412048116203468705737358326896502442920568216429999420959004270981775954333699883679227275024067148519542263255790957540657696306996576539816498743201461739085359301398505069619080090869656289917382908130491798147650591718175815688683074113132089681635096612707100565568697969739295153270007183861252377400809892676186390379835443741946186069694895011682404309165796542229202303086531876367095718130146120536683486761668496948918667728909442494766629046272989624403784904263777351544206988349386646909808634942243590914413685332670511827431020981201739962770779426581987163204341486277459777085548135696796285236568318078091853825418357130225857209484606903285885557247656556071447131649017849679047717024453542316225597393300917867243633604017362130369797665293467262237725443408600444796771427843247632842531926325039344152934285338517945656090079974351181136354492963964612992926468492546390989772894546737808804779787153117095988257492031134071655888320553602260778347833828360845455016155181810724624735968558692629342783985173286573996072964193930828014693136892543055790252916642452894324068288131402999938907028449536243680556196165036933321778798743993208655318989394343815633448298729698686802657278043172500429905975992296452478906466531929921520633675340293976798226596514013775092014652469213414224291995017207898875614009216863776763306734860332635869634249438561662731229842709779206938900916084262675650618120703200027816332161337212549459529494093894407635255974202534578268513372786524013733395865693283800729746452530249633244897684892799289449545191463059361419003837122431012547560410011033067250330842313068325180578244130717305583250098519756354838872643910260794908665855742945857582508358578736158274850052106931796427061159075071382864667788181552106419364876428091314164263209733310194173757331254792079014541016774308393716144858031775094988050893157789647653449179794435419313219053200799040349955694638539060406104071933936837795270359371896319469265035176458451232609293646665120298173050443180160763240642961410963571120158698608371279368046259015525313623451031848269976195687830157561124390429136633905448151322064993769765451128815011490499233217732629762118073886132926496406515226861333420054756231010815530127846048149826151351810250582974656243451152660025531934732196165749596153810495524761348111693102872315419410902085582078932256054463737406841445066014247980018806857854202628178987258568042923732963339453151863106490599929501882138531267292140456199880222719644531121114492031639473740489854429862645455208017113607024478631689345764771303718139054209331144786050827752875062680490838721544564642947216775424565621162767254471203839348362270506489624201641377699562373032830139429548101299968796787127352161613909371020541368522729168861087329066682768863716976491995473409580840485368467718861360988963756758812305763471845397070580491600636873644169222865704035380400398335966885001173275956519800631545107551446755089460744187531664776016645919786565261755158475398113341301642977291114449967153814725925462665302507410666572528106925554118768941282908880197587292440596531591055179037568451545565864409374294829888889906412682259571295473272281778388425143113663719690208656152553100519005407064673860066209907395738091912822819673712912025580158538595199311415146175596544938427606881407128565805699945387414926497962623311840200543336951818284540552298498428367735614822472098404855058123291108987229920702993347804265360069754653549267409147014371451461097035181403708072255346849473693283948986161822539504107776644223223028282994026589283026723113558007314472676772943747222268443322352225114763937884763856865002404143515278337717905581817201495978143798639945852238220753946978849038231977068504401006778984264705768582285175360907387421325403898809431319554605206032380745829052321668527319998053521700710728953874028648938293434567271347769167831770605693114701698150374348868502501653638007416142089386175899761395307665348744882773639615393313348566158883344850052986158959730320976569731230052681009207734837224976163997530354287782966323293320716505445803571158067646474961235288697439882603588063023220941793493071687053712488324198127546905914081548398768594315075523540338611097247332388251183064343973229383270136993048989506455331674456402315259746671241855040984180265641569262436434499278446837709670117864602336785390928558755720527404584750928165266297436065071383489215434789199879597791289165881157480834945949113127490290631475461849248618483032894782028079185604155643619527031772127642270654583951681287237447568067560995744464930225964890482100695867778255466147075208286943021455498578209119719387752327618912792949005658689413482584733214956723235157602703470347857962586314641695515237626840458082277674476143618600805466111270996797942005617406595806458492152265018207505233216864118510899380922443061618037123789035510718458505773660533849101724986968162364956082638824231972411923403491863703812697186081238205135257571509006662436921528179583994976641765448144170145750604634882783674458855331256611885735746637116773286238659516220608199657160944816020071066811805362816430450151916262327783665270783965834804889744334171206564179886069816362220610918641026225305238322424612740907877396743652347534784682293788810076374556153011730831853588753309157026237977665587103493746081389421819807606351721604536812360385577024020255630789906445902736010046441889812367238410165738147746233530082589069797040076474892175880602517803158504845691853343867198741363830282274993579338995167028091908530540376034600286940474700883119411271887008974345540954305511884447752480891496549809907056454546551967489464692364741032851366024582630679476487609139783510086196174995370767286689208138672865106746330778919550540783576788385420966827320386872998675758916619391580170374744379136644847840001008274397105094611354691057079679038953100674817425524433489400542476278171893623289256319762640302246092871259392940906569465226434993507076546075797282305407314704028979509626504040742452513617621528604872683302481666696234581178217595325423809060083300293096492251312604487634585730469039423711645644830272843189260524582336325336903467721849724650224471256652055747052312064285992373954770526001593998968081645346059359632319350326671394245106153289202238159542533788614758769287958829555373212994774847367098004740213738218777596038129574490015747200835770838961828063043652660061009467659060309509715420430553036240665381036078814772324148195325979468212052513524655767887080782070318219866373312114517783035904012900927877278727388389864297526158668628417683968361971730263567421352503620358109013516010702422482492403413313829237559372818500469464554022428009345726700881601259273278592052233959821469805482509602947080870802743150177591860841399070643390110163964646391476397380488370219183821091350358877185530652477534325578353261201216092225800453965905629775857816196192778081616340651086126973688361784857665633109621216706784492673896568038862614189297064950221542150710141609853430795577278522718120388649979286150563554832004079765338281617619650264875855527165819205956208687340427832824938027675467032384329233031605371159011369833669226317638488818954708308439651213448425966363476825827635971263453769955722727322706272221565896288502513788569012560610692168487935372427017439597061057901092627176075721949262868567879250356517926763393649586763984410476376524897038005958320847247099268638440140659530370219849321144208474539401861379141964673805425281063037657536275318112433531992939810448451844411024808100818299827262510705365726464259809987577230329594385589629745248645983182352444989954199828981926460759478468784023578331332237061374324623864604497189847390684730881836226932705426353629320086657761397502093764138289016856309683732450070258515603651825953709904635700169327789235896078519980544862426002330519233775353610604935115254813641217661564112845356926170062328302585053428168116029501382226370734250656414622459430057986589241515469507389117585399187095621622102036959054968929741007618882961214643252026169940493928100404768881843655158228581629450828449061733951759292905499471219426663406644763976427523609555202611054094556625520741488274512131879230419118965168875479042996031477834951756470333708781236949762134765111084626841574621165741808159516668066950187531086007327560760104474438229502014428583720991714456998645825713977499892091459276610359133697732136087151774220677332672537142255323025523644727017348854724037580014078798705407679305915054276404963984076959711322484946185553598903018157731105485008194730334691354520030810504564533597687048032859772234397813606521312300409034222918468127996729289090316994956192823708708403675835671156788527643353738007412220027647642222984716157335430668776509453349819964442727908485409999942962361328912491759642192041791061017811423895434304354245979347621240034029014869623830910041534936671671473620786005564688769106731634086400431849710734458056800874308458680192836415306018588511645520789460687320367298840825265096676302209211929371945034340541509472679240322452547373500387653634944298908410461769530268098416236900625480452987472712144265831392588389795021869878884939081992787268491516332067054145919373174290537078644325717559773996565787503151560919789895319334783603391531122017931107818900665504634571823433243302558778115313943381805117455450151860636446504745119273113126594794155316482869423353246933579630996858496473878748356713254464049241880043374492924428327817387482746145846201186449521262641832564409513361667225766884425636463498758870855565811943082634621094435997094892926283275283672461341881517904083673586713708626612965872694815269645735552318773043601280796733464746785941387132634029388136396655241012886264161555187788559152593270791666115359508731221475001716329368891843489781488627819138006196896625075860340964878118585806882530857220472675307817095363800860907342780527900831613960337832290779594573441032836998161993137353217347593190881585291137323464888176278375435817687288927911051246424123726261699086480647226266944463203520534353581072844696309257008386820411052808674474380114602456737324030358837099233533464933446963705438186730734466277886373160727734333392021497995079690883036288530360057645003449614381102239126654404767081986218736019243896080167957124755786193310931915812717925578749248436995688172607215909494563066533493803183852168864893851356594165231373799817880841902464955473508365789407298807967041720329827224709514460641704343513352133407915298440886689063604148768290301756313087859219913323479515297587593166296449848244965253753394173650363473095348117084582601187067968537195347665123869074242629730806813417589769315311945438502972272895578286686742510362388265672657548179489101389624098760772262679752265140360626252863424857041667273309961151716084821960314125697466300444252950250773590007039852525311591140887186069191341081295474099045051620987327148333874384076663044772918988133128718340374460441702607238986203685165758746427325964820155545712362227186059999254910075100476974697296352927324421402548097503350772651390836512724911796052662814182849938833377611580417140511590832139821754211678811048800905529933327083886292829621547881790736480411747542737311683010450328053461537437116224409490686007482700458954713013016640260768214049133961279490999158471619830827397304708089607796222965482710239039403590836467279858887933125559542658397169668860250690281947960344524528160340358656436200822358945605418977998566858777526822983349042773350912797178899809184973177611656209181297422549364932285155439981714918651628656344316247937744148506712491140936908987543602400612196237565650291568211467286840137215299750599859577990237612644785831281638501672085134376617006206513153426409160328164839650684102957581344887669884284956668381648146532639069342911670423271668581601450157345554142782251611212010774096274449450310228955434062172506132889083715452077084293706509836210270078435817152517441648985272736920656048232236914234783024970738305573707815114080645044088969338750840081079123987093001841819174475466663599400793896828979593316555300314255459021133456414010174546012391032467816772269282895424012621004960916049076144258481878875890327695844730623059016333123104535695700063971255228044572139894578569034911304113869831180286764131371238629900466569641791458160003507865653569118674741715630515344747213351886809732836238025445240240227009543061772734602762881543835009732575810070547215927212086312850482349368326258670493514968103048969056252624590616349334040755595916479920225909031183398180556326170733676670852422579330466138941602598735281781776056881053092498923881660964542488259846266607061040123804565590844174097550122449250552608370381681038757339201187784789480775002632500175719654896576329348274713152489245173988749940213335396644259165515484777851872086959973508648353434068111164985475891395206505085810645230697530302161166304153953761315887086432386181388321064310947964906240108154824432088570811860209183745029675323493606187590810176940017252741561019497489551811409722803999530284136772798994905933871349154442453787697187374784157720716076912346229747020803978860363053310545201425320597925256800298537268716009625732739372339288827580181138458776313216686936015204438721096247345097782652469423132304118683519395443038422620870955582437846969687754165599346192648997631353289716269450524299412166720854249211663503204664556434680649271096172324173840081133440662813352306987550686383900027019777687942957777097490372274303083800050977650150874149480154984313087873621397041064959757008065128592173068992356407755382766110206212171995391050342238522392761698197276036262547494400781978791073945897711190030620355669590719416031582964919263403707721979237682191325438589978999694129045004289583174497084633497978838755352026695448694302828964652495619905543427841812884001214024327505459603473137660134256884939169206802296040916921855643546079288301234801549739441461592664073022553238468508817336675006752412893487276917230324111247550267042252166792890260957853878396465974214285701425411309103341961591421851271952704495914346274980200572241296195266654556259653645611331251055369879306079898158849808577421292063492790798871741895463776540187688815078700014515491542579645749225668725279098401081221681188786870480216637874029416312081080975112196010904549670973161870749839782669573119767793738563703774676287850474741949972704723707689244268251024517855573930706187838512184823540957621709635190815627833264386019716685718997804310361635878328966462848885797822764736236356872689887865428976125082711576630356828495905617813001029266576837204384131045216893728916828220887718068983214951277778379524026539052108029035708099415662818304423275839422745604095288444472314908435680741437189365112406978807946206920491841619395508476435478609854948751096990902076598608279609394874165813535367110328955434275604068487326600677991959135955929359105565562444027529464325216072949982428224185750876064442867541564577151024444120460590128388561672303438937763343320499534900014605118256125874588208630617638236618653842716832905984364222255968940908662205802393646531616873671289120071262640671117755008128828134141991921774308001821136378290328650433688350685762619768334563493518501037102870519295225756476891653313808244735474851960709621444981130733067544589037917957176866413480371286935423290056249906438551060719487761506841611217856057820023139307910872849397041546849986438253629470264503074422456904514906239096205366586213877177368255545505236667375764640423748491300308578349627586163673497374135177283276726754998143430492307938439610240026279130702440076000731978872200276749254111595373744400051884164413424402517757331415925911079700772123455389799783987334876100613376268902832798519482768539405240213005221438291373948677961937679760953455896139625720762347776168514356377167167893344191185081248465223847169083780379235922932548149977783215054074097929583689089133669852256611423766918244501440440817948965089871110135529775600904215567100774964279194860447993832754436665452297381192354789836039878065755357048881741278479094129494729453604038043438166998804772721588905669675616898705451829475821186250164314117596683092724547126888982156047213062291105772035983444537695607420109279786589917600594134192807358553466652905129598536099226224007587824259990362681058614301586513558660861457998966841096389634667900003596699531991182174850586314338112474774079403910629353269248853020502169560052365877055896566824784149083477636143928776182280373920028579287972455859920716125801773971963756709147062479352647337556478158050882296860081039991033568793602839901204159118523307570504582911156373754417848579878282446064680956679463714457862113612206319637811344108090272898156213880855736814171686146286410037893763520840250121745368779932499890359737322855481086565470617348317316252588010682525002432539430696315988530397742314089265283575528024098180907295794150747721812343412230610061900506770347982345710338941153608192756850973669417756340025987848716735970141569559274274051889894440842846794076183158347004343861242238471591235599996705335998432754769273232800373330050183142845577360265887226338621054360553722682415650822357220379931649153460199226155381098908852108742433303282397010486403526043380248310882044901649143752402005225757807644475899349957417030717020344984031873509668725022231697249280991260730975769907928112256908641352266911688538540894871912290160920866173023170605000227535550977360799204666251546485357679969210704909998668418050154020893766792511240992391153686674098419274403480892011611996870367435970360561573507249248557129122995224739271194580106252982166248371280402108687826381621989534908577473024991401749835353219084287556791471583246917883715434120890157560256905498636991482722070575262980961739143743559716989591716951351650867394270668888015669389791629011770294486793949208836186301820824351655871584662902130546517616954253689827304252153781177933173600428450165191832262649738269403174883373618096918020056037342629657577957154910158461457024820921211432932639132871202352253896103721614905443680383562298683794338205211849394056957305795195746549586445995688121325643164967140385094812381843848701409028680674261938916608494648254936797181500372780671759644974920424431731844132994928534499771938068635829970863472975390997925893180955093935937951199018017038221763383816252588390474453956044135314248428537965580323119456818578563787516627868740489824044944037852214805282710144809975381622834101352247027905690295236642761429841097357617671263942471433985736485948821002637522218524720986874891182503489162553432032670862796671839578755901333350837659632973382839849646362470845077842732322611431847934165927863322644827475140655183798553636612544970410661554641895822470547746425416258788008255951417015899112322688171428795379288769571399809879524019879866317483370164295089975303210627622380341889170009273610713186533441395198235046334902707754280488624478052561860276656266410503399077107117416408579897478084816692568881320193443937398966302840367301923694755744536235259623381536505951983403631226450009581711046459449073877005554557454209094802865350242639972140655071962083982094043062634655932624230765445603509145418497699354832009795189765355096169655448877342394714657055287824420606765209600662554160126904061658222298293345185035330201510289634787423880092295071253732396776669039050365372793439700815987305223299545421408418241131831416677287310484600124855296072821420345396448473701308694009768080336273739696476629369872606941718001881178172270389171983107178585957212217278606999751889516465747692896834496214195656500854034772896480609557149673160175359071184543735824279452046771819276171995195487996157967224540828902132077745871680884793713997200097946574199471268666225469279925415227799737993493639241359739236821044923890327311674930397323924821663452936466004821579089870029136439942187943272037432189994375492410241803759409184725864683239554299451867219448671541990291820039703900613209550533023043674957454502710483310283083763194764243047126971656415565935197988927604600294925080660757261089331165013426105076711762523875337277077063608625061025655013266089960373168311257391650780984049543083576158262836432613728426229623222084495998127160638327632616721146539890313010557723216230470471218337503426079692396419953950582267917415045342720573018662219701940492913318438338884842287364830164610250335421876340639181356709626257496884659786289971265069781094629675733771273793529058468065886838312800376612426535569119427820547021814865382773080167271523186206053983673705278033231570338588954563042322649513318078449859836835491731657417428208725569753264865216388475223624254824448007971592438888101577241794502781579289977335209266642948153326801219023950470867825678941023981220021672176297894649482568040799750759618067305953055575002890971856948267694026536118071131731583461046977538107928978768923091223758458374749595982755338066607103653420384555024577899765817634742897584954293735122444720662678362171524076780127930700606270022272869724034616143921045798799976962644693224967903961603327397049303238944748721356370428195850642128994188246628235394415286175198209947966870538148876143751768256430503999210267374962634127724281115632629035668096312860785183048554230308395345686367392202102459345807330067120314185793966419109017058126958230813188757309292713103751417123406333974977335478459796767279221578982163412539159635217761645466151247128711816942173413653455294892501040001665457515127998435635045314123422411211904937994412629755967314733156543389930719362098664734808368143562059968965495078130447850612471308890932649993235374769476886826729832576696272799016550252808205956200211602534263809411191413272568438272761045986666683959045965823042314747372550301788950139703398562997120525457510346234936216992457857247053038911822706893510283275526699048846081533908219974226719250975187716321943772208950958609930796429648187288002080691887110914048947350276966090420783935745042802940990975400994449579958632675473878698381949265241984397476351670155129919569525758125779000997699264357545676555964335239606550023051379549963217029007501196970291210902001274364726132579261312821358256027070500921378908364654929249584826579480430771408744624981456849735913000451513969648111505608341152442740182125727799950751329508391269836210084154254982154597205298774140400582981920670121547776737585860393864821229238707033153806672042669488511623240659655639961810409628022055449965002986706874843495399687340962847418748669999059492940842191003350757314590138744875660748577477423180445270650249916347577975492348690321095681440369631279631056155299900039671709204605110420918798303503903403234073348919576519225661124177060699765921682409897240563078116492255208759698112000548902409581687030241235892973372376339335813052739056696874839301822307572727784117081039424644834557648317579675564324472113154856931770299316566117616071489701725535120983411949039677727493056850024751620848846970403617767071896770762325558857879311770714405275609551004407184864993929426480230444367355284126937408967809120535249341123769459726945404805087911752827195627415616939743902588218271333996868810457483375878379625407551307150207673130583290905405687110220088606228240488627162981023513766297628832827848942945562731829410677909490739814853680415591524677618300669966736584323791411455979739198680547055574389931575008794527273083835696268206662340394067617685522429395733572474096592448174333857954400896657493179158532449261334581411759746178795849387523369565765528840481286863059557506714128175037107032930490308540089552582539092593781653961308501423563508694717627090878106579483187953890736018277344554837157565821865271564275385205594907376217561173988109799275320963149814822221984922453831800976111641130690614069135215377856051883593774436019155885685179215561177730211796627493516430570577023752603342202073186839876029022671190839378371540544741984840645805564203405084627340506865010874636901905940797985427678023775956605687372212249436715570413711674950831562276559250363485608896767129062967626131583656045358136895604242451618863558948935806413675089068767286362081019689810663062710661304811304663519195771232309620774974692308003635330897990317451223086910565780772746514521614198403296567327381325777493586582408811185948130310728230424415437438538925068689596757064890999259933196775887298403535374280154826758695681325217004864645415510098054348239222869381668636465148631917338425074558539164656738773223069058008967267688506869332880680103308213362831505890854441032691702745649816844394422819976170504913700312300199807123182564599791741249920014640668137689802089854900579067846666162954089671631164845607983211778025021472073495974162499082902438054030950186370233936534771087476887586080835336553769013346758201591095400980190221549164142469297040532884042745685619755975601423087502008662352666333980128078923488508470419314303387073468240820239794514777022898747334653140720947271357718676852585576070814605830152548219972191326775817558928240323169075381298599585665506129530671945934810275655000381568390582155306328361576551912951817726191456712493851250922510379986942656268333001987400789574618409293422014596397120341992949593743290778092630936986137582795472088461272333485940821310776633025255771107218567016507728047048955044062227429625252590071444870059385394048610529553042313041772388491552270333860996980230390805364635570592230793774375984327340687504333542550267232167306584491779759868952169337580846866465931959636550766814789282598692583020160686310101677112791552174908054217406297461788886463258774183427158457476269994716422140768239651929640839152553651417389715895452613068829322011807844011826457683775763349152299589645035243120780063853844544100327991859720264720974023457473652327669696510951976425880999267318288824418827343371596467939296451879333493202630676583822021473451622832305912290009803296753332442723541591938308374302972512717033546953960802608778513608017534033042407426039210643212452146023384004108016976656311064728031901251584329912646625107724939235899519004591320946316804743942564875287312550055550049040666818777074503796024416373170571236562580080020967229511507403066703121115225379857533660976743402651898778456019362137607634637599638855803777529090433252692513147994021935075382313290629999337051576093716010937229047607811200000082675940657144306453319538530321770978787879340052965231750629015902234532727434485011125869369430594791095828322160237692282323409097047616801406819432549237096050270953120504095978660739184521522787823617094649988907741397328320555380500912618922090121752155670534380939904362611231795347826965476064610804488523937397405461262044575049950302368195295670313823513597377846619309502957871463496687620853271333016399855630482619938306552706791284823101240371850089741196410903452615598263739599310926103606996844124980602477523475054434966324048491963471758507630833165850988192480216365640830919875911456571983540758365471227580755138747722997684898447192261119719720886232314889027801257840469571673864963531808332553928925359720820697813022677155513378808359844194990360825977467393672552602130554512183224131898314424285278859211081899559371899122949435101511877642894861024819938390579914813946502074228709087008037051607085369280685725389887892262948172051628518475064192997036277022721569738868365587128132980297380471705020420570962353218481971731265235883515390108755170710164973614093718366999580428195718643873363505242035060991286140687905651142273093589684729950588994582438106438880256544679411200828227344665829934668719461513164127226836049099517741321947516738872214898897554567441282108451515352899694716413940600158913443483428889600777072968953046099463248951450035308013907907906013611969268708009914225822368067534737812070648133718965473973624310494890560023185276451080326240383136599570617154420473954827859542701511164066753050641172251326615457843102468854575858273198992899507523142087805060679468271517500605703656779954439833539899104860645849260707940548784220919369597992207232811377284116576276156840775662561403620963082582114219086363154517052001778183493123429673661292814181331050394213638399826388783522698726537247749586250017833198945965384034994959895642385680592276996398224498926397292117061765420851103156040321500290994496326607383755248603289675352371592731244586344543390951704030192008019088232413194352258452258161890812793902517560849254582587138970571568788815265688686348315451388505989240940445581220895655152829163670833754008685410799525600362641355759522335904578426874086169012122983780323588187458080277172402119683556001664159635492594896456076589720045774223449651907545903315796487077712440736259998958449253640819955225682378298184976459681921165698793205339619901913651070330588375947758034800361005326657841028830415352977152640995286550209712514114791340418134568870180016996693555522866410324075717919587034597460450049501811509066346511591498583290477346178496365239653584673243081807653928451344212208025865233124226031993508586841298529089145224140117702403422311344621578194052909336121694119139941782179936317651413777205794054405716327997248990098878812946984738495147251678674458416254509813814253548339484041291981299639890113294797187722243751923633811204089507132076534858323136136950487263801444199105072079770611459647483169958055022125126635765254304112224198396435640703503168571894839183214700728971439384237068490290566827842367904988627419206801387688248568227272539496476760910881797187340062246556375266677995523880294016213998298727921081975974006578247707631393430964179268148242619403933781417590722586715146288217639938234292732968665652532788111253206785457591326485086842837766403586528675348081192030545891570986902653499198133758366511307109757461686134512935463960731374413023366745829229714482929903388267770570771984319380760586703788933051466871399296397412707202576472728854577304674753730458872269935813920850711376842178149982075291322325851984046587815840477053034174523041988306700599904964560459980564760629035794718264643276003393562105516597150478474137769621206055141637302123925381245432191711132606515548251807519193991110585132087343718174765700007826163619680625366441745706500117066489448640142408288155608708684062653178967857094373523880221460171438491541624337506965393841103984235357325020428801832639933475233013999080085223735941455311412373107405579451485818175391778167720615390548848204398299915357621042203057793851346488838891963988944969275388057214934749868477052697281754718543014872831006675414594012392869066757815513104975280886920407996173017475305209279659877737287822004207158437552840182666360273041541651347594394773124836718010938032599740769296700012749402663087336322609738290154861263385487361208125422662307610945238904928183645209521112487325322132980187713848936860979806489971117199286537166327502142103913724664029156194104687900978029415358893863941082240482938247987839039300879065022420264007065117311024119524040993378133518433391701753670154303448128865837763636871020701064036091156544252414675953807768206206672623374698436923648084811887835142580320665111527941187905893875859099525233840654374497650538734911950068243718273598295767692145672772072394190623128113966401726195939509619028469503059869421911905010558062670228025963527869143946341258900491115334765411250783065775136799116931243323423494282550757646033351921776275286954674726353731146889251901256353100358647962058784541683496786634412771983922524659250532176190451873927902661961568969653060428943825436053374617072336447750391999981289121305139326096632614282033222411904773957432735804917617276502511600406063648891138412214477134199163137648895676056013498154215489237650871067647338527951018508647852384875767404025139249474023792885087379342817275123051135691122071404844931860616037955147947371765459717360531923368058552118839608087439084459058348622917746163513463273088544800663030198766425698587575397285592379776535377325752909101946247660890902967726101613905384159804685611929674966387109933637242435935620232293352089968937550123198675778775945161572645216047839394086461651867239940619833160658079632184055545631701395523264713407966288879330596719731241198601784271898755947885063394335242295420967544224920144278584272425462463090103377675378402224478668537617373576003524293359168527216828412186252915006738859370716349818103097147496871541919212211435683730058254418162299083558303194743420345409811537691886437669842743922149797836686640352831468574571137160414210377727364901365522950414044469365834689505239207694195056086752324923133760565858604824662379308861236931322500308381876064873537237030478089412776516345810261069384765234859708396503984954817200135248766676863774372142648421936747006729701314612149572667133358530408236544946711541515424205372873146552946417167147613432598863388695786495725889590325258884836485117264364061316860189074338247367059098492294166177286622173332472649614139961132362318713979808530035116764311161359684084604219247779295674628215631928848110624380313918626503596580746052392269433902719207367272766461804865636813108672833526315597556100900868977958204846895890140594777414168344415382450517390593682331731071327436848748455804374325503606577862653671139869620333974277284266965532283467937749529620416985046429079277026205994179642805688633719838790599331909018013125207411368674160848558198091848186337981917050401572349842756764177462243525478130040988315871054317247244096788148600705298689824721653092831368793154302943342872159691293030016100583440190351970435768771514640817992924096983105134469999284072725699198725209688650273057916545489533311941149262806001401041070052446533336685595067821711961173447100966602868834396060322181255786696306887127715209461599547883831082334260334111246347086578294927574821661628507412418149688666269541916982946757915290017508566964753151744248232224936721876623796461315591233133302747789184779102289016963988928172399957052586146795137903437261785772793398367058289445996267834458157335704031827967131931724968682813339544671961127553408006283758517651583074020281176200943367947978946794279807297146769662441632447333522310087106473692788038461678067069770597369070399230471609778255473087913586096206851363928508694807728712961505642979760660670079624243134665520564303068453877038044267162763333031530033691672021772243004314212198782248773014042728843817807403730062536866409937317353987218490940978561640560648018326206669937905001889147883238788689310475533963555588153343479750694807223426219686271491822652135042287023586104634078469316171142551714544842420058420847840398046751161695506079994136540803201577888099040197357525840857350742148587636417399101620542884514649985386884529635959419196346754675179019446241204449379163471778098601343313177641774929830866786073769012615530974928107634965190250769518782341628050521854377281785047643211370091678181026659553813932480251545282426359768554688026661929964849054512444529550087905386930237734705231255349709178826163918348584427027769682357386693601408625784893429934396501285164667246214873000424122573770918008607382884750893628650789183828181637622174993940435897063521526462222128448132061847797595013701290247508355393990972560949139960592060774864797865178619132726452156329432311764270097648612943019186949631592496658384517141286447685499711163867129166083098693139076287572348973871958032516410760622442927208460358896810748465411478110958033870098548654067221974537875108350742020385588044638112738273498565986563414122779516611812340176985158341312765810524604998665742485348961681532328858024285125592552877002191823250558517357196308125824431362689664886944353927882971948785044311419482603708135298240293356979922407549085538732471023846855959055315099415380758657485770852169803394999580525803135526319989830358196424561595812941760913694505971673298663024654598235483428347220166127925821461395634752701735178057653701453529076145628490169082908516364780039063285693724392890646871243476775031738456928078951760190306479328998863100063837043711467513001340221323164604888208922420819958282189949404231842733962949126258267193243934018828420721932483618071750311187066640701294148451453701374615182186390257984512102608284181045630424965601967651725754200502882830386915445963058591439031224495955146567021270725266607814865304460142431591725649444653107088952775198728102610814069867538305228657381982873901741353148948944917957294403859373717131303696646917104285537854407993709746866587989249451746205733950414755013957863951952773647756466447510684847714095180446543010155678548187049759166028643826841698027846115430444757227725495891407537099012378076217389195742073223209833988909284493673074253032372354053504952016948073614056594020627254505867507001947610234535892210690639914363124380658191189047949559591819400248913929266590102337767881197140200044240873039009756535420918579437992008548549982706962894805900608858427191885491527164998204326526108403310555984205931072100606189379624880913437811069901495100230684518776699092398156955302647504483402150831702142402609211313235242992800139604932931362015834123010790637133329971792353161036407879429576533317145741051786741746823049716699574171159621543621326898499716821533050896591425998695994897056361087836289682106122500629258935338504023148215819996303955627754890011357196839188944541089105940520345911186911518371565412694372692826075369103938366907828956545798731922333895012289251762897602027096275731562690661250314196590719387752145135214100229883627056004873215538639730560249142219897728044509902971649140840933958279994135896912413775465569030966596734625617250523976958689673251638990671434815283934084863696810845487877007126738816152814533810140421856114230301578709922081983530699547812373256937799073649560650941297722923306633340601493711795605114123068606967371233724008283119314943727851909427040715943445958038888921408391176428570596988573450182877975218290334711137720532592700709149424045773899364698512291551361817464206127040864237636422911477721797682168530664414364927739444705866508943426981943232159678392272273379734944621198479585152326220751126200298866243716185716381049458831724938107182063100305951925707178772643508210507278341043542927304998595086152463815971250683953166798101142596312576701807691427689908243969225192488643207660320729709812475328758784438743915703407203511402648829015246023790673343378455510931837842739472493349381525690825485108585519238239769290289942709543779800349702093485949983444989472148742076978868660411368185705532442589229540104701000150901920597920127216612795252165772196546546954284319188740460746760857452614667837754564854893231486439802974650853946840732591665150632916867302409112187972223351309537600168812516848303791991713820882877994305687012956444922975073573145863250170128778979842916450924306255111643365204087714857404209314780676343696427111641877648561830481627946343439197037912644530168114191236259678068799093327871601082126263348804044853291170379813748568847199583865419026090066971549050325820415288314085502021177464517902092418518560687880483535750343773259439244633604446305928321750546071945206571675451000667457379217467058542841862487120865039349484150257744680673982496007394317326755404912919111901747539878589710595191272007931561960096622708339656819939325515250480134288104099294323245761661979169884023069100923972866964142643466602075254036023230320697123395274573593880023436055145099315637305011166051982132855636730294663786237837299141026906946343351579106905615626774545835007661821019350990154403425288156457824090961329672934942045517467381535539239329410743704522050639751408878573477914058780375713509750578189245164453014690892184582157621159614131099803718892475077440324614312368262884745938700351625962336547396055689193675521626310684092833496986200295657469556996754819643635992813994527604693947398334341104260242765330067512675151547338748506038354864229223510943016547838878197620209970215574959100952787089040210948022949873936949068710126836064929663182696169887736053247166486503445347065118469415548574390559448162456041087326142218244244634859091192336631694104280116595936046624296131683631857208999365229269893667932544342546405060866040860231972375124569941992894893255339506021770695804942001728500144098974045043692889105087296252104416642223960986531666441888301370889092600374207996980801642532507472834998107321606043446912093937950010651223861333559825860706042819733466977697169435461147171626461970138960035643400949340840952952698345738059375195018190315886452441573363461521069332787927128926764607491059524882214366007892671854887160519464599286172511689646149908298013807293458413130228886748386384471972208659291604756410860509497817073234659556031904216408053564768617813764374795894164391339227774430792563261344129709277617682956798847065813072041868201754224783310452514342653137709313207399531152576257500915644874204786348945712723368302038782051875955481119470767345547666721975636129020160723541394162030055635825630446987070474980126788271976125776769145454484692207201787423936167898446033011831686346653191061395945019413049793684679693912048050689479607150705611857240821222933422292253653440641488948875874299560218470423114371633906621527190673766915949743551366266866792612684556153705589565076082616439052154238222484907394423797290535810273482213824052438398362565110113506032728333383217656458767756299255179145192245987937472778725291687776207134725999696981961169310850157545568092177316091544083896642610018202543259745326410989570963047575133105673245872080955494987774626419848465156099103999318685230490467261279942354848902519659954262162259532590431834062009362472670195028696645415707083404971181724851706652978031752148009099025031952453656601642676111411406558905804235825336468345485960915817707742979887219468039909829957828966066050780572978162029412225213127687817710185395493861099579055903934228233476289901225348269336887741964118018086095038604976066846033436363641149748879216153609883520263387639819117176237191310669508322421465002584092518630126862791540918867958386066019275948133767142686512717607257473093251315640077864693327570124309059988788100848959043879797070962306862514466357466892988576346494660522369500219140413118166638111538564935323691049266765051982753786100878529020459023202548243446203373674931472469568499622752001171144702175356958296083607731678735527519234278411745247755568374493085789303746434361945503639828596295092643713196952011052487047213372327356193424108676284993500764285428177312598373785498427367245116013771216474712227017293285432629505408414973307376909164627519701724417230237493447855556279424940310066570313254432148306397743349366219965135008693042246610923009102009238488671327647801675525440296574697031618970184415888277598434896410865585223189534588466702093133006684041113921985034870932439375418336696683873341479452114899328308658002629414802700706634346329800679794365856443643015698953871526766613875414013462105685644119037954109963795896862811062207526791678148113750640258510385565295108736852685283021073220549112502825911854527078711427026240342416155252574274266128122318536939670296967476996930215343407172222862200279195970904992689289613059734465458596197796378977094382734790521923407975236894786862915164695341225484559192749025308109708891953049655513477538857874002787048529680399316595655190054571106435052855057767374545223561205942126394782879543077868944857292742114587060992878610860034901310525621200820494795068861454203675804665619541229693064470889219237054643994882229039847574310513155613261260917190865943212846969467510764457785827405591888818209711532885009283692690723188202725360146413837554723502074540624084850748015702717396925890762168885998606862035775532874687108239624451058212294961692323159108722420861891692520913383190066410015989231580096269909545223221036405000689319669237778905729846515569967660279399206488998960888850244969670463082825416783707636789142844513457870146273669085894787032583010232144034745423400433658346852583894923689569421268276221615428528797702593401501529227452031891628819313573446927165451795914981390054102674337806392091966939739767576957778480735246601844220872694300933467418589932801665275483193325847304123020021298094641182146036132917115740151181123538189195488642144162851812452374158425764958155274298134758467621746074046024624753214199946169178069979687580378550076099746935387852826026716124694831760631114704338051814441188501830119194200260634795471990867528087251738363550197067168648360099794385496312730607048848594481723583897718273689937461250196147293608848740039112170412661813197714716932888570022349224405281556661542774784689963796485416831025974909622460390966016219715750170068209708149760986535651335627317205743301356737392517411857258443575428237759650939296746094190216380473572445721633865942324199327100344923897982437254256081156271004395704671608598540363008668304453781038562497126720579570316354122715382210473789606198778280889939932271176033574167955097676668368782783001156274895088130559094619305832457645431961657846540833200499962762061259760147916939804316865872877766715476501432264631530149052122122860558196967068147066653345415815518433359877472920229495295340886701348832802386169104812760977287871836507899907772702960498630024280973132098264088227496944743329194837395493616353007087206162009004913366477062991236902410587638822393930173859907209631742533769207351136880132034151110014329338212023443026012347335466762854934277627907010060574084179346077378244772637936330542533197235998954711749292091346520371376624549583589840248707621570082584758328786426097246457849315194096704954937147833691455300806241300523096133835126774513912629110361801116243782600684156021781844362197094511952205935265358703553567923107584806645541985638541605481326670964737908614315515619302248081934450024242387294543674877364595827940374627235778744913108012451443135268227906326961921201865793194184927869298339803464721695797184741845049331435757050840379756955089030307779546049817634701226890187998372857245325998533048370994022194026148120953187464422417740642688467879546287980129641283570751554053721956261829370573227989480251182848108580987702138459987489510640514354639945071490468839418802960533163715894096104964382594459981594070728296748311724046038372976513334821060270446325472366094693860277666534690718448347615568949900938729010465669539264129023173162960691976837123977909288669909137279764269877971743342652382252992665763651953715183270236378482362942968483054876480363233385999986725380034764907628182032518879572927425718180119497360886520647571059022754518941588447386626490046875416227259357702336327790633634658572197435636228448326174265755005402479963266298095958143784610266035171407278123815985227889298246989141684302531320000135892074716697490699538694963915813284492537276906583087985857067283982880226504239476627417746906329318758917203586399167533115502788600873019734040958296418896289968339150503894017755318269795557376271912224695061741548521949788102247981817841483434801416547286433049461970765037500683087209513340648962919117523271778786434389016450244875756783213554233699291448563952062008102139705887057850300798934866965684432839871958757850544111316153119816884057008987485163794691180618403229483112414324140441069774701544494591972865229774637552474321309854326591448838467417522512578636246007815307473759218146738142980917821918304061090388515794862492545403231487903510942138358845577257769305543898228809317629533617582873635774695413865563736168100183930512961616935488254069009918264584562394530253713890305711880215134959400364309992226117317162778791161419617922207500735440823505976563624826392062008600637626866363826173943974196076378286356013534800896978304061138795372285360188181801669910119139694651069940241018845227411164072997544179781270490609862204531372235881919608200769058038527770530282920403924009993618246823957600296496760941240337106975811119638048953361093333398647017554146615738637009659517811379070403312620790100522076170345270055424362143899055859696394358240282489700238579683451759360880128397645184324112977610924051933512002467273988267142360870387288529229096797485747222080465234170363992296742851339073013188862606564207644572338648157243675875072766383797691523559770482390926219647799502655872241600324724099215687304114345324385071307949123108121376877470789325134723402381209480306803600966314268287220575488653713253920238445785072113180310480785398690388301021697382004159545229512332865105167234692109186900540798865651171115828336635872073422894159719034545191243983594872236529733543772006773677497115366459485498411461649561267056445926132449610501044482308200926820333103295240118226696617526962856931458245694062800908986579660213124810112288211943547709684495208687765731201244185133148388790285731561722507190119691710048837798635878423405632546305250134236078762119170700422975492727987067182493078900558645322526505516589012466433858679478772378243506484628123467555483251781489028344207313875693278004577483067504181013483748468763926585234337489197892490463747804913889435978056650719824976887152798126311283869225323775223367959708116494442141038952199047625758086949406066822148312263407154439716232607563139251603461040107927801580146892959884929155283722052864664634494903535039938949048446723101314249936679775726540752584795967472687490274078822097864263624355176518545575796749232921302064514296764045173330961851947793783946525106317201742449621670280739668557618915424145587085731419437184691799176452864159647825544309311574048594012061188358184996592772842120534802953885507065754408505488772513589106107763812324500059815565462097475278751069899433208878075650702204919679235872263378065827460067481113990554154229405032066957045133717175722421872787383668985313979900538428984775998205732636039617619242745702912513929671032823999196949798272662919375343046038486378240384799990378884255532035993678290979941338416303979894605752206059694185499953306790454965124046981839124676226651245441354977688748165119059069982434626436032360825628903354695862430428917574648515862353342549871727490930817215857645298885395414015709898670790775655235481389110378351270700704030619660939818757575748481833724710348823768084891602692769642270210057726532172834351619126178812979894358408237764650617006297822711598317962704724420193188308739624414844927094571766311545850991165689188903218514760773224240985854108195694374021517417773405632194977576824601296729730402701079946029008319148473803344020990984946574032396777061231222199488196709917975901801816761101115838637705423795127890557888060445514986858224653775534355295703315721789651342006700418598511199260059343836211434909257453992959292716835062819691113040079556930462911647518922215193848820622089705675331905025024199243054649678328539701045865281880552008216903942593747901764195586759195048877380050284358108641137300644840957044982436460533878100376590559666541085447269070126951720535215163238635115458077926388831321502406918068025575267794148256942009559142261949639801686050950833134384570918897796072043946348405727409371839841244688415131971297067991845150107113728252893527238301188947249917925088166177686926546039288405413612889069473722785133634043525096452692448433856276386439851124583033580295024079506987630054731138048340796630271398137432691933051845107511154158874221441569105852998673266316114744841448714407172654174591859592785821759027336433545395751283916759695668995388376473213615016795809755481652646661123293539365875801183464302035703196588136587508390294343622712410017108234967295645103406432830654212044176415144123682093451205769171129183282188253828789032924040252377947904051196735451934057049049392537205039209336466035895434658950151641401779618561631040896746235853201143973292690017425435897442257210902175765016898967137727346516179807424586647039617432369693590204700168013522388854901724653367815857172938866320620507987232384662333977352885681221441308352883567039883716413170744540646394250722389296334119028911364023190137626791684609392242265809625251985149669191992205438520766817193759045792865994823553656574440882977860503981016390603350219607924849278716400413914840915707312140374539905382936777162180518500574002371336369437088588239652952081292043632758935452560909763522929699123349130412565189034486990279285484421805491783166216754805687021439381980052006599432959451041896432026003580049788242140600798865456197001359492150363920251841924591548070648333339066509068851751213461800618643475667491761418250419309705111627659913070341501667773889799124805172724882643508003985494336497684377636866795887424186414621335572369041864150213343781042530207057793074048008709772199643947934550207044733074549516053305729050006350869385606867562225657511282337902547408304029467756535320390955841738365616568058646644152864793544734396731203036962222497715857413196747937131671834351030087549184889212273573508123289389979819657179080480632153209049925770601123806356238643282159881327604261625880079646398931061593755675509466499293351342770059446699083338769876753702402852803736848029388185746762134396122072188669184865691151534561342948435926665513201728585276469655371520560049391533529843514532832256275615936097268259406067807894478149999209129299416849142959943573534297361165375949747904641949832450427850151185159432792693959795636151013154474141198952062746044522831652040579726128440019971066110280835019619763502318381589616077172651637391902977563862558911990327612914237563013212484762525519401246829897114570656090919929295603394538611480858240991248566301409683396876014640848219846190963472367079040303594485060392492265678175716428873892879529719391877444629008444993628730978605743389547696743455952159712784372641190806659160147823796067003513087416921088207240057357604576147572290114055772918224683230951248156367433918621557701806958229413450671600413044816255089578656094421734292595362621305606758850676476046941882320129926143632527884313651543591958942710824155725039357046191703775910643331370045459926252406551646857423460946770559773097185373301140150810536205634493554448479810030482376493643947204810349866850603680018263124754197464168436932020822094972138242487120360172641315980378574213312673579600423942241484983172932668011439096452811234286328500945121003666116700823254350130621050146318406370979498580466794892608704105416156998986319565837888344420194811487264786336273856148293222590342952580122293481062529207124342616458304089022207034699040540727692874649959892630200090365893387252105475245642024299917407439126885537198892878640469673866497416727732583916873630082040242470780524045131061093491421918977086231731370697972828838425174440309981992513033538050698041732714757374868024307758321510985391700118621023737748063967301945384211091421099585848688095115796127719198216092760781668713221147113071038338500637270422356684631489915392319745580839318544126277454652365706408247051483984621621486663279392547960683398750708136664733611503360136777129737192776984574591577499097136133130343091906001260344872556015549300823536240244124697903138363987405933427061385493856500830697317561467845932395193684507564373214323766257764208816727716308275084215651912268553957306047346381420828474483762890823211991590729448929396456902756957914272491831540887432982247405960468365868834239018399736485501320239414385955369168963053197145056419482768568484932243965892875833925052486210589810457821452152266124628278404284156911472035177739660779329551719862870547883339158666886895949352997174098319071898000324715328595826604660276738953783304053678065177934472620155322773509604090321316527674630726887450031254750795863599742401087549927216272526876035994222851031315895598891553079008816381243451116660952182648821247714752225860757142583404970397399255592641627425316666100448034382694499347200244958915155159493063393984403911889474740893481037461891660354328889260634910728768086186330958410528915431796728453060282722125399194204513510793947337396083181611365263371942877416058284633275793627231443986762149095909720100340221882435237772767893277693838699404988286703298249525133871278503499287536149444972457909236254982563670004233066218709739240880744251451373392184434877948677687448468152020868978015637249621006082914423162239920658006625219126309935069002130991423075589687797153125642510524904061281390668005777245691479579583963986563494492300441687686896713537537915504160635431183759588450776933149162382601281722044175593194003542013884906533184947427413839233033748803485658725624202115934965506008075524331470985400300372057865067966240243649618229623632180955259276729104600244471085610569111008133176997982534895447033887942570112974023041595378807026890498930269434031710779026218582801743730882404934033557224602786517420897437637802852076405693993533320623311933825938109409330492522129977365665873214778469653277112481345892858721231096976570533130797390206908315872201494400402006874632065196625910833916493887344825911960454922946266826133620514421738072595297263458273035226048929172953247278294946126966915643819378630762999859909136915992269994654707167584061241945682918372674350690880930851986748056414338302960265199491103227416889883322900632853842382566998977507705916656024691663601462030378360532670663975181663887919566526708530655012587900281959955773507504764294445455233526443546689317424790289455935768288082085007579951418852557447848268268544456772663887569550463332212024429102600995729324712718713423139589990178347998180285144905150847159766725015699772906418426117867141074747345582189551066513511984024540736248252399997643590269572126237618794849933805626949836457514229702366349364150562442244281005147424211188429345386533250946268690854400206796412287210369576535190339188255899167187834133709714706933341427012814128538356933306274324055055787154070620290966659548355706307909813254748477702452030450717020418151930740948864926499991975848489486961846384315098772086039361182386919700869954034798507368677005534764241778473669932743083245770738239374237428727768495611864187148113132934037786566197466942801510064536626116399474919813447450367642546282892164307434612452506314419581879038512537633590313054917326940815780766903404738199659854421623486843634496168676968858084337429120488153083383228735180222120202157724046259530543058087097155269280509640252015569795781735832076340912251100119163589847841171936981377999961055166153823758330893887694756616187750492402859933584443501098940382818597213039013422428367495180365398668297067803559394880163112779089612794754227936189073863810888069922720490777389999735884461428044305553727287173694096021467202873642933380067735241567110189495122644152466935463275025242941097470783260383643036214496815703155816434960174994629945822254845048890295412995299562348420075027527616763702339501007993993369391423224708475118569692899407204096475706586719220684154043674582893700188954251244386487725915789590141730279692037016149549138909486294742935131582654480540062510479807818171310709792205568724546314281246594596628925779400857835438778433209291447654728043517797439777216028744639835244964449622699669834135007219911450712230028338012838400587137339600517935147529508343823301533471349245267840080648939449865586751354516771891502672622332303453234238723550631174296549976489581991883160244036903147367717153403240910357331023985948638163085806882929500544785416795782054929815457096162478619257142272227780985083164277026447879220171827060099949794896148923783993060588593700627217607027134936962511588204366239193024034169661224489072329310255630025308263033488161100151955209435285861108094512197986373513949190200100648929825299241624016353210183866648300255314036164559759868449926600862627963284197357293445025338702834720653038663776390651382916495729839250655946116332294333889957527183412919658867693284011205331153606513690469088309558234649002481732915666275509600566822244151450395930608406651819633109705913312166815109217144784100200283782480821630609490619736442606629183457712488779964316812052929092347463730758642379238500435921083663750281236676845849984516648020056325295388945690964147030403893960475476185276892034677190847257565045469728946589132293116248934473012033591494759154100169684790359160535199057737072151364074493261721904898996006064380222690803377928620464975812566194937086619029602675436575283621148813589754595978323331498911521302397445971681246157543058302611272134776209823987662816142243159945294800581433863455676475815151831373633475200631243266576824114198996903205893202553788885211010382627299399675159189215186321202551751765233786546364318063831296465506729825530390436791067469565949436782635999918448216358320735091770409308551029526307366308306787090462031762106958168144224055088553435100116334225425751087732146949849550563115222993710915051869075588835719931703717762567810915622681109297463759713446879792748061612464783673827361159662526464683010947119338360805825732329167076080446384589850254094208155293506267139094278878377311025256887995708906328492597713786284116913719863329418729827887117050538423455711065278806222527731679996725273793597475660037405439742078652681735521170672059636960074308040860672385682633909779471092763564481978449853582956764134110134679043701073056736418082455388236627362265522192163885415036096552293788955791747681535398223137193896277014268164431874777255607353008731371463856204561602093156270868233128118962138658121593452625280324933500550006942318871829695975013287879414188101189343297889846313773441111012680420130509937734652885258711563986072778741494112816568842857928096989740233210763073596625914217918343333349017491593253073634042452326556294045731607100113201558106848536973485520651215392446296479730496350735870257494111631936587506529950497422233742621257909380301189802197496131963420558155575076900772777186138114348601192971868991676302167427261651571681467689591559000276620200271798638879026400471903420925837074038131559506989176586495371593932768306711199227417934207895255559030583913303795113889262247646984366880884659869684454572565351886381394442692160619321659675952780064511646781468949486166559934951627492079514326480312077854239978561397854963557530307531287676756481509025029395432550552753117396887476931624831610269723011381836350834908052335707421614231540321306876276830787210642040817279296296143142456138868649308611166704727520157606176187111980332557309071294326708817277701995392245175073666296933616556095557923242213923091427760820849507574657063642319502972810275086910300310927959862269260227432821351844139700424842977886942191974434562872600707241310735969978482501547919536832290845191464364529745974863480982031814984255103061416537369369238334821555285561095430529620007928754663299302272987248031003253876064981793044842410518640050482232335971076626419799445783738613991655855009584005082420022379635100110574504419437251944026189823087700327339031724287697679390557649698993823709297722251698037540730412686045793980798964388974715774402393264178358604795853242067976923237213415562920148860037713582595606663092841970154003078653655992697216844348145752386794597092947309143494059253005439387534558839133833839807948697130342022462868473102211272145446287748034303711782993657062747842330627122756576914457242400376212040735507728956649950286041049936374337944428594631422515628236285693667504842829898941856913104357909091234935033942828125574861633266790636601590148864015727942685865806674301294030980687513329551551593826868173534087569818445783284568485875221369818426299689587279131528554545120925255681396303836418385378017506412840548069659254492626888553097758498267757678701524421774263019265697135614633596374426477683982912656897902227627810370224500657251102732931461897390530570239592843102733835405310412421787410760617432152215097076885381112839243970383868157333667762488249053064318744313744682463375817264480354632254489041180516330545461104116273105503514452013972151818438473286204035263390223964703162154804430827857871263079774896466480988911247974835841174726547361786854315609568210008027294546301524539254514501838400412550442827312260075291587520826420520292633862833426007207490491036740803300824807940061784923857342269728964637701136981602412995969544729503914137176891821334049250764707030842278207161364020435292892877778537830422014934288309525282213085236771492727712285010521486259504490055009417423559516207496755029728626630835863043833264277141217741426049222474040891834579315838782792500115486763716286553908774777942812683395366439617187944713998733604511053075784309729521261705048389740199976977886362649284660146479884502959376284695554429042547311066354740558325690105738018764122330892441156139667154482868008458496384671518874818652174177954373375210290747323178149646199061649024401477617825665618568289096816415240318675777879438192988456214668315187767530612864903194436217173259223468482616152557556545289263844141546609033509761355218870118873502260124293482321548727771832935271462220446935587101812497615115226621578000608286047019668949945619084295188699391051730201530331639905365319836610939972969316732756303738313017551722362519736544234239067360334250825670770323115621172678285460076415472174319387100186573938837579926402316963630114300561746940210779581225966211285261420226737734483184882023041655104090288020445614445270967860230930606581532395299880053695458252911745387860593235031589869910390817980467926735862342659593841072681114307891616198290559344641249102536444035319877495671040974623481742989682617159132235075331847524633281621555463149533064813740390506455155235153289919249646484136221448258665123623215190669409313211345279604497848586912843495699344551360653473985952915966637540286877969094100487309571309613904711420773681361030887101571397171290525784274820723070502213915872664184947779798324355586141818675111227604727330782830333737294873017103981789334550291133658228662050101731585238261568025038898046425889067007217170891407655876891456076980008289758555183701186471211608187570896646890844467164503596230296101019890886446450290725971780144382583337241966642524383278593596632020474105218598690564186814819273007844597187285932215441839299930232411020258874394861673716462046095004835357663859854315534947050954599491726499154128275377543381212286994605386783005623627913289587160606082939428988715382553328566771089323161468012477127650783485294869344640641321405706950747231087951439597315158554784471681551713165947302476176138187185369710964385427494820902846510604176190623801189558569734117697209491833615081258826436947603757258147918593402661367692994618362193757434458614979636949347670024011814174846336490767716962873799409167368467852758474601039057959212185219817630009181261909639132086729729362806506133526799577314317133321241490855298905526890013353214122444940623013856170349394333706404257430355310531168888073082721474041523200216709527187593048568380809914450159289421618586629921393666129810948430294601917894310660471098701254992108000848813842506108578509531267650578902561427050882161242057530936444927177857752914468169582301159738023051531614496577260026729440342021064478117262308276862036319189487506035167867154010672517905251634100114116238507223333721901583888464695481529138508925624672202547625988964986019227195589004327722695829676616368991740067965818486920328725234100866601530986412711325105296613583505320519881207246161204106844712281855304066059338686894291165434634142384407757265204388822391406485759788796685193645055660165438946126630502620428087318948540933070767816836908241092956475129061488308837182029710146942250314450164382630062259772906982503630017906396891907728918810587481872864593357918959230221340620658611622263128566075727243785010565027452434282524026003963139302100669061787496573448778454362284207768276169436884267134834755952818837161377513354647949740832877322708297599568305496137798339338300883233951509520253018044090799272031699197866026063935059020631157459318473660784097799071330088927639169719610281883686629987034346743963782056038158617207358005600912716420302936697346009505780375881679271101041300896845695310909987966917102570039401281258235366734073135991776698328186025870151479728094799108625341044607154674417173568266013774967857721739452782267906431542727738535511000866404360217147691397256305084698861929356454460776986355536646228084652631373670759129892989216413115564455083466259345007161316776766475962121471670403579686552041916419845404808321805128104347455722502377355354134922495760952827070187268301222757131802499994819092773696145045121505272878677746012418161874156131997024894640139802529218486470735037242378292453054632538161388143155939473244622823731077413103824139146798704392638913309648956167278378781582549021882180523479159366452679544559500821215314663803557418524708445810928095664416985636386567009979941618751118744317222440672066171695704564895048902002514949736790265491128755745392939356542024110639418117317695923375528304143728254824662826180247971610387041408643147484309602337044827854755633720760178030472345908336380296259947448045481026538048384282982383638002143990227939489739332916250385753585600812023892725377902256589336515729841507602066305758711532178212842819924052274809670894037345086710120946449054106997561855327850553861486901948268474932814224818047960368843776109084027501214004520285147988690639501495997795812581016109826270895703129498189051193193899074801484789442056694531859282870943509239192399192272593660049264867780652591858800221094533406971939425770725049490606220835504103400496563296072875693938182166703708908566478533184360811681636439788825908902400920596869633090734425877734370202640712721277268720199564837629259285776091521793747090600255092294145726765352938991546700862920245319458286572587672083650383725673562079368284326849495606420698134691082210759690617713000980127391730717925559347306320777656732342293246968124633691137796149995702963668178396474114871503753194706304494273232239724437069269855833763332253385394440475228889332344094578183919648354212885108215456039571020997725038013464202414288667232217393559936097258538442740154559358425230057089160747048903516562722934540393300250561977967720329586355587921165810090354214970276567978303040585575176170286506427383681547284057737974245047259357765397286667863544135934465467470602629242063072201770103368619707693722511364889542895187787471600770617544743181847792924738639153364187557102566471422813718264444879062465785972375003700381119603352571172615353619845766075342387146573336824827381660667080468742143368998844762494877411081150950935489943660976901961809508053353094543640715955683439765461176521738348869851459718606268033332591306213071645355529549651260426851811326987830536953482175667434804584734345509463493761133784689846789621176154783872593066183419964134977967530691774829032172908551656070283522753849528751493592571820312142084441026024070725733657963333154899672096185748287401379459252457219423929152526954384532526670100863691239218572432469660158747847122050021333154747551734018584364497894023189938905759319827880021662486973114874736169976338962654042788291582359924120784689898572094206454516040988881520052891598169983673426094404570004938784525887975814922371415256744898107983418157815333329143454913291464059813736186218245949214789292708226612546822275381960673510143354944932354164423105091721284787125491939073434056414149286040231858602075281247968169689119178886573357464192371859431712735741226734480352504166884471911381082329444837043568993398367411368863821431835370114541966973776661672598019332946397036605392178658467822412642982711121358820959649537836740122573266878520366047621006859206211096006918565089550161761398003286590244136331199983530191083776908661520321287040033675018563606118186327661140311699192648517550065859356410411398910671249978231205053296861105447148046681063544641257412704730172952243633672977835280333750883342804901280107147918866967660320733786831637512777447700526847746273782501305777916453908470487735712307028022062054033747742712459398755676956403756064875670954432070242822540553603621294831170913132245472842981627676061035979916856412077639082270181856892512693868952770205008942883075682384207908615362267616981132020952803559931601813500600834669670208759580797529095198418906892681913000105976139985497608868704281101187525545327095656184239462431512507466391499038870232277825482438421824307319064741031123699189399955297309211209635475354026914331056209367326960966830298156882263126576299890260827306893697732929293488326942905213864333586253509703790291722147450590090149213772290070238890598526197531884283079983149899041881501379964530716345879638723709540350377971817398446625075770282456697185041822126780799330259093597715275003474184401553005793553040063217900813759264497481048375447203679881294095938102248150155719729809452269134347202606621308664276821418451755171542646693851212463311158089606917484731527064252134603927384519352799470838516890278165233094061587338878477007565233339194351435152543340682961844307992308607323639553819670655923419862214334669121169160087520531363062733182363261110615388571781401914145676751929262173153126877924831083213802402318581026121345051293106340686314318094697935285226009138622032426220139694836612776900637085527480061458228932832149527386469736405043451193106102809553405202794239363014267530018873256941582771238084232319199230684791491304618745367118509495545691609569691402133086871235559841100420907240140735287563927480009856453681568571941459539651849341554216077623701796005716898572084841332409612771311961433142311176358107047841524603989889477038369310684721794776964067213015181424155020966556657163660640851195976017630339342110134098681124896420210930092995443119445982025188064700553778764498946797773955463881441466186335496900259578692849928019268239682870391169103728653863755922024623539363107042952679929852179637054921080116786940415883785934262982015693693277872683091729692137459685864575746092667856517866397130423521783062678995561858933607015223519851640292187843220191512675323784964484887588453897311618041763979244203502510878107377997849960795979202796300930491594987371490813440794574954906600489974023733487348965279234534947494419353254231077423211257151824942833475418004312471889309943669131586643352542803610295850152601080697069467065149494844853562871862661857340496773850429800322912778228105780858746335263049809621525402118461253200331837696540801234980758007595582052655235422926928776420502408144678204401843114994498787575428378831792454010911803227377673472777547794131021275307261177771276018655570233653036460415506207365621918079241001483216812466017144205335324596694900628125244220394419084467434395404354636644472817204262144764198829258315937852257126288447762922653710115797350840539092124667047148654054473527704866365230187872702788884691334570989134302200136775479040974131268756136509982314155130687969568888249592147175595734962616989670007290433189298296379999191233253532453316909588221842510809262820040037559798276163261794746861986414217880734746381604980407317532586093247420940727680736104955523145087319174195789885425702021417341641288226112382182222615207602206494906498866311130118677009942815344514706367350487228908700129955204415749976468020521296348853258907427298326764796659715650250317743164891169003126265558954251239474730508836521312677764745249750595634663135700587201510778403286204480362911282232450668793195678066824010601208615410701493842405569829652003902421650477025548344960752955201782195425992861354039330961037416032591762234600411889321735545981468016592292127624545084640366643344441596686088388303010477219640280959396882588235696529197622467307156160418911786519478836773641234104114084546192120395599745341695151303575979384788543402307173708777278540735402798364698275279858957897252817732434705634234876814001919500945143391486149573825687744797883909733415023092816752435239475709397862911865009420692241660919281484216271710291987525420747532828809147941021372163157650682921244925545762094153947450255532034927255072321426659392443700979581092957284377203762771554760241954331318182345467162834906865354499198891304196658994770463389849712097982010499568011817693300169145108016344357753600663340148606927316910064638324104998898387232838487294904458525873451066087617430829877317579731363442952031532562203893145577406205425825450518847335451338287587879621144809681002712453849586384277939004776724003747499296027712240833963348911500841405086998406175729099633385077540496951211479750824774751785533481154328719488390459963267461281209023474281386591124628846381358855977735026163596619788653601226489853230819534495592289058197780554689798682145568072481784576820995447536776925426913356695860706971279955176351662495084727107521782377141962832028537335377048769889501355685818592418763997756568722364484624551834091951441015420996821027991604318329555072332716629375730141879391670975700974360474682823692615900945160397446983824784474452257428658825339900544965240095576522748900174619693262702737475772189261596386908290150768866413663907136083824645749074245567669701552908319893072975133474404110146305478491466521245592661454613136071321525044655367958220997677623876755693494116262860047231546212649959833664274916870975139822565427150024577853525900356605900790789090325913847317977518506883629620880515477688360857603567278937390143028432524770613525460407336607273651664371583912842949537138289531956370455464956368446635854782420802803366989147906900304317636783495283899183929763257622839590355939620953622120652961926513333363367280805655978146273285390364368634873790790982647847244456365832563165464763798481769011310540831864752781983194536308056335966939791704352974558742670318189376021643001987125772586898524573942463935137726283948033884911110249379449813952777139904684122817810709658292267735927982987335282179421183702479459619628809630379271856426362219599175689958812546115091596110718438010513897417221394807905032917953145312280259086701246433815982728204888705696233914097232736273864964851894625657560371658076860625971547728209332827195586079422759142898700228308140194954961820697977819120024934582256232735282689433955926492783557912199858886349626482467828385116963404054712243914514294973111924206508057574658813111899768243531169031415762506045655563840308700739406761457000117198553076872635756266055417886187169623705915111445026510587123041620983757124138370838533688519314553646953303732661208897179683330625844756285609241549678592464054334101795385606223516594937900630573883351395278483486470137417877871193493672144821456784593704394139680334127496776131422698618023666159832632893608195257346829743728264779690315624872537100520907884479507305488823531852306119394372340500274538002307219638754646810979848720852639230587027402918811958060021615290312829322211471702820533333366622101276246203565900935860833067474304498239957718893569844537468976472924818343923336758360393817124890242272532346835655081948944139221472164133255981797264304050483248863593508125122099124601544266915409240939572284271277995820760310627442312574403895820188399021163349489821792432106359347090485631803800594998341498565199764158425297234487152805240209988332981874045391768330773552403144934211263008778360420548250935461481259323045865789082061557839630117557911580865892927646038781106092639800572909634616488228931882593398873770865524300696934423557506974803198504300483529993855481527364391803886654300916200296899282793354097663438141613135377660837351784934268273954796172610857939020708318836744226722696556331935699698063610097097867442833129550290121497415598983751365411284390561236334430300633550941269891644475924873038274340619182935864769836565472288143217048148975296087334660464777368422709651838543561914394008313552513738165897838564548155414355978504408024411223159840072632574635434126110593559210723069109414829963181103820363876562069235597903251403620445990105231517301009940166020874793440037570146357040286950744202473550567076741037291148435802180311936748090784048127219110755454633100027171661439413798330175092269984009110332414466832724458887982353510412838850158178815932774151751279642170526568519581856978562119796821114963946878048781933341814449232192619511886392225506566992204018079262721128808578726132660140194985802433055756938960037201580366309025751039783502148082950021700635781024159725907430464960882462804474401282527545776563532621801680430712130122080965629522206243087290967675496273235083890735770159376259021902692305257423594427039785614449789600309559327343795796789129358740972325780172751684851183271833443271860157757872912712320218054841714890553745584365283311283119278811669213471272698723576884815131249168730565123252161787524529099426742138004256922380120900132821520587465754844158868145610231043094718254888388298604328137276966039396190586782087839935041638337216608009173139206044191914655711247135344746592382848326723238610601360197425656459301032014937958863179092030681150347495636352562597084765367022572030078339867753133746321398325562535117308958643465454937334152832992146235120816642600792850613873171391007414068030847581722108700875425323898985344902557044852962594990391255655971116382947164091829677435014406762161121318685509437725171951188259636318813492524647667865697081248251128807676605713579347794604296427991173186143614859065139548732776225783923004571612265056951164249303229595112255025924223244205439584938569158350351916550155212564332692195470786690769147150208494280748380821931320252198232882986609334815860625798462873998031334830370442824873821198040769924659336795663973503798072720121283736889606187404990569031842677977423273605076758542390789986294684996976428791441632685010208236727448916477178595281281370854874309904924181569690181080616923180210692969225664442420131736525495762280165864099821073304185011946167756520108144361176851754957636597866024770791328891498625434594448626691815631494131588165749441002007170846910060205848366437985354501060998017713493573484220079001034112508951733071657878390178791176568926343203984288344208848141045213849372869922975596009313841744389289924992815769104351201332674860658871006469967409387930520860856704808571487141891714559137430204410852881693005987336543174999298443416781553584798311963100994451881829117120925060778924549266562062009613290953717508687852030525591049292698048667980051669303425104367827175278040071227913575672522187642875603993927744932506619314176109021671307516572292917572978295095499545226165960288788114310371637431268294922375686916885166881968837842601095722225734845453570883212046828951978014427818559907117106347719613858995245423493795532802015959987718767840206131233607825473616402593243345446760257827067550223587391650665758937799983745023986978550526375920933805788747583659362571704673145971559233500532862453115936123069965130915008966952472337533428314500965592573381790865000831517036636041321831788918476642892288508629398972305428927264189520336230658164687090033763667737841401378738265134787184409516128758253409123080048375958643575903832287261851532128591188263260272484687021183428260235906506165829052851551729384211463336826289430277872146621329618899342822465412007077290806668927288794014370429083688407970964125270884244590954913462970816183252320153036904500158219765496446059876359733367546636967416607612127916844845312656057834452096714608183487207207457665282522920831450355752465228295126390290656542533386100223431784772490078254611449736881746455282549419795811531526054858732622431981367243722871074794995966574439591316095832534579928643341542764149977883423276925020064075724483713167686603588186368710674050626754022336918482303568144702414417748214055025010140759483491644400047143781173711649793810917683110320396361872711131542642031776321094568738228506601208500949958877871326290430734380333977385836059269441338219853853061630377716156339520439767796953591667653568344699269763423695417513546578996916614007384617118518923054929264292327483672679001312608697156950708400807296392295202212282120627800802442521235455339562956455680132250345856527394230838379967267767440169396140561657494132878431270395503205857443551624559017716836091941827730547980185548358248016106232026164242560032659193949863538930298450939128784969367511832691441533147317861491100090369326324011644824282563136840397751488454509523726994610558626949268794263468738683503892403092122365193878348371037899584362524789878706634884496023576958277789896688881357950388529626472253239332381529659908716478676244272364571466261102732700575334321127779906377154606266025408852509465135878622529460153712848126260138675959833663858291200870678435663013192497856275272735186889725939647825746424252670393370206175837274408706746966928225514595441377465042348199314801904088234582122959364695676629763680340999858864427471900011980548377669100555199265406025313631717906769912570537636819822894886350084515990896662613463723714622965599078972460920082974456089819639099410483457102038769367743328409645498196277197799217773570019910990347417970410585477685266820595055240962010275578804769841363901430554772562781262151510552636911811287704517182292540276080199108069449287481288396130126018302219706066688098052417509792196055650162075959448828150055699914486390282449607180132291696137612867459205221460084402756922049858075341408052433676132895291470014155778035901322877076317281100852272275410278393150703701311805407975857132517984053556178974905352894442508249905869078813604976787345863950615384337821864575952941685973248114624204085472432781999180549070296751612378208320925124748550252676020078560732360260853019910578683266917504919612435889675905292671227576756297237645079922861438359845164924699643345006924640809412037934923153370051487529997414187820887415357689700452496921815551316125623697587462875926275583574714780649120489940497938793091328058242900643861299333615841690794349562968316941804276848754475158886327589171667057787620167600676314746031109662208370680234636402737740310140123587760946553829393275807618768248779038491693862557650398315749574958418876733476558221146314383551949589093105915593377981732097785862814380544378988096954590894711630255995515358670822988004126554909121681172337269754886825775860052999503132613006644440609312778553826201503237412145857650807156346253616872418914957872732409517820551682244674123193809152046743082142690236306297736881304792961103880575288221346974341540446762403139624453272283514213589300527598907183447473900738496515029426167764189015671769024248819499895977716725508044241582255131339054016148779161787622178930450958823782118426647618197986430729246314807091717914631304934360005321811075551207227218028125132597086819412823351783910013412932443846410124501239632350472651979283911208604017789363405831249377591861814045576092026857316302400616857028279801053431567922579575685142454030354843051048508434237763649389360507983605418588784837014420406018004481669638872360313507172547838105467198005452234375791489389325959216167039815053737061240195157462186429286057945612960985834564907025668697033487127363081945503555421223435424226692560437319536898196281799500940651427737825520742730400406677880047309519852827193969777610107750364234928578135186448579003364791444065265385165288971924028551699171183974804272757770327541337465977491218034042758658779395818648936626783487100031381364227656035906591428875979838629825732879069071909544465586886060401926097947406897407230689282281043601036658497276306994344543017873256918493053276924272112398127344302086627742930200599992367074884801493156750077840377828659030121347933921340491288682500816233727710855435863497477332602121726119953971076966517718992488761636405537908272110947678875719319087987874834443961022802782054152971368733876885932494796997420718926246670758654871132003988572474501250203889023807978449553474306296262794639051872127694611138333850919012116295202900909792626725186802332684274878490028808122095499517067706980941156354537237991863561020069350084490614564072172433941540512210082659094093068673827554730225933757802996039552543140741187786708411627732827801393011782164551287898690799323538412288354148976709173951754975618626400301850259325691637044979505290297987457983614068430299609308590551635413514261921251647666710470674130730190926657874751309957614401442645830618137230112019548127049343372137203229112401948985479438351098468415338699900258195259661583333107503701023026322371040302986985210272612087997542313846453290517380406046966316850463431868735542920016450774796090998277275918439364102651249586695715792175205323094022021444655217648408600703021066027838898126425549434975568261290892273109273494075179957333924629354760066893786295276671145135411374182962381991126119330568587104304210785736338746144761215578059358786443938705715065332506961549738078396119828029875408212446321475362212550440237329429200377567157554504363625239436836159264788206774705485759599481737922483164431952238962335767184823897337063158616138112922471233992884680408202734163821640207663957986270580225418895091982340379255169411230144827316503637999034325341849938150389173005444799037040243070700537515113306592847701020393926815996395168910414162132191142598437821371993325744178190399053578855371611239460894655142839567620414342437686690012638010139217821644425176690699557628873399982329924270382117106576785514724201728670414754061583070591326337406897702291824656240290973089088092417296990354486950007179768823865107975673825639608578001860867220227217534068109563276805695430169918940654690361041277335275385992751590547976243665562108390560369489829414703954277271513064264738820219057722991188468761676604845193071914364174019535445963577900160497533645467545859712011034364181150862985178968373804751367411826018459065465669703885259318397708434030842483054154901013010428063017121510195880570156104828255187518732604699036046917718366542935220056318386530076872159250039875495145747159207546094040415259436075697470823336463366919260216393442286256653612512396304103716064603722241369771069707780136876070681653645528863302063224281636007895365590152452765612459795438248814411125848515495405128353523982016883321775645596671671217964631729220557597578062667375852959730750352166616709015677748984340755571369819940133891398177612993015718710447521689440485706740948606920868807710935641164820797636015218760468980697074802558828799540652835170050820569571379442148193996604668443100967008044735763696822172179962058907634719802912874732578473160465453312373353060927134147812003926028161457745041481631925885845217285572737666552444272696368688063987266929872117856941280378089483887989957766985000039769675050527248543868190893005388437340270187790945208164425030569650643243975983306294050466110375080911163074391780655543767295104557552377691957373416969983916707247899098171942339372623199162544362971625196950190325898959146345938282094254907455733942351801465436368523234576436492951862545795405605177885274474668356256922691326293264957617476852790533640499956951175077310505525378121136743507024401820409680187458256214218441857375947864932018043784546419707786175934887768499344105472357905227741850899411736417052697587312374315155048764651066855483154501212202923091822568237673215689558224237072454847303441775970975210683514564294991000646199295586526769545304991083736533863430973694199073564371869577952464595641732036298532555771514805981816696118365939514090545462832843065511077960915230949044820112580172239478236893787216198741995692441614785797986732778732869229511813176437958466874267912251679829814435371624713571257293035971276094429684120157626830992825888896431012576493093420143062093994714413115598166747257445143539791117859170148902403141298553174572144253379627968792323123242811899190611660229957189182849181882104190413132379633565544374819322933325202222177466747398549916256975135866683228518601573500791897679980705547406647642000146551130479727052849847179524033584868798234148301690134161317988112780697781060168276728556738108856787035621634702778050649601740964248103798911039389920729393287094751844160367991955889339240120531484013489343511399207815368977611399659352001427248821735558149413808793719908771097509082796521022722792843047976780272883604551178041208791573361865386937561135784207872595627729051647193149441204294300782193247470097989209453692385695079164643891074260984969611245032996894556886947937684999940637245329260830203791068468592447629027602717244665990810194633998738314868222259674103484359191875896345598033411740945604431812442119263818053421685578752867860182331810382272647306134910799831623780356083782680860378968886860098235074839638572497487110296645285848195315214029700581245282746665042923588664510304057635296543797856758177706169054875875379467798855364921592016976557023466853554770792955229665794916104123691999350541086931528690120800177829060518825461231110278564003184922188699522533846497283956037147714682508809875141517798927117697421319716260003913034052688849330041390071050625615364029713479331768240905306390208925717776966662378336999807501480997095963483985714434173857382227675288010991796283738947734188142039099812257102069621105824494817370949536619902716789441129600510188303201583280678142404411996252701755836122751186966885755528752104577189296600881700630879459622720272638444473066877147480326892480123355534303338655267887243242739009122499748602895581672829129224626557935143603618095777949655240791274224660704184951202160291032719963434782453913914137415399999701346206115615631927608337355456414080560368929048311113774974253380367278428378862668698383969299482079676379241710748820090624468232532432888427718661874033414593620545623833659540928876284907204507178331536519242840580030094789158900159865278176468734157010598984047313394430293410119813847730426455037582712043031717295866175000072251483665861431380265038374538000588526470549345478952092166034403962257169870681779382514888336905670480055032617785990625018720669587921373744800622974958881451339521878722570309697712106744410684997053741132686686167563567161266522213457911639045549174644730837489302687882099719332759990831483811822202194594993482553881383359293958199616677994598484377155713353521506524745354132043128949474117678531009304884998486726050250794826652767854988244889478841966601073923046495745588478776180924691763973976175742834762967164066931799121980981013229607712292804557050033310532169890726028561016021569652275743387089050670137205991337529339457973903669694888190949269010793246699844934328244760236168666037815009777983803112479299213941527987173893021420952120206699012096132276153303689357891183487347567984105277956762197668410396962978291755941128472328789976062241032084925857790314350838629174024652940875162017127722672590700770668239230813037425172903234003824117311008668169736188104333831317733271385246116409754998840174364376559687799387787488203468120031243863235900137087411429286324754780632812129088177766894310068362598013620253837748560539211912009287982008489842324949378324115365258824690582101489425924597468096106364005903298136399251974606297538791302857688839086317630251221322218498669662028876731178200545768896675949726244745989731037685266904395320441666169409694959359876753576592016907507525018102832981488381284838806481801672409130797107115760236211643718038768813917034701802236160980025206599649463717182909997817981486965124056419959826917209418088769828939334677112445643868531546296750363729580989909099672047702053160208922822793797241274176166813913691527319059138602024740882912225898135684437162977447526219364138554246821013450162432505245259358250994832307836875217072340928912576197814818672953528501615319769757499476337461094045904478606561220423161932712402844608265528184096477410888029420056698439470641753877336427766884882305856735438341506295308542173989718250426833001444809548998240911378428655274251835628662844315268362140272128228289898193733351233311183757192317753705310894232522907434011762438556349881889945609935314889386361285209414900909146467770358736471668365045599495195595313394293945297716446036972031898544811994509259321791305220766189500781773415534543702196176670406022995959497299348403073068817982328856640452324532626486547585577443876743494777271379893870038029702958961693009853950480194909084390806961160985166782970861799947496651121389924022578840605402299904667065004287782203700249323716571824742165199775483404439483087613250693537471124751693403098756002273994877881634709661179231257029504936980392228106411728697333256252335327077147043532200632537848875914543782715830132002790348685851893332245000027125198202771218851106979679308135731289357777153852025969599148699329094822023976213549491204216215100046044350612901268046901549917092095174922746589370231690139045309924723689566285105994309348608073742801948652137348215029105521887661760100429849008126267187252878789334518528476035683548168188229526467687646333566475935485091147695900023847105751968063504922999969905052330581922809927064044848694967939470068059023940582144080080327587442626251569019863613597745655198620299748355111327086715876546927996551887092170756663937812636139847684462751501632383380993634422099022070952620236313816138227070298747658751611209306720795422182692851752324292949294021372892870020023045580135597992454673960609300128522323092639095913063999029247901780328378522731786280897403356081768736480482911467396173185464286255707494477725483846444791228448094246729128457154733801929290784599356530239029141811476011341455805267290752566414662275383005702744533292408196552799133917029063241764197501785675302774599722806230107772306287906966362281129442258103692687857759529317634181732296596351066647001830487781310577475471654432977214049269960497900469380463885077838908293624117095172061362433148605020025410771858057123036410640213563712264474469762999310285560853056305357462465872291178089975493755968877664284930773258553917242291561815751713142546158017106210648512163836417772809194539771661515040365365108726888808842798287326709778403125634620315006862287532844797773049766451793336931979108258763725399952388447111105305199872242872300476179432759496603771921545678282396323232073375523806657260790880268252676276842955747474528920439102077210444152262244091684412902962048118822882890132274147379913255334364569932550538501106747869417965683278356911978242773201918863056398950388008545400760823231928117765368648779265419752065474263323805296212379144482893827226051706501862222982112483901624043321564299576791840896673070313971519259856992653943587446974891276924315029289467471616546699340622134847943916709966937326561234213673744095672565558588485968953727787231099206187895067894838256109571976294430612730294219942956907876182415847771705648239117109069973569857177614512638540830493242426265638011508042621718923611186371368020646719839636957515307315196638913107104619462451508227709225016135575931214152931148268639742286640923352282273047256157480610224879760328657150560137804642197845436931172567100203527305262463712010740903660623710086652391885605454102308982970850021086532751586584474173113151595622233684391899392591367710064409686941164875960066073910561363027015385813377152739044986468798937827759970085668748214844530487270994346897537610268119132372216978426602449948410166824700134237295148443772825270278813567742058874677701718315110690695821057511251050562397353161976340812237168860004567965084906670974021786067442047470877187267644767343843547531454912804881244696760554590102883845673801994878358573194560934397757053453423685468335296892514563378811698044407605381354605314789451023908920271470035276145575511542754250363290565903191435056838049666135656096159315081604459058092129319978024351567016737542358721668976162376381647799115913229580658277752577510384056813595796364750020244859262043959621043389475542573886184492067286871467411094751659470401135075394706321870395162388024906589270190424264732667361431459571555122554867511084205179757397466945302976442072507677996803597148104354044177178407278693811132666073357842981903496957743653283526510131562888079290545176189174921740348406118476733955193190101627902681265596838733763095037398179626905973453849779207911363749589520875941257672397022028663590211299351931585045168102098687592520673771045533108169444511339475723284469984675027368510600389370967439300755474977127667952794753117951655342200669577394268651205589942188295534808424298378536593122651368368255209871331601836695384926253772028208877573209568654877570587121267091962201311364779261431450994280739609682065422068359775862451308419711110138073502409508505066097300296186382859821205509083859623356519323192630720896146047886488701492456876246948635594670799923113851540148634603997300906708492098141391459692752870517029154546515452426656481712986104281454309491284621008017902661534336559815363363959385006751256150834626651046878778323666982821443325884366845377681122502647591647000454300178447292851273841761542359250970157250777025593357707633970908601058654259097981712797488762923174568375911184113157355411044646647116775085329848198320598800222762744675404345852039532629060978663719105158196376450993985353443906474630901619402270903121999054505583233203386176416313070792549227071083732610444759086943819454650957819058007600278220356127614345560917925265500340160301591197670059576634005227131568456129092592887090082287487536560108027324748528818978124884647024241903767877824640742979792804078820512376710790336572147611042842201695145771825070117312098958594630089301954704022977171452283222626321169163672190147105944012113339510655767581929983122530159442308094457978470139634859702307815419825897725184231067684876056575391793299103566681734026623809235395459410559892140341723266192811019157488337898728328214485950666352719467515557590322609850924057568958771389437410767561513481064549096157470363687269237220888876028714058988515727436973538409966310882367394655388108415255672846635642345856717308433085640430074184493439162613516478937685313716591364794827540145474581359614650937209126441492713585731363204863814004827180111826193319809151404019788307587240213212316587781632369154091599454547748835586517596493225273484287691840038510104560403926019022147775863684225825391825373269827820491230710063712930015836460865886844718151726286445215305872584204352089877888815145825070288841633571705073757739149085274286677238245484527813327067740750102924040759321277180490490688310493959120831106657559321437465620626413458285866616028948477348984804560637404008121226460544477286507504912807010074391157508611220601210107133678865933133366656643204881771719855754224321191803676867738369126755596830667528263256574814889589941655171800583115460381916808100646190368851845180023821616367814034441731082317675849946830621495991271417308812307848791896253810416636820966322192483485753073373858796614829359446992471261284717199656907909146390001716875600334200211246404444930927272757002757131797883162913097756769858388964743572479199653264692556102355842442635170185405841052256408389216041393445585872031629405570299943131405000919065096777805993693841772200267814268482141421567232538906498487050398778197534361128642242027645545127924879254261753097189510823049626894697799144994368928444214091041148048569010460584750021525131686863328402397095649219388152242178266818344703252806348499928012388705370171515470767649151356684784269252668773902862808242063324890264630235516732279881382981725847732313050593200972784735568085930242816058437598006158582970323286418599635481098760532583897858117886912485326159352804315913000721407984321852985164782942402835817499266222047007354246729572133849411117046336149530272146488254356534125289863011906869451161432594571279517646996099286752008284571634051545569320582903467634661659986493967421243507284691800515674812075059831558505741393970516086479886457462351830166608685917897745950326261992135945491101893469728083548168835456920209648912323685419265473859560356280992080397177494010759795998940312748285676173447528247555244484096633166871998670367155724406591543178836919197191436077559333305064816797116560063133946763987588758548183784915715941761473563069407113986375027437651269037522991426237541933196740580060092024016694771049775708056981058195866063776524150893258632600244820918628725019811030763625996775198918588592146647912535855165289387593068053275598257773203845586290563705894120909575873210897319182424244368992192071941916784752080700318075184463262145366678637375597099953755469086255879656163135144641677870597121491727768282809666368287826085359211990659527348048429695729307898393729234095409166987867132874728404875406734300777396553088085688429405281496596608827807968761316866653402051374894127997581453274646270830754094579166836259696925124543139063962370481275228255805849422569192623798083534121133209470928055212958937580159566315047516866243458693065017548859879843185489280349195920247196041552393061873540079977062715064867748952155567539935763553416637711027386307798807568149650870994493273428760080227494989618313814783328134791915141870362584773283631506868247801924487365699990245958071571312384649093149832325133259401758063129490328416520153093011171201614069271193035021451795148629237049727479836703815817977007166410437969535114932666518483548343165842108383738519419232532416294979291628034798321918211257421668189635994145670653999784145442823375498882419206508459267065926276938494018579975892459736203460670351722816818955178122858584770742943966202443776242807376339566957088657272464919107293787760750287381272914929766585615660989407162671346767797944556045504788898105529532663614489350756063108619477334388681370546284772087553888783651157450875270654385021834639085087290336134764488197164278250161321245830490649015032532893597254959610814093234218754300353995163365273431664568234695263964360536816857272184746585891894860437318323781918086761049348948896206188912909484020752926678332299516706262591153819173574847322989191898151549067057882387472385503885649872728026205227176737305374460242283535023740142873170077665249097502109373579116570670244027296393510905076724862420467634827880263857067571557672569524733079276895687843162835968431328827690845210682072118847491445106896856416565539992424576829936395438252390616475892462870349908639473274107889440639769992373607041863148372124148627513141913392356740467737296267578166676807783361286128100049382604491899734755558271806162588754579607480311846455767315770471921750296821323379148961889188574806074823582465921054172925242184338081445282356445816481551675623881860932223029567169363153008332272477027853453717243465600729768104810994274495026824372343144542867299803501919649235824454425395569182570765002293960173490839998437192875376063958591764074273897206765978706072164027447692341971264557057474147815139545562941872920665693897269469934467464651524035928051321152649023538323334525010282625913007002641842786211965011048164851626036902775904913288908652846775040528972527775423877526480367826540686415668003312097556668299104557044012084712967684383645853155279291979068023894148698826326632201464589829287833605655634224534839133699526610088928510508415258820361298446203527237994447040176983876529326288123860989738293186506328057984288477894699253354431869404034077892852761896262809194076375880561936348949034086281828718018843118322500940642493039609155753402147182298402373189484703275818268036277483077862969615797243649412777622591925903871604007594098681572123379492550592971181490204901062554227708563078055497612988753163548662723427332252699418468411356867229209789349143437547883107037021583716812699159431105462880053738115374841505153639390489268116213520562493003519631516780899045794786740785267700203910718290760966466366754107990422198735845325123125234317858048150538167140015448968530792309657335709230678870761203358681810545771588714428293337168655780060556764787693499801165826702065739699600221878926953411369890235977969621891654572405532602427813314197791609430556620069559663440896178482237123678002368052287360588094892878146370471865760558956532927431520018232444973769372191408050226715331561721687796386662100540167998644646946748783420393618716827703300931845996444114111514325289423307258180177451717331260675508389117219480650378201569847019593054046711902926002797307178234300950581008608431483665257256184486645677927367708538535527340184884408880360328010473162849152088893483085422639642915500714819560854883339443627338452887706032695096690162917195627705017975774396559082662087717712195347459145425457733719233990829006860313325589645844455249281456485781989467876070105070964410758470413721249339306199199218805870091004380080388591928182966218283432471358815044307628700933602604841713764444100416478713757538944815934921858935986954224712409073955329301085671602162921791745013016641943199115070201957806975738002163339748114048341322029900168498524076607189726095048070231471154362744737559173218622727464938519625583384982769745438245608996203663272501291890322982257085243369269675987475375811813422609653380229285282523296158842898351212567601120746935781686980239193820720884384065623530900880482593061796388732029141110619265511508167770873529790550054349897608460348997588151185159206972866631346947655170942048404354088794402440916983933096309089679911717959595403865329228369935259562666503438033755112426262105316871609426560822348404645129568529040805970413471640354607748315476176440051104234099821964415911963567626277923288223597406087847505431297146891890101762534762244753143335612616546209482685565082044033180824765961190580952350087208607370492075362027425395599322226498532369341128802333051241631960660394098579081287049328368738050564692638002612981390044785108508881461547259249487724437445301861458741354313092228701120877163605917208662011114741223796573488859921301706988128585699314052253954248739470941319140909247124850790709837543941045339405875301492508449199920584259836895601239320841790906013329216792055575439212668411319694995010807137690954788727430417543832881294420456926648813944116290752020585617424709416390601654522370818916490067206751570120478326935651878655847616145316853163520364257435160295525602913014394908842387362836929631805227497367928222475075357075236243244243221778214052714776393421650473887477351208501004205876711061758261407763724148067994539357851697102160797576702715144580188608054759977930632959091586593826130680082107952311535667715852322514880864109890919546720374089332740741997110898387090623256324283117048809865966584107129281060009853128402790203641264395050797247182144081061868906434047426627747011490374569383991632960723158639662378625975268103806721330579844499505709152705835272649390670473138256336844798340364622030646540434372902072413733123250787506792765159635682951156607580302445766290937438015223522543895982470334510800723128431731130758644837496525299195488773243993338531119361166712642560173849492061106137320537019202077813109314489341914672475959300795244847153895430214035508259285678526963410331687695640065281639380331353079771433174700024687145987135659856810598250694535372115549489981113411819992843810469450573023795271934492736815375960507606444445472737573127766408100250751964125545749511817440366903904479496230142701228344640139591809132975276420385670256234665727939375578962128949515375511906422098796708367159805471467685453107914330326005626500104714558354898671202838891208344786236686411903655916099468704894427024444794052472863452230951593893694652128209507311486700612706437007956245199220765678042791553032400045953830322707353256301610190864799655426314188936562402810134003874122078731321454169883883149027296200965610506279893751111919667309022550679214984945692494421911324519530579439285926065534394159613968098486299867518010896687528990633031097824522239611284893612077163824745119277610115838302285234807187606263504583697946250015971336566012991232672072723101965524729111226035232075635154977408114631125293892226696939743634222884872954041626919660059115071243357056173354725156494781517165272007381522635532722087719150076780881520940526887155934104154243258401365592484741265278933800822047777736647946920643794848935238669956326663504996468530371552542191781114385503797681367251942456792620285457625285720863599447350191415901596504928311873721784374247145825112382645426996585569517140303716380699000386407483345602281022238073862059921198099861615109630144666414328296969837151127157837692596832508887463572825601155434499450561185765867376053801875526787440817757413218010442819328479629999222747505253369284864164824744487360026340505474063265540644236203983804579683235040353611980495382659026181961544420038216262795805889852553934960141734846455586766488129544335324843236746993099151459106749829355457827584039044308369137676321177771112196952804175919977052419006083558503394480718171468386940479753952943993925170453008723273507460371762367426425176301253743184769051311544503969256151089177572801647119642318667838435372896417145809098636880869957184526085373720338207324744039775707836269830151463339155801353941929157927554890527087620623617918951730076760797595865422694698859853473446032847300832625224210527354731289631004520326638754191581754018322941393993407169415950623980821158197596826012129713035760813483779031248911796853359880487684362626971857981511601101602534328089238509091544898729371523932403520641198919465613864920535377397551676495152909597300086858374128422671705483691215008718875936124794752380506285951102746264933789506529855964928824237277457379884200212336931157600003303136501714897303583066916173223743449467481124216421317318794978620612946879013666599756776545220545158046249772733992957340014100745720739671346930154375377783946027012912070225157354439837653207982050062458133710838130950047096476941089904624779469904352330868350158452162197521574775484121580987528763906978570755305396888648106375840540415428674124765661434884137950570151206332354787714895843045484767150891454648704469580407679375582318421746060728739102529294129567720661934197667929106130539340463723346873841144805241114863489709713016796113508147051242126875527258319525958019979149569443819714678163391201075798879987752129828517614345704373666314550872893808723251500479285889575276344824542537592722866282528753021183879699900364150202065516929112421590578627882871276678010676543617464944468810331907553963245437438856835020529796854826126773892969174589074358136194866323253711779382785578891945758993001862821185740271007681238262092104881088049458760237542127945416263595202149938203616988853300072416553536666210014046842457688556206417391746156706532658635794289814870857159450386803706845386139514917144938582963702833093379809174269565410437749526181963975161931509208393399562837369720823436873343001686033656480187000982926009696918698193912333377391389674038559027209871025130672624325011003098354549303760558250800980748034669288936378260316702465998476159415113468250380959665230056839340822323221268999454856130915490222848577681253737481973589068626992292098394514201073515114650632881759165867850905569377674114882036300463421253189164250854568305086730846327547147958666249816132415926368385361607657134703099701247599721806704762521559743470060394491132242065156094158611070939690595260433278521395020751534532779135146671141931936818181166780335796932942566589316238714199425591355325891380416428486140709181826840340540605979998361215934169860360772319484448598747865906182541005228248524155882861206389216615592568339477592121631488818799178763369660351375126376232929267156071248982540975485414283231615995066239695007618171000733102782084076525130055211405277633319811073086855301076797119881524517404890126524443246535835972840744133457746482484914468688210623412958184304202967931884018569878956214146642506926202225560659556077735087221192987882129780424440530670003783519557866280405581071783267073543430745797253264210129876649077543670409120695769546115248961084783414450293441177558973837999725264242183525918834959730598090244820714512128329130799394175274649311668085983801318314620347748851943758683347649705818959913865178499918242386652477054097997711659837511129037447161414797084655066098642151207746427416950053321690506074687485871425725190213094218644678923336397422493485449573416433689026461036084216543303733051377649338634770249113594512018865231795109329130344389415587467976509368306807272333273622706133410879116483118661981925454374586682180438048630413378818412212135470308476564499817386648436709417531449037303735404961390634333235856441788311740375040897962807241446840188290679578334713277342178945026301155096108011195719262214496812380506819647180175568272748048492998501982132665688100975610013164273974416320057368872283005890291964084342901236643044014575579431155034230355424992376306212163916581054384039240757399897127939597731856626179168619932065409039825156070939725564616671019775647203521477690229629315090763811914112460770028726162235617761369749297563649300814319995584187851325742216113496510503138003816345944173752323304650080320997995672207227586862344525187882788759861062395714720794628478115977282863776235835184515574621340252094110757413160022293916189967034269038325323641718505434735554343371488817923521337819208616238948838102416392849563905828710197105010467923962135350921391586828875155854743971509966991309377107435086668632890514316885942423117435543505406996122736912412695781205494331626457764358862097221686011687022203229612099933716693518902124959853827293398933238636057087730440313284850983331751220851533057724262833620500753520848756484057235970520643851660499457441415037794321332842951097723110964874364384866636480057325707860827697668073112594482575840597697689932534514622104998586270475830140804238579469009430336512409938854700400429119210819766201182674993575043173470968471227863181506671885340259954038785936351587772744413627405232199366944192788369146989473605311855653538645394721303276772306872737297697281267630895003261642064525884177837874994169970021892203699304520732503580391994885123586057523299338351808916139680006961785400590524109273213182442741565422470284850750793280045246502515696720094285427018807939728854990871762608128649502501682319224968002482257022666805254528002646355163416300826387464598359134431863823281129629613743677081241448357377570322430340611628690754710927922722881885927254317617637732928411802161870317628987585815260299712049288948318259149448591901181973725435838934608608483194402342399841518638482201652734020518329878543552726220132773666810481533776370794428566205669766325194009813148146453567337136585697161073036316030216199404455760871999524344762620690345870740467287170795198689384699639302653477367975195191447010854059373380627433005356357067938992390985584641812303249852956781932701953428403945598611147757139665527056750392730092142853349410370719422220575974900213954532692918936515573304934500123252138683888709732934902561032570744794887920075581179543376540475432499141090488205898177597361815573136866018363886646440450479648183241141721641446418439702397065707629825862571939284236355424861201525869939775816997242552944898395663668422373381902932939708902230281882311914805274650070071425590136790584240747238448488307816329606384315010031968379924564790806400092089290579620111294995771735238225684930498331287142560049039144482591088912224168130406391448330491152828002888214651553922907444220265654459932082413031741850245812028650985097519077466842930370800909618208779579440102812041708857609244504235363833675549946119251764002893030569595735436469819199195790432570551846417181838293528930667907601692659641576382227868016021713773499256236927048851625496755498260052884284204342954773671014329064371839365605718055722315707892421757192613382387376628165061164030559420647353840658408803689311586405885236034650823758960305635754421171485459292609377731482543909644614605751008136428257812962141598041081198693046620172230666274493112633517929339809708116987411277931697571243155206845601325274519107689791410998278794835285000187720256674221938508585950774065455615324711018421782831826146333687594484334694253818581026965863598556372289978747370302000485214998887384260793437869690063653229367497165873773995312645118904984981813980861556645798247446646573629063453199868658874811490017843381524918142250683739067508544248297980131409335837677713633697463456220990631392747366151850341564771264551767769137543243109227633151876235867352986616358551012569059548655102371126668117235670064008543612239040786432170533233879834511426439077242857779147869668557494814941205989220079154828943849278808901501376517372413178614323296848570829354488539661450729350806832238189709099585460323370558969154858315511538353768858808780706107488063480422135789809444061696822468601814005398475937969624735427458175194725202504389850941654283513670961546362316999108792979624217956979929425972947657814630275569989550322450928944149524248488041978454257415331867394536112215220075003557980420751948976761673305315471347147667529840365387768570887883737046094511498220846176799346599044217328050007188010874116539181187653495496034948252440872600313394252874917664993082333113281108017096643084100111389488974771631063565499205272166876529320082240048277580181536353459444891369449217235125014784606272492947991632561973042612990861004078196408607008533157216327256626815056424862232106693831605212855296647560499973858807665066542938187529948789853030317634858063405453453251285124316116712080551927199400603211567908353258130574846497338261815106772729590712695205265130761257227294444596368635554065723525369301240327704046141394763977213833756423254110586804910590042119808763164450302202397513910855054833607482160471243642267579528521306022578310734966952328286534157958019891646433890226611427827980324704567094484522435139091728489875571206069198506125184635254161703210782758486589838820363262505532757686012053535862980691472331878519647856843379285276401818709730548367230386741445682384703854629819540718779225839919671407064033809699339708647859428224280144317312614853942665988620248130553986370077769135169675876490470734887935770131694522606016428717088773992258412276370557438045479189722706432403328205130370349236675330395164797717608972226501618289916473434521184731150121388928035167540050324471377126701928773729550955493413139260521441082508912715575302465409132737010556502586265705475152879768373995962082250647975731747319999438033500241374968699963697601418390077259940755048052214413675631269487811156419026856870802095901508715093863260287714812230682679054638967129874048466761243285161313005567233608564459912620935271668909740024646469118777273357398158105325446112148785621178475977084394626411226493864831869077654462343404834720750665226648772507638020707476204756094169691822020472612935118113860415253392025693163698563004051005823109020287600289691716922674496850362540099636115801687994085111736728000741439078291866708023583127464563152464399097891890014574846335191138387263723447024493673587119729113971423294158939541873420908883687889416059418735255169015190005097209836060445994036382629990196185742184887476573257941913792696757987888155116837675853447123958018225730944338311359910065575300242161667807036041187560281039241608684691341157598176454411351009399765746615242906610642267081978576175170951792565605364316979440178875461878594877648963564677017850508960535373365360800726467045663114777537164740503470898286966852765808296070725479326248489463357066615140077443711183397708637129982360881485855319593053586840199369736087373402364154852869485485651563715263664186982779790420165243451043757706268782424851898884077412571801303497011783307040241410571155322360149438536017847820825238510753230292869710823810601210929425282016312323059226977443209534814961677508882075234659348972691471247151728563216145263143769637337028813112448272329038019031538128381489125141990645587750191920043355431384421189949436025714527401410735986070278366230878857323562367454584909962088444256477138986703903638733889167076732940191343270294157554340845772302327010630689073229971277585132883471100948897316212728379249512485528455175769436596042788056816588280469790247162967760861727146236670213697061285160592869201830069976218171487147843892292520232338708859979226826531604322716742159635336890118954466638384065715762096375665158205359658972343254130131781027259839627958829306403632747418635747404871749402739512249492346532135116634573321779623871792996852797804336086004120024156543263467995640491622269750762777201535753569205962308641304447927904299153504469322144578111795151546933573540089676725539251857208762903859881695054535095350609160344935856270132428639759471457269745200478758048633439272139354008171390924586655624140103022048767994032567719589258654358104953001245819016596206050535011557779763897093223561650309530968881313296699186272601679168969459729567429943488811658507567237969325162503195961086093660146373250111914908269231847360339506613465755780980875208493171227072952384830193503729586135435556717572022128037717803280100117421607363947133364542929164062683574240745714724200509873013264003022525878454716089198569887031758207277762883223772225450721259839909945195246062143254218156323496889359293587529828568382544742444569378073217946533088167393170460597995928750611961256539245188062698378586247110653640900748946176336451969114498438474245318496197840117543088317449580092183574845234150480305030170807499259489665666188890187415426184536907103033231234869614061939000683966726715744617734031330209693034065210575108203706576231712520135808013013409130750925114535675204167543988320568048719627085859200379689919061156230332438042876355994050240169184572712267429524113398900258910923952868927535512882393835037959150568554504297006947600009048443355685661764089703377539254563657232845187549321493695319346564464730018302259729324455872981440613296582088178824914085062413279045193280815327883696807424994908205565682298228827785896799393647730286071562258756902065378024805121673817945546548464943893043665350739059838074578799584622558197837059864699139584821423198901538654112854067729167133031322111957751617975430401230878559963636999685309130552435580756972298335318848276372089749817107197081198285248150691888164144336934519642339529960132397196995530126040475331990702294268175562659196534096086461341738903516394052545559126426047061266216059147748002167917623577801805687421357395738989297218264671628516139391390169555472737846391916542656604397712858439948391889330596197397399593013780720570681102317280739968681864492253634136779406370033246689621538407043882306795057586069483476060772022262920179114636158931634119732166430303596471692977152764227640464099869481771057393490584839130703031361257709887752700904353405008913485016437839171414124930285386596172686479699375693924789788507927136025548235261977673604267443776352673428949803224369931658310964835672969391973791566184557723656698910051457536603652645282499172776348374889410636049384151927314330483441465284313452504726693617771658599179087460779883719369627075190616764723290866921134956068004194745613527503074292278556297181874079280348933067119492899748013100352574129965883368158300123551076512800215662971982447913597530361734107702608486572195824886735984373569722256407361906732017036004003750159130469766223572687510549051321257489204690522487087237948141703391724924062471412620937287259326131062103404187955149092231291930233217521713227289118702184259778164551379865482470464891198930826173181283261143336505366368816618067757090622695420528143144104383736744729457198696057497556338640170467278095563374382520634971384032304768300253137182426579527523034860500655958768030657615640958586600368174693287015086668821108450027405649446557046911351395764436859641535521441571722346894190211525768445256363571771180600328528004878968350919675683030718713426967468018618855581610582436890111285330200592191266177963846917566465057835296840491938520086999467798249785018773269239044208895392932115455559871044532887199879440484976556675997385615912520744294976561858154792104589942596111046114283672424026351032145128508228054996956663315959493008153947817413635305369582138020546797624899175177154096821162560104824155844442798618147265302438821875836110361615113536812864701005269912545792610124010710352502968219136428640024896727457801557844916544228675987220561834378797720514059777169607993751662703465193466757254593833142854077731445566754493173351121584341878657299404207381715784069945532747027705451126393226799049981401717154525486912252252759471694024119053854837902335125558849751597994983116476460150940263542878067504538402022619588112071877448470968111582680972645610449040299276349411754336581540258450671742447080153708552926553233587549373312969927270039568083801229537170317543447925463122491085341077681794473609883698919206889241491480080674870864039275383051342843614645941242501557891124524291347061883439726058910545470126816531344707063340750710201822124821293324444760943628842809893307817881488678867474750127517656895755053270830091690459027424864194323506562030861601107604071587217150801671442482549359458946512951155017136816939412440256287862449842188887186462809596402584623247416458764131022629751029202682213912898679466791071647987997928549976284523559823164795016789267194917598762344144053474410289977900061247128582669506165114563081013047299863581116178748455557402679673184755518466006346649864987273044308115832411438532784217351770317563205036623407842091235155667619283654199978779765908994380748865252722986114871591650599061701138544225627180387155898588231032380169480245214463337326382933771761495022332287498394581496346802370697545814104213003717644199760216579594350742284799202525437009805743738029064617159249718601048799690780724958434644400737117007942433055363602194727157863809597036012847676952646620243760823542982391491204899689728470517385956546587151056888009195852074349819571631673289269215526860674798171783291465945203980246473974252606539463105495184507548773791425643228442014996294911914336404883389062438430966926775761570216095205221220684020922843492000187890857467727192162600695512980668964512391751725011001157152918774731253299293010127936516556678722600026746397275186548497636901040126432088143357565452817014670342444522473048413899891859188528892001516677049512644751195542709254298367205039523592835608454211787060948463420955110836944538628344719164593472767398773266622655576278541915423428251006355652970637037183815748147408100405678435916956576722778826028853404169398246270764017481609157821536594722588407049160530232904647319206398880863142663577942273717064861980071388644937720996366558785975068745799043483223066318249849909536305574805571437970330830357354361047213350392482811312164781289383356610752697303247272186717587849802491103950868779300501387797617241093638585852612042676233164440512343489627059075725006047134543881907835417608244488968419383408786615237068145051207827842776612082631101580332145824564063579798174598386959525176181961584168892202091426455056729757438240931650439398669732810739507825906349146465776871291814070861317030827474903683362802772871132397928506141786080017192701848514567030499104467745591724555525255349496643459031659483881759933101232305926291869467966092916363396491213146422763773803117341359748569000603622935291215231366339182651877268552676311246595617455971966410528910313126425164187504409120840354123645556490385077277434619012008863569305611321899060853827320373069238692715552687209953982691110011553926868158858446438627336334046227984852420958980196577309398478529157976583006732767335815446727481986684023186677129085305078079899648458551500697396354378258068609207932765133242915399420131904213245354484209238445427802863224077139435787940460574495127272031476274917704723982442839175696266801491589629145418970503122569380000343494792821058667294055978848349750759580115122059219970535376694114229673957032705031960187481293225909777999953618379014500621638244468702287221015104299302689949900523528060261466820471238173699647667182534742980319871811835210881733122744764516045846585472070488349402665096989426345850659751731841916385397059685014473925337222247880916397114895315672656011540048126845453158028492296705412079573292234167330108004312602787657131166301528865190215700178035266278705839995272952687869558097084354748619711783900200313909542077089558610385015551435242786594792383491429963786526925919568523921933951136340430811445121015363462939348441318842991577647437891938138816381031249106873612562730014776469479193016447813337223990103686027606829843050810312751028693934896717140988004886620853875568615605284842928853762272480794743230790258946983554299019243682439742405835738788434287919687558841643149796406826656142446418300837024641358986213483764662318141163688396916329436719687736636841396033293529416091542419910464224168240522262692344244109533299091417941949774872125295911420631403993835732633569699029700604439427077833087588937014666533053967787435942046744573516056737014198103450197304664940833361582486719029852621026604419831777225988325451991389393210223235518799611705635276259082490034634376463298444455006735445562580018247692227407005466175859893597724021486011653226917622868406223974795427609157688677217858139413320121804342232503900348759905518136560098537235968968327649519773333123664247911750469950949772721264624563924388785694652094812250971909619880138308899156046241250430417307121245517667271727703690072636223310839831780762054720348713133802639410977257231257899754618902201651550877622341910320776137812561267760155306553895869780513671401070848319061714919779620369584418042719214562407961120405236868989783899733211341224828617588828180100649327447154685773494488224774227040056599590592492094926062462753664450990050588811710520361906151218598622436413220936491467691076592019826220124519671354902314676399425782102493924363788019441234835347905325416816349164475282176103378606017164857982097157259177712152132677348966942612793367712866877735612834908895259306138883038820784990390753634315894434580513316968937739839478612108406195524494010935595380203538404003882250981052263289709763704994660132592842715854447528634705805322928170295342028548106135940994930072649125861693069521023191007671918607260461078352945193905875146939573879718963783256843084779063043261629107246113894536172466625290119530469333927791738215285296952384314304393683336277582393877418247208289424061725722180531919008171316116115304324898540582970119577283005423466440012161537371009335306970380502889259726027436778547682255597634900950739766141425196360641385753356690836276241001091204472839313263713203777562653560069825202912022656104913361581843117675874148957055629399634845288600003628576045657182197613257276558898366659322714801071916509362385088454231257068775609785052256518128158535092308833990464789510298735750274253972438612596405666961413302589597217542876357687734987498725673520567264717940830994074705497629530981836917078602133337348152995031084656721377196869895887787385424590044273080668874004789841451650886919722550787879588032390152740203281797426842885999156017279189710610029296880539782269918308702965792291094264080886146466911283057838103218797947651868670299005550265311278007273252261389104984907898621498484085285503009649068459774016537583178288527768267783517521097337595546159067119713929405314831712189733016748593314946404170043271085254839504386009857986176364456800805399536971540130033274133478104993454398664780435443093271850404317146329006075145321244748877475793330852137804689908127121259277966756175903139673003192427218570985373890194033884870710507865268216410733902208193318874418063299382727942775846738027198639251694805548562501291504541968107604870506654096765693466863343126132147490329737016678986492987283090304158710555482363951884150124188987474347522674813701156308812004096783745986920325472764929604156131823382203598152259012485590739726569514962027734101525367531836699598171033351745476126754482526673550025634664853759658123521505588150689677674387007210425868872709029886619481243061312412528466130485193536898749891332779935329187035054816780846916239411108842686932043758347653053058942912842711504477057799553174377953650879318710499554901081725686897410070368683943447305656073865859041269430884516795629861097427624954522132555557946609225142711663246461126769665442797673871576058068616313986589826684541506689843433449905104629742677795686469009077109970464868983011723644459391424771360082514589366696039288346852610681676891341243868022363470684644910309208453839735827422155986622110987591804056817682283536537025112427594997360226702868247247980628159293989009647737614890205202182074710905266342501483535619157387207662799166439287507623151400510079429642055413033175369662932165822762914667290405021810819412115124401304580013569683313276594991516301493764630694851675884067747914299670754709463877049220437822374757309404158146624150714460892872815751468062883348216950503035655254017182323015425124130900237562304059834436038066271368122100312861240089439877541113422700390612566760511976472345415933194372913982924418372445401136823979953196171716342791277685329025054496097411499841457583150610089352713682021974690721300662290207221901117708447849264343287836105052797603138012463319454538622747054137088225189037757020653844366228069583772014678762893396826998201716501703812471978285191044711874506244257601209133237774856587388888144162038073894497705038528871969443253481093445542479975670527586172584512462930192636723695874282449639972302591298361655681661832578307776337863263565618904139391812550014201051382044023688933643645895795752466467442403800992568293198050890838462506972668740720354014571114485881244689178486490411570945396296556169396347567741626850767874584145710248893284201669848368376560863585720033193117141715334385406102408350901600691266569507183761199223665898795806841069569864033475440136760335915959491377631646836287028012515574509478141711439591778245590917986553653304501954505903933750033274159813014562219222023377346416854675686013409317853864904832301320812835024434443993203867513483757880370578842676776038705758788576299286584182342978766046998263600904881448642679262224395749777921683720388809301041915822505574670733637488925165336430987199832026653358228497004320245094230172772246344440148851924996324379248913132450793735837607553020249330627261922069606513053473346422692259103167283241067956117043447567862102923485006788490089365769304648540377874243122142851546716033846818586252955738266706920166545554973550954673536470044985633706515549490501492065207445140433563217617743737944506642826808868331989252631737947321949914548452762792633172160856941883165227390854819246463453885962641566155636208401092778422744796777664305124865359514609900545214878948562713925436223594963082953509985722648858359207172370593385698809839417887385364450003139210542780106622503207283501041058167785103614611807263561458010830766549898356487049657907055527307862545563668646050241893234399075208983777852990639295872717557916449315546531534413683016094124065338823829853473528622419345359758084734264977818491421439281696033575467381926216044601550483795848322906201781120050485642034280643609177040147691559267431050061639587137224403859563693233286409910898836412769714686265724529586736456148769938743693072821472552863842621027493908482693643785087223117887222068401240077481396922880508294601768759376121970250344559038854368187907918357733787797151945808476049909971940236595650826843125247231053351279348467618048533768816314455520604074800323686547801874834119910397123362714449538304292382319430660102191574600227724547354723077550348510818200058425131627839180422788053900832968198280273928051977683647896908397381032234130529572664476346226819153603665352496315739214046468995128099373119841189142002078048178304449601492556710729430820280184169086619309140368476696931527969269548114933997420780473473303419922704172719854443923368299785034925464637774075563913158503204689846612119454929602323533834509584108656367603501747112030528867735317697360686562917566001392019327786571415825439799939668906223497082914647396409558079796499161710814294783921492683633894466198030743607697496356499045290300021265448681500810675728244956782784988885338065173841905371499496435068296278615372364096277204838576455921102418585182174023575188102395507642810893651746494120892729422030874717764096939432880304449494320848715877821265155720905900120257342729911711642064587691691948201493958438121880879300611139297183759905645198199765191515568286830080853331194135490800398640902449253373219678445289456146057393967794422915256693900834570653181183219604389889472363745581091952887475460653546168984376493070393257780282327558095370660984528535224242362650861119030872855127402925154274472208808612494973889643056841607663674005486185068059247174834158641624558295439087173747422005717265295324555562068193610577194797353040273171074653457462659529712598821981868429575493181650407081499566397753251778133644442886488650970082304159348573951527014406599259242979035974827862488508720122871275722017251729456214519221295165263421110413671306174814891084849271602035903619980433382347747694365205926510317824913650811758435045331022167387912379393325722900840015909309870916979255463065772966558908157458666733025493513283991025509477014867542977113142592380095642912808206896454608488128967366567664725699226676706476941017331754937876608952516077857649190650151737612215497878105444915400505752821358783293915287990746667734973308014510608505276972662836394667069850551368227304926100454577216716826434880605711489931958884964026171205924618878503097763495209328761346727624432819251041393124599174638896867630683361502731884191750892824650164489066088539471553899894544195526956035436292098433339548663425606328450235021220259279899690448284716200814182505975668579790885848783876406014052365845062330840147207674139734506919518832488963094148386119978667585999568646228982186817689611461080203016579236030208588559137360133732196215427381784716526016759835657068093119513999780576284676896806771098316636372284513169368851872491290741598416844217618552384512350595647395056965147377331782963155084256590405334125346145378208891536141979245589570124708754644423985956731572793193150157566157117985384161645563529569801550187719642905047308613220391644678228017510453235324125538925457176398516812979532197006376674577819851613353847743110755811179226095882390933188921792714958085320737830092021051098484957282362237707697230881370730050127483504812254957672116640376988968066425388992379877871227540146027122973184147310089468296732990359003364708796503665454902440144887120852874020891689490877932316792319459328413832284236859145330242474494606849106809337672695581359911851828785131713960523251407313933928065526424349107101466318026795406278239254773088664336426347967030217103228808797230654143990310782352610202576664390943366408324836947568833529848894492872990711660122616807839210123610809048038330758684169731884669049924926529578059960378235727377377737372273511715364631347154778157773403282029186108118069998065283078586154374941736811519535738483894447015134809375419156366384660301362427116583118213834088416477977549859474410581573543220427253256073332795635264452044668818807814688881898303866810716973232459931696638851790964147850552815611825457505803770176042149435930440480736288896788379295605742547013916004454735871412024974174010318992525199377509071833791742667739748413618904903494416408118795529421041374841208158838201747398748884048951807638790274097421026626847157478283581050551921377241049267224904715146209631027718735091313148724571366588434222977032645418628891498578784325724292070128300005020201921949284357330993515724995443426853157290154522114628484848185106716327636846344336752736481991454767312022748568074338882278996852946241051519303705943363043441474947629855449432920882847826595246373082111823361694357228587028821337582433742363521660226207769432691957755181799268871391911600100330815077621822505621553238722171102343660153257575150955256659597867786113218433022193993841284462604834195387148515391978535569078151035632534905725655806451845405113897066945794219313295113456818906173389273784245218482882440686096883020215062103811717079056396075175616690582320428963969345165346711160476443980509448037338681630136865963879750508877424710779183404795743028153416056832968126583051787968680706763437348893471549892359270228818420378476315962642106566637207988338606871722219331062460693254071350180877487553650952436949133291968851336056141455608469313160137887690625903488496403624587495825617765243988264783760793976292817245492593627630362983883032045048980953558632457838506403993558249165325583581620572501978282345202161294935044365180526561730415598831627540996992381755763961249558260477868363880995189628262207097452307327579448383414641620111657963078255511329528330251480177972800578495127693752504456434595011708864985522659668890636440272511035982791951453048337503261310144444771860046875966861025645908202580280385897406849290418394965402020987210751410532553144081933774503798795981710301229469240944093196243163512362206827448243452644286078608483992090845361614735741385953609256935979077058098224790652429073025397320129266118806784104396678512382794281605971036460821813249380319620344969321565175828068862937882196549473550701619654140780928168391936409741317644219997112467065999873168448939964555054338582503216823008956218163794262944023846337701639893414762932978923346586406708869128528084950587510608172607284222801041820417768971599471635248895187381604455888127440465536942314932738119592379184291310239747506106929495188222555417224558541564198554927116145918780771097390680356947407028806289704466122771182314241417924548078796040046297151151511710920483754252298099624861771003061407073003480822286894906072452571073688092850735619459556515942190678888362178314115712736643457998511970941016161493611330501502780201675960854182381489204900335978130909487986033285049083908936130949765824370838846304898559093489887593704233800567642781355332639415963980317886479141377004393436824472652790398008257773055295094434940690729849368728812925036521472803735619412172780059362337463904376963359141980385249688045749295388062124003672010120323270757900055128734112465239178510262506133628522582175723951360823886376904681098099460479961783675686299479133726761650879670424281389401571649199438456604062460938998488398430517537459780131234382869703887006746570300791275353814152581410898849909384346905961512391375429596833854711604062893346681848450270754547345498892068896372305472093582089939408278010108421699779362866304859802845036703317856105642274909704916145063898738302843786759346053316733683807149726370211725224299973123675273368224866371187414353128440943498399326830772755610277727173553010125434645543060971324330274255477164487440167652065233111337827706101889316010095519556192685580437537856536869185983477922401572373154269868649465889834744943858359860575665241942553161691852482505318716840809989507404778195756507344901001206294030721868323496615423377112929721452428039976012367517572347518221877767081487730627702446415615077022925509636829905378816438834308106029126266380928908166861748398732884108729787900634224031335943902222494831411645323960639998938802937442486446582387929274820549112678852858493024985744448907275202856942474312259241004857246264916593096652654952755915783525290011803829233702945694337919861503320288613061188624139372768592582959746889037565228959487823640940665835915671643164302829949613545763160483348921499339859216813001089886035643200982438454485994594032503194984335563998024100774989634418419487718817031906789415650366345123130517259244155027629726866115806706831339077470347311071518398161578969741199639984698518299285276699934928701898577793962938254004167237299774975403994678088486184811997498332312343859785244626658957055020145011329573491405880027698813782610942409533703038549291117511688650159240459351657361937225017049465555118546239803626324381800924188650907958681555572860560763254833961259824116285722368614993912135765041152633206586958874956771756989261434655397256625283779647772025393947299657869440369953064512737114495103606213210464652409762734817258050830424645412648696621801610778204901548287536643317191894173183596374914445908915526070050197267110110720767295490813648095796218985469270976308628192012088790062742840323293932358677716451781624754819900188565270629005637541849110680780199115604754751657244585334371331478311294268667638434643070465855253007689598908570149050711996930124028259768332072689152133979184347485008015010244232917630760339640978570297899112932669958192344593065645859165257560890813538277644633356727701241268057276094458765714777225391229711077553308224575249209029259555344843530774888222862851982929569532017739633593680855415635764995599109304549668277784515417538157947985286205495524164117306520064072545222884179375673532340810104536802281069427603060660386090039572681756020111343909808645804145994244856947180827229532780271349810618730361064999681702039022296538653338324543927465337378736899596821204478784704834306397813090826851427659426770044925768531182587234732631017861461962227279812405787296805737680323869180405546382700864774111349294849305284748383694415295008372109083795099770564174134265692108099236177615604931901736884502549647147999601155587962808358519436679672778188535512800375830144712717615697296616243500358045272810434128489072755503346207994413711225102769166191909759842506490043935069349195798182201379322875186774310984892796494313166506720319719212818727898347120528859480473527923930275152587457119940976441079894169822681815234204464483555788876565349920493867429905696279206421263137663702704191174602035734330110954890589702689003851418334887006228204021581472263977223773044273951016507046208340002016040342047031702288088597865256575001017106490342990170729620765995350140114677354575606105559250413909826769248384304473755292784775001480183371550492157084733474096295763438963762223258197909572579416984769960146976366652042562260647152243501567451728047042597674679976689014767339225959852107855394089285694169918165795905949836468216676337938142434846932651979233933540682917140376620324200810125948449792602277935990569256609362190073179012940142144824905956385817097264671565070826443975454864144075736160437396558366358508566301756811096199776840325954619927927703015453015385498313536259021219051058550049954494955147755199877193104033438851315795081544583537009091801568161631628858592535790511511823994984265992669966433721376583982295800980368292711707523089560980868098688802646434241948446032105292040065825405072309024117050409501187612498123541984174560644999777469890515607081153771968242927371703841840724854167567668768306639943196738169554369058685429883621618174529487062028121193886729642648691311497296473366873139259137360757215650649771675156269393210698429159359572768756225377387823551490137114912910677244107607075801141900967122271531503279502824107698215056630765493481928111635406419907755800527027096836688303402914663460786466520595079874545113107618062815487977074527228626889284242492799450766560468515657619962653739277157060143460641969925834078507343365890678330604186104856225642397747176969478207555023369510936592225556672286423108341217195200360337814760498709064134173219435934689304661449415017629352514058826539415086873913967707895037620154860453884258085552860603264912994412380569796979245330794218404741000300264399465587903868984251870526697139144503859511573815904687585655555143573526471287218481183950481097026502407539596029664951888437681504413525455024198640296437281498518052494802116772013609215898932274557311695997649455494195107221689587697031532413566570903673191004213533434939720813604360498822960767216655794193360976683867053495191499618504576451160461692168065942331655687803146986621411216985681579293345747800947561016408563952836223237838746438241156374830693386109218246093806477442046111382090377603736339873303382212297310784757490612809700673072053828676148957988336605262106282539221350628505754934097900726547202484285497127088055190739913907993230043707285418094503315638686891308439502626476911406831075967470680787943621350252478082831651640294683138480629959420426082233590650986667857277527075019621670849280706526268208260928177758909797646182324003243899118041025363358942842205927630566824030112942313429539026175597829643186875909804388262184745589824764107925275939218080785393589158475022596389093590735017634270750237515619733717499175241941115361163210604299126214070041513656573074986994108399419343617347087312261772843965514108019519028514960944689799339478130251388726291386182774144254395495248701904084482397754119947645200604102461849708110596657905276335150041896934169195177961872658108825874238041649683020057486702156255623911812892196489874078912189007839767222954191657212847830271193810540341633611949039515421275293154137471747537734856201890589376568161792390897720259642708025456385960614247159886328956489143433916515304382858592492357630158288065758273367634510324285456890829948077260642245863941524932402058453000885279720199618307584567556057621266970780285743988676925661483724482544375549985550699838373718498812430594435575689069851209328855730609091185398314334030893308615706496368324614805832051426280437336812136621946943753786292956111578150004746704923431580935004951185751367134020539981330990890840009196680912621856129241824108358572631551991237828307062436746429064891515966678220387549351443114965817420526974862450652547404441230980570455366772558928264166552437348789500528042324083161289187976133819951679877745209897444473247779085015125236417181447112486017864137266602321147029293209219622620992779967073187453676309687056817344666935310680485676941493211049803875641201645877603970107562432433353298567176075906577689050855374542632229122533006301819505744535773436032068878797476095165112073213901343870226267175744250886327629864628935043537554698632604581099022196369256682370275708647264557558018883506951004196777069310831571883218071027029177170478605706338941326621071973027164571505920618676993000772850511768055745631748819242201701181996162980748302230164668269375443805141858212050228708439939535692596352463708951103743148290601651490771800166107970354454204251328384339610864066696525254883917599505778596103768712721757751202831960592595550605545720551767029756337817144355440676650095443487596845186447303917256185558072235094711904909592761505396598296703310790110631663012968890789058508700903502365217541222423469327078317081710343323043350416293900828359995410101243094257970836239229994282364187807061065359578463571436388856748929817671002910754054732090682756513136215852467014081662932552175009773513517686518043775470472774434642673297180333864579439213765839870883629757432165745512696769811019920553950428704546026917891344626091624402249886494179393614687582495149097892958093648152174185532146030464746574282096801307075146272383931560668159853732374080869539305357378395124130309367488158167323814280745652193654126063334363417470591422366210390695824456271419299206781665543031244189152896232255803263644687863618826675179026779981507718819683942717190982626581899029611738003395069061748842290453301075887216530315183120380827849219877696838630371631931660203480467944462681453515867405546075571753993732029986007880106412880052556511746746612165879612995366541496296716956677632394354079396025516559303937145504587135050356511348808207965534042087311397054552184652851828645148163744206573188442660403858152244931012758844707783215590103663526744091784397454035032649895744256810301641610166535556364988762394498336995937116651945563980590628207638222268945166341152979685830549722371175633764921075370551001551652325210298243859099371979775228385641660417778062213050503018858651145144341416774497275449128881198177358848242727978252994679129645235129546631314544927752848703946679859173290339298875729851464035145819697339796908439718755682797256879406120599258813919794535250001057653315586716772307888694093512498614855428867613319076077087910747673629362246361184783894203941812737199578592565193264186135140445848264287070022598792359095926769659534328462383094282150021493933639778893911108544558371884154657742443162611423162038731970048327020564283864075805321809350938006740776552790494261966929654795436268181031914192232565842410971913264901935947841639488281857685333202693621735380906820537968352452578799366310915265322737399987738379870348337151936045701470850508502899705722266808649648542953899248985876928875813904429576912046651716928951282844338413062854977430571476243011371771404276124486121568335845566748042041799239296773674405574455152430320431013910447081206884366411763928966734985776031122844651135093039948827196527595146654158697230395702786333920173892714160071807604694456193849921376935953101172580717311310355154757090785955960427579359858749473836840099786375422947309958424291575662107776861336709436235018963462773754377633796994048283125297193771782661726942562451826876361946525220307398091840710126026355830382043490140965839670147850252731802604041021807779247069144463847157361628857759141459742985275112747253100071038000178838767803506572168240497295731916344441472541569926025932761888521425140324106015185126925007218849100043993298677446773772758503655403667554208044041651272319869068729376142508936709661483446300054692631299254829376512451630457092524294403940549364972339564882795148905251987668382923978806220088400148489541771748442127239293474334927119478711521569767453701328166187113106700789713763163842757716182080888000345374236261393893398023746419502751543077384009946373607458287813508285210986945188750648488953412331697742273411915624332881362517412688374315735226115512609910837748624143218890566661749145985729832222199981758029669970768011831241159205264474991805625698258213362614414946833981286978989391989089839772579903988885955593946477837790042319694578411216988720698348234629134063216076616274148104826977059096177745796533510458201123839164103189015365963616797763195701675205441180480597878991942650094842893873369468133685563218328934320367158043660710466643190948365237511090902377788305926531224705410602922239436957175233149943646851124513130875261592056783313029071973014255198507656733254736541417219170173719863633860442023052035772679339928261803201899670241540146483993937332646655114311994264679264531702316751058943408308373752697960547772027077638359014002742130908904502779186679722562260928442549086715684453228306863693969744516699782725620396394593961352604544829894486593046268247830358533241686793672635617281911693466986507264648996012064867592556331736969028082627761789976268593671195378857455797539760671281497279629670271542757224625358259538265806250744792810206560936391768307459182726492475651458057255307904738501188731819700702099109595843456622100133011026820312795649344426107647142311566083025326838098859247226272326787177751141348292350358305610329714917144832297633014683318126669114744057412627891221240057901475606869138728753255018948499684181184807215725690589132825384412257158658794836946407620201055868175605360722983439569274780556970166049316714640221070607300296101742069714952366547012524865174169284092923378818027656933683041820514104464633013841161602503769294497602611343387669329167298066179556636413066445660920892342961795252875374629486673298800913472593413182965204132551956049832783210099825764189547724257592103073770142486845346272827829720218331505218179959707211747625750698242015596320878740198386296854189447617756023860605519965235870687311633980855659712106396431369953197975870152798083472593567386052339774820361386726477882657094881543230258095441333864201898265734382961202981222868324739484744282125411677135377761432949612394839998883042938471572634707362420799681340192314533351771618655944020766384464415141300176176101209107020027084061839921085668172823141297676221132943644267635892115819397897448772718125529464085698261173877429040721441225412941565964883118476172542433499474978362922797732270236910672427553768528036005633809963068326810600494051301066064939645662511363177344822327534623985092723653378125004932282216597336500724763182176706025705459734425999579362423144028445810504495280932640475110412372916459798498307069215744446853760099558810562245455399658524841593348747401164024594426592061836675192131264275772316945849599074153793931703575215009461091671312044684236188093485592974471815489753491066672489614753992917576330072394116908437071527887834422225884584044188834687840325056542107573492120957793055165244638818769531617266046703889250199930110295031851464297553895171472090601401978537791096123694942606792285715253761244795743711858253510631779921823925063007253738848063173549940436345980753053498929918205023069034652452405089268767251315293932929170371094473810393989120684859416174474932761888909986548601060498239947272274810143658360579249142681066043425680079666476262776842660907738387461453062569596668168134817047441431990006987858336232318193044981623892559190242102989726655306677246647706849535402433300746873071523889901572741688310746148745766609672324703349996881723982143389521948860899140551510007280085453912820376601219744465386868647641773468568684687179988724340526774499809127731834987262302206943148112564037281189500602725988168702140522055693689998899897965434065634723424792628605050126318345420437834054842642784741502293237298684624573872985332422000709060249011962822464663557550637908326217074043413043446593757118425257042134628742121379683418170666675730051995784173728359931152763751953884165825575040096892663544517964047708259619787279237499683219271458337486831345002254705335926130486940110553062490485177918541780141604406470796053977866812286989159145772743840932924552073701018448552302684319056773100425010211902814722586362157700908176932399951303197878911613258309683106282096671221325394593159927365734100986427512151279318764998390489154334574038359525706231364800825771646442461338644591185085643101277566542083349617358404337589110931389737475846597882654556926551108089654083547313858290899994645160038005755501003237774334700838883109464062193729884544100542367497593138872264565700417407472851835779034735453621800145825621615642044060419644296915796404404436753995851534702538500472054179705705127800432470561266115738787299652492624569526424189691040464861310214318661895909839874698170882939392481289775635345073435146673309426912440618399210927452349860588868839053978461884721137662504352478577330838236117504013517289130142457164643400649010462153228376051149744967325457502329615236540947827717380914918795129492031561986458151009544115141330752425285754950766141347660125839099177503021718805761408950620134364100269574521466850467652578289618257035761998261351484536076944428361751692972343611805295569593360967427829567870140859513610202626887221220913857324329059705925681332193662958066136817816236890245229037151533816770753140318582488411591440651692146588428860430041617316715913929961500094362859726818853061928622125974846659875450492179507954904836950376002983147366427621713668468664571861600164936592040595034344238864474018076531770351891525238707687374053598901666566469200283058022652134256631200264387500681593840659220887285270303427689987404414457869745946490555482463221541419133152950145983368338669797086340307827737123244128583893680405416377142293970736152824712289169263498373488456993994565716338697601109183098213045256765523035491849126126819778995737267355912386820835059771557360600378465246388562492058659189190511185744136712394726223989531820809331278784084678620541239128680349711156483757676210689043144324391327352527660678430516640031302830679541866390632814658554350157310229109532051021204285117862465654224940112426391098072178688184353222229561107601207913244116096135375280566742058541085238597720501704619561870796699216813234939103903740081112693293843155790661332373854614895303102749648313208105319744048883718300037730881208640487066889485429115827267201978250418894781863109338479811921334270682656924199658655222274967812710662848205584866733417351589008977861131763948084222242727523678521373354341925300057472763548649187469802381981274577972401570934076435968550775026741734667757324207257609518398286546318751590892657288657986855557120332756197945390719470829041388991068223610801666692455552930832180434946348633637811325827953158596459051683939626702133333256251451729105256543133862962002268979481298010511966483703377983786429399534182862482453754510773438331491594235585313759597288383780058090381181329656924910159835484195802031999022832264042186722390627247376560072564037449045257013887131393269861163710897165302177467768136620905981942635858190887160084412822190486558375095520972131177668670349072857336705776313835234407307802074483375203415993191555565711834588527322961762813234363817187239118199495922415932555382697743977154317534300625837134893917219882684249056427115896760778234805689025488180976838746654494208021685674426119330532535104584338428187571397106861746550636045798127030197758264113846603713979099940101822365578462719850145931506036665332054885938182103889550603626575920786837579456058337279038540282303521155569970270775800758562591136590217478381686347682132204337426195176422118156090647814347929535982437635654617330645995863736586603450681733358247389586987660738396608059635964933782044307434190635378278327185740186586966615066334482567045018079007630280448141466962362380461192203613261125341872245784676911085271358758307163349557350981169645321100693399222259142064176998297881557236237389559775886713156657365434707189633625579824626039271112909362035582384786608388788546948735328971475099101693899964209582578692465387222703849987286534175814014013183257930333660004385959827640926270701522883015708750606606832860241775077010670893346043973581683591778260646527532716189878670282896344463632181923321453850234343597448047601243185733996413718471906832436429499039433719179733446058464223019833762794918827334194713758091232569421979086875592136838563429054551152055429002214910053868285933629950618957534489732566783803322650499057443495007933334763096803133602611342910187217284372507240170681982553788748175392065343710306387033933398396346439838313122923443785366664005605809843349598287596132207399674593533656938249775490016482283679688744791496902567307001023772440152594830917556427211492576721798207763538622024095067196926159724010535799647750335119795565702380782767305126633950588795192668198107372797969512274505514391830471790552658505094643220150743829542927674889229326060991596046082402897578639429462753889035405192029647771957791189234159953758470951863796779373473787093898397694190381434683079361670529673631657716574887201661176820498860961271539044181727780815263963094458112617309720392040912656103580410708167741656142339608527821865596604911162299436456343753416164491105572154613770103120482993189257038131357942216882188870963102445792319418677808369113980280574282416140185273870177893733010023805082113039271953422216286898559230071560361414972519138819267044486386934799737163251658195315090957141076184484432923430302912082646964255033224525664333064314534790959011615130141684212215978687619575105454838047898673561549044011321173548219974475827209706333454077134319883480679535294257260177183382466244400526188713793851167804672295761928084049458967156560108620119568570584870358392963110971034717041199355969391806277620101816267602022037413681850319652742456537720477609142452562828899313825737868546154512204984961607536300522382878913559887481098173549201184486823843970689163820796775722432708660654534671307928990431983627019055608410978518582912969378783396519510599506932213256482165152648240359862919243026596235133475507439144941494279760516047734199626247761424277500328427370531723424223597324119673718943148026574003564079034408958647205226485763565442244582616882899292644916797738863404916027181251952925927945925081180318904394415221112097589422458185066250301270348792474451127944438317973091242667998021703928068672308404062956088603477163418679100729334891122987888909569950755764043267350541924362442103545548920932570040310151945765817309366428399323082308066743931896018326824928334809831619010560279056106330908362613851772237230841107706109211501652768511627864518998973890367578734243869369621768848365636697217056733394876357227401733554537319909219865434063421730170767053754542752300530470670018583221842278412795140757354579727355679463357393161394056634008102226202340920393831513363694842303966621832707345200958866400576613843512209039530499530234078697019151718681002875801646333826054276679337508613390068309767856618886032212889782197673259951183321392002467968876038188393238338978776966606030228070410664987546154803369327668906460211262489635852115729924540732470713688135867795924972408643075329080049264770706909784251662131700819275495231808058373550490282682868268550874712927165311024893425330073661636153213019169435681618519281877772570297434343322982662233366897845143229981725272889549018992640864726664099057202558683320309335381921638578293297323254123027942074379083612403040651109904137863911753864777991496273738984470769770101051011513486687935432349964783086972496894488382772329719814119118376866803100538059171845491223164936722925947827523680083837263249387126653498739231580362085322572493131314996751127190598626275428675464121869777163847668226125515296099516590569601570671091877771106874483061652690908111785884385360054718770132183564563798757190930172306525911330394548106189660903967150189285185021027198249442059319025759990719344001533630271125865874651433992464065809025065463999686829186650935004909266485111929836351654998686980794846065069568963366205695601455533826685904508760022957086108080461115066088616710763691723241254589721440683911893295333673493795327697511114711566480330894066385149930196368353528611748019348592224578272902315190249653124157195051599201899522674208925172198227859550973624062352269851655833990346958265995531034848911363117634494268488276757253370989261583945737892037402997735870352385303881865538211056784053623110234504873904548892129597349335956256859298336849515614833238639844212741704418692366814541749305323179674188634610514060889993859428160580618391462720946093246250824846060474861019950667454606130966693767582502614470051616706173657881135127362410894220272157466375925735529401644462479843847893010982018857723850051778140627424688034823418559502244441185316263540475835404538529714775294013996333981606159652471560503821524675057331094730293398425491014274689616143188381704800642969403436117427560124487751971992226520357168416852653408471717068254474863679230682452979541883787664301029717073298896055770922440256084865413209770142843591770195391908732920935770571201503756320591601967773965211582330468043419496277523244021864700125785503697294312898827518775164372249375158448117032142091362294899581190393760721687541016655984324936161321480842399490958216999916090630939023415180541369457067507706452258937986813213266482452416522892190988090257705743228604140524316168240017972545307473718247662674286573196640017728012138987627920416107064572745889369378641265596416203342592814532745621351585918132909267336130144044216091423683020136886075652338939120520025721178523177426213246487214568359974958865976713378805176012282810518173265187987401783823100404832960795338857659777734748227482696952666356458000949587102739609244127184344401071927651311871794527964159724065454698678594981931971164757729953088865540808260153682334548871285321924646863602971259536370549228369586454087596266364960168134176328239251127516979061037086600822741808187400547641705031165345700212081034202507527460805814141978585661996624895956119316625701410629768164039753236904711528260177744389651892811403343406364048329429251662190370132748604466184054168370862955137829619843064864867338647084917483874804699110705170680627692410386180751286549185629251766212127513345094287534333578907170892136098615466712978035783907303435649439025585612341762530501416805230669730728859713701136846107865997973564160051521593095921675737007022913187746985480444584801076044968243848668131627938234373401961363301237754812233351464327658158488232204299505403793227002247763300815754275235345659933651952615492029502402949834214114731942754743784575441841226918904455868616200056142881543013478099557212464430534510858120307124082718573787231462951074772183289219064332213783335516386125613791489119006290813980323824304326141404219661218533337386495528911327906864281352693926090790653581686942663582905125229841081394477363117306744037050627305560135565919143004905245482032257056504213114943152023111443105452512616386119364521481543905586071925535960259276755376480777863723412682992352267960876998170031709234006467192517533230549899445371100366792435013433469379054601286464992693602337160794695626171620161676740057567529290410765428229072804728033301579274998893077018436945293028542925327705721190822817579672552142722953283733353557090777135063905650075659572928856547230304415760291388459005171558333065405453050800812726311479859567163695218132430223598338706834260625146897199764702261340030734934785397768725705528402833208252969691788968271657106902752569153331763455397365484093517299374856991363806891945763195612067606475429524947982942016060608384537904263201309944481204073841975736941399245513864606106263986640401543630753207672782171291087205374693921993130380152478275674440087450980370919845070842509854351571595069133092878838783386716555203595464336111043309792641055800379557741421033645345537007710620815480225002796400442689105440335394144056763294151148531895358830689522257143648863808127414722684640621194139587969841230751767520511493320615672430933567653684587711877268428348158737784663739387867760232810605342095497779833555774048117959769248315490041290388117697694816573676527352254406021652245323159731737377560052264318563500987834183015317917372714587866538851209414040906173670909884054117325848498939899297383735841148388210340550318942388190338387887828946535793634390439027268591357350003069887901074783629901163765497131878544619357881357906560705231103066229413857141642647550610506455716850694079029460193839673476577211944729072121318253604856436279690233026937131494411954693597600249431826752681937519511921651920320449351259032650450870929583773170712897751936530521029630769043417004926383647757944136059990606773593411087677900673405128146512838041100645803199544065904566919588862282470292481209662140387494720162938571766925289386036006059236530801972414228482843543331615437268361081688898161982511912212110217588022150872119679127354583943206022204949778463691424902982975933544277495844820869244385004578481811276422898718512855901965456700199548621579428884416735250080190610601709460795595433261860730320628866738609851675560625271915197711323170318153129881449629444744376441262987464581888773084968908560565227610479855738472212432061117030330384009517601273688460134781685908640689078285142362948759824373236436744992630771514386099844110970805695811853501206641075527799666322053228186872605407381498379208121055445982106426541058420885282705190266055618677446511551034281962663858801809050823572579479360163075095283840066514997501013533985884846212275911474968354063493179173253230048133679942318291860840235734561890426153063260606413194354078521322445936522733602119987365423378741713972580954205547531333060775840794386841581480983131987157905852512283395817104644858895113864207559558810280728941580962665881946142347379315445866392302488335283242785732581545042842688369630923176011100390685461166360428186220557583809056799710306823805088856710751420085869241280339939156349122421069114444976468726171715386793687257791641116952014272499265317139976652099458646835931115122859243136000541899625075388847799871101765870248239017187506076185493764828035722156136538642895812765922242373524263278032048554411128001067208557965195799067579643216359407987714321170724438325630069819915129203304600221979718175101361944048506982534407359938031519923854528921391464793640834800198376933918959807261818177213801681619907826907059820580959411334221129070960912944734753087453853630177036288620180272692862586345321535845459308712102530687706435976123339675280597458379978520536453475695689147129208968809869250929696043920015640843930399003895718660521765116664549596215099096250452628580581235537488790890085743126802153070337363794281655037573186284909737573724933905598875508844215952233540734916030931592258860783740657786808328613825360444155456686857556344442285525127282248124274986798971026681576535252024801762082275410473015931339156626294747319337534274356899487696493994219075775513026909184613272723518470198955968347599785383287940238432672597081430734456945143569901191984802378118463282723598031286909533427246904725173335417029862381729533814234736801839067828727873667477494957692890889900339447367227066180315404057894741671381097417906736394061876894734244154314918095259715036237821631642908256450774271017961807459151318750522918228761848025042221553004188561913585469698400786145932729007470229513582810205839254128763817711261124476511349485590470108717455752124048889900269627463282048772454585852339062275736035533902479848837578826313531538082220247767558135596885252911348799315502543299425795948469328123328778699124592051459477353089357891616735926364377617716076430076673263764976259373190515880473441902419117468157593577798851771541172456209663776301247742769519179604374723303299144182567589986356827519672894461415028157521386099722479704276006453055036768564596604881756569917657776375189487709139842277318472042475062742988537902612955927573806106492082024289548820271154555156156494999580959031316914253640785177888312504672228013041151130775182297476290962925335836493156635363331088046877783836834284025194190265184241148788237171270154831772736917573188648753613202773951881175651720915810645493537911007804798893219279354593272775889104050955268052468293168965961926839378509411006641024639882713021905139099553618040291288254523339972451168123103547561140250568921710394599664874696059451708535139473378620989046341542929748809834220000427593985468781761040459518209990137381672398869478095339032957801130641376061691672825346295338137460167902340923169692631026323113158347095364936349595354112156915821553781592305534026685042276554916330900884436625779218555736072059559278449396341598729956683995566342816612259683031619983976415531189283567099062892811534109863563702464976537600887587551600075557359024811555462949144010041674311338278922083522127013660022150251562105217783976551231534405801007873725768685672526483971039979254012133919288567033688055333212817487296767142772602147376830453227047369214109437375516996270776931072508837314811286193328153526043251064155906692620735054096987337591994685113585739950855400677301749541879015432843665841333665607604067216498050425725163079677775972618519860615652856887260786073029316879344179356356442336000407255760723260102179210957376836580423346829668836353813980218841875942200603956811352490323762394275023230183970484617424035982068571806009596268678193721048241517303337517199253372206188074289635541235269253296376697858599997760884211540183536828677785715522735541611222472468922690068612982856014788763180436414395339028724560884824582609618501777573632787816658683990744987466189582382139525688423701301256218601908516031966511333541277731444420026876593806676131004742047439700547116282876567226936058228868154866107232949456609141247996349746493257303341251190733226364869783875645796333542854060800198775913672580299828249067581694707288637914575763551550480036240076728182540711441411776221555337400605396750520410841611190395158918920241342515056081859042248768074235724631117712164006982680093530408390653111719726286441850924412566617705321346951006727775132377977441088943014665703886518311796364352034606175355416914277367925638924359861476161305726826941841341724079471419650811370417075036955542145408211315787094891548608456745425995441850541731812023128418884595316065423414110176919878757950244877017964934097009795557445002394237648765747379223072871325303634495815438851386472019068015100581535835051423359904552441595137951974646703773634655218110401120421298773042448822651405180581597904731615273680126832041597412311936415583220545113004809795797889984047042943596300656148668957550370740359423566472940751228614401725599903149846687609581723840669606194421156467902891667038212597765220046244708034154944476197292072740297178258097547636721547136370806767942248578513594799894183894143636102249073813998318003174522863556856770106265031890760119551698893501515502015364351892896429294840275593484114299380992863506873567647991529598863657259858723103963043307339183815676924517134477628852069184670695883958306878217955827145315081345059140108460346200425866084711678513412836098661922541984682045598718112204461162455569095361075812832221786098593497550620469934670347496934156318598198179257422859430151096207668447070907268088456898832113355635516013176705595515538411983857836465422523496996146094067918440674131152368019949852613677021944072251599933765579932318216670323850759668982737711530234604040112152720361372339994532677362033212516782472253652952195648633367320759530303217168668819168577867204605828873709409970773337428074448678803776664082971526930833598643988640929853831899184615414598251711364395446483650476738410580654188687976434310646222355331966616326621494808425596810017611396779934849020300328552644931727827254417159526893602350729528812603602226341886104886925251570592707370505631832082827554526746203487048383620073613824119214773913305202001931984591131823336406295684174891755649064783310619006124424341269610651576455271374550104272964410939054172942819708486655660980827345883998020095845989660046620057617780389932147272807391418285434223557637816064716615630802587490658903200729960114237618901650101573109400219099426939185428636832402892524276897358520090696660609687377906984324217493506789018253169003452903368708167948527019588145400884631086740889400924523060324822603204131550260591555856296722561570460375050845664555486701650060598801478571414741057303827324339829669217749197127710564732310099689310622960493651585131097246152740638033265386683380247217061958044500074073312103901103628108067047357838626307932946192040768331589129818739267113736012510023522452875464846633051478831627565056187257397011148387508822045924391656599081442220503797175269605075074354375584000932708618523488890542977444138793334855616735584363514928467779617120738933873749222332650381302230794135269675539378413046646488901132645989144938183197085488261799688087336119602818600284345899291202534011500383355735896736698518854863232848243649543280795268437096833577886542240477283375369580236901533150414956291110976020181200943600909591803290333143439429942136929013404402703205870842792668899230528659614250403339570447264302651734315514351256809684534657917735216603722644964456238490228151082112801748474201740861442270557787994159939131161694795461740849449477796431935914025496055438849501244369954304379010500498652043146019559238383813351838569561217348551625440022852444336958455475841589006086737728232894951984604588916720630728744068796786611209206426764777046831541080847721462002284763695857596861923845737946799743574238715932466266232357873597960961158482170753691287626661970724927722444317456870394560748459533157933439730974092523100487590636370172893683111686842318235227696948304055098875106935050835930306323283536126502722278787811463008798763656072615871508284140873242605978701944326499281694058186588443105016531516203886140778508817235979373350846179309160855144004990909454092969669982084300900823191272202999184133752801943997584732273574092894175491682608044280242205145530814046577259040798371769668615329391231634777589624838107817247546588904418974783621695998291032771761987713415350861481218424232231237904223277377937035612063092780282666438311841970340163829185449007458547458573479926562302415056204526122300957591255624409782946922038191768347911033148391084855455110209513548086848794830105811385851703426975549746918187287179390952790415466672256284339693549754747485089983336927857768029961565910828708100918530005753933392887144197185203498978248905893441723837228803745245349806623486513585317236006921147602179503682625072125911173273888327969645191495607703285662802492323802755916907438466476863506885305518845745505897338184355195174759734292259617950188500075167817777394948915060949737742665365001165519595647862584609137191445194659570560704991753342830312160485631073217602120139815615056760487029164715592490710507854997234788352794227990136938314142210310511749776631714739128273352719568408691510405704880430650674321673860643790573536928331548393502055910932550304582893546099003611450226466259077252703697501278808471780195145476166126825928231705968302837806027021989448703570975111295167783543480949571389511095472103652116124078170993311238988392296426262056574639308963029202331928384225068280474552052372897074213850199231672332387866056466369026098431290512835384309189251492522282036513198512355287013222764595169181049259982813817357563007510023672907489558587886600517904257548502088924137851699483274729148336256596053263002785701640519990945714780176123339758523230647882775608143147625274728214015679906696002502116633404569472969837869820764236837946690979244865135003579781792052153861843780085849600764275850466372386475484066481703033186744611477958404498548425076274111200232058410625155233141384259535260855616653129611493296781251195828379756063825270856356350236424630933509760930482978204327961388740651996985668399433917619408381299123207965533630735057327574048965852673556962715865664356654939205070872487825943916136994561277487572035392401972440519719144275292121231019347690132907431489184667778239936802780354915022741859331828202211866712199138823841766154948103923567476431015092061586940076193159925118803543192045708329930563482904984264139651887019246420157822648001976851438650910299415127316680769819304190398504247121165367073654646575302401676753104501107672174317401594371278041666314205681420303410290996506866324945860283519068890098768246414220225597191845310523538222030442018461234727687675347080874890633555660035410505949899819270014189898640874649694593679010664082975945358812752456547609947823304721552307922942146098133052772588571048051286285419434154617238494205653508956159857135280584464424810574472470834455013180913019603045795087336411566077684456867354709342968650715558727562724758025158980200553614320276505002870590589334147339721597776911946900528630533842331874805769597745296936967383544569619784443219887373465347163800528542321760957391660402826584575093609876712649340021758159823353779462583355848317945000724227872716306520581703930384172650508874650808680366543756592089939391914037679733082117382089726153486352267136561874408086946487123944538708939222850523433811241746372244040435767122370226342388560200897791070244002559071680975371405959013639331296188748910559928022326356527286523312312822437154727481597819112467355081447245067281382605319616565039425714755132211020253354523592825687457237211120967137411563365585761275196696727699564621198398797624011214686854371807465531916215777874426369914502642862340165627180992741973489794939798193831419839212944750928704772079622689535228365676389529275744254106621031763331714660959679581499068890826452991427892217164398624302603129699716670827758613407392258027536325736740575831008005855377873277489535974172730178171469914123022830178766388494661688609358852657046295279591931854622446815856465652774655814764278596210997640763933099142741068314349151139100216982857486627564039429665366611876317579789699506391033379383505334943138053791106153561991396573539174611943242474996583909654550045638418457829596185426849299272956369523920783096367324621008441250393710182305798590809075285729786633419171822064129430298599174544854830731409838395467514438887909157475034631723452576896121035787009108651764985315067998381107128135197355545614777240541659383008805328285899717569358551656930887273962099481587049263250219540233572441867875034222243675758204586160573977326868235444586230455868378068116379401777919845491326757784825326189373688860009729429825615116180699100047819276999421576628863792824883057348048721378883548253850721613148485551170288273341337753730294809520667581308609186714968472480587442132808882210441118836683974614820602424546083150749999133781199480451318540989452638554350341192285900274260280847631339362999304486816856281551996989807603060614090668059436609320226434973626050552573216071001109414509826099221081058505327962587597988244837921516884833519725436787056071667726233457241161868656832951338677168763577247951773887036322469774730707292902587178530259266262128138941291851820307230650014874601533009417331956338550756777420164140945311897022326564736787914195593755291930808072904985069356642055091220513626757155436637712026628360371510350312440345374325676123873773228580649618343536856427820830430308208205517131622522985393875246808448817316106948589488478932205792240571502665711925352243017048693405624301125996678415662840253438655190242016670606586341211408970402303181532275959844638647455922367270809090803981566939414223576474971303048430011769721826731117701144992490800226985456782857317064289890650536572135934570036254177422453698642875229496983698426046055830857033735228815473783705718618040130700065040006976366363019538562098200329154589653339333861499278346217534802906161648709477494932420694960691054332875049007822105840583471281088094575414235309801039786142002297235443724862610267518960522598916945759067814390958665412451287637380415781566826537247518818500869315994391624881700708383172680656590401317268528893029449897607556327841952575074937962371138322015363351012950948217522912480898573388696913578389741468721018003311527829085347281042222174440660169825938472591921625675258171932743792968101785263709121534001535415802218568668300044350447074908443798920879149640954298622038198012930768353529326124348781006457706703490721034988417464434419976148453804725358903309272504822554997177329738468438486523788481890012944941063451165563048242450019159434465215244252310258265485574720363161972237358822545756242720068479543814695592117079343317655191927593069737541207787791323448616384428457701827405365950173604432819976201652262839060315225285099859833865896230971873292810092523066536197826506920182735492787207135773693730577588470766535943456566465819911349889178662663899229373359281395604922009227845359423457763470121763679825206847710011288514287139136168113171937945029762657712137444694691592973074393036570211287777761428679108097971134210961599557930901479769314782481777878393620140857731903170012198742150411340192671273274293979131195704333711647703628133121373414997654898688557652649567538087504997079973983330133013860755095828270924330258014680154014174741193322320459444637455505239456077608342724732451317241793382730139029478010745865336348256379831142359239023364928360601679792387644138693127876827657249835661367089640220759276778041675491251908000232377047325260037860642193122535024378048241836062387515267346879251782258884609227895279883266374230361097185924678129165517879909543136182854371338501812261569403257287535073529699900298123845167274790837836391431696676605763892187487933907244858198071103180857392317472484495967574319863694868456031202067604079411908377966589756207783775861778896039251762117835764007462558831223971830990446376506872002639347525288485267401888707736262249264238820049771362412494005916949741105466974005316400354820670752039567754710699462915393710336273521510644819310260059148125720860891925545975589862852558023479857816997156024138287713451681755659926683718929573254186270552365356173284766562057386537777917594210341761714184370822846465963868052947048647682077809069937349480859394870230893375258672604397644995022637958444780303834148576949326980309055519015328647270519511640247347149030112699528889963685495804537137487464259300347790087191336702406202930781111511001012651203529714444244015418974724344372550661592260562323324235006845606500617025469842252769483489504481315620259039653598991855581321615203229113769367013796312024535648378184547227196063283037998389878141020944647966573377625292703768628918168510634351814627509725450240102990859237355783642791045750991220112053009277534734361870275393516118736927989789935635825050444266033251457874478411475330910018477424643880299501047019916422582915888179290394608726657806658792237818660977881241860115220164130070485880694856160649221898149093181083043518982403203611982153843271162698285820827197302089473762984059487707158646395517854072990241308473834152586357582820600677235748271271225123502425169659571661161313026507722965028567318093307886266424926311953665334451798676207822177495664996620875043390379496454893170422104450724878398472802936212772947729095964511194229573990064525970711080818776465059426945998774627517278336993904864869160579260323153447850920539786137599393904009643180267229670598472838798718579453788340919876938845398121380812152348538569716597425832163314711347564023111896337153339053026563961507152656871672306608637932836987437142280267769218790565262839319034445783750000048947133602756596638000948043956332669207552310034848535874228792849740694745000077499789674382520040496508877160457003279379303632145409206381003566516242257354111532864593049520836157511842653260022808721599207514762324920999570166079613917788624171126035772222984811650199825442513796475392349295008931477054299916629735386542985013229731538014280153985660989723022423818184130089179315839173203703323209753866101330266230647489322389484516680113433111445974422401068843900536428776093387764239854947514523637390264956841560094601349327116176892017723866329539160298420179009294674561024327865846576467819011076968225152106181822612789264526798733468349748673716061567167870740312600319776753916832271940404969144115347147665826213132612470145674773629872928849507732118052156457192683455477079053592519411264103915385793693955619075519803656392504891261856871298015367203097638460527364442800087529476851390553669859348371102646666257624349594437358669325761455884218808786914564340498678778069890152129085075451240548410663551058277248385429264307451191536110111812134265304445591530725314309547106831586395654787292471194251568479749442056199872658300073753089617708122098516435230164016161771430261214918266510077560618956021561427831516013808560279067214303617505412895939065702552802757004623441527057366927611282989279864706451158334589685494953949709872503204986275935796141933554958414552948794541844561316125235412728039048141344890018046360117736602365729840146048640638953512667469199825151825399681986291837823087471606691934826077011553964217033547765276254631371482530733335967881265394169110613047242817149924541328954087069452384170514560390618477402091189853276920732514521866027150758158739598833022409566209208105443042486022247964061142536012165267332715766592619686052830470186554316520900658106107256346929188088392778270209679761132714955258396533981502786097442064501534402806513219524349245260015807246752782919430864425241378203162554714220780183390049770403092078559220787227076079539121116316426045699428949978668462833487102547315573352077776327707497551357776607278120243544996557012983397365334427583612222842752642374441263351185119640720817917406262807228776524864295359015418428159200939611931427287966279321907862131718208023222306063034668230809745564901935044791247071337867428967643891039748444031755342526863222482825580276485869245929421587980396920182846906126011956696978223898353534417495338054351760529683653260287937172862694714582539316582050268367305626499201353713695168191822923876785276089067391497001419005397412032229957790956448082443303557729454740188681044066366861182950870243970587114541708118327694609334890020067721414473636357973584049721499962753196624439378810614658291588523464157023807361188841310735411520445803830479091769392927603804866277335510761551968253280746807628849417015733608321734401113346586811149179138210904859890557578069448522709191320381647892271378708428621234233098341166479471421211725386783881889610066429234674632426010648899413537588169544104885329974627461007294491419261103309661476019816809935462998247859095264235446641248350693725514193828330955985694860413976650045523629850928801508699299765394537971404494349103366798971837269956321278960623475023288621346228212344458080809615443243559528829683054667373702106729352230951423857133449295999339692127271735439761643229845334443325993666811352811328829636892527403918006233111017300292214772792735192510510125894275982041580860877676696808459601669079258426161878433574450998296160905056842129102302857117027122480481840023889867689208752061391345579654942414349437415764965062945923802538647994082234225383442392483456550255978075250458969100607859510855564624919415708850932559789074023736379014213253871391808053630800608509915329278019283573696325610084888876458747299916324902383885779788652884777646283413119891840699427318462090582766369175836415619791190262545777677440288047819756022341900763685100042931948256686837897543621949795357478449580607945717458377091143376831671483752203489514889343918164924541260536047216963498158922632692611025232166315466884251522304312028695253739957358531947798956884500710166667858772942725859009828249991584524652339364113148412635775202012521950733596007168734865767953091892040694405649052986719640196354864952363232757661732577950599923428792672662865199975909885765988602092222786199324606661077454117229831906034818208748357734595935738863998282444827669948798150552544813912709519079123252391770477623814508648406340907325649051385240980597530656991776337031552417751359451702681695911977739135199306747898156979698673136656976387533770572374107858527424012121070207277629433387840603508725975237456816708581229978348207203867951268987094468642643149713989435112985107832786217042690596786745159377129682979304584009543180861833564315473775016720918045012418193953286832434540401166184202453381272580051420490140007663570338969439798838679249169111451939325562274947647164520751105057292832717532527654220390062322861388501022802040341401936669109143502353111999470776783317839986930877409359829228784897468911337332907326195337162388284185657408207790405897668762015717227352972534713141767851632795068533473914017833146603710085802306028004826579080531973731112814572800534903124775967848573494757775996785401489027053436626112403641767476848579434639287091782094752241253544700209395374122986089962934111612773488050585661633475294963819332436776499305755219538170360828038075752244830228109435600586874051975844095357563314292156710084733851849137614180871401764378791129533460423199797189744313411579052749484566173916742335785241927313617353733602216158526003226844169113012870026055442122689130508955430489708789578268706950165006988505924957936357062916174738253231808479884802302427335128122703601710323972093682247309353394255277372126924802695318950059024995627575010609231232797287736973697651333527459402796334039139405589491934996051797574761898965587157645205635521120189528541618569382057358878234722070856496891375774145926118017501346580561879627806585615506077429492242826948119354018706164159179712725075680571893563556512192321370827535873081497846467560386860288310325653427178541125224110081994721794420400205095756744453606142436801936303766406083933220574469329059786683429107076718637748950887997378368520012016601117554669258926010584359414325806902012501736009151594003203300501738404659199295669324502371061886903931800951016812921986551078518168502010682130496299655838999648551608166998713612796271616915243897501305756011445032221124154940948105175990387634212393711506510202840916158167076156713036021293101994147404853018815773988769709974689428788077815922280798176915094588172721445300192228289486269778829191561981843113821335366596310865005777711661397628430356554563124857669515212523798963104678031552407429237515464682103024975292867250372993933397158950258041641718524064045883144087103624445630428085290944446598841238851813214549478815959682558050820331322158628206783855153105281613034259000682185299465163630282779532623705513084434229360488859900795270176011733768595848912084875332041328107404526164293756903241326953758425454221835741343403108916052237871900238031268635521632039829344926477625741126783675380463473588806574489461328386798272964146097841904401148254981741746893700360062083755110595683868242064915504522986797247646759805350494275986283505861414887299603731766331524107687142657714218189178044837195099939789471190942211851075920411472508133935751236755490716345503103837887760315088211745718921563010741901572676377588370129032797546813422721542949825439281609358354972222713693212127997946094734402985748590318914701224236657710091377974830983087778082544312187897502594617811771272199304984929945446805395033845307327988789574207207368562805817411477083245196560385166798083124010251226709751713714720662333222485402152164627417405312062575638795681756348816023331871799232382291094677112096284003464131588494141088910829273096390270923826364672344411019740711521996157890413691517880341441486054446011788072470800779607871983879020038954275952627936530506139574966689860878523492294023792058411651060394495253846716305560131474538505382883578875573376155188623164446138624016775467991572838705566645777084375486010742302551067089055284987970341110921805590391887445646471979871905428443260280254213133520772881427424102122331328054215215926274969604261102115358789118507458809188149192537380433593636328341412650610795715882580586260616427106382546349321280965051027774458004604980352766911922904690236340850449012729778056973451542197256795640409585734950918173735664461031461049339613719638999372834176649685083408903931133029365962154163876405181410202076202719264052720679011512857750710818666605500284514118259096729628582632638058020650403787184729652700726292761709099727352478028059466681368857963631950469259106649587561331561785878714875458128980028307780232636472252017396462570484125006814530929995384300152049127350846579943827801937052585216630078929078179286007541476443856782796918611719538267196597208113638900272109780085376439671920091008728529297579681208509475054221727433974433750273692267356640893512379370313753100080767508475179510456254897225596796553045309611649363920808923375228270304087293690039127902228284155048985387178027900808872878103547002120063118288472524321307444846377821525754899230258407093293531647423888507012934341783740310484785498386793784463733036069622100417537581658761278134299017225204483986801107396227495494269766838062047053567060722252800105855412604460041632891676465952667210079823883511009327769864641107229178793870285626425175890408117420247928815952186084701130392606624241746939867794810679972081225589008183314450431804247812574511570999426282304826546124895150555076200712499129323901573901703447337501688182699418518063350151238394736782620639113880449484857151254401861573580280204372460659627922437164462786854434216828638035251905766666496277185502481270203833961421999047521519433815667387664022377191489667644630413218918654351716500613041457257085516291647883371933554767587695086235505713266835434494764227702109002563631625058542044653039214218741724038854249754378394061014636762652599775303074353087762236145504350316444128314117327420565034401057483198529930961425704647214179663688940984235827502686545233108374386478751249239205704832775538195324764821309699606340580046611028489776571712788670051144157981904763746449889446973555551048287869634774448464032738559649436416644846471876025584974714058634925904361706810088376760489371450802189939286291730804571756969375719900507212890044558694889757934719536707270124054521261558797778048775215153062025952850737313556832788345650019642641116292031643823292231388688992846694254521262951740964322659381263877159652574903417121800818708490036429901512106768847060823456248209691634155965097195171940837988568213363279486131700068274098303525974835417622982605337858723455590145632426837010468169310220680739992769111438477651653979059827427588925024826940817888313497850519809225708386935914055860863820012810230165317582869778047828613159622511243784390187023880576681284213411405916040366010536647257689988287729914320866660009435882553159452906331010314554777550465283662602270664353417824920492503325442415216302498259707883867220819746021074362400443564006168210980984907652036025780997332102618822731933048690121586780620678711670785303512831501419429909170503576122839294750681909084726637644784913540806471225430483912026957354731233715028900776985588773919113081578038884033266762744353470813719879518974676618351935834568027329073855064422572075770236440412752140050760302902221496042865960712833451724836937888390807428320346047143352528393615137221541822182457367797118140576832030097582231162008564761862299445140127278665289117213172976810497919185260544206206595920615062787092735553249497183426714502588904491442833722826144937727331144802578462391798142669011663181485318929577826398539194418476259584487197616670123627094749502672510901741098289847182854280755690963642406805861668643936077817860618687533910556742076811297864877809775289141593617340965706697849908131551757072984253055749534976738716342173262206977580787819649241430687961083576982618379642391369821333178439885088714623296358912203924785870711960346967210196282000646371824736901571762107079646156139435623657437824980837309506768634889328768949865998226992315291421541774165443178214335320095116400162907133386124597462110206477191499166559734701408406754744009786834357807159134662123140373756461620939755061346036346348936968009028970264567659775345054344089455836810443741647869624832693737253679134191257974150677355863549859504697656805785934200803519513111743902955600032284107788746559464617733438843569641320623300671853797135489044187261064456206554270168442240520075904660787218549863303272160957508564876261419604804458906889473061033718793698969580240869511350110807950280621824907346046555400499520397936845185305077813987874230475174267704761448057712686089196010866356539642867496939036288339472129136550881577749947128081086622957258822536011757090365387153436733459124030349187600103632664562547536449243476598307660302386783773332645554650661381334276510365045868758321542904242032790266567276605422701914697875071659345158643910300748063486958750855911018049219257654071290571307838632175729676052825524197226671088650977705448956891074663071251721605776512776051392742233103587203687052648152499810023010997348897380234878282426553347971322936529713121537377824363168545954035614888528307265690351026003266222414150116240034222415258893188307331244271663641044484458643698511069467020112432280323507783214875543755314614911789364701169912160969117787764597025163601244225576597211283589841300335612444985552303209018924792475114662757565931330818885950796538055778224844438188229384556263222928989357646449740722860049019867036395615580224138380542856766986099021837906270980405962759467216521015058262077399640367181879182638629784715305095910155230209234885333836284624574808997431978319792999323386861260000366659994053768474465703661674497792390306199735193106418728397774893333619319462720916633024415492012620847982511046040027386768633285685491170300068606405476542982209327838362000438817286338012855933697121218612379265203973171399050874467377222019589901866808008232290115980130481925813632628049823848412628291920545130166345489172822808067445575684332640682641618519497347065964520563280324283226577363913917754645885605825867973746565103754555302717298095524547723285694621580832744632370261087187744986346711729695692321670814452306373920612598714371158907682660399860651397107274867148817424501926406612823914893077759789327814831563786258543124370396267800072490829405857363174901204631883440612416548754672104831649682824435990496964598759218061082869128932315628051523784899564363053328171904718650584293754660116196782038662186637282636873791710027618422770517637422746284994285236700527710131288339558353356464272613993135409921691460415238482014148107056341091548002756326676261647581194086697053836288155957944345239564449778909826677341580445894447211653183442572634099154405334742760372133600446864841346622760350034601006660883733305732374216159589067692619893852525391617911427847842668337904608262741999414056122325858176729563978133652549494789446300216497008588692874062764014492427988656354715513788159377387263154192446062899467147015932764449989592814123078793789894028566451802533810911096156709581069278850802592362911036924488672437829793466738659251058523014183193630595080037094834480176225445374191356089566171761492238333342488281367533665772968648633200330698241170383145639762972397679849733011887068247959657526311192832557603694810414353189036988642647400439668843260747522796912656810188610371915513255517251373014520495418487435415938289665205435328690742255206373772557822214528502753085688596488916112987121154981357750800573274998676251679614830276713715714183403859823521373825364561895134373923355980889436879754735836690846338776024471567550464937491484381316354607648438812189836022472985186057591954419217665541905489564789364674199523428077644954466607389118407207360302763539338821516059779207938762914663691580145973104709405632888728660834329395264593764572034811031652391573709486452292225115838832040008563741408793807941615360186825101720946546998153199648118729937611457370439498819415623453211438863988059235609311686686965601432695895002239418662899326153217542483292052010221216077380399449149165138151502343019037496530311611517105561391239148964763331150025302036851832328931042951358164435939436895022080924139992559715421710957695739453480114415360953956639357407746373807379910389525932730490531211784396548669455270129582065963544297240072411583911145713131855468874272325021519089198776324813849372701110130932025158042932288079756812534108061921313617986999635660157395794446162302575971621873923008021988409237749590245108166763437926280007211386210663847101027703432457476110470908488777879979460224018653761595082795073384073202696276492357932640005224206892481051173743656270006194515877997500775109689961229606105438172206491151513590673877547300917261755944312331460350459476007061835982262470235452166016361748827874742011229863734339074095327924421666724104020390963817969614091402139658929024185794926070766140523292627653404068528083298348339041099528929962277909985911444330665538532257300869576015942187622038127004700186879240700907803654704094495304146732323044465184283162640982249548220094320657759366360466473064537159407947737460426195737262272417887989908602605426082292260636110280149236664307052893929767010757974745583021122403032575436328499720243687867900396230455250150461244621926163989945493440915326163218348318505190273264047986555257599872415194719805937104688754745042571125820751589549849266961882899792211436135187286737571099885299233701241012551786922801413085030651402499847793421068801226908078790721430213882630500712430588143634978425297701978789389338821841309382955769737641311087728407566010149481910179579585071594700100089269189030384804844494788658599271239447081880770969539859781426399518351127771707779527579437379464864565492214982264396177556431009348759308836621131207520782432188040241132198345015107294710479444923625707664697639176208069815278103507664502397012069427525167820846452957212215007599770510739534735867645799344049994176150812917066918453899388073209066839389688761449750907004617841733638093729000781006067310759035246416955213938237179357241880495972640492147165427869775086457658801093279495736100884444937095945768541463516026705641280334670632392222430074429450041608991642576174041465248958604478484194013945714019802660688748367236732648080787012977747560162174904133163307213426149960684291420381699821502390065360970664270266465719246718132109813098443844446346695875046860525237821043409748582197996579507955313776147183791023168835467312169305829730833042020457602252714069759666425919351933546075379558972843004071328088753563113700139960074157480379000288162496638909845270211145649407830854542011167457092977541143569990756259425589402532302641745645880568891747026275242398211475882995111242796289225468892004365300809015007354801087858428982443819092436016554963067679516724996568292712857625647674724316202375162634492268331022381631000795930773730923620010572421648107423899788690353856012226532439703661198683470391627939817847669309244628135732014465780868644176184491085468615331668354199789199169104449623125160885218453396585027772496947395341379631001277529963915281991274969848877120387423065570994067679387644561495769459709978593429665308185693742758724465803276968819704928107809980645860439303024047327715625043238134178600588358495429622731022699433280235890687585720739666079913168704313338044596816377967763720741927274495019427259465688562427274834460235141539327539159320466581033048535295363625177092813564642976223868310739745242318173195464539242742237353642131381461688674191539102634334252546404093648264210436462852341750497111631233122261450384326552866239024042335316631572130547123862463709273111258774618088543598154252455834373538648903678356997222683036311285109544379665726405666971752634289729912635586990967945264881001598800475340634400884983869582133286964916037923215514632153140943528646912507299995727120468734774338216281108431906723985896238632967469971319293357062970974961983035689699324584455267458009016309617910140184484206609633975294149610447563001088715467242751832055514195194435661570421122194246033055789812679902191215595941761661827777470378013695070133347778115724061474891790892989053098570541192250329487894494546612333742001629071387878072564927248015202436170717186005445613817244402743584699786191742142811726013494547389187882755237709899890603980428907650296821321671274779079105902748177656543206218480662951489017759300036766658140655947943306310859672714482066172439062811913598025009365954905735465389453706644024953149350358561378739073967962386411545898279197853207243259315301613832909413066545121562964317106305321928709912357790690567991732428540557129632475603097196771751026096404018810134686001040138541722614241752892075629612202525256508596668938125182231427688792838718695267671064352352556648036260540362707928823120524095290690880041187360866724695629911224348487087696216034052818365003871821622062393137555867036188251679594667987881689034823732945613507248876891063099203751417209488746828044841924981516934362040908921056103597207190837262146365125861889750600285157686655428008831954528669885334792021604112996692005768357886211319674661797415541232162886812198918937343612398957916264973384259458832886301500456177783075702428233666274430353341313885751848018572249005038360496707988833242979545997759098594794049737652850651627663827554799923379979150976263547396676980510094848201828232330347415080235123905020256112572161924178127803199782588577745549501837169916703764202274504375025891410964954492224013937120833707588180442089555698300123449723871695171929348627385124336542349877600317462000078326539518058558997315701878157790379742312552411801804286999594594250168434649283918439877726894362789614450193716414704647696789122578872580661496811666138724200124169724221020015840818976489233009337128271870800923204409952273719497940424413070349347684539568010663710050551405300355029244660688821643934172071845656353025390228281631169331487008396771640750261175687636082125282109646409351405514008225724230217621735668993189230328157986474157431302248659928399632961241045212842044949519391576213185755634128880823664832027021213965879317695732784045772812833742556637030766420038464788206627897067071849529098669282412714440478844729691515402329436130359021053809013444966689356965110011835330111451652753621052848554487378382476437700525787686749936657953432096640252752671269646571087818818747745738931983523719126655233454612241222418516546608401928121589120462111466206912286395527997800285939315371830396639406664567522801246192260068879732993202256050966643933340927737703945894407562778292624466845470421977963111609333659040728016470399185506438495735329950541530434665919992724541521792220152810225217467131867153586104812830749256423197331466212468374796805244847190739438820371603209997031885419421006443768863166337906673478411431342250310894499319930713438824381510939579978976491335043733076824162167621963631575614749128068853675146639297133561269280375996530887713174537036440659636102304016787778032448098256730568750153290453944048958457779808456215379277803976688390882950099638752186986251512188552310194888023582450841543917208121142214710062564622301738835061374469024662152899207392829352242826025965569376166775509525689349137901415776841081249930011356500297528525015554939447213676025861605354058804098609152606212222951202923702857522966395834150212052446809028850540929773074127219793539643720030426547765520377067448956980176346044941346231900931457671989204758603034987255015715894097433519815256067036773857207121671944510778445415077258361073168187675481399469909660887383091258109219356564229690856577282456580322709437197143062271322488812573789926349465910397866219538925710279568245598705628671389383469450958641557561047848846741765249066764232819040631941322171174836265872371917035563528829788968415836188643951309417541587337118981275993169902203106756370915101772165735188056535782747238142909261944711631983222978809298063758084925630527684606133861591999037604385709499039380244557430303151065067100536845946507687942366729426916719728553478908204670842040761241882585849055679830732691277078748013686804017700180245008561114675386822041804426909720309516015509121677990977749548841969550945803163701443789966025799998497821472660653707053694549832946167541215249035520722572322469766059721775543117946992305381470162954036628124902635672988458128346488680963928292010086164542301197940756594720753531249371019522920338568237923421513542366300506557794837122874201034935308818891773776517697309492723700808030896025707539133488742999607466473263305841413286106621762620036959998859707039896386727924293532010223202972494170049043657376580544402479332017037053118049999546236586307234629533564202641033742861183290431539900265343253601803061823291228279564529556867377147236454916986863680155275184322860322752019418113309249853248373327604412983410053007754472989407685001087559430329661617539238674955175755457134736894937355621594767416560912847233640264674764185956244413925858977435212910981907792371525438976528995574142712188260516749573014181526522417589367891036504578297880676650511809954435102750295550863845014243259874937020976478272531239244036350098188656672882814938757014911648940680849248206559955502255855835337600139036899942343847613865041241144024089263212063574922133901707812972814693222126840233615756370233797762177385954323234011874334922731465680645929372758019814879612799823923821576403858961332714246625827730971134708620740557182872749007508629050625059416232561013408556054165579001526004542286800762608364993246659273192075694079860652872416165770779864048385599748320564706201674372655887637976387791050614020039382805643277378912088488706387304525688685110796915516723399068187414513265313137205295208927601064200127979978678223875519192593632637158945850262192454623588173867948943448049244414679351827707897598226845347430588812978149939740204026546819691334165303390483749678811719635181021589767881998107363946882755751250956960526758250032419901352399785318692459691688780301124564917932853628691090766021414662563816326452792863607577048944775034574682260889124303465307921861456137589868928628813874645651853930142744143104828651658419622372924162527406785677278767520519443104671730467620271279734810664406013674145377905406285921570394139932914222046205774971300465209766418414002163452899174187154092050012514178587159819780664309207961302140661595864516898714369555270628938989278184584068773247410576366226882431999236668956382881288167330292432748916109684122231738010067877427768326321133832268429715686667511124771577052466364907502639820031004796032908714071590698771309544153596147686129569740565700061253498175317895845950342847556205325950662087567225813261684630412150502703877575915259433308020542548036269189732972188485680191653239453351986660458476975730084102887105866100144279151208619828666884099918528821184580648777065700509430012500684224236352638191330809748565998347134840706489180782731653848060359802678228878053071720861351256571248145164659222034667276029518345089692658331665223358170702869730335746634601734191957313770729004547313347586991766311998666020521249346729000871544448424266585279409522056658689766507818378870370743708015587816832351249357293927443299975484021873416709834403026121001256157672955384765041736016753804719994416015894098958369457531829514133527580243585036178281931704818465566749517625582619626972003283587843330210542025202030580579872059469401055901260228870315035798571606300813022663211681406874876830241984229011071701461954457718415587221377252579483299585721617381476297407504729125824458188475712549453527599734196226097650550771792186282824255840095068735182990372205653326995285178899587716708519896886723100400661089367690498753489483788457956159368898169018791886914668911800678721643355201537611707989528204962108346862674530664680091563375109211678689511674148846940258511691183031559128078132770829993368411145020412046545146278017353509468199106917235295387918515364074879185141997792916877249537366683674141078388636365873151373348734209652640397668108496569512212040115970723751947723715505907478164719850700519615381787180953054680444188259863544026213101100388323521581902451312938131620374624398744953556066384813563460338162053579115760746636421497495455655657013257277863444445073052618423201294899314810849675175966019769817860701298087860299585210634848035169075808574754603725409178877175582069846190792720674959866641331809009254858753172185200484523912117251358224291632858390502374255262055872316521148831106757407304286023632286589799069298901329318492113833337548694453205241645227170621402075080861399927385271048119731314965723154405773877238049425762781588785131174557834018730326293291561089074867745712999410539947719971804824481708127238170710906455884037546301840962077043690035388789445953729900072511984659377253420500930880786048188853912922622563264235057529389774275881709038120881554223603210811576246989590907378690625299201298220891072466557920625139537359385216913978449363185005504339958180568047848039116177837017604677761029035645359695968505359491975386156604803134594495852384589221712581418273305312909995540682642360823970658942000432739722060467495789333645641032988714754231900183977307475371978698559147689298797338345020679174857169638857430634267869549591648050225290148862198660241337191862218359459389740652216379935332900497715914666865733250622343548242748906837898075305967577787057268089815211700038550405738727906054674839521636184554277238396849530123164847186476871019114635222581319794148328775858959014833666197087062094920247426567878037938590736622720703000817475968795278435232981550055935588426170563888611049770785534210073528070165021577862647316292219479979066334866001450411909795845965097999973583371675266456887575364275738836631057671793962529307563458582302592542099982217827970493007319328764692469814074524378648023730987596861129768032664993444426824704321758030586897089882252968586861045986386385799603103697503355611916104957478763402031809903941728180135714635325008896181463911709780010215862662969369752445013805608111084864852795812898595333588964551895792675057184502442277140736289141191780528543950951353186787558925039833400849101823892295323627350915599033729183734585875107235390763823821347664315601702438652920697428035351563419250314279096541306843133584810354741818953885194258635172546163707945462710221950204518207690052299888213782028900873974179271551808640977365649518440464669067902882006361949618023180277339936839123531483110501204877131580996068745977360749054491323839479486765823554867400328931707003527239669373810253805081298872925629820640892008473418351926212885615575873196629034090109579237480239759503072277855473654725045243454339770281379466555768599228992146303567849430290806842922690771877081256174256975523981607953049766970105232483296730616152343157663174386461893070680366075092366497862748529812960214598813641444477997307309746852795413966987345609085926970619173578593681753194014764823096139929492446252440391656902282223382512180512881870997774521178952230077587411340975332882793817145607911234814135315300262623752241933349396096578747342188392565839055789639132644051445324862879020267028541208382480764186795692077234570790575983816679585635234593037417022296515472998273433397082594124138194506215416095297062444016085448699604943885644895546063542422813137535851722229076353417422778181188469700960659032249907522752204632228084680887237960803450154429733318785396167095053508690589286575002230084268497853353948591533935928487471208990346527211012431364117232741821490312650105946311244349263723878124461442811039614849555573929169260669727052846490601774327603960269564786675407231930621273308418260316972981396074525901036626497834240553485081646947879849566287658693934300499190540549685666944669102739251959856042896056673703731544329933117603425478894133738279259413173216944868943326768520216865942118739331989290066213233069952472679900864140615463337174908575343606027999027888394759414073044367125119336835885436524626677357980720272138333115987160246216351798075896125192758128142820289005217798192758621746367435388483084262245654591187865721098797344069383880444619480970266101074114983318946364955846453646502789559910057789343735840890747431107156825907279325808592723368039968143992078962051898343859626378918916906005353812029900962341381040055773268060263291158846383560040298211948976738080529378885145051375025359140268946396834831943126097330424922667395007632992308354463542339856810368227451260547561438621285248331090603880344523108491624777376303090262808702698379575231621601816609407896677992794786188231684101835324033550728644991018044505980148283240799629446825827493693188211364052660502487703842084461144361210706465726880666808000851566869476972646072291901261460493669009791108137414439295945609276239663412826829634537682409930562782526607094263635454826332006546801609881598541413631831796199944205118477247568765896912792252214400667957565153053047547750276546555396913677007736126433803863898118869729796992685803155334511339156346266261703522148580938289207665055785039816271255422923466699273846360749196891166808317963553004145191973081270291844238441829605486132898803622064932557728078704899538455652698978385159857503495654951194030298155811125313064804016338158856096838169456066250124023084274656357137032603494639236456381429995946289606332007256713384936960945678596945240454777767311627531512201455979199875582892741862428246063882595452943004011074774647911163383247679145945863655014573870120684975352479437288166352698150458203103870268678730162059717166758667457149570807377555780954970959917282921828102476975627917043084054635961244092480939320370352347302526376010793756209990771510903179090359680044233229012660063455285813163696567812382350401710478193354043077505224788470769883528722089891982717086876989067513567939728705358957971628062069873386315260833794439643161615130239576053795258261609877047004288960952480869111409852650622006428788966530695590960548809237362157440179933603570177209482656055232346940805329524487428407763456630390193013084742573144505264844374472756067624087317474243273032797192589727229363925002804211736179294636738037500762578651389130856647245606109732238794660532731875093432188109403656355003554363310719568012265553603231448265530637833125985157918817280739894804460957707531074744956107824557618037225141995559498346680078421113634494946402340316174646240647815922084344292424992287955993429328222447823841434209929026316024421702186617290443242954133579364067606913009992517144525196727292881773545359433298291800554307816997758785651523877392352198493615271216829457551273509062161621171410304582521117632156975410488534341089088320242578120378934073335882168018678470456985638102036105434404768227466921041766383480468533748389765247481152533930589184959130652722594591701032458847401389646763681265689199124309465989910715937229600758296738128821276136328062553163495510328214157965993052576655208458771561831718415161959822544029070201166209014181464251559376430313055739798373369757166365323556709899996743325267138428276125410338632439424504369630025956016402116001384776995366059482006614451699916749850665973325811804522134459879708253701960214663217125334602692696658338704959221586657669599895789086035963817521855184940107755790400432666473330062550823942566954739712734372860803691737238593766594504730974412497088126285428364567046561409078766095092174440555981742233694632890893366505528015510089919974076998769975041406678764768444319516574930931088413388904209865667834660292840324751678848307139988965613800424978477366838670030584428510958411347024510704643673849308007003193617575848809280830427984514022481913685495997716017232494814726370099512478634106337911500522867009429424255869469096047755855517863620404299482755216676947590225508376441442215461676373634651270356532321289424308906573077580822632992369301237310492101228277339074274120556526400536743014853800963556701806979130017641364015276143850723793548692781168607939229758282268489211056495871464373041237958855935899013035521200028311881735813116522723536193840942949753983030670817802008287879988408529982670717921830438266733228044268431814664552350771746518433904946759078380103308625916220725689711126564642801459768493627708523503402082864686389768402617104373796442654051574693643230617342090758555604854652636200115347552555645317444255811822668185799215534016837240298462681949670921234214578095080227626019566915568505661383140171955237009342084592416615024055069342438491195140057326385151989701730786088787363344484575974279529413259523144726597815161591292676295818845118243412910217124151625718398519829773379839143103597123161029946423916064213296463286986850835816931282123540508384039926625255585399930633793629921390958400452820117315483916217742662270713668910338259991894504898525211390506662489235170612915796746949071450779559572936885761502265338659993548721541107344437936635135504658912713933938739319716382485105274645386938351335527407090657932466154648248531843569117531703630089148832114332248916811944554760665878704807807061457216964030450609734144728829861952905038641722345245769551996538867731806432911281993290183867772974243261728926872448919590938738084023400806261436576697931109932943115768952027460180788541712102259868918862007282613403576369512827516410826387746122752754091536527342633185362185830847326480531888198125528484931179854145566806843636372553430804869827897822871935738006942865374534792926049484279918813078316333351985459434288740873373034475518804895865229129192038118065457620696852831687967127465440386894326960296650633875200771371443967367068281650867133660886367170082804468865373876063680469724195721522670988143377049973951229779380416134291047313036743717587033586440857981679853883946651414989382208588924856560975023472815083493280170724824492070042948088297318876885354181107588644963182978273308265607220609029134146348360507731776423145968457390248166770095173236031647044214461012464369543639653896359332429161272772777211355355769450233567471518523886147377200633413856421827096892871214577462297460556348741391138822296189990147554821710114307961774163622391371537219788641783382142412945891107240589747721971747895711757489179627047566432281686100997174980475416004972325993443657245227610873028372054083704360795570022735781836474478411833546482782589439138400731691860871770628619860041000819300456968677330316465591583233013839938302845826485285279188477843247476495239823422278112356668988682204757649757356213085089270078362020859230351217570219976152926773133042223665684780666022168148453195170522328717700692335811842110370888089350393358214488759157674534492709338555012951175341383339175435868366840064957947892732630406070458975803061329650080126839746309564546142439916208062764153488892145127828063898239109541140027452804878398932104407383642860978681484756849726103626867422308199089084824441105216450351457229190631880894710519372131494215869010285298499332831223473698617081145121662045697574233317328145900096305702908978590405251438346496888885681671542226863015056847771250147664279091510008356508710002266834587268736636136985497990792542168689697308066678283777766272907481491075395032257114079113957856967758033832223571720558202420666133577886792129557521804407859918312176138425118456408471477668606751274147781950795538565114622613136953286646775037444801294392566820970662968705401109508680492967384559499135952627460804864762436900671031121371014996152402237308285327951446727360120216649947863049917639299655562469065848050935930918375434976766706659615046986967995606502534243404643623647255028450070884039403164473245153453536277426318757296622038128434785083173548560826496814125223885331675934859806949937597771878103365950874669455107363006157750078413020989751486532411787327712135612324769001296179614403715560374074057866081758387415005447408945839528884323389725224650261586791286358876477737222448925847623920065471879563592442702864720502034994543711653530657187657913232629000013181001613559383226845305879712369610422072173465536266143736161269511377559049831845261373917209212549553904227534374815012342855805749941943475619493189405719430630827162369767825236820869849619013947563798634764759101997478120017331343394113599698737316632826294236747025792899619904402295370334785972657269206937759094279254265714410878748291656250900484814276802617636065018087117096247011033827408030726438482086347344838949122083340594808544069053289815449609616550924624076364431714709275769360246715151319116662922036337281652635289726358308964115481342006339458799464372956490080071831504134581408317494466738871786687713952886918741450763581357923692283156709009855962728153418835446735011069587733541769128066875093090501686265031442808529321680637270781400092143776119631151544334048485286795198846847960318489375231894877683991470260537735275944204881644943229254024150316012766980392783084537244686408349122916351641169753397487083791855461482293109800526610012186589945026809806633908778849239021999131704457959431986890942836647696565591004682102413888814610780842891377398565056613038614204761145439531815210724406096283201476991130189290158096319008334793852311598148230688620430950176262873422651622334311953642820836969350282577209296495717866035246194905223235208766267896254500168420698317851609158832253015475153236935479122315999490323303965029883973701725709374823242700363228116659795737659793726820782772679952154583955790752469703088618636653662955302817661728366818739332482204378717449631917427156195574312076382628467672286850621450626696377019821958758356734823682100804484340231109029701873949716359648157534925200942682371792493039230138123290959594253958186997111691788251678129660606465067074156458374907358011053108501307596979854955281906357766399504499695507639750659563314596336588216970560623654771377810896672529056633529561551944290952514975405200088222422806374983452238749366046835752141166762384636281225462115107882511889424864947568340855586241380030186907504089940379144229401076828226426004074042802473524295765915984384602796101948572720011858080365327572624190834791132688437286485362206970358708529270348578577105794373574348445701499654039083238592238483201000735132706841385393000594325051495516762027058981048786218184832476557004622557898960207153645329140856399957291266589896120600449624626317788163323508520775594249432696960987315688007268876625618508969706681182527181411549550208965330688268339811287901735420240173698403860147530576406762419429239858704395179310238819489952823635545220540809301592934402406173753267932984805276520275245541772505137940128253368397072888241705103263798350018021120385169732141295931084306604575783571502640269046892363620938896743647560685239016397045691432897038297501024545635926958681478165332769831635525505548454620841067474048140921042215713392620146274647907898687346723986365075713061769452332465331645859718805456292729684376031502194644904507282323545874926298422432088214482055918519036092123774132858471429808111408723982796030333535437946327602259627644402112423521323090308767363665538964387518097014569507427902673600591741667131282434494622452629591439069689178853241641187332025812122087480002901491917540435553969365751481237946938674865657816145617628453612562600919639554683222427937956691729353584916699167943593866833231802917686415961362198984057908452164503854704718278603877576284132519867349485094757047691833479798174142772601168450134167794514534090554853528499441416328278140876987502202206496784307111525395323160549793009191585710602961711621749268825184914038173616081515089727695838223864467737188694683728957592020712227938614329946017250871237384396268723103239934460830593008989072350565477976287579306316273701140459369587681858063202874791159320268620085594598520760365381660456245275769987389766834733490894127578681882273210182728701802913025564490795760682277144692987293858989275183178282980030648407480796323658570832029917474452146174791521537427383442415783130109971741679559891736168455248754485145210953131949606312931357716744117631405075903783193625635585582980798804970504753861656291806869188984753554714399059365690773942840069594148035703519101629905616770135034823183151021308926109767222541448986113305787005569855483075872430945279952325317252485065357954608213265842333815379100696718725255853658455760685820742906923324438698905560604258987038395049570795029260067188706401825391540773389884193462498031048475080512022389721564052865586445216605327761133100103911931680996193971806187574251527111025024457206854882374609111052251274884495127427939981152288649089300398965435311552459846511853473717567263390713915891914999331541319534810242231193081107020733092943545394319613574549540438712725298177787977985525388654828565352062602750860562964372023978866349354887510999886545806688306808042814974922550416263496422575872710260021200354114518628215050254662017413114382935809157115695989225309666014842911467775666899693308533873595069120592431404047335058193138735682999451614379437324886006250387528090591391141947466955189365868640686631376567019677266492259261153468840722164699896459947877053077328850099425294144896116352688896818307309934291337985258242195895986605667459490835528703704520528711071861305738419267130969682864676555812070973322667809914947550161037185048919152331827580426067959405578944481171145591885944454183178602046782618417484822288807578043713327715998687678464606667097033043211332289143348934909055024065410566237486205167059368337746324047292187032703484393155861143404255271386773012981378496492211253992194384756197808531027380786619700026876823797306385177882821327946574604216818226095600714090593495199055598545886130150736402506680869648680623505503304704130630292058983427133316051945427870937245093026975793518861756660363883563233098171652135357012986380813778988479161268273669301595849636081390506648206085311384000262936321257584583503785639445018428431392682626019448070803297920833647752206219429639113068036147605281830906156112736646007018443787734009073756410091622803276216895971922131806204728354608845136766685193758216085128303725695330458676200159319998897246370021620775167472650577191185397595512499904839777436371894083579692469843826525021840320340732814135471981802946363773770045150569356222949148096537108207906618422513433512492610913383510179855238160117282105423067962575306808873025069231382961547082933248423524946437204909719187901768280658351810417923177486286085784756716220496138173405516426383408441127975346163082089556640290140737752726275182001433288415652746005186331630860529811454540166040141169509030569520287678206335135071837776491242366946112744366279031619781410290575987338814086307340119200434746439326608695210511499539158894918975723382752042259186317690289436751567139795437096963078681752992309639397637012927445781877256757771624841912425090351871800509189371596534316903025353085740378752643764783096634693453884476235277482698631650715556939829847585897240971819150386551569664771018513780926351431556817759917509317982767031194801081457288814081194591771849745990765817829466980111829095690554153983898831861834704177672794194638466166355319744268486689098908259165326533413416595538967695042080332109943334159099567488769185905816431639222893125876473943484938896138460269480229074939499341808173325889677642104924059177648901350395249077420669411027060400339680087102593802383714893960122579075174435102723706280489729439346418533502362104122994995113698533047974464540952690804849587774753559378720505368300078868132406434531345906599220474316654110174051965843643349780087443643350895565068445792254814816191651969557921719514106270630878180178718486505133152789869423238481860892992072000077630342646624679030194428837224987516739992698784311316792478601231980630344531861399696515664110357517875767636385195967218138728890259201671355087356567946988974248410030945350215575768804982734475180936639093591299343016400713682920252015801427421539572512405614954212329676178419035271033278788094525239238931362094156871371803188192800337782417990911630705772347116533973420856616636145196595898375191739040354832659124085701888764721847988911192538432411504578527298899216129568410404936351581063437249000390464415730402221857286657109022022865479199570761475603732442269975488440956799958444733860888623529243102542000031198744269441712134491783409728446734418672916486649107753249624278569847852850423910981289532867067974519618943095102898559854422437967273112968560946444809548380136302211954282216540907928651588434695914096379866564903380884848067937100836358367797892843277674525737379802242847889884425489387121573039214743863266602087467407885515181042152792219553934847075467476073035578419328284551444375466491866532950615791908796355542362735132166077983669242572736953777355803676253602279922571546362224780516411853955159088882273481773619765718861400807251438063215927851714920149993421628815445103427313468724687320408166591526789817733213073588558064885870705210812536985091418372253029366759233898930132308161299654288414107110203878462843312726009624365324810969571979280879906156782359505252222571149746348226907264339334405836275986268977903811609569284992410853319055891263697819433777234641082503657838305150506211793008414452442453153325605612530856252648710393110561050115246066298580422987858057327068913848740979527699515984154733319280692079720914668528097060346616752209821623505662020184478381057402102900150494269216007484937092014474539643183666261286185337507238345135679678564251702916725761140212995935870264554104433867521005281419475306158872226385014187443834978992396226059501332335750363198491080717572086344644399937995316912117980174616141863515271378275895042370746650609430250541344740646921191779504645324540141245301483685730522072794225461687566652201728941538943771407676489995601230429182110475048935108082381425006419693949208020187753029179274828781081121815723608000512103091643218760799409013935071374419291700791899368453333640402055221787160119508037635653300441071645562659296254494624190211860569254702452414706242587693435468538988657123722898438925282855935818906230402214678840606993849885312126831735818542218637696432926831492610654064973126887490131635210388613993413171117619962784636428584523691382302493288709093258802898059298061692940247432351030599099872844825484502542868520908867815851489895929027779692497453258235579378394980683437970398686760605270099179700503548168574174690463581740221968740462224220956244829543703889628515994530089767423315696418812334792846110060476465398267859520276597004654935149830683195167917184562361295509482816114386164328066829308594482503400527162762187045671708120139744477210752191336158396748179112319718149163917469761079138003115330507993498283913648960597464581455541457551165796871110358596350204226469022236827925203420403274009430419008043651102719927503428149509598122711948323134332716128622359745626249699605771060423318497030838666616016667371591829326020074807973558004779471672237827307971095328531120088566695537222161133049715368662498684563921203171449937277438032197186616427014192028710349626910084151200438728053683681397450447754341932316267625007804047693025752978924472130278363954672318978767506385663694740985486783115882072923888992032042723726266481658046286497843718901308978112603970189610624684014251160957743890020893896831199920810383596794545606698383318733532354738345895969812044136359509067384328986696083842475809752280122541472992649880149483839933778563053772063455406043875223948140208041339946158716696716178896288623315615794944744091400801672437106349186129705120988791807365633730316887425802685922206966296325989806594128140132989963973277975107050753432741527161866623125092054593613931565433234049865515822165975184935000543507423849125966574320761207142212681286628960615311236012057368475936108667465780156766456632095555776391949330733113661078608652348145322528059192450317558740373263871616355367019614703480503358494830362143368281364479591794219114807460967219561531482481493952159246528154441761507947413185967310325665860139224198194405312658871272324417829977330170387002320925394393913739726894318876003781064832888613227038267972343215020288720854181282013466367354710553533246352865439066416307136924843483159029605478455872100688005066438545458121290053974127991166677182673362543437980261939797037260159719120640954450859282927454822022330782552723398167606695729638688380034574168693332229753244703132835985635264822904551839055196214656818675994707709209340407696797366737998516535694779620752976805665517522855945274590780995255956944397800935365502949054735606085189804653923192130221915240212949359213002233747831844584350977627732638372191487429714286150804779460165973898178630287592429345904412076924769107494974731124285501608449167931352535759412311588846468463420407704718586848819089931128930732824982849513351176557622408840026178784001070269580454505480913661231220986805768998017852283531871021333808731652293561931561213964692065590686049292641863589994520210368795383591037340907380271999812425358532275264733087198319411836720491969955677204353330233555876399707409808771520383478929683590634128117325696313077853940572433303969978564026771950914852156557345237343667812275266154055194305042446440796034214164407011518657753634585502732470550395176191984761410207162663991352139084337161707298754145148792920755008380545540698449748614937771818661509251457072540620437737274405099523653229915568004142695242382107664594330459950886974622883883099978592619534497608521390775253905658604884150993160003397381966525321778244031973022683087677984029418540002910539788416867635078453603140828928929324701241778380721434505550382559167967350668835422972528123253709508801743102298906842520292930527304398443029087484342912526124817145057926470712227841368241381685469272489782640157115952803989333721062853750415097898309139892909141716730207134483746668707225670535482874075548677993745158863274061040983955088187276231834189912115219653671078513419032938291430410677978370438651259861497739124463766276904573101475207534780005546672105126674404690622246772635935807403611815832613950107182525586837625433149052387083983088597610026216448880906699605018804270420054371764879138593583301542583087693107014179515361610531234893696564442764660750053094517348499820786678189723670176680472919247344039178162582728618192040101721781331108264563468433217617666353667126495403931980335673340837939092206985046388788841487243262756413278023963821851463126600503806752881923640873822445687271608002221615063900434154017901586803722788482505969080134379861773232304962152978179591376506680604236676182543869152081453619449038075608231124103956199623428946662529094565734311948167453785455610775858194569140137678560136247716569658903912410657387449480753320079643022916893607179270824273564509314132514526154839315880137705380612311636198065670760240008847749209370123282744907873355723584438659775468154193714542195160614520202541316286102567819439150717841160232462700452496903032920069999060872553625831640349353246526624375960538205000370834174721957601468031652560354838681112067062873998626222734937044520393518052169773412364012418883119273106615686654450536794976795086287654232654543876137620768873249985549009369174030808377418906043103838926929259330229620725468569522821770134736866339840494599279667354271077851891127454272175727050116102271504131688649846913667015645475816995120348311522030123589128495858712815920903939916265971058332639893115288087315066285928055010850747769097572626441289426001543413621522196608460717654568997877297475279027012969395960094088158355390910323752646935041979474004324097925182022449222162800642430542315658120042364169727562049541537763736224695114273789513580951779065555344611767043509112206281952225992478888010263774879956761231319079420246524151763104541872758470371773163335426607858719787011578277900778154916393194131399035563169849826680622646517692846907108816901412456655470186376516593626241223450871674699748111014927354373720926195876297448294227415266516279933320751449203640683792230338394378260747812249863203109265055124935023885019501345862210908873925302343161781530146826034844460189780800339498617091408029707555991081223346580760822831741130048656578463714612300263850728628382530548881804251265857815932843700059975196246488059347843218673318771269530908676477911152941316952107002882439983695434857602755544439211767953412164070094399353401897237736676248246012515388869034066919263567074311816948172434194124279286557538130741889227128647850606175804051195876814483601127621166330557677995366409452436704354952486664440771971796762294036101375151227237191455170351145018299040825596757589876484199213404986853142908772603563889945797176541447660925269325182783962393446433528730904725683978622942939140915610078976703721122073612249173424114391919115940660765803195463143062471735157084188882944183523247799378652183331367327842877607064458905262085531255413723530972738598209398764805646715537395208065593916107917906523176211207845776746437588094172890091510693254782799099410485378492201611756123066720548988768889566983196369868801463003317328414016191523197757650181996803465103908615540852450401785082413379312618137384783087188927518171354624066194646190306571597238253069230926048771376130627387398695421239035864205182501355349599345931059589478292000781135363252645102358311632685193217324766087912388645367919316486317397886493207099098141993892350461980666944757391695379508523536251016722733748250424222825756258894727476970185993635066361757026920596820182871573511776699123906580004271724885792249380619092922555116319217446085145520900142734072635947018847022069612753251684695189562806524950377191369331574872574832489857951905688531573573888708994928580144113832053443542736356580443885921721560763514539292855231591192368822184275265138188409079945688466237068098465244278122749737009260327633478527272855588565985732397049601878820139125954816523253702090238266037667858113889374339075314352632166811952735185616532580173617174502475570603133668969884463790304538714599472859101708449198691470213382470873797990931986845546786180597936893021527901312218970939269709282267422923319026558397266305894703889237132765461888411700180126660309555865430006817778402311403258067827695546399261656211604978413150974632890904381758697129537125129060114820571753595553184131323345328469775689221030749305640471144824397787567548035431495057126906088382522744028436655652649433761709278497000623578224492631327702031230653439872679438790794708461983135667103955603948237359641903956624293925410178215983868013684800150617596910120872735956320813867415248988320126561122005026453333110863248424801688981411706868997792818193909894847116355278281411131926164172827256232608769924451294902842156708755843986696757441306474813173642694301288168221338116252652513724958849704386617099990930538301605238877407530050733291311741476900425964247670109487352239463706474391265171731630422838856162975008185664808032106145346993017940609539627798586793328378593156215712494234915052779361548700308604760930568670843645305237843007318386554772041444831910839078458540771524552275980729484706355711765924971828552830725631928023116895079687438600750125383744080960682297056330179705132272265801823002458705575787204078345448838966960662504899334245452188350682618775375007580357335052111505913575045423030208982116453087542171538535111016086748462035446703648992739975455843797089830088256645240727971075993478450741184323930650706107854645993149715755415425637858078790805485438259612836089919236596721973199649109495234397221378236455712677365904673097085723901228657520070996565634108765983645538404798241014737359834529201679281282715977669657099098503221735112125648290532985823022787297685621785917277189426704718954651184590984899329643277617300979411715637326738410212216400741551938095077365626544735660523709504365280830494103841209930518664595049689949561646535446902399273074204947878638000581789653758239821746633658376317654539058212742957792927370779619148717073002789839273057219804062155138333181356772473012712372349367544538429715009132958025225410292506932618494076821269400405133981891441211226640249928062156396323244655338093233633101159112004009124188288555964941892675440022343460715301729948256727058317946886603931518547346461005615273018088395468205571414089725954193791268617258658369672970880352885232456798677688898983150402062938427666705870904643442143015118295526011799568121112417056346792045236115787613309307987922721636140922845063880006516380841289860570710226635092002541178522208441306408513077735657289338739480654844454874124679304169087396781431654857629140332178071213413400160857982169407831862791052803520726441037537943289516798943639532074490619593793241893787943512558511569589648858262573684411405047215098564995767513572024224624554838109194209597667858921717652804222757569152313099929012381460606295878340572006657685612387571745219596611688476460468182982910833449050979572091533188061933573350867386012871880701953059483189259983082406309096135686273067991812811743147469993649494871416280828862964235262514790830833404542744350406397754130849049454009750086183097839728200321163636964986844889377477490647968503968548753154972310124451630662907131782714049512437625332321879557465512901354105725312414160519742434120262105072308965576459001193600244612007780144483708940225282704910350916351685849895047527625405538901463415803958848416582982160285331780890291189368092475052860226369331257368514339215555697391474723837188031533857887541152558399748137368083033332186639121939640568762467618552044673134315724661271478057482762086329422954028574609531279954048513250306209775710247646423130268612515716019568608184690023324112933523957916865433698664266487538768516922439580799805496137548081086171597950927983772132209146614155176596616090470666448482435471446230427203668730610028026980574112454473262731617425265403126866674156399172761614459423182649122137300320731643269559768423621298340543243864773960687151872853281403815778014588550975227723603157836898012252903469304970582868299690661408363501692318151475615766925012155190307389998826643669085916559255741716333342882450767484122026606654657381843759757648134009781603341017466551441616631886094188937337437449946836518358920198611084115169183633723054967041395192260474813106999353375831281706514269424223907521832352529912739773652428961863198334515400637855112480414208184356709112996179708749954298183662356488211426816084141556332223878618561421767403215809689488729399403002406003349325935226498515938539243000391016173082576690820612212578610403682757328886219148912043579012296104254070463489709837897735998840115612933336626739133087147857454477657827561966584099154935700608250303959140605147786857940648182846285120458398074941391757067130486818083320406005686786714496253524935611680045310996725745801162678454661687608869060064639093827636974302576116703717871913630387117355987807450374388988503192126866739475534437229913525035744933065695963955168010388170524140246789775664223573475300294332447104897152487338536326455964211131410044034961473210867545642288337615099494967437592337982039280785262139892440160339708930167108822073278527864962830109777786939612218822597579187198925642121641105208363976489149252047556963593377376166278833271168688822042230181413096394855574704682952042235854688772753615438347433651602271577238404191412993541661456135875008339600712639723354270788536226111976479238253071805490940776986818397166452352278961752299245592999530199567106634076233415479598592123763157855588433196528614772146097293774591194846978798328678198526794758639615672863837682878431299412846300708375627551174404082290531528155297010309889460894383386279650051263237942337552878730919954404967165545628622002541363265022924590503023908121845134260677154922941860552822853545932734756877567654010763335588944671084540974746775448957409455544478300935147069620083142058776482320700214199784922097454758552758076004297588509873941301782380706682692078633817193786224652437036034747249598138784028000488589736131288449622769081294298024296859126455346799119353659448828664745237181474431452447818568306188504441812072871873184442260830657465088196211621589030725364827137309809910717355412881646373394502081015779018932289809889705676932684139738673986895034564209324488909149523611452949149491641613925475960626716760084610641757643927642458400478429363750910420829668910984261760821224180315171110523067459318811763412758231563516988110082704074230181171411608222653155974112236427995754184813708045349951861881734035625884833646981420904483882865582051725295880660516810233644698733072153337567016809294377844239176377893450055810699817593532490468027217521570316149104429556364990107858110605336431845800895219385581796415350933023487303846673746820853263272143154208363286266899897805842097138218099157658416113624527150306552455868616152107472934435597709882591222394695829786736539132858814832300800891596935485749420406673544602080258622964891921309992673845489001883760619338578452520432531187186881425885406094400853336742666893577662365330685112709373060063336953857945922251576625704219632059669003606762446590085610828267407863657251878415501054412434387553219122711042878749715330646905507559880151067116613005993987020816071025825571345469186442361705954296203144513162750091516930376889298801554602703735508437106956873640628639003928060643599288999617736810529120120154708370247891163476911145161819520322614065108756395663827961134921425697383363833541656745086908222837869109088826288862698108461031318376131682949576374982768375542257423254119634705508659527275592433810457739178612830689631144495291196847376867285030374571083065136661936556055639028503951333638855507951627223923321147993626807661136350258961736030779419000210598409213640403772722428304451857708672856930458957996142969698229175159828612484647823186815586217122302590440557488926614605673340037493799680783598179865509100580698396888282495637537333191914145880853785715015578245665973491529058591226548896496843604056848444101247813921221827241015911000701855126496001195847573061043186082320665783146607979909486444271069282086576416640898422632193508041586907699753036592256937013979973943746667361114146909148044926646441455921733779715471571311506726192177927221384662470200831653382651389201427346126973505733690616045871636687636802539852720058866634976191063921821707728186659296697183364681379834504713184211461076468859661505255728709111043104857938395042413136214142365304404647086303738347982943190899832210254456575861410693792487912001430894002328039764210346600076543567982217773533021303800588263050697931994469293380448808391041472820649897440298048147399318114489138824012864483142803213340450348162595450238878113456383357351506020734750158751939823904383488889231783927776828251003122995149711949500495959843987055932198788597217722644651894524754461039038345726165823495147624561053081586755351227705152116394568469424151208561344184317500440863506476775103472510361687209793264708931352865140532616142159797286751800984359395501026563382085815054642532674822409443733309451876497292115182363901888992980749848001634065808759829956151200979130845652440035652480054474650559559030888689832479354400390302322422794260263738769665673805183770627742295837466033164198572166294446890174291111933878982234791456178132939586857485295871767526039066905827489846293853396702893657715672319397607567512899662919103102569353611999143192682248146854133796883800112075109369335228687235309958792951606214504566800864107394442287281813424601236714850785449426854122202635340970150859417676242607958637694328517889643978448810032160959980796216469376932579229905723948187375172266880566585461170456341643628766296841806117172918390167373409533252819313284402634689022791719515921801372343588947732375240648014170334849449563823492289086688921634958248330484091238251958206397292908847490579035611148410072092980470373419243972667771067219847442531597986157152927816240342900242389844989753743108818080024779389665658390515447811978294552884366998995611325115030032226003060737314222642317272192261953146289739878469689283460468965409209190853356528673971778582284246211349955517202379738739873040492897496856888573345636183059254213480741211019201614944904481017502082999103183667962328654959413258045653522185700711925124267904012646953831689788949423210693592054474723508336724393637151272911332451078755868239876501424853568065318867249815343878695326614595822570895542134417585194460722719327623148035998487734510963034819975649363586452340131252539263800436516060409297078412408650900761841413987401321179450092437250699475052069978271898517064576441214617488632737787541608276283862122358748410716327789750181790529362026794386646503790761665808272177629735397851438652514746378502695316042057613839589884743653560751075536686368228731647694011095788267523092888755462197679185530050784017065583251032189389359763914310634539785054767543278197924823023174616716185680133817228251664929767147819497287587049107677134572326893154984317701627378214117093795606261051665677266656463197686373653741630196498717152517887609589785724861717907184832850496689006333678352288035006523761916204474375378029444907597639295832467744977220216568326269500789043140517189903064446955858843890899653685032586239745981914346268866299290278058647334278319878062196315533606781333136826673998618470087488930560602810060734569498864670665731824935033535472312989653454244013942971288752329701778826469897087439891279833256080953736431588323955785041188651098020524068027608781469533992969823452060124392817410385267051109520836027721013513815309484271835750580732250344879329776389447328283421767185519620782081808283764466918194425112951089099372545587294872095718725817635790685250226502191499159946524972847188444989743242502612150856259699918449343068703705551049692587136856081345950726788480214934085568630608154766460680935511042412440429659787881413818048971095095800543805182749705746953527336849099256671984355170484423932504025798164824445722204528732467760064730823678951113869611255810496868116757353425971758141923621392545135524569456951923105106578432442179563737690307913381020962761445442065887330387047856291666711472604857262841526045309416553282706098843174339324323826015817873501790783083996631789751330959618150103562726515709657763546737773806861435158577060322931071261015314050451483837593649840669272517639462368377427420820427191763956877033358771081696361210109263315848521402502567850060939757088774301468840452084875704404088977338169440572500854743312671062511101505040862471936439825320169072467482008429964522269522743167866608366526675768156107419728271918589452080632052702420704012660389750914908184248629971309364428354337094365286356584737203722209796467280452291731733663466244571588877222865704813002562916706710347906634600137570378007690322509259526508785214982645976590272906253373187433967292540672221106898895916956620497548841612715173102019592380052863971915622875213227005555234268980005955540345779609783752679998152077426448932103043971810408425848583247689903416642193014372392913384014104167203087005093998046184848527077060850877338367286920249676563276636448209287854880744016002183845587129900190518026928057768970877494910523013160754068583589469654341380985700668903410317856258495828099380280730415666213896478421620440694574290483734484216725855266625957507254093923044178820534672801497861330869197242918602354628124380413054044959065628420965141509050967704893765759674271650502653807724352282245184502734173882378990889372703385121666139581502236788257646770766611823726868273552276522970093997631641695701598510084188938261099503352632757632930213592501213948572265967901843740884392219776521468093770944158502325230804934768731968897165505083609741727390873513803475014588447068150595351716418770891767384415955773929734324714550348996751203098114329479788608588257215534092486505380841464229180351078736987014749294767709732424843344224587798685632298848268850169485719925104138729100724433335657277848474035682086001686123337224586037931453212085032103293000608195643484895139525041525554737472367263301316998284452650517951887640166482000034974434878883101268151083178139162165909874688829531772042921405425717585247105419238232169107209947195634722208623729183496755920086659862402359690419648318141090140489821468589021268871815354915363793804026258712951071451962908020033108072566566475692587691710197535593242861454028328684346784040738663688600149563893127771975227800323518722932674940067014467968864252893977355316989646042680569567160188696574515159946672059889571257806043018851237617616671221915944979751207606557123868834566016369124590397031070251183455715537069004011392791858562916859622819111281664954422562914244577041100116130055733055201664878365036587701647028779308468244863180560991816850053743400958146875502247801574301769425764875155543749444005810482274223093122690129084426084752027363315273490886418567179187128716325689410417900615161840576608421972446381518781793106284129323134394814295545972627757138524980692240023683570714542203743336775265576785251571651106596320436339719861220653463786920599606522678950506134998221684451797962232526186262930301992768618707251152852879168505238604892908720907281951391006374364276682597605979215077787134744369085045461739279029415255694010271707408322700749521552864092351456906954872645327730050723674871234919799981144477612623511558166628205515741646749906151645560019356880043244547168855839330903057971713006170199625602301187854142205276857888507577733506519157415972302165034007121076551740621548896835940794971528154431886210655254546479445887116993706175232793453016821467856836800023566216732126414319607659851810235583680275488140712023637620982911305646390343469997304926710922214618451393582726267189639061756544567436844978180179135158450597544956170211631406988042721551884248731464046656650406680995274771164589459462924236890710234707931694077560352527710097642811694817497057140002346142286878469826951186706385547961998318204208619082406979971257828295321303482639072107255976714450598440560680053533429853229228290705681355987431843432108838863853728192128373603553411236601992508153226172853060849853271659058780293285128402353408005112840412218808955436065959188294449665593384998619298048414268841003676865242532676797675005766094599181793655360853694473141932422766966067578687530093330015278021898440016880086803026245369714096900342595532510903051371412749522495188126560430999601431885496861588069464252942676110301450886512092261681172206208688456496439060042584482266482909342605244805274074377264259030523564692554948192110730269864473375055888367172429381578887799418400652764412971094423085310940129208307613468793913953293957230132742095612340915413881582722613091085900254736534736608079403934524714232340484190648633667513803563881875447658216438146729845155602741604841484796484125967637785860431226083643769527072000332108816166092048726940797189751288750909215298722796280290480535186208143354806576354239240864007512699331022196311048646761535650150970307579794912180173013979153734886451072012096772581153253661447415963151512345765927194829391548677670739250156198372928976968429890059512194796904190059097554310161550517108529783450366240611967445165536650664586751710454930203622373237897982692284711761786337313635749269725804220064370793478125322990148120474993475401512828545611520439873265885260235255600464282943525229809052743083028148552126475305782673816946732874584090371663422403438719202851873491501980126303832552059856595453723858754472536920184311837679434238733940474419525009908666414891560283433218140596780281567316186637909222821947531514029597209279035077885151004222211735565988975671740559990939664814053724345888529239540022846791319944058467331132257648556478465482766038324140959261462860121840168499865723216579683475099129099866533694335513601375983453462349027857453054562247570637415990035855494159090870454769215938710568953534231137308233866959383877553949713178266455167784035042522410948913313435955401125201608957837622710512163717636211070928144935427059723016102868584871544898728050853716047062756135877985909929205116694214254121364894250299904039970739056576005486142061272556841938965335480709257318624765911575148512161966880813091839273664867952173989088624333947645526043863554080612854884712248039007449464980890873602570964826572451116643684252616446392935627006621105913244693149731531415690589080399879673565376607129607604945437510473092087587337761072083850137150679770531517601888733593608458128503300268143138334079644829949871028773276587607345694157309070165188475118768075055324584252470225275203799616910247753817518732833176129132927829211237701260295111307166170946044065450073659367846904227475910922028401252292370871001286698214163419301680399567160527042874654825940042820641322204400691163896783308151177351833463033040471349604093218890438047337032782207692432811178301234733105174535781932118946881924474393133658719104467506159002501008770236447344098268823513519064692911495754341333341690760712761958068295551413163155349893838427142670776922802219918807465454897796970399233621657009378634917330692470913301598857723759664074790825327667695082017369073833354077644987916412176850360707477069574415661085723339457638561279296303060570684937765366006643297747825185007401846856405341506459973695719440884455710212072413865738076896735055215180767314957511202442360914251647827042776935726118148717872995173217148730850874218469125080866240109454956041730272925917035232292687464506371902651479117239765646331965322073839708039544431434294171906444472482459372341472050115575858427030987353139555813309488352104052543136509147334760978386530667532000862859484266904147776724261214077072041831685660565976768656444742715589309180441811026332046803397579052666418971671848904875658529996704139608862709753981410076379118886167514582971466911997134477712835387512630319077595731205365258853340498663499754730250180912424041495181994954376494689885936473238618187970004558799500535071207031565146474059307393929435113569008148518382135990061840711831883255111904819942780325656237593120929046724943253702150758197937726996002657707814279611545858040546754083732080843630967067009772529817846429705223629146747348652058623738951280083286010030522064872184067796461394759681162965927050409825070582217384599254362231778625208101135203077732477064110382131771140557449399673087537265501824320978009934044494019478775966397422184516563919019210711637862541199066576742616794336789820237732869562386196314088190674257665805332014135941624310029581485120989780616985304021939711729899325595396927643511928100676368783340671418981047013023074909102623524432091750342074337466374600864514403154371893426649556418406012054067232923046479312965045947404470968254096240796256519643675391919079968990005591485751456633088110880808164267804797148782463900504603583026190102811823271996501777323173419702060870619931521318789571671428434989087771119310083772462308587556150571967647999873485512864725048223714311270437236237596661158470157288019207811934056589729473051173520106414426878062260853019483342593351073052707749874413227370772108798116699114282414731097589863483685129208949764281017727771713569833304680702335510589557162515990892186433314948427352978497106795303751450469929732351492730932132915171951605368225998229299905564501105405219526067808645969768950634580447952264562412117058007378843598706524087816168714788429547726625825847113744868902056872820300440999577907930464305045392315080511002211594321938585767853093384695677146130434749420590890849990516637900380538421207064466273218708128182406192191499375413742597430775672662701720578997994075768435153849711700994737197543439606887991295893725313840821911013586072166445950086768756098136324316112379161735714544142923947418418530268775539989414337443683651679218952084858452739403580403734328855860870301350049918072352514493230722480698708108577520930949297437623340272584208277324402299443737697130398410887546297779929851120256699733229033746189972365794314193518901288961709694929519071073816410873159627095364998370617211517982578475335136476129630417409542289675545861794174835940590763567581177978461759814966100338954812317376441998249274318579380728830879478586135599974480306553767012059696705832251400818012877507720377635684120037955376740329855189348099017993584474103598195513226392159628663123864603331664016115374160902992894133574700220075600514189735785159453520302100567056934936168272814433361038720649395684822964502792110012067932653420161100428079542091795318729280595579464556720808930837598024499044390052467582444608612320825001961148928504767369610207438911627027339104903713782047051917425140028807933775209761538759881527641443165226644875903071081635151657597529813188189199767343666285895406491257126989585466343939185160552829095625085934290004879079702145937033216982610595830200241981149814264129063626955060600018859015129061317389546035414012894244214505223641205450636287050471506904123769542135256435166495475963774210107492967881140054103781306887692504958162100593496269764758238830921341019143880377916854672116314882040757997456753852708649951618206359480627672986340237513875700178747440123310544293817473351762307774681658679725684495045106121954432532289512567528734293868952566230984369584260011188799277478072732606171757285743381128464438701984842801316178438543019893882814643874993984355017831582622142635085989150380845218794058321209159827152592201817780130042162065214377510767835283523763245828934344995429048918522491683578604123466610196801074611482543563520608272448659630222710628706838250137432649205081602095779564709826191543707367058659217415913338707505508701700213827395594255193973102206618761480305041653832661149714882109332705842652466506107361521961835320679025849685448578096432659788429336829204915637569729151654267280865219646085453812454248530174139011336419393240436716353449148693714450542701084725521563172568514311713419651176854031587911679764951202768399409364029392151862587379755865758747196018502798860177041769835432349087974279746787748355156191239024150885680202977663305378751476740574322261517894427901744381709729366338558264688591672749167008522383668787176169414707105454856978081041595666731040885898885916485693729793317840598703619230909506306777535240575258555951778809691005905192865156549491118740544475271762643789639207911802492985560285441479665907957910629504593745243251501668324529022253697638227481545920861190340471249631275110385838467598653434807926117787884586700072241905487641620833093101847022531125141406289183352833515999265165785188376428347741525794877026237176250882143071643831812920067081578142061779995100251032343580526790029575460298972634714516143559858761107680179021618232157882870166075532784919021686737158760616922025510232603562660044016219818384762577738285794946450042576794021324177130164761415310935556576333247491027652077579289792908815710960890048001857533786318397057583312469081584265657812616058056508491688948606970487888231790059636280010697749905794680384274162263276957479737813600739853260795943060911001156933387408634494562452402885750527876739430030464680552476182939016836831976393010729470332274352523144796019613190251477639837263003562763182498075203721422984103891684837850448882035369226197598517023251495080820218257917265286243725450218459604472842572037610745403218965159253876341495893975268125795383711304222309372370233551459691789385377006308578578133282925657964268589930968821933726992729560030644860963736797048615196740904508476019241920056617234683110768588869699140405254045234286075008810986061308122368777702533286912612811201487607676751228363302759608204624586614809939532842854014848087027643142337009762966635037918747690581015160581692397232822750984081679276426565625176182804612805173199393441660668422282697697179704104928210072117424031061408750970037452187667980758513563799147159713378208386675969777116902832561689949148876312674972623518696009193617224026882178983386656398205779289370587786856840840607351573372438805618918747385852900406756233764011844848193689617697714741409243983018871089705614273944707132425694050433249351902259392263512221608382383147214611356003211128857290989625318553605222552197642253500793703381112842679077447392377576832338856690135704477300158779132742761135621688822216503702287167358131864206327682636741514819101983463921871340971670870671135339295796541671579203858778168261398809499647281542060333626633101071461157089889558960874972408900204589756858731083031005513187838961961281023117897608610996916376017753736692693445655036500961729759087530271900467081637394566867636699055209954357250174360768647553785111905207744209271931138881216401504552717520435066961751881838989141582252505620350432437163735760436252000346286080009394268888787933945681085277579622750310684291995424040357084384282495716845481574657284388923554876989048901227868375629559708251668101443791252380516658765665990225564450536656064806623723330475433589886808579147006862477332090867168188734127094258353967944090863635113770045556363186074920448234259489986309515179131382427020506607442730089255654006693980369152898046931966664724602592155555268324566633364526800031708536062577166551412883336093513317228185294433636933065972924251153624853433979985310604106670905489615029030154353809511172110070783572708140094459860090013670229731992955134087183950829076865391219810500407868324397391573284243895169880845517539373526458277387495205573602243003548645342209067233401891870965215681696712284073000717457121801573440914019849179217826621909182527727302079552286614571131230601507378791370260149206898495994431034623664842702888527997763991870865613908033687218924167153304953002668912367339602648930142447619395333056860511196217165686710542239413029155643985614255603182484106995568432181926563509405128378465241606751677985608247082289790391789117505520451883669274595569998815162463033845906661511799762532873249819561165985257194159798472349547670636652330333672040215481423917729403731479782685083165728514537383685401501590945665562893382211074281664629841830200054259193756153996926662049133759330589735344378941526272027057946809309973009665363732577319541617117364887754971141568098913601096537424564808331297309393888561366909604602832247332917950652999804568653856874984562748429573136146067051967749667775395672239774263615054904642264628660439573129357905328282497131189154895175856184855361884116167346492892461121249002533449225518057435586815584912857162443809183646502589235175903063965604256745445377373387524819026203111011784793634768145550792355008246037934710867065622629979520759682127928475154079269715100481089394340355935421348903400478473321824614962937886507700740982567877035801007698143591301771988789896200326965301034340810570377057638048614223026204097154745242211481046778839953932131482007074768197807558039032605771551100808269956020326444562309796113817012192877447861542196578771233026169352959394669458143952427409682862573502605506030645423537494290099529337362867089879754112364613476395999901546236248697049171407907590823764867138225740580018782511631843646623729972215431178904035006993129990922841236259407522339649022211234919811399165185463042187921876141152730414121147736754258607263777781354321516012311393052279882775909252187083335742277305084330754977148933695683492319406549315731440503150219491054427816871287173017305229716997370366992080030652182383425624701064967731593277417095609158961671614855710470410858620016899765886692018141256548185836793243699748302554287888410628214032992373487174836829249118281164700235829473809125808774177718921790884036115055712665070973552453720325639629272796836970879712082089223152484828015563335190153162197265903051016407429059417527000532014337895169597487580473755340978489501843655387761172160821921522871076672428210168622372402764988636783930291009509370288879979811337448270717826073195291025515715444907969268678743309702541586950326850695083734081787351155220093862495229669604478329677390114248670188891833263764100032909897245564060700220256209256186309378482878472822888977712306519274142168833188008077668979390564205083229767802281746205620788710267710256079412932789573578571894619009797396428018380832107898028700071416845078819524663388667707201693600627257944988617960299716341189556473941301490211847727341247210819398637159471334374319439051544039501809220949410754511871281772070986024967770567616632145488156758490492135867970119691375029916662407797090446054831676247842875774143874619935827419626449625750478491753513647840031826622234079839312313639505765196332775899486797653911749716302166745821505443843920011254988593449936509208207807120624125719038991262179955904686750407903042556036641234867858417449797534732489284919103256812254948968063187876245553922622176211086612540993046719237024630562256018250930135875630930292609777740189379825784765314405372671578957678332627365958763556394057208736835007626148322652675540121016950744635463054433287647536459727384191794964348229137480458216027139763810702436369454301461219762647251470742059887329870310595622040334727251221009396540491056797286166838853650714876046489292712784134755996498147886879513602802384639415215795294975162216119262573608225849803613575084429515889804799677985950033507799029513554769535432900440573134289805491965608021502946699471880046165547798149629358152902385280063311585827172328471771100147592321639775607299067858699603731095009137942406559059794222040519908027097519214761594813091723239094967340153011860168501277402885014929095360956048541698809754801816418932561750384892338127217221801262080073816575264188994821692137395958582611610954421101005803119528001252498747688465016219307908119121457467782970063420133885666333275266007063897759103543525982012341664282146542284107417646599850728133168493773383733952792086067141431173889862932907992192762460230829134769566679605462451167878112253105201220421194146694911990538527795903564634531250509969682251323256533871663046005887844328651040206593831342826566903764411762123461438183498430534587015876933246335742138183961941677400982362157727102502898918148022908975610114933626421459744544195814570727738944481198457324438632878017766641985021491036402194371252290604108061580908452366961192188249694921036305895939278665875148170670195893444385835114549384329499474450728154979302298536825599620932083204894315767510867665199672624826691666809838353539110623101449511812269855976414030622388665144577482288416554873179173212764427427467432417435288008263187555029800753584609614831286709608932000830740437908490249983630508804688305730355985522938982757859409725461143277380870443259117531747451828635218408234534187673830244900714608289637464492439574415092469472035418603779748984092954084407216542299867937160956188792595912552501292030176990946361021700538149642242445093487751105114417342379794741663572393355987836438282452965076806733146211492298886871639739786569397012650685212699107675662042819240563250009187351492869328728010311289457768462804979135101305947538783844914800337760675933444933531042098129012718414962197459787165827544028523466777547314944979200940458529084941748823758195868215057181011892958770678784184146580307472491857291636018306763696996169843369716825742405018332244450432328303893566516303305545540032413383633320309207308717290360383310673962050465048975426548323345289841823714011479222891464472627566863243856153085031607527249209094900116241815509105692463101453458713150904542903929338567412004255189862765869005155901726978415868635076188167425641274448194805245573831272976980513268445104889636630864784278465183025285603565071723065199605241501192562000701455467640816296593082465817047922667181954942637666912467880718387092854309183086559766663604648801981153756077514697644501443707547219466415001884799356461588090072972971855132773813446703447003129400068133691076302517463364551032014188058558544189209324106398114602504859503519388085055836552857587693146105260854265213310797569489405943210393372763348366582331328170853693262553041699770451457942529728868289302283021922341143738707849803200984944505512268229711863731248134047556310751738063170508893291235905920678081943129614866447149931734915719717084959959695935400498225174260290340610939468409389169880678192977046218010630775051878718817167742047133702472714210758788219115700051204930509091228990750100893242941696506901540501472765274759913433189377775361397780062771560160612004303050144585395938725725278845278754210971471653902803615818892360746911305290840195416169341712077114179465404542641063803159788848395496750886007361233714975300116413657692698076863064574426183441430023727382292551429554567296810331288523976385767645279509719751282811459282025616714818827008430868966509114716156151904026381156650166689175743190430223055991768695925587311988661187033596739434301060134818483811732511254150281237721131347915253223830236920987323139986601137293031929736115727456317243979464979482155999282922139771814524750145877595440300606539699892139836457182479943617784570494598013073972600506814973406142862949649997038915216883611731486458023525758796530781007721551540932484613590432536322087897373513561758208835816169388764879406524697327333994958011223705524371936977047322195064688199673240764340827674456174568845492699058173972596438978993984809877256380936248767225138980901656608225065091878732899988247080754008918598116930484354876618785837594132680116860467570548681678691114481922858316699819129153285179309360683164800769544421604395054909819780160767249326238369153582005407385455262408103972515687040171730295109107824739612783046940594061334077175384254924393109350082248793759978699727381527246565597308873534390391434050434832420739811932970762373503293295829706163567091161156929410266866794965220710858944374627076418307262838328805196672693413383785301155628622925829716591419034962390814984355899418688875432969902489888835578287978624176592085032180774691208870051799588824332439298199665154228309169963210726137133464758969178135919395183528640576174410629644816054030053388415648831159120990414475112870153507313508890372344465848010179329825086618020255023098912286330297801051968967027172302811105670516868078990414437959554434604019393706253900246190705895847799728104653351202712716882667534413919034733968074651215847873615989830486615459404497917909641808040053504883747367066071285832721554408078161858752895398772074967099699714603086631892954026981312031445506741940058037706230313940883643664949789992224515814886674425207160863773572587892636894859870468843428664682301268682103111923674779887270969205332657630323332614054289001909515969259014470438447693727599365529665552431087851610280761379699352761185165519812089312437181063807570814570672567960066032761930935453929046905253721469725711489429208826765170999005608686463054541159149839185666796269496958537061535138007335024297635776414550249908706385680312621404957181761044167524815857634203581562940758424323308353025862373722849540456597605162853222955696429511381028063701505147923865569801184022830423869514293349558691568465729273334004137087595949117499061367735600530907037222714732986909711143198676385317840684783478058069941974799738564450024534269937788546115194101914014218086657101061208455395431177478824195068236476447125838414360778420440629595391910082937770875861878547107875171547032884718311144731399087390961552386909370334093186107274374616633829513689588119768440306559570468983328076394103614638649295835554749951188196912328326687643292403299532593026121963155457705149863517374375085150878552061354613982382690762799929222263282840659366306047838234049208580048868083082466244809965162193467685462360260897853729229350405137189526633029076085943701183463106204290309073863754059136877414618157525749456250684414700683864889482285592125337065158845675252276689103159483823536499332157000159143534195232116438314993172958297868546714809302163106631878716522935555651740776172005646394525418097533647186137310153010140455354793869293274220957688392714316780909372010266146162015198307530762436874395259365855462358734291891117467975485477955061151137712341392101542390687338213757689641990278565531860617536035457179526106834985892083410890328209677326228047291909610399032474856904098384719236307653994547023487064434363571101296838373674822518474391514507992633362431012560805690018154397256839942811226183512946385285761115615564764861164899603640374028734788632149826597589066196451772914233986395165518147275856605468574441400430533228886674839558799875120144716597213226989378477668221190338149507299626120767802446865583673405202614826509617929787614787260724580678292625907154873474224457587415728849662793178941931970777736930612496304981747607276648449607046719693116713966984655296084754525366610700030309609702523895642125819233920109198231018225606530086660169068535225298449996480080550350881049194572846823666640314069175509807297157023342398562748415984710136597234198360107928933386666430135320359602323709921991892117790035044735236938963263701713592960179883321841486245516562769992474852666106666881712012706014552505344694276894895574042694570124665487563953840958744258191842594106589604818575737781099722006781099887071694195252634920128261060307903573042911008800266654944477330741441518155658660965742227656796473304351286493244706199618553027666079286717934066025349310021197295668831748432494115872089251083204472256136698828014691268678446852941086193288515790623332820259145343608795800667670207176855041202217365092952195528374318793784772480998454068837675494821728197116699917305203981460132462491448215158076087284168709849927160657663581199777380736507415587872919549358099240530251565506766722874286376186812803953294174512356411138785221056152608162761967494575327015492002043000561427950513867230686427545140359195817565990847109300193271329706604311573957182321347637902297754679887143112785577695720512303353636721837730016119712512366101336199298642466915460524429943900927358811755008304333111883524900919011643711152288782113783620734297624600976331855570058320479447902714350411177954906593272415923514476329064535923420900282856435475518724193618247541691094175760874814473572343985897661622466155393685256582888998065971542714046624940513038968814164708531022611498666947737926274407396013239245355109183867459157338794267580116032381949540079193789957939224967761469249602633146974121393510797008819362058880575061549293322660311689489502786625152208970081862842833292098277616236578146643187805567858150655436333560224712161180973530706893184720454887781589103618252514363201653509563447635254941909126448588490453697647625598346519495782274229676889541042886625471816063047481383644733778807947192664829741231065130490885324060001091439441085070242005003403253564190434612883837675571752408447371294989708781769223004420399141546353214346136466149226812307382456226064318954268956274103410841016059563557539769714118412501649084203889043654451433137025950133854061972415940457958939131179985902859632230747712850319397378006744867117647608816684031023093064081588410804971387412107998299586552089584586302251111972737223209514405617430018046859750334026347808823230423663807959226845865170679043609618329898425764553474440175541497379001961182982772214297802112517713260029625379828837900565275265766735438530442970466566679013853601823083360378583846198256023549061522816368359394723008218290130301241715728308708562343599528704394957465289128807043090343376641514305680117605427988350185411416483309241876118762214298305705802642809862038433700900275985416568554021376817648036357470864637148129104791619930375656387575545618901873169929081202881677370125886313572237398371691958865319477658214273543388934975573670966826583476017107968484063486115302136925135967714814506791305916971962284604159022344671717328439719491079153717141788465000511876411311972824760116207097495868963706816129235677801396303546280831558099088112382317544224895054017861755376515798472658883399401204950548879098908062435156060289125177136266335054367069874405273663241701451127053750828919839537869113664838750835378940443605851123694189000136436339848535265067809626087654945447734348374170047430025518897666822782218314628849714985721925130021049337033385312524117902304568495057405291968283860553756977153450498273713263806477791277923915384090806867908425939358298779722488632031517302109456409253419175630350456734562007942209835053693440594587266392440371428337982644794100402851349159759654021495156111914787006452535127861198287187623534141706248030051089163908318746606737834454457362212690334162001226779030518785866556278230501319055251764672223959894810019449717483267175473985783804864398335548574176749654570690712601674856330063210698913530259078265893547155981666040258323730909715032509145327551408002888127510233504109024801567430513903087376781204544458965956090654743324421824611551572217997513094382658437539992587534528719968053907879639868696754890477078956709171782655598205371630068244603438343398763992632268359562250278141813095591150629517778126531290632729968348982760707710826082582868968145033620593706796236540831510057863811104430047378982795667856797987216228128358509571800826665961905873879461257991195895069967065753611685229865216110891196916588984902549546523150372384511551680195428028037528909990993753830950870360354471848289553944666732789107978881923841209211348653370967750592697155263728469473957656244369117805927023147093590930071079435951155548284542038329588833843379101230786469283470154284668477485597840795945208082975788564054744853800143194358487946096775040973633821092590617231823636211440202201190186360778541606029930560215109107072831147220559296149943462553669051899652917418296885687540685113745402344868697161587600585732226339670099351710220549886602366366788843911786988093950641539079605891120503527716741747803797408505356783158687370142297475361192440765793311170163137108881548309744400418216272966245137651956156696250989568969078234216094163158620843344146380514466376065839589303090729462299087151272731998624521960722399989940915181043290235683944201544860820029225940266278242805345337914907749517817837498524792719914331340663479164732111738675794570418892937596303544864063513483150131571676344287271464290403877192402064802629794455882319374784578340283203191756499001936913170427750914866098883388918433218804607918140187416664696898233530478613956061362364755096476638601751445298903604600984870443380594542434863525190456186945816875527725154347143970974755805126119599117151790364982673335610879099888805872298637045113030757294676009084535779328765749533239077781876298852718462550709606159017466597811850124409348449802439665474808181748216564204514801154376632724821102719501028151188705328348462071194226447948047940196529237550816085534202837992951477870572524492543209842688712078172418635841662366876516889461090776048526941053383600994550658500727233631852197863127388280900336437218049757605797726885767014105765423884888979763149585586020803876813275972349724224000751845580716208088828652978058347926447236824506811670759757151812615906688060820973714063117071396225387940727486346328090011569043794019417807652302825920136330351736421857861707496950325330127783155817235366847207277529031843913905185331627062744298070132370127319979025947916319440389328743639972574382012348791539236323958416964745981136979125764303220391371849172591515591702512316598932458124361118720206477490870591053356751949171626464898698574085120292802931943027065482249083191120151413876253241210489016280990842481162573117523084100156444749297288339775571783259047408293606286175085611800031935119329962396201219965457305135908678261806681792227316990771649301935414320421395850636647661270985351602423538764255995138684179346914393685725930790660457222646977181926739346088350372645310766646515312569836108358430564582287161368248634447421889865782483562619077132998852251504866218328509873729135809465985395239965489785848374825555397130439731556621544549314054805208610217056117703920056090786453203467178938629827656811385889036085665976779162241488800120857257627893699694216276166546160317936181096388101272303484080435008556778556865836966684890194648794795859611786297463983697835249186630595954458762942042016829565380585465049698261512202562319542499570502189005050118248874189840493272854475426542117518756610496585851276686845645437516921331623007018861624522930386221204438623599256983304309805239212701291540960585895267967126509397971003606183307126547837275312194320835014789983095371369153878298691250502663953156509988987780068386241087796781799675736840293754906116993711244260607075830484199217386208536677993574380290019415588616993459814648036163129417497619283753056007438668107514926983445243493244677197375293495290004961558291830684354517732254022830276250797461091805889968334797395864739055937631872778592438067309393012084430476238522289661198562823194857793345091730666452906646925032771686364280473510662476609975562321912475421729698812009457189481736677401514974870878232533639775394525696197276068390812541191126198875602158653431748447545935792489238267010514925367706272487942100255263009746509282758263681043533044866782385578707294789465794019072756129553867456465969047943452985023963796619145971070745558527151735853883613136589268878046996131917959187225075232910392746168247147913541705913777721787426173351733282424488681515523351935548812593201744131481221723676091453912899223499961358996786252223603987704403490552734192638151500655229883083784262534068615274283550168265948421796572062249966679091150902575034959836262135428774037286785237683314740741359743584442793255506331851494633460902133758512118659925935314090690637121230658486372019716259786954698728057136794467632824120220878315380585193260010676942922516926846818155477130823960747401413946359394753437092853930194166912239524213310551613337782122852501259524410121845090050542270257171928167711910422306304150127824633579049092639461304202360722860093813013948177463491249805409897770554085857675872408381860182691389807453102954118571165565410397885865085456082467008587780005921006766802637671934467736471385716027375933859633375823556376580081118514002197365673774454899449445263660590732667138787895822633603219510196710642099380023387742035423746119546870168590331505944026268306201841041130884070271958268600390561177780299364723967134063650523052919945283284061607789244267442304411932408905174602596404974823555708032370825546181343392914924656048985757711905930781726906969948388935069637191028574556646360229413131487625826069116060372054451440473083827674253978203658527856492801524070774471312032439873180654895852975591268803590213774233802861774988350057102307336628703517298927646599753393307900565851429302456660450047242605249710525323632395568604291587727423180665171432754455685831539990671508270570334620414548698787281690733448068254367333845800012881694145422668129672317948009018983329646826317537888725321475498320195509466896899039202364680959271402700051610430599362394088931991641696530706759016837235609303545537422907850887383298658965526372586698393249841832002058713198371463020079730866826341614983173313177213084242776665600733929297822497442680246065250516635133772557728372105881137967142234080211117250531053681639420286694157221409648711421027722637331423655217507308719178915059151583835472329386709698853251318514929086933002409720172561917226330911238558118129595332827608461788077020376671596506962182668179574717502993765041814154846274208874213585634386164584121920233197432680263038437542927966524332722132870015833126207790111457415844289461640768452276739076095024959707073446067834464878466519792117238614557093363607314196720158539120729517317134912147896630105849902747226236900840496387089412826973361018469662628665288857873863817688997753654533427563076719258825672101817091171028867942851270548058577300011814471224508532135706617008058506337888989626465020944392000208354254910507647222502406060096254208917894864979017838219818225373065473742316890578789181126922195362656573749409810204787811173977062623518105500339418307939432030044048341602147105972308794292843338919998097167410678949593747947698768418320640862350012097938144337015733126587241563292378014077822353467889522746898755626168661321946468052213841218666815062241566563206308548249147966609414351599773959610196041730468104882090921828816520436872103736194677072726050253586381344764793505426244995577890172896101310465097518921608598583575560363533136973327519375773473057788649115036108760762326462040220574142339393308436587153437258069887264574700048305385580464524872676710637890133228574304486764586997795809550802120627029913524026976967786675392053428596373568975408861897782479885309221860916291690651509738803715786845011671684339436808591628535448874748164331401027081888422351908482553976936027764647520163586498957546889099208937130471256018142506430539518788518119642641266131063580488620058694325860321700319950894843614537649366051049931910897133145711370262697409510865292706669047134131173635062316700168461862702076499430349607607868512482105883554706782742096977805003755482621867400287774008064908954424562199864160574977729137058930376031411396957441924554971527134244710548459630258007676512069657892002819980367164580932699696905027467232481715328664406051254577539531711093967006953661663858663784970505258751354491251638905349773848971556682359786720727069728731912693957681887677674783896302584539303624968522252772489507172222651415030437239596440761482296417267874334792214146794326905932769775625452565327226999575926852645962432294361255027728314672405723754892007337417565996590853448317672537803482402650930158139866226127296786256280821258073949775360248413034831256472985695670773965104703101672621031089923913023878094770011098309292162866651822893542122434741267934205666065294657156802109888743825959153802873537552910306943700601811446986931905442637865080433007869772889737710703127937536086452073231993287216232821407791890580615209204210783508186280846977037865134363050100222429729851707390783481662431071635377052069803317913073926667482620961369889849967450680697904343826571374883120611490489938601736046658808438642462248502968529291957687521025212903945956363634738929840732294597952977654828722018549095601065393208315430955618058072628151298868517517043348775911099724243958496086745158665749412823803677772866443124957180041744856013323451042466579191221379886194864928689457353719896663205926097974024757512943472081860858356064219872433947599658732405224092661069408785190652069670378827606176376525319764667524593236043881778822948156212595253534529603383783804012185411762695558482208188755512826496512663782503838453609461477848303448263002380233116301422788153835684623510908784990024860857515785431855026184360391308888044890420865149678316229726389428951407676882706164777378827152229167604738614164022916060408396670828093738633499415141328188665971141254836158714224626429421530765873185718108844323324603236620819100063236967430311262900912324802736246896293729692561148426995792647648828035085519342523035560600698643389473029831627151076456209081277090762869045990466765362937609262743336791516308516202167755135752218838239377777095336121929929075431290564828949905079070676371204771440775013717463868000141322034373258778899682855849206225815668288788507703780498864819366951697719051503020280123033012147287630088184890811011700694605851488447055716651632141679788384630721941446658695953295185429856637489888831758903703656940339062194077537931815821144301658092852389261008613517584746174688405008716202616539500813269626347203506385334514932852473851704591337060625018444967411496286682374723089288290688159434507851588608279586792089981607561205122880542043811674344349366728299589481380715422349148349348764496971965897512242129518170925696898454967797681375000664086448563604092440422826716074583157932367867410771994421103603608163071715555822750256941191161556826217480521238789821503849595783361261573765586659114280362418502291282506276833893792750519212426112367393378884065230094389342238929873774067583243255530166361047940149251211782094727136765028655752694874447871362033136979255367222237756348984662847194514448105937264928980570996655082057468790220217523021384763222897510207189392416780809390418648498227813484331874258719475516131450905778715666387687214680713450793650990069772424540544299795704687843122080074437985836052361330943493203269387689791208778256270687311295057020841294705584465179103287807868841810721735854456983052188265314772209393789678091789114468052483936462786866373439106316720855257702227525738296583442331375774592315143003481140962938634973257884774234313786978979681968009273039439846988998019162562242002654717799666921077395600269057892365208373829848451128396611078328932643678212069130524637571657802014317822989758488251833657691400619353574752955477100546272527489415513794850656720809583172598606528625778172121876981646974060220225299633918632201468645264099033577223147623115588550530981923087557942809158527011308665894581391585951531844284936190831560776933806141707026456010923455494514291887847726008875835213796019802011847823907676535969339343761089787505325029384190487623942015008746474048416520857991246220732007316481286304006487837891137612978496039043097504079365584917453418469831311160965359913533314777356267001917743033546265276178000671839584026219183737926845602243706846338252758653261501163614789270604697872850429058118952334367081160051645645316379847432634654588098569011606374404974060954415118092292570849178398120075112079314767780918149141236418723642747044441940442271157180505129602693253054331219003501664849536064986342857651607453964540637672511431472043033747124579951501993652913479700161935401105359610100809417832585604498363569805379863320428907949882586864202548904830120677033429399954277157860668890461692147065066401407104554700868564890228962809691541349694851939817166072036963465200835767823026874601800781506336515817287830322234882210910465750675820439434671798985185997441658169640632520208561620119205766903418555033096591433346279725585746617330427404086966245557430480390758643620389469985006244758092364388005252135583002372395759135876570186885979175387420163468696997105789470961922957058845996032612443947666116626584104429534569423764723244220033500054756618557585937461487362443872615950778570433257549398523337342535764637579099853638559002306989228760087493537411650626804140611330564204171799081508326973364470507205628291214508893953640081807880202382764733205443015415389912654536920307242374717427292008081378155254992329247574012621872534636586783999785402301315866062646444230928844009359947173973905497549009946142069491600568093903251394342608591263438920250633166120254976658007375598357799949870048549895797094446351912749953404448560752682670577905050332204663955082201001439489818507616173551898104438547497274852662687276970617934927535196757771852756735286920118022533143638511911076428729607544137574417878559847841857327055874186067923112754343532520249022241394155894241460753606743506049821063360923833113777700737856931065106886223108443459162644348619504951396596578182088092502306712157061464853205178726311220136542359010169719294041016087594688197026938186013024614453761795404899722288975596326849854239551983005277240724673698979317564494859202266048567817005596569943169833918041731390070883478111244628766050991475372435354682177528287738042003554581963603362321126339967599446408210615009860456643266267764217758435791461378030141458719140070429972110471306219265650279678611926750416355894167028880294413231210490806688751177222638727039990290159713478802575231875188206048738716423976002946741090867339875434060640032928605889639094403125073964344586580121146455178034653578146628599815384412338715082853974605105965300570013291415041928047373614991326426624383331322869916430100729377195022537596040861374787088502266081205056966510896366773232899243351378903966380579143477830183521716502429058261406707585210120645077086585707671354411658919332250263738324116320166031699801179590581781955755880189847030143915569385434765417386456239206226990756136468882010568918809966382290634349035799810517595020638433542707280132539713014298370333685412034689138979742845013326358341519043290019182438133308770806774491885535787010627731830751471067283397852914382849917342708080372902661369012651564523185584527155434746613312466732667328791403264591934373599731823272327949276928422041656170585988446450430776384879074840456666021550007955177629719538940158691778912982272626844696056816052620901783240997815337534116050673399611346324778342688496766333844718187792957196556900089148724981155506880415987865282336918949660974332102060738032468892311011745686429839200852477193677457030217360925971898757736520044824895519858560871873595930920991247737904894709083355967354815086962120456271628690743719550817757694297515921242690924724226824986026700231023171194761721702091176728453493183103445804515983873762124925218395331281718869779334111277902024295216944514386342093951326916654697288754744039250922995815762007613886809982132748033557336939751634559561067433967344621508676925080991884531649056326440098854450509601954937504626877142738170881696894904758238994513783884998630024639215594439815649488607642570833847362952507124082485505940453833753199438852803858770150603079342179790766058960667236211938005852630650968797899717413131452229738866715284232124693318979530382461593021408325653027112906448756891824570867654798413938998438132814481340786570268392350878211926628266394591088973162823275456928024594621884128152120006089211604324433269386321961881185376622087629656510690224018489908170417070284527542235184826388640522646734454114362533789859820530561926412762569716053473446123378778121222839146046218596100695140264871028817456729932806612560317467075693205337795900925172581231375312986652949693871548230550114913332324942172245475176017363934726442172636171060174411773495397977175786981640477262303873529224400684410127440242248579300533425920402382298640127466891083571480689307948275258277615665309169957649447866283047917141052345535358506855507805392077381219829374391503672182102383289317275203006408880108568740639565914032828395692559431058269738491783364670708768651708672887677344997403418258661399393449040711805187790422766908369597686606162643462761621269573886493079183358745607370496761878969066099431416026371982637272872590489457018280252892514448228413115181086599101750121835870553640661668773580591150511557312733928756112362293704598846904379718167456917381221739671081774570467695680864303538917915047543117109819242506749833961731996820403148216157381829536119265185844323665992191516088864060864730296351619392735877092794464391858538941485503422435274689655010608257455588282945652906975655129752232840989719068428206255139420818058282180775671549003034311188385197126489551563192912062225652563954013424087306702426243808748926177743933810728974761292750688315946307429915645045372745044136931468402430427910585857941796266076443762544321868958978309928809721910697639239760473784608762102924862372041377876116012110616417955425996015508034714072538844600126423920341290087062347788985860260290298062389313992712848934166563503340306493609328433596351093565833707483846842991507226361705386837789688546664881825720103296830423165132397528040273511416381987628081976621246603105002889066560338330413223706054140488610802928354742505108037876897785122911501936034201779441006327055377045720545466688114675949385115225291618893079717493114264159634572325452458323461314316449733497034553261465242763601607955925401342834203983531166129301743690997644187373032357877317294924280580487598497504512449039388901883667201217048818211489307055180642309550362049813110121957706957057956324561690494755619050732414078771253407917859355856897831751695952819466892117057087450885732706860491054976114346035696813988814092875253746388531142552389406985879875744561649512948996269998897884046337728581287031085630895685070553590045966613917842226615964118850059107269747100287328031398256633804153695419977233115764933613819581509727062945964014743569735034186300956437111122992040265364348275125896123742852488006899789878541239297773736556758481961982295078625706879428568809511710183873609794786739656302645681581434065926249458575110842783373909558832773604539137342347877735192449557166329113140742988258067895601949938098236017025029734605236001579715751127566761090440604174104494642199077927255895788471069502634746225911516654893283158148811053409141401421638851287203853246186302437174849826885373044700389199090633952536311857846933322610013059238295481670180503884840134662537924020938601668612182744758781512823583613515115445326232931639541202380918143999109801303529788106179060163914790598989253841156528832661639069930655470087872295222879644706098507828574618609814770089935461241900761225877542093537981981237889460434561716046969165470869016608251625023042925368786100437057740508751144042818405718655906462311213219171536725960305172696568465405285528862880500232624843038129612652183268202021530743256278225940339958923063201270178822693587067623304546708424016154367864306428013233616867371565873827970993087341919361376743861407717660908892070958411484473193311630559211090815111396766089533958301908671396113346675193129740905206530573545911198368360787778489978024749262738789502250573663180626182611254543544318125911704849578348645142531197069689679943893590591570160129803731839046650219824761976615398047456381894290917114731809522863052934992608910103577950181746467188645618759724374477721581667624044840016725889808353065546536775330929804070775016865066001668354285794021662001439584039728338382572578422616616461456464330143856277182121647448343010818843018243749461864125562958011224521007074357302404905556656246226504009818306474738064140719436190569735679352232386022665665351880565580761759063111374602420231375178135385004083265282412320859253404587562919926673920549664810059944746248830645469106271390536274075252304096454935316931212202083745861260211472531451405145308377826360739012133187470385507987552407219910125018799346794342876473678273711306794738153719511940507763446983383843140388943898764884236728070193207129498768251426977344891400121121406490284080702858588241110455310311764867817491498414793914221090674071501819691388046768016327817796218566946506520267399451433335902628512772141425039884271871507945190595487157211128515970706230640852790575192122655726897362225484512777619526554922254474064459624556168101984762370750249032563925880857833790589836441866662078878108439005652432274616561625370269348717731262235747707675798003538682571660844052109778623039181275860063536662770692505078435134518897777099106492162452798852541718792900703427680235963127278283701182154654773995360980850268417727385063607323827473911383779260363922457412078626005698824891970286712750467544150605809878150897567094412778297692523292258622129368718037009634914377690366105817882182397957093299478873720284486145130399791752615638777325915632437754163390070927691004159837141803125530832854235158703021671229505649982232678908975560301621558356789996194867628432133316206308462692249435445030752947472208151865095607509333622051040966708379394091697979221588721513179034425548505080444897510196981385923076791559544292520576004800885893754269884887339739672069382958163794230504521409117759793272021372451535408978294885734105563343874988278076363539369861708011587478265769846560573115148163352179777281070876136550217133781461508556680904494879118625929048217347736631732535979069618188780558060871491685445845092072897242502321635531807600776830431573513563535493911135838155647842077164284184375838312636924244348253938072653050051549570829806483959311855593346625985105053489747790247876898629383234453070871508841705231701721775648304718753777207990442509065959703299376337201853319959115798480159663761207613581044798009555098854842055930888855599225884365070525435225895907332838829362813037149678965381062982767786627720553877403101481184411552730135366477381057735151501178457287854152196730080928209461555439701034528730145678411807452037963090192395577747546346294366383445756844186892808053425183497270775928733778615601747840292225120724603008015978205779883573270254166986398391393606869540570936582858646567171046003719235677506706781158899139029808034493370339497577897458771454952865276922628704894113977991193295761446137444636630123334405420185168658599096827905465466953023839706824714778739775121914101883199203693859332367194933493624096126190723220314930169343704644947282915061268246580204925486360333203417987861802853756200456527962622832023576302982970308475840756679403835699461894803982545056594988526878303748126482789499950177361106927815698906550753196578849683513798746499835726797396724368076971768319991242492122284404471831466679263105024253044243825428536287422612429718777525940061233564138021782181559140763474374438233612050740813474180890053598088421290682562629588395913636825034644634132323932894237737650121307698223070145915077350262325768911455771469416137855048997091794885344744335655906614756861090507412489180764616690154445204199400470245680304579818993006202490434881815389267706860917596594811976213976704901995306045848242911667490948674465492360103351394692014826573897394568232544697264323738029296138151918987804882455237138821186549696944692908487344721725608365348303048155484291343883135304444484073560603465995382316722469876342181793917539682579726443828857646301163641818971580576509898531438758898858525228762696146058403694695271662040935464877320350575527597002394421495077512412459725628753283089492062642663205140045928903280745381596273725552348038391439089072481468254132239551256352457414196195120026787674397898696791513574079336443488001162759210658004200835588034796597514263629244644700694246053840460450953274187559193129674648311415231581229923824248299501120927239029348553001153472278641696546053238269258608920445136224189376708429312537757286462377422995102500837770517030285360872872345401801811521098938666550281869953424478721734904398065367751117610593943559614698062650249557645591585386249051139782088580784502630221707667695132240165940475433324081240852876317816223116430846876631637280830203758118112098272235953266088987085406068043555068933961755028640470510587913576709624963306749424804720691983306922936229596189746476448058071879251942116692411590737933906545852172848119607459088107485991146224827834673872624231193155895542779718794727096530938142169673070761046478153444493333186435964443150410158847426967287035127885827705365102186050097976943392683707578897770941129555684940059695113379801093115512877660084266821287483900737898657874935070319902510279772113839934434861289813429020764757684382628631267092562256757063832074490564398502827386544774994747715584919343142995907616466828082541186543619078855977301793463762248151913046105767124618956457405444502097835745194686579007031187078519583095437657042992287505256730654569033204095694513064040403657602811775622181962716436780796509472540356474880678920740389295922055751799444431110931185185731844368465922433781409946588200284822269747095653394813783206935548938970982585544539477995487915940955270236648880091483743348951638750442418121625325539186047871140427067269981954085960166536529350333280158472460652998483209249024376750452014250904506794054160838947369146213985822992840956191940737651657653952213930603122127980550270295910428183636291043478433168627059415615758867757039886069411902948416275536760197854170904745518612937154390778765757923779186700533281843706073086503948523613223614606628712489180602745447619627005551013729327075566472624387447673868590108844940796142780325921610516596589724072609208958602152560974707051419314996086351180288475573795869509279900551822761454759294452289205417345703106249344483022758655108363177898289221353656513533108987051661326365186957737730388871329306867181520339149962160008120741868111243989426102207957632667695505729382027202238237492582280290235419289208448606093416806668653063813054603887774510233189271187365393962315966313052275403955479159303895311332437980283321163887700233806051565870099812010131698664203746263874228872299298793496337410691175722281663197246640897096495738678371200998768699520242492201848076879125115650115649651681411638481343905162557608536190332442077484814739903423003319595525483812677287286082995093286920008546305627476038644640223419485256940629051788350275897644477882126393171995308031981674399225629062130991574886862891244876404396785958895096361802746493353366239835972663301541566280135245825620309250936621392568980286037260851159960596538556813727254506680776070227833585715452970889647987452859166238550170138381720946067489615077058156419758981568467662127465984107788423297064564422714547611304347047108324728176666713288870456187604311224027206500303897385497383981786660118118072139728080051256726839785233562002855424539408068966412897786784392685580974951825506679081945945887861863552051370540548656108400728408898588366407323622934007433257029344047855218632560107631895616475853849124427797941700459091017222214119040827169828031145489640324767925607477619333209238161599894010654955925649544484869357209188304010544225016589651440616442867788823183278830789791128557069955840625896766706661767110013676802539744333710296101890328567407530933191735579868343594098406008993019120263710327156853281182779135625021743065056800237950905872804482795237033462257006169522192564972079102550326123437966523426247502834990814353771928276697114171779644188141698897456826919324356928559423939193270028341238693110656557800619404624174733935745076550278858845698076390163792181273922915156973681325263025603802441640527869362955735331376242475238743140456566646799304594125507515231928751188127209714266648892396433761454241624608823025527986029410399114104499991393267020706935012252691073068197364163390744838715458484983667374007538456751744761153508391637595666457158461474404249889102091180092493923115092460933152105658094123519488213168592081176200103264181139090392142312416898199623718658031986233938303638589859736826149604545945944839015100492084802135646887228884275335439018832385497077124755039260306680588381870052109765234336956699430199781050421205064598356387112060176994842082248818743447870146834797724831761119149230746622016783649421575624735260313086612254346720603983673146521024382666103148035880567334881404793630270777553379736531705601892593936293048751254750337294086835354813037480394439031907612521649177921717819988611368175052447724773698152482911192672164466525242051502281765236435097555307416093370929318816507864948939688704526180589375648399745269027886485136732666977892094437473182292755487647117868370427600080396220146431274691352427815588789900836196545748273869520017219308578043842486842016756478983721264099121303723477863580289527165431138690597138432380285766661801583831442643181393214272048086136362582568948067011577627800015326984987583405769244317262211185495427345621319476116389262869463636022095867041740895694055588086864138512446360451186325766400034833335449459824404887735757396624527360253779188839577757886145023739767073779334251661619226385507315322807570498165979973616437716890437842127775056053380839159671718495207153837053933711557923557601055778769236962656491093165687259479373309098262691108809075676880062830360620281017794353257723658567341418193996414107871739714052888260373468010316387911646280733111307298250730756178346331521966088818298193533235981942550579479809212166364700967707246381146799439584798676747634568925526785667213021831114497541789942118429043626096346592519533369130951695563464487157155333983568141879587679232285305217560807493605572402188396825968552240949392788483327878272489515873468160337679042556360508384537619135941958373920088226115921498477151062313127805457253256446167259842257800842751022815018320845083382772556960009034904129342904689783552222694661253378755980713817265583375853667514767279234678633348559225616201117954660213669510889057528021325457184559490374156037051307987965776356014472902024265619608691582444953132037514595892201257828384152418002986986268102045491664085339938745532298380614593020610219406619509288162586546998686427009423401884689346816436943656870550945773117088476458134890158812336752381868581168242983485778758676568672514593590210211590861027718105062538389352709469169180272326563735278307454735639544143984150686573367874022123022084688293092872024539401522896313185029727007511287253877915813129524175715184868209677462620051930395427824171809367563892909784174115391020921505498134390348487519767902412600628470155345622315625364273554840382303120970886861721787874900009229611682471938020000957473729878952800648331091165407185197573373241521187817487178529158404380887792505006090174884178768986284177292207804206267223431219933481671292024304780384868894805816019872396732553825987991777505790351839898446055369022387101220689345162703318334149538150545543347931707164638078877051405253977747001132173263563799572947849896766954786108672156329995273021915093291728186766826990522769368694970369159984964900649669705781596959651870415141394779418720178096419215937996207191226360188723868333413963627053837773332513460170544562008185385957914381808228360718108088485677117145411006993192608966075032299411543907255887570748652273077236367364559946811659118691285978225836481910940889827869606492346781593780436656339736745489757608511407659310155548386742558935765131419149354836551643236839723777615582527417454524266338104500679917176797469338103668708090539419165898567893133760283332109014534774166020045068115461751999413128168810988825042285966960170750106826610440835434604342736035395679567529398619582884371219636225068795206210059513803858231714745420598370927663175533621038776440354226382730056697610321226789169404232486126246687211234721409547982324225210207596366937569351845404076685932621033197025196353464464869678181625164209646972251490318386229466544338680873025173050222168735241427143574515016832678703182280567164755017900568219642894541646322009308899012266584070150030836517923236876202501229166458487638264608129191738696589700570178040528085172151514633096874531321674942789432695775530920968535938075097141086761076474740137264163901668938881918168045634117987758274621956424922108144914036999368479772532046739155706378835282599549312078507959236978193675077770430160348586850615727623847389771668594534857865566354411382604501857712417081266280393411407408720979868611587903865680479433777494499314343928633408672201389982164686776866987263309778602785826839209560600020558755503763693836355817112058800097512518700677217908854952382953428738787371757206413988964333527655468689299072940491452350831221644449040948033977899631564297351586747871377806662546359185410479338088366330441091216740693256845655215488386776335237073233404780216136592488336083608405246415052488924999675967485641466067383865784144212027291886101131017525523139295673228233324127351378058707672319544689640580027958954002818650141921261844324703529610614743651337338772819066576028121392774265371573669815621104789499291857110933960347188126465810787839871419722685122170807205273963512354848617708752399833985820460719299649712439167094150893904251677924965308351567125738701490352352782324028079805194660973075852144545813602706779590358337013012775126655690285431547406636058394081328877611896579210245469268291462689287752710576776100922360917036311410690575704169017712700321236214926473947905396740523280318175571923153925687234171189991620032733173944268012969505082140268580749910898660456848874845840500437792684086727776294666894137385064501870038320444250739435272362421797113129850382490898971397962193409807879963746179314072923802478136372276444217401714672400289912416776939469053250650854187783399506140028036279393115595283813885332532848555581350152392576232248505228338521982796203926107020324459238756938005893000380756658577587173567169470035634962689494655091004541626444572771873609663145418081733084280609834214904364259499536460030348747016220424248185682407879717664684307663261646241598780189087490818391505779714001040306871044969269572781543227200426471634577529746376291828847303658879779861267460486762276614595107076737318762966134856285252208450303666618532109099625438556486917791443425962163155621762468473095983961039944595883429296695165768232628579965947714952896769248315225584742067657644303301799026933579928469277368666991990882311056719255116902714636459765900877849854633599686647545518433314111873051146776497102897936841989068259855930319693572836424204307057186999596717833797058951465663383687462374188236951097265009472360996842423570190789008008791059870987190164313177227644815416083581893910377880289936129107950708428897144530202588091671885604585739261222154457995547976214860644119674692745905778128014633995428737105401355626162281974236481073632970379233299190713936956539731386000687615990618732910020864646940644784351087575086535142366139889975125742079710539421703856818282588853242289593239160873002167629987435069580923422715510772479161179789876460004881994092244900670913344146303044854962120965450451768833868305059994283285211081354741202560051822514347810836668466577259986330482941522694882492306725302497687316687394961500161867786700910000660717958482805584928778282827233624380627812089822079508825127555281558944637270224612409626583499203180021199829791973367901100468724513318516213263429610287314187077423504246000156290034321684557073873847506000782112504962215203719830072774006907857992787616417420491335124789012316838952764193651341349488029333492388329720728634169479287039136813488035818594921857193913256893478321283664135149533021803817743807615868015334365757085705464967531104185292318274984100294306119149898477749009562449368829006649817388560021970681515169480204137779599786519574826369346285010478387359190711168755282247907041004489969554580403696338166040297448030798960717504056213829146195477594339295065743430678200514327836209912562767483912688936594792962901255841668093502535191991143167237022995182377223637400001923548455103526230230543931212112045031518831541484661717695736403864669607802631841520904940845408915007472108125257806370767427934112589167696219473052205630217388219579103818695864958316577861694434401197217292043116498399421995239248371597368907642620292928103534876350993479068680638920431938937189578419976492146839530462510620108947861375917117710330150472690411580369021121475183576783553227077332779278912616780387463317329465743518679996404592181497584198582850726181397560656852443322934820575659025090167932360697172043407555815169449536331306440012447572182213189235266322504251663410716617828578403464508851491077621541288770123331211133104043645576335995863194345347037671156571760496453046662973451295015700729081497303942497611536742396331949098386578744552778337283589915360333902168330245566673506552605548729182188717872250706152442642806201510026199703021587616646991310491615270559917270503853877921669734274280514423575473633199020940336456621981412801141799293773075338577254487192519362500878321231446685921036402026969936165863664184371941752751628826832486107601975898490074025955681594424314353317472805408185742485746957121243417378589669730910323011630100967847201560282965614035621538619662379718605740895063504195077782014165534321988596428084522412958371563088005084823669306697030229769986339943052056813702674136950115211269012564771732546427314465586547380668006046557845898383162931795739559565271508625030916220197515928900638943945146865280364125169280404388784710633810302829491735550099582179612249764937199719278028981051403061542001969902422152612912017738796020618170978178430869982355901676716090769041681788422596267916711461757240856924900262885696624648980409338719058052909006812230470842642968835141062586651446544551617637856121367052520354175317026463545798634350266173498562816720366038958454558760179296145506523107394245985410347654941289026522845630041999866468448216221008812167824603021467563579278324903851075536387637980154343137613573291223687455553605827933380359122549737386998029475640253344817952635176950042621087755444832049040968166459422694026389664468882051095810817249305518000512084076710177673553791900938682679954992571463515728674489489603565481620560127949028491883121671834900669375546617399934816106724694126586650364100203453559153723835987838120495832321760464001954250507773859770268632541855884574941182822847240790594823169927976924187991997096332951294701031374638470638112881271966148973541895414786711346433277526440984258318300794625224168746036355629818487366996340713693827744637597197930139018919869365486859246241085577786903782349208340568631801435680691069459553043181845926497180584157732798866573462582275309187393356087538943550377254052312372981425215154827564364892133660875376256938516607214012116209102432271092252322516918564179550994342522862052429953034743411005199667535538924164259096815368438868280028975354810384615415969181021221327231611621763102481816587277962417284177404386207303831213628315584786731342439245616620743737145372394670441596151519738516316514108901730487118735782412312238678039712633538261336610894755443017345062314164761083630470460848077205281961147291112111550320378211081863232437534471823503588372852596572185020464209296645418983200444093217218341378566589640292571948961343899609743328708086873280571524683359036796528691433920990568541165477576311062107192565479073949167364035203292900332089466908610802589267589122441169507492293235487285905760065251216184114373538032424433332245208216489482663080176826261035494759347740551611333272326396659631556981135569031358509560703550953430272609009848665408192713739651135616231049564256627407572621352575795263931735665290003098380664004624379812154495777917779995647897745213885813497314483489029576736311975934580976290264739175415302608620807293894874603053417385009376177253362082846525543565500980386173212575687762129595910946328179192155017785775071317496134933637330054914835305439216688210497123002792163609417092968331094333540396738631331918911459563978423267163653957569004331563499456956981712526288740805403283746163785900443891710728327646933689706698898231861392806031714766787154664216251812585116596453184329596807212148705771309669252060618378273420987817545086508696637103190489870806535068976500133461360939222314209520980141932847311877067601342792531616436510369286531434842938812205200126709113834565032954182020620879932797528898485575377247342226183221005099212282175408570615495845946200671994698119311369984824547240189725888140487816543379930682727311064703089616340114316356217761541733327001753139338313007033777304813859466159482606054449215304705251447370429432314045169401953312178331268176419899427732307665356280979900416984982480090644235801573116161993747661158476193787259903066983873762865520554777278542551549396547673863698354093247348849807077190529681703657073310176444000858321243692114341337229410239299877773623170857770411747352671442582462524217160557131286671924639798924799032373892376551721739395587733364681227298203510902446475993575462044503089611816041595249968442628151134886436393230093779265825494014637374017999268987957427241451868514063204147528204565156704344179990539123536307636661278510817441780838235772885573873390707606653589039574747877561366710400352942334954848366171252993457848305618892679084497950799081033459239468976159462079856189933556365326228209341955815819343426218833571777900822676554471081521768508823115982550891790962388112428749830229651437547357971351940302243282333590894452278630121565680842995948799506258465699863970453138393078214889262587173824559638687026890429734091847442726173034889923921726039120022862581054142750166008260960815252119286234695363010375981895120824287805284632428740253908347804465817217827746416729241012448562534687775400202514016046172594843316630887700027182569639175188720249818692548556591234711203743194957190153271934536454981839835589662882875119156534988354211978723823106618421712234742928472427019331171147580034349280299945154547224325438281232445634700441201738948024749067057574336235061269994340995905397056829337893884855687847154409064241688490499972431906648325085100369435652007989348297275163180368947546535733688680090643248392277514905760653441146702539015747891976959011820561716276311967197327579980337004576480001935507280119658744379047989541106128370449373415120437152549081215000435294965080006646485663191684770384015856683654925610399789163943443732858536837918110109954701560121277713277138968001350469571144520939253456000911064148228214916818867191728804366326528605740587128419154317663170124959743714583337827303961226970688426082178591144179189437030514618530650695639175164562414199379595728091396257005762191884645653182220455628456392467873806499143763862695182250292593773269014297434812811835542164838977126231055907101417058943208023208357474995114053785809612330001597959467586393021477128709463872772892321435804090768278208849717026077243522589322859360061416909727666682179744306907974816037504088016191840211889459133197188105298932310768289864434528058069511170457280784664726876489968962202170795727857992958108861703070779299771060732935094102606598325470150554495084282767563502918856464737633337380502528334637769335025601440261650245861117342546895468821834940996772770185943737011799993053995411815992175707361465546156226886444421112724900116799609697077111185044389919536616247249062063822332611511134843604134527475624979020887276391550363046067605509870375123930508282005289393551088598374642070875419140746452842648934034719495011151129168052316318331790753476407003490481931961327430391661056595376030025693463541123646620405138422873413971671234986102520871490854954138625008619055447191566598995429733805858579857871812137900055581311051676331203206381597457921678598054195312970946890710459423268355212722962096912208519409839386197077456942774020080415540198015555456429957609755752604327923195145271389424664854236316037399405546536361384574730166509407821556362616655014640208826192537460537103490140764255520696444766721219868733443270369790305640380253031257834826682990953200844245992499766708132514065902393398141251278269347435090025632121762403638723893950360781053247884928672721066469936946329722861898850378279766259869318749005940122921929643526918157031053105576968332684374718982086513947494588788994511909741315868225856374985728696357040307472970303122560262853241516138918215989782485063581479298141341094041431135135162192071349488065347830555373426944127650213147051236206988544867908860879284079083394861278407849146085258256993366136087983533889798165380062199832881385610324375556142569541242934896764994974277814536084002908102221510205666582741749106973785084178226536895903612402896834846392740019833991402760524551338838692147583677426221310500660289027934598849241677594365346564900762064498827679112836405044284658693585136687813633026631301048877839216622489253794489799149424971794418449547930082990634534258847133238963040787047216868207319320730298754756549029377730010607634961407002983987526161151100496210607671115644577665559134517532563671594746549806948074058930285111497087616754620758650939317533296730562280826027888224645939121652445748074027619657755128005823355968906196855978184610383728924502846724685818299047006289178130135380831532468857330420213856896095722444958613758469623008470859747771418892755426195096644427885878124314884042795880668230862338732161754589402649350743522056566663462353086502220741486411333520278512793863412007450852565027731052045502428126550988429622392951433546134501987240420576159519635964680010682406716500127354071584068908082214509772835774521383981239631688208886791724556193973605710633580782410810697581827589446354029509640729997780473508706554688349887569555118295421406466488217383890119473325493134224040631834250165171572271516383856293990946395349934723824625354233885852699506165432989616289200803428850805947690032506353088919142628801094195023471985104282853350760258990950383607754525348514290219792024575506737978656620253880503079143910724569430103478913542657918298211825622335678475307829597390845874615289907159237688594903644236566898824474060454085356850723153744298444581209200560517250753814758595033685990342162314627306745615510813843672679597445977949251788853185304300643827249654334964533655834583426689520649344158911400290989024283579811013101510244159064605126462286241941999778721732119610891008948913659944416991831632683505090380511390879139380981259760863592324562167045227649561208047324816026340695587132057007508449429393640136734510887564952373328342549226950315130984516648019089955179014488219039786000031073075556812274452099526204535405435843086946887565834464748520484199272314224787380641890840420649512501124330911275431493413735181417815901558446911171929117513315781664840787996576374281564950966815443564776305726372189893479188056624845934796113263558937289944893823563091407476289071300522059660168633832688308756307496315519904991639596104650404738732059286946550710897393080097240914677146504033109389838690029437577134291208641092990153728259732323396397280859256510826152265354178112077535054691471854758359951437212992746591389777017482285085960870133296374167973171685648381475373110486457731473896238479570464021318730193280849777491268775549473749308366359633536173241465201985926081157091503971138995631537746504766505085726777517828380604906423090681028187042567793892482242547636485553465053377738181419773991647745165709418858838291920633301393386052877303165262781336787663585538478996192205090328253836307264882747298667733894958588561349958182123305154269162224979068045392444373780704031040443466878459966856914083497803227186494988903502248822431620774303424982223255250947876062392841153196085771713718202651147209962103115659228838158515782568378654705311510277201186433753793002441058949641433996177303904461265514392100219351237876621304456503687941450132112671656317425297868844915418579211148372091693111120703180781982685288252149578578231369171822794887001597317018539629089564406457134769257215691102532397028856400531187794138030415221760692024737638548311883609418665540842308918232888878257706023793033190700147039168896841197474067474242950926402447426751125305125805621439006467807497755725033781875438702153138434730702937725227951085709173530884335841195025288992802345606557784924603581764799254295933035299319560689592894243053257265729834823839450690373601836605681208573227579870429724536597310812568421273659611085897183680035541961536253966955205810742964498283212814785105489419563797971667377588438624269411156647057732737445841502816441806336344459901441391448471818966101605950023313427467199898693414138745415455859616089922342324729289817659354952248684035435797881481147936331501808781161949370946211340767931841664751258658561585228893073988758251683624287851824763258772855409822892602592821096673405436871632634592085755146576686401672470744565815143068921793882265826735406384843656957072241630013214333119454709817032775810522251981684177082910846888801589406229266852563588434698388867461911851200160478377010519133489284710575861633267625859565779201963460366767036251494657317557248073839362024451962217995831604350660332753038660060602233250195810181234063301583200120485899558257807001651674515492995229294868157381338551975157289438867068888196885588264404133883615880939773946922860102895767036532139052374654604946908229739847690238730540220842576618840572367855493237139136334814805303016123595826902449014951212330725601386292754332881981425953436191491312942538538609354843855419579367114296520595360684206296501556073940522095033480196469084330393222833072300338249512900842782896215985780711474137299426447129441004860117664634766099475627244054796688909562944416288197248977635494311151800221285549277606938819547821466836296919576993979730624901531808169983574621373872064981521527871824542212818886652825853209226276804483378502752791185715059113020680386715019681722914186344070104560445574588527483888600991784194372197363991477998776091009761873429254434477789716108034194009695594575058870712424428112698532934605608094807997906428699864496512288989766572387152359538763549727617162404425390481017816893008866457888580353025895177171237039677792195813637024886497203374621619504909519289307760212996511221554479405286059753605139310139055119521973769355597941982567463898778242761646175120209237414639381875674913105628340040181081136811447984784872876899223871207225978040671701576537706718798380761337092087716359549068813479877224530479392111533007545654287769102021069240126204056129081138934616330494696164778709965430731811082807323686614909049112339321411694011363407690735883948383111535366017082709213848762307710474422602950978881779747317990016928155206642052922018254456269576277440205418340907487072595035406942716207564255045484882310810039397553396105332795171107644371615119609321705429344309872725224153223121944371003642877035174436627197135827539111102152995126256742386896172290093404167938451918756389318768545857252060903821259101434185398844980286020625457725621194291949785981329373132576362976047065191227667047198018647369877334037605456851147752585948219782103467833865036903579307784863487909165744486560910537080874113629104587314348899105921048929673141219384905604452184054615565599428669589111216847608548063656926115614480632911024307803747323186243064831898204641674816694146110105250937294782314044581230441971729801331347306212499845664626631204793559970161755373058396295168042502207153145331097420941237310719536910969697775769080252741734303993920672040480635550355716532763388331115961561616064868923457814961385374295638347745589503970378787097765627909828003744731279863307886431595477903468958128407411547106225277227304832331251759676402794615046159523293325668372949088132845235728251917449392337001818361016243453972175714027527458147337810235694590665885849783838904098929233666225885008530855240070577020664946937490251655756763261373708798827856451142298113869780450381592235117774789300947413428413458782845547989130890955964777296329155952992042594026755370919971928226889725655869394689272330319637780359754725706588429859901994026091501620909470102334140960783058544800298176795075059804298547720190346727269631364183582640647761063162345450901662600345103845888943941899959502103174643032313307709340754551555691115290199923827808236231509059209307730121210662814328752596628247539968558796638538163061116975364959305589642853306168726106386975433981732476597011470199908241943714278810890640220076686200735762982821812780408506088097321697242971722345647614277706589969724220822385854138881324253798952807933044077589247699004967577821528470216302558290793836763557625730332478732112455300591004654026184019093486311607308032635624572582634092747139354398091101082384233084126768463286350984044552944708518946934903061630522250180948744978494586388771431028395740886080362528493741774172050903992939286774550256960464723557594872419256010107055801436172013072991253034920204211083282076592177159594076066440656412676113010340866562857115690844284206641747950435912759685633083558365337572562647868963981193803626587925623188112427272379883951889877546446433974532030331099884437168268182967914748841054737701715023792091891774429666058567725371888010522324545305356586125097838952933296217751211388017394339220798038404609368619769490281459651230645855401313490356007888133382974919123763607729480211900124291467520643978722294810127732113122480313146792227047746656124594422776228018984424596268603819174379737605031423897088117535011901398828897564373453033790443940502069929262383324471563136176352915933905113349101752125568403629114197457012767534656293374645762472006455459445555711059356224652335765460070553695827183354646916000515435259131487653764976683402788531961254067799235106578416037110009322880831834677547438934150749445593680755145138290704690852230064387057645112849279912257268381750572979493588594434777140910541489673876899786101777384221070441233089405968941268993204456391215527443515258788596523975687365184611485694633112238489800158242789902295596062179872562959925014816976555410847687065713459043901655172010685621619435519744843942106045873441201062388251760905516454163785657599847983909220600743775845190671389132139196602562866504027721138670091094078101948351053663020275786569579018924191723684485463625083326343449559450243459663126530520909427740597419621941673948246553092068121780825958049543615318613631437596321631590344675336001354969754666958888170915661460780781048990867637929781910503273320426266853039741045322938860447998894869174224060802462340978342275266049307722744998860861475370180258199541722452822771890365823631340081878559151340357438387537211456737073768831036887573859108107488083691482919850811416144952282442735648927885045884237479442610277572261294934461189879156941608192777535732727252397713919396907707404419170101099998423010728208816383621494594055119817963841791422255963768246491946500366097449636635802460436208225429600319793231308816410202062347841967734221178068898992725036770743750283450055677717402566936392993932707401011063945848177560886672930621429018521341418825050403133636670998116427546943004685867434516048815553729974473159891022464772127060215754642194228673634778337185294696167556980932493314444314669217406051720116044416976480413812528490602897337380021762729193396865535925695603156358332746428239251361275206046224463188122685604239737318052626527718003061769013566955306488687884951278864108161634550246743371267207678967320864662027582190735717385140908073866943092243196916924173020212982473943351868742828495760051840056114502553294831835148801993029785534400895831654403304479071206691145501054281393639325487590323290049179060139383130645953418471915574309382848364651105665257295548318391224665385397456211632325128911804118527117248378969372770854065539763393071626001222182397829592174298725884403030538617522215977966553217916217571331238371601747996342558095180483754487229799064292051441285734113990254534253904527621297143821508190593903254767559208217984411640976365821092545306120063690083765100020748616542281871617107228164590155835036629452609002747048693050581268399391762615851907403977752412895294236545768044555759123980705801163258411740220215103881695048656239618584069473940230509436249677722875402557535625879855932518655125392652812002416910451323702973137729200982608384403720276119693253100494686406629004251078037739747453208677431003862872160032566076431852049072208889637278119351489462325369387199381864737613763459199546311093412345389040825340533404055451712719510361141563769019293008610442560878535149339845141728404108546509172797906242276522679495220032426685478416974890457181176245396140462403350422553357805124378188907684937514129586718533670881163759443634273654996159249553877948825893649560611570806624541906436212157846466610770074883714740944324973508153026574695692049479939286449143538851288747999743939707352927587244240869877144309406947947552456167666130299288885159740716811254787356397721656988598990754390280231764232137785874886410495685877786571062036043373734986190159653697125265132110741684520241489175993469239409674850501445605822697202207858309485887069731940848209026513807210742070587568367639279810208749365580896609818423673638700782752126291431166782480513388691314566488679882421133867084951633305048965905925217147986651447694005427532189888936831233296658684461999531094167926574022857982482998850427210813838000033979341490826547526397584955792940200163924304913618976374251029132613976918994286931414344480294790124343618788222341040322519232779031584760413938597519487432393796247719082683963638637989301271078029273237849648509364850927494737876456983041497866222806089471216847108707886662362785311493566863400794942758509427037657419773335760502950091411144829875058673669039830998162429592083143653858110981283756173434118028112072670562111047807454559226135611717955118744547273849989312688755027654637984559172319393126185798714844620519011234852172252491770559199666868380807779408248595166422785465005240059182946450345463426265426052158882577568951306271363224887304950395583796366812593557666267929586603723207474563899186787391129420590520002995000150367315558465366061882231217484776094846922865596728252860872212651368682485486030074730666867471225760415546006076216480353813148289530827531297685023260426169653432653090393690942221971823921931893891435742292911725066215776622381268155197017367244318484206883915741579577891523478740330451161826316808926410224791575437083927210058241455395495905580312753300019316308806450503583648364160520328821773941723900401357043846785481048685873981558303103319746303665502739674135096074487051402988198922239709251948900213085998694248256779494093041953928189474002732340317375102895899464980409462735187429600750552677885353987100910411965644062334069590538379525117106722978220589718678568711763081872094851466602866338529172614314250082396434714310920763546858971645355311750014459590738692136300891582785713518341568529131421034376255167057402261479787117603665134289257410663561106034813010896586816155875962227851623019145345127043459911164633854681597718390320180485816432972052941582949773411766823447875413288869097006423285943872015463724953215848624510177906315202866488058326185112591629692016165767685487634328116443686931359274691661746236616595119837469312116728863245947589535854987658504215705458919030176412911916633056453585872339267062974107696260947100709539553245093907314568691469356958797810846128699311333486594716311223268880724285498796384887113414208361103784880339493776775188870880715108295764193281505799005044038401832350911557577818492770486834045769471433517090873625142834080063460367844942043886157886882247611645318759388962096305949102656012025131931061950833121193335723202214658777164021988560196768187700820878313982011847990160972973667277321074863078553437383935229931456901764605940795465338729072279569477152494582871046568579832367427983678015887804230830615245161676594100210933313445638022833032025308206233148635398119175685213148492219790401132261413208319131355606980869749172335722120963128162116533912363722951517292996248906371629233524488533536558253470572797902629503092938295240034214950140093913161539959836632162581735281581483803220063986222020377117093167957799292090686971935798126973136449740858953154637985046928066662273963337226951735158138502067099829150952546319288860371961404161835981723461370909844437618226950721900909997161467858087365835826515594317412966733988818244575249149974268281513831045034974110044952764811551884238360542109580219570566503348710163959304745609562920536178226318078025792647995286247559423111662750266421387352781421867026644844665605840459069664684499392152006458025595903796961217825762665934091203337548172510147961319765319734862512628920634949964035967725946415229580435439402361564361410953138832255779898297128307102948387292396852729432955034297073020145466676690012450396502324434248816508926160737593757165957883803070017680507887836332469666613144111331771767699032921505308144647058164731775734938850460916586203331866654606458083111974777334855515656578334604784073825650991709465157757665804801733589319957235257346660270643137716664597784700090314291465551787842291210945878868485018099390195875564484954820552572609012215170530370450671554887982875129370280075224908631914053915354600634754801484384126106115034891550879693619940194050816501564596004511519133669078024947116034344224119396210045667768755210555111035266966941326723185519880486513109645413242288936693887451306505467508332445016782862887093001148315002067335767599869936289378207163015999323650624110940972649933324753660970613865071347931173937210986024193836583584138337802642164635681725441463793462743816761977192172224233513876004420057412533611796084267488920030122093671211479029273620065315346100744654573414361039296277130965968963822488621616303845487064325578977829116844008185375518545448970153042080455848578477369169171191989588368296582135564119779263942926147995711759340610683615745028471651172046451028732939601256676852301904489285459505253586362889414427128445237437160600849861450132620491790545327204412418759070564839052159221188017288179584554148072730082543818026413472324278392878028570034960910366728417184203779588327326041171378914109192665646917830704758398982003875916236248320702411014848429897441441776127911397055301733689670814530863122528018771259174317261642348404908514701507302720488693517562284161058437994765074968316699629030816171997328599552825809353770083773595875432443311259157257876260556327032645983722894531154125467372344012544318758895691107600474748546861439038968640468543769818723372151516660917257251170166589003622567813849974542665638711979013735542090947807463260621267685267833528289494583874556189780125557616892118127288465874057901949630637236052709721069617204373216681601804579003564584695584859856429046964652682175312554014891004363382297326206392209129809902166352781099245212097371877500686809696135693906247190289857147471710308883075440121591235421745335951121570620274385319730858894400721962856767141452825367102962042593519255820003772480720512572316232056766371361601814118862901338220581323770712697880837989983028134990396517242543988458919005286356282513209465295384875525492631170897892632290382100474028114263622769301661760724424049035995287343859777363469194221151428805165423101937808916234803231904019877662586735525177835339346275987263754246170972356886068266000409666510607555803597773462898267244403521631656111758759260849389435900557459702914966222105527884930897144208072521776752602297769990724121329878087476966523080014440547807181705546796383222851264228103695609613279868643362622052753047116380988409464477609265989839151238867717227028754722969027583148118656995764876519373465332924834873448005967609155460225572474065961563384084456655906067378380484448177191692478170399977191027648757812972686987674528360653252025831359597428638204624592128279290668799145715377081199049263843456492245495299473004220829174096424748755203102044129699825060026519892783792976941776962273596885090977784537509946028720901948026820265729706063025875679134447873791242919258515117498705986911096792716417516744144261378889720006433309868366087282224972192566382115840246548588439351600002414139401264307836271070648671874338410261425105020239152487264835489754723826321695204792532736238805284231736518632799416846157533398245398185301238434113808414393103408117363061623449439313281628378653752503521655785500906471168121986486643139782059682041737970850583282663491572213609609303114370104510765029322148977429525860358649264158260736451828672203292356145545929745386204917926089440374193087627992346711033578725290096551478871882642233359421347494776689652169897493361933631114905059975639090289072240129459331403830432229238176412673593919642294326522141212579598574032397753168457613961889393655476856782722883249263706195071240795962488443989100265629579448221980607119727391251823710633632953317698732811845713206374285593965620898105214974011432917980040132319632560077378767263365634222368589253361355740487640443925478284469833135714571773933250754930573247453891829294366501536732815516802441094559304890711033201573954669836614130245054189147573036631036015877864447099267098533055892751298287746048087117039418467385717242670547565908386302722670460628100374669557146126250721739609017941836449595383245166167216727075562419985250789585973874606533264767802012988342505789110266862354283653623948802352693810688869655715128880142167291179701268494499832888002738285596963601774542883888183995497539553455808369239006306854268710424841003208519733796862665901448974915435910930087168919294619010441543697608571868311853817326670359798302008797613238076205396390551948847611952490293588932234014579152461948433869492055587967619762834178499478543535542296688958398522585114251453197231275037560331644150877205790464673356529196668682773848184747712746641068796636997750232669244712749918572382485619797117808868253578816878559071752835077341360024369015424667185630318092140759491698411995785224065399509440014023441843972025488354298636546206695214668285974189989735799949576270041319833232039663590147016552150354269062843606934585592972184201152731697293409268750800201348064627223628151289850720896542093834505966614320049045013843844099363562320916247127889738341756884443520404185504801012759821629095056916538856027179064362819485313326427620715079308360619674339422921255862872186405029557927407125602144323866665483496829109039752710134864420273084439824864922262886182826515092874314537280090607375735745715811233174639770039230237741483997076203070739428030064029077969387632414922302935379122627561621408936008073093837603040792469584711728582725623108166688931473515232029836767188371738169161565800373062317305792217984056085848343109609512948991277443255468896090802670175968061674127081858525222994899460392574404760573403351444058648556665932436812380084149697030420419652628192764789190626758974087135859121315637237106393113783370019355140031769365476264799612956299204032098496182210318153002056786178730341398077865449824805751093902048329003210160042697284248167786615105969324925058086971624029298074126381304977198692787590422778895275614489877735443866935519711914109367291703083002979247579485649308123526517011916533622382485044235092184602167268633074511689492219724175231842101671606235031932248507037566772750559954912793767207193423694775872765716532723051151693878637741358570247709278099948080077371505768395784170292038675752822012893577104409535870422986718379450388142319156600872228419766566035013775804001203218587972807561496103608009197230137485685964477587581929663487554349746051510201291360641176583766178571853138892215184737572951948787110852520016528430857032777520401268095313173405538921247394009248734694284652401351743259647472358428764141861175323842090408575934695856935108934722297431759851095804221066614218104928829252995851054159753729846781530296468695763249561794153818598315255456770472171721110960699795851856424064257193875856993883376403623026895096688907357408771096316697266584155013402040219253267033693960192770493619174699624545431465041080089732166096886707151489186737304107957088443613868890195216052950038017883456948378915077423766389401539669931521669483223240340370825422978384187449617377255532699364097953546820044204627361424031533851500566786655754436784832430029902123925207621690178996464056706268654291634273500227733065061798975398435618774771227580947190025537784259614027686319184018116077129924818029713731543589757530603038557438233672099619567936711720653620820241516218534499903580990954589134739978638096058531837023663482379662551524207546874691022218552938927743800592664557311894304133641169479261402615834028593558088581669088598436081518713116495553316566905977398679281050227505186604817295062715735294102595817895325385950193077271183785966762752430958919525922372917666503412938697450346907931913387655074125042137163555569897326116223262442006846771232227740982559709463632250787683993742042038115004645827566689749048153187082350211390648642525512705744476853821361186262167641118661576201187139768608459628203014863377861897415547963703111130115099211242093757183233694199310215594800254674053492172625920331814105457546666789967194440970426368889002856708238748505500617436213484736411962646149519590789639063272401500415485773829438605836894832845699984336484237973473757229509504039082347074065857406293156426129025678867373955442546193108238000069142018824393294641693064708509878601708422105130083906699122090938644807287536596429182307748795571604081239534495733103958415816841018642843244262703837896011042001691962608284734602137420858531036803756494278625550243186131641804152113244207181135137128184872505136150803850321709158762260764049356097228488659325252166420220379021057898620112060436607989274815827519878032002247704436908307577070573127932089172335614693818677904122970129356024131888565958880109524158507345469759721592381769875602541138673408398380759871748837349412703629493806166881021310169121829502731318744885292968163839344996654105943483207466464463124243524675729095818751383996220899124445474471223409973336493036494941817930430879993992026494982553658779122327837504538123576346008242467234674717105296456771929087899525807870799438571360336087356431837708218525676617579206325110193238948089518940117092298194119859392440999542774227093495301559673762514392262107693466017762018905947884093429201314013365842556402239621462478054373919038071308653128426312488001093251916689757074069626515302218762359538792461241661187039246737190024973308480460542769890533017507744312595950180164922278860394445026274721814523978889878677982914277764228342619448728692313668786565408747539305154532406744856147263154812547288667374453898456630641986970384708286909655267813079216043814984869535383764999758718252093994124978017973900245571442356537567580002743846369641037945495930929958980128622305863081683539422180890357118196011169010849173770060166981159485533567348519715301703219147417550088605640762730671641488031454386305553087861013412044607581244500425758099704967581934215495848691111531748591652807256253930747472806364362384923508005836063697374431791370408708165179609372149047556347695286221661949663589708654126121358896599257836248797587936247987211472602291869280570397668130008385963780547289512706820701824732186381860922405104439710658191564458333306266534522839989678885198229480720335134969755185176818886838560696646112956264587201634215157357848903591232340117772759449653153861317529241877747404738027293303091824457096806887232377041690272879631250161180924451888121585359763632099185688777876151001388462955855383088828043166975953080553778652355230511921276696416359286626858575197605531793646160504458209273431612263924257776668982130404545265475863962448822337747844877418267897104029296805722043671248034834559955268973244439445771800560873816338043238404645061308894039177989677144771830201061187708358655186932448576639257448015346538132309144491415854424553978882374585562480199288117636472322061210303778705546183877443562470056906407286294322932265029990062791912809207502298317828306751507378757735011614355760036975737430107414389939120442946004600386329110065060246597422574119293849132687190239443630750020040064393549603456024523163027772671116349529021997217500846155260558541102114333190619470008463614892157481859073728954300699259873172493304288785968208540597356091138094803657075558877308632026780238528044244072048002211111358465527258929961733640682938077468615632393352764310575429681421157481270507228370603512022265104891236325953650988512448697275227585757797185630480062890694067069954789146727749874729802110484640464149620197257141430742972047446248046825400767362516302371739370998728021779120203807827766663477965500128502708626528905895285586934994275614304007126746378147186152375692040594009402871626070814768503267510436519607583517646283033864536203604740737789816049688370624521480098660140496257886930072628396808599068026354181418796462880524676400688922088349467527217320860682338243406520220817427644956463214850126657614425072735937374014009980627614879369204598431439738559027295481766743330351782037153451516544800984268246594929384779962425397418036379987530639876770480848572278999963780738187463891929628262485839758679076252333922658568843021476468255140889341967788848369004652009558871249549217468809025044200583688378929267559077434655552879589362256747776837591415181105469235459512098740222981301083411284272885539036379230965625297430850907192186352414044198041785514959314246916754123948297019647761331488940726272298456216451506835451897631360404929233098643788851487961746708644227412958850806843048313085019974552106087103269439094462602618058926207339388617086483953539313024513424294059435361758752983667705374615505149191507270952472150732114089542486428245716208256406696053923662898342365132398930948507005699493763177392919359042809463074826011727376120148291591776856321307562094287176460714313357662823144047772937109189240070934373137464267088685214694375688967080719014285205932456627679243045956719300928595665480715025001019940938817281400350892947489383452823709670546101197335105337814433353880233277933208326089278288738755248650397174334237544917126208829180816179168785699542876252888571668985412282020592486880370388535625707810527249271846240698543438811881809085755951267301725500344126579589998320477480954779491763711267890387063646771555760554994556691932852594646864518872477589653894970364027112642168452192407346979365846055790441879732628359162362129111181710674903073019388621760844017182454993586716955475781770868982078416748811471863118121328739173964404879247476242624029414244108226367966252399331464873803884513089524109609095471338569242939095671253997869036648104157550513101650394010701038396608731151465353061397925254808153879977553848905012409311529573836569659178400366096606285202113464409471722915067154501689148456170111200626401049131137882814024334801671990613960243778436950189987459326760064123106204452400930495939066681521077881353213604580009319026639896086270440078763556641350076114668856986903843163854909397221718428499189874613668001563715678183285456369681957448799031142495605930496819621438416289789721344363011326102598202849692352410713728970942542695666677482297808633567831663102574846019802210911603820463755236010359898811786692381792617489688847708000856528622330703796477700950298352632925215174404577400061786228853015551418452655941003063504682622423933109093816609360133673059329720709535318972329085324807869234318186619938444681867252611248307122219350517765337771904678972662249230364415691954591039878383745443001952507457300717289676828157483488649826790767446448648518326729975014720942770026889459570219129607877018440177940897260917067455720602173142097504977919700157032999720953996510631420266490541726484399589603867027480598032511906340890575958571692168376568702013906957790092639889275961938013553858843362964838228568519809060786985738141606204523747350623303560815612214641939906247768356131276513053969580105449206153966443263447295365009292099252189864016989561703950245273946843945123553332611913978438747434256342203916577604367738113341589612769871407570417086514358370181162114240572846488669843943294565559658512757761124513481283533149005944126488593556262810899840879160793493044562572973898379757985865020038786572053580494487180290930312961042775782200074044204595582676348103005549204182649117845211946193097137080618672972422879021428003537138354292289530534300839698428714863216727182204546433736858973958188291494671965440790292179934151104750170721141397450927810051010951049566295420540389657000762130357172240121141372992034632568502819252897264934143848741885754225177606519591525342774351257393948790440696163557703113679281908721322624816906416199103515427945795565730926777182538901669252129931315095771795167138791497953189612603661747167710986139715682611664479466699058629339235679888583406638300280331956641832406604765962197629391648395378355792117468719261235501148698889367923142394426444703166506503898017091853172727902233730291792763019109167023008033697472635681661979200295599522030437843135878021967681924605151590711426801351616153642124333209750912082091609323525759646171327668572287805803977224462365079133625621390945260899321333108713229546671494543012700850590549679252049963885318760017486636068038360635032633932673885160432133591410766579277979187771735214490134287769402628283774868098412357249028717395096203706661328508693689335871930123096449389686202732759407425750527188123542988672172402166475916117952196205526719684585598591135707386359789098065352671458601691443205364229145131859557157263209424269892317144743285788148812379531326884235512073670719649092958757047891649087732008851497949786583747405325201340423547714584390920215744951196410393116320452716831206963006834430603947342803515433360072808279099269558653218430688151915973919713289149084803548157973091493776465765427166540120948876273460193876973798693591089994443114129952312845970337456253010926508245131549728825170263512532567123356127196351824837855120211756152733799682393660305651741113335192939989787488633009069663539051825455921920906717149065785597847654089893563849175787430105813311875279686005162460079160806434723220001240478375945942190890627041123484360030562171833673628786356428671311558865530018451297434870342515881944700001066186795197686215859459158571038246741030171237229703426672666359559154907365630498932900967855462002110456766884558595932788787464753461924827779115523774574976993404509879769020332886977981829041924333169014185091008503630279637970339353583775355571989341413079096675465219044555256261679259953639154660602925546274776104940582958958848109534948300126761022174240071189159075366155067147005058786689762885705239249381597480784108656356784538606692606125686470073531572613210681391729160902764533936685327742858057133110363239973257746620436287491467963051241369316731093765853867858094421800594723607367717703902688403488478537089771199000413823416308515921538074627428124683772640774807345835012283695481342826812550183638798249412186036772313248175010561692087691448119125354981218461305047838738123601987059707253326822191835450436693735248895865592781144076787840972913376554926104322142557938492041992674527563897423666642542346716401315777992179351429432196795908979595657349518963604674772862900301420788811595611555011591387012475600369390062229591123694132772103214078160022953648859922450872668837515953471662401718210572306585289208848175967384942361655363232352288796876725128277011570147374064697941721310415750397611108337675973515604923921441402869725554607816995260553800517073518890543552259426131975124340374531046844203199629120071733601054154592280976634473891837468009963131383356166596897240065822349127459183792695682046535838013437356176551203740934580302294631058250852900831434871759220015952343413932438124528336634525338595678068582518848968791444477911069555153611049957856879643686583205410115834866531398321226406365344833130982275438504780757886907065688273644746109413965498891734870939110717066194671216578882993726910323859466120003541642924762881026307402153449397407688147711195644247201094627019751876026306144536671166985000017234074857427648124203191184209252733984295069938297635096256811910120341803422256376806398976127859040389143197287021884762194956877491941637576193379771986070061771065080453066024155217065613887609091668150477167518586217141792836644874832580909789485897060275219791561702597613301629938340725702010306496435339410668289053487297563731804248350596887691193946516424330733796145047207588711020234328246313754027547023704457186944058096312978931301802643817115526113333254473154325805412311943339332519639251040994928537488660895338546903412552947101572342536121785105285490498258657975618399157599524393793010208766309516211816081481305289947672823898978482383677285502167151041667050258407668306407045069165159968150159725621129727669006704210308530030712171065564671191487840020235485833344931300466826685545191302078754135762870378872862865895220079169460876165556464308742975526595577538908699375997774128481080605837399758711696109967763990676210166660163171100915266437967668960623106149933818748531762028718446007403287427869089944028285402607577752538618992200164946725102467470044169487534713060353915080197158510737060517108167012420053248943627230888939782550889087249780245591495869492958909489535882430662495586593471830200985031304489513579455688065690058663489430860061047134706909655574756582949975559755340969923473882921125219781608268659698626588832763611175916743356221489534264542100049839999233016751517848455202641833430869284491932435138362575346326849232540727481469502193371785566163871545354580949517295903726571406845666624427022301997291616849487145628472928552333686815614156458864774625749951204773557593037398907405765755521656185000046900032687982830487537671136907703260638876445173743258452876289431806966602110642480529829649834079572347429926905451934501206992751368386689278371524239900345320203813972101985230110253585908971784992054297311202799947688536274555324015922587237228951085283255542188179749752543625165531984224712824707474012354350686129222245292712155584804624894543018925460208468966405913563571135503768871395840138597652804641832049639180683494639405044807735350754576190683499298741939114561266828635500781956907900645297461799483611952998817065026607732160822311083548065089630840689168081703429979702989065851802570467264773406880141231379214088844009244466376350793027155743796157271439142515392321761565953973471177485536775188260136500408979653205556246552213113618679951607433739782388934231831826596787641287688308741816187148414641171059623721428032014939810403389688895552566540627171960265245332356343480669108578483474125352632168227686032329147423931592178346451570963594501233671282760919383571687207482583566478747670064985175513106312032470744224384051821025385866536452126194833863896154623843688085363207563179157481264571881179659047256345837530949690821142551494046134687842671662110237423248583712028581303843235041479925411127642989569867518980907545712794930925391500282003746376316243636225057913701280885543601423682517569721000659569098642254130172022773961166820672813859776721637319654767426211620741653149885868996791326795243952699348511396212959971009583512221781155639173038092408930417077022320911673156992789251603451359847521780850652975113802963893931682438768682320526169961135373168872522489431965263693599782501285357557795336734045604284903519701214327238193280563346607272745246887567511593188876589712711890816359485470097589957812883200633848792084750239404050254463946694334749649425934872310569966275264338857402409101199818488683233172157424465853672126437854594502267595275147702238136157079751157854786571547165650484644594733297548641663131002778671098225099101911347198620821327558140114674943168858713418042959124487394721761980529466954063268011039540347385966481942152242910559777878003956686097967119673086837812171759516656649733036589252528068070581609045493834056600999400964841773029139190534482911571756826412001599177482039724293169904466240282107923344513212409550519113511477592266808720047745720455683047135313737350302500810689395069007460698930211045712527926499164363101397603738293076607584287732458510619531119248040807293841894996299149314139917242272306508400035400368827180974920761612387566947663341639121273930861501210236514920862197157344638991318346849056543943979340465463921923999573656027364144763654030605615811333950618387837414074885338732331765976552211303838335128421420167647696694415601739777114348189183549710780265839217942869914959556960395728504916679879818946421306359185448452981602329542284178975014487601109472973571403029709801194300946270102141701450840407425995598299717792245388745170768039033421814184289261773489006837462404098859135400863226652296016092261974132062311535245213052636763318982809612357421660034840118509316299508047147676175813457263443855591206750547149606802462118427989082557261462612274581032175789441743569844047592365625541154346156955449528156698344761135099628763516405416488627573776306831440769415537237033744169228422234259549333261449128100600087296051081988109298403275180479590035381583899005357710849645284390240618864675235159690487100048022290803840110286751782743511309968220051005226873940370687631098595283141138970473701505623818688221243960808688295000899997559214253724170182486422298605019919006107509327958784713224812742353755546019653623670707806074950010294384627394087920356793604597111376264105779211891376810827106682214796129035425394388247041452364936083875642901093648961562492750091309461882148442474538221114651180980283093247151798796365511658130527210041555222136962524208412232323007585969466025446575531770535321678485370572937571622119427037396148735190439599526486157227025550752637952183753526218963201355368821215653236543293935342509722417694541539849590283600000147321456477753032541609814506099551666484378048291722639055842850408610144781338162881101568743488906681041104637700484725039303874836951903527365759282501425316292591038337335650687638621609738520189701992006164696245083598321079025965466418259390542672389784953030700390202126501465291330296020837952730312925604431014794774097561084952298972945703303882935208148946502615246675193370742661861357054957606262574545333232400278162389231431127371200427324312895369685759224006927348295972527665299600993775350143942566101549576758709310452424953595347918314515252834727886009136330309678966393974566306341218643665657504091360093738958336750801921743373734352134300720025658962495206635079332229730336567757629479038979195669044687296170815215101428412354664003861327051857403542096592929933584722080968043478201158484408869315587097213085554774737165115008144530344410191216044898184224462084182653713528640413957078037914322776893280200886632550879561126535037531505347514826435691073017794807866402029927909604728248269896363442262762732327470290843798193310346264509762954704600561952941261091046129326649309938049157442698622791896015778201547371775238630344732099057687643356105444614425036234722641282026195979166726941449017894378720812746438473412340753883784169769013619000682767232375919538350931737640159964167994746422189050554538609014015006354167448492515531968403999986907006040225181222924085940185600969074636949886590716977658345475343535168340841900882861473694866871572223744361871992923203826157917026920580170823428239575842366657461233907170124530753546243683420208077483544522958216933680907020497252851604461348714740909888327091621108400926938061781560447988742189782853585961205319586479224396087087588028021454440597882706964997863872900863773305027259570006378217753053152265516430105060220026192320820337876811197907490814508703861271923600139979724787808759396538825536087620410163767572153565778432047352288769094845330270995962610789054826114255707535634553575893067048703339627800066915759389062806949897242003060676879391662802439652694523994366539464521968022946195625236641713667468502476511677255446469703992084675027608766923069471543252425642042739701026263472391624748739800965910958804773781286182676258991891329835618337039610323854400017683973612785200452512464467418984112260451391987611682859805700281154250783623788548162478988178162489894514348759542313901847215073440570581468206281765600526812373390205503180690672739387394184684146742120991774634758424342255184900272823037685722156660222213705723268372312341561545852971404861784315723528733281894253624309439805609233538749351356652841292813537553501857296494007829665701755370476313182171630342996321673034349598766710846645844405930181160683112731019585126934485669489470912290872670675072328637372318386977676158899555341735769014447068559407162783554325360894341620759217591910187521511588905547499440161434514199887796242855220824990546820872587875623876398400139966276568035768825037409405895307822620502330649094414717119294202050116959894712167964338556222987594063101726520697121036327278688719153641501826078097728404087734431808499203357880528024192213567542853245316287186467180748217860443728703936065047266291514144492550035321986792451641303837188441523308070338569148566514388041040106691533792507744484933559314776511176292284364277724217013961189734863291987670056069008810410658424807076454533018676720508788373973494049136455312676115729440798699326944399454084951484362665320653920350726737001386790167310168709476357943309945813472161632292319900380049355553872246527850538712046959530665771690281245582411536264976350449810160543207407715140125189239653966979046956950680630766523690810683135937494503032047898865925806969050100546275981349700295166965909107679825673444463085190154121899103895542266454567456330126124690107084209087767542088374111421151243662127988860156309570463970535403151826614411910374609965734276181344452792281094254580351304015882509347943754759322202429103532016519597004484340820121684089122812709955169657879462101764580610846737647869054903625075682958586939080834925857955037656822126048969775024935207735414936072971206023428954356962285193075449683957180740208805610492062002931467247046757098346496569271834231511283095931159186804392975658074702702242312804416694249108401291522099853556608771549666041762235338981827640524871881911537258572825061339941764082622748278538516864366924111856456789479815572217830801295306750288244678004398516083387914755962982498202493987307874965695950858904268227753987258997391879811647695328788621672256089708999173243106667451000022456458185760708764686588758708336184797557879157869225233212992703889466573362571452137114843212946960869658399654089690044613465982748378223574583058270281366580433642479746690717819538806540665576926347139082348538815836528285855326946658094065417046380542145089440337854003039459719291248977075181426130582622483943484457707254993741771572485045621370318611009050374925572574768877992334473890515213009858207139549970219830801089001571400201502410242650112874068374936511997122611573520185179058291109537297061442595549844142705947976930676358540983251693273699263016675747704327385166362117028509678843863110266703865368461344505773265468814328575301330340878602787355901850303651162447504601530307588879373171849013416763037605151939305535314946536039426985623415558252375152590533329810300598819525967713259679136926748834073651153957982383989535270874652065950544887869228012385472004177111182781353342027360318278774385534912686064722238124373153894388932421634731589090839331119167162616058344339054738027218077247168819864289760741231354102054291477282310516455913242822419865859243709543703931451479327522414727498345065343819446884032295963179694156020916687386824106009633883954969492069083082240576815525947727490321292685496054628921401031775781924759269193610613262459892424106385036421229584777489516190476095948099063965422828254207740606455113762624000319393034105552872980763077608029034256318590048997621236113373390247899928609675407247767534818578453076393170615604706937378390816085990649445584763066730366276903136224475182797457662086261606138631920349240507610807045032388305796827510300246562813626112387477179690725009852901502603383597529264545977071722744520337083513538100593018880292377350253738904463353544485766967324951087247867030561948267427892587558657964675694568722088984624751866164461558590809200381285164393320902945641101614878258004586108521011146121368549018222997828240776334064521760214212211496279272199083237078557391160352422797278966172849425347482478269039241152570561337086657124652854380150229478526732533371742994441959354818023167713437925881783928561055127555701006178989902846423714635150749682031819289876537698050802918627325345859507237044517488846813851467474653860594812697465371713022308946246105691966649141984942550734345010020754290260333042473607166717607175180043334665451589041147382212671462059004919888103546486380265770707675717088645048585450408611390007531709859607460533079765134932287952297330660128358017149389368097854776686380541214049985268211172092098476128527939307896621040999449692455008339944760911798275569500667869804046107870217639016194354646191136488416845935460093775626998376014421140971318652093387925769256862118707328015541997686127992958031402488506563274862057730997561218318031834065761674625882717700520697194244068108330753796844827584158486188792038444559923664818817147437708847542932855541850289140444202394940232206556244747584766116049614507216885192337907681284848383102300777895611079768608739194149828390443084067136114103370124901078006797699505467245766049936012278654759819341003063258739645027142556506322136928301319673765011345443436454741407705994422241124162458891196576424508369375415642675838736261938850412084125177206769662461340161809643328832536716980669132723639300337646588917213141975418530756729786813010636094534272817797528861334788683288176794113767248653513552681894135183728203526478915606427029897209082655784656280842876624776978455216505716159039189706887574534008596664069387805239988328154879279019422620943868645438661018189636638265688049511334133317702250575845333390767219514467051854897952370141192805127139615665361922733574710216870347482011069379164562262768796183225814829486886695079428834793115845243769622450415485562720682175161355306116802135321563034132657850072589447917238877409768293186975117439597218853706018590527416633066658432601064952755669150710071989284179015446439775019245485810853715552716699931084730260420327283293182327816169385552770414401070300775250465206876077628444364854725967751585243092981249859919291323280969667473553001925345040444775626775040045534460188326771583413821449635651370013744947344822565308203051164600805150487312996465042157738058120659111917481787669533676085302065004886530901125427687418713411351521367383258808159305843764509350020926952820036280857400726136832468488719989189965960599910970597488184888928938619501349471497387790584030128978373233135086162677818646872034180861215512834314232622360868163164255028017919337153379907949780915125626742215612371485505800717249315306577460305476471750255557093592646357224262265124801401878477710606534738372120805164793229426620379262413929101674543280118724023232075165770793142988572622227599065017445372167169400576710732848353049588247874265422559559976668929542928361206142005595251021095921480278255380613064838027421839670889467204502151775784693816536128310159527235995134083294964592914768802480613747120037414732442631997177444033825514998999897743096315057250151610944451896248784652422092654650594848760757646124791110892948616932899539504793343866818211058983523006861349088507672233840862141173529896558750709593763455038830921105823710284680313843219000457079827081073587760443518837147437411155646666857075125800581924918373379577009050288600217810275117086167164154540825240475280548784316179140188103251507091844717538811431728149894198553995306401286874942317266422409307618001157835014342781859834889975641910355644930176080661157114319976483196691018496695089092973072630996150486138611681477870936439454949541345430982470605429201915812162519866999752625411302084533617802616649939920386166760076435931568814280651953390859977744050924672321156152771466043544973061327854327301598708189555898236605071715887429034120618638975971227659922233745319062292201760456787567222670132204533049853778987137074323845455809169116050789957678620974622911737073968004791431908499439224408174266867581496266911536755852427917269901922004848763418622607089902817483521583539407809034159469881884224397210251210265802648752980386387462874024952111481780773428295067137821201058804725005455148234281605965003216120850798764980144259413528031870820600409875870203972156439823088154902317943151375512053613123750392155927223941312404028843678416267043708227914371519587084109224954311912290609724397255243989511103216557101569796821642267611181929816310294977628825182699388047050838569673803922246985524425729280505959917318668322233784517206831692094702224031924114252218239704153217750034462428004060448740103404542728039386823380462391952282990099903510024360660265269967725144590316734696820888918829592748596619325852883259718833540670879086960396875455774334983158667351193430903583504885599215614782513189696513109808783918834076876098963165502990481110911502322974123247850750869115975869945324560908094542697734843666659558434079767076629767550500799307021273360014802384248614880444659536577375690439399399908922423858353045864200262743265589178943840305729703123107361820133370079431250005578002411926483472132754381254668341205868373626389711284232287415508298172696502234706576742611059055701603017381789848216565264684820388986929876684664907918459041742474079632565691049772636056191262948332582694291429364447277800097745549773920234382955783713426583075007650081493399147712455745923446571076262610456579473696662805703136157576135232179866798026315869699075896224873116916629518102844180468088219874803949043187568019471872142996687120320354950801944908651819284403842797435283444528490063914462573999888092034485337810608803710951895662088570120484883551394069648776103829355665249815779780458506922729397090346743953533088593693155823224655229713645802594776262207487559400525882979795449544095140890952245115780452284034284123547783554037793837842735656578444983517128939349294328844996602453106310984034222290706782546941508818670475892161508334634103134166283820055724286352000820816723783715293512651696457929300721608543940883102240599863023959798946613808620954790607675077493735082776016537150719516842889978776713516497348703574402866933822454335862519856871700938659213316666934450798573593098885093029030470371017951402326390383559911436360034163429172645469748346862342017034720784257660777371284975783700101723871049524926944500125647919712426009011054974384366504734875998121498370595555632725525368780511600371289959910060908731667580164141787185467186425710871544738200808524580476530382410112922213131550144944557538026821366261597826738161059599797168410813898943366907872459701161930623309308322073691252735289531986120208725621754189737365419241420753887904164954786547449251655523383817875119027008799420017110558121564853591084757248703462475547069534946460958280595453913375260038697791300486143320040933946455411354767348918706978573662168988241639616711091703005512630018699325930222474209168200608415111160191550186570750097637152290686221489283216275236883242550451368017238895576539841831089258098053933790261955442388643621512519107242753073129063135578276827645680920882600932126415043785943291001146218957329248609731075936296984579007535410680136729900125355004008564978653624816011098956260437354911903936786214258298232880749549991510668239726142799791218126933144857102183820832965092522355867487883377721829570681149998375515143449199703413559206806681010794429352646459819682615366541254323987490102129851121659023613554529902241773601762326144729603754631734155542109723538268456572043617065734409604294778260370806367705083366935545161326776939203806060034922479145912760528138076094776020575214301713347490414298724723326016692466264502555783922421288956202271268198714133273360735936722833722240158206550330847777594171889110700082161079909217677508647909935038350574132909883607621729483697477411787595130346171800531696368084111437339967643149699294576368621385389026506036304498865996897272483649737196117253826056215177924930150675195732475710520170035250258175902234265962815663741145544843682952422964441165852737776782267042487900053509442092663979222912834071151958024144756258051835141674613325264277284893597228990442686581241306169042071626925797378292456813162322772135031017066179194357852900571610483903544078021909258515824807434278495909067703762301438783300340373911156849883999050548388553803551141947200205862432339791676683038361613728893465760583345533001763593621875929107966208588498716768990489708765443597444080619582692182783272768570294503421349974070581945042704112013682903327117406095963379493646719142808519021353625610503457449333820307886676444449940789631457457534570471361040687319643828204775149187222866865785440136517694613114637440444036631708784973098628828501871058694437363988565466963164012427663271816397259197714302906574354470740791810815258301845280437188718553829382218063292960091837645424459533826121859165405201877497134147286047028409101724049191193243422544134842113405347229420008772688272174182985316524868272617555345069407189899537033626232485578113219411997738583776952794066889895048788448192548320093417608788033159518477402446979000909124874535967326678300077161248822201729436569897138493785816658276539159246839227893419649757365880531871082194180724019359013961027615819849924151806903519670043384712356832524637342821004467048249896208839835709460221798343019620347543593824978870017674626742373496758509549509370243494345796313522782685371229938689073419281741429316882551172921662283446464497382485545214892235265728973753489840907536004195298551919682221299378770409149018684420102256904837899047716619201720281174006482553570545930033407962128450957480466267895806500783865174400813363691638131815457497737486573876680218639253340064585667065711304117597652035668341665091012810477057634860227066468221819325798419105120998249332042997421030392319519204930526170500167602580928475800602494854759534887675069855535554119505464831983517372116222967286414230750675053934679972731510914459466395102796666421460056961845706096541420669649498021250010742893259772942231059012683435433584660708643196006150705901374039524562825004971802461079977092617266293675070871341026832192840064223787341630983120767829724659536447017793649305423016294386610578436153024343054147329690297045833147245901261388180954980758921979848927515853669352742844828985673341637140300378282359434487087855102307479067855565194724184504967849581438370444697000286529866729692877056066355486938271406263020742540657031305307297642990273433713122935919746908532917216480139480588320719021490746917298231179013499403964143266884141433406762521258250534849703923250104608035662138258722263849314354982621290146713402246129567800434796552428244734701012727956954052740681478951285017293190843101187284261694167791025912675617928945418027344843626632979902835485728284762487987885251397282410037897555683508204536248783944179687732100787987363405514926657242209576343982478904114680786736897023367846916049634592443241406124589102508022982023596463881771942945021690999668812288324373457642877343289258563781589652866751372424691182732741452771900281515558561089347109445878637585885961672437066625334422088082284825417683167598656980281720248312964550441843342460467176154584265275896921138153773793318276308717036693634284279069226010904449150517354071902144987233754822858616758019111168575347227824576634156559169896859149095742653401025223818400350468023368878895880820424694524480476123266115032929781698254174046268742464711719942327093513427770026269670810411785877670766862007261304904658721782696677436772585779393329857044782007117440128681021812491292267055062529826244295616079979420144670861529782975643390244516389376359211002862366855074863899639342474087993547905106923753971467035552419569526704070903544240077449538901055168218690214444001839520002715567778932843428384630656906667345859933947242950554686331118365009771460745740261834754964187064794665884509877324458291764101467933488033801471737859922604960582213048528883723897839981558934730509245508584867884679117508913645274777332154305346011096824770592418643909877673986797219398352182735561041235703089509050134398431315355234899842484347265311439610509776846062746985753799541012578941256427764913330558502433937833032784301586344463068937122168720672743696875424496352711617979255375774065636529882630692867432386369919235397006259590623596270496950685520832944806145266828536436409959122176725966028436870011196606977754869797769615288657403759949992430299519426757653091729518032364805980981120637325980340742694309096484223330240307873315801478994010680458000217002434646121786785104187937848685494936317969750806970470560211390591139687423077077265686494721466997744930994876660888254098238677222802170459732514784203916911867104981647735370951489864939750813990422873612155693907855278436513412934815140005098655703492846563048735539404397888416497496137170120658313710259033605966047537196656154299103391487976271247912423388989144604567957847517409016946753539035990444285770238987944543553406692829153874369300158028988588256544583722825253805230355696900439550665013298758644588211732038755420437275334677132228707863652527551462286665684829615188921787532319264512093965037352791232746060347190867667549269631264781879623416758387723696966492808236724520477571662645396526522537126100801693567615710965345079134922656086378128270053595889505818847795000403098569878510517758474140771502763997528530849404555272820556035665878906248393825241091061314601481985491455448497096727105682372599945252163967638365427097490740996645867158938092258394348453679033127532035617844559208394799613520122347530883330123100498825238135423466990569570794876193272960403062023612537651505222882117304976762786626526929015196350281935801891851630913427575509800550638202568896425885610552429885814439269846099439132863058194893028403677035880329909673854749914025108250681539863926901100812795993781245597267716515420620959258842357172041096133680519005799022058281421396726158644714753724658783283310033476435822935166111638060680031819368009217842906018447291352991162186913900426231401176833404117992292950959453304386383446386401491270644069178234350516951126980434784303038061656591098681530086424144048737123177226791403517545346462109629508562664336401594765076241736705330099748470875731155270700485607592741542085655343931748524239682640968885017754986059923183836898836692712757368244993330141095219075674208156045719869307187155605209540273552145343588712493811295237584180616312941937223799538406379469252662017283684997394947051129425041541066855946734197697454388967608656303161546582887070735228365932516365493853174346327864571093637118620559096953927289464355646550052457483306890445472823312803483991604915662704289482950149389313955393390132674160543173048698544682941043933010983050265893804959833282852660685783652239318915440539665858703120938453471285798292004197437199470929550413267537963463509716648276589890847074231515493997713058824711119927182726070462536102235733375271901949454264326794164267959586264110714851702325602119551364243234496449018474110024057032938034511949535678307653654404292164468092500216493896993841963181394053334336079493842395608393217560750692211114952759251101178203925071857493230302269315949540840661198264175258529101346110495681955788382857719605171390930912292397974589565428149768281521131165304192434229738303482936382632891935982493240736445159899969212405174147163708759797412123616708124797575444181932839599974318533549849203564894105830001217006023086337656978729721414975694137182915007615142085827217835564268746538067817310986773306776588045216333717478587955235876724988498225168957347958579625702962469452125499254234301184144245077584148540734807255450715270836772939334163535258594108947901264151881976794509840662937530623414348846349782961535607512401343087800103622496271248579385188009589314302485424773229062406353875127676456262857294101797398160980713038463455264268389993577635947322362447339854072406304390418501393008178301446410690401628158846438932811136382856952481410902012895505076540932765967516046761008133865624852459900864223910938651115630968272905708689155435144238284223110945097651848103006676823952926322997370284594115299748473592629326349442121440419768338230498432416654061022521860894709565611204113987631680098522894350692571709378740034732561644327960788737490476567843616719486639026916735280302879318423860631998768583631136010298408663665836260004354201780386252827346785238540237006557536871998908412011507529301735289644781280081372018536201775270557859748149064443589113201580117556850690712343918959138631112675090063615669294122647839958410509460739144999687130518140631896654751333095169403234798095465855820477036814416993696093755498438355797311974632551167413016216703585131572782057054960019269995661305450963408095957049047156180690815612432741014303368774954311511150977161901967650030652193037171243040818060233314574140649260763330947783623254047446230079418968277963272677036934405516864949283588149597799932647705099071189949739368445427936700810372597686336066788596424112370801271259470577936343561558165765260934062012910912824629074270284302432402401556864829944154282559335167064250125533756396350091961889523661643862690155723656249262496865223497350601709014123094749798834802558753214956050327097099546174153496409098222047340542216523193858183706016337281213719882734301434462596960707574190877082333020878343544168147858353460271443723009646145408130923527819977071700361424195969615725859315562411538922495697062557442621452272171854319363263654676184114941957712794300446699955799806405185973917291122272632923460642743929351179755890166274922439651639746572097624001680024852255384228409168113244104608864263785495867182964825508592903475596491234720620175700071964688212131795464955856332626922130935953463019480195333457679368576945830149417712293644567311731579455613263928625898532453710470143025724359377719779990435590886351402884616751159750296038147646417674080553023829629609656600084435249220477765126227453884610723169043050092056500952308379831818038157714508689911745913638107851078105659310642063656594820599323426994455765955006926403797536337887151167268407935007714237705750520704804244546724865533847358161299597909935125405427008817612120987382292480916373845253776282857566806124660437282204632487918183771519871502633649862536867469650144217253766413847423971965331788073844871129399441956333595703314370398652324746949543268900081993563804907519842569615201452041690885746645469501455708778355866640628325107049488686236867698604466373087847372215377951705261721584879067535672501094478104444822057998826587295737473296170165058089138105406611696769456410495264973806516255678165736332268105894149467437178093114072696417571994303142798610513017452334701651520007249123990177325743169645200522121094913461570432722149479135689801170101338062724489595385316901672487717889234136634170381969122390190359904953008326503180337909542138187833077215897347869802153770393349887921438940324308638980098564656950029621606218351834515970896606833057129942021297815080957752462748798584885417702679696763327595062185959730524505169255971897306949809744353252387731888724679225806673251504548164950378489407012612610549444260948012256025320695078215991826558821814169470143940841989942151890800730931335913562185625335212426717868597477502117789835882552644821695091351217967915581830782365350827538842636711210064843040695437603793368463037234120015071280522486223711267023659806374668444879119098059975278628224335478594314570784378584459451138460672639889445287543848335675431065209599101698768151499489426514720256415025742180317366389759449981276518341290495265654894024598035444123963219325244325636705945772557423933458141180956877299134552335314746577198745268028345323093337682394847810808413552135274091440390606266246042144649183419782516967821092123760506434526163533053006561509931450406735356123877066661928659483772861853540957345078816299077747596730479210510025585343926782668177391428257815821320125468480380086254714376872078860426873936360698914214289615906295610602660017031891882143387589105006992804054758115300084163659114840227682043983119721012198463473193738849634939543496228515417154509348951449324585813443572212346406223696297935053944593236930323193789308095110786570568255937335146346041986140037658490871180151942904272790527920057916796713036583853253673868935212810414203359593232370365116930063904412569316037754730181621787957783701635219909354559571556519007708391788181582522191926028659688638470263726137149797906200687507665306699420882895956533597041074699707413424338817706922569645882351622300840822598670192652373443002239442610031721593175743661943188155133392134022054564908458228367650903839537503821503220401733113328851044461662380503669007329117470940781300241032753405123286467069630724084568320309128129894809677561539732575249223355645147565318127244164138113827956165061850150388617539943872820450291537890611453345459959305197524615269272302949907572649614563221449858850397057341862943081138631649170709090969005775767216331905393069179113214535952137961145977138708996601063992394747380705950638699741027616367300550040871649948890576981727314632146849427176806954313644174885720100013372678114839959814657215251981064442934863937080394032835105253700176851453667087109345345826991202798971326801219911472561190310055306716192671902718131637747998071418870941378189271081579152613822746875392065139431027045186754222010484445396420389718197810802116264979215428140326793491878796722641208714005758533373026761442861397988581757492631816469359812928308310691140561479589578254577291420964870586412249371403774473018398170713698625182144803186664223405096733021428152290997178101759434425820337081534868115168266729361322987828548424219164670149214575630832617133721114711917512619955942705553061035344519477550372305716678608365166859822476345135700099723717518779057888715815876469087989864632258471042166898308423512732763496694963370679816401804356548135541237744077005734788983842073570962656775633851672248526331357829627960884349962287902092922041216296485324359800169103157853552247392646916957732647434186299692510083203115936881495480306242132828742007873284321801180343400071952128349803907802844955422352233278315787581891040163679350165975086613659563927993734639829992112515770327435504614429626763304217702401242893328344936125605154405113839772916666295441513558777579807295858847295547966926841574087738434060619156935232101891236852838803378587100922023840701020157433836712311132862542201521344809860644479974949680701663297340267781367311099074617863102050460835493798313810859758182930928411009175910257769555787940586239264111463688657454831820321964230092298919659450147276220030638581538878661309173788568755917294381214963446223378604468306764817909070217595963004016372595979109044299520822325701758786414232889171236167283380832347741321722385491463763819558252549875453398790357289574856924055084752353470411210497660109865786208206169182734149597901030025989175439002782267837500510619121730505439179349779107194853862354523465699309303679236082166803115087242691209923689567044900958717539052278776479722467603089335017808788398441149299437924425244427511813826407107057594386038456624801273773798435116367966832140577017661395940290064321121318463965598514275011690559470230517915828759902048883056893877848827334295803832341886897193046582819903645477238499838404104251187236119350666288480728306820725411628065396591960303199047486168002361666746903077926552556846730194190608720279530076554062106774996030217979851721033651456283131898200739380998590599081972172136718824517522780675122030505033728996176348174418438705694283065817555856154112993252973509749643980406844149848361866281430127696314436836431271482746114558314994228705511055364490443751631283041769407575363830749818152890688188950037596250976628153875916946732490894504842370767359358021544354125324705169415298325668319529646244471035748376686399315593790418890692168629650628732956426487375683019238289440603390951540394723441146051975457299915042348800551441992302390238596165684854374933812839442004816238826381993685789664592760200753793973268608474189085258441415295626034075122840388572825385677551846663669759924030398626744819643886704167746786588720476612885016702657253972786233283143249923284117901748616724184721142401272719314582841460295549254612984564881497508786221173384756611014150605645680795835442149864619436564739715729907502820825879127759750289771884437236367045275660648068573214145776875949533996668774403839875494029149247008818747964951798223164583711833062057400929756746420864906360102657970238322283200444571086054029470447149352012765720369389554958626698632139923642491844064129871946896200183782667211069261928971468715506053312359887462944629420006545830145629899510851848577309243635956339077809893082985041803191625663998331977422549940868083730961223568780558049316235030978208181719958958404661658206002576939208885791033342936671100587809154002795361093629718102710711025871410547208600373174588737477438619438419389713063882455406665687140152332488335561523221213611806467977281936146612672321112929726536651409648776214195961316178079773396911926383525913826964270799883137650927239295847570206869948196336703034861086639605293670102167838537104296316062770740752383375867198139927336333936572351694025904688050217699574882460487359369303656308938356704765212718800088545387497748674132060185859643368671554985469006198017419128097885989030472789464278539494035902954452020455049960275421036376373370229740582144727532508733837931804246945739006013900159152873938069307085523396163080082867508188205951699150961528295784754908787919148883735678001877858995286334875252315804745905064241824894086161041902279738361505369947182947261082132988659025946241392814590910674134084966734390378664117447820217913714248531935219735576416065764041904792972610029291259970601651195463683970664132472070313033296003558996971267755935874252513021548418689570804984894289119297711836794115655988768673949324902045857058474028370911777147119144877837357599061897847428532429741402306023873816251687879557704643649347063998946478065057783766611213483806094539032219174951658542696219570766609122561984414907187070613642614005226404112129022454571258910721040277935743532288358596777682247443131679494991184970913243763042897590543195563020272924301210199182019312729589764525017405663705173808149423112784787880339404715352313798073016267224410644476401937192523315176186768559192679094301133465419840376470799248931298645223007100790073288272539043066694810072653188507525313376335540248023465305123673612878545449648521877499375278608723279849667913689814672163824807914809956271122991760587774438977127715798745049700468942016219008365593070853046276825360943103182931296586734483219368429413874323151938067464116593064759357028535082653061277790664440773769949465845637654542176258742705695475140393129441445069544145578127143836712399298511228604523492275562770996669753822331648944174197937199157581329135993247724184414046978859762158684584567479757285575349981697979774752697632577826227178396264933364744229111019039018856624687605634911042526844333829569495972428612091799456459302595930790357109323514969360708146944277602106286707598081020030771995337950398561031676917068448299300373211892861238562647744327040559379274919349133129747792357789394928167145362650095019768304370437446871107989946792811245272511219926154998303687376912325314319235143499905255421454583024764175205714800562601727095571615307565890413851594911459381955656843588159810703187685549535283935002472138937870866251329193221592752820550848603034120235974221968311929686381930675840331127376826482153480041663293648271417082339115687734189472391072451630837171546149717040796143364773264223610659252870121816429612353218391072344587778144020029690485678570833520357737382919956989673559680492808492817617547179407073540550774828748327309739653257964727601313634556563490980357187931539716125817288869936778096502068844845375301592986929212993081213195290564194586701343638657726463928315298403150069297547821273781279047215179484208567171132713991044786817526846098226041361132416054946310116572644859930995607817826710556865776131493162537723417503409617645785721961263264021182940387849986761390148709828352501436356372891536081248647423267546873867996916798654849153948776690365323057677194056459244597047787850350217131550524261027765992106196113368477615086931549657694460542467830424321846441651826548597760617045535006388837548353764013536429852452429043311158977652296119956240149104180840769223820631936343137575951081262803278296008206294702673263514572065842140042346431477970110076073368526045906709416788106231585921805117227966460844322649676018641912372024248687350195005744853846795695238007012357729208814560177875050197414763358345354724193771135959305128186701111694629549746699792647706368592033668844628574571655451631849075104900316895174257071689257195393337975931058865072632118659876637967857513321302234788748721757564765762215592600511134033298332815077718648776445925706121667328811813075356214251134886912940062333718679952751317364950652147843621341974306043763141776529332879255722675447739038186514152132942925999087903941854985747482053089248944469544943061272218502140068509194733834101025450845282110012794052569831212232421810646128504628007588131654732013522270137217490680822353817115686540090466390241772862413435015221267959368409484187065963621885856418089263959811373893895759992486381242293970751220014011241688666552951902839246793087067890584011151805437687950251488166627288701826196765287198475508949286114745749744957434834605652781550524330922830675764094941706352351038746409116607202373274836370186585132851297522874949201145390935985563152924863478477914885449088393304449627415470834915472151726359439625751783639529204938068633429634078114473094345996598116968765875104776998525622324223804733408994136532232731973265546898752487539332047142645151235756105734838368733932454901121149018781159040137631534605489570981404371922283618758159141893343801165483073218221636174813533681699100003635296208937224252641564819650433365349283692847218691005398507457330596683781848156086827621194107732610669851233274476056358500491241728939458676282795395474869021701736514389050687680392777752841463153683199844605176634441478492627114612281838955481588707377391294292885074130605100425262567629474936786334622739762998505194584041108228845236219573413386275536386069503469315312238851955897965518454032635483409391388523290466181160649489718293956608382626439083924227319733982765731190896815805186314910397059707103665033256153077253919855064175873358652138712651136052648774358187186667319258736577943558832597781607948089594698459819392217909958265707175159436800639965514682180081955935669003857322481403898139682841938223609626071877969394609157473539738893383353279608175414438151129045473177858595071170017253211421733992073238991528516909544730038550690573556194759899839760671222848196850120591346220881458222563036331662370669647179074491266207689057126038543966684710615323918813873093964739314101224376019767225866475624417077328134233083049633669493836274032595973205294512621694613235366794090613440412556179211903580457267007430809743229833045027490224126235552936185876088157167712596963788423001214540922347408534603515121363471281877743296254819582713509829337162196151071349602074546505778627164890619723448235213149579363098458067411131102389523267466817966947126508337854007220092058371721984403444693042463473094927186017435026658396890455195756324373978799108293616218745223509617366562016842443132302601933177748348686054977540038215695613806161091243401901957095339729287008428984350725180878933637797724497007266263221349841191345386404475144153594259842613865079488556197146839554387220381709674961248070983893104724595049602477786139620424698569641635858330584094517791076444597793474300954889009790295814668784961010600215179159113662005467173494064013308866052629082879854314319021014593952037686824560298874837162345063799228323554058058869920501687539440980318480487142428304979506700031429823091254293066929904075270338437641227644713299279853893913753748532825586389592819397344150124063337281969436283716103141379001229308869752024835006534822188322319093690864617553436842119538777789811643015511691236744281705796367472311433541429893173709422251201873147562827553537424055543358585947489849388244923697559093569963214435627752956507668189958682548381036163739363268299808658606263628230877852850306361401374253665401305557470458800344599387538654947367932947065658869037469127069739868054733524582819745474210505313021264348551160503725506450214890505307761780726933635744158077374624193261955741827336573568437661711560778471130957565855648881105685878843013217042728612907382362654161568410683925300439123158882121956338298838298905415044580893246264123631348718571222489571467858890877879188854726664811257004986375584503410362450928544626537008410671331908533329383208419738083997733047899168001420721109223426485847422310245420387715966657835707305421453934904671916481340481050013740183579002011009054144167671307254098350207168220617936318594969579129938578796076889195307900014801064793143253389164223725853477037439884057124928560332276398536612868810320912767741969850757975802613767642124795400962590751741369622939583280563509214130125602005929837030362905183926919156310389310469550438552189917383325373174145285266432762012448412156242972320834735470338694627370957125458143136225851161028660033967792894084348473076287282183302127913660943714244015511376222341862930092997880766871395906630594279366877805747940329015649856121367127791354207884673686896532618326584356709600810828416659507341850552555453130782244854606699018570505631373818395768872497635166748142747336845778226144018732503500032574396263399186952872743062977147898993603231054144214258103749574009691396783366018990176375421550018586188815743108166127792654318641977477348483712329799161886024131659141423221023124353519953540531853405054191895892807592232404972377646633813224735897836984791324693145694023606757278683142624329197691961773313332136229009739676859125081872201396279006772063899395109210807749248724043603108524254460832600015280666048262832258393964147671996797541879052058344790141444660568522599056572524031945740498047945002091592178733478992141408773977898754866779900569640977445375512322196021908508283908247671308000535685099763786864825023765343216513031075056068228300790106389891009028474315594630027027955840646969774973184972809221247176273409254983761713575443847663806949388186669112445997185610774390999056149508101171768978801407706071472780555541421099358742244161091285127231333472471058904825320608905636447924961655075743470840679415787283041737232964687532841285311188772829186181042987232861894143067710310451901930818593765220913072105373862321606828784220340567010423286283761860843498802205242699654362106840846985737859243568225477581989627010039051811253569951847659623395451908264930269221189461434885398501287383391742393909366561167668264788154410347811820501311932994636792279558823756699423775487163567147716563942264039619880358896797387569679366995110314506800474308386579817662096345499051293397481900573048148435568159758601181111912294604258989051131360539138102721378063687258905500485666863366591820220426966330123528624789789135549265618474241285651102059251301796398131761307952277307413751270347032784361748034335463574184799597839674197459997217921656700059951466062334217508680730990537880104286893216062280637523304805004901666461835029308712381427621144197033133691469305929172050601396880328711833307604523608271651136194445431713905508470830657422846373412475992609439024040482416512860271621861730389184321959380391975074245294686559055062881484085208857880149518507874470510718363376515227001023929010257951042853881260425651719883752960649723609387090049481541568822335180808381806160119021415694367232107982118092478321179167511775895837557908871474498242442010379314798420582139999986086320974551044758264821282397061935212233682146768811842750253993914752098397984002354552637966852745463708640720358584319270538503443801052017035163172773351102328502869133137298102829460689216179322444425143793742533494916220330942934060461202491904480378053510948979535917750813552075093268719734974513928038084840655974176236186929914236763777025199029622550548946720841190607255799806497048815533535522555363393806377380311638431946591557809319581355555093119525238778865699349662466034622522624529065233798496856408377079894396490339817499487370011188230053519845708065149265774503126573254998115741765318171592276294976043977018983733701942351057818241681082071209569468770217529893360967923320633998972637568953852521125615905407319925755479027060794588158675503995102686485312908142110195821271555935526595219628628112095328500102401620875447495910508259633624245055874415728355245188243844724171305425025792042499943252666330382075975091184354597452844534260022533972069844758133472662164151610603578302275896767898283340213444824229014372009268695368039853878059396454008632106466601016459634238644129134404799726282947394153714075749538594041852519323373060976086871463050066179379746328470900805940735771971574850571748790063797838731339412466713729910148509466557498460264504692557517186908817470507818229582067971355407059243150772718756335449863805394511355389431906170972153842391440410331939766584291872206663140343801861516587098523756147186216918931939040069643281284684410736719877678351456072409185746278586934862977956702502776985829482795099880370262575734705653758535439892634797710473779631756020046180247258914439902628631351947109599771822823259007305348529951329065682331483071962460498934591233005492912393577535464639910341362930782110034037909119614191125390766281310846837786172893357109141203801625181233123545280210572675076064829503078415136627264850679962683069887441293998615212194574643426400292860293907338192489109935988667502722503465090215707445107626359252720245439990991236106843607844707137015438661167819962235033151701023526804349923054840102156030809994586766444883048277175291417149362466658365048405647538036791453626071232899595743977100736061508507297222247318405987426682647650638903642244270037870285520427190741244007674694587518441813728929269570041604040696026431307690470856177835654144838295177800843751236409582944954657040454909378426951468720586202115885031280794757653222953037753656760957194317854740023188077857880730900754308408900719202895879238666460270768426791363940314384722606267519731378950128939856685872302353234268903343765255403772382269877244853443959716496794303493491718829976364732640409398982751240929921842303782197586353920819188691039766439760480973114163866706036741136025204966802113252223759811459102867682304591332840191431981905534695765026093676285216059352813751867867516894780495629495494872172230050029882477069955533788692195126640185853447033076840795061653053844341371066349006523661240284651678091662588760515270163177034800218206690041898818227529100785674419134921402321154969612621235815054895622354894642629765484189158306598218141157181976521536962263793366181429320333321584106064477326615510351657149601909222571687723047519767622336863273566242155856183231766039978139604559509707499218638109026829909473697198516327251131099661780718458399745838879045981443425254000177759192468797979548778508894327204407046149498059135403179082039850604231474205898522224026045672621911246174319252764053547715421691887045865677548810473228446307446212216346937134183634805069406164060111755560479483470764196599732411343848397198259963502587452080847491409233798467321486356103576532071048696063844640196686337767986986517157449954818923001298344242990378687842276667833353494466961825090215201257492044618581307006271589128473412236751194336665118054808456815788612555932728377877377748141106041973917397087706129463025749467944917882775447929592326572960054444672857512333918048611856101437569733287118000266080108705789726194769676023633609350754500293569171378549458420354384549243324348350850539403335669856097149638915440201500729685401488337494170486004415414977547967489678035899382046765008506982281745982841193614425526169554744202900127901302083210721034881652339004345682955365304205084382320937710346807433170320322444185326981431242351140173581603460268864285899917000929443216031402561528160176197943605486504230618340017610101231267719935703421210047754664433720921357334317250655696253481021641663339750291370482190308651045523340765627596167107832943803482889490859901256115031469097506586488255816420002615594828775081436893312551047731823240431848438984702581742619206223395698933913525602922105903946869141201261917470993967853576279254503364059906663788167109553442976074618657223117819695462511300223516949985321977504191268125707577828350391783281852362075092315790508094638838052494241745297554598576408945308303671776078268324669788567090286392765631025427463391175891611533567285482750215226459425643851963217892605936582410890619938088151819977337693967727009074588864058548464235746315922635928607780303360787317364960032280083326473444848352373896375225254045495611481836092694073552689278922635220540797768390154001909654496698178642695594353340970513066424668431272658052878207903049881999415198208499840785709679902264991432883715030547757590147715982571155068746349800293732807241055233358798943228949976156270049431346610736615316392959912017589246682792625178387100185052277595223524672738800737230289695360884291576910984486107885626664968342739758644020449825114685211018926101288711242003552224535980359418157501080160655734177209811397820168940757963528298134988108358908055925069177908646765482307669575452794152050255681102617892921351512627789505764020156855926626153700348233646384830640203867802840557178585956697409916585657913252152378055968186090963450875326229013154648019356456474859710297021154683373343792713518751499333076987553368999128532181440410918632806787236394447283668305701803763885841311855456268267558788543994281949533754350802828540918664727251797938265049894678250515267945084926984538818881605977990605973755518884305893186045898107305056270435932452070058477293868973903683062240711220226785411531373721012371674192655393877303178459822987502866913845175749530036364222649689895685322846177806495518395685103750228562472507710046277491279920280313686890805274046354839526280674983274546699293588454848270679118500976138987617233408526453752266825878518927714129658932354209343898627351840183041315407759292576166130174656418495294046568554330647629535328642004269965367860262393388707397981025526644818225780230444916437966909117882145889673044198930627584624162128320046274388161439631606915389689324790980594468294424887855799028590360805382983462413964640703262344522290596432642191118472312916697706614242321312605154098961551219556342352031642925882306294729169156165775094287469056504854294575282484935047526301430502118539480892114326403878752565070282538389618599905343430349494624229083179937753404932625659357717610200678193022998191123014072760674304446163443749812053442753571961061748585758871663145212616389030504889484893404917147865389798257391756467208188987220461971623613084062508423677035914594204067401021318539958168179795420574827441745685358255695089720294602184900999317182259655412167810489399291059882274700297859808331271488102966843939651518811570039423689325272420885184374664182048768873310420738919449105501644561319569961326380656806869592458442670846918525925392872950315757433513709837493505542220451432438004836255779114448572523299021006676730308193690106853270194705768773187846996672915936663268468797050729593019419705023651716364620665787967122012987472433823659229547684972435557086745309456672956762784466235990056329703018579733656310557528700733693218132908868183038824673789820179598934161210063323595140822660706164615695298969557464004793279097333666705698564833976180691613715758098274920954996572624021811013360662570035487519416971271235638158886229317196602272802087496390673313245487431625185791257964423991997687652614879437819599764312138261736694777579082061260452245844819564652897222597089639386048607235553187566020155906323592377327538824409172482687804469550849272039671840458062050309600141551614740355293837334037750875815958071320837414833099532437120383879121992553064616516863032318973828793952950399707235843487714110946895253481557741862425439684152833981345569283165507382333275957705478082091419776008731899655429516765888887367409721058812094415638054293773211448024971277077538168768974650626086513923044546077903997302022404124444894028466846080431159287705209466802548227336681896022131375335428635072288102366304240558104584785650147446636316545825668680177207338460232950019961883376926559145782656734442097059302648336676513053618952997209257998613100411260610969350537556288685552612041584215797983370420756738921748255393880064723678577331892569656490722800402643797706422074138895508653671491083974466732879005558573486766126749820816876208057212482708298830358980717937918052605119177750303151147101941226719864462133866109642477385781687827243946322983526499286985954797022992836047579539817919285649007044193420528814843459631983285235193918038034866696990449769768934667640555658971761610047343351276903824369354492218193685704170656175363981044147990489017793394427281247538105089601805379211239329706457945646045202854767393154984364544366669088568390130245248985759966166062967560988869573652972670551661239884204700894459005958337080614315749610711583924617808988498316584200186978781242240747670548421141765196906228590237068693549049257882816788657127178978862026409017778571446371940105129214719985528350460234144124881148520893185001314377127377691711340824591478243436635491703579101449797141856873490038202552270864726785121511454035002050304095577064135311693257021302362362643709894739124545555173792887235403178162544290626303865861871282404642643552428189781400357285580139933050223091182348663829737266731545825375121195297396482415871058054609299580704171524240592383788458886266684939399001449852021890999073596758397777791268109989448428636825103525131488018201809579984892177289875409842633524009897515078969911852154314817858455132586189906371293537729513286660051937960383423667957051391107475979885815267439115695349412956322184944611092839009513649936572657958120511245555402728198164487123228128124761083387418062673173454504847350491166130245117718609820388160347404561286268358766881013126115374084836752869869712444328912920884515080723768751412880143521682299048725009753181198123430426378899508046443797596542443803855095213582610580625557852261657212195768603768370530467595248934087840843823339816015168658022326498897594938193162304828294234115942959480146243132953999938824009029365206276536380592939722215147961090311081619727439831072187838266110767570290253490687790750222267825610067874980585458090550702440015924374802894362105528924341279894767709648548262440455578442535288643442997880514159968171520362369055566413429269914479292819589032398669746779387736437340392882167729023849764507744101515040768710563886179943468313973846253126167093243244826101970691916467426300322520455328198360507277093954818203134698938238363241046312582869045804246123757956875283547872427092422415971247333551719488149966994180128720377666004854643042130884426721367683919348024764043571343044537050375047762580636240750497689184295171141957639298616338140356791539805301388072564129367595074400452023300212788134161345996757885064658194681384744795866947264529143656481135206916237540227118991879002703328959161525472493076156581029925268479841008723861134223450285699730920215718806519812460549130589360579972907333112657298251786839148839436788327395905398453690134292647911140096487714947913015528484353696224207041117762978782445759809363442132466451376188042092739643252787492736101582720329854828864161977989912075650054853760971062154538198654097604956766349039326205585026260660321695456575536959840292458087454250663610581114262344720509109896249427850996794954389033790547554101521355777582138973489996660238082661443845748221968392908523053685248900066205301545602214148454634220898055660829893283353888110200074026668075567063781043841854548476482842901769362736388732641324093279267917072444292731469323440687044449861472999470146763017320210141854799794685321385177975876593765408882227778646921905502351291453110587753369232447777472995980816558692076656307432806374995011979598830580575602987366329177478999317944116194819432342544987090795942136805208983581610717260047370222502037200792568933066822222861782261229359422296574404618524948837020242646330198001959682973809553326061551802117114934107817735910921679747640105288905968338197213161294012356707567273385402271639460870271108342358605237191949997430811705267755343077992169186717276593438395846354314354650178948432163723732422855426328082749739196452837177370481785415050461397461700560414312665554083440577441989218958509084917381900332095551824367798139424314293726319516931314204998030321512007340031194589607342805248232227475998308048795534832800473536674109534941619926900131852554328905902761303186289878728417404640400254977310291443772316055206358889693926701718529008933524830983815782562549689536912441786098578105017877206639359589812009358612268905276514894239113610007143110244339826410601953463454297415159906408774531747581695066925107325837962177666336293693137777203528574780584672065604218192361817475092004549788992049375089981626180326618482190759934729804754517107756348554297441091499524312795767344157267070303144989383010675625167230120973871695544367338803158513771881589368070386082940543356526886593184760105641885253800830140617408897101928214590680461974427511959722495999813766617063184465374209961639793360685726681541631606335922813029476999277092757285116512498112837610569129468161605911122313173864460415704534629357087585547436231056301242859255651021000248761073735286546737246272915265065118056568581724210875011884007079698651757298354966350155189259808276197710796509064763928787694887107004250837278251752496797898291296710014379987543931902318673508762889610211869327215466265988288978450597463346556888373417558473887143479013052310981948121295765569079542808956932233784726560500314225814641184919123627280910608138140662590753307648112900601459185672524439607817392951692112576192676563230955860231872871363276002181844701381710450952025881560641765397498760378806979622041715275722073845519142978531324643833161784452163601322953057743347111934119199067335170184702826548158856220250736864806241811409095002246814870921513373190887061117262705561886634987446517645096283387892750730634345706422247569477663455412886529227009533973938522998802671852146595795799548123417750400709594924284110955944339312568648818294512181584969845964683457111858057320561263326622886680011709944613955212777988433800144298399219463086949756633729653514272483135852348407188078821772584876816534977027578345754640488998866008589224442830743355445055597887952033270286206633849490861542772189355487535279782226011373895808936302119141698558852431101872499163124792006057920510117140569498144540404820391798985488125733980892121442156344961922648217962398621517507625930430423663239745317171044643475432164077650854900358185110530131708033717118036084148573974439919578141709514169182736741981622142865360897187981018997873810663063775264436796443235375637774576193068840735130707261132308952590468305107839018964238700402839419083751836635812534929763517667184570053566526324923503337970223421440811489322356150738855652077077572172146053590035507804441857383499879160775536506208356447958565602858558907325403723230281218921247803079709592332791399080917743196924444952066690433230796203228115392692416024740580090709418359534655471714719188245774851622594085153300661046811953378495893700880651729941679583338306617090661842290819978254201394737847670221924558805894004690222205306924352246626853252875099264079019974182797331170763816864733473081809911913489207695394429401480902567519038146499764986235574579950601897095793591954960261057896692103275343773823046463123509982091813487516751001252163684153036786454061676678553969106129734496868219865746190090604418144069863799056219177686299972423069303384657735713991329740632117689437519794763851080052474530423721891023155073336120024799783459214812476185312398430609760329195814576825739687922745339480710120487526321152488165801414205224354632240773511825646450221702737955172012981733446158782605133329621988982397885990432553528137320615058870119779349568849125792439845371631807364063559207981015463946239561292820560998771438388188150721496227951479036578392799760012380116408972103894292388119980212212778317723378271346955385841638988915147903983651202174555848164206818235829462855590572223581008702495408941378400646675282337772994330498450679308008617769677092374001443199597173656577430314760203855460023909705094211298828874937175837876435629186125431159782807029201942022626234346347652587965188427669264558620675042303909938409667749843863371703566338532089965986114366586185712429545263939432969040006137618795969660207520263592037709712285645989964997019537468019123970459022798540036887121539305328763459615472135552509740775402416593956002334982309169301284088575380015163050414294731277324420102863813068548563138188443508831717415130798847799848256301073717723123902771371239615698247158946439007457460093781501242220085821176513236113162202073855977584321545767182382160761714852199991678668402713634072673008089934063109923552712061183200676615330282930568894583249305183783707023579878585893160371868988069364961280259360839732642618475078627921592899464568659964155788892185692938963939646788066627244791772793041023632915420338270137259967474127389302734239774525950143309083452073837422562684593936705800657907319877004588511089885233635888874450737411744718678414424412248194613169526248412426864702692659064692935200153470682965944051193315118694150964144962921535640085960337424527963993851970972189647671105567741347226592923687938329239053513509399931057317261761874355298249035932923752429899248333097888092729827417399214479286020578814614210091090133881510140384052691702895190586635041511833330766638725351083761359368630527769331954297156075034218547842932874641535345107715783955774059032737059799618081817300008622122119778038170532730801558046058739469338359699802658712703271956977320023331296578258898700299380797710213585429296691626068536769214618203457922348178183489602055751248411212443878235060100060957448466965472397439388960324101619262928030960121200935500627300633731205812311293170805048925227600231685384584612318441025362223347262353024132754268763994768863759517570235799456695858934079204819977296512324746817535323634817718699634621200233683401514808099336130522032516127697471439406785287068249329497105746709382608376721710156723765840636351534624056050070623918208532986847255137254969068068964812640560407067103666415958642526301730123199018383570597032117171885102866291593688740143628814096218542398673998441162387890190948627448758303783004574769895992517317338791684174419730000332366833887276745442399646714288766951329027032725139160401120626004417123229499135701875662716313249121205319685011107169772266774745715732698795573620139016497387133673798192307758992470466483669929546483910504448695234362766517169796594452570547937338268783247559835436034468431565157809075319758997194362438003318128688942938816769216419137884571233431751954384888706698534922599723307856773677158632673883246004819364903790050772655179634786527749585127397683887536465548766916963306334100879876288996771001919574498398262486268943707972598454056025673820762895417423593810921127732411999814771315675969167242682015763109446496492509433537454443603080576770979708049135943506194646808875251441396878056701134607987404959164332962505705275608362916389751733504907160052676476133237257006715325101623251637658656077331968543995645961507505307510833727306420988313217382937119045121842751556348999906894555360568296829497195166340606902220111169293060937252718625456146097005644237132217996141591153556657053467346077608492731995361563821594301114379960461349175017481028952047452311753936773408896819676566650502549325599328540317958873642362984344259687785374865663026296752907112377248580238570904161004974857765326543620501704810102969164089452689083434426579760048661631773386863061136022418442311082628407829862920187088509628195357717715291326562492041358636005139977725747625693228275813400153853550415864730450289742921391087158525695317927734345387568373140653658754791246247666676187410861285409764693442331934484769022430041686048405492850900305794788689278541900139558475910612466272972824781264710265636596347225393960973326797686192645364015977272441752306396118787959516642846277893920644155464636218032502145155618402903200875877298380756064176275765677537757022393690043778523476141254326121971742897985695383765121006782943535713154271220705108730525385497012554562053486422684862930789425864841815771097059257513240397896003404111357567616917229915217696472873986944451283479780437038987420439533601226500376935012330816248001858931786499712466593992593151731868623794983080317597147980041307063827170958204052966432667214093620203432562965891325842541527323355288843929807245399272254538657645315938298187764795107218124614909111675241739025947985784135372622775767264850851471131209874370482335384267379122872314878772566026178248407567266169732630881168734463414562143031846754850939449798489624352118083975530554028275152870869621391349692334832837464683041783966570187959200749890107305112957842375747271710184580651100740138313586718539326272276027780162873210870247629929556347173283943228562953938610224659467066587738084366356896593634648514152165795621536290975274161294425607342669120546139672485083023105586197980951725526273149356139504330175861793459788022097052960932736164769675952260653874997674910606549628414413881747341813296268343335995668843639333011795398565917528815918104051549138775934225067736402802385097509943308500475424063323659637192073784538084982649866609205907001609933035868967811275447660200137684030991921017488580121779123839264573870593285208546369525249296634973811936071185717844151517715547986554112018092086312487728447592240985209138896506960394843437610772874058068314211953451225102204600908873137281882238597290745198416597868089151777681206724238133332776641335597547685678950924913456569355251123898052813577989342822616283905450164589583812047424010484480626690572252781417614613117607241063900667164429011716040049691186104424683959676541372056037803418218191919146363608898731509449998554984141575584432676122171030862446986330638326058726254522138281172074386916890409544830996603551665631160742903041487380039367778532452682748040561125354516239814038884020470421117982057191914530558640623829653191389494599474978287961601600865328003784724075540156151493801886071765472884557689491595189520835202645923665373403397436242728535707494327517443969298883528345743169383160862448090186584791575276100431472031612854167455314050656574031345023321798424549981821230084603227013546104490558095690174329870938655603108904701264846215985902601191767191166047078611212817377975465745839856333619927024716589033605641629719766825046598241325214057762898808940198031328832789764881759803084811543880420380715915960480596950093053329121946045791552083213668087248328448227705017265173875222171303664131697267524292346018669267793218744273617260412692426052813106719802406359922027533532545560250643224876711162276387693049064998421426939260925873005996896182588118114865264277508850427839488583957343444355996515699814387863251781497850055602942504259050929878484519978010750102127907271717696042181753367143779087371187040240400957038037171028983959388211144493074959555839640680029557947199568659418917706041835311732596761011723683242037067851770718882063139056510681945094891199183596068762058026557575671758318325201153520420187038758308025051089001609998931104347985622332074412170436070201038118836853831227652321012075178119763883501731873006883558412896973349492555154598839954997364411398063773819605661350604973888222340949443704462875114499870789586817988249300442306851682960261992669401080705809239574790847913734002730551271009611747940534037698848682268223008720138650165462888254086036865053286686633583452522338131653326387952776302708051583036692328128196218144001809184657266595687553021087656557544144327239888956247509835307130016130243352921317694616209232626139269928680676482308264224755793876351004417633398425380573423763339235661675812819300582308203592930294868286510953661452911440767799703112645411563526323123284108120761307781559788463392449974762515852082952257939479391829275539290617949756691128140843530922459592891946561863739049035323191171139740049367383161362379455467457306196818166295877836575535754415597830139391214430373926022899880498875942825924127339005825160408830390175294644790584266434236872152946949542304776078768600061805784546127407158048363919924770328299949420972236145912868721073742886897283862833537954415910315524076110309504434189164537458176986515608375693875055098947457491956144172415983230535591998540748040873365509870068462762504380821607484502867678616863747743401948006114056282486412101738834336842465307121315205546058024969441999305938134905864009752084681072035584179068701434490079971309677694506448073008127650333603566046991735065208338309689134916359327698265100037968044748252542535799407798885596564344968286950855988073129148236468508940026369981069989298394764083424233261577200363324344853887727032601603278309938341610280249240364725323521624553302600720856266216116286529399240079466492123314248823075402086546827253230990234057281539602750293810759217482744861692551269081430669845547086344836482598272605227086707178793312778983516496288119576493441463362393296589462269763058255308163659082368334390244280353623440956964592962343803240947176139740832369302735539096831710260950520471144733698256337024978669045675158856363503156202492355986407936895957356470331247442662484525931700501910943424152326319412325420626464929809732034980966678791953376200028880361271718079865401682817937485800710802085630065356830935473619763374504953953927514997624952703988404445897521431953778278957937692852797911224908899156549777745879323672589801034168026034572392658616430045724723908244368217943931526436631951577109292124929571156792382493709238281283255145523374044041307620711445239395771766251916571811026078135361816508633650187913980242250399863400287332609660704259436832517122993585712686956145194084020019758559687664950647302935232658453071423246378218413978567578444316719734266601978255564527358092403908630975456818731004058786395494718022893186239360080369278409036000012875566414603267932874294213647998829386062175364101167585773461704522545658147601673042971139897082710539002077100876040836019016700975147008763080639213060877620403511956892381685060617282963751431988000207323271136990055374493999724920790607156262722143318021315556737238842323296907262709499622615672296844779889203056184875508321431191527249322486838516044859182072912315563131542875049367720644483696055092915536149085903642889758223103143359450588176412459474849309021707857406237187537024364924546422366915305707651029061932659195030570111134962806006087112393621891387471195022058484588281550880290863979879472994912308608075339281400605387179655867870363145392047286528227199496238450118834510897875909999205549521191367836095219462999000825626534381565906105890422627836710162570956149435606136268397242145355660737574580506525701029291885150622233946924862299088735406350971675821937737087997901149827342135436357655037669981325574432080871071063746808996914701751888925730117826227093263504843935680886848269567583967206916028395257710632081853990306335502604530719375228226310508118753521135130698647212546587662823699024612189650403872492626242813515048106188024906938344045464797127093848758256276541915861596366165040401477285484285719409709919027936436893346601461793074154162847455000179393550759364790354310178488033791622235976116867593809452500160013605578462880807721530979058615885148411931780252613040100826511393949432550298041281715347779911354877508182705332737294203866448015381595493939097806027564139011156628056421059266439763228869900114271145613828472053168620664520676505969168438265750731818014407339983450865662972763828505485273672399444499342043385464032866473274427369039149072142722753025558858714821580886791560520569380272055481275203580111058799449107455243531178520804505819499948257411976120038588351732795757988396902747248717509841276753970001914433645284592358363436959831573936464243293388182424134658832847537225238637266223010217122669532223249027996913414632878207889611409210571928722558854892870063522778231800725530475608914771616460027583455275593859911177635344751029086043200433630292876639826962231084520923378488423603289708717895133088328557058859642266003389093270518903705983117072772594747151911701343034970695271315269161871106570636752994559413153430069196065288858331621516077698795317727715053164241133316437425799733787971846181093912265871606132318432296350076707608583068554760784903424720281382694414799459860866557759385477778631945409289343709452906607757983838205593821011546735736443050567428639970581557887816457999532713901767548688263166914239943783397022146190269008559620087433737284784276503242678444455545740381825555253214016954185298772524329781046620571661346205416351730993260034916091207786386162725911191090097854453111949954317909311378222084488952264050991459568133486580966385561517143227237355560190275690336877606591980239619702505788067027539366458354219318505558570491064257129360839506417675105622687817429474234729502461911171528974872483687222590624215924834333424779550933183384552245963867641463775607555746214926245877536429306590500164502045337121782835627649790640719286360984068399407651728298604044221851506450164656527754840704755180769256379587247223913360750330214781248787559081020790195228200841801809119461842563898280116814483329219055890386110739157832820483780424334066809156276597138072173219885513309757260863801066003630637090955513366418146853075310034754171386946341043932272163124612359157788645794564593848901697424446140588289577565526850716531018871857445165102651785460129103627004087178311329376196387910819771801626228225003985963604373421288340019277542388461962700099021297426641389976873781616009485913916400529197299841415236624634585150199520486799020535244381282935377860352861908748553866586208687159190252115377622003642819613567553660207864774132289532458101853803810655370047154599657760722676889970263600170871272062246247770572129449505572514989663476836609209184336295436120147306286421336585166062134691293031326233137130821157066347688797940013344324314630276681655713368324525617737562854345220720956962890459915881110906622174103057897060090605053534978422911942954588318209037322330465804335818459332615499589743399008040277863336210037773437156399333985832341611894436922018526138696926376920991250915589141951924685841712057348324859483223669723857896612701422609054595804281751172850168740140379488838730582213433109611813350266267197502780590621562878212613626110340329160004712485324158585736757058333521712647038204899824006649478311871526521284370107281896154659982602475160442595377305266952923215950083265010300318593617638963570594757282772427319471764629889744306678072632537975090001939261872801852713412511275180879662993658759908650454174390754880555839975524312722979023155503865925273781964746621251165858242388096258108067742567113528194911127313999260773116645150513014166157638874912815458654758456191899367019549517054306629780414050296869825893675916881776643813799183340337225552380699683953199061435267256647627326306950931838577775633144280286570791426468576708716244864198802002063984184905070877203412304116479487918661756669601774447246882259313817875326105979467487640351096083127184421934968326994564611433930646314412606210846002417677152883006369553207989786887972963145648723338282067544248164694433204744697786270618471249429270714271549138931513646516287818676415634408075613108704845987902085188013053770984423249312554933851370652992277851801555180630881482391220712361448856301074832123478582812014628878812572253262337530225474961866894572536473988967248033260525971245074069565503661861821240558583387446814422809832950089084328157886492707386339627644650394067688050442820493890447576873973256063251929005744891254262213485991251031367678118221859189527411136926564242941889960911130301349575872145617532541758500469557072105538491363183230591267356448368533823247107708285545967874318123379750903205530016940752549353944172883179416420665222155214426462123569668001023336166591896176848442113178173257247384071696051111280011184449421691428869762113423731825965098526540758554836185096525414508342233050563492628980115690133321848027324570481904003667139317717741375861192197443247430348810975472285650204293554246602927092059636005625279506484778714819045517362386561313041681566983508219633020486157245644780321849364835890380608293706914178110280923694398567882312073859641842690724963432437205221124452637451372466771349190418468825138097765527503849998275148826815295231411066741624327481657123732301558145664686215310647341151206602063673458082628423240024281444640847799211127482891341893425996418183355749309071634631146361371696404601833499500960901727059171075308832170243884332700323118375322581958129842299087286223231004877228165734749623087829543666916110058523135894586971943609637089436712661826425375906100812847428617898560226743402017897486605909272866623410623230996236506891452292183898835285453309861690816698675642826751818158464556607865643930746875057340583084209908074800398170930066847158067294926661240975577766352009929490805289213128451044244448002135792125668451809891461454933925445548691823654762313506898755728402696032174756101039796348096219580907868098983975049144822125556015411572541645546754965754807604576911691646038135806470587882065483649585546904475688031724287075726921307414973491781295392642355131085344276460542649965066995618960091190680465998208023940511585291728750508993549042409301006111537116549246487211001492421451855580703580877522289422095030264657681610134595976174732381634458563331151241253344654366982068226062815104683332042252523006976788458710782255221956621081664463525151242335310066632353653630479867259226055758039004412385101314414408215636710342586499276598609404785731705339590361242394801092359332541000023870028824248252783336545358991181825076729419665383303538924431503249912798677139040988845492224497429409642534608231888815071950718926300545326763615195022138609860359839456443429941694338425846912247805562117964178981072489947638170136562339197774050087528734084440563994362779177301837669300132147118712822268832821829872740368143924577678180261064520314920691834319728552626809221135977121983399330079460556256160205965549603787329962342228857299772790176208458342431077540661428138854711778304534140440289600658889185318006045700671523094696830526225418540074244948464624814288412845561747122089887053291226039004037010934124110553154101679997181533306469169009440160467741788192241055020157450844319613176840669161384448111460662953009432233352281533334969586343262270776747358777171812552041687069128028847770285208776176002645897284647781221868933509671366259508935903873906403215122235901991087792976384009835054434450328624051019149012122192183446807913529824487271055468501778504156665680864221231606100032767548228429789043641405356189040359100902359793307885741425370821541451379033279641821165499763055693990094910871766606320968099779595399905958613088586881887327212650878706321383240773248994318350136524601894303621269921760918112545797212622584109161636934287763752450388783996957509396000408969422164502651099139058318001312687160736109966693418808386642039926968505858422165701419188057279925631559827563294093593206433774104946639559887116194966105105762096690636192906929613191324176084314558172784105363723010600033892162499344098454319629290716380970864826751558270409719428294298517986157972007114706207627691381262831457344654814459139741042750002275182460139130365220953983222441170866899769255319047761287410234883006792761022403924176977151147190559143456260873978837524376957331148153108564896470561601890791109123933280372675725998038259526028954829377500847059523710871422462009036597528233472175271002765538184569274713777707933957052209495700157900919529787831352060531254319224987970748408188846362471370544691464575706906224583462906301177895505544822222624601626741202139914712009356333834931051537643789310204940587201663274876129530497293184745644696271840523404725133843004850009063590657164048412731390494193578854484543019417977223109260254198007081905872969374115228012524158292952589513554374729687619278337610745753246276411522031542565809127430435081684401195877090752769727210379643614170221171864079584982264958356032828415454096532821138949284941933040866482272419318948279675652412155470821779232548782285768344857982885233144287741267265099769103359337988501421740505791499450510649787699157794656125597315751397842105207081923979732391109478833691531729773406818358378896447826247439421552587027078482353075155173963744749708689706281580088253313946149988879281899693195874003357085093135830274761945225518099476754791912942373686451813507079383033478154885711365939709947944808859686126415520977448756687986681158396328688674972838453795219713698210359226447318177694259539740332946614767853807140059958135582832506164803422192431123868270093674287405665088744563813269175092142370366556594253424212830546841133499603114521615342007561287488978154551391633988524195122169354654776001390051787201900573019472489813979728030163501278452811778301761855427044026762102711848615330906902046824201801131934183412804627483551635370644417831533610883513116005253383983582568592146574253339163099092824677707756453671998242938144354592686549340250036602200129436482464232914921967093039432319448052099701161023683761948381140458696584505956627980613051772022256379821113325922327771709819036520237620428429610298811818738651903916988561506529590741662694076639246688446645791625345245772679164475466124169617588068852417705255639080025260766217534463281570850126760981604802251735456554250472233732212237880647152179065722631718188260370929029854276421179558810485945359712523001337531140662774948287848644381302150119819637550344019850568783541248117708600118974516702721274115773355177939769985292088973526043777398724338386220025039075839157154052748678740014385675752006220658351014722821591416717227053305719961885958624640049748909512878145942505523921858398402210506495543718827383625294236838753690310705046252315717851122138767890891517303389555523547422895511629645801601656667644988703252001388840851449863517843468733394205025137364537239979638474050236289329036864164447320109260592975444286622979164796034730402520518548712548477858645441760528522042519035274661236560331149624606598548847532763563797324410667153330454704560767168472420212815614992560666923194759861183255282627043015250163153728708987589731678628807493313410653362140062024448981461232828960389685411480328450365941858348554796286775278169954642399673319648913741074143534671194005835290789282120622487907612612439782595477949442002921057914609645798415500833189380078614232053124926140092003371479989899522747713507196032703088300749568038527148586394833664410095524850224830748496552109350279455017918117898235132389125662215644975200219111869598866991303660159961387537119736356928368318249641050292268445985476344229211497481420900652306588827702142214430761745165079105907977728507988340357757663388932749926356257539530264719063106256546698064805393401479838677429523608417139483792645397511949668728734693856870630211610053549443377260068310976596081910069046943968413730452910097303662775945830206138811448387803682401656633037163104491968939246909981481188944714888203877178453124772101933803504270804023633732875602582364217589699501199847645072319623252801389520628032822259205143523540426532635799912222374393035066261806797003993404904543051368875991209944860694869252585246261118077622012929737804272262376887163338421365057566715429662566415364457832571880174065450137236312283834445421733143572668545710377722411905627283714034052404734464455775390153477307110348134120038990447443903359335063975187293872314481065661212163024975455380409385365775927330918605991160179476389823864660062719665579469958196250625620907525319858969780853327161256457250376390118821657103234193727077546268900577364849953439746223300144901086726634407971188918588267423259317361865988441273513498177916794332734009260997553122000008461420169504134636191055354537874822047588699276990344330462268160585244774986672364607111757024409907242882202952363455971580181673613923292783173343028281805242130939584646612061656445220779366876138677862088928475799169036707097488178199720297861741680528197081385469558860855306891168537607559109398287278545944362626537289292985393481044109350240352394216556045126328467332317723483428457196162486538901367874393217008496668779343535330474225451312099952762570134762746943014410504644972647434890343611493179601085408818566775478065130467338148735796930273875693372923483813835331718863651472956696518428556892443948043551085334127152558653142079967381120206638809349457004820854149353192893005234108465337610254394175590515237001073803732398969071317201271528194992582813961035415824550714069569461715500935485348345452199162734838567028139538644424363176331124973964119797706692906820817831793399011501730558253005362887295774489129467131666667823557951920673559410177589962956277069589846172375302462244291692335642538341313789687165499792315461537502019947279595352306978306205069748437508449117276015199692996925316125279535354472916593011401176719877647304335303510611994040665527140026510381861194529917270617947657586835811654424293755266615326463253952835776363339220327629542231785112781387905260477525168065764194819367347654503925985012598606547151944441960244448419937212299944983150676939802613215282379090541536350793315030428599815015115036592464342011625472196263858318858128555063321517127128351822384940924944016970140106973977584681780281607390069689501620549614341378310321516336564644669991473360766658633162142295522544672547276846555840211826781293489674023723281663373461841911538243411367193430103440928065090924177904051418097764770528795525553293214139967264758004334745863061738487499517070492396449548124444314782655298499170100998217738627634624471971070864781258390599920689167220760137289975124825703569343342262002358575648823251844826393022913024653660919902980280858994648271106749711949908447630827643971466650375976078715924877866547525555751480741226548697458924131460025509227901082338649154319899963047942937119838244422286578687293307780892968661682569406360793087636290049984610847714216423497986131844064284930836501805598497628260094318954215537910765340044636557342971887611494918155705857903140680115671599174924296340702222582731038382216062699251173978060757972004518504070559547922914950131104572768227849916576220074048833586479680390592112912491465112251439608450964097907652825503586291502023720308773228337343531548907738775010489668205167833545301419540249146039764102982914746512570709816391812722424971261951552742528975628131910550355246271381301739205539939860276371585059818201024047350085764368238127029242553502930433850396993443301318499184584124453212401767771324337264323738469951073509886776103190037503004919297392192380016392641096236053615602785369286458154379931138552264716545070514304039805833239884771192109297950108631026586248711147793792546352840590906889631579320027858803232698648580871478300807750492796952768254696729715373341783590922291837797883539325721316732117200661189952628340907742845326567606618555725076751386269482439011188215732911401738219147193987225588520971056652715799159313758210151164521897360235321382301472975949985562338346208973319930204069972791317133551371265378650465009803207701738329850706357995127711846674191664509762224353031811330681997362038614039677806880507491228171879769590079226468321035855136554899163977021821116233826913255980468717522321455885757609875131295022327902093685596243806482407383903564811512592339878966349641626712839502622439209006568416468792411231916573979016587340561429598244496734725912312338755188382274606193407211448403033963151201016456219519208312360854819699387677509683663660194135307222932081304284383098886507769949567857438024939411733785380655676203206125707478978478407260540998357892743412843704568078018714999118950673532179780500708429946192460967726403620797699390781318726504907934228501629059645245910767753704907744750869482054220485624490766971629124838190972174245518777481130711243870004816742494552903698616048168665676937800860924900800907317708122979065404936298248140177118012166149696981671715361248458843203666324932337132487543063054002475422840403086660287846350390650390408057701213494132471157082891771121546628758850325866884300266620180264513375518739741001080557803949009564493428845681116272383596713064675315790618814458584291515432629223704189699537033306994272080333365350546413047092734332055619142146416478156873690863165537042527792490036584867484053021157308777665407572048705522989454150165052218970940901566862157521487772553754443496027484235490679251074075046967918083429565025757902906366030783985807925576823256261821069027824549430587889916429827219867154448296702744102276966519157690115560260642605230198915964349564252109037250557219997439423789146579305327870273669609929161898180714957613883603632627060241509326829115772442975700288798455769606101616671075967977050403618583096460124615161295331345814072800027523738337534970914349890637377099534712191723464596915439751837512280374996183587380404709768568345732118746783395379270692742458196431226225363508812758324642776236168350870704493199404868957933490571045048622679656706900060773381233809951642511190720942373682798055005993666878759168915894557114354180790176276182544900019918919958567048924345904725503304195684857719048202003830332751163866517347104601296827751902449740008040072972782284149852062390221122288539737013504377408598672299006600761839206865869262027184306122169886218841739206975282800119954890078154805937811135684178316106933975511438299918222075741733341736589148446798572291116830891471022412311504064305478740909009647494278805233865988581613681075695375978338902816771339013970689664461620357787180196187092778406008608582664896028788487597637670245113417950217102500765490619768803281809674452418487105575053294919185344525301134415032344795740516413577161435400492481357577996041748498883414759513187197982419434151889868805864532015879684871270279276120019610167132623015248532552124768027353340329417916654287777346732357544265499695215410912171027782183014955519015518587805360464519819724482149267249172623727133597563766915808597703907324734314818495783806497260168521095400348836517979622209036413165109993793281173620635957322874639069975110679695710051223660643270314971350044106170806605428963865131157961590323474084749588240726603319764571512169217832578932910593546742239538298628106360082510997142606452955443107550703331491250175041763322223533669202405488606950514675397146188621525039169559505314662195242162638670775206631535041786951651277000185077496776301405824936003882533029100581392620055524192893590710613315361850174431772035933032929795364144965489776035646777328021784419973846126638908353229117521387066196154155486698380383665023524447269420679118643551620133052890627457802431510383516396468310116295613419666163652156490390420188094983488441104694800499012593213961343026293724864792095132217682869447133420010621747538659441318992572397928581130683760560913165682261337219240591837761041742478650625049243638785383590928856803345612988356726595854184811104129053938152662286453327454762536432263576296001498668934239158846037965772373775837674004548407986744225369257842450221267393219441548820754698923782764211225961352834936229104355721888046603636996738020242937542592678383957205315028656431437665401051907342410526255564957791359889769513250260807485670863672430753326810375095278050422578502838080602688990875817585281038669735911968679268869971761502897513755993672799514336519210156970730410079049634369810699741426347548192431262074271884831813991357873985571469589890726387790615507740671089479186583496909056912202442524676854724798294822623185481135191596923597247350264298976586006245127269542097524893793351063541016578694109305560464853502349088537754120548450391267688205524909719815779908745037728849130228904924938817009179561328543064294285574966312894639160594762627781803335525320275327999899139173354847296451739204362707824004094710120557124475138940575278863888764078587968983535708507454196627713289973797495009151173402924087039812951146597653051896205377854947777192943061919975402936487934364728459006904618389650587253870364727174462444906493533721738112405334261902837628494256787410792483431745737731570556482419227873979358991687048618246380028673755009505350976811753286590936194529289518983940382054947342915922612315063745325967255282081289302394852234948834180081132287337561321680284093276107022373140166789268764437067191006166835378196409503500979905805455277107920779288861096808685634249322548504315528886249424800769289271297820323634186818287163639198904357390323442930615901640586505007604922058286180411044317190455791478565665958036823747295057024567587356176682951779815972532406335583060326870396805005879980672808563791181834094864671346091306285130183399895950347054846253854353253619092948460140260026861066610231903092136293573459172545784795859654511800105820178122619979782431960270762073387394926971702873542690746824555359831520429888895197093328382034189636699845915628879963229927426288685708316754914883106357091213488815816126545352921507581227595667031653436611074793062682122880152292757419856517313662727579166348902123298756963893653266021520433769863250182563296566633568637095342100578409399884308725595746282522814511681256457233881259911518628721512351414861000319664791847135527087199968321096567359010461723391464006645773992274228842685559892944890793456480505313710343491243919772491314080502506578496773312950459992774163345654188394190245067680967654679274300005042944272258395163592454237150733028969719111982576422992439410005668433748298551565428171854480955770603729447844834654907291589610736667469727031995088788037244343500566048801396058357150536115761919930617421374063572658708345644140067503302404378821215760509396333688182572412247964704071023457782196387221527268769958181516025929843437537989408284451665880344378820454593129708096465056915851797192445475010259953669861206527974719896731124742839666013604765829912987401109252633444856600410555926312828180057175308139374076576823148857867035677715445019568008062592802155665105870180620290557346072862507381346598899551067058276060545616840985879058060283324198737114829133164838957564471299271955100322450075950780886428179877480653757712086118665551907570001697920071895549490043045623136248966775330890523225743155765744872791684511897285016971702246034207112387360706948188862016494760546588894010114223053262262423815473014589565496063489000723553929896666497529848788043621605811418715806228495157710398344611792635391253217178861748802096866160871658898025051775760545020998026854023968744351847571543841165179737345224604787169077303054594018441445477386034628881263882318794956190383154341237055640722895814459221711031792557099563143948472151346789670908690262546968469807605043974025248569987144755729979286809101274077410513383658606567455238870419920886200584184115891126987190864750896933036134410710104181322413310042398587940851213390830001338546580531967447088167035050635700558929755390485473806071892880225900137074619635418838160647327674065779004149931012618735410484749477040461191768821255690325392887000927211556201121710644813967472826245521592667210633552326660854131447463803948241181748281860687032976675107759421793574005583365255739885104831293123593222838968842833251965192150866083678245143634557682451601601827879404434934918187620421453935839816769654865919724873592068475607308873925728463479081670748433911984961798678077504923610653218312801298472069705661480952073258622523225149790201131846462652449643179657939713949815355195408412755482862693749387225244855357504947610767724042348602678073171045233887795461213296903516434184856422461335144874868859961274223288499265120971062295325790591638439343192278649865696102927803289405162767885399693825748875776322608799615926603205173892748741307198360691817123918030685381082626163294695604865263787005198197832549313331368778959454502608936953784100760062734882623313226978937458112136685509105554792838163504035115341374417095138355161074129241857786251683044025699800673135197063989066193880268996093244028536135620281990686408531901132144625745700599137134784821194854451162178729643351204810829407254976681272688104509648267672878719186506506456707007518986170657954766494065278055078195538375854855229487905244966877656365934645772097612195571553889312269098509732658303544850732515159932582969290695560415230058771435165038911173141723240054119168961348646453478647313167714712911712895140881981248987800166663601378292352998710882360081860641046537120898118830372838838989980348419776946086515694833902069551854586627594174447224220410921628366079373972017527216609066021505253929651634344729759994023650309884850790360002480777454047981631975541421937043950673226963409094569679789504759588898100711241086810023548777984781525733379469648495489935417969089949461104141616745952349348353762666429461084359561552017091947447380736250941161025603349817562270905207946933592287407544111160490156056574568557007460716300211448515565636463962162581617281598380344809297461176236509170643034698762139491752185973125937323184333842411137269338858764767726176452331392035958681780818903231631234726691979594121937775921819053820134051194441480075815634186752170258826885235922694268939560436514443710265442077837099238169571819102379416212923973267833264496795192697908322175780769385772635359597547570211071047771193125246685958548962726596468186916714160920101955657264735544576587290370627247161734693059449551900968142944302906000661692228131644901462273606545526164778280988587139871782129331878841985735835438026162818081229612522840588072410379376157875520182074277449786921486529464270999818945285080643914824888931980546425958345363035663687080750418941216835804299356759417601877296314317333217629629801367904623444640063203123149946744422346474811581570911658347083419293441840057970470824980233340560987744253240426831068274966181628763654503851837422218328094897803038117721759504581142942090429789746528724480638684263986632836215079590899156127153938189430633444358426320490073970590459846037932721238129687852528300822605333494776940322402202862843225866009925050278798890138472761973810307166767380446609060767278195780273639302948397688401249448529327009219985186121971299216653528665092399068364993264900558687209538190236781690755893079295967264570637659097161038276633278223779865394175403370156882448029713782439881442593939095081872746141518147076793075181406664719565210198709904827874734557638628950073560051613539039109135427516147149442637601075516376169482785805514445447206470618958686137983000693672323204716058075986580040167030886566642904082201381148483498127359320138854408360975169639853004188061542620602405633846508961743389244619834134701282109569609009757393546854843844185023483737332919669905568094009395421630554906590642208126943593984824551383590692533094864930852914983171387494303014366528350097230250145671211840796700500694315132035715715460686731566903277157092154820879565224009444749029500210936153243922643586814087081896301117752713713195056471051674009373296835038103145567841430450865547205685906283611432152076048491797956454760895852352822315234125449535858235803946063604933118730939787573774068739432081745789032575647386838576893895944489134428837664445476900038032856597426569427094551846136357997783631481056117623524869357858278866392626956006435630743211368337785998117727212146536843088702983703259993873732534723127878277282806313791697029809115779399455371477737864059777451151429644689653790631963849028487546139239228493024439252385404011368062219041305248489666186780333187061009682249272138839784588664241970388476163833519163191649413872255160164837897153349194393599743475929635888737177848104480501285241601844003671016236780310273405577646372166167741285619931714207081225407290019969380991915478466113806066873490943624796970038222528827137414766236253103144246660940030803934991344965369508952703486778030103711942072755834708078432331257667690654558715216063768938572451063294335757648992825336346433888627872767074833661034295256342251056908665914413048159506502657206121080337922991364002348802009361734617114987883326159069301911395792146269322773599198615280876381234079768198077714387549730092883674971797698920914129233064372965144977925310664560133194318028568312824275563200498420623967241399889711626554051234483602903814575178991071835004277605115230042721968054413539922791052319932764637048167226222037763293205868004927390590433576365494291192244781199445829331190986921021579975846974374821164098584180502245795061975512875598474493688007237372371134453620341395479049360693951267711756377812268130117317075700599924578473202050022649706237813842378560501270851059664656877048744361125867163083030624391452958564613731219762453689429498370121932509535107821281403519551613135626162393716113064897397610696666560161605726391722317929970224759047274333349728070244736012676408877367576205958059107003425588421668512257219865354142300320995684532173543197880264970256279971082620669473948484633333062083749403602357994314321077012843804621822628370406304146498239413479408559085575138767341751579321594809106532855591876862522483870734011079000818525463434361562571509385457538046790195627230706634214615798832386874604780137044635641031426949568638734153159179973172357935840162662969205704248977670125879335525748116979212087788135791603163386448077401169296582626482240157520166978740254637996709255656578229479873240294533252833168880664288722587530766009850211888820227717308009915831524514366534824234378700666987660569346062835311010089392034765749557898097786675886609274534043112930859556401392964275650873850066867502105326473637574706567242050320992839215436331016052604705989649534314354604111316637529268063353121172710853390905783871325425095041099900266629399428934234498572833090879356489343803351891727644864587156225131514824187544303849620935611852353814831303807702082779949582509751200890398222528791827516563047632576646191740306263081630785031078133003379753562152030717180313735371133505110221845986384826692890247875266061970388516941174144299491994833478367470589659906522335640073288294790536838487026672136179717088416098691219931204135681606247421052489813164259103217502387434348199350951558745332622446989706275702366113265888846569253201987464399184860550742535753913781527536327517387157843434119887796821036700797971663665392361540380866956850503147412504727367596408700464000628125761991849570156694884314125378298132703987680377904475960208767109223564476013770736215199351844984086307104939847155531331636817789555562947282192028019421640252721591728313207449984828627658023332097126562339380178452337881519832166146568939308798871804054336374877927322863218993209785387979215595781093661549503077179826708153124367903251192684831215977472307343433873824922298144718167513716701134829615468557541108914255195578645849397989988176485954947337191903388623559795909745060029215872626667886627367974890975697124624265401064861210336358295449278992304762323558642486452553543460308100528336167805217554448542518215040170302425737848879135941948258436506027291341818774215910811095194762398274599828237668682919320024285261520075480966328836205052168954676873461877359186152073252480044893858763469996632930535122302295992981573630832662560018320821459184132963727203384823709269276218659964731255330451090962178175371204120070101136803016402772291962359181975202631885769518786639199641125504362103830558209568582636103190505399830320003772247199403868493078091036380711474162346760893616174802465079397533904822315956229069478853255511298617013823485743729252102631654062715406925502733000038349555817524340074586272596975910617963486368620444314405482305828305643611081793177331378704359238948959362134924378241112895943659336431051136411026664350257858175598540417965185720341256938414134028320457241423196884549967248102060227033313808552533734412718745768467471695426713847697243699467954123605521260546695817838946557994666572172071539850460496418126702474976478349816283646195513671348211998835894820049596131093159855610237020424482670797711932562090442109178220997105915760747255745585993394596142429484686962776189043067810690036872161177436880591671527116369106271886504140714916471704748639483049771778912566527783607999927763842751712836622914577225785145302362560086728261895375464981316959930481295822087818796116888262151515436181118930105535945570371879353788414466050146462033413225924402493826843656294202731693330862593783830617612078148515443063658000565884913075776110263382109563774133577928843447106751579589502341260907602614549162369681986318039718027618425085125913840854692050200036237486752224013888381486456901522740537761198766581747309313837025783178468122059959446301703491497877360045023901140933583854009591273919591953807397670774279546370280235405455214935173691277953974367809741147377963570192926708003547035306317738011220353144521465633566460022496282031808129815877534758677089706927239884967055408524297360682540525225575361582356700102139030233338101751250461816005233323751544956933375175573095884030066085757308210478869720527134291028612786955725858983341299995470153872944863904515059218763518606575498720695658870597529887542378896367369004166564300475123440103506081260654120334660656225111738039322855817998984822566526249844638072406506407760895697578964877021289951526242992116771082004964321071502323814413575567886598279888326164524335902913287344630675552940739199681140676375127905437100166370642612634851861859535787576112808655319027246406650940902621839247262174302481302153289649026175136179484669559982635991769904126218790661574562973755592436743823447723627651512739871829442522006306404164204871602583656727690745994951269087139443747691904965109415127692015054331946296657308179546444532835476749088774414845583279768761384999976806546286798263592330893186955296752933753710139088217199209856375047621287472033307849192094756807741703325400226977893458748621254542879133137879783531847519704323982441474192841856804504388188405789782988777417188686292419069691274062644481978531605239225078483545953787108959398085264347561654633992540055948557056374775319265068927206334355951403167309048864165469488228383898138456757511778676329883856416451578724780770532123935376011684511211028580806166420178537582480044681308488876687788148831713732506015342161511607404680908231991407305105062438691703121285272076916518749052947353321062095909051349523134438844327275732705933843146462399147467028304782960203673716879903426583870030468437539193018720382306221157395428666045666177980493641848591581803109634878434338213799122626928327906159784673937945434156292736521004049969225321847826345224287900224776420497314583731998171730740115804410861154829848351198122383446860485131554406276318698760751188609761992524446859080119996605863218175879681005288100669829122830176719497330963698261551538022894483050949942721768671965606546031768176807514054542684753024351336248107043499046906819130626767449918949737693061382235709179108183003005693719550462236027985513281297257200961685760294640542671276291058541155181717100469222215087189225420184848494041150442763379545391064119153828601226057545951848061711533451269820570455252629625639699670363427973781510195779472848044837588675371883060487841660247442633601635406257559609458585294455841411674728658974671599354586185475242227074330033931661172828872528694677192945648425034461079562028000283841871072933006698013936867270644942883502573111171008157724657023401140118239349052859787834004704437184953712400308977204613566164521889375965630712648653995808014908211813845628972175960264313273943142957551222913311660782993605888300624605906812747958476649737595972590786677367313711625465498430771130872432745839678813199607633661240772417283731935074030308962000059192069887579229086982030954774153310445865376210018127269030876366079628047986145375234593087011456431782359268550384580559396887303833613363010913261437732707808780594292943441761673740073428941935739547112769153044544155467426266642695943843689061904031841447597621624016136260666977726974659134390026206705567606234232356686343177505561729412578570974202543285956051452239161151428801683400669001181018422792879087549114672921295435061941301369498439030926001057127001800735106762827491225700050687122408275498341388172350092548077710047943115209691160130110426712176906271259707154609484202176691342271662302193367170328836767130397922703786101432813396813737788874188849139883674116593482929579421851306162134847877543952413298907480240147057798542941868944012322119194290218017025885591626926092801270525944922774031529330157147041943967193993949460524465320599908536384069493376776139760101997458955437028988217802186044320359649372619935213398589735354191749188260178021695167804177930440443235543870992235039351537630523566844679501137045903438539643797679574035054818203652719773697322205300537488760144768919661865916321476630519323564144739859020427794067587747285173138775183575736393132279290617693052295244448203108860966731823638008811135452370167289022662088641019337308530833967354563948343859854224209951632083789009269903423206368647010797945445521415116472524692283393961573723645439579683837369774774969390075998015651191120299024921624511901548186554627425773778945044757585546968696979205955536664247469073732439992363476522745410293379062741491760517220554618265224685231950628899581044484057722209132898713071892299394434831109337754496167611916999330510641824974331789207128739870898141296328439289928554315989920506852702118377998853099544272369844119548718182958319433908206070197435836628955658711181601270270151417913112210233134382989448147176259306509142314523143064332935734140347354703496073451406600662702173121213482021993365184076899192970107222936123796728027402768973245720070920926085549541033181417646352956523806813433915386699189389825358936075864739089941827127560619755648703252474780159993883249935865772047535072683621731453282087967413619313803016182300268150198617950343413351454980177119959448724612632051549489323412758910208116758458208376842467073112632778428850322781723100120635039624062716738188137871284876201395638554032187176298392879392399055774264530421834043611487187082994230925917256276011246079178518028395751225882896032503902589241103631679053391448004646699850204337915332882090807489566163076124034858417687811716912666987329262168961088836267385458565838926673596242570719226034884826030451144574567149075579020958398636992515431110886065659560896764839853475811667809471553746263062920846505255243713056228224897384407945910894037530081602624039955246559570828050478843781031787001444284514705066166130129088914550665672512619636462941202231813867519700148301318359106853646553549637523596869451927898089226157969973016992504753038789022827777766637359061009982569380273163252632680814875652769168834877982984464598787801476450133549297699049913571643393078852701240626301655675647241887412584963118354638178620639914484951918875758072084501623681394291116810177994262588731836564887807695246959993386407791044814590729192358925946389194148194485966774044139119697403350596503352422595723969786708697144134258584693689896716598660084230573918318910446922986484693346835939199559100440207817160445015206940536034628195346017896962281252228621974480759246063900264863503691932644811126556190496904940718771084913148177256085411731810409597774616394958456711146004671474219582468273281881391881472513106955432928401717714650524150997358083693799146077072620495398243413627981381863951553497609311423027715099786629541645604508372179135564809670653627034043024564215546721827056923768494916057807561888420403978060823800065175296100371361030701478155890823794668017773533668166671428679700643772884806740374352087029982847370112059880825056339719865609770572104128714848367915236124296102368914566065444778761971765698290569550799587718681789896567962877446591786178236826641919367337395415098956295340771666554626503370702805388386743159237786604565470642489112251050092990974158736506023973200480217213889287961833374244684337764755218074489362292381970955177072600215098437601977392296668449098484684890543428255893253713825115723840759153861070365167447066400001314588745443351699448231125893457745899724578942149320987435579757932402875725553311472213922291049533214200571050517490823548730181881889067209294242767861137072344762787487208801690502237309637563255031042977670626155009322106701712495938689111547240354023223949073401948673883989809600750269619193393937433751259118795420549717657623710405715660526800921157178026084376735591161199733232090892773939059476819501201243952932141496385427180011973285781877358279508780217893431412447818473148210236527773776938878339146817786588050852156426985067137188904900250370533712819079193449399754089350936788598769507199340022494276353484936994364247379340388586632987611498988386509214204016020445595764737689115365491361051858380135422998721193967853658859322989795974739914668738348888815875679751396143598101880538628601175962572528219864097655374989227403128429034337228150349953927041003880917891199695689856287377556589367060068875138163474530897214326254551227480787134583668051216887908856248789051925502208284452074080356949877339960716528533207213047649306522002292262102323903278120622336720575016254419019341790779528812955211579675855969577461171075058114137575351559601491058575021694818219467278767647502581266414049935436411026378492134781889701645441640660508146506947183080327003468052545705315067707123304959300297282783534045499610598838558739987641734716490569536579959640413561374764062888322718770530357915066318630858913922164819925800854237079686880657412116627778444803598898013641224539361340689835149625214460635455460789509873897216906073148904679605880150189278831461731875763023032965042390332619526993466963760810055031799915982585208686520682283337459996438267351711631878101842604040389722506741526096648615464732605756701428773016328872964105135289273526593970789444273215974066227862026532160482432918040852751044193286260941868410457713217646835146444000713080038222753334561560271292356704713738987260828819069356243434785341053998802307443401109726768138053932824582244180803601087127599338062015220343410797145261330711961318875338303997856293947473301952265049712295675634395256937447512121083742504561974485462913360161709364195086383581707087354233717295767675448821641839348695706816623353649667254372700645240949355808343579488543630774705870360046619005183247924451845247933323222676330876526882663860599006342886659021046017295082530122578091931923584145076487549397736285042293148055278505250676165512252897290338370768240427849948991194421647380474505961544065877741451854939808343282096545003054135097612088883354846825299439045137410202151606678892895006832195937133808063526987169491639568120532959199096095286124444075288021500162752626819883317734342262279967402490050914590642968171078672660107620091243053162296168474486047338646324044525484305605504075660811401100920035030297919202183933757435389410249212539378074555319403912070440652928372376941439896093948758938106654852704760677008468088348672874835021033088883863637256850973432136993178561140943825381510603109896562329849259853288729888558259831875767888698397578778856855405385995773732829126031493338848545207097454309518114903916587357236013800949899102459029747453561704468063537552470705571237592181443419582712287076874658904058092927241099514497152518324465446301371814281581709556332350395610270183735278714882513179224454685743353606655695707077370563938045027361790299536023269093291141737909150041629721136441858533289944571550707034550410278754591080141653281380600440908357348990340025135330354646200269236647831079787290519969278991702584873399203330331226724691351458517346612996431098285140019560466173444066182166781247839713099983329758559943191170299877599552139272968279914829889709720311473382807766786740318278377620214593125351887473345659896957244922721687133334135803987637041817460337688217162613826539085196893601238044619161325331996445364475976716871315950747308942585497586504288763575813159406920979333568304592034905899883627281989917199525607954456541575374705798221011741881203315774972370962943014099557087566109287435391090566210363057782128569020570050561443003929676470763252783363004462676504681639412592756245652674297099418297929707519430893852924242810658294264700497931376878771191297102467809875128065923062074076453949791751139906410898147511216379588523828960189300077065800360167570730423296265954335326073108764757695261667558583021429944744345942376746850701446362069802503895887683938116002732247494093858794261435388430677356494503693124421016979512315448116335352610391157832911724798671426130095562645665253540351228258413463084252264143807503239475237224302204349333009823747596709801978683403844577747607011773450565761881858040283252254963642107079264905468892226587110333716533685081781980935916069215421651769456763980632606763617812565023490840689586277655314206923620670083763672296440105119046443929832717415701462280449031232587000493498353487971312078067939909076146995223462220251261397741594067184772615789607347639996598539117933111095609188521225393738133719382757052771792922405260391765759689046183915014670698289736892607025686028156817852572638508114523073388530988598642082966457280849854157985036898471836632650732517855575420470258762216511776273205775504093094105693328677800124896418918777717496169777629106252914825561544365702913756947361232470721910315472188911138744717160513931284026747727386902670607259169034738195571619144205115362708130410548067336839753849691813292175706280427752162133299552579028364339150247420011576150706693239301264424199822758562986811931305830310119484998033829833083958270779513012353340775272276470465669575745397398341843970419763094895474298186581525676654579005245424277273451818382610344694005954727542693557382447385116547172540004754412758136712549552008543243686174958660138299332171809932426173730935474006248071624716195181707426861330558308596707604030502168320675989167229051064095910658314840931426665705993985384213181672908191222620514720473592740302217379530085013236335541014523870868916908494801524254842319742507254758341624376308970671759223199655774248463057028332633093183992014530553216764699475590541027219022807385718830539028521496088315476937088560578414885601585886784379706109530128978307005184442645421843879908800502427858332234687433267519123455309619010148844031972301554536805053112994912792604342026512368908067201433099399414043690653308748458301345623957048638459195393525362546788760288886329509357545226970948282369553853010619065160726943756909199126845650709100851695718623054017331240432276469540176610244676503402203402436865512303947288914780002108622603771189952289724972288431961338426238223942711548449306200663058454278899576441738118292695985401305312272034151511140112777753381280533799744062401764943655468566355552148318467145200827825930099503112776537520486352229996622950925774635310790345607939373842893408235011326349906400449165165440316590748101347444003882554289070309961849014837726069358549181607996416948354868220606704892963219695166341585467863123055551136227450206294039325430316161657576264252699024514071601865568050454851936413594234331585651928514497189591111920325841356120238442574746854845637041953778527403041153262868307847944605288616852158697470780725460510650038453986468821976831355227583801798534154751278722041364404449261115186017672216169218275250330527991852556284777097025141977532089970944654088844811448464956308160481936878456210167121012457363547343465951334922721577411727567596208512295584630752469514687678402052416949927675615752685595600045019439815282915580794653983499558353875267545335894885507658629106145570322698334429303003365465241330204215004386673370689353471590989248209049328807131597700577766269573487500462769737799424707456978219840388195763970659820478011521195273031480650567260318508822199552385356931221755656436916472894420399553282927547359491170038950414247389848959082761757840595095327394918951724790512506860525433993782361472324452353751626235200289461408729641611009700130349173350566929159545628421076810440827912978347709484169652390467558169381849566113503158788785206035999730286178371474219995424782021958168775583409236212434940893171390229375131827820943516565991981454578969643419890892072084616828497174656236098265904967005525915155594803076112135576243151700809087027405580484142419142817186305635923309600804176928322558507560035229593156996017283773253659332378743387161750311837822359836501474884089124221803511300729379837522461552790031135412631590101600425640498527534644062077543690891962893818046406168301550850688466489657377912930730846334966791931966269831250761785346930902736768653393185486723001393203476979125331399760916992901188058540952728243225426219201336453764936933607055327407570051230466627848178304266647256506103495116587844964126194717233978836551381728427247592607377500441051024304598787428164215039919389668262421225921918087765926431140379698007114034495183380189044055945308020112716157251034946787392666506997443226266282904742070021389420168708049777168777593931992173167002719647247850106680367551501278227999025322952685508521374128927800956253403123401334296711993138077517430821633383680075442803284909777966192448527337675317061284273971179708448587398436682677984648790869688524000294476685133448352539372013298156503253097997138541153346578344153786289180298700299692533932722157587105399775772652604368588968193800041652213850175651200863926960037677802107189881993423722997444785257564642035302496009445522505307426965363154518346084672128766250761237598964811330091964998463672721296152354969321029033801462282588855318749114194383705397811031221309574766430950433738341650187725781236147585534596288477817974896780113067763846675338820059491403799337679517554067913201399964370454383228204827181159617564283302493707212371699782035894470448068634403043284033892364137743814212528633149030985659156736411674749609848237689855931123507554300053678236311139103902997768052294844482467529666101344860206717484785696039205409265264948583593277012330816957001666066630782801120456362728835194807996012667037679281918430417498545574424539209469388878956715143121959232026836841253619427712493060426230089197943786535488107411318665175641839422852365904309994132105619373907460478190103227245571978157614014009113998717993361560536484028638570151995688001823004518734975561008751945796558691582444989186755849942944020444516863287003450189436614931031976959918108483706632244723361138143593358802754435923199084466797640911612053227133060989353848793226595373387713702052508875098854927120831161293561501937413379889920278453903272967986703798520979349981192451800172423671903587606823012771794363658596708648188061996488407891247813432284102422607743504349948254399559415420238542893779948675254649795557387761805271952043500153228748614257031785607709056534826959090997405870331904417539850831985849001220267895011307427397253262227102054186980715871684482906136695305674332143219401635558870022368799029885393531621498400575843722589641397255497433127916615067857220072951297431030586789728352891999880604252699251133858345848802040806579781384087024494151940491925856520316641637703710735993254977559712585083531665822968287807277172183691006006766779105587979995321796810957376316729078226803185141236584938165341267400721500949387952098853255517282688248851696664466753067538358536637785973369895352165324029933272711646150882243794280811967562471041880085611821190987258681723418610683655388624627244961908928854152134234352992294656226423340929000090669880155277662605629108953847524966738195287007245759662235485303229416796641382096747844482487840241300281895387197850964124969403061685813312798990708377854634963774134801705226985224946458852036159376123890202524179821964669613364063060370844457680958150235887473888710727855837132944312729505792424746100774467742472051115745151577476201112482845562041407680950358210526709588306705533912130054075757605035703577770514569638028317765692622124736938844026362731196349636234064318009558976556559085787454547409230286829028135576613649678110491358604849877978057933399590090157041367729795171655646855414477509006915863039384622209756371349321005602129481713849028396262012126205898983879330443511845001558444649537527370662686029462013116504535155921600307258599992546273760415909670105557086906284945788103624938704808368832678208663394551033326542180750471886209991678039274351683297622742263305832313425056201365903928848577235694437578982356360791455296196030123367710587787466217604413689822481834907140259792492405519909194514994690301699983013788739484340903710633480856443297301778263032769577369873757607666002635565418995452174797422442334114733227985286701297641730445831041977019170722283306808799873998672854221316385244888155332662391685006498415050696143882399462185069157428564088478629639189606603505440644899300599354396467655472654949609932807163171574787267684822454322132762080067368576632094182619208713636085527253278057939285197763176041847687984885402353121043670359190346680547581327658262924321318938348170031424467879523397935695423980206646157871174619436470819281399969872918619019361145785431567401176661401890292749807799562488329964558563958713365298215614819477734325739455609800411198822304703470414860978650620107396087181927415281962805433370642542737914530324912013214122617477456679140459287075082983863106502308054523115705659405826234256334215166684182544288257124241577706373222799505539760936416254775890901166856044439235757380744049001009415874258766532605487185580371776515647327515937924825979445077191321989441560715144710336219714071024877645339474711090308850457344806615665394928631189086917970632832530999472902873769685860683812106236277463184197248163787920442900546217403695970538321363504309638767434961009257448760733026710729870553972772876899887370290392231865202032615370540603047828757195057120995043015963024819612437435612085968216024665886201118566762887587241674540566815131850673654293392117690003118577069695281254372607618664795631208743582978975278484012542681078631733383834019436950487126628083993306579483797969744472629612630730151015499222548646470213695704574571181211865946520841946288594906103302326362438174987287067785541131087886417008709342060499186546369931716791960082493228540067532027377271214052140667912732362283724760921059341916712847651852177109498208167252796616513815064090884801053311472428919630358343503587611298555665463896657970907627757322931060023467606116967621346388041386817572013077031631427744385165319812062073890474732592496160583722609451778465668017702155599426855910419912195149759833667342997447041224574908734950982413932004496040851395848429020940159761548067449769924679300883522036175278818965313540163962297714985437493037355520280023288629697789954764719593647717340517977311961813155021890356703656024300134884311276635090702587885662239167355727987251255648669184259791565082311426202604023928125370567119751164036512021096198355964454818472200847122454242322273388658825407463983958404683118337953973799678695926478113112526760462128104448318805479648936096666195367207098364456546002212125331922497800304667315260969007904672091913230613836528493354597159480109886157398331153494982930131332496601185359590529384164793448702114898652726835241324069850595541095316119521964799961116851252617410272906383073080762655454617133267894168104645420082083565256082133918688723041573376800553351036799821905179731733859896443749834498549229805082343365839157626783187781877942281845947712264860327871914644012816009560802543993248841840748704193199275883250767455501694170781706834450000118905867406942811771820648471216198284589880008443802968666402472353926401608093753506206362228004300540029022740377593735863573335791555921752126605414472947145018420030003314893573141707942478718061649181320835009632304435062466294804786442484954552353109276850765917180580411049195574082665032925655350864872717971107943800500827622405022566891405715967714826734753771560917496512495566647670010934610914659018913080589132971381450125341969092322658574554688032843571251671204430385089132223706161295953602808336725781594595320937534331812757662677159070444146947123480969667828581629606384866800347309227340502300197510468883426261625791739812439816005957252367614914657945006693091546892451046617465716242044021932562468414051265514574324037431585640916974603842656611143707012790158720505367095699026245693507157727969723270400088827990024452876055810756560399465626871806083581512677653888858922800540695317750190942589943438599224991107839514004369223538683423016703946212346345840213432357444247965903535361379568758732361624741916955313141609730899634631536217463134628896277335459325882038132056307155948350055721096090093686827728861110986832653765704566193663899809070698703981226399645376660309774094876717717640273285990447953274859240936845566035028138184766890033923303383047927074005363432913433131259783851050991736847029724948835711975756880472613061959392800356682797929727232124447760575940973454631954041606879256429710965465075266717255605508449918127436032532800451953403665061542565898698087387415584801393189583697783386767878439272891467747543456692388397186791172273584812097745248039162147708915749378339933563804394174968551598020169283147480573075367167220231735567016931390058647038574340572967904407384702091507517066096072818763946666341395253983394100902509050802642275610117618233170702370157018480026750969643023097241014501452159308116764394164120340876037158092601166284452659521306842616787741484415558828045611641966663419325025272432588291113838497954496402754073255510135684571470839473053003365013141003171405251896262825443715204055050460938300988246300213372022934943971673894347201887775219015486929690710184632946736980163197282500469593544083109758738428111350355552312093710196359871718371692476732551167861675576031936601465432274168467151827244408079603989294597019782800438974744296913120990327979731544089873385660496406293671237499239207060585590309426904727047401335183276683624996773381665299117488380035910971203578869081500947221919642948274807478700696572727533801228227113895368134100602229887157566058319218500165976558714283616238956519697180322728771937745929829153896729341805505857794873399609946989648747840701257057116488742724354347319160844579705590478834346538599428144482066487735215974419813377526834947782439925793132134440475911672344863503353314827938019700018637181552878917644546785376593886536449397344845336512132914021393308700871392691269522641173462973107832393256425534546676370960305441495225749373211003827083723889152236242738168311442564427651155898395311823751650824357893467538101583048486323052362706440479516184759630424137283807211344998025425007481550294501329332764393802288834183358839353083225675847844235642253182366128858542660874523625451161750717683038909117242281972147136516270528635498197801435431373534181342384225447665447958839181218545253227238847268800503745546846207655046747877817580221213595251524668544505198747918897169926447827984076575394950631688044276660282403271340054104413770303145817640439436886391710198861479693610524239144635252382959898010122078566457171962145460971578817684200605087046432786022718416463866082989254597331668745543922578452757180590270278893783130618102874840287078762489605205645779497438505813219636142303129423281306179188716208009736527142713252018006786848478284963953269848129999466977593877509423691845335647334917750478631115564942942222036521567638044453539252464160943066095544430854877916931000711921766557534786943211652775527407158127605151280589354571958754104355000693937360476578340875212739465557764096319184057975927635893390678952154034897959925447634538339482466482911842011624039085006454665243009470540245551293468013877393387546774878117862049300817802818745647509807552748070576898097552643888528792903837923493162467285177671002546049374624525327052789707540196468706901170694057795016749160438355710720654193512624712288938566612756965427099960712461272116108769305651081563397963727558540841502852714297578067827921329430785440189401406348247137780647880357439680431959346449919303160875833300555441807515875729587333349502083419454259091221600164201131523656528675160146657192618458663061141423801442818393202007417502350695285910176720647115630083766436911126989032071471976225313377435862781747979891014066326618849478226185191600376703525675446150518951736857491179236945631975603444496990494950323481167064658784707779794726739067332154916990535592133280077298382237134355855329819100817855349884272068160410209098969151843349473739599269714665199299757889291796347499650367526974739367079940125531176388289259729119465714837327400397625339154991260522893585247173924982387759626797154205682955742828728366849914356721110902188674964845596702256033507366038366139321438520977184538501863686599447528421456077103064839410673118657868085581991490364995328353982018719001930041598566448291361021090313245644979989655322404620785846517581314290113907295973516784027299727326370297666392072364964404746548524704255119738613025394124117712080704964126934756475954162200825069553723111517405622605814713821843610572135846080759526651482137348348121846115160937608981217387470205399985445297310740998876578870443328109711405127694301838893644474434392964877456719662491395267546950489744369498780385603233412003873365738944562766373884157048186091002359845248521417755650957095158681506669837761881438030989008854583630101054642712159299444737667850137368236216855469792720005286385352337288415072561215940443534239533122846470921968040983105047931648963173547294332538004695869103928325330328918561108054207183674252834819620916839356597707572799762887037347541083133227727830630214808402192832764238649077079490812855608119052311395168704585032849730650418144238047092080526399600924633719287748201710760585281728381369005668702199844261548470644011228815592351084289706518717431082751423758318445096955095568640572038564905535487248537312756682760767286664394233743550550537775704589406760360670935852766677342621701320783245483237233587719121112979376148542826172757220069399867962487448705927824995399330157640450828154462533957363293614421734683421960349538404292903656513525042679552598765560347184879896289481904406904196810398702976337704187365194972178667830425352794543375275301539816723870516405170476493093220846083507640280687713644069563197287640897326663396590260237919800122434838411363949360254480818799046442825273178953874478268379213379177716402228072898186043039390458939747962956248610335555493427230839093420947250330212224735047661900105907619464759107519026611590743226432519825475703964732879907013442583386275627123111702275567414291925240109182863103269686652438063983252225779721505677128956412051051473275908345264431239697290578127430893318887812323390714877724057633369351551343443807694433496499026922000210578232180475382624484940004696328168584063536796534993050863365754352708355080173621046382875074759078810763069528459442567226657351461481896157969512059057013699510803929081597722561190846564723267470212773690435086685148903409502100789264596392645124397403506838296179206979167190960836957823920199182941024228010546228731079248750523653905646610974125582083835018855397847367852569226280816798221131378985403484578437704236088293577428088309276768922750935413340327152008418360080486141534272096315892077219299002847164339048536083603285429334123743111035021155994685642068602236366689190158844672124235520794504148844464260105164768267631109496614720542783988721582220121571862620062040351644545274637456707980434836569675941092707214431059777504709919455024346899280019306436137315551797741850783356634943998272212013249470474963913739217841364258418925005944072232924030297424172015379776999901691701331586124662891987410437819483787703974576100058899723548717556953995659106291550671004596240788278592742668174485049890784896533638411057525638878080740075474704638938250358579713055982704655603785234595378469784186931505014522908219136470088857645374784158881281584554902797946933877129449325615943648056719538055097517342386660132545210687635070826822502728680841303126698952047932289947011436089658122759734269378567842069891189477278100451744641458034172882939637728459069225435092738248509700736765920812762046463716955867151778226247113390250817879084054547869352586190419107896765131491297759119133157637495265788239522530156094309072953013787842758559271668310800546573059276098982575348911739653838269371090268758242881530521604935657277440291862263384417706359211249170041495967672819251048907356627258081087252695026790524590257715637679098512649808842904375149798142153517728484120405238639438559040555893744370455050366399430730990282730749706621213069018960657094130302783469752625795930745520062201104211264652984802405921807196634850903296226278374489791787076906446347862755328241607732455380408896778166892772864183420306418365927812840293642923007556942778375822140709679182815073921050764064412416450308318697405120819813302388186456393351579123824289330591861394980617871424424276611076151816163873093260295143971044636794233690969459404783113045875648715515885048674278734330691528641990741361649753279451355569740938706544402706632656069788552287076641158781594712568685891768310146707017124892696680281101374817948385783098508771942980048820452843751531327255585455376647867155856961204513813989266570284657298343682223003452741792738337309471466574833087588687155699038406624979329158506768792839554512704285418905770366099203310702663183640902190941183816464669916109414692735946504735816306725437919521532758010638989225547537246343853071002109664751121601258793422863081478972019704466503752121841994572217714451909285023516659332378762315715252058499117793981878280306821227031276836475860532847696520687568457700292790940111732389905903168526739671319539450804391130681973717247126443245038916786358162132146455177891396318341970930131943864404772971766610380266587445876694216192239660655312005084574590281485944292809410972864562475720329548930511710895837319846488224405000307770679996105642176798945063682202934990520906450248201810278502571690640151286463126419774719536994453596286979886101255931856123611350866509153418569318777910229069159484348880788645178419693411927016915754416516402881145990064469925996180690115005700868131012887533937664561040654856950073779824455350177018554077492993299037136256721376121138978183139205297011739440559944910095618831159403137786848396979403230178024300795696163134900685935892684652055408356009082069603745450485244082374030074905256175970427990186044639904397811116065259163300550997124622265944603680069395842814302870663976682776404187946349188042159017351023151075890855095762060340130444190311000644979031710311552300881981800704731111068024374917539827986106823549205430834623086304222374765107819687528765382016613604192011970855491919600673636758300471308984616931783976142494011347318474605264573699951934370308892011401150024779338575150457421255057965803721927056953621262657607792159005641787712176550038249501258528817933985645580185644016403030536168221412399712321027986250056222624508495683414933099245625159977443306860713666250748387879746040755121509223045090008194025498759071010135778511914707848186276736639088745451719004497010785609883928619119306563902162800409833718811050171114554111304470206819092766472816166116979710773148739565708767688263879291917920727958849288533332824005612295514468530812666985287487540863985470373921001492279340432303949021318820815489102324263658707564218762087740702467515392586464968372888074645857462326693679971768357839750706255457680316620280084469048619931508851831595174333757238003455005728506826275081234739663584594320887107222394383051137742723169445022807785034083919374501690393087290533056064087056621213225166624410871967965421455183851439251430851119708447734773185106225996056252650546201579234268752915452011773280886924794130447081634139208677083363736090457100747813935149138935830146737800757424287461149258432826893551223901377528394732844431286150885895346963801596408510725428139731144606874270832741847769206200176078912374625500221271764077995010323024467978199740744178069459109494445718728957244805594181564520650972560634932402247199110382465219917254350964246729657930889362337683475042643427597371293683558312272498659753043616279091917454369938391232648772374364751157942140509146760660724648893276866629127610026255847582158277854280325017157832362984086914037996707713712787619154109756520952805001476685238912294758655259798749853292197507134832149081813235913516761448953195840620436554869134497463566324198203619098156398753837167175960335442675279685769757830677951449935156980473993702272825749158637386970117356031414390422411168305680686170746757192330014666034478589900866957473167804081204634747406342819595312282740495641439591903449758129362262214635672228551501581409813502218457762435612548089361794816321677310533205241734422960612655230880006961386373661851119231180255173689838038691538974088069177510887770105803926772378543593460535783763712857073459004190976643042404124825729377653028087987676574501357785003407119535722626132680841943685764619934546438423108576267472621087765048744837278983078196892098918258568616247475965753815736910879871658624127173647998303792998836464989576977723480064582631452356545344197377329989814865708534740881189399202558177248366609786643731095771097583562352470338602629047679516015186481996251535903615011705245401791244634630141635417669385118964490655992482810721087891180163030192376283347292136450684142341398771940427060637777199571058251066652058918420799435291603568956834463640982141360921761735409031953600970168154899481968202033427284343295280280669243996681342422082906171230533135714992207185553505917577043618463952504149683459252782603586718359162270175076348242094975609824725119176047541622401486682926887110988811367605916536994397411602410257475129390225086257554335440442990247948159030740059818907828111903262542793226573844883042479084620263992217746095858895463649025249127065874080434663427639035600271429914033810535668404158323600158764631489552897892398189208091580213441533268233285988017879166243951393235526326130166674573527418098547053108433186585781394287602820271804023659677784312918039638893461131283836087345114158132703038877499691185037029968568457603904374119713646776136039989288681717953556156198234076545638261857237269858566701935505391873676613717889424069242449765684614367881871575169077779513082678200286982010638940863800605256021420994225719987779015165127209439098762474466116053006901954855227563647872775035748184060876417054176820818194826418983799228086913013425190641727711839546812054453068799111999408852403817602194752014803116260925649365204655442089572655153698894661200799855753954442750022014929701349985970094368467365309666990171945565115308869996298658040649906466179784700052612517682480389175289964028424244107886829383196975374345958845490383067986387873325320725163149397823233908126941041692957450983627810826773042161638321855798068941838776056841343018440391955402044543649733395041402533863277860994190140279362881359530138038928475067906209911784368715401997914369722332780391446957091352638954386689674238070634795512868840564303345042780361782652051917013047926407719964298475471303293511544343032940907159162804975642543003405078602189096107618215563561091594973909455972193249611984625038402085807432964375034632934317169249646454795926488459288743927879273062723440251427553170435005376913848668184909296142412733103835666736772114420100222858395584087742252621709351576225785982131209025806058086076043129795526932870120441930004022756828678455729807528771091691054622853528424223379766188429328387439719673584907224129747503919704616020867481326727219465937805399901027861464700326993192040109942942501901559382242395168582456358612847414623112625472032618619015422433378235814325703420738470121859871178636389394146999357838647256875765253685981463977919850309918262993998728903311176406846299994260070699573731432071059784769071320801440692117488512747822165406916323892602214076524802751548855561481618190394624835485845577224018201589756277075720821262380104615684274807759473574386351305311097585895923937464471594480097494772430939543769137887349689997927456521507745260588377887192267806356949895537664205511146911151543896675431821264739501773534946460947941487020526282751476315511169396516450675283202631923233731737619838563170586283404159243016640554280431272704936292666133609477322172347934564308788736430570869643377332515120172350540866765652427479118277947482864890681267197437714014373109011779582625438260944326449689106441525173417118994614188491337269309356353276681097998723590177825128016002510723995876462672064222916221692982756433124082970640884078717134524952752150666454064231438780817529666406426409070112414749477157522402695581268017744254354874583244001987539111277238299751444858636871729125729040365995757774504625622977407832072051060789342100683421003313764415133170477227925651740161971427042330210620337489455581441345389419960117808774461543214221448683425643560349204995368643332807310480314636692057655553246037993569766890446819313098630001701942874120535528122494385138197497323441621464991209441089802807968028056859880691185028691771098009721650400513439142194975535462954382649463684723084816787632216877071267914228428582597424692323283166764224159814747243541085446492097229411346812703403716636637432672185773624152617506892510181198086170315250106356675586312067719517384007361136878326261716625068786444422181110393062674764188123549834153424732615720216298152180439607796432724814691555571368655323835563214771368136754556161842717439929624489666796705364215734251310165520729270071567273579296835205858641717435765398306257856577065604825077186015283650652608393624123311096708769685062165642697177641443525883630202074978944441922380247617075063635616593227583551404805591548810649494085244488015567952566126048277374803497384677435365599229972739569412582221539661929931137040808047147628362339529081929162662693868057688390357208737562418943709909385215004387427783643657025785094852395218921099624397242461262862118049396702461856389683229699461306124415951723756157592802025113508608408875322637174182183817049241754843871336570885238923622666516041964402689916929360741478983483569207006246474096219333103837885773170591701328674514079857681908740630986406707299771128412988500142160865113683291348971856084470714572012335501292783043894089912285983698778879858820842480196444021897904595172792676394112261171076821035306627562243073488148092384353214927404340247215476265730527235260711827861722567280379981893231746249317317384837131875221762319274672317661317928059082066736891981526914001148759521220599196041496352631444678179912476790979071182269393352383130215193080098455171392967559335959476321146961045257520272680689858961523820900386905449603619721447912763145527183534371661002303529843667278564082802917737620330812793313623695065116058191095662745583346582883232538812388433999114083959164073734501321977659921423372158705591236268754588003552734258888183651295343743391843351162869034762423975376982764614095007431163709959966724218459964417183836241008722051737071370928448553865713247320383626112643232787800877317857847383428589163527080364402724510529631417169984229071267678724095311631158545899662127027894836491521031794876790039736956818816353907058457968495513330448740340786617489893463165625081636920099828582640268306189166058646460487299808369461387758753183603261800400383654782478633297132539639816182002549383267915843668427370816547084540527433059207858579295221888358066576298072122636248229088634026861749804537002590763973570917159249963830521242420517961331540815997358365716113223490825277694040291895517853687028333572048319933840046296626853333612770426885587086295231674385830000685818396662826153801429387857137093945019706931912403283790979313796892031991330281403342024128803231685984278536443929368814986278767756317682899040013226638803038578298598590610122426621979448379326717378468495860629856473866137709123711120323358831356025021577583951716789595958554804894863966845042832294039595927779734614168505521919180807157636457581575443620907367819080343777438897867276068442982243245586475193944078007636614083223797645775411197635414383704024751740879251468452197625324512587128386721685016591187646844998072993928306698002495144889296144036006905322949700986670403510238315990132338832096413291729797945857798316359295450860369621188905298403265493395832818501252516360657615692084275150279665968879381006894963324655997856623425785513856860190298104971873191792246550175106151844031951211560736993655726985968249772672006068180004153715132972255672382940785156646712100497248890334361049410766048882588034665454237902521194756633539045370279219927324101086030145240082392633439473668460896492307635556170115616804817846676795904992877252846232071504816158934367108595532957823851530297904016835562737325671384657400250875746712630754742121720047543735336673195259705231598412306965220643252451165886520211891658373907503511289023766733680055754651561758861666570071791447818297284102327474299418848877979072423290618870051747048346467637009320658445322923523143260742584267279919094451607654805604560347560127242006487926381751333292183618995961203222731924330194864280760175752383331993203228508010145215796384217776628435801187302078880769041773783870449590838596823910863339765148824154379631134503632686867469238909972876287287827396539333665927066575404260866806621206185953334649086178660017761491598375453487638778485376258883330576629115823462757487979985858163794018989526612174703615068338736697872288355171912377227663570065130855853497935519257368159904384589443098546476062054230048007214580009328236012568335980405542286942118860938219894825031786987652748511801677084611508514002846619157615138338443859311661994438496192143384353883382732656694899693859101317368964720176501149346098559104096614712410886667244073232825056237051622835161715725561268421216660369779233293120753723928437495691307468114714918269675173467365789933655917029868218397785745216366130596795383836854268762913338161429013357573200288266494001437320299216729854355268612427232325394550177924783890849535227111712198375832764414079097604020835857341445748819136740216630260877667285745091803097785634902212948321174247128079208921838727614160884393218871849056764865994978948582743587923462378791403326430081338046802155134953134748289477922322591474541039719428592050393143269223205091760949110873029317862751712867532188975310275295170627575688426823958821508315903510359551043026406851001466286572109209014891443841582322720630001486303477412962169268089381808826608753107174335137415103305390670079441276763776322788274783840200044978617730639265962213635963823420770820375368662261434172110181578983503988352809176261697073726331305798132543739657590035920284680475270122051586745328215615419571899486061326846210083841814309553780355962342450228792819468990813819165281833770376362120976701814790270364641183339789518690596467551679479459009321070482199570076299814326329226521491487493934790653627387190528675517436712119366693739850853165093583472356384614534484792965325135560734409161100648054305135017755269571157279522426210772821837875156725906089218369394012160769441285628902843608238255565661772807213111370541990410222009849519146441943602282660821533670897649370892366457950780125908287542179563459086394906259369970178631893065871341788677017581646900385679674248547585715528017668020546407568491066941306982267547742152108655526819281553503926351140939915317676208516819642442258119123565992529674655870026669878292134188605024266270265107990142851349634326170038584113138670395449211182211642574614758655805960777611519293004253677659797459859811807567200233987981447792757330618855496489895839728704889111660636320199831552254504471528826612449064338630364957313901794849945908396963240066387703504588223702854763829026326818442560116629473539413097052282649287753364476966868518935636813605324768364353558534436734586190582589803708226891294358589750794799655611339523980105669964345496086226606524587622095442996154570195952950016814738041208957424148117446034888674286947243716930702375026172686989996670613643485464435534563470583574720465629855067827889079164874250002047845628888148085965274335953579208238511363057615366085664583144887640689669695884039216391059290819548636308550612042704833455969837138853447553993456470063949327320831223164900418683934082743753263914301279109677412136500884208290781131929482700684756146629641118859733081089245184452331850408562572243808391842948384148262549550745984956214434129651066118076032826727081279120818797642750327621969657930649638147753074733635033004578192740274403693985081367353994133717852313406067955800019885967231292935086990514354121853962989638749860740267706403956579295776305824003302351898098136134056222830068822541926545955649389430248855779759860918086999500666796327864286878993744243815777788539933410332233773845854656640275545154131307674518185310019035139128059139810705847627026821262895076588941106558955329874526812897259281106264290182141635242453850536900232128971308614405893841455238176520048823291381664263759389767756507294911446174809263084425147630614804521351489268410529594424003167846990296518494833274123451726171220231642407502811444880924043807894323092561993486437987300646469471224139840743645589083822215050510771925496933948400449913111611429479224116405531230283499591853067638116679217118544234959094406622478215992301567921589662983427676017684329595926315543992466080616234828539767592959457111358045369096704729301632435734520107463817042629431065931552537156912400723255585415451286726919907317447054011622709254023013533059150011114616385519695586197914036862500868141334893330359105364665734796012326177351444487755437672581672356407254480731274365542715677584002422239703961472757262523645076498010873293882409278803850002094115562599284040258201034055411745576308892540985635563028976293216573520845134759184551434497881059109368814389032897625222921898414342490946707778926419864209508031296883876496151701554858040882450434518686029923743469995220605704118566869411444479156213591249291648962525228748130626473150360976158519753464591102676598870196537938092066740418927398675255834385923487017217454454248603698619235546514019453919370380037580150743533284776997944551026608740750927222388426123369164688418559395805870599833029669680757534972890401153317253582064202595662530113981117545134360549803006115275700671563809464878901231397616581434766590885617196393166805922307163899171494371616171332889255216406813785933490755439562108064014503872181187666729613647076610384493235164245389182298988573421329330789082577655582969270749043186366744082136502763318605926847626978660100396483706831909073625503773513155061584349662417670283453198682595774294695458214084288701040564672867072187903535880530785061430382866357967349715636569517234646630489640527381676231977535675913030732512096310780172782307596843027132049504430749131498335191349874646664403820492677476239984638441988263128595179933275461155316891578617545077491378125854266133393364469604447644135221770631327986831087188766812099796075332271798304850867681728426175555145501857618961080416700326994681108185025958914033715474748166501993112644647851780300506088721616790807648554961017415168442979965246012285481599020599344912889214553727265444688644021000360005428899817557634806814047250579097649869091744442139574656783429466480724633600511609685654094475727943068447872348462624087669920918042323815498504460409774609318459401822344150636430670557029672076696493767053971043337936358323593117286500468036889208495942823215087641083133517196112911597078631231804291972361903216562367808228289928830676464781514811744031645117243085891970000270926445820543153987756103110796760778114809664528229207943819921226929687777945151819048186264084723973886175425819182018716104752915498773511943295586288292249206572224288362820096719418991682479706166886202571569354118652780622654166619432283168097844644126653325443069646498380610574098852154330678539773941746209863542540074653667219354008469276566282677595398597816477778849646914666506649472969679211073638522356712430041869917856142583803984021418187100755945904863756685935569944619380747440953256802692113430247998877265886470458933174830515073607817891568847563702622427849999764024567983485754931886103211244669284907406826687691513791223167976099329863864530806357363084042620554479686402083435095802312767673055976409652367644251049065049935742610448789139025500454070240400389322919352661792349005459328722960146075082105296704258601734241543407125982739545704987784667563821939963184581531667348561755655186298027280672592131202530729516799913382512730020623481313445200194292153410009454758521923510231072690725624891825166521617643680253155469091826612941667145776540525840749510832044814769409518045728405491652267160856992722168235402342154953833447709796621056944078001546073755185468930123754231733274267746079927556067829193020057867434127008069881268299979441746217624506444176190447098139687862790763767728539884657699027458178533016512641918152326339568260596659346180837874997913815205917673001343153426050360394426555228421592946856295764285725334658272068533893381764712889640490186633480675207054448925119935496182961550633547014440934008490227886046393982367420600718234532761393044886065874249942075309825909168095005237633915666984128901590122648371772363060647160740256020894376149664588121345824375141745651937426159492383434123262241817158932416808697028399867341625469390029188046049350404919106700301582778038567277896778168504981302038962532812307024597232141770577397870486719450602766304508724739978966009983560256509299452976586264147777596112247753212380430851820035388581003840285444395243019343691654052152147128437659224802903169101818565454254275577605001991663733954068517857049945430516059460644282575700436065058023040641500207981714314778563796345453925247091824270522226726727114247756014417507137118835301847833261432577186146223906086337133878548733254055197354915374709603893317301317060768704796944648175196742537344463914078963615381724370759135847570362476512627589684693411166202241371021522664547833437572492979831692981093752874142626445863534403919180700821136746962471358131414373757120005151280904142500411643498552918481652584770364630967181950917054001729779624338009495999479172169259824006149834601698685990070787131090007605742545643345970090621423475785737516475223197144012882765077227046472311369966195645788582536288854035542610291377079204995143846595402844963518852801059170779285226555715321562063009493108627721688474941996958179761073888149248590768071989618705653724755765126277696600807465886424737681857169753518333261940096814999744244516380673588785170728118957591628742449047619290259333008575195728830381470569793384671284617137859685527283887799784666573169821999465218716495296300536613912590664969201540737987438155755020990030500264914099664635502650303843613908636421924015638363501391247111740835275085483053484818793927378425026359123436259802672050013025922740780518847950107736140332247459500713673315936760008344626362447757635470119269791278206831290676520253571347019864141229983084164036432441381130191263352397312834664223273848013271262856842033262828433374385022990396898131788096201612255246610833441426644886032673812113812312975664896611075512954162545400559727465144214927662685818211353442661603524521831321332797607295891626269788290914425617955588180330341681074672161676318616149484158353539231539568604755608152992567870797458145742770302619850129880668209205071193175500979273279766941620997770822064767761465350350195305222021652276660611887733826248566165891511646524945988919781430480021508333993366074515157426805043714372352443954620092671983412552393151370004008412826595097521688215697460518396025771413732560078960572567287658125552856477570495058832205290103259738024490574326827598775204457072438857233684846442910105574997680959829004587474784758953280003374336919275941452993449339696005304053623909737297435077010828960940830022481581741195633294704438332928657684790920523399727443947375908166323052053076035974213479573316163719734055465833038159950812218324776478978887628782530155269587548179439539020352905145583089298632545114064570000589448957665538405447594875416831065130089774989840804067640394506762396654927197435068506900770852182311216095586308945052538660793013646147942435278805714970906588657165777149191876542119944213877999880988492913336501376271004070665479796016866697217622405617943748035462711757049433757783198279914237356450119085709476701197515136177602024303379011078742094890867099835337240255133825161028070108178072355415714227102714049331974312562193321907848190135923448770272071257879112122056918906567982466594902159643892007686412150544419438870029332350401734952089017330017466366702639776854249653765884270321973529389479060990605213062012199751524563827794672061715824317373422916684241320656556853889536045295501634774125903697997051434958165455287782373563782367149245424860747777170455911934218678043174851909381914247166206227063627130213417110624848842416335046248030111029884081574231471015558643194309689224826396083554726292866287755595607309987345270506332434610755545231446188387451627429444509237813591834165834212638348786772163626299029640708170322293738667454384227963067910881656516675306342755258083236108379472377558005497716245629456760990619500757372187626411278591544643132512368964684282537096974336491849577049163575026121910892226531806746955882557212593042585564149380789546865792639965879101707892929117558045170155303453003295583107002616726631250988249143917908808461230518582275802609772659540060262284892906164949912963088594504088196116498220388423781839393307052718214791154023552711834261514621351382025210102290163658294391363766922213709826623522383849729883351724487037932265106042183260191492983628283156764714347082796418170880460931277337700191519405201496521200649343986945556023373170790152859934635099126557161926470734794838573999327974501299023561859163440497597714793212799612599198135948749156749982124223835256997037459562711848161924511140379711750123378603097005161465489825633687891686314901692339384017596984330736021474842843854796668608312919852689996469040692435728109273320974206546996588515819410392017097338994899580450453874066774304873866190721569060433816560232586454604950915491334889580411872363226425547612167558266606397483791832955006851828721521703827718410957382970315104783254486509209940598302317733967225915201533272871826996545827984777550925875812261388594224556256072658972006744627831154372665930249690658554562316132910933614530990263353780895630118413748481625396046737559074639595438946579157454798563614992489049672330299659190945971487664055473201676454987192010353007605113385641336357415227276403482390477866031552409687951153283311713104325126433784550275474651495556456556203525716769746748360353820346114853705302894853863980308596812023750361367307392358077389786555645224354750420472923967109119847012451411826177279631249978658202706364586913081341556839964193230726636213212042452988680129119993681344465382585126608050962622884780503388817217577378117441345005623507415016380260292053664777129373373022862262577109530495996745929065788180261249833641394020598647028324824455464692549713202063077351590008972729676528606594973651147074904120965542387288969086113053993722644581183615977380962880508280800225700202871814595725944873206204621862051961294017523957575332940504900487303893860881759267144496859660154500563031540969029415488818778926167441544147003370354097011496264691895329548256028057340042363489856364385830021413013092134428567542020727571311661074836642622969293627766878107842519921106531599409624762251473181086192616328949220965745034757950259611112328036461881112693193111054504228426620876862515231627888616348898397369488454874826866553302584277584799124727543824335328208461230870632320532057898115024067607098555979370945910708034667627830184252434505470112815188686020982167879702330663112606995522609615790377684153059922466717071201257438361742678073093923970196676691580132631018438919587376369462742612469101074683772627618693650130946327712028959403285737623680128869489366525980273366534714326315341309142702283822154940871852262988627409964287262972506173660256960229654110303568369982693019683496919432361857522913533327781690950106051604650717712905834022048185648612166304685386855553050956823349495103514211558226294633831411731267311177514239195947638712918331157438644346409215774287777787812267170027645931384135212263657865491827299169933547603532461239505362083899069351190911233396893697164947697157069347130613233994405653914920613956177472828295423099098401191048756082244636984432670607846786632415231486983252298097673494551237214074373799293768628662371912544707668298457371515982994526309393272200973291651607681007788540664064232069333802886097679137141172122047052657551825701797326632498037205369285025456941175414958187018498008273848070537732200109186322782687324681210328259199364847926412182436527091737679091819726525324991905240077725503230858368220586835678117376716341744367864201335937896084880043683120342453305674186742283322623036691413130461459718706365088357983617903686210256173562119734974875668882505735834263142962462958322794677660615396974571208374076882989645295108510153743743019746225658769180295387931766185184855747707763103556825470285273645787970447736230537574532778281922613570809921011539995791302233357347805585763438146891262794732163126353354204005822861365403241521778777224499643457172745977773254246183847185005885624151202249854903876367336884701490534058307169362560620111460197105231141260756639805736747990795209521374075393812010457816157723002850067747859214397470386281856208858434474288932725246099717496350925575715722691027761468899734074424961372405893795867459846281823427628328153844039849415788026683577589816016193726177553430040940635386172072796067673052574834480333057741501744192882562070321272670304203528117931952722841677341687848500664262180560595246535106005528237959122952653615273937073007562333971425051637190396985500585890624561675735110602978985086032611387507869008891348075654493288968455288673589532025161202109920310047266475193863599147764916765079843301143753155458329126773588940747282560448534053217590905287036930780719872397653804097516534358205621909823877914799839438959690897710716424823775650645342077902378633705253772152071198243757347620983837084726466210021513525687182022889565190485615566172619974629815162718600162249490230060910276377259280978969476702104924074329720329766556865443591003214332515296510556603871414980797805229574459771515088952588218476651899294479469062777933439812112054575062668851436830736721584130122532412716135197660007510022724779097498889492779512182340401171430432624072850657766666888691640805147134871409217221870293115902704119847964651472107622317060246953804118410641548297392533063425523172146592152816031597580541962069920835465413963440687919817486614514234265862524635991758143165756881472653939493664360220399828730182943024763665241985958722488866553047216944859016669695703919668200091643449002831715948144279871327423960400890621181237516335492781151675135641066262588427853865290982321463689825458487448155833643261861803192996444621957719342534542668000227454541891323968856401120910632065482967566415845864354499796348170480654541100522892998804275626265107021647611986445215070670318038112013599832192734680974718698076121423405303513353355500645981373624013994524705168527860527466877627752861086014532971567402138724308819102623132007036956876544872591488273866555283651146183943291738750456109088507207850338663643842119241118973763955342227974407616694291096704771448170492793292537596671625826412393369547624699163586716710881769644818160631206919931817625027306596779662275012522490984964303843661348976530539741831714496054978620284736066365276454844643495553966554212283816790159277474637143015350546337695916673123903304749966979520769606629610425657788459950960029595417825820304013850614450976944741360046383636495988770504220651982673248080239789802864769654539056916951228945191736401570000165474425978565804606900312260323347822189647962277548189691453464077823823798243978991286616431418573684813696647922047056194836233232748699092994182506448616321353023487069435757116889750041926127296023798185665728394175323100768406896107154765072711826896523291127223056409869112706104926318136783207457551715526600729648611059079484351677057383745130148846627143426052744681521874503663451993664480027416516825492039661776505868436392046867203477362531574673084557066041379979169931684401684475205256105906102673448990069576105143881439275773647696268638825044693694135702170047261178330927793456349768523526551808798610005610493433254951904636601891295556913135748748832753916424497947576349381367949759017989713633790782707449716833972254150399098350287521603066508172159959663695315925747115810260340291367298002115380078808951764923586458841637591417394040178079724516901012063842266012201026971186847371986004847736235635521913229032116007965930040150107327565093720503547837141384527155038462172886622067579364360093062042373152841335826541582636951585749084415101098646609834464881299295915065610085788589719599973449806496778427004404836376202505593706501324547618475009560841814681748587353417233295464291918681339631398791641424284248331172639372055257432316266840469044950617278814825371345359138591031027806709917240749585080203592991269837004904414812725864762931790993246217457998082000790912259503076271239667329467471589287238271915323257232663181563632074929749080483797703861025715630447912960576679136138016247825874695223325699789068498105502819745826733770522081663888001057252675660529158357857988952472661534029774976338136485666725944575761408984842004074748324454531821414767973118302706414623657985870188277915754707564468499620285230893453218332213167788453650614828325251499780472789478514895673587369360655010695511546020625320439234174096137927738603302066199963078829577888389650091519292997225739086195769661231360280002739883068440888667899494681944883480552282060974740745714045916796567262650742893255775598560235391121041104768275669387039151215674143058946206062511929768145232799021370003924818564705549267304556927256304089410566202030203242267382193839203786702261527690425330007230954600957410810204376930914097686150717318806064971911400699318701048480755627169115737368840623210917803254085849376461916373824293371632869424680594272513233308607836659148282000178210946639325827117437104480590712858741605974353442479975142488403379573557477888334369037473949301072536550647468424725255673103177119103728019240015335241242325949341602704799941090616144693385521881595979559857461012583904095836990804543691796276290423900396779012047633787142761121311242747214691047872779756347866007306719464319137523064679821529975164694106534566682298907524912726770649799500770130890129234984456951458482773088321357175427344873121857663838886624205848655851486569548615643624328961153267750001053310213601888596050965125295441061181167754989979029899485504497098756671582060446615777932303616495449229917161281671610441103643529700837920519583243821030736147912699151657785333046317337459060291576981126605498205335188810907374988599496501678946324533489812927608980283512747409053801304354871764283501294829567308525945400954614062155968701786988623935744533135387986197924482175554912762818503665137927731973320046577786479208143871769603111602419951016155719445468600489306590231436997119788472971783226737734488135155102578917026004595433999400682044539992014320051840300344935265163365735900134557510105350133828585050482967089339606510585000668216244372184247121412567007233928446464714824628285898952686341198916545187020721063105881973179043310253468981214910958169530500574297822000511442787449162711836724805579314107931167990005648084340458223621951346644169232221878613728091887479570259942265632017218970103425218707371284495690284891867026659423121215999516526463735679796616435233571810245231620619389880159617693389011310295516837237125193213408435849538693646598598098246575221130561705456068555735526180754102042402858894499739579844283022861394176807047793984367447588593484588384985561450358466726126981286354286050348396590759417843677950182469942303843490304731302118597975252693611795136831596537450073458822536588637682355684533125440516045686132069799287313742579408166253855029566747976183334934189572274935710691737145148010223226474976962860056731516079553193477534055394952458466893212678320556436410495380071480882138058284006739976971321516314730862542797224153162846751123243630398720687613806151095739244538130436556558125858572731726276982850415770495881449060227473406423755682457154082188221614302643299842763148251106881013421191838563057526219562802176843039309412891969497844711064698429769720433752746253693894092557398972838037222904810318165143317025453549372696700248678398471412678132350376934159980992142548727259876700108498414173688691345165547472278711249173042517064170906774016341692881050036043955606371413999036211252025446444212258195954840838770273039443811298605008247482816077077987607869630346057339551490208939007645308461654377119996074167969368604744951287137990158590423069380582423946766309604279380100261884928595607552408607927187299943772849093341308672068797924766576265359582831482139590976230404486578171154546173887200150401608040243148556264319542961883574873487992355770400327704858013498011852705264243235436484243377446170563642444361289837019536837029845832909877045684653521544539512682769100200740723203523965420985548306293160477365551234095636080896715909376916102694440576704875700610587128366436988444760695037244400779691503417419740153689503617062809226302849213600061834927293770897951137381075242318454934433970223582492099656157702843596549683151943970681153928803160382471477462996428368475119236139401774715628162400277130350857146958080893426353017144372381689454179885945730137455383060240929539772990028360468921663668290965658540283817568097223165669400097289155266500488868585721296503451466844539609483627621522508625040600435340686394627783019093974128553067552107665114183962255563152104706683667867129822082732158499319771378330277436579605309984856901521431851991128801926115933784889106319348684969513100568859150957428971211650512606595711551171912805681703825220356486742756445628859127995347433346011704523100816346954449575414819389998285597365925255971730457099904304740026786545196984542387688361467642219339932561593556001308421418518646792821149833895287190740371427184745305572195526263883932589058361424262525467151518352907141973625873803917879585890133798855602139325832549528259716722983271850853299769768016298627015528430401275724262263322750582795381253375149074926197786975336207459071576292282948262668378395973745379205848413471564464005454455833855298185090822115067624818837464112968587046232106528042649325383565801991915134897815103402304884453794149316961654952636139793658198679527282681982028906289497227240662375339930772436142621855583353967666842229855296083091221905101367368164018353538560392712092004992090558917032951483766366398358440145926598028996674634007297118178752880734254108615850289387459970312950886166709043145712655238194676940822726232331212587560985588238852864381824622409121692208723434202241034607460195617146472080469044693629801502755092694481461236124132996730860036560670584600919850782757821651300715680903593074622111853513342456562182288288792776561985663899311410968438668658895723277634469769361804296470269413545233266740784093970208234043061561460426402252339779016765949457862964548235550225771526153326494154598241080938041806906300585257897496423523863746538908184861520935498177234644803417306637290875425480685484751895301411816700729666462692798527533994343350941495717389095688786444323174177967240798595269710310077609724265376163880386242309432314772962329887206212162043691284547307047200077506538107147943435240648054411586364229118352103468042619550266908938749398716321304676214185432644901522580532071101133374249368366179719492822057970137809777469063927668548881557369131572788336378543813135821199160363947445233233653345698859510009926704197190132843807980206272088686323840076314208570604817977947163730946927407642548935612101715477756437982990517662099171979297175546123213747195190756747858868099758765467237414116100939464617233311261440977119758195941941187783703811904075836911059926401980230229381812710331842274526902355652876601655929209495296497049301087672011499021339868309640717628364558695161476033843554210613565166988496117051078495476145192762480869523827602519869536108141975351272815849056569359188319040322747261474778395511856236411494711526680961653894542547102252764571830404698493997755338200482663148080924099875058014349542825542419503545952227686494088003189191393260509385544025419983654251642935888650929888755933143507893933958893437662431627247937545632935501960039078317081943405429033797215510147565006754828273536827856145087446700725771997517057060097332490992774573498832137250724840020049876787485721717653552750418135589939514653978470176741687484642700865739992079965810034255897817200519763438817879945082268943654573301103786589212696941947480114842715669630767160371368961860576174507924281799712515940248475426926877609933629865578643409122457384226675035588791938980812748537518537788987389826604216753298312707243854231311345396663701427869176260729075116972197132786479101047456521197514642229421620950351801954922074616367120037664843687177672824464098777175251346222658928348987283913911200535463078100525811860268384160611442860351283273801253580465626104822506962444586011417218070097489133662017533907995794610884121342701225976830734185084165744466448323583155953444889458814291554423698362041886967330651655011619163801312461536047103637119870715315978416337367109559690970522805365972428763760720108922612209547331655856350792326224324570984699735925356139807182247870744214698389789429668944893781881501761835803022043857015313032547906062506157316264092045328740160250781069232761084311721828110665382129185238670617417400119713558185769763531818942278670046676786110706085559025707844276793704787806090349541385147047889948548638316224291501513790265854847852559825217087785228464188576114969064148843255988985420690051147196516205952704595844660026900962616921386678682905284990653096427603985478873067027217954468712285516601070719968261745551245779313837680998816913312195739521724898694598985151656724366712320436740462009084196132553168519116518634966902950536831113146088964643905139966872619537626798783403252747474423964414920779016639427207681076583942363558047367408010985958362810681003482203374558645049965658695841084411825121322540129273883048530658717953378941209626455182092535411796988521045924421323134165082598237465114414778622200903386424378972977723434996231248504859336687070886396093831578085405402514158385159085143886003642268552018766011303960231719608778581453697419042844550534659873451574401817179540712917087371407982575012467763993616156669030980265246372126557486706865371059976294319979841369466283299460065865539343764983784800685624002317759466891762465804872949657558621626002987311631654276009519866168532765932884918471350428624461991524164983502318095091849537205289119054624675965646318284017697318087276375983809588380868325070226016400843461061916126337683490592694316746361788024610198559097924018098527029218034414316352070084370898561647261317679164596158597639028375335090732397966137924282977234565322975622105418025358042408266775804110707870950083263919998669678415679301125105205757406607846378185772620672632957937098273645862109248888994010050785323327379614846432345259558872744482053858454359696517593608270368470183027694174505144866657337086396195197640803799753276739681039429039286447114130019935930099499393561106191947546541080321067961241297737186488758111229872031107752945944536122371614921826251963523321321918576801916426868461352994169380618766177143775027323068729353205524396805053076673084629640927556007275397735730295591401913899943896925735422910983623428286425105418413884053786800773141827908008203585778446590002872955045057485515126110983270877444504402609709738514658259406192984187347061077357524484409810864901362787029677323592077348039028430558490224454273100489576306256365121292984891561117529820695316387631304771003859970786455952656017096666303608986840169943737750447272416245475470309345526367294455494882333661362690925564506938065907314781013112791222231237201274342795033113451462623854982310352175175943888329895209050948727589715090488212669707318811133735535688073703020453431913460375561670124562794706184124633475390197205720232277135923323196885616632436065114853712609990939078695193749975302821481900047774664544269014385437950132005714417802205756047162177596963977774656831019179730115055058844955232216402344289401774322139508306786951836449201114176712081591001778564082171480368355585595348873226298097644356604732700847116983954493350579364770237702324216972688898410692865104992720071620035918466373726342096606878873606077532273941455554001408559157103823488473948145462931680150807134654643241264716656792982026575347988327297276979295879568357491213420489564718338101953537889612869455273661978502643057224425573270699298343259577577496134978714521632223467166602607438831434427729442012294454451929690877316015884960731596650998254728602086976406528230721181627808552330616045529754581967112667531436348015087412118859389937625465618528995522190645834668256220699404195989977053745971822073124236336180487006037762623689300185922739145345773287319996003108032770231402636841316902766414559887477707343219411356852302093567195561992505239382207174790066708480378420604065734258746455622052910971190328408597172001478148204559748431523186724839827726360982360384102895828059531231957657979507999705101562158610169017716285703547574730874464938323377718581250669492642283525556923426519741301556023707866590205701212339711673955800732827766523265201721265218723419597520896208593928069267247261359610344474343834164516706054890296640526379226689269007013591230473016931504142286314881994692160387505274643561339294566433998480172414385752560107880555970337033702025964435794427349995582399444581627267429083593135463802646992828254498071533410782253284399200229638592313998259405084809237495061831448910869461280266716846162435198772045548169511644203004200444491182276803570207732365018762662218962755351075100125432248726542455313798723985187858756931379866033149999921710815322575039860210648558513710397392088553138460729397117119972510200771245132295345070417701627453253014781436874054438899653465843192126335872351774437118927062892772201797679996633047633931618517253346701342568310407240774340123483475833454328722290246271082972103518224032568162944578205177881021595869564358552094179769992841446990332446892262661460736723381125850609766451478739865062778497473285057495446712048441471864494644916501168477557925244465676071362177774479550314497170895948346030837095773665950180293612744708701428495204857131127995107507576043735291169078621927918981307677340560510372141419693071784317120914903586098208596394732404742907558624137560930391516612513517441295909420079915026713944875088042470781085467034892840015941760128403764495910957845825180583570212834928302646207011556790235411023588152103043449043894643842655878925138094098890213829611694680793477161336638446131697644016458540511481524509309104026118031799212810778209436945095856325139797489540062593085895120251729638436673103342055676024965895726300871588187571793011054139789419314171479834727624694450906535102819673278289037351052523620137302244136923361685148775357328250096333885571016867769346237237291132399765824718780978996449184791171453074298834346641383972457457885532487345245601330332875689564329072841977886547129911623017035325023242451641806717398739126064766686191953683789300349081373154112886247730070518798044353216975010660526580723770934014617326306375634923988172235906040124483356706263860846022699481678566327206746013656675427723813499301472258660560687361355858575983518019258775944389004841177849248516598395731771722021394025339739745002610839305662020103875215249260219131348348140007354528526571583742124022528612443586555317195835999530182794595097002025508198845254941060903758231526774060497025821542036800509066646988637410804824451791378216869222717265565041939800037478332822214191595239860273500216860336586984710705300922379227018423862359707902225305062293688792882037739235455034880181977777926482301900360382988367200311091155438866970880311716452655715971458694085640188577194076538738206918460781089279483902970907690291032616899600790852435225891073928727502751630693501824289185273524129378120960767021584937329037944117538000542366551753037344716143102440073237289517529531504024137397116528122242661883302049354592610452343945413744634679248589039081087745675568623629629164985901055432842487761429906340353395588981810266656242377860239321963718257578977538904801571938429762803718398915809511637648532518051522426065312559855492746539374371657278268601848051789023914690467157690211278461623773922816089692228272532658291882395155898450779403158579888540525817659798550832795221714391036050552075869006338151037703457531987241266315922559540648429728311979317957918944630642925437252535517052679557883468924272304357017203237172257493306268508126454381114645778178352228952575211225156521209214015501688798601630166358064678317434431537032721908175181035060435018549674385630155658591366260900658303243657046030720455862749438583579754008161697430362536648050880590195611693846918789511684405051659227162900202141157246565027546867037525287260697872433651065706957937065138790871573600116042451099152333559441009619753936878712295656907592019721993491541152526344682545426844943689551896576992982646357958042553455658081198090068618856490990734101859007520191154819920488298311952526332597749940926626022995956412827226810974493383557475144720351380367331937404875214467932812609130371774547737717180329691268141367717270842601819044321141168121693801229716497221998275650416413276073135988559448764385811335372339713510624625980741317609170557186149786560706463774002791957216485948165421571211864997895904520202309279332787555401197897820199627762372183759692929863772126625718794172410698971177344493226044772896145481026433879456683629405743254592919856529978177572086260469865878808416402231245354062821593287298659247899705769276156614614416744725192011007472685242988223178370075350302733135304094213923581995305944903559661421222536402605828939017194481247603332186294407703237265170446564617531309736839477711828420919111487174801691753856841476531389930603579790698246555890191636388379291573205807278056415753291819439801125375094367610696936313617298735503339388954591299096849773845445948187026217536075106176761366798653696556659457255459189226641364016616218572893627858103426115516852675464122865084195590756428832588708415672935235797612764518495653024665252734802948588863859940985017682149763116987190763951082868840734889094436322962304740126537309032290108391108727717935335367850198687485640421665432719773589140079797706977897688376781443727881725780444440696713987408601855731527979568722197532022571780663610931712116962071186229294042437508660292998864830406588589098405280205009355077024573308054582017416584701551527679394533761287987331116292641106474155986123922653278440645328333858117053061744453747881799069283632749324892615471754278303663651790587098830899618771395409581815181991897959991853417497948532771590396263313107802431457838899213881038111415150617564410141977177494352746598314122635603753897141876174161070087309750000175948069494118538111161141746274849532241800544767173379042533837723154386939123015253804773745482407860019826058841244493338540798899929948198425531437172121973257904599470606028977519631251865931573454302490780177171920405397891669825483935453071984405046515827158698552526435450395680629284140726835774809964601430084563149033454151224789643421433337320605310189965067242790157447122127118832649720383446364447733403925034989059535976963200261965922901689275299977957965182497840531956883150614394763543832806934390021540495879321517827036762124696037066704490729090659726308030261584563751447607151205187070723435162564007043887854886594255573884467158616213948561268732492378922376493702118077863006113853732298345780338011606686543570348382566593949580062641985590559054364308844503456755210668199059604318613019155910592171554321828227188861814536520533577063566513945340672340545735162976566589991183560711892266887092106734300886082141056348727086690091585231138752843049390184648005309397370906876415260646012727039128263739683323317349216094640165353823880663673115350490623067360008245700490070705208754385745143912240144996393829319440163372123347295757299262889120572057654159133629758509944152857201556102297258951946224950540210734108336480097467209024776470872649147346375203154547354314930256562006623977971046844442735915232440188895498608948528062839732769432770380734682347207819883432977424747064263948376180916637623893903603952609125320131825963642854661039147932086720067834825953343307044578432567111399516645774531297873894033649369093599288657423392901128247311005347949830311005532549352020787512055949767125362052447002117878464355191291132790784981012648451416630991415716642452409126732764151488105802805038930956676806056432431929175955602659208715917674332263386882787864184084597029151412644151957745706636608153809434052342298127730408382477661145312774359800553052630712382025174318157535426176477343086867414503867724779605728461595500005993444500322721767271593212008247408395142992567283615683487571611503475700165059471933721732432134802623543237548310089506003769260605842386919056077468961063811315432024450494688209154868795642537013233616310125659209133860817832890498727293048212410864889363744901877825399230662282153674200392450831753488138998019013510292570512467838169992875256275487327891728627316977061322114816928728483187596447696091056765919503290826874124535571571084146249375603919253140113741334652011310050242018351558938430938264746330993563322669413951397613054580987346014959995278229432459616820177872841441650685448783099591883231214150167429730912754986356256684444320753863058818285031071378910888149974525300468499848067210192845971667117822817141087855159138580769638573214928805110272906481855297538824241615625102264026530782126887536666933102043031916334723224353195356167535492619694943905818320330528539930841156799349375386027169071015749407609291653338383597240121582177065049858510742966769183003071513715331424957787962403513356248937308490182325622459011540258662747246035508814783676165592078281954340734498768499248851759086757199431026935418252772258629446613627317051217398831601723379899460284359092231435410658165200565204739287038162569324999477839499682037065588541503205514953500356092302254321389747558381608720137549260858442941266493270855304248091052178940785022815872517578057380815672789786501110763848784543386501728271238785702985589995429373783197974808317082980664472255242797562699048046225129713618069964940869555491895938783085606603950797607809886271659558360478212554611725044325644122743791037600305072895310113813069273422015283367479555485292939783926113362137374746059339675299981573327460110169005631255536700581746479916549130530662922342387510024855577562907878216151223841757866947646123436878074334028455976422741965301998949316818800028489366590829103051170747606259114681130922534289676809028931001866937152057167382524323413659604127670848038930287427599745492450122207011430707264307301353868410791054400181177154360805730584394338753233531074432414026846330761164800269613028041985438440539086874876790244188712788049884221942587326800135997572034611845811834274109217479150432364557610754532273853411134356221478755319108821242753359151271866654566424829990482562849085231881467799491788742780794422662076018569933327857862429275563145505181422537228117433902119332307443233048984783256278113692594958976323387992453334557737872555273126940272964032264623520817002823359678720003343888671821480179929201254582743516032573478905645480320595112295631466895194734348009317624347065306031389441928406735323991133570285160514034970483901110781453007857467191614125386893618447854196231222510765205155333605913087081950921863111116735898616012205582932640652448175364094920477018379322691844152053355272600152268434930380672606348854703556202859716583798223107196144941662033976690635966917862936204879696087643083462420958297786511562686597454804418762767148448439324515643505224001157402868516127593321732102780436889289340630857578492337709938441779405010363729488777585833891962977471273672761481907089749323114392920974174004461061954340462643354860929735113744831288025102420716587251133261432433442107134398096494434349142600809755549267611250736042012961906115642117311602993101767723806222410099415701836155203601118459448609360807402839851427776192631456431031290625346661122917570909900896685522631163192023998244519128243526062389659472155699528969971492673205023488809599527555278328417237054505437939328918583999296898253778543856450608060849179987839891402045367332982071221728954102538112867208293407870773997169062964169450843856678920336797586903472074388265300989411340868992978075341287401582944783446470932387851176371518563742579274411914536709970902046271251406345597699183615083374427324509848391860972393310566439813915837200985360347735639375349730637565024992773793312596390669933956000226292349743334755869740169021330334726733802517318210095161822559581214323516920149233392384460413450713982788022311483039932757364466200862576094425654222401909187343949383196901935161090308167533245971828763989319877946530109077268993310675549969844173072705834748282539702828275325683760850324616477991216743303071103825956495077680072573473548912873509902228187997102693063038369675213278871354242437247331348267708484673241463376990266933571457202948775538660063012647298393603223439969599288179756996399883282911638880732107032568586566105550412001334439723196634328814522545409231744048875868247194135197850175695359655759482609897639493460979962676474936037121245340372619175061600638895443414938191169938795275714157563532711892311463791845877609367579665453727292073415240417151952506614889298921700050045312030861635953918884520655802820241042209298566410177251526212822988532480804876026084698335959363767984885643577656430299957751659188597813039123586281930247249631777582123953207857235522177428046218465300859562793656393637060408966197421186322192861561266412381315329839131359433810964631870376768891322454641513436995259585954901870282672161806809465837653095144314219814034375809085471854415463837211658310245739521317186517985214804945303196433208028910477194122802891378644499945896165245146739660661289277280553010392212150420776990734926875441962823862909508012027768148065701761291474582914360097095239981555034301031473518729046597897958423372879808826389113324806717554616411248320886611810531492802166080312728994072038378878913984905688514042195025058043354571603124493461184066167027016274903802911609088205305075922355447431890907700486600344854431239264475830432162321571289097523586079276251746577844861836512508068916960437073272390673737285240655848446038702262236988243650362856685156562821212077291597806365523273771386895162267515542768492845760742975376348910308763368623229178115053579728119804604836520311251410940273802856276535130581824975893253604603606549307788906886680719582417592847792501485028536349502788429502623471297654372805994683684575143186204472351714395887969771374214163495615865814597674294176830664821269024326798312903815905319680473252836477401184517407152879354185254085439830820537541962938959735160489271568221793472210078146866938426244097565808923346400627225308403070906561530918223551672414492474246038034513350875507279574306197295283465449607128329117533186010838387402319235582277021711983836224736823462010404996377507946479963472818472144769418718869057210928805925970086372726190940732898963813884883274231427473113921510832209043249003884943196712716625130816625010211300774423613512105559878706745923776477376413127329016758106357225780402984550225334266509028223056092855987688954862973361298972148046713503943994767051753012937669571417560799799390644676284319412331150315381640092131577123576283886282040799373458710852695757879519931898460266624529582013699876631088130374792195998069154944709705695013616359678731911028628938576658702403547800841257434265449715295242629943391178504776148831377575392075065531112083699248444926126254995253032263284636132565087221184341286259113705501135145766078494661348886974291185145241808203880626740857204362632428073629192412089912088193860757147280022493703599154274212772991065975405370733370638940852839860204188464216436303628530891603295311575779921654147453669892363517271303721045705595670917229322205847358010983383510379613408909285580059259534469093664330528633958316661666333485983554238586700100279375440091210766013490210194577375617544987226178542603147634572756418251230981951306501463377379933537819643894188768253085223707396934126434570309399908866992977286547865834359422456439593466905833765927159419360134246618373168074633163707088106165937991167674297073559238574802069909729632092996323090425374312076942045897763151371443650437041744899006281469403565386519675276572800684444450344667604171783876906500708129593949753186527641215580221063145982019747679723169185980199257639662897385949204884228605660699361670638301633722041849722127754789807149012225063587584239845277634761016455186000362306772833263337718437393412056099998633641474481860233704647043996476564018475958657290305199623029470557929341899736126328795110682740368233240139579861494648101537106907649992222487656106368638684545754095426146990369618984844503050005873191532045596445681435953416010079683662941018497115120903002191777943268798520708464179765325663012826495383521562477748910992440114920443655857681318777577603829681073759433598628872569174907109876890934691581702203545368866130469509917646830971484346471282262607527749342345196747646477979146989196455673661128474078229198298883021524424051883912999520592758110595870579191739627316638175355944698541892955598374215334666038544395374663375278560076167600374067730215960085678284975812301340086608953875141502345557975951949386293095699070541599161201015611887029237673440961140628648595457761202922976852101038445934901645374124748373588019266406154246958111675334346937367998917864721688354886118993756076368074492496958450714633152697651842856815740198774152200494601883946524315146595716946829196845826298956834036549682323293590791879452562677242356946459806702225153113325879420671591816891932057539150314851046254124492088340816825823105760048756446237125475396341736591651410664559600454575959656136532842252065522286346575213459961243278544297525094359134611207202752444657412571867728069360252998539269609878253384433050367036224508655972332064848287686962949637908204055041838533166440899057575122616991716880876166882655241462978284400691154065951959689251209389755153848641387112389161069226653001471606347917192014610239486189113272192121738834793024658714764129466249552950156267274184949740809561680960730895270597841416094859199631676019809120607973123684029359244562461374998520855246910141330408969396692256065710926024238149199390021050952573058174249892487218517689323638155700675779010616950002563408200555542290172853928422635659202407407939601362978554628089731414128455654375901681464300414995756696394868791851518330950163625697117699864782030278781171313672686756056501633122126311451032416570452492306283048384090213591202326753839351897973121577252031451241164677049509206282065547876806645833841974368770690288636600582655380310351740895633702378825418625299741184833271341880122633055184571726860684823948500838761543523476448459101271720030464965661874148876952477095606251182774339481767545970122638822863059657810989316561600360695782835968907717298223164424356644072515300810418020009124807996116900939014391931553327661371273864605189449183132937396850264104467205176380098704140693286926803910053991665487718605683914654130761269891130077575563571601473918755687167791091235652113805117213909380139125303630842059264199309407013755175195838542441347989421459528711085413411142274999772072341860476848130032710082499685509222257617817654787025633501064746468276585568388286823467733739633420687756471027800759929070611548905906025256872383928047500182938841953858817561856413021056874849304454137880069923782094089020970289221598944289589576773071131484938972906003143199987900253892635870670586225390948190105039775127589151497381130545465099846954797238711658754051565802149644984989813953267014646154647246727037532062094806494898010460599779967561755468314754398158637799725137555800076644321920185496496106854609011854983754365335426625034784114705380628451025610313424249945623763173720968559553555185747253440182429933495304695436414333186865823488455649942447414813929737005891647822288962937892938764958756807897240137870063900390178144179818346191722308242003474935566225447795994587191633012072074162570092795680112156709602505048220000172565957228223574038788651411302486697133893318372791416017423517580710053899240236248416319864855539861679809190921564855604071455539865421248639667627664472430837160422728495942345281438923440361213650828096761711302622481382256671921907953509386944810422740033869550335215067191498170061266953381808293059008489871291285758217978694622126074032653745396433875668867448230251102440746202927450819462009897308060768754146006742366465376124949390415752795853700812728083621424421924242558152957373318416044170472200658443797613692433653756074126261704958510318590114672798168975494286829022350638985550947185024562349189279739832923499059734146341338224358537053899078213520755562929626907872118487802685136789671421447449542910755233575801894689958947019360282748692664945457860684736726701158522349420087289164672081115972002717540495356677280289057558079405370171552974408204457363478064946692382808633156305236428885594936278088760786325172017879875174832426017177905864653203668633930692751627188578138346814557803124456947566283100772284514711353863804222082091944296103458267575664288279829466231427626837670487133371622979052121835129587718915341021002264677481891099555852230962930153927267252385793974318024899047837802825066842344660652151781567403836121042890050439208208530485594522919180740661299581105712647844043751512413169869464160974296933207246334056881784385375260008294258586221097885406773770034908996139211836984110055762291054872283007640682849200020466878896911673512762787028029017939717204854502143957172561383661365923470951880143034976251950024955613308335329849301723059001018502214282539487937374767997447496811229350125285456893152348463771972155140972215600245747764096352096330958277148166115153568868974036507437848338675491796595813681110483877550688996830526696250391083884700247345009914423861143439223250568848832049009258492006779085720002379767317138252394737449154463193473947224732798676418697458546501036503566158225348272711718730003519666794656531355489196635194242084148553064471133292605948298294116825564094304992165557879400094944697511163323121420259408125600572675758068838030042115308008712775301234065682458763784795031187829290617012890867187270618250986265749621018525312071045096588251808575911740102420426608943034158453448602097169636858365394883554070578631608357179522651856163163828503001153835305126870491199817283216879555412615989496288081123925722235294825493616339589339802277176749488350105761328191292269638280013835677712833299477745069206666552318150921726681545267160621292307816257068789022608300077228874983055332192249873446081760547591921961273236189429091210076882234833202119020483085423382318822986997409466208110506092570481674129994717200954769477129465710688381215245133490567293713861006968660506707289692180602788391751447264426954294795015047639033660782230544982950111710073170835581080891919646273871624085513766792926881747502483937166071226305751282359539284735964171990591392517801879722822300650750883814839865533062472521807181334692691666191190487224009359226785441280742361564038191461820285276123293671251374181415193915032821844137727265945602015301050557189153097413836857926669301889495297790915788387341552400498583528095181853301558749984854605791261710982740079291050274998222946920927900340050004120571335892519915765321103369012349293145390187301540660595300144685048863399480647423116772590167889850880071856910695659647041375815274768967043537045801925291181181213473075192372793828461377708414287452719370182601699692638034942846248628849906967493317643520046369970486453822627142127458506674622260675700149518436136559656679847415264231125786850504898782425353682078444850358658133135449388486395383613183101981063073339780045300569972035101176540322819403294105860386784153072399242970040603733163786028275044678876293865115691831490871023058047283749773506887859917703628211029832919183991248907494615885689862368842816362383538066778220192909978830414691962145534268396545141348622353125063373121823266312434377488045696368798472991980860597615305649477411509649428822510210250993313577756404030205381166650501969249461081675651305356499683384034955721443548310436925857130907438481170782860197540220842770754108484800437485722955296080641825332001905837594404132269426209500795961102240370945288538860870876980183619711609812131998035848116460328772603552413890801153130037938105676210222763590050117738324942327981071495231779247358748288185069253935704482717495247066908314192394175425332468894317959683240681754999490615704516973257381432099246579924833608195671634582221932741883617384763084290002139025717936842607729911100028080051135287273824338173080508819855099161831612296106053327252197614486174438978450044637220406256372141246214901370120779592627706839190782453261610568423576667372668285737691643819815195132820658627032715906275432146192743158691804455796302176784958379593584484862325797681871792956990869270347692129667190796215385048470667177409159070158840737198212747733979904396625272947761477544953551103665967504460401643678594204746891873193537495018060446219888090933297332152750861273777037731397776556082895825186428604822944803765135333651396079448775034219182110245907004558314758482085224994472378954718849517446882844156705430489509932397678163911372196799119006532766712049765310711399880994927106164372867656504226210801130934040456617654253400780871037420600850338218054002617650711068459165980263665329858135410213574928582191202571032847521568262771861722883142999132097773434121611257235362161543347491245002196110162393181394913222213745281112553079254542406400674594376660921281823264116888390508272873768507151899514516966694246798132659584560547841638247456252882130376034844274946216012885221384435411368976651581242104669282546244820867711615184075102368922153050763031934021879623994210517728704666473194505660999458602616425723357331306513929255843921256588848713727630445274383414502362646054521769949946539734753639999337811295510798362804226647797247370429759171490162687727130774208086547661796920827587728296464350503472425336735548704557419950155935463331729438493427019470212603410782371868663674877022102804508164005078283290856907370356844396075024359517555472011175989924765709903111116285183947362454895644373439067241681103960024494308946871913187278293150435659779016560279394582550380224024477035907942336270718654475588525210073369519443755885184943821231922825375150927914026208619570524363675190662201188859278903914243895206836020341237104278417595431071425140378992039361948236154888868475097983498691118364883187730696098692930882416804624711500410449853402610750723077461216670328117718536140106943342099277089621012861299917755248202874769569122080041458465006212903357320560367649759488850215106623475992492416121488309558223263411795039160005224966358947677728725175875860630680038881415548075027744820823440748806276292993759450674679231595077321430606805274663747431875218282657362185937365667116156105816608156411498442095770975822323087482627255054614291336059121655155222712962948957839583187666608642533091241775404708496345555847628178910758470436734912533712140504226340171404805506803424732211484449873721999603098280461437769604921653443815072139819197084064482740543893187061901584217612314419765310132164484854421800768812023050574344293012876359620981180031178605978401594406874606450330077314227441861588465734316104563019159776154198178244414419546138136479769362192191943492982937847076943118866523938427428112647340171689349671471965138198819493302973535344567690283072917894320015660261501361683142411421093849336239000658726241219134365299502943522716997386184567346993916413881613849952924410577066501620846281475616208610981785441524711090838219550278518856788126804639943651071660547171222069971331255415211638963370365298083388695176872508846610055582931394556120998220001602315213700041987518571428333551732240525548419061839692344822729760126682896038061072144420792237860966555546335406472794937270796746334858379768640291674228634562295895492482419920620738269330967218035483098603654345057939243390496437580084898283430089509579621441708723612148764343852538406553434460019979612207996462206240494868030665691036059405240538306650272187410024528346417222212132136830115120259128646462969050890510992777238157679415737918246474514747818236641858913780333636000334131028569051756395861885474316167513908881080507287330326993189469767340021267140568251927667755148912884105809224056228577796016575405205041906289191921974198179870172067750361613840523677121197758831749972360587125187323034446628030710043255656516990753967165732943452505451707914524871149059365963561043647928099851678839689302433315588857970781476076848782276321324390540905811906039608139209163094910930688462533246313299008390812671136843001820589922139455332627901991870359066015012751165680914159567021546633675727718537515137222576753703491495417774950775066915747089207505248483625889033455661330600166477216361984695611774419716133016152763767764275794978375510602647918084205416010777462451417508808646295301618649861735028105999012875730280082695255370764265795027230185590650555240432834064594305006660232372341175750493111355098824412931886000458235001301611206302233484615547718848139435401761189677433888949079509832546658561454793593928578633042441583956489015565290286496879211118760078986024968994962231129263234937347726013414562479145815561352789674337543777880762711119783442867274226000378328669097282267058851196986847445436572768696681337520493299716236951035118066948729491902684314010697041556087702916063885383297798442930798637506612276893391762858168106089039952877415006668137525946453031569828442677012128815799296793027294658597126025832349135862764387775076806244185653756172598214592799864371844049993752548627021524109010431889881196807819071892984460972562996690361321013323983632220602748595798524124185735884273930539604268932031698237816424962979226078452929325357613928169505220662218852433038462039505481967340848226512232895628974846666356783804565720637697113597576299604595592379306741958714065964010694098905640953488069194048826540340958157970557369441203886993779732521945551010438984215297729276050524755592375197127315552296478277296382274356184042646307047568697850445979308038116975614293508511568855065914929647531554843137639018432767323064528876810063928552377404378079507855898967966028923361916893610062124109745824700635535227886197231285509140203750191603784769493006121886669814137109569537162434201327709106419734156800969579997443454817568073787812326160049043727891010114635845302322713814187516400742882162845388007901232849655634495079456813377792214914295732099719304364702957529158097492446358163788378779087976015678696791318343177118240312647276428046931233436189437813511537940703333446049744010800076696346069174151205702819408203208662891410943802354072930648684821005083609409667210055129099727421572743115007119371224534162219165029241970752672743468767043695525346858881564822019408492232809267009035030710376967338924789222147935838110654140145486739520102368075131612728789775795323236046667794673436783861968200453669670289725457557222143353798657854347163111931521620959482806002165859422336700112925919441832570081934712787221729691567989967925824984116445532152926714536402571651668935305173069454918599610946657048716137623206074699033229251961831252499597725396801204691579320693157140505801945684659079650145997151029614837489790420308075459042804555270130932809552472244885723369296911895683639320541073511109938499755870968013346756611921625728575649810122902506651761414044308932375435496711082766525371963973664862922100365998589661049334625903808873175448468608998584248472002778921995725114791133259413212589625568562392571523372216517228411332168842179717975441926184844659574546082299729049691092924756817164897447143602330789538269183065641334344522944015040224209964945064836197139563078546153147465115330520595670277855259268188459420663463904476056860960058885596810443800503651224692809023117064190487502881183230258546514870807857153370291108648366748560546214915004594736068661904666477243710269635884052430403837776629450390473484164066939469232477181482988512828570344717445034922003866747712018601161293274471225745495180716539450867562466464432774205600692680078472465570910009617568078267034960702936589779515128193641441515363158591123992234783611362883249743542907149077343717480812756160242485477613836820077688297045982689428162504476726128527523256543636361060657546906650333206395476045352828075095863207993106809719998460015144059578790274478063366128667831090081072789038705198609915062042765968616845017196106236499110571310936478995136058433714227485275468440048468161592065977227352156112807690031359007173650537477702381342538972364510195364225574553406549553588810649139546725953758893437300125532704229514002503904825873570658900839939289749723322833872439692453496443240985799118284905237876462855954379643646212367078193863981705851782474011886111583058378290702225598487384204748001972608617016689511235920410965960260451777420704715161508354391525481659493364002977977054853933703856896805371430860234050034907310097198355446781200581497372565070265831805000661469755421236162592980205900837109252301037929977259701374681228560204179311840980189823687868907392086043658074210643498915378485141750850102116351329177573594088028830690249559422134849617227715524601470860165612817037816972322533264499973633671645455645455826862083146927566432626978228898516975689767509446084943622883764264605690952877818590542942977497045868284628175939284516880970835853117264726176738607720702743863144531817936984211755279021564523313373612077061088480903859923131216260537025461399372344572270244540622562437579301511886049350659427844292584024373408769121756821955367069923349177744702797416177425237963124680530774263042717177615937423143251183600848739134044415392638082141808583063931717276175974903369810343388186511385934314775541771267641322891972892399244862709450037190934574177179302241251118078185970928672027320020203694389579305372044676636340982991570677291502927210958683994632171109967604364255948690604308636040107960827193680195153388438524299096585936382005707775712912436156700309218148504749469033139115819063304588620109697395653712272709350024800158549205132001582008981692506328061991644445806765680494122851516527181275002720299888049325985520184145448796161067664140221811508133788542277942429599610066374605516687922021645148534794131934702950029017820025264051957913402720884410364913693479226607429288494495394428579304669699521158933465532463692758407205003428642634177505648963536650272486162230398990308589012500581061892569929162194624816216058889858715074240129946245878939858047418349424279900123895656414144827147366349903052241768361635567587954244819199875851263716602012274601478561104349710195863187337995927307454961700921926995501411755783355918818906279375752798805739922929497641515515209536004612385452503086380812833969347421063083474700764925774331204949489977021801643639236676375841728885735301143520156404957829486369613292219632738676564929452165861698246523394150787378156739462017365995888986873397841353863371027506216200563399810596036583982092500845575389317673862435927786705680533341599529608741507293810876820278169621173974149072484625798967963373262884640534616913352100579992833963911669356435319123048969960646387925053173924805371926095737590469959883570011737963617955259198701431378246342171635941401262903288382430074912855411421167827083607107064912029217786318118323850800414602878219374628977239317024352613906780273503671824925945383758947171179625399474450023299661440098828097872497083730359386617639006063550001780418737579309709124939472281624563095475092671140681539513822842565031653483546683432669712007729532419234946233090922869225122723453294357523812813863900935717605989700962577102113553703891035121213506050566830294661897780142650232544007136555426311952321576350318796613718093191797110066396216327869081125742615615063398590215474390750322398856246406614772680508045936635872122697370500931723546585838367190833599944788150200669657462877395489982722356627947000100158323833372347560739953709902577596967862384585228477387426720215966269440564628066400467625796464409931962522663144725839839867741121997854551347182458553893456306428536511343151729218155461458761717538281578998242082811874353245631247514730857031593766092075597489727247109927145552206674040683991298277210196769706227639459194489908845799474346165661179574039980082728237636731524980280957214742403273647489570464135150350013273243259661631951523588159025592371255127758867357759163255923177155957132579796936858704591488372337402074691451248545968985576688775106720553591763153438424272187382138198172593945704211835472520987340879218890232450086377920040665025877351024267560996058016256867482940849338001599229560741757422824155095311519785389837541064932394919470894055565842608693000999055723889204351868212432445427771653462365837085448126272360114092278251401259811676180749510454285990573459768288000492123976481562139316126476269788176575630339349919671519772692620726926624734533590998187885259781823776339491315243942143617358194330218728815062477051336729548631608631446704669734587468589200487794690071158439769925154009786422034103568351729796696681254795428483352968776034632647029148928862312576044071104480067117370127329723115764120874432297439516881447821101617685617615977631166433460714373323822865178332420339878661997873477196376914069470817231097243300104977809114199540633876828290046595229841123891344141621697011403409206497323643340421061133541302841202211056394060113411587778765940657040982252119952880753032723870124905529426523180232380788720152762805790709799296493098766114859160316070775175086898931404544550705871938974973448039585763386736679376813246322571160836363673904360295206260239073374303204326770603756928502341274212537562487097260007492858381569628543001570690323509614954978561397576619999484433960846675474991155969607979809920359676112975022082727364634766383560177571626720613734830715890385025268854597640818782468901697126201426720189522380350460113391583320355598326341592290796407678744983031534309044475316278181541136599210439586549605042675300126141790911361721010258210666681783222532750721233952694053348821342622671815229166797887510634896543077766476243686222378744865066529826932059523342984207103767303344907937528076843430799461174881039349321190957315389873759219397868523064907806020123551115180750541641999586165603452002224825094385832254612000190986104274438849178103983545299701070410083096216829312224880583079036225457143381753974658327762248761619538523212429394025862710542524620323577758092244033217734766744526160267039876715140081101804536621848682031750558169286830630672620094543096650522223481679980735771018850730491408179217817818148018616467034362695948927015573417798723348589495680316218860576137802397159686942444950174104085001380996918073419050113652392988631263311272107064987527852217698112636076933113277126332683202264301336789649195817982308089897007362487586087771953739857906940926827525668790220321708914764355921783882526862600152712697928414348443042340511630662420075408569154698071590484949284216224632401744199159412567376191481316744503753430804447455635108906352814214133606078016889589750565515809262671514651845873710671791623327762381573376992408051535886586037878609364769068613917473412667961288917132870963909883955623638162908736972562028417717713375948067892456776818494824846109034496667338500599094277713240811917996411803717709297355151683635603420545902743863324158468145382054738671483915087159625243224060448155186193384743778464057673902630615148232499530901891441401022870515681921187112521607576372614672438303548564833673893777491885062002541694442721766098135294883222661645274087880827173067100931683355286271130840112574360246250617524849681390144516364173172746834201774443843199786259464488846476827651157805395346235001201075610245355347523771675797677090775544143576694532505211177020256626361365072373301070025188960853896093652251037447154864180380591468276585696752926858682938525060455208750574251764048824082788745272826507516610308799818139790939903201439112915504168676037584968810268270996867936699775993014517406996766130609722665568356941040387096362476120738442363112246783233937852329474681460259785255773534372154486621474216834571109199834669877301843955791890696953455395892660467888775542742669991676449868223165256763790645613718930067630018732044608652939045042772078369239551570869620044099089520094570417767028483173701857855496962216447557983506636407353259372114546522463608118719173258487192914870263537240374649598192796387007691399724924085048202980824816619560971653349899801423251898745489797926710711748008315597849865395140011365432205675305488800303121823944686190782679426545875816789970020946062187080898940771541940550277216698620457374541294080256706730317359622572977898627131624843737037136822477364617786999167457886296792685710180040637077258120062234731003572605160543567972685849788033057208562276013479739933707692562742851978523339048495208955607809534513052823362955045410651723609013082754814459624471144934098786141554452929437987415186349382540816545442332935616064962344999070134058681732137157701157976780278333178093310595402741611088521496592603926681343812426021472488922244283687064518584971606599879298701894444912391663178205884203573503997287060995220772752210135632662273679644330954076386205320305524809127062220454979799703653846162996638992151918409246236452511487815609983589831701995532066924485690970439714632424649865036361376944540294952757474285293243680736429282291344179050114145376806663868751859760410126335599119583679201372046167659167744854175643647011980602555177583724324928636390466444088188869877881758053314480203761828273560870168072387962982866652650841249890710291428656701899659284070505596617505885008328481392414936174674245723526507304981029385851353081878918147391752210948542936967415350107097940251004443109128753181520176757194435801494217358921373439640032116973547003584325547420643808516406788608488359126843856708013245800667596474611209207165714843156632431091794389806030600375659311615680349481232767698852722152135331697418512879387760825543616139520135267467888933529199875011305712812971613005792600650316845043175590716891539306060339636847064586891690332049603686029339688181305401402765537032342094463984149182042662900433221138825510617836975552060835789604970786373742452474007749333755507701401028541130700337509046645918297190780182873479295660758955586960146641298879260196684645175107471612974344457481486591440841414924644156484844758443282671035409371766918525863691641734741587941830304611252080601870009060738041853011119659673237496405831322827575734093376778169993765289867762059110566322698369216100539557289057943639867571722325468085151943167215183720649369418226559588024246262372838315755985081592733351250751502665803876091331499832474584749138755884124647739579954249904894865347940516113536377508997483647198801673415286118349965117421856702487862071662739720864523250614413351467178018354082202054616615010226800931679185989771978425624462024897438286736954856697867953066311725940661502548896200998432324393773363008171005953975798714330725865639767903652087554135415781700709288274777824902695206729077427861582878566446293664968461803798834876324681291229546014709983482578035920435298311608879817048733563294575426574878935235406205369930561070477817719936996570238841312566687281522837995844465553874432319187489091837412473161043125359681304857395021202079818332693322271926232026477428483249246084773413959181587127904916983748962998629012408046579171965826312618409769408908827604970240888937729038873679357983898416012386912284453033130252450288453483750933738917697312836912267918496214863909656675594910286153846300403717455294044927185372181232152588842489110654433098594073234768294275781867496076436973779433731707720920166181359683811714269764667729920941562715123893289776981427224349092433456453431090832064333633306743634582872413612814880134264746477884557168934914625944864527986889032758973677609570058520903055684983851848855170350671051271923372487295870234348382503990286212832318822860233013789509585708307822664976282567882183493560110417470392838214885180316924662893718541270356220310693755777373993155961689087435711363132994431536615861857669302888613961286511632309832763349148650409386565296391701422862321202408584338898615296543114429055025698504567942979115755698874829106111970190755391835770198691572153123333056066679829843126657603783756829513100482182102800814520294781160824788656416848046164765783483476940158853498322546938386227110517169202612599578813014658557605760010892219072161921919415669953163383772317915296310088170646651016946681081939431682403386024387227199382706912104696977649013881918670917465476284017074876355787614436817489683521888771557755242695029825027093624544016716093090524020137930138566176270733211435220742342390234964912718559189804979138249310133243801745705978956764259196387519949693161737637217332837430735884105146718150776970139539448689706722146906431692292946217799476930562258020928680794144400976877134456953560749562656581562871242320107683595268028230498816283922805485639738841761533657446132460878759051587145281468810485020192930555696745247601229647096152974470135821541904934880012590956149647063124839930660002383055104641285446787996067614279180279878230789459667792630948533993911466347100902129785653118665905193859392466996067529506476509215278952988633066019635605353015382758289906739802985217986406492410819163014306472817632088825133309239455566057632278346980842269323943563798043690199904137533706998050048094520694963557225848335719466190350642251611204692885737614278517648839968256746090202004814610903638806134917682765676990762318736817462014250671752551810487470509507465113184730973949117667153628077866244509698858968571043077702522031275563568911543826924308619716267003970148463545959700107832493261360374885107548274381637216661875511853360615030876520412154117458011181018620084181600125157308188516452654113500259446712064717045462020434722959024394186435208136758590668138335553114715413050564465242308722628557547334168639690997637543488704117856187502101494002096404354959549106706933946218026113219657778852979965672533599813162454261412154426686875699440801512977707329961942950665624099477821990929014343116111951218626503500729621949683572539168379793848323217945098908675097061518866587549775070933987131289588398837042353653739887048003044668589518024861414925166577874132550888085955934357592380405592941568766214800485985681173462671751074818212066716205705285659917952367950971898549255534758959465010415796123342617561116836991567778788832713194581325479969215773538330044670292502072207122886860462835577547024476839675331913347408937351649582451269074112853376487584425178099267751762058773762658301891218207806338414346704109468416337573333639599096685501105564884795200850445127043115783635646064996239961372839301112712196743930208652720253656255098270655452676695190547305801369545100175949109046485830002115961977626863353579655535199487862314734007014260296095327557261979473041368304463844195916646636712273109210519611638517757620598510055983678472603342070144484666951910105923030964666164292155678240895414001154205204713467245244757652281908690418816980279125958568626971943628504204915787513466581335323534398474073344869958241451260736693413887971170429758768055588566563611941702763422626150238238648173447741554150755556563017209093681787018012224928722928242767481638081328176081784160975741628577607515628001996308526271362256162445135396866432962220527234087130815758270334829571009378960010344956487788158598414908642341254092010194531420016525740499335190998600130474783934161369037198433240073731079123417769063180407518750717887547912408138250034207663854628694418119320042486447921750757178546850895184857479122796928795383377868952055864739233083883679334450496372673485182259303417528315745730110489907096385947685996528175687750997626299176875603377521565792044448948314953500587221378454050237687600535376265635795863848224542653777068804766500530988835723648468525353394478575661036395502619838891572629379918565456206413151940776703504922079066905482033803767442868841142025365412880915806253886513996424165463861891776620144158835447131016894258056877449612738979639972298853056618300458315579105925006899901630199319773449468316712797980676925212484519920849171966862055161351158559954798121390812593146279399780944200209879461350962041896109096884453006065439566597494165105737847003582403535529531353086988239574596994822602789944778578224854862320247469914196084533938411437226530914404613394355284854380114244781996536463468722219960401991504470309566684204698523558303812537293555331427239743166219120104025916267909645458577069719840425809017047289338025610559108363901981248881911220824887164945314830913774516254944572652863850415611529553275267723044100240450617445388845676785683402182961024711250121638978481607588944742631136377126080343284265142642936404779798820446342316246811827022781784040257741444641523831789600702442914440761661680390995207429305563908856152802018025774717320641368689385440010342216409759452293624405265844949206318892212852437753627247875915998264587192033923782666735981732346970878786142713621019958059429884297154207553242981346887228301109487514220892916483319795015659552971611816086246266329710037399381988300798389437732035396431812833265373157199418537945250411645195504701341409083402172239861262807290885900964294153023096927080774015269475898049155935485391320248506240418614196304369319204340452122275468063082054927274918264720265503151820307076761676251363169865283398688863994813346114268165952876468531931313968866852292721249473026524058773264701490428681176687900310693205848004226872753264241210267387476975772299911670753493076038179020076307769070928595998082226174989132174194169501872974999515049234379964193109688077271743914293335511708225971557621369481706405090651130472669065368865728946261321892967246674371319191976148445407673037847409897376638865206582714635197638519977922282112872404452124525163763498437056631377717328640728248299477484432557527308978434933514194746238477712540223351728650958517449045539198842799438040259425005081157432428632026534240893426117560236275234992459717356298495336423868181305954890954036466590807587007099400931379534331985856974856579796066703318924939595330064696187586826717549279152479896873764103438156548416511039552144381904328553229990849822769609072751871629215455281756039427462651274312732203347315342830524126438768929239077311807241400773422604736244854207144486815304266382898383832508245629351143583866670898894720904717839440403309513139827272212396446578588847708203388760180719967422286650456658914755319842347165510056058079242259602867002305804310328237405249742798415735719634725756949464299571242572649877279123926694115683746172071873484673183534928067114920439403500855824896049428037352100670909516040683811637862475006779311748358768483461371143634521374884923798467096589265085132189626696949658438039536725280767462033712317804884917061041178788634314388925669127745935359897279357363250259271515971121167624155307218766864847921903232306060732823856247095911921737658134153635145646891045942288088866349361819438491468846870651647507566950625174597135133058717869085585294252989871163087887493893381179257886579844634458616846401059695890261371464199950885411966446952658332461541859789705343893672170850964100499446767658640386969806192602342512099649368174751871589227692919054177439114259304719909512536403293581833064418620347958710683372457568896211970727900883983102241165762604116341091315142537275999061625499389284617360452403574977301570967516161982862922771957737530058787468432566515041198033551869617591767279468101853902742879333068890133101023006756856993768255630653031043217410836652895482877281143224845596246780905391246481235572602274514490386136793902614589456415266053018595980553928646261887281077166483527384530796012347345852750593334453661249276243596894538568163548782676608125712851051902217443248817913996964885039753563614865568797805873517446915050189390881984007335889077818014148638673178151580197372923721553203097260172820958147460787072179316605619380111725409268940357388735902068734090782728032959819233052384786836587002114686600728292733016023219919548903291063499487208009741302960384112331619066726901238044988986945846393504231257890172761855561360862009678539005680693103108034194144807871058128377283833117873662470085751659199995577294980797915538121663979223809271716148181038225290865212954773521083994793744716132422696954134004912176978937111706604295248751983510299611148458333506699928893766159102811770855294560003277600999980424593691002080503935035847098499838288160888772502809868291139659118661088698112534219320489443087620332599260467943573432619144069297150376663791922552643728199918395305890279953240811162692596476183166733759802091920588951300587960597913454324974322631471618598073160156430192880216673394705520264119180793414578182844242238133109719910593330284575832042214935460077710809751075979437279697556565510418935764872463706208768517371999993291023977729096116548822073121106944307469911512177068632308894826738622315797235280200270284288989846193859992433064653808596179733006930015112224785440502952590066599605588765341271040918810339790103219372818772140823916898566937376752578903445946104793148963464833921144425495593839312818175984681839670082181017707242269389949191700227497004168882875680332082264198097465621009193607115605219634462282445547467624749717756886553713464628799999933507773508213180747300891970740718440696333511565738644044256715514547396946508773622164178115652623578214044495557852022707925956042665373524719524515400927259436318936566384231673550757215288386913056214736079109877460635655737235312116004685288115205865553875911656541506878148205172934233673979677590920483963420461615854331302047908128849648668987080856343108499898180235830899785877920288473826263898562123140453191851308115896967868083495253028431187161024082298768263010472900717584020466514827672788457397698319534127052643430799991461240728374434517167152470925568321184474842684866542767878830911284260874470988622698733658062804537314747723812153694833550933707062340906763670415239150773620814100322901322633791954880424009230982499904747742708529742667964791721649975778811502600185871805973023242244794480598114450884155650714445862590775663321937558326177387744850401209647455542106886331427081753758918235878078582797030511528412166731417659068804901958942579708292040537988035633532143260649674303330860973253874650622525370054337207983988791790840743585712094511003719437053200050878430466772459468898985276123096365121359923113057513330588745096581184228620271437146684687505313671778134354727696556107654766504708471644520708713241695163054549704246150242028156379588908666347020818939522040421622673198389994165331444423873077434071771429896995458940831418655807381598603243328919742953905651378849705313096109633137343781420372764620590874390753389885887791613945118513239044955775912491896116269038960909683658085188590732663613949833509283186754655723728274324232959088754914472712917676743578272344984766028986713175108701875078013059629155597693641199034258713910823677186284180608757531573436591459549730617267126726892601595563854517828318742065824286100667008736270636256190669496233478483940332408412725274053679675650849041412626243265938826730525577875398318787407279749361984588964072593591151651968520757846363585794786153635123780704574549303658318500819533287235155768733755816092908611106287916703013332081016173607925741201889667863030517772923071003454094005387799109498637903163053974276722555269230008196295337979634857085634908420194995977801858469050119571322492888072303918434503165790198175252835875209189879998471885443204883502648582922556181644936829591282186573520985082962691774733879731631563929825962749802412859806468786657179275696930186607937401278119222326731074897426337575581256782246335238636058024430330667929242163158403938705997802469117677919753636426917434898937362184145743197655853654997825979053663254872367947701614839410054183884418735660120571458289140087614728713203224841522257196266694879418910213183177136303730559496320125911282063077410664723327339659481338020201057959760531376231918612809378357609411164258073943006547836211704336295023725742746549278622398796206051378539819108571954200565024782993634336112725762316933056741257995608416902715154965868653644696051293937205752614183141387552568228744368962859044193285907097896834993628079338326324579848767690658880308633501361808262203306074287048184518549429206740471955096867502631611448335423453782844253330544495295554012013189668009263113575719916717230457731320829035454401871308938576610107937996078607904143031862568984053206638814433891445924117831784295527508060615674846695487518490533810409234289282719813037722839534228755293443647549437075391219464984606271911028931549458985477421508002499339331402244545458303644891496520847320738627070953200292746357541014272594695082997024198787039874193002667329214637898824632282313942958962663567835048293016042970413469819766952242823421288215013239028485345291737638627752335372960757083261439076520979272405348577689796184817035035436651524377561492845578167078720545200083493557217710686893622317458298328151524020472857378215120106741422221410424384218058583347677577463878534267620576508355190932776544455764189776869329274552143666762106736362890122592790141697375886899383067713431626225022537537988288824150800041293537270050306070188922967627024566084677172729079541539620186275444791302936753639423607185199053968257899011141330215032874345477426390036178909132243691240753878362760314435428571135452702662420877834315259743277674644644136842609150912875712077485743693200465831309487349012259370308517697348964702019019996324337257969612793828132411346492512307918220196499624816338761124160231508202318423256969067937226640951306438010609909719497643712763041206181917204217422286942178218608545596399857487069978084493660710142584918922747730111430274751172915991702651382086926898140598552260418567743196493526779101778986270382067722133443518294254039503273171469930468341275830788165431941854536592160108499448806929307160125821716509545160136403926092956622550045507828899263373808564449182581708013129498185052636403560320063206846265542735323711546524218506243966897518154197433994935091785605979404643326475245977677585003217007142768060920016647658698009179377463472429473564397791878253647862630116812741192306692882534608820432393624686582948264429754815268249071253118999017195682097440248968175881593486755084117620343160389484645155774243455098301489518577243300587458888807177337728560041633895777460283614481736886305963874515395902594775379646278879303363512575731961704541431669126047850383027597170503459927872961762264352295109352952992925859147745066183524227815037391433544595315270719866259000783939388057397116905517218755370377577237675614695481094498472451081323683696350026208648930163463892547907753476033521231597835656263289707752223646662927298820008715474511325557308062857574462026498773700302312686260787344280211185337053548759648462745570582059214822106465556624705456451606805310990928474452303274976447386194412291646286429481055498288137398249006532785168099222818487161233731145219062094116835101780688678499537487671075710821353888243574763923962682144528061097745938737253277243240244465130785429787266365156555544221710565538379730407654608885970098458529388715983084405291384186973376519436452515727446255719426863956156121028356962418973833157472469135433994326609957277460828775861991785362658162486152153799197363224327069701039047391875073155065279671354630700528776043644632613228875162451853776764278990614197657396052049790905730986394015470310801420386039370026023955230623991103746564299200973707624050396923425258930446272762340194897841550107395605820784147770726129676359407125345174136343075280985669111702409666867198201730829287394668434135156373796713773250973211137764871047216067955295922648125503629739225591570996072296018644722554463361775774251742658913336669722357491039132727019328352018212745382757842052795728329640675901619322845553095640523288080071051778799484162704680553912123894777649917804847957627939855890021153789271712177533567181000929475494828879625657513644526423585756227902319262500909099987146622535788490290891259751709110692578452443067284385972602485988733794513564202866003523965021840361697350385627206239162807494940032555648994521395921467342137240068401511388561622202314775270287322162706769456111686069406720747613186614135497716042613942446735088359237007821747960081955613511049466606251931924693253963622995881423423536611377708722932141657497080327333146361392359286173570549374370102966978094345218066030812357183455132246781330010735743781225946427804873630348172554601350349256411720087643497602245659397893909961283818289658861347377656894171383808048825011211227169943866548359842920100427945970975111886192699295551389149543223756423159128559998881499512232195164995255396256455476221111126006928952556100091830866760861293754691724565582618663690406488050096106519675465050051423256800086173852110639551167504350330895460946103444431672980191146870270900574429400332843235978931754755226870316857559179833789422784740629808280238882503765591638517533178191475430720197316817362234446860186692279563721671807871141748955334024719198168075020155700537066062266346035611656807769807506567758192757462838376706724722476805572905498614091238102156300935871591667097077861017538155739435005094335391863331060448189673784500616579343090466842079514729819609632794608409768201173772316036812772192652320466060969822225685761043004295901884348976937916723690997240788791978683809490743763891327582213866891202023438942459546265276337500413008831459261466846788797442719822405086104983151183504185628206835107050064632523446497144140534981022337426995252150375085853604108620657727845499154356083582753000833815833729973427694847606824791884456885179973661147479166730863175726116248488620381707819288905359413067376461548675742409089939552548154627278768484955095708744447160331309632870460168391618286295183835898162763812790815388917121684408395298914711977548633374077266838731677305347457355730252996839759688012892587542430515344043720416520293267867728520972590132948873922341916319186633212519590306683398655432501308589189130805856255288157784665348720632523508307503683042295906246686383181292984026048662988633996731023214626708536979948915064721121107008324816788103679867857841762414166474253971063543337993890509461882266743207558270277770995349847920730378716842882700524876919504518516514278730007716061958606880982760095757637448847501297177150369946411514015360631922030921040843001330668468230909884578712451351188263714380510110150522376537867324670544518608569512344202973671876982201671452299091038838360108497346138526393948141807932983872054405812711564662000882854820873931439027915913473195522848620961778625152255558335934182754421671354570442962027923978751228406916415521418958774496556857471803277718775500337634300859830050680359643438429620251709759222908190710600665107662028970449568122745945050841015588286577086746624387418575920724174119093568008998259167110448752575740268709277010098375780948055260845065625501335085046489453982884280840998386211651278187139253658622746267212976302859703632785863501673386955227865061156019207543062443186947011392702460286246690905989474374811937392064665954187383732401467469006735025440596926495714268005238010065398340873666788871943816883910290609843340698777350645258969870500230451145597735237234341325795572659266281123111590209222816387080110410953642406542392148475202417879496178917786920635407497871599932462589397093773056912209072647076844613007166198760663952878534189270572427066020759098153240787520512145250493334542877586922604065698136757860015072691172538484639453369389824975358626890464845165660494590078960597499713062704628935536779877488186243684429421028203677306027623359698384860941758235390185186913414202628451131875659543074662262203421260093726717564226487441556247049746416332536336552616962514395215643832672458098213095456490953572090546436890689881038505030798587968488357576884715800280142801641698736292066685222062167026715270391395854705013927053760904906263261720492624097372812898301898330113771050629269293705934978056006922174147951248099493407781111671282764887580107436618013570495211517660638259419477681333166238959534212120027133356266244296382726316397129689540786993778030815549980457693371037430567057170523131102189209274712513949378180931710894775530924801497249688958934139743276073344621781551874231876140337515268084894754426787970320677456411523599159457225307670129177828043444363493004280953021483928290656829285945848843588669573524292431673892698170737233109528574904737891888046174584724858681187215522254045482299888996912288853058231209026662128876468596409096287803708933315861766403735340024623708693623582463412442481579905571268743507402483790708442245540966112839564146241180536181911588824796979405112493679431438104879730253723759072767365608436582177505704086140465744134841025684895436207174035976373595008685009328430818282677971548056977358839617052482035014133645687126870057812865266398879172891271679304211158847508111082762855916699606657660035326739136886520234767109398703296090789849727660716339493890192364897458514736051592391815556140561634554483916910597396647422361143714334182260924690035365527627763711409078164225300612368428391617109542408971774449253039124914815677705086693365829246760412281546633562355668612131846170063108053911678114466091549460231438657722870392363468293538298829836989214506536418235692730983426735079203484501536242818368185636018926502413558991206399866081256728256539238893182211923040454852854600819695418657627711940384408051905730033604223723919088062043029326962399293996047583244627341264492667166396049993346751713821923205480415939979586502383976911871944577405068627268039345115904736113132461686963502811196009320382658189638576492441638201332551630763478330537231734221242521555209955228337762631217330668555017886462384137426249435834641190911384798304258150046155373110214343717986957185732506600265892246807503583467485943351541759941924653202707848639823344007101316893933662911434831051023998928727502460492956629101470373110773511195350134419625129398226506857790173717413481650540148752896127956961719211598555264099074893377673622711363576149093668889933620753301524491751616111143076868235753427033203782999809219140891984115531779116528835601110744196954860852214919580954568532720507612219892529269312295082668754918360371540394800809602831926903226388544242119795496300572527351135034384464911014110899264170699755215758830703427717321311203522219759011218126867046196690356061321419854337522228967096700237371033036860236985277373238356940958790303722873916045024723508678954089198865176521106810754344806074140062759634850258341473020621809617426163761706026783611812618339541214845422404245606924315278337134437795419103927558231413399198221972717380724827573698236300826235377799711096749002952484663382972765484714237185257127833733978352097903190717209830304074204350041683994245662814149457292345899276788902878071096918138001522220398931542730104606029759235045056028639811612739687222242761699551512639905867250379099888473803737247703596630140575240813423535598091516286989839948973655883173849028089742759415444565181691728629245285903442767211625559297770914198755904449143475522007977645464809755294149321610933545312530434814182004719338453584557263547637700906589618279434830240733693125831460173018602484665232343813506167398828023488490127529095125639307235341496111045188084189818833919369055349291635024379205019703310037660355921375411874027381479739855258151543024993981306459032908112816759527163051564249971923775423320938382382790464712903777771264254995145016364730931739089701732954653859422591969862541476918201744720287569635844822981030126463182377396447480601209812933887191767948503282944870968892041180884861414969445620621760244211345185222711373624405209773855613498858093804971214933123372421129131536207758460572335137982945147318089666595600666607464418014597379665817399183994748518169535674505808126666584377205902333088218791957606468353100555236559145191398941153360186453258694414055488761953605208841382085720864692492123400997900761463158657436724526592144501112282170855644815544455555491962148145734883359411943795358440458388062676732849783802860343713619423905028512760239387561292059911811091822997369886524020010107198673669362596270231258328708105749956282661141642722204269715296746232383390759464738602429545649574062726160967993473997713079187720668994403527954951929856683574872088580076803088582984371038622717055172445179747854031881433074120073415249308788282194338988199779484263475587260460410372077821694358486652056700649368096835736052295235936188367112153219589738935957155314346856695839455012294255404532978439577822149991536592733549107915727258196324615989427271763519374593474733547744607272060752588776398876950006377633506476042627831715589125743057365335743431103434898880743367297626388825827150497562732439237565481454102854227178871243344707749588871991141101222097992744897454963354934679711521355079841065407938686414748385099126422206639137435208789463898641173726515807502611320795992299422592477292231321918776897909654579258233331028844632412310375909575091473457509231404972017627036931123240951363164496871386706319855390090295886125854247049914712534245772473700249484334160908373054238403503861050260608800815572127424288943201734467935387383601563559878271105766330320168444002889476249914822021646143167524809408028723916125238324178286496452126219557093665585591897672845428050394189196302559474125642973767865631327387991178208281702053826911329156867311677610273696154456486556467670758127867537178728127561724365630239657773357470485524248648045505805102675340947294409203036451168884751460997264682335600994176408778435279137599911136026309560523784941476196960586581395857678951795878142197217091243198269123061975081518011133057507097429308372551119496704162321269876569239422194338847623230030444357773270635751469306864947443113869376198289171259686232143476419160695242254754509230596642443268278678640891617923041628229764420047895345618708190880462814373278817049961786425247990927809539990316883175854945906017098874191642820429421316615640176956160903824345108763144843117753218863329239164464229026667944704887727989503495432480875135424829133426022185740279838572273207881378595378084652878255496217386301978636142634756497950788525968675926227398440474609681377198718372050908010034594561750432355607686806776158148303013716915173815176096970938924792726456546567823526578727385536818063317651535576636214980120848047327808907771372431514762043425347321451803915500929141619236894573950009072246823972581825650492914409224263869641715120635212472599097794599957775820630021681109930252457454707240415123561220453221422283533036458536649477588576737073277814251226403685093401887221102233407343800852134576583202027863029455006545145148301920269081805102221304663372567590236983276091706104067161118260783365208474788910912377850537282513831831564778381780928010420276117680765846945382068586936276397520181081007067544513398096237380463171717099296214249936590505296937785835494566194497333923578008144864524882902903000620445906774846013851961080403064144364017522079232741268779097958975445094381968616577743601917009169402390848661855762723656749555673109139910690162992373102961142512219780656864941216450589648087604837650783197227365771858787039444758606054684961574056399531026865682981706956933893806599818187432233066029533535027769621553866503704385507304332681760999654908563168541847756686526696440095994305970571331232001260592856643218185003968339070536366214150318979069854922812547367758436775732631469536117324100002564352839093283593320400715030757077507089846195031604417832895678801303167416373201172441810106461682841739340679095299623996111941375406695410179624385115387126031784291968565528420447230050517888423921094281857612300577644703732046347382430148534871326504492114398015980512228319134772308347353764335279024758123049257437290760192449943054594494941548956271501052062621224051669906792609340592747973412397486429771058168021704260915065680673728945093407251473320017869825149410481145325970454345674385075015715688067897877255829811053294761333365769081524697806039932578903096767151820590265309463728650165791217545443744835955721499440958821174190125950197862803925616754875425299664396690362132324973966018458370817905674966574406163689368096620181503848838714569136351391905890484333307253064479277805219540356359737999781349770546338803801626429553344658675925671027794711018737369554871455182654436016789461438512973128105820802902742999769696100461838165709230791917273349828460506786760561897262746775253311126154115528840948232427846937619512219273893494554224292727133144935398310315488368385989572296469371037150616435360712211710365796929350884510361312523529853816444383053029252680766573803467480218785518702009026555134385698360009075237531525301782386958609031732432403729261648735422236013639702601829170740607295815830341088648581414604613241885018780288091500290838091281556594361930447756126514721686502074930249230630619757589277431358329001799276953337546760293392355979360342285660443775036221275589772707700832002096286652318614526389528733090746367447439321467926654664377504754383846103243893471800838579656775623403032585016064051955437280977378245828951375574364071152041699910400316069585079168773661806148656620557613119956505685568962221678689613351461854795048290352589348321541697046076788342074612040890487488410199125724342984970472730402133428540598191750283097787851978469776878466995496872874120857596437715614792312597378811154934001229571392782558312117464415315058441659568480853240187634013704504386822104201398211618504131763277722946637991037187137176259705234136343083499538749567497994603127446680232836053902906149281772294312587465752069735465146851858389926155799765042939280272401072839166348574027605230249515561048203417141275399473630364456944915753792071562506335003800832626698114531618714806794018349982095586587536417571460753502659245539208431182680089483420397606796766500267162269938501582378662121301745498274160502618720079899672576253223416434476418515053825173660329946871735128282357865336362133660196843111347030076440220162271923347638884151658010138957805161968568774449418203606716406424350227900670521485697932539187125345102321950480359462509672642464986917184183418923892377505264015137626516398331982199280836552510484439126412262315932668016816106170282360785830947841966905747149851240502967748972776555455891203130792494900076503694154318516112266416900337601596696708490924782209885633449488203280003953587595032328486474170345291812425646135085113636167318275741212222172773246995633472652128600271969339289755144173512645289582395282460984696689811653278575593049835014255029996892729482312672857268317002872249354460120830627513525829252841556778881780171815360136080876643642594514088556954374185529402702609015844745032192917395585023568768308702882625962007297150571042686201112768400184479362909418630500132176684821636364662887004050574666305083038444807095523317756740817618812665620244709636230312154389166250669766215111377968794898433657239638035118978500674841733227173479963319581185757529050371942218938114542372440714311519174065120365029124045751246820647955154668731997885593015777798900980189223793518719512537537958865480688363901129870634368543903354904459576190421293319685542799352083547232551235200843060161840544994549061965521978545532032538393286277242721224147250152954635358977841472562350769322970792949503507911384773677233031915295784418972600877923588908811235485009008947965975107818831463093946773001684926326420360281727188810615211835604577186074320577404507869994125182085106002259229513942406130386931943667728997563093362667606003299601483643518757331569856065315379415076986073829679981392576682978405665637025096284490200056434972770007972147074111807555561521007422975548767484249304794202841571338960310149154048063412980054392475711879956841580980747812810108536343516323251577104358912657561761047526070880718561371161569070441665783086871130377563067205171133049438185210753359862611927554874402442202137113434960395881749571210475972882639052396615608021680410600968315674084837018520130036920997642616835507740237638134213501048721200606431987328404172962913338783187727589181588439116853826268228449072136889187765088996244420497492591173835326559908442077903098384558345417103279088728681107681049433612379631814681296702269015955733049409770967545097098942609541752260234429236487441057752135159517127789856523153143943241382098466649463841543808976747721086927378813277835131178870758626940129561582818868132945331822191828927021676731519083030282955536508953719594274645642213610228351860772770883258097936232797168487715724259276672291795367038497031887641106371650775384855025127602594445839474824422416620904552870186387654664217000582580147327511869077321831820578200434123323684429073145587740423489117490621389042128445615572676347688856895121527551009504565004234802592260694348504318253199583830742786483879632726251260198398585713987167474734362038916512329762850070904036140411270465742704673242902073531939253177193823504648143130535345267050627233270096833270257803498239265463619390578224598975262883399756747169790289448094919740765198156112419013660653846174699318258555849804805706760109466112299665983530185384848599830973714526787640978167544649500745828594478756530620401985118390957036126539197777153976840918791569450846584952927444406429247859992427107869484539221138137126437907288774123938990818675462054909867212127887003248714314050438418180825573239818548171944982746108969655967737874316021194912004212007608698754334711781361305746650699747786367122372151529442035818422788122757864818851529102610475295897427133247044433537657755696717803127876943375412718683064007080580927492605784851341953174439158781020652452016971846206230444370037161725356213331664205909417016244499118239404134686361371730955014048582965777895498586018643245585707431235948452275974462601433907840894925847273901196683143948371613652752620780320931976840286564302154335938846297848510613741870385763934516724440250905606175847291347913511727786225199329249214755441941196937903789861871037652988470359555937789140509379071572093247689990948131995885029370610352068775939223807049973627921488668933735120122865197534396589289797265556216058509305766865792018952555287966549189150896261159016006063521468457710891864247924559622361921515260694303318285374821895945737723027993049162645953446309000743658367966950522445645042460070034475975948623838428569536836850750162471948772755032439164211572490066931617908634545177584907924622542966213254283979844526144663560180225141591832235258451821082415723428235285407548052782053526793743799627967083487466927674936984576460027302098196474073920741358801769805945788751080385119440498767290237465485271137305816407333577498513227098761927100009194267639350552528761321455519742126813149932704029911928810980205783953246333694359152516667530638522151312342612138834072897043555484764814839316332017969970973925280653590005026838449518453088626483715192405200101493943995791759043529209729678607519491330433122955051887995273931351212765045316760546185561863925163868629642172056951833649167356028932444110048439770800688681377603590130457346850906978947443708966525383367124748319397164144255328954539953000362770831513561841666298576489740151302396970343923560244209937470905881964986359073142992008315497709386004179864689958332598037296124630951409734049064623283843609345214827746008715980658758527532749864276235863764955465961113307245147026866209117906714017828933921909064156310244542100839047746476378369010106455618624668268583709456911779059207352405366723425801701565736354663344608426899069336157433095745673796047253646461736675530187993443123064015855365081380252844515441477267032736420177743929891205570480188291874258638887762311480672045677244774379148636165591896028233145124927449526042230343075748620259656630140511817862767789898254991238888991976733888677418648453622553391963441284648405669253042700600483150675307114006951199426243257719199539649060402314774641718020693417867133355395063275949691902398165373138984865556118449874307153656001969069023009876296140121502915168450964162310571172580857696388463044113495687021281059985466254093255785577880925641389505929616692922620574057521047926905281860864569718596755151059493252225528129282959063061783835182636516873744706418922136130645703412955549005513482394789389260217835196706154223955598236789912814414730563103638220317980325259720417288338459038991582634316753866857338820877230462525240841584261180179004800214657242380790108878284002223058316769479646648387628448507048615313132527391922616859237777257857689054574177856644302249258734574324491430238274124669772352821629042103344554391961077539686853338493998377969680447657047888155093866035081585454946857839832610645945592489951129062773417725307346386045024514605002926684378417033491690667738639727472957509328476048785589000125461218849893888453390399197038411735486150729244965185759692246983920868960832986837194891724159022678600805390713838217298824270556348761659511938789115449454490861497159477610327076901772235634270240340158450385631039013427541173273670233450692626723685776638576944959006425141532356108901632464300169671646444584286219585487547213986455023994296171587274981752177169348800499863038326580637350146452686565353785286789363495727565829088915741923283503523616739683387361313004078645489379075242600481241132497842493505706399351700804172599397878682394456370182313505665666432183685616572502699525325040793885682380910373134953585355008429599954400962068641165969988536455503602538595103544182401596769082196866301589819379465222262269313169572650022733826310183795798841651997329167030479381154725937772655430470811844530930831757105479062711309170757749878948291366104205166212864472528571020710480316939901929482306647471206606240048051648522579916972686385430412021357533650083613654570090411922360300931499938538436867234154413447742152343231952855255854143103947297936726766899033563182677242743257860400015787447306026157003231143736324793820692579111816795112912117908009858166243963223809137089558392629077171058524445082284978769989786328537152650327525655400004951224781832443316488576706820749581456347024391308217061879220245538124616084597216506183681917733601055827926375383284656418917219239837506512636556704098661872726594589502458225939288483912615137130186941198187443752361660644794667526555183055646369456995756098213862760413708496562120577267431266822643243260335068013709895945831770028040243162286984193146531174769658769721282679046763617805935434387277458354601503653056537483398059549960990695788118308749898603985340464799485778900255705540742274981873495169879975737910895706167759957230639674033604398663446474434486297045271620960731762974364940861820263087290496788690459682057502927551398116697460561573464518830634305483948728203825456554199896172240566323622873317492668732247286218889991741595401410440070641606751776879781045062301018554625808365801333381992569030016202301014932071555626089794406905176176574355377583416760448098953389247833483960265460367890291155058971336787275671069256614397513641159035515679312766292478161598273303644184533728375260777316840405277228301522537987605642259734935181835095469709316792903657300395032877966309614780460557946846613634334968627004325550646731290845106423490420778885858506282576782973793066102826299143484050808998061904527160985150225139349391350576704819998032318802982168708597340410374513507731413675879409438854988961137287307258778786635439473838467280968926742117570897974351880307343602886259181208486342407630080844323286489214691777413207503674037201020284491524759062247938104232998490159537885710636896943822911295534681179632349291545225117849913615693167935222787674248076863589778582191984407608905916686077689922035084324321850609856343212001966609352434801510602069853752967384671778881441314013570778220342052545928393529389380286543977266639618834154241400671684096782304658715504858821740261255602423040899893335784664397703333170891751061244773108205877921273241792567101548455829857322071998559250886465527474278568165353057193321444055756214637127863661064539036795329935902068045402198796175466658936005805032720826695485968599133344963958031620586255218796712315258707135181578206336637994923808554031377293848363433777904137774341002837163838498817248289493946201553585440278999851748565793224930313060024723514154706250754430465648515408613992200191138621058566946624818188039096416073214780430521616585464959509380057454204531667523809809414371882051123029099922422893346263851809387472804679242356333402583980693836403803959857496237794073810439324620818067288684822824597532337677330358032831793735189144083476405812643268802455841500377220550799650868338276173781772415077495310839797806879369492567866219551773385312727349727163177453250392319436678842997879255381801302298112327801142177194900038990882924184368284951208452288293797689582177518910262172007791156153770453249715122040599338142351145269594718608436018375594752523359567301299459816085876896323242742451521831430475257245425713410811189391995369190064237794800662580358880721154761999693746788646767341365469906213002889981871085666122915501641895878659194426063795200490631291598698962272008115154042168176904689610360635564626176149644909578914860498101683528292824743850076894594157462144358338832814521362001648508986156054493208059634302815449134418094449335534347081007515154090081034321819338710434438953723613026332247971661918065927778223388982463778425140496013762633700043918602560711066736967105814914227486932514409547986170039179393218163305827274911353394677209351295183592933635260513309782324788953185174794552378150596878930238329095487462653581460442080608123965291148962594041415330219423956847863959195729045254505712663089280200564783536321404168403509106129282809314807081918844540534767496272594502824149690183477621817353432724533271455861712925043265156818216070459999510783269242027009410401698974030522384785578241014732362924455816984214353997491354733823213579551072818174934326574868589098657749622055974115251491299594642675597192988632307274207960541563594509908398042507923380881901234421956030769941230231243933434417405121251568173677225583405118453751500790783492542083319581695983675713502016350548869287360374313211906699830332593190862914025435390636675231988040177433876763656017652266975881387407096420671582343496243355332263343422007730591258419259253069633185627196078777608635435793711050055188779506199502894770057884522255684348740411723753231853351682900013964820487386401806024645214783809319470709392310557667651786956496018089361724057939157037610733214772447897808797490022139884583137855331844656202890776431403875853873321849817596680387444181683848358530864245458283755167422926501824114951729155001624057313422282524576992812325584873653840781654205923707613654079388991186668102294857243606036305396872842949249853620870480730718922031661448698470880925741297633292570114569685275805170679787378693489976130380611900129799314967638276351714873173559421319539628727059429160077112101804076327714557792863327354001350166980545811895846081265487582776821782196552950218070425522009686511648289079490897026904393475348297932597252669993850679295828403016804964053922802485691029580491142396456076150335898342674156752101823371068499160446318011348302763938607073736312991561918900392531484064064394814414685499895608561977441896927996580403913811986733744789517810367928939546772873583767909365569815025003098865864346748540651321001926519468267643569548497057473851805644984225036842772029757519035614589279969622126600807993218670292209998080096833150938216233525062542294484518273930853720062677605906856048618592394556760643071985272997138036149532142768716046400934635332536646269728066484753771181423412467443803148165839612821243230667768043225265340763591982296000798645461355144330822432294193157455788613160919270501076585309510680990016610248676124134282739440745117553296506178843441180440802336777962440508348648928728453746441845463312278716560556007143832172728031132423586714799238577523463077054458404327241684929790300918805908957782365066690399157366617208186789809965934769224570334099610597638454502371259704122205624886048371042325718904202197691304907162876748353287675353975373572477224441926840455251029543260880330031702280322908406905796396518210157135953839361460328494956214746006977006479714230159803838392693621873056509060785046015790378927415529753768790426558566649629009514066043899601322333682206527706134386804202655047872992368907042124791023406748175405684694697348845719209577976492295457596651721138359379228761711944600114311647028274184402155987098164205768279025749602085911311423877345716272481856000624055405565923902100604966314562016960277570254753886902461605356599818366987959060564287629605730542161148523623681046476098329173761025771138445668577887532804696069656934343258834335006228068688029265905690117203582866136588262564121917811586671629284047252316434792883234211557909206257638521974179598319036551081477518623450810718986615969153225302054481532522089089671223971226084029034855685323059403885793426624635507787493055256483004776869778581159774139197830937312626938077633407407391702478963556400837341192224398753679377167594797357316404578160845959085657190295402495824178050048447014486259668139956594346730661547184942377076830670567819812292519166502173959131925900630487471689017457326049131904938273662490574669681505696159444903737094190737322749929965268809414430904600522795614166863914596922404569776346901319085917590650368447020193357247262342149922664125757873243499688341083016742537511810808913868731483236763978641808497360566219682783339750037567115806510368776976952291905830248684081551271757329555275690971032524092157931089829913267033722727651958025115713570998733195920370489064888914526155249734480834495049094943146720885912594153767955179669830316813604274768174438669699162109732375830444421484149336046990465880990379489183517126023572693619932768181157603981646988049801466393650394664637844846136899822052058582108950576073753446837417302423367481055502370487802132532120072585761169009762497704722254269172870186789976675283514638054937158761277681160850155415114716683345933961022226648759083070541778041729134279748417169644197185087134213969678634790063485423246117605909527769310410642471779245535399408737120922616533015392918851184760271295190057913677159903090278086704325689268840393778399444918800472163138872794666988060952219393524566858400543106692332291535112975656680031533264864937383794601569455306354917031610673966545714823698958598734433284147020921248827496924072436290394747880866846445034057093939341790477467083026596055963655580872289273807156418027894860852377617107894521363746686155379872496428782490812317890699309647389856390807353639433935823968871611292551447859419552558786559259565970130980409698565045368552153165455208695373550112097913886121718473913367341460325668590536710738531286077586912360853214600764335844627617042592655477099216924091380890436276997540432552701146336774874325697178227001612208428192075408987025961600439293127208637507262867611994939877682593684566735565493242928558084917308064130968514452205392475829204278353507619725566816817934462582861729273392884956541496196182056407783624933298194353895255273542657169696025065771372574512293256075366727352349643109663716696307324268451878213439529273327760857426667483252101417756847857489302598073066196265993737927921536285977650072320166131740199990217052406066748328953133649724534817876963845258374795384679650152904398131867206630149183726618579034749745547964493816173884175856613871547339076285219506233109749368321960009271656908535983589342427367762818068914247853244727290279224408762667736672230240982820272608035673572788864964978590633319776044430458884678807909173012937159152121786032280784339243174433127813710236854788101477875700793817298349562570766369717662124211039819307641198785573404638162183869586058529957350303627513840951445654956126949561830676826994274269382643346928835476534769885771698114661624389911677212367543230836813400451504909405121344467022892066335182122290656323197049541798465990522062648130603395193254501519706300982638953144785126348385135884331133834423287774886435983785356629775970932056070558728529172013231450325556621459432988993811521111821039755153350552957598547739509881266233502029656861793738811818720210675508923494218529991481736026142301744452502203526984016538976301659869232968969724920779026316324254621871259729425139717702012539250382010067644605212225124125815163008859346660859018263080929514395184168991320136678866446613521118501447612152443416653477027986367366812998880889038057722289790653157582826535291276743117301188076035565032171682842796347549269012165251080824351643544124454374580138059926260046325636517008756999448385780780080243785291682542707455367240144986201706452107594725844913936273797736307254094012450201276193520287945723960120445338330724944122279867033795065010147179258631760066397683952827182653475496141810830970590250294648267906988736740863858811353014308748109730984273468974502718323424536996190858406555660997560707206090060281548846260050418873221290775489751230963206114933899070214265247888212590476420890467272415707973069348557550147163402220332064566660916341818444752482769881311155737406305717576233673563015014438708287818306276113755065269646637139707327696111624977912043683455611576246191040486316450351699957618408890721834487551573341106597754245605505196858892103597862070777529942668587725704146944914250286790473582992721316256380540796583746059082388770714451097040988622110483662520683905162266137540535441903824514679402355623913674843852726657724850946897535180095343204134043389535433253759929156044560651306381150161888211967170165548670317791646212140670867528011530562668957163545800496757761446655769312825129911231682044898609345984205636387946206358235076199645651172249109092136966983709182896404920883856894892622965206606866730149953571874426665665849266337447469895812728178970894614673251348047731642849074993445884708348271058162280439846570953866508135122442815137240299180627390806902578240809277880903750970170977620279450821869197352653887268265758647903420082678698883288014552795957136941702541339934110731253038539882627227864993198553945374635821511780987428557657603963269775841911940521897469559798036009138612936861055472698986198193098186019384076590121514521031835216252103960063322064120630215260918282983730339418327512800877178894641975292570672463149692910285701043931502650069968501043078044651552477272975383753635642128726260427797745302932623942453787835477911901099253152572874903754911567284033692501575749051368230250197845078099848172450237055407352533539864862053697216069264696206459542229930952362833599090066764065596822793901433252293314596701988526119863757185214736506340092408273129684425456787901992018526662709108121993181936836731572131548195023214387155006927551030384230853091488113546898911099393491490362800485582343255441697694469866313850584762175229163225090935585905369652214087612502361201928914465569559488342261060300921169087808395579380844489026925463996076785664826849823966337884016850274254081328076771693356901571169221665554657850701755331500861493744318609001163692924265403410021990981507973837725543263879063980816390778241161169476968809237465237218835591250131991749479432850529309857952556325382350485229520979728805928378780902303585069204367385436033935315325491833978490967705535111628565329196652134729823220768534677828563127582202107943530549080386177283334539303762218624478318330109085617120546173303138373371039914242372264538264025778113421451775814532451263077626702921648377470114506603227545617402246604954892641465152841689455386007330102308288080901973721901541787340767138451333009721557068455230851816506464923907552553684799827345063279638117222191966100055534996425665036352752399765926815740173135351429236464663391428761972760493064384153680539368471870980201929131862086154224322689113035696426527847961515647830172687348035677806397837928675247109738379752717483899262300278620838965537557297862723669250234551697535592331222974284874971847248124581693506587293711219775605169398891819787948571533075510520561646639645626667158722666401231452410346079057490771820775335342716989290817522336726699276310372424841543634085051761565540759725869258101716859122353280522720555603715613254617660849616868822406917077015962840033255696445674550809044935031723142424501318415321752876188481516928128360429873155934691698120929807280871727289326356284703066720565507057692443200728965061042634425536438040645458184091948836099711851546626773590807804304697417571827462980194506015722393204241130398402136363020782085084360550310035980813106379591193080216477372965493802181673533595490559517960785398478903860685508336778242680827070387466082413455032886137084451493026569460464874067058748381126978129208571489981211595454376619809294746953199606810224866042376872958324845733818265093716448796055258622241543151110916423909687971896769907043302221059075598457614866269157312980592389775268312419550346033010366003901669761364121982907026129975353553805799689728288940445364021420468829022249767319951286423562012032126107013689113170133729342346613626670524938184618368914000412180861845048443484873055103443495754317127633524157128932390123308946681578919562428865737933560361548247071700815415823803891468015631833958406669290479478766647089524379181340289044504246612292751165265550338336803416494807750886568724882212495848770782835848220897635745939449751507009153098880338244444892434333650562016079664848115006232893715998041359508182309799848624243850101902899234577776049059141623586099496026096989432631306152393070584470323887038059403241812915422003121261055833556188588778178095901035142342349785958223790668585849499209189140222145425720993703349807667576367205377946076197670967218630607551424677695875528227360648325427814384749995848267634914968958310416794582047949546727860463988826893883631297658857833550181708194017607220632296115842368643262161467695967806278271840343900577889988479176845906860007511558175506188067850950824422993439242828684646165608351693459254900558622924439544946980702324585424153472299738082775056725278244684599043765565649111659548917675009528774409534411620507493140531459809623015813630113588436905472878897038262356540408567253407057183443906244095725384681147786352553171343110291439422402985256909096364953011787105560452288711190658381274314446259945338184672290710718110331812669020676979551915181297167911759863535651489938865685040712169794773315300859133039262869654611157685796782758135883959350720116370432911671111690272473064568746130312111647188766826974994947284398759614400903035247418454791935424894114510444501268031016979843278411704087221451945205663313039213616674779739574405364634175875004220289791289139281349574375692349857185393778658940795302369928163048732552983897103449991188047024949260693719807136015717576792358028140145147820442590650155430693726150360666641887543873856979434426532315476946166102294118445239397689514012256235126720889714966706526958182830545002668453487325161796048382344224129374523267301079521563461666545683437265841152211526103588830861225126898514634151799924385104572839708830910904270029134167431951506848834799642070176174622082207975412022135628324471676227886872561387041192871915228981400732854630342114874516139967044546684914006509258818857078147721333635520595919235732278944153402432006244786597560195824484539859357060541012227798288667626709655259721912394367513977648254325562939803086773246818459727126753759616049265355678204015652609932855221745558059781063963461754285988882774318772834729758481750103235006655992769549975633357050711937699704508691522631124317191265013133056117990592768534897933673149726688157932985841103110048216293227447838200843927598665544763091999815421467276545471994852871354132862710845068816791433649628633999905197498073874196496798646876268545118060070615824671184730893410773080077881953067509247067556384352902380492991392490303442432856649211756484547739812141073935160236368140786703515710986597322906430743130998548482645445604445079130988244867088745134733373039165860653717714972064573664145905254152590910537032882679428999463556055814361113842171949380362798350421615751193830909041058711285294988420264684142203870272691892937289475592075033541253875903721095471652362677866405942052882386697986543886014537331171816478362011735094397135618066482516332748484124789482721233010046945517022237072460779334526691327228656975246695939767142244280063609838045246341245663360543802345097334283962364171019395953638374638324212618395479225288782165585130632259774311028000444364145162360525192616826794597894293117986143630949108403417993705337277892976458464883656636162911269951067637971650782954586020517316436971749777772162295706585795396828089692350782393429038260372900228999081252104729849536335683987565407389515554707587346933385813938111633714051345044363913845820811552260552182530464008471473037146831847193764761921912758466988871511665946073329195481109329937958559631425651464601617291059922752166669705962841329678762657346175177489792332746429880390707641971170993428717956717919390798763784615691769220408445614084270059626937441761017007147931136613424936812574067906597203985746952885648025831312145373549582467580966898861256592914349902479976905753543577001714036900763555179026796583396717088989858185085482216400327441063582766073335496604359433241611803062888584770883932179976265246300099971622576014440190184654595952128014686275437143337799365381721505477419512748835576218039957562155496117141712819255765513366101634852958998775245129003669064526583368337060581090555499866868599333562115921984717837930268330595794600216906298834529496214595066621827732361678155847398495944459805037548571826761350869396089401023634832191241192812626537745141489580630404680191136041302569544924342442089276583197280643664782901450070590934975285831932477095451824221565937852230566359968480378478117068954702858345712675860092467372583080918545718323672261488419341166049973107974192862386670059595173321960401207024821847912946026270868273070817510792171147677201427039388401421995282495618269943787886437366040418587581354503065356409673083090510209844006287797861550900981069073098790916577285941528353635555173533979745435353192332886174295973364550626538642599668416012208019959963585604302716616095399688122177979314978862951431055473829219861955249655586174718090345857334171781092201800634587065319243496573623584280373295831018421797332596163905723439915763426553038779107076277204151788501868018701380794752814704469189375540251686913756168040003020838911144994192597272391399574006192626407255813428944493707643890592155593156798115146880867240524182468473501236930682285754711436114168831460612477052616173835284876542355074229279904385042123290647481839484055652802632881252637311613876865932093541339270311499590882927507020600864263659824976115694974734897614940303463736798204228437583923563745238823616569110824479140818477713166761313259995832140377282552561149360601099982987110072591879924635194473876193783327450963284069408196812974263520592750127916502308545534606557747176487273171341665931648608786007184759747632668014370050569747145949244598670048871445466377938637334511668812716874553885084996979527149088046556715956239565478356863844473195435169597304368728896329370804557936853213918159175330957739767803059302552086189860527706047940933424247294776500600700339150143140796508536151141201157326020860796122544771112133276435773112617802980675439747280753754882458021602614235270942563438913536298080962138484642907847344372120001122631394958340612383839324061584944065289229230829966246673014373495544344085688814492693615892910667511962742286484029765945038443159065376742983155948179350481245065791980450682012285725378539519515624568839815243058034818603050799727488801821307775825425309250773874096041543150208051618792726899991869028108401955370326095666796583835279744394431743496834054835057959497725106698096502744664464915594118808192271946706415612924481323704560398202471819289480085631758843652504054527827989759852976337578369961696521923697699819308847600501924217969381964819856764253332057237508539397537233949344409949874339674871466986431211390778303423295754942405208221358834130892147340980413580273953465885456245307009557158972760322348046316863858268188538877513502927347493542405367821116614815996911375898390255936459889281306851882887407695891014351699832765632114853699334708208966713044470979748802808698342046432106835365818463966309159901924292565140937852791736659590709784879502729323489266280607709398574014474489439801429350164745831711373693658174761857811529085655593700292229510057751985634843889361616222066603853397215401870623546837843800422892100791073933359080024663565884663269914597125115738817670142304239716500163095329970340547145254713034846371796512296982366294247819519547546251900099302592542646611697548423632059362167994339847158893845076032765271229597558081697970479899077784684734472218019068550566558815915001046923070509693032088181116253059374599930964555474844354369267856050248231939992391575189987089322111702964910055946017746820754483963061109737552408385279940179818724584621708689212685500205370700220373770442496868982392417035988210599676783873976389774433582203500618790980440528960602625443169948242752633653992282844329733824155566283860697783423402843115931374171834479297402396277934800930474291175857498914586806074124819677049966048303578791998008073583399817229187673228943965754889211303766880290425613852713133996990807885751468957524043424809149901345504478456994150312147554266599301932545681824924537586789748234498546987532681544980619790726772547060010851726961828866343837060310747134337994727828243190725142190570929703127638560870919458569397614619320306786722810180646574016487463479892304582324683279307003716908260810411030005487827460116011281532328762266751888048107546780802128908893015523450163513220248659396038616041596990322542019410958414503282269589166870770099056458191894364257378943998185153878076041064445848651686443491478662188015654692510665010238056081374244726174966943450337664950261022894812553239425909418167854834418412659172574827952470050444549103592032810810043373812085796480307411131199336576346728142301730895820132769199857943603206890560714774652276833170536702854521536534111886084807849726666467964122251149267768383215826809981438000347650883275850703127405993774313175936138227715437941003764260951777157149935654566188183131115004127091826240600892365404990314649954405634944010881854988035201034245911201600007048021927241277145035253250339174572581043446311609562039801865852443880622112232742920062288580708909537706274769180517920327074280391961455975414947688195327313905587575506939220074465600598344406440720974964797282543083582445392125542105176421505930032107519745014878361251887660790522375235142387401348385117910210272266439128919234344977896825645780101249754397393329800668073167208697648168256158814847373893551749597261693455817649764094182070739273840995729173367716661061671786528108729694603011197427428324022952250514861693599297140332046540258211533155025020722698482064019525600264290183180712299807492057122885004893086370619293741656842452373981789401219005442761299662819010468973888724503648939334334060456005727130668408730131961010201278088046668664363536640310468054692105257054350834267231075482247687478424418964169303294373537047590613823322153625406265542564416993108451955576990669742595111713359163453355833345084134182882818367101092534058347527712378943256940295231693837293619988558943912981154734638590686170542149402743726853954951682596177942569807212907940381376748965477835325128808391007881720511919462048395848561191086738749228121294329119492301317170781522603260150813443171042467852656560775753322166744275628825344468282478635867878689232540026614677893801476605592324218666037727639330151769242477935558525151717613655603975258129534788725946237918337013249344312041914303877285783642620603615264683023159679736673965510350011246522900305827925575806382369692990529586593430276709768533146269823202341185708203605557650528639870985545475848980050182096144767020107878622128297171812034851015166532117283057747803383166621460784320935500935694952380772177085856593884976282334589264556761605403174952065718711071476386691622535723423854901595359221612515412146050302922028395081199291714023684593125282822807752477930261306210521801099625734926069946154427042396422374943619146776574500893538939668586802181339287665340060838596059761867054414082498693795303535850428385075133685541835954068259268088129852878483365460173336763482153563603515526304092712793390553422673398882825691739743836606663972200597647647768087697043279388037603036802857500648264047599200592695958926912063293641935936110047982716991268396107821596436580119930101976678012808018089207699551239857572460869581531407875419344413581375773129653655499575800423915411779196849462628081745349655478486738232877363408686944481297763986302712759009443928069078113213549258284456332423055336771572234051095410538673829378046673612670919603511917639348103091478488359932756504708989299986074268013268959757504253339973646581659873450543858560416701244076467655112678189645493399066513175561851618862137401039067460416368265290139956890885918411779278519276906354386970375350618112684778213636680585002963798268834123417987536730562870224919556899983647272198129098234223520907719965977440660935178757306208650404873823631590764658116102335730127116293216353772857885547567098391371635224233810398107241629519422718665518651577582056089657932482262815719046192045171653405877383808993663892058796111620475205558431488724788532960770145611166070575579476947117001758970115004495288389072054329732259872535163682387926622865382577616734463769923580230733120991249950965920202655882782272130033641523032347781440387381829597223575842869254380049496629950630101388014894541294321310407640501833276303272868909110397152554854075546267026431795463005161309081452540895428853036975949033240031568996604094632230690196350574788280739873481694024023271321637942562767216380392642983471353781558791258418270405255509517865633411629342934141355439171762542621856298520829949519252843044624618955007378781535285528735633043203096837707462114483786269963176304301798805217874625725398706467441116195330080351318699372681646387229539723058482506141489779457407352040081067896154941478786010480983340830228390041850347422923709492595483119497099910266338425961091305553263267951530530491016132215702489930727340096879648251925232588377957009475219054154271622089186613455525454515508412566871226133637895001986197317277958796926094044931596180067961644205885483803706536526574215759094764645561797479978114802386835879668197784503837185530738331634828548251193722210527059946492164456888026462353874560833255419343228131219635875595983955855539853653081853469527775799101376596870358117504567467609718137139070901599735022470081155931721724751032050093903712832084575200437445563192437517306303782091993799137214704641652882334497487016719791317776975586505046639772585520468448248819125202993334856136734371537462781682783358310652753933069912706573887428831172849166285607530569590439997460533063020953583205527127295438940245762935185247265725245050126658768042932634907064802389811982133744206227075694375333988226281147587022385629019448874048506607350744096725534247999148542163828356173609022356440692342895208493491715980382342434518632341143058777952470173294952448933938132759012840323093930018381884851665368176053208380441557679490317767632363779843461076206395188714059316934378134568556303866089471589077969530318595246900227124976730062288606724808570683445654322069921653104979940188126985919885212167015672239817758439394958603694029135667215315134300664159653843016213420730039651824654699596931169327438987088785939763689674737535144366921156100975231848940866510455738305751717088563093878586354390183219907311420562541000324052436510156572658924722686989834665132401442237199695361947872350445512194165258518793014346597573995386786449208916398510153511813585788124364712617028394518843716855104700045838245329861668730782164652981378614135645071885739646461879654616809837666098042536397179752746329946635907307742021351880965354558196051881575408081440148479869448880393063290260353740741161134866453073514429467127950312741189964609017045681475299297506209231370117945027319570879451381424517911108239962867374372951743031771162692715498290164809087074978204629067564105573216723366767146064784609552340277753132427717008296322768005963028488787858537104231445788993568436275389868231107292390864727485626434831273241304863249683448013979036063564945804151687907856157860190936269951456009513032693781517896474856221682090811435322149856339504108508108682985049198414539147914097681085293680348745649715307856580461613798810000668027946958357041880713482714823568952274515750781978647027535174643715264664258136884776161024721517747284473907592367776657022345296311600908224663113789210962203498013238028375379504631218849468977555879101573563051983685594122306509254720940833359712029581890777340605328675010958811399171767457980823485643122875071134864556771881794361053651046684560955163058905076712270176696417772990554598587405169729260787077664206902256375526980175429517265254179533310350103702848809422465786994795472261624279169224129626840903259649267799696108282717058558966320176670817295700894244489986361677492273952165718431983848190347411375356824929340959142883022600613219556075445007269938470991161107417650873454070914063285361239665977307868552408108940004744766766067053966312033714586603327336430278984714422256323098564797518538070094377115830385519701694852052056727168091373956728730534735031536649864775319703477790904583976558220491787019303824635140838428234281091100675448576373645785199989078677630092667945326164303687158132362294862266579848452618104891949943759816008937532552074622289918328956430571527484580543758480611401452391388014704651069922106822916362446607733031064382420242715359674595484283074718847435847199850082076518779425008236810556339544893945261494911259217459761449771246342175166535209868511738252310598481003066833198093484763428305423982463617372814084621552530773916966728984541939597868533123984800315876385199147166207703884304118962812086786626462110282226019349926066412207154384901455893658175827044405349779735760863075583776389271625773953715896682805719282877340575397311024394362219743689046487299286921678886119823577470822295445215424883714217015663501957031030437596539443497501563253997144641930073171896289902947204382646396964845063391297567381822182208940164707401425576053247520339877038393942764006018943670486107624118564403018878064634248448752171743723003487207898398491554739683512269220900225298594361342776563818018693681058990877361572703288441659133533261686341163076403056282838043514533861183383921305327666116222949345710909917468043067219090574762941951107018049067185032311788774951252069120032376671468834796529281759974961802429590892560214415782323581190481797067301106470936153497016097948409366901424278580796513975842663402432052446067738019433589443330174935451225137354170080166917280416822044338150940982674518420859464743497818223495189770627563798406678138512060240436273090894564274637796788207807576727825916194874872008068302888253828478133003770552441043387187368298728903775476983268739653081359120469848112234605918056038110577105678856903784315652523232171867252947282289057660296899706054772428998186199738099709696116698148623014194721493475604574506450462462313110858511248967782203094850967371980690208441447766090323993678895635521604995162716758393682771817764251131012093941048774395035531216539203251986424565644265754853494734883708464517385527832245532383144946530328374960772925641380242087628198022914836979358080638687356953016068186248912162654931399651679005287993126841213012292660898543750802727701179150977359366354347767374074258064779058689614367274156971416669850907535640229645120208822059409322079875482226116721792829605736801470207694630966126541697064854613421722453678584861543580595923593654990793557285074754186672630037431152229709791324570929365613935679898726841325411381285755205660503244287991459710721276819791670438549691208645900068736450258452401520848834170031147421748610470012175926204472402973219998969337167309240247073819123914488884062403278056731064764943600068694666138746872960208594889942318389731017746450899749501355469779491824904800790924374128069260732053797731694774099704088718533259848478665568506858279410178116861564163632894623357556628109660539217602231747028402670104519824168768647919094033665757932777904684598659325082753233274593826102216373994197242965099398320236468574796961371725200704885086236348491278538692115534106834410434271997600869389843141080310651414866746662991792177546293313239846598183531555356966111488040886053687764086242569472468399125516536829774745715994052033216754388108643776277470993070583694772373475948418372097776365434833372408635249405868889365096116535308928987149536905631952765858705381103754994451154190178526925092260871519629848318391447668915012357692226654976344811190653257408571835460472717048325538613671502578479996879072940745521898264422346515627358310430556258314549653864715772287719051531142206827744743858555010538908562766428368280229748878080817369591615650225590074257057770624442483661143763288151938239265367379120818435268924757903096782677929156075871109017745210872043009279943004988064426954283578496509477209212584338526578829045901455195153428241150825588435552154425467106296982960077182425059097043954090221159451570036292681011939963788129847082474800148157754687924255537153276505154127087328251357347956630823627414395281543577687992702333513279172168114286973101851059653397942560098483494721242343909942603040940030831697156621065220297088558437294204339116814451055937402055997277241805004976852481202525936775133794327269704367947019598951516690900511439710613701587070891697393315893594836975245831586365913876499600477764807495117968332806448717260128027539581451987481323452432257597770941041856593558994063446765394526439721897102859766007329692500730968909898684677409259021274217995100313944725793767804865514986105802947403365008439458041477651092218176992593262175622242461891337937366248320618197136710396091668461001240923700087810022245046492365466773715339020566980679980802131081624850026070220126271671313867634924049050764326252237463215538363780476103342314971589226170374761832352656330734606847149507721017690738949193641003892609119915695419461027046131957851187369220963143497981136077242680702695668086393770720561414096497878186191049874258469080364767129186282042211825983484112433711750927528096586499800506326948556478069562416442545642339180532732384670947127567567101045387942149554728167705203949209111284452135753896626849652106963262730099655166755661401178425701434506484151633616267981169668250649785061230071116705455465378393800933248186903943135340895193727769014144289778450282884291754096234310230046110745305639723279416447128953251052752148694618567339123202971390790565418368068257739852810578193292187374508061172793267229685414978351228350237440601179236537669807043294636828675165666123985274546999335615052113543875136113578975395595035860088296996429074268029019574894113689769827903944155965226800745602858685180905389391290828061108333029087830231308102987267054280999863113563872727602260518922343465977366973760274369940492336641746903083416998135352320500664753305876975304425331966130197252285870400497655417918565882255886383647372810738043531291193114801323092180031160900992909201320553711282338351014494551371489146037655161066835702131593142292543408071476173144586457193886626714861236239030372948556265244051078654431911730796571736724018615955986700581911031591911392343121677617764635100325855894954976941737440424827945497960730724925338767410131851379314397154341022648946801768769588439762516176733184537049013959027054415938301765057237794492531890532201100104972660701083326138090481259304975196164659414267307305710726868766441101076153374464735524269415584491485564467444054815120916090009161561114060533000095500884121183359891464305114612225143819944147541666151082817784747606544011780315673696070082301603696712908332461596605509965869935674940950202588878185403893727677740690576209921692345283821968016103661712093575305576743345535373683261379761073984436057981588632935783687729898187723812762619431373744851086230213965492922695295945809502569428264838325806175885647799463336391071298433883697312407288464458502531577415312590074664656973273767848967831744557933654134434753906828929463949875199580469333072647475760454802299524220517270297587419092100709872293892115396858145602538552991806772923667993673696510099921929989656277029480265356124765010617000484511171136932690512183394052068444021881341339346341492031410911014571863784622814368898708318280556532195467106442593692811210759703353121002192127234215904506383159465695929373243658345628685157055392406911125257553452420739190512791483302443948050289309717087516802886874902038518012378829891961036528823067812485272401120227885900377780556592808490481024739931101421014906176799037597803640292407764453431894298914362298701671080818776587672719829834246484146386400985621547161572799569040685305267803706988604200619840274884358178692252647216719996332785410197991380869927742448201530660439436246257466903666182741670190313756443914038976777327982873912526793718161267374087548963270146182293811023398445456903201010156424302394127618231505422830476174619717973998086916901059094186375226783793517496746039932888734310827067645181341903985380509590968507508450111334852362131458460836085475260260141606857990912813796995165809054417842753891659751166612003556407080674916912913700520997842146539408854135061328858585402676338566248411247467927198821697063093405142636449815374512015111426339248868478368760988424077095183520463848964720113292986586640405696386737647265977190907712153905378786871035909400282703744803164496070489853017080937594990233023520266253568684774436438597935684237181100262228505563526703605990959700315859920798976355078935087041354327550491635530097996377091671152262532688003158844977869921707631650069402729706234914686205984279778553833079837222487996971465860872242601833089623450674561371833436612143694648332164873314383402009958743663540517287945035018755332024422638695070124242662987831293902378033628510772598504930831228169973817866713753711984969774230525004260975995133711860828612991493288158323435992588865896348742328628982919785045367313274256000698174315887709289040036674535927558726001787525476444454362664374020881460077306184841872548667885767193833492851621088719208359153337553951418228799329549191814761956969877722824054386399739147079962019832113906715926246146804065762210641154245774360225675757878992933280338349533483589619836498301016581163790716456340952823958291577510672617627343792201276224411768849234057703276120378491972038853541408086825029166196600195909609675838455408730416133040984780350553041257151482356071588777738723576695099575501772395169954918241451064117635184729653617529124456781672080322607901478825046082047436895810962169696542847599358225750222067404787312455756744036017000994210943425171781849091716715917480546116021330315728328184692867644184056754378757431821221541584379585966028513696540759041424002813179048104756692923650234103117627075735977292603399879509174738792782140818143530428730032156608152766359961015672644855166846314940473820035697564026153174288374161015361547572449376342665751955841367150622320115553633927903520532796004188094227708086138811612642533393614444081633487838890030387406585588898315677642118047005096216069003815793004631670336316124476344782259742079816129254243711999266446874615158541897937607992943085890276436993525786872667340201267465882237162070115947943872149326021805084030659351815037160985470618429728837614003833564945301569149317795090444685348991101412384881645808157650650325800296794130953668532215942197051080409782185073771165891922578926082535724679968397042416951086245793856649463889452849103962751794554080202209598851101372587164179011806631340870268740416478361794885585655981622519179258264476615633383627688119414694718343927926558908979499535369129870320963394802030956247538787046912247563828590198533439255078430219630197966387482543243827719484799556997334910577509130892674816740536006390439700211505789876347033897212551025583058301385990973965768259861099885801376327061894156798092010944530321111337138373093616490191871343531803037974407569009501359579734493207916050913642172487081778529808805698920124155388081067426582880793296056826293017105412199090288487448038824047998096858035450104493809886283155233073931601947017457396925838234115879804379244026881181054686684327685702621736412145660365035212833841144503454994785528834657957178541961726134142378214728783203914341015012129630995809764997913633550942918686092664850605542906325833473864659897973140878408783780919378787683049705416334498558449986078562559168325122193711291112593355983608206085259630460557847189285860118536474278858286356502963597131842108463296188749666414281184267587134104706009523068538805415822654711915183324579161522781273983117659779038812519771765846762885380432931915039966638212870149109503967566448333386446890284603747743204617252313031689915318537992698068897418930206814302162917592771751577398253493930063372410668390453427118117149208878243202140215797467970283281774355208205707485370198294442516132439882209892044600659024623634249570356155477441813590459558609218810957246175991097565160389489423453398383384488013271459380367481583458516751418682479974928297492683955592731243570692863312110320307080060802328901378971249328663011159801925113772066649186071949905174669916710849762877265503222528590065357920541499936124803492722222311673892870239526273119347569157549742859157064412258652707937207283433281925739004044484416500935291083029101259608042642560341627578680680803830456909803169182522599617619943732163053554633699645188237188135037369654870241192916091186751096307636418840319514846707097886739754467086133016497601720012787340979083953012841269222997066555457455183372619557107267612379579211632997517285967687677077837191667110805471872422085271196064093047704686444376390151282620595993860469576281413763038512742056830119908468868125654097327413459639581171419255145217030612466061414945195149093089625410450271482129939082848861960932997758867928017906516842006407486708997884740962558130513636433810673828776310574005600840358751792329925896979214790272088343223740087549765860869372441826167435666399535164633785903320647167018912250859367801703531172615873109319997051680207636207898080233961921859366887375358622493147283743121401219520878170481598777568997830871310591933258475896590563108174877593578537158852762598633975305300258385523837536050984703941445198160992228472830802552134511379430419850566011843899750278411994349900205138074626573360697922704604282842897297606524032611889433344741667753329734410231802133251685352255195738510810941280669998966859427078321773846578592459649971432078781102412104253163763046817986510198145218216726545912724133541160205427122047420427458017108126851779981282827605187587341791193679491915560594124969304027119930926229336262794788016982425270545751924180101428703424056035885279588474708925809293622276935546610214357144994242904094515880900344934216036019674123288232990286762148407144646704683953360375917139442874155188460636953026021473793896201792112062872496744358976656835273422083141277980651790681283494224151934221016948764808418924274785241184289188424624926975720257619803304769111773074049207741873665337588738881846710697639829518523806492669885779062900074771402903617268327274491356392638853654996612703012242703432851590908800495824724768645850963290116677881605177666385529259024947667961464333619784488606549111020617548821972407531732535632782589408826247218865117989114970479656809590512176599936150831414893575244601342797118745994261463424811699794652170299195563351801959729945028612070784409185805045426842766094138973810695517715893033967726676763139915016603462392426788299207974757080424083553273996017390542442778235138041781160861538458283788366694659809764455119471543680716946082263307738633123850405403708008653171063849398551753500737367562013026196603342378448442287101720316138738152629159034084345287951873913635386080789231767317119623867228626285840840721959283875612087122750419466779154312752213963654187528248519201507441955582094521536075465673407601937662166480166689733073802928572710379729654658888475949795881105668997362449468032617731796914496429605542181119972458739815781033595570381385397008236132770208324685054418640371393151328238086130385027043051514613624458289545117648503144648039522257491735657370527821850365393125229080116829727965812446938302270185978891813532002597194805562036917419853572574683207016054716992609981444342152525489015340274799816613023258816283847454900831229227972373755054816144122539979035703895982257016509791553767834605722688031451262544954696824464213335522058420011920653883239301555849294833313214723904867604438997272033152955728162286799820942821725245772216924088469137982032321077515903399693912417333810584672117564749252148520706244476276808269221897653871663090330026340607005183461194562338547566372690441651411333303002051974076142582983124569792796121256523697221382242413260026408234138660478462622365833273495515317865180345206765387609740063704626623585099338122926129106153798405654344043314134412521740219777854364060248138402791480750448580966936017277125270243502554075785711982245928043500160075681830020668776472783188905520759250619377615986621107674085224003711374230743069129394484730792250473821027776276079928163474769732424760049284056963679258137898907168072885970461124199402017651004466049428686556057836465744379484549664175492706125331763511269717485280045578345658110088066715282641100105057800121358259826573887219204697456079166434067565122942500957309558958376158091683858039739566374055247831424082767825053747832346543444490915381019526007784331756351567630661422524503251516207726053501281056421702271591974481940852960335605526980153298925346068135303328680242344953992196014098351430783873940827822000097723363641016816218953048886723539531292617924250211987991431528657968831495192773570316266594458933329735724456074275817364804124090645586153088348254302679299955728793986065498482464133054621544669978534301174293426983187324080304328912951478151412829943473411447686657523413001891858210231060208735401278557237942282910631019411554036107334160116466693182212503645396703202078715740590596868076720649914981932823094769821064310419827091029155819823630888258139111220713795288867879492558477151029725648051335048685946424210058687369997390671329204403971759560639160382460981155892425690834697089897858758238365227759202590104486287832996438691226705116342516953005517755510031271891408052811982394096699851054386940837602031915440926577662306308366851196601542172010273613899864491254898425047330943439010911350494914123858933241455716049361341682027591898780385626997946030044256043585637333545864068132617127662560458796998269653977543337452833447099641005932514336087980835630446691950295763097223071721262695837555362447150202200934013859399284184773288458947272954861090085016416486226708111411812619382130454571471872856146252264527297941770807643831450454413834449952567668974338877128035160092225784399430779943788444583019408880781812071381876248546193430604252871318873950184738014095900243277497090522857846626144211571021164719694654156120103134167428911819581526240647951444048499701639257902826647046636326044669856032399027161550361663938936811036786501775214095647580943853704416253937923705620628828757114571016546603040857480550603657832736190796116954974887793569150622526700478061375642178851188353735697841168826342064116621322116518102882434543409120473982345470333114805588748325248455214312968054144896772501393133985968159858731022890816846491683643525839637211733841635667772372900356738376951136598344917798189226243767683003099051361866299144512231392403778670552068902176627682474524096562733774951259905402957211766543561242679589787732910681467818034575673135379035359367151445150259621054373114901841057481871080396808536891190602772978333193297933531116142119158971972841128822211387256030482709274811315051415674751212466008325344172968374076896409588622264787265202792461578381071943288673279174298045891998707850265867856078483163268546236842668091404835748232216269333073834254147189126074239991032977130715358384688856937460760739605686099959474323298102410002490448653719334703330781544642545366041509131543995370204769304569246471573671454028588835834769521289237220957329496760241876776204203082980070591658511364157953544871758877217150560827170366580468579140768683026976293330106746439286269235210449073524103289143380598370415015331233263724098580378677477101851303460409463127099368351945329694822085003952048539745219830681590729138637235975367262051317297232810647595318331310269157008637914401500505574580988906922354622587860492200237131610035726353508512038746636321078609830046148021214656619472695472960962749851503629360036413329586812118724487868824809882139717096614708122432993203235890362860974541164912159480407309038671238720628519824268983153875828180417270320826843067948165269058032141753283283311429621360217649723752193873691074026532995303428982628751360305651812596106402642119452475808692566629424446265054974765803856469657512122507094949367967987559804985046611284648293102349076751489082772622238867827210879531319678374737739737381300187706495101776225408682089021833606810843185759430987878330696216283685692231040793610148266445491476884718962325164470743224400214873554825901560320611502033923296701957225642849833413178225996683088522417392337706927857899492058010005145079155277976122760938979019121877887681375386771289116246838123012752946545912471032356825496895058666022617624241403330714910861342541745139405514742095579714635400517171717115419487257367980474697518548706344552132736878390746249785325723746490680294153446374570973211619530501118689753743778951324039439430913535491403950749054591114758185447609748728849308386342862641681577174621479878756347276391026511634850730625513684977214947754392800556315931558008659886430559591458798709890472763279859713691977462146651442127932859030375164577283760367363702470697414048393468839720328305064409849166709471980000213315291378499994051837883373121804021771573618181751644450941340857573314925292900441474101291292111756452136667900053532097163180693424564443797183365401517829104388992487650555915402020672884718672517861744059600802369233381247936988242168108643850287588613856705893197372141437394378979769701684890376939775001928241505421146986790909511037256749703735105604367676545804351253139908520708897642752185480972582570704708630884376491113713679267629074047335968405876443653130208282161181123670659275593033361222344084826675294224514916195711482077544933973666240553027980243972634468099152105722491059834116530379493172870872039146036369616851479250654204549673208679516110434314539256123998552985943733432104942183359444079385894656740205784798245122290193863892632642324385236527140149292711797780995894524217283476253158476295917752190444269609440236605070590211160021438677297376963662419187161588284631943649114115590540621207948636066226486834176579903747458369773712317348769125519109167310795304493722572735428439064917475499115294168965887472575918972695417072430526014971829942650500366834260036070517745896213803803062329972442283225153494843896934435202050487680593035405072763487691211401373148725155376380919932277682381393677447300415415105221381355941310631477458051619014590298237034825416900936195167085642621870178196585309732966370464439079764849870617580053295415169757543226391378560137395925663787769456852508414204081786858792974953023518677729033517556369208442023606757715039778490452740701743249324607307527749328140225230363593689640472097951237636545766482075344375691122245706873281252491082201060569376642309256177286818013082136084152922409457890187040613876945797925599757535594042668242582511285462031941584306122756564844254998229299045108394337093702977282476785638061429532254083099227257025830146120430367983596123855544897643467703736533751555665229523468241968429775688334313508204189878181906756438287756282339137810326379447276170216359855576063083100562914689469932864191513649061717985775057078674952667783145546130459399949881550506519702567393003748538315874176380665775637223921330967098576945997932281240602552312975020079070321891466119844684385533145405244958113820085480322468071558109837501132085729817244451545482168749548586472385740862364710632501135605296281586135648400401703611284279093745720615811131825045039782566243641115701624635638287488591276365968779407171735566351465177875599651953384679072121939025055641394674195111566476812108583174388736414340723309562249547544071478591201989934347148066659519219805574156925629493693440954036476752995868960866409952323746297889735276074075013273890267626888346047601879327471389020800251324113875273941416198932249105408789185548548028352746898654149056957408799953176486283143786501688601337042358136306953289910889813376363680520994083797721252398904429565772685313395342127701458325494650052112043267674510459046194398758866692950765466658569154337523056403936391380579146419527667628872369711191198027572691554653258666378200025878635410338538770176794739627622267405111764500078697912119444456974416681685180934569060747286044694665624292826625232968015925700821264081293539611018469831447178087338588845385212943760839157137252023285601048942459436023918271468598906865916363243431880450598763446560486514120166551490951009834980949050385698542672521673576814058530380384485910604787183184516977823487328139952754286107601653140336979980450082470667347819925275095569861026330493791444112234788880474666337357987986837421164375012332184668457038482564584324922680386778967642045220044906157944063272568221209253553380237331746860342749588831415132640394372838882965473602841296225466523380848948294926627710284528498320933263483592437709285617978677399332711683101156670740312432709287423191062441083403280822645839327769323909270579608683790201660349699319885975694068434234029151896565270545900505186487202021885920655706546142255517128304400998453209586988845060390453744834744220108142579796040927964260838531514299678627304300218082947250064000213985923263842640064855465484447905942342110486810451654631601754300677960352701138538064486347578136291486846568769941944061117823138865223844165068788900164942902269904877480219065910464444165985284481668158159711730304081680453106703625868281917419353122470775770957459058569565879585325915788620404334959855634293762388511963775115197941349497935961399565401999704163600543238651814478006796519766645770776015644783536413572403552636505544505604157537638487340091874163797375916531327497812123236756725997844482785312274945112299540934390324493810840197379214237502221602153850074022381427836065430238541111976961743012159418463241287267946837742823006801873371236920835330848339298257486762205577734603065115831897630186296577938654238452155983876546008561517437542564881458559440136076538250669520902066773620899342023979638855543763854415722373769703206182171050639779607335599443668544881419284629100803315381438376035428015256452814764514030313430648077514807736538949978194327194299153413699167811910054096947861438283935198379189609512262005885683407867539311346385090068208115127353724172880731527994879966166073154492931477696048397495816809912112600495079474522400249966807211037247192157929927297538820438574875922057540476999068466560476651506170684742840918113245337284498517936155015118860291172807833314343300276663346955194007546932576469705682909843268259181091031147087075329148445212110330759125916470840875051812315450931776226910577854954420731159078634521075509433401957065621646434343757047603740154248956498503841864502159927830382487178377184824186965332861982850511085126542937518585850952866561472451711145925235331738441645207304916290569046248551318377461951921111365913799384272342042366459935238058522345859276423430251150519347656325201883599417548292146734790384160677662867962108256855790201574590840093156635700493899897460773906743476073265581289729417018800065565012714303247832341152202504640330293986476271756749453856890317765852722343463956198125749150532114408807111783446977597233656908141554319905825380956400901548219846161183418933510463070611100877417603557119233932472117666016306543588653031752124203044076482341537163321038703299696006288779313933995054878418482322166845495396351729283809966908743596274976257511591627104258477597126427673384091450162903935612110078197945658650182838424036831946701235478787194993301973291680365547583192229608983941051624983229141174144392263517579577803627524456615905589535798662219395873802194640543326317047738494954266054239009419894330681251753433610996691510136993031591940135228315033349078232225440876132296289914781466251537369804813570727484161563052288169082139211541878317669559938910893844764966314687343058943163881781079352072323785937723193854014762880371364401965912271890153556642574234465587097230464704774350116727281535740104788544049185496162619077180800451737703819801272825423068163740231040290213224926298510665618123721551191890018212189322784499921550297289426313600271772862546140293119054627872236998224724438912216075682265842284772758203868793137161375973607430213334272689205098763971716800473148378657245691774927722064959406477800316025310640562147146437503172700727955807394990259178291557144979113843963787966908149705704310229039661693350014112908683011945897847715175777080908123886770293384453358288732357328832997480390319562960267274194154650420070362585634628902004887855913552111774329856707396413559775721108991655240890147335368258955062725275978684372600722300926361051485681835537499251347450792583108589045048298877609283908172738620612181235509757928718745864017513913843797967147677816784792187274378354892556063423201910470428995569523385938540158765922822990697362354741683491268524885927327594589462982255720971655873932109029818418817808538335338890368463610367448998258881728448544687988353894319770728820800438370188143251043471314779895541003058927279292686089883974579995962786103957141426611967412461975911355751180286309778005658762350519968838739339626304435474783736186609736205541160650282522948940664886051223809347047663293385539360926124539527738703450232109280605083970139877240308579724277096217790196183944557225282543866622700566638404098985560202065838557817066435335977112956743259098754775152046786719569143732767493394297641490200057899627938268931941857126967259912561396300485639046997681544330336537528419042638740284885405670514185434393648485865828448313404452943157028626347311232102895559425277744206199116435903230418663411233495326354183802247650139536079810128056514562579848714705167217651570903963781133691736031985861579773782131008879944469493854391842487581993854248728732569743831148498548668874685509175977621401150527801349973949910108151507037262732099007218039561515160230902542861567990187629430256594250419468088002062818908884574877465024037487514937414347222898548176536850111142349746882527591044300278826321591359490957650794104168874496284720129671895334809831894612564312233170131432039939598718411646561418378093037753512357582046464494003605754777430818888154622534163178997113864400308928904611109215720186693555168805286527678110151684750351265433853063334242854495361738639012500467764646793113354187849566772298168787845649289089851977109052873328639594357322476790643407564952902225354823361245318217102730937094564118579935092215863602113397710077867042153688917800250077060159112300093314892807100684256156875616310790739368201164465398045802969909081323771179067766818546807033409248004920819235293660172672508031056890030965464352599244739935397108847975349952052435555769860536992342834756661489134309303729415115633415222890833803209291679983232679329057259838078368389832968675124001176250168428518462407237315355377102983129462974499228964961389476619843477648965150688361887076331899046207373452587848482864285130203452840036327454705059968028304337582970516056839052227030820484417386999844068448543550149171108136420459021800628613830192507256683205210943289921469550141053278112788772226076477220586575947414996479359175689964110583257050158509708840670434127900833175181299006268760267188601559343093255167879452525982395363400722246641328749509479507795973628374000113655751628009623080227851943996404729876697194558495134043661925139847713793234520506854749109226984560462040292720256137318551669149715601252258389795722193490073104124300162817387871836125241645131802182638727732453384949497670329054503648515650200996208050250712668561281550704929070088155723350568891026559078127394574000637673223991875427686556335006068452236177026170481930128388896943711795179656439719748974444893501827648524978333262475820233333442500788497710771326395186503586831036935694640824154123102507752805678150019183844795839659524234877199045733901522205931370343875552569772886561186443434335098918012577906749634817756776076187548217654753050267612826320903563046536173590630434869389497004884060404313841594426181891242610075317423571198953963339170981759917200735819183331395196940997572111531788583242216886857217762133673651032562860529305797465401397115126413793776584308033918755708189285515581603630234618370175466389732601344771526489339984095440192163476171758818571736580610279348876597110690719373428592704045129041661920126730437704099989068392369799083881832551087363831927503907274313435029692587645744988087144662479558060584976505436566935268363775009494772302897262782347491853606082131082913778479612437582090951221087569866093613628573681749203764468929940076492106462786571388430797709114130070864229257444905880817836984435297425382292404654343180825860039846855083037781375415563216683136731267361713467573479839900209194606081447069040437607227901237690618391566566939770866700005982606611142738342171832251196204578421497138105170141837889572682873675930185678100262442678092411918353927641137663088360364176940646777787882832493768151598409370413883725471354345942911444903509319656397264747686244987459985620801035263476202951192415984994570437570703039390128077197631167420568030725048568132613833898132257656239824237925315940579209181587406364936395760344218297702448281552832688562313374080230963063022762544672363985919911982324440949028836711522298803710049339220121019718463307312951747981254225260703135847120265237823793123302941514436020071058000509102020274880017285613245076852320081048536667796685274054010073405353589767626972562195587755915594398733448853874443849143383980841190277118033061350464777217917959833793858482095798394991575592988161798441698861807676598314005400047220633519202032547960668890718620534606836529129647957143856012611790891901386636791837748504537744979936353776986950879141306675743401099865606999875946012596405843366603673961878568226739445994179664005447447054459221713991659537614022650032408497315090808323510719464180431802238685147864806843801482769508787904644797532916032551589974409473904733001106042572156525024857135406250407574630069338125220219324489416064775591732788123684564654027412106309464330800009660389545706312024198093249152364215246232029524555157398774394498440748231296015478552146123269044857707247270549059955439053771540908876747358505451872448867170465068264662467640174318032755214554491488616494994576208887020806139764184460694901751235740563130596602545570429228337345294501605011093809292171926715630323509413861476174546090382178216338225134507657086610955179618281383003301190725537211175442665928138676843717786717585380993091263134275106119406710171340848218396501129671141023456128253796978482139603926305892935549459474305472650374493515019404803566518792137966721797220986655007867769005843357753621847144492753793157872866251606792176707243663664146947704998441733745423170310222311554383995383867358582460132147821756287352669726118587215605001949528314061068279141907949716555403866522043281570960659463756676514952616966099317780249378949687165663571493502291690598234366631289601000539340271352107741771574019538407579526591562248856945276413245330402718511508298804831464087123308760339078166262037013555070687275495944407329333777852401843750476718034177307289104045886472965807675735683530165973900712896755667448652649306704553830331451630107298577107384416688351857663778085860925396442122062788839733877583800616287831941648304590565406715565555298685871052464103974380206162677115186569216463132891873715817358871121364931744987916514562052974888523408929746888018084418671040966983706805637452450996310802358415616281042719702437292285535161986072757400822233904587658496460585936514254606145508818926841912583917925605085260859301568535581069220228925015610635584718109122848113976977817173472810260315761714843373218333719536545026037758697352339004273470385176748487577023861015795472331907086994207510259911149831010297032728480584946955692700744915228014235803559763112090602038559135816922530378128281946521038011900278043365216633445944571981973797816672838520295148312380771898922740363692501858662183182301058218123355343341245840312818929909904776160653251144178867021479510006226374209163119248528676870992876503300706428295994003572829783624738937018324657301154432313157955388739652564538260513723706860617872054811149630782994735939974686369042761107397032690482528316910692542779379001492743864628996103907041368807589173514510786819502078257710490948282455657595151515119788145082584342805789111534251014847345064177027634250544720961002287182349240459245109391271932501629731567922469901767085142898153298995775340767462154395880467294457095902440315945432620476722841284126767600952198467765177895276203794806765166677498197309541857736468265814825373693329163849840674802961492033355376534942929301881996370975103538416217776841005406778786168279151923114435559830709667429664489913911691879552450525723741238249506886734267084309131797086372087660101475595778817671978176211130759122585642705516748408201492653101825380948782583307474081590114539810692939347543018937793038771172584491714031424947540232104841995552239952937695310690998308546421331426029014244139936896152057367373869694179204071995041793577446596735047222303804456626859048129987979324895354513440715805076517464761003435970989702600237793398333182238377720762939895783900886603732093898391842714303029813525696021311315373402305809482128984836656879697735508993107207512536393029423286752278503211988242566746055470138269234902690653843226299397695787781525476093613703999509144016759247830042721743799193908678377821200318726745024365456392944499241195641609168198826241910038594057091203058471515263073087682292301463885728436889379082808715042835013741388984491127429746057784602984773378451003236896159381584184038951914536450863652958458272335668184486966698409040372043213075974883642888368521446427123670156354537137775856287963303111920792110591955163398691559729577254724943769095482061109551712614850884229809553026644932043679585014647736130779522012069578169223421609314637624997509014201404291300068395473314480312856019548932001755511129049900466398447621333519566007490484072219138438477605157834535052905496859406221345227039685744593898406042626156899051152669886601158594183239123577290549284959929636706593913368844572783685951467308342322561365455528700775733917516578178029203284372364751144692960603138048142954840213189479971946560733281223355894927481447015385586275375045809085191428264730760164956990903009372663149659314819965448041496176886011739240382329458968923565093249488437935619386222545119994545052764510608318927186165194829179763439125818170781912577367032246893306991885264877944379446565120853518903698874085910824069819714111997122559343184795095357331353670011873768063586072832820698176146022479228827769927351447721695355210307389915106500587909154358506784497016729211490602313713495262404777199742350462560747523974357531633893654921626801371384431230174581854850311227411841270060191265133973142401845371789790784231041598021595606213421842400069130859705894527512026335568242958217987196842735446722001925977197726637939869874321506366950592790977970899748148464062254279158526371772071338542156045838449438177225279731411852956884240675355961347904096734599895314336712616654045053920665826952305809432562599169961649510586585893132353656002363487998721266063090698885561739399048751688685023779429281788666177607812794805755292107297398117845120385185153329619824324399981570555374275311182774899900206485743501064467588530267337691100816117295250494570395990138743346544408274349366924405834514506455308002069592935643068984287659356680936648048152367855097654068575893972736235898310394164320835334034288942270425193612971079045410519858330811856738087714703768726907060574452442083125663154956293617804687079928482170357370294344308343914959795145498721427674276295423940996000941182142658936897955878819100512124749065136431044180464266424070011565774725283801805036562103599103226706504342947255366298516894082002138762325994076209852779580079773186516057548936861355449267186054214347795565161193116804357312890758135675035075523419944975840577769534207124484946509366482090122215372111550214324126892847058000643565831770962333527618012303417722885663694506122577880767492748419634177328452973850090251162235413400829255450196951526183854845040728884930131681740437183811419628856763394775915133917976765666059382350898310892102933912320738173212795692900863756763117662912962904897108351657448576034918022984425435268217687938753237190633498106933819901261061694311412686130225975629024772708025268802017151949282137209035356886845186065360402356685661712616585105904062677930531657115855203011342141703856390777864500010441291037606451817568517372436648812115352150244180904669288980275198176275755394406537510935910540288943846068272970092593569841010857667918114424935030599342326358844797807827200829923743814174225949561482299965947620426872312518714684601075329282773447085125658118197666983258069146598031575147242202337214778312867881358221326464422391734683301601697391183698501361236712903574569280961443214763516435951753162948242873524924547507266068406069109973095369412994056583481488430516453648449413285274215067155111004488726966871810190750774176138384838797932335747734148983843977633058815895329906495807389881820835352262827856819408027104596563373864009731681171538253714192604778105511944787390147683726640491272882504052056496755586913994937099287827314444621227032723367367540513085981361360302108806498601487906928634338414244390016585124557542167650308939671490401259897011044920488114790060759218179705650974379137501781251500773144731745842987426731341219124752887250081306368096581532388000437935687448202714094715108914215604366200644276071397655727335268016326972282653950534692452847596286127195493664866616481303930269456706670871267305270208938526448931080735100881743766716669302026468841880150460831692211030084631093552694161704496908585989838916101706562269967252236745923133775435888671887940909423023441381865348814011026688942114549143661232303165880819499061578909531602425882368277060864934496518861778055213542699087164110116208423139744026863933212619377025399083071963685100769455050822480485380117548664669706089498597541128822342444981697264619173534100141387718073253022967313234995440398682910029040526938586598171070458851771737310735546489588706906365070970980230957373522334874204151517025677469897382895685016404892830108512715769831059735520954032067683086334882095674790831842215650190287960763289155911970683649394195985795338239666551866227550415962617937463357813644020034538827750555421506015581983129052580728789606228528522167329925783927392556725868071689874981885199975761228225765873922806794464670575477499849371676348816001537444865425391726056159147840590096935816186850237209874157096078555058574466153259553442855525000147158586779210544943136670511103902338149229524144881213437631490920418397153636053772389415630859180040938791289186157914340432782603821356398440316575176721857099806593809866936036002567549310120653630308483665840040959096297133336077352184333289636117133353371221674653329523641823821623529761114467799362824111175524184682334441845821573543795116342587211399952384400009992851733029206941162298138843526372957479329984572775860398520443889790915902623152445151899096279474125851353403862910669539570022344739434742450141130415524277674135145186408659507953702209368524077664431792548126139315911782665472608973191785803372954528468655564230985391129118557982149337937862822564174301191372971140406194006182848452970702765629912365645806230594454422970130533465709062422491084417662870398959446263486266231515927317664032290533186620594899815389656968630114062328635430811828938257549546536107617537392508269977012140927085269474925245999869071535841114443709202639878874581685417612268856977463538586101389669341486264686460334220726204169393707817178025941616087093807981083116812994007166209313431125256966072802325319514374193820346878041717623027283340899260101624659899238325703959362760960145393108372332795040523294698047594438282119539569485930598986037463843762842011617073093666204720401898215320200644562820222622915735363640265892183643332886594475869302789945510088158188321363898747409398986953398477703924440816801440577101627694879263807405104947207306827251286182063189966041233907114185453323796666592938259657315891211089544657526904733229470969275996035103312714939893229788068619936230882422337445732108085715026331756959976166812697017835706884560832124843857683289121807133520324598518626602046265012599399098200594565552969670487654768840015518885829723433587401824165117286426099597982229883111650053973111836730753621041530547152554684438805509587253233303500321638704511589121508046272014321403039608426825376750218050085085885789788086323573388996841689748735433495603168773622508060283211561908538654973260583296753645642986226773630474918198560762661776037101750698950919162828474528069351013507357544478908905666791539067040788935341046771863229254775943747758169485861149026843671826131160185348244699714012109340989993136137432600049038829046532016015515019084533082909900900693679432039271569803881194934102179596929448281368037570680740785059541809724674303566790931672599745090017732451567101375977954718119741587265184210089705241137893260572437574580733023965881521177462962374494970710423728365406173086997002136828209554312769483586724970794688431846055121191455756252847262953623869582447879186577820437397155507322603384488255518961672073041303631890618065934647118844103739019492559113850109019294552234558345437789591215508179996079440283245039583279350171976853228367705537496208611498858818252321576968507463101353768167259095034745328620102447374663217724425753431891563035101504724785955491788918414085010197945395652761364096714681810157283419762032741694843902629497010117174775768031643593236128791698252636167387754179924566681032794476904133524848946684583362991733294377877834121951489225573190799691802952874543223372613427603980501004764721886968468660224299017443231458950178970459368498638054882521412830775955236322474695017987678422367659915732585462591305425477542065816596901865276121863117287437196385443059555934965620049831870914916635280890354325530650871175404874149639456262549358636593569759107775185691206780172054757533666618426193783814645565257698621298342843924037474757126358117817711028480824559894308175441271581778487511448265428057931839472695325393135774790406703377344394906922667103826325321357218451982233250814038407393510031074785152927004960533664517241599185976448808776884141708094979174881637300467638612111878875839744953361906556188685360375657383525252694234300050258152124309787092995241165491683885861686867442030128704112741063759196279405250294959514408808286946001249068860468275701917468938518909670842649190249427678781153641969449047571040163963010342531793965900935918815777298925261129069403815405808351026248064439140323570144033429678830097602071362481507920533754222047880543632115455076361872193844928592578172119560766408390192168447922849745811178021570321005209497845430143960788831354539988385853086913030377310343970551058428017960513508347071135865809124103371663590084997588683614953034938619532949266495005457802750053613745350024585187904844133352903178064397233178228415234585437916430498490374488947160429925788429323322057973561212249669817158327870256446191881664942118696162777988328858028078893102684716109267971473135771650718101003878877930423921898347016625077954397204216113811372346471620543612106498291522652931251134416204196980708885321382097868259725901397851698918942941981834945893412702060221472864768976103602536795674310480180904500299141237239707193157413327523061521917460370955136401655479423012845153560889072688555541788009822305232501311826122583961164876783555039864480626275257284994771535115682912068065223994311071331893928502594155880514503480589757915515520154359827938789744900408197992393712542430160740331639058562347679297025372044564370374846338784719752433382468481522275629304023763972820534928751578292984514860373109375428256100196975226825094445717989047896698447583356496541550730708731311947184641760389496762479173462822512883517601144242549844887333450722066021502576307978595684611942841478173869116787937490366260369334244458268975683870965389336110876917127854766310105510928838060879187536587918690169271437812308411436857255177615067187688714282395344455093207026159645043256687345234792702878392715635144869296020686132572547329529352576842173694508975572921049348195393987564002351816835125905447759437787956895602648168478449534761262072347208627055103613986227949700264074576596664591968898622484902362071294291223050052819098596348707956701126909194524091735215606198646561492944291796336337697966938449999243569319977810880000831273523845042923663202443894056297603127931962195400609897362065429184922229940988231474351928939976184819723351536043522434867451991916870411068390449674375047511873172704036319639248124187106098706789173866883508340797875679302255106333041019185302709883636155883834082515476265683238318427260886723202081371353689694406117368157994513635218299190098848072933355167509420442043675061616528510236382204864052183128359223397011033242444932651906905076072345979969700950218993450085360547595966295102164054375893081641535030493914552782238955063000599449570273408311780723870487762497135795861954437647737218250895951008824624492810643245452510081637286167423422264636952613133832125272177671740238558002192010161313155437227528136019666887734339058797513300409244179578046334512708927817507221718821123578952179611311971877901849437801490937476225007262492436677978700858981527051806227395909716341899036485065814563080981441514113871799378027373714175127502204509793939318042364108674369307826098641250131399384014627011875271016492466102526723623639610516516071053626496689444591117512004940501833936591187177226555559028312688912082297374416506433917624195865291568478618846259861208634920818816542644598874106154336303843673254381308042651028874579159172802664683093044813844196499787092843171952362139071768886988738101185203023212188791560441996260389915536523286807201572641097627131652612236385136523376425202102467263416562874859030926223376782569219177498278645096503008438679004958072822810459713541223000661014485526943678697704799804882401864938503410552667235893779654392567943790773334751042488577394470705226090673548486912335296120765302257848856204158161027485195020575805424188971776034890999295501967292412040623419158062976990775202149678487475962433098199068843324416981595167246779845443503840714213402595236553290775715671391526099844648693033640879963395085109972370652186066436278496052147750947039044022458128048505777341092466165714091561589618060261562640922639312519908724025950311270811387611833410092888512083069761440770849717259414308683513122940037397630149977401406302182398019320539946928048770025460915451344060341720761836013938234188204982384169901686452907409070913951045234761484991966240612715076525494717786115030473801701876995765222334757069901474939587258945859470560813689387299295714703645986203801486498711521781668265967514526958191112908138243077361295088195131264446528954589749468764571381337996902457617567917812988041368446775413581636764555027391339980861664968543593869099969414894788662878957932757302966864429095837858563000520560048921491598672437530964898031367507122630410076481778960895812507295975791007608243797977610432892199336892935159246206136994062929686158781412149611328471842259421018590851296179550627272403168958630162701785845588514642637332928107559865437596863579578479704529443057787049431307163351403757160105200329723609292402061064374112969281830502996175582325422969023303693536713232753919750515635811978870429189375826476500311330033415121108551259689574015008242074436326534404367141776715934960932409093601462843404381732331894021520106866017564403863939849045682757547879230820304876956532028563203608005483603759314314620175454819593738528935649638252696138866128646948052384149930229587910673604078715469855746959874275562569511842720100542341896201181950436401395045567633570410186132809353444370665870367765966114098825947757213026255409015149126578216664121583263270181966482650916725981630531669020550302304150590427814638306744281568301966327177448456397355555548382476930443634432950816505140814952348976000205634690263665916396534634786978141672211110071311893740891183459727108521067800791425168695263763195275044369487783626252406296285337355517113420548773998422186142337730908088946505473996912239547186415712882012447962611066277004636974913321216239628265486893432350097835686548196595536149056304634026530015123220631255053421659786916737280815825772276321847213332826674974173974708766077054954429128608936561998886357728136968762986501723093660541078659327302771177490054024376515315585866858946830277465027418154192087836129984439323215271954439138696931938455528199202436702312040741746963009232023116325994258877435902494659287846945335390364169656111805280045601348399771976968255742207719443995655906438637980699600967585730098093421751164589600256855928131011127572526453355581234906903653118314232667382432182633593365716447492129393608098635365309679089399910567805442764949024073318672897167115607254762311438108102541522845497273585312566786781707726611116805628652289767685585774854014863373968116357374312929493179957552666627725939383846167649258770402157822519672399619848050915061744011835368979770937768212002737060557159690522004439442725635236712017935506383812639895138265600039312153784112204324341497964856761221304876590121327561146791429368640904368275706235893302484771151446301708289997070237069523076573596981690243688889688965320624508946206833780969807647850141489995623739727967721691741845532933640616596459682854830470921127106326212210131522483071516630049308193699786560341672494353389895051619506348597078201669348787180171809131929671942072355131330097843015027735152128686501503426458277137994382847867056180485903670435499754127064521822908250592240757878491342216673081372502765886847372222246359530116942717277641786420123563560353030839780307344128599002205080885952428396489443695068044793441033857381049636006384782873559206914048713943850166180913264455236619080737183591876494766737305028002581078168473378854112426068541519826379031216082686944378684381652973472028438459937192868067135086924039391490473258069423122925911861141063104069614432571209774300086471206069834785277098983531296229791838094148522004582600680997378467799675768145513846216121357986441112422201243016977385002771859662240638609775909438213803114565929353116392789877810876522904134700682496851418825427732256962017716350147272714503418112952703769914065787583670030018945088915805414302524708842973373356842478285101080495249766332420922523546003893028863857684827316830891800049336117147120226843487070440790665847384782008234882310220498590959338397759165324677433568968305315770417220918790856565752268256312785976188506439618259546549125273988686741397886976531054626256299828988751049015624291477004636108255367302117989487896145692933570665132021800789003929935529466296231790598751889230895259652937872762428175980937523095111198824864981231466963569970018828239536373051699887349474167243186608945110741028897323545341958278134226898060069264932252190688503113028483975243387182045399245526836152137312183485656014801192324322635796234453121832735117767838618594963496364878470886268958858666685357087728311050815641124416611724390594262737046629460213629381728791692234084061765067913415920408813536944287282473204996070946329150328103175066778631844576112515758396543678550369021610354994202673301467472364627656888267046474564132886389826576394098916158377286230320639901222511171462465866893362563065189424563652733835828484944912276596735935610430856752595592577486673509533947397227598587540295042606591101143152785699788789736542257923940496477064382620541935955229342386559093571457770427587598143846944305793600050189435004568494509393646453047073694172056459773696396658627705520445114735543748866697087262754867518148899987563271585419663800116415718052452083008909890027852592937854019558670191781034295274715788548337818327176469937917360586460319654966650209731894112899427166525439451208857832531629321503924712709088965790616496796925830216438885071509330052622619978174843194230248023880049706069212276113750330800082806186393787406588611748049150638701828532138960720085123931592375296367695769883638462530811855151445120635187352277302501350059168634434614757004551592027081269214785788196262813930115061441434703789654167061849773889295284113820135279233530091808748847789155363428772723594424251705103177177661280528865309138400256982441965132575584910197010319250372140724801827236721730042571881330279083960528461828479243022562161889667384403551763888454113998425408686631077869760688735372070763343533137015583127322707933695523838408252558779110007848012440640237621548897268733411862973845277369634739453245958411835348657759188965761803895754209151349526351242261821705823085748716653787518430051491687867531498653938441649164288430564480898788561546228791703010069595294488259923585873744456125844512762660410343545927822435241856887457372425532326547301478287480744116053768707453579250809053076328567414343261607301576110291827429143179035472414492035612623647290016572500342482863745390363461070010494622767377378506935117884706836563788125166380906848346948343617288038020766662757536936143397245777816100646526484735551457053716870234783288548167253274225667482624908622698177366686168573004758548837652662807219061301961768102135283442335025303379553045422997970340428783961363689021134675864033137309750351904138591969669416920558852351626699661783138780642454766401183788467158158187339275583749390387663117748854811912484128608107453553370482078945090985706192705994948264786698864583951881922304859085449202914479296539946892016510348860156174933018255588513597049791335094466752955963833329908864898142173290557565463031768549172205775837286846049146286087692545505667578968701311302423504814038320883395811814505596535969628042949543187595000113007244536336655559126567743126453763169843006809709796441189973018017936330720749643704506538502667592617950443131229244731698395535309267635431964114785645395124412088008690824246772711535061859460078971501756389060550565027687357558845158134936155960132929421147216025708062536236449158990620682883801207559691948740419871645864154056313938055140914544650258714708360189361372275451178439633535820473921957984048499675120191880743995230264413229593808256005823780937344898094387864352266296119899630153016343157135876915928602831706958784419759772702412226407829322621558586534831373622692840259171669492667510674426141306659415798211308717209830561811097651878155297760146820692737186374554300945890432223362693547050483365741419579140068572300403840560421209033764996419793027250242909404141182043062019652134035931594960459287630724058650211950363695996137573952978701182066119532413991309832906348644779846468366854704970887244292122898802434797728219981818877677471296315100057183033265047030105049003522406723152787341246280476392420443711795529893542241513001553091933781276312011497988337870497782826719797246511404815416973441572143939697633155693898730494543851954881475473884733629095795034326498425853522360746234756180496045916633912856827784725192626237066302033349051375019401602692549110796039479585088974231235719089985952559345088692905079091622367339231314779453067837620004897088031850120540531381763208435929795008492294676584726352021560379908569643173487035618379157187645202487655115992742438741103939721043580175358952889298874537183888839376315276605035296847637851886314434855584837612177852371540491690688196525635395155750244788186762476012803598246731006672773715217215042153948127443038274158745954462275889389859786152657551594743858859304718840003075720504469311570599455942429924646187248259171629326409851599055450200875692138649249389790911205958391207739106776953639860995768031748191528916613541023091294197787050806048007213028032797713456986855424214799362160723392404737109312647576253657033750085318315983073337424531767311109004490287665916114669968786550915069416254662045800683860676606387398633390819606822049888928266584714703522908291365502397947694076854640971339585592983680965666357541582580250705422445423547635277308095823330998121008046470330409026879075073482950737935108003634567079630637660669206954144375870520710015602383775831882843443448902636257144212046294500487291580221443093618909730419055020037305039686992420260943374707476658370365573776553412634439880370892570054447902421778116568439185357272586132225793793821544993171782405138292913209351176931279457336690876308714425890999358685611784858400402867795883548254902628070789857848051863301749856776063538402049266539820486191844456125729138410490178758594467469965793516470709180056387263617217351767180549021869234946818453830482467224009464050251882096325744136699359671005296516464152120687911124038372865158819432259390137976870347247252278948531213156282006771777746410884116577210470617749278029782858854692803719631464698553305623709272188165271921669636447588146819369617816742125562428724513142621338880635240993859038208530969775087119153125304670656585935824465034657696090260729918933482712418476043485092143865903410498924896710213328743280745304968902499141098678507136016601521989223501462150865891897999331012357337366265639130050873999197587939026833993817410530865366327667572641622462736432136665991068427869228051924409244688860989778290577686142478265329651307199945338308738271540706875888878332298436502566831318427559956632857764400383664657852837121561602155569401895922173119013517320665607232201859440423971251637518625190479996996520740779247744586450843660984039943883475749101980769089734387593286837835794051523679555749718667471685402017703848983713551900767449318933294519508475461603250648905815359790554607923464800520231919489314661081389500650601258101658425049503591898599720058512597182380037909591033197016526171164512940086609848557668749644464350843112885497271574418912158814784844808728437767970923801447111815652316041691307262750951878291135568603175890672478739962273939732071443018179682560515400732128847687292586661532282121449652064970116349461299303611378851542575233991560705345266690789571616793473398265824454340932517249263585307126134884071506316823220650642441048463898527218958875377457471456563661967236827388790099734155396298335770742788927591921768452488310020209302575342521550829081747227188760288724006263673635200447113150101901219323588511360730141905572431375263098596466501709626886358673302113190247425407702039134680071498992426082911412629212493343447726473709161405646918514953068424921974562819800624182865116761159468139856264839985155239348315584272694748857993112086312078698807417631100454095640690548242705863000055058409902747879325114790264598963793019222617114626332350339581281315655274838220697409708534956573543271184465442774627452030399392829271885301150827102759342064566916768239389214150580611426845640018166031864067245077277832946487674205065146316128042313571779180686985705814515994275918628335372868567921929701507610992596300039693218874428833899703189717714715795409104692269051982911778005466702934320346392297276696827049815739603440098418544426791123681044945053311678835344687619268679781300892647791778519699903986874899839170940155508607585519720299353566303447730402597671086250573506713701866249337014476416236829372176516482111377695535563617313081748466201747875374292116120071429688158388313022689892304121211930853372710991324470877036580301981836896565880700326284349113136879347101749785049680034160723591716584086028760448571708667920856516081315565780907722500299044688120307048022880081764629838851595298237205995362264264609038223060269519201044438542899440141177410067538821282608602744084640386755852114148533755349696621910417192033966467321576445232603889789501383880671687640902507468486223136513462604753478358208012265925631007564039583471709952688827450253492729098621824584178226416302798861719950075309379744443909642333978873829667103485255152164684007746164030676679265181061462898942551503686839413425277979972715474550481197277206644763068629717757858808378474227054853921054485887595017089111595219646994072826797393640743335828885690019502947492221204774781010872189782018542877080696154600760600083020171899650676680154459354431035901749127934624942068918803556042177434114279942334377419753286680783722594755321951816957118054261715305917846150878220095115463669923113340120072530787162206969499475157145647512757596232752280842656168273883941517319350555043222980901420522129934695461469949625485502294961172020690302702110313495507873179396411188354548443666436928839042784841401750228362153280877201889460413701921178749470501574277503836790007401937855176557668502534304915114276791269234272429048538359199736527923077130683579693504254134182343833827440510741970021664389069114597864435124786381567276776504434586351430995888357605292870950314626276700909819417545202741510031997679687451771122191050656322855537352475273043227576272874618696949796986457558334660915117480757227087215170195867029765059799632185203247269958603072297220664931783709220470631917565695762207603416305376387070939269294707359744868520992062903773550784501047583159580659814552547154100394400454422236839925262093762195067900714617313848134310547265576524316563862496703609315928376698584668150953864061452031217111226138344806322304410049962825996188558082534827395134276532405588240646450065990672440215553102121904714876931699402345834772991601010270291309597121739992413830029089954719370023529233166393910901268180215727546254762652872638591921855976794994474160911498997709307784776762202632536989609362507566838280192210951715576308936512128791237171596558166934739642334767557716226459618884966598868613884720695996832329422388831464365422005106963213802632402109171757853213871402067953470131402430239535788139546993328839105303722994390665746078974958262456568703750370376251071460594710253981332566544981682945259844681935103551065487493065813657712181254701089967969449876161364490906067889393247545279670971758083720401857909159970546629172292037980897265032195424204337735664043622818572353435441220201934405677549636370087867711158344070908367825424084965349131278657407975437759180620228039045981961246807916593682164132744562767948304196830718991048516039237280676080192800082276402846049652144795883972725406086309508476779198623201819810982026072743451842293047930108713707432051530746783054951726765955711959892793561367995553671340542708554821300112488674355062919258953314266491635863985178347076944995596833367436952477035818449719805242086899341995541639714720549588305841089058444188149711508097728742449322336056069610780017649670472637789483342551327401164802296878393007986529001136693379082930202907655476595455130500415866660978702063507120992683511062793366859254437330305568287232971112695441729004930796575366387162032283692227120533759497765441723226503637967120928181186222860124695470901551887545086751257723917139630432361885514372580620242967646650690841696289187447417005714664838112016414184604526535484443351980708292352608313762825326605027921821712701820023604308921827762444350074585492148469741390679104061406882373880490721615048989589850632450152428260887060808817165737944856416881717606885537586591167479402406231400946289116016965070710875955517252858314258716477552547884880441920037935834959278158501147235647936693141438465985990504965443704156309470116275539191681302747936600640448848516116680933167504988026764176386842807584638749290233424306361982249609447745403561419203726403847105946155198800155225874839682753155064575058665708712070582796879314999996742939279421259089038308308757255885495559543127135013614602314950750121600039280045601575029850537443173601424652093035306410800115585462273045742244666903745122165272673067784267094935976276224834466790706762198483618581845298611935863239660133272775349037088838909865839526023027978780157538357535943968873182196006322370824060745880366051300565909656571903447594190538867077760129874346801392445824208187991622914675579277325718659893067509348516067840797516583906214146778421896042982853948954337630748903860182573093644552835682476151202518613267093529557860418223566549307621350859108664997808722008598309078261674282247846769595627088470968604213086914338890849808069669706610840973461221988276650779616793931666848181161807918110485744472550843093285087560315993533058823720947403411619055536496308119876969620216491449369233349758981276864565509374147897310773839639293027493929729188868522257091445676110212813945788686522573600430550937827264043570574034806696365911013829028015337630598409036147709467248647936442847938977468613621491112380634224987593734656699566074263238404151599705825409995794224804442162969281715197252120369689229088489830074490744248721839569690901186668420247555320828408468455628390702577922756039899453363011568437477291205122409621345991578002457457233889361399526159015571876627119747062298740735215813158477696116171378063973371487214417650948335371103102846099507127405886488689843475116463518932795453686311865143603684211541203852337335874243562325449829758106306932325363888622798784567779948682341805348026256860799335790161288861790452392702192600488490734060629146679205124829844445623659228756141017993014087948847450557925668548544410934885316800514559559712428584450833855902547525082106578683934204450744471902689138168723062522892326377224218711739940209312027969566257310196296992825624031992172660587594435581810750709188799401468969937901806584533536695062107382440975163823006954973564356526437397198321742917716138094725508213337949054726088745339687542820802910248481466293549390914786305609814502665318284860943419388910186210084633883160598486095682806112651337362560976652493964328310273820855150207829707336679402852376028904871113081866025186573213469749346813806381940281293262988191503726001248754567643810834527177213352625435340715010313069584610426543139157949447106607294476173378773280027020328153369936159587414318787650288683944544983982003816264140411639208260519162613972404653041101372814487383929928560440338822444537271139719734621701767454958308315799958336394760079274425192788150283953808444084013939381146343998709842120286258856656907038225556572883700528472610873176014406610735645116098379893123085564494020911691058854893806173134114263199199472541781824861957508554887760993846006288789994595691257520036741856453144009642979995988037836985471810166739678827829841049501989078524586267567184712950906106474507158576121437529743984385297779578525310226255498132735554349372746363190795509441244236262797631391630516051214314833206794373115586271219753005633391611172906043758633826793244536214145623275959295755271522622254700866340552374683976238930625257193571900610537635826083880435457896583140441662976526764382772300290340809318653371266595371560178554460856822450734523982132144331011422316799633839585991951378685654106926346368931934635970796454083672565190615620456231830013009407323644116555177016547822586712014312493507043183004836633240231819361577734723759351803561232396629671545364032618233017849480552114165961966690042790090979369709878893997100796568849464974977488362991239136453687345632845137048511228068567480068953811149306748731966563929435916805815011730430346731955548032320102635947357521661889541142327986550013079322823319455496030704786022004713568449254207675655058000719396406709167687265869226042108502500678424099060292456652727240940510880138848830549312711090104118049459936758520427317684468147466279036186162595459595369443778822948649394129874657676190522294063578244642385079401317661892141624405827817087906849526779981935532226816610091199024753271491117240204960258946984595777334304045719886134433326210527808652162868286693049948798906674035084113787558724731767524965261554951979260388446720983262496893087935414932342755509937182177889772696602880392850022421337307637485417900296483814434476699553858799303210622430375760615192438037425512872549196634744352266769567741466936090814449622696527290916933490699991778020531206821737804689796694633798085879573299102553552296716960764776259425470138819431252560212781911300910466530659349967208825753955350249021831865636296026135957469773371495791376803210487005103961153015456910041324718723872556963369818069602675955947042351562737809494883445415247436393728934353830680654381225651520460968922406893340162740534330184777414602929855434879603059088519778145937146489621305269813012433632244777994360715905665894950460989523280877613371527081352382196925130319836628627779608891342717695033425771039652047857113863605969467370853070316692002365672263209500117450677664669243368886237761986850139119064767276836173272264062454279614426377474210783231302550869012837510303592691748994622679214765297589528228333034358714554233780434743606452705102633000506150113878253787892136160473908697071381332893648535903948929463090719734613182742689269252053853553959941085827058556743386050318494753510347946409456022779283664637830927085635245795081445605927613887515680935215077745771684961873062097705229623500296419241450026916296858264171811468153621988863787368027885917601120130891043758700072527384223348705001939992203329537704181600436382108055904734238084458771798523523252446660429975128906363652548740181903812329984713708346128998596607243435490225149207954521275220641997137912418178098146829633796073329257515544702969115649860032825725618938644003461312377547487632672759889377777878141486868050504665071492727223018608109729300601648329485182672978311121181546524031928457047936536281850483473583305238805678702715288793739224446599499160120821643804362754026817959752840867536312860762565600921724918940487955696013008301715100872896819536232851111274427059384492507514609557101989240236000323488761478219265344399981735177600616040360251248693525511751461914674474157466595221146804930335292683332629484769316297113729028842986081503900489342876129537216430864381248949232736268329739394779765704676145213497339144452670331113839133931003783931339539126080993457735820478474715877139348845177912601234335448119437806555908299921302644397897411535616235257680845397038696428149213907340447085800015487077072566863814195514137313325872433886166708151260261285015293400289974541017323757618853983108375240940053672287632248069990214348577679529645816693824839016662355843212061271006973540813488786586879854711262592784244150356098869939691127302570673102147778551119600259677926178711818162305156710607075345862247048928212503887603703916021784718798974697512474196828999192913561905018715509040389229634365869873428478782659643499422763675835990384059427998901614217063046575484214806459290731316144683901995143105077825996360412286781317346087627425272772270640880502957885844005102475031791872286645159005024800186586262397429746494078144841590514149049363869550439588729038015208483156436890304396940847014014722449107080539921863748124878552699345995518656252171813300872260922936467897800821391313612349973623702391823482483459332322002149711396478322799354033196264905709391506356978410954724132928542731267504458809176263986000151283794870292951154287250208244963933888285956396935408040686460018855215324511507043147027953398092214809186055551883454622311588927457117897458630028318977122984369690691292604522175390889846631833206749301079540607908709826570888449918582469161381033987622588719064884059012836628259579413093867493860711979959025469743998713537116913638278203307514788863595780960025020697483384358311849908350231135707964725884990024407627987454279003279571967313031278712374846183271139146755102284966183455076095770355295959310332425730450973576367035986275792477071980021700937720982977113596352895133464114868326938783715002040379414323713646448309608857983893658367628816543418151625786305462412197569802353420402643950132428091398736910397104527964373212084938018865608725722711362423805266994715679749418659319010066372311863049155387599127595891790942293197363544710892128216231629405573141460705368218259584954162466103339524747769576852455228478241439839412668606319881395532257884976851417502555935261952258100570930465420284058875641220438680052232431750508616014331673786417765372345285182189821918813394231450184567312488541169941692249415865094238732549369011171877347593718653636613770208659598858435870988506462218191432644083453580624196000443389308240633301756828857843903260536283629591848285706603272989384206031103610880697430605495057341109315515200476721501194659296779718157331173400761983297321921417455150971289828108741374325315605452009449806824914295839006441503449133780090588448760100756968671383619892118370040559704195756719071808894709445441572464833459083182812043885796549816748411694651327370751107528887263585957902967158819612720566327716915347076225923326598397423625814263799453198448857467307746871499618189050243795968861349431067528619323490989641833607882493138959690749295153665825470249324903728342046043061322275811765234580340190325601617434214500878020221408010657630349226909890941451058574689779583395185241648187315607588393218652952228714233647214065197138360879362090903478658820219208159745584365538786108731715940246248837558162840763064941850127802607762203688488258695465343666362416905950202837338964130860536550158600310019713803545194925938615529294743883453524918682684186110183923691025385889298452172916628313228234610400601750581014599240050668526491584379158027921154821304210322032813752757582570490183712941683917776122909014045746298084932136985202731294225643124350701235016131891414329101177451828618646025230602646580101766726095783417860055119717539135723519556509516819909193621747296601885797888545834920867023650001434099851594605331074983988696142543926492817365100509422290205946275930039235245598972574710192192508035543561928761245860399501607420029938985174061126357056616459538943738348353888850975587964404006805541061645291190548078270531789379358059751295484458524436771975986245251756117886967165204234305466223646808958950935808620432374372865055801859611589913090931205296036620909089066384065883456827280549327892992774958433507648798371749796088821580077584276170198551380521485943430848435423977881435351061752019153184154135634166634082441082840118951305356428857427308193112309581230810761222928971023227933088720809911313906065378284322992401513700380610582088797844673781694805481652444067481682857366700847555542689122075330697923764434226497980990580330758067860283461251552277722365166447478226255317692226215009355462099270628222744775357464945112878975436039177556943211554847105798082842790210634911532941561017502014494983933199608673669624775935524620947370941094855275573841510521342053213024072031884370715441555353385083407252148148178099290512132157124449451873054800490890107523438372793112790129975553728014472086929583155458471723235175856931476905505195336262161323664705481294679906939293788026959318209197017460237497763302466582875048515253786420312276817942224137132220539048315780335391016862022085774245881642595686574696048360376564614388120920505387018744844104162757380756941048889187790721349042858732556713051073066403609622802030725958760027760352168069982691095111543450557653728574025297879432392760552259699118877984872247410241523876946791743470608065267886721089655121490297774660425505013785823927844124316373282796021479482339962981760950018162630745652008769252114935830490443394931725444929992200734720025529905680875402357852692106763901986703260341185831892882621085169496280588008247563514637579121913174380278043018982310092521231037412421036658482396680007588084265874417398439821840953895296843338211232247236066675612403047048011459315951091029498125941105938910016469930274616539690931344875053624622284501828793219760557470270406331791017812031401356386879226276724041088332525182514044928851518801366443903753001363713635623238708875934475927422864214991398451096483828154248184185347368777327358972962596944263348810344125107854455238801104450692441674422806485459859566053460681688920837905436848304258326077895993001171118510305008129789979811967181940293655287905012632851132086359077850637415404168756329700583189880361713107849825729565871029553403422567780628972788568112089129196630608763830766590650862275567947657210351148236539628619468828051871253755523730115197796660934508283942705727208184119598437300291299002541730174688512753343173328428644056154718521241616117413251966123983959113931561114624426097197327265815718428188956793434341776229446133052193351129544703981076280471591204088992733601392875614130263879912187631935164470779224897957409255540478366846762734723644950381825995323614674042222047925745372800567975720701846624452419987380645115992762119982082816763925058387520923159949204542854063420153654840508169318162237110659718445239453221849619719601022507417694799297362572286609633736192109450618798431467885582159901233222120547634753587502228369701675099068414104995802576534235341108556155275124095916780405329266003246625803446764228645455887127710576084206813198348470072661806327190723020030946930945068694299923722601493675461138094532958645329980657693143356994329544751683147698967529753598659644817855320429400454925783249291009149884402756505607795526875012838949606391949192726332793482807316343935304479589823842222382514294734873620687239467649652037660110118320287215109257978334905648093866596820512732205578878422529273336812332507267611742033558016168059601221306164922850629081968830187442545126145818278191161076681216007261911518288345596918088706504405885977645721148730898252687943887810105644064096841352604837596899109369144187397052141841971405959301554261766653101830800532640338364403566333991197046488637368124152201085939745648263922829593986720448924719687905226802468333433897055330682315829838019961511677123367420944831229372857850146979458218193464330512675916234222180163956273740889335333544098041099112972558504694432610723888308370948848147779118627549356854338349193106194291181227707980009676416379021360778162303625328022097680805135584082175976996128767367949050203750563998170979417094104177994054820658308130754738067776908158167069382284220949708530738882119145875733301013491114817752930335858048541278323199011560781550866447497408029726669246114260419282046329824101612515042644593106160506434097818710995129855651866702953881295381773301823157315173680166371471784992888799619603840132566823664662128215223945265779671085768852572512343470596916174863480577531882840596807559389896949049138304382558947836169832679347549843886510113285415651476113815674142476018908387631919132128562969462976235553472823911431288886245853408324680925593902385795244381531006711655085709166723714984276934032147088851761633591050279190410402556689118350096865311878334833047589259067792707904177960413421857146228087428823024891061329425674584589731941622164537600060900545220624735578065198445688452865732379564420993291835471462382095874942034442697369742512703078491614973223550513068540981719509936333866205279933179718421381303047212556492434536947102247000919856190615897003547637974389522100950768997387084582168986985135189540183907057130047970791252516104767532118303519887389239213674087267494124096907331870174951884468969468862937735648286430455438238966993552604178828594082785497340913763808871255818731594167140067761605171087116601680594217845322710498206309725342098568244089818278110082401268677887691098103189891754711917478654395233772184593707868707287349863517116117334702960318544232409875434975650235115422213658478614543958560774116149396440344122148817372114617253718327212118847111818793535849988191396668355027046919506859568727967291172656534022620231760028664140275083702905655828980016576859659777081287697672325245416033376710892916389002028845598820464456554395740716425789613773860279048341655222247266868512405441955295567809030076744426175672548772887896658500302597340088998804741515782825285732287336629811444393556376033557864144559642517415494633221874474977839304283435338217916381188117557949768190281008157973128285346879589799672360118241564210368140685662697322654160675735322400405927856078023102310451776464264168762340817818935574553737928446240966194866855027005513063259296448903379368478572351194195907429552899055334255738689917804994152306242484825125153977235901081616353207274069453102712407855881640262508507094436441121450349289238823106507970435569734893364621554876407722573883451897698689819470489303708282984196939498427040617765767565133869778487125599043384943404004419843510345651628959196657572362111456791200677447945218655387562489395495807244368073864152420268875081575414804338153614172445827316293368360394545255554716414154553555925252556136750170902074124682383458469972646029334428027210822068171730665512356679067147819173577787513267414979483952200785898562541401581033944660748864737423298513054114297351122523417899195774031144846799744368860221570072567515560107391451343659519741434545991428957630946074796588148178939577899700312620381491541110494849112678306017390260968322622298749647956844024260620796538589817465731555417935382616653406551224930111645188435315011545824077148026210605441143253813413187778885978614255108981336885792241907756597882372913577602303445118850770843182685056745982509644623447722402773852485474746397891177179862621766874885975834226283228325025655627892141709820761483487393819020012238533041648839674032726440525364785377426919412416917959975041152149950554027694770513013229548067160915354680684987456850960902721414469915837330182809043751945496388836762241675398268083269513488343475019345005162244842881055326328693849693486404596701673273417810802417141545393361775514933071089439532266324534795389991049629471319890186761768800669303876138884408463275118725454693471971772868905807689587519324601532716940808605193276997632067862143321544172914622090747981930910000142557815072889150880372712706411488685350146795061275925273353617813018965169048060800324156280576110535881078432667816566441196201252601490006092683088513321110539350791905031510079564845375291887941641569985448333195230169146585030435744651436101891330435531206514229616751273115932865638375305970013275773145731782044608443196497057716223025415389970116256340755277980544714611758380914389184712314167906102148593838003034538683358075988407241268608871041017660044454670007792728179741702921159690997553360450854215643770412016876222520010277398244987323820579206462972527947585229342229739691158394347730861154379373677883685021664645462899361512356436574524799403054790129560250479540948491777060303519623798689990940464147712009149353748578293199208581645286743152158132900072359498292258673870697847069435498271547640005345022712112587301700058083751639968135533053088992034309957491757207873093733814694083359928797710367885531976009260854456847517769530239829854906290440411557556354571844150700696729179083426947351366827220160035101870703321634989718548017092393154903904217193603288746055640206685374548863387097703432707047012704727613260003722199781114623439667901024611125996435798388611985809385441745916126062757237615462089364354285698142395782181944450456861731799365878408388896445973023397689851270528834848870533748078838099951081862785844165563029408250491674847716389382753259421542938771842745224580370562162038724577569361127204486276009891385947297563788602338671393190265321392266973877260131771097113007180734952228521674494147285880368201724473284040463442993439881860601100284233076793816853466963244725162825014288557830214931379742934661649151659246754794548494076473838898217797612198355948382368842447527046960794792459889128704939571912105368735666477301747203602931452366221478188850383207927595929935327845611043903144749818309578263909133523205442515677211088311904177259322545183894927694251870505808503162379491820974605479420709174604644927176412325827937745220074750143623541773280133312592194016086385770068516492146705239663516038332086652013383724447264091046639074604076165041252427491241437577950196193322102254097663509869492478517805215355861191121604966658286046880353266955459602915192975051305943643998840130388517766225195883478187574449334014850518002770073604403448967038522585714357651443852417706584574610770686086849120417044032652180628799754646751117496289705850479883384350428639381517432371820245873148848414967237040777919015806911755281107657531064897625688489372439789461332561142743749444804951652903365048459507733922076878840749687044098190617788861884107768404718802957764380345140214977660391810751994027012246634582030547171123243137620859555093833568968741976603813853990467130331091027078769466468683286487831049344505495139201211210184134167766095908819356301741008807316138767829720971090233512531731048204724010615586902768188802112118719032360150367680454297783641070799515224804165095819098348220066959073248894140918756591165788099977430759391151247879304123667271180722145561399520916257503971382751010513445333249927860905875198671206533985325766336650100946811106334439311978246908315699971611854643861397081160552283682844252136667137746177493155990048176607239896910372983294832535191264242783473802802844479119801356236295304099726630309781833121438414347694454983645990264691397127673268485296508703725953125630096151863913315499513155453953623327096782259063653394213042070484398697545376437806013853117083892691364307980189595271476046428744292941251002569148026755751289339480816151780421691371992752902439763366949877965994409411305384381181908505867909832233146101859012337200473898294189839362580526165467288783229594540312472000498644750656982425954521965315749912052566279671574453646972212590823099972076568447973124867399226218002576279847679422014089984658717180508154220608690634175962880806880911998295273088241775760844682411720660948002906873802865341171546063681953356861638141231758165338872263927220533251820540923081502732691183419792600193514329156961852686603199699362272455213191479348245718943009858143647354027877953290611367721463071937251931575932031073766682189499980115347593836359736792318738364322464094371974923613729476274928500410205859354443426844684846936119059398924838193150230358550299558415074226107416709763394365501499062366688923474725935907658817444506617244395713311717148188224010998290568045944634350480819120103679091424634259411868228766816345922888739249569934363218379629769762949470251702012614490181128033234170474755409809297800309104169113081090308152939768434926462950930174639547684641300624754412333482245917623752787649884310342288428359411375094377487288220103407637076898298903888009975564494454660622758659483310952122891893814997009074234055923407621091541215258072072347398522169564322271412272328550175687076476055321178982481558300410947152476224238494375121269917805367006637557056108241933746373137345974642775607303256484528818036254462544432519604283258550889464586951788667513678391729875342753135096371819535353199374556128659755857403640438747316243817225149052806455313764377576414542833711254481690661102175803744784326610765146107466009868123450825657060961448867723321442732452361846512986254299243238843338324951303908409208686968852810245458303344579643324223940399612916532675940960140958979255057135917356417249672521001628155145241816006574177403785938013293658819842700171833896840292989836783295735567636878999844884639012673817744240833658724435012111589197797835560442070669672525478125824846394208980788432259052813042627613661549005925755869658354622928423620596643941967846468637353615141078051281823212278438881515116741708076476303190366763857358229986403940933480708967345297176084181114455361668453021231524399754985591812347013389215376013685620372300436916294842458626748230418953039391743620254543340100385731447036819056978200379221743451093222530549158475129299918886908751215771809916176135204039835835389879950966290957087599402468591351627460558241416586535996717106564172763397003754215496538306018914359365565788645200633815246675776155230016611864493906060113307630125831387056726484930727160543648436323396959508617071630157933490815482101543826137239860924909170583538286661597712343444783630833363355608741926187665331838815444038216206659198201861669112667098252789556595987439052560932370368749364513093915919648459267634378440296778943108850110712233543583106150960975915306606753390731054250555205329947699507148239873452591546022403363437674147295426715308061230379025632178075453075722619584652203758978636158844742045700432199630459383243069133882509804176963602894827861282699783847976918064748526245375868694343321729489852222037781959019844799148612335502474173178940450271289047224773491996192609531218277339114083253384000369535649140326841224690247180909417891275464857943915665506951573839012701143912591642220195292995181463290396989155835172688504816026784398852975357847961150861569871007325135905463368913729376378910393788803932941713978118787488991511760945970037876851983291960551394612338224117087741816660391180797040026237747450901453261206105497155942068716485351261703927469649986194975547229950084191276474196915984536623586498464176206314800952235616493663065660477071518007699151627025223242932231041928832869933608558308571722481262852791460346661035085960970304383469821572292840869046427085169514439093115329040975166493040071439431010919387673772534841690555207008845724897508851692675618243806300914494547670235383866043444110664440226593917112121173378790709180991855226231407121327218965398874984012286496110026846234552661199878326689689139740225657662829168501685774677043834087406147251234068629635319608317834400031481542577315632367693678782354920087718115517084965900777858005825280157403367666638006746578023127819039205245879761350468073977737150259112721990072706492608884521285113365181367643524434778492799311094114150985455886814891939658436572597815928148113164180510332879657317497523948328322391727984761117955288255786236551079660487433172231950622267591841349612472303754636646432413189158587273044908953135497863644715446957140439332637510712296374046504537310401779570196600718818541962343740525915949101547418190690489194794923992250032601020890009599998053650400099627240944428204350322168965939080557689165363494346704185011316637565364597459281749243632178210650437814586681491643977492668627764340790944386045687109471003991262154252288719682058368442913096739644958772211794548049669787364219085201198440761124707865924660495055716630726831424885379679041283324426718391259980906142294240412544229609714022467334908039200766207502529945019548814187870247848277768613988420950304356553155971855502921033735475467918359646931554306431008629946376749693253990782994905068371444684188743977833699934367198294354473889854197007481892493346260462896124288816838812351774687056076773537656963732052817366237405263367329190166449920350697225067884344339139878696238298634875947558127757322917764531776470592423562679325536891462285982799157643193383364397711941391734369701455912712211345843031515617167671914182092890081765297005755599596322125064440412715696715621247171168363213927317153688847241929345643348402497546449973166110513228773511674504794083638898867834729566777517099427635355308244297884467969518156627967573175635926518949773176197291179017773455403409512468923982553898817408670885642416832904900311018323795681538449929130005030242295717463525989291731277449593578795184595393796446377625637934076458875655886441490028047303377303821829619516630240077836738995646205339305373745999779605192128948904157565336618803639880488480665264902810863683438192404265841812813849750337368141252046589440925650494378891423397423092389311794975005960000792345493463903252141387592093644628823284698914056654420315529857304427617914656151051743237937039549956877747689959706519098158593220137476663202573885598938162942576556396171277483571604615352912380070488957737347553202944969739120903262593153184734547382284131572987374353977427797952520518305751391230065797201857686484282062387175235146202735932319793111125681976200926248635250850538518077556391071589235521951216415962842175746290852639811454385583676537962706122544213415369398054796728242122070687266309844226205912962085777727070939628990523517614936162976465790464970264886012644547754884082024458143345094927457734751673518021980799901787880106397862594866142996904405987207646594010706672660586608712923238882881503796714698216826796096235941784014597232969086955613259292885552322724876634101624761574044599582785992796860102622767741053809938094490664807371607115076444466048575731316750266084159092436790595127368196070124517040949273903732945956390895155952272804663586389151877070278496083955512425480473236466007418957523798687602286538953111809990156320751987184668071728499102575566574863354083937991506538744902418894491394614109785730736404411166679812362220681398349547120829567540044628980485634944237334602128240398755291715178853792768105142494413289562275841629773793217148005897692445633062767463838642220891226598047432953718767010768300958502553153413187260543215774202024436917208096680053512454612815848760561887627822350100826769999001463196443229932274752165317166175918108455338700026571643523497785955419447055021848175950910628309543283167813288255253473357763265330593859308652436352101702670291936046855311880955183149882293914432141056629401696939483958715294788611348571445030157013978978587560482993124079381263140123307572061089778502799465640914643851507943495695045170067484643225312169087437495664297073676228943090421595534658375459307040381844798836136857923404931190086856585586855866018179005991033865217454489273166233303113824431082804865559761603332273318557766559364424587443614037671663137971342072228323260297673306597274837251465326039933297457533487269001691370624441050039082247422692112151864062152690532016466464831633861880081381276044069097927735464083299464566189826705505155626461199543000546471502082558343578324721626955138785741309685680244420978591049788896390859590319949744940912458055292448244556633490452168363348678287442421637072508264984277831106254374196418061799595644435725614549437723663268760395788509107842311097866425658921887036817190485845189120154085671331026681575471273603981727537260667215277899520933189933878373364117313132568721317902772784270505072813911168238321033715038936069720727615611343211686863738095914208338137670568406357491707381432012935898011143293459829198451768008508752532498696878461210302839647379830343245184444583078276064893037407205930586766314728971606819215018248916185286161946015620774146356407520721952503336912527772047703403626220102927809848480728550114031389194690231929610938925605082802421337875479760297324599469194423369487708992974849882784578334932965648649887177566037016122602221000923803484823614043716151348000969901482514229252790321649845638912006138052433052232173083815982414888628642384784073569718156784132335826552452669021983120821350597648921110364275526092699190519164198453985213668056965230999801833428401950189492521165498003016857960645730048229487317755464840943949649622658009646972569543209033657908011697881500691982033513394082270929472023380636413379430395199843002487756923295572129681346594533399435954634913246397456950075956795483915241408618896794150232466126078496833672710046340552542426563139698744470515400144459653446917049961431055674936155267572587119006937786372261006768303332390735311965646854368688909812719605634043232562884268165529483733398447020324640483914261148371125562490577684839339892951381008208285066596787842468498396150486198105248834639529094616720501581473468681139167076827708104053783991449220208905066079979427219007823477867096269106584372061494783294595512304113892513238797508308738282971071234345694435465590814927255108161749931077078377644364683123425081623900619872275189358968862192089654149205800479587254502118108495386955743668070547138647487980063946203124461243266697233083664700435496503252325174322627913453495199545220679958386265979771093867795709534377315353469029783005271091156480303452190196564711440918356863739215136564351975767645036424290131556107862252795464957401955005325598264717135496762163732327317241334374304555826623351720159791116030427067368767218001237573041507701368662290066625757629453151093912210797777950480292056078353626529241479897607625484782994076388542547270326365375335345132473884917446249770382018058395427456276368852770534285754277949606128314791078243826471127084830337749520190266854949859810424154260989350335732477187267450612108430168747152168945796726397566465741675293612596377550099368076726593718885818972207182912293254542801612791548612211881358968678581219957241992020556642576373225528211518655413775200836090829379787722119687920391417673711640790839660050832563710829264556914143691272042086246150497470226215044144874243019136170337277342056892525663320268794545637302115748478827239238123049605494836639162093264962483032116403820095654034862721144678335233607119393811572100015927869508679469999952675810119771815351051195762180099764439794068858884661319781569484872517568949451488661430108345022356170837291419061304564952321994511630062201810679255920462964209120464116972412682354277824026380381284902975977526729916401659886391113730291753021230186941721914467071076789704633357559144279195527699634844891213120395911960015605698722459570641107672368120455323365258243623781516801532340890117057943383109448590727390052391746631038144297940873338576488797317501325439755999747269807142952184562249586308100710388338029161894282504833655994542881880879462665247637954556025890109783289551098470642812308175177661391298122602856180746918461040388835470533195886562620445585952070148273265189334926536326649469948861574804795037171078671640991435600460344835056228460036488179727970704937285607369541728088530776629911962638295434773713878958042563396102735113278852457314370989349091728461821336253456879232318729483645401216683837942359242989598375419097994949612813161276085796376198308206291167567567634108265449802981341092585225436269918986886017130084022068185939595879780166875907032913477943100463038546265582064295731342929656686717732002855677977393083521343481867138297127172102430774585551027185935127989667333643125454797930427809979255132226884276313876583802226951369082891871202087290080193628790487005475772331814391186572317645225827059753358386054251097695414937891189118512907164812144742609958351316978986623890298785717678994283416080357350463736025332190177149860911898713741424581110770217313482278938152160236994131362586986550724347374796204115887704811255475826830259259483154023674124338234846510438294006735674655853246966755919081467824813048593875827387016443536364985881680399622982116194025794658321643610149205347951952708175090429088974354631982439324641181864762444383386344392007166565333837691391250731458923548726279654330844354513945874408698901632913837077752725667308176968139067933745466322001569688249466916900257002820839581091221183266449331921289208062502765471486174939406569181173741758751405903568133177220177441066471162689262604639466468739109343140811962958898884926581309759095281315635272584257846436398704419506684628987420198877859978086980893583778748332245871296853249972909355591540052510889723918112463177339913437207610760115724808050533530751433068798308608278325148584812262515138599787094002819643222275276285935769206659374366057204081061778317393436823697911758572964652163317356376750475804540324669258200218438555601250688341990171480412096928181792575255997038857011362468976454943784711615467300553202089355213442942218792394191253476238667737076809427176712214235810234712776993019046889606452838783394071720922899140963880062015722338772404124050297534271721747334807059100793154042171966541650834272509250187511092383947264617266690355975753609682015167480371031102105805029304502010564183859701581712147094890226197614356014572140320252997308850418069169534240995689102193177611459142060926974860502846298266116703244893109771367438738097245954338592777563054483112063373510210490555523679045131087861258288308716114243082593482066530863234167637854405733180715450207656270014401851453158367452729853120306267803480713128756676159833441642880779733160396421126974738147342780757162416970100551289154080742614842683306226789928409219123531297220296768328694669211352968340228163047200257682583180349238553122482439478999983811324890909048075786839177865674811542457895462155985535808235642067542089467685455239488178582566794653845528993753355130061312102821192407424662450970098374518281474166046545774802002054760369885691725652141611003711783294563285606192732805669133460588979511180267269287446258251798711188395199237802248406620787630496017757806804633389026283855000632052024997887059166212654522391572085226378191955829042960033405965673299436373352214890555908828250910066091017496748731537802730802370850001687971142003875341911018988175708926682237157053025684457042557374615842030056752840355645743553156364514459174365786338494448350819321110881109678993949308916846898792850966630990737790368085508989703674184164750163939319106125390580004722310602446937371478738531261735316641647962639652409492602401531961610508091958225031064657680450828101505470869940361974659103447979631520178000428775737761694978273066807408052414828946121160379303059438535146910468584243956087089297729739675733230852983146841392924940157730149779937924147911651989432827777021132235201507698706211970222055957763845194324063242374377327000178217454845818623633812316585382624381610397439776672635262514172363368526668916673368146733934790383667878560417811800924749828303794132878260051356210491803171329033706236626723466532873738933441064017368590090612825293490202280081878701176066340261344708229754719585615167885061409222209237242141679609021856001534281423331470664829519310802993302277385013388466526351112809328142898404459265779286218720333618564545794597392034817945139215977978141393680961639932809077028291651912386967265979245186068830444759735469646787937028455741212738784175213515494766545294604313736611953266434338300466409280321609527505498301262356272237539562284030256025364305249976051961070240747619540074232930798601751143109149374848623950444847796179247060661028505145024375383630208048786034986778354313174329664366860409218941392916178713568373280987337391956721972151917753947935023350978001050978531133547975686609056212676569153519899557449360952233726182893836182543340409018709305467359574360158995867289078278990533331027251836636732316817208701063547843077819810274256005049880540460208335288581614986473354940389761622951573520102578734015747561944018873054760251442375455810385005994500585108014823440455673517020540573262246176131590997052268402189849419011081628797723312245281939441805470488028127864450354836998814552144301441830198848626988716563287940606244775993344392561814055242104016756452754774215942013831400734426841591112592156446969267225290758793030049507744758281056749402460572710348807525401992790932545251709777718923058337628895687381588873456320261916057669649024775720189354597773221161436005463367385818259052563264875484422423522172710191631753225367821311282264287971936748190273697345702047826057565919561264446685524744376682230779967811784371792011316461068940065758840299136318583498550482627002957480007177432576428473833633750613926565724311761859156115778346268861340764094671736774210772817672454120677087684611497888670376087462860669394599648048452565843952293113345164707316882409307251566774694382920217434099790561560831722842081505380184874660740666231392098705425433666794553771862737256025243976828627604299526657850101934255120320305062354864355641217749238917604292623723124168649325635024900521760453660294205057351794784539105770990427203735065666573752733303703199283804494026162615629430808097195189115707959552653101171946251482026074709814327084505515753866332736791318264761986904021286665523283964615519065250553549921939267998512806122976599139939341638020480902648695563456692087638209463918426034582218987643003534121620751902053528031789269907063325540076670618194472943200750835455496599971027508722883202010707116542961447298385735874423463042282426244390289005039379032267497832440827475430411053066496713462240137502878187130759311180666569607324700644538302962179174075934127561730626274940283938864542439000561437820287638945817591805880960167282346461933901581238587741389376080901043950375143839936597330626668511132870940008726091951486821271226515659622339672692952062016279452655821834050020659516660662684567836483254217881209063666939513665136320169189766510670715690757457183659476166771516753038613331382007534542512156977896441233933018089556674276188274192603133239581086306175542314451416303710261666601236790491360573560451311231606265239796639539116050535185616231756043637693427122029646447774380044172560476161812695730248329771118050795229593998256394096709002128877911002430816297578742652606886577357483132380058451588968755105338532244551906490951088297226976012117067003631384662812578406081076989291800267108466575717971220338509432229298185390416167541817116811089433708708899009234760838387158228042967442301682700259148742901536206943135213861198944567206570704334426537433354533050991385407595016091725949691618878267085286245574202501632704056953481239021896405167206150704511386932055966142526467667511146146939900973248612117409374451042238524924191581179450371573769833173838249061312781886995290804153315716061858679158933120492762856907371940068586678448291246684374013037557017327156109736179537646919618402988756689477239905212077453489154840722618638279932479451462153730792902021670236725768418396983706793927752025609663060079524621067494328145528199820121561562899817072013582056129728182493759948844899101064833960297473543561717925587978906097521050563307986573917725597616684568944545577534973176951018420140276365542854710306913491104361698745900703645979955752357007044704235594618208124049849465902138587225875104896332881584758737817676732419830033529070870898858287122626376430724247961874455037132065059593257259324202566056494829305645978952061131601494093374146065524282009595536856549255757549761339789250831289631922505355836889531018682434227430612360852606018097863484788901664999085511354558522172761537499339172348956030443905037690294273372054399978443560010736122801873097169612040697059846103042633808893164309930464117173216607142004606032526107947578207275507912817765000623610758412118837061394105399906745399980969284567870743993208447055265925748879861599169405105310491904362338751538069234900128774870441026183658769085249010026938328570374474665745803955229194670035327684484200430391086312042342392988070317789903668963906960886465284241696280903521614967840389762036887494634055027766748478467239397312806903465895861314693975042451633099008647326013670900614142865351829846121778019051744670751563179658940762619950399196504398907198787502453719274618774526207561854618986991145893290430822403787635465561247546946612348600645793779668617157592389150885705926775180764420093252002713911721341643057386590101790566649294235894827016225456916682092981161888068262126051815335960348802456516249393782176136371187749706943431513042810649081814255761566857463453419769058669713372642184643256432685218959447195660518796642267814949300731183154132606062828221193005225685487830918342597940917127784025702895029169991076681234701119165184603852517743426855342079145748998110304077752988339909773766405387640056116727767118177237572767774857343032618427875737193081338368313200387207380048427979986317648507703843988022050268831956727608013374943439917752429253337227356176288697187836489855849050338470358100790140846770989181465451418073616795702835355295806596351425938307217423363033087646790566193589951082346676622040733731377950609763566121031557439378675027060363066560881939950130407375769974032849800958773740774172674871100513614140894805731752451853335803492671615659374402817848614938536002575065102047761511133788443798409996764414147763977898508298831216656855336917309911801805239966287450302905312366432183259677210118028580969160805918857626034009680103155568897845057115201706963245379561356777583945805345225081767517609359787026102874602267396774826199132207459258281498971814947862461718612109275879794323859741234560664858942197598331950674751068996211197673301074751992358418471376417475838659895076982622777493514367036209473979618548131628924948430647112228994905699954877726584480947224861401258800148832446614430180400841448768324268131354690325281842550931773527356358837269662234449711467517490363376071915457565317642371574717250040502616336826147980619439644255660863050182634695030600386486927473836220978826473213773696123401694006698743656337311271523430866518635837273058404992886687962250354398278697887083464581596978086870592268280804192569230623605501315721746690475471363297656799210562836735589244624543575123951445368901895517419677580367063579050487480397482859453686295332187717946979428778840172268140703015216036448789233599704675434997829400093101470937643233804376544509602401155004937597157682371342763007685331586003147156126243142765724315312861599825383921045751061952171784853127346388739139009626363205038494445060345625642265291568588009793864812210296241092431373465436665808446267257106888591796721632146356518505836213410608701573175785029967132208370691893546462534403414239850331796281950253909447803741304151471668250300164997517744034833851526111838412823687876840039175344509071114112582968597899271888256601547059109164689126964798007602196228997157059162770568583515630669143008526219415182420376918875967493469111912004447804196075309341422453590878096817539347472199812776235681364619651351098124860744077617407424363738654787511582454665160412766067985841384328592731943179283703792037086199104186817483666683687944204413957024197885760830297590527771720490023921586913450524396033985664084175628614011042290799131815330473283215536054464393207482273861608671094791186817064036277836523683768502831449403937428451973586253140743573842260692434846413170340743643792631424825383690628145549225619669619285195289399118187456385361494334120934188887568343041707442308178281896304702612701944099880111603766847172547946441247520699549915376156529295465506241911654906346344659695977820430684850725795673899647484473841130698520280737070117812833131858529316798853703601290034939041840123914197181939649897107358380020643865865724329611038842909988657757446298694537513067457827997201351511882436139781422665132187155090353533644253928787686240350965462500484958362777228209011686995520603657969105322590320616439667354562117957227256005382945664047575668809585906279968625353201090765272282974853409766549481226566889879869408281041300310319469213183443077287653397167125912822204846401698648037307562601610251575233463086815904673460450253131880808069041312056916783071877531523659910790962176297108877374612289515470888054931671279686112423493318755731012520762885070885521948061850593775022432952137631499205858577486028325956391618951202916490508998093335986223920033679851534934910344941480343122025801962229398693865927852159538269415866858841065911960434839719060928728851029094384570486394899113053466428783570303542838659129655922947635170296583761086673667733184818000096745449082367247589126845902018135490468038299956153327925120049879541482834242068495080559836449472229173704273635307435867329214676001547310914248061246824030442510997078820398993074458760544749211777659442440172582707824234714371368172755231665789441636547929456082171981976330832914829636392318315654107744901645716458123792912871934956980437196850875767407229331179791004654068938962417425104589523710660743841048475914490356061740592685641948615694801842469067655281635231521765771912890379709791234582510698206245893426743493083261578494489379698109673042345855813307295320466103864719190700754241263620074832818440473118232827972633650543981700052003770884198210355881531887275733756582808797456643623635032337582755848359934960709795895356752993548016230714335454341146848804146341214695739272505100999699296021991131343170063905711866702538265848892059214351141018350194370893561995877858426470719505216781346432822215842455180371088335270749522990480908377692114356049273771849147540976357974718852707093171909950416054514546479401315458423922551985418260167157148898061566663211589109132996794942690205458556674995144558205338948742105722321366139213037731208704646070920223199705137821257222076309931312417133629349640418070388548547727822462657884427940439987081926193468002115064136119713384292107417562814621957538955659445910409297071909651608809185920223993963394913108321073612610158794472562744368155255795463430903340425478536898870942475226595247322627292099100165164436836307891224893899674376117344376541077537152596676357110522748457251056904668260392053657998827204319413626650625331924085673683713573852849561465590537079961281241326203207367716654740992069470788035322416696198347474508496888929799886409344929219908514210788145043112184269005097234661931577592666122262030882978423288804640878965026653428302434638330491156783124956583002821279598858666022055614639373215616142399601760654739930073167807665362562036863439146976349953356428353493583690470874082974353738309241423579042045950015073348619602211858414492180086024322220617733938481669812409117778744787467815849250378783555787440596107320102601872053183813095869957760248877698579610601015790376261453447682342981159056231222390219743865765864430830179790889737704379257655184214858504964590619787748736294326953401038403622929149095955342416904216864278095962792562839907317617124454970953138639594404158357744063737639568093456787998695198236066962089339360543620796769726517716126887944838189600017136748617305723608554762667515133145136196276439314691116503063102597197474353983394937246887671766221544855058144387881215374905117159171531568871811842471386494095295666487639782422371610183079630896250864582096777794960130610804312061790247647843072868921310157548613145707918239049955488001296939554984801515867456794565431149119820453326345708183259398389185266204963228873915514201547544995743606014287706249448792986221658395540016574840207840254768303635399441878440477130362171846746463483693005885548552746875540640911200376646116291942724031910796650260936254816515602342386664462447872227744305728152940243830268917432938945103155917738830417392475009690891218880825647136485115398711751594281018904517063169297794638975675982766996841143773335165267085961010795524682115647445628185149972539803060377654485901062895715628264102645490577941684103288982088680296125880257623146998182645364959806377003985494811889119079991003521802043287076423063874460588127400595024245856823575794548400401024994367486352667297168619899314326409663925893772831660362772815581222133356569718034679129459133174299998052933591903089263495206160934344632800874659913957278580022411948333753801917835662926224386097235826841659743217292653338578908376864481682338181177769433316244596257016647556748026997597255460644676173930691721044642910842076485443575539532429986867294326026160099148079228914959662681614443234002936742815356111156184592952126622488412134547016609995300812508500264509222944158748434835796200460164254207539533478684315233428252195942958271362416734633778070700171907190757303198267775242529157013025706578810133489756149171650450787769558383058037301838327052774172752622122502933905763194118992256061964371497257980505105554751497351480179412269629686194735762035033947619257863897135486997455796709479938479968850981167736255933694272082909477701739152954888865651205449439814442482924396982545617034322722787668539412230194878211856042561179900107699171470122728468727325413324885736576328780274015633924645505734485653060882592865618560256259253186900741952059444108773162786018560977896600647860073329924655980671837353933857854381286641747175603253211024257499068441728819828327330289360996973676617209614235632505570895239327269236492863688016186927554623895054210784605928363147802339201566731430651630916250961056921380463718395973469426553522073350135760663255715844962498726141784516799315465624958839355959973651045976406090117746529255916762397240262027702853143459179093145163591453540663661169576486769435933885588133087513055828037068836984917396156822265655253685868183041668364039307589036745031675958011015303347427552303202151838828601659109815060772078566719473375595692408835297956069823845850758609201600381437143121093979685728599994837504004282137765586734563906590234948326481467321053880575002489300886675151874341039442619017650317262747410609928408369419606818710128679642099707810652484931410082006566861562815506686605650139455215463321773281096100209154522346922624998700191215538047862303792577949869744946546457772268582343174243085667604986844213643212498694180638886312820044415800162864550498585641041075064853684925020023018541757577405994691171898014931356255147502737471884322630281427766255620021201283839326726115313765236118373230959715324610152222045713849338988768789413005295781218820015190696329864749528620272589731529677153186482433091342721981497966147567970687405207922547290290097041385186509207508209715846225156092771057635942070465113832403727648458534900008916401123101267092915226069898763141145538132793325452571977703525411655985990107079743767429134734536698219293781077518469279190864959954337325695172202187357008424544022536278935724405308987666146511137866234582906432226208943329898987381778074408722857393424825416780248606969570783757062120065098001124764492566807906055198562746983119884441721856191210742539102739717830931859696624276408557271936365223147298789807659850676039440497831125596084385864746626128832526252918737960100840173809751408078091858088023851151936317226747823243817428665854658443332181885073048604352738180508857580642331401903214990544722379369485266803450141143209558789074320605098110161467437384390989431913625748076002462548420504303585146085969704363853220264300113291329469193571837573916535852092514950070178349840870731286165039156498895655839859848181717181063628017848288822348555480986880795753152576878062309263003750011265608558254002605282407408058159485794812809467045549939063594285008488303251949926527416171903912225792495969348477665258103821251062151131420334853670296941926146171907921066120022465983762073830437363293001488500185897893027250024662560360538880849586247039936633717679447851077519280517682788474831373897603461708208814179983629235316014052892959003936036128866545511357358302311198153369129663854682081522348887112485342198626518368412890854155834404858675204309093750119033873540545869647197571949808471736412286281006913523659108977826533792973851600527238323383788263158997363530778163725810203895529813052441073430323786054114780506831149144657974779104420012917921109637572084839866282867848014872626343806893341751469144006058488308600557098281628324468745857292481615020068438629547182084786648849310818589679462098231795418710486944284192532600970820393182215079187465716381431964435105508498478233348375734678954568187553758106278361635753656194892853431660308644659398406992448837454495427699639897772743402377834146741160466003508241066115447784870881300976642812585250280879708783316957879219350989426432595331518247143297596957245896476415267360520725778680080387302292348598359994155136350614617210022108370614183686438502888745351283933627151449149256967884244974008494065965784746231393034561138963829084998066781815670047282803844587900116435079823576588970781229942646343398926804487016083068945738917693727492423444552532289326713031498543942216856721894297009285724003886293671841490018559378880534582117912496275371827840122159839149052997854503122248742750067017413602546543452115894312748803948260642312784916190265396353407875267289236669323222093355792119387998159628557806955849239718681866874088407984190901335014892983398207612808725647193738514804822025092857247112101817250130984492224704684901695401360179266925835387986457196283376217977068290422455819742976943582470975766633863494447099514523175315722940848723540107453701007830232724500590639615792857631134961287314709501513880784524418038540790446987400214938442256544744036324955417528760391487655051825048991956724054172670023961340809078368174273890494182313810865081755286920673777404502105044209920836908336736162039696451476194755049647569631985305545259216375024250707502793801050765734906746216858474699252724532054335129705918557241789617013503781522604223815392078793802819452527663317068165309285928043418638261665907265114563994161112450327441103852865748545254518083391154630210763674352141846247691260694692464240359339743011495152125333799994828820880633936639939264231579831518880869533351666673775359531217707060627201576899246900453172068414763773786500446766267867057277380178636784581036978504856096698223829153836500649670446542319625775597993046990169886300834509857748299967622446510721884179805651427206084165967775689974514886583881302517338544140533971175764310435091203101448154850113569379362013216755543109967011171822395641791764460495537671173996946970921702182538553946282842454879744321804931138011914647680658424090018666217471033888251010941316633711184888000695655576958967459968049691913141079559607102431128687495934051714625872759146530504715113532592901451872654831698778369193329820655240757956372821114723104466612994926716236896423203517948253371508141989300242527175306451928746837216858423453037890070067794043320246489334514588119252946165165587942491332545492001173765321405696025906547180787263787256649514729057875241393408202318004632998156676995539738702172020340534756417698648017851395845147909252152001499628141974876575147807677164707923902129146665333682668694111418711068577200793163807218747217199114597454796908444175268622134966148869190071188115477377564693590981999246858891174018994361903475981589820684843124848959396830389828624343073162799368578601710178168359782729292676267841125353551558415018233397042922875573324338116301214921938891363966102236986926951097857506581855954420978968955235051700719804223717039897121361508616801095222137245235034089837220485069680851400044362875227927176812539446167448434764799785772241113337777166104245902044624677813556498355408429397443741364375645332869077358892533488886696079873873344974745169525149550600494655413278619548786826085914086075634558422906598115161594721839351181269529332015717018121221095016188946025404349840725209689380127989695786414914646473903295322530684429899868510312391962404984338858670475340101489709264615648144451899770993048019003292826153183640981050430959480133996588742954107289937608560390122131747738102268911170984284162893001579606583088887856038691312949296934597911091412250320306119727838598041558010349871196051134390841702707483638904956835410010516080897665816686225867617086457574254142485304234437746763900863114474318481461051039602152055563260621345417497615825449229710113139993640704195898660930865969058806161938732243595404606621123588465896572437180517862767002587958184210499386621389476968636088681282027309934732284888729419379314926519413311877137520254044798559866235555932738568840432217398480156648617450050972113195329711142672610223884199051000511848134896638352274401943455297746324142436864498451437378537420712044694695638918731437912009066510312656845402545149550192276001527694763867890418588042220868719591436647801533867438805201752277219193832968613962169310567877276198644961065400383989015583185444220192139619641202327902415343803106994687909240893504123271398734311729526380971386834693667099386402721219184355698777303983886207279724338870210108834135960290672364619379460870857550575852949793214362592517428859796098765988800304039367260099713935697959051352263757585854610157150113564194493576473461216137680082953215564268844346518381280300564470641491873482855007433845764049568539986877049983901129105008260196758416379902677865449389817868931887004192698657217164382387709270720549003732206176527043832088340456582977578605822463919885606359625029532887143137923000288853165895348974464140652623223393077906027316367855931260978924807839793671869475458156288539487501024814810388870517668499688787848993207294416278576668264450902153574088675892280657145686685696665672700818110198297871525357664413785335854590391029986604838800018204819072891686713845539640134290191991571015634689628310797681219171494263724229652637224626473398022155892870239242083938870943359286936853652460603611427216945233050688514970352082851665332970266025645249550810674634848175194424455059546508823713326904897880998009253234791892068386389861613827057953821931435961369277928184087376482317959382324146379401390605019300730847156961149797786821588612621377759959326293542946098373182846148025237766707241718973240444218476429520750647524066050629773981328880308951091697158129807997752303851338678980811372159043585233918656232002190506765678289742461364644395397416573120706224673100662853483119978518305293440280593520452338496827753075421241377258788832997644332997644071466915827636902248608855467864632732667784761662809748569109871359176265011573913696757036407876805779770672709828781652115464782739354381842362642093574858858940701631683610121000320494017097792417260190096451099641053752872345902718545507299248550316512731065167370452426934010513610610345467322054875989199930368919876892140004407150174751732029986554201376964719577444122154807929302192123966348737328350012207467157601681787357946420911639911983052619701923600019102673250401746602567963408365356523199667030884454751586582766770806625975024807513539306254092299518953746365783151423891059598119574542627086738201788045397777232839360941239013013009137133124418513736220893383989697149679007618207049498953811523191515177495196690622954017201000505014871322148561556330476607048458857097354552476555530945772795141723229160751434415745959930334814721495330724325137437709377074932682443881400256321190002053076762287326732226327773438992426554335304871946949327704442084743658481305449113312501533750857511520323884182521689140331620934706305950714385826988664474319999035954053931592071494309444343807986963182146350643624551038058721997259966333884090754405664002136614713525309098676446224562271399342674579014520781178198449635946884081480622111042200930579013467342061485726654736247092138268147123710053736634119128479518363880603001793656615355740621664398739454761411278925447185599359846004227649389845488262427873542919520420782257656279735289702125576316519034671269306706566776432478136996208909659110438411081072463919146835829004052211143418337100639512346406187623716730621162138124025902038185439948526784942160845505158340896559420097637314443406448786794854967446480328937978368131641384989358624027065917143891134217925967865539397913114018652125643038625312427205355057162591063516814688962578096986196839781616908444672218785385702235555877201247870689947256177199314813666315074565001428818837370307561318628207737568736988228644344883422625213071075984977258511591586515136745740066441996359498266841774340223803256912829693112801082782806633753913057402267881281491687865003445374839922631936309952336461337050823834643742953736146008448166099955096234569508091727325458764867392275019975330591460197775012898186881885910303347557169930857776232519480141736423320721633632662517714531320711390174402719893857094340917124373947259322692008398955664272459750458911350755806008992262107761633933129438007795500871377953751364320508875760631522524342757498811674460301272544758184030061002628791079044423789668257032851576945373932917722239938534197371137845983850627709455823630324816399741367162659431292729535474094980018486092133262979313118844333670259543362751333311736383795191112216694429634842086493555172743019933276940245064998024344780826066959340581257899864754709349108754865563920846361797676075835009600586953727005464813420511199671058861383220465018931307826330215723744803583392895421295168106932539861823134944998007526779934999413214939875481140784953903118981008456530023026206802916543550471312698841204763775310998090812881388904987310713615774352258527930622744650736212657601708934449699216350030328358374585584985760153258975631392491403194268864947610322813168448704469887154184046394883236798985141980867896832693887256573364695719085368498747425687027809663890305459775128673731101163976595884601454431355450677927852764129537911524207979433691019426888205852312745711035087604704770757723039388446072923069311847718463364507599442815968092735157084295608320646205325598971525883197818571542827913253276117050084699922586390000979111315455349301705798670953236770580042869459953127203698313819097155694228664110029134229459662305315213313835250752270616122844238407070962080035149303366712539241042607928302739667309720285684951338346708574160734742603599922200928407423479856651444957888818144870111883867190886881686102782908970212417704255513727332147838441086958686297601943262242214460371499943619545871153095034107157839897338688372617546434287990992683913032817084456109850849340360586288389891217797754834880686887694952294087386209051548504906534737890535248473927426135770482014283324722158061916627248191719672731166191970236198898370167683028606835082752421760479642527897125164458888099638311628301388097013888181508522178032021028180209122194136645273690375614015111364302176182009924965234503018528233470727786151734734844536265381072513238879243716923579181141517281586508301746328405956042847076826920478155287144893855392451866171126578450943979415662343750529491509397719706299563240518532462841763050841054633171345479076923081466671929913154039817134671257689798772295907405486437740524114804076606533601862375052474878545533486794696566685469261979913242141475662628456057328990283843872987140314543806078795982100231442130194454677283028869820044530645046602235262993364565131706399148640456833640318501760844938964365454497031773929979224002629514384890787323236435882493697208107950743578174983801413352907986072711291509620729191116435259693192687334895626449613953021744371378087431005857539058880968554503167019824316202664526917351013066152503272453757436062863585087195925536049850040560719929244912184934348136243200824619751103731528742932954016376505059957429760863182622990494234287520713749471532474816798068440806872586912146208788466754996696067429899182398561392052845472961753027105943415123195431763059461593049205518914888201417379376493133509133306504875251859952636247703568622724590659767884943275692668065734498309302103769150137183808974563285377721911849893218607717657724949816130342858209564386904238122065125175310675855507368816405591980962953680536313123840240401253063702021502203798737445398768976624022066519921060893484999667161532057434261668881936881327332158960780484052704511290417295515225710777496254671957095122395162074053818974912203659572869437930843116375670112223072629648580030286004479104436965068021005764275056485234965214395035045606225464865827876842181175318768043747632064897028680256924204256581434319741739390441855752250382590049831777332141128772906791720258824183211344455222756960722149349871016543102249805244223501103366187807020521345610854730832886645200876948209349387531558520281241032612054855504139789715264771279573014406664985933151323472412824383690409503276119166713086987371576920142914213215337755116526397689329821062322511442323915143057515999173739325226012176583406884050230889521847178854861058681708023130320728659950885973782019909991097931829080317913321937469928749185563190346743982500842862363905927218074261899643843778985685421264547360189168875565815830862634673868833984611456565053146926738512248697874765316402990941391751687076901713893003707125576070168499488500776257816090716148668155223602571453719577839995323104691622141153832796969710089048220050635452930005648648836385375741573581759554375542362416268324071552390537039091808504177006447416864033660465532381739325806851514611710360206723222859643801886491539370904502732550023438562494924649141839166502635100885182474825400727837225481777344744773370969202798327867909536186457298808684640882474890102190977241252618757568517436564944284401100071630723348227427136413229142503931389304255837223880661459424156614427360843501607386902716460704049689400462925189909926043392164328676292985226021446938347569879036157645693295885812739460165733123000079472768989624592576022933700178698074594630739687004083802342129861063476583521943752275362848694918788810658273023666452329118620888994278029788360646358528669696617651405765694331119465912357714572482189314837547803350269292793052330627954461585268352307798237339709752113197770368362465583724440131178560150936006602658906796627772805647346028805012303421904946235428935738587933538044141202560366783938069985415168626057244229663379290799208218157741674855367424394842247032642458201290373533095034508902711746910585542236857042214246826376676226648984495976704423089735094503763912220476204246800774818080267552161674686066138556507527548932142472199647040729472196987733880633450373251473790163551374356155533306143443709980404754006390865232057795474318150079742982517038372146609547191007955031126257788237945266121231582895027795164103341287959508934145400430648917301424244924171320619866531269143378079351996019733400709546668346800402272279408816925543625183394686593436901374025072750929259872320549222100051342149810483924287632165557764462539619145291840377411049141924644927209616538028922553006008097900780461149052191544631857024600250743544696516321838827794731441338946437317583105426929173836323476207397461618386445930160669394280252899689342783031499082868084721352684065329071475435079912145547913733240452532842117699157818134910800609057939742627327816211666525600571664267125474405228803097331373503199992837138892307610590300005500319970013354195896726963075431103154238545843190608977380488639569515498913147033492432450328939754771961687173719668817551020572210091665297671111467482699993039582893462093849013517849574796271694622461521791680305734222908711780458621643581537481263299480659037879600739278004783445008742703780942953576985180405744779873597491536445768694501466336217674450687454587717042629883270143413748735343946744308223455727161401847077775200005578295505920990815735184918127818320133923290450691964397760181499934259687453344599358836204114187260662420518052945028700689662592547896801432907990313692601361789363788049530883604797841953802855927582642203616919673982774879927452064557546589449227004585243306141669000772292921779642589348707272716489229615909077963813538944632110532942995268357801374840116590210825554291374313845585539306849747366603576410714206107136367948775070050565865913626376483475229573079890746854620657737436907763631494088454480829985613661752992956573516732739203069607605716734730423120379523754805225048312393906431928471697210247955925221014644145174208137520262565594125414366988702722580447397680505716534871667493650390038823960927596145477359005319197700048786507709469183907663735077764346490116550439664747828551249623466169057373710880450883800586133679516597114737050887638576558506098107896165274599599132915267253649749532549457895484251145311397835199255695218784560020814106942246496597731072622721674381915139036616022968168697328973177252865295981894951174511825513717738837171704443389065129978635829317293271174306739447600602031733393429473645901501904522094057994618814835473967380751620526096443403018426660950404812086219323564514128763971753594532952431015557208451832342366418457954909174995838995825528248797409855626574903766006704701260329108234693227391542708190309010215046071312915735993523755222558935818147203736918287906783045628805492876924337634269838133791518636009864393673341845142630951661119227388823110289149439069221638349884237229726275527635423911392846295734505224386855474928805952122465721071751973017125938378791001819934973087867240650314805143501567527590208140404982157766484508980029827427670133670957057095986940776870760018089287516831166774594726756243723132124438833245078763890642425404797437904761911262949789658602187690016285105646632311050226012607193065837920701691113554483081556700775913539793426973559611665612232609495776414127831658519385814933904870475096502616940368352832842537575849509250763723839073833263404978022546008070695714882124473320155271609483769591602446947390843048492524605671919349074574859229224080704650146297130318604926186806886311403817260934068205559696489431269756956953736370180495952976401678446373679938495650311706325267530315585942675652285293635410907554412804319030583762925955163638981791278106565802133160978356022698950842359243296770319003475438672048261539949506055010330192712914817835401000084223341917716669353766762748202421945247344622018139676828305582755462726976485626959273404907099220524776929758772596830822199689692918193176423636149135088027139209972455368477801340826841207753901126147295309612341266400745019130307675791637670163789662804305859193064637697312697369663913000568770609961331884307939764429525011596406335320682264670056762977330640088904879724929072769658240624597908556717910548839335400313675320881098499866768049810089511575376537972472321818154742511349229659316886157138460146361910126054466110995892322040461238460264784336786632361426034971013009960235347664813868701085084090035051215599949320655369117553850302603392339992081647338699349731713659486428323507750517677447813942022388826381576015897429665678843942967044880897413624806904082501546901187832891094596156897861472275145560884986697163047384770639749146395726199863921945820001090641938668355502712434816356907158153400417295223669106800958439805282303401223446242394355059464349622264932874415184486600298032282440734158420139433903170803645596393110605360477365284329304524333650722969498884735002677139238986094092076689821355391533714188678579925748572654878482252693855606540445920759214353109972598584046456133853166533612117508441250567470457669375785411328571626891032506523259540855816116847117268553642737823389392120666480278641178758618625465979231486099417640449822197966567468426492883682998137298420485352508781861965229826117193817115916062158630408108632814572439901312634175806899575353684269490476471425519717499402495198159838117285597406630270697008113891924829491214078633835152086876907130998458703188271773400188393729055201399232916142206637574353217647141791333719518262398579882493445281645836177602535337006029832221245136929040190855571728880565929279727273386091973806475329076777720820408392241874724618451254558630073511184949790542129412677249119636536164690515151128495843954618305014543797846506333648979172022832230433729161094250540984731679259990059269427409267578670832011209480142455820165586289215981682761376425218471751390569067478077235882594285126916997637401680274704820102168436899339004155667043822799685482190646114457207117389298744258750866345112456341755846029177193422235827266785945429927460730675820136569370474528051054467906158775439376309724219295795793529891990468744207778890680625651446025674250172110650647074963973905004203612436269175066940702737094631719433153157080929539532502932704032794609732269942193486682871822352174149293469143739549541317679065460290513707281525668968415015703371044732266255687628391580288004200230862416774368390481722998445565505977938031829299097168341845594655783809345678157950567419638596763978891837693257992232305471134592660385695793401875905655365914949586383301610329106747186878041226220130926792532758222289687383638974029920753546166898259987492477485817444973969775961206424604715859668131026807888348293222828102748231186891256152034818090033564794456084125013808221276075705065771804233733091071304295359429009526438536349937035934759648692344120100558567212200862132347191019361012946968260778153394973230359587491469702129436956763054034258168725910213191330075040606187934365713564189693079521548347485567832162278494258098376031575061345061559991179388548450732611551902886199975255964575067313671420692375951257477311893405195004769754788928918792506484495877417819171284293492687149853454209158395975862028538101536592330410166829891083226033719128900022993320604458963252885550265207620120370214596098657277645248388488936266869951704460060158977180360204320829958878024735327126122714264885030627464728732521615544111700320675552804751015885956278356239100814518499513341519621081305461051955827262342194002630002845744576572018536810332553970105058266575674073323021603129026509241758101334753664069252861709986887220959529438551132455294050081105387616066085181039060172326369379794877640148158279754320054321951746211196466457942194259019532669236458721327043085796967005735357596014250329161802133847193167721620719160432955866522464350532900520323798613353984633326635919816253750021587978830102930422728800719710726490432977469776604334685614098846976118324807553241447357469215432472217945125167823356039331241452994513298728331114698310458087224818464935223623767267606720399929015375483931440411764093759415248636459939478670292336382182413974936810168419114771348227868022794846588442348439214883364362845448606490283936699065132471346505390379329147256989995651537320219597035494546596309287523328458282487195997714164412304154744022743370493864458106886445793231408464109681586685450668298791680669226512190503387126763958675696898969536251292798672214245765901525522022856420537239090759543320486167824824764715389920802008460305164190461899202549096418974515449966212564704635863885152868933680954825925936159658510099125730702575431287735326260256136598812877418982163863834508396240059131101992587612241592890066587087090635114029275844197672219858786715735065622351714217853068934118708609338569837717870263843233829296665395030894372256382833659556509359473554516049047868803531225362896182148081179893982495747317089717623336956968789497542926051190708990197610123252707849788750894743532933095881268663005061721780313543193431315529379364569299875691883343315263803297656704139354688258762517483883608642636079347433524583928470755376393507695366412261004429405324499106964668263355880039245047846058728581578736994365976190256769133417247883898436538544425761084559652137064965491969862963331232627441243307466556573692718784057697341928613320593778362418652771155427289107563567182121629018641036699509356404202870447683805901543507333360201405744234178319274090424270935862874351204433161361711579552544565322316708269075674500276464019711580748104588266611507007500542125094285956390146572877531574180002208939257311940523950384325927770197830579381491528687767694297870294800559463436027037793873264058255854915613275639151077028034089839776610616440874493120581426203464610855755490608437088317664974099886899666038533805877250903434941977029709548729787181251290752929143558543263447881982816380091918434433324316982509589278026643271168044233540122573271420735479552325272282735902927209369014019040320498150452797367088048888809232516355931214461783943537920529708975300052691828599704049558473390230836603930531090097783710369665562949670261829168503924208523305395623770751504567686997992478366423612764504613724657504912538394143101564086902396695794350793268350968866366194103215498120625784583624411788902301098492370358294202077185948285471470353210595139714100829492552535988742019718217510456597331588388892342131354401009737483467291916828002442025431944600273158497205820578863737605208571844509699114961242993587563875747946179726301985030575748585130249091931834930575439522408513644256934980757605299452289068743405026842166270126521460141779959445798023011754612221285281795856694797451974372382709153067732866264236956264806735637031615932290414603376390892515740548563030581132700478684271768619244014918137764084646984887123846067773132173488606746399416887540047874017538497442333856395861414893111743852974504769611144733082114514165752181786362929817750890172802127056485108312531128618086707802489291648151362802640170091687738576385130955910682267115034326307108731345225211662733624734832511643458077535568206743391839876415933886698209947693069840189630280250766067364206504139775149855634214864756496823271954365853577054132594766995512263895825383511358602196769794054668507430029427993094920962118209197013153331441764722238191234126023746759218819111845302848468725158434835287672708453743207235711467944337857796103515271386409679097107684523983022925524069050704517515036007178591848600774810497392000037373175471919001919075644236101752936710743863456884681753906955894763729107367443433280251793036767001497087178665594602630919233500473589842692149471890391570989107681587912043652686467317588500123395295896844491494185519629205543376119514159536395458582646311721131480128664236888396572451747930809904625816341715634858528469497931225647865198773904127229755409079655145716680682935578776087374638418451740181639916233349697691769932942308224708130976057028566761840784840298573256631591130630425325306217741119498455168850413622908328640780941226137686414683281769157510353185305679598353197859134417298124404426829372337469506684013248072940837071387177097780919870860106999042065307707597470956863526656543706858333851391070671507191331887726245673058496680503239561169138271817519224456571242317138478461768562901097308949482050106854921904558061944340457838213840773666769913392186126904341918717524246334977962948098039037593507674435837529111798751035201419573485075513236301852112412899785082326194189654547740978794531361485058468686080965113562594222015921052455456656238662439242130917753552839369939840991245845147043478312335628083813238210227265974071828539719966656257763786248624733498072662906788747835791192429442173278636598941404076089239781532374224615949769997822390470112872142015366168902700124911332371358172419594834956845207789892653513146539620804764404905621013128082881550083516909383886387304070037055643181500042471939989483716793464439653488604913308988110018815255615941270797867104886559184867771125840418729525900789002421945786649686874608051297151291672944068098008824663911905522213682343656649009425818979071404172442026465379265521894029559466804868209074465129351453248341181198685015044052617728910463991192570369040344969825246366258664254608882314170232366614230025238024414261537652701298476321780818749636358662071091287342975336825227346513811117720381844576367326328821017954977943579356801191955233022019406681828665539369535649684422781109985916215487229940725585021838547333828135529931770078339431980133560229173086331544936714590993169632598290187206403808547731612313778702967301766893588075579105969106740340631997882005888165391231111852191776988121490940306822397708406394128165224115893252994025562734491613950943466544564324521328364166243022013144217579235620101856599894865367992326076484904489631034378327086044319818437114145835681233608580204154021178390245204215316235199040263556057403329811013761127170473785199671162984613778455338345595645185904272229621522165340989286763582774676718660397683145360868647164294547573686206564473265816334475308049499468274973037908216097629661507427744714201107844985894257056793681633267920569742641044903973050348240849228912909308175609388295082330420937260253102941213543198499058672124240102551055452129612460802214390064801193141066548987316148790784109402359966546396207033276851988428196406340421823289383726486328413723277756986577371503838794694341211769351639773175302923117717986415317835515247200617556019872162682279533928043836533990818885409945826810417758484375764133791528848318896784581956325251126806463889394537484194156332768537795144246870679526616696406891698687796762601480557714544944521410374285121521723009776510593765186153086681906159648476047245867067287673141143460382312257408679422417017548362608338810578419252118297337261925894221139282688856806233242536643338863680445317390880663453179026844448017088751994688681535889984847127850416335913141116064564639382542303325218322408910016036451908612003694954447597936164859308140963262725341126148019848995337455567272726489221633757065412510747013927573076016999109408727534893043258352590525746372704618340307971748245729518479937795160151724763554800306838840638003497438528610005737446689370331708981464729721354193641647110366939624627782185622383337644706040148898756229912917231978310323466576452770283294598828636911748599998399092198122883910347737565147506392782739661035518397225825178240766007570068042740923164947144635395715319362708001290053552569631528981676845040743959498547981353106125840256761314852109019474304542659293743395372006612645487451818383083897151627495274436457418180650089444526515682661828002423207207196123147265468512224798256665959205274866502868698906555629671735228354762835082727217517972879950389978184532809457319979106011291124253188188738370427015683641099013697702555225006224311252509943993939460246959821036626254917059729925861065009445294046570852004208764986390130209184354361038190885328326532488212516400267223358465462924770278191541242080318382817717085625843580544884371824635770580680521893099283053262301160481924773335404008291245430772737999981309577289963875113687261909655217196496542268755874667671877355573076277712695152242707894884216152680816090127751250195329039149209059051147625087546678910503876025627402827359314456987003304887407350593830967279442444005986620065551156001672008684811377695055308094390922826849946914070922837805223964783642652519814286638619207491167565677948370161104324176628267240944027418015304604819003111806100663588156538565850926659108710322179124892866634471760239010765389578937966241634022710706695865725308331187093513066170893827175015680192070423557662316610587467694410887157929497938446938990295920801283145987625466970458311454148629673394591647438596765122452297752223485525321775805464717152777481849182842456751748746043469906219241321953226814133764211483093228679008123430311322645961875378011966506948349956667777817677631681968325003028864563143282085536398804919393297944859651829900242518705588754550027314638641103171970264250675809016540705323091675777929182859014210346406718197109012398876229605398859538701715179860595219059425868234012541816217842519294954044279750773085342825327048147981462621652864261730500090091939883975290381841870062790228121291896742851712728401050455900484580605351214507957112845408635868951854216757652405042846381181283665031215954777867106076003062884818718867586688596716564512403596829855491151901463990465033008528954488899657445150624219031859723490807903326649666209772139591234064980706366840634798213232845193771862325945961365173101152103226717603505204251169404991045945495600998190615431694549586962766029129367895373757466428497269419976955452754718573158821555283422418999207703940414137575509203816465766345517205100123435777958047540450317026835924988417460852308412916327462667940862226508059488552659927790544771733457630262251596733291794396114546704329186544229531317245731493422701970606004575742643385892493679785329979384858758148146375033017359177810431902689054197153826672059542575770307679673842081028737237512934726500237654047931644687024197865698439406709509674536889683258802602166177903381344014638496391903286015078953985856010013747103548884373724920714681119266931952097777145477995611014700071189990035209856511288601118423838155930646523343927786338186992004365101241986796066067704137221963000543871350472319624501533726980303667447426460379205095388227192117576539479893804945964500818664926149381656680617507136430052399532439194836114891211051202015206823772171595897655284698128640611533210027047676020441173545308914840236133331145388387394359448161004059576610373331709393389152206170442819803224783341796982232240398634148899835085660544271873854377664314920371488765599593526359230358884847729839736245193099147272377298169944461259342693212787172114471367259356947882785413238963101193072196860907477034818835664494345921613663915113608249072972710710822818368352074013827482423160768135668097653110663897819228220141411018931942443312107348339170193560450234879901920693466130853920361920249444588909734272277990835551652906066052915891488226207606796032028273871048944408120054281847184722149309081667709156917138098522554633475797540930637380265082961651439666956160370284564268327838438487625502374565428290892883820158597748798391079886087543391480009680038186251623856613623619138704174859276829068663727173423525318102400676684987738887596236788258402108783027642482434545635448566197037019869759672565158272216093774993302781170713472616383262484574172819138777870548948229680410588775412996565846210494434410961703420954234477298685125171721895460303534967824930540605304926467205223219701053929235149997836303411411037834580405227314891329890518815809548847001948376261611344507164837711035389598122800741513239543624638342639244468892893778209676145924531952652968452800972747498379649516926337895393053587653450500531710090673461534963948384980224671234438271584445971726133426742869691828645759829678332718762441628854067477368789560043253495927958724946848418506737233220384413553513825075610534131144986951439153385930705511079476655182720091315576658825273475775052380903088089882271285050598929337076963919762189212240079254697183143658262996535537959730018963291736285872803314362937420657146966832262967256404803682314268359812223056124937725263903275841180360910851245818381426665706361319890871329090318407728586600236842457573379544487014892979683131263268483715716790723930490366182471914547354138107403234334134848068304830352486954719679855653532064129315415278186279430987263183591801357891967463658901542155643736228618540667643684666920723888153364244052016993461441894564853580716530471601712317500893464387799481730318521494612912023739207220811214130379162722238471082277326418510036924794093342120183467200490557521512676685717979753933711585272607316936346623399139655189039608052239876675126586224709839135892174516113442979493287361554980163131483864624012181588811117301177333396831987787550912013444111194140100228055847110237420958708953706295101056256266146967445808336045766613694866311039656471659843655903827346299961587071805317176336632263262889947796891305376749299340876816387055293505917839025905155437269508964755278713209926533592578970859318840709336451025439888286746178433686660914417444649428692497354920277292315816782636976509124871719343436581016371258033571109813783662167373068467055131070656533175090793847852978069697950148885458994109714586360322815771671322513811504027539678172023529134696709373140249494547364792371638131088000626620260136862162495316420233818444867576840875923089657983428605901942941526173609361141640424402155466819922546209576538586938750149983420937488154794619850970066469415862456380563457451657845975772788160474604608263223723557435098800740191628078197497678453752177049015538598643804202268104708967310073235233878112076355074445326100274715327681540614111578522079370335581780168521193095308932413453200062794099934540958669042315104141183208479329621328480158404568971670121819512027032774116979750923608291211547447418658323216587203980272631107175394673582391127954223501472000152594571672076394095203969667536825448471208050125460632644616508097517053671974455587783737674942428243962215990038606492260134800276951856793473309797455419441960864593452357285785384422381920535483598250612724991436557648478557509987413027175628135220356901084197884222939696466025202622680309378594298575193726587949563741990940074178449498860116942012206064710393635969197957622064348994638137170693272624335855276678438835611523722803298290480705624045158637714486666066348287800797644938227227481726189562684635780916473448212237382221899709708579648267240461329811597255883529781182975175445215200838533137432021626095013717688089671466412713662644952605894602577799296687737752704951526799172663956113645639391956732495415385477962529708808421108895683777250394541965950257660444066877898951297810456058637141212049292677477759789008680324050982727365854159894774660644936801932219821004688491601171722334326500081062159323185302671533229930335827645755706656895754082776403547576803265445653453663204541735309881712653173372224925596296569811400102034229921325922647282923348865131536930659931305990008510758920124749983559320537786980170980093873984657317801482868182193961888666969391900541715738112852911831148798700469996225827049520662903816210500830560596855545444693601280564042339052818000478125213033571153724791356419394765948311540488410400038683858902491468143532262045840159850707231148656004656461884611831531991188533564992579913682522160310847014232515204674363586493255699616782571251051196465555092748500172045630050382924590422086106670726571122473572158933672474324988674668528024033094215506065584220328531589596790683884307736372537719162272016468788545483281133508014066945390932713476993556174239916608269192916966851750581566310709979154481847165454836994241512082092815646785353388952879798748145062101490047828128173823974804075972532028803272302821428820082070173333214170399365674588630433495179117460289174005734566794190472577893740040985717432503778836882819728736788565545313519215168409063472385844662172640715329088898528225690466143740742080211096917325677900099976626348896012400970092184353456963279765376643156893609306169063315226155421262500765252952489103496456672910588646755405466319155084906632912235587170815779683728632088603899269623097812752631803783061167216137889202392104017097283170343339228290271541789571066475497890372456502049226444892742594809291099545002554219727771494971603213317994763687247372554212676520182068724582296339667506635362053187372132605061714053828232422897601864063920073866253138284930207981798498390915811566236285928565613185724938923530238520405168393221089185484300424324727364761812244775374792313662380546775800421984172698671859384624417620683139496817322999366783357548111085184992543443364130906051443839410211324318867013608122447131135243221849836337706341473641988505241218851821684795452912950836907415629334941630733205660508055992703480628039877188289527522501127439973572857692835098831097893112819404503239025302299627841368613115617555525771283840312421418958778755892028765057579750378558072927647066203403403701986761316426270127739294697021659649516638305734909686519493608341396909437213461064043318935322488956699166352619038868391643290612741751280392840193822780565298589212762591473945726338038407969027351404134918895671335479492380849079455809913886334061445799870600979990655951635369148551978738185372565600992796318161123313626630152018951621967630464259137326385066138825386147398575351604528635232485290933328286024018741756723472528881974019439381530798012931159230037672451420681083511352185217439235950049199305500474204150762278944309517190257781312281738068922218650862372949111669217314868494220181386381603985940400052124282993157088013939076740561468870399592933299393514744585208336153601651169910951419992188269879166457336186777653105550138085610326197266834469361532518373038229081913922705659907605154215343357665915936469148712831532851071157375816003842878354470800655085387586182923139917462541526431941657968695048882618447964648047101233881254147781247356434253568251743718928831825146663061121260111640534321014463293153149444751872124273202493474098082887948501140533133749157718767256651442901699921048437997283496308040877903336400174858211302209765778022308648573652623767140019228905237814419852703805822342890655725614642041142334451596873674610678657086352775924002937555278695165464487146494657532618764356690080576319733382333863587757298735303755678706750117156608455885193994505250841804383890231992365518590357372037009785033262004822932436904596806633432337903256509506330748545050276872933030094076789271994500166592309962296167645270919474736178201154218940108665094667789574761670770637476460619766158449925129917027695541854857697991214301262932269742120649110226417911446942276159780497033579600084158043669038498051653734593150644701273807331720634415971686384186540660124008592570970013207142387679744114768916274818661159836591681737281653010260444122774335243808205737318099297624566801169819657955181736244873324354703245650055211758219054808506180268189521771132865125061776086878090246450407806721227788897796998784875804819272555184828784450452085203701783227504289560035996420972449599347888260603833216895793914843928137341769646030507362147285848984504349748922919161975990350908549786046908806115186864395506841068424225669847595816158201673280845658445791408802453860617200207056900810169354373479713199445823778760294839217775810379002974023720768553866422936144326565554734017705902570092060971811959203059543290981454442590785778124696216348557008533857956235021986839532328881462498414333242947390973076281282473679465606115974025077650068862917087883100397685399545739406531335997705687458958651355924893295406350468844726513888154109288982802757620470018496710151030654895500926175784924575369550522860943046993232190730229320127840138337614503542437149953905152256816447374886990457500381929663715341178016820104656955700189114344121941108367172762852517803530268674185932783143437732104749329499851224571279950879091534410631206193444726391614794843524063743139621622842068803411928070576813304642335954572464866040615624682740071355550328950976735262645526666202045420642899127250502745893775265662205743385295323549931971919320786577141534786094665963552914019028684885423804459716093891511350922886859825942889320402711989116119547566286681239794045298881911408592077453925457786772312536185577418121138149110080154971163369266986291397505682726364177319009053623906311012836051568358510420935005295961360712775660388899540576849767119888474958138748125064196488352529879479802788481523841981193089662187993267647730641714692119940952662158000248923037041142063485002180971741670939761138610031585870267834777455903977646575513306093219096936232839609565760932287272220974920262187096107346493516557313570142078047232302043318386951388419285715000144181490607725736878317945315543214052546645782668077064886985618847454968909783614444078168436805744322430373972334574126549381609309743163831834323501706363194442138688413677050281230573215441439790810605644960582265507766340574003125330618041263973928310929468859773726813951788284827498157385687772530649510245529606730667399110796519068793352939780908530004905444946975401402280053086718544437494491021496487294266065918105612516003370332221283841203345081647549201925950349460890067416736784152553475483875875006139874954787245012283367396135781067433315218269878599091682661542560357326931909185451641970529871536403950358584788779376666392015986584154990366386298707307322914104548019586656555586205069611783000754650735728342278655570621675712489956886229532327050951977467907914914072566479956705987811282748397523352545807774008573070424436672428442188900366503483580242756472023121036263726663802316065977073982238179991568857522595655636139457176938065578763703448254570995519632333759555572420218633739078666130482235663555040361596547910271283474463056091368183953938682786004039274175687646238124460291909887057711735043540228836995045900165416732338178507334542255033659752903804914484875145384666318468841127814260682931447883019138322971992615662336019034487685906014233443024829090422332373109897488479093229257014804757315798641453949768177593170214574713884099687538777945864580257126140041924658960002056412247666539068097845431164193908464088399100056406534831561209815859527512962177987095316556316647588531490384061558420753464946096848735748887355068722892732916708106025883249168040652848091044356575315269061410037766156250816148173582632716181850841771078984491491717724908177144205334959379227047989613800647227585054331553779481394323430974544457453042076350277304071730653722415489153890037739921277381563860382561304001108346190926232492989349031577587122937040115511488160522239535957605161113857676957905489828981074363087343796478734541126483433728455526803971835474725532966646495368253485596399610530605283380655928904655273330210717925637093604499995694933075739479357411263224899760511870076101459487135819522347826303979448348236574428175564166265063410570889425092346943711369555889448186070729285153483699680825931371081090173443270694461131990401853162620830747058324761350929195611398625699064605231154881337518659019267012482237745520410136901164043708026626692229959719742090887836733259060524165499689173872528039389381610812914040922949348736072802983884821616029264474515199535870905503767662559978947919621791660039531411452868457207881798041800632309282300280297816767878414041127641342302915332360458378909259875495216008693402555738988747111009963103243438562364428751055190567787806192182652921654009794538886426702448488798245443246493091797484212133094653217456433896364581375997033715919479814468299099914531978566307506911194562246632660049333741790682327357373983772795201147407472956632525984413360573240582553872056393605759948612310220085227285968851610286706470528617101411747199725303614499602552871635215129350037104820548078526136181317087255033039704889434951452021351335192397624454508824609524707453213452078336825533947971217094724938793435586415438821153104338750866708139989582874765679080127790109996555554573496034369852706764128595820702847102893249841524386591238184791200423935738374550295488470746259155677016037892553149980854531210393614409962848257949360382560457056045676854853978364088551256914053451611131052160185796980031459078387555691295299017962222535733507834225229338192301411424842488762860882787367191996071440278803064724007890800121765917890763960681825572919858385165154833619915873127497297905385923661436949726501100449346619904768222640928545157227039486424242658307650528738454681998565235943252468976110490964588119588410828304270766164873276220011751666204752655311787348801273842390149506950382943190832001512012168296323045901884479250628308876618231424624866555408374099326788598467436970833912398027637243174492773906105415650981051904592176227040315279622334097192036388774963284725197863177797456903882713421392249425089569879416775059622040207365617655797116065421732316248732394227016733514493669792227818454657520861031999100572146120409918768972312614109582322850540132734021607577454290486943478838095429766161934427291446075761425334666566721755451282898558461701170549179587442366350585287277027113654795026998154625255864482556189591289626720262680561180569330488364152216075293490815397342644624372955712889203626039843816570806431333783140930913620688872603284658315054956378246497594812499603668121295021464772654673483849269392316341309902347042054946370528880516478537039773213435279962377877264980614202731576824980989116634473370942857180907714529443598259102347999020570187570304415031828942543021122280359089375968233137573022726866877166993332121501214580191670175609822771640539301744929673478095837795044890533060346058181840199797201231197291509023536278926809335032374577330163649388083234847559217628790482435484675993910774315385277422674610624785582011077774712568220824936003098589896604473973404571624744071091807922564142499334569526601368656187719550739364521754129179616479353360906237508269667053587104543932163492757023078793681421525473511657130805436813046438855967791798703040576670296758037337043748727731254893367081069766899564590691934119915920519296755039744966476692240844608165366194054649751900820199803952429836172891683542214613390378866380143618133515805700079061618289697651778490761844434604106303716174867698035593828754111973741374065199778554748665266979576811454436846494857288197052761345687455832852197412208842537928739216576114273973373435167534389960304295545650476162805678887680384891754709160378314537313176349682330673134706386035817561585796024619788681859180655972858183184469325518075221455776120203769373064407111711962735448838665243601120395218889986707026136966690819726014461268645913625698003661175750580603552438810320615980396289121191392278979407769662609377351072236099473404932729499099961250227631292092665589012361002446411103742850109602639162800943360661316656458393348432513786143472958816129614362875202591275212106852354470489098177296033551868898411710984326922049117602401782991572848454294858923432150483855064908483897816355049713672437399049858841839776063967801129107265954501275463634257516875552646087072366549422117170616291853014708910145616113322458993535707968992353196111167189011168359156902396776859536433778243117985161865389902558467053775357296881635471267327418331236434021726968551890420957370736120275935878883334677522468534561774941435458187320620780709214235677114062280757597117974441751942737388200759408776308084593178445285294701863297112202985062784704500543425980048361876039040516464397019787792110632159491220525211464334881349755715913912134697792316263054865423744730643572303395474553623310758319459023638452030319054959004172015107363056095760590814801093509616170704744480751056125039190185521200476637686153041874964784294755893732622613442338546465009228461571530883835570605173498937078579904486963484795182042784064395718979044378555872270479368809425196300533510777091552629688259856719357584899536655579645772787344548560996409128556606701301333857756033181725347847382911546983740724546307981876734863543999407626542601424429903784051969871284886185421302472998256054318191679561931609531831599282360437144746972565164762178210733605664698367471689009240476243678491636988624616553048308346469169082789292566198179597439290208787564682393045797027646012007475089756804288168079859907209662212296674291123496604802391674280941706275932421461123394371349942418963017642214912793196109465138899328841722940199436583083703057985113854082218828357920881956324337868686415131112330422291430524291865180287221308749297052006408150421570773084190881708126309273286659359289707974447220412785599971935433382033613074909125174817059696311585656534341267472939129576336130735595798063738275729063430642692019223652461567015331446810375101002366591230818818194085363900118700073091985638601843401788701440735017938739808432767178224746548150130644480918308185244933819480273916850086754390794469110314199875553213501687745759662135844480193117668564681498718704182185871666957995717873909831194669834816147477036619526788939355769827034348525277948656820058708563468744470449686303295208337745547657138252433410819989192721944975514024142998010891938837504869413646968827519911109698145139231441376553151365502591924891805262477642329404400140544490468567246745139390776083408160719703625642339389145522310269769895660952979351619477399741841495631482431251291531712120861755722942882460581151463568026245924670942433445496983026257416633082678061250272874673171733631626230900170355083526842073936801560307576606988035214710651685445300489051841398944327874831248024716725986273598050721332639194008448541816162774861852791494962761098066332322824148653420054021732513026535409495952855294881579248892980634165410990155257675792549783852523938133482718857354407265680237265223447516542036113226253819317190249743806527666253723480593321745545454878091578165161821907544425941239714397549791126062651905540238749215756618213932133642942333198373652068002805839209956809886465630223345747865357959209494741475683833502182699331285867914490337360372672928446729425450540889158042984001586916516767586471938595696611682620286071053033142027048083314340130796637240262701949090271974396382095100985676639317441990140664010696087130973160292652379578211631106378615936635479002162870107328724154769448386760758502028345697576276416910107166200693781852024211767163178221749548385278404364177122509775801397448927688659152960275773910835060821475024316215682996333759188783398089642472620152470855779632185204380380325549216195704073347995998754826798818516375089466086634150357736967081848592133273944234863715498885760917508766718517915170799313632672353799918067660257821656572388615365761658225317423480200345970917911372863154375249390878502512788570655403120803240361654207719432286143354712156228358678236213523319184592035323135069940931485602148698272029426679165036151985742223355133976714585044016800612212493235792953973012100149140059914839166799422465496549335294031289047269634519896157631090045887850178738917145082809259344803715727415563268126184537456939780813268098867517538402273558504034642854523731459072530648998999743194677060598496590067422377956988585763250954965191247734314083917861264511817006561089539720049659679414453032361837074946727371185952626100676341108454899684280475478925113202999299689183448877340487173918656651905607981646483480140046995077933402968487132690806527859647117257602409209384393157662190270580448359893112831477221218654165063469292190521267766943076592016077545970090776409193604517598588864205723344079663402914625595717818244790506745127003836090956104701410682438271318813910588294310375778576654691014580057064610082645129803897836292421336548678471866532937043817581037781957754815865452422279122997814355036739936921544561355780109289376128613020171994326492695644725707241074767935904164627157415006125693457999230650348051768655277629024294186218271195869302242057217403738883939812848806186275886500209532851848835909874650591361993860125157879040874129977706897770447927713552147663604870504745769547921517510362591785401252235239324636875326199687858183357666176522607285601232614320974363284057352699698976107451663342302571989000034196755908092987639976298567146611841425772968058369144255041810855638206615930483497446826240348403130289146433565790046346949985979508225670524577281868750126655356619400428503498812972865835748383836406131218403663084082117941049630064614130265648028044224661525234161262089693851242448021075237064249564972646125612967064673583677536916456172206119365157729668524244577286418620667395071724229231947775391268875957070460193656138303128648451551130122335164825677069892189389606947975259106704096133806812084948219888314567389575830036114375752926485227584693960279564671972264634149251740873146251878298957790427921070339402298072294494869326730873629298923561012502360376983966568779849380768352384783486035086227075389307976856137527045486017719040295025080473782196908873552061083696004120211131764826169550705181660964867859448104826493849471643553763273447714964655529724673900712674587754427628742484464416498612116449293008280299202231777941264733731150871523993400244068842095959778098586304738144994555939268337840891809356711715529459880216352798262272207976565261241812986331886572730539440778658451660908916282507912015539719567564090214242881565550042249306170112889323718648596488491277646631707746901915213234026400285688835171260799163197189205660316227039420250065370088609249973321831168120636269904808822918953068541179149770963676649429597269540235236512177088233611133276142894675453785048297391100281893910962323514468057014716965203313555215026352901263879086176515282504453862050433770608481020942853030564057060399734159526980913634075540506805869836611605630474702388175636598660320226191086505732978597876714691212639737333536994657109660189225778602504506978022395085510169807193190580244729329419002909679545091082559374119782704962369446455266303291195536986104664470834900081631177145658400011467322807782949637573888118568874792319626535839823961773111609583933584044266343656122136082591044805665819553163638479761785574995824776564223975395136758281318688232380936931018270022308008707661788993362037410973772215914735193673582606776826072318329792024634562626769961764387836207706102603688460977454469000483360351763816840582561254438154805987504500842347249061193855830576173172286469254462432245801315741262962940656138833528275202496505025640875068817715636371719198496642792455666253837735643418630882910570686396409867210136591713519430849723492414041208580632495383578314529173773262074476027528265374416036765561299361993355070379971122973514701965115946029071250749465995782258605452960159423959138432189747459816518745397267520349963491944390937656246451918355547108890608398532479831450938411570371574753499439155236634317588396741618238551687946848068938290701891452618917364416383878713103872315765848105374031565846352987707301423741564800864642478910605739784649782454046532814718641068463314144225189799881019294285632089190611434153194919072900262461568377679791278541160197518780513187312545831692550660785928023957318454993558922159281203804621542969097746136001668136020594492161445671945774893452814680551467252633084005662985150052260534945127794316083742836679952411041248520528827855887117701980722627956331135205343569202933603757933861521396504762109571272734222417545226432379920127197104441560794863773218588166921296984989159646053067803466811238012023720906802027630908920618813962016804262689319271194769963968783017791531989928116707830117021109474390584122554447103863890456898244347338103101897478058573762782903862232198572146318773812089333340173353246834339479005527318919124544522917074778311162954311457123148120241415774058910195851891153933274628078567068925157055790365218053625583103435121096848752861416049977290347264984470685280521938392195965409275900246809105226005908501239566641098611179668459870074633211999521534848253161177951920727706299766599171363407205700497463691649771598439219875849920059284904699193044150932095232884092548877067543006244628954699798074212586029024670572860076693812317023441025358281282223306394811767817636814612225493300090786819211989941361128987191300878646206285119466203697826512643859112532100246680844952311341110506572785532029049307999104506365039976588461778124757385137772537312186450338026609301617393711855484831523378239509475239788657984232298492806651295477861746312591216181749342448809928252572023554449629161060036877848242819845360661429676872215998282999159841572434379089919736511297974214953349945663157842992485542862450943660386807862148859438087753753144099047292382349670203615480080418723238799753030963259548057214854086071557399301140936382636524423375347386600988502513978552522282067267919031010568509431464680579878718405605748931280674406514106911846469210058300679639317221600873994531841768913920918207401137309101014752441571476855783735144041482865942269028334414071429595074110960304105794381327581982337911186019320885279151095357511603182280588891980689944117174875023467841039502761349900687460975579548435485804734873150224617911102742449742759522859375647410351465394785393350833305099750652552010723725569771139320165950888061866127938550850677353622092735631741831225136870167701865211076029881668663912490758854674480652418428788937448139480195641674991055967390120925064714300573671754585304843437351673767860593429413644052869696272728768183707127196387473990788532799041234771809867013223629672648104563166778716402221456292880091189291030965831166458987871394887003352636326699045551829346825207471196861850710752671395840472187024164126960818695743982475492782382028241333817426548769822458949042626673347068417201126294754816199270582584933767704968104996831647970640092727592462307721718937281008917443736851858862717967479463466168900950736895617508141125291589446538597472829337665860885316011032657202375533505763467883732021723361542203280031848312998071088687760156204661032881926791167208728714276126309604955186918059507422332913898241376064486358196849131485596108429408778613680706584448333889339008636177021519048112697669661238641165917815240592434095751876892876280317125352875072555106465641242917559785808712718450083998767771479296279668795051662720397610892807733590853490553751295434346451889162810764344214176208348282533082213046538892426666146021152364399382222127016493252252055454081508644170101108566182389395132351725690170262550221276736426407729115029457256777052105878683699986845765994362970405786207171042949099074077233740864769858035792525145215387448678653352262922014520494680516378588103049505739437223658019245444190588341901265525815098908909985372693585098279808592836688120813631810181257963595172621694245634065200005514853117630179781126812303758785406125963067845958886975747182627034604204066876638188616582253403882338426895963266610518381237401193660824561517412440147110444653942017972385497421470909271064296873785360488362447336770603281343391231186098590596517970454702188083180787916145269234174386151033158281917835932950779346439718623353469641004128156111784608078542737212772449669374465901015952125659884966900610160639100007756206868508969508288485493513115850815536723262875891088628280902608824432547372465058828442123869120071138975016912018551512532280875120708105661108877416972116377236047711597639093722438003079154538048007683046671784308210952960621005104489696175546046038108576334614481912495205614113524771515646730565853264377294649180462643642388068814572546249646890449397240347678053052767723852951141525042827948817991119636612189755646145566982344507713621169166020746044071977599261335065036422467222252268188410601445425430183870028736391056116157041055273195848201632756841030046582494400917746875915865635286112233126252928528870559238379664651462273958679774939174088478937403891255291841680727213383627843949378854460195466556355618362655838523232104733292443559613941857642420672298570555071217307873736857786507163659448145478773773353395777875617331749065262630294750928642354687253365529615454107747151283828268148662978607780696131823721781660746442045912938707113688179237017715717336612044953083106503134379628518285116457495756165963114419786656758162681732680396731155845534273151851367960970300663707766648057416871602326724478607970070730467388423906899766851584940224925095713524429170795774899815323963338470263920456180246160736401657401300249917225998064616046560802892804239621672024074786763676291643959062036388266027087509464551832624539840856527058266745769451953325504587324226789991042007366597610632213989303402188876082300095843074501922285228488401489940096237271198719177837780893796569163326259026810037114741241529364849038817137951909910601272683005344169133570677740480411426152827734321243662003936299743259116474180915632583867241960769735281088115646734328427165396308580613285741219663518873057533514536252550828962957924952467764247995114219218344122187202714902058879842328902669095484330188766009938531980606707130851100800000935856376496169161724096219351024817625844419045299953847534252493069735067426078809465011377706354327475322662467949044375519124560373734097177131749142830796222431887027623321912255739217714097506912258834583519998137072031281531959782079340689082516950965110841590034478337434558864014555083645437617507553112910199012715157711769025327407781077185143240916391555402357241132842291223164164127377342492338792945051359105260693367847442061881003091275198109061458529235063101353348231572459490863347415691473239965659333951280568513428642365509813745850169925754843324899686217067754438510371432616622107533969424319581645488831399021516613688132757783823697461262351716056799003491101492968859453386032715271437258642792840169304331611068995526653209347140367053327589927779839638695325685686821994277781697347244991253986743497719813770961454188348172968589026780732413421189579287910955233378503373173256091255406941218028798153315780180232355732624189818427663448753918017983943582467756241398586641853256020620959452840642829775897417052793378832580667313628106500898402979592827306343093981695352893143878031405554251515947649071852034881419684626080789077197535849786943651191307344382563412599976292669805588785722607140050206344115539210913585205533100419610836284853288442048863723842799673344285065047470999880022820853845088939139439688226351397457279859041120008484001929086441578178814564111165239251716544580154695344491087536911253449581126235079309915751277454359137208952337715576229864325750187582404538264529223942069466407418872274787374737183415869091488933046805430940001693348252370233715739223521660344076309228171301349609617335459454335363006849030173070805801034072189225635148412109651379158304417582787334973720553320809130035323916989132732480370396055378972484936597490055984280065187628174248141780595819334330486363078081651694059127059789553460167250769784232256394017431097258090174160029706529017265808403781063335379664443394474604411365043319272661499124976981995475342282835793697403850253713454329589201441684587445937558077787016652532829795330910480390753300732190901021674060344234327488925403616735308066610744465266087608740596756146724746478318793966632752695551601437908905310327038969561314962634623869748688122101188498594247690138309161075475922623625150632000769066452473976147850636858605316392481278331952450253059811496775669471031096718704835613561782807006302315151766710567890108243400521059171264519338125318880726810409955208067935732915909475034322686165557671089824641141446200301152825191925059348172094640748651569774994997849462564803443844733343897207824356455160813824632652132934096653050613805295172422524740273747778815857610829716051500995842758573504245226154811491760040223632491505334748185373225662962440751358220844429566531571716254665281726903732415053397240442778467369369426512603947796583075843950880046722788774460231296933924615746908333685361415411550362030318092856949325603252407860073109263047531006906394116602573440101252583504882312356015264488916502772199483887741374032852937261600844776307760174597046868808804754175344483193355172829101596582253826829080886532845178577646496224543399176941332405780038560934762647032857303995019781096715687686444538469945505374007863624405217769865806011496027581270308720641524633248719170003407878062623972504213080681339268486205755919862584102606608043805346083103006022676810810137451428599273339347894765095347565440189284810063973059343280927834091936358571462067239864108161149526506510045854336196199185476322852159314772438101284983431833621845969555102171248470610844947386151160073259096886149586410177701192449093411915080168013860397666938571924568994560301050761796944616211451913401497182709403809400334579683435158083926615391575820341464126388458670939405883466959192653263376616512413586024221303667217789641046220203478965518541496823648473917926118956125147262465929034821948994803931850777483428306059124232099876073132944234749775203133077065661502475539811330983344068007054548450779230589623909536228070511584186826789969784310954291823386938218122828208058952754533066667060403371078722841243874217730485317876519973780284155326609482967314350157299886426151610824644787277304729350857301328982619033473031854598280204960637361437834054645295565521376941081072839145066813580892742479704831433353280792855282644878611586369109630778498996758418977887148628545231620266779757287331033917077929065404628104486436689250336156322935127322293748148183332880326429633738127587416597862809847332720412420507682730088897159692355809436281544873260984063143221913103978803282260603297784798246569246329900407961831310668241032363346371358886894781171551946888815477667127170328408471716423050028689321399493012956785341230016532109810224254863371866571902638712631878938446831364289283510672328977780402075597832910174787602604092683361641281031628660550409192423790947706814325746332109815178175209808866668835261935776355265012562274400586905595907456210812441383228762588859284491295358353520339526277525517393535100376322973292785943158511333996986386578421120364918281373830083514298993154645022508338309202027635639623717934058186309378708077380147729419316116326139298252163188132116534574325751942751593059194922417012107121808712055544286176351079359288626246726854777713576823143969308279127444425034779109736378131897774738155039077433398096045673900782675382865524745618586399608888198350620763986635728206490675302311188694212627051819479790389573494461657218310296337663500907519924430268988264690726375034519401615722875607525856918275137653978701914752425712064123059450421484846755530257455805782434427898433323155662625195847209434280898324922477345738593134816526340750166787218003047879217439392210634609973743643937119872251796734589705166353253948914025212180307199929060550225047817528340739806800822850165297166120781905961408204656054676050011396320113569432331139585561402283367054657629554133309445443290024439100657487348371289689924051805816023240521942653288727264609587081979001755333721442652157902904096790466628536658869523174788743894047821311718291263244683241040568858975919262148742972690557493419300524265130725842313045028219075486000993622031374059785696970508339632887067347208618404829492040307830409106049670915539166384579106362553220462215736617361965876064823489707831721156481378446266713743497966937068166018306455547834444520227721352378941154202359693681821282442769976720614988295681799660398465369849442973959715183951459444967787639968576779315170152071679726079250184530581922029703824334157511108770046351964368967453259565946179549169488557247189488856508816656334643232103545400342539843145731991995186876406924017467556563479433124784396918544975920563437426107923429648166977412844758728923888215398034817927175690432350139549027462586948804823763251084977960590163923948569912170971394710609591245708507845236026715414042235941988770012681095015760611635257500309684758511048978169336855674165169630080523510840771395946625570895274571538087128087830887972716595127399707842851447296700386015112166313354042680470528170638482871139860290446249382746161464893255630857791620844531475388554823798754531329213517804549855494944427054928390167274438976467863022576738781008977554118466333710817188793697128321603847619578632953096224592858060353009296560281960802034739151574969779108542680068007356533324230944705967834391409019025401903358828672670178616811526578076497934626889410681172862156622886837536120333538442676489056619179005014327502113630502935629043848499740791856557959199196619495632426826282867228336623718002429534897620229002779830851626806335225873118355664543624440588517552522891524418237591068186652954826058621898331249410627626431557351306779343996902011194213245879523139603599275910227940528627238546297418139896100142732741016069081849065775064170438942415944613676841045889615389573072380086206203783161448586497603740266594628015639339987683131645621952285251052605266622426743537542816051337791686192059870158958649774720736681190540961176685500854929872544878505723805707093244546295947195215665940067688990199992087339673030159123733788109041523758935498634005577935687737746009518765636703200108438394434131624884801451893805860999332599170848639226752395589186875449947285218449423914853130312585095436008574960153136728404137247631742472053629838862559569883814412493895835957038590976166236246459069463699269117984693796490518609841056881580734483189517598810543453327815610436405528236561294984863450136885162602091728208260927065734238327405898332026042344313446483522157407565286655867397706869349581613732057976929969117080517780802702605861481080566775901058307641480918912802152639968016772660717476698957326859724810337380002489487959529899369852468692351503104612479625621354052085002142430801263665256823631948696285355647012436312007464151177523257923647708700712572936821100102888237773529019209858176696554128886348534024329145279347169683773195758131686000147532990990568406441719442975822754151557464619123768603655781782141851667183710689573318376031583861122781126289096263489787449985585275257287428506272953735741245253596082995454508544581479780213787527843234580403648828619168837061140862847489158041340482326751254497609676971095548488865871890668402375704883766627158588391701873313272101199792040155353869906064532026828529299886904938443654288151303580232965212417348771614287966726426708174033054468739212413662678099636712111089163498736267688977751530929740465223837173925163068824301376309403617683648988601375706012166059909005222871681719434314969540124954939480293896680728239818100722673826730861538247711216608438937373829495492195392762898801882710995207478387895147984190526513189253135070225625504335479475970892663783402216684897345134530795846340757927838137603618765284139858875885990139284276655974397366485664199507637957707367244763468198818797800205540942908729660169030597546078036113582682098584264079746113735857063417806402655504323736944982538867536571169488135938351807075766104996873214837890908532553943634576371461889875594702720777806332099925920645367840347766331745631143473443753644895371099362715351836650106986740680868818396262007082109383733567467929166198224091815324029492261011329542758566747690344134639833284106194258989251825011580952692361254235457654697409686189304942834498001762313306585800472506084214792817040071312597431036560649095170530027660718336282724868028915280913588798101540096087052007148448762958132681881929819396931894226609449620543832905409578991966745232921964943103929694197324515456196182360534825482813569689886296235930390841830483899115681196426708829447678703322315487771807356632890861900496099837743005654031450094655414485980430781612363493780676935715490847122460448982864257216380730488885524223558591559647847011196204944143248020393129499253258805864116471621503507427030934533464888807000281131287230615769097543652398842716172110240514687581330671383413320022072087188647785214247419712473485116259119340966616101728111834988563960461309003745621911643643113887041894015072035091542142157471999953025341855133422907741509321084416152888816604412656676711593318688598670095701067507841212052511694612889168531495095182098215783962857101954450437723439063736875586976406566031929593931852894280828378407638688530275165853498972757099778263883670416570040335409632391662164776521873211493648774094067868227562698621487036290956178677149441264563739223082023876311226058973377799924527813146465637578578386686861819100620280667948360117819888670240885144615235088404690058112546893407659555624032788846715231143838263365798985580868911949573076773712245962838101910936814925705954021781261573474827376419675476970730366724469167479998424428684753011986780738603862983665142380448706636725195049069439561709857539440842652355459873755324457504925343791619985108425115682541205713055561230687570142217482618095198107576826498483395755158453396388149359897497764258404281537856424285533647923367993841001402753978645935025793803858862623106601592409375913903417522897480527952200633723315650829748273050154908962792834021094098762370379589222567624890152608963531647715830779492349664301429324242866277472844126733686369541160169172379762241931146575510822435487443901624589564813816118517821333985834606497816307616885186251679241714994161185386909674574260539016312243834157777383276316352722535029486383955304635348269854042394258390391781219807348743789848622916171367083416806675748053473985057460381626075212200063715522122965362948272352359410407816960023428033052003319998239289610106772259493858086218635889211536425858866790803438222429033735649640079979534770754953138144273212477850682526331200091818736276076992208252491915255586037655295194461464241086826652616851584263499832162642929400213022008669150304256382202404761346477956710130003908201692931361379928213958726749153714085037524121680964688688481130402666407569833243784543298601444305569209764670007699040043136682674038991624904989857627988994257266462818496824193817818489994535503841679436773974819427749509809404178289178866352898551176856604598303241945155478954556495077101307921566265537932314247915822055849041955972768017356121682838613487503205989990110230371478929349022074406659277252615315121734874428050034680312308045418517078565595000709919533596113789646550629125310776331410274061507595361211535525382729784134881407919294977232146025965087632956038341964243782340889383665972435715217854141037111034124611331004952552912555317058791209141223626360504224162821780025123277268693893182515431261259696761105830638059229245783207453372452400662579881718729024475014024943643674508713771871219820237828468798251576155771693380838166730291321208301855188688346699028100778408116271566874990387955111970704529900008604047343993723478890311063394827535400683143260007254740306667148442458752545244109220359637775007668797301923585287527695666549382487769430237105039435694594664066896901502040297852725353412385566190308371204352599904410987646736461339723902092434038172847556321220281097576028755883615706149793743407372040962559094375684023714493072669919643382369212998375625739181405078582181197938902064497837092924987843030533921197233240875376256554906340929863910920031464663127509868777486395899600104510928922580926040437753382719679539084762822768705416950199908738476242211741649558942409965006697857577136690386611164930438974034068819277205132356988218211206632424202989612132917125618675251951002874477176210339622371689821673819236661305737900589635458160639422569670966156716912294012096470213600345856496716197075036742484486612053243570091778476021054390596406377864295812871486354920228591251360889144050348280557202034847756861561235225138782416897953215154887605043141930465705624005624813287780408439805916762583179776951244945349468702749161814565765442841233316089128001235414505766380512172661111680594433469373202923325389372467087623239525663112943435735245493552940743395878950776180752985484572421952452469029188365421054019987290503711126411048493504122219773800598020003248505851741659546706704852578738615378209861000064190990767651842391082652843694400424381501093762102869228983846850442154216319013966700751876436973525973898588919830691487216979115091054173515853747688441688585707392182812644462864583720173044517589670581420542145271005032126028619282293949692803664757407499404437693793240247877909850075824040946189558326026530112941453081969214260882269046048002433222480336305598792046353169297014226317634605821970312387712040037266664370943341057530519136381166001889407267994731873444907364776620817405114194668798956403023893939832294181486742335221102303308693899675851027900701199030657330314482089484759128231249193946606338285340702300292140001349324686198738439328567647810589958352050709672896463173132510006874596169907018784499249408333843593507153193256630654446050684946153224300974112819581546686667104549311417318224832571835241575671916349600306832269129719597488764839955380161023615197306417735364006551434550948794440083079226889684613273176805431355626802258541369325609157388094221219997857631736205457837440620384814346466097161807902931554130655174448975826419045294175550148155602741362185337672797693173935522054151780258263144045187323713337305531194016109624905224862764252527867691192278035064307671933737274890001031169247610129078102236458498565395728831764410201066822529029096159378863171123308643413837762373824354843043879249785183909408410459089308094865543837535171667378788739613210472985244015486933813458817831660960751776267787118461594447065893359037693002475838626336298352811557629648568570096347589003917314970402054597860784260504635667280327820831477111994396534300291966124542929492538001160353243182420561633411115564007719266470701359174777089386272628636118790856499002276539996750948315066182568614076281549794775689499317224421613341655467230947033346770857018061719091576328480477661426974525607313267377321659300285683751348519478057023466634691744514368179526199427105512296243023630434212849675417077050950212732099682876989976388428244850086280714753742984293293812264034529822596610719712943796744485366098314486788006292147881471871826160838813609654047816314325326113994415265192717672556082517623370095915232715775485312244194309826871056303059144618497697879642829946955768178075096073201054563834571034249763179258485849516843027665662506980593907053649203899139934384479540942713710840728691584880879338405870573834925576087257964453348954306690985015880145015810229147380555244356273933022021514552564424423908724484900014836470734677101154196591976522184453059962922243692296684642806920513811859679941993861238813155601484172359365479412148947360980665259511609696539099524515489840327896441947899611413123786800499824156885512608488587331216575784761727876034032161921298675915853498637663108409202283495163492475141475787604964065197765493986835432083623264840277573373798816382343697719768025452387634928839648019731924464120612199591839766040465082598403203632852499319484538365038229515830097244502692269465362588108096045999005068014369097265216331006091080167179792198468773773536147083847483266304514772621708343248909580157415081115978327676397930693678024342165613214205680882693672812937299522310706166904185879825031542553383578551064412782785988300331228638810580704702270575974265710117135385098918831047371471823725095029706627881085336845641591393961261096066539317185287389710481872693830852072293803189028521010498965319876165397869914242711319064844042328056303276248874994298431299425718219625496011563647228121294233037176457882676302282299043058130868296014626121988061465973929141885589517369550560955781463648932310218845287570476993309135170605921096107233913552008869939463262803887132235911186894896440483050709157821496475742193456889620282472014973928119531120829041545914215707937886482659009862749218066514042605768536051704030184928285331460151670848446670004176068860906310372462691678988931029347937275669890216843115595510771096160280073521136693474500118578554041864666648788396178539717960470897303628033353049643909900419544214385463438776684719897345489723354867023081152298434302446821629615191789506188682311391651868791483836140645086243106398701439692551443186412630607690531160493437642050164459145398586190361988170483346940040836892251464009405368711892186219398833478708768102702980412004350702578887025179035013086597301611576413000677456377868734226877329062070343798709230726167659586876636348930981975084534390426949010002377559459834777176037745302356637006930460290659507019317804208176666101623639869590184400137383748238333241893257739427250387278496108900863996186654109748215562951961490989068413525917937738415517733594001418590635472744919590350388331721682036985499977273133663056826563474547338238434901651642474087835332690485605000489354527932979111934124350188515253130673844862184880243256113759631882066351280445631095709781628639534558125676762556142848521329592850904923479783410159435163817229580905691866039683119737448325774421649541588193010095729619670013226246415142320353181279950373381605711330537578742757464117893776485484062012824598887263170442527829594927774663799911898481428097050170923272756291693689707384550577639620662123982954697294151625764137395920477966219845211129000541701756171145065887334196576242605715098792492182787322548632017546073162152422646573131584664212398530771461157014962163288634004245593498214153927611169757919607153016582555029061389491025713948569680466237778762672487991013456212041700606658816138736203689707887960286832476659250238379019297046998717238168455794113341763188327100326249543201710737312333023053774699883963376748620690885792838017901513575880042377070066314716253989967283589109389920881798739558201331574291333698596155178748109334699953943074580731436788920607584799551770008379716511257748889417301820455781158861053899113815035027782020709186443040887300923738510040453036016953801788412357705718755675268833531007503865863609338955112899719841761444412711982529448801811199729334424866813845899735618026701186658003099994353312186877358121301618938993876902514680872992495946519117955466565690914775306942841913325102185775444600121298627688732498589660677881350085014376444474485324190682664826889401779377751413154424254003375714617056510945210200270538543122049892906459042292601237420153006908120121949159754789848587524627717953905700101195423104651690814741051612440277212923561339383011327569182849910654296496607707065152515112817387329226179641895674383779761042674940956005298957874784531245196001829208227059865085148139628999919298226203118629369924927200757358068825029759204711462689162719119116440722007570024400910568767844305025830634747581257284303086663343741245972954349644600413072569058054266877298256138528934328557565037854751052854025109479510628885401103391623598087785431982592717378138115711376020998001901761819109863355577389260735197060599609808981185382358167477467596037688339935910973988339968055680540344272381117582833697941340846029867463906674561741683693449815929493108737071567087532740444496369204658210357703161605981403650914452042592639873482651238687889332233271511309027834990195959459173774877862731994171288217628016482188549633529684360954477197041010477907882618122002152096805430570983275527807817517636628140122986690569539137896847383306892837070385505182061006106754004812968162692005440036680994488536172678151661331691659891683475198555697181378769716061571656115555265197059653549677108034038327318319626337856786046694879627092890990875346505383838416789500538933777519991762906416493872719000085439235614679523114428730813930086524236628912244036940756183740636738782711424374612897805190808482414346865916302268568342540064998157447649073705080115918289061451790904729333802155104674160361572179085816549727244701945744974347792427909336847113207852241817968131673538006089864028561192036948579029328617973633151054080807049889942835107191749305882375987542074715341110246621630169042146206784938464164674637197910023581669593186317595107774825650889234456805500059931285386629968750151807016871596150937854998728762072755593275331873198627619675403093917600928993749378676357512973396973766806395612634273805323264785423344787321113467432257790756014608242733342889402596284935982822544990224842363833073570318726760796928532422777214934101582647750272062465772966650775728501876652440206058347243812717824176087229419811029415731048589636147156266878748329330398470450178752178006212764115320510253091662488281091653531979152637597665519828325894209354302756251791880180847133467336901282452337769672141144445177678333755640789386484295911610131331659273487770999764446388694925949773931128060308199034920108484903529570830777932826163659770374556231248664846805165783462233590233883148574943643590891044256630483666376540613133019168739338715176410908129224795651415613246048864375204885688876376136924962575446804517801822667889941763067321945798630394428961883387321966642483764712582302798623866906429541374935083168020326435658220577469556961900512628188891350792555154410349480915914556119648223053099753148319447848002475780102579054853860550968369692975034626819431230490428605250510797725395475586750386967427627370178264606833549003284497627219693056416443014454375382987343899615611638028423042929970988218371673616579840494892725872179140471525436483018609873603931696429019971583887850242527374862690822769196121166382607906191987703550769909670189999775270504568752548681667371952692983480761635617857688975087371277247280116819856554616183367783613071095450503470161005474831705649495027170691756147068960280786237863852171315114571340218381061813957911380574925058893075740800610918875764543691759282337047861950172565850602569549958914458484248211293015474066013165737371488917046394467023586581391542069978611834582640394940087259365770862571817179242431662618332851803634365640044729024916722418018471511383121511492701471161539865348205920983295259721960007147016833430813225677901705437373307249232314695264059109975878718140760767287084806276416163631477352037327268688235721318397852504356797771462474802992118208288358481981284995715106127900167692537696865729303865236957732928764648591409254683135942658555275169554901341975280004736466005938857084940337645119133151950888090567235960743755202337835102405742767206909954169532387605552312405022754631565406399449299599886579168878522035781104502311492767619454240701689409385892200282030511695786886984085122257037008733188544177675207858468989759835794933368514290435129026689700413735855263105843525972397095162190162296377765223548281478136625676818420176382482736101545729492993625404783967722991249071028485558753907330478781175372322658484297630660298884832271031977401281787214226592580068826234980795394767584671597707826140352291177821548455197724977171500637843062623150419114104461149814383075878299193982580342913075918002582503884844809799113205945554734346707433014363298858883982654437233492490201982624531548311122221837351343935089893367069147915630883177204799518227740635491117805308543542211468589552367567655383047392397078892342503948160062549785169291439320641838683168753160258979186904023439730171631623424973244895998446635470999180649936323557571593249597898896792015775370841676398079001924125216693901840658555483233596478266072329618960338118140812042800964118576523925506819014891629516415541625688909382761873868383052492031783675066246353714241477410140234142483477108518559317129453926795805225458053673945880351063851144029542680029464257226193635641142556824171722799486302925552188524171077383209532539072268837070709167688931927208023872879013624768142988820372103562753331303940927206998074600809028513956920222145078151348721697389055141303372502624314483333161086100687313820684583143146763324370492486109662959977778511094206218082798430693480787446975984713542529668121997114457283445731058284490410717618773536271439784350797161352587117840655280134311265325796288171889689493554127868927484124789653743302599301568848976038390971933626695823515364802546956664854836883193339707361463717493759907538914419630340247520060116234686415802017785243860145803584377787270267199435450675574169753535627327659543474249491736466838628099499124870175824059442936272719807464794755593667025725299045433043023181050588379751947160452133802801053672682704755764488422420143939853973483229983405887065673526015534163858424580326845215224040905673988965778165275707211753820569352190378168449598043344917513544636559510600926234600307636110691686074955000990263169460621747090638141005435210672354915964101518061642597939488591613880851855419378923862487373807906359181505186727027710155509835286947161537969888626072528671787358218539859422145710937589241116167639362225082325712625647545908486386621562434027707170450474102827028864947463935550304528809052271674532464946421932739737111038142246090464882713500604277587770474135893896009090799471744798926378758440250595147993340489773841526388555181411696315620927124197296766644353622908089746823212558155619668617998138584610622216616253997729045040042785111248232549511640003968122570269443806445275772291269298805133801861264261867161323368617925177619798836501371998426167972526773438308900554485236722386374274578057049169381178741522735005126144964402606104946692114369745063536369405363155223831855350147491412382151770828590537895296535337488292214615661831401868232749690441174356273316912160572275058900582868595450081697561552112619731164182091806853875214181251227735925959105319483019687867522336188125889195793598509500832050072804070852805058725738081928480302388822247004153252255712716672678027360014385142614585076589419763045077569245584141294786861831480632668503802468878200097402146026412100059439306685543121573752440066830740558757806912851493171307069739623705251007824626723001230548069577755227008209576420671453271548160633286176744023952889035348209521942405760397766161589364615073194304385151708571230507944194030010517953257346388305147748535122099533937492790423294101919992507381094813815294031315203515330728676936403734106730058289885714367092394032413320130917914735582810542395502882955962544651959947744195870222774621793697670714654077655712437631604343841896286128648434577169610988951328259077863168572253782444438744740359804031952121576775794274406484656323857580627194336873606309546217180113011342028153546638379064021417792749414573596635399445926514699815646943948065961880194548239298580590364528979611673557413845834572106479834993039504996711508392249955996641813242992691400522125160412685981382723324885366534504496336345641984136973153365629040394953169273779802479095391473417289514648466571916024971140044186777508120477120632689884991950566773637531831208569379301973264469734774395294547271823780919489458282629280465230833665854893307686598582852618683663065838945618758348513335167788579051833337507086820059417197480394952111213770594578062556212725607944360366247061827535233882661899389296009823251230278518996020258739940802443196108736735831239679330764684963529079862226054057446898576213049714187120358307230530226637434940006593738174465891619232458929714723274636428913636516689327213253404898577251157811791250580023092775889945794303336574044749590471754998943361331241527481637682730341065473101801625394371402237279269240497461853490404169623204106983461502190018389398845651361970969146194085732166007372269357287944493337842103320423114891634252067957122030112007871966246956503437429807317182932779814607566734440329542965597673394880357653895366759779910056054113648170659363649823100591969704248672661717631467730942952574331558845316571345860807867792073356614071993666743284991371948414369750596071647144012458720578370487642361779296201205792695159449816638010274226662987199595478369761149212343915064210011534299677452626535395488147175738669385504051799585202090738572581074402248892143041350311671522823616264818139238207374686097665694567665435174956060119253667467865210090631878399670236782664411848512974984461119442404981413977815139051978673763385509870337418690003034068170201886357350076045943411350396877358756485233605146209009143486560757892954800370051744990809338995911856845701783426449196960309299429749206014184975838893772565725881683450744816772536733122266466579872548133102574943712041110830564530107708709368981719967472029853078334849413199567871370081691250524909798546073513330933125220740453976193128702473969014883288946030236686366700679498854441152790549595792362643715250466581114259936340445854765581246657971918033190383998113145622754873606585225088176923838815379695302150207997608835168819889895017325231197846550242003989149599952019507248164940202246170051972881684057987929532650808212266841274991296724400170033800564114378173691908247621442396455922314225604282727322930062692996910338360722815825517638645772377466558985244108591123783896061117762729700314405548115400114392628699637158746633380497530536275458464524564283958650538234209594803692034015889281263717808402327377828241601887578263323341886239431251210385958130750568408946703804358198667853264893962812890215759757578236242818746646053662341126942923957138008887048112853754274545642748723229560601165340573218218342020360061088554434707307045282676776379975398029272593454983867254651690249485605851867170113090008607244013674099101042237659167421801056025454866835152268831752886505175713955747119364561434165340221233718998398616451263392587362004972776681512452152316041462311798130111534018429342071957819384628835844672105450719541346073072171475572786333937721655313746566172665216546792074885022099400691493542876438939713065767792872275243055542615320185962220951068318770434192470153635444202411790729341541372695437430217495563255726157681874486474675022169275502878482756114853801857548282379257340862564087173481902499224108157002193593817880028411802118750485558396652068085133713516168126736362650775509524082540348534677639400944067966073716351260363952945874748717691070058458807262513212006772309803058817045933906500524220848243930063541978335230298416335352935339863408635078850869164655620593457567849874381064452684970834570670740746844078416336480190224967882579354313914217048986574410189764291576593718987902360536450108661368800381553276726982161456473289814571416685560606764267304106319208087409456150709324232501283237847477410883288835092553543733275166946915332152644950591484461568390166799169803062793840038950881194008573395505756395946297248544310157513896766621711570418417331774594470578344646829475446636696991414748682660653433200511691425329141983798380667545688952215751638561066953981080149799055402340095364883408089146284482197019608603621169222776275071760557174467862697833743444434476772726119784231863597988242004819915299233304295854793175566576427303195553343774748877437109896887604560300546900467553814954696967231594465191262385436578471382914461374268493638961453888444453223154291171632527806940018908994853724711672252662597735321496767872063278736255106215677979484133379925779921552289814469635377029943920279213490754395964725588296865201630858465392289653875433966994061187397781811486237290084689482756506394341328329065440154586720515956328078868577555711356841357913520233493107713042355213266600204126053867169551542680182411146113582873893855482770908565468287238932621565745446805304391809857701875397651243998699480314833975965765370088074971515030325853302264652943458480424324807338455902299545571977391903974112726399171629349506001842533438677256065077900920422341237291719070898718048704867802153413147948453320384643455821317827601593320399505768608778643543037263491272223986861403892236772985619300278918444113033049716933052310374671104939895125607118694191326354683600570717562943627183248755672181568492446604766773946074661700215475216160982121950543395028997232362659789341611185757316056574861773043425126677909751045151788401988076569841861675550911195580966430536630899221188490259107799487397073278299854970342909263385421560748455911826045463877583710522467599809750652464182291736506392164195929507413994038985074999932726098287852870729502515386403043081698741411879586423689434615843254433115836930059433632071378453066018830555169144636331063571284802266373053047628149626914683096755381743132281100558192107560866764297393625413043008683825873734125429348966226516778169525120017680793313029794287370827124950356895277027427279355028192708797566165741517507646855677181300802494580723343160402769999775567697462942095500541565607342127587787298678286355712321797337809158439890356389386735604427871231734655559538176015396517989918129146943642797382263676136331216246254942201661003212647976684599689999788632421184243615319368343576975688104958003450845479155477554677686798203507074536876308441675370341037230523334969595531260335297100541186020541956385431670905010025618143212307864774726114972774822359242312334405143475804829989930424300994985890777466736408334698771788370654566591037871284957710346945211645472944895184827742871747349939910584522846239845091774780187951168681826954840600751875135990979201907802334187069975811704339890790049690603554327293021086001315700179879026409182277176281893199354943481909168497337858224843830166036016650385297311184989616545979068060634042893466249446081108189165382547628578576077451972602629295843031433181683035067882059074164761543237125719726818012692168349827465514076384394247235758057579551563500287756578767570616819214064622474035392825360048071353527254255434572817502302018871614818803713969620449302543785088325344467477465745519615381536485758436608481581132492986500415506808661255415828696545801599531829269920582286015406547747765765571357482267584330741836680347109130416883022246548180280461699413494661058419508807465754868623758591710691318795552945776330801395827079830975504956956671515957798793544799893753580824108833652277294397827832976212661644535146399898742056609812291201327796714609422827325698768124137056572009768773737514581320657816716391505328446190159872335748482602424558796429387055057496204832284932084386762616800012344638676370467868726935979295509506057351279528972246149940531800558917400142532415059132390835963767271536674983946583492519069987447589899131125547348486221801681597252245082697890121508788772356873858792359097396053354466862751431810799173626425840506358211758757766576960668682577728284751105866278144824217009675171545979045571530737146307234612256653226125741237826533721000666643447212008292322486308357315163084298247735093131728805399805725531049086700090335938925668398976818343453330361240642944722700145136682502060816825778958290206605239999859492594981526548823337238675635213268970339600291239310443831442705410194412628413474866523228837588360638617878096303627027918247700649583314740573230374885843515385743097393562817577351862886387981713247519802153812949318767071797445015756199103632879779260787049643615476502383020669969645460579286470834634736688658971107282529388843350461020568141058208243810945305821169416430835559896979815798100330786429820284134908409589921091458888765380700739011720444269198327402028818369595059967246693598326752516289378059630661308920341062251992857487788234044438940961882816170645208975418034737942578140455576495917801825261335803604450884867628730466614389692040825802684363058102462539095166928647087106234069510702938467251135290754833131991476264765398229231204846655549015144528674206631046083328079878942505358610421454622360927057982317647942476506749411893304250068048132082636402476643567985535660920466456105974570778422661792138299022876551789466143035394769895654940628608702487726131610352004796582305465133851193945739996283922024573668515628324859874037736385241767666374631477617131669678936409741100226649892957695171395723596626262531888002060301278869495967574858565970835808927062940919423192976643833100020108713509296026743952820015219260713315848260527768050601456259001102861757316966255680038220657528170185828354992371656871899017280364176548517737390013075309695442223979829690532708804401875547934140967158881652235827033214017942468371803040034500264238042549822961283053783450326342004485726652416237359481479086134035938230906250563665654063598813132485348568816395860576064622422468768650918608799806646637960505943383769919552310533990081024095804285096934660092016152186358631375127520063941095800553276649561723668352574298747582644664791750847568792502662914286677343313124708485313993862784707521915936672571615200770512864424240376563357519237711189222085798927048443177355689173667242022814767501504949810466565455656145849960942833885811567557866597551713924580277899251992477705754273900383530221117671261298710549294438482725080370753172660728400228503501914374590473093035799078530721654230259565967177531157512238129467244493687972002842236592620031999350849421131823297543696242595260051701614180752472551754176834445357218982987266584940048080963126887491534470718778185627028729496032912866256850799484808662217885886751940121652919631231691645672601827805329735334971202834973003021827236868624248096136044700118775752438700605828502509601483989917414576722527347461982936857514433365194690737254946584517243374065549177959357852922913208642998431352105609076414511430992483222189652183489291405251467593190716325863134571010082425936525427278228077053988577025382032612180175006164517046554593521337551679308472305130370305393058002734503449243150074378191500305712341317254342717424863918770443799149818489288003257597967942290235948233302316564936130926378288378220390083866004673842573317596130259447410359626379550160896599100510150975967990390735186452231901120177423480088659230922851460750289607343457649998454462992087669010415845129690204437945343571244586700751475486880701698817557500663638859767242706766900332360717737406223288692265824005430328269195203097281734333935173143122589143727506514032702338321836242370693455991602002799182673113105236223287786895575907707153674852901040334510939740292189271252250152289006184641453735561387337133166940694101858533130310248447237694546193648916620035916754903331866453535508562534607931654518854328421349333237167203077538136658665643609676562251004451954235553544677881079972152810091843246548687702580870742381561400929008605811901259970759059225919388390287585176000673554543008516185446660203655625983457368081990351443022816599117840584960537720193279555673315318357363730917759418884674988516178200779001814600852785764492550039250823522603647592169326781035802396006732271271720917084725354172769904298611110369605368168469441041143320975596441218169137705260511247670027229547812035743200785305749307174659780764541653288590506912058862452866050748095048999155874659012162839766100989090695670369764447186926488997247457285736133328045078435265844238548859432697743150687112144047932385059345809364723858405949728393129264245851794233813401956878058234877839788870997875982559239290621533758033647685920414729243678749324923453984184581237804081430777888266966733276270298663149430097384307931257553886112190847745462759101712913659724928555769837826534380156058053347177420701418116445333701556508147350250231307547263794974413928982045274148979753762398539148096769571831196197343135207144177902243760009766583653133056742914017348522243927346511576839767955317395247857161311211016628212734396527881872928838643721625277703231705632605158672185356864366667610687529116689528264747084634525569263563627236842709250585222356096764165818720703745600831508393361626017069117851400350548029709202993168455954896696323470585286485030941016652389925294733212956828697973592120279842941410399331952968310680360466568332838058678070667796297072850369836958482709973151263973795216638358793227289489514151960645990010553287919287976639524939896626742132871406411108893618336779102768658107133033531591758316572156234626359386358317840277527928055976915539238283323594352120738217933148002720820369095336408307670604502882362908102539036456581995728831790231934749874345642575028691555622013308736729948990000598298110749935305780957866820417324889479252284088412212444176102098116016746827592684360810007048561435546267297987344866665121794165840062705160859968722859545729107285010984126198442200329139718416913966485856618234843762731291282820081185946311678274389772561908592759832913860743498606848179141708415595469750040679980094128170634299546749867773550521636450264689702216222195649441700551322394618202501851450847985195852905729135424340090051038605772797611650001380898413362876840543466891294759080859154603363473048279647661946771119577660600624230551834988155931936632105270330265708864876302204292004494282868115650538076182324100900624093373184470418436101521349305062753646376852675904225694017221679277723982567380576658514751635401456438342729602091960440672108225319049961252908335109842043914870547547676488683373292739323867758567514800289780293065467474524256726796836900533070012340664473399122836883533602609711024357675642594812590672292638400079800735385604539168472462033622761438092378027425678000083833108369727397590360224223449870757044402106936693676698261057941944863527319807441511006782220121091232491826090300412482504505401944869193201951572315126078747024198188035191238305204686442964723535563307535118409547495735470318078631419540317391467182024962752969680654886112400811079634832623149409438703727478728343241641414495523820137933258552668624554495534228902613546816628110592015715848866436169498981413763794670729546827137322776837636474853812399831908863693582294692680497966294109190454883073804371099426740090175264222383532357263488597442938557992889627078271665749970047100050269117131854845950368313527762100709042977307818976072804332843902607352915096532446794938542446702389123317802904453637811030080366771033416481348214136424684101431816776706337629879761561305714781847795106968743645617189224959479869174472081012799826431255500593294782147748865828957254069242570289934130456511068541497700586901993144318050883371118513337569817377724269870227570761096338228050996305554693488537867711929560531213467282558309040534367883860107129622997537051817703399073484575743866093522085280028536120259976867643017918623316863932092618949089101655380950062425590019641996944335013841581712348503618752041032870161482276732732329906337201524361827418801029853488729994929901204516528958560421682773426279172261734334673526091300161748566102637023204442504146042668749734730182587216957097544933723924777997652039255613631725961921387543226662805275298242310833883100815741338288497850355308633979081353876742480092108762935736588121100992063877641613978659999703867099529712453562153578587289445410025095616547954105829203492518517001592076075770463010562833684158570952876072573217145793857719667960858110803338401849941779314348288371858813058753282698923393873036296042461849825537556070930165512198187666740124068304008096062528409790561056444791678473458214023178399233427376099437767622408985903025012407316578094337747296878597097901550182583078842391068104874248851517321182310042683528921973675012404405445262378745086293630571771440928650217575966654086663775968401811036123011643825057453829785620984121747288691820378025616812115635794771546520637945525127934932571086191693712682448991145464152630973251800040947645624685129938027554131410154869136663283177191827715158836097402593730744029268414251202365937070865931871246638588424942147269081654728883631941427218612302957050909965345964859071224799438796377704040959595497465856419544832247058397642275927203885229487352889798178711975954745084456517392615939938260561253553412679753119531215567998397622638576444303335678900466295632860168801853759284383042121909193056024195678170424445108886245235040546225014116669979726968264751867669329580831082486678741697486370194413533018575757076394170148138805808099673843833004478643888734901133086108840436907439669641388369432982305930432162919737367340072916296173613867510566059210579290376456805698956843003755604801753095981199362890326786351587952997262836658888630685654023500951560913399261745485743489564390102584869862694151080903866680428468161170869339575773659466097994602748569135911155019303855465135712179415523225908414401659307264380733419451194259598751669235881384132984083645326600789471900592181821268288283563784016923309092742899460742286634958694336844699569984123936431417745220992892509462818584284067639571750271550309718506490995923344378306854272333388705872869363079587041793491806432752692142770949964833501198614213454449890240520102491389068888608811963695302102386176381424646372900186665445091062867544420666088634972822170336615294022991577027857769229286579701515900093312717260838910628183814019410443480175465685005794290437856484131029965855826255666485535598185390296265079603300251175996955233304811066163353220096985876913796287252376331510094258923578008960962416637630057966570794100600714950436575574787891902113965285754073136939174892035055543974274662681266288596018562865868110620627576766979284927009872775419721480155558142653553053264713119779290648270019093794881948742320611166392094606933784481005537959200067084506652564801671774003759174871072780480830233351047898680367402272972503823098179458063054110040052646312757068506563129159751672054897162116494797078332312143026311298677856656815498885217402590016630770355746692663252863744047088470056548268564750262235367909153639936890604976521220765425902176526930885792647283531525653713352587785733533255175532842690855096652895290815067704156353852276878652636041192524556264488204995595981994637956165081218318680185541978940068591054600677493064374519452256483567152510243153100291485955123629826585382560244195088946641345468440031783971473252590021006558010472157009250648418355864744675247574949461204312720329753320899269885350771271775696817767535292706929855807061074806352949419924105009009858825663188879042633610686854822526143381027445677920275899505193212193793318326184989721253657954390907791156358738249720486029538104537742701282476793214930265022771968421568727294730246174373389419902594704844784336408664029517564408726891238882224361318469095435656446941241517801961975799828964578050020401077789057597296278472356919585720238246304590099668292231935396851999796194585574701096668035359910451798697393580547434345056406649590314854145035771668189939088178101335252142688795382570627774570043354871902645582097828817356109261988266826372317653554040385460805952546063654272500282593406848539690468186039334959045237148526231334779774814582550375148029075297657637413700311057645740062787898998078705009244435792628390080075969116584743230964050803159336485514857642657758580561887408747566683116195793507472052695024246938041070974389529616851207079509879077859071102382580211654033104681104087089074895965950898717995201792577856044229528334399443866917261442454583968251767830516627673883676071222836028099532395253951646048980342260427614388967604645935404629573393933414258478041836632053167648851317559918408264528198750565135334238704877414719361002568671701437121692328544062134525041107870721128991848848498954454499302190947001541270882641653387803205730299316063638766574918382871649843128776776711003264194125492483017024295166054879535081443734703600960065609505537719379792796161483751070446459039518682587007096738962360605549976880468690899805442893072218945459314512055191997582047984973097939901807449818120712574856929845595484793475462836561181093946437965740206635966629185510573930950787331109811814081379215261481697051609695656881547563468089754053218608843004605919719663530855122038085799488235488944226235907966445630383416789731073607388033576069893423704901205682690628752438168669831318759268781019057491710308202839264900371315705190620080667849291583684035733189462361633297030491028958618971547097882292985063512619355807137250876439673114341453210725128567259354314210856401396323121460156099128448143293786127256484595062314119133363128802843708550371627753598691854619558752245742632299125647341883015159175623470294682349497506319052433728544498257027163073869654034614523096462711774566981614930811704286300283416292746210236533194578723585448332402878429104465100254672921873945942197245052860131562443609636303070001503569001748772466693185608562511056653992534131066518505846917296936211043120570198695415285573207739933596234332189207964582663023784228646525334795110309969654270137865400996414304226605492941888717063807610813238256047063920926669536531225634450179705322289092449195748525112926363796270128486285794768673819639570919865322120228441677139085336388400210866434566791701187937081529334455848922865681891668565021019716638646078857492041931575850883195654686758278496663562624633488919209721295051100952239484098867988954141676817981013799649381983284653450065167484243488349908697809258500332505584620579943862039946916553609569588512524584008463462388057803852317321202709737702474207063711897073143619177305916267976868435853709127142889373068879068049780527148083736808516232375191686024492280812964931048311586826320133339139339426341725808274424429856538809766787084199465879624300484864389341149290016622326472340985917950157657665799505751337234261229438631033100498892335807962126989679610867019971106616772950269485213014083975501531888774531007423793197532329555051740184580327749392662048563162671092572988011499850718107740147573616900045221704963152311058364029375422370585586232990615882264389747921558565099876985773668922705044834515665116499579161109002340269493588447198637970539673136775766601164720009595277170043136402169876013884563800941962236979899417658418882600086199180076964117387906348015372856620188958832183184381914944784413261127345247845758726800773274026584850568878575177296300023164021564820916493506400638431987781107067507465459821747285303389863383340995747912763322208134489674381382022836637955891226707149452202982004002559585042623211637526953321936591852703661236654971255884918437054729800449865219495103362914102169574845518799901225379317805858487385215647889838889168935874058511000843505191891826724821654558860132014210777942425695857785102147302227028586604973086417484912480353004633955016862588670639903931492585445914087773314856427008539175557213771338488653367022696908055734657946739888318934526614792761395653023202053430487116972092741278485628475665384048289036289523521163685031101644345073243305975959543268823084579440970385074178537974762882693373225943888579499073706894242227051297105487267023385182059741255207389375231959574634046843575791051242467021628611037830195091967008524277218877090045969673291720665467175630895549330382056833671658670735374050563864699851299867700855327459660830577582645973707286193410778094626065285224047577620968936788643279744935820460376961531906292342287762230151373873793681551748685682601557842541797748197093464665089104283320098395714934792082956368800507041450955153881946740331874735536276317960260130126443429411254561592297219213854988471733519755834542127076554927648028570955678731979145176483653364340737192722837461937438803758946805844791000440609406749548164751942418843753676323934048084107649570478685642150388627166987173740805445913825222665312321395612134318620532211007817026344116702430858422421930998954997162837558546436257503999367927592441701203756781200805275414838785889255288328340773241786070580307438550898065541785368846178949266258893390886356113524710564485630557814381845372063355014505639584900602174128504166983795959145012542104389164449410305077560735802048385452960056096481971690464113031317471287463074030841639497605391700917949359863683758326983229938073325211904468886217540327175765307567748661804211966596184445851822406291893380092483002408270371845982708407388469417014077723198813885013167204758037690605750315637109986458948667021430950246885763521573347799379803279882895777592821689094574916356538871411291218424440865774311764935348821971073594908549224903636898632222254103364848867839671849611791782177780414572882321796853526551120499035724296766596504434507019877543956837238160888171039543278250614335351138660418353801489036229694231225813726916903417930608460463896072116234162819552945933390396932050910906700821588741185720613909728235375024652396951959123138904850886325123105651445432380667627887593408166552737250316301529732041086270774297770285457020631216429906530725671373914914687383193661327769984591015335103509465657265197804646219112610068373979151528550118006293939302278582721106729631969509517171713063404211415366709204317229331844549062645482752167459307411320429550411691519247083031829817166159734195267317118765187104891961047115009689834898850494764225230755942961811412854699711781591583328312981396058318704888779975929973647457102269568883279782899036466494872865449053203162731585799740512493971880569689003116042948798969476677969308185362705774344922935080660219652137508070798742259897979892700475338351935662982513880707563441076884531486966923315861008435588246937428934151516815951076878426375678121088522830807794841934759886486118407400640728348520394305362689385725199851450547449737397706000768655898480445860170588579351066355880253623273062206969854228103581270444714452995189651300503512427693897393887898935570094877682342707273692630290904837142208403225847783266209342337718821895913146698559793886557494881071201289413441915187005464565358235026987746546839847786813158309578868212001653623911071328702835763512459158011002365568480783017565309761918795110442899453219417440607579862566952822463051205044847218911233905698701787097329398768407126302791585977118147358083075638990957815209079986921469350091602682287339265361291611410264536702166326704687332288898972001691412979607918703702461451509945393658390480177691514775753685808781162837377039453398710544026072599450470073193756068334800043658397986897779054559580587733376488291462761031433784950435490091262625036919311230005940719540294598566627813756730758625640582867921637722901652654264713162402355071544418318092902512993632593473310471624062466663574215628017649422224454281066126390784715852919103553986341601259747808789048749484797421695096062995177265278592071033239416221490079511033191017512547484204315456207270408933367794318363297720949082081231980051460311790391964484777479859619392233315057939199566659851034824888591696024943768288848830295312461952139702275839045779176976543140749686950597331675799621202806941341317298754900192035890204096546835660557543986337193674499971038647989419121057936302507148949568192057567079007441086424570865271807962688597118890163543130256755614942583915418291156995451665606975377709332738725608614904529438729382805022156290119324926133011369356491638098780014146361298505829990553800887992928981752186105740956498187548551749239214710939435862937214481531668063112181665822452172705642990928317083887521271185148956145607364095469539925555828154827038159496021867871430667922541806381615250404584146973090369165623675906456525711340673857014395855185204924847364645034111927467874252342784198847843738610326720082700645609421978948280986198542620923911952403226285069199136144675089586415667833291173084535595856318448070722107109704533129502554742560111839143000928625976364801671582721306057302271223273109104243996959161530390702916048722817913650989779911197973924982339390836827183376812230428259864211956092817716929202483789551801422663639682866883741156619635059166701176012072332986984640090065764595736893624655162480645319332246182138668170397343199366315174893293293339837987383162346984884517954603904326201413518129350670602308138763339504760621118810581197338496707912146835503924332021758825861601841790080268241817896766750101427987235328301832398039135929818384425655725764072945186411705590252884998734003395056774407177853337218038413310933344505887795010044817694784508958236541150074464077998762895903192777191787729919997498841929355683753011755269710656111313297133695831595909261336492797607184786380959687388719986183386762426087265322200117535018480468533884109190810151109496595942529892345225513833552017066702684467953367503540548361505511323286815975649184270536800675228343776345601819711933677842265769305695626968851078198118837950801962117082414207785644130884377981922791796080977617243777953686478438587120210795899168412040826443057131519905129530079919468332311693734715285278906475294357514026307790584517541341687446636004151483414294217501720803917179358410598016492039704384358904540953160460003935622353742292631201247021142141045762010615788095100243699254329800445179238104086162886167720571558699369946396542877932166547720208873236532835020020264045311650305413598699966483650069971633501998580134157129690635020029320978997226814536412394231177880877617326290525541051199697785469315184267353863853390037869811407843803887079847734061410494270571710795553217875547660151461347108289653015585916206547789798863195149116857750078450770030978764647808587496051130393713217269365880587453608446682155270549629555301080791848614480676789157298927595765621569613888372329595003120446748601194230826017110606270501580050256197015941504541690541180297770140415461563492716955603445718486907125760654905206948875065586055528505382301056796526464791100485064040657729194867639100439974612917585288791334038861910965384782078239183965614642263371066391459960641199379224983536688987413566488335387305887699510029190159467978275201343959064822820676402735305730353623683282795342986934564086026849111387148085396581152471845753878230441277745423614985779997273118245217704298387127106882473664888689303557567630718644430947354739190418150876419897154426575444285715077763882681846281112157142090238970196849711148710558485735633284345353456603881628018826280979087155280709508409786090023506337764440614919473183843128359269113160712695826697835852289423563657374496155701020836527956091139015069686893557346436234831727927534574318271843165641720346321943797826452445187005654494801904585442310919480108576139493433872349101498579925664851995419266993150390831492246722150883480841721249067017239914638809600125627952435295320468168345794094131101563380159099334365449021522872040090421673896870147611205526854885101968208025606231974594136766731695864095796322890306443560677570862504680446614440360544220517204170793998712746507525466371241028843282706512336951248298700958962961713386059932543677574336929190395784298012851122443068113060089050397061368427247842017825330124556399021463142361888514427161496484751452322532543945934668108344141719253907484874862190652462446748121917997211443893130977379870622405422100534597549781370256910469314051097833416502759539395524323678071285611548548362567610768702463514784326585577165548617766798314864584121250665408101315201978919410957732262245763892456028866254209324480646828085457270964357080911517752656928047423173991881716826832817696313814120016191370572586467593077145945470106721145116361281194634565385239618655681986464660614336884805632469520178678555129598973075161645303990592205138397485724305852325284822583094233666330068256003282101620845804602646379114090536081285456370132461779858391034417846371950430849794795079251343478539327421585363033161008611753707287591570149592165834250876645437680790971559330978878662237607300978823322127785700784539647174485330455414637417169530374861739469978770667930174286922042790443953293393104943579072914775312662146047651876587683834289847728116595412164924630378811290459235835255483418844797026000602516384172577558171348585492721389513845381885757488093413003315399870360193106638889638972787061829868442517950505343163139554208788819378642054109314111386164293313315515987018717262934078504681516784358089728239918919598296019410860789770173157115875547301234106255615299690824853172615252436977293999497486287329327790645327220453031362537152206628954293925779894722261631377148631193339979688638257073811933399111647334014437162020964182758163029625244022057610352731002333014742767023003077016412065450691773769624141167122093102861003810736704213080165564538778847301387282209090993888563847600073826755910820070786344387857497630550523437017334948148701947152270687767382247481852507808882368570812596815006794071159754628989925248251477328635510530566541736814124115374204796702925742901323928197789504815369525771762380132422787042794787849651677890451459348072356890243259366125367677776225099083776836872595303181737014789298238563923619943372244123930228200900723787362053322774862124159000097939659384022105671438084381460066653412741932248695264357377956064345175385287402438508022504650022584655483197113460099680216470834305890948301104644155605767708728522272888818268478195446129897213394134409707021358028334036764199925579034040379203836817556048182415429140794617389837416463501132478678400827395518739230400822626296288335419987663086732912449271557432169103733709222503678961290949244090292897889621627830467911349602606820242933376889849779378748460365595165140194547317883997590327535900620429213663890568102317593229631694874758141674483346984121194864185582707052008804254110616618742380212596465986317597754051017148597323948265781721348214767596107579849777854447690929420308806348622339788876104944799844144744020529182222090421656087145961561480841543454640151422062501270350428661256360077199989290803161474040427790040775308677244549898817071629858301040232496145322894766373981195610624885058235840131133522299167187202005213364241329056351360625666745160871339499288912186592038039028120829501910194159137112937371448105384568199826943960250104811235227316868781164653670942387980456755898197544991098424039944271369343700734506116700910271352843932888553999490076056707776365403189927106127791698000682543441858657689607050389526442914873872405572475307151831095518550222512593057327719631844093392709531130279702191305535107299097518485459353151656520428560989215400257242290616385183387497095149950926714599741824217653457359439237467789262223565367383124535937834580817158474034869240439849352177677289071272068811210311165557680518322286937659471339464599561386392847958521108455393458849541376858439370864626005320667396633997896634203330174195654731750955948993470821169693322360223039656145301362925463418932097357334524605423051358090354744760401414401981233681628036862727015698483532622397760877858058102866020715758022728887702002081787051375388670591672308386813023384533368207674311062350523473309239711869549119020401712433239532751335486445749435531948196829864707306557090890229421111766776059431573765411943310828260032765423712667072336430595075476303203036485170920806719711087376189685287243551337407080278098484184309261342995950990547532843863251166111640268102687495522393674218139776142135134500088683488055386680036357774122355777305963721863989612173322673764254071526668869074370335352161695857065327473695076993571226128124498027263403902634530735040926107391475917790667923182033011014453445076958487660573198582583522780220017380395631027894751241235680231108488132659786717495945453997408072085646824090532945499184174177699247963486336275719532005256517493329866825467644779468603052763627463800800731482985582662706180796912761503900679169935872255611702468143755082642081694625810534209715230733171671283425988011026488741517086424915657243697869500615262541223123305945459170837012130680966049281433047335615019113792648135626504813047729628852911391536163423598650044679390545395912674055472207180112482683149107550963711797509936465520078718588632100973377287399616876690212196263911603857919872294895418304216537369327327694532582152709211931564212238927202349634899299700864702651748224747689165294878870893129080458931722492320140064839073553265592773715014358086404601853322230628291554830294086060075427076349860978896172525730437097131828767325178040242028858906294285908314599240606906450386154121969109332116519720314397357615320935850196453048226292562357634465857242383851942792819346866972380757755035989828647527917765298533082487296219593190676157479180364203620056266208544021403839515886196614013664686878641977412327676399774518070991794321763995272647458102609348603510291899069191496124608387861156165321970476945990992355101676814740882096563862500253828446353447305967887245266062383960126135067767624327248499999467111345432438175933099953623078216970752229081742348092329856623962630986280327433984451880559032147358593254770497282334685842953115600911672298475958625459681434869230242686111622488657859444508790757440484839383736303184815183604357518629784899496642465444974263370825291073784595464461692390565519910539362235536993975568046783278096050063810144364246250618324921109804968584706736966407510994640144075293484150086328919856154233981141991405792024349856873257873396889541160041444207734780510790470518992722454927352135937684023898653412199974258073992933839299463512214779128449306462976407077160108311944254104458580915642426620194588712223562968392248346129450388631926986747529136509697596312195756895412473420253181979291968753403844144887201020362861265713613933933861802200751588700907270248651196331444113038535601367969929044327093812171820580284239464128332857316338045373258716042350104344265719175830559477686459470614872619627029229268236400664687199141099844432025516115992207118537305724374152336187147726494757584857560011842076867300800843582084722498506739169889315202132731983228631607295941616717678311482510041448376163386406463908762410727751127246585745235598651019524835777985742148775301213007011707110964143007942345628699526019647063030562154906052017016749275798306556182305829331801828698862951375280049960784199024356303576550008341044678499596387243942193293728656522993919896815040927293681563802192441073324766962413023247225738801639324812476437330418407152881185199248142205591447891903003634346751880827636791256804926928298339435667235749100456692249898711904857144416554065797589789686380260547830321565191108648423362422922870779733311949115555487526226383340671190911741846801639297230813330378332845512270768188360968064603861601460645574181776479750552511632483696560862831920687707123053169819995700020967048953094678735600521568123645176402173729800279750895218480348146887751316553032470190899737817773106696310850936344752636297200349035263113636367583249833283605364314859213318983674403479745092214033890324002282850920151868689054397824726517243052294793569462585445038040931082253695664114990229157910412470290237469838367394524732649901506297922922100725846224573265995542215972705484317648072008506562661501900673660387828482215922007236016176719046206473488641259932747452715293485288500503015331349143032711070514480648495070914624982217084921328070156057462470155193898245680922051951207590281710459704658221364856392393903000893679031691074365471532850577980613987352210018540477246494883574349747054721194545367536231815051510733681578430628092493953151095543560144324145881070994670621011600494501090794738032277413135915098162502274005155577209760967849945398472919802598987475064941655426706560726441282028778642352826668366269022439514994264020331080304321821425565072178359951101302180658229956365577454656536869812908952034218608092370348235906076274446779063245556844032072263133315829975248112376798424064612973943695927127934220651361808105361020828302600567678279700235757173583216214699276732350727876286601051348193270571366791622865037466619961829968146253582763945779343879317242649564305360831007000535107173937776075457669570373525467353785680986584004914062859254755502490650143486160770177998156295269244427300757102563410530359795824294580327777994575363037519793449342443704520054337914924487243767050982471906040178583486218004030238397756914404500098398045966547530292738735892469079964288189400356682969841800534708435433419731122857855109304081647244077263913568869187225454055879768378957013295741644824132345635137172347447133225384127347584477503034955781236292491464246080545336654833972210420288032884399617951169011008147611296265605130378836661125322222726621470049721360918329448286334762316208240950636381812118995752667721233489415359198863613036510898942789644851394478269730203651440681609865845138439982010829669471465115755034184127014768148838234007713779770036341816226604925332388612624142274854429864111287369663785019486995177979168867631999006735740342243987294034450116765422013858662353574306052042352370720325894375141642437331658259331409871200411233344028078375638698789152762515746045949699005966108322292880130137256025232821231555754033315028776504709263337875379943701052556394054753114213698835740830310772576795562306277517266299559102622676560201245374989855527789930080071357797588570486325893562157924363755724320866344324941044354472241605558032608350110762517377003885317283597554148100396584160229284959668356093929540856204987038047805242179776213998556659302870887499481877691816821071211292456080907397175129166160460126172476375456089483416817774671433218326908874421015946585248062328565386715263099553644409683475418254369077392468282461820919843780346157860932827023302256570253198490722528586965135820300633049280242753012198304485412441424765716125414026258829538960912509160627699299545495025229859339835322992211453850211986098341643344860786855155945503583136925933755994974585472746173575239887603773001569772586029038329562638579675136246369176147911976239372499649005665612200676415297927318209944234267217798753138844061317575001384521629321213479558151854674112503532386001400491751789790064220712127805920207250820881470953703002053481097376860392969912372385840089608885119154092674650254326929835929714231956318000194905699850156316972014223934128036188120524164212508938785731496944235255854689729681024816358405994208448619627473217452730569908116638617442408028518309372025286522460349209549048713657878274334202057238679121415791124395133166282872507876572543149557808872483019494718597677816777869730383563798251730699045283417170296673437355905497444299938454687564020492765492003540952047404086072242827922779910030172757767557019095934644593559439773649405237204261983563375873628961006705997268693184258598343989340845462243471643998855805957619770885726566919426838313283211205676379101933042317074999719786300278368608646548450488714757724092704987906485745874237834287672428855115420433035793655872520866631417500531482990837898507655549057169764233914044539983023808130687345889309635106308840863161407944238956543804420756714244280105934544082599513980537501826917525449405858088879705645478297540871569237705234364077534174077301575138758887368371283991702275873564263728407541837338286578475864726958439549776237131697615958157508308549270944000043969249726276990843063053112074861345835190991862733916186915970272330308150760080472164744475929518641869616680833120284472799739823015132609644911082887498814986513576603824390800476307366966963249679898774898665056723853243100876712909891819847259558093113420194982683328403637981735676575058644224150599450101903735558921653267279786574695022448907167377237534632440995124007939168713733267782965175225263412673984853558266920464849081418752908629589325971720920140191904411726954557356087327142889025893174618409134853069458589939822249491761974521026171409064991442246842126598446588924356466666653683867396889298550359627683957250737092504108403179726875454872751341186113769664464302337698732641974286641466379916162500854581923162101304441179812802320674073329211942517128229194297623388654446608838503063109357653722868057477304539011020217206689044765478562079000323844828988141385382625186672843139815777937596537662848598563809340972170313523517011260993275355065750511352533375149148298952286313204430533966827066552043187324340724639518304875927274313249465974423739741659008060993534025091020323703285125872698272454189862583531462353947178530930032639299223629550030325553560071209056305432801255106870131220389254285753510177681568033241891819435659845500216337020424421982565350343971184493930923816535797837063090791737620048553494646439840512556409785579568484363512406960701269052577156905043080665395579975773386702391444279836688473801575246145236808273908525425159901740570570958185951304465315928964721714597796073724114058298792297062023874358165601227999937649651499893826163487931744046334369285894376274519097318348988944717367990384991297073335756500169806774825963413355879935977881004598609240446793454632707136261006687122782376887934949394813650819538646196090399985743407092153256934613242083257285515962318342865640661811225740183835949757222187091612296305626197245480285400737214347048935600355753613435738955663577127325637004925160296562586455719297416057463661240275715492997098177113478162499915438223102158754964810727975574271869364026112587107498037824780894347254739359592270802016815011635996715302575955295068371771326686165987388425251399357799809426484918279687347578856005683873899194758994772103099700469437813304806184588581541590311030523626690195911737255097564171849320870208403331911315578718673775416864235844325855019153762241636572875573714607245489627086913588747462118537522092224375315098695449826323008119563326466198841697506705988212261344452069555967296226574103750881725379348192539503930286815398162081540998121977285405226305023408057590790435229397847416649704471808103030987845504447293402213150979497595630443141395145600106024132609553358015736113605514430617602713662557621179730203253013147766429912419284815547748596532080328149838059986874352163420703999403251683967821390847797323843413143481658725330429752493661171121547709171674905842872450185706463689467334985862164792947091900093511329178835324357706711663033383464609004644962511859190100834485825828775631188925436528963095925398650223152092137581911994650452017543539723869695228288943246112285409813773442733091339354328767983908639984571866801293028982580400343416789960595137802055017141492993017555501150697646660881936090198405202291259083454439781249521998718992694507152491521383957882434228645125321703218070567292558533668612220107179595058587230590087727509868841776043689024906062568526670560717555581452693070105211070746682109178296795726675784392998972633661033578788075963608723579014818542514572371159569450532189581294481899461277215907290449405781902275592822856764297131842261989745424430660403027427834232921774597459109987472735475285738875826627429366244282598549846414121801460695517308881020600311776823742404272556359061192330150756759888990006673668024441442011397301723196397251930912386726949395283595637439884642870922210781521994439270122668529421463047279735927361800557155710258070210280707378558441329645431426017178133397117368851271583699177214737105883739931815999138749336450512577513754184117033455458744407260429264037482202456699358863704962088327554438921784929664917918950253048428891836250165244920145906538451634618512656208756161760674239027760371107172482788367129952047719364982819657129492950631077562186014496910965732617673022448853512517021271185749253758294183558951220986072572043398455129615865847297368979078982506370792269493644714316532516361817675457981986240429733250944486016588329205019273063781009374348015005896138363327482401948604100605007372649677847526753357922014269804273250552864549846565212488869538274590586081093464389631310964577939848572561219784354169283606239818164910942441487236014028478976677417093187599223690621774843552841202458043804154001098797061279528958457087140006813571442155939018890172518675086769182546373694640587116668688282250391878701298534715868308277714871849556629739974886322841945454473922780657549439384822225433143118446309396875361913937273006952764765670038276075428057386384849015415534430942486057802348195672516934390031352134165363976770711360283598012267897552816203288449788789121001150476604872144538465335116422312345768525988061939195001489403584272761455034671462291498995550197468251395509211431915659958629375506753635533204481709516608195374753139952184669435945119214658411534307686082593675211845778576682437737890251512164501338455492408241620861772642055338260758999576254835220397591070052142545054059788402277705567194444758230094334729935115835684206566023639465726637828108440000708496830356674814291611785114151427899416268276122206662584203336014685769702404731555690874908093783923213253094474964875666270965031280877856894967367374086332432125282055108922449415041206830062792255859008976784617839737659005186976031298554238156980642498009042407974899734448720246174577743815002136521260288132549253582609570567746190822860789826836189217186333834898448263374723311866067902905194782222860725774846180913535581948709040872298177092730143950224593221107954812099375817874132893473585765921636530686288032730073185588395073182813813229062130405826930315589419520924546692598786270217432994582561364616947690167051980515268017845988839672558592954559698083797298559050839893450501672690812430541327737576302446925019249468159153777353398538431824788989727597009931769251774925598119696739293193582657230879146144474409589444496614334675606587049193252540766142508546181098928985823849356206570490965491186770750495636626519824044246582075950301581995182489968351930918478321969082740973062482468510712902532461967077845616071626959038833838885542476759537646860903177747487191047738662983180821274963802091902975348781693613845227502684857834757169122082973009515925260387988041694249341910589616612753856114389829699601250810331183741575216050680833818136017098151970216042774963691555851287951682774876920343569372590787091428009305180075109403502383508863963840524265854006207970771187311746655371831229730953992565613083248364481261113757070983004728691888868255029395388376755541597493691073231814079897534290137770028582784833354771382040460651422310239801285697411313427333331586885515529076958397822119700222792428757569837902350156963115502779247244168988790293244107345409383126455902296457125235253911780919541661897972147896176071351911305760827004509153637209838973321852538829861513967297957762770201118847422567582845886261329651714409760060593666407799807532314711312970889639406646267538487060785801199563716244753979787484636991210133482133633397534700543305431257850191095561787065016329066347935397682748831440792792475428995992169393878838025738911354371393970695384502041753148399930164394644457373291517182361279404499820849103385163825170698250845660406138245678538814611695392798466236247258431686477836995036583203814344901583901191182728581768303898419224176341139646479700280776784725242223198405552309813442504047430416813363054298861858403933748238658830479796039076415172386747735857120895101806738987805042505813796025083072728851811483547168869440062023352835695874358963832126480896533069172228961809274058605283414444986193169795702991121289257405283107964657547246521584386073613679896116540990323026137124202839793934145275265029337171179779940237587753097632978305234527365120912641438941621496215734231459897575166584136897145416634242036813128467435652642434288024219287646707684388747251470739943428948390544314196030759235443607192213618583912113767265062804981076215910179968447096782912441827535406128470983608462093815979664973139863795435487198689950408250503266178053320721049499047389486365224596203375512764977631971318975676515656115698379749976761629735089722060206095885412611930160507017876973741783568255174489886272775961352524772237451428799629296206496198366984542862862400488828328876237712727830344619094101225452648138290684931139536795378929522146674390692966368376382525165572329157973622730753363579858810924658166454383520204822954761111581338071819050120426642881795086308833778198476143540032898920292322345051978163196193148383342220020657961994567520581930571541493902018338772348866947177411712509251984517954730667119764669468652911833186903581774876589128019037203107018064559347405160063059466788238149758890998418705869257836748367194831278431630286636703105586751935099570158069276492235723130514970929898520615315734769871730064634876216727643736831352555024409096997894990863098903029003529642885931729345849341531302174571887717396516935177995286263145017084499767505841942949830334090641671108203137294488893926380653138645459846418013532559033774114838939109916659114801625581336723603748628433419646627941328013498445801519660531177373910754943350939767927483944638448052758417918077576545091552173303119974854603752239194110993183782816132231872742757656181316551285516666483391138198323809157526828341062875114806643452715050661724425883586194284308279000715342615982868561769797071223213697303743129822496881619690619961291453235784067553150716828383384799240196905351717524400980751318259461338926670825222970707482436024373032018764558547079753560883513477077876874371906243666962412818683225163637533440418626209101865980096309023958920890963331167510844513929170475871533751214805966980945563313122256955024885174945818443666822426173313804385904366280831192762889530171656938539080809767639178090110874658994367929255807666746772503509124715555712820221464167068707583578474327432235277600610624794769471556729139473055610267853376162379260000454067309950235368832645580557655390114051829867471166972751784025932556160787413055816324873604836820397095161060140236875809426190846197913556587569569261366716744257564318697709229256390514892035531606827868234560169262873186493702706414150848745580210384570335460232960147247926170747983149783586108458133522606658071675661317291193246042732154302250431376602301056797005441035889434247738644170704377772389653207513755343753988073276141712765933262654288724009880551658597111500458290138265946495725292926890370084033709980546370132398761038073531731276673717084753933674076782523632816145734017725685735787007955447841119756202440565780871430775783504221972552507181815309956620025827841670947496360982357938902324140239561908818173782041333313567528816428540739809039640646419063744916069139252156783560295653757029783215852162144263461518594706971732884655572437381661875898429723271081225533118746030131126708158121631674727974291531088469728000734744713977727889221720462300875752362638174449810698548564459513923383741873824224974461777488587506980527775687435277019120436177061477180668296641836002938361666221647627135480272595582024542202610124289665223557091820863584426878855392719434634494468431142648889987082388588498539031653634273647264515705228066804068890362048950711865023685192369194017774260412913642814888729959427714639271029139247404292147783902501588761227127122414654453369741126280643682178685122924534917406169279813631284680620011415546848472807644643901356182341704990745943253911659809687838416439860586978017813313110361493480527599787827959434526485889397913580857945843345844434865774454071510013897080107852756325357594158406255511478338824475719371042155148984544285568713853950273217926048157961082708557579918482533491036154476095581879588784756252018069856240656235121368081892328491707180066450094252366067288708556354493973698022132755553527075009312903603278535295380483953513258845098737306321015039295145863543453202247108066645404297401348523784117523430869541111319842384364691868572042820678844648641944939119175262007431115630344250642404636057906125527030777836492087484466845277911772574202555937961029733170554907235468795266798568586867525878713060205399987518545409002218743420755478085640949778625560186233201427430548624922540688770154725959681280337552108339158386728289017256976259828024310289358009347831258898546300985122325630428023722249157534810258337928081228600184349360491550308064864855710335000062460935427579766750002956435518506826904687038915823195699049547512015299024920544753729689895082906057213472144023535015518136740604504566383647484865255602512635890711372959668041644233488376728814283944780635291875487006904128395448584491118623168064484481435396975201920661926132697788145279084524141802553063599691071692164695409273407651983560627984285448338832832774282373607156112699084355302613638411987665008486320596946727820348860297075864125112379251347811970826001600225730376412424882022911689449878299496258425617851496151991241907599133297676410523085646318583928852828349882421860366204548170063030156862450557820642014573428997349666970254009146388629259090454415941233544167512154113173252860430694935792900262485786125154373759388521936131594146058970526869091296621550042119684293619435987559783265261048988506491007419770207334003056673790878313328602936544823091433908253943726143936348459091301204161458235305438246916039193190902656733276045766783145644890321968584612212125358826218679102381480725541508476623720560318055458671303924061927729729019622613174318240199756867835982260379030322991294135347805795739741312968885629799794668716620930306083869680949896470937273996053383636705586913745803911987804037773818012787110373299109432091403465981131567301572418672723037529159968253038962354363825772220690014530487395376568779315796012167374495120851442692692914853341511202408201677999854908462186481506182700100468658199213383016180955272152906548973479582937270830663109843782231270118158174888478457426901051668789377354157726871436221738127438315343752110209413312322321766149294703449816185661275920291981589160410112604422020590028545455650291941461823443759735075187564755117039451761530517393817964701133173451688612254891562496569991437083418641315888784028373033016743473358646903459961827197528127971763942973360666751893752650481609154129703070557783245924824350724903943719558172125076279344543956929763376287037506061390163407679082911814238147828495680701505668165021670838757890797500369516046915598566135699522762507260104822794681825303386208315691629649478547536200494951254136547105440857023199357154289540078764798865285378656626881036743510370765038652788176492837452855582139444305058158877435613643043389358417649056316400327302034464588329382840211542852994596416577954396731838524729410786915402471813982766377375838576877708161756991537799062015045371008080511168987905505384005899962762729428827360189747865465028255936104982076713447950467326171599292351384705620951668419753792101747753403513398173625103169844578835262884706942199711056729349148705535067450692955947451215643200153246182166374760169189405823067769482138276888810794701116863826410740403663738919385059467683035206767196395735894980958187493306773924851729547880776616921382958574854876318557670784484705999863363091842627151985982829232246123610080306351503604140977847496924794479001498608012856325618338005681735798832256614177552394681109166788174085078657682684370415467591947703169986010429030603197015901192076303211580000019597591033168208741854869436929412508637816999313704028732306136934503137396334628761331051705731657490337944673877492833318877297323129176944806209628229701029496480298835878519926551961525852106873251848688173414446856096289157957128647355605707777950063362743610424675488490958938637034246509147290410028902561456354352805643274566017786062168456973745075619655613655501530963624031228187718336903698578858285159609419614831937964210248376618774720660978914230459657572579770834297786995303730865063471871705382699906826341578493889484762352266133647857218259862078104378370844814880784554837039294697334069466369072269732935521153331921769555926468461794477004918185470995044629024919097320077250086015383278235560032705540700736416249580290167151662743161580092266645494318224432129617636048698768328520159495769151950589614062096178701474020675413192174149812353957254606176069204883381686324099379655415267091097913544900772157313032527578491288027992670099142615516287400788450811438126108094220033707636776844657219030284313740256872794580915023939414819774025853250870622553711088373095456022910558283621200675906468390406704056527381288071928184959153259207729299656707052551040209462704495134735855413909296897970453354622648751645239995157279040010484741044681133413227588565936225752304242622046254590040270854342887533839750132085507711340511992586232170151459180132725684986123470174928137257870030360813742965852073702154400665089367949581585914967914658356676768568271122856626855426751030775247261375849495986738908941085907713073328543574937183736054488802732969398762665522079837246637063409404797755302254099621813120151901262365434672956230531225579985360036366477812191653435303216481188107115978941475142872615370317881179527423199725459092027479576201678680547594548181557781542327202032525277814874480175649531906083712304989753420910184616216762059601474249650261665521166429833109485794642904445660451493061444754048594935459835781753000517182224428182604607941398101663601184335827773384663493651884873198732731666242431005172648689226550288024299842934171013491808034514452410971019654103591782104254247033350097823636826936716848593302638890224000294681178077628612803462525037070373663757215200843539006079720570798966193701641904741104659372327101219091222576551447271065940175047583225382817893140393946889318405142952523084989250411480239175609802072263420477074023740200238488857925343484585003546091872896900267676851264995757880876280766730079104394791547412132811760052341222590970626926454921002860340894455945472711596409593093416165986135259930099458673683652346641617046263301566292009761624588665592385618903097899071755111095186062217215396252390343717263173210184983272098342742875695295004806979567150945278318622549940631207142373541474053382518246960351521567822732200869127477357545780923002078323882382292281078584801056930785353585954118330439872207529986985363491943502993857442022655875547187785236930691972646735456908830744982583997276163114788737978730983140359159211726603767316985263310858040615754403530757790070803222697221580361916738647794125157071041023745418729127754852236993306216861111333449973809781797994416348118395883459180433986443696820643740893332234303697389409352516964857896931896844208663379999036511969159804300435843159226718722622950401783510655821329938582840220486886118324170206012546955218399838007897964129797461736783245449947725568495926756473408223033274078861558399331506799550098515094051699772792511245972606099472995422567438656497783719752594645090372090478972336086174741889764638172628229737567462316603709196363236536924490299712097853067666778223856881493384340879223345738093611186684911703924620884786582488944709565533459963437063257742057316978198038327165453179163769638332365247720800897045851209236833917085732491716861523021426862234043122498238954338965648959342709542951960177071137514700476926723939412659370564847937441810120941005310355659094252934076962107892643207315345785335763056872422825325500451322296065785769240571433613761992461693680062455074011219423873815417603545210050299212036402619892685757249457077927613850935489400009556043895349895542604817410837025493550755288677390339675798396068374074688814101246515968213454343528550573052723474247382823086046225147224017468081997178752470839595544774864453889593522520304173294221052913942305008542573272450007413086823024357180055913301606447761671157018150599428655248142704856147243802882018077006763425579831066522584167766849771145073185258499408856858717416633847647877992741531542669688091037047273176036036328196152260743322849452274612269000427744320530466829025630645751949686719895750506108380528351883552403608001158113078348307693253308371090654898953629465750000867068611648059524781733939130713527447226614466266836736442714523191949476141775116831913275309634526191582788575777162877414206956377731276224118137865608905743754976531589676195121672987828472885788033752744059203687199401012734534306644452410339271026480649029474041455533638987995844852795572369308527365508277703976952130732948160577537395972818755964195129062672622435974631461003922210027280092459715148656581522191213376535585371096284924699619045079897958551545865648592232700019053600758418421084090536880415001581674032676368539376565860746517233187906631873668112672722288116826517351602472329994693857879757687947799736525057064904055534987234430903231518054476470318747344387852048823253766660700950647642598321806647738592812584163436497047314708670111935041265293042383927574806397024576751214768176701855733797014168289052304450499884862420103566403857124420491991186278324932820312500322477142895809044600113926219295838804491935345676796846915071842753820723288375592125600707564495022373982143775958803115978457739930958132057223221032967074055639626009749764464595612845266900244986875497343971312657094373711465614121401786833586691920560739523226932891556809335319844994932188936348026457663387669052818656300715717409525227334566031080031876125279431680333897742365253805790142586367141617149332867310235595976278698379083719872527792440491473950241839716846391609125349987587835765666100140379519300512708317054910182181001907897712315204355929548522050603551053483872760656962164499406415156615381841942432649269398757549649900042318212588783979734708100756546421634978075713663331980958203610280780849369117548945558770563664699277529165889007261830156515896946639305894065669181340601636006202347230327387522648846493804665856582194635102566851987250960032130180285856947763829001735751430303441435937392879290835132908973142184149649075618455391219637940665134522602685198898214329396512799505956114286659951054918504010530599856119791059244900205061038453281386867579157869866419628168214727078436942702926272985148656163477576844222431255816479780355790397071857404122681932121180085468497334947477124192290864613971786478200387078628924289138334776479494428983266410759138071050722800443054064960490696502957946209615491435947223034330785832723152904066195251972400185194981200078781637920009146003637933015552150587693229114891459286787672068547555519549227039260010996306075145245336750358679253754842385476870670585224788157393372336095299223011680524297971441702089519287304611531157100396181460587375226855302154427917023154106469356984682725580422864347241081805971199945247325774232374690207204900246759130530685716412164945570960852362316465095142284092976134159819533553023706963780510967441928746278606240509437428880531438660907752167045564840848637786964670489408027917927826466744280603367015697172541834574512698740693969071140293137094972354965088239646575742344884582293097544059263536496289214954306573463199648030102556319087316020778716223323763607070187711438573378101994210931323872814161469429019383749738065226990379227139564206184534919448852445426917075758008224492790835677128865419589107830676944582065135626371470793701928401834430508601339776551274602394137342029284478159146124491005142038717721685406139526536658737403571326768173362999821231673673747905163501364968634942846494285865846535062136458096223497472522266906536019721795302286027751162632198556045673433066334129428517359239214438565195435253156125632001909475436009273816419442029325133370453944818756285888498914783228265512077964474262145710610631798885007460361040272985270158192308877764175115963365500868509564189416858593424177832905656349556318583735120363308675320159923297930987824342603582633903537010823858697446812094094761158424528836993770557266133597333801259406518757071535601270870848097434370032567426369097023181630412778814758028005793453333997625741343327082688051798383845356148262094679141304715046674539289702277581761589964697689501570736805195865375509546568945334756567404790201255269325223038285266544006981793160401424127344561226104453322111083926874312512112539540374127604546345265319360036969045746385534343977067431414527609814483786332089400320097143653929295640278764317443210482510043386687537103907020531480623077657889237440846543873258687525409039133579645703094498089551459844569944537309351506860668767419193314125816241655848858109057798374831750965318729474921239644648396907920140212685368259550368655414902268106479547900335827376612589839240163969625043639703581499570412209984501256587480176883100543207604273683589135054374663298406227043478671077316116184906557966419557253525850798999810575207877654010524175471042184482702793276738392036479168621605909373155012810548931251178008770815039671031947790171044164929878269316398711022726813024247510050577104568183765825474131915478985231408640109786545569597803022633717645782821491973879908285710864995465198977236265550758437098071023897925699285583635688784993839299900576798486581465129430713700599754600756773233824937208491691875805044312252714371166621139018127627379105032407485284246327705051591284605600017610413055396668641866348495710120867943115928991723346109042624835259388100094117163342855974076271578254507044054631594568754437382956445014951101173231739485763495879743365386851295421527003549198761912649032116314458152958302776876081736211674116559001345643494029935962194586819158174787178170272575609185017241466817340125210971596353886864165872555434619527387381512839182180871560563067108678290188450394243524704026087767092483456827988572042397058412369441031935514565151398349417749875163436556338180506367615344205142195148503049399125628552503756567525543455637945217430876241073242178059931306449301518859765919106473090206181472551895906336288849761261643263144306138768130835574132655933904820074954481930012660516234947461431700154924866619841702761295478188101595556757693281019563640009624341542427383164961096006351161792304613787971211517496386568589744897091098192860545942845147157272771035291890922211546198824787736071807077693580529268956080628077776369531869730698905102627511065279723598720590151827958350818658761698514421584554288850120083930432373372830979621678136682748512310822928759709393654906974453352904173630523375513114847355337907268208651413523210794646685620168827594216755209256059759342957897810112496565814902559734205915166449245671171416990080511371708507585247548792595101393959568152983548553136998098916212632897639304053574684107217653799425989979435308234465172132024105159536699120617368302722237209550790246777153028664965490492237358897202125415241966700150944991244407528513314281534005037534801734532370140503610275992095791059523307854646627483375056561416176652563141145386871547762677073003376821656073649361178346998560362237123019992825773765006449155655806643962035492426265464987295932398759722168367859596074719928455543568887834481840968395813533814454680176305679804595339486442465886638741218076918403367930839335883646857861426241658282086244973107417014346788951041765600403637300010141941000602237153944307963352486461959220084025314066449405477209009820713158525770715929044040992941325956547759540735122589559712147333509759046457425445686935605643756799967115680604914161851684152311380208132047501038483293338234829036415143843724348923616624782868296509542118763073563163187473022071056085354576315923964167198005551709349910413214769661319068662626298242349394935558292660801297159105157499524513614711610842662372804437211006446914598393136782908694973575180649465108535752871833085505364701647932425485946179622359585228286628437729565608020318133379243640040543307185247881674794936508860328248747375434097319804753660643758695808673971705303969488966861235871134673120747253808856252217654318514957532598111192142461577279245863330674068227831401440240944442231598937134689333975219408001778871362173633634652036578477446062076354923638663391504819109541792810362675052694043048145002804308110561436502965073819694289274588003858521598106054701073571807484851232423467496210828162068653393103185954008603122160885332238211376073196832449720556980473665871664111994707892823793347447494704303653612625687655934052648806075090143315674720145810021685167439646598457937860987175919754653922861477700684714680326733811498363532999672668933230906622911435923701262438106875735747326068742816124800343526530639687302084610348109684726069149998453669024617959705973645886239125799236820975027309487441722457132136543785269127447512226147403379753537721695489801979825030077896646969670383136188815496833372173820671072753684792536160259277614707197208089588664220290651677168341694137700754691479072479267842963455246367249013546365519362149483589878893692700246498689676060050649772708628311890129869320587272901099519967684958779597721553149753075857440143655675284331833359373069465504450937586486674451020167406137978621486370469399817623281010919857964918772395555171841970893703799527846956799394067654723382484482984840328383836724856386353350940168656568043451909769519452996399986595710261080789200309419459506711799260481273143944456129019340383393676001277194960323741153750206965865297598691825651334728099055142745497488324182441757398651094945718366080626451802539066568650805778052205038382756304430944925793977160633025171109297842352138722436249052096617735493996559140710357450839936656066988133937404284478697269296975837253203505394137241358981293160921999991415190958339488290306485823589062607913945945824779766119029312298136159699660890875657074677918806089376911426416599068893806823828503759138739995043792550130405594817858488739482930748519367836689087652899563197388935709664128722059121429587330024756755372316367072932491591122877934972595135816777556669410060479425053806085141168258163741067735735607135427452667977511880037226726127719852359923942628423548356425800636214284347829988111485957243321894218086555530530656055955331565238847936437928719770859044293248358881449642000489997796421876092261612666584393637802581034581237023295098570634673308269428952709292521576307509979510339001445000011198419086631123643860461347681954280550114178825145573481377705586003810719804519065728311308117582508061852393185145256781787963772514145260799354933615649401903440059489248712625974038844344705898071429722902161160794379722663548249238138593789003502040641936219078182107084590000455333722726044213138834132305833072262567014489339050218792454351427488960191754997578385042587365202310491264068992846304075349418439235817220929435788603553373704714801201365399708180169160723648482898622099833724937913130340534785490004248295159136569892425138173269829395139898202951969582807259765132298658655604426433836353991077683200808036783631562109752243912611394680821874884647587094271799966932206141003939863208401034383340193572280265004313040690649620647987698538333461438305778617461660606918609312548510944979578448973573709541898530843713294216768144157655541360988828428596220274745478659109854806771281392740705810826518290094570141716302756666023580772792255502560705322863243157749805489279499750363017604942439646283418537090597057699868208684637784180674127549062523361852586489745206500976967115128685809920267755996232355717823511208478282018748179546867461109376538302299766123248740331047314927380243187597499250796218769797442622020580165162698421555829211545100176866955251349793636081447213501315534447874383482631181768694627450698749796174545338888965338117818594972188801787019323179008662929541041304006699396096076547834221196157668431084630236661689208579860647922115400663723122813914758157227478547310502198234505474641538466177032513370143127057545448399935339604701852330374045693167763452724365278993850507316779513584602285977864863919580875856855841482052892015990836666314976711157453039502824736808400599669748648201749637025535814351988555231422732646840946687968971928756867009204409231008532040821165994749472058073388724037008577621301693119360646685899145789903692377379741883212432271361240505115806127676518387417755685245169586596800362161777841655714379519835797951048957846115189525757632288553284637329534918864433425678938480419583074908391596502678260819759283977646468486598484290192344255656601609580599752698604699147668103668546454745190490228894242451172759959443973095912837786828563173042916543230545050831409054358159982474980848720090496928476343745516539170560253769794287456562037411578663180154653837006410612616660375380375277390995837898333487807285112315237117046022682025903502275840091857740276911697481112856693583277287705694861821227755175071502592571373026778421121693074872037079499293490335192432789278227861635285061516555878011740332534166592047201126380045063784638571946994547730836981068575042282552838990772211462165536449691049558664260024314872634462780363283928091529625121078743964824775677969454900601764811257938571996212602040895527806567993665913728595953478081545483192695527767120929269880530738930776779392651375998886482826693517565964450108062638387471294601780330557960977294727735972690255332384155713426384086831835058624865289584019844339452955004350065890720458528237519243074734563033036001652086064270384677681545146831404203080246720409631885916616621216127081563870922127526487627455292457312751241462508602747171807657951484451015227058946411121886711870565181134960864800031139492960838240078649500703074385701677122374750757600396921958725270493047595285554016973042153704942297914340603926465945747777743874717141877295561223795946078879383235706843514013083080165120935682184065246788738970693685949019019982010498962542471593016210501962979953930281301818077012960055666393356986138372818595677432261414287016636300256362720661823442714221535312043564568758054002309314613964063840046686528870214187277055611622263159442235820146150525996386275413666842973300357456324750937557679135574766318137540746833936681747602231659509133226043106956621328221925079600089732733737479559556117550918192653689902815151236144282700983051898925301562696054198647040109783958277443667772770799470019959364256504292319798749651744826964646507643434695775029850816699721442004573672726881834304358772227105043866185713452366347083893210169007485989835788572727819924301566663238578563924596393419968167321693861950413565237618620792108298993749042475832777851436889219715850160218405277480278566452229386633100093359581104854559354564686762108033245198050742017430907551740501922237678081150131531981883083203950763226750653041033222584420113777482800965902735424473160998568838496402536866608233380155570227132179000533572904290988431907319588874781166319853302279168657169546200083428039133660536399693796529899837286206419372314853828004264263081375316027439390253942521160820907178112045968459094142807066605702498348008760170873789133635672334824403228169276024560283872910029868116137920075542371097940734613432292108346323905587898954182020080426232249256345489378152769484192544860475136694351879032873824982381329045463658503110943576750240746894770030791531820265868054733771013365448730782916659569247698333758797799656057505660971710157684837825513223762779061684120518054166920020803323969453164781340295832335234492665721164411393746675864554286782082917597113668686535316835851575322304758162402780705257434631171410043317963971434255742153761586193686916446207558274844367473456851115689919169211045854933528447455330927803631107008584679388347388168227523972358426418458409884104564200568651921439859292259467950550011601657998439537383346014371036489370482109749809506585166274927609944910193491996057138414817688978712257897211924883392727338740483633286710860078778810295397753655613833831321939725713108471790907751666196915477970936345201620257067246078229869670355462571225305032908866832605414024344920526284944860828338680591536849702374540016372559524081404574915862856565731041668435909009000043392590429161198300749040205128956429758802062324253271595105912080707341620844477120044810178285486938358612140628719693930876939314968055176342584677302193019796136189126216638712429933177972607433917039293233684496904165190460184549051142150455035283571587934428843375493006077164141079215330345256205321674416023234117624595414373572005274126444770650936199791831077332888605437230603958908792397609484921581188469302737844275113420872483452298528272573900052624149693436412123656556300080325562409819723717136105675965992987388801011758442626961637588925439964931501217225633821505635524001198753830159928271942166631438048827565433324882502545474478870280656564392887962327594083251668215064447399452777628036059084763990653483358824379820261360133734433151614348356654663828050108147420572886915469577772582603961352816386780048952419521209718810976406108542863188133582757597695485164841870998657242855748324769706965930514901845534526774487450916900552741880374536484143152483872262625210907419970809035096984078532831879026109900788937335505895710634588219085285231495091971278103734420783337688055261014868891782244926090002846178505724827143156686182700787284486043411999184940359849410189272732010404857005598663582731494933310058044831269302173168396262920866504748104205033328128003592160608897395723495288937772872511532681587445323970616965251927413831156343730876898143005426271356969108775676695416850237508329628045294770410583548468944894130922335043420288302542927777066007803724995512515926324520572414662112133112853115045289492721952094374634769726230067652586500853982524600937305165113450993078445114727432215145425974181736262364362303411838978131666444619087599717049695899431173979480457147578982669866118368830650610421815484272298304825769080782483065464741482561700612621880368670177400729535832840780616990804622043685206412472892663824500541731911327652209148663645370272972654275905333087373049951117128676716829232784376851570550526091892248630659070998844815802203130241778333369491285155855774813488218123512577107675162144733824388812799167492345362427969015156200620900022389890750765641101904752851778596193088956529762601077766530062639695801990866233646285203916892278442811102564388124124973506944702357682791041553090680262420277817296564505473290984411721470582706527469219369979712390941627044280677944924727915858121912343881483208983675736434171032345789434278522684168571507539590655448239022191625666097715725780985831185786966969294702454797952797887555452684147193242409915363430895920187315864365196632707388984698490025294707539486364412616291881711060729958154588803191413737351278431988086666992888527597180512999838062128810756498517275303582652020810378660537450737124925028382238540511823777606270864304316058273654945641251261409948524937835785962208217826410685105125210280705332476820603530126409715040134987372283359104955967536853976341543154410421816163464959513198090646372052834786001497352193668502938947304615760019932603369864783489497115330852326264292462181709349034342031622211110525965056177555232339888627639416895363832078178723837875852641630085989998182151530583122413101382764785256379127505911246739162358278203118145253016430998117493483773393434282816753489041632445447162754219063710473832350458652821600258367971477598514465190609505331964285084042032384081641329329689008328791155896857712313514069868111168093393188260842815363520084275393189251442931396763025795842231468645553118824983545127672486399446319822735036167282086464321787532883213440443179270920322390756816620179269295455093847411073266931372296247152643046843318988763840338472610678976103143897958493627901311478487372684544483411022947369224113858341590742924163097410338859519101202397215344876225466778809355435986348263511282403599058968456041783068491751277032604882521661261063452372343340400338780001989645552235666251899476721635507325948163204405267271134547218467752504051056651405198991616803011943182742834764428068580849154067227665104195147860185621121685439583847264195036351656002616993106611918518396839793915094518252638488042187041529504336438974909661674517048007875321351825613217098541234886587846498796383674181523052951158419878792053431841701735171375422404491484050116379097270489802234150251118646990398770121022234397338550899532342394278940592761685947790392955910601807275213149350373212416428685581832835625084400520317900146658828955661005142108618647393673823636892039800608542053661100201434459644507636474395215810559056918056733584032457478560998635976783274600609351992880348446163140374568359786712688896388227115051801504331673327409848441295837476969164690721324494372227993503188616226202417629050496059919773372036655396002652452887975087202808851259790818200210431901808665358175623952590846883355236530613962785119868985305604125247501089934735878682406165523357439179405159721364748002559105079048365559816538756174114694351108458376143834075759645001893241765196158897969725039331044556125392659852894650041716896672404664940322147301494249755861001770404523168571925604065236652204888860671645066108431873088746811139403894064739566609599355156402021690224831437168052371952740877876126325946927581999069858739526235248657203806706142793435035039218081146680573709897717415060465194723953873321230566718388186177457027737879372465124590858746200377057651740276352294091096917286679945079463270217201483241630538390689478129859548432956247606430969397780687599694765935154296369963074679842629028684651060489808216456727880547138058755381862900653020443294219225087515658447302559628492340900992184621414747872212067992483575632866169881455548791594894554403226302270255794901508693325421146434965884658718759223774745445398382540990282479803151799542835169310678649988625295677415414552690910947766021335552102998167310309047789989351304346015769638136547129883752289968957441793555529173752747075103382675272083746806684185543582030418843221357569597801787467529545942981319615572475359306475416222092683213143962681041496209348227742036379132043921264257647033863489065056843374008840593879386295541490358076158614879376612967485138595894212474036561119038069564902966224563840721854306848602003547968666212959261983425330538719042246612052749465405396584113633693650625325335009087227043106770515044905123617710049996796116840915567541524339071267695227585749721167755114407767118214533491994263171353999375047935682718620028884722859042048178745849590723957902006746863018337002644909973365975975014840658975588404700151533307028982579331251864890588175462212345935857958485396133832054414638984432884028639524340677850281153282846105583216686855072919589768583505670419154544073740912565200578279495350056762891473816315524949156385502890301817316255596034570277560739818595123437280615597648360765366134067224813965801847512381983541234056461655739609074706632901789879171712314683908328171632400227949441168936135285647134541505824366404266946195457216491385933714257712143865207292862388728997997680921987435957116231208315213141500006309264068332047362282947913268116221361957378042510182719046744242187586620265260827221754303327839701532965300734134180487941989494453035240395870315386258947119913642238536600831413746698822227372030820415664809856966208201651193779071827920961983004551881480776389559132781613998649538179989404415795416507993879301356016336414356973688776589096457571244137966382090076501862800713811615391035123027555310510360185652004370325593247154900769204170554066279570904897425644418728742385137007328538693193779749797692933553031124802228381629023788360877746869108516889857417707490728812524917704949774066963518374956749122199535689772476777372198112717246561072226038012230245146724037470758308099253601040911792663014182916999427260219459680476540183431932714298430214924719514578782325958838886479392587958381042635860564265354368991219054444727798502226808707205705969135168957542788560701761884382804440613149821941988967196988943812744965675688196730546182184643524982954763143934129319017245495941647459926828621027617099706566269746895582603862517104708014134565222567681918566684612785816208205529541098946386474409488495933897299005203052509136298000880538606106268879636254275969805125151578363390408003280797085868089174212962270299538555870375943771390050511252947601635458383227075064686003009605516628877438116649469507448717715016203670623575559502730345914961106977609948506072805200976828709110568715749851919646779329055146016669792630301351263277960627292522147466108389086890825005504701073345953580162058595973700974845810583448999429070714373370059499522946086210341268250340466694838420946948104355274217303497230519706073028459585640980014875026494956018880360614194222862317578379021023590972111111240914972749315599504751572322317762454474443648764643181699209897390633549580477480778010942829790235987502256904700913431086080670006191736223796415863780244890927812842380840100077175730969717704038916905082710554716277338697726010045847445070872047195979178566705002982849213861259921910235072431971693579205724426899516061847817529031972163098665300551661882411568849768480179479537406341658956531846540960485286544024930026738295144409238099748676381173418896917432230690681113197939204804386332155305180693068256846552317729829246009345147840532704524321285764318984920957635096478529336546053756397874641487802499312325755376371317054588842639528728481522929619988264805135598771392656785276139948336812223543734390472741661825821502692837759547611174824240158872439097699623107422859054897954817143243801651305796310898832748901979500448322647244530458440681051218755953594540193690085856777922057121861168314189775879865890090728452320862280432723785098844132484892789783990589845033307479362873295379925076250392530982687508403023889471939541093064095694050111526823854821270253083829265517069493559232839113802206671646501226992754832772009241082766831691993508415109396087108127667775200068634893305958138040475004897585977873402636819516493323219178787786450166529130855065035463720196098192431618981214629756203797384653707238824563077988389652416957240539894191611221137987772472416943214798220719218959681821652843637650345062862460843636951194021021427112199379058559213659684528229536644580814697865270756519673694618816256666484901216538673988213036031853847705939701331028406592659492155381414155796927526259414444948416377586527568984948177012421601887334023007031891127010928845279950716752242862444090918992180599229194885312977829625360055996618598429207906373343926468869832214251492729973244129781262262594423483112556751346177815894872465672475906811345668349467436707652482237975509395866169017775987075075987265317494921996761905290508587711614621381957463398928242481732545673150423956671403129661020174359199853962036709293393035052639679896749394214529962590903520700676634153747148639970028501303687144814102775714908462647725025646780964356321729035899128982272183611576240769104782589827525952029266002354511662363141740987924870926156298892162038975570801488987446242165671729861413076421318127725441796007410531306593423614887891158733046015533259161467722448141468226436623696418146258002836779154028428572921394388196424730188664996701041030429816323145955670189805292966846121455275075848902742334033859239140891825760959795635743081216559154495724220057487394209802180937179856192770518863924513206709064826520880903319919569228046345859682490282307765278493054228738500748133074359491887112329087331568520467504928043772009492949679632107073495229930574751515219373623641360350006353016007806863887579924814426496202125599817923830851830971465928671822656421388149775855344406241306686529594890622642643390412834074490454690274231994739712447343376096019789176363308762165753109660489528007793923983139139426716113484162309333590389010705077167578658429783406214128227793445819258507710628693534037572912732203125243990627467031367720012433000974909321718973676880642605898228500141563153549982535965428377631523301427171351126766317626534765902841637607274985943743499491378433511669576583063296492066722647996146161330949643162738277951319404567186801979138139197422105563056561151904402761510008336132167654760035724286054441585362184153180342437705842318244991664210208186531694041694509465213393714767431966058564717161058241376924422631509683880233830733805750805659735189430458920090674201026321639103673542984876753961167437351705327860560509025998956604105220204303517637077704189066951158435231948665470057122921426054896091730486360706292412907008141696162021242845943573448977441532268179163776811620805906530368424690260818978974980711916353377094053673412780045536094790078060196218603617337228648243665728995913492439335783337848417619362085523582042369444380041699237652932438528975909829920343697855044021998344667774145153278868856020188209315044686591130849442216757836795358631074100829257662008532573718838657965596208357762501494052711024177306547181571890951371276383922805982316756719773527865584391340386540618621055960176512290300090373342434298866448564245709802204306084893574274860391783787498104448013946872539603702281194559446142061600200772873586256876644779055312456113808411138505784481992058976111749747575496531761991268145270356970359166082762489283907099660309721075531924957247576855182752310828243865941038397271374598932226055202515518818371144648297610301518481874507712707093780891281678160116274717338146968240254148345073409363568295782898290724936319323940273375468892533619356151740397849719051648118235275928005422408687201364575995278883053878700888795557297065162163728133673495715088583439863057919763453906486587153110922631886091574058368772556859732940417548612713135292916856857994569085684733111997384652325916716132241957156032982538116317426671288041240783682245228185033895876206461647943221697933896953045280147703607855158953606001545573228934897259339993174559312801494662156345606418381182433896726102311266312801815079314071497299061699512316179746257773103908537286893177244940345108786364194343791343517327358565385478480936666400830159867825259700805586026044017043450318249668022813399149928615223720583770842136166733720519002502881172277723862233147065419068119326442024396336201545472605806493454043896955241003173963446107949360588252362105056204501490764378716538746397679273519638807401350084483084591022124019172239443364487124352834549470260259508749614858737471344907027491439509430887167762711453646613515285719660539163497930681727429387629354662458488143715406069799181909629978895396330691447232358457741040626863124886189237778033616833025362053259197183067802759278753992774478149541976049593384446696216757496811678360090590860516559778568548351040536407398224750274642999704158409168340723874720016152855366127699819719059910519577834132699434013773622535075724976787299278499543653882107440036018181175806875195134651944385450065047101481917647339241528249163245541423745312333994496761274510563530169132464123638959854809041050232582764346779034231847899884871939130190042418951826393689129471179653869972690449234141625212999660933449306109093722300106532506076577515505400643100754703667914596808538068653761472889479183940905005547571898379767335560408151895275929559775577529163385010163069328706366792411056839954221154153794602538647702507948707299192240051474230456696117064909275081909097232213042409014859314205617573334871580831735041802789372584589347952975920453233906800203817104983396996611019631189892934701793978210510133424814868068310209667484850089924092239324857778818946877165550945643819225377520151574209310706506879153218624237827250288065251597112698227874222073974681464874679264244917268721310427695828611945601953062598477537782572380846712402967000880914653418912530797368922883184118088054724909186417329609896594159314861350278656365505139346680642644717426553494995999322783706951215653593460526347182862394669863814331511111924139118727112421348590264815855438640566482165257630460958699545661583668209264513758123807423311128149607245714511291569123631464422574513039086174407449638718627964513412109278923267970984176760981578375855226627756002740670138787885695764437750237008821531805474712452827921191521532189603740742604555840878766351813173492959652505115529848457618093767176923789623499391542494218836191607518426638523629437926704022571328600512317633414347429671802029396897025899436491010448626913112818972037067012364712291217735414607657174709824268982165641797281639846970037582988184802603336546993662002008854968378050593256870341730751743646348433679305961704022454717373273914275054347908213982166362097384206516345929729347785313920292950575028136874604648014653254722932673479243120668652699177776533717649707936184532152885558202053759895637759842534964138174477913511124933068904920854870283390366905746159806624753618364941637751922349516208174544732140821989879941380283068309393263491635440431926992639596212604336777827274664052988235840155640125854650653132267515809236656123310184335603992006968592087737496629622433236845751018586042169120866054779818991757046357656751760791848678607133883249118939626862754803692778575240934239612257396344437719956632675865977310939533351567797972019558121376096522031947050795907705500858104470840013996578229375315816195915306719874830178308314618658561668224770962144195845091109563267176506863621431021561397371264029086603680359270319671660613053723248088319842355319045485528479695476020925142319229768463723101995960031893185871375928614387272686293818328380215839227631102406051856993998703204337027382041220802142728341480252643735622175624707154670828301222008730754536088741539713768096557850693083330634300262630250590251444747441157336474406586622972187665109727868342626131082423922028782857001166058800766323245322850905133973763896660321194085750383288310274795935922784222108000018267385410841411232575423532888756800464807022824746015540151306219713802638761902632639547598950816073708565693546544672069237926218236640330422590818515639638443282588533527524583755750199345170709768826636634306365619707747363649016817320618213605869702875787648283903568673195948775338060968859413672702776000328520124614254602896282692178887390864318153469027601109623186004902996043467577234175167783292003832707423136531695097427790599570233587210064597748471950413276993810996790844375864522971165987781246603605470944215754295295549642365903091501476060540070441756232352997439632558695552022719030882020824223215900003196674793894965771869481889249420494326878270105332677517019461248879967473959348500829065960322772469139262080447417930926541490754550120120773818577455560786311211793335853613937964471758107983022882263783788309896674771483178962215920962289524327776103520087289026230484817797585316533224447251622680330770674311772843668802789946930655033526347761446452515844027374882598363654325993956137975845169037860940555216747906390215062428863194269496042504339331781237050730311062024451724085407970986502353881485301399146833983787941712747057293695417445398290893611935457635181782073309405279933686731585731334771237507889765717710172787827682953245270741068612612386701627839653394181979312974945653577897998989490043316939979785728525850706912742979457136748890228617011178129038445301219818567547788806773444668149978182403879311900384676049239092127371708941417042798190812484395724385664066975172862364145589133317088973151365768514851379904905840140832010692684621550337442670406063440435882607913529900038298068602988588124090092871196106445425936731018755892610501732490786834557035239789445762156249282241960754403707014768056971591061095916392204267273942613329921599858652508178751124023699070951096751897132626419896110275407596707140970677144726693946754130655748293469921961734628023198001103865209967291632405617823623391758835601020384235038403077092036166972690723301062911131893591309863252002729058852452064117528198466462754588765429546349271000216085208819249838632319909756785192139731834017986007580305855514942628677977285309414278707327704061425025280626463753921760903151206031714886903302389399006678841825163778472366873474274706934124193064632051725633213484988897528705675971264303803151303601222700618829232386297318692441463876797374526611570802261213804745158882396313698290259185965184678722092162812381121667898596808337661579597372770011000514056441815539279614492966578839634486660749246948405312169240041703827555391909233613638565004153588104090257680610061000454042242237736306876051100087240629697745403684288144454209735950463685611132568192900271485918874363761999419956162208078499201918326798812309988645969705321683418150831227244270430261028150473243690992716007050877112877079155392733889731632246942317786745119812940822298511613805738680413311935837086530728991820885252101949923290058391945676002543252925501613709098897885217948868832820994735466979636032865614373111349735972835187214145430945509265294507010487342868296131092033418053290770543260051642253345302706884120149363293647435049135914486593870522753000965614811214285890187669885677747965124657253789258339579623150550385525871157053395746628473344107095512050700681743577800891986797228976020388996563956403062152161814755566516102455205986690317178989876121110341453736406126407367063119514784699933476737169450227397060717073231231072656093632419953955258689201647582430364755431162660101818552792417492075211242649964703284926906859372674541796160369989137143731633530852589341399782481878337637956603402076358256763551778999448273338730351780732779876231752506976015744103694190666995164430536948861523581561195299146499587414300364858440133069490003917905888867923065777647460455153352133890279878140815862065506473309166902314707108544590177329632275816425119968609101887424122096189894477464932306344027446981782065215932276556436841443164548608952375476922738203989640061885429729585398543847815371536791533844363651379049358907444409584068624071343209987504636593638126339871610606654428704423205997438992922491248121694182005150556532407196201977836044391668558910782382477396408222754401304938944464352046361573175987293086835978629877206495317738152738073958874626000654051281791990744181690399852904293214118600355878249488142756301879889589555948148926464566304581719153848333380155239133986613339140491843426263561983250380037849141617260397106763392560825934340768455077135098931840832312469014724024890611687012963076323304314740303268656401148362178594119636343399768255988478333339249654962075521798905299464541625044230402423669998439604337867078643070882802407418071967957385736720580950543217589235549139193533958486510722469617878716032209336269432211077743853859468521909175723386017868815328917570544420704632623085848868731387732294826341245338514564149287807690766180466260222907276076315032401730569883317773914669943117276042880652221095231641213545755631415126438123046478574053351547923218231262792574477649788961913141001975658073549412667673285170421897117381446884913291674933818421334132317982409973079436873696074900740679907236357751678027957259763786042384194995202227386264703666686368233211291348504893002582967868670781185335653343179589724374677146705100231425648629325755619711224259446380568820596068491183021579964910887333457879044610514170262009909636595696889173311864042467656409802394111834463723589172796265096379382407976220932483164821315441186983715365045743266638111165071227378907308486673126467379739275696229460791112001429009528562318968458047901592790723325199937204624211461424499911664569239687735837612481658382178853037783911670604468422962887475752205739229253521878036188854683756350612014293822741682823421490094381180204691287756713589255971542714525195969056527495778102444676794645458397897614625561143624500626424773699373360940241496836535288888331032970270391967534774261291961679304161909459432180816815575981044421301386438802591955906811925037696911352221550493477241367220389215439348077974315138439480682893533416599105900770518706581057388091168750737641468390915169833569664029227788480783433115136326196875613811746321221778549230446450074004399291759228135740088080452103971711966423612804027602332416397358880262495329635342898197919203067068071446412678816536758476311142744201184444867437754248879795547466136538006530731089268983953148879573160583931367643229727072895466790134493455762622193319578635805688243481784400049378785771958181547735239623419109331952658692258950867046308138494283632446860911023701800878260078691065950601640469343655000210999394094227287463937351756701289677422002800872994684737383644292897425427120170024153573801687633045344399183500634165669269557632815078514669289598238176436213481191952508771477727586966577507239316786088626517388335635320144629063698334504566043585560015793617316470925982825753361206197084045826374133210317857583972021101243758544473646932955402245470853390816283459096016578356021563620285503373323951255367028210580230366688599798772154726669622226471090313623030201417365784374655941252129734305354868255360889118544519350932835087416106387742401862668322209237435185984213640436731215271475024426674907258582951586465926005290399047421154946851176815041997087239662204300414430400677842528787626184116644729633108788279761504528892569393266025050166949124750978300520600043842285947339970875349044499562921647096564298182060736040613888709728167888578059041468289695677862125953720212036814820194095175455444171870981437511214703787832914047169617816827998496484470424340313096247591615834515016152953036934163875830102491738873731168422146535142561288816735004923181347611367060456879202010536616057540361359709621847882788295024479654420620927318911938341370973396297353457820294338962737622726547079460313020896916146545338483317361415608622185490281774209950810596507194684749557530930281904290627218914219814398899730946597674936597485632518683396544636557230156824002386068715166422528140368971300713041148379426485252793404280424607558036222525720845025405722559591095822971987282291209938694693191906454580804045498933261280357329540837416865844163046132509294716439561925250209076126770909227900152907154852175468303158973525332317188480574034729799794604255024415799828824076032495832835555597772171529644334952750514421246677856727155887788619267170814248084029638467399625566041842021506500419848747082106726074266292522913143510185021443452524880734914567707590311877973491442349647378425709117872924652816892143319944664807873862374526236694751232807646847544988117677404262992340007387914047301048316646291568936143023895486935291913668820912657967273717092611790838122208834885576847755253345072344645742741413275823739574895101649188206388913315928663297178353072482135628421054107338926054633889687106140280693085577496427114268661129849906568924547254662502266000383867934584562004914558751531842203282428780763254580503903137615615261144759877919983919190542689462118134065104923983898263321363663766528140904224977555186254649823613703104933309662130408099660750627124372317528963657616054101086991552944399618580537874286767675249839695045443666912976413022461045080538088327440964612820165172290147387793716459165071414434204362003294042977028846121672620704882306727551134318828723867181822689738876228482793449189469281701594611796255055750020949572778021815061238711927434466158578072450633126677495200036551698330238305676036648024753541658851190277554536960127126847999795874208062631473382808717850133403352691734406351102482564670940937699144089022660418291378864544316385303744087940579866397760838834299084157865137393313744577524503430411451980674514954586875756871500626112937962258665715339752305834231066869543250019779590885604134662440075599226449814732387555148931405486799807744215337726302404183725612640232048930277875427740671342494148657527008536332299862328679921934730871068473078958533321980359511754228495774849648742985493471243261171300503028499723074292861169765726876115598055830604901350015015099059408579133638443540920338840471386838468879950210352370080957323321145228704056482223069569093347237000411090524197521286869418748450523733205246809655293046139265301288051578111476923648482378952196775094769463067738743582786839888992870546027488016551548595686829723874196543887745337692824487341539124116860080606452880180522189879526224733627053842640897862500979649513618077024285918408664481895829618064475550688661099226812336062743034517337959891815832357730126250060221546174899124242793986866201351500606754484944802193785346863821723792174340268521238818825388507045060454035845024014098194102790839022691658246918073373545237705266139447440216233071299700204305379143445925555899004899479919851235448145104593291136677994597076116153469595913828992005455736427748584586394790989413676568632643027802677104706488384595294776689498567636868347467553548492104440965474767252455688831513244591659212906455142739901909886156407399732550645746638499380148094704764910099917864920548527653705341006483361305552191934969460405089280290407684746394693721905692467193587557327021982621016186835101099740289920121693962610158879819871760608065863543065314677261716030952717226750831820560933735020079224239300680622729526497262822583154963055297248153844326181824282284553502076068861944205224223174186030782769925534691485431460073435735250655569916252587171282716712980416295731140715291615325434503225141762593146197640651810640198240216092793687517439770402706436547316302825946967122927381772167784177783309468517041684114137755949621711240280054258114625046358819875148259474498037460811913122010572985189955859014416855030725538274385845192966944713699034123598268263905558083920996961211508502443328306118649598615981792315255756958963671285056148081433296228643445538197156157902958063366609499036374016450226099648621837029367044430090428336268690594936243016604085560886067583024912109301904563916229733716567773594150430358970104010391086425584620591532070303829332482587220437850618622706687783063779482541387934055334177296297480050563558376796277405822746397060886723700774102249053844118410483083382859999106119650680478034283920969183292501607854281242633969280397793489672400722581119889071047783659333570825698398554337407091619497961009372239408267401726115401123351812054352799743032153502142660370929215698065977582133678472581443237465949357176109555778080696881581317676986913620204203390259407556888780127164668686994960429312592112977131996226260091052956279672292500522447215472559912026669793864890858802204977468984631348690943075022603660909839090318480620305895206157939201602183359665790108853067388652438947826685138786013563832062095431305504544856200222343422586446921530233530100021181424108488520358506434243477600030854289962951612146812984753480425189185616314157782793881127119547294633602708827197047829098965583167072567830804205987924232950701987012778554995748955184493597735637347872108513074420950341568435129954612872570254924307246359834682612268927378834945541863115628750618985099330642248714769187367264885614253022376176787037681176807122448845343232002839769465021069411503821646652319647098142654691482607252595511532314991082625122504660670459461505382488223127015259284090062183550249390794416536661480370752194812798212312001826028059487806904107612002632610481482284040618782147980356716492192339884095080519511452718649679712888351818733483844356849054957101017076851632126355023257622004723718834635821952795489258352444221412717066700325117618340634402499923559561339797659386415659503282357272535757335507755309498030911615033903785058668615765334068567294360948815071917722395726160466195882960066402799889122654799899616406217664433749565254706781026466865916668079316628494120731236243618878420769536200892996423336852190080745839328761598812139806450438731523903952158407635413232373176883397508085503586376154094995736227939052141049388548387710564787722304230438636207828867906070609038862486045909865801586229270604541246698845272506602422804934907334365325737724861526979588726214688130286737364324243717692959320982604323601465696679845240003328864016923566100576794223499325706026984356049429016119308575265649759401252166277631993538312142468834662170780618011582014418209563636312561398697582442214492841144278894366268422428428914366120553479229742366738950121054650814102134651683473380459089368620123413661898667737058775650730196758520373169290097480317769045769207530171252996166149198363747742431269888439049520218356183950050806647082605863357410205842215955194956837202269223794734256528258768742370755090527900683006322869084618